一个包含三维浮点数坐标的向量结构体,提供了一系列向量运算。 更多...
#include <Simplify.h>
Public 成员函数 | |
double | angle (const vec3f &v) |
计算当前向量与另一个向量之间的角度 | |
double | angle2 (const vec3f &v, const vec3f &w) |
计算两个向量之间的角度,考虑第三个向量定义的平面 | |
void | clamp (double min, double max) |
将当前向量的分量限制在最小值和最大值之间 | |
vec3f | cross (const vec3f &a, const vec3f &b) |
计算两个三维向量的叉积 | |
double | dot (const vec3f &a) const |
计算当前对象与另一个vec3f对象的点积。 | |
vec3f | frac () |
获取当前向量的分数部分 | |
vec3f | integer () |
获取当前向量的整数部分 | |
vec3f | invert () |
获取当前向量的相反向量 | |
double | length () const |
获取当前向量的长度 | |
vec3f | normalize (double desired_length=1) |
将当前向量归一化 | |
vec3f | operator* (const double a) const |
vec3f | operator* (const vec3f a) const |
vec3f | operator+ (const vec3f &a) const |
vec3f | operator+= (const vec3f &a) const |
vec3f | operator- (const vec3f &a) const |
向量减法运算符重载,计算当前对象与另一个vec3f对象对应分量相减的结果。 | |
vec3f | operator/ (const double a) const |
向量与标量除法运算符重载,计算当前对象与给定标量相除的结果。 | |
vec3f | operator/ (const vec3f a) const |
向量除法运算符重载,计算当前对象与另一个vec3f对象对应分量相除的结果。 | |
vec3f | operator= (const vec3f a) |
赋值运算符重载,用于将另一个vec3f对象的值赋给当前对象。 | |
vec3f | operator= (const vector3 a) |
赋值运算符重载,从另一个vec3f对象赋值。 | |
vec3f | random01_fxyz () |
将当前向量的每个分量设置为[0, 1)范围内的随机数 | |
double | random_double_01 (double a) |
生成一个[0, 1)范围内的随机双精度浮点数,基于给定的输入进行变换 | |
vec3f | rot_x (double a) |
绕X轴旋转当前向量 | |
vec3f | rot_y (double a) |
绕Y轴旋转当前向量 | |
vec3f | rot_z (double a) |
绕Z轴旋转当前向量 | |
vec3f | v3 () const |
vec3f (const double X, const double Y, const double Z) | |
参数化构造函数,从三个浮点数构造。 | |
vec3f (vector3 a) | |
拷贝构造函数,从另一个vector3对象构造。 | |
vec3f (void) | |
默认构造函数。 | |
静态 Public 成员函数 | |
static vec3f | normalize (vec3f a) |
静态方法:归一化一个向量 | |
static vec3f | random () |
静态方法:生成一个随机三维向量 | |
static double | random_double () |
静态方法:生成一个随机双精度浮点数 | |
static void | random_init () |
静态方法:初始化随机数生成器 | |
Public 属性 | |
double | x |
double | y |
double | z |
静态 Public 属性 | |
static int | random_number |
静态成员变量:随机数生成器使用的随机数 | |
一个包含三维浮点数坐标的向量结构体,提供了一系列向量运算。
在文件 Simplify.h 第 132 行定义.
|
inline |
默认构造函数。
在文件 Simplify.h 第 139 行定义.
被这些函数引用 frac(), integer(), operator*(), operator*(), operator+(), operator+=(), operator-(), operator/(), operator/() , 以及 v3().
|
inline |
拷贝构造函数,从另一个vector3对象构造。
a | 一个vector3对象。 |
在文件 Simplify.h 第 146 行定义.
引用了 vector3::x, x, vector3::y, y, vector3::z , 以及 z.
|
inline |
|
inline |
|
inline |
计算两个三维向量的叉积
计算两个三维向量a和b的叉积,并将结果存储在调用对象中。
a | 第一个三维向量 |
b | 第二个三维向量 |
在文件 Simplify.h 第 265 行定义.
被这些函数引用 angle2(), Simplify::SimplificationObject::flipped() , 以及 Simplify::SimplificationObject::update_mesh().
|
inline |
计算当前对象与另一个vec3f对象的点积。
a | 另一个vec3f对象。 |
在文件 Simplify.h 第 252 行定义.
被这些函数引用 angle(), angle2(), barycentric(), Simplify::SimplificationObject::flipped() , 以及 Simplify::SimplificationObject::update_mesh().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
将当前向量归一化
将当前向量缩放为其单位长度(即长度为1),或者指定的长度。
desired_length | 希望的长度,默认为1。 |
在文件 Simplify.h 第 452 行定义.
被这些函数引用 Simplify::SimplificationObject::flipped() , 以及 Simplify::SimplificationObject::update_mesh().
静态方法:归一化一个向量
计算并返回一个向量的单位长度版本。
a | 要归一化的向量。 |
|
inline |
|
inline |
赋值运算符重载,从另一个vec3f对象赋值。
a | 另一个vec3f对象。 |
在文件 Simplify.h 第 196 行定义.
引用了 vector3::x, x, vector3::y, y, vector3::z , 以及 z.
|
static |
静态方法:生成一个随机三维向量
生成一个每个分量都在[0, 1)范围内的随机三维向量。
|
inline |
将当前向量的每个分量设置为[0, 1)范围内的随机数
使用random_double_01方法为每个分量生成一个随机数。
在文件 Simplify.h 第 526 行定义.
引用了 random_double_01(), x, y , 以及 z.
|
static |
静态方法:生成一个随机双精度浮点数
生成一个在[0, 1)范围内的随机双精度浮点数。
|
inline |
生成一个[0, 1)范围内的随机双精度浮点数,基于给定的输入进行变换
使用一个复杂的线性同余生成器(LCG)算法,基于给定的输入a生成一个随机数。
a | 输入值,用于影响生成的随机数。 |
在文件 Simplify.h 第 513 行定义.
被这些函数引用 random01_fxyz().
|
static |
静态方法:初始化随机数生成器
设置随机数生成的初始状态。
|
inline |
|
inline |
|
inline |
|
static |
double vec3f::x |
在文件 Simplify.h 第 135 行定义.
被这些函数引用 angle(), angle2(), Simplify::SimplificationObject::calculate_error(), clamp(), cross(), dot(), frac(), integer(), interpolate(), invert(), length(), Simplify::SimplificationObject::load_obj(), normalize(), operator*(), operator*(), operator+(), operator+=(), operator-(), operator/(), operator/(), operator=(), operator=(), random01_fxyz(), rot_y(), rot_z(), carla::geom::Simplification::Simplificate(), Simplify::SimplificationObject::update_mesh(), v3(), vec3f() , 以及 vec3f().
double vec3f::y |
在文件 Simplify.h 第 135 行定义.
被这些函数引用 angle(), angle2(), Simplify::SimplificationObject::calculate_error(), clamp(), cross(), dot(), frac(), integer(), interpolate(), invert(), length(), Simplify::SimplificationObject::load_obj(), normalize(), operator*(), operator*(), operator+(), operator+=(), operator-(), operator/(), operator/(), operator=(), operator=(), random01_fxyz(), rot_x(), rot_z(), carla::geom::Simplification::Simplificate(), Simplify::SimplificationObject::update_mesh(), v3(), vec3f() , 以及 vec3f().
double vec3f::z |
在文件 Simplify.h 第 135 行定义.
被这些函数引用 angle(), angle2(), Simplify::SimplificationObject::calculate_error(), clamp(), cross(), dot(), frac(), integer(), interpolate(), invert(), length(), Simplify::SimplificationObject::load_obj(), normalize(), operator*(), operator*(), operator+(), operator+=(), operator-(), operator/(), operator/(), operator=(), operator=(), random01_fxyz(), rot_x(), rot_y(), carla::geom::Simplification::Simplificate(), Simplify::SimplificationObject::update_mesh(), v3(), vec3f() , 以及 vec3f().