#include <opennurbs_mesh.h>
◆ ON_MeshThicknessAnalysis()
ON_MeshThicknessAnalysis::ON_MeshThicknessAnalysis |
( |
| ) |
|
|
default |
◆ ~ON_MeshThicknessAnalysis()
ON_MeshThicknessAnalysis::~ON_MeshThicknessAnalysis |
( |
| ) |
|
|
default |
◆ AddMesh()
unsigned int ON_MeshThicknessAnalysis::AddMesh |
( |
const ON_Mesh * |
mesh, |
|
|
ON__UINT_PTR |
mesh_context, |
|
|
ON_Terminator * |
terminator |
|
) |
| |
Description: Adds a mesh that will be included in the thickness calculation. Multiple meshes can be added. The final calculation will treat the collection of mesh faces and vertices as a single mesh. Parameters: mesh - [in] mesh to add. mesh_context - [in] A "context" value passed back on ON_MeshThicknessAnalysisPoint.m_mesh_context when an ON_MeshThicknessAnalysisVertexIterator is use to iterate through the results. If you are certain mesh will persist until you are finished iterating over the results, (ON__UINT_PTR)mesh can be passed to provide quick access to mesh during iteration. terminator - [in] (can be nullptr) optional terminator to check. This process is generally fast. If your mesh has millions of vertices and faces, you may want to use a terminator. Returns: >0: The mesh id value for this mesh in this ON_MeshThicknessAnalysis The first mesh has id = 1, the second id = 2, and so on. 0: Invalid input nothing added.
◆ CalculateVertexDistances()
bool ON_MeshThicknessAnalysis::CalculateVertexDistances |
( |
double |
max_distance, |
|
|
double |
sharp_angle_radians, |
|
|
ON_ProgressReporter * |
progress_reporter, |
|
|
ON_Terminator * |
terminator |
|
) |
| |
Description: Computes the shortest distance from each vertex to a facet on the "other side". When that distance is <= max_distance, the information is saved. Parameters: mesh - [in] mesh to add. max_distance - [in] Distances larger than this value will be ignored. Setting this parameter to a value a bit larger than any distance you care about can dramatically reduce the amount of time spent in CalculateVertexDistances(). sharp_angle_radians - [in] If sharp_angle_radians >= 0.0 and < 0.5*ON_PI, it is used as the sharp angle. Otherwise, 89 degrees (89.0/180.0*ON_PI radians) is used as the sharp angle. When the interior angle between triangles sharing a common vertex is <= sharp angle, the vertex is assigned a thickness of 0.
Smaller values of sharp_angle_radians reduce the number of adjacent vertices that are assigned a thickness of 0. progress_reporter - [in] (can be nullptr) optional progress reporter. terminator - [in] (can be nullptr) optional terminator. Returns: true: Calculation finished. false: Calculation failed or was terminated.
◆ Iterator()
◆ MaximumDistance()
double ON_MeshThicknessAnalysis::MaximumDistance |
( |
| ) |
const |
Returns: Value of maximum distance used to set vertex distances
◆ MeshCount()
unsigned int ON_MeshThicknessAnalysis::MeshCount |
( |
| ) |
const |
◆ PointCount()
unsigned int ON_MeshThicknessAnalysis::PointCount |
( |
| ) |
const |
◆ SharpAngleRadians()
double ON_MeshThicknessAnalysis::SharpAngleRadians |
( |
| ) |
const |
Returns: The sharp angle used to set vertex distances
◆ VertexDistancesSet()
bool ON_MeshThicknessAnalysis::VertexDistancesSet |
( |
| ) |
const |
◆ ON_MeshThicknessAnalysisVertexIterator
C4251: 'ON_MeshThicknessAnalysisVertexIterator::m_sp' : class 'std::shared_ptr<ON_MeshThicknessAnalysisImpl>' needs to have dll-interface to be used by clients ... m_sp is private and all code that manages m_sp is explicitly implemented in the DLL.