📄 nebu_vector3.h
字号:
#ifndef NEBU_Vector3_H#define NEBU_Vector3_H#ifdef DEBUG#include "iostream.h"#endif#include "math.h"class Vector3 { public: Vector3() { }; Vector3(float a, float b, float c) { x = a; y = b; z = c; }; Vector3(const float *v) { x = v[0]; y = v[1]; z = v[2]; }; float x, y, z; const Vector3 operator+ (const Vector3& v) const { return Vector3(x + v.x, y + v.y, z + v.z); }; const Vector3 operator- (const Vector3& v) const { return Vector3(x - v.x, y - v.y, z - v.z); }; float operator* (const Vector3& v) const { return x * v.x + y * v.y + z * v.z; }; const Vector3 operator* (float f) const { return Vector3(x * f, y * f, z * f); } void operator*= (float f) { x *= f; y *= f; z *= f; } void operator/= (float f) { x /= f; y /= f; z /= f; } float Length() const { return (float) sqrt(*this * *this); } float Length2() { return *this * *this; } Vector3& Normalize() { float length = Length(); if(length != 0) *this /= length; return *this; } Vector3 Cross(const Vector3& v) const { return Vector3(y * v.z - z * v.y, z * v.x - x * v.z, x * v.y - y * v.z); } #ifdef DEBUG friend ostream& operator<<(ostream& os, const Vector3& v); friend Vector3 operator*(float f, const Vector3& v); #endif};inline Vector3 operator*(float f, const Vector3& v) { return v * f;}#ifdef DEBUGinline ostream& operator<<(ostream& os, const Vector3& v) { os << "(" << v.x << ", " << v.y << ", " << v.z << ")"; return os;}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -