model Surface "Visualizing a moveable, parameterized surface; the surface characteristic is provided by a function"
extends Modelica.Mechanics.MultiBody.Icons.Surface;
extends Modelica.Utilities.Internal.PartialModelicaServices.Animation.PartialSurface;
extends ModelicaServices.Animation.Surface;
annotation (
Icon(graphics = {
Polygon(
points = {
{-102, 40},
{-98, 92},
{28, -8},
{96, 146},
{104, -118},
{-18, -34},
{-52, -130},
{-102, 40}},
lineColor = {0, 0, 255},
smooth = Smooth.Bezier,
fillColor = {255, 255, 255},
fillPattern = FillPattern.Solid),
Text(
extent = {
{-150, 140},
{150, 100}},
lineColor = {0, 0, 255},
textString = "%name")}),
Documentation(info = "<html>\n<p>\nModel <strong>Surface</strong> defines a moveable, parametrized surface in 3-dim. space\nthat is used for animation. This object is specified by:\n</p>\n\n<ul>\n<li> The surface frame (orientation object \"R\" and origin \"r_0\")\n in which the data is specified.</li>\n<li> A set of two parameters, one in u- and one in v-direction,\n that defines the control points.</li>\n<li> A time-varying position of each control point with respect to\n the surface frame.</li>\n</ul>\n\n<p>\nThe parameter values (u,v) are given by the ordinal numbers of the\ncorresponding control point in u- or in v-direction, respectively.\nThe surface is then defined by the replaceable function \"surfaceCharacteristic\" with the\ninterface <a href=\"modelica://Modelica.Mechanics.MultiBody.Interfaces.partialSurfaceCharacteristic\">partialSurfaceCharacteristic</a>\nthat returns the x-, y-, z- coordinate of every control point in form of 3 arrays X, Y, Z, and an optional color array C, if every control point shall have a different color:\n</p>\n\n<pre>\n Real X[nu,nv], Y[nu,nv], Z[nu,nv], C[nu,nv,3];\n</pre>\n\n<p>\nAn example of a parameterized surface with color coding is shown in the next figure:\n</p>\n\n<blockquote>\n<img src=\"modelica://Modelica/Resources/Images/Mechanics/MultiBody/Visualizers/Surface.png\">\n</blockquote>\n\n<p>\nModels <a href=\"modelica://Modelica.Mechanics.MultiBody.Visualizers.Torus\">Torus</a>,\n<a href=\"modelica://Modelica.Mechanics.MultiBody.Visualizers.VoluminousWheel\">VoluminousWheel</a>,\n<a href=\"modelica://Modelica.Mechanics.MultiBody.Visualizers.PipeWithScalarField\">PipeWithScalarField</a>,\ndemonstrate how new visualizer objects can be constructed with the Surface model.<br>\nThe direct usage of the Surface model, as well as of the Torus and the VoluminousWheel models, are demonstrated with example\n<a href=\"modelica://Modelica.Mechanics.MultiBody.Examples.Elementary.Surfaces\">Examples.Elementary.Surfaces</a>.\n</p>\n</html>"));
end Surface;