18#ifndef _GAMEOBJECT_MODEL_H
19#define _GAMEOBJECT_MODEL_H
21#include <G3D/Matrix3.h>
22#include <G3D/Vector3.h>
56 GameObjectModel() : phasemask(0), iInvScale(0), iScale(0), iModel(nullptr), isWmo(false) { }
60 const G3D::AABox&
getBounds()
const {
return iBound; }
75 bool GetLiquidLevel(G3D::Vector3
const& point,
VMAP::LocationInfo& info,
float& liqHeight)
const;
77 static GameObjectModel* Create(std::unique_ptr<GameObjectModelOwnerBase> modelOwner, std::string
const& dataPath);
79 bool UpdatePosition();
82 bool initialize(std::unique_ptr<GameObjectModelOwnerBase> modelOwner, std::string
const& dataPath);
91 std::unique_ptr<GameObjectModelOwnerBase>
owner;
TC_COMMON_API void LoadGameObjectModelList(std::string const &dataPath)
virtual ~GameObjectModelOwnerBase()=default
virtual float GetOrientation() const =0
virtual uint32 GetPhaseMask() const =0
virtual G3D::Vector3 GetPosition() const =0
virtual float GetScale() const =0
virtual void DebugVisualizeCorner(G3D::Vector3 const &) const =0
virtual bool IsSpawned() const =0
virtual uint32 GetDisplayId() const =0
const G3D::AABox & getBounds() const
const G3D::Vector3 & getPosition() const
VMAP::WorldModel * iModel
void enable(uint32 ph_mask)
std::unique_ptr< GameObjectModelOwnerBase > owner