|  | Pyrogenesis HEAD
    Pyrogenesis, a RTS Engine | 
#include <Model.h>


| Classes | |
| struct | Prop | 
| Public Member Functions | |
| CModel (const CSimulation2 &simulation, const CMaterial &material, const CModelDefPtr &modeldef) | |
| ~CModel () override | |
| CModel * | ToCModel () override | 
| Dynamic cast.  More... | |
| void | UpdateTo (float time) | 
| const CModelDefPtr & | GetModelDef () | 
| void | SetPlayerID (player_id_t id) override | 
| void | SetShadingColor (const CColor &color) override | 
| const CMaterial & | GetMaterial () | 
| bool | SetAnimation (CSkeletonAnim *anim, bool once=false) | 
| CSkeletonAnim * | GetAnimation () const | 
| void | CopyAnimationFrom (CModel *source) | 
| void | SetFlags (int flags) | 
| int | GetFlags () const | 
| void | AddFlagsRec (int flags) | 
| void | RemoveShadowsRec () | 
| void | SetTerrainDirty (ssize_t i0, ssize_t j0, ssize_t i1, ssize_t j1) override | 
| Called when terrain has changed in the given inclusive bounds.  More... | |
| void | SetEntityVariable (const std::string &name, float value) override | 
| Called when the entity tries to set some variable to affect the display of this model and/or its child objects.  More... | |
| void | CalcBounds () override | 
| Overridden to calculate both the world-space and object-space bounds of this model, and stores the result in m_Bounds and m_ObjectBounds, respectively.  More... | |
| const CBoundingBoxAligned & | GetObjectBounds () | 
| Returns the object-space bounds for this model, excluding its children.  More... | |
| const CBoundingBoxAligned | GetWorldBoundsRec () override | 
| Returns world space bounds of this object and all child objects.  More... | |
| void | CalcStaticObjectBounds () | 
| Auxiliary method; calculates object space bounds of this model, based solely on vertex positions, and stores the result in m_ObjectBounds.  More... | |
| void | CalcAnimatedObjectBounds (CSkeletonAnimDef *anim, CBoundingBoxAligned &result) | 
| Auxiliary method; calculate object-space bounds encompassing all vertex positions for given animation, and stores the result in m_ObjectBounds.  More... | |
| const CBoundingBoxAligned | GetObjectSelectionBoundsRec () override | 
| Reimplemented here since proper models should participate in selection boxes.  More... | |
| void | SetTransform (const CMatrix3D &transform) override | 
| Set transform of this object.  More... | |
| bool | IsSkinned () | 
| Return whether this is a skinned/skeletal model.  More... | |
| const CMatrix3D * | GetAnimatedBoneMatrices () | 
| void | AddProp (const SPropPoint *point, std::unique_ptr< CModelAbstract > model, CObjectEntry *objectentry, float minHeight=0.f, float maxHeight=0.f, bool selectable=true) | 
| Add a prop to the model on the given point.  More... | |
| void | AddAmmoProp (const SPropPoint *point, std::unique_ptr< CModelAbstract > model, CObjectEntry *objectentry) | 
| Add a prop to the model on the given point, and treat it as the ammo prop.  More... | |
| void | ShowAmmoProp () | 
| Show the ammo prop (if any), and hide any other props on that prop point.  More... | |
| void | HideAmmoProp () | 
| Hide the ammo prop (if any), and show any other props on that prop point.  More... | |
| CModelAbstract * | FindFirstAmmoProp () | 
| Find the first prop used for ammo, by this model or its own props.  More... | |
| std::vector< Prop > & | GetProps () | 
| const std::vector< Prop > & | GetProps () const | 
| std::unique_ptr< CModelAbstract > | Clone () const override | 
| void | ValidatePosition () override | 
| Ensure that both the transformation and the bone matrices are correct for this model and all its props.  More... | |
| void | InvalidatePosition () override | 
| Mark this model's position and bone matrices, and all props' positions as invalid.  More... | |
|  Public Member Functions inherited from CModelAbstract | |
| 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... | |
| Private Member Functions | |
| NONCOPYABLE (CModel) | |
| Private Attributes | |
| const CSimulation2 & | m_Simulation | 
| int | m_Flags {0} | 
| CMaterial | m_Material | 
| const CModelDefPtr | m_pModelDef | 
| CBoundingBoxAligned | m_ObjectBounds | 
| CSkeletonAnim * | m_Anim = nullptr | 
| float | m_AnimTime {0.0f} | 
| CMatrix3D * | m_BoneMatrices {nullptr} | 
| Current state of all bones on this model; null if associated modeldef isn't skeletal.  More... | |
| std::vector< Prop > | m_Props | 
| const SPropPoint * | m_AmmoPropPoint {nullptr} | 
| The prop point to which the ammo prop is attached, or NULL if none.  More... | |
| size_t | m_AmmoLoadedProp {0} | 
| If m_AmmoPropPoint is not NULL, then the index in m_Props of the ammo prop.  More... | |
| Additional Inherited Members | |
|  Public Attributes inherited from CModelAbstract | |
| 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 inherited from CModelAbstract | |
| 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 inherited from CModelAbstract | |
| 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... | |
| CModel::CModel | ( | const CSimulation2 & | simulation, | 
| const CMaterial & | material, | ||
| const CModelDefPtr & | modeldef | ||
| ) | 
| 
 | override | 
| void CModel::AddAmmoProp | ( | const SPropPoint * | point, | 
| std::unique_ptr< CModelAbstract > | model, | ||
| CObjectEntry * | objectentry | ||
| ) | 
Add a prop to the model on the given point, and treat it as the ammo prop.
The prop will be hidden by default.
| void CModel::AddFlagsRec | ( | int | flags | ) | 
| void CModel::AddProp | ( | const SPropPoint * | point, | 
| std::unique_ptr< CModelAbstract > | model, | ||
| CObjectEntry * | objectentry, | ||
| float | minHeight = 0.f, | ||
| float | maxHeight = 0.f, | ||
| bool | selectable = true | ||
| ) | 
Add a prop to the model on the given point.
| void CModel::CalcAnimatedObjectBounds | ( | CSkeletonAnimDef * | anim, | 
| CBoundingBoxAligned & | result | ||
| ) | 
Auxiliary method; calculate object-space bounds encompassing all vertex positions for given animation, and stores the result in m_ObjectBounds.
Called by CalcBounds (instead of CalcStaticBounds) if it has been determined that the object-space bounds need to take animations into account.
| 
 | overridevirtual | 
Overridden to calculate both the world-space and object-space bounds of this model, and stores the result in m_Bounds and m_ObjectBounds, respectively.
Implements CRenderableObject.
| void CModel::CalcStaticObjectBounds | ( | ) | 
Auxiliary method; calculates object space bounds of this model, based solely on vertex positions, and stores the result in m_ObjectBounds.
Called by CalcBounds (instead of CalcAnimatedObjectBounds) if it has been determined that the object-space bounds are static.
| 
 | overridevirtual | 
Implements CModelAbstract.
| void CModel::CopyAnimationFrom | ( | CModel * | source | ) | 
| CModelAbstract * CModel::FindFirstAmmoProp | ( | ) | 
Find the first prop used for ammo, by this model or its own props.
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
Returns the object-space bounds for this model, excluding its children.
| 
 | overridevirtual | 
Reimplemented here since proper models should participate in selection boxes.
Reimplemented from CModelAbstract.
| 
 | inline | 
| 
 | inline | 
| 
 | overridevirtual | 
Returns world space bounds of this object and all child objects.
Reimplemented from CModelAbstract.
| void CModel::HideAmmoProp | ( | ) | 
Hide the ammo prop (if any), and show any other props on that prop point.
| 
 | overridevirtual | 
Mark this model's position and bone matrices, and all props' positions as invalid.
Implements CModelAbstract.
| 
 | inline | 
Return whether this is a skinned/skeletal model.
If it is, Get*BoneMatrices() will return valid non-NULL arrays.
| 
 | private | 
| void CModel::RemoveShadowsRec | ( | ) | 
| bool CModel::SetAnimation | ( | CSkeletonAnim * | anim, | 
| bool | once = false | ||
| ) | 
| 
 | inlineoverridevirtual | 
Called when the entity tries to set some variable to affect the display of this model and/or its child objects.
Reimplemented from CModelAbstract.
| 
 | inline | 
| 
 | overridevirtual | 
Reimplemented from CModelAbstract.
| 
 | overridevirtual | 
Reimplemented from CModelAbstract.
| 
 | inlineoverridevirtual | 
Called when terrain has changed in the given inclusive bounds.
Might call SetDirty if the change affects this model.
Implements CModelAbstract.
| 
 | overridevirtual | 
Set transform of this object.
Reimplemented from CRenderableObject.
| void CModel::ShowAmmoProp | ( | ) | 
Show the ammo prop (if any), and hide any other props on that prop point.
| 
 | inlineoverridevirtual | 
Dynamic cast.
Reimplemented from CModelAbstract.
| void CModel::UpdateTo | ( | float | time | ) | 
| 
 | overridevirtual | 
Ensure that both the transformation and the bone matrices are correct for this model and all its props.
Implements CModelAbstract.
| 
 | private | 
If m_AmmoPropPoint is not NULL, then the index in m_Props of the ammo prop.
| 
 | private | 
The prop point to which the ammo prop is attached, or NULL if none.
| 
 | private | 
| 
 | private | 
| 
 | private | 
Current state of all bones on this model; null if associated modeldef isn't skeletal.
Props may attach to these bones by means of the SPropPoint::m_BoneIndex field; in this case their transformation matrix held is relative to the bone transformation (see SPropPoint and CModel::ValidatePosition).
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private | 
| 
 | private |