My Project
CadModelNode.h
1 #pragma once
2 
3 #include "TileObject.h"
4 #include "CadModel.h"
5 
6 namespace ParaEngine
7 {
8  class CadModel;
9 
11  {
12  public:
13  CadModelNode();
14  virtual ~CadModelNode();
15  virtual CBaseObject::_SceneObjectType GetType(){return CBaseObject::CadObject;}
16 
17  public:
18  virtual void SetPosition(const DVector3 & v);
19 
20  virtual void Rotate(float x,float y, float z);
21 
22  virtual void SetScaling(float scale);
23 
24  virtual float GetScaling();
25 
26  virtual void Reset();
27 
28  virtual void SetRotation(const Quaternion& quat);
29 
30  virtual VOID GetRotation(Quaternion* quat);
31 
32  virtual bool ViewTouch();
33 
34  void Cleanup();
35 
36 
37  HRESULT InitObject(CadModel* pModel);
38 
39  virtual HRESULT Draw(SceneState *sceneState);
40 
41  virtual Matrix4* GetRenderMatrix(Matrix4& out, int nRenderNumber=0);
42 
43  virtual bool IsTransparent(){return m_bIsTransparent;};
44 
45  virtual void SetTransparent(bool bIsTransparent){m_bIsTransparent = bIsTransparent;};
46 
47  void SetLocalTransform(const Matrix4& matrix);
48 
49  void GetLocalTransform(Matrix4* matrix);
50 
51  void SetLocalTransform(float scale, float rotX, float rotY, float rotZ);
53  void SetLocalTransform(float scale, const Quaternion& quat);
55  void GetLocalTransform(float* scale, Quaternion* quat);
56 
57  bool SetParamsFromAsset();
58 
59  private:
60  asset_ptr<CadModel> m_pModel;
61 
62  Matrix4 m_mxLocalTransform;
63  bool m_bViewClippingUpdated;
64  bool m_bIsTransparent;
65 
66  };
67 }
3-dimensional vector with double precision.
Definition: ParaDVector3.h:17
virtual VOID GetRotation(Quaternion *quat)
get rotation using a quaternion
Definition: CadModelNode.cpp:164
It&#39;s used as parameter to Draw method of each scene object.
Definition: SceneState.h:284
void Cleanup()
clean up the object.
Definition: CadModelNode.cpp:41
different physics engine has different winding order.
Definition: EventBinding.h:32
virtual bool IsTransparent()
whether the object contains transparent material.
Definition: CadModelNode.h:43
Implementation of a Quaternion, i.e.
Definition: ParaQuaternion.h:10
virtual void Reset()
reset the object to its default settings.
Definition: CadModelNode.cpp:209
virtual void SetTransparent(bool bIsTransparent)
Set whether the object is transparent.
Definition: CadModelNode.h:45
void GetLocalTransform(Matrix4 *matrix)
get local transform
Definition: CadModelNode.cpp:135
Class encapsulating a standard 4x4 homogeneous matrix.
Definition: ParaMatrix4.h:23
virtual HRESULT Draw(SceneState *sceneState)
only for drawable objects
Definition: CadModelNode.cpp:45
Tile Object have position and bounding rect and can usually be attached to quad-tree terrain tile...
Definition: TileObject.h:10
virtual void SetScaling(float scale)
set the scale of the object.
Definition: CadModelNode.cpp:187
virtual void SetRotation(const Quaternion &quat)
set rotation using a quaternion.
Definition: CadModelNode.cpp:151
virtual bool ViewTouch()
this function is called, when the object is in view range.
Definition: CadModelNode.cpp:262
Definition: CadModelNode.h:10
virtual void Rotate(float x, float y, float z)
Rotate the object.This only takes effects on objects having 3D orientation, such as static mesh and p...
Definition: CadModelNode.cpp:172
virtual Matrix4 * GetRenderMatrix(Matrix4 &out, int nRenderNumber=0)
return the world matrix of the object for rendering
Definition: CadModelNode.cpp:214
void SetLocalTransform(const Matrix4 &matrix)
set local transform directly
Definition: CadModelNode.cpp:108
virtual void SetPosition(const DVector3 &v)
always bottom center of the bounding shape
Definition: CadModelNode.cpp:99
virtual float GetScaling()
get the scaling.
Definition: CadModelNode.cpp:199
Definition: CadModel.h:77