📄 basebuildobject.h
字号:
// BaseBuildObject.h: interface for the CBaseBuildObject class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_BASEBUILDOBJECT_H__4E75B417_D9C0_47C4_BB31_A8B55989304B__INCLUDED_)
#define AFX_BASEBUILDOBJECT_H__4E75B417_D9C0_47C4_BB31_A8B55989304B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define WRITE_MATRIX4(tempmatrix, fArray) \
{ \
tempmatrix(0,0) = fArray[0][0]; tempmatrix(0,1) = fArray[0][1]; \
tempmatrix(0,2) = fArray[0][2]; tempmatrix(0,3) = fArray[0][3]; \
tempmatrix(1,0) = fArray[1][0]; tempmatrix(1,1) = fArray[1][1]; \
tempmatrix(1,2) = fArray[1][2]; tempmatrix(1,3) = fArray[1][3]; \
tempmatrix(2,0) = fArray[2][0]; tempmatrix(2,1) = fArray[2][1]; \
tempmatrix(2,2) = fArray[2][2]; tempmatrix(2,3) = fArray[2][3]; \
tempmatrix(3,0) = fArray[3][0]; tempmatrix(3,1) = fArray[3][1]; \
tempmatrix(3,2) = fArray[3][2]; tempmatrix(3,3) = fArray[3][3]; \
}
class CMCShadowObject;
class CBaseBuildObject
{
public:
CBaseBuildObject();
virtual ~CBaseBuildObject();
public:
virtual void Render();
virtual void RenderEx();
void RenderExTest();
void RenderAlphaTex();
void RenderDecal();
virtual void ColMeshRenderEx();
void BBoxRender();
BOOL CheckCollision( D3DXVECTOR3 vOrg, D3DXVECTOR3 * vDir, FLOAT fTargetDist,
FLOAT * fDist, D3DXVECTOR3 * vCollPos );
void RotateAxis(D3DXVECTOR3 *vAxis,float Angle,BOOL bChange=FALSE);
void ReSetRotation(){ m_vLook = D3DXVECTOR3(0.0f,0.0f,1.0f);
m_vRight = D3DXVECTOR3(1.0f,0.0f,0.0f);
m_vUp = D3DXVECTOR3(0.0f,1.0f,0.0f);
D3DXQuaternionIdentity(&m_quateRotate);
}
inline void Scaling(float sx,float sy, float sz) { D3DXMatrixScaling(&m_matScale,sx,sy,sz); }
void Translation(D3DXVECTOR3 *pPos, BOOL bChange=FALSE);
MD3BOUNDBOX* GetBoundBox() { return m_pObject->GetBoundBox(m_nCurFrame); }
D3DXMATRIX* GetWorldMatrix() { return &m_matWorld; }
D3DXMATRIX* GetTransMatrix() { return &m_matTrans; }
D3DXMATRIX* GetScaleMatrix() { return &m_matScale; }
int GetObjectMeshCount() { return m_pObject->GetMeshCount( m_nCurFrame ); }
CMCObjMesh* GetObjectMesh( CMCObjMesh* pMesh ) { return m_pObject->GetNextMesh( pMesh, m_nCurFrame); }
int GetObjectColMeshCount() { return m_pObject->GetColMeshCount( m_nCurFrame ); }
CMCObjColMesh* GetObjectColMesh( CMCObjColMesh* pMesh ) { return m_pObject->GetNextColMesh( pMesh, m_nCurFrame); }
// CollisionModel3D * GetColdetMesh( CMCObjMesh* pMesh ) { return m_pObject->GetCollisionModel3D( pMesh, m_nCurFrame); }
// CollisionModel3D * GetColdetModel() { return m_pObject->GetCollisionModel3D( m_nCurFrame ); }
// CollisionModel3D * GetColdetMeshEx( CMCObjColMesh* pMesh ) { return m_pObject->GetCollisionModel3DEx( pMesh, m_nCurFrame); }
// CollisionModel3D * GetColdetModelEx() { return m_pObject->GetCollisionModel3DEx( m_nCurFrame ); }
UINT GetFrame() { return m_nCurFrame; }
void SetFrame( UINT nFrame ) { m_nCurFrame = nFrame; }
D3DXVECTOR3 GetPosVector() { return D3DXVECTOR3(m_matTrans._41,m_matTrans._42,m_matTrans._43);}
void ReSetWorldMat();
void SetWorldMat( D3DXMATRIX &Mat ) { m_matWorld = Mat; }
void SetWorldShwMat( D3DXMATRIX &Mat ) { m_matWorldShw = Mat; }
HRESULT CreateShadowMesh( const char * szFileName );
void ShadowRender();
protected:
//void RotateLocalXYZ(WORD nIndex, float Angle, BOOL bUpOption);
public:
short m_nIndex;
int m_nPart;
int m_nBreak;
int m_nBlend;
CMCObject * m_pObject;
CMCParts * m_pPart; // 快急父 烙矫风 持菌寸..
D3DXVECTOR3 m_vLeftTop;
D3DXVECTOR3 m_vRightTop;
D3DXVECTOR3 m_vLeftBottom;
D3DXVECTOR3 m_vRightBottom;
D3DXVECTOR3 m_vCenter;
FLOAT m_fRadius;
protected:
D3DXMATRIXA16 m_matTrans;
D3DXMATRIXA16 m_matScale;
D3DXMATRIXA16 m_matWorld;
D3DXMATRIXA16 m_matWorldShw;
D3DXQUATERNION m_quateRotate; // 磊脚狼 雀傈蔼阑 啊瘤绊 乐绰 孽磐
D3DXQUATERNION m_quateResult; // Tag蔼苞 困俊 孽磐客 弥辆 拌魂登绢龙 孽磐(某腐磐俊 利侩登绰 孽磐)
D3DXVECTOR3 m_vLook;
D3DXVECTOR3 m_vUp;
D3DXVECTOR3 m_vRight;
// CMCObject * m_pObject;
UINT m_nCurFrame;
UINT m_nNextFrame;
DWORD m_dwMSPF; // Mill Second Per Frame
DWORD m_dwAccTime; // 穿利~
float m_finterPolation; // 焊埃俊 静捞绰芭
CMCShadowObject * m_pShadowObject;
// CMCBlendObject * m_pBlendObject;
};
#endif // !defined(AFX_BASEBUILDOBJECT_H__4E75B417_D9C0_47C4_BB31_A8B55989304B__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -