{{javascript}}Attributes : DefaultSealable
Abstract base class for all static simulation attributes. Implementations must provide a no-arg default contstructor (either implicitly or explicitly) to enable deserialization from JSON. Attributes are "static" parameters i.e. they are immutable while a simulation is running. This is implemented by deriving from the Sealable interface. Attributes can have setters, but the setters must call the {@code checkSealed()} method before changing a value! In addition, if an attributes class contains other attributes classes as fields, it must override #seal() to also seal these objects. All other fields must be immutable (e.g. String, Double, VPoint,...). The standard clone method makes a flat copy. This is enough if the subclass only triangleContains immutable fields. If the subclass triangleContains other Attributes objects, it must implement a copy constructor and override #clone() to make a deep copy.