📄 gsphysics.h
字号:
// GsPhysics.h: interface for the CGsKinetic class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_GSPHYSICS_H__3CEBDA4F_9E6B_45DF_A7A7_CACAE9A9977B__INCLUDED_)
#define AFX_GSPHYSICS_H__3CEBDA4F_9E6B_45DF_A7A7_CACAE9A9977B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//struct GSLIB_API SVector : public D3DXVECTOR3
//{
// // Constructors
// SVector();
// SVector( float new_x, float new_y, float new_z );
// SVector( SVector const & other );
//
// // Operators
// SVector & operator+=( SVector const & right );
// SVector & operator-=( SVector const & right );
// SVector & operator*=( float right );
// SVector & operator/=( float right );
// SVector & operator%=( float right );
// SVector & operator<<=( float right );
// SVector & operator>>=( float right );
//};
//物理矢量函数
//bool GSLIB_API operator==( SVector const & left, SVector const & right );
//
//bool GSLIB_API operator!=( SVector const & left, SVector const & right );
//
//SVector GSLIB_API operator-( SVector const & pofloat );
//
//SVector GSLIB_API operator+( SVector const & left, SVector const & right );
//
//SVector GSLIB_API operator-( SVector const & left, SVector const & right );
//
//SVector GSLIB_API operator*( SVector const & left, float right );
//
//SVector GSLIB_API operator*( float left, SVector const & right );
//
//SVector GSLIB_API operator/( SVector const & left, float right );
//
//SVector GSLIB_API operator%( SVector const & left, float right );
//
//SVector GSLIB_API operator<<( SVector const & left, int right );
//
//SVector GSLIB_API operator>>( SVector const & left, int right );
//
//double GSLIB_API distance( SVector const & pofloat );
//
//double GSLIB_API angle( SVector const & pofloat );
//
//std::streambuf & GSLIB_API operator<<( std::streambuf & stream, SVector const & pofloat );
//
//std::streambuf & GSLIB_API operator>>( std::streambuf & stream, SVector & pofloat );
class CGsPhysics
{
public:
CGsPhysics();
virtual ~CGsPhysics();
};
//动力学模型
class GSLIB_API CGsKinetic
{
public:
CGsKinetic();
CGsKinetic(GVECTOR pos, GVECTOR speed, GVECTOR accel) {m_pos = pos;m_speed = speed; m_accel = accel;}
virtual ~CGsKinetic();
public:
VOID SetPos(GVECTOR pos);
GVECTOR GetPos();
GVECTOR* PtrPos();
VOID MovePos(GVECTOR pos);
VOID SetSpeed(GVECTOR speed);
GVECTOR GetSpeed();
GVECTOR* PtrSpeed();
VOID MoveSpeed(GVECTOR speed);
VOID SetAccel(GVECTOR accel);
GVECTOR GetAccel();
GVECTOR* PtrAccel();
VOID MoveAccel(GVECTOR accel);
public:
//运动算法
//匀变速运动
FLAG Update_ConstAccel(float fSec);
protected:
GVECTOR m_pos; //位置
GVECTOR m_speed; //速度
GVECTOR m_accel; //加速度
};
inline VOID CGsKinetic::SetPos(GVECTOR pos) {m_pos = pos;}
inline GVECTOR CGsKinetic::GetPos() {return m_pos;}
inline GVECTOR* CGsKinetic::PtrPos() {return &m_pos;}
inline VOID CGsKinetic::MovePos(GVECTOR pos) {m_pos += pos;}
inline VOID CGsKinetic::SetSpeed(GVECTOR speed) {m_speed = speed;}
inline GVECTOR CGsKinetic::GetSpeed() {return m_speed;}
inline GVECTOR* CGsKinetic::PtrSpeed() {return &m_speed;}
inline VOID CGsKinetic::MoveSpeed(GVECTOR speed) {m_speed += speed;}
inline VOID CGsKinetic::SetAccel(GVECTOR accel) {m_accel = accel;}
inline GVECTOR CGsKinetic::GetAccel() {return m_accel;}
inline GVECTOR* CGsKinetic::PtrAccel() {return &m_accel;}
inline VOID CGsKinetic::MoveAccel(GVECTOR accel) {m_accel += accel;}
#endif // !defined(AFX_GSPHYSICS_H__3CEBDA4F_9E6B_45DF_A7A7_CACAE9A9977B__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -