⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vector3.cpp

📁 在程序中根据3D地形的高度图动态地生成光照图,其中已包含了3D地形混合纹理生成的代码,使用C++和OpenGL进行编写.
💻 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 + -