common: 项目和插件常用到的功能函数和classes
external: 依赖的第三方库的源码,例如:
lib3ds
Autodesk 3D Studio文件C语言库.
muparser
Fast mathematical expressions parser library.
OpenCTM
Library for compression of 3D triangle meshes.
bzip2
File compression program that uses the Burrows–Wheeler algorithm.
jhead
Extract and manipulate JPEG EXIFinformation of photos.
levmar
The Levenberg-Marquardt algorithm is an iterative technique that finds a local minimum ofa function that is expressed as the sum of squares of nonlinear functions.通用的非线性最小二乘算法库.
glew
The OpenGL Extension Wrangler Library.
qhull
Qhullcomputes the convex hull, Delaunay triangulation, Voronoi diagram, halfspaceintersection about a point, furthest-site Delaunay triangulation, andfurthest-site Voronoi diagram. It runs in 2-d, 3-d, 4-d, and higher dimensions.研究解决凸包问题.
meshlab: 核心功能和GUI实现
meshlabserver: 运行在cmd的meshlab工具,常用于批量处理。
meshlabplugins: 插件集合
meshlab中插件的加载有二种方式:
其中,插件中的对话框等UI部分,都是通过MeshlabStdDialog和MeshLabXMLStdDialog二个类生成的。
MeshLab对其功能的扩展是通过插件来实现的,通过实现不同的接口,可以将插件放在不同的菜单下或工具栏上。例如:MeshFilterInterface接口,用于实现Filter菜单下的插件。
常见插件例如:
filter_meshing
Mesh网格处理:缩放、移动、旋转,细分面,删除重复顶点等。
filter_select
提供多种选择和删除方式。
filter_layer
Mesh层操作。例如:删除/复制/重命名Mesh层、合并Mesh层等。
io_base
导入/导出一些3D文件。例如:STL,PLY, OBJ等。
decorate_base
绘制坐标轴、顶点、边角、边框、网格、标签、特征柱状图等。
edit_manipulators
鼠标和键盘键进行操作:缩放、平移和旋转。
edit_align
Mesh拼接。
edit_hole
Mesh补洞。
edit_measure
测量Mesh中选定距离。
render_gdp
着色器:遍历加载与处理.gdp文件。
render_rfx
着色器:遍历加载与处理.rfx文件。
sampleplugins
扩展插件示例源码的目录。
use_cpu_opengl: 仅用于Windows平台,用于非GPU加速的OpenGL调用
vcglib: 核心功能库(项目子模块)
vcglib采用标准C++开发,封装了IO,OpenGL等功能。核心功能如下:
目录结构:
vcg
整个库的核心,定义了所有的算法和数据结构。
wrap
包含一些针对特定需求/上下文/库的VCG概念的封装。例如:很多格式的网格数据的导入和导出,用OpenGL渲染三角形网格的代码等。
eigenLib
线性代数库,VCGLib中的高级矩阵操作基于这个库。
插件类图(继承关系)
原文:https://www.cnblogs.com/brt2/p/14251184.html