XII Release 0.1.0
Loading...
Searching...
No Matches
xiiEngineGizmoHandle Class Reference

#include <GizmoHandle.h>

Inheritance diagram for xiiEngineGizmoHandle:
[legend]

Public Member Functions

void ConfigureHandle (xiiGizmo *pOwner, xiiEngineGizmoHandleType type, const xiiColor &color, xiiBitflags< xiiGizmoFlags > flags, const char *szCustomMesh=nullptr)
void SetColor (const xiiColor &color)
bool IsAlwaysOnTop () const
xiiUInt32 GetPickingID () const
bool SetupForEngine (xiiWorld *pWorld, xiiUInt32 uiNextComponentPickingID) override
 Reserves an identity once, including for initially non-pickable handles whose flags can change via IPC.
void UpdateForEngine (xiiWorld *pWorld) override
 Invalidates CPU geometry after an IPC update. No world access or allocation is needed here.
xiiResult ComputeViewTransform (const xiiView &view, xiiMat4 &out_transform, float &out_fWorldUnitsPerPixel) const
xiiResult Draw (const xiiView &view, xiiUInt32 uiHighlightID)
 Hidden/excluded handles emit nothing successfully. Invalid geometry/settings report failure.
xiiResult PickRay (const xiiView &view, const xiiVec3 &vStart, const xiiVec3 &vDirection, float &out_fRayTime)
Public Member Functions inherited from xiiGizmoHandle
void SetVisible (bool bVisible)
bool IsVisible () const
void SetTransformation (const xiiTransform &transform)
void SetTransformation (const xiiMat4 &transform)
const xiiTransform & GetTransformation () const
xiiGizmo * GetOwnerGizmo () const
Public Member Functions inherited from xiiEditorEngineSyncObject
void Configure (xiiUuid ownerGuid, xiiDelegate< void(xiiEditorEngineSyncObject *)> onDestruction)
xiiUuid GetDocumentGuid () const
void SetModified (bool b=true)
bool GetModified () const
xiiUuid GetGuid () const
Public Member Functions inherited from xiiReflectedClass
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 Public Member Functions

static xiiResult SetGizmoScale (float fScale)
 Positive finite user preference; one local unit occupies 128 pixels when ConstantSize is enabled.
static float GetGizmoScale ()
Static Public Member Functions inherited from xiiNoBase
static const xiiRTTI * GetStaticRTTI ()

Additional Inherited Members

Protected Attributes inherited from xiiGizmoHandle
xiiGizmo * m_pOwnerGizmo = nullptr
bool m_bVisible = false
xiiTransform m_Transformation = xiiTransform::MakeIdentity()

Detailed Description

A synchronized Editor handle, drawn through GraphicsCore debug batches and picked against the same CPU geometry and view transform. Owns no world objects, components, materials, or GPU resources. Access and global scale changes require exclusive Editor/engine-process access, as with other sync objects.

Member Function Documentation

◆ ComputeViewTransform()

xiiResult xiiEngineGizmoHandle::ComputeViewTransform ( const xiiView & view,
xiiMat4 & out_transform,
float & out_fWorldUnitsPerPixel ) const

Fails for hidden handles, excluded orthographic handles, invalid views/transforms, or a perspective center behind the camera. Outputs are unchanged on failure. Camera-facing planes flip local axes toward the camera, preserving the manipulator's axes instead of rotating them into a billboard.

◆ PickRay()

xiiResult xiiEngineGizmoHandle::PickRay ( const xiiView & view,
const xiiVec3 & vStart,
const xiiVec3 & vDirection,
float & out_fRayTime )

Misses and non-pickable visualizers return failure without changing out_fRayTime. Lines have a four-pixel world-space tolerance. No allocation after geometry has been built.

◆ SetupForEngine()

bool xiiEngineGizmoHandle::SetupForEngine ( xiiWorld * pWorld,
xiiUInt32 uiNextComponentPickingID )
overridevirtual

Reserves an identity once, including for initially non-pickable handles whose flags can change via IPC.

Reimplemented from xiiEditorEngineSyncObject.

◆ UpdateForEngine()

void xiiEngineGizmoHandle::UpdateForEngine ( xiiWorld * pWorld)
overridevirtual

Invalidates CPU geometry after an IPC update. No world access or allocation is needed here.

Reimplemented from xiiEditorEngineSyncObject.


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Editor/EditorEngineProcessFramework/Gizmos/GizmoHandle.h
  • /home/runner/work/XII/XII/Source/Editor/EditorEngineProcessFramework/Gizmos/Implementation/GizmoHandle.cpp
  • /home/runner/work/XII/XII/Source/Editor/EditorEngineProcessFramework/Gizmos/Implementation/GizmoHandleRendering.cpp