15#include "../Materials/Material.h"
16#include "../../Utils/Math/Transform.h"
17#include "../../Renderer/Utils/TriangleGroup.h"
18#include "../../Renderer/Utils/StaticTriangleGroup.h"
Interface for managing a static group of 3D triangles and associated data.
Interface for managing a dynamic group of 3D triangles and associated data.
Abstract base class for rendering materials.
Represents a 3D object with geometry, material, and transformation data.
void Disable()
Disables the object, making it invisible and inactive.
bool IsEnabled()
Checks if the object is enabled.
ITriangleGroup * modifiedTriangles
Pointer to the modifiable representation of the object's geometry.
IStaticTriangleGroup * originalTriangles
Pointer to the static representation of the object's geometry.
Transform transform
Transform object representing the object's position, rotation, and scale.
void ResetVertices()
Resets the object's vertices to their original positions.
void SetTransform(Transform &t)
Sets the object's transformation data.
Material * GetMaterial()
Retrieves the material assigned to the object.
Vector3D GetSize()
Retrieves the size of the object.
bool enabled
Indicates whether the object is currently enabled.
~Object3D()
Destructor for Object3D.
Vector3D GetCenterOffset()
Retrieves the object's center offset.
void Enable()
Enables the object, making it visible and active.
void UpdateTransform()
Updates the object's geometry based on its transformation data.
void SetMaterial(Material *material)
Sets the material for the object.
ITriangleGroup * GetTriangleGroup()
Retrieves the modifiable geometry of the object.
void GetMinMaxDimensions(Vector3D &minimum, Vector3D &maximum)
Retrieves the minimum and maximum dimensions of the object.
Material * material
Pointer to the material assigned to the object.
Transform * GetTransform()
Retrieves the object's transformation data.
Represents a 3D vector (X, Y, Z) and provides methods for vector arithmetic.