Defines the Object3D class, representing a 3D object with geometry, material, and transformation data...
Interface for managing a static group of 3D triangles and associated data.
virtual const Vector3D * GetVertices()=0
Retrieves the array of vertices in the triangle group.
Interface for managing a dynamic group of 3D triangles and associated data.
virtual Vector3D * GetVertices()=0
Retrieves the array of mutable vertices in the triangle group.
virtual int GetVertexCount()=0
Retrieves the total number of vertices in the group.
Abstract base class for rendering materials.
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.
Object3D(IStaticTriangleGroup *originalTriangles, ITriangleGroup *modifiedTriangles, Material *material)
Constructs an Object3D instance.
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.
Vector2D RotateVector(const Vector2D &v) const
Rotates a 2D vector by this quaternion, projecting it in 2D.
Represents a 3D vector (X, Y, Z) and provides methods for vector arithmetic.
float Max() const
Returns the maximum component value among X, Y, Z.
float Min() const
Returns the minimum component value among X, Y, Z.
Vector3D Divide(const Vector3D &vector) const
Divides this vector by another Vector3D component-wise.