Surface

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;