diff --git a/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/coolWarm.mo b/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/coolWarm.mo new file mode 100644 index 0000000000..8c1a1ba90d --- /dev/null +++ b/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/coolWarm.mo @@ -0,0 +1,58 @@ +within Modelica.Mechanics.MultiBody.Visualizers.Colors.ColorMaps; +function coolWarm "Returns the \"coolWarm\" color map" +extends Modelica.Mechanics.MultiBody.Interfaces.partialColorMap; + +protected + final Real Start[3] = {59/255, 76/255, 192/255}; // blue + final Real Mid[3] = {242/255, 242/255, 242/255}; // gray + final Real End[3] = {180/255, 4/255, 38/255}; // red + + final Real cm[n_colors,3]; + final Real t; // normalized position + final Real u; // interpolation factor + +algorithm + if n_colors >= 1 then + for i in 1:n_colors loop + t := (i-1)/(n_colors-1); + + if t <= 0.5 then + u := t/0.5; + cm[i,:] := (1-u)*Start + u*Mid; + else + u := (t-0.5)/0.5; + cm[i,:] := (1-u)*Mid + u*End; + end if; + end for; + + colorMap := 255*cm; + else + colorMap := [59,76,192]; + end if; + + annotation (Documentation(info=" +

Syntax

+
+ColorMaps.coolWarm();
+ColorMaps.coolWarm(n_colors=64);
+
+

Description

+

+This function returns the color map \"coolWarm.\" A color map +is a Real[:,3] array where every row represents a color. +With the optional argument \"n_colors\" the number of rows +of the returned array can be defined. The default value is +\"n_colors=64\" (it is usually best if n_colors is a multiple of 4). +Image of the \"coolWarm\" color map: +

+ +
+ +
+ +

See also

+ColorMaps, +colorMapToSvg, +scalarToColor. +")); +end coolWarm; diff --git a/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/package.order b/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/package.order index f1c67e30de..195b9aa4cf 100644 --- a/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/package.order +++ b/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/package.order @@ -5,3 +5,7 @@ spring summer autumn winter +coolWarm +trafficLight +plasma +viridis diff --git a/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/plasma.mo b/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/plasma.mo new file mode 100644 index 0000000000..f41c932b84 --- /dev/null +++ b/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/plasma.mo @@ -0,0 +1,57 @@ +within Modelica.Mechanics.MultiBody.Visualizers.Colors.ColorMaps; +function plasma "Returns the \"plasma\" color map" + extends .Modelica.Mechanics.MultiBody.Interfaces.partialColorMap; + +protected + final Real Start[3] = {13/255, 8/255, 135/255}; + final Real Mid[3] = {219/255, 92/255, 104}; + final Real End[3] = {240/255, 249/255, 33/255}; + + final Real cm[n_colors,3]; + final Real t; // normalized position + final Real u; // interpolation factor +algorithm + if n_colors >= 1 then + for i in 1:n_colors loop + t := (i-1)/(n_colors-1); + + if t <= 0.5 then + u := t/0.5; + cm[i,:] := (1-u)*Start + u*Mid; + else + u := (t-0.5)/0.5; + cm[i,:] := (1-u)*Mid + u*End; + end if; + end for; + + colorMap := 255*cm; + else + colorMap := [122,76,192]; + end if; + + annotation (Documentation(info=" +

Syntax

+
+ColorMaps.plasma();
+ColorMaps.plasma(n_colors=64);
+
+

Description

+

+This function returns the color map \"plasma.\" A color map +is a Real[:,3] array where every row represents a color. +With the optional argument \"n_colors\" the number of rows +of the returned array can be defined. The default value is +\"n_colors=64\" (it is usually best if n_colors is a multiple of 4). +Image of the \"plasma\" color map: +

+ +
+ +
+ +

See also

+ColorMaps, +colorMapToSvg, +scalarToColor. +")); +end plasma; diff --git a/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/trafficLight.mo b/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/trafficLight.mo new file mode 100644 index 0000000000..1ebd1f7348 --- /dev/null +++ b/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/trafficLight.mo @@ -0,0 +1,58 @@ +within Modelica.Mechanics.MultiBody.Visualizers.Colors.ColorMaps; +function trafficLight "Returns the \"trafficLight\" color map" + extends Modelica.Mechanics.MultiBody.Interfaces.partialColorMap(n_colors=3); + +protected + final Real Start[3] = {122/255, 255/255, 122/255}; // mid-green + final Real Mid[3] = {255/255, 230/255, 0}; // orange + final Real End[3] = {128/255, 0, 0}; // red + + final Real cm[n_colors,3]; + final Real t; // normalized position + final Real u; // interpolation factor +algorithm + if n_colors >= 1 then + for i in 1:n_colors loop + t := (i-1)/(n_colors-1); + + if t <= 0.5 then + u := t/0.5; + cm[i,:] := (1-u)*Start + u*Mid; + else + u := (t-0.5)/0.5; + cm[i,:] := (1-u)*Mid + u*End; + end if; + end for; + + colorMap := 255*cm; + else + colorMap := [122,76,192]; + end if; + + annotation (Documentation(info=" +

Syntax

+
+ColorMaps.trafficLight();
+ColorMaps.trafficLight(n_colors=3);
+
+

Description

+

+This function returns the color map \"trafficLight.\" A color map +is a Real[:,3] array where every row represents a color. +With the optional argument \"n_colors\" the number of rows +of the returned array can be defined. The default value is +\"n_colors=3\". +Image of the \"trafficLight\" color map: +

+ +
+ +
+ +

See also

+ColorMaps, +colorMapToSvg, +scalarToColor. +")); + +end trafficLight; diff --git a/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/viridis.mo b/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/viridis.mo new file mode 100644 index 0000000000..85efda88f3 --- /dev/null +++ b/Modelica/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/viridis.mo @@ -0,0 +1,57 @@ +within Modelica.Mechanics.MultiBody.Visualizers.Colors.ColorMaps; +function viridis "Returns the \"viridis\" color map" + extends Modelica.Mechanics.MultiBody.Interfaces.partialColorMap; + +protected + final Real Start[3] = {13/255, 8/255, 135/255}; + final Real Mid[3] = {219/255, 92/255, 104}; + final Real End[3] = {240/255, 249/255, 33/255}; + + final Real cm[n_colors,3]; + final Real t; // normalized position + final Real u; // interpolation factor +algorithm + if n_colors >= 1 then + for i in 1:n_colors loop + t := (i-1)/(n_colors-1); + + if t <= 0.5 then + u := t/0.5; + cm[i,:] := (1-u)*Start + u*Mid; + else + u := (t-0.5)/0.5; + cm[i,:] := (1-u)*Mid + u*End; + end if; + end for; + + colorMap := 255*cm; + else + colorMap := [122,76,192]; + end if; + + annotation (Documentation(info=" +

Syntax

+
+ColorMaps.viridis();
+ColorMaps.viridis(n_colors=64);
+
+

Description

+

+This function returns the color map \"viridis.\" A color map +is a Real[:,3] array where every row represents a color. +With the optional argument \"n_colors\" the number of rows +of the returned array can be defined. The default value is +\"n_colors=64\" (it is usually best if n_colors is a multiple of 4). +Image of the \"viridis\" color map: +

+ +
+ +
+ +

See also

+ColorMaps, +colorMapToSvg, +scalarToColor. +")); +end viridis; diff --git a/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/ColorMaps.png b/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/ColorMaps.png index 53da5b0b65..1e26c8c718 100644 Binary files a/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/ColorMaps.png and b/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/ColorMaps.png differ diff --git a/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/coolWarm.png b/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/coolWarm.png new file mode 100644 index 0000000000..89144bd189 Binary files /dev/null and b/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/coolWarm.png differ diff --git a/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/plasma.png b/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/plasma.png new file mode 100644 index 0000000000..fbc30e3140 Binary files /dev/null and b/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/plasma.png differ diff --git a/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/trafficLight.png b/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/trafficLight.png new file mode 100644 index 0000000000..14e68d09a0 Binary files /dev/null and b/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/trafficLight.png differ diff --git a/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/viridis.png b/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/viridis.png new file mode 100644 index 0000000000..724d2827d3 Binary files /dev/null and b/Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Colors/ColorMaps/viridis.png differ