Oval

Oval is a shape that you can use to draw presentations for your models.

Oval may have three dimensions. In this case at model runtime the shape will be displayed in the regular presentation as an oval and also in 3D window, as a cylinder (see the figure below). The base of the cylinder is drawn in the graphical editor, while the height is specified in the Z-Height property of the shape.

 To draw an oval
  1. Drag the  Oval element from the  Presentation palette onto the graphical editor.
  2. In some cases it would be more convenient to use drawing mode. To activate it, double-click on the  Oval  element in the palette, its icon should turn into . Now you can draw an oval simply by dragging it on the diagram. As the result, the oval of the required size will be drawn at once.
  3. In the Position and size section of the Properties view you can change the height of the cylinder in the field Z-Height (by default it is set to 10) and modify the Z-coordinate of the cylinder base in the field Z.
By default the shape is shown both in 2D animation and in your  3D window. You can set the shape to be shown only in 2D, or in 3D in the Show in advanced property of the shape.

Properties

General

Name – The name of the shape. It is used to identify and access the shape from code.

Ignore – If selected, the shape is excluded from the model.

Visible on upper level – If selected, the shape is also visible on the upper level where this agent lives.

Icon – If selected, the shape is considered as a part of the agent's icon. Please note that icon shapes are not shown in 3D animation.

Lock – If selected, the shape is locked. Locked shapes do not react to mouse clicks - it is impossible to select them in the graphical editor until you unlock them. It is frequently needed when you use a shape as a background image for your animation and you want to prevent editing this shape while drawing other shapes over it.

Visible – Here you specify whether the shape is visible on the animation at the model runtime, or not. Choose yes or no using the control. If you expect visibility to change dynamically or to depend on some conditions, you may specify the expression defining the shape's visibility here. This expression will be dynamically reevaluated at the model runtime. It should return boolean value. The shape is visible when the specified expression evaluates to true, and not visible otherwise.

Appearance

Fill color – Shape's fill color. Click inside the control and choose the required color using the Colors dialog box. Choose No Fill, if you do not want shape to be filled.
If you expect color to change dynamically or to depend on some conditions, you may specify the expression defining the shape's fill color here. This expression will be dynamically reevaluated at the model runtime. The expression should return an instance of Java class Color.

Line color – The outline color. Click inside the control and choose the required color using the Colors dialog box. Choose No Line, if you do not want outline to be drawn.

Line width – Outline width. Choose width from the drop-down list, or enter the value in pixels in the field to the right.

Line style – [Enabled only if the 2D only option is selected in the Show in advanced property] The outline style. Choose from the drop-down list, whether you want solid, dashed, or dotted outline to be drawn. 

Position and size

Type  If Circle is selected, the shape is set to be a circle (both oval's radiuses are equal). If the type is Oval, the shape is to be an oval.

X – The x-coordinate of the oval's center.

Y – The y-coordinate of the oval's center.

Z – The z-coordinate of the cylinder base.

Radius X – The horizontal radius of the oval (in pixels).

Radius Y – The vertical radius of the oval (in pixels).

Z-Height – The Z-height of the cylinder (height along the Z axis), in pixels.

Rotation – The rotation angle in XY plane.

Scale X – The X-direction scale factor for the shape.

Scale Y – The Y-direction scale factor for the shape.

Scale Z – The Z-direction scale factor for the shape.

Advanced

Show in - Here you can choose whether you want this shape to be shown both In 2D and 3D animation, or in 2D only, or in 3D only.

Replication – The replication factor of the shape. Here you specify how many copies of the shape will be created (the integer number). If you leave this field empty, only one shape will be created.

On click – Code that will be called each time a user clicks on the shape at runtime.

Show name – If selected, the shape's name is displayed on the presentation diagram.

Functions

You can dynamically modify shape properties at model runtime using the following API. 
Location

Function

Description

double getX()

double getY()

double getZ()

Returns the X (Y, Z) coordinate of the shape (namely, the coordinate of its centre).

void setX(double x)

void setY(double y)

void setZ(double z)

Sets the X (Y, Z) coordinate of the shape.

Parameters:
x - the new value of X coordinate
y - the new value of Y coordinate
z - the new value of Z coordinate

void setPos(double x,
double y)

Sets new coordinates for the shape. Z coordinate is not changed.

Parameters:
x - the new value of x coordinate
y - the new value of y coordinate

void setPos(double x, double y, double z)

Sets new coordinates for the shape. 

Parameters:
x - the new value of X coordinate
y - the new value of Y coordinate
z - the new value of Z coordinate

Radiuses

Function

Description

double getRadiusX()

Returns the radius of the oval along X axis, in pixels.

double getRadiusY()

Returns the radius of the oval along Y axis, in pixels.

void setRadiusX(double radiusX)

Sets the radius of the oval along X axis.

Parameter:
radiusX - the radius of the oval along X axis, in pixels.

void setRadiusY(double radiusY)

Sets the radius of the oval along Y axis.

Parameter:
radiusY - the radius of the oval along Y axis, in pixels.

void setRadius(double radius)

Sets both radiuses of the oval to the same given value, i.e. makes it a circle.

Parameter:
radius - the circle radius

Z-height

Function

Description

double getZHeight()

Returns the height of the shape along Z-axis

void setZHeight(double zHeight)

Sets the height of the shape along Z-axis

Parameter:
zHeight - the new value of z-height

Scaling

Function

Description

double getScaleX()

double getScaleY()

double getScaleZ()

Returns the scale of the shape along X (Y, Z) axis.

void setScaleX(double sx)

void setScaleY(double sy)

void setScaleZ(double sz)

Sets the scale of the shape along X (Y, Z) axis.

Parameters:
sx - the new value of scale along X axis* 
sy - the new value of scale along Y axis* 
sz - the new value of scale along Z axis* 

* 1 = keep original size

void setScale(double sx, double sy)

Sets the scales of the shape along both axes.

Parameters:
sx - the new value of scale along X axis, 1 = keep original size
sy - the new value of scale along Y axis, 1 = keep original size

void setScale(double s)

Sets the same scale of the shape along both axes.

Parameter:
s - the new value of scale along both axis, 1 = keep original size

Rotation

Function

Description

double getRotation()

Returns the rotation of the shape in radians, clockwise.

void setRotation(double r)

Sets the rotation of the shape.

Parameter:
r - the new value of rotation in radians

Visibility

Function

Description

boolean isVisible()

Checks the visibility of the shape. If the shape is visible, returns true, otherwise returns false.

void setVisible(boolean v)

Sets the visibility of the shape.

Parameter:
v - visibility: if true - the shape is set to be visible, if false - not visible.

Fill color

Function

Description

Color getFillColor()

Returns the fill color of the shape, or null if shape has no fill color or has textured fill (in this case getFillTexture() should be used instead) 

Texture getFillTexture()

Returns the fill texture of the shape, if the shape has fill texture 

void setFillColor
(Color fillColor)

Sets the fill color of the shape.

Parameter:
fillColor - the new fill color, if null, the shape is not filled

void setFillColor
(Object fillColor)

Sets the fill color (or Texture) of the shape.

Parameter:
fillColor - the new fill color, if null, the shape is not filled

Outline

Function

Description

Color getLineColor()

Returns the line color of the shape, or null if shape has no line color or has textured line (in this case getLineTexture() should be used instead) 

Texture getLineTexture()

Returns the outline texture, if the shape outline has texture.

void setLineColor(Color lineColor)

Sets the line color of the shape.

Parameter:
lineColor - the new line color, if null, the shape line is not drawn

void setLineColor(Object lineColor)

Sets the line color (or Texture) of the shape.

Parameter:
lineColor - the new line color, if null, the shape line is not drawn

double getLineWidth()

Returns the width of the shape outline. 

void setLineWidth
(double width)

Sets the width of the shape outline, 0 means thinnest possible.

Parameter:
width - the new width of the shape outline

int getLineStyle()

Returns the style of the shape outline: 

LINE_STYLE_SOLID, LINE_STYLE_DOTTED or LINE_STYLE_DASHED 

void setLineStyle(int style)

Sets the style of the shape outline: LINE_STYLE_SOLID, LINE_STYLE_DOTTED or LINE_STYLE_DASHED

Parameter:
style - the new style of the shape outline

Points inside the shape

Function

Description

boolean contains(double px, double py)

Test if the shape contains the point with the given coordinates (relative to this shape's container, i.e. in the same system with the coordinates of this shape, x and y) . Returns true if the shape contains the point with the given coordinates.

Parameters:
px - the x coordinate relative to this shape's container
py - the y coordinate relative to this shape's container

Point randomPointInside()

Returns the randomly chosen point inside the shape area.

This function utilises Random Number Generator of the Presentable object containing this shape. (Will throw an exception if the shape has been created from code and hasn't been added to any group, - in this case use randomPointInside(Random rng)).

Point randomPointInside
(java.util.Random rng)

Returns the randomly chosen point inside the shape area. This function utilises the given Random Number Generator.
Parameter:
rng - the random number generator.


Related topics

Moving Presentation Shapes

Resizing Presentation Shapes

Rotating Presentation Shapes

Changing Shape Color

Changing Shape's Outline Appearance

Changing Shape's Position in Stacking Order

 Aligning Shapes