Plasma Engine  2.0
Loading...
Searching...
No Matches
BoneManipulatorAdapter.h
1#pragma once
2
3#include <EditorFramework/EditorFrameworkDLL.h>
4#include <EditorFramework/Gizmos/ClickGizmo.h>
5#include <EditorFramework/Gizmos/RotateGizmo.h>
6#include <EditorFramework/Gizmos/ScaleGizmo.h>
7#include <EditorFramework/Gizmos/TranslateGizmo.h>
8#include <EditorFramework/Manipulators/ManipulatorAdapter.h>
9#include <Foundation/Containers/DynamicArray.h>
10#include <RendererCore/AnimationSystem/EditableSkeleton.h>
11
12struct plGizmoEvent;
13
18{
19public:
22
23protected:
24 virtual void Finalize() override;
25
26 void MigrateSelection();
27
28 virtual void Update() override;
29 void RotateGizmoEventHandler(const plGizmoEvent& e);
30 void ClickGizmoEventHandler(const plGizmoEvent& e);
31
32 virtual void UpdateGizmoTransform() override;
33
35 {
36 plMat4 m_Offset;
37 plMat4 m_InverseOffset;
38 plRotateGizmo m_RotateGizmo;
39 plClickGizmo m_ClickGizmo;
40 };
41
42 plVariantArray m_Keys;
44 plDeque<ElementGizmo> m_Gizmos;
45 plTransform m_RootTransform = plTransform::MakeIdentity();
46
47 void RetrieveBones();
48 void ConfigureGizmos();
49 void SetTransform(plUInt32 uiBone, const plTransform& value);
50 plMat4 ComputeFullTransform(plUInt32 uiBone) const;
51 plMat4 ComputeParentTransform(plUInt32 uiBone) const;
52
53 static plString s_sLastSelectedBone;
54};
Makes an array of plExposedBone properties editable in the viewport.
Definition BoneManipulatorAdapter.h:18
The click gizmo displays a simple shape that can be clicked.
Definition ClickGizmo.h:11
Definition Deque.h:270
Definition ManipulatorAdapter.h:16
Definition RotateGizmo.h:8
static plTransformTemplate< float > MakeIdentity()
Definition Transform_inl.h:25
Definition BoneManipulatorAdapter.h:35
Definition GizmoBase.h:11