|

楼主 |
发表于 2012-9-13 20:53:59
|
显示全部楼层
2nDs_Vector2D.h
- #ifndef _2nDs_VECTOR2D_H_
- #define _2nDs_VECTOR2D_H_
- #include "2nDs_System.h"
- struct _2nDs_Vector2D
- {
-     GLfloat x;
-     GLfloat y;
-     _2nDs_Vector2D(GLvoid):x(0), y(0){}
-     _2nDs_Vector2D(GLfloat value):x(value), y(value){}
-     _2nDs_Vector2D(GLfloat fx, GLfloat fy):x(fx), y(fy){}
-     _2nDs_Vector2D(const float* values):x((*values)), y((*values)+1){}
-     _2nDs_Vector2D(_2nDs_Vector2D& vector2D):x(vector2D.x), y(vector2D.y){}
-     inline GLvoid Set(GLfloat fx, GLfloat fy);
-     inline GLvoid Set(const _2nDs_Vector2D& vector);
-     inline GLvoid LoadIdentity(GLvoid);
-     inline GLvoid Normalize(GLvoid);
-     inline GLvoid RotateDeg(GLfloat angle);
-     inline GLvoid RotateRad(GLfloat angle);
-     inline GLvoid GetNormalized(_2nDs_Vector2D& vector) const;
-     inline GLvoid GetRotatedDeg(GLfloat angle, _2nDs_Vector2D& vector) const;
-     inline GLvoid GetRotatedRad(GLfloat angle, _2nDs_Vector2D& vector) const;
-     inline GLfloat GetLength() const;
-     inline GLfloat GetSquaredLength() const;
-     inline GLvoid Lerp(const _2nDs_Vector2D& src, GLfloat factor, _2nDs_Vector2D& dst);
-     inline GLvoid IsSumOf(const _2nDs_Vector2D& vector1, const _2nDs_Vector2D& vector2);
-     inline GLvoid IsDifferenceOf(const _2nDs_Vector2D& vector1, const _2nDs_Vector2D& vector2);
-     inline GLvoid IsProductOf(const _2nDs_Vector2D& vector1, const _2nDs_Vector2D& vector2);
-     inline GLvoid IsQuotientOf(const _2nDs_Vector2D& vector1, const _2nDs_Vector2D& vector2);
-     inline GLvoid IsSumOf(const _2nDs_Vector2D& vector, const GLfloat value);
-     inline GLvoid IsDifferenceOf(const _2nDs_Vector2D& vector, const GLfloat value);
-     inline GLvoid IsProductOf(const _2nDs_Vector2D& vector, const GLfloat value);
-     inline GLvoid IsQuotientOf(const _2nDs_Vector2D& vector, const GLfloat value);
-     inline GLvoid Plus(const _2nDs_Vector2D& vector);
-     inline GLvoid Subtract(const _2nDs_Vector2D& vector);
-     inline GLvoid Multiply(const _2nDs_Vector2D& vector);
-     inline GLvoid Divide(const _2nDs_Vector2D& vector);
-     inline GLvoid Plus(const GLfloat value);
-     inline GLvoid Subtract(const GLfloat value);
-     inline GLvoid Multiply(const GLfloat value);
-     inline GLvoid Divide(const GLfloat value);
-     inline GLvoid Invert(_2nDs_Vector2D& vector);
-     inline GLvoid Inverted(GLvoid);
-     inline GLfloat DotMultiply(const _2nDs_Vector2D& vector);
-     inline GLvoid CrossMultiply(const _2nDs_Vector2D& vector, _2nDs_Vector2D& Dst);
-     inline GLboolean IsEqualTo(const _2nDs_Vector2D& vector) const;
-     inline GLboolean IsUnequalTo(const _2nDs_Vector2D& vector) const;
- };
- #endif
复制代码
2nDs_Vector2D.cpp
- #include "2nDs_Vector2D.h"
- #include "2nDs_Maths.h"
- inline GLvoid _2nDs_Vector2D::Set(GLfloat fx, GLfloat fy) {x = fx; y = fy;}
- inline GLvoid _2nDs_Vector2D::Set(const _2nDs_Vector2D& vector) {x = vector.x; y = vector.y;}
- inline GLvoid _2nDs_Vector2D::LoadIdentity(GLvoid) {x = 0.0f; y = 0.0f;}
- inline GLvoid _2nDs_Vector2D::Normalize(GLvoid)
- {
-     GLfloat l = GetLength();
-     if(l == 1 || l == 0) return;
-     x /= l;
-     y /= l;
- }
- 。。。。。。其他。。。。
复制代码 |
|