📄 vector3.cpp
字号:
#include "Vector3.h"
// 重载赋值运算符,并返回引用,以实现左值
Vector3 &Vector3::operator =(const Vector3 &rhs)
{
x = rhs.x;
y = rhs.y;
z = rhs.z;
return *this;
}
// 重载自反运算符
Vector3 &Vector3::operator +=(const Vector3 &rhs)
{
x += rhs.x;
y += rhs.y;
z += rhs.z;
return *this;
}
Vector3 &Vector3::operator -=(const Vector3 &rhs)
{
x -= rhs.x;
y -= rhs.y;
z -= rhs.z;
return *this;
}
Vector3 &Vector3::operator *=(GLfloat a)
{
x *= a;
y *= a;
z *= a;
return *this;
}
Vector3 &Vector3::operator /=(GLfloat a)
{
GLfloat fOneOverA = 1.0f/a;
x *= fOneOverA;
y *= fOneOverA;
z *= fOneOverA;
return *this;
}
// 向量标准化
GLvoid Vector3::Normalize()
{
GLfloat fMagSq = x*x + y*y + z*z;
if (fMagSq > 0.0f) // 检查除零
{
GLfloat fOneOverMag = 1.0f/sqrt(fMagSq);
x *= fOneOverMag;
y *= fOneOverMag;
z *= fOneOverMag;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -