My Project
TileObject.h
1 #pragma once
2 #include "BaseObject.h"
3 #include "math/ShapeAABB.h"
4 
5 namespace ParaEngine
6 {
10  class CTileObject : public CBaseObject
11  {
12  public:
13  CTileObject();
14  virtual ~CTileObject();
15  ATTRIBUTE_DEFINE_CLASS(CTileObject);
16 
20  virtual bool IsTileObject() { return true; };
21 
22  virtual DVector3 GetPosition();
23  virtual void SetPosition(const DVector3& v);
24 
34  virtual void SetBoundingBox(float fOBB_X, float fOBB_Y, float fOBB_Z, float fFacing);
35 
39  virtual void GetBoundingBox(float* fOBB_X, float* fOBB_Y, float* fOBB_Z, float* fFacing);
40 
48  virtual void SetBoundRect(float fWidth, float fHeight, float fFacing);
52  virtual void GetBoundRect(float* fWidth, float* fHeight, float* fFacing);
53 
58  virtual void SetRadius(float fRadius);
59 
63  virtual float GetRadius();
64 
65 
68  virtual float GetYaw();
69  virtual void SetYaw(float fValue);
70 
71 
73  virtual float GetHeight();
74  virtual void SetHeight(float fHeight);
75 
77  virtual float GetWidth();
78  virtual void SetWidth(float fWidth);
79 
81  virtual float GetDepth();
82  virtual void SetDepth(float fDepth);
83 
85  virtual void SetAABB(const Vector3 *vMin, const Vector3 *vMax);
86 
87  virtual Vector3 GetLocalAABBCenter();
88 
89  virtual void GetOBB(CShapeOBB* obb);
90  virtual void GetAABB(CShapeAABB* aabb);
91 
95  virtual DVector3 GetObjectCenter();
99  virtual void SetObjectCenter(const DVector3 & v);
100 
101  virtual void GetVerticesWithOrigin(const Vector3* vOrigin, Vector3 * pVertices, int* nNumber);
102  protected:
105 
108 
110  float m_fYaw;
111 
113  float m_fRadius;
114  };
115 }
116 
117 
3-dimensional vector with double precision.
Definition: ParaDVector3.h:17
virtual void SetBoundRect(float fWidth, float fHeight, float fFacing)
Set the object shape to rect (a plane) and rect parameters if fFacing is 0, it is a axis aligned boun...
Definition: TileObject.cpp:44
virtual DVector3 GetObjectCenter()
get the center of the object in world space
Definition: TileObject.cpp:145
different physics engine has different winding order.
Definition: EventBinding.h:32
virtual float GetDepth()
get object depth: z axis
Definition: TileObject.cpp:100
virtual float GetHeight()
get object height y axis: only for object that has a Height property, usually is height of the boundi...
Definition: TileObject.cpp:75
virtual void SetAABB(const Vector3 *vMin, const Vector3 *vMax)
Set AABB information.
Definition: TileObject.cpp:122
Standard 3-dimensional vector.
Definition: ParaVector3.h:16
virtual void GetBoundingBox(float *fOBB_X, float *fOBB_Y, float *fOBB_Z, float *fFacing)
Definition: TileObject.cpp:36
virtual DVector3 GetPosition()
always bottom center of the bounding shape
Definition: TileObject.cpp:112
virtual void SetRadius(float fRadius)
Set the object shape to Sphere and sphere parameters.
Definition: TileObject.cpp:62
AABB-related code.
Definition: ShapeAABB.h:11
virtual void GetBoundRect(float *fWidth, float *fHeight, float *fFacing)
Definition: TileObject.cpp:55
DVector3 m_vPos
position is always at the bottom center of the bounding shape.
Definition: TileObject.h:104
float m_fRadius
radius of m_aabb
Definition: TileObject.h:113
virtual void SetObjectCenter(const DVector3 &v)
set the center of the object in world space
Definition: TileObject.cpp:152
AABB with orientation by a matrix.
Definition: ShapeOBB.h:11
virtual float GetYaw()
get object Yaw: is facing the positive x axis, if yaw is 0.
Definition: TileObject.cpp:208
Tile Object have position and bounding rect and can usually be attached to quad-tree terrain tile...
Definition: TileObject.h:10
Defines the base class of all scene elements:CBaseObject for Parallel World Engine.
Definition: BaseObject.h:230
virtual float GetWidth()
get object width: x axis
Definition: TileObject.cpp:88
float m_fYaw
yaw or facing
Definition: TileObject.h:110
virtual void SetBoundingBox(float fOBB_X, float fOBB_Y, float fOBB_Z, float fFacing)
Set the object shape to box and bounding box parameters if fFacing is 0, it is a axis aligned boundin...
Definition: TileObject.cpp:25
virtual void GetOBB(CShapeOBB *obb)
get the oriented bounding box in world space.
Definition: TileObject.cpp:133
virtual float GetRadius()
Definition: TileObject.cpp:70
virtual void SetPosition(const DVector3 &v)
always bottom center of the bounding shape
Definition: TileObject.cpp:117
CShapeAABB m_aabb
bounding box of containing object.
Definition: TileObject.h:107
virtual bool IsTileObject()
if true, we will attach this object to quad-tree terrain tile according to its attributes when adding...
Definition: TileObject.h:20