colmesh.h

来自「Direct3D游戏编程入门教程源代码.rar」· C头文件 代码 · 共 42 行

H
42
字号
#ifndef H_COLLIDABLE_MESH
#define H_COLLIDABLE_MESH

#include <coldet.h>
#include <math3d.h>
#include "D3DFile.h"

class CCollidableMesh : public CD3DMesh
{
public:
  CCollidableMesh( TCHAR* strName = _T("CD3DFile_Mesh") ) 
    : CD3DMesh(strName),
      m_ColModel(NULL),
      m_Transform(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),
      m_Speed(0,0,0),
      m_Mass(1.0f)
  {}
  virtual ~CCollidableMesh() { delete m_ColModel; }

  bool    Collision(CCollidableMesh& other);
  void    React(CCollidableMesh& other);
  HRESULT Advance(float dt);
	HRESULT Create( LPDIRECT3DDEVICE8 pd3dDevice, TCHAR* strFilename );
  HRESULT Render( LPDIRECT3DDEVICE8 pd3dDevice, 
		              BOOL bDrawOpaqueSubsets = TRUE,
		              BOOL bDrawAlphaSubsets = TRUE );
  
  void SetSpeed(const Vector3D& v) { m_Speed=v; }
  const Vector3D& GetSpeed() { return m_Speed; }
  void SetMass(float mass) { m_Mass=mass; }
  void SetRotateSpeed(const Vector3D& v) { m_RotateSpeed=v; }
  void SetPosition(const Vector3D& v);
  void SetDirection(const Vector3D& v);
protected:
  CollisionModel3D* m_ColModel;
  Matrix3D m_Transform;
  Vector3D m_Speed;
  Vector3D m_RotateSpeed;
  float    m_Mass;
};

#endif // H_COLLIDABLE_MESH

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?