Setup code – the sequence of Java statements to be executed on the animation setup. This code is inserted at the end of the method update() of the animation.
Update code – the sequence of Java statements to be executed on each animation update performed. This code is inserted at the end of the method setup() of the animation.
Additional class code – arbitrary constants, variables and methods can be defined here. This code is inserted into the animation class declaration.
12.3 3D animation diagram
Each active object class may have a 3D animation diagram associated with it. A 3D animation diagram is a collection of 3D shapes. A 3D animation diagram links shape properties to the active object data and encapsulated objects, and also defines where the 3D animation of this active object appears in the 3D animation of a container, if the latter exists.
12.3.13D animation editor
A 3D animation diagram is edited in the 3D animation editor using the 3D animation toolbar, see Figure 147.
1.Click the New 3D Animation toolbar button, or Choose Insert|New 3D Animation… from the main menu. The New 3D Animation dialog box is displayed.
Choose the active object class, which will contain the 3D animation, from the Choose active object drop-down list.
2.Alternatively, in the Project window, right-click the active object class, which will contain the 3D animation, and choose New 3D Animation… from the popup menu. The New 3D Animation dialog box is displayed.
3.Enter the name of the new 3D animation in the Name of new 3D animation edit box.
4.If needed, select the Add encapsulated 3D animations check box to add 3D animations of the encapsulated objects to this 3D animation.
Moreover, you can add links between encapsulated 3D animations by setting the
Add links between encapsulated 3D animations check box.
►To open the existing 3D animation diagram of an active object class
1.In the Project window, double-click the 3D animation item, or
Right-click the 3D animation item and choose Open Animation from the popup menu.
3D animation editor shares a set of generic editing operations described in section 1.5.2, “Diagram editors. Generic operations”.
A 3D animation diagram is always associated with an active object class and has the following properties:
General properties
Name – 3D animation name.
X – [optional] dynamic expression of the x-coordinate of the 3D animation on the container 3D animation.
Y – [optional] dynamic expression of the y-coordinate of the 3D animation on the container 3D animation.
Z – [optional] dynamic expression of the z-coordinate of the 3D animation on the container 3D animation.
X rotation – [optional] dynamic expression of the counter clockwise rotation of the 3D animation on the container 3D animation about the x-axis (radians).
Y rotation – [optional] dynamic expression of the counter clockwise rotation of the 3D animation on the container 3D animation about the y-axis (radians).
Z rotation – [optional] dynamic expression of the counter clockwise rotation of the 3D animation on the container 3D animation about the z-axis (radians).
Scale – [optional] if defined, the positions and sizes of all shapes on this diagram are multiplied by this factor.
X Offset – [optional] if defined, the x-coordinates of all shapes on this diagram are increased by this value.
Y Offset – [optional] if defined, the y-coordinates of all shapes on this diagram are increased by this value.
Z Offset – [optional] if defined, the z-coordinates of all shapes on this diagram are increased by this value.
Background – static value|[optional] dynamic expression of the background color.
Exclude from build – if set, the animation is excluded from the model.
Properties specifying the location and rotation of the 3D animation on the container 3D animation (X, Y, Z, X rotation, Y rotation, Z rotation) are suppressed by the dynamic expressions of the corresponding properties of the encapsulated 3D animation shape in the container 3D animation, if the latter is defined.
On the Miscellaneous page of 3D animation’s properties window you specify animation window size, and light sources properties. AnyLogic 3D animation is lightened with one ambient and two directional lights. Ambient light is constant low level light. Because ambient lighting is uniform, it produces uniform shade. Directional light sources make animation more interesting. Directional light is an oriented light with an origin at infinity. A directional light has parallel light rays that travel in one direction along the specified vector. The portion of a scene where visual objects are illuminated by a particular light source is called that light object's region of influence. The influencing bounds of a light determine, which objects to light. When a light source's influencing bounds intersect the bounds of a visual object, the light is used in shading the entire object.
Miscellaneous properties
Window size – the width and the height of 3D animation window.
Ambient – the color of the ambient light.
Direct 1 – the color of the first directional light.
X, Y, Z – static values|[optional] dynamic expressions of the x, y, z-coordinates of the vector, in which the first directional light shines.
Direct 2 – the color of the second directional light.
X, Y, Z – static values|[optional] dynamic expressions of the x, y, z-coordinates of the vector, in which the second directional light shines.
Bounds – light sources influencing bounds.
The blue cross is the origin point (0, 0) of 3D animation diagram.
12.3.1.1 Generic properties of 3D animation shapes
All shapes of a 3D animation diagram share a set of common properties described below. General properties are accessible from the General page of the animation shape’s properties window.
General properties
Name – name of the shape, which may be used to access it from code.
X – static value|[optional] dynamic expression of the x-coordinate of the shape.
Y – static value|[optional] dynamic expression of the y-coordinate of the shape.
Z – static value|[optional] dynamic expression of the z-coordinate of the shape.
X rotation – static value (degrees)|[optional] dynamic expression of the counter clockwise rotation of the shape about the x-axis (radians).
Y rotation – static value (degrees)|[optional] dynamic expression of the counter clockwise rotation of the shape about the y-axis (radians).
Z rotation – static value (degrees)|[optional] dynamic expression of the counter clockwise rotation of the shape about the z-axis (radians).
Width – static value|[optional] dynamic expression of the width of the shape.
Height – static value|[optional] dynamic expression of the height of the shape.
Depth – static value|[optional] dynamic expression of the depth of the shape.
Color – static value|[optional] dynamic expression of the color (java.awt.Color). If the checkbox is not checked, the static color is transparent. If the expression evaluates to null, the dynamic color is transparent.
Visible – [optional] dynamic boolean expression determining if the shape is visible.
Replication – replication factor of the shape.
Lock aspect ratio – if set, the aspect ratio is locked for this shape.
Show name – if set, the name of the shape is shown on the animation diagram editor (but not in the animation).
Exclude from build – if set, the shape is excluded from the animation.
Appearance properties are accessible from the Appearance page of the animation shape’s properties window
Enable lighting – if set, the shape is lightened and thus visible.
Shininess – static value|[optional] dynamic expression of the shininess of the lightened shape, specifies how shiny a material surface is. This value (in the range 1.0 to 128.0) is used in calculating the specular reflection of a light from a visual object. The higher the value, the more concentrated the specular reflection is.
Transparency – static value|[optional] dynamic expression of the shape’s opacity (where 0.0 denotes fully opaque and 1.0 denotes fully transparent shape).
Polygon mode – Fill|Point|Line the style of how the polygons making up the figure are rendered. If Fill is set, polygons are filled, if Point – they are rendered as the points only, if Line – with lines only.
Render face – Front|Back|Both type of rendering the faces of 3D animation shapes. For many visual objects, only one face of the polygons need to be rendered. To reduce the computational power required to render the polygonal surfaces, the renderer can cull the unneeded faces.
If Front is set, front facing polygons are rendered only. If Back is set, back facing polygons are rendered only.
If Both is set, all polygons are rendered, no matter which direction they are facing.
If a generic property is not applicable to a particular shape, it is disabled.
Names of animation shapes are used only for code generation and, correspondingly, to access shapes from code. Names do not appear in the animation window.
12.3.23D animation shapes
In this section, the detailed description of the 3D animation shapes is given.
# points – [read only] static value|[optional] dynamic expression of number of points of the polyline.
X[index] – [optional] dynamic expression of the x-coordinate of the polyline’s point.
Y[index] – [optional] dynamic expression of the y-coordinate of the polyline’s point.
Z[index] – [optional] dynamic expression of the z-coordinate of the polyline’s point.
Line width – static value|[optional] dynamic expression of the polyline width.
Closed polyline – if checked, the closing segment is created.
Points – coordinates of the polyline points, specified in the form #, X, Y, Z, where # is the point’s index, X, Y, Z – x-, y- and z-coordinates of the point correspondingly.
Each point of the polyline can be controlled during the model execution. You can specify dynamic expression, defining the number of points. The coordinates of the polyline’s points can also be defined by dynamic expressions. Use the predefined symbol “index” in X, Y, Z expressions to refer to the current point index. The index value is zero based – i.e. the first point has index of 0.
12.3.2.8 Mesh
You can use mesh to define custom geometry shapes. The mesh is defined as follows: you define the vertices of the mesh and then choose the mesh type – the way the array of vertices is drawn (individual groups of vertices can form lines, triangles, quadrilaterals, etc.).
►To draw a mesh
1.Click the Mesh toolbar button, or
Choose Draw|3D Animation|Mesh from the main menu.
2.Click at each mesh vertex on the diagram.
3.Double-click to finish.
The generic polyline editing operations (see section 12.2.2.4, “Polyline”) can be applied to mesh.