Photon Editor Library 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
AbstractDesignerObject.h
Go to the documentation of this file.
1#pragma once
2
4
5#include <Common/primitive_type.h>
6#include <SDL/Object.h>
7#include <SDL/sdl_interface.h>
8#include <Utility/TBitFlags.h>
9
10namespace ph::editor
11{
12
13class UIPropertyLayout;
14
15class AbstractDesignerObject : public Object
16{
17public:
22
26
29
30protected:
31 const TEnumFlags<EObjectState>& getState() const;
32
33private:
34 // For accessing internal members managed by designer scene
35 friend class DesignerScene;
37
38 TEnumFlags<EObjectState> m_state;
39 uint64 m_sceneStorageIndex;
40
41 TEnumFlags<EObjectState>& state();
42 uint64 getSceneStorageIndex() const;
43 void setSceneStorageIndex(uint64 storageIndex);
44
45public:
46 PH_DEFINE_SDL_CLASS(TSdlOwnerClass<AbstractDesignerObject>)
47 {
48 ClassType clazz("abstract-dobj");
49 clazz.docName("Abstract Designer Object");
50 clazz.description("A common base for designer-related object classes.");
51 clazz.baseOn<Object>();
52 return clazz;
53 }
54};
55
56}// end namespace ph::editor
57
Definition AbstractDesignerObject.h:16
virtual UIPropertyLayout layoutProperties()
Create custom property layout.
Definition AbstractDesignerObject.cpp:18
AbstractDesignerObject(AbstractDesignerObject &&other) noexcept
AbstractDesignerObject & operator=(const AbstractDesignerObject &rhs)
PH_DEFINE_SDL_CLASS(TSdlOwnerClass< AbstractDesignerObject >)
Definition AbstractDesignerObject.h:46
AbstractDesignerObject()
Definition AbstractDesignerObject.cpp:7
AbstractDesignerObject(const AbstractDesignerObject &other)
const TEnumFlags< EObjectState > & getState() const
Definition AbstractDesignerObject.ipp:10
Definition DesignerScene.h:58
Definition DesignerSceneMetaInfo.h:16
Definition UIPropertyLayout.h:17
Definition ph_editor.h:10