www.pudn.com > opengl_pick_sample.rar > matrix3d.h


//	matrix3d.h 
// 
 
#ifndef MATRIX_3D_NCLUDE_H_ 
#define MATRIX_3D_NCLUDE_H_ 
 
class Matrix3D { 
	void InitMatrix(void) 
	{ 
		memset(m_rotation,0,(size_t)(sizeof(double)*3)); 
		memset(m_position,0,(size_t)(sizeof(double)*3)); 
		memset(m_scale,0,(size_t)(sizeof(double)*3)); 
	} 
protected: 
	double m_rotation[3]; 
	double m_position[3]; 
	double m_scale[3]; 
public: 
	Matrix3D(void); 
	Matrix3D(const Matrix3D& matrix); 
	~Matrix3D(void); 
	void Copy(const Matrix3D& matrix); 
	Matrix3D& operator = (const Matrix3D& matrix); 
 
	void GetRotation(double& xrot, double& yrot, double& zrot)const; 
	void GetPosition(double& x, double& y, double& z)const; 
	void GetScale(double& xscale, double& yscale, double& zscale)const; 
 
	void SetRotation(double xrot, double yrot, double zrot); 
	void SetPosition(double x, double y, double z); 
	void SetScale(double xscale, double yscale, double zscale); 
 
	void AddRotation(double xrot, double yrot, double zrot); 
 
	double X(void)const{ return m_position[0];} 
	double Y(void)const{ return m_position[1];} 
	double Z(void)const{ return m_position[2];} 
	double XRot(void)const{ return m_rotation[0];} 
	double YRot(void)const{ return m_rotation[1];} 
	double ZRot(void)const{ return m_rotation[2];} 
	double XScale(void)const{ return m_scale[0];} 
	double YScale(void)const{ return m_scale[1];} 
	double ZScale(void)const{ return m_scale[2];} 
}; 
 
#endif