MeshLib Rust Docs
Loading...
Searching...
No Matches
meshlib::SubdivideSettings Struct Reference
Inheritance diagram for meshlib::SubdivideSettings:

Public Member Functions

auto assign_from_another (_other:&meshlib::SubdivideSettings) -> &mut meshlib::SubdivideSettings
auto max_edge_len () const -> &f32
auto max_edge_len_mut () -> &mut f32
void set_max_edge_len (value:f32)
auto curvature_priority () const -> &f32
auto curvature_priority_mut () -> &mut f32
void set_curvature_priority (value:f32)
auto max_edge_splits () const -> &core::ffi::c_int
auto max_edge_splits_mut () -> &mut core::ffi::c_int
void set_max_edge_splits (value:core::ffi::c_int)
auto max_deviation_after_flip () const -> &f32
auto max_deviation_after_flip_mut () -> &mut f32
void set_max_deviation_after_flip (value:f32)
auto max_angle_change_after_flip () const -> &f32
auto max_angle_change_after_flip_mut () -> &mut f32
void set_max_angle_change_after_flip (value:f32)
auto critical_aspect_ratio_flip () const -> &f32
auto critical_aspect_ratio_flip_mut () -> &mut f32
void set_critical_aspect_ratio_flip (value:f32)
auto region () const -> *const *mut meshlib::ffi::MR_FaceBitSet
auto region_mut () -> *mut *mut meshlib::ffi::MR_FaceBitSet
void set_region (value:Option<&mut meshlib::FaceBitSet >)
auto maintain_region () const -> *const *mut meshlib::ffi::MR_FaceBitSet
auto maintain_region_mut () -> *mut *mut meshlib::ffi::MR_FaceBitSet
void set_maintain_region (value:Option<&mut meshlib::FaceBitSet >)
auto not_flippable () const -> *const *mut meshlib::ffi::MR_UndirectedEdgeBitSet
auto not_flippable_mut () -> *mut *mut meshlib::ffi::MR_UndirectedEdgeBitSet
void set_not_flippable (value:Option<&mut meshlib::UndirectedEdgeBitSet >)
auto only_near_not_flippable () const -> &bool
auto only_near_not_flippable_mut () -> &mut bool
void set_only_near_not_flippable (value:bool)
auto new_verts () const -> *const *mut meshlib::ffi::MR_VertBitSet
auto new_verts_mut () -> *mut *mut meshlib::ffi::MR_VertBitSet
void set_new_verts (value:Option<&mut meshlib::VertBitSet >)
auto subdivide_border () const -> &bool
auto subdivide_border_mut () -> &mut bool
void set_subdivide_border (value:bool)
auto max_tri_aspect_ratio () const -> &f32
auto max_tri_aspect_ratio_mut () -> &mut f32
void set_max_tri_aspect_ratio (value:f32)
auto max_splittable_tri_aspect_ratio () const -> &f32
auto max_splittable_tri_aspect_ratio_mut () -> &mut f32
void set_max_splittable_tri_aspect_ratio (value:f32)
auto smooth_mode () const -> &bool
auto smooth_mode_mut () -> &mut bool
void set_smooth_mode (value:bool)
auto min_sharp_dihedral_angle () const -> &f32
auto min_sharp_dihedral_angle_mut () -> &mut f32
void set_min_sharp_dihedral_angle (value:f32)
auto project_on_original_mesh () const -> &bool
auto project_on_original_mesh_mut () -> &mut bool
void set_project_on_original_mesh (value:bool)
auto before_edge_split () const -> &meshlib::std_function_bool_from_MR_EdgeId
auto before_edge_split_mut () -> &mut meshlib::std_function_bool_from_MR_EdgeId
void set_before_edge_split (value:&meshlib::std_function_bool_from_MR_EdgeId)
auto on_vert_created () const -> &meshlib::std_function_void_from_MR_VertId
auto on_vert_created_mut () -> &mut meshlib::std_function_void_from_MR_VertId
void set_on_vert_created (value:&meshlib::std_function_void_from_MR_VertId)
auto on_edge_split () const -> &meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId
auto on_edge_split_mut () -> &mut meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId
void set_on_edge_split (value:&meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId)
auto progress_callback () const -> &meshlib::std_function_bool_from_float
auto progress_callback_mut () -> &mut meshlib::std_function_bool_from_float
void set_progress_callback (value:&meshlib::std_function_bool_from_float)

Static Public Member Functions

static auto new () -> meshlib::Owned< meshlib::SubdivideSettings >
static auto construct_from (maxEdgeLen:f32, curvaturePriority:f32, maxEdgeSplits:core::ffi::c_int, maxDeviationAfterFlip:f32, maxAngleChangeAfterFlip:f32, criticalAspectRatioFlip:f32, region:Option<&mut meshlib::FaceBitSet >, maintainRegion:Option<&mut meshlib::FaceBitSet >, notFlippable:Option<&mut meshlib::UndirectedEdgeBitSet >, onlyNearNotFlippable:bool, newVerts:Option<&mut meshlib::VertBitSet >, subdivideBorder:bool, maxTriAspectRatio:f32, maxSplittableTriAspectRatio:f32, smoothMode:bool, minSharpDihedralAngle:f32, projectOnOriginalMesh:bool, beforeEdgeSplit:&meshlib::std_function_bool_from_MR_EdgeId, onVertCreated:&meshlib::std_function_void_from_MR_VertId, onEdgeSplit:&meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId, progressCallback:&meshlib::std_function_bool_from_float) -> meshlib::Owned< meshlib::SubdivideSettings >
static auto construct_from_another (_other:&meshlib::SubdivideSettings) -> meshlib::Owned< meshlib::SubdivideSettings >
Static Public Member Functions inherited from meshlib::CppClass
static void destroy (ptr:*mut Self)
Static Public Member Functions inherited from meshlib::CppCopy
static auto copy (ptr:*const Self) -> *mut Self

Detailed Description

Generated from class MR::SubdivideSettings.

Generated from class MR::SubdivideSettings. Heap-allocated instances are held in Owned<SubdivideSettings>.

Member Function Documentation

◆ assign_from_another()

auto meshlib::SubdivideSettings::assign_from_another ( _other:&meshlib::SubdivideSettings ) -> &mut meshlib::SubdivideSettings

Generated from method MR::SubdivideSettings::operator=.

Calls MR_SubdivideSettings_AssignFromAnother(). The reference to things referred to by the parameter _other (if any) might be preserved in this object.

◆ before_edge_split()

auto meshlib::SubdivideSettings::before_edge_split ( ) const -> &meshlib::std_function_bool_from_MR_EdgeId

this function is called each time edge (e) is going to split, if it returns false then this split will be skipped Returns a pointer to a member variable of class MR::SubdivideSettings named beforeEdgeSplit.

Calls MR_SubdivideSettings_Get_beforeEdgeSplit(). The reference to this object might be preserved as the return value.

◆ before_edge_split_mut()

auto meshlib::SubdivideSettings::before_edge_split_mut ( ) -> &mut meshlib::std_function_bool_from_MR_EdgeId

this function is called each time edge (e) is going to split, if it returns false then this split will be skipped Returns a mutable pointer to a member variable of class MR::SubdivideSettings named beforeEdgeSplit.

Calls MR_SubdivideSettings_GetMutable_beforeEdgeSplit(). The reference to this object might be preserved as the return value.

◆ construct_from()

auto meshlib::SubdivideSettings::construct_from ( maxEdgeLen:f32 ,
curvaturePriority:f32 ,
maxEdgeSplits:core::ffi::c_int ,
maxDeviationAfterFlip:f32 ,
maxAngleChangeAfterFlip:f32 ,
criticalAspectRatioFlip:f32 ,
region:Option<&mut meshlib::FaceBitSet > ,
maintainRegion:Option<&mut meshlib::FaceBitSet > ,
notFlippable:Option<&mut meshlib::UndirectedEdgeBitSet > ,
onlyNearNotFlippable:bool ,
newVerts:Option<&mut meshlib::VertBitSet > ,
subdivideBorder:bool ,
maxTriAspectRatio:f32 ,
maxSplittableTriAspectRatio:f32 ,
smoothMode:bool ,
minSharpDihedralAngle:f32 ,
projectOnOriginalMesh:bool ,
beforeEdgeSplit:&meshlib::std_function_bool_from_MR_EdgeId ,
onVertCreated:&meshlib::std_function_void_from_MR_VertId ,
onEdgeSplit:&meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId ,
progressCallback:&meshlib::std_function_bool_from_float  ) -> meshlib::Owned< meshlib::SubdivideSettings >
static

Constructs MR::SubdivideSettings elementwise.

Calls MR_SubdivideSettings_ConstructFrom(). The reference to the parameter region might be preserved in the constructed object. The reference to the parameter maintainRegion might be preserved in the constructed object. The reference to the parameter notFlippable might be preserved in the constructed object. The reference to the parameter newVerts might be preserved in the constructed object. The reference to the parameter beforeEdgeSplit might be preserved in the constructed object. The reference to the parameter onVertCreated might be preserved in the constructed object. The reference to the parameter onEdgeSplit might be preserved in the constructed object. The reference to the parameter progressCallback might be preserved in the constructed object.

◆ construct_from_another()

auto meshlib::SubdivideSettings::construct_from_another ( _other:&meshlib::SubdivideSettings ) -> meshlib::Owned< meshlib::SubdivideSettings >
static

Generated from constructor MR::SubdivideSettings::SubdivideSettings.

Calls MR_SubdivideSettings_ConstructFromAnother(). The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object.

◆ critical_aspect_ratio_flip()

auto meshlib::SubdivideSettings::critical_aspect_ratio_flip ( ) const -> &f32

If this value is less than FLT_MAX then edge flips will ignore dihedral angle check if one of triangles has aspect ratio more than this value Unit: rad Returns a pointer to a member variable of class MR::SubdivideSettings named criticalAspectRatioFlip.

Calls MR_SubdivideSettings_Get_criticalAspectRatioFlip(). The reference to this object might be preserved as the return value.

◆ critical_aspect_ratio_flip_mut()

auto meshlib::SubdivideSettings::critical_aspect_ratio_flip_mut ( ) -> &mut f32

If this value is less than FLT_MAX then edge flips will ignore dihedral angle check if one of triangles has aspect ratio more than this value Unit: rad Returns a mutable pointer to a member variable of class MR::SubdivideSettings named criticalAspectRatioFlip.

Calls MR_SubdivideSettings_GetMutable_criticalAspectRatioFlip(). The reference to this object might be preserved as the return value.

◆ curvature_priority()

auto meshlib::SubdivideSettings::curvature_priority ( ) const -> &f32

edge length will be magnified by the squared difference of normals at edge's ends times this factor, thus subdivision will be finer in the regions of high curvature compared to planar regions Returns a pointer to a member variable of class MR::SubdivideSettings named curvaturePriority.

Calls MR_SubdivideSettings_Get_curvaturePriority(). The reference to this object might be preserved as the return value.

◆ curvature_priority_mut()

auto meshlib::SubdivideSettings::curvature_priority_mut ( ) -> &mut f32

edge length will be magnified by the squared difference of normals at edge's ends times this factor, thus subdivision will be finer in the regions of high curvature compared to planar regions Returns a mutable pointer to a member variable of class MR::SubdivideSettings named curvaturePriority.

Calls MR_SubdivideSettings_GetMutable_curvaturePriority(). The reference to this object might be preserved as the return value.

◆ maintain_region()

auto meshlib::SubdivideSettings::maintain_region ( ) const -> *const *mut meshlib::ffi::MR_FaceBitSet

Additional region to update during subdivision: if a face from here is split, it is replaced with new sub-faces; note that Subdivide can split faces even outside of main region, so it might be necessary to update another region Returns a pointer to a member variable of class MR::SubdivideSettings named maintainRegion.

Calls MR_SubdivideSettings_Get_maintainRegion(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ maintain_region_mut()

auto meshlib::SubdivideSettings::maintain_region_mut ( ) -> *mut *mut meshlib::ffi::MR_FaceBitSet

Additional region to update during subdivision: if a face from here is split, it is replaced with new sub-faces; note that Subdivide can split faces even outside of main region, so it might be necessary to update another region Returns a mutable pointer to a member variable of class MR::SubdivideSettings named maintainRegion.

Calls MR_SubdivideSettings_GetMutable_maintainRegion(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ max_angle_change_after_flip()

auto meshlib::SubdivideSettings::max_angle_change_after_flip ( ) const -> &f32

Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than on this value (in radians) Returns a pointer to a member variable of class MR::SubdivideSettings named maxAngleChangeAfterFlip.

Calls MR_SubdivideSettings_Get_maxAngleChangeAfterFlip(). The reference to this object might be preserved as the return value.

◆ max_angle_change_after_flip_mut()

auto meshlib::SubdivideSettings::max_angle_change_after_flip_mut ( ) -> &mut f32

Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than on this value (in radians) Returns a mutable pointer to a member variable of class MR::SubdivideSettings named maxAngleChangeAfterFlip.

Calls MR_SubdivideSettings_GetMutable_maxAngleChangeAfterFlip(). The reference to this object might be preserved as the return value.

◆ max_deviation_after_flip()

auto meshlib::SubdivideSettings::max_deviation_after_flip ( ) const -> &f32

Improves local mesh triangulation by doing edge flips if it does not make too big surface deviation Returns a pointer to a member variable of class MR::SubdivideSettings named maxDeviationAfterFlip.

Calls MR_SubdivideSettings_Get_maxDeviationAfterFlip(). The reference to this object might be preserved as the return value.

◆ max_deviation_after_flip_mut()

auto meshlib::SubdivideSettings::max_deviation_after_flip_mut ( ) -> &mut f32

Improves local mesh triangulation by doing edge flips if it does not make too big surface deviation Returns a mutable pointer to a member variable of class MR::SubdivideSettings named maxDeviationAfterFlip.

Calls MR_SubdivideSettings_GetMutable_maxDeviationAfterFlip(). The reference to this object might be preserved as the return value.

◆ max_edge_len()

auto meshlib::SubdivideSettings::max_edge_len ( ) const -> &f32

Subdivision is stopped when all edges inside or on the boundary of the region are not longer than this value Returns a pointer to a member variable of class MR::SubdivideSettings named maxEdgeLen.

Calls MR_SubdivideSettings_Get_maxEdgeLen(). The reference to this object might be preserved as the return value.

◆ max_edge_len_mut()

auto meshlib::SubdivideSettings::max_edge_len_mut ( ) -> &mut f32

Subdivision is stopped when all edges inside or on the boundary of the region are not longer than this value Returns a mutable pointer to a member variable of class MR::SubdivideSettings named maxEdgeLen.

Calls MR_SubdivideSettings_GetMutable_maxEdgeLen(). The reference to this object might be preserved as the return value.

◆ max_edge_splits()

auto meshlib::SubdivideSettings::max_edge_splits ( ) const -> &core::ffi::c_int

Maximum number of edge splits allowed Returns a pointer to a member variable of class MR::SubdivideSettings named maxEdgeSplits.

Calls MR_SubdivideSettings_Get_maxEdgeSplits(). The reference to this object might be preserved as the return value.

◆ max_edge_splits_mut()

auto meshlib::SubdivideSettings::max_edge_splits_mut ( ) -> &mut core::ffi::c_int

Maximum number of edge splits allowed Returns a mutable pointer to a member variable of class MR::SubdivideSettings named maxEdgeSplits.

Calls MR_SubdivideSettings_GetMutable_maxEdgeSplits(). The reference to this object might be preserved as the return value.

◆ max_splittable_tri_aspect_ratio()

auto meshlib::SubdivideSettings::max_splittable_tri_aspect_ratio ( ) const -> &f32

An edge is subdivided only if both its left and right triangles have aspect ratio below or equal to this value. So this is a maximum aspect ratio of a triangle that can be split on two before Delone optimization. Please set it to a smaller value only if subdivideBorder==false, otherwise many narrow triangles can appear near border Returns a pointer to a member variable of class MR::SubdivideSettings named maxSplittableTriAspectRatio.

Calls MR_SubdivideSettings_Get_maxSplittableTriAspectRatio(). The reference to this object might be preserved as the return value.

◆ max_splittable_tri_aspect_ratio_mut()

auto meshlib::SubdivideSettings::max_splittable_tri_aspect_ratio_mut ( ) -> &mut f32

An edge is subdivided only if both its left and right triangles have aspect ratio below or equal to this value. So this is a maximum aspect ratio of a triangle that can be split on two before Delone optimization. Please set it to a smaller value only if subdivideBorder==false, otherwise many narrow triangles can appear near border Returns a mutable pointer to a member variable of class MR::SubdivideSettings named maxSplittableTriAspectRatio.

Calls MR_SubdivideSettings_GetMutable_maxSplittableTriAspectRatio(). The reference to this object might be preserved as the return value.

◆ max_tri_aspect_ratio()

auto meshlib::SubdivideSettings::max_tri_aspect_ratio ( ) const -> &f32

The subdivision stops as soon as all triangles (in the region) have aspect ratio below or equal to this value Returns a pointer to a member variable of class MR::SubdivideSettings named maxTriAspectRatio.

Calls MR_SubdivideSettings_Get_maxTriAspectRatio(). The reference to this object might be preserved as the return value.

◆ max_tri_aspect_ratio_mut()

auto meshlib::SubdivideSettings::max_tri_aspect_ratio_mut ( ) -> &mut f32

The subdivision stops as soon as all triangles (in the region) have aspect ratio below or equal to this value Returns a mutable pointer to a member variable of class MR::SubdivideSettings named maxTriAspectRatio.

Calls MR_SubdivideSettings_GetMutable_maxTriAspectRatio(). The reference to this object might be preserved as the return value.

◆ min_sharp_dihedral_angle()

auto meshlib::SubdivideSettings::min_sharp_dihedral_angle ( ) const -> &f32

30 degrees Returns a pointer to a member variable of class MR::SubdivideSettings named minSharpDihedralAngle.

Calls MR_SubdivideSettings_Get_minSharpDihedralAngle(). The reference to this object might be preserved as the return value.

◆ min_sharp_dihedral_angle_mut()

auto meshlib::SubdivideSettings::min_sharp_dihedral_angle_mut ( ) -> &mut f32

30 degrees Returns a mutable pointer to a member variable of class MR::SubdivideSettings named minSharpDihedralAngle.

Calls MR_SubdivideSettings_GetMutable_minSharpDihedralAngle(). The reference to this object might be preserved as the return value.

◆ new()

auto meshlib::SubdivideSettings::new ( ) -> meshlib::Owned< meshlib::SubdivideSettings >
static

Constructs an empty (default-constructed) instance.

Calls MR_SubdivideSettings_DefaultConstruct().

◆ new_verts()

auto meshlib::SubdivideSettings::new_verts ( ) const -> *const *mut meshlib::ffi::MR_VertBitSet

New vertices appeared during subdivision will be added here Returns a pointer to a member variable of class MR::SubdivideSettings named newVerts.

Calls MR_SubdivideSettings_Get_newVerts(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ new_verts_mut()

auto meshlib::SubdivideSettings::new_verts_mut ( ) -> *mut *mut meshlib::ffi::MR_VertBitSet

New vertices appeared during subdivision will be added here Returns a mutable pointer to a member variable of class MR::SubdivideSettings named newVerts.

Calls MR_SubdivideSettings_GetMutable_newVerts(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ not_flippable()

auto meshlib::SubdivideSettings::not_flippable ( ) const -> *const *mut meshlib::ffi::MR_UndirectedEdgeBitSet

Edges specified by this bit-set will never be flipped, but they can be split so it is updated during the operation Returns a pointer to a member variable of class MR::SubdivideSettings named notFlippable.

Calls MR_SubdivideSettings_Get_notFlippable(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ not_flippable_mut()

auto meshlib::SubdivideSettings::not_flippable_mut ( ) -> *mut *mut meshlib::ffi::MR_UndirectedEdgeBitSet

Edges specified by this bit-set will never be flipped, but they can be split so it is updated during the operation Returns a mutable pointer to a member variable of class MR::SubdivideSettings named notFlippable.

Calls MR_SubdivideSettings_GetMutable_notFlippable(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ on_edge_split()

auto meshlib::SubdivideSettings::on_edge_split ( ) const -> &meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId

this function is called each time edge (e) is split into (e1->e), but before the ring is made Delone Returns a pointer to a member variable of class MR::SubdivideSettings named onEdgeSplit.

Calls MR_SubdivideSettings_Get_onEdgeSplit(). The reference to this object might be preserved as the return value.

◆ on_edge_split_mut()

auto meshlib::SubdivideSettings::on_edge_split_mut ( ) -> &mut meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId

this function is called each time edge (e) is split into (e1->e), but before the ring is made Delone Returns a mutable pointer to a member variable of class MR::SubdivideSettings named onEdgeSplit.

Calls MR_SubdivideSettings_GetMutable_onEdgeSplit(). The reference to this object might be preserved as the return value.

◆ on_vert_created()

auto meshlib::SubdivideSettings::on_vert_created ( ) const -> &meshlib::std_function_void_from_MR_VertId

this function is called each time a new vertex has been created, but before the ring is made Delone Returns a pointer to a member variable of class MR::SubdivideSettings named onVertCreated.

Calls MR_SubdivideSettings_Get_onVertCreated(). The reference to this object might be preserved as the return value.

◆ on_vert_created_mut()

auto meshlib::SubdivideSettings::on_vert_created_mut ( ) -> &mut meshlib::std_function_void_from_MR_VertId

this function is called each time a new vertex has been created, but before the ring is made Delone Returns a mutable pointer to a member variable of class MR::SubdivideSettings named onVertCreated.

Calls MR_SubdivideSettings_GetMutable_onVertCreated(). The reference to this object might be preserved as the return value.

◆ only_near_not_flippable()

auto meshlib::SubdivideSettings::only_near_not_flippable ( ) const -> &bool

If true, then only the edges having a vertex of their left or right triangle incident to a notFlippable edge can be split, so subdivision is localized near notFlippable edges; notFlippable must not be null then (nothing is split in release otherwise) Returns a pointer to a member variable of class MR::SubdivideSettings named onlyNearNotFlippable.

Calls MR_SubdivideSettings_Get_onlyNearNotFlippable(). The reference to this object might be preserved as the return value.

◆ only_near_not_flippable_mut()

auto meshlib::SubdivideSettings::only_near_not_flippable_mut ( ) -> &mut bool

If true, then only the edges having a vertex of their left or right triangle incident to a notFlippable edge can be split, so subdivision is localized near notFlippable edges; notFlippable must not be null then (nothing is split in release otherwise) Returns a mutable pointer to a member variable of class MR::SubdivideSettings named onlyNearNotFlippable.

Calls MR_SubdivideSettings_GetMutable_onlyNearNotFlippable(). The reference to this object might be preserved as the return value.

◆ progress_callback()

auto meshlib::SubdivideSettings::progress_callback ( ) const -> &meshlib::std_function_bool_from_float

callback to report algorithm progress and cancel it by user request Returns a pointer to a member variable of class MR::SubdivideSettings named progressCallback.

Calls MR_SubdivideSettings_Get_progressCallback(). The reference to this object might be preserved as the return value.

◆ progress_callback_mut()

auto meshlib::SubdivideSettings::progress_callback_mut ( ) -> &mut meshlib::std_function_bool_from_float

callback to report algorithm progress and cancel it by user request Returns a mutable pointer to a member variable of class MR::SubdivideSettings named progressCallback.

Calls MR_SubdivideSettings_GetMutable_progressCallback(). The reference to this object might be preserved as the return value.

◆ project_on_original_mesh()

auto meshlib::SubdivideSettings::project_on_original_mesh ( ) const -> &bool

if true, then every new vertex will be projected on the original mesh (before smoothing) Returns a pointer to a member variable of class MR::SubdivideSettings named projectOnOriginalMesh.

Calls MR_SubdivideSettings_Get_projectOnOriginalMesh(). The reference to this object might be preserved as the return value.

◆ project_on_original_mesh_mut()

auto meshlib::SubdivideSettings::project_on_original_mesh_mut ( ) -> &mut bool

if true, then every new vertex will be projected on the original mesh (before smoothing) Returns a mutable pointer to a member variable of class MR::SubdivideSettings named projectOnOriginalMesh.

Calls MR_SubdivideSettings_GetMutable_projectOnOriginalMesh(). The reference to this object might be preserved as the return value.

◆ region()

auto meshlib::SubdivideSettings::region ( ) const -> *const *mut meshlib::ffi::MR_FaceBitSet

Region on mesh to be subdivided, it is updated during the operation Returns a pointer to a member variable of class MR::SubdivideSettings named region.

Calls MR_SubdivideSettings_Get_region(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ region_mut()

auto meshlib::SubdivideSettings::region_mut ( ) -> *mut *mut meshlib::ffi::MR_FaceBitSet

Region on mesh to be subdivided, it is updated during the operation Returns a mutable pointer to a member variable of class MR::SubdivideSettings named region.

Calls MR_SubdivideSettings_GetMutable_region(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ set_before_edge_split()

void meshlib::SubdivideSettings::set_before_edge_split ( value:&meshlib::std_function_bool_from_MR_EdgeId )

this function is called each time edge (e) is going to split, if it returns false then this split will be skipped Modifies a member variable of class MR::SubdivideSettings named beforeEdgeSplit.

Calls MR_SubdivideSettings_Set_beforeEdgeSplit(). The reference to the parameter value might be preserved in this object in element beforeEdgeSplit.

◆ set_critical_aspect_ratio_flip()

void meshlib::SubdivideSettings::set_critical_aspect_ratio_flip ( value:f32 )

If this value is less than FLT_MAX then edge flips will ignore dihedral angle check if one of triangles has aspect ratio more than this value Unit: rad Modifies a member variable of class MR::SubdivideSettings named criticalAspectRatioFlip.

Calls MR_SubdivideSettings_Set_criticalAspectRatioFlip().

◆ set_curvature_priority()

void meshlib::SubdivideSettings::set_curvature_priority ( value:f32 )

edge length will be magnified by the squared difference of normals at edge's ends times this factor, thus subdivision will be finer in the regions of high curvature compared to planar regions Modifies a member variable of class MR::SubdivideSettings named curvaturePriority.

Calls MR_SubdivideSettings_Set_curvaturePriority().

◆ set_maintain_region()

void meshlib::SubdivideSettings::set_maintain_region ( value:Option<&mut meshlib::FaceBitSet > )

Additional region to update during subdivision: if a face from here is split, it is replaced with new sub-faces; note that Subdivide can split faces even outside of main region, so it might be necessary to update another region Modifies a member variable of class MR::SubdivideSettings named maintainRegion.

Calls MR_SubdivideSettings_Set_maintainRegion(). The reference to the parameter value might be preserved in this object in element maintainRegion.

◆ set_max_angle_change_after_flip()

void meshlib::SubdivideSettings::set_max_angle_change_after_flip ( value:f32 )

Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than on this value (in radians) Modifies a member variable of class MR::SubdivideSettings named maxAngleChangeAfterFlip.

Calls MR_SubdivideSettings_Set_maxAngleChangeAfterFlip().

◆ set_max_deviation_after_flip()

void meshlib::SubdivideSettings::set_max_deviation_after_flip ( value:f32 )

Improves local mesh triangulation by doing edge flips if it does not make too big surface deviation Modifies a member variable of class MR::SubdivideSettings named maxDeviationAfterFlip.

Calls MR_SubdivideSettings_Set_maxDeviationAfterFlip().

◆ set_max_edge_len()

void meshlib::SubdivideSettings::set_max_edge_len ( value:f32 )

Subdivision is stopped when all edges inside or on the boundary of the region are not longer than this value Modifies a member variable of class MR::SubdivideSettings named maxEdgeLen.

Calls MR_SubdivideSettings_Set_maxEdgeLen().

◆ set_max_edge_splits()

void meshlib::SubdivideSettings::set_max_edge_splits ( value:core::ffi::c_int )

Maximum number of edge splits allowed Modifies a member variable of class MR::SubdivideSettings named maxEdgeSplits.

Calls MR_SubdivideSettings_Set_maxEdgeSplits().

◆ set_max_splittable_tri_aspect_ratio()

void meshlib::SubdivideSettings::set_max_splittable_tri_aspect_ratio ( value:f32 )

An edge is subdivided only if both its left and right triangles have aspect ratio below or equal to this value. So this is a maximum aspect ratio of a triangle that can be split on two before Delone optimization. Please set it to a smaller value only if subdivideBorder==false, otherwise many narrow triangles can appear near border Modifies a member variable of class MR::SubdivideSettings named maxSplittableTriAspectRatio.

Calls MR_SubdivideSettings_Set_maxSplittableTriAspectRatio().

◆ set_max_tri_aspect_ratio()

void meshlib::SubdivideSettings::set_max_tri_aspect_ratio ( value:f32 )

The subdivision stops as soon as all triangles (in the region) have aspect ratio below or equal to this value Modifies a member variable of class MR::SubdivideSettings named maxTriAspectRatio.

Calls MR_SubdivideSettings_Set_maxTriAspectRatio().

◆ set_min_sharp_dihedral_angle()

void meshlib::SubdivideSettings::set_min_sharp_dihedral_angle ( value:f32 )

30 degrees Modifies a member variable of class MR::SubdivideSettings named minSharpDihedralAngle.

Calls MR_SubdivideSettings_Set_minSharpDihedralAngle().

◆ set_new_verts()

void meshlib::SubdivideSettings::set_new_verts ( value:Option<&mut meshlib::VertBitSet > )

New vertices appeared during subdivision will be added here Modifies a member variable of class MR::SubdivideSettings named newVerts.

Calls MR_SubdivideSettings_Set_newVerts(). The reference to the parameter value might be preserved in this object in element newVerts.

◆ set_not_flippable()

void meshlib::SubdivideSettings::set_not_flippable ( value:Option<&mut meshlib::UndirectedEdgeBitSet > )

Edges specified by this bit-set will never be flipped, but they can be split so it is updated during the operation Modifies a member variable of class MR::SubdivideSettings named notFlippable.

Calls MR_SubdivideSettings_Set_notFlippable(). The reference to the parameter value might be preserved in this object in element notFlippable.

◆ set_on_edge_split()

void meshlib::SubdivideSettings::set_on_edge_split ( value:&meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId )

this function is called each time edge (e) is split into (e1->e), but before the ring is made Delone Modifies a member variable of class MR::SubdivideSettings named onEdgeSplit.

Calls MR_SubdivideSettings_Set_onEdgeSplit(). The reference to the parameter value might be preserved in this object in element onEdgeSplit.

◆ set_on_vert_created()

void meshlib::SubdivideSettings::set_on_vert_created ( value:&meshlib::std_function_void_from_MR_VertId )

this function is called each time a new vertex has been created, but before the ring is made Delone Modifies a member variable of class MR::SubdivideSettings named onVertCreated.

Calls MR_SubdivideSettings_Set_onVertCreated(). The reference to the parameter value might be preserved in this object in element onVertCreated.

◆ set_only_near_not_flippable()

void meshlib::SubdivideSettings::set_only_near_not_flippable ( value:bool )

If true, then only the edges having a vertex of their left or right triangle incident to a notFlippable edge can be split, so subdivision is localized near notFlippable edges; notFlippable must not be null then (nothing is split in release otherwise) Modifies a member variable of class MR::SubdivideSettings named onlyNearNotFlippable.

Calls MR_SubdivideSettings_Set_onlyNearNotFlippable().

◆ set_progress_callback()

void meshlib::SubdivideSettings::set_progress_callback ( value:&meshlib::std_function_bool_from_float )

callback to report algorithm progress and cancel it by user request Modifies a member variable of class MR::SubdivideSettings named progressCallback.

Calls MR_SubdivideSettings_Set_progressCallback(). The reference to the parameter value might be preserved in this object in element progressCallback.

◆ set_project_on_original_mesh()

void meshlib::SubdivideSettings::set_project_on_original_mesh ( value:bool )

if true, then every new vertex will be projected on the original mesh (before smoothing) Modifies a member variable of class MR::SubdivideSettings named projectOnOriginalMesh.

Calls MR_SubdivideSettings_Set_projectOnOriginalMesh().

◆ set_region()

void meshlib::SubdivideSettings::set_region ( value:Option<&mut meshlib::FaceBitSet > )

Region on mesh to be subdivided, it is updated during the operation Modifies a member variable of class MR::SubdivideSettings named region.

Calls MR_SubdivideSettings_Set_region(). The reference to the parameter value might be preserved in this object in element region.

◆ set_smooth_mode()

void meshlib::SubdivideSettings::set_smooth_mode ( value:bool )

Puts new vertices so that they form a smooth surface together with existing vertices. This option works best for natural surfaces without sharp edges in between triangles Modifies a member variable of class MR::SubdivideSettings named smoothMode.

Calls MR_SubdivideSettings_Set_smoothMode().

◆ set_subdivide_border()

void meshlib::SubdivideSettings::set_subdivide_border ( value:bool )

If false do not touch border edges (cannot subdivide lone faces)
use MR::findRegionOuterFaces to find boundary faces Modifies a member variable of class MR::SubdivideSettings named subdivideBorder.

Calls MR_SubdivideSettings_Set_subdivideBorder().

◆ smooth_mode()

auto meshlib::SubdivideSettings::smooth_mode ( ) const -> &bool

Puts new vertices so that they form a smooth surface together with existing vertices. This option works best for natural surfaces without sharp edges in between triangles Returns a pointer to a member variable of class MR::SubdivideSettings named smoothMode.

Calls MR_SubdivideSettings_Get_smoothMode(). The reference to this object might be preserved as the return value.

◆ smooth_mode_mut()

auto meshlib::SubdivideSettings::smooth_mode_mut ( ) -> &mut bool

Puts new vertices so that they form a smooth surface together with existing vertices. This option works best for natural surfaces without sharp edges in between triangles Returns a mutable pointer to a member variable of class MR::SubdivideSettings named smoothMode.

Calls MR_SubdivideSettings_GetMutable_smoothMode(). The reference to this object might be preserved as the return value.

◆ subdivide_border()

auto meshlib::SubdivideSettings::subdivide_border ( ) const -> &bool

If false do not touch border edges (cannot subdivide lone faces)
use MR::findRegionOuterFaces to find boundary faces Returns a pointer to a member variable of class MR::SubdivideSettings named subdivideBorder.

Calls MR_SubdivideSettings_Get_subdivideBorder(). The reference to this object might be preserved as the return value.

◆ subdivide_border_mut()

auto meshlib::SubdivideSettings::subdivide_border_mut ( ) -> &mut bool

If false do not touch border edges (cannot subdivide lone faces)
use MR::findRegionOuterFaces to find boundary faces Returns a mutable pointer to a member variable of class MR::SubdivideSettings named subdivideBorder.

Calls MR_SubdivideSettings_GetMutable_subdivideBorder(). The reference to this object might be preserved as the return value.


The documentation for this struct was generated from the following file: