AnyLogic
Expand
Font size
All Implemented Interfaces:
com.anylogic.engine.internal.Child, Locatable2D, AggregatableAnimationElement, HasLevel, LevelElement, SVGElement, UsdElement, Serializable, Cloneable

public class ShapeCAD
extends Shape
implements com.anylogic.engine.internal.Child
Persistent CAD drawing shape.

Author:
AnyLogic North America, LLC https://anylogic.com
See Also:
Serialized Form

Field Summary

Fields inherited from class com.anylogic.engine.presentation.Shape

UNKNOWN_NAME

Fields inherited from interface com.anylogic.engine.presentation.UsdElement

ID_NOT_SET

Constructor Summary

ConstructorDescription
ShapeCAD(Presentable presentable, boolean ispublic, double x, double y, double width, double height, String packagePrefix, String filename, int id, Color backgroundColor, String[] layerNames, Color[] customLayerColors, int drawingAttributes)
Constructs a CAD drawing shape with specific attributes.

Method Summary

Modifier and TypeMethodDescription
final ShapeCADclone()
Creates and returns a copy of this shape (i.e.
booleancontains(double px, double py)
Test if the shape contains the point with the given coordinates (relative to this shape's container, i.e.
ColorgetBackgroundColor() 
ColorgetCustomLayerColor(String layerName)
Returns custom color of the layer's shapes, if the one is defined.
doublegetHeight()
Returns the height of the shape.
StringgetImageFileName()
Returns the file name of the CAD drawing.
String[]getLayerNames()
Returns the array of layer names in this CAD, the returned array is backed by this shape and therefore shouldn't be modified by user.
PresentablegetPresentable()
Returns the Presentable object (Agent or Experiment) where this shape belongs to, or null.
doublegetWidth()
Returns the width of the shape.
booleanisLayerVisible(String layerName)
Returns true if the layer with the given name is visible, otherwise returns false.
Returns false if layer with the given name isn't found.
voidpostSVGShapeSpecificAttributes(List<String> att, List<String> val, boolean publicOnly)
Posts general properties specific to a particular shape class.
voidprintCAD() 
PointrandomPointInside(Random rng)
Returns the randomly chosen point inside the shape area.
This method utilises the given Random Number Generator.
Throws error if this shape type doesn't support returning random point inside.
voidrestoreOwner(Object owner)
Deprecated.
voidsetBackgroundColor(Color backgroundColor) 
voidsetCustomLayerColor(String layerName, Color color)
Sets custom color for all the shapes for the given layer.
voidsetHeight(double height)
Sets the height of the shape.
voidsetLayerVisible(String layerName, boolean visible)
Makes the layer with the given name visible/invisible.
Throws an error if layer with the given name isn't found.
voidsetVisibleLayers(String... layerNames)
Makes the layers with given names visible and hides all other layers in this CAD.
Throws an error if layer(s) with the given name isn't found.
To show all the layers, please call setVisibleLayers(getLayerNames())
voidsetWidth(double width)
Sets the width of the shape.

Methods inherited from class java.lang.Object

equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Methods inherited from interface com.anylogic.engine.markup.AggregatableAnimationElement

initializeInternal, postInitialize

Constructor Details

ShapeCAD

public ShapeCAD(Presentable presentable,
 boolean ispublic,
 double x,
 double y,
 double width,
 double height,
 String packagePrefix,
 String filename,
 int id,
 Color backgroundColor,
 String[] layerNames,
 Color[] customLayerColors,
 int drawingAttributes)
Constructs a CAD drawing shape with specific attributes.
Parameters:
presentable - the presentable object owning this shape
ispublic - if true, the shape is visible on container's presentation
x - the x coordinate of the shape upper left corner
y - the y coordinate of the shape upper left corner
width - the width of the shape
height - the height of the shape
packagePrefix - the package name of original agent where this CAD is defined, formatted using '/' characters; with '/' character at the beginning and at the end
filename - the CAD drawing file name (.DXF)
backgroundColor - the background color for CAD drawing
layerNames - the array of names of CAD layers to be drawn.
customLayerColors - the array of the same length as layerNames. Allows user to specify custom color for all the shapes in a particular layer(s). Default layer colors are used for layers having null item in this array.
drawingAttributes - the drawing attributes, this value should be zero or an "OR" combination of CAD_* constants, e.g. CAD_INVERTED | CAD_ANTIALIASING

Method Details

setWidth

public void setWidth(double width)
Sets the width of the shape.
Parameters:
width - the width of the shape

getWidth

public double getWidth()
Returns the width of the shape.
Returns:
the width of the shape

setHeight

public void setHeight(double height)
Sets the height of the shape.
Parameters:
height - the height of the shape

getHeight

public double getHeight()
Returns the height of the shape.
Returns:
the height of the shape

randomPointInside

public Point randomPointInside(Random rng)
Description copied from class: Shape
Returns the randomly chosen point inside the shape area.
This method utilises the given Random Number Generator.
Throws error if this shape type doesn't support returning random point inside.
Overrides:
randomPointInside in class Shape
Parameters:
rng - the random number generator.
Returns:
the randomly chosen point inside the shape area.

getImageFileName

public String getImageFileName()
Returns the file name of the CAD drawing.
Returns:
the file name of the CAD drawing

getLayerNames

public String[] getLayerNames()
Returns the array of layer names in this CAD, the returned array is backed by this shape and therefore shouldn't be modified by user.
Returns:
the array of layer names

isLayerVisible

public boolean isLayerVisible(String layerName)
Returns true if the layer with the given name is visible, otherwise returns false.
Returns false if layer with the given name isn't found.
Parameters:
layerName - the name of the layer
Returns:
true if the layer with the given name is visible.

setLayerVisible

public void setLayerVisible(String layerName,
 boolean visible)
Makes the layer with the given name visible/invisible.
Throws an error if layer with the given name isn't found.
Parameters:
layerName - the name of the layer
visible - new visibility state of the layer

setVisibleLayers

public void setVisibleLayers(String... layerNames)
Makes the layers with given names visible and hides all other layers in this CAD.
Throws an error if layer(s) with the given name isn't found.
To show all the layers, please call setVisibleLayers(getLayerNames())
Parameters:
layerNames - visible layer names

getCustomLayerColor

public Color getCustomLayerColor(String layerName)
Returns custom color of the layer's shapes, if the one is defined. Otherwise returns null.
Returns null if layer with the given name isn't found.
Parameters:
layerName - the name of the layer
Returns:
custom color of the layer's shapes

setCustomLayerColor

public void setCustomLayerColor(String layerName,
 Color color)
Sets custom color for all the shapes for the given layer. The value of null indicates that layer will be drawn using its default color(s).
Throws an error if layer with the given name isn't found.
Parameters:
layerName - the name of the layer
color - the value of custom layer color, or null

getBackgroundColor

public Color getBackgroundColor()

setBackgroundColor

public void setBackgroundColor(Color backgroundColor)

contains

public boolean contains(double px,
 double py)
Description copied from class: Shape
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)
Specified by:
contains in class Shape
Parameters:
px - the x coordinate relative to this shape's container
py - the y coordinate relative to this shape's container
Returns:
true if the shape contains the point with the given coordinates

getPresentable

public Presentable getPresentable()
Description copied from class: Shape
Returns the Presentable object (Agent or Experiment) where this shape belongs to, or null.
Overrides:
getPresentable in class Shape
Returns:
the Presentable that owns this shape, or null

restoreOwner

@AnyLogicInternalCodegenAPI
@Deprecated
public void restoreOwner(Object owner)
Deprecated.
Description copied from class: Shape
This method normally should not be called by user
This method restores owner of this object
The method is used in snapshot saving/loading
Specified by:
restoreOwner in interface com.anylogic.engine.internal.Child
Overrides:
restoreOwner in class Shape
Parameters:
owner - owner of this object, usually Agent, Experiment or ShapeGroup

clone

public final ShapeCAD clone()
Description copied from class: Shape
Creates and returns a copy of this shape (i.e. new shape instance).
The returned shape is the object of the same class
The returned copy isn't automatically added to the group this shape belongs to.
The clone is created in the context of the same experiment or agent

Note that cloning of GIS shape, controls and charts is not supported
Overrides:
clone in class Shape

postSVGShapeSpecificAttributes

public void postSVGShapeSpecificAttributes(List<String> att,
 List<String> val,
 boolean publicOnly)
Description copied from class: Shape
Posts general properties specific to a particular shape class. Is triggered by SVG_DIRTY_SHAPE flag. Made public for occasional posting of additional SVG properties from outside engine (e.g. from libraries)
Overrides:
postSVGShapeSpecificAttributes in class Shape
Parameters:
att - attribute names
val - attribute values
publicOnly - TODO

printCAD

public void printCAD()