CARLA
 
载入中...
搜索中...
未找到
| 命名空间 | 宏定义 | 枚举 | 函数
Simplify.h 文件参考
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <map>
#include <vector>
#include <string>
#include <math.h>
#include <float.h>
+ Simplify.h 的引用(Include)关系图:
+ 此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

struct  Simplify::Ref
 表示三角形和顶点之间的引用的数据结构。 更多...
 
class  Simplify::SimplificationObject
 用于简化网格的类。 更多...
 
class  SymetricMatrix
 对称矩阵类 更多...
 
struct  Simplify::Triangle
 表示三角形的数据结构。 更多...
 
struct  vec3f
 一个包含三维浮点数坐标的向量结构体,提供了一系列向量运算。 更多...
 
struct  vector3
 一个简单的三维向量结构体,包含x、y、z三个坐标。 更多...
 
struct  Simplify::Vertex
 表示顶点的数据结构。 更多...
 

命名空间

namespace  Simplify
 命名空间,用于简化网格模型的工具和数据结构。
 

宏定义

#define loopi(start_l, end_l)   for (int i = start_l; i < end_l; ++i)
 标准输入输出流库
 
#define loopi(start_l, end_l)   for (int i = start_l; i < end_l; ++i)
 标准输入输出流库
 
#define loopj(start_l, end_l)   for (int j = start_l; j < end_l; ++j)
 定义一个循环宏,使用变量j从start_l迭代到end_l(不包括end_l)。
 
#define loopk(start_l, end_l)   for (int k = start_l; k < end_l; ++k)
 定义一个循环宏,使用变量k从start_l迭代到end_l(不包括end_l)。
 

枚举

enum  Simplify::Attributes { Simplify::NONE , Simplify::NORMAL = 2 , Simplify::TEXCOORD = 4 , Simplify::COLOR = 8 }
 枚举类型,表示三角形的属性。 更多...
 

函数

vec3f barycentric (const vec3f &p, const vec3f &a, const vec3f &b, const vec3f &c)
 计算点p相对于三角形abc的重心坐标
 
vec3f interpolate (const vec3f &p, const vec3f &a, const vec3f &b, const vec3f &c, const vec3f attrs[3])
 根据重心坐标插值属性
 
double min (double v1, double v2)
 返回两个数中的较小值
 

宏定义说明

◆ loopi [1/2]

#define loopi ( start_l,
end_l )   for (int i = start_l; i < end_l; ++i)

标准输入输出流库

提供输入输出功能,用于在控制台打印信息或读取用户输入。

文件流库

提供文件读写功能,支持文本文件和二进制文件的操作。

算法库

提供各种常用算法的实现,如排序、查找等。

字符串操作函数库(C风格)

提供一系列用于处理C风格字符串的函数,如复制、比较等。

标准输入输出库(C风格)

提供基本的输入输出功能,如打印、读取等,通常用于控制台应用程序。

标准库头文件(C风格)

提供内存分配、程序控制、环境访问等功能。

关联数组(映射)库

提供了一种存储键值对的数据结构,可以快速地根据键查找对应的值。

动态数组库

提供了一种可以动态调整大小的数组数据结构,支持随机访问和高效的元素添加/删除。

字符串库(C++风格)

提供了一种表示和操作字符串的类,比C风格的字符串提供了更多的功能和安全性。

数学库

提供各种数学函数,如三角函数、对数函数、幂函数等。

浮点型数值限制库

定义了浮点型数值的一些极限值,如最小正数(FLT_EPSILON, DBL_EPSILON)等。

          @def loopi
          @brief 定义一个循环宏,使用变量i从start_l迭代到end_l(不包括end_l)。

          @param start_l 循环起始值(包含)。
          @param end_l 循环结束值(不包含)。

定义一个循环宏,使用变量 i 从 start_l 迭代到 end_l(不包括 end_l)

在文件 Simplify.h99 行定义.

被这些函数引用 Simplify::SimplificationObject::compact_mesh(), Simplify::SimplificationObject::load_obj(), Simplify::SimplificationObject::simplify_mesh(), Simplify::SimplificationObject::simplify_mesh_lossless(), SymetricMatrix::SymetricMatrix(), Simplify::SimplificationObject::update_mesh() , 以及 Simplify::SimplificationObject::write_obj().

◆ loopi [2/2]

#define loopi ( start_l,
end_l )   for (int i = start_l; i < end_l; ++i)

标准输入输出流库

提供输入输出功能,用于在控制台打印信息或读取用户输入。

文件流库

提供文件读写功能,支持文本文件和二进制文件的操作。

算法库

提供各种常用算法的实现,如排序、查找等。

字符串操作函数库(C风格)

提供一系列用于处理C风格字符串的函数,如复制、比较等。

标准输入输出库(C风格)

提供基本的输入输出功能,如打印、读取等,通常用于控制台应用程序。

标准库头文件(C风格)

提供内存分配、程序控制、环境访问等功能。

关联数组(映射)库

提供了一种存储键值对的数据结构,可以快速地根据键查找对应的值。

动态数组库

提供了一种可以动态调整大小的数组数据结构,支持随机访问和高效的元素添加/删除。

字符串库(C++风格)

提供了一种表示和操作字符串的类,比C风格的字符串提供了更多的功能和安全性。

数学库

提供各种数学函数,如三角函数、对数函数、幂函数等。

浮点型数值限制库

定义了浮点型数值的一些极限值,如最小正数(FLT_EPSILON, DBL_EPSILON)等。

          @def loopi
          @brief 定义一个循环宏,使用变量i从start_l迭代到end_l(不包括end_l)。

          @param start_l 循环起始值(包含)。
          @param end_l 循环结束值(不包含)。

定义一个循环宏,使用变量 i 从 start_l 迭代到 end_l(不包括 end_l)

在文件 Simplify.h99 行定义.

◆ loopj

#define loopj ( start_l,
end_l )   for (int j = start_l; j < end_l; ++j)

定义一个循环宏,使用变量j从start_l迭代到end_l(不包括end_l)。

参数
start_l循环起始值(包含)。
end_l循环结束值(不包含)。

在文件 Simplify.h108 行定义.

被这些函数引用 Simplify::SimplificationObject::compact_mesh(), Simplify::SimplificationObject::load_obj(), Simplify::SimplificationObject::simplify_mesh(), Simplify::SimplificationObject::simplify_mesh_lossless() , 以及 Simplify::SimplificationObject::update_mesh().

◆ loopk

#define loopk ( start_l,
end_l )   for (int k = start_l; k < end_l; ++k)

定义一个循环宏,使用变量k从start_l迭代到end_l(不包括end_l)。

参数
start_l循环起始值(包含)。
end_l循环结束值(不包含)。

在文件 Simplify.h116 行定义.

被这些函数引用 Simplify::SimplificationObject::flipped(), Simplify::SimplificationObject::update_mesh(), Simplify::SimplificationObject::update_triangles() , 以及 Simplify::SimplificationObject::update_uvs().

函数说明

◆ barycentric()

vec3f barycentric ( const vec3f & p,
const vec3f & a,
const vec3f & b,
const vec3f & c )

计算点p相对于三角形abc的重心坐标

给定三角形abc和点p,计算点p的重心坐标(u, v, w)。 重心坐标满足u + v + w = 1,并且表示点p相对于三角形abc的位置。

参数
p需要计算重心坐标的点
a三角形的第一个顶点
b三角形的第二个顶点
c三角形的第三个顶点
返回
vec3f 包含重心坐标(u, v, w)的向量

在文件 Simplify.h546 行定义.

引用了 vec3f::dot().

被这些函数引用 interpolate().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ interpolate()

vec3f interpolate ( const vec3f & p,
const vec3f & a,
const vec3f & b,
const vec3f & c,
const vec3f attrs[3] )

根据重心坐标插值属性

给定三角形abc和点p的重心坐标,以及三角形abc三个顶点的属性attrs, 计算点p处的插值属性。

参数
p需要计算插值属性的点
a三角形的第一个顶点
b三角形的第二个顶点
c三角形的第三个顶点
attrs包含三角形三个顶点属性的数组
返回
vec3f 插值后的属性向量

在文件 Simplify.h575 行定义.

引用了 barycentric(), vec3f::x, vec3f::y , 以及 vec3f::z.

被这些函数引用 Simplify::SimplificationObject::update_uvs().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ min()

double min ( double v1,
double v2 )

返回两个数中的较小值

参数
v1第一个数
v2第二个数
返回
double 返回v1和v2中的较小值

在文件 Simplify.h591 行定义.

被这些函数引用 Simplify::SimplificationObject::calculate_error(), vec3f::clamp(), carla::geom::Math::Clamp(), MapGen::getRotation(), carla::nav::Navigation::GetWalkerTransform(), util::Random::Location(), MeshReconstruction::MarchCube(), util::Random::Uniform(), Simplify::SimplificationObject::update_mesh() , 以及 Simplify::SimplificationObject::update_triangles().

+ 这是这个函数的调用关系图: