Isle
Loading...
Searching...
No Matches
TimeROI Class Reference

[AI] An extension of LegoROI that adds support for keeping and applying a base time reference (used for time-based animation/control). More...

#include <legoroi.h>

Inheritance diagram for TimeROI:
Collaboration diagram for TimeROI:

Public Member Functions

 TimeROI (Tgl::Renderer *p_renderer, ViewLODList *p_lodList, LegoTime p_time)
 [AI] Creates a TimeROI with reference time and LOD geometry. More...
 
void FUN_100a9b40 (Matrix4 &p_matrix, LegoTime p_time)
 [AI] Updates animated position/offset by integrating movement since last update (applying time delta). More...
 
- Public Member Functions inherited from LegoROI
 LegoROI (Tgl::Renderer *p_renderer)
 [AI] Constructs a new LegoROI for a given renderer. More...
 
 LegoROI (Tgl::Renderer *p_renderer, ViewLODList *p_lodList)
 [AI] Constructs a LegoROI with a specified LOD list to manage its geometry representations. More...
 
 ~LegoROI () override
 [AI] Destroys the LegoROI, cleaning up children and name resources. More...
 
LegoResult Read (OrientableROI *p_unk0xd4, Tgl::Renderer *p_renderer, ViewLODListManager *p_viewLODListManager, LegoTextureContainer *p_textureContainer, LegoStorage *p_storage)
 [AI] Reads and initializes this ROI from a LEGO project resource stream, populating geometry, color/texture, and children recursively. More...
 
LegoROIFindChildROI (const LegoChar *p_name, LegoROI *p_roi)
 [AI] Recursively searches for a child ROI by name, starting at the given ROI. More...
 
LegoResult FUN_100a8da0 (LegoTreeNode *p_node, const Matrix4 &p_matrix, LegoTime p_time, LegoROI *p_roi)
 [AI] [Unknown function. More...
 
LegoResult SetFrame (LegoAnim *p_anim, LegoTime p_time)
 [AI] Sets the current animation frame for this ROI based on a parsed animation structure. More...
 
LegoResult SetLodColor (LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha)
 [AI] Sets the RGBA color for all LODs and recursively for all children. More...
 
LegoResult SetTextureInfo (LegoTextureInfo *p_textureInfo)
 [AI] Associates every LOD in this ROI (and sub-ROIs) with a given texture (palette/material information). More...
 
LegoResult GetTextureInfo (LegoTextureInfo *&p_textureInfo)
 [AI] Attempts to retrieve a texture info pointer used by any LOD in this ROI or its children. More...
 
LegoResult FUN_100a9330 (LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha)
 [AI] Alias to SetLodColor; applies color to all LODs and children. More...
 
LegoResult SetLodColor (const LegoChar *p_name)
 [AI] Sets all LOD and child colors based on a named logical color alias. More...
 
LegoResult FUN_100a93b0 (const LegoChar *p_name)
 [AI] Like SetLodColor, but uses a different implementation or legacy style. More...
 
LegoU32 FUN_100a9410 (Vector3 &p_v1, Vector3 &p_v2, float p_f1, float p_f2, Vector3 &p_v3, LegoBool p_collideBox)
 [AI] Tests for collision along or within sphere/box, and computes intersection point as needed. More...
 
void SetName (const LegoChar *p_name)
 [AI] Sets this ROI's name, replacing the previous (converted to lower-case). More...
 
float IntrinsicImportance () const override
 [AI] Returns the importance rating for LOD/visibility management (fixed value). More...
 
void UpdateWorldBoundingVolumes () override
 [AI] Updates this ROI's world-space bounding volumes based on its local-to-world transform. More...
 
void ClearMeshOffset ()
 [AI] Resets mesh offset for all LODs in this ROI. More...
 
void SetDisplayBB (int p_displayBB)
 [AI] Sets whether to display or hide the bounding box. More...
 
const LegoCharGetName () const
 [AI] Gets this ROI's name. More...
 
LegoEntityGetEntity ()
 [AI] Gets the entity associated with this ROI (or NULL). More...
 
BoundingSphereGetBoundingSphere ()
 [AI] Accesses the local bounding sphere object. More...
 
void SetEntity (LegoEntity *p_entity)
 [AI] Associates a LegoEntity with this ROI (typically called by parent entity/logic). More...
 
void SetComp (CompoundObject *p_comp)
 [AI] Attaches a new CompoundObject pointer (container for child ROIs). More...
 
void SetBoundingSphere (const BoundingSphere &p_sphere)
 [AI] Sets the local and world bounding spheres. More...
 
void SetUnknown0x80 (const BoundingBox &p_unk0x80)
 [AI] Sets the local bounding box from read data. More...
 
- Public Member Functions inherited from ViewROI
 ViewROI (Tgl::Renderer *pRenderer, ViewLODList *lodList)
 [AI] Constructs a ViewROI with the specified renderer and LOD list. More...
 
 ~ViewROI () override
 [AI] Destructor cleans up internal geometry and releases LOD list reference. More...
 
void SetLODList (ViewLODList *lodList)
 [AI] Sets the ViewLODList for this ROI, managing reference counting. More...
 
float IntrinsicImportance () const override
 [AI] Returns the intrinsic importance of this ROI, used for LOD or sorting. More...
 
void VTable0x1c () override
 [AI] Updates internal state, potentially related to animation or LOD switching (exact purpose unclear). More...
 
void SetLocalTransform (const Matrix4 &p_transform) override
 [AI] Sets the local transformation; propagates to the underlying geometry group. More...
 
void VTable0x24 (const Matrix4 &p_transform) override
 [AI] Updates an internal transformation, synchronizing ROI and geometry. More...
 
virtual Tgl::GroupGetGeometry ()
 [AI] Returns a pointer to this ROI's Tgl::Group geometry for rendering and manipulation. More...
 
virtual const Tgl::GroupGetGeometry () const
 [AI] Returns a const pointer to this ROI's Tgl::Group geometry. More...
 
int GetUnknown0xe0 ()
 [AI] Gets the value of an internal state field at offset 0xe0. More...
 
void SetUnknown0xe0 (int p_unk0xe0)
 [AI] Sets the value of the internal state field at offset 0xe0. More...
 
- Public Member Functions inherited from OrientableROI
 OrientableROI ()
 Default constructor. More...
 
const float * GetWorldVelocity () const override
 Returns a pointer to the object's velocity vector in world space. More...
 
const BoundingBoxGetWorldBoundingBox () const override
 Returns the object's bounding box in world coordinates. More...
 
const BoundingSphereGetWorldBoundingSphere () const override
 Returns the object's bounding sphere in world coordinates. More...
 
virtual void VTable0x14 ()
 [AI] Calls VTable0x1c(). More...
 
virtual void UpdateWorldBoundingVolumes ()=0
 Recalculates all world bounding volumes from the current local-to-world transform. More...
 
virtual void VTable0x1c ()
 [AI] Concrete subclass implementation should implement this to perform post-bounding-volume-change logic. More...
 
virtual void SetLocalTransform (const Matrix4 &p_transform)
 Sets the local-to-world transformation matrix directly. More...
 
virtual void VTable0x24 (const Matrix4 &p_transform)
 Post-multiplies the current local-to-world matrix by p_transform. More...
 
virtual void UpdateWorldData (const Matrix4 &p_transform)
 Applies p_transform in (presumably) parent coordinates and updates world data for self and children. More...
 
virtual void UpdateWorldVelocity ()
 Updates the world velocity (must be implemented by subclasses if custom velocity logic is needed). More...
 
void WrappedSetLocalTransform (const Matrix4 &p_transform)
 Wraps SetLocalTransform, for possible override or interface uniformity. More...
 
void UpdateTransformationRelativeToParent (const Matrix4 &p_transform)
 Calculates and updates the world transform relative to this object's parent, then calls UpdateWorldData. More...
 
void WrappedVTable0x24 (const Matrix4 &p_transform)
 Wraps VTable0x24, possibly for decoupling or uniform invocation. More...
 
void GetLocalTransform (Matrix4 &p_transform)
 Retrieves the local-to-world transformation, or if there is a parent, computes the transform relative to it. More...
 
void FUN_100a58f0 (const Matrix4 &p_transform)
 Assigns the given matrix as the local-to-world transformation and enables some internal flags. More...
 
void FUN_100a5a30 (const Vector3 &p_world_velocity)
 Sets the world velocity to the provided vector. More...
 
const Matrix4GetLocal2World () const
 Accessor for the current local-to-world transformation matrix. More...
 
const float * GetWorldPosition () const
 Returns a pointer to the world position from the transformation matrix (translation row). More...
 
const float * GetWorldDirection () const
 Returns a pointer to the world direction vector (forward axis) from the transformation matrix. More...
 
const float * GetWorldUp () const
 Returns a pointer to the world up vector from the transformation matrix. More...
 
OrientableROIGetParentROI () const
 Accessor for the parent ROI in the transformation hierarchy. More...
 
void SetParentROI (OrientableROI *p_parentROI)
 Sets the parent ROI used for transformation hierarchy. More...
 
void ToggleUnknown0xd8 (BOOL p_enable)
 Enables or disables some bitfields in the internal unknown status variable m_unk0xd8. More...
 
- Public Member Functions inherited from ROI
 ROI ()
 [AI] Constructs an empty ROI, initially visible with no LOD or compound object assigned. More...
 
virtual ~ROI ()
 [AI] Destroys the ROI and asserts that 'comp' and 'lods' are managed/deleted by derived types. More...
 
virtual float IntrinsicImportance () const =0
 [AI] Returns the intrinsic importance (used for LOD selection, culling etc). More...
 
virtual const float * GetWorldVelocity () const =0
 [AI] Returns the object's world-space velocity as a pointer to float values. More...
 
virtual const BoundingBoxGetWorldBoundingBox () const =0
 [AI] Returns the world-space bounding box of the object. More...
 
virtual const BoundingSphereGetWorldBoundingSphere () const =0
 [AI] Returns the world-space bounding sphere of the object. More...
 
const LODListBaseGetLODs () const
 [AI] Returns the LOD list associated with this ROI, or NULL if not set. More...
 
const LODObjectGetLOD (int i) const
 [AI] Returns the LODObject at the specified index. More...
 
int GetLODCount () const
 [AI] Returns the number of available LODs for this ROI. More...
 
const CompoundObjectGetComp () const
 [AI] Returns the pointer to the compound object structure, or NULL if not present. More...
 
unsigned char GetVisibility ()
 [AI] Returns the visibility flag; true if visible, false if hidden. More...
 
void SetVisibility (unsigned char p_visible)
 [AI] Sets the visibility flag to the provided value. More...
 

Additional Inherited Members

- Public Types inherited from OrientableROI
enum  { c_bit1 = 0x01 , c_bit2 = 0x02 }
 
- Static Public Member Functions inherited from LegoROI
static void FUN_100a8e80 (LegoTreeNode *p_node, Matrix4 &p_matrix, LegoTime p_time, LegoROI **p_roiMap)
 [AI] [Static] Recursively evaluates animation nodes, updating the transformation matrices and visibility for ROI instances using a mapping table. More...
 
static void FUN_100a8fd0 (LegoTreeNode *p_node, Matrix4 &p_matrix, LegoTime p_time, LegoROI **p_roiMap)
 [AI] [Static] Similar to FUN_100a8e80, but only updates transformation matrices, not visibility or invocation. More...
 
static LegoResult FUN_100a8cb0 (LegoAnimNodeData *p_data, LegoTime p_time, Matrix4 &p_matrix)
 [AI] [Static] Sets the transform matrix for a given animation node at a specific time. More...
 
static void FUN_100a81b0 (const LegoChar *p_error, const LegoChar *p_name)
 [AI] [Static] Prints or logs an error message about missing ROI for animation (no-op in release). More...
 
static void configureLegoROI (int p_roi)
 [AI] [Static] Configures the global ROI loading limit, controlling max LODs at load time. More...
 
static void SetColorOverride (ColorOverride p_colorOverride)
 [AI] [Static] Sets the global color override callback function to allow palette remapping or customization. More...
 
static LegoBool GetRGBAColor (const LegoChar *p_name, float &p_red, float &p_green, float &p_blue, float &p_alpha)
 [AI] [Static] Resolves a logical color alias into RGBA floats. More...
 
static LegoBool ColorAliasLookup (const LegoChar *p_param, float &p_red, float &p_green, float &p_blue, float &p_alpha)
 [AI] [Static] Looks up a color alias in the static alias table and sets p_red/p_green/p_blue/p_alpha with normalized [0..1] floats. More...
 
static LegoBool GetPaletteEntries (const LegoChar *p_name, unsigned char *paletteEntries, LegoU32 p_numEntries)
 [AI] [Static] Fetches palette entries for a named texture using current texture handler. More...
 
- Static Public Member Functions inherited from ViewROI
static undefined SetUnk101013d8 (undefined p_flag)
 [AI] Sets the global flag g_unk101013d8 and returns its previous value. More...
 
- Protected Member Functions inherited from ViewROI
void UpdateWorldData (const Matrix4 &parent2world) override
 [AI] Updates object's and geometry's world transformation based on parent's world matrix. More...
 
- Protected Attributes inherited from ViewROI
Tgl::Groupgeometry
 [AI] Root group for all geometry/renderable objects for this ROI. More...
 
int m_unk0xe0
 [AI] Unidentified state integer, typically initialized to -1. More...
 
- Protected Attributes inherited from OrientableROI
MxMatrix m_local2world
 The transform from local to world space; 4x4 transformation matrix. More...
 
BoundingBox m_world_bounding_box
 The object's axis-aligned bounding box in world space, recalculated as needed. More...
 
BoundingBox m_unk0x80
 An unknown bounding box; usage unclear, could be related to extended collision or volume testing. More...
 
BoundingSphere m_world_bounding_sphere
 The object's bounding sphere in world space, recalculated from m_local2world. More...
 
Mx3DPointFloat m_world_velocity
 The object's velocity vector in world coordinates. More...
 
OrientableROIm_parentROI
 If non-null, points to the parent OrientableROI for local/world transformation hierarchy. More...
 
undefined4 m_unk0xd8
 Unknown status or flag field; bits manipulated via ToggleUnknown0xd8, possibly related to dirty state or internal update need. More...
 
- Protected Attributes inherited from ROI
CompoundObjectcomp
 [AI] List of sub-ROIs composing this ROI (compound object), or NULL. [AI] More...
 
LODListBaselods
 [AI] Pointer to list of LODObject instances, or NULL if not set. [AI] More...
 
unsigned char m_visible
 [AI] Visibility flag: nonzero = visible. [AI] More...
 

Detailed Description

[AI] An extension of LegoROI that adds support for keeping and applying a base time reference (used for time-based animation/control).

[AI] Stores a start/reference time, used in movement or animation interpolation. @size 0x10c [AI] @vtable LEGO1 0x100dbea8 [AI]

Definition at line 342 of file legoroi.h.

Constructor & Destructor Documentation

◆ TimeROI()

TimeROI::TimeROI ( Tgl::Renderer p_renderer,
ViewLODList p_lodList,
LegoTime  p_time 
)

[AI] Creates a TimeROI with reference time and LOD geometry.

Parameters
p_renderer[AI] The renderer/context.
p_lodList[AI] The view LOD list.
p_time[AI] Start or reference time for animation.

Definition at line 733 of file legoroi.cpp.

Member Function Documentation

◆ FUN_100a9b40()

void TimeROI::FUN_100a9b40 ( Matrix4 p_matrix,
LegoTime  p_time 
)

[AI] Updates animated position/offset by integrating movement since last update (applying time delta).

Parameters
p_matrix[AI] New matrix to compare/reference.
p_time[AI] Current time.

Definition at line 740 of file legoroi.cpp.


The documentation for this class was generated from the following files: