![]() |
XII Release 0.1.0
|
Used by the editor to render gizmo meshes. More...
#include <GizmoComponent.h>
Public Attributes | |
xiiColor | m_GizmoColor = xiiColor::White |
bool | m_bIsPickable = true |
Protected Member Functions | |
virtual xiiMeshRenderData * | CreateRenderData () const override |
virtual xiiResult | GetLocalBounds (xiiBoundingBoxSphere &bounds, bool &bAlwaysVisible, xiiMsgUpdateLocalBounds &msg) override |
Called by xiiRenderComponent::OnUpdateLocalBounds(). | |
![]() | |
xiiUInt32 | Materials_GetCount () const |
xiiStringView | Materials_GetValue (xiiUInt32 uiIndex) const |
void | Materials_SetValue (xiiUInt32 uiIndex, xiiStringView sValue) |
void | Materials_Insert (xiiUInt32 uiIndex, xiiStringView sValue) |
void | Materials_Remove (xiiUInt32 uiIndex) |
void | OnMsgExtractRenderData (xiiMsgExtractRenderData &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 (xiiMsgUpdateLocalBounds &msg) |
void | InvalidateCachedRenderData () |
![]() | |
xiiComponent () | |
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 xiiWorldModuleTypeId | GetTypeId () const =0 |
virtual xiiComponentMode::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 (xiiMessage &msg, bool bWasPostedMsg) |
When EnableUnhandledMessageHandler() was activated, this is called for all messages for which there is no dedicated message handler. | |
virtual bool | OnUnhandledMessage (xiiMessage &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 |
Additional Inherited Members | |
![]() | |
void | OnMsgExtractGeometry (xiiMsgExtractGeometry &ref_msg) const |
Extracts the render geometry for export etc. | |
![]() | |
virtual void | SerializeComponent (xiiWorldWriter &inout_stream) const override |
Override this to save the current state of the component to the given stream. | |
virtual void | DeserializeComponent (xiiWorldReader &inout_stream) override |
Override this to load the current state of the component from the given stream. | |
void | SetMesh (const xiiMeshResourceHandle &hMesh) |
Changes which mesh to render. | |
XII_ALWAYS_INLINE const xiiMeshResourceHandle & | GetMesh () const |
XII_ADD_RESOURCEHANDLE_ACCESSORS_WITH_SETTER (Mesh, m_hMesh, SetMesh) | |
void | SetMaterial (xiiUInt32 uiIndex, const xiiMaterialResourceHandle &hMaterial) |
Sets the material that should be used for the sub-mesh with the given index. | |
xiiMaterialResourceHandle | GetMaterial (xiiUInt32 uiIndex) const |
void | SetColor (const xiiColor &color) |
An additional tint color passed to the renderer to modify the mesh. | |
const xiiColor & | 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 (xiiMsgSetMeshMaterial &ref_msg) |
void | OnMsgSetColor (xiiMsgSetColor &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. | |
XII_ALWAYS_INLINE xiiUInt32 | GetUniqueIdForRendering (xiiUInt32 uiInnerIndex=0, xiiUInt32 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. | |
xiiComponentManagerBase * | GetOwningManager () |
Returns the corresponding manager for this component. | |
const xiiComponentManagerBase * | GetOwningManager () const |
Returns the corresponding manager for this component. | |
xiiGameObject * | GetOwner () |
Returns the owner game object if the component is attached to one or nullptr. | |
const xiiGameObject * | GetOwner () const |
Returns the owner game object if the component is attached to one or nullptr. | |
xiiWorld * | GetWorld () |
Returns the corresponding world for this component. | |
const xiiWorld * | GetWorld () const |
Returns the corresponding world for this component. | |
xiiComponentHandle | GetHandle () const |
Returns a handle to this component. | |
xiiUInt32 | GetUniqueID () const |
Returns the unique id for this component. | |
void | SetUniqueID (xiiUInt32 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. | |
XII_ALWAYS_INLINE bool | SendMessage (xiiMessage &ref_msg) |
Sends a message to this component. | |
XII_ALWAYS_INLINE bool | SendMessage (xiiMessage &ref_msg) const |
void | PostMessage (const xiiMessage &msg, xiiTime delay=xiiTime::MakeZero(), xiiObjectMsgQueueType::Enum queueType=xiiObjectMsgQueueType::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 xiiMessage &msg) const |
Returns whether the given Message is handled by this component. | |
void | SetUserFlag (xiiUInt8 uiFlagIndex, bool bSet) |
Be careful to check which flags may already be in use by base classes. | |
bool | GetUserFlag (xiiUInt8 uiFlagIndex) const |
Retrieves a custom flag. Index must be between 0 and 7. | |
void | SetCreatedByPrefab () |
Adds xiiObjectFlags::CreatedByPrefab to the component. See the flag for details. | |
bool | WasCreatedByPrefab () const |
Checks whether the xiiObjectFlags::CreatedByPrefab flag is set on this component. | |
![]() | |
virtual const xiiRTTI * | GetDynamicRTTI () const |
bool | IsInstanceOf (const xiiRTTI *pType) const |
Returns whether the type of this instance is of the given type or derived from it. | |
template<typename T> | |
XII_ALWAYS_INLINE bool | IsInstanceOf () const |
Returns whether the type of this instance is of the given type or derived from it. | |
![]() | |
static xiiUInt32 | GetUniqueIdForRendering (const xiiComponent &component, xiiUInt32 uiInnerIndex=0, xiiUInt32 uiInnerIndexShift=24) |
Computes a unique ID for the given component, that is usually given to the renderer to distinguish objects. | |
![]() | |
static const xiiRTTI * | GetStaticRTTI () |
![]() | |
xiiMeshResourceHandle | m_hMesh |
xiiDynamicArray< xiiMaterialResourceHandle > | m_Materials |
xiiColor | m_Color = xiiColor::White |
float | m_fSortingDepthOffset = 0.0f |
![]() | |
const xiiRTTI * | m_pMessageDispatchType = nullptr |
Messages will be dispatched to this type. Default is what GetDynamicRTTI() returns, can be redirected if necessary. | |
Used by the editor to render gizmo meshes.
Gizmos use special shaders to have constant screen-space size and swap geometry towards the viewer, so their culling is non-trivial. This component takes care of that and of the highlight color.
|
overrideprotectedvirtual |
Reimplemented from xiiMeshComponentBase.
|
overrideprotectedvirtual |
Called by xiiRenderComponent::OnUpdateLocalBounds().
If XII_SUCCESS is returned, out_bounds and out_bAlwaysVisible will be integrated into the xiiMsgUpdateLocalBounds ref_msg, otherwise the out values are simply ignored.
Reimplemented from xiiMeshComponentBase.