22 virtual void Create()
override;
23 virtual void Destroy()
override;
24 virtual void Tick(
float deltaTime)
override;
30 virtual bool IsNode3D()
const override;
32 void AttachToBone(
SkeletalMesh3D* parent,
const char* boneName,
bool keepWorldTransform =
false, int32_t childIndex = -1);
33 void AttachToBone(
SkeletalMesh3D* parent, int32_t boneIndex,
bool keepWorldTransform =
false, int32_t childIndex = -1);
35 void MarkTransformDirty();
36 bool IsTransformDirty()
const;
37 virtual void UpdateTransform(
bool updateChildren);
41 virtual void GatherProxyDraws(std::vector<DebugDraw>& inoutDraws);
44 virtual void OnDrawGizmos();
45 virtual void OnDrawGizmosSelected();
48 glm::vec3 GetPosition()
const;
49 glm::vec3 GetRotationEuler()
const;
50 glm::quat GetRotationQuat()
const;
51 glm::vec3 GetScale()
const;
53 glm::vec3& GetPositionRef();
54 glm::vec3& GetRotationEulerRef();
55 glm::quat& GetRotationQuatRef();
56 glm::vec3& GetScaleRef();
58 const glm::mat4& GetTransform();
60 void SetPosition(glm::vec3 position);
61 void SetRotation(glm::vec3 rotation);
62 void SetRotation(glm::quat quat);
63 void SetScale(glm::vec3 scale);
64 virtual void SetTransform(
const glm::mat4& transform);
66 glm::vec3 GetWorldPosition();
67 glm::vec3 GetWorldRotationEuler();
68 glm::quat GetWorldRotationQuat();
69 glm::vec3 GetWorldScale();
71 void SetWorldPosition(glm::vec3 position);
72 void SetWorldRotation(glm::vec3 rotation);
73 void SetWorldRotation(glm::quat rotation);
74 void SetWorldScale(glm::vec3 scale);
76 void AddRotation(glm::quat rotation);
77 void AddRotation(glm::vec3 rotation);
78 void AddWorldRotation(glm::quat rotation);
79 void AddWorldRotation(glm::vec3 rotation);
80 void RotateAround(glm::vec3 pivot, glm::vec3 axis,
float degrees);
82 void LookAt(glm::vec3 target, glm::vec3 up);
84 glm::vec3 GetCachedEulerRotation()
const;
86 glm::vec3 GetForwardVector();
87 glm::vec3 GetRightVector();
88 glm::vec3 GetUpVector();
90 glm::mat4 GetParentTransform();
91 int32_t GetParentBoneIndex()
const;
93 bool GetInheritTransform()
const;
94 void SetInheritTransform(
bool inheritTransform);
96 virtual void Attach(
Node* parent,
bool keepWorldTransform =
false, int32_t index = -1)
override;
98 static bool OnRep_RootPosition(
Datum* datum, uint32_t index,
const void* newValue);
99 static bool OnRep_RootRotation(
Datum* datum, uint32_t index,
const void* newValue);
100 static bool OnRep_RootScale(
Datum* datum, uint32_t index,
const void* newValue);
115 bool mInheritTransform =
true;