MeshLib Rust Docs
Loading...
Searching...
No Matches
meshlib::triangulation_helpers Namespace Reference

Classes

struct  FanOptimizerQueueElement
struct  Settings
struct  TriangulatedFanData
 Data with caches for optimizing fan triangulation. More...

Functions

auto update_neighbors_radius (points:&meshlib::VertCoords, v:meshlib::VertId, boundaryV:meshlib::VertId, fan:&meshlib::std_vector_MR_VertId, baseRadius:f32) -> f32
 Finds max radius of neighbors search, for possible better local triangulation.
void find_neighbors_in_ball (pointCloud:&meshlib::PointCloud, v:meshlib::VertId, radius:f32, neighbors:&mut meshlib::std_vector_MR_VertId)
 Finds all neighbors of v in given radius (v excluded)
auto find_num_neighbors (pointCloud:&meshlib::PointCloud, v:meshlib::VertId, numNeis:core::ffi::c_int, neighbors:&mut meshlib::std_vector_MR_VertId, tmp:&mut meshlib::FewSmallest_MR_PointsProjectionResult, upDistLimitSq:Option< f32 >) -> f32
 Finds at most given number of neighbors of v (v excluded)
void filter_neighbors (orientedNormals:&meshlib::VertCoords, untrustedNormals:Option<&meshlib::VertBitSet >, v:meshlib::VertId, neighbors:&mut meshlib::std_vector_MR_VertId)
 Filter neighbors with crossing normals.
void build_local_triangulation (cloud:&meshlib::PointCloud, v:meshlib::VertId, settings:&meshlib::triangulation_helpers::Settings, fanData:&mut meshlib::triangulation_helpers::TriangulatedFanData)
auto build_local_triangulations (cloud:&meshlib::PointCloud, settings:&meshlib::triangulation_helpers::Settings, progress:Option<&meshlib::std_function_bool_from_float >) -> meshlib::Owned< meshlib::std_optional_std_vector_MR_SomeLocalTriangulations >
auto build_united_local_triangulations (cloud:&meshlib::PointCloud, settings:&meshlib::triangulation_helpers::Settings, progress:Option<&meshlib::std_function_bool_from_float >) -> meshlib::Owned< meshlib::std_optional_MR_AllLocalTriangulations >
auto is_boundary_point (cloud:&meshlib::PointCloud, v:meshlib::VertId, settings:&meshlib::triangulation_helpers::Settings, fanData:&mut meshlib::triangulation_helpers::TriangulatedFanData) -> bool
 Checks if given vertex is on boundary of the point cloud, by constructing local triangulation around it.
auto find_boundary_points (pointCloud:&meshlib::PointCloud, settings:&meshlib::triangulation_helpers::Settings, cb:Option<&meshlib::std_function_bool_from_float >) -> meshlib::Owned< meshlib::std_optional_MR_VertBitSet >

Function Documentation

◆ build_local_triangulation()

void meshlib::triangulation_helpers::build_local_triangulation ( cloud:&meshlib::PointCloud ,
v:meshlib::VertId ,
settings:&meshlib::triangulation_helpers::Settings ,
fanData:&mut meshlib::triangulation_helpers::TriangulatedFanData  )

constructs local triangulation around given point Generated from function MR::TriangulationHelpers::buildLocalTriangulation.

Calls MR_TriangulationHelpers_buildLocalTriangulation().

◆ build_local_triangulations()

auto meshlib::triangulation_helpers::build_local_triangulations ( cloud:&meshlib::PointCloud ,
settings:&meshlib::triangulation_helpers::Settings ,
progress:Option<&meshlib::std_function_bool_from_float >  ) -> meshlib::Owned< meshlib::std_optional_std_vector_MR_SomeLocalTriangulations >

computes all local triangulations of all points in the cloud, and returns them distributed among a set of SomeLocalTriangulations objects Generated from function MR::TriangulationHelpers::buildLocalTriangulations.

Calls MR_TriangulationHelpers_buildLocalTriangulations().

◆ build_united_local_triangulations()

auto meshlib::triangulation_helpers::build_united_local_triangulations ( cloud:&meshlib::PointCloud ,
settings:&meshlib::triangulation_helpers::Settings ,
progress:Option<&meshlib::std_function_bool_from_float >  ) -> meshlib::Owned< meshlib::std_optional_MR_AllLocalTriangulations >

/ computes local triangulations of all points in the cloud united in one struct Generated from function MR::TriangulationHelpers::buildUnitedLocalTriangulations.

Calls MR_TriangulationHelpers_buildUnitedLocalTriangulations().

◆ filter_neighbors()

void meshlib::triangulation_helpers::filter_neighbors ( orientedNormals:&meshlib::VertCoords ,
untrustedNormals:Option<&meshlib::VertBitSet > ,
v:meshlib::VertId ,
neighbors:&mut meshlib::std_vector_MR_VertId  )

Filter neighbors with crossing normals.

Generated from function MR::TriangulationHelpers::filterNeighbors.

Calls MR_TriangulationHelpers_filterNeighbors().

◆ find_boundary_points()

auto meshlib::triangulation_helpers::find_boundary_points ( pointCloud:&meshlib::PointCloud ,
settings:&meshlib::triangulation_helpers::Settings ,
cb:Option<&meshlib::std_function_bool_from_float >  ) -> meshlib::Owned< meshlib::std_optional_MR_VertBitSet >

Returns bit set of points that are considered as boundary by calling isBoundaryPoint in each Generated from function MR::TriangulationHelpers::findBoundaryPoints.

Calls MR_TriangulationHelpers_findBoundaryPoints().

◆ find_neighbors_in_ball()

void meshlib::triangulation_helpers::find_neighbors_in_ball ( pointCloud:&meshlib::PointCloud ,
v:meshlib::VertId ,
radius:f32 ,
neighbors:&mut meshlib::std_vector_MR_VertId  )

Finds all neighbors of v in given radius (v excluded)

Generated from function MR::TriangulationHelpers::findNeighborsInBall.

Calls MR_TriangulationHelpers_findNeighborsInBall().

◆ find_num_neighbors()

auto meshlib::triangulation_helpers::find_num_neighbors ( pointCloud:&meshlib::PointCloud ,
v:meshlib::VertId ,
numNeis:core::ffi::c_int ,
neighbors:&mut meshlib::std_vector_MR_VertId ,
tmp:&mut meshlib::FewSmallest_MR_PointsProjectionResult ,
upDistLimitSq:Option< f32 >  ) -> f32

Finds at most given number of neighbors of v (v excluded)

Parameters
tmptemporary storage to avoid its allocation
upDistLimitSqupper limit on the distance in question, points with larger distance than it will not be returned
Returns
maxDistSq to the furthest returned neighbor (or 0 if no neighbours are returned)

Generated from function MR::TriangulationHelpers::findNumNeighbors.

Calls MR_TriangulationHelpers_findNumNeighbors().

◆ is_boundary_point()

auto meshlib::triangulation_helpers::is_boundary_point ( cloud:&meshlib::PointCloud ,
v:meshlib::VertId ,
settings:&meshlib::triangulation_helpers::Settings ,
fanData:&mut meshlib::triangulation_helpers::TriangulatedFanData  ) -> bool

Checks if given vertex is on boundary of the point cloud, by constructing local triangulation around it.

Parameters
cloudinput point cloud
vvertex id to check
settingsall parameters of the computation
fanDatacache structure for neighbors, not to allocate for multiple calls
Returns
true if vertex is boundary, false otherwise

Generated from function MR::TriangulationHelpers::isBoundaryPoint.

Calls MR_TriangulationHelpers_isBoundaryPoint().

◆ update_neighbors_radius()

auto meshlib::triangulation_helpers::update_neighbors_radius ( points:&meshlib::VertCoords ,
v:meshlib::VertId ,
boundaryV:meshlib::VertId ,
fan:&meshlib::std_vector_MR_VertId ,
baseRadius:f32  ) -> f32

Finds max radius of neighbors search, for possible better local triangulation.

Parameters
boundaryVfirst boundary vertex in fan (next VertId in fan is also boundary but first is enough)

Generated from function MR::TriangulationHelpers::updateNeighborsRadius.

Calls MR_TriangulationHelpers_updateNeighborsRadius().