|
| class | Game1 |
| | Sign-in, authentication, and assignment/teacher window functionality. More...
|
| class | ConsoleCommandAttribute |
| | Attribute to mark methods as console commands. The CommandPath property specifies the command path that will be used to invoke the method from the debug console. For example, a method marked with [ConsoleCommand("Mesh.AddTire")] can be invoked by entering "Mesh.AddTire" in the debug console, along with any required parameters. This attribute allows for easy registration and organization of debug commands within the application. More...
|
| class | CommandRegistry |
| | Registry for console commands that can be invoked from the debug console. This class allows for registering methods as console commands using the ConsoleCommandAttribute, and provides functionality to invoke these commands based on user input. The commands are stored in a dictionary for efficient lookup, and the registry supports invoking commands with parameters as well as listing all registered commands. This system enables a flexible and extensible way to add debug functionality to the application without hardcoding command handling logic in the main game loop. More...
|
| class | ImGuiLogger |
| | the logger class for ImGui with support for different types of logs, auto condensing for repeated messages and colouring of the logs also includes a debug console support with command history More...
|
| class | Factory |
| | Base class for factories that create different types of structures in the mesh. Each factory has a name, a method to execute when the factory is invoked, and a dictionary of parameters that can be configured by the user. The Factory class serves as a template for specific factories like TireFactory and ClothFactory, which define their own parameters and methods for creating specific structures in the mesh. This design allows for easy extension by simply creating new factory classes that inherit from Factory and implement their own creation logic and parameters. The factories can then be used in the UI to allow users to quickly create complex structures with configurable parameters without needing to write custom code for each structure type. More...
|
| class | TireFactory |
| | Factory for creating a hub-and-spoke tire structure in the mesh. More...
|
| class | ClothFactory |
| | /// Factory for creating a rectangular cloth structure in the mesh. More...
|
| class | Game1Database |
| class | Collider |
| | The Collider class is the base class for all types of colliders this is so that they can be stored in the same list and used for collision detection. More...
|
| class | CircleCollider |
| | The CircleCollider class represents a circular collider with a specified radius and position. More...
|
| class | RectangleCollider |
| | The RectangleCollider class represents an axis-aligned rectangular collider defined by a Rectangle structure. More...
|
| class | SeperatedAxisRectangleCollider |
| | The SeperatedAxisRectangleCollider class represents a rectangle collider that can be rotated and uses the Separating Axis Theorem (SAT) for collision detection. More...
|
| class | PolygonSeperatedAxisCollider |
| | general polygon collider that uses the Separating Axis Theorem (SAT) for collision detection, which can represent any shape not self intersectiong such as rectangles, triangles, and more complex polygons. More...
|
| class | FileWriteableMesh |
| | The FileWriteableMesh class serves as a serializable representation of the Mesh class, allowing for easy saving and loading of mesh data to and from JSON format. It contains nested classes for particle and stick data, as well as collider information, and provides methods to convert between the FileWriteableMesh and the original Mesh class. This design enables the application to persist mesh configurations, including particle properties, stick connections, and colliders, while also supporting oscillating particles with their specific parameters. The ToMesh method reconstructs a Mesh instance from the stored data, ensuring that all relevant properties are correctly transferred for accurate physics simulations when loaded back into the application. More...
|
| class | Mesh |
| | The Mesh class stores everything that should be loadable in and savebal for undo/redo functionality to file saving. More...
|
| class | Particle |
| | The Particle class represents a single particle in the physics simulation, containing properties such as position, mass, accumulated force, and whether it is pinned or selected. The DrawableParticle class extends Particle by adding visual properties like color and size, and includes a method to draw itself using a SpriteBatch and PrimitiveBatch. The OscillatingParticle class further extends DrawableParticle to include oscillation parameters such as amplitude, frequency, and angle, allowing it to move in a sinusoidal pattern around an anchor position. This design allows for flexible representation of particles in the simulation, supporting both static and dynamic behaviors while also providing visual feedback for rendering. More...
|
| class | DrawableParticle |
| class | OscillatingParticle |
| | the OscillatingParticle class extends DrawableParticle to include oscillation parameters such as amplitude, frequency, and angle, allowing it to move in a sinusoidal pattern around an anchor position. The UpdateOscillation method updates the particle's position based on the oscillation parameters and the elapsed time, creating a dynamic movement effect. The SetAnchorPosition method allows changing the anchor point around which the particle oscillates, providing flexibility in how the particle behaves within the simulation. More...
|
| class | Stick |
| | The Stick class represents a connection between two particles in the physics simulation, defined by its endpoints (P1 and P2) and its natural length. The DrawableStick class extends Stick by adding visual properties such as color and width, and includes a method to draw itself using a SpriteBatch and PrimitiveBatch. The IsCut property allows for simulating stick breakage, where a stick can be marked as cut to prevent it from being drawn or participating in physics interactions. This design allows for flexible representation of connections between particles, supporting both intact and broken sticks while also providing visual feedback for rendering the mesh structure. More...
|
| class | DrawableStick |
| class | Tool |
| class | Program |