1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
5 #include "Core/ModelCompiler.h"
6 #include "Core/Model.h"
13 class DesignerBaseObject
: public T
24 void SetCompiler(ModelCompiler
* pCompiler
);
25 virtual ModelCompiler
* GetCompiler() const;
27 MainContext
GetMainContext() const { return MainContext((CBaseObject
*)this, GetCompiler(), GetModel()); }
29 void SetModel(Model
* pModel
);
30 Model
* GetModel() const { return m_pModel
; }
32 void UpdateEngineNode();
33 IStatObj
* GetIStatObj() override
;
35 virtual void UpdateGameResource() {};
37 bool QueryNearestPos(const BrushVec3
& worldPos
, BrushVec3
& outPos
) const;
38 void DrawDimensions(DisplayContext
& dc
, AABB
* pMergedBoundBox
) override
{}
40 void Validate() override
;
41 virtual void UpdateHighlightPassState(bool bSelected
, bool bHighlighted
) override
;
43 bool IsEmpty() const { return m_pModel
->IsEmpty(eShelf_Base
); }
45 virtual void UpdateVisibility(bool visible
) override
;
46 virtual bool IsHiddenByOption() { return false; }
47 virtual std::vector
<EDesignerTool
> GetIncompatibleSubtools() = 0;
50 void UpdateHiddenIStatObjState();
52 _smart_ptr
<Model
> m_pModel
;
53 mutable _smart_ptr
<ModelCompiler
> m_pCompiler
;
58 #include "DesignerBaseObject_Impl.h"