Plasma Engine  2.0
Loading...
Searching...
No Matches
ManipulatorAdapter.h
1#pragma once
2
3#include <EditorFramework/EditorFrameworkDLL.h>
4#include <Foundation/Types/Variant.h>
5#include <ToolsFoundation/Document/Document.h>
6#include <ToolsFoundation/Object/ObjectMetaData.h>
7
14
15class PL_EDITORFRAMEWORK_DLL plManipulatorAdapter
16{
17public:
19 virtual ~plManipulatorAdapter();
20
21 void SetManipulator(const plManipulatorAttribute* pAttribute, const plDocumentObject* pObject);
22
23 virtual void QueryGridSettings(plGridSettingsMsgToEngine& out_gridSettings) {}
24
25private:
26 void DocumentObjectPropertyEventHandler(const plDocumentObjectPropertyEvent& e);
27 void DocumentWindowEventHandler(const plQtDocumentWindowEvent& e);
28 void DocumentObjectMetaDataEventHandler(const plObjectMetaData<plUuid, plDocumentObjectMetaData>::EventData& e);
29
30protected:
31 virtual plTransform GetOffsetTransform() const;
32 virtual plTransform GetObjectTransform() const;
33 plObjectAccessorBase* GetObjectAccessor() const;
34 const plAbstractProperty* GetProperty(const char* szProperty) const;
35
36 virtual void Finalize() = 0;
37 virtual void Update() = 0;
38 virtual void UpdateGizmoTransform() = 0;
39
40 void BeginTemporaryInteraction();
41 void EndTemporaryInteraction();
42 void CancelTemporayInteraction();
43 void ChangeProperties(const char* szProperty1, plVariant value1, const char* szProperty2 = nullptr, plVariant value2 = plVariant(),
44 const char* szProperty3 = nullptr, plVariant value3 = plVariant(), const char* szProperty4 = nullptr, plVariant value4 = plVariant(),
45 const char* szProperty5 = nullptr, plVariant value5 = plVariant(), const char* szProperty6 = nullptr, plVariant value6 = plVariant());
46
47 bool m_bManipulatorIsVisible;
48 const plManipulatorAttribute* m_pManipulatorAttr;
49 const plDocumentObject* m_pObject;
50
51 void ClampProperty(const char* szProperty, plVariant& value) const;
52};
This is the base interface for all properties in the reflection system. It provides enough informatio...
Definition AbstractProperty.h:150
Definition DocumentObjectBase.h:11
Definition EngineProcessMessages.h:508
Definition ManipulatorAdapter.h:16
Definition PropertyAttributes.h:597
Definition ObjectAccessorBase.h:8
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition Variant.h:44
Used by plDocumentObjectManager::m_PropertyEvents.
Definition DocumentObjectManager.h:77
Definition ObjectMetaData.h:20
Definition DocumentWindow.moc.h:19