![]() |
Plasma Engine
2.0
|
Renders a single instance of a static mesh. More...
#include <MeshComponent.h>
Public Member Functions | |
void | OnMsgExtractGeometry (plMsgExtractGeometry &ref_msg) const |
Extracts the render geometry for export etc. | |
![]() | |
virtual void | SerializeComponent (plWorldWriter &inout_stream) const override |
Override this to save the current state of the component to the given stream. | |
virtual void | DeserializeComponent (plWorldReader &inout_stream) override |
Override this to load the current state of the component from the given stream. | |
virtual plResult | GetLocalBounds (plBoundingBoxSphere &ref_bounds, bool &ref_bAlwaysVisible, plMsgUpdateLocalBounds &ref_msg) override |
Called by plRenderComponent::OnUpdateLocalBounds(). If PL_SUCCESS is returned, bounds and bAlwaysVisible will be integrated into the plMsgUpdateLocalBounds result, otherwise the out values are simply ignored. | |
void | SetMesh (const plMeshResourceHandle &hMesh) |
Changes which mesh to render. | |
PL_ALWAYS_INLINE const plMeshResourceHandle & | GetMesh () const |
void | SetMaterial (plUInt32 uiIndex, const plMaterialResourceHandle &hMaterial) |
Sets the material that should be used for the sub-mesh with the given index. | |
plMaterialResourceHandle | GetMaterial (plUInt32 uiIndex) const |
void | SetMeshFile (const char *szFile) |
const char * | GetMeshFile () const |
void | SetColor (const plColor &color) |
An additional tint color passed to the renderer to modify the mesh. | |
const plColor & | GetColor () const |
void | SetSortingDepthOffset (float fOffset) |
The sorting depth offset allows to tweak the order in which this mesh is rendered relative to other meshes. | |
float | GetSortingDepthOffset () const |
void | OnMsgSetMeshMaterial (plMsgSetMeshMaterial &ref_msg) |
void | OnMsgSetColor (plMsgSetColor &ref_msg) |
![]() | |
void | TriggerLocalBoundsUpdate () |
Call this when some value was modified that affects the size of the local bounding box and it should be recomputed. | |
PL_ALWAYS_INLINE plUInt32 | GetUniqueIdForRendering (plUInt32 uiInnerIndex=0, plUInt32 uiInnerIndexShift=24) const |
Computes a unique ID for the given component, that is usually given to the renderer to distinguish objects. | |
![]() | |
void | SetActiveFlag (bool bEnabled) |
Sets the active flag of the component, which affects its active state. | |
bool | GetActiveFlag () const |
Checks whether the 'active flag' is set on this component. Note that this does not mean that the component is also 'active'. | |
bool | IsActive () const |
Checks whether this component is in an active state. | |
bool | IsActiveAndInitialized () const |
Returns whether this component is active and initialized. | |
bool | IsActiveAndSimulating () const |
Whether the component is currently active and simulation has been started as well. | |
plComponentManagerBase * | GetOwningManager () |
Returns the corresponding manager for this component. | |
const plComponentManagerBase * | GetOwningManager () const |
Returns the corresponding manager for this component. | |
plGameObject * | GetOwner () |
Returns the owner game object if the component is attached to one or nullptr. | |
const plGameObject * | GetOwner () const |
Returns the owner game object if the component is attached to one or nullptr. | |
plWorld * | GetWorld () |
Returns the corresponding world for this component. | |
const plWorld * | GetWorld () const |
Returns the corresponding world for this component. | |
plComponentHandle | GetHandle () const |
Returns a handle to this component. | |
plUInt32 | GetUniqueID () const |
Returns the unique id for this component. | |
void | SetUniqueID (plUInt32 uiUniqueID) |
Sets the unique id for this component. | |
void | EnsureInitialized () |
Ensures that the component is initialized. Must only be called from another component's Initialize callback. | |
void | EnsureSimulationStarted () |
Ensures that the OnSimulationStarted method has been called. Must only be called from another component's OnSimulationStarted callback. | |
PL_ALWAYS_INLINE bool | SendMessage (plMessage &ref_msg) |
Sends a message to this component. | |
PL_ALWAYS_INLINE bool | SendMessage (plMessage &ref_msg) const |
void | PostMessage (const plMessage &msg, plTime delay=plTime::MakeZero(), plObjectMsgQueueType::Enum queueType=plObjectMsgQueueType::NextFrame) const |
Queues the message for the given phase. The message is processed after the given delay in the corresponding phase. | |
virtual bool | HandlesMessage (const plMessage &msg) const |
Returns whether the given Message is handled by this component. | |
void | SetUserFlag (plUInt8 uiFlagIndex, bool bSet) |
Be careful to check which flags may already be in use by base classes. | |
bool | GetUserFlag (plUInt8 uiFlagIndex) const |
Retrieves a custom flag. Index must be between 0 and 7. | |
void | SetCreatedByPrefab () |
Adds plObjectFlags::CreatedByPrefab to the component. See the flag for details. | |
bool | WasCreatedByPrefab () const |
Checks whether the plObjectFlags::CreatedByPrefab flag is set on this component. | |
![]() | |
virtual const plRTTI * | GetDynamicRTTI () const |
bool | IsInstanceOf (const plRTTI *pType) const |
Returns whether the type of this instance is of the given type or derived from it. | |
template<typename T > | |
PL_ALWAYS_INLINE bool | IsInstanceOf () const |
Returns whether the type of this instance is of the given type or derived from it. | |
Additional Inherited Members | |
![]() | |
static plUInt32 | GetUniqueIdForRendering (const plComponent &component, plUInt32 uiInnerIndex=0, plUInt32 uiInnerIndexShift=24) |
Computes a unique ID for the given component, that is usually given to the renderer to distinguish objects. | |
![]() | |
static const plRTTI * | GetStaticRTTI () |
![]() | |
virtual plMeshRenderData * | CreateRenderData () const |
plUInt32 | Materials_GetCount () const |
const char * | Materials_GetValue (plUInt32 uiIndex) const |
void | Materials_SetValue (plUInt32 uiIndex, const char *value) |
void | Materials_Insert (plUInt32 uiIndex, const char *value) |
void | Materials_Remove (plUInt32 uiIndex) |
void | OnMsgExtractRenderData (plMsgExtractRenderData &msg) const |
![]() | |
virtual void | Deinitialize () override |
This method is called before the component is destroyed. A derived type can override this method to do common de-initialization work. | |
virtual void | OnActivated () override |
This method is called when the component gets activated. | |
virtual void | OnDeactivated () override |
This method is called when the component gets deactivated. | |
void | OnUpdateLocalBounds (plMsgUpdateLocalBounds &msg) |
void | InvalidateCachedRenderData () |
![]() | |
plComponent () | |
Keep the constructor private or protected in derived classes, so it cannot be called manually. | |
bool | IsDynamic () const |
Returns whether this component is dynamic and thus can only be attached to dynamic game objects. | |
virtual plWorldModuleTypeId | GetTypeId () const =0 |
virtual plComponentMode::Enum | GetMode () const =0 |
virtual void | Initialize () |
Can be overridden for basic initialization that depends on a valid hierarchy and position. | |
virtual void | OnSimulationStarted () |
This method is called once for active components, at the start of the next world update, but only when the world is simulated. | |
void | EnableUnhandledMessageHandler (bool enable) |
By default disabled. Enable to have OnUnhandledMessage() called for every unhandled message. | |
virtual bool | OnUnhandledMessage (plMessage &msg, bool bWasPostedMsg) |
When EnableUnhandledMessageHandler() was activated, this is called for all messages for which there is no dedicated message handler. | |
virtual bool | OnUnhandledMessage (plMessage &msg, bool bWasPostedMsg) const |
When EnableUnhandledMessageHandler() was activated, this is called for all messages for which there is no dedicated message handler. | |
bool | IsInitialized () const |
bool | IsInitializing () const |
bool | IsSimulationStarted () const |
![]() | |
plMeshResourceHandle | m_hMesh |
plDynamicArray< plMaterialResourceHandle > | m_Materials |
plColor | m_Color = plColor::White |
float | m_fSortingDepthOffset = 0.0f |
![]() | |
const plRTTI * | m_pMessageDispatchType = nullptr |
Messages will be dispatched to this type. Default is what GetDynamicRTTI() returns, can be redirected if necessary. | |
Renders a single instance of a static mesh.
This is the main component to use for rendering regular meshes.