Pyrogenesis trunk
|
Abstract base class for graphical objects that are used by units, or as props attached to other CModelAbstract objects. More...
#include <ModelAbstract.h>
Classes | |
struct | CustomSelectionShape |
Describes a custom selection shape to be used for a model's selection box instead of the default recursive bounding boxes. More... | |
Public Member Functions | |
CModelAbstract () | |
virtual | ~CModelAbstract () |
virtual std::unique_ptr< CModelAbstract > | Clone () const =0 |
virtual CModelDummy * | ToCModelDummy () |
Dynamic cast. More... | |
virtual CModel * | ToCModel () |
Dynamic cast. More... | |
virtual CModelDecal * | ToCModelDecal () |
Dynamic cast. More... | |
virtual CModelParticleEmitter * | ToCModelParticleEmitter () |
Dynamic cast. More... | |
virtual const CBoundingBoxAligned | GetWorldBoundsRec () |
Returns world space bounds of this object and all child objects. More... | |
virtual const CBoundingBoxOriented & | GetSelectionBox () |
Returns the world-space selection box of this model. More... | |
virtual void | InvalidateBounds () |
Marks the bounds as invalid. More... | |
void | SetCustomSelectionShape (CustomSelectionShape *descriptor) |
Sets a custom selection shape as described by a descriptor . More... | |
virtual const CBoundingBoxAligned | GetObjectSelectionBoundsRec () |
Returns the (object-space) bounds that should be used to construct a selection box for this model and its children. More... | |
virtual void | SetTerrainDirty (ssize_t i0, ssize_t j0, ssize_t i1, ssize_t j1)=0 |
Called when terrain has changed in the given inclusive bounds. More... | |
virtual void | SetEntityVariable (const std::string &name, float value) |
Called when the entity tries to set some variable to affect the display of this model and/or its child objects. More... | |
virtual void | ValidatePosition ()=0 |
Ensure that both the transformation and the bone matrices are correct for this model and all its props. More... | |
virtual void | InvalidatePosition ()=0 |
Mark this model's position and bone matrices, and all props' positions as invalid. More... | |
virtual void | SetPlayerID (player_id_t id) |
virtual player_id_t | GetPlayerID () const |
virtual void | SetShadingColor (const CColor &color) |
virtual const CColor & | GetShadingColor () const |
Public Member Functions inherited from CRenderableObject | |
CRenderableObject () | |
virtual | ~CRenderableObject () |
virtual void | SetTransform (const CMatrix3D &transform) |
const CMatrix3D & | GetTransform () const |
const CMatrix3D & | GetInvTransform () const |
void | SetDirty (u32 dirtyflags) |
virtual void | CalcBounds ()=0 |
(Re)calculates and stores any bounds or bound-dependent data for this object. More... | |
const CBoundingBoxAligned & | GetWorldBounds () |
Returns the world-space axis-aligned bounds of this object. More... | |
virtual void | InvalidateBounds () |
Marks the bounds as invalid. More... | |
void | SetRenderData (CRenderData *renderdata) |
CRenderData * | GetRenderData () |
Return object renderdata - can be null if renderer hasn't yet created the renderdata. More... | |
Public Attributes | |
CModelAbstract * | m_Parent |
If non-null, points to the model that we are attached to. More... | |
bool | m_PositionValid |
True if both transform and and bone matrices are valid. More... | |
player_id_t | m_PlayerID |
CColor | m_ShadingColor |
Modulating color. More... | |
Protected Member Functions | |
void | CalcSelectionBox () |
Protected Member Functions inherited from CRenderableObject | |
void | RecalculateBoundsIfNecessary () |
Factored out so subclasses don't need to repeat this if they want to add additional getters for bounds-related methods (since they'll have to make sure to recalc the bounds if necessary before they return it). More... | |
Protected Attributes | |
CBoundingBoxOriented | m_SelectionBox |
Selection box for this model. More... | |
bool | m_SelectionBoxValid |
Is the current selection box valid? More... | |
CustomSelectionShape * | m_CustomSelectionShape |
Pointer to a descriptor for a custom-defined selection box shape. More... | |
Protected Attributes inherited from CRenderableObject | |
CBoundingBoxAligned | m_WorldBounds |
World-space bounds of this object. More... | |
CMatrix3D | m_Transform |
CMatrix3D | m_InvTransform |
CRenderData * | m_RenderData |
bool | m_BoundsValid |
Remembers whether any bounds need to be recalculated. More... | |
Private Member Functions | |
NONCOPYABLE (CModelAbstract) | |
Abstract base class for graphical objects that are used by units, or as props attached to other CModelAbstract objects.
This includes meshes, terrain decals, and sprites. These objects exist in a tree hierarchy.
|
inline |
|
inlinevirtual |
|
protected |
|
pure virtual |
Implemented in CModelDecal, CModel, CModelDummy, and CModelParticleEmitter.
|
inlinevirtual |
Returns the (object-space) bounds that should be used to construct a selection box for this model and its children.
May return an empty bound to indicate that this model and its children should not be selectable themselves, or should not be included in its parent model's selection box. This method is used for constructing the default selection boxes, as opposed to any boxes of custom shape specified by m_CustomSelectionShape.
If you wish your model type to be included in selection boxes, override this method and have it return the object-space bounds of itself, augmented recursively (via this method) with the object-space selection bounds of its children.
Reimplemented in CModel.
|
inlinevirtual |
|
virtual |
Returns the world-space selection box of this model.
Used primarily for hittesting against against a selection ray. The returned selection box may be empty to indicate that it does not wish to participate in the selection process.
|
inlinevirtual |
|
inlinevirtual |
Returns world space bounds of this object and all child objects.
Reimplemented in CModel.
|
inlinevirtual |
Marks the bounds as invalid.
This will trigger RecalculateBoundsIfNecessary to recompute any bound-related data the next time any bound-related data is requested through a public interface – at least, if you've made sure to call it before returning the stored data.
Reimplemented from CRenderableObject.
|
pure virtual |
Mark this model's position and bone matrices, and all props' positions as invalid.
Implemented in CModelDecal, CModel, CModelDummy, and CModelParticleEmitter.
|
private |
|
inline |
Sets a custom selection shape as described by a descriptor
.
Argument may be NULL if you wish to keep the default behaviour of using the recursively-calculated bounding boxes.
|
inlinevirtual |
Called when the entity tries to set some variable to affect the display of this model and/or its child objects.
Reimplemented in CModel, and CModelParticleEmitter.
|
inlinevirtual |
Reimplemented in CModel.
|
inlinevirtual |
Reimplemented in CModel.
|
pure virtual |
Called when terrain has changed in the given inclusive bounds.
Might call SetDirty if the change affects this model.
Implemented in CModelDecal, CModel, CModelParticleEmitter, and CModelDummy.
|
inlinevirtual |
Dynamic cast.
Reimplemented in CModelDecal.
|
inlinevirtual |
Dynamic cast.
Reimplemented in CModelDummy.
|
inlinevirtual |
Dynamic cast.
Reimplemented in CModelParticleEmitter.
|
pure virtual |
Ensure that both the transformation and the bone matrices are correct for this model and all its props.
Implemented in CModelDecal, CModel, CModelDummy, and CModelParticleEmitter.
|
protected |
Pointer to a descriptor for a custom-defined selection box shape.
If no custom selection box is required, this is NULL and the standard recursive-bounding-box-based selection box is used. Otherwise, a custom selection box described by this field will be used.
CModelAbstract* CModelAbstract::m_Parent |
If non-null, points to the model that we are attached to.
player_id_t CModelAbstract::m_PlayerID |
bool CModelAbstract::m_PositionValid |
True if both transform and and bone matrices are valid.
|
protected |
Selection box for this model.
|
protected |
Is the current selection box valid?
CColor CModelAbstract::m_ShadingColor |
Modulating color.