18#ifndef _GAMEOBJECT_MODEL_H
19#define _GAMEOBJECT_MODEL_H
21#include <G3D/Matrix3.h>
22#include <G3D/Vector3.h>
63 GameObjectModel() : _collisionEnabled(false), iInvScale(0), iScale(0), iModel(nullptr) { }
65 const G3D::AABox&
getBounds()
const {
return iBound; }
74 bool isMapObject()
const;
79 bool GetLiquidLevel(G3D::Vector3
const& point,
VMAP::LocationInfo& info,
float& liqHeight)
const;
81 static GameObjectModel*
Create(std::unique_ptr<GameObjectModelOwnerBase> modelOwner, std::string
const& dataPath);
83 bool UpdatePosition();
86 bool initialize(std::unique_ptr<GameObjectModelOwnerBase> modelOwner, std::string
const& dataPath);
95 std::unique_ptr<GameObjectModelOwnerBase>
owner;
TC_COMMON_API bool LoadGameObjectModelList(std::string const &dataPath)
virtual G3D::Quat GetRotation() const =0
virtual bool IsInPhase(PhaseShift const &) const =0
virtual ~GameObjectModelOwnerBase()=default
virtual G3D::Vector3 GetPosition() const =0
virtual float GetScale() const =0
virtual void DebugVisualizeCorner(G3D::Vector3 const &) const =0
virtual uint8 GetNameSetId() const =0
virtual bool IsSpawned() const =0
virtual uint32 GetDisplayId() const =0
uint8 GetNameSetId() const
const G3D::AABox & getBounds() const
const G3D::Vector3 & getPosition() const
VMAP::WorldModel * iModel
void enableCollision(bool enable)
bool isCollisionEnabled() const
std::unique_ptr< GameObjectModelOwnerBase > owner
std::unique_ptr< VignetteData > Create(VignetteEntry const *vignetteData, WorldObject const *owner)