MathDefs.h
资源名称:taiqiu.rar [点击查看]
上传用户:owen_mei
上传日期:2022-08-09
资源大小:2263k
文件大小:2k
源码类别:
OpenGL
开发平台:
Visual C++
- // MathDefs.h: interface for the CMathDefs class.
- //
- //////////////////////////////////////////////////////////////////////
- #if !defined(AFX_MATHDEFS_H__AACDDD61_CE32_485C_BD07_07442B0568B7__INCLUDED_)
- #define AFX_MATHDEFS_H__AACDDD61_CE32_485C_BD07_07442B0568B7__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- #define M_PI 3.14159265358979323846f
- #define HALF_PI 1.57079632679489661923f
- // 有关角度换算的宏定义
- #define DEGTORAD(A) ((A * M_PI) / 180.0f)
- #define RADTODEG(A) ((A * 180.0f) / M_PI)
- #define MAKEVECTOR(a,vx,vy,vz) a.x = vx; a.y = vy; a.z = vz;
- typedef unsigned char uchar;
- typedef int BOOL;
- typedef unsigned int uint;
- typedef unsigned short ushort;
- typedef unsigned char byte;
- typedef struct
- {
- float u,v;
- } t2DCoord;
- typedef struct
- {
- union
- {
- float x;
- float u;
- float r;
- };
- union
- {
- float y;
- float v;
- float g;
- };
- union
- {
- float z;
- float w;
- float b;
- };
- } tVector;
- // 矩阵定义的数据结构
- typedef struct
- {
- float m[16];
- } tMatrix;
- // 顶点数据结构(包括顶点坐标和顶点颜色)
- typedef struct
- {
- float r,g,b;
- float x,y,z;
- } tColoredVertex;
- typedef struct
- {
- float u,v;
- float x,y,z;
- } tTexturedVertex;
- typedef struct
- {
- float u,v;
- float r,g,b;
- float x,y,z;
- } tTexturedColoredVertex;
- // 四元数结构定义
- typedef struct
- {
- float x,y,z,w;
- } tQuaternion;
- class CMathDefs
- {
- public:
- CMathDefs();
- virtual ~CMathDefs();
- void MultVectorByMatrix(tMatrix *mat, tVector *v,tVector *result);
- void MultVectorByRotMatrix(tMatrix *mat, tVector *v,tVector *result);
- double VectorSquaredLength(tVector *v);
- double VectorLength(tVector *v);
- void NormalizeVector(tVector *v);
- double DotProduct(tVector *v1, tVector *v2);
- void CrossProduct(tVector *v1, tVector *v2, tVector *result);
- double VectorSquaredDistance(tVector *v1, tVector *v2);
- void ScaleVector(tVector *v, float scale, tVector *result);
- void VectorSum(tVector *v1, tVector *v2, tVector *result);
- void VectorDifference(tVector *v1, tVector *v2, tVector *result);
- void IdentityMatrix(tMatrix *mat);
- };
- #endif // !defined(AFX_MATHDEFS_H__AACDDD61_CE32_485C_BD07_07442B0568B7__INCLUDED_)