Namespace AS2
Classes
AlgorithmGenerator
Algorithm generation utility to be run in the Editor.
AlgorithmGeneratorEditor
Custom Unity Editor Inspector panel for the algorithm generation utility.
AlgorithmManager
Singleton class that uses reflection to manage all particle algorithms, providing an interface to access their names, generation methods and parameters.
AlgorithmManager.AlgorithmInfo
Represents a single particle algorithm and contains all information needed to create particles for it.
AmoebotFunctions
A collection of constants and utility methods for geometric calculations.
AmoebotSimulator
The main class of the entire simulator. Manages the particle system and the render system and provides the high-level interface for controlling the simulation. This class triggers the main render call in each frame and the round simulation in each fixed update.
CameraUtils
Static class providing various camera utility functions.
ColorData
Config
The static config utility for accessing the configuration data at runtime.
ConfigData
Container for all settings that can be modified in the configuration file. This class is serializable, so it can be translated to and from JSON easily.
ConfigData.AdditionalConfiguration
Container for all configuration settings that cannot be changed in the Settings Panel at runtime.
ConfigData.SettingsMenu
Container for all configuration settings that can also be changed in the Settings Panel at runtime.
ConfigurationEditor
Script for the configuration editor GameObject. The custom Inspector content is implemented by the ConfigurationEditorBehavior.
ConfigurationEditorBehavior
Custom editor implementation for the ConfigurationEditor.
Constants
Easily accessible constant symbols for more readable code.
DirectionHelpers
Defines extension methods and helpers for the Direction enum.
EventDatabase
FileBrowser
Utility for opening file dialogs used to save and load files
of several types. Uses the StandaloneFileBrowser
plugin.
This class saves the last used directory separately for each file type.
FileBrowser.FileTypeHandler
Helper class encapsulating all data and functionality needed to handle one file type.
FilePaths
InitModeSaveData
Serializable representation of UI data in Initialization Mode.
InitParticleSaveData
Serializable representation of an InitializationParticle's state.
Attributes are stored separately by type.
InitRandomWithHoles
Standard initialization method that generates a connected system of contracted particles with random holes. See GenerateRandomWithHoles(int, float, Chirality, Compass).
Initialization
Contains constants for the initialization mode.
InitializationMethod
Base class for algorithms that initialize a particle system.
Inherit from this class and implement a method called
Generate
to create an initialization algorithm.
An initialization algorithm creates a system of InitializationParticles, which is used as a template to initialize the system of Particles in which the simulation is carried out.
InitializationMethod.DistanceSortedVectorList
InitializationMethodManager
Singleton class that uses reflection to manage all initialization methods, providing an interface to access their names and parameters and to execute them to initialize the system.
InitializationMethodManager.AlgorithmInfo
Represents a single generation method and contains all information needed to initialize a system with it.
InitializationStateSaveData
Serializable representation of the system state in Initialization Mode used for saving and loading.
Log
Custom logging utility that displays log messages in
Unity's debug log and in the simulator's log panel.
Should be preferred over UnityEngine.Debug
.
MaterialDatabase
Contains references to all of the materials used in the simulation environment. All of the materials are loaded when the application starts.
MessageSaveData
Container for serializing arbitrary Message objects.
Because Unity's JSON deserializer requires the types of the objects to parse, which are not known when reading from a save file, all data stored in a Message is serialized by name, type and a string representation of its value. With the name of the Message subtype, reflection is then used to restore the original object. See CreateFromSaveData(MessageSaveData) for details.
MouseController
ParticleAttributeEnumSaveData
Specialized container for serializing particle attributes for enum values.
ParticleAttributePCSaveData
Specialized container for serializing particle attributes for pin configurations.
ParticleAttributeSaveDataBase
Container base for serializing particle attributes.
ParticleAttributeSaveData<T>
Container for serializing the simplest kind of particle attributes, ParticleAttributeWithHistory<T>.
ParticleObjectSaveData
ParticleStateSaveData
Container for all data a Particle requires to save and load its complete state.
PinConfigurationHistorySaveData
Container for serializing ValueHistoryPinConfiguration objects.
PinConfigurationSaveData
Compressed representation of pin configuration data. Stores all information stored in a SysPinConfiguration instance except the particle reference, particle-specific information and state flags.
This class should be used for storing pin configurations in attributes and writing them to save files. The class overloads the equality operator to compare instances by their content.
Note: This way of representing the pin configuration data is highly compressed and does not contain all information necessary to construct a pin configuration. The data must be interpreted in the context of a particle's expansion direction, chirality and compass orientation in order to reconstruct the original pin configuration.
RandomNumberGenerator
Simple wrapper around a random number generator that can be reset easily.
SaveStateUtility
Utility for saving and loading simulation states as well as particle configuration templates.
A simulation state comprises the entire history of all particles in
the system. It is stored in a SimulationStateSaveData
object, which can be serialized and deserialized by Unity's
JsonUtility
.
Similarly, InitModeSaveData objects represent the system state in Initialization Mode.
SimulationStateSaveData
Container for all data a ParticleSystem requires to save and load its complete state.
StatusInfoAttribute
A method attribute identifying a static method as a status info method. Static methods of algorithm classes that are marked with this attribute will be represented by buttons in the Particle Panel in Simulation Mode. The button belonging to each method will be marked with the given name.
TypeConverter
Utility class for converting strings to various types.
UIDatabase
Database of UI element prefabs used to assemble UI content dynamically.
ValueHistorySaveData<T>
Container for saving and loading ValueHistory<T> objects of serializable types.
Structs
CellRect
CellRect.CellRect_Iterator
MinMax
TypeConverter.ConversionResult
Result of the conversion. Check conversionSuccessful to see if it worked.
Enums
Direction
Constants for the 6 cardinal directions as well as the
6 directions perpendicular to them. The directions are
numbered 0,...,11
with direction E
being 0
and direction values increasing in
counter-clockwise direction.
The NONE value represents no direction. If it is used in any calculation, the result is undefined.
See DirectionHelpers for additional helper functions.
Initialization.Chirality
Particle chirality settings including a random setting.
Initialization.Compass
Particle compass directions including a random setting.
PSPlacementMode
Different modes of placing partition sets within a particle.