Expand description
Mesh processing, topology, and geometry algorithms for OxiHuman.
This crate sits between the morph engine and the export pipeline. It takes
raw oxihuman_morph::engine::MeshBuffers output and enriches it with
recomputed normals, tangents, optional vertex colors, UV atlasing, LOD
decimation, Catmull-Clark subdivision, cloth/skeleton skinning, geodesic
distances, and a suite of topology repair routines.
§Key types
MeshBuffers— the canonical mesh representation used by exporters.Skeleton/Joint— rig hierarchy for linear blend skinning.SkinWeights— per-vertex bone weights.BodyMeasurements— computed anthropometric measurements from a mesh.
§Example: build and repair a mesh
use oxihuman_mesh::mesh::MeshBuffers;
use oxihuman_mesh::repair::repair_mesh;
use oxihuman_morph::engine::MeshBuffers as MorphBuffers;
let morph_out = MorphBuffers {
positions: vec![[0.0, 0.0, 0.0], [1.0, 0.0, 0.0], [0.0, 1.0, 0.0]],
normals: vec![[0.0, 0.0, 1.0]; 3],
uvs: vec![[0.0, 0.0]; 3],
indices: vec![0, 1, 2],
has_suit: false,
};
let mut mesh = MeshBuffers::from_morph(morph_out);
let report = repair_mesh(&mut mesh);
assert!(report.degenerate_faces_removed == 0 || report.duplicate_faces_removed == 0);Re-exports§
pub use color_utils::set_uniform_color;pub use groups::VertexGroup;pub use groups::VertexGroupMap;pub use uvgen::flip_v;pub use uvgen::normalize_uvs;pub use uvgen::offset_uvs;pub use uvgen::project_uvs;pub use uvgen::rotate_uvs;pub use uvgen::tile_uvs;pub use uvgen::UvProjection;pub use decimate::decimate;pub use decimate::decimate_ratio;pub use decimate::decimate_with_info;pub use decimate::DecimateResult;pub use catmull_clark::catmull_clark_subdivide;pub use catmull_clark::catmull_clark_subdivide_n;pub use catmull_clark::catmull_clark_with_config;pub use catmull_clark::CatmullClarkConfig;pub use retarget::retarget_pose;pub use retarget::retarget_sequence;pub use retarget::RetargetMap;pub use shapes::capsule;pub use shapes::cone;pub use shapes::cylinder;pub use shapes::quad;pub use shapes::sphere;pub use vpaint::build_adjacency;pub use vpaint::WeightMap;pub use convex_hull::convex_hull;pub use convex_hull::mesh_convex_hull;pub use convex_hull::point_in_hull;pub use convex_hull::ConvexHull;pub use atlas::mesh_to_island;pub use atlas::pack_atlas;pub use atlas::AtlasConfig;pub use atlas::AtlasPlacement;pub use atlas::AtlasResult;pub use atlas::UvIsland;pub use octree::Octree;pub use octree::OctreeAabb;pub use subdivide::loop_subdivide;pub use subdivide::midpoint_subdivide;pub use repair::count_zero_length_edges;pub use repair::ensure_complete_triangles;pub use repair::fix_out_of_range_indices;pub use repair::flip_face_winding;pub use repair::flip_winding;pub use repair::has_degenerate_faces;pub use repair::has_valid_indices;pub use repair::remove_degenerate_faces;pub use repair::remove_duplicate_faces;pub use repair::repair_mesh;pub use repair::MeshRepairReport;pub use connectivity::connected_component_count;pub use connectivity::connectivity_stats;pub use connectivity::find_boundary_edges;pub use connectivity::find_boundary_loops;pub use connectivity::find_connected_components;pub use connectivity::find_non_manifold_edges;pub use connectivity::split_components;pub use connectivity::vertex_valence;pub use connectivity::ConnectivityStats;pub use edge_loops::boundary_edges;pub use edge_loops::edge_adjacency;pub use edge_loops::edges_to_chains;pub use edge_loops::edges_to_loops;pub use edge_loops::extract_edge_loop;pub use edge_loops::extract_edges;pub use edge_loops::sharp_edges;pub use edge_loops::uv_seam_edges;pub use edge_loops::Edge;pub use ik::fabrik_solve;pub use ik::solve_2bone_ik;pub use ik::IkJoint;pub use ik::IkResult;pub use uv_quality::compute_face_stretches;pub use uv_quality::compute_uv_utilization;pub use uv_quality::count_uv_overlaps;pub use uv_quality::face_conformal_distortion;pub use uv_quality::face_uv_stretch;pub use uv_quality::is_degenerate_uv_face;pub use uv_quality::uv_quality_report;pub use uv_quality::uv_triangle_area;pub use uv_quality::worst_stretch_faces;pub use uv_quality::UvQualityReport;pub use geodesic::geodesic_all_pairs;pub use geodesic::geodesic_from_vertex;pub use geodesic::geodesic_from_vertices;pub use geodesic::geodesic_heat_map;pub use geodesic::mesh_diameter;pub use geodesic::GeodesicResult;pub use visibility::backface_cull;pub use visibility::classify_aabb;pub use visibility::count_front_facing;pub use visibility::is_front_facing;pub use visibility::Frustum;pub use visibility::Plane;pub use visibility::Visibility;pub use bounds::compute_bounds;pub use bounds::Aabb;pub use bounds::BoundingSphere;pub use bounds::BoundsResult;pub use bounds::Obb;pub use clothing::apply_clothing;pub use clothing::ClothingMesh;pub use integrity::check_index_bounds;pub use integrity::check_integrity;pub use integrity::check_positions_finite;pub use integrity::IntegrityReport;pub use measurements::compute_aabb;pub use measurements::compute_measurements;pub use measurements::Aabb as MeasAabb;pub use measurements::BodyMeasurements;pub use mesh::MeshBuffers;pub use normals::compute_normals;pub use normals::compute_tangents;pub use pose_library::Pose;pub use pose_library::PoseLibrary;pub use pose_library::IDENTITY_QUAT;pub use skeleton::Joint;pub use skeleton::Skeleton;pub use skinning::apply_lbs;pub use skinning::bind_pose_matrices;pub use skinning::SkinWeights;pub use smooth::laplacian_smooth;pub use smooth::smooth_normals;pub use smooth::taubin_smooth;pub use smooth::SmoothConfig;pub use stats::compute_stats;pub use stats::edge_lengths;pub use stats::face_areas;pub use stats::surface_area;pub use stats::volume_estimate;pub use stats::MeshStats;pub use suit::ensure_suit_mesh;pub use weld::deduplicate_faces;pub use weld::remove_unused_vertices;pub use weld::weld_by_position;pub use weld::weld_by_position_and_uv;pub use weld::WeldResult;pub use sampling::face_area;pub use sampling::sample_one_per_face;pub use sampling::sample_poisson_disk;pub use sampling::sample_surface;pub use sampling::total_surface_area;pub use sampling::Lcg;pub use sampling::SurfacePoint;pub use curvature::compute_curvature;pub use curvature::compute_gaussian_curvature;pub use curvature::compute_mean_curvature;pub use curvature::curvature_stats;pub use curvature::find_curvature_peaks;pub use curvature::find_feature_vertices;pub use curvature::find_saddle_points;pub use curvature::CurvatureStats;pub use curvature::VertexCurvature;pub use ao_bake::ao_to_vertex_colors;pub use ao_bake::bake_vertex_ao;pub use ao_bake::fast_vertex_ao;pub use ao_bake::hemisphere_samples;pub use ao_bake::ray_hits_mesh;pub use ao_bake::ray_triangle_intersect;pub use ao_bake::tangent_to_world;pub use ao_bake::AoBakeConfig;pub use bvh::Bvh;pub use bvh::BvhAabb;pub use bvh::RayHit;pub use dqs::apply_dqs;pub use dqs::joint_delta_dq;pub use dqs::matrix_to_dual_quat;pub use dqs::DualQuat;pub use dqs::Quat;pub use seam_cut::count_uv_islands;pub use seam_cut::cut_uv_seams;pub use seam_cut::face_uv_bounds;pub use seam_cut::find_uv_seam_edges_detailed;pub use seam_cut::has_uv_seams;pub use seam_cut::split_uv_islands;pub use seam_cut::SeamCutResult;pub use marching_cubes::marching_cubes;pub use marching_cubes::marching_cubes_welded;pub use marching_cubes::ScalarField;pub use winding::classify_points;pub use winding::is_inside;pub use winding::mesh_surface_area;pub use winding::triangle_solid_angle;pub use winding::winding_number;pub use winding::winding_numbers_batch;pub use winding::winding_sign;pub use winding::WINDING_THRESHOLD;pub use remesh::collapse_short_edges;pub use remesh::compute_mean_edge_length;pub use remesh::compute_target_edge_length;pub use remesh::flip_edges_for_valence;pub use remesh::remesh;pub use remesh::smooth_vertices;pub use remesh::split_long_edges;pub use remesh::RemeshParams;pub use remesh::RemeshResult;pub use voxelize::mesh_bounds;pub use voxelize::voxel_to_mesh;pub use voxelize::voxelize;pub use voxelize::voxelize_solid;pub use voxelize::voxelize_surface;pub use voxelize::VoxelGrid;pub use voxelize::VoxelizeParams;pub use heat_map::color3_to_u8;pub use heat_map::lerp_color;pub use heat_map::sample_ramp;pub use heat_map::scalars_to_colors;pub use heat_map::scalars_to_colors_range;pub use heat_map::Color3;pub use heat_map::Color4;pub use heat_map::ColorRamp;pub use heat_map::HeatMap;pub use ffd::apply_ffd;pub use ffd::bernstein;pub use ffd::binomial;pub use ffd::make_bend_lattice;pub use ffd::make_twist_lattice;pub use ffd::FfdLattice;pub use mesh_diff::blend_meshes;pub use mesh_diff::compute_displacement;pub use mesh_diff::displacement_to_heat_mesh;pub use mesh_diff::interpolate_mesh_sequence;pub use mesh_diff::mesh_diff_stats;pub use mesh_diff::meshes_approx_equal;pub use mesh_diff::DisplacementField;pub use mesh_diff::MeshDiffStats;pub use normal_map_bake::bake_normal_map;pub use normal_map_bake::closest_surface_point;pub use normal_map_bake::normal_to_rgb;pub use normal_map_bake::rasterize_uv_triangle;pub use normal_map_bake::rgb_to_normal;pub use normal_map_bake::NormalMapBakeParams;pub use normal_map_bake::NormalMapTexture;pub use terrain::compute_slope;pub use terrain::generate_dome_terrain;pub use terrain::generate_grid;pub use terrain::generate_sine_terrain;pub use terrain::mesh_to_heightfield;pub use terrain::smooth_heightfield;pub use terrain::terrain_from_heightfield;pub use terrain::HeightField;pub use terrain::TerrainParams;pub use spring_deform::build_edge_springs;pub use spring_deform::find_boundary_vertices;pub use spring_deform::jiggle_deform;pub use spring_deform::SpringParams;pub use spring_deform::SpringSystem;pub use mesh_merge::append_mesh;pub use mesh_merge::extract_face_range;pub use mesh_merge::filter_faces;pub use mesh_merge::merge_many;pub use mesh_merge::merge_two;pub use mesh_merge::merge_with_params;pub use mesh_merge::rotate_mesh;pub use mesh_merge::scale_mesh;pub use mesh_merge::split_by_connectivity;pub use mesh_merge::translate_mesh;pub use mesh_merge::MergeParams;pub use mesh_merge::MergeResult;pub use microdisp::apply_micro_displacement;pub use microdisp::fbm_noise_3d;pub use microdisp::sample_displacement;pub use microdisp::skin_displacement;pub use microdisp::value_noise_3d;pub use microdisp::voronoi_3d;pub use microdisp::wrinkle_displacement;pub use microdisp::DisplacementPattern;pub use microdisp::MicroDispParams;pub use microdisp::MicroDispResult;pub use thickness::compute_thickness;pub use thickness::cone_samples;pub use thickness::ray_mesh_hits;pub use thickness::ray_triangle_hit;pub use thickness::sample_thickness_at;pub use thickness::ThicknessMap;pub use thickness::ThicknessParams;pub use proxy_gen::capsule_mesh;pub use proxy_gen::fit_aabb;pub use proxy_gen::fit_capsule;pub use proxy_gen::fit_obb;pub use proxy_gen::fit_sphere;pub use proxy_gen::mesh_proxy;pub use proxy_gen::proxy_to_mesh;pub use proxy_gen::region_proxy;pub use proxy_gen::sphere_mesh;pub use proxy_gen::ProxyFitResult;pub use proxy_gen::ProxyShape;pub use proxy_gen::ProxyShapeType;pub use ray_pick::box_select_vertices;pub use ray_pick::closest_ray_point;pub use ray_pick::pick_all_faces;pub use ray_pick::pick_face;pub use ray_pick::pick_vertex;pub use ray_pick::point_to_ray_distance;pub use ray_pick::project_onto_ray;pub use ray_pick::sphere_select_vertices;pub use ray_pick::PickParams;pub use ray_pick::PickResult;pub use ray_pick::Ray;pub use hair_cards::curled_hair_card;pub use hair_cards::guides_from_mesh;pub use hair_cards::hair_card_from_guide;pub use hair_cards::hair_cards_from_guides;pub use hair_cards::straight_hair_card;pub use hair_cards::CardNormalMode;pub use hair_cards::HairCardParams;pub use hair_cards::HairGuide;pub use displacement_map::apply_displacement_map;pub use displacement_map::apply_displacement_masked;pub use displacement_map::mesh_to_displacement_map;pub use displacement_map::DisplacedMeshResult;pub use displacement_map::DisplacementApplyParams;pub use displacement_map::DisplacementMap2D;pub use cloth_panel::circular_panel;pub use cloth_panel::join_panels;pub use cloth_panel::layout_panels_flat;pub use cloth_panel::rectangular_panel;pub use cloth_panel::sleeve_panel;pub use cloth_panel::total_panel_area;pub use cloth_panel::trapezoid_panel;pub use cloth_panel::triangle_panel;pub use cloth_panel::tshirt_panels;pub use cloth_panel::ClothPanel;pub use cloth_panel::PanelParams;pub use cloth_sim::apply_sim_to_mesh;pub use cloth_sim::build_cloth_grid;pub use cloth_sim::simulate_n_steps;pub use cloth_sim::ClothParticle;pub use cloth_sim::ClothSim;pub use cloth_sim::ClothSimParams;pub use cloth_sim::ClothSimResult;pub use cloth_sim::DistanceConstraint;pub use mesh_paint::apply_brush;pub use mesh_paint::brush_falloff_weight;pub use mesh_paint::brush_flatten;pub use mesh_paint::brush_grab;pub use mesh_paint::brush_inflate;pub use mesh_paint::brush_pinch;pub use mesh_paint::brush_smooth;pub use mesh_paint::build_adjacency as mesh_paint_build_adjacency;pub use mesh_paint::BrushParams;pub use mesh_paint::BrushStroke;pub use mesh_paint::BrushStrokeResult;pub use mesh_paint::BrushType;pub use mesh_slice::circumference_at_height;pub use mesh_slice::edge_plane_intersect;pub use mesh_slice::horizontal_slice;pub use mesh_slice::ray_plane_intersect;pub use mesh_slice::slice_mesh;pub use mesh_slice::split_mesh;pub use mesh_slice::width_profile;pub use mesh_slice::CrossSection;pub use mesh_slice::SlicePlane;pub use mesh_slice::SliceResult;pub use mesh_hollow::area_weighted_normals;pub use mesh_hollow::boundary_loops;pub use mesh_hollow::hollow_mesh;pub use mesh_hollow::offset_mesh;pub use mesh_hollow::shell_thickness;pub use mesh_hollow::stitch_boundary_loops;pub use mesh_hollow::HollowParams;pub use mesh_hollow::HollowResult;pub use mesh_warp::displacement_field;pub use mesh_warp::dist3;pub use mesh_warp::simple_warp;pub use mesh_warp::warp_mesh;pub use mesh_warp::RbfKernel;pub use mesh_warp::RbfWarp;pub use mesh_warp::RbfWarpConfig;pub use mesh_warp::WarpHandle;pub use mesh_label::body_seed_vertices;pub use mesh_label::flood_fill_label;pub use mesh_label::label_by_height;pub use mesh_label::propagate_labels;pub use mesh_label::region_boundary_edges;pub use mesh_label::BodyRegion;pub use mesh_label::MeshLabels;pub use mesh_patch::ear_clip;pub use mesh_patch::fan_patch;pub use mesh_patch::fill_hole;pub use mesh_patch::fill_holes;pub use mesh_patch::find_holes;pub use mesh_patch::hole_count;pub use mesh_patch::is_ear;pub use mesh_patch::is_watertight;pub use mesh_patch::polygon_signed_area_2d;pub use mesh_patch::project_polygon_2d;pub use mesh_patch::MeshHole;pub use mesh_patch::PatchResult;pub use mesh_patch::PatchStrategy;pub use mesh_mirror::extract_half;pub use mesh_mirror::find_symmetry_pairs;pub use mesh_mirror::flip_normals_axis;pub use mesh_mirror::flip_positions;pub use mesh_mirror::mirror_copy;pub use mesh_mirror::mirror_mesh;pub use mesh_mirror::reverse_winding;pub use mesh_mirror::symmetrize_mesh;pub use mesh_mirror::symmetry_error;pub use mesh_mirror::MirrorAxis;pub use mesh_mirror::MirrorConfig;pub use mesh_mirror::MirrorResult;pub use mesh_feature::build_edge_face_map;pub use mesh_feature::chain_edges;pub use mesh_feature::dihedral_angle;pub use mesh_feature::extract_all_features;pub use mesh_feature::extract_boundary_edges_fl;pub use mesh_feature::extract_sharp_edges;pub use mesh_feature::extract_silhouette;pub use mesh_feature::face_normal as feature_face_normal;pub use mesh_feature::FeatureEdge;pub use mesh_feature::FeatureLines;pub use mesh_feature::FeatureType;pub use mesh_normal_delta::apply_morph_normals;pub use mesh_normal_delta::compute_batch_normal_deltas;pub use mesh_normal_delta::compute_normal_deltas;pub use mesh_normal_delta::compute_vertex_normals as compute_vertex_normals_v;pub use mesh_normal_delta::normals_approx_equal;pub use mesh_normal_delta::safe_normalize;pub use mesh_normal_delta::to_tangent_space_delta;pub use mesh_normal_delta::MorphNormalDeltas;pub use mesh_normal_delta::NormalDelta;pub use mesh_boolean::boolean_op;pub use mesh_boolean::classify_vertices;pub use mesh_boolean::combine_meshes as boolean_combine;pub use mesh_boolean::filter_faces_by_classification;pub use mesh_boolean::flip_winding as boolean_flip_winding;pub use mesh_boolean::BooleanOp;pub use mesh_boolean::BooleanResult;pub use mesh_crease::apply_crease_to_subdivision_config;pub use mesh_crease::auto_crease_by_angle;pub use mesh_crease::crease_stats;pub use mesh_crease::mark_boundary_edges;pub use mesh_crease::merge_crease_maps;pub use mesh_crease::CreaseConfig;pub use mesh_crease::CreaseEdge;pub use mesh_crease::CreaseMap;pub use mesh_crease::CreaseStats;pub use mesh_crease::CreaseSubdivData;pub use mesh_crease::EdgeKey;pub use mesh_decal::affected_faces as decal_affected_faces;pub use mesh_decal::apply_decal_colors;pub use mesh_decal::decal_falloff_weight;pub use mesh_decal::decal_stats;pub use mesh_decal::project_decal;pub use mesh_decal::standard_decal;pub use mesh_decal::DecalBounds;pub use mesh_decal::DecalConfig;pub use mesh_decal::DecalFalloff;pub use mesh_decal::DecalResult;pub use mesh_decal::DecalStats;pub use mesh_decal::DecalVertex;pub use mesh_bridge::align_loops;pub use mesh_bridge::bridge_loops;pub use mesh_bridge::loop_centroid;pub use mesh_bridge::loop_from_boundary;pub use mesh_bridge::open_cylinder;pub use mesh_bridge::BridgeConfig;pub use mesh_bridge::BridgeInterpolation;pub use mesh_bridge::BridgeResult;pub use mesh_bridge::EdgeLoop;pub use mesh_offset::closest_point_on_triangle;pub use mesh_offset::grow_mesh;pub use mesh_offset::offset_mesh as normal_offset_mesh;pub use mesh_offset::offset_mesh_variable;pub use mesh_offset::shell_offset;pub use mesh_offset::shrink_mesh;pub use mesh_offset::shrink_wrap;pub use mesh_offset::OffsetParams;pub use mesh_offset::OffsetResult;pub use mesh_uv_pack::pack_from_mesh;pub use mesh_uv_pack::pack_stats;pub use mesh_uv_pack::pack_uv_rects;pub use mesh_uv_pack::transform_island_uvs;pub use mesh_uv_pack::uv_rect_bounds;pub use mesh_uv_pack::PackConfig;pub use mesh_uv_pack::PackResult;pub use mesh_uv_pack::PackSort;pub use mesh_uv_pack::UvRect;pub use mesh_sdf::box_sdf;pub use mesh_sdf::compute_sdf;pub use mesh_sdf::sample_sdf;pub use mesh_sdf::sdf_intersection;pub use mesh_sdf::sdf_smooth_union;pub use mesh_sdf::sdf_stats;pub use mesh_sdf::sdf_subtraction;pub use mesh_sdf::sdf_to_mesh;pub use mesh_sdf::sdf_union;pub use mesh_sdf::sphere_sdf;pub use mesh_sdf::SdfGrid;pub use mesh_sdf::SdfParams;pub use mesh_sdf::SdfStats;pub use mesh_clip::clip_above_y;pub use mesh_clip::clip_below_y;pub use mesh_clip::clip_mesh;pub use mesh_clip::clip_to_box;pub use mesh_clip::ClipConfig;pub use mesh_clip::ClipPlane;pub use mesh_clip::ClipResult;pub use adaptive_subdivide::adaptive_subdivide;pub use adaptive_subdivide::build_face_adjacency;pub use adaptive_subdivide::dihedral_angle as adaptive_dihedral_angle;pub use adaptive_subdivide::face_max_dihedral_angle;pub use adaptive_subdivide::face_normal as adaptive_face_normal;pub use adaptive_subdivide::loop_subdivide_marked;pub use adaptive_subdivide::AdaptiveSubdivideConfig;pub use adaptive_subdivide::AdaptiveSubdivideResult;pub use feature_decimation::collapse_edge;pub use feature_decimation::compute_edge_dihedral;pub use feature_decimation::count_valid_triangles;pub use feature_decimation::edge_collapse_error;pub use feature_decimation::feature_decimate;pub use feature_decimation::mark_feature_edges;pub use feature_decimation::FeatureDecimateConfig;pub use feature_decimation::FeatureDecimateResult;pub use mesh_repair_advanced::fill_hole_fan;pub use mesh_repair_advanced::fill_hole_smooth;pub use mesh_repair_advanced::find_boundary_holes;pub use mesh_repair_advanced::find_t_junctions;pub use mesh_repair_advanced::is_manifold_mesh;pub use mesh_repair_advanced::remove_t_junction;pub use mesh_repair_advanced::repair_mesh_advanced;pub use mesh_repair_advanced::AdvancedRepairConfig;pub use mesh_repair_advanced::AdvancedRepairReport;pub use mesh_arap::arap_deform;pub use mesh_arap::arap_energy;pub use mesh_arap::arap_global_step;pub use mesh_arap::arap_local_step;pub use mesh_arap::build_arap_laplacian;pub use mesh_arap::mat3_mul_vec;pub use mesh_arap::nearest_rotation_3x3;pub use mesh_arap::ArapConfig;pub use mesh_arap::ArapHandle;pub use mesh_arap::ArapResult;pub use mesh_arap::ArapWeight;pub use mesh_cage::apply_cage_weights;pub use mesh_cage::cage_encloses_point;pub use mesh_cage::mean_value_coordinates;pub use mesh_cage::validate_cage_weights;pub use mesh_cage::CageDeformResult;pub use mesh_cage::CageDeformer;pub use mesh_flow::build_adjacency_list;pub use mesh_flow::flow_mesh;pub use mesh_flow::laplacian_step;pub use mesh_flow::mean_curvature_step;pub use mesh_flow::mesh_volume_from_positions;pub use mesh_flow::rescale_to_volume;pub use mesh_flow::taubin_step;pub use mesh_flow::vertex_laplacian;pub use mesh_flow::FlowConfig;pub use mesh_flow::FlowMethod;pub use mesh_flow::FlowResult;pub use mesh_lscm::compute_local_frame;pub use mesh_lscm::lscm_parameterize;pub use mesh_lscm::normalize_uvs_lscm;pub use mesh_lscm::project_to_uv;pub use mesh_lscm::triangle_conformal_energy;pub use mesh_lscm::uv_area;pub use mesh_lscm::uv_stretch_metric;pub use mesh_lscm::LscmConfig;pub use mesh_lscm::LscmResult;pub use mesh_skin_weights::bone_heat;pub use mesh_skin_weights::compute_auto_skin_weights;pub use mesh_skin_weights::diffuse_weights;pub use mesh_skin_weights::dominant_bone;pub use mesh_skin_weights::max_influences_per_vertex;pub use mesh_skin_weights::normalize_skin_weights;pub use mesh_skin_weights::prune_small_weights;pub use mesh_skin_weights::skin_weights_to_json;pub use mesh_skin_weights::AutoSkinResult;pub use mesh_skin_weights::BoneEndpoint;pub use mesh_skin_weights::SkinWeightConfig;pub use mesh_skin_weights::WeightFalloff;pub use mesh_tet::tet_centroid;pub use mesh_tet::tet_dihedral_angles;pub use mesh_tet::tet_mesh_volume;pub use mesh_tet::tet_volume;pub use mesh_tet::tetrahedralize;pub use mesh_tet::validate_tet_mesh;pub use mesh_tet::TetGenConfig;pub use mesh_tet::TetGenResult;pub use mesh_tet::TetMesh;pub use mesh_noise_gen::apply_noise_texture;pub use mesh_noise_gen::displace_mesh_noise;pub use mesh_noise_gen::fbm_noise;pub use mesh_noise_gen::generate_organic_surface;pub use mesh_noise_gen::generate_sphere_bumps;pub use mesh_noise_gen::lcg_value_noise;pub use mesh_noise_gen::noise_magnitude_stats;pub use mesh_noise_gen::NoiseDisplaceResult;pub use mesh_noise_gen::NoiseGenConfig;pub use mesh_pca::compute_shape_pca;pub use mesh_pca::explained_variance_ratio;pub use mesh_pca::flat_to_shape;pub use mesh_pca::mean_shape;pub use mesh_pca::pca_reconstruction_error;pub use mesh_pca::project_shape;pub use mesh_pca::reconstruct_shape;pub use mesh_pca::shape_to_flat;pub use mesh_pca::PcaConfig;pub use mesh_pca::PcaResult;pub use mesh_pca::ShapePca;pub use mesh_progressive::build_progressive_mesh;pub use mesh_progressive::collapse_error_sequence;pub use mesh_progressive::extract_lod_level;pub use mesh_progressive::extract_lod_ratio;pub use mesh_progressive::progressive_lod_levels;pub use mesh_progressive::refine_lod;pub use mesh_progressive::CollapseRecord;pub use mesh_progressive::ProgressiveMesh;pub use mesh_progressive::ProgressiveMeshConfig;pub use mesh_remesh_isotropic::average_edge_length;pub use mesh_remesh_isotropic::collapse_short_edges as isotropic_collapse_short_edges;pub use mesh_remesh_isotropic::edge_length_stats;pub use mesh_remesh_isotropic::flip_edges_for_valence as isotropic_flip_edges_for_valence;pub use mesh_remesh_isotropic::isotropic_remesh;pub use mesh_remesh_isotropic::split_long_edges as isotropic_split_long_edges;pub use mesh_remesh_isotropic::tangential_relaxation;pub use mesh_bilaplacian::bilaplacian_energy;pub use mesh_bilaplacian::bilaplacian_fairing;pub use mesh_bilaplacian::bilaplacian_smooth;pub use mesh_bilaplacian::cotangent_weight;pub use mesh_bilaplacian::mesh_laplacian_energy;pub use mesh_featureline::compute_all_gaussian_curvatures;pub use mesh_featureline::compute_all_mean_curvatures;pub use mesh_featureline::extract_feature_lines;pub use mesh_featureline::extract_ridges;pub use mesh_featureline::extract_valleys;pub use mesh_featureline::feature_line_density;pub use mesh_featureline::shape_index_at_vertex;pub use mesh_topology_repair::count_topology_issues;pub use mesh_topology_repair::detect_degenerate_faces;pub use mesh_topology_repair::detect_duplicate_vertices;pub use mesh_topology_repair::find_isolated_vertices;pub use mesh_topology_repair::find_non_manifold_edges_advanced;pub use mesh_topology_repair::new_topology_issue;pub use mesh_topology_repair::remove_isolated_vertices;pub use mesh_topology_repair::remove_non_manifold_faces;pub use mesh_topology_repair::stitch_boundary_edges;pub use mesh_topology_repair::topology_issue_name;pub use mesh_topology_repair::topology_repair_report;pub use mesh_topology_repair::vertex_face_count;pub use mesh_topology_repair::TopologyIssue;pub use mesh_curvature_tensor::classify_surface_point;pub use mesh_curvature_tensor::compute_all_curvature_tensors;pub use mesh_curvature_tensor::compute_vertex_curvature_tensor;pub use mesh_curvature_tensor::curvedness_from_tensor;pub use mesh_curvature_tensor::gaussian_curvature_from_tensor;pub use mesh_curvature_tensor::mean_curvature_from_tensor;pub use mesh_curvature_tensor::shape_index_from_tensor;pub use mesh_curvature_tensor::CurvatureTensor;pub use mesh_geodesic_path::dijkstra_geodesic;pub use mesh_geodesic_path::dijkstra_geodesic_between;pub use mesh_geodesic_path::farthest_point_sampling;pub use mesh_geodesic_path::geodesic_centroid;pub use mesh_geodesic_path::geodesic_distance;pub use mesh_geodesic_path::geodesic_voronoi;pub use mesh_geodesic_path::mesh_diameter_geodesic;pub use mesh_geodesic_path::GeodesicPath;pub use mesh_texture_bake::bake_ambient_occlusion;pub use mesh_texture_bake::bake_curvature;pub use mesh_texture_bake::bake_dispatch;pub use mesh_texture_bake::bake_normal_map as texture_bake_normal_map;pub use mesh_texture_bake::bake_target_to_u8;pub use mesh_texture_bake::bake_thickness;pub use mesh_texture_bake::load_bake_from_f32_slice;pub use mesh_texture_bake::new_bake_target;pub use mesh_texture_bake::sample_bake_at_uv;pub use mesh_texture_bake::save_bake_ppm;pub use mesh_texture_bake::BakeMode;pub use mesh_texture_bake::BakeRay;pub use mesh_texture_bake::BakeTarget;pub use mesh_segment::assign_face_colors;pub use mesh_segment::compute_segment_adjacency;pub use mesh_segment::largest_segment;pub use mesh_segment::merge_small_segments;pub use mesh_segment::segment_boundary_edges;pub use mesh_segment::segment_by_connectivity;pub use mesh_segment::segment_by_normal_deviation;pub use mesh_segment::segment_by_planarity;pub use mesh_segment::segment_dispatch;pub use mesh_segment::segment_stats;pub use mesh_segment::MeshSegment;pub use mesh_segment::SegmentCriteria;pub use mesh_seam_welder::compute_average_normal;pub use mesh_seam_welder::count_boundary_verts;pub use mesh_seam_welder::detect_uv_islands;pub use mesh_seam_welder::find_duplicate_positions;pub use mesh_seam_welder::find_seam_edges;pub use mesh_seam_welder::merge_vertex_groups;pub use mesh_seam_welder::project_uv_along_edge;pub use mesh_seam_welder::seam_boundary_length;pub use mesh_seam_welder::seam_weld_report;pub use mesh_seam_welder::weld_seams;pub use mesh_seam_welder::MergeGroupResult;pub use mesh_seam_welder::SeamEdge;pub use mesh_seam_welder::WeldSeamResult;pub use mesh_projection::barycentric_to_point;pub use mesh_projection::compute_barycentric;pub use mesh_projection::interpolate_uv_at_barycentric;pub use mesh_projection::project_along_axis;pub use mesh_projection::project_mesh_onto_mesh;pub use mesh_projection::project_point_to_mesh;pub use mesh_projection::project_point_to_triangle;pub use mesh_projection::shrink_wrap_proj;pub use mesh_projection::snap_to_surface;pub use mesh_projection::transfer_attributes;pub use mesh_projection::ProjectionMode;pub use mesh_projection::ProjectionResult;pub use mesh_curve_deform::bezier_arc_length;pub use mesh_curve_deform::bezier_tangent;pub use mesh_curve_deform::cross3 as curve_cross3;pub use mesh_curve_deform::deform_mesh_along_curve;pub use mesh_curve_deform::evaluate_bezier;pub use mesh_curve_deform::normalize3 as curve_normalize3;pub use mesh_curve_deform::project_to_curve_param;pub use mesh_curve_deform::sample_curve_points;pub use mesh_curve_deform::BezierCurve;pub use mesh_curve_deform::CurveAxis;pub use mesh_curve_deform::CurvePoint;pub use mesh_curve_deform::SplineDeformResult;pub use mesh_align::align_bounding_boxes;pub use mesh_align::align_to_axes;pub use mesh_align::apply_rotation;pub use mesh_align::bounding_box as align_bounding_box;pub use mesh_align::compute_centroid;pub use mesh_align::covariance_matrix_3x3;pub use mesh_align::find_nearest;pub use mesh_align::icp_align;pub use mesh_align::normalize_to_unit_box;pub use mesh_align::scale_mesh as align_scale_mesh;pub use mesh_align::translate_mesh as align_translate_mesh;pub use mesh_align::AlignResult;pub use mesh_align::IcpResult;pub use mesh_parametric::make_capsule;pub use mesh_parametric::make_cone;pub use mesh_parametric::make_cylinder;pub use mesh_parametric::make_plane;pub use mesh_parametric::make_sphere;pub use mesh_parametric::make_torus;pub use mesh_parametric::merge_parametric;pub use mesh_parametric::parametric_index_count;pub use mesh_parametric::parametric_vertex_count;pub use mesh_parametric::validate_parametric_mesh;pub use mesh_parametric::ParametricMesh;pub use mesh_parametric::ParametricShape;pub use mesh_topology_flow::adjacent_faces;pub use mesh_topology_flow::adjacent_vertices;pub use mesh_topology_flow::boundary_vertices;pub use mesh_topology_flow::build_topology;pub use mesh_topology_flow::face_vertex_count;pub use mesh_topology_flow::find_edge_loop;pub use mesh_topology_flow::find_edge_ring;pub use mesh_topology_flow::find_poles;pub use mesh_topology_flow::is_closed_mesh;pub use mesh_topology_flow::is_manifold;pub use mesh_topology_flow::topology_stats;pub use mesh_topology_flow::vertex_valence as topo_vertex_valence;pub use mesh_topology_flow::FlowDir;pub use mesh_topology_flow::HalfEdge;pub use mesh_topology_flow::Pole;pub use mesh_topology_flow::TopoEdgeLoop;pub use mesh_topology_flow::TopologyMesh;pub use mesh_extrude::compute_face_normal as extrude_face_normal;pub use mesh_extrude::default_extrude_config;pub use mesh_extrude::extrude_along_curve;pub use mesh_extrude::extrude_distance;pub use mesh_extrude::extrude_edges;pub use mesh_extrude::extrude_faces;pub use mesh_extrude::extrude_vertex_count;pub use mesh_extrude::extrude_vertices;pub use mesh_extrude::inset_faces;pub use mesh_extrude::solidify_mesh;pub use mesh_extrude::ExtrudeConfig;pub use mesh_extrude::ExtrudeMode;pub use mesh_extrude::ExtrudeResult;pub use mesh_fillet::arc_points;pub use mesh_fillet::bevel_vertices;pub use mesh_fillet::blend_edge_points;pub use mesh_fillet::chamfer_amount_from_radius;pub use mesh_fillet::chamfer_edge;pub use mesh_fillet::chamfer_edges;pub use mesh_fillet::default_fillet_config;pub use mesh_fillet::edge_dihedral_angle;pub use mesh_fillet::fillet_edge;pub use mesh_fillet::find_sharp_edges;pub use mesh_fillet::ChamferResult;pub use mesh_fillet::FilletConfig;pub use mesh_fillet::FilletResult;pub use mesh_heat_diffuse::build_adjacency as heat_build_adjacency;pub use mesh_heat_diffuse::default_heat_config;pub use mesh_heat_diffuse::diffuse_heat;pub use mesh_heat_diffuse::diffuse_step;pub use mesh_heat_diffuse::geodesic_heat_distance;pub use mesh_heat_diffuse::heat_field_max;pub use mesh_heat_diffuse::heat_field_min;pub use mesh_heat_diffuse::heat_gradient;pub use mesh_heat_diffuse::heat_to_color;pub use mesh_heat_diffuse::new_heat_field;pub use mesh_heat_diffuse::normalize_field as heat_normalize_field;pub use mesh_heat_diffuse::set_heat_source;pub use mesh_heat_diffuse::threshold_field;pub use mesh_heat_diffuse::HeatDiffuseConfig;pub use mesh_heat_diffuse::HeatField;pub use mesh_heat_diffuse::HeatSource;pub use mesh_uv_stitch::boundary_uv_edges;pub use mesh_uv_stitch::clamp_uvs;pub use mesh_uv_stitch::detect_uv_islands_stitched;pub use mesh_uv_stitch::find_uv_seams;pub use mesh_uv_stitch::island_area_s;pub use mesh_uv_stitch::mirror_uvs_horizontal;pub use mesh_uv_stitch::mirror_uvs_vertical;pub use mesh_uv_stitch::pack_islands_simple;pub use mesh_uv_stitch::stitch_all_seams;pub use mesh_uv_stitch::stitch_seam;pub use mesh_uv_stitch::stitch_seam_count;pub use mesh_uv_stitch::uv_seam_length;pub use mesh_uv_stitch::uv_stretch;pub use mesh_uv_stitch::StitchResult;pub use mesh_uv_stitch::UvIslandS;pub use mesh_uv_stitch::UvSeam;pub use mesh_voronoi::cell_count;pub use mesh_voronoi::centroidal_voronoi_step;pub use mesh_voronoi::compute_voronoi;pub use mesh_voronoi::default_voronoi_config;pub use mesh_voronoi::largest_cell;pub use mesh_voronoi::smallest_cell;pub use mesh_voronoi::vertex_cell_id;pub use mesh_voronoi::voronoi_balance_score;pub use mesh_voronoi::voronoi_boundary_edges;pub use mesh_voronoi::voronoi_cell_area;pub use mesh_voronoi::voronoi_cell_centroid;pub use mesh_voronoi::voronoi_from_seeds;pub use mesh_voronoi::voronoi_random_seeds;pub use mesh_voronoi::VoronoiCell;pub use mesh_voronoi::VoronoiConfig;pub use mesh_voronoi::VoronoiDiagram;pub use mesh_voronoi::VoronoiMetric;pub use mesh_wave_deform::apply_multiple_ripples;pub use mesh_wave_deform::apply_ripple;pub use mesh_wave_deform::apply_wave_deform;pub use mesh_wave_deform::default_wave_params;pub use mesh_wave_deform::distance3 as wave_distance3;pub use mesh_wave_deform::dot3 as wave_dot3;pub use mesh_wave_deform::normalize3 as wave_normalize3;pub use mesh_wave_deform::ripple_value;pub use mesh_wave_deform::standing_wave;pub use mesh_wave_deform::wave_envelope;pub use mesh_wave_deform::wave_interference;pub use mesh_wave_deform::wave_value;pub use mesh_wave_deform::RippleSource;pub use mesh_wave_deform::WaveParams;pub use mesh_wave_deform::WaveShape;pub use mesh_dual::average_dual_edge_length;pub use mesh_dual::build_face_adjacency as dual_build_face_adjacency;pub use mesh_dual::compute_dual_mesh;pub use mesh_dual::dual_edge_count;pub use mesh_dual::dual_edge_lengths;pub use mesh_dual::dual_mesh_bounds;pub use mesh_dual::dual_to_graph_adjacency;pub use mesh_dual::dual_to_positions;pub use mesh_dual::dual_vertex_count;pub use mesh_dual::dual_vertex_degree;pub use mesh_dual::face_centroid;pub use mesh_dual::is_dual_connected;pub use mesh_dual::DualMesh;pub use mesh_sweep::circle_profile;pub use mesh_sweep::cross3_sweep;pub use mesh_sweep::frame_at_path_point;pub use mesh_sweep::helix_path;pub use mesh_sweep::line_path;pub use mesh_sweep::normalize3_sweep;pub use mesh_sweep::path_arc_lengths;pub use mesh_sweep::path_length as sweep_path_length;pub use mesh_sweep::profile_perimeter;pub use mesh_sweep::rectangle_profile;pub use mesh_sweep::sweep_profile_along_path;pub use mesh_sweep::sweep_result_face_count;pub use mesh_sweep::sweep_result_vertex_count;pub use mesh_sweep::transform_profile_point;pub use mesh_sweep::SweepPath;pub use mesh_sweep::SweepProfile;pub use mesh_sweep::SweepResult;pub use mesh_medial_axis::approximate_medial_axis;pub use mesh_medial_axis::default_medial_config;pub use mesh_medial_axis::medial_axis_bounds;pub use mesh_medial_axis::medial_axis_connectivity;pub use mesh_medial_axis::medial_axis_length;pub use mesh_medial_axis::medial_axis_to_json;pub use mesh_medial_axis::medial_edge_count;pub use mesh_medial_axis::medial_point_count;pub use mesh_medial_axis::medial_to_spheres;pub use mesh_medial_axis::nearest_surface_distance;pub use mesh_medial_axis::prune_short_branches;pub use mesh_medial_axis::thickest_point;pub use mesh_medial_axis::MedialAxis;pub use mesh_medial_axis::MedialAxisConfig;pub use mesh_medial_axis::MedialPoint;pub use mesh_vertex_cluster::apply_vertex_remap;pub use mesh_vertex_cluster::build_cluster_grid;pub use mesh_vertex_cluster::cluster_centroid;pub use mesh_vertex_cluster::cluster_face_count;pub use mesh_vertex_cluster::cluster_reduction_ratio;pub use mesh_vertex_cluster::cluster_vertex_count;pub use mesh_vertex_cluster::cluster_vertices;pub use mesh_vertex_cluster::default_cluster_config;pub use mesh_vertex_cluster::merge_close_vertices;pub use mesh_vertex_cluster::merge_duplicate_uvs;pub use mesh_vertex_cluster::remove_degenerate_triangles;pub use mesh_vertex_cluster::verify_cluster_remap;pub use mesh_vertex_cluster::ClusterConfig;pub use mesh_vertex_cluster::ClusterResult;pub use mesh_orient::all_normals_outward;pub use mesh_orient::compute_mesh_normals as orient_compute_mesh_normals;pub use mesh_orient::consistent_winding_check;pub use mesh_orient::default_orient_config;pub use mesh_orient::face_normal as orient_face_normal;pub use mesh_orient::flip_all_faces;pub use mesh_orient::flip_face;pub use mesh_orient::mesh_centroid as orient_mesh_centroid;pub use mesh_orient::orient_mesh;pub use mesh_orient::orient_result_summary;pub use mesh_orient::triangle_normal as orient_triangle_normal;pub use mesh_orient::triangle_normal_normalized;pub use mesh_orient::OrientConfig;pub use mesh_orient::OrientResult;pub use mesh_simplicial::add_simplex1;pub use mesh_simplicial::add_simplex2;pub use mesh_simplicial::betti_0;pub use mesh_simplicial::boundary_edges_simplex;pub use mesh_simplicial::boundary_of_edge;pub use mesh_simplicial::boundary_of_triangle;pub use mesh_simplicial::dual_graph_simplex;pub use mesh_simplicial::euler_characteristic;pub use mesh_simplicial::from_mesh_indices;pub use mesh_simplicial::is_manifold_simplex;pub use mesh_simplicial::new_simplicial_complex;pub use mesh_simplicial::simplex1_count;pub use mesh_simplicial::simplex2_count;pub use mesh_simplicial::Simplex0;pub use mesh_simplicial::Simplex1;pub use mesh_simplicial::Simplex2;pub use mesh_simplicial::SimplicialComplex;pub use mesh_spectral::build_laplacian;pub use mesh_spectral::default_spectral_config;pub use mesh_spectral::degree_centrality;pub use mesh_spectral::graph_laplacian_energy;pub use mesh_spectral::laplacian_operator;pub use mesh_spectral::laplacian_smooth_signal;pub use mesh_spectral::laplacian_vertex_count;pub use mesh_spectral::mesh_diameter_spectral;pub use mesh_spectral::normalize_signal as spectral_normalize_signal;pub use mesh_spectral::power_iterate;pub use mesh_spectral::spectral_embedding_1d;pub use mesh_spectral::spectral_partition;pub use mesh_spectral::GraphLaplacian;pub use mesh_spectral::SpectralConfig;pub use mesh_polar_decomp::compute_deformation_gradient;pub use mesh_polar_decomp::deformation_field_divergence;pub use mesh_polar_decomp::mat3_det;pub use mesh_polar_decomp::mat3_identity;pub use mesh_polar_decomp::mat3_mul;pub use mesh_polar_decomp::mat3_scale;pub use mesh_polar_decomp::mat3_transpose;pub use mesh_polar_decomp::per_face_deformation;pub use mesh_polar_decomp::polar_decompose;pub use mesh_polar_decomp::rigid_body_deformation;pub use mesh_polar_decomp::rotation_error;pub use mesh_polar_decomp::stretch_ratio;pub use mesh_polar_decomp::DeformationGradient;pub use mesh_polar_decomp::PolarDecomp;pub use mesh_geodesic::build_edge_graph;pub use mesh_geodesic::default_geodesic_config;pub use mesh_geodesic::farthest_point;pub use mesh_geodesic::geodesic_diameter;pub use mesh_geodesic::geodesic_distances;pub use mesh_geodesic::geodesic_distances_multi;pub use mesh_geodesic::geodesic_heat;pub use mesh_geodesic::geodesic_path;pub use mesh_geodesic::geodesic_vertex_count;pub use mesh_geodesic::geodesic_voronoi as mesh_geodesic_voronoi;pub use mesh_geodesic::level_set_isolines;pub use mesh_geodesic::normalize_geodesic;pub use mesh_geodesic::EdgeGraph;pub use mesh_geodesic::GeodesicConfig;pub use mesh_geodesic::GeodesicResult as MeshGeodesicResult;pub use mesh_geodesic::VoronoiLabels;pub use mesh_mean_curvature::compute_gaussian_curvature as mc_gaussian_curvature;pub use mesh_mean_curvature::compute_mean_curvature as mc_mean_curvature;pub use mesh_mean_curvature::cotangent_weight as mean_curv_cotangent_weight;pub use mesh_mean_curvature::curvature_color_map;pub use mesh_mean_curvature::curvature_max;pub use mesh_mean_curvature::curvature_mean_value;pub use mesh_mean_curvature::curvature_min;pub use mesh_mean_curvature::default_curvature_config;pub use mesh_mean_curvature::laplacian_smooth_positions;pub use mesh_mean_curvature::mean_curvature_vector;pub use mesh_mean_curvature::principal_curvatures;pub use mesh_mean_curvature::vertex_area_mixed;pub use mesh_mean_curvature::CurvatureColor;pub use mesh_mean_curvature::CurvatureConfig;pub use mesh_mean_curvature::CurvaturePair;pub use mesh_mean_curvature::CurvatureResult;pub use mesh_convex_hull::compute_convex_hull;pub use mesh_convex_hull::convex_hull_surface_area;pub use mesh_convex_hull::convex_hull_volume;pub use mesh_convex_hull::default_hull_config;pub use mesh_convex_hull::hull_bounding_box;pub use mesh_convex_hull::hull_centroid;pub use mesh_convex_hull::hull_edge_count;pub use mesh_convex_hull::hull_face_count;pub use mesh_convex_hull::hull_vertex_count;pub use mesh_convex_hull::is_point_inside_hull;pub use mesh_convex_hull::project_to_hull_surface;pub use mesh_convex_hull::support_point;pub use mesh_convex_hull::ConvexHullResult;pub use mesh_convex_hull::HullConfig;pub use mesh_decimate::collapse_edge as mesh_collapse_edge;pub use mesh_decimate::compute_quadric;pub use mesh_decimate::count_boundary_edges as mesh_count_boundary_edges;pub use mesh_decimate::decimate_mesh;pub use mesh_decimate::decimate_step;pub use mesh_decimate::decimate_to_target_faces;pub use mesh_decimate::decimation_ratio;pub use mesh_decimate::default_decimate_config;pub use mesh_decimate::edge_collapse_cost as mesh_edge_collapse_cost;pub use mesh_decimate::find_cheapest_edge;pub use mesh_decimate::mesh_complexity_score;pub use mesh_decimate::validate_decimated_mesh;pub use mesh_decimate::DecimateConfig;pub use mesh_decimate::DecimateResult as MeshDecimateResult;pub use mesh_catmull_clark::compute_edge_points;pub use mesh_catmull_clark::compute_face_points;pub use mesh_catmull_clark::compute_vertex_points;pub use mesh_catmull_clark::default_subdiv_config;pub use mesh_catmull_clark::is_quad_mesh;pub use mesh_catmull_clark::smooth_boundary_vertices;pub use mesh_catmull_clark::subdivide_catmull_clark;pub use mesh_catmull_clark::subdivide_n_levels;pub use mesh_catmull_clark::subdivision_face_count_estimate;pub use mesh_catmull_clark::subdivision_level;pub use mesh_catmull_clark::subdivision_vertex_count_estimate;pub use mesh_catmull_clark::triangulate_quads;pub use mesh_catmull_clark::SubdivConfig;pub use mesh_catmull_clark::SubdivResult;pub use mesh_remesh::adaptive_target_length;pub use mesh_remesh::collapse_short_edges as mesh_remesh_collapse_short_edges;pub use mesh_remesh::compute_target_edge_length as mesh_remesh_target_edge_length;pub use mesh_remesh::count_irregular_vertices;pub use mesh_remesh::default_remesh_config;pub use mesh_remesh::edge_lengths_stats;pub use mesh_remesh::equalize_valence;pub use mesh_remesh::isotropic_remesh as mesh_isotropic_remesh;pub use mesh_remesh::remesh_iterations;pub use mesh_remesh::remesh_quality_score;pub use mesh_remesh::split_long_edges as mesh_remesh_split_long_edges;pub use mesh_remesh::tangential_smooth;pub use mesh_remesh::RemeshConfig;pub use mesh_remesh::RemeshResult as MeshRemeshResult;pub use mesh_remesh::RemeshStats;pub use mesh_bezier_patch::default_patch_config;pub use mesh_bezier_patch::evaluate_patch;pub use mesh_bezier_patch::new_bezier_patch;pub use mesh_bezier_patch::patch_bounding_box;pub use mesh_bezier_patch::patch_midpoint;pub use mesh_bezier_patch::patch_normal;pub use mesh_bezier_patch::patch_tangent_u;pub use mesh_bezier_patch::patch_tangent_v;pub use mesh_bezier_patch::patch_triangle_count;pub use mesh_bezier_patch::patch_vertex_count;pub use mesh_bezier_patch::subdivide_patch;pub use mesh_bezier_patch::tessellate_patch;pub use mesh_bezier_patch::BezierPatch;pub use mesh_bezier_patch::PatchConfig;pub use mesh_bezier_patch::PatchSample;pub use mesh_bezier_patch::PatchTessellation;pub use mesh_bezier_patch::SubPatches;pub use mesh_octree::build_octree;pub use mesh_octree::default_octree_config;pub use mesh_octree::octree_bounds;pub use mesh_octree::octree_depth;pub use mesh_octree::octree_leaf_count;pub use mesh_octree::octree_node_count;pub use mesh_octree::octree_stats;pub use mesh_octree::query_aabb;pub use mesh_octree::query_nearest_point;pub use mesh_octree::query_sphere;pub use mesh_octree::ray_intersect_octree;pub use mesh_octree::refit_octree;pub use mesh_octree::AabbBounds;pub use mesh_octree::OctreeConfig;pub use mesh_octree::OctreeNode;pub use mesh_octree::OctreeQuery;pub use mesh_octree::OctreeStats;pub use mesh_octree::RayHit as OctreeRayHit;pub use mesh_apex_vertex::apex_angle;pub use mesh_apex_vertex::apex_count;pub use mesh_apex_vertex::apex_frequency;pub use mesh_apex_vertex::apex_result_to_json;pub use mesh_apex_vertex::dist_sq;pub use mesh_apex_vertex::find_apex_vertices;pub use mesh_apex_vertex::is_apex_vertex;pub use mesh_apex_vertex::triangle_apex;pub use mesh_apex_vertex::vertex_angle;pub use mesh_apex_vertex::ApexResult;pub use mesh_border_edge::border_analysis;pub use mesh_border_edge::border_edge_count as border_edge_count_be;pub use mesh_border_edge::border_result_to_json;pub use mesh_border_edge::border_total_length;pub use mesh_border_edge::border_vertex_count;pub use mesh_border_edge::build_edge_count_map;pub use mesh_border_edge::detect_border_edges;pub use mesh_border_edge::is_border_vertex;pub use mesh_border_edge::BorderResult;pub use mesh_border_edge::DirectedEdge;pub use mesh_centroid_decompose::all_face_centroids;pub use mesh_centroid_decompose::centroid_decompose;pub use mesh_centroid_decompose::decomp_region_count;pub use mesh_centroid_decompose::decomp_result_to_json;pub use mesh_centroid_decompose::decomp_total_faces;pub use mesh_centroid_decompose::default_centroid_decomp_config;pub use mesh_centroid_decompose::face_centroid as decomp_face_centroid;pub use mesh_centroid_decompose::CentroidDecompConfig;pub use mesh_centroid_decompose::CentroidDecompResult;pub use mesh_centroid_decompose::DecompRegion;pub use mesh_collapse_edge::collapse_n_edges;pub use mesh_collapse_edge::collapse_result_to_json_v2;pub use mesh_collapse_edge::collapse_single_edge;pub use mesh_collapse_edge::edge_length_v2;pub use mesh_collapse_edge::edge_midpoint_v2;pub use mesh_collapse_edge::find_shortest_edge;pub use mesh_collapse_edge::unique_edge_count;pub use mesh_collapse_edge::CollapseEdgeV2;pub use mesh_collapse_edge::CollapseResultV2;pub use mesh_cusp_detect::angle_between;pub use mesh_cusp_detect::compute_face_normals as cusp_compute_face_normals;pub use mesh_cusp_detect::cusp_count;pub use mesh_cusp_detect::cusp_result_to_json;pub use mesh_cusp_detect::default_cusp_threshold;pub use mesh_cusp_detect::detect_cusps;pub use mesh_cusp_detect::face_normal_raw;pub use mesh_cusp_detect::is_cusp;pub use mesh_cusp_detect::normalize3 as cusp_normalize3;pub use mesh_cusp_detect::CuspDetectResult;pub use mesh_cusp_detect::CuspVertex;pub use mesh_dihedral_angle::compute_dihedral_angles;pub use mesh_dihedral_angle::dihedral_angle_from_normals;pub use mesh_dihedral_angle::dihedral_edge_count;pub use mesh_dihedral_angle::dihedral_result_to_json;pub use mesh_dihedral_angle::face_normal as dihedral_face_normal;pub use mesh_dihedral_angle::sharp_edges_by_angle as dihedral_sharp_edges;pub use mesh_dihedral_angle::DihedralEdge;pub use mesh_dihedral_angle::DihedralResult;pub use mesh_disk_map::default_disk_map_config;pub use mesh_disk_map::disk_map;pub use mesh_disk_map::disk_map_to_json;pub use mesh_disk_map::disk_map_vertex_count;pub use mesh_disk_map::is_in_unit_disk;pub use mesh_disk_map::map_boundary_to_circle;pub use mesh_disk_map::uv_triangle_area as disk_uv_triangle_area;pub use mesh_disk_map::DiskMapConfig;pub use mesh_disk_map::DiskMapResult;pub use mesh_edge_hash::boundary_edges as hash_boundary_edges;pub use mesh_edge_hash::build_edge_hash_map;pub use mesh_edge_hash::edge_count as edge_hash_count;pub use mesh_edge_hash::edge_exists;pub use mesh_edge_hash::edge_hash_to_json;pub use mesh_edge_hash::faces_for_edge;pub use mesh_edge_hash::make_edge_key;pub use mesh_edge_hash::non_manifold_edges;pub use mesh_edge_hash::unique_vertices;pub use mesh_edge_hash::EdgeHashMap;pub use mesh_edge_hash::EdgeKey as HashEdgeKey;pub use mesh_face_centroid::centroid_bounds as fc_centroid_bounds;pub use mesh_face_centroid::centroid_distance;pub use mesh_face_centroid::compute_all_face_centroids;pub use mesh_face_centroid::face_centroid_count;pub use mesh_face_centroid::face_centroid_to_json;pub use mesh_face_centroid::get_face_centroid;pub use mesh_face_centroid::mean_centroid;pub use mesh_face_centroid::nearest_face_centroid;pub use mesh_face_centroid::triangle_centroid;pub use mesh_face_centroid::FaceCentroidData;pub use mesh_edge_valence::avg_valence as valence_avg;pub use mesh_edge_valence::boundary_edge_count as valence_boundary_edge_count;pub use mesh_edge_valence::compute_edge_valences;pub use mesh_edge_valence::edge_valence;pub use mesh_edge_valence::edge_valence_to_json;pub use mesh_edge_valence::manifold_edge_count;pub use mesh_edge_valence::max_valence as valence_max;pub use mesh_edge_valence::non_manifold_edge_count;pub use mesh_edge_valence::total_edge_count;pub use mesh_edge_valence::EdgeValenceResult;pub use mesh_face_ring::all_face_rings;pub use mesh_face_ring::avg_ring_size;pub use mesh_face_ring::face_ring_for_vertex;pub use mesh_face_ring::face_ring_to_json;pub use mesh_face_ring::max_ring_size;pub use mesh_face_ring::ring_contains_face;pub use mesh_face_ring::ring_face_count;pub use mesh_face_ring::vertices_with_ring_size;pub use mesh_face_ring::FaceRing;pub use mesh_fan_mesh::fan_area;pub use mesh_fan_mesh::fan_from_boundary;pub use mesh_fan_mesh::fan_mesh_to_json;pub use mesh_fan_mesh::fan_triangle_count;pub use mesh_fan_mesh::fan_vertex_count;pub use mesh_fan_mesh::generate_fan;pub use mesh_fan_mesh::FanMesh;pub use mesh_geodesic_voronoi::build_adjacency as voronoi_build_adjacency;pub use mesh_geodesic_voronoi::compute_geodesic_voronoi;pub use mesh_geodesic_voronoi::largest_cell_size;pub use mesh_geodesic_voronoi::vertex_label;pub use mesh_geodesic_voronoi::voronoi_cell_count;pub use mesh_geodesic_voronoi::voronoi_result_to_json;pub use mesh_geodesic_voronoi::GeoVoronoiCell;pub use mesh_geodesic_voronoi::GeoVoronoiResult;pub use mesh_hex_mesh::generate_hex_mesh;pub use mesh_hex_mesh::hex_cell_count;pub use mesh_hex_mesh::hex_diagonal_factor;pub use mesh_hex_mesh::hex_mesh_area;pub use mesh_hex_mesh::hex_mesh_to_json;pub use mesh_hex_mesh::hex_triangle_count;pub use mesh_hex_mesh::hex_vertex_count;pub use mesh_hex_mesh::HexMesh;pub use mesh_index_remap::apply_remap;pub use mesh_index_remap::compact_remap;pub use mesh_index_remap::indices_in_bounds;pub use mesh_index_remap::max_index;pub use mesh_index_remap::remap_result_to_json;pub use mesh_index_remap::reverse_winding as remap_reverse_winding;pub use mesh_index_remap::unused_index_count;pub use mesh_index_remap::used_index_count;pub use mesh_index_remap::RemapResult;pub use mesh_vertex_degree::avg_degree;pub use mesh_vertex_degree::compute_vertex_degrees;pub use mesh_vertex_degree::degree_result_to_json;pub use mesh_vertex_degree::irregular_vertex_count as degree_irregular_count;pub use mesh_vertex_degree::max_degree;pub use mesh_vertex_degree::min_nonzero_degree;pub use mesh_vertex_degree::vertex_degree;pub use mesh_vertex_degree::vertices_with_degree;pub use mesh_vertex_degree::VertexDegreeResult;pub use mesh_angle_bisector::angle_bisector;pub use mesh_angle_bisector::bisector_count;pub use mesh_angle_bisector::bisector_result_to_json;pub use mesh_angle_bisector::compute_bisectors;pub use mesh_angle_bisector::dot3 as bisector_dot3;pub use mesh_angle_bisector::is_valid_bisector;pub use mesh_angle_bisector::normalize3 as bisector_normalize3;pub use mesh_angle_bisector::vec_length;pub use mesh_angle_bisector::vertex_angle as bisector_vertex_angle;pub use mesh_angle_bisector::AngleBisectorResult;pub use mesh_aspect_ratio::aspect_ratio_to_json;pub use mesh_aspect_ratio::compute_aspect_ratios;pub use mesh_aspect_ratio::count_poor_triangles;pub use mesh_aspect_ratio::edge_length as aspect_edge_length;pub use mesh_aspect_ratio::min_aspect_ratio;pub use mesh_aspect_ratio::ratio_at;pub use mesh_aspect_ratio::triangle_area as aspect_triangle_area;pub use mesh_aspect_ratio::triangle_aspect_ratio;pub use mesh_aspect_ratio::AspectRatioResult;pub use mesh_bary_coord::bary_distance_to_center;pub use mesh_bary_coord::bary_interpolate;pub use mesh_bary_coord::bary_interpolate3;pub use mesh_bary_coord::bary_to_json;pub use mesh_bary_coord::clamp_bary;pub use mesh_bary_coord::compute_bary;pub use mesh_bary_coord::dot3 as bary_dot3;pub use mesh_bary_coord::is_inside_triangle;pub use mesh_bary_coord::BaryCoord;pub use mesh_bbox_tree::bbox_overlap;pub use mesh_bbox_tree::bbox_tree_to_json;pub use mesh_bbox_tree::bbox_volume;pub use mesh_bbox_tree::build_bbox_tree;pub use mesh_bbox_tree::merge_bbox;pub use mesh_bbox_tree::node_count as bbox_node_count;pub use mesh_bbox_tree::point_in_bbox;pub use mesh_bbox_tree::triangle_bbox;pub use mesh_bbox_tree::BboxNode;pub use mesh_bbox_tree::BboxTree;pub use mesh_bilinear_patch::evaluate_patch as evaluate_bilinear_patch;pub use mesh_bilinear_patch::new_bilinear_patch;pub use mesh_bilinear_patch::patch_area_approx;pub use mesh_bilinear_patch::patch_center as bilinear_patch_center;pub use mesh_bilinear_patch::patch_du;pub use mesh_bilinear_patch::patch_dv;pub use mesh_bilinear_patch::patch_to_json as bilinear_patch_to_json;pub use mesh_bilinear_patch::tessellate_patch as tessellate_bilinear;pub use mesh_bilinear_patch::BilinearPatch;pub use mesh_boundary_vertex::boundary_count;pub use mesh_boundary_vertex::boundary_fraction;pub use mesh_boundary_vertex::boundary_vertex_to_json;pub use mesh_boundary_vertex::build_edge_map as boundary_build_edge_map;pub use mesh_boundary_vertex::detect_boundary_vertices;pub use mesh_boundary_vertex::find_boundary_edges as boundary_find_edges;pub use mesh_boundary_vertex::is_boundary_vertex;pub use mesh_boundary_vertex::BoundaryVertexResult;pub use mesh_catmull_clark_weight::boundary_edge_weight;pub use mesh_catmull_clark_weight::centroid as cc_centroid;pub use mesh_catmull_clark_weight::face_point_weight;pub use mesh_catmull_clark_weight::is_regular_valence;pub use mesh_catmull_clark_weight::lerp3 as cc_lerp3;pub use mesh_catmull_clark_weight::loop_beta;pub use mesh_catmull_clark_weight::smoothing_factor;pub use mesh_catmull_clark_weight::vertex_weight as cc_vertex_weight;pub use mesh_catmull_clark_weight::warren_weight;pub use mesh_catmull_clark_weight::weights_to_json as cc_weights_to_json;pub use mesh_circumcenter::avg_circumradius;pub use mesh_circumcenter::circumcenter_to_json;pub use mesh_circumcenter::compute_circumcenters;pub use mesh_circumcenter::is_acute_triangle;pub use mesh_circumcenter::max_circumradius;pub use mesh_circumcenter::triangle_circumcenter;pub use mesh_circumcenter::Circumcenter;pub use mesh_color_attr::apply_gamma;pub use mesh_color_attr::average_color;pub use mesh_color_attr::clamp_colors;pub use mesh_color_attr::color_attr_to_json;pub use mesh_color_attr::color_vertex_count;pub use mesh_color_attr::get_color as attr_get_color;pub use mesh_color_attr::lerp_color as attr_lerp_color;pub use mesh_color_attr::new_color_attr;pub use mesh_color_attr::set_color as attr_set_color;pub use mesh_color_attr::ColorAttr;pub use mesh_conformal_map::average_distortion;pub use mesh_conformal_map::conformal_energy;pub use mesh_conformal_map::conformal_map_to_json;pub use mesh_conformal_map::cotangent_weight as conformal_cotangent_weight;pub use mesh_conformal_map::is_in_unit_square;pub use mesh_conformal_map::map_boundary_to_circle as conformal_map_boundary;pub use mesh_conformal_map::normalize_uvs as conformal_normalize_uvs;pub use mesh_conformal_map::ConformalMapResult;pub use mesh_convex_face::analyze_triangle_convexity;pub use mesh_convex_face::convex_count;pub use mesh_convex_face::convex_face_to_json;pub use mesh_convex_face::cross3 as convex_cross3;pub use mesh_convex_face::dot3 as convex_dot3;pub use mesh_convex_face::face_area as convex_face_area;pub use mesh_convex_face::face_normal as convex_face_normal;pub use mesh_convex_face::is_quad_convex;pub use mesh_convex_face::is_triangle_convex;pub use mesh_convex_face::ConvexFaceResult;pub use mesh_curvature_discrete::avg_curvature as discrete_avg_curvature;pub use mesh_curvature_discrete::compute_discrete_curvature;pub use mesh_curvature_discrete::curvature_to_json as discrete_curvature_to_json;pub use mesh_curvature_discrete::gaussian_curvature as discrete_gaussian_curvature;pub use mesh_curvature_discrete::max_abs_curvature;pub use mesh_curvature_discrete::mean_curvature_simple;pub use mesh_curvature_discrete::vertex_angle as discrete_vertex_angle;pub use mesh_curvature_discrete::DiscreteCurvature;pub use mesh_dart_graph::boundary_dart_count;pub use mesh_dart_graph::build_dart_graph;pub use mesh_dart_graph::dart_count;pub use mesh_dart_graph::dart_graph_to_json;pub use mesh_dart_graph::face_count as dart_face_count;pub use mesh_dart_graph::get_dart;pub use mesh_dart_graph::has_twin;pub use mesh_dart_graph::Dart;pub use mesh_dart_graph::DartGraph;pub use mesh_edge_bisect::bisect_all_edges;pub use mesh_edge_bisect::bisect_to_json;pub use mesh_edge_bisect::bisect_triangle_count;pub use mesh_edge_bisect::bisect_vertex_count;pub use mesh_edge_bisect::midpoint as bisect_midpoint;pub use mesh_edge_bisect::new_vertex_count as bisect_new_vertex_count;pub use mesh_edge_bisect::EdgeBisectResult;pub use mesh_edge_contract::contract_edge;pub use mesh_edge_contract::contract_n_edges;pub use mesh_edge_contract::contract_to_json;pub use mesh_edge_contract::edge_length as contract_edge_length;pub use mesh_edge_contract::find_shortest_edge as contract_find_shortest;pub use mesh_edge_contract::triangle_count as contract_triangle_count;pub use mesh_edge_contract::EdgeContractResult;pub use mesh_face_dual::avg_dual_edge_length as face_dual_avg_edge_length;pub use mesh_face_dual::build_face_dual;pub use mesh_face_dual::dual_degree;pub use mesh_face_dual::dual_edge_count as face_dual_edge_count;pub use mesh_face_dual::dual_vertex_count as face_dual_vertex_count;pub use mesh_face_dual::face_dual_to_json;pub use mesh_face_dual::triangle_centroid as dual_triangle_centroid;pub use mesh_face_dual::FaceDual;pub use mesh_area_gradient::area_gradient_to_json;pub use mesh_area_gradient::avg_face_area;pub use mesh_area_gradient::compute_area_gradients;pub use mesh_area_gradient::cross3 as area_grad_cross3;pub use mesh_area_gradient::get_gradient;pub use mesh_area_gradient::gradient_face_count;pub use mesh_area_gradient::max_face_area;pub use mesh_area_gradient::min_face_area;pub use mesh_area_gradient::safe_normalize as area_grad_safe_normalize;pub use mesh_area_gradient::total_area as area_grad_total_area;pub use mesh_area_gradient::triangle_area as area_grad_triangle_area;pub use mesh_area_gradient::AreaGradientResult;pub use mesh_bend_deform::apply_bend_deform;pub use mesh_bend_deform::bend_deform_to_json;pub use mesh_bend_deform::bend_param;pub use mesh_bend_deform::bend_vertex as bend_deform_vertex;pub use mesh_bend_deform::bend_vertex_count;pub use mesh_bend_deform::bend_within_tolerance;pub use mesh_bend_deform::default_bend_config;pub use mesh_bend_deform::deg_to_rad as bend_deg_to_rad;pub use mesh_bend_deform::rad_to_deg as bend_rad_to_deg;pub use mesh_bend_deform::BendDeformConfig;pub use mesh_bend_deform::BendDeformResult;pub use mesh_cell_partition::avg_occupancy;pub use mesh_cell_partition::build_cell_partition;pub use mesh_cell_partition::cell_partition_to_json;pub use mesh_cell_partition::max_cell_occupancy;pub use mesh_cell_partition::occupied_cells;pub use mesh_cell_partition::position_to_cell;pub use mesh_cell_partition::total_cells;pub use mesh_cell_partition::vertices_in_cell;pub use mesh_cell_partition::CellPartition;pub use mesh_circular_edge::circular_edge_to_json;pub use mesh_circular_edge::circumference;pub use mesh_circular_edge::detect_circular_edges;pub use mesh_circular_edge::largest_loop as largest_circular_loop;pub use mesh_circular_edge::loop_count as circular_loop_count;pub use mesh_circular_edge::make_edge as make_circular_edge;pub use mesh_circular_edge::open_chain_count;pub use mesh_circular_edge::CircularEdgeResult;pub use mesh_circular_edge::Edge as CircularEdge;pub use mesh_coplanar_face::are_coplanar;pub use mesh_coplanar_face::detect_coplanar_faces;pub use mesh_coplanar_face::dot3 as coplanar_dot3;pub use mesh_coplanar_face::face_normal_raw as coplanar_face_normal_raw;pub use mesh_coplanar_face::group_count as coplanar_group_count;pub use mesh_coplanar_face::largest_group as coplanar_largest_group;pub use mesh_coplanar_face::normalize3 as coplanar_normalize3;pub use mesh_coplanar_face::total_grouped_faces;pub use mesh_coplanar_face::CoplanarGroup;pub use mesh_coplanar_face::CoplanarResult;pub use mesh_corner_angle::angle_face_count;pub use mesh_corner_angle::avg_min_angle;pub use mesh_corner_angle::compute_corner_angles;pub use mesh_corner_angle::corner_angle;pub use mesh_corner_angle::corner_angle_to_json;pub use mesh_corner_angle::max_corner_angle;pub use mesh_corner_angle::min_corner_angle;pub use mesh_corner_angle::triangle_angles;pub use mesh_corner_angle::validate_angle_sums;pub use mesh_corner_angle::CornerAngleResult;pub use mesh_decimate_error::add_quadrics;pub use mesh_decimate_error::compute_edge_errors;pub use mesh_decimate_error::error_edge_count;pub use mesh_decimate_error::evaluate_quadric;pub use mesh_decimate_error::max_error;pub use mesh_decimate_error::min_error;pub use mesh_decimate_error::quadric_from_plane;pub use mesh_decimate_error::zero_quadric;pub use mesh_decimate_error::DecimateErrorResult;pub use mesh_decimate_error::QuadricError;pub use mesh_directed_edge::boundary_edge_count as directed_boundary_edge_count;pub use mesh_directed_edge::build_directed_edges;pub use mesh_directed_edge::directed_edge_count;pub use mesh_directed_edge::edges_for_face;pub use mesh_directed_edge::find_twin;pub use mesh_directed_edge::half_pi_ref;pub use mesh_directed_edge::has_twin as directed_has_twin;pub use mesh_directed_edge::interior_edge_count;pub use mesh_directed_edge::DirectedEdge as DirectedEdgeDEM;pub use mesh_directed_edge::DirectedEdgeMesh;pub use mesh_edge_flow::compute_edge_flow;pub use mesh_edge_flow::flow_curl;pub use mesh_edge_flow::flow_direction;pub use mesh_edge_flow::flow_divergence;pub use mesh_edge_flow::flow_magnitude_ef;pub use mesh_edge_flow::flow_to_json;pub use mesh_edge_flow::flow_vertex_field;pub use mesh_edge_flow::smooth_edge_flow;pub use mesh_edge_flow::EdgeFlow;pub use mesh_edge_loop_select::clear_loop_selection;pub use mesh_edge_loop_select::grow_loop_selection;pub use mesh_edge_loop_select::loop_edge_count;pub use mesh_edge_loop_select::loop_is_closed_els;pub use mesh_edge_loop_select::loop_to_json;pub use mesh_edge_loop_select::loop_vertices_els;pub use mesh_edge_loop_select::select_edge_loop;pub use mesh_edge_loop_select::shrink_loop_selection;pub use mesh_edge_loop_select::EdgeLoopSelect;pub use mesh_face_flip::consistent_winding;pub use mesh_face_flip::detect_flipped;pub use mesh_face_flip::flip_all_faces_ff;pub use mesh_face_flip::flip_count;pub use mesh_face_flip::flip_face_ff;pub use mesh_face_flip::flip_normals_with_faces;pub use mesh_face_flip::flip_selected_faces;pub use mesh_face_flip::FaceFlip;pub use mesh_face_pair::detect_face_pairs;pub use mesh_face_pair::edge_key as face_pair_edge_key;pub use mesh_face_pair::face_pair_count;pub use mesh_face_pair::face_pair_to_json;pub use mesh_face_pair::faces_are_paired;pub use mesh_face_pair::max_paired_face;pub use mesh_face_pair::pairing_ratio;pub use mesh_face_pair::FacePair;pub use mesh_face_pair::FacePairResult;pub use mesh_grid_deform::apply_grid_deform;pub use mesh_grid_deform::control_point_count;pub use mesh_grid_deform::deform_vertex as grid_deform_vertex;pub use mesh_grid_deform::grid_deform_to_json;pub use mesh_grid_deform::grid_index;pub use mesh_grid_deform::new_grid_deform;pub use mesh_grid_deform::set_grid_delta;pub use mesh_grid_deform::trilinear;pub use mesh_grid_deform::GridDeform;pub use mesh_grid_deform::GridDeformResult;pub use mesh_half_face::boundary_half_face_count;pub use mesh_half_face::build_half_face_mesh;pub use mesh_half_face::half_face_count;pub use mesh_half_face::half_face_mesh_to_json;pub use mesh_half_face::half_face_vertices;pub use mesh_half_face::is_closed_half_face_mesh;pub use mesh_half_face::paired_half_face_count;pub use mesh_half_face::HalfFace;pub use mesh_half_face::HalfFaceMesh;pub use mesh_incircle::compute_incircles;pub use mesh_incircle::count_large_incircles;pub use mesh_incircle::edge_length_ic;pub use mesh_incircle::get_incircle;pub use mesh_incircle::incircle_result_to_json;pub use mesh_incircle::triangle_incircle;pub use mesh_incircle::Incircle;pub use mesh_incircle::IncircleResult;pub use mesh_k_ring::avg_ring_size_all;pub use mesh_k_ring::build_vertex_adjacency;pub use mesh_k_ring::k_ring;pub use mesh_k_ring::k_ring_to_json;pub use mesh_k_ring::one_ring;pub use mesh_k_ring::ring_contains;pub use mesh_k_ring::ring_size;pub use mesh_k_ring::KRingResult;pub use mesh_arc_length::circle_polyline;pub use mesh_arc_length::compute_arc_length;pub use mesh_arc_length::sample_at_arc_length;pub use mesh_arc_length::sample_at_t;pub use mesh_arc_length::sample_count as arc_sample_count;pub use mesh_arc_length::segment_lengths;pub use mesh_arc_length::total_length as arc_total_length;pub use mesh_arc_length::uniform_resample;pub use mesh_arc_length::ArcLengthResult;pub use mesh_arc_length::ArcSample;pub use mesh_bvh_leaf::avg_leaf_surface_area;pub use mesh_bvh_leaf::build_leaf_aabbs;pub use mesh_bvh_leaf::leaf_centroid;pub use mesh_bvh_leaf::leaf_count;pub use mesh_bvh_leaf::leaf_surface_area;pub use mesh_bvh_leaf::leaf_volume;pub use mesh_bvh_leaf::query_leaves_aabb;pub use mesh_bvh_leaf::LeafAabb;pub use mesh_bvh_leaf::LeafQueryResult;pub use mesh_cage_wrap::cage_wrap;pub use mesh_cage_wrap::cage_wrap_to_json;pub use mesh_cage_wrap::default_cage_wrap_config;pub use mesh_cage_wrap::wrapped_centroid;pub use mesh_cage_wrap::wrapped_vertex_count;pub use mesh_cage_wrap::CageWrapConfig;pub use mesh_cage_wrap::CageWrapResult;pub use mesh_catenary::catenary_arc_length;pub use mesh_catenary::catenary_sag;pub use mesh_catenary::catenary_tube_vertex_count;pub use mesh_catenary::catenary_y;pub use mesh_catenary::default_catenary_params;pub use mesh_catenary::euler_number;pub use mesh_catenary::lowest_point;pub use mesh_catenary::point_count as catenary_point_count;pub use mesh_catenary::sample_catenary;pub use mesh_catenary::to_positions as catenary_to_positions;pub use mesh_catenary::CatenaryParams;pub use mesh_catenary::CatenaryPoint;pub use mesh_collapse_group::apply_collapse_groups;pub use mesh_collapse_group::build_collapse_groups;pub use mesh_collapse_group::collapse_group_to_json;pub use mesh_collapse_group::group_count as collapse_group_count;pub use mesh_collapse_group::max_group_size;pub use mesh_collapse_group::total_collapsed;pub use mesh_collapse_group::CollapseGroup;pub use mesh_collapse_group::CollapseGroupResult;pub use mesh_cotan_laplace::build_cotan_laplacian;pub use mesh_cotan_laplace::cotan_smooth_step;pub use mesh_cotan_laplace::cotan_weight;pub use mesh_cotan_laplace::entry_count as cotan_entry_count;pub use mesh_cotan_laplace::total_weight as cotan_total_weight;pub use mesh_cotan_laplace::CotanEntry;pub use mesh_cotan_laplace::CotanLaplacian;pub use mesh_curve_sample::chord_length;pub use mesh_curve_sample::circle_curve;pub use mesh_curve_sample::extract_positions as curve_extract_positions;pub use mesh_curve_sample::extract_tangents;pub use mesh_curve_sample::line_curve;pub use mesh_curve_sample::resample_at;pub use mesh_curve_sample::sample_count as curve_sample_count;pub use mesh_curve_sample::sample_uniform;pub use mesh_curve_sample::CurveEvalFn;pub use mesh_curve_sample::CurveSample;pub use mesh_cylinder_cap::cap_to_json;pub use mesh_cylinder_cap::cap_triangle_count;pub use mesh_cylinder_cap::cap_vertex_count;pub use mesh_cylinder_cap::dome_cap;pub use mesh_cylinder_cap::flat_cap;pub use mesh_cylinder_cap::is_flat_cap;pub use mesh_cylinder_cap::CapType;pub use mesh_cylinder_cap::CylinderCap;pub use mesh_deform_axis::default_axis_deform_config;pub use mesh_deform_axis::deform_vertex_count;pub use mesh_deform_axis::stretch_deform;pub use mesh_deform_axis::taper_deform;pub use mesh_deform_axis::twist_deform;pub use mesh_deform_axis::AxisDeformConfig;pub use mesh_deform_axis::DeformAxis;pub use mesh_dual_contour::dc_vertex_count;pub use mesh_dual_contour::dual_contour;pub use mesh_dual_contour::qef_add_plane;pub use mesh_dual_contour::qef_error;pub use mesh_dual_contour::qef_plane_count;pub use mesh_dual_contour::qef_solve;pub use mesh_dual_contour::DualContourResult;pub use mesh_dual_contour::QefAccumulator;pub use mesh_edge_collapse_v2::collapse_edge_v2;pub use mesh_edge_collapse_v2::collect_edges as ecv2_collect_edges;pub use mesh_edge_collapse_v2::ec_v2_face_count;pub use mesh_edge_collapse_v2::ec_v2_vertex_count;pub use mesh_edge_collapse_v2::edge_length_v2 as ecv2_edge_length;pub use mesh_edge_collapse_v2::edge_midpoint_v2 as ecv2_edge_midpoint;pub use mesh_edge_collapse_v2::find_cheapest_edge_v2;pub use mesh_edge_collapse_v2::CollapseOpV2;pub use mesh_edge_collapse_v2::EdgeCollapseV2Result;pub use mesh_edge_collapse_v2::EdgeV2;pub use mesh_face_centroid_v2::area_weighted_centroid_v2;pub use mesh_face_centroid_v2::compute_face_centroids_v2;pub use mesh_face_centroid_v2::face_count_v2;pub use mesh_face_centroid_v2::max_area_face_v2;pub use mesh_face_centroid_v2::nearest_centroid_v2;pub use mesh_face_centroid_v2::total_area_v2;pub use mesh_face_centroid_v2::FaceCentroidSetV2;pub use mesh_face_centroid_v2::FaceCentroidV2;pub use mesh_face_label::distinct_label_count;pub use mesh_face_label::face_labels_to_json;pub use mesh_face_label::faces_with_label;pub use mesh_face_label::flood_fill_face_label;pub use mesh_face_label::get_face_label;pub use mesh_face_label::largest_label_group;pub use mesh_face_label::new_face_labels;pub use mesh_face_label::set_face_label;pub use mesh_face_label::FaceLabelSet;pub use mesh_face_material::add_slot as face_mat_add_slot;pub use mesh_face_material::assign_face_material;pub use mesh_face_material::distinct_material_count;pub use mesh_face_material::face_material_to_json;pub use mesh_face_material::faces_for_material;pub use mesh_face_material::find_slot_by_id;pub use mesh_face_material::get_face_material;pub use mesh_face_material::new_face_material_set;pub use mesh_face_material::new_material_slot;pub use mesh_face_material::slot_count as face_mat_slot_count;pub use mesh_face_material::FaceMaterialSet;pub use mesh_face_material::MaterialSlot;pub use mesh_face_strip::build_triangle_strip;pub use mesh_face_strip::longest_strip;pub use mesh_face_strip::strip_efficiency;pub use mesh_face_strip::strip_length;pub use mesh_face_strip::strip_restart_count;pub use mesh_face_strip::strip_to_indices;pub use mesh_face_strip::strip_to_json;pub use mesh_face_strip::strips_from_mesh;pub use mesh_face_strip::FaceStrip;pub use mesh_lofted_surface::circle_profile_at;pub use mesh_lofted_surface::default_loft_config;pub use mesh_lofted_surface::interpolate_profiles;pub use mesh_lofted_surface::loft_bounds;pub use mesh_lofted_surface::loft_centroid;pub use mesh_lofted_surface::loft_face_count;pub use mesh_lofted_surface::loft_surface;pub use mesh_lofted_surface::loft_to_json;pub use mesh_lofted_surface::loft_vertex_count;pub use mesh_lofted_surface::LoftConfig;pub use mesh_lofted_surface::LoftedSurface;pub use mesh_manifold_check::boundary_edge_count_mc;pub use mesh_manifold_check::check_manifold;pub use mesh_manifold_check::count_boundary_loops;pub use mesh_manifold_check::is_closed_manifold;pub use mesh_manifold_check::manifold_report_to_json;pub use mesh_manifold_check::non_manifold_edge_count as manifold_non_manifold_edge_count;pub use mesh_manifold_check::ManifoldReport;pub use mesh_mean_value::dominant_vertex as mean_value_dominant_vertex;pub use mesh_mean_value::interpolate_scalar as mean_value_interpolate;pub use mesh_mean_value::max_weight as mean_value_max_weight;pub use mesh_mean_value::mean_value_coords_2d;pub use mesh_mean_value::mean_value_to_json;pub use mesh_mean_value::regular_polygon as mean_value_regular_polygon;pub use mesh_mean_value::weights_count as mean_value_weights_count;pub use mesh_mean_value::weights_sum as mean_value_weights_sum;pub use mesh_mean_value::MeanValueWeights;pub use mesh_mirror_stitch::mirror_stitch;pub use mesh_mirror_stitch::stitch_bounds;pub use mesh_mirror_stitch::stitch_result_face_count;pub use mesh_mirror_stitch::stitch_result_to_json;pub use mesh_mirror_stitch::stitch_result_vertex_count;pub use mesh_mirror_stitch::validate_stitch_result;pub use mesh_mirror_stitch::MirrorAxis as StitchMirrorAxis;pub use mesh_mirror_stitch::MirrorStitchResult;pub use mesh_mls_deform::default_mls_config;pub use mesh_mls_deform::handles_valid;pub use mesh_mls_deform::mls_avg_displacement;pub use mesh_mls_deform::mls_deform;pub use mesh_mls_deform::mls_displacement_magnitude;pub use mesh_mls_deform::mls_result_to_json;pub use mesh_mls_deform::MlsConfig;pub use mesh_mls_deform::MlsHandle;pub use mesh_morse_theory::compute_morse_critical_points;pub use mesh_morse_theory::critical_point_count;pub use mesh_morse_theory::field_range;pub use mesh_morse_theory::find_global_maximum;pub use mesh_morse_theory::find_global_minimum;pub use mesh_morse_theory::morse_euler_characteristic;pub use mesh_morse_theory::morse_result_to_json;pub use mesh_morse_theory::CriticalPoint;pub use mesh_morse_theory::CriticalPointType;pub use mesh_morse_theory::MorseResult;pub use mesh_multi_res::build_multi_res;pub use mesh_multi_res::coarsest_level;pub use mesh_multi_res::default_multi_res_config;pub use mesh_multi_res::finest_level;pub use mesh_multi_res::get_level;pub use mesh_multi_res::level_count;pub use mesh_multi_res::level_face_counts;pub use mesh_multi_res::midpoint_upsample;pub use mesh_multi_res::multi_res_to_json;pub use mesh_multi_res::MeshLevel;pub use mesh_multi_res::MultiResConfig;pub use mesh_multi_res::MultiResMesh;pub use mesh_needle_triangle::avg_aspect_ratio as needle_avg_aspect_ratio;pub use mesh_needle_triangle::detect_needle_triangles;pub use mesh_needle_triangle::is_needle_free;pub use mesh_needle_triangle::max_aspect_ratio as needle_max_aspect_ratio;pub use mesh_needle_triangle::needle_count;pub use mesh_needle_triangle::needle_ratio;pub use mesh_needle_triangle::needle_result_to_json;pub use mesh_needle_triangle::triangle_aspect_ratio_needle;pub use mesh_needle_triangle::NeedleDetectResult;pub use mesh_normal_transfer_v2::default_normal_transfer_v2_config;pub use mesh_normal_transfer_v2::normals_are_unit as normals_are_unit_v2;pub use mesh_normal_transfer_v2::transfer_normals_v2;pub use mesh_normal_transfer_v2::transfer_v2_result_to_json;pub use mesh_normal_transfer_v2::transfer_v2_success_rate;pub use mesh_normal_transfer_v2::NormalTransferV2Config;pub use mesh_normal_transfer_v2::NormalTransferV2Result;pub use mesh_oct_encode::oct_compression_ratio_f32;pub use mesh_oct_encode::oct_decode;pub use mesh_oct_encode::oct_decode_batch;pub use mesh_oct_encode::oct_decode_u8;pub use mesh_oct_encode::oct_encode;pub use mesh_oct_encode::oct_encode_batch;pub use mesh_oct_encode::oct_encode_decode_error;pub use mesh_oct_encode::oct_encode_to_json;pub use mesh_oct_encode::oct_encode_u8;pub use mesh_orthographic_proj::normalize_projected;pub use mesh_orthographic_proj::project_orthographic;pub use mesh_orthographic_proj::project_to_image_space;pub use mesh_orthographic_proj::projected_area;pub use mesh_orthographic_proj::projected_centroid;pub use mesh_orthographic_proj::projected_to_json;pub use mesh_orthographic_proj::OrthoProjectionAxis;pub use mesh_orthographic_proj::OrthoProjectionResult;pub use mesh_param_chart::build_param_charts;pub use mesh_param_chart::chart_count;pub use mesh_param_chart::chart_set_to_json;pub use mesh_param_chart::largest_chart as largest_param_chart;pub use mesh_param_chart::total_chart_faces;pub use mesh_param_chart::uv_utilization as param_chart_uv_utilization;pub use mesh_param_chart::ParamChart;pub use mesh_param_chart::ParamChartSet;pub use mesh_patch_blend::all_weights_valid as patch_all_weights_valid;pub use mesh_patch_blend::blend_patches;pub use mesh_patch_blend::blend_patches_uniform;pub use mesh_patch_blend::clamp_blend_weights;pub use mesh_patch_blend::patch_blend_avg_weight;pub use mesh_patch_blend::patch_blend_to_json;pub use mesh_patch_blend::patch_blend_vertex_count;pub use mesh_patch_blend::patch_distance;pub use mesh_patch_blend::smooth_weight;pub use mesh_patch_blend::PatchBlendResult;pub use mesh_planar_proj::default_planar_proj_config;pub use mesh_planar_proj::normalize_planar_uvs;pub use mesh_planar_proj::planar_proj_tilted;pub use mesh_planar_proj::planar_proj_to_json;pub use mesh_planar_proj::planar_proj_vertex_count;pub use mesh_planar_proj::planar_uv_bounds;pub use mesh_planar_proj::project_planar;pub use mesh_planar_proj::PlanarProjConfig;pub use mesh_planar_proj::PlanarProjResult;pub use mesh_point_sample::default_point_sample_config;pub use mesh_point_sample::golden_angle_sphere_samples;pub use mesh_point_sample::poisson_disk_thin;pub use mesh_point_sample::sample_bary_sum_one;pub use mesh_point_sample::sample_centroid as point_sample_centroid;pub use mesh_point_sample::sample_count as point_sample_count;pub use mesh_point_sample::sample_mesh_surface;pub use mesh_point_sample::samples_all_normals_unit;pub use mesh_point_sample::samples_to_json;pub use mesh_point_sample::PointSampleConfig;pub use mesh_point_sample::SamplePoint;pub use mesh_polar_mesh::generate_polar_mesh;pub use mesh_polar_mesh::polar_bounding_radius;pub use mesh_polar_mesh::polar_face_count;pub use mesh_polar_mesh::polar_index_count;pub use mesh_polar_mesh::polar_is_valid;pub use mesh_polar_mesh::polar_scale;pub use mesh_polar_mesh::polar_to_json;pub use mesh_polar_mesh::polar_vertex_count;pub use mesh_polar_mesh::PolarMesh;pub use mesh_profile_extrude::extrude_centroid;pub use mesh_profile_extrude::extrude_indices_valid;pub use mesh_profile_extrude::extrude_profile;pub use mesh_profile_extrude::extrude_side_face_count;pub use mesh_profile_extrude::extrude_to_json;pub use mesh_profile_extrude::extrude_vertex_count as profile_extrude_vertex_count;pub use mesh_profile_extrude::square_profile;pub use mesh_profile_extrude::ExtrudeProfileResult;pub use mesh_profile_extrude::Profile2D;pub use mesh_quad_dominant::build_qd_grid;pub use mesh_quad_dominant::qd_indices_valid;pub use mesh_quad_dominant::qd_to_json;pub use mesh_quad_dominant::quad_count as qd_quad_count;pub use mesh_quad_dominant::quad_ratio;pub use mesh_quad_dominant::tri_count;pub use mesh_quad_dominant::triangulate_quads_qd;pub use mesh_quad_dominant::QdFace;pub use mesh_quad_dominant::QuadDominantMesh;pub use mesh_quad_mesh::build_quad_grid;pub use mesh_quad_mesh::quad_mesh_centroid;pub use mesh_quad_mesh::quad_mesh_face_count;pub use mesh_quad_mesh::quad_mesh_flip_winding;pub use mesh_quad_mesh::quad_mesh_indices_valid;pub use mesh_quad_mesh::quad_mesh_scale;pub use mesh_quad_mesh::quad_mesh_to_json;pub use mesh_quad_mesh::quad_mesh_to_tris;pub use mesh_quad_mesh::quad_mesh_vertex_count;pub use mesh_quad_mesh::QuadMesh;pub use mesh_quad_strip::new_quad_strip;pub use mesh_quad_strip::quad_count as qs_quad_count;pub use mesh_quad_strip::quad_strip_area;pub use mesh_quad_strip::quad_strip_from_path;pub use mesh_quad_strip::quad_strip_normals;pub use mesh_quad_strip::quad_strip_to_triangles;pub use mesh_quad_strip::quad_strip_uvs;pub use mesh_quad_strip::quad_strip_vertex_count;pub use mesh_quad_strip::QuadStrip;pub use mesh_ray_cast::ray_at;pub use mesh_ray_cast::ray_cast_mesh;pub use mesh_ray_cast::ray_cast_normalize;pub use mesh_ray_cast::ray_hit_count;pub use mesh_ray_cast::ray_triangle_intersect_rc;pub use mesh_ray_cast::RayCast;pub use mesh_ray_cast::RayCastHit;pub use mesh_relaxation::build_adjacency_relax;pub use mesh_relaxation::relax_avg_displacement;pub use mesh_relaxation::relax_mesh;pub use mesh_relaxation::relax_step;pub use mesh_relaxation::relax_to_json;pub use mesh_relaxation::RelaxConfig;pub use mesh_relaxation::RelaxResult;pub use mesh_remesh_adaptive::adaptive_remesh;pub use mesh_remesh_adaptive::adaptive_remesh_to_json;pub use mesh_remesh_adaptive::adaptive_target_length as adaptive_remesh_target_length;pub use mesh_remesh_adaptive::avg_edge_length_ar;pub use mesh_remesh_adaptive::collect_edges_ar;pub use mesh_remesh_adaptive::count_long_edges_ar;pub use mesh_remesh_adaptive::count_short_edges_ar;pub use mesh_remesh_adaptive::edge_length_ar;pub use mesh_remesh_adaptive::AdaptiveRemeshConfig;pub use mesh_remesh_adaptive::AdaptiveRemeshResult;pub use mesh_reverse_normal::compute_face_normals_rn;pub use mesh_reverse_normal::count_upward_normals;pub use mesh_reverse_normal::face_normal_rn;pub use mesh_reverse_normal::flip_all_winding_rn;pub use mesh_reverse_normal::normals_are_unit_rn;pub use mesh_reverse_normal::reverse_normal_to_json;pub use mesh_reverse_normal::reverse_normals;pub use mesh_reverse_normal::reverse_normals_selected;pub use mesh_root_find::bisect;pub use mesh_root_find::bracket_check;pub use mesh_root_find::newton_raphson;pub use mesh_root_find::regula_falsi;pub use mesh_root_find::residual_at;pub use mesh_root_find::root_find_to_json;pub use mesh_root_find::RootFindResult;pub use mesh_scalar_field::build_scalar_field;pub use mesh_scalar_field::count_above as scalar_count_above;pub use mesh_scalar_field::count_below as scalar_count_below;pub use mesh_scalar_field::field_avg;pub use mesh_scalar_field::field_max as scalar_field_max;pub use mesh_scalar_field::field_min as scalar_field_min;pub use mesh_scalar_field::normalize_field;pub use mesh_scalar_field::scalar_field_to_json;pub use mesh_scalar_field::sdf_sphere_field;pub use mesh_scalar_field::sine_field;pub use mesh_scalar_field::ScalarFieldV;pub use mesh_seam_mark::clear_seams;pub use mesh_seam_mark::is_seam;pub use mesh_seam_mark::mark_boundary_seams;pub use mesh_seam_mark::mark_seam;pub use mesh_seam_mark::seam_count;pub use mesh_seam_mark::seam_edges_sorted;pub use mesh_seam_mark::seam_mark_to_json;pub use mesh_seam_mark::unmark_seam;pub use mesh_seam_mark::SeamMarkSet;pub use mesh_sharp_edge::detect_sharp_edges;pub use mesh_sharp_edge::has_sharp_edges;pub use mesh_sharp_edge::max_dihedral_angle as sharp_max_dihedral_angle;pub use mesh_sharp_edge::sharp_edge_count;pub use mesh_sharp_edge::sharp_edge_to_json;pub use mesh_sharp_edge::sharp_edge_vertices;pub use mesh_sharp_edge::SharpEdge;pub use mesh_sharp_edge::SharpEdgeResult;pub use mesh_shell_deform::avg_shell_displacement;pub use mesh_shell_deform::shell_deform;pub use mesh_shell_deform::shell_deform_to_json;pub use mesh_shell_deform::shell_deform_valid;pub use mesh_shell_deform::vertex_normals_shell;pub use mesh_shell_deform::ShellDeformParams;pub use mesh_shell_deform::ShellDeformResult;pub use mesh_silhouette::extract_silhouette as extract_silhouette_mesh;pub use mesh_silhouette::has_silhouette;pub use mesh_silhouette::silhouette_edge_count;pub use mesh_silhouette::silhouette_to_json;pub use mesh_silhouette::silhouette_vertices;pub use mesh_silhouette::view_dir_from_camera;pub use mesh_silhouette::SilhouetteEdge;pub use mesh_silhouette::SilhouetteResult;pub use mesh_skeleton_deform::deform_avg_displacement;pub use mesh_skeleton_deform::normalize_skeleton_weights;pub use mesh_skeleton_deform::skeleton_deform;pub use mesh_skeleton_deform::skeleton_deform_to_json;pub use mesh_skeleton_deform::skinned_vertex_count_sd;pub use mesh_skeleton_deform::BoneSd;pub use mesh_skeleton_deform::BoneTransformSd;pub use mesh_skeleton_deform::SkeletonWeight;pub use mesh_smooth_weight::average_weight;pub use mesh_smooth_weight::build_adjacency_sw;pub use mesh_smooth_weight::clamp_weights as clamp_mesh_weights;pub use mesh_smooth_weight::count_above_threshold as weight_count_above_threshold;pub use mesh_smooth_weight::detect_boundary_sw;pub use mesh_smooth_weight::normalize_smooth_weights;pub use mesh_smooth_weight::smooth_weights as smooth_vertex_weights;pub use mesh_smooth_weight::SmoothWeightConfig;pub use mesh_smooth_weight::SmoothWeightResult;pub use mesh_sort_vertex::centroid as sort_vertex_centroid;pub use mesh_sort_vertex::is_valid_permutation;pub use mesh_sort_vertex::nearest_to_origin;pub use mesh_sort_vertex::remap_indices;pub use mesh_sort_vertex::sort_vertices;pub use mesh_sort_vertex::sorted_axis_range;pub use mesh_sort_vertex::SortAxis;pub use mesh_sort_vertex::SortVertexResult;pub use mesh_span_tree::component_count as span_component_count;pub use mesh_span_tree::edges_from_mesh as span_edges_from_mesh;pub use mesh_span_tree::max_span_edge;pub use mesh_span_tree::min_span_edge;pub use mesh_span_tree::minimum_spanning_tree;pub use mesh_span_tree::prune_long_edges;pub use mesh_span_tree::SpanEdge;pub use mesh_span_tree::SpanTreeResult;pub use mesh_sphere_proj::all_on_sphere;pub use mesh_sphere_proj::cart_to_spherical;pub use mesh_sphere_proj::mean_radius;pub use mesh_sphere_proj::project_mesh_to_sphere;pub use mesh_sphere_proj::project_to_sphere;pub use mesh_sphere_proj::sphere_uvs;pub use mesh_sphere_proj::spherical_to_cart;pub use mesh_sphere_proj::spherical_uv;pub use mesh_spring_mesh::max_velocity as spring_max_velocity;pub use mesh_spring_mesh::simulate_spring_mesh;pub use mesh_spring_mesh::spring_energy;pub use mesh_spring_mesh::spring_step;pub use mesh_spring_mesh::springs_from_mesh;pub use mesh_spring_mesh::Spring;pub use mesh_spring_mesh::SpringMeshParams;pub use mesh_stitch_seam::find_boundary_loop;pub use mesh_stitch_seam::is_closed as stitch_is_closed;pub use mesh_stitch_seam::loop_avg_edge_length;pub use mesh_stitch_seam::loop_centroid as stitch_loop_centroid;pub use mesh_stitch_seam::stitch_loops;pub use mesh_stitch_seam::stitched_face_count;pub use mesh_stitch_seam::SeamEdgePair;pub use mesh_stitch_seam::StitchSeamResult;pub use mesh_stroke_path::build_stroke_path;pub use mesh_stroke_path::scale_stroke_widths;pub use mesh_stroke_path::straight_stroke;pub use mesh_stroke_path::stroke_arc_length;pub use mesh_stroke_path::stroke_face_count;pub use mesh_stroke_path::uvs_in_range as stroke_uvs_in_range;pub use mesh_stroke_path::StrokePathResult;pub use mesh_stroke_path::StrokeSample;pub use mesh_subdiv_loop::avg_edge_length_ls;pub use mesh_subdiv_loop::bounding_box_ls;pub use mesh_subdiv_loop::expected_face_count;pub use mesh_subdiv_loop::expected_vertex_count_approx;pub use mesh_subdiv_loop::indices_valid as loop_indices_valid;pub use mesh_subdiv_loop::loop_subdiv_step;pub use mesh_subdiv_loop::loop_subdivide_mesh;pub use mesh_subdiv_loop::LoopSubdivResult;pub use mesh_surface_flow::advect_point_on_surface;pub use mesh_surface_flow::flow_at_vertex;pub use mesh_surface_flow::flow_magnitude_at;pub use mesh_surface_flow::new_flow_field;pub use mesh_surface_flow::set_flow_vector;pub use mesh_surface_flow::smooth_flow_field;pub use mesh_surface_flow::FlowField;pub use mesh_surface_flow::FlowVector;pub use mesh_surface_normal::average_normal as surface_average_normal;pub use mesh_surface_normal::compute_flat_normals;pub use mesh_surface_normal::compute_smooth_normals;pub use mesh_surface_normal::count_back_facing;pub use mesh_surface_normal::degenerate_normal_count;pub use mesh_surface_normal::flip_normals;pub use mesh_surface_normal::normal_angle;pub use mesh_surface_normal::normals_are_unit;pub use mesh_sweep_solid::regular_polygon_profile;pub use mesh_sweep_solid::sweep_bounds;pub use mesh_sweep_solid::sweep_indices_valid;pub use mesh_sweep_solid::sweep_solid;pub use mesh_sweep_solid::sweep_triangle_count;pub use mesh_sweep_solid::PathPointSolid;pub use mesh_sweep_solid::Profile2DSolid;pub use mesh_sweep_solid::SweepSolidResult;pub use mesh_tangent_frame::average_tangent;pub use mesh_tangent_frame::compute_tangent_frames;pub use mesh_tangent_frame::count_valid_frames;pub use mesh_tangent_frame::frame_to_matrix;pub use mesh_tangent_frame::is_orthonormal;pub use mesh_tangent_frame::tangent_angle;pub use mesh_tangent_frame::tangent_to_world as tangent_to_world_frame;pub use mesh_tangent_frame::TangentFrame;pub use mesh_texture_proj::box_project;pub use mesh_texture_proj::cylindrical_project;pub use mesh_texture_proj::planar_project;pub use mesh_texture_proj::project_all;pub use mesh_texture_proj::spherical_project as texture_spherical_project;pub use mesh_texture_proj::tile_uvs_proj;pub use mesh_texture_proj::uvs_in_unit_range as texture_uvs_in_unit_range;pub use mesh_texture_proj::TextureProjMode;pub use mesh_thin_shell::compute_vertex_normals as thin_shell_vertex_normals;pub use mesh_thin_shell::half_turn_radians;pub use mesh_thin_shell::offset_by_normal;pub use mesh_thin_shell::shell_face_count;pub use mesh_thin_shell::shell_volume;pub use mesh_thin_shell::thin_shell;pub use mesh_thin_shell::ThinShellConfig;pub use mesh_thin_shell::ThinShellResult;pub use mesh_topo_sort::assign_levels;pub use mesh_topo_sort::build_dag;pub use mesh_topo_sort::compute_in_degree;pub use mesh_topo_sort::order_is_complete;pub use mesh_topo_sort::reverse_topo;pub use mesh_topo_sort::sort_faces_by_edge_order;pub use mesh_topo_sort::topo_sort;pub use mesh_topo_sort::TopoSortResult;pub use mesh_transfer_attr::attrs_same_name;pub use mesh_transfer_attr::barycentric;pub use mesh_transfer_attr::nearest_vertex as transfer_nearest_vertex;pub use mesh_transfer_attr::scale_scalar_attr;pub use mesh_transfer_attr::transfer_scalar_nn;pub use mesh_transfer_attr::transfer_vec3_nn;pub use mesh_transfer_attr::ScalarAttr;pub use mesh_transfer_attr::TransferMethod;pub use mesh_transfer_attr::TransferResult;pub use mesh_transfer_attr::Vec3Attr;pub use mesh_tri_strip::decode_tri_strip;pub use mesh_tri_strip::encode_tri_strip;pub use mesh_tri_strip::new_tri_strip;pub use mesh_tri_strip::strip_efficiency_ratio;pub use mesh_tri_strip::strip_half_angle;pub use mesh_tri_strip::strip_index_count;pub use mesh_tri_strip::strip_restart_count as tri_strip_restart_count;pub use mesh_tri_strip::strip_to_json as tri_strip_to_json;pub use mesh_tri_strip::strip_triangle_count;pub use mesh_tri_strip::TriStrip;pub use mesh_tube_mesh::generate_tube;pub use mesh_tube_mesh::tube_circumference;pub use mesh_tube_mesh::tube_face_count;pub use mesh_tube_mesh::tube_indices_valid;pub use mesh_tube_mesh::tube_normals_unit;pub use mesh_tube_mesh::tube_surface_area;pub use mesh_tube_mesh::tube_to_json;pub use mesh_tube_mesh::tube_vertex_count;pub use mesh_tube_mesh::TubeMesh;pub use mesh_uv_atlas::add_island as uv_atlas_add_island;pub use mesh_uv_atlas::atlas_to_json;pub use mesh_uv_atlas::atlas_utilization as uv_atlas_utilization;pub use mesh_uv_atlas::find_island_by_id;pub use mesh_uv_atlas::island_count;pub use mesh_uv_atlas::islands_overlap;pub use mesh_uv_atlas::largest_island_area;pub use mesh_uv_atlas::new_uv_atlas;pub use mesh_uv_atlas::total_island_faces;pub use mesh_uv_atlas::uv_in_atlas_bounds;pub use mesh_uv_atlas::UvAtlas;pub use mesh_uv_atlas::UvAtlasIsland;pub use mesh_uv_seam::add_seam_edge;pub use mesh_uv_seam::clear_seams as uv_seam_clear;pub use mesh_uv_seam::detect_boundary_seams;pub use mesh_uv_seam::is_seam_edge;pub use mesh_uv_seam::new_uv_seam_set;pub use mesh_uv_seam::remove_seam_edge;pub use mesh_uv_seam::seam_edge_count;pub use mesh_uv_seam::seam_set_to_json;pub use mesh_uv_seam::seam_vertices;pub use mesh_uv_seam::UvSeamEdge;pub use mesh_uv_seam::UvSeamSet;pub use mesh_vertex_attr::add_attr_layer;pub use mesh_vertex_attr::attr_average;pub use mesh_vertex_attr::attr_set_to_json;pub use mesh_vertex_attr::find_layer_by_name;pub use mesh_vertex_attr::get_attr;pub use mesh_vertex_attr::layer_count;pub use mesh_vertex_attr::new_vertex_attr_set;pub use mesh_vertex_attr::set_attr as set_vertex_attr_val;pub use mesh_vertex_attr::VertexAttrLayer;pub use mesh_vertex_attr::VertexAttrSet;pub use mesh_vertex_color::blend_vertex_colors;pub use mesh_vertex_color::clear_vertex_colors;pub use mesh_vertex_color::color_to_rgba;pub use mesh_vertex_color::get_vertex_color as get_vertex_color_map;pub use mesh_vertex_color::new_vertex_color_map;pub use mesh_vertex_color::set_vertex_color as set_vertex_color_map;pub use mesh_vertex_color::vertex_color_count as vertex_color_map_count;pub use mesh_vertex_color::vertex_colors_to_bytes;pub use mesh_vertex_color::VertexColor;pub use mesh_vertex_color::VertexColorMap;pub use mesh_vertex_deform::apply_deform;pub use mesh_vertex_deform::clear_deform;pub use mesh_vertex_deform::deform_magnitude;pub use mesh_vertex_deform::deform_to_json;pub use mesh_vertex_deform::max_deform_magnitude;pub use mesh_vertex_deform::new_vertex_deform;pub use mesh_vertex_deform::nonzero_delta_count;pub use mesh_vertex_deform::scale_deform;pub use mesh_vertex_deform::set_delta as set_deform_delta;pub use mesh_vertex_deform::sine_deform_y;pub use mesh_vertex_deform::VertexDeform;pub use mesh_vertex_group::add_group as vg_add_group;pub use mesh_vertex_group::add_to_group;pub use mesh_vertex_group::find_group_by_name as find_vertex_group;pub use mesh_vertex_group::group_average_weight;pub use mesh_vertex_group::group_count;pub use mesh_vertex_group::group_set_to_json;pub use mesh_vertex_group::group_vertex_count;pub use mesh_vertex_group::new_vertex_group_set;pub use mesh_vertex_group::remove_from_group;pub use mesh_vertex_group::weight_in_group;pub use mesh_vertex_group::VertexGroupEntry;pub use mesh_vertex_group::VertexGroupSetV2;pub use mesh_vertex_group::VertexGroupV2;pub use mesh_vertex_merge::merge_at_indices;pub use mesh_vertex_merge::merge_count;pub use mesh_vertex_merge::merge_threshold;pub use mesh_vertex_merge::merge_vertices_by_distance;pub use mesh_vertex_merge::MergeResult as VertexMergeResult;pub use mesh_vertex_order_v2::apply_vertex_order;pub use mesh_vertex_order_v2::invert_permutation;pub use mesh_vertex_order_v2::is_valid_permutation as is_valid_vertex_perm;pub use mesh_vertex_order_v2::order_by_axis;pub use mesh_vertex_order_v2::order_cache_linear;pub use mesh_vertex_order_v2::order_result_to_json;pub use mesh_vertex_order_v2::remap_indices as remap_vertex_indices;pub use mesh_vertex_order_v2::OrderStrategy;pub use mesh_vertex_order_v2::VertexOrderResult;pub use mesh_vertex_project::project_to_cylinder;pub use mesh_vertex_project::project_to_plane;pub use mesh_vertex_project::project_to_sphere as project_vertices_to_sphere;pub use mesh_vertex_project::project_to_surface;pub use mesh_vertex_project::VertexProject;pub use mesh_vertex_smooth_v2::build_adjacency_v2;pub use mesh_vertex_smooth_v2::default_smooth_v2_config;pub use mesh_vertex_smooth_v2::laplacian_step_v2;pub use mesh_vertex_smooth_v2::smooth_displacement;pub use mesh_vertex_smooth_v2::smooth_v2_to_json;pub use mesh_vertex_smooth_v2::taubin_smooth_v2;pub use mesh_vertex_smooth_v2::SmoothV2Config;pub use mesh_vertex_snap::snap_count;pub use mesh_vertex_snap::snap_threshold_vs;pub use mesh_vertex_snap::snap_to_grid;pub use mesh_vertex_snap::snap_vertex_to_nearest;pub use mesh_vertex_snap::VertexSnap;pub use mesh_vertex_weld::unweld_vertex;pub use mesh_vertex_weld::weld_by_normal;pub use mesh_vertex_weld::weld_by_position as weld_by_position_vw;pub use mesh_vertex_weld::weld_count;pub use mesh_vertex_weld::weld_map;pub use mesh_vertex_weld::weld_statistics;pub use mesh_vertex_weld::weld_threshold_value;pub use mesh_vertex_weld::weld_vertices;pub use mesh_vertex_weld::WeldResult2;pub use mesh_visibility::classify_visibility;pub use mesh_visibility::dot3_vis;pub use mesh_visibility::face_normal_vis;pub use mesh_visibility::front_facing_ratio;pub use mesh_visibility::grazing_angle_deg;pub use mesh_visibility::visibility_to_json;pub use mesh_visibility::FaceVisibility;pub use mesh_visibility::VisibilityResult;pub use mesh_voxel_oct::build_vox_octree;pub use mesh_voxel_oct::compute_aabb_vo;pub use mesh_voxel_oct::node_count_vo;pub use mesh_voxel_oct::occupied_leaf_count;pub use mesh_voxel_oct::point_in_aabb;pub use mesh_voxel_oct::split_aabb;pub use mesh_voxel_oct::vox_octree_to_json;pub use mesh_voxel_oct::VoxAabb;pub use mesh_voxel_oct::VoxOctNode;pub use mesh_voxel_oct::VoxOctree;pub use mesh_warp_deform::active_handle_count;pub use mesh_warp_deform::apply_warp_deform;pub use mesh_warp_deform::avg_warp_displacement;pub use mesh_warp_deform::dist3_wd;pub use mesh_warp_deform::rbf_weight;pub use mesh_warp_deform::warp_config_to_json;pub use mesh_warp_deform::WarpDeformConfig;pub use mesh_warp_deform::WarpHandle2;pub use mesh_wave_mesh::generate_wave_mesh;pub use mesh_wave_mesh::wave_height;pub use mesh_wave_mesh::wave_params_to_json;pub use mesh_wave_mesh::wave_triangle_count;pub use mesh_wave_mesh::wave_vertex_count;pub use mesh_wave_mesh::wave_y_range;pub use mesh_wave_mesh::WaveMeshParams;pub use mesh_wave_mesh::WaveMeshResult;pub use mesh_wedge::generate_wedge;pub use mesh_wedge::wedge_base_angle;pub use mesh_wedge::wedge_indices_valid;pub use mesh_wedge::wedge_to_json;pub use mesh_wedge::wedge_triangle_count;pub use mesh_wedge::wedge_vertex_count;pub use mesh_wedge::wedge_volume;pub use mesh_wedge::WedgeMesh;pub use mesh_wire_mesh::extract_wire_edges;pub use mesh_wire_mesh::wire_avg_length;pub use mesh_wire_mesh::wire_edge_count;pub use mesh_wire_mesh::wire_indices_valid;pub use mesh_wire_mesh::wire_mesh_to_json;pub use mesh_wire_mesh::wire_total_length;pub use mesh_wire_mesh::WireEdge;pub use mesh_wire_mesh::WireMesh;pub use mesh_zup_convert::bounds_zup;pub use mesh_zup_convert::convert_up_axis;pub use mesh_zup_convert::convert_yup_to_zup;pub use mesh_zup_convert::convert_zup_to_yup;pub use mesh_zup_convert::normals_yup_to_zup;pub use mesh_zup_convert::round_trip_error;pub use mesh_zup_convert::yup_to_zup;pub use mesh_zup_convert::zup_to_yup;pub use mesh_zup_convert::UpAxis;pub use mesh_adaptive_lod::adaptive_lod_to_json;pub use mesh_adaptive_lod::default_adaptive_lod_config;pub use mesh_adaptive_lod::lod_level_count as adaptive_lod_level_count;pub use mesh_adaptive_lod::lod_reduction_ratio as adaptive_lod_reduction_ratio;pub use mesh_adaptive_lod::select_lod_level;pub use mesh_adaptive_lod::triangle_count_at as adaptive_triangle_count_at;pub use mesh_adaptive_lod::AdaptiveLodConfig;pub use mesh_adaptive_lod::LodDescriptor;pub use mesh_batching::batch_indices_valid;pub use mesh_batching::batch_meshes;pub use mesh_batching::batch_to_json;pub use mesh_batching::batch_triangle_count;pub use mesh_batching::batch_vertex_count;pub use mesh_batching::submesh_count;pub use mesh_batching::BatchResult;pub use mesh_batching::BatchSource;pub use mesh_bvh_node::aabb_surface_area;pub use mesh_bvh_node::build_bvh_nodes;pub use mesh_bvh_node::bvh_leaf_count;pub use mesh_bvh_node::bvh_node_count;pub use mesh_bvh_node::merge_node_aabb;pub use mesh_bvh_node::ray_aabb_hit;pub use mesh_bvh_node::triangle_aabb as bvh_triangle_aabb;pub use mesh_bvh_node::BvhNode2;pub use mesh_bvh_node::BvhNodeAabb;pub use mesh_cage_volume::cage_volume_to_json;pub use mesh_cage_volume::compute_cage_volume;pub use mesh_cage_volume::equivalent_sphere_radius;pub use mesh_cage_volume::is_outward_cage;pub use mesh_cage_volume::scaled_cage_volume;pub use mesh_cage_volume::signed_tet_volume;pub use mesh_cage_volume::CageVolumeResult;pub use mesh_chart_pack::chart_area;pub use mesh_chart_pack::chart_bounding_box;pub use mesh_chart_pack::chart_pack_to_json;pub use mesh_chart_pack::chart_utilization;pub use mesh_chart_pack::new_uv_chart;pub use mesh_chart_pack::pack_charts;pub use mesh_chart_pack::pack_charts_stub;pub use mesh_chart_pack::packing_utilization;pub use mesh_chart_pack::rects_overlap_cp;pub use mesh_chart_pack::total_chart_area;pub use mesh_chart_pack::ChartPackResult;pub use mesh_chart_pack::ChartRect;pub use mesh_chart_pack::PackedChart;pub use mesh_chart_pack::PackingResult;pub use mesh_chart_pack::UvChart;pub use mesh_clip_region::accepted_triangle_count as clip_region_accepted_count;pub use mesh_clip_region::clip_indices_valid;pub use mesh_clip_region::clip_region_to_json;pub use mesh_clip_region::clip_to_region;pub use mesh_clip_region::position_in_region;pub use mesh_clip_region::ClipRegion;pub use mesh_clip_region::ClipRegionResult;pub use mesh_coarse_grid::build_coarse_grid;pub use mesh_coarse_grid::coarse_grid_to_json;pub use mesh_coarse_grid::find_nearby_vertices;pub use mesh_coarse_grid::occupied_cell_count;pub use mesh_coarse_grid::position_to_grid_cell;pub use mesh_coarse_grid::total_indexed_vertices;pub use mesh_coarse_grid::vertices_in_cell_cg;pub use mesh_coarse_grid::CoarseGrid;pub use mesh_coarse_grid::GridCell;pub use mesh_compress_index::compress_index_to_json;pub use mesh_compress_index::decode_delta_indices;pub use mesh_compress_index::encode_delta_indices;pub use mesh_compress_index::estimate_delta_size_bytes;pub use mesh_compress_index::fits_u16;pub use mesh_compress_index::max_index_ci;pub use mesh_compress_index::pack_u16;pub use mesh_compress_index::unpack_u16;pub use mesh_compress_index::CompressedIndices;pub use mesh_vertex_split::indices_valid as split_indices_valid;pub use mesh_vertex_split::split_by_uvs;pub use mesh_vertex_split::split_to_json as vertex_split_to_json;pub use mesh_vertex_split::split_uvs_unique;pub use mesh_vertex_split::split_vertex_count;pub use mesh_vertex_split::SplitResult;pub use mesh_vertex_weight::average_weight as avg_vertex_weight;pub use mesh_vertex_weight::blend_weight_buffers;pub use mesh_vertex_weight::clamp_weights as clamp_vertex_weights;pub use mesh_vertex_weight::get_weight as get_vertex_weight;pub use mesh_vertex_weight::new_weight_buffer;pub use mesh_vertex_weight::normalize_weights as normalize_vertex_weights;pub use mesh_vertex_weight::set_weight as set_vertex_weight;pub use mesh_vertex_weight::weight_buffer_to_json;pub use mesh_vertex_weight::weight_vertex_count;pub use mesh_vertex_weight::weights_above_threshold;pub use mesh_vertex_weight::weights_valid;pub use mesh_vertex_weight::VertexWeightBuffer;pub use mesh_mirror_cut::axis_extent;pub use mesh_mirror_cut::count_positive_vertices;pub use mesh_mirror_cut::cut_negative_side;pub use mesh_mirror_cut::cut_positive_side;pub use mesh_mirror_cut::mirror_cut;pub use mesh_mirror_cut::mirror_cut_to_json;pub use mesh_mirror_cut::MirrorAxis as MirrorCutAxis;pub use mesh_mirror_cut::MirrorCutResult;pub use mesh_face_peel::boundary_faces;pub use mesh_face_peel::build_face_adjacency as peel_build_face_adjacency;pub use mesh_face_peel::peel_layers;pub use mesh_face_peel::peel_one_layer;pub use mesh_face_peel::peel_result_to_json;pub use mesh_face_peel::remaining_after_peels;pub use mesh_face_peel::FacePeelResult;pub use mesh_raycast::hit_point;pub use mesh_raycast::hit_to_json as raycast_hit_to_json;pub use mesh_raycast::ray_direction as make_ray_direction;pub use mesh_raycast::ray_triangle;pub use mesh_raycast::raycast;pub use mesh_raycast::raycast_all;pub use mesh_raycast::Ray as RaycastRay;pub use mesh_raycast::RayHit as RaycastHit;pub use mesh_bvh::build_bvh;pub use mesh_bvh::bvh_to_json as bvh_tree_to_json;pub use mesh_bvh::bvh_triangle_count;pub use mesh_bvh::triangle_aabb_for;pub use mesh_bvh::BvhAabb as BvhAabb2;pub use mesh_bvh::BvhNode;pub use mesh_tube::generate_tube as gen_tube_along_spine;pub use mesh_tube::tube_index_count as gen_tube_index_count;pub use mesh_tube::tube_surface_area as gen_tube_surface_area;pub use mesh_tube::tube_to_json as gen_tube_to_json;pub use mesh_tube::tube_vertex_count as gen_tube_vertex_count;pub use mesh_tube::TubeMesh as TubeMeshSpine;pub use mesh_sphere::default_uv_sphere_config;pub use mesh_sphere::generate_uv_sphere;pub use mesh_sphere::indices_valid as uv_sphere_indices_valid;pub use mesh_sphere::normals_unit as uv_sphere_normals_unit;pub use mesh_sphere::sphere_surface_area;pub use mesh_sphere::sphere_volume;pub use mesh_sphere::uv_sphere_to_json;pub use mesh_sphere::uv_sphere_vertex_count;pub use mesh_sphere::UvSphereConfig;pub use mesh_sphere::UvSphereResult;pub use mesh_plane::default_plane_config;pub use mesh_plane::generate_plane;pub use mesh_plane::plane_area;pub use mesh_plane::plane_index_count;pub use mesh_plane::plane_indices_valid;pub use mesh_plane::plane_to_json;pub use mesh_plane::plane_uvs_in_range;pub use mesh_plane::plane_vertex_count;pub use mesh_plane::PlaneConfig;pub use mesh_plane::PlaneMesh;pub use mesh_cylinder_gen::cylinder_gen_to_json;pub use mesh_cylinder_gen::cylinder_indices_valid;pub use mesh_cylinder_gen::cylinder_lateral_area;pub use mesh_cylinder_gen::cylinder_side_index_count;pub use mesh_cylinder_gen::cylinder_side_vertex_count;pub use mesh_cylinder_gen::cylinder_total_area;pub use mesh_cylinder_gen::cylinder_volume;pub use mesh_cylinder_gen::default_cylinder_gen_config;pub use mesh_cylinder_gen::generate_cylinder;pub use mesh_cylinder_gen::CylinderGenConfig;pub use mesh_cylinder_gen::CylinderGenResult;pub use mesh_cone_gen::cone_gen_to_json;pub use mesh_cone_gen::cone_index_count;pub use mesh_cone_gen::cone_slant_height;pub use mesh_cone_gen::cone_vertex_count;pub use mesh_cone_gen::cone_volume;pub use mesh_cone_gen::default_cone_gen_config;pub use mesh_cone_gen::generate_cone;pub use mesh_cone_gen::ConeGenConfig;pub use mesh_cone_gen::ConeGenResult;pub use mesh_torus_gen::default_torus_gen_config;pub use mesh_torus_gen::generate_torus;pub use mesh_torus_gen::torus_gen_to_json;pub use mesh_torus_gen::torus_index_count;pub use mesh_torus_gen::torus_surface_area;pub use mesh_torus_gen::torus_vertex_count;pub use mesh_torus_gen::torus_volume;pub use mesh_torus_gen::TorusGenConfig;pub use mesh_torus_gen::TorusGenResult;pub use mesh_icosphere::icosahedron_faces;pub use mesh_icosphere::icosahedron_verts;pub use mesh_icosphere::icosphere_vert_count;pub use mesh_icosphere::make_icosphere;pub use mesh_edge_split::edge_split_count;pub use mesh_edge_split::split_all_long_edges;pub use mesh_edge_split::split_creates_triangles;pub use mesh_edge_split::split_edge;pub use mesh_edge_split::split_edge_at_t;pub use mesh_edge_split::split_edge_midpoint;pub use mesh_edge_split::split_threshold as edge_split_threshold;pub use mesh_edge_split::validate_split as validate_edge_split;pub use mesh_edge_split::EdgeSplitResult;pub use mesh_capsule_gen::capsule_gen_to_json;pub use mesh_capsule_gen::capsule_index_count;pub use mesh_capsule_gen::capsule_total_height;pub use mesh_capsule_gen::capsule_vertex_count;pub use mesh_capsule_gen::capsule_volume;pub use mesh_capsule_gen::default_capsule_gen_config;pub use mesh_capsule_gen::generate_capsule;pub use mesh_capsule_gen::CapsuleGenConfig;pub use mesh_capsule_gen::CapsuleGenResult;pub use mesh_voxelize::default_voxelize_v2_params;pub use mesh_voxelize::total_voxel_count;pub use mesh_voxelize::voxelize_surface_v2;pub use mesh_voxelize::VoxelGridV2;pub use mesh_voxelize::VoxelizeV2Params;pub use mesh_convex_hull_v2::convex_hull_v2;pub use mesh_convex_hull_v2::hull_v2_centroid;pub use mesh_convex_hull_v2::hull_v2_face_count;pub use mesh_convex_hull_v2::hull_volume_v2;pub use mesh_convex_hull_v2::ConvexHullV2;pub use mesh_dual_laplacian::cotangent_weight as dual_laplacian_cotangent_weight;pub use mesh_dual_laplacian::dual_laplacian_smooth;pub use mesh_dual_laplacian::laplacian_at_vertex;pub use mesh_dual_laplacian::laplacian_energy_dual;pub use mesh_dual_laplacian::DualLaplacianConfig;pub use mesh_sharp_feature::detect_sharp_features;pub use mesh_sharp_feature::is_sharp_vertex;pub use mesh_sharp_feature::max_sharp_dihedral;pub use mesh_sharp_feature::sharp_feature_edge_count;pub use mesh_sharp_feature::SharpFeatureEdge;pub use mesh_sharp_feature::SharpFeatureResult;pub use mesh_slice_stack::contour_bounds;pub use mesh_slice_stack::slice_at_z;pub use mesh_slice_stack::slice_stack;pub use mesh_slice_stack::total_contour_points;pub use mesh_slice_stack::uniform_z_heights;pub use mesh_slice_stack::SliceContour;pub use mesh_slice_stack::SliceStackResult;pub use mesh_unfold::place_triangle_2d;pub use mesh_unfold::unfold_coverage;pub use mesh_unfold::unfold_mesh;pub use mesh_unfold::unfold_visited_count;pub use mesh_unfold::UnfoldResult;pub use mesh_align_axes::align_to_principal_axes;pub use mesh_align_axes::compute_centroid as align_compute_centroid;pub use mesh_align_axes::covariance_3x3;pub use mesh_align_axes::variance_along_axis;pub use mesh_align_axes::AlignAxesResult;pub use mesh_moment_inertia::compute_inertia_tensor;pub use mesh_moment_inertia::principal_moments;pub use mesh_moment_inertia::tensor_frobenius_norm;pub use mesh_moment_inertia::tensor_is_symmetric;pub use mesh_moment_inertia::tensor_trace;pub use mesh_moment_inertia::InertiaTensor;pub use mesh_heat_diffuse_v2::build_heat_adjacency_v2;pub use mesh_heat_diffuse_v2::diffuse_heat_v2;pub use mesh_heat_diffuse_v2::heat_gradient_v2;pub use mesh_heat_diffuse_v2::new_heat_field_v2;pub use mesh_heat_diffuse_v2::normalize_heat_field_v2;pub use mesh_heat_diffuse_v2::set_heat_source_v2;pub use mesh_heat_diffuse_v2::HeatDiffuseV2Config;pub use mesh_heat_diffuse_v2::HeatFieldV2;pub use mesh_tangent_frames::average_tangent_v2;pub use mesh_tangent_frames::compute_tangent_frames as compute_tangent_frames_v2;pub use mesh_tangent_frames::degenerate_frame_count;pub use mesh_tangent_frames::frames_orthonormal;pub use mesh_tangent_frames::world_to_tangent_space;pub use mesh_tangent_frames::TangentFrameV2;pub use mesh_normal_map_bake::average_pixel_normal;pub use mesh_normal_map_bake::bake_normal_map_v2;pub use mesh_normal_map_bake::normal_map_v2_size_bytes;pub use mesh_normal_map_bake::normal_to_rgb_v2;pub use mesh_normal_map_bake::rgb_to_normal_v2;pub use mesh_normal_map_bake::NormalMapBakeV2Config;pub use mesh_normal_map_bake::NormalMapV2;pub use mesh_decimate_v2::decimate_v2;pub use mesh_decimate_v2::decimation_ratio_v2;pub use mesh_decimate_v2::quadric_error;pub use mesh_decimate_v2::DecimateV2Config;pub use mesh_decimate_v2::DecimateV2Result;pub use mesh_decimate_v2::Quadric4;pub use mesh_ambient_occ::apply_ao_to_colors;pub use mesh_ambient_occ::average_ao;pub use mesh_ambient_occ::bent_normal_at;pub use mesh_ambient_occ::compute_vertex_ao;pub use mesh_ambient_occ::hemisphere_samples_v2;pub use mesh_ambient_occ::AmbientOccV2Config;pub use mesh_quad_to_tri::quad_buffer_to_triangles;pub use mesh_quad_to_tri::quads_to_triangles;pub use mesh_quad_to_tri::result_triangle_count;pub use mesh_quad_to_tri::total_surface_area_q2t;pub use mesh_quad_to_tri::QuadFaceV2;pub use mesh_quad_to_tri::QuadToTriResult;pub use mesh_tri_to_quad::quad_count_t2q;pub use mesh_tri_to_quad::quadification_ratio;pub use mesh_tri_to_quad::quads_to_flat_buffer;pub use mesh_tri_to_quad::remaining_tri_count;pub use mesh_tri_to_quad::triangles_to_quads;pub use mesh_tri_to_quad::QuadPair;pub use mesh_tri_to_quad::TriToQuadResult;pub use mesh_wire_frame::generate_wireframe;pub use mesh_wire_frame::total_wireframe_length;pub use mesh_wire_frame::wireframe_edge_count;pub use mesh_wire_frame::wireframe_indices_valid;pub use mesh_wire_frame::wireframe_to_line_buffer;pub use mesh_wire_frame::WireEdge2;pub use mesh_wire_frame::WireframeMesh;pub use mesh_parametric_surf::compute_smooth_normals_ps;pub use mesh_parametric_surf::parametric_surf_triangle_count;pub use mesh_parametric_surf::parametric_surf_vertex_count;pub use mesh_parametric_surf::sphere_fn;pub use mesh_parametric_surf::tessellate_parametric;pub use mesh_parametric_surf::torus_fn;pub use mesh_parametric_surf::ParametricSurface;pub use mesh_revolve::cone_profile;pub use mesh_revolve::cylinder_profile;pub use mesh_revolve::revolve_profile;pub use mesh_revolve::revolve_triangle_count;pub use mesh_revolve::RevolveSurface;pub use mesh_thicken::compute_vertex_normals as thicken_compute_vertex_normals;pub use mesh_thicken::thicken_mesh;pub use mesh_thicken::thicken_triangle_count;pub use mesh_thicken::thicken_vertex_count;pub use mesh_thicken::ThickenResult;pub use mesh_trim::count_above_plane;pub use mesh_trim::trim_mesh;pub use mesh_trim::trim_triangle_count;pub use mesh_trim::TrimPlane;pub use mesh_trim::TrimResult;pub use mesh_inflate::all_moved_outward;pub use mesh_inflate::avg_displacement as inflate_avg_displacement;pub use mesh_inflate::compute_avg_normals;pub use mesh_inflate::inflate_mesh;pub use mesh_inflate::max_displacement as inflate_max_displacement;pub use mesh_erode::all_moved_inward;pub use mesh_erode::erode_iterative;pub use mesh_erode::erode_mesh;pub use mesh_erode::erode_stats;pub use mesh_erode::ErodeStats;pub use mesh_fractal_displace::fbm as fractal_fbm;pub use mesh_fractal_displace::fractal_displace;pub use mesh_fractal_displace::max_fractal_displacement;pub use mesh_fractal_displace::value_noise_3d as fractal_value_noise_3d;pub use mesh_fractal_displace::FractalDispParams;pub use mesh_scatter::scatter_points;pub use mesh_scatter::total_area as scatter_total_area;pub use mesh_scatter::triangle_area as scatter_triangle_area;pub use mesh_scatter::LcgRng as ScatterLcgRng;pub use mesh_scatter::ScatteredPoint;pub use mesh_closest_point::closest_point_on_mesh;pub use mesh_closest_point::closest_point_on_triangle as cp_on_triangle;pub use mesh_closest_point::dist3 as closest_dist3;pub use mesh_closest_point::ClosestPointResult;pub use mesh_smooth_color::average_color as smooth_average_color;pub use mesh_smooth_color::build_color_adjacency;pub use mesh_smooth_color::clamp_colors as smooth_clamp_colors;pub use mesh_smooth_color::colors_in_range;pub use mesh_smooth_color::smooth_vertex_colors;pub use mesh_attr_transfer::avg_transfer_error;pub use mesh_attr_transfer::max_transfer_error;pub use mesh_attr_transfer::nearest_vertex as attr_nearest_vertex;pub use mesh_attr_transfer::transfer_rgba_attr;pub use mesh_attr_transfer::transfer_scalar_attr;pub use mesh_attr_transfer::transfer_vec3_attr;pub use mesh_debug_vis::generate_bitangent_lines;pub use mesh_debug_vis::generate_normal_lines;pub use mesh_debug_vis::generate_tangent_lines;pub use mesh_debug_vis::line_length as debug_line_length;pub use mesh_debug_vis::lines_to_color_buffer;pub use mesh_debug_vis::lines_to_position_buffer;pub use mesh_debug_vis::DebugLine;pub use mesh_boolean_csg::csg_combine;pub use mesh_boolean_csg::csg_inside_count;pub use mesh_boolean_csg::sample_csg_grid;pub use mesh_boolean_csg::CsgOp;pub use mesh_boolean_csg::SdfBox;pub use mesh_boolean_csg::SdfSphere;pub use mesh_swept_solid::sweep_profile;pub use mesh_swept_solid::swept_triangle_count;pub use mesh_swept_solid::swept_vertex_count;pub use mesh_swept_solid::Profile2D as SweptProfile2D;pub use mesh_swept_solid::SweptMesh;pub use mesh_pipe_network::build_pipe_network;pub use mesh_pipe_network::pipe_triangle_count;pub use mesh_pipe_network::tube_segment;pub use mesh_pipe_network::PipeEdge;pub use mesh_pipe_network::PipeNetworkMesh;pub use mesh_pipe_network::PipeNode;pub use mesh_lattice_frame::build_lattice_mesh;pub use mesh_lattice_frame::cubic_lattice_beams;pub use mesh_lattice_frame::cubic_lattice_nodes;pub use mesh_lattice_frame::lattice_triangle_count;pub use mesh_lattice_frame::Beam;pub use mesh_lattice_frame::LatticeMesh;pub use mesh_voronoi_cell::build_voronoi_cells;pub use mesh_voronoi_cell::nearest_seed;pub use mesh_voronoi_cell::total_assigned_points;pub use mesh_voronoi_cell::Aabb3;pub use mesh_voronoi_cell::VoronoiCell as VoronoiGridCell;pub use mesh_spring_net::average_rest_length;pub use mesh_spring_net::build_spring_net;pub use mesh_spring_net::spring_edge_count;pub use mesh_spring_net::spring_stretch;pub use mesh_spring_net::SpringEdge;pub use mesh_spring_net::SpringNet;pub use mesh_helix::build_helix_mesh;pub use mesh_helix::helix_path as helix_tube_path;pub use mesh_helix::helix_triangle_count;pub use mesh_helix::helix_vertex_count;pub use mesh_helix::HelixMesh;pub use mesh_helix::HelixParams;pub use mesh_mobius::build_mobius_mesh;pub use mesh_mobius::mobius_point;pub use mesh_mobius::mobius_triangle_count;pub use mesh_mobius::mobius_vertex_count;pub use mesh_mobius::MobiusMesh;pub use mesh_mobius::MobiusParams;pub use mesh_klein_bottle::build_klein_mesh;pub use mesh_klein_bottle::klein_point;pub use mesh_klein_bottle::klein_triangle_count;pub use mesh_klein_bottle::klein_vertex_count;pub use mesh_klein_bottle::KleinMesh;pub use mesh_klein_bottle::KleinParams;pub use mesh_trefoil::build_trefoil_mesh;pub use mesh_trefoil::trefoil_path;pub use mesh_trefoil::trefoil_point;pub use mesh_trefoil::trefoil_triangle_count;pub use mesh_trefoil::trefoil_vertex_count;pub use mesh_trefoil::TrefoilMesh;pub use mesh_trefoil::TrefoilParams;pub use mesh_superellipsoid::build_superellipsoid_mesh;pub use mesh_superellipsoid::spow;pub use mesh_superellipsoid::superellipsoid_point;pub use mesh_superellipsoid::superellipsoid_triangle_count;pub use mesh_superellipsoid::superellipsoid_vertex_count;pub use mesh_superellipsoid::SuperellipsoidMesh;pub use mesh_superellipsoid::SuperellipsoidParams;pub use mesh_dupin_cyclide::build_cyclide_mesh;pub use mesh_dupin_cyclide::cyclide_point;pub use mesh_dupin_cyclide::cyclide_triangle_count;pub use mesh_dupin_cyclide::cyclide_vertex_count;pub use mesh_dupin_cyclide::CyclideMesh;pub use mesh_dupin_cyclide::CyclideParams;pub use mesh_minimal_surface::build_minimal_surface_mesh;pub use mesh_minimal_surface::enneper_point;pub use mesh_minimal_surface::minimal_surface_triangle_count;pub use mesh_minimal_surface::minimal_surface_vertex_count;pub use mesh_minimal_surface::scherk_point;pub use mesh_minimal_surface::MinimalSurfaceMesh;pub use mesh_minimal_surface::MinimalSurfaceParams;pub use mesh_minimal_surface::MinimalSurfaceType;pub use mesh_fused_deposition::add_rect_path;pub use mesh_fused_deposition::add_zigzag_infill;pub use mesh_fused_deposition::layer_count as fdm_layer_count;pub use mesh_fused_deposition::layer_path_length;pub use mesh_fused_deposition::slice_bbox_into_layers;pub use mesh_fused_deposition::total_path_points;pub use mesh_fused_deposition::FdmJob;pub use mesh_fused_deposition::FdmLayer;pub use mesh_isosurface::extract_isosurface;pub use mesh_isosurface::fill_sphere_sdf;pub use mesh_isosurface::isosurface_triangle_count;pub use mesh_isosurface::isosurface_vertex_count;pub use mesh_isosurface::IsosurfaceMesh;pub use mesh_isosurface::ScalarGrid;pub use mesh_multiresolution::apply_displacement as mr_apply_displacement;pub use mesh_multiresolution::pop_level;pub use mesh_multiresolution::push_level;pub use mesh_multiresolution::reset_displacements as mr_reset_displacements;pub use mesh_multiresolution::total_displacement_magnitude as mr_total_displacement_magnitude;pub use mesh_multiresolution::MrLevel;pub use mesh_multiresolution::MultiresolutionMesh;pub use mesh_ptex::PtexFaceData;pub use mesh_ptex::PtexFaceRes;pub use mesh_ptex::PtexTexture;pub use mesh_paint_mask::average_weight as paint_average_weight;pub use mesh_paint_mask::count_above as paint_count_above;pub use mesh_paint_mask::from_bytes as paint_from_bytes;pub use mesh_paint_mask::to_bytes as paint_to_bytes;pub use mesh_paint_mask::PaintMask;pub use mesh_face_map::face_in_any_group;pub use mesh_face_map::merge_face_maps;pub use mesh_face_map::rename_group;pub use mesh_face_map::total_face_count as face_map_total_face_count;pub use mesh_face_map::FaceMap;pub use mesh_vertex_group_weight::dominant_group;pub use mesh_vertex_group_weight::normalize_across_groups;pub use mesh_vertex_group_weight::VertexWeight;pub use mesh_vertex_group_weight::VertexWeightGroup;pub use mesh_vertex_group_weight::VertexWeightGroupSet;pub use mesh_shape_key_mix::dominant_key;pub use mesh_shape_key_mix::mix_shape_keys;pub use mesh_shape_key_mix::reset_all_weights;pub use mesh_shape_key_mix::set_key_weight;pub use mesh_shape_key_mix::total_influence;pub use mesh_shape_key_mix::ShapeKey;pub use mesh_cloth_pins::average_strength;pub use mesh_cloth_pins::fully_pinned_count;pub use mesh_cloth_pins::pinned_vertex_indices;pub use mesh_cloth_pins::scale_strengths;pub use mesh_cloth_pins::ClothPinEntry;pub use mesh_cloth_pins::ClothPinGroup;pub use mesh_particle_hair::average_strand_length;pub use mesh_particle_hair::max_strand_length;pub use mesh_particle_hair::HairStrand;pub use mesh_particle_hair::ParticleHairMesh;pub use mesh_fur_cards::average_card_length;pub use mesh_fur_cards::generate_fur_cards;pub use mesh_fur_cards::FurCard;pub use mesh_fur_cards::FurCardMesh;pub use mesh_feather::generate_feather;pub use mesh_feather::total_segment_count;pub use mesh_feather::Barb;pub use mesh_feather::Feather;pub use mesh_feather::FeatherParams;pub use mesh_scale_elements::face_centroid as scale_face_centroid;pub use mesh_scale_elements::scale_edges;pub use mesh_scale_elements::scale_faces;pub use mesh_scale_elements::selected_face_count as scale_selected_face_count;pub use mesh_push_pull::clamp_positions as push_pull_clamp_positions;pub use mesh_push_pull::push_all;pub use mesh_push_pull::push_pull;pub use mesh_push_pull::push_pull_magnitude;pub use mesh_push_pull::selected_vertex_count as push_pull_selected_vertex_count;pub use mesh_smooth_vertex::build_adjacency as smooth_build_adjacency;pub use mesh_smooth_vertex::max_displacement as smooth_max_displacement;pub use mesh_smooth_vertex::smooth_n;pub use mesh_smooth_vertex::smooth_step;pub use mesh_relax_uv::build_uv_adjacency;pub use mesh_relax_uv::max_uv_displacement;pub use mesh_relax_uv::relax_step as uv_relax_step;pub use mesh_relax_uv::relax_uvs;pub use mesh_relax_uv::uvs_in_range as relax_uvs_in_range;pub use mesh_pack_islands::atlas_utilization as pack_atlas_utilization;pub use mesh_pack_islands::largest_island;pub use mesh_pack_islands::pack_uv_islands;pub use mesh_pack_islands::total_island_area;pub use mesh_pack_islands::PackedIsland;pub use mesh_pack_islands::UvIslandBounds;pub use mesh_seam_mark_v2::mark_boundary_seams2;pub use mesh_seam_mark_v2::sorted_seams2;pub use mesh_seam_mark_v2::SeamEdge2;pub use mesh_seam_mark_v2::SeamSet2;pub use mesh_normal_edit::apply_normal_edits;pub use mesh_normal_edit::edit_count as normal_edit_count;pub use mesh_normal_edit::get_custom_normal;pub use mesh_normal_edit::new_normal_edit_layer;pub use mesh_normal_edit::new_normal_edit_params;pub use mesh_normal_edit::normal_blend;pub use mesh_normal_edit::normal_edit_apply;pub use mesh_normal_edit::normal_flip;pub use mesh_normal_edit::normal_is_valid;pub use mesh_normal_edit::normal_normalize;pub use mesh_normal_edit::set_custom_normal;pub use mesh_normal_edit::NormalEdit;pub use mesh_normal_edit::NormalEditLayer;pub use mesh_normal_edit::NormalEditParams;pub use mesh_auto_smooth::auto_smooth;pub use mesh_auto_smooth::config_from_degrees as auto_smooth_config_degrees;pub use mesh_auto_smooth::count_sharp_vertices;pub use mesh_auto_smooth::dihedral_angle as auto_smooth_dihedral_angle;pub use mesh_auto_smooth::is_smooth_angle;pub use mesh_auto_smooth::AutoSmoothConfig;pub use mesh_auto_smooth::AutoSmoothResult;pub use mesh_face_orient::face_orientation;pub use mesh_face_orient::flip_orientation;pub use mesh_face_orient::is_consistently_oriented;pub use mesh_face_orient::orient_count;pub use mesh_face_orient::orient_faces_consistently;pub use mesh_face_orient::orient_from_normals;pub use mesh_face_orient::orient_to_json;pub use mesh_face_orient::orientation_errors;pub use mesh_face_orient::FaceOrient;pub use mesh_limited_dissolve::config_from_degrees as dissolve_config_degrees;pub use mesh_limited_dissolve::limited_dissolve;pub use mesh_limited_dissolve::multi_face_groups;pub use mesh_limited_dissolve::total_dissolved;pub use mesh_limited_dissolve::within_dissolve_angle;pub use mesh_limited_dissolve::DissolveResult;pub use mesh_limited_dissolve::LimitedDissolveConfig;pub use mesh_planar_decimate::are_coplanar as planar_are_coplanar;pub use mesh_planar_decimate::config_degrees as planar_config_degrees;pub use mesh_planar_decimate::decimate_ratio as planar_decimate_ratio;pub use mesh_planar_decimate::planar_decimate;pub use mesh_planar_decimate::survivor_count;pub use mesh_planar_decimate::PlanarDecimateConfig;pub use mesh_planar_decimate::PlanarDecimateResult;pub use mesh_unsubdivide::find_loop_midpoints;pub use mesh_unsubdivide::had_effect as unsubdivide_had_effect;pub use mesh_unsubdivide::surviving_tri_count;pub use mesh_unsubdivide::unsubdivide;pub use mesh_unsubdivide::vertex_reduction_ratio;pub use mesh_unsubdivide::UnsubdivideConfig;pub use mesh_unsubdivide::UnsubdivideResult;pub use mesh_tris_to_quads::merge_ratio as tris_to_quads_merge_ratio;pub use mesh_tris_to_quads::quad_count as tris_quad_count;pub use mesh_tris_to_quads::quads_to_tri_indices;pub use mesh_tris_to_quads::total_faces as tris_to_quads_total_faces;pub use mesh_tris_to_quads::tri_count as tris_remaining_tri_count;pub use mesh_tris_to_quads::tris_to_quads;pub use mesh_tris_to_quads::try_merge_to_quad;pub use mesh_tris_to_quads::validate_quads;pub use mesh_tris_to_quads::TrisToQuadsResult;pub use mesh_quads_to_tris::default_split_mode;pub use mesh_quads_to_tris::mixed_to_tris;pub use mesh_quads_to_tris::quads_to_tris;pub use mesh_quads_to_tris::split_quad;pub use mesh_quads_to_tris::tri_index_count;pub use mesh_quads_to_tris::triangle_count_from_quads;pub use mesh_quads_to_tris::validate_quad_input;pub use mesh_quads_to_tris::QuadSplitMode;pub use mesh_quads_to_tris::QuadsToTrisResult;pub use mesh_ngon_fill::all_valid as ngon_all_valid;pub use mesh_ngon_fill::ear_clip_fill_2d;pub use mesh_ngon_fill::expected_tri_count as ngon_expected_tri_count;pub use mesh_ngon_fill::fan_fill;pub use mesh_ngon_fill::ngon_fill;pub use mesh_ngon_fill::triangle_count as ngon_tri_count;pub use mesh_ngon_fill::NgonFillMethod;pub use mesh_ngon_fill::NgonFillResult;pub use mesh_grid_fill::dimensions_match;pub use mesh_grid_fill::grid_bounds;pub use mesh_grid_fill::grid_fill;pub use mesh_grid_fill::grid_fill_face_count;pub use mesh_grid_fill::grid_fill_is_valid;pub use mesh_grid_fill::grid_fill_vertex;pub use mesh_grid_fill::grid_fill_vertex_count;pub use mesh_grid_fill::grid_quads_to_tris;pub use mesh_grid_fill::new_grid_fill;pub use mesh_grid_fill::quad_count as grid_quad_count;pub use mesh_grid_fill::vertex_count as grid_vertex_count;pub use mesh_grid_fill::GridFillConfig;pub use mesh_grid_fill::GridFillParams;pub use mesh_grid_fill::GridFillResult;pub use mesh_fill_holes::boundary_vert_count;pub use mesh_fill_holes::detect_holes;pub use mesh_fill_holes::fill_holes as fill_holes_from_boundary;pub use mesh_fill_holes::fill_triangle_count;pub use mesh_fill_holes::has_holes;pub use mesh_fill_holes::merge_filled as merge_filled_holes;pub use mesh_fill_holes::FillHolesConfig;pub use mesh_fill_holes::FillHolesResult;pub use mesh_fill_holes::MeshHoleDetected;pub use mesh_convex_hull_2d::convex_hull_2d;pub use mesh_convex_hull_2d::cross_2d;pub use mesh_convex_hull_2d::hull_area;pub use mesh_convex_hull_2d::hull_perimeter;pub use mesh_convex_hull_2d::point_in_hull as point_in_hull_2d;pub use mesh_ear_clip::all_valid as ear_clip_all_valid;pub use mesh_ear_clip::ear_clip as ear_clip_polygon;pub use mesh_ear_clip::ear_clip_count;pub use mesh_ear_clip::ear_clip_triangulate;pub use mesh_ear_clip::ear_is_ear;pub use mesh_ear_clip::expected_count as ear_clip_expected_count;pub use mesh_ear_clip::is_ccw;pub use mesh_ear_clip::polygon_area_2d as ear_clip_polygon_area;pub use mesh_ear_clip::polygon_is_convex_vertex;pub use mesh_ear_clip::triangle_area_2d;pub use mesh_ear_clip::triangle_count as ear_clip_tri_count;pub use mesh_ear_clip::EarClipResult;pub use mesh_fan_triangulate::fan_area as fan_polygon_area;pub use mesh_fan_triangulate::fan_centroid;pub use mesh_fan_triangulate::fan_triangle_count as fan_tri_count;pub use mesh_fan_triangulate::fan_triangulate;pub use mesh_fan_triangulate::fan_triangulate_3d;pub use mesh_fan_triangulate::fan_triangulate_all;pub use mesh_fan_triangulate::fan_triangulate_ngon;pub use mesh_fan_triangulate::is_convex_polygon;pub use mesh_fan_triangulate::polygon_area_2d as fan_polygon_area_2d;pub use mesh_tube_curve::expected_triangle_count as tube_curve_expected_triangle_count;pub use mesh_tube_curve::expected_vertex_count as tube_curve_expected_vertex_count;pub use mesh_tube_curve::tube_along_curve;pub use mesh_tube_curve::validate_tube_params;pub use mesh_tube_curve::TubeCurveParams;pub use mesh_tube_curve::TubeMesh as TubeCurveMesh;pub use mesh_cable_gen::build_cable;pub use mesh_cable_gen::cable_lateral_area as cable_gen_lateral_area;pub use mesh_cable_gen::cable_mass;pub use mesh_cable_gen::expected_triangle_count as cable_expected_triangle_count;pub use mesh_cable_gen::expected_vertex_count as cable_expected_vertex_count;pub use mesh_cable_gen::validate_cable_params;pub use mesh_cable_gen::CableMesh;pub use mesh_cable_gen::CableParams;pub use mesh_chain_link::build_chain;pub use mesh_chain_link::build_link;pub use mesh_chain_link::chain_triangle_count;pub use mesh_chain_link::triangles_per_link;pub use mesh_chain_link::validate_link_params;pub use mesh_chain_link::ChainLinkParams;pub use mesh_chain_link::LinkMesh;pub use mesh_spring_helix::build_spring_helix;pub use mesh_spring_helix::spring_arc_length;pub use mesh_spring_helix::validate_spring_params;pub use mesh_spring_helix::SpringHelixMesh;pub use mesh_spring_helix::SpringHelixParams;pub use mesh_gear_tooth::addendum_radius;pub use mesh_gear_tooth::base_radius;pub use mesh_gear_tooth::build_gear;pub use mesh_gear_tooth::dedendum_radius;pub use mesh_gear_tooth::involute_point;pub use mesh_gear_tooth::pitch_radius;pub use mesh_gear_tooth::validate_gear_params;pub use mesh_gear_tooth::GearMesh;pub use mesh_gear_tooth::GearParams;pub use mesh_screw_helix::build_screw;pub use mesh_screw_helix::estimated_vertex_count as screw_estimated_vertex_count;pub use mesh_screw_helix::screw_arc_length;pub use mesh_screw_helix::thread_depth;pub use mesh_screw_helix::validate_screw_params;pub use mesh_screw_helix::ScrewMesh;pub use mesh_screw_helix::ScrewParams;pub use mesh_torus_knot::build_torus_knot;pub use mesh_torus_knot::expected_vertex_count as torus_knot_expected_vertex_count;pub use mesh_torus_knot::torus_knot_point;pub use mesh_torus_knot::validate_torus_knot_params;pub use mesh_torus_knot::TorusKnotMesh;pub use mesh_torus_knot::TorusKnotParams;pub use mesh_nonorientable::build_mobius_strip;pub use mesh_nonorientable::expected_vertex_count as mobius_expected_vertex_count;pub use mesh_nonorientable::mobius_point as nonorientable_mobius_point;pub use mesh_nonorientable::validate_mobius_params;pub use mesh_nonorientable::MobiusMesh as MobiusStripMesh;pub use mesh_nonorientable::MobiusStripParams;pub use mesh_projective_plane::build_klein_bottle;pub use mesh_projective_plane::expected_triangle_count as klein_expected_triangle_count;pub use mesh_projective_plane::expected_vertex_count as klein_expected_vertex_count;pub use mesh_projective_plane::klein_point as projective_klein_point;pub use mesh_projective_plane::validate_klein_params;pub use mesh_projective_plane::KleinBottleMesh;pub use mesh_projective_plane::KleinBottleParams;pub use mesh_torus_ring::build_torus_ring;pub use mesh_torus_ring::expected_vertex_count as torus_ring_expected_vertex_count;pub use mesh_torus_ring::torus_point;pub use mesh_torus_ring::torus_surface_area as torus_ring_surface_area;pub use mesh_torus_ring::torus_volume as torus_ring_volume;pub use mesh_torus_ring::validate_torus_params;pub use mesh_torus_ring::TorusRingMesh;pub use mesh_torus_ring::TorusRingParams;pub use mesh_geosphere::build_geosphere;pub use mesh_geosphere::expected_triangle_count as geosphere_expected_triangle_count;pub use mesh_geosphere::sphere_surface_area as geosphere_sphere_surface_area;pub use mesh_geosphere::validate_geosphere_params;pub use mesh_geosphere::GeosphereMesh;pub use mesh_geosphere::GeosphereParams;pub use mesh_end_cap::build_capped_cylinder;pub use mesh_end_cap::lateral_area as end_cap_lateral_area;pub use mesh_end_cap::total_surface_area as end_cap_total_surface_area;pub use mesh_end_cap::validate_params as validate_capped_cylinder_params;pub use mesh_end_cap::CappedCylinderMesh;pub use mesh_end_cap::CappedCylinderParams;pub use mesh_loft::loft_profiles;pub use mesh_loft::loft_triangle_count;pub use mesh_loft::loft_vertex_count as mesh_loft_vertex_count;pub use mesh_loft::profile_centroid;pub use mesh_loft::LoftResult;pub use mesh_ruled_surface::build_ruled_surface;pub use mesh_ruled_surface::lerp3 as ruled_lerp3;pub use mesh_ruled_surface::ruled_tri_count;pub use mesh_ruled_surface::ruled_vertex_count;pub use mesh_ruled_surface::validate_ruled_surface;pub use mesh_ruled_surface::RuledSurface;pub use mesh_coons_patch::build_coons_patch;pub use mesh_coons_patch::coons_eval;pub use mesh_coons_patch::coons_tri_count;pub use mesh_coons_patch::coons_vertex_count;pub use mesh_coons_patch::validate_coons_patch;pub use mesh_coons_patch::CoonsPatch;pub use mesh_nurbs_surface::new_nurbs_surface;pub use mesh_nurbs_surface::nurbs_control_bbox;pub use mesh_nurbs_surface::nurbs_control_point_count;pub use mesh_nurbs_surface::tessellate_nurbs;pub use mesh_nurbs_surface::uniform_knots;pub use mesh_nurbs_surface::validate_nurbs;pub use mesh_nurbs_surface::NurbsSurface;pub use mesh_bezier_surface::bernstein3;pub use mesh_bezier_surface::bezier_surface_tri_count;pub use mesh_bezier_surface::bezier_surface_vertex_count;pub use mesh_bezier_surface::eval_bezier_surface;pub use mesh_bezier_surface::tessellate_bezier_surface;pub use mesh_bezier_surface::validate_bezier_surface;pub use mesh_bezier_surface::BezierControlGrid;pub use mesh_bezier_surface::BezierSurface;pub use mesh_gordon_surface::gordon_total_u_points;pub use mesh_gordon_surface::gordon_u_curve_count;pub use mesh_gordon_surface::gordon_v_curve_count;pub use mesh_gordon_surface::new_gordon_surface;pub use mesh_gordon_surface::tessellate_gordon;pub use mesh_gordon_surface::validate_gordon;pub use mesh_gordon_surface::GordonSurface;pub use mesh_skinned_surface::build_skinned_surface;pub use mesh_skinned_surface::chord_length_params;pub use mesh_skinned_surface::skinned_tri_count;pub use mesh_skinned_surface::skinned_vertex_count;pub use mesh_skinned_surface::validate_skinned_surface;pub use mesh_skinned_surface::SkinnedSurface;pub use mesh_revolution_surface::build_revolution_surface;pub use mesh_revolution_surface::revolution_surface_area;pub use mesh_revolution_surface::revolution_tri_count;pub use mesh_revolution_surface::revolution_vertex_count;pub use mesh_revolution_surface::validate_revolution_surface;pub use mesh_revolution_surface::RevolutionSurface;pub use mesh_extruded_polygon::build_extruded_polygon;pub use mesh_extruded_polygon::extruded_tri_count;pub use mesh_extruded_polygon::extruded_vertex_count;pub use mesh_extruded_polygon::lateral_area as extruded_lateral_area;pub use mesh_extruded_polygon::validate_extruded_polygon;pub use mesh_extruded_polygon::ExtrudedPolygon;pub use mesh_prism_frustum::build_prism_frustum;pub use mesh_prism_frustum::frustum_lateral_area;pub use mesh_prism_frustum::frustum_tri_count;pub use mesh_prism_frustum::frustum_vertex_count;pub use mesh_prism_frustum::frustum_volume;pub use mesh_prism_frustum::validate_prism_frustum;pub use mesh_prism_frustum::PrismFrustum;pub use mesh_platonic_solid::build_platonic_solid;pub use mesh_platonic_solid::is_unit_sphere as platonic_is_unit_sphere;pub use mesh_platonic_solid::platonic_tri_count;pub use mesh_platonic_solid::platonic_vertex_count;pub use mesh_platonic_solid::validate_platonic;pub use mesh_platonic_solid::PlatonicKind;pub use mesh_platonic_solid::PlatonicSolid;pub use mesh_archimedean_solid::archimedean_tri_count;pub use mesh_archimedean_solid::archimedean_vertex_count;pub use mesh_archimedean_solid::build_archimedean_solid;pub use mesh_archimedean_solid::is_unit_sphere as archimedean_is_unit_sphere;pub use mesh_archimedean_solid::validate_archimedean;pub use mesh_archimedean_solid::ArchimedeanKind;pub use mesh_archimedean_solid::ArchimedeanSolid;pub use mesh_antiprism::antiprism_expected_tris;pub use mesh_antiprism::antiprism_tri_count;pub use mesh_antiprism::antiprism_vertex_count;pub use mesh_antiprism::build_antiprism;pub use mesh_antiprism::has_alternating_strip;pub use mesh_antiprism::validate_antiprism;pub use mesh_antiprism::Antiprism;pub use mesh_bipyramid::bipyramid_expected_tris;pub use mesh_bipyramid::bipyramid_surface_area;pub use mesh_bipyramid::bipyramid_tri_count;pub use mesh_bipyramid::bipyramid_vertex_count;pub use mesh_bipyramid::build_bipyramid;pub use mesh_bipyramid::validate_bipyramid;pub use mesh_bipyramid::Bipyramid;pub use mesh_trapezohedron::build_trapezohedron;pub use mesh_trapezohedron::trapezohedron_expected_tris;pub use mesh_trapezohedron::trapezohedron_surface_area;pub use mesh_trapezohedron::trapezohedron_tri_count;pub use mesh_trapezohedron::trapezohedron_vertex_count;pub use mesh_trapezohedron::validate_trapezohedron;pub use mesh_trapezohedron::Trapezohedron;pub use mesh_stellated_solid::build_stellated_solid;pub use mesh_stellated_solid::stellated_tri_count;pub use mesh_stellated_solid::stellated_vertex_count;pub use mesh_stellated_solid::stellations_protrude;pub use mesh_stellated_solid::validate_stellated;pub use mesh_stellated_solid::StellatedSolid;pub use mesh_stellated_solid::StellationBase;pub use mesh_crease_set::add_crease_set;pub use mesh_crease_set::add_edge_to_crease_set;pub use mesh_crease_set::find_crease_set;pub use mesh_crease_set::merge_crease_set_collections;pub use mesh_crease_set::new_crease_set_collection;pub use mesh_crease_set::total_crease_edges;pub use mesh_crease_set::validate_crease_sets;pub use mesh_crease_set::CreaseSet;pub use mesh_crease_set::CreaseSetCollection;pub use mesh_sharp_vertex::get_vertex_sharpness;pub use mesh_sharp_vertex::is_sharp_vertex as is_sharp_corner_vertex;pub use mesh_sharp_vertex::mark_sharp_vertex;pub use mesh_sharp_vertex::max_sharpness;pub use mesh_sharp_vertex::new_sharp_vertex_set;pub use mesh_sharp_vertex::sharp_vertex_count;pub use mesh_sharp_vertex::unmark_sharp_vertex;pub use mesh_sharp_vertex::SharpVertexSet;pub use mesh_custom_split_normals::clear_split_normals;pub use mesh_custom_split_normals::get_split_normal;pub use mesh_custom_split_normals::new_split_normal_layer;pub use mesh_custom_split_normals::set_split_normal;pub use mesh_custom_split_normals::split_normal_count;pub use mesh_custom_split_normals::validate_split_normals;pub use mesh_custom_split_normals::SplitNormal;pub use mesh_custom_split_normals::SplitNormalLayer;pub use mesh_normal_override::get_override_normal;pub use mesh_normal_override::new_normal_override_layer;pub use mesh_normal_override::override_count;pub use mesh_normal_override::remove_override;pub use mesh_normal_override::set_override_normal;pub use mesh_normal_override::validate_overrides;pub use mesh_normal_override::NormalOverrideLayer;pub use mesh_uv_pin::clear_pins;pub use mesh_uv_pin::get_pin_uv;pub use mesh_uv_pin::is_pinned;pub use mesh_uv_pin::new_uv_pin_set;pub use mesh_uv_pin::pin_count;pub use mesh_uv_pin::pin_vertex;pub use mesh_uv_pin::unpin_vertex;pub use mesh_uv_pin::UvPinSet;pub use mesh_uv_minimize_stretch::average_stretch;pub use mesh_uv_minimize_stretch::minimize_stretch;pub use mesh_uv_minimize_stretch::triangle_uv_stretch;pub use mesh_uv_minimize_stretch::StretchMinConfig;pub use mesh_uv_minimize_stretch::StretchMinResult;pub use mesh_uv_align_axis::align_to_axis;pub use mesh_uv_align_axis::dominant_angle_deg;pub use mesh_uv_align_axis::rotate_uv;pub use mesh_uv_align_axis::uv_bounding_box;pub use mesh_uv_align_axis::uv_centroid;pub use mesh_uv_align_axis::AlignAxis;pub use mesh_uv_align_axis::UvAlignResult;pub use mesh_uv_rotate_align::edge_is_horizontal;pub use mesh_uv_rotate_align::edge_uv_angle_deg;pub use mesh_uv_rotate_align::rotate_align_edge;pub use mesh_uv_rotate_align::rotate_island;pub use mesh_uv_rotate_align::UvRotateAlignResult;pub use mesh_uv_scale_to_bounds::scale_uvs_to_bounds;pub use mesh_uv_scale_to_bounds::scale_uvs_uniform;pub use mesh_uv_scale_to_bounds::uv_extents;pub use mesh_uv_scale_to_bounds::UvTargetBounds;pub use mesh_uv_copy_paste::clear_clipboard;pub use mesh_uv_copy_paste::clipboard_fits;pub use mesh_uv_copy_paste::clipboard_size;pub use mesh_uv_copy_paste::copy_uvs;pub use mesh_uv_copy_paste::new_uv_clipboard;pub use mesh_uv_copy_paste::paste_exact;pub use mesh_uv_copy_paste::paste_uvs;pub use mesh_uv_copy_paste::UvClipboard;pub use mesh_vertex_color_layer::add_vertex_color_layer;pub use mesh_vertex_color_layer::get_layer_mut;pub use mesh_vertex_color_layer::layer_average_color;pub use mesh_vertex_color_layer::layer_count as vertex_color_layer_count;pub use mesh_vertex_color_layer::new_vertex_color_layer_set;pub use mesh_vertex_color_layer::remove_vertex_color_layer;pub use mesh_vertex_color_layer::set_active_layer;pub use mesh_vertex_color_layer::VertexColorLayer;pub use mesh_vertex_color_layer::VertexColorLayerSet;pub use mesh_attribute_layer::add_attribute_layer;pub use mesh_attribute_layer::attribute_average;pub use mesh_attribute_layer::attribute_layer_count;pub use mesh_attribute_layer::get_attribute_layer;pub use mesh_attribute_layer::get_attribute_layer_mut;pub use mesh_attribute_layer::new_attribute_layer_set;pub use mesh_attribute_layer::remove_attribute_layer;pub use mesh_attribute_layer::validate_attribute_layers;pub use mesh_attribute_layer::AttrDomain;pub use mesh_attribute_layer::AttributeLayer;pub use mesh_attribute_layer::AttributeLayerSet;pub use mesh_custom_data::clear_custom_data;pub use mesh_custom_data::custom_entry_count;pub use mesh_custom_data::get_custom_entry;pub use mesh_custom_data::list_custom_keys;pub use mesh_custom_data::new_custom_data_block;pub use mesh_custom_data::remove_custom_entry;pub use mesh_custom_data::set_custom_entry;pub use mesh_custom_data::CustomDataBlock;pub use mesh_custom_data::CustomDataEntry;pub use mesh_custom_data::CustomDataValue;pub use mesh_property_layer::add_property_layer;pub use mesh_property_layer::get_property;pub use mesh_property_layer::new_property_layer_set;pub use mesh_property_layer::property_layer_count;pub use mesh_property_layer::property_min_max;pub use mesh_property_layer::remove_property_layer;pub use mesh_property_layer::reset_property_layer;pub use mesh_property_layer::set_property;pub use mesh_property_layer::PropertyLayer;pub use mesh_property_layer::PropertyLayerSet;pub use mesh_flag_layer::add_flag_layer;pub use mesh_flag_layer::clear_flags;pub use mesh_flag_layer::flag_layer_count;pub use mesh_flag_layer::flag_set_count;pub use mesh_flag_layer::get_flag;pub use mesh_flag_layer::invert_flags;pub use mesh_flag_layer::new_flag_layer_set;pub use mesh_flag_layer::set_flag;pub use mesh_flag_layer::FlagLayer;pub use mesh_flag_layer::FlagLayerSet;pub use mesh_slice_plane::classify_vertices as slice_classify_vertices;pub use mesh_slice_plane::count_triangles_per_side;pub use mesh_slice_plane::edge_plane_intersect as slice_edge_plane_intersect;pub use mesh_slice_plane::slice_mesh_with_plane;pub use mesh_slice_plane::SlicePlane as BoolSlicePlane;pub use mesh_slice_plane::SliceResult as BoolSliceResult;pub use mesh_intersect_ray::count_ray_intersections;pub use mesh_intersect_ray::intersect_ray_mesh;pub use mesh_intersect_ray::intersect_ray_mesh_all;pub use mesh_intersect_ray::ray_triangle_intersect as mti_ray_triangle_intersect;pub use mesh_intersect_ray::Ray as IntersectRay;pub use mesh_intersect_ray::RayHitResult;pub use mesh_closest_point_query::closest_point_on_triangle as query_closest_point_on_triangle;pub use mesh_closest_point_query::is_near_surface;pub use mesh_closest_point_query::query_closest_point;pub use mesh_closest_point_query::query_closest_within_radius;pub use mesh_closest_point_query::ClosestPointResult as MeshClosestPointResult;pub use mesh_centroid_query::center_mesh_at_centroid;pub use mesh_centroid_query::centroid_deviation;pub use mesh_centroid_query::surface_centroid;pub use mesh_centroid_query::vertex_centroid as mesh_vertex_centroid;pub use mesh_centroid_query::volume_centroid;pub use mesh_moment_of_inertia::add_inertia_tensors;pub use mesh_moment_of_inertia::mesh_inertia_tensor;pub use mesh_moment_of_inertia::parallel_axis_shift;pub use mesh_moment_of_inertia::scale_inertia_tensor;pub use mesh_moment_of_inertia::InertiaTensor as MeshInertiaTensor;pub use mesh_lattice_deform::ffd_apply_to_point;pub use mesh_lattice_deform::ffd_lattice_point_count;pub use mesh_lattice_deform::ffd_lattice_size;pub use mesh_lattice_deform::ffd_reset;pub use mesh_lattice_deform::ffd_set_control_point;pub use mesh_lattice_deform::new_ffd_lattice;pub use mesh_lattice_deform::FfdLattice as FfdLatticeNew;pub use mesh_solidify::new_solidify_params;pub use mesh_solidify::solidify_face_count;pub use mesh_solidify::solidify_flip_normal;pub use mesh_solidify::solidify_vert_count;pub use mesh_solidify::solidify_vertex as solidify_vertex_fn;pub use mesh_solidify::SolidifyParams;pub use mesh_bridge_edge_loops::bridge_face_count_bl;pub use mesh_bridge_edge_loops::bridge_loops_quads;pub use mesh_bridge_edge_loops::bridge_vertex_count_bl;pub use mesh_bridge_edge_loops::loop_centroid_bl;pub use mesh_bridge_edge_loops::loop_perimeter_bl;pub use mesh_bridge_edge_loops::new_bridge_edge_loop;pub use mesh_bridge_edge_loops::BridgeEdgeLoop;pub use mesh_screw_modifier::new_screw_params;pub use mesh_screw_modifier::screw_output_vertex_count;pub use mesh_screw_modifier::screw_total_angle_deg;pub use mesh_screw_modifier::screw_total_height;pub use mesh_screw_modifier::screw_transform_vertex;pub use mesh_screw_modifier::ScrewParams as ScrewModParams;pub use mesh_array_modifier::array_face_count;pub use mesh_array_modifier::array_instance_transform;pub use mesh_array_modifier::array_total_size;pub use mesh_array_modifier::array_vertex_count;pub use mesh_array_modifier::new_array_params;pub use mesh_array_modifier::ArrayParams;pub use mesh_bevel_modifier::bevel_edge_offset;pub use mesh_bevel_modifier::bevel_new_face_count;pub use mesh_bevel_modifier::bevel_new_vertex_count;pub use mesh_bevel_modifier::bevel_segment_point;pub use mesh_bevel_modifier::new_bevel_params;pub use mesh_bevel_modifier::BevelParams;pub use mesh_wireframe_modifier::new_wireframe_params;pub use mesh_wireframe_modifier::wireframe_edge_count as wireframe_mod_edge_count;pub use mesh_wireframe_modifier::wireframe_edge_tube_verts;pub use mesh_wireframe_modifier::wireframe_tube_length;pub use mesh_wireframe_modifier::wireframe_vertex_count as wireframe_mod_vertex_count;pub use mesh_wireframe_modifier::WireframeParams;pub use mesh_skin_modifier::new_skin_vertex;pub use mesh_skin_modifier::skin_cap_center;pub use mesh_skin_modifier::skin_segment_length;pub use mesh_skin_modifier::skin_segment_verts;pub use mesh_skin_modifier::skin_total_volume;pub use mesh_skin_modifier::SkinVertexNew;pub use mesh_mask_modifier::mask_apply;pub use mesh_mask_modifier::mask_count_visible;pub use mesh_mask_modifier::mask_invert;pub use mesh_mask_modifier::mask_keep_vertex;pub use mesh_mask_modifier::new_mask_params;pub use mesh_mask_modifier::MaskParams;pub use mesh_tube_deform::new_tube_path;pub use mesh_tube_deform::tube_deform_vertex;pub use mesh_tube_deform::tube_path_at;pub use mesh_tube_deform::tube_path_length;pub use mesh_tube_deform::tube_point_count;pub use mesh_tube_deform::tube_radius_at;pub use mesh_tube_deform::TubePath;pub use mesh_curve_to_mesh::curve_length;pub use mesh_curve_to_mesh::curve_segment_ring;pub use mesh_curve_to_mesh::curve_to_mesh_face_count;pub use mesh_curve_to_mesh::curve_to_mesh_vertex_count;pub use mesh_curve_to_mesh::new_curve_mesh_params;pub use mesh_curve_to_mesh::CurveMeshParams;pub use mesh_spin::new_spin_params;pub use mesh_spin::spin_face_count;pub use mesh_spin::spin_is_closed;pub use mesh_spin::spin_vertex;pub use mesh_spin::spin_vertex_count;pub use mesh_spin::SpinParams;pub use mesh_decimate_modifier::decimate_collapse_count;pub use mesh_decimate_modifier::decimate_priority;pub use mesh_decimate_modifier::decimate_ratio_clamp;pub use mesh_decimate_modifier::decimate_target_face_count;pub use mesh_decimate_modifier::new_decimate_params;pub use mesh_decimate_modifier::DecimateParams;pub use mesh_mirror_modifier::mirror_copy_count;pub use mesh_mirror_modifier::mirror_flip_normal as mirror_mod_flip_normal;pub use mesh_mirror_modifier::mirror_should_merge;pub use mesh_mirror_modifier::mirror_vertex as mirror_mod_vertex;pub use mesh_mirror_modifier::new_mirror_params;pub use mesh_mirror_modifier::MirrorParams as MirrorModParams;pub use mesh_stroke_extrude::new_stroke_point;pub use mesh_stroke_extrude::stroke_area;pub use mesh_stroke_extrude::stroke_extrude_quad;pub use mesh_stroke_extrude::stroke_face_count as stroke_extrude_face_count;pub use mesh_stroke_extrude::stroke_total_length;pub use mesh_stroke_extrude::stroke_vertex_count as stroke_extrude_vertex_count;pub use mesh_stroke_extrude::StrokePoint;pub use mesh_thicken_normals::thicken_average_normal;pub use mesh_thicken_normals::thicken_boundary_vertex;pub use mesh_thicken_normals::thicken_is_normalized;pub use mesh_thicken_normals::thicken_mesh_vertices;pub use mesh_thicken_normals::thicken_vertex;pub use mesh_bend_modifier::bend_angle_at;pub use mesh_bend_modifier::bend_curvature;pub use mesh_bend_modifier::bend_is_unlimited;pub use mesh_bend_modifier::bend_vertex;pub use mesh_bend_modifier::new_bend_params;pub use mesh_bend_modifier::BendParams;pub use mesh_taper_modifier::new_taper_params;pub use mesh_taper_modifier::taper_is_uniform;pub use mesh_taper_modifier::taper_scale_at;pub use mesh_taper_modifier::taper_vertex;pub use mesh_taper_modifier::taper_volume_ratio;pub use mesh_taper_modifier::TaperParams;pub use mesh_twist_modifier::new_twist_params;pub use mesh_twist_modifier::twist_angle_at;pub use mesh_twist_modifier::twist_is_zero;pub use mesh_twist_modifier::twist_vertex;pub use mesh_twist_modifier::TwistParams;pub use mesh_shear_modifier::new_shear_params;pub use mesh_shear_modifier::shear_area_ratio;pub use mesh_shear_modifier::shear_is_identity;pub use mesh_shear_modifier::shear_matrix_2x2;pub use mesh_shear_modifier::shear_vertex;pub use mesh_shear_modifier::ShearParams;pub use mesh_cast_modifier::cast_blend;pub use mesh_cast_modifier::cast_target_cylinder;pub use mesh_cast_modifier::cast_target_sphere;pub use mesh_cast_modifier::cast_vertex;pub use mesh_cast_modifier::new_cast_sphere;pub use mesh_cast_modifier::CastParams;pub use mesh_smooth_modifier::smooth_cotangent_weight;pub use mesh_smooth_modifier::smooth_mesh_pass;pub use mesh_smooth_modifier::smooth_passes;pub use mesh_smooth_modifier::smooth_vertex_laplacian;pub use mesh_displace_modifier::displace_along_axis;pub use mesh_displace_modifier::displace_along_normal;pub use mesh_displace_modifier::displace_midlevel_offset;pub use mesh_displace_modifier::displace_vertex_new as displace_vertex_params;pub use mesh_displace_modifier::new_displace_params;pub use mesh_displace_modifier::DisplaceParams;pub use mesh_warp_modifier::new_warp_params;pub use mesh_warp_modifier::warp_falloff_linear;pub use mesh_warp_modifier::warp_falloff_smooth;pub use mesh_warp_modifier::warp_influence;pub use mesh_warp_modifier::warp_vertex_new as warp_vertex_params;pub use mesh_warp_modifier::WarpParams;pub use mesh_transfer_weights::new_weight_map as new_mesh_weight_map;pub use mesh_transfer_weights::weight_blend;pub use mesh_transfer_weights::weight_get;pub use mesh_transfer_weights::weight_normalize;pub use mesh_transfer_weights::weight_set;pub use mesh_transfer_weights::weight_transfer_nearest;pub use mesh_transfer_weights::WeightMap as MeshWeightMap;pub use mesh_proximity_deform::new_proximity_deformer;pub use mesh_proximity_deform::proximity_count_influenced;pub use mesh_proximity_deform::proximity_deform_vertex;pub use mesh_proximity_deform::proximity_influence;pub use mesh_proximity_deform::proximity_nearest_distance;pub use mesh_proximity_deform::ProximityDeformer;pub use mesh_seam_flatten::new_uv_seam as new_mesh_uv_seam;pub use mesh_seam_flatten::seam_add_pair;pub use mesh_seam_flatten::seam_boundary_length as seam_flatten_boundary_length;pub use mesh_seam_flatten::seam_contains_vertex;pub use mesh_seam_flatten::seam_flatten_uv;pub use mesh_seam_flatten::seam_pair_count;pub use mesh_seam_flatten::UvSeam as MeshUvSeam;pub use mesh_hole_detect::boundary_add_loop;pub use mesh_hole_detect::boundary_hole_count;pub use mesh_hole_detect::boundary_total_vertices;pub use mesh_hole_detect::detect_boundary_edges;pub use mesh_hole_detect::is_closed_mesh as mesh_hole_is_closed;pub use mesh_hole_detect::new_mesh_boundary;pub use mesh_hole_detect::MeshBoundary;pub use mesh_data_transfer::new_vertex_data;pub use mesh_data_transfer::transfer_nearest_normal;pub use mesh_data_transfer::transfer_nearest_uv;pub use mesh_data_transfer::vertex_data_count;pub use mesh_data_transfer::vertex_nearest_index;pub use mesh_data_transfer::VertexData;pub use mesh_fiber_orientation::fiber_anisotropy_index;pub use mesh_fiber_orientation::fiber_count;pub use mesh_fiber_orientation::fiber_get;pub use mesh_fiber_orientation::fiber_mean_coherence;pub use mesh_fiber_orientation::fiber_set;pub use mesh_fiber_orientation::new_fiber_field;pub use mesh_fiber_orientation::FiberField;pub use mesh_ambient_occlusion::bake_ambient_occlusion as bake_ao_full;pub use mesh_ambient_occlusion::ao_estimate;pub use mesh_ambient_occlusion::ao_params_is_valid;pub use mesh_ambient_occlusion::ao_sample_hemisphere;pub use mesh_ambient_occlusion::ao_to_color;pub use mesh_ambient_occlusion::new_ao_params;pub use mesh_ambient_occlusion::AoBvh;pub use mesh_ambient_occlusion::AoConfig;pub use mesh_ambient_occlusion::AoParams;pub use mesh_ambient_occlusion::Lcg as AoLcg;pub use mesh_ambient_occlusion::MeshBuffers as AoMeshBuffers;pub use mesh_thickness_map::new_thickness_map;pub use mesh_thickness_map::thickness_get;pub use mesh_thickness_map::thickness_max;pub use mesh_thickness_map::thickness_mean;pub use mesh_thickness_map::thickness_set;pub use mesh_thickness_map::thickness_to_color;pub use mesh_thickness_map::ThicknessMap as MeshThicknessMap;pub use mesh_cavity_map::cavity_get;pub use mesh_cavity_map::cavity_is_cavity;pub use mesh_cavity_map::cavity_is_convex;pub use mesh_cavity_map::cavity_mean;pub use mesh_cavity_map::cavity_set;pub use mesh_cavity_map::cavity_to_color;pub use mesh_cavity_map::new_cavity_map;pub use mesh_cavity_map::CavityMap;pub use mesh_curvature_map::curv_gaussian_to_color;pub use mesh_curvature_map::curv_get_gaussian;pub use mesh_curvature_map::curv_get_mean;pub use mesh_curvature_map::curv_mean_to_color;pub use mesh_curvature_map::curv_set_gaussian;pub use mesh_curvature_map::curv_set_mean;pub use mesh_curvature_map::new_curvature_map;pub use mesh_curvature_map::CurvatureMap as MeshCurvatureMap;pub use mesh_bent_normal::bent_normal_ao;pub use mesh_bent_normal::bent_normal_count;pub use mesh_bent_normal::bent_normal_get;pub use mesh_bent_normal::bent_normal_set;pub use mesh_bent_normal::bent_normal_to_color;pub use mesh_bent_normal::new_bent_normal_map;pub use mesh_bent_normal::BentNormalMap;pub use mesh_edge_flow_field::edge_flow_field_curl_magnitude;pub use mesh_edge_flow_field::edge_flow_field_divergence;pub use mesh_edge_flow_field::edge_flow_field_get;pub use mesh_edge_flow_field::edge_flow_field_mean_speed;pub use mesh_edge_flow_field::edge_flow_field_set;pub use mesh_edge_flow_field::new_edge_flow_field;pub use mesh_edge_flow_field::EdgeFlowField;pub use mesh_retopo_guide::new_retopo_stroke;pub use mesh_retopo_guide::stroke_direction;pub use mesh_retopo_guide::stroke_length;pub use mesh_retopo_guide::stroke_point_count;pub use mesh_retopo_guide::stroke_resample;pub use mesh_retopo_guide::stroke_snap_to_surface;pub use mesh_retopo_guide::RetopoStroke;pub use mesh_symmetry_map::new_symmetry_map;pub use mesh_symmetry_map::sym_add_pair;pub use mesh_symmetry_map::sym_find_mirror;pub use mesh_symmetry_map::sym_is_symmetric_position;pub use mesh_symmetry_map::sym_mirror_position;pub use mesh_symmetry_map::sym_pair_count;pub use mesh_symmetry_map::SymmetryMap;pub use mesh_pose_space::new_pose_key;pub use mesh_pose_space::pose_apply;pub use mesh_pose_space::pose_best_key;pub use mesh_pose_space::pose_key_count;pub use mesh_pose_space::pose_weight;pub use mesh_pose_space::PoseKey;pub use mesh_corrective_shape::corrective_apply;pub use mesh_corrective_shape::corrective_is_active;pub use mesh_corrective_shape::corrective_peak_weight;pub use mesh_corrective_shape::corrective_weight;pub use mesh_corrective_shape::new_corrective_shape;pub use mesh_corrective_shape::CorrectiveShape;pub use mesh_wrinkle_map::new_wrinkle_driver;pub use mesh_wrinkle_map::wrinkle_factor;pub use mesh_wrinkle_map::wrinkle_mean_weight;pub use mesh_wrinkle_map::wrinkle_peak_count;pub use mesh_wrinkle_map::wrinkle_weights_at;pub use mesh_wrinkle_map::WrinkleDriver;pub use mesh_jiggle::jiggle_impulse;pub use mesh_jiggle::jiggle_is_settled;pub use mesh_jiggle::jiggle_offset;pub use mesh_jiggle::jiggle_set_target;pub use mesh_jiggle::jiggle_step;pub use mesh_jiggle::new_jiggle_vertex;pub use mesh_jiggle::JiggleVertex;pub use mesh_flow_map::flow_map_get;pub use mesh_flow_map::flow_map_mean_speed;pub use mesh_flow_map::flow_map_normalize_dir;pub use mesh_flow_map::flow_map_set;pub use mesh_flow_map::flow_map_to_color;pub use mesh_flow_map::new_flow_map;pub use mesh_flow_map::FlowMap;pub use mesh_stress_lines::new_stress_line;pub use mesh_stress_lines::stress_line_color;pub use mesh_stress_lines::stress_line_is_critical;pub use mesh_stress_lines::stress_line_length;pub use mesh_stress_lines::stress_line_point_count;pub use mesh_stress_lines::stress_line_push;pub use mesh_stress_lines::StressLine;pub use mesh_curvature_lines::curvline_anisotropy;pub use mesh_curvature_lines::curvline_color;pub use mesh_curvature_lines::curvline_length;pub use mesh_curvature_lines::curvline_point_count;pub use mesh_curvature_lines::curvline_push;pub use mesh_curvature_lines::new_curvature_line;pub use mesh_curvature_lines::CurvatureLine;pub use mesh_poke_faces::poke_center;pub use mesh_poke_faces::poke_face;pub use mesh_poke_faces::poke_face_area;pub use mesh_poke_faces::poke_triangle_count as poke_face_triangle_count;pub use mesh_poke_faces::poke_vertex_count as poke_face_vertex_count;pub use mesh_poke_faces::PokeResult;pub use mesh_inset_faces::default_inset_config;pub use mesh_inset_faces::inset_centroid;pub use mesh_inset_faces::inset_creates_valid_face;pub use mesh_inset_faces::inset_face;pub use mesh_inset_faces::inset_face_center;pub use mesh_inset_faces::inset_face_thickness;pub use mesh_inset_faces::inset_faces as inset_faces_config;pub use mesh_inset_faces::inset_individual_faces;pub use mesh_inset_faces::inset_result_face_count;pub use mesh_inset_faces::inset_validate_config;pub use mesh_inset_faces::InsetConfig;pub use mesh_inset_faces::InsetResult;pub use mesh_bisect::bisect_classify_vertex;pub use mesh_bisect::bisect_count_above;pub use mesh_bisect::bisect_count_below;pub use mesh_bisect::bisect_edge_intersection;pub use mesh_bisect::bisect_lerp as bisect_lerp3;pub use mesh_bisect::new_bisect_plane;pub use mesh_bisect::BisectPlane;pub use mesh_intersect_line::line_segment_triangle_intersect;pub use mesh_intersect_line::ray_mesh_intersect_count;pub use mesh_intersect_line::ray_point_at;pub use mesh_intersect_line::ray_triangle_intersect as ray_tri_intersect;pub use mesh_select_by_angle::angle_between_normals_deg;pub use mesh_select_by_angle::face_normal_3;pub use mesh_select_by_angle::select_faces_by_angle;pub use mesh_select_by_angle::select_flat_faces;pub use mesh_select_linked::build_face_adjacency as linked_build_adjacency;pub use mesh_select_linked::count_islands;pub use mesh_select_linked::select_linked_faces;pub use mesh_select_linked::select_linked_vertices;pub use mesh_path_cut::new_path_cut;pub use mesh_path_cut::path_cut_edges;pub use mesh_path_cut::path_cut_is_closed;pub use mesh_path_cut::path_cut_length;pub use mesh_path_cut::path_cut_vertex_count;pub use mesh_path_cut::path_shortest;pub use mesh_path_cut::PathCut;pub use mesh_edge_slide::edge_direction;pub use mesh_edge_slide::edge_length as edge_slide_length;pub use mesh_edge_slide::edge_slide_edge;pub use mesh_edge_slide::edge_slide_midpoint;pub use mesh_edge_slide::edge_slide_vert;pub use mesh_rip_vertices::rip_face_count_new;pub use mesh_rip_vertices::rip_is_valid_gap;pub use mesh_rip_vertices::rip_seam_length;pub use mesh_rip_vertices::rip_vertex;pub use mesh_rip_vertices::rip_vertex_count_new;pub use mesh_rip_vertices::RipResult;pub use mesh_merge_by_distance::merge_apply_to_faces;pub use mesh_merge_by_distance::merge_by_distance;pub use mesh_merge_by_distance::merge_count_unique;pub use mesh_merge_by_distance::merge_remove_degenerate;pub use mesh_merge_by_distance::merge_weld_threshold;pub use mesh_polygon_fill::polygon_area_3d;pub use mesh_polygon_fill::polygon_is_planar;pub use mesh_polygon_fill::polygon_perimeter;pub use mesh_polygon_fill::polygon_vertex_count as polygon_fill_vertex_count;pub use mesh_polygon_fill::triangulate_polygon_3d;pub use mesh_knife_cut::cut_edge_count;pub use mesh_knife_cut::cut_vertex_count;pub use mesh_knife_cut::knife_add_point;pub use mesh_knife_cut::knife_cut;pub use mesh_knife_cut::knife_cut_length as knife_cut_polyline_length;pub use mesh_knife_cut::knife_cut_modified;pub use mesh_knife_cut::knife_is_closed;pub use mesh_knife_cut::knife_point_count;pub use mesh_knife_cut::knife_project_to_face;pub use mesh_knife_cut::new_knife_cut;pub use mesh_knife_cut::KnifeCut;pub use mesh_knife_cut::KnifeCutResult;pub use mesh_knife_cut::KnifeLine;pub use mesh_vertex_slide::nearest_neighbor as vertex_nearest_neighbor;pub use mesh_vertex_slide::slide_to_json;pub use mesh_vertex_slide::slide_vertex;pub use mesh_vertex_slide::slide_vertices;pub use mesh_vertex_slide::vertex_distance;pub use mesh_vertex_slide::vertex_edge_direction;pub use mesh_vertex_slide::vertex_slide_clamp;pub use mesh_vertex_slide::vertex_slide_offset;pub use mesh_vertex_slide::vertex_slide_position;pub use mesh_vertex_slide::vertex_slide_toward_nearest;pub use mesh_vertex_slide::VertexSlideResult;pub use mesh_catenary::catenary_to_polyline;pub use mesh_catenary::new_catenary;pub use mesh_helix::helix_length;pub use mesh_helix::helix_point;pub use mesh_helix::helix_point_count;pub use mesh_helix::helix_to_polyline;pub use mesh_helix::new_helix;pub use mesh_cylinder_gen::cylinder_face_count as cylinder_tri_face_count;pub use mesh_cylinder_gen::cylinder_is_cone;pub use mesh_cylinder_gen::cylinder_vertex;pub use mesh_cylinder_gen::new_cylinder;pub use mesh_cylinder_gen::CylinderParams;pub use mesh_capsule_gen::capsule_face_count as capsule_tri_face_count;pub use mesh_capsule_gen::capsule_surface_area;pub use mesh_capsule_gen::new_capsule;pub use mesh_capsule_gen::CapsuleParams;pub use mesh_torus::new_torus;pub use mesh_torus::torus_face_count as torus_new_face_count;pub use mesh_torus::torus_surface_area as torus_gen_surface_area;pub use mesh_torus::torus_vertex;pub use mesh_torus::torus_vertex_count as torus_new_vertex_count;pub use mesh_torus::torus_volume as torus_gen_volume;pub use mesh_torus::TorusParams;pub use mesh_sphere_gen::icosphere_vertex_count as icosphere_vert_count_gen;pub use mesh_sphere_gen::new_sphere_params;pub use mesh_sphere_gen::sphere_surface_area as sphere_gen_surface_area;pub use mesh_sphere_gen::uv_sphere_face_count;pub use mesh_sphere_gen::uv_sphere_vertex;pub use mesh_sphere_gen::uv_sphere_vertex_count as uv_sphere_gen_vertex_count;pub use mesh_sphere_gen::SphereParams;pub use mesh_plane_gen::new_plane;pub use mesh_plane_gen::plane_area as plane_gen_area;pub use mesh_plane_gen::plane_face_count as plane_tri_face_count;pub use mesh_plane_gen::plane_uv;pub use mesh_plane_gen::plane_vertex;pub use mesh_plane_gen::plane_vertex_count as plane_gen_vertex_count;pub use mesh_plane_gen::PlaneParams;pub use mesh_icosphere_gen::icosahedron_faces as icosahedron_faces_gen;pub use mesh_icosphere_gen::icosahedron_vertices as icosahedron_verts_gen;pub use mesh_icosphere_gen::icosphere_build;pub use mesh_icosphere_gen::icosphere_subdivide;pub use mesh_icosphere_gen::icosphere_vertex_count as icosphere_vertex_count_gen;pub use mesh_arrow_gen::arrow_face_count as arrow_gen_face_count;pub use mesh_arrow_gen::arrow_tip_position;pub use mesh_arrow_gen::arrow_total_length;pub use mesh_arrow_gen::arrow_vertex_count as arrow_gen_vertex_count;pub use mesh_arrow_gen::new_arrow;pub use mesh_arrow_gen::ArrowParams;pub use mesh_grid_gen::grid_bounds as grid_3d_bounds;pub use mesh_grid_gen::grid_cell_count;pub use mesh_grid_gen::grid_edge_count;pub use mesh_grid_gen::grid_vertex;pub use mesh_grid_gen::grid_vertex_count as grid_3d_vertex_count;pub use mesh_grid_gen::new_grid_params_3d;pub use mesh_grid_gen::GridParams3d;pub use mesh_annulus_gen::annulus_area;pub use mesh_annulus_gen::annulus_face_count as annulus_gen_face_count;pub use mesh_annulus_gen::annulus_vertex;pub use mesh_annulus_gen::annulus_vertex_count as annulus_gen_vertex_count;pub use mesh_annulus_gen::new_annulus;pub use mesh_annulus_gen::AnnulusParams;pub use mesh_tetrahedron_gen::tetrahedron_circumradius;pub use mesh_tetrahedron_gen::tetrahedron_edge_length;pub use mesh_tetrahedron_gen::tetrahedron_faces;pub use mesh_tetrahedron_gen::tetrahedron_surface_area;pub use mesh_tetrahedron_gen::tetrahedron_vertices;pub use mesh_tetrahedron_gen::tetrahedron_volume;pub use mesh_box_gen::box_diagonal;pub use mesh_box_gen::box_face_count as box_gen_face_count;pub use mesh_box_gen::box_surface_area;pub use mesh_box_gen::box_vertex_count as box_gen_vertex_count;pub use mesh_box_gen::box_volume;pub use mesh_box_gen::new_box_mesh;pub use mesh_box_gen::BoxParams;pub use mesh_fibonacci_sphere::fibonacci_coverage_estimate;pub use mesh_fibonacci_sphere::fibonacci_min_angle;pub use mesh_fibonacci_sphere::fibonacci_sphere;pub use mesh_fibonacci_sphere::fibonacci_sphere_point;pub use mesh_terrain_gen::new_terrain;pub use mesh_terrain_gen::terrain_face_count as terrain_gen_face_count;pub use mesh_terrain_gen::terrain_height_fbm;pub use mesh_terrain_gen::terrain_vertex;pub use mesh_terrain_gen::terrain_vertex_count as terrain_gen_vertex_count;pub use mesh_terrain_gen::TerrainParams as TerrainGenParams;pub use mesh_fractal_gen::fractal_dimension_estimate;pub use mesh_fractal_gen::koch_point_count;pub use mesh_fractal_gen::koch_snowflake_points;pub use mesh_fractal_gen::mandelbrot_escape_time;pub use mesh_fractal_gen::sierpinski_triangle_centroids;pub use mesh_dual_contouring::dc_triangle_count_dc;pub use mesh_dual_contouring::dc_vertex_count_dc;pub use mesh_dual_contouring::dual_contour_dc;pub use mesh_dual_contouring::qef_dc_add_plane;pub use mesh_dual_contouring::qef_dc_error;pub use mesh_dual_contouring::qef_dc_solve;pub use mesh_dual_contouring::DualContourDcResult;pub use mesh_dual_contouring::QefDc;pub use mesh_mean_curvature_flow::mcf_step;pub use mesh_mean_curvature_flow::mcf_vertex_count;pub use mesh_mean_curvature_flow::mean_curvature_flow;pub use mesh_mean_curvature_flow::McfConfig;pub use mesh_mean_curvature_flow::McfResult;pub use mesh_adaptive_subdivision::adapt_subdiv_face_count;pub use mesh_adaptive_subdivision::adapt_subdiv_vertex_count;pub use mesh_adaptive_subdivision::adapt_subdivide_step;pub use mesh_adaptive_subdivision::adaptive_subdivision;pub use mesh_adaptive_subdivision::AdaptSubdivConfig;pub use mesh_adaptive_subdivision::AdaptSubdivResult;pub use mesh_sharp_feature_preserve::detect_sharp_features as detect_sharp_features_pres;pub use mesh_sharp_feature_preserve::is_sharp_corner;pub use mesh_sharp_feature_preserve::sharp_feature_corner_count;pub use mesh_sharp_feature_preserve::sharp_feature_edge_count as sharp_feature_edge_count_pres;pub use mesh_sharp_feature_preserve::sharp_feature_max_angle;pub use mesh_sharp_feature_preserve::SharpFeatureCorner;pub use mesh_sharp_feature_preserve::SharpFeatureEdge as SharpFeatureEdgePres;pub use mesh_sharp_feature_preserve::SharpFeatureResult as SharpFeatureResultPres;pub use mesh_qem_simplify::build_vertex_quadrics;pub use mesh_qem_simplify::edge_collapse_cost_qem;pub use mesh_qem_simplify::qem_face_count;pub use mesh_qem_simplify::qem_simplify;pub use mesh_qem_simplify::qem_vertex_count;pub use mesh_qem_simplify::QemConfig;pub use mesh_qem_simplify::QemResult;pub use mesh_qem_simplify::Quadric as QemQuadric;pub use mesh_loop_detection::classify_loop;pub use mesh_loop_detection::closed_loop_count;pub use mesh_loop_detection::detect_boundary_loops_ld;pub use mesh_loop_detection::loop_count_ld;pub use mesh_loop_detection::total_loop_perimeter;pub use mesh_loop_detection::BoundaryLoop;pub use mesh_loop_detection::LoopClass;pub use mesh_loop_detection::LoopDetectResult;pub use mesh_patch_sew::patch_sew_indices_valid;pub use mesh_patch_sew::patch_sew_seam_pairs;pub use mesh_patch_sew::patch_sew_triangle_count;pub use mesh_patch_sew::patch_sew_vertex_count;pub use mesh_patch_sew::sew_patches;pub use mesh_patch_sew::PatchSewConfig;pub use mesh_patch_sew::PatchSewResult;pub use mesh_genus_compute::compute_genus;pub use mesh_genus_compute::count_boundary_loops_genus;pub use mesh_genus_compute::count_unique_edges;pub use mesh_genus_compute::euler_char;pub use mesh_genus_compute::genus_value;pub use mesh_genus_compute::GenusResult;pub use mesh_sphere_map::project_to_sphere_uv;pub use mesh_sphere_map::sphere_map;pub use mesh_sphere_map::sphere_map_avg_u;pub use mesh_sphere_map::sphere_map_uv_count;pub use mesh_sphere_map::sphere_map_uvs_in_range;pub use mesh_sphere_map::SphereMapResult;pub use mesh_cotangent_weights::build_cotangent_weights;pub use mesh_cotangent_weights::cot_angle_at;pub use mesh_cotangent_weights::cot_avg_vertex_area;pub use mesh_cotangent_weights::cot_total_weight;pub use mesh_cotangent_weights::cot_weight_count;pub use mesh_cotangent_weights::cot_weights_nonneg;pub use mesh_cotangent_weights::CotWeight;pub use mesh_cotangent_weights::CotWeightResult;pub use mesh_principal_curvature::avg_gaussian_curvature;pub use mesh_principal_curvature::avg_mean_curvature;pub use mesh_principal_curvature::compute_principal_curvatures;pub use mesh_principal_curvature::max_k1;pub use mesh_principal_curvature::PrincipalCurvature;pub use mesh_anisotropic_smooth::aniso_avg_displacement;pub use mesh_anisotropic_smooth::aniso_smooth_step;pub use mesh_anisotropic_smooth::aniso_vertex_count;pub use mesh_anisotropic_smooth::anisotropic_smooth;pub use mesh_anisotropic_smooth::AnisoSmoothConfig;pub use mesh_anisotropic_smooth::AnisoSmoothResult;pub use mesh_self_intersect::detect_self_intersections;pub use mesh_self_intersect::intersecting_faces;pub use mesh_self_intersect::intersection_face_fraction;pub use mesh_self_intersect::intersection_pair_count;pub use mesh_self_intersect::is_self_intersection_free;pub use mesh_self_intersect::IntersectingPair;pub use mesh_self_intersect::SelfIntersectResult;pub use mesh_harmonic_map::build_adjacency as harmonic_build_adjacency;pub use mesh_harmonic_map::harmonic_map;pub use mesh_harmonic_map::harmonic_map_vertex_count;pub use mesh_harmonic_map::map_boundary_to_circle as harmonic_map_boundary_to_circle;pub use mesh_harmonic_map::uv_area_ratio;pub use mesh_harmonic_map::HarmonicMapResult;pub use mesh_displacement_map::dm_apply_to_vertex;pub use mesh_displacement_map::dm_avg_displacement;pub use mesh_displacement_map::dm_get;pub use mesh_displacement_map::dm_max_displacement;pub use mesh_displacement_map::dm_set;pub use mesh_displacement_map::new_displacement_map;pub use mesh_displacement_map::DisplacementMap;pub use mesh_cage_lattice::apply_lattice_deform;pub use mesh_cage_lattice::bend_lattice;pub use mesh_cage_lattice::bernstein as lattice_bernstein;pub use mesh_cage_lattice::control_point_count as cage_control_point_count;pub use mesh_cage_lattice::evaluate_ffd;pub use mesh_cage_lattice::lattice_deformed_bounds;pub use mesh_cage_lattice::lattice_volume;pub use mesh_cage_lattice::move_control_point;pub use mesh_cage_lattice::new_lattice_cage;pub use mesh_cage_lattice::reset_lattice;pub use mesh_cage_lattice::twist_lattice;pub use mesh_cage_lattice::validate_lattice;pub use mesh_cage_lattice::world_to_lattice_params;pub use mesh_cage_lattice::LatticeCage;pub use mesh_cage_lattice::LatticeCageResult;pub use mesh_tweak_tool::apply_tweak;pub use mesh_tweak_tool::average_displacement as tweak_average_displacement;pub use mesh_tweak_tool::clamp_tweak_result;pub use mesh_tweak_tool::compute_soft_weights;pub use mesh_tweak_tool::count_selected as tweak_count_selected;pub use mesh_tweak_tool::default_tweak_params;pub use mesh_tweak_tool::scale_tweak_delta;pub use mesh_tweak_tool::soft_weight;pub use mesh_tweak_tool::undo_tweak;pub use mesh_tweak_tool::SoftFalloff;pub use mesh_tweak_tool::TweakParams;pub use mesh_tweak_tool::TweakResult;pub use mesh_relax_tool::build_adjacency as relax_build_adjacency;pub use mesh_relax_tool::displacement_magnitudes;pub use mesh_relax_tool::laplacian_step as relax_tool_laplacian_step;pub use mesh_relax_tool::mean_displacement as relax_mean_displacement;pub use mesh_relax_tool::no_pins;pub use mesh_relax_tool::pin_isolated;pub use mesh_relax_tool::relax_in_sphere;pub use mesh_relax_tool::relax_mesh as relax_tool_mesh;pub use mesh_relax_tool::taubin_relax;pub use mesh_relax_tool::RelaxResult as RelaxToolResult;pub use mesh_inflate_tool::average_normal as inflate_average_normal;pub use mesh_inflate_tool::clamp_inflate_amount;pub use mesh_inflate_tool::compute_vertex_normals as inflate_compute_vertex_normals;pub use mesh_inflate_tool::deflate_mesh;pub use mesh_inflate_tool::inflate_mesh as inflate_tool_mesh;pub use mesh_inflate_tool::inflate_to_target_offset;pub use mesh_inflate_tool::inflate_uniform;pub use mesh_inflate_tool::inflate_with_weight_map;pub use mesh_inflate_tool::InflateResult;pub use mesh_pinch_tool::affected_centroid;pub use mesh_pinch_tool::apply_expand;pub use mesh_pinch_tool::apply_pinch;pub use mesh_pinch_tool::count_in_radius;pub use mesh_pinch_tool::default_pinch_strength;pub use mesh_pinch_tool::max_pinch_displacement;pub use mesh_pinch_tool::pinch_steps;pub use mesh_pinch_tool::pinch_to_line;pub use mesh_pinch_tool::PinchResult;pub use mesh_crease_tool::auto_crease_by_dihedral;pub use mesh_crease_tool::avg_sharpness;pub use mesh_crease_tool::clear_creases;pub use mesh_crease_tool::crease_count as crease_tool_count;pub use mesh_crease_tool::get_crease;pub use mesh_crease_tool::list_creases;pub use mesh_crease_tool::max_sharpness as crease_max_sharpness;pub use mesh_crease_tool::new_crease_tool;pub use mesh_crease_tool::remove_crease;pub use mesh_crease_tool::scale_creases;pub use mesh_crease_tool::set_crease;pub use mesh_crease_tool::CreaseTool;pub use mesh_crease_tool::EdgeKey as CreaseToolEdgeKey;pub use mesh_bridge_tool::align_loops_twist;pub use mesh_bridge_tool::bridge_loops as bridge_two_loops;pub use mesh_bridge_tool::bridge_new_vertex_count;pub use mesh_bridge_tool::bridge_quad_estimate;pub use mesh_bridge_tool::bridge_total_length;pub use mesh_bridge_tool::loop_centroid as bridge_loop_centroid;pub use mesh_bridge_tool::loops_compatible;pub use mesh_bridge_tool::make_bridge_loop;pub use mesh_bridge_tool::BridgeLoop;pub use mesh_bridge_tool::BridgeToolConfig;pub use mesh_bridge_tool::BridgeToolResult;pub use mesh_fillet_edge::apply_edge_fillet;pub use mesh_fillet_edge::arc_points as fillet_arc_points;pub use mesh_fillet_edge::default_fillet_tool_config;pub use mesh_fillet_edge::fillet_arc_length;pub use mesh_fillet_edge::fillet_edge_simple;pub use mesh_fillet_edge::fillet_radius_from_chamfer;pub use mesh_fillet_edge::fillet_vertex_estimate;pub use mesh_fillet_edge::validate_fillet_config;pub use mesh_fillet_edge::FilletToolConfig;pub use mesh_fillet_edge::FilletToolResult;pub use mesh_chamfer_edge::chamfer_edges as chamfer_mesh_edges;pub use mesh_chamfer_edge::chamfer_from_bevel_width;pub use mesh_chamfer_edge::chamfer_offset_points;pub use mesh_chamfer_edge::chamfer_strip;pub use mesh_chamfer_edge::chamfer_vertex_estimate;pub use mesh_chamfer_edge::default_chamfer_config;pub use mesh_chamfer_edge::scale_chamfer_result;pub use mesh_chamfer_edge::validate_chamfer_config;pub use mesh_chamfer_edge::ChamferToolConfig;pub use mesh_chamfer_edge::ChamferToolResult;pub use mesh_bevel_vertex::bevel_at_factor;pub use mesh_bevel_vertex::bevel_centroid as bevel_vert_centroid;pub use mesh_bevel_vertex::bevel_polygon_area_2d;pub use mesh_bevel_vertex::bevel_vertex_estimate;pub use mesh_bevel_vertex::bevel_vertex_positions;pub use mesh_bevel_vertex::bevel_vertices as apply_bevel_vertices;pub use mesh_bevel_vertex::default_bevel_amount;pub use mesh_bevel_vertex::validate_bevel_amount;pub use mesh_bevel_vertex::VertexBevelResult;pub use mesh_inset_face::inset_amount_from_depth;pub use mesh_inset_face::inset_area_ratio;pub use mesh_inset_face::inset_faces as apply_face_inset;pub use mesh_inset_face::inset_polygon;pub use mesh_inset_face::inset_triangle;pub use mesh_inset_face::inset_vertex_estimate;pub use mesh_inset_face::validate_inset_amount;pub use mesh_inset_face::InsetResult as InsetFaceResult;pub use mesh_poke_face::count_poke_result_triangles;pub use mesh_poke_face::poke_all_faces;pub use mesh_poke_face::poke_faces as apply_poke_faces;pub use mesh_poke_face::poke_polygon;pub use mesh_poke_face::poke_triangle as poke_single_triangle;pub use mesh_poke_face::poke_triangle_estimate;pub use mesh_poke_face::poke_with_offset;pub use mesh_poke_face::validate_poke_input;pub use mesh_poke_face::PokeResult as PokeFaceResult;pub use mesh_flip_normals::count_inconsistent_faces;pub use mesh_flip_normals::flip_all_windings;pub use mesh_flip_normals::flip_normals as flip_mesh_normals;pub use mesh_flip_normals::flip_normals_selected;pub use mesh_flip_normals::flip_selected_windings;pub use mesh_flip_normals::negate_normals;pub use mesh_flip_normals::negate_selected_normals;pub use mesh_flip_normals::tri_normal as flip_tri_normal;pub use mesh_flip_normals::windings_consistent;pub use mesh_flip_normals::FlipNormalsResult;pub use mesh_recalc_normals::average_face_normal;pub use mesh_recalc_normals::compute_angle_weighted_normals;pub use mesh_recalc_normals::compute_face_normals as recalc_face_normals;pub use mesh_recalc_normals::compute_vertex_normals_recalc;pub use mesh_recalc_normals::normal_deviation;pub use mesh_recalc_normals::recalc_normals;pub use mesh_recalc_normals::smooth_normals_recalc;pub use mesh_recalc_normals::RecalcNormalsResult;pub use mesh_power_crust::classify_pole;pub use mesh_power_crust::generate_power_poles;pub use mesh_power_crust::medial_ball_radius;pub use mesh_power_crust::nearest_power_site;pub use mesh_power_crust::power_crust_has_geometry;pub use mesh_power_crust::power_crust_stub;pub use mesh_power_crust::power_crust_triangle_count;pub use mesh_power_crust::power_distance;pub use mesh_power_crust::PowerCrustBuilder;pub use mesh_power_crust::PowerCrustConfig;pub use mesh_power_crust::PowerCrustResult;pub use mesh_power_crust::PowerSite;pub use mesh_poisson_recon::density_estimate;pub use mesh_poisson_recon::estimate_output_faces;pub use mesh_poisson_recon::point_cloud_bbox;pub use mesh_poisson_recon::point_cloud_centroid;pub use mesh_poisson_recon::point_to_voxel;pub use mesh_poisson_recon::poisson_reconstruct_stub;pub use mesh_poisson_recon::required_octree_depth;pub use mesh_poisson_recon::PoissonConfig;pub use mesh_poisson_recon::PoissonReconConfig;pub use mesh_poisson_recon::PoissonReconResult;pub use mesh_poisson_recon::PoissonReconstructor;pub use mesh_cloth_collider::*;pub use mesh_fluid_surface::*;pub use mesh_hair_guide_gen::*;pub use mesh_strand_mesh::*;pub use mesh_topo_repair_ext::*;pub use mesh_duplicate_face::*;pub use mesh_non_manifold_fix::*;pub use mesh_isolated_vertex_remove::*;pub use mesh_face_split_edge::*;pub use mesh_loop_slide::*;pub use mesh_rip_vertex::*;pub use mesh_rip_fill::*;pub use mesh_dissolve_face::*;pub use mesh_dissolve_edge::*;pub use mesh_dissolve_vertex::*;pub use mesh_flatten_face::*;pub use mesh_align_vertices::*;pub use mesh_distribute_even::*;pub use mesh_loop_to_region::*;pub use mesh_checker_deselect::*;pub use mesh_anchor_point::*;pub use mesh_magnet_point::*;pub use mesh_follow_path::*;pub use mesh_track_to::*;pub use mesh_copy_location::*;pub use mesh_copy_rotation::*;pub use mesh_copy_scale::*;pub use mesh_transform_constraint::*;pub use mesh_floor_constraint::*;pub use mesh_collision_bounds::*;pub use mesh_rigid_body_shape::*;pub use mesh_soft_body_goal::*;pub use mesh_cloth_collision::*;pub use mesh_force_field_mesh::*;pub use mesh_meta_ball::*;pub use mesh_implicit_blob::*;pub use mesh_boolean_union::*;pub use mesh_boolean_intersection::*;pub use mesh_boolean_difference::*;pub use mesh_project_curve::*;pub use mesh_signed_distance::*;pub use mesh_winding_query::*;pub use mesh_volume_query::*;pub use mesh_surface_area_query::*;pub use mesh_bounding_box_query::*;pub use mesh_principal_axes::*;pub use mesh_topology_query::*;pub use mesh_lod_chain::*;pub use mesh_progressive_mesh::*;pub use mesh_view_dependent_lod::*;pub use mesh_geomorph::*;pub use mesh_impostor::*;pub use mesh_sprite_atlas::*;pub use mesh_decal_mesh::*;pub use mesh_outline_mesh::*;pub use mesh_shadow_mesh::*;pub use mesh_light_map_mesh::*;pub use mesh_ambient_occlusion_mesh::*;pub use mesh_vertex_animation::*;pub use mesh_morph_animation::*;pub use mesh_skinned_animation::*;pub use mesh_blend_animation::*;pub use mesh_pose_snapshot::*;
Modules§
- adaptive_
subdivide - Curvature-adaptive Loop subdivision that refines only high-curvature regions.
- ao_bake
- atlas
- UV atlas packing using the shelf algorithm.
- bounds
- Mesh bounding volumes: AABB, bounding sphere, and OBB approximation.
- bvh
- BVH (Bounding Volume Hierarchy) acceleration structure for triangle meshes.
- catmull_
clark - cloth_
panel - cloth_
sim - clothing
- Clothing overlay pipeline.
- color_
utils - Uniform vertex-color helpers.
- connectivity
- convex_
hull - curvature
- decimate
- displacement_
map - UV-based 2D displacement map application to mesh vertices.
- dqs
- Dual Quaternion Skinning (DQS) — avoids the “candy wrapper” artifact of LBS.
- edge_
loops - feature_
decimation - Feature-preserving QEM (Quadric Error Metric) decimation that locks feature edges.
- ffd
- Free-Form Deformation (FFD) lattice deformation.
- geodesic
- Geodesic distance computation on mesh surfaces using Dijkstra’s algorithm.
- groups
- hair_
cards - Hair card strip mesh generation.
- heat_
map - ik
- Inverse Kinematics solvers: 2-bone analytical IK and multi-bone FABRIK.
- integrity
- Mesh integrity and manifold checks.
- lod
- LOD (Level of Detail) generation via grid-based vertex clustering.
- marching_
cubes - measurements
- Body measurement extraction from a MeshBuffers.
- mesh
- mesh_
adaptive_ lod - Adaptive LOD selection based on screen-space projected size.
- mesh_
adaptive_ subdivision - Adaptive subdivision based on curvature threshold.
- mesh_
align - Mesh alignment by principal axes (PCA-based) or iterative closest point (ICP).
- mesh_
align_ axes - Align mesh to principal axes via PCA (3×3 covariance matrix).
- mesh_
align_ vertices - Align selected vertices to a world axis, average, or custom plane.
- mesh_
ambient_ occ - Per-vertex ambient occlusion estimate using bent-normal method.
- mesh_
ambient_ occlusion - Per-vertex ambient occlusion baking with BVH-accelerated ray casting.
- mesh_
ambient_ occlusion_ mesh - AO baking vertex data — stores per-vertex ambient occlusion values.
- mesh_
anchor_ point - Mesh anchor/pin point for simulation — marks vertices as fixed constraints.
- mesh_
angle_ bisector - Angle bisector computation for mesh triangles and edges.
- mesh_
anisotropic_ smooth - Anisotropic mesh smoothing (bilateral-style).
- mesh_
annulus_ gen - mesh_
antiprism - Antiprism mesh generator.
- mesh_
apex_ vertex - Apex vertex detection for mesh triangles.
- mesh_
arap - As-Rigid-As-Possible (ARAP) surface deformation.
- mesh_
arc_ length - Arc-length parameterisation utilities for polyline curves.
- mesh_
archimedean_ solid - Archimedean solid stub generator.
- mesh_
area_ gradient - Per-face area gradient computation for mesh analysis.
- mesh_
array_ modifier - Array modifier: repeat a mesh N times along an offset.
- mesh_
arrow_ gen - mesh_
aspect_ ratio - Triangle aspect ratio analysis for mesh quality assessment.
- mesh_
attr_ transfer - Transfer vertex attributes between meshes using nearest-neighbour lookup.
- mesh_
attribute_ layer - Generic mesh attribute layer for per-element data.
- mesh_
auto_ smooth - Auto smooth angle computation for mesh shading.
- mesh_
bary_ coord - Barycentric coordinate computation and utilities.
- mesh_
batching - Batch multiple meshes into a single draw call (static batching).
- mesh_
bbox_ tree - Bounding box tree (AABB tree) for spatial queries on mesh faces.
- mesh_
bend_ deform - Bend deformation for mesh vertices along an axis.
- mesh_
bend_ modifier - mesh_
bent_ normal - mesh_
bevel_ modifier - mesh_
bevel_ vertex - Vertex bevel tool.
- mesh_
bezier_ patch - Bezier/B-spline patch representation for smooth surface modelling.
- mesh_
bezier_ surface - Bicubic Bézier surface tessellation.
- mesh_
bilaplacian - Bi-Laplacian (bi-harmonic) mesh smoothing and fairing.
- mesh_
bilinear_ patch - Bilinear patch evaluation and tessellation.
- mesh_
bipyramid - Bipyramid mesh generator.
- mesh_
bisect - Bisect mesh by plane.
- mesh_
blend_ animation - Animation blend buffer — blends multiple animations by weighted mixing.
- mesh_
boolean - mesh_
boolean_ csg - CSG boolean operations stub via SDF sampling (union/intersect/subtract).
- mesh_
boolean_ difference - Mesh boolean difference (CSG subtraction) stub.
- mesh_
boolean_ intersection - Mesh boolean intersection (CSG) stub.
- mesh_
boolean_ union - Mesh boolean union (CSG) stub.
- mesh_
border_ edge - Border edge detection and analysis for triangle meshes.
- mesh_
boundary_ vertex - Boundary vertex detection for triangle meshes.
- mesh_
bounding_ box_ query - Tight axis-aligned bounding box query for meshes stub.
- mesh_
box_ gen - mesh_
bridge - Bridge / loft operations: connect two open edge loops with a band of triangles.
- mesh_
bridge_ edge_ loops - mesh_
bridge_ tool - Bridge two edge loops.
- mesh_
bvh - Bounding Volume Hierarchy (BVH) for ray/point queries over triangle meshes.
- mesh_
bvh_ leaf - BVH leaf-level utilities: per-triangle AABB building and leaf queries.
- mesh_
bvh_ node - BVH node construction and traversal for triangle meshes.
- mesh_
cable_ gen - Cable / rope mesh generator.
- mesh_
cage - Cage-based deformation using mean-value coordinates (MVC).
- mesh_
cage_ lattice - Lattice cage deformation (free-form deformation / FFD).
- mesh_
cage_ volume - Compute and use the volume of a cage mesh.
- mesh_
cage_ wrap - Cage-wrap deformation: offset a high-res mesh using cage displacement.
- mesh_
capsule_ gen - mesh_
cast_ modifier - mesh_
catenary - mesh_
catmull_ clark - Catmull-Clark subdivision surface algorithm for quad-dominant meshes.
- mesh_
catmull_ clark_ weight - Catmull-Clark subdivision weight computation utilities.
- mesh_
cavity_ map - mesh_
cell_ partition - Grid-based cell partition for spatial queries on mesh vertices.
- mesh_
centroid_ decompose - Centroid-based mesh decomposition: split a mesh into regions around face centroids.
- mesh_
centroid_ query - Mesh centroid computation stub.
- mesh_
chain_ link - Chain link mesh generator.
- mesh_
chamfer_ edge - Chamfer edges with configurable segments.
- mesh_
chart_ pack - UV chart packing into a texture atlas.
- mesh_
checker_ deselect - Checker deselect: alternates the selection of faces/vertices in a checkerboard pattern.
- mesh_
circular_ edge - Circular edge detection in meshes (edges that form loops).
- mesh_
circumcenter - Circumcenter computation for mesh triangles.
- mesh_
clip - Clip a mesh against a half-space plane, keeping the positive side and generating a flat cap on the cut face.
- mesh_
clip_ region - Clip a mesh to an axis-aligned region (AABB).
- mesh_
closest_ point - Brute-force closest point on mesh surface query.
- mesh_
closest_ point_ query - Closest-point-on-mesh query stub.
- mesh_
cloth_ collider - Cloth-mesh collision geometry helpers.
- mesh_
cloth_ collision - Cloth self-collision proxy — simplified geometry used to detect cloth self-intersections.
- mesh_
cloth_ pins - Cloth pinning vertex groups.
- mesh_
coarse_ grid - Build a coarse voxel grid from mesh vertices for spatial queries.
- mesh_
collapse_ edge - Edge collapse utilities for mesh simplification.
- mesh_
collapse_ group - Group-based edge collapse: collapse all edges within a vertex group.
- mesh_
collision_ bounds - Collision bounds (box/sphere/hull) — describes simple collision geometry for a mesh.
- mesh_
color_ attr - Vertex color attribute manipulation for meshes.
- mesh_
compress_ index - Index buffer compression: delta encoding and 16-bit packing.
- mesh_
cone_ gen - Cone mesh generation.
- mesh_
conformal_ map - Conformal mapping utilities for mesh UV parameterization.
- mesh_
convex_ face - Convexity testing for mesh faces (polygons).
- mesh_
convex_ hull - Convex hull computation for 3D point sets using an incremental algorithm.
- mesh_
convex_ hull_ 2d - 2D convex hull on XZ plane (for footprint computation).
- mesh_
convex_ hull_ v2 - Quickhull-style 3D convex hull (incremental gift-wrap approximation).
- mesh_
coons_ patch - Coons bi-linear patch mesh generation.
- mesh_
coplanar_ face - Detect coplanar faces in a triangle mesh.
- mesh_
copy_ location - Copy location constraint — replicates the world-space position of a target object.
- mesh_
copy_ rotation - Copy rotation constraint — replicates euler-angle rotation from a target object.
- mesh_
copy_ scale - Copy scale constraint — copies object scale from a target on selected axes.
- mesh_
corner_ angle - Corner angle computation for mesh triangles.
- mesh_
corrective_ shape - mesh_
cotan_ laplace - Cotangent-weight Laplace-Beltrami operator for triangle meshes.
- mesh_
cotangent_ weights - Cotangent weight computation for Laplacian operators.
- mesh_
crease - Crease / hard-edge marking for subdivision surfaces.
- mesh_
crease_ set - Crease set management for subdivision surfaces.
- mesh_
crease_ tool - Crease edge weighting tool.
- mesh_
curvature_ discrete - Discrete curvature computation for triangle meshes.
- mesh_
curvature_ lines - mesh_
curvature_ map - mesh_
curvature_ tensor - Full curvature tensor estimation for triangle meshes.
- mesh_
curve_ deform - Mesh deformation along a Bezier or cubic spline path.
- mesh_
curve_ sample - Curve sampling utilities: uniform, adaptive, and curvature-based sampling.
- mesh_
curve_ to_ mesh - mesh_
cusp_ detect - Cusp detection: find vertices where surface normals change abruptly.
- mesh_
custom_ data - Custom data block management for mesh elements.
- mesh_
custom_ split_ normals - Custom split normals per face-corner.
- mesh_
cylinder_ cap - Cylinder cap generation: flat and dome caps for open cylinders.
- mesh_
cylinder_ gen - mesh_
dart_ graph - Dart (half-edge-like) graph representation for combinatorial mesh topology.
- mesh_
data_ transfer - Vertex data transfer modifier.
- mesh_
debug_ vis - Generate debug visualization meshes: normals and tangents as line segments.
- mesh_
decal - mesh_
decal_ mesh - Decal projection mesh — projects a decal texture onto surface geometry.
- mesh_
decimate - Mesh decimation via edge collapse with quadric error metric (QEM).
- mesh_
decimate_ error - Error metric computation for mesh decimation (Quadric Error Metrics).
- mesh_
decimate_ modifier - mesh_
decimate_ v2 - Quadric Error Metric vertex pair decimation (v2).
- mesh_
deform_ axis - Axis-aligned deformation utilities: twist, taper, stretch, shear.
- mesh_
diff - mesh_
dihedral_ angle - Dihedral angle computation between adjacent faces.
- mesh_
directed_ edge - Directed edge data structure for mesh connectivity.
- mesh_
disk_ map - Disk mapping: project a mesh patch to a disk (unit circle) parameterization.
- mesh_
displace_ modifier - Displacement modifier: offset vertices along their normals by a texture/map value.
- mesh_
displacement_ map - Displacement map application to mesh vertices.
- mesh_
dissolve_ edge - Dissolve selected edges: merge the two faces sharing each selected edge into one quad or n-gon.
- mesh_
dissolve_ face - Dissolve selected faces: remove the selected triangles and close the hole with a new polygon fill (fan triangulation).
- mesh_
dissolve_ vertex - mesh_
distribute_ even - Distribute vertices evenly along a path (arc-length parameterisation).
- mesh_
dual - Dual mesh computation — place a vertex at each face centroid, connect adjacent faces.
- mesh_
dual_ contour - Dual contouring stub: QEF minimisation per cell for isosurface extraction.
- mesh_
dual_ contouring - Dual contouring isosurface extraction.
- mesh_
dual_ laplacian - Dual Laplacian (cotangent-weighted) smoothing for triangle meshes.
- mesh_
dupin_ cyclide - Dupin cyclide surface mesh (Villarceau circles).
- mesh_
duplicate_ face - Duplicate face detection and removal. Two triangles are considered duplicates if they share the same three vertex indices (in any winding order).
- mesh_
ear_ clip - Ear-clipping polygon triangulator.
- mesh_
edge_ bisect - Edge bisection (midpoint subdivision) for triangle meshes.
- mesh_
edge_ collapse_ v2 - Edge collapse v2: QEF-guided half-edge collapse with feature detection.
- mesh_
edge_ contract - Edge contraction operations for mesh simplification.
- mesh_
edge_ flow - Edge flow computation and analysis.
- mesh_
edge_ flow_ field - mesh_
edge_ hash - Edge hashing utilities for fast edge lookups.
- mesh_
edge_ loop_ select - Edge loop selection utilities.
- mesh_
edge_ slide - Edge slide: slide an edge along adjacent faces.
- mesh_
edge_ split - mesh_
edge_ valence - Edge valence analysis: count how many faces share each edge.
- mesh_
end_ cap - Cylinder mesh with end caps.
- mesh_
erode - Erode mesh surface by offsetting vertices inward (negative inflate).
- mesh_
extrude - Face/edge/vertex extrusion operations.
- mesh_
extruded_ polygon - Extruded polygon (prism) mesh generator.
- mesh_
face_ centroid - Face centroid computation and analysis.
- mesh_
face_ centroid_ v2 - Face centroid v2: area-weighted centroid queries with spatial bucketing.
- mesh_
face_ dual - Face dual mesh construction (dual graph where each face becomes a vertex).
- mesh_
face_ flip - Face flipping utilities.
- mesh_
face_ label - Per-face label assignment and querying utilities.
- mesh_
face_ map - Face map — named groups of face indices.
- mesh_
face_ material - Per-face material assignment and multi-material mesh utilities.
- mesh_
face_ orient - Face orientation consistency checking and repair.
- mesh_
face_ pair - Face pair detection: adjacent triangles sharing an edge.
- mesh_
face_ peel - Sequential face peeling — remove outermost boundary layer of faces iteratively.
- mesh_
face_ ring - Face ring: find all faces adjacent to a given vertex (the face one-ring).
- mesh_
face_ split_ edge - Split a face by inserting a new edge between two of its vertices.
- mesh_
face_ strip - Triangle strip construction from indexed triangle meshes.
- mesh_
fan_ mesh - Fan mesh generation: create triangle fans from a center point.
- mesh_
fan_ triangulate - Fan triangulation of convex polygons.
- mesh_
feather - Feather geometry generation.
- mesh_
feature - Mesh feature line extraction: ridges, valleys, silhouettes, and sharp edges.
- mesh_
featureline - Feature line (ridge/valley) extraction via principal curvature analysis.
- mesh_
fiber_ orientation - mesh_
fibonacci_ sphere - mesh_
fill_ holes - Hole filling from boundary edges: detect and fill mesh holes.
- mesh_
fillet - Edge fillet (round) and chamfer (bevel) operations.
- mesh_
fillet_ edge - Edge fillet (bevel with arc).
- mesh_
flag_ layer - Boolean flag layer per mesh element (vertex, edge, or face).
- mesh_
flatten_ face - Flatten selected faces to their best-fit plane using PCA-style projection.
- mesh_
flip_ normals - Flip face normals.
- mesh_
floor_ constraint - Floor/ceiling constraint — prevents object from passing through a planar boundary.
- mesh_
flow - Mean curvature flow and Laplacian surface smoothing variants.
- mesh_
flow_ map - mesh_
fluid_ surface - Fluid surface mesh (marching-cubes wrapper stub).
- mesh_
follow_ path - Follow-path curve constraint for mesh — projects mesh origin along a 3-D curve.
- mesh_
force_ field_ mesh - Force field (wind/turbulence) mesh — force field emitter attached to mesh geometry.
- mesh_
fractal_ displace - Fractal displacement: push vertices along normals using fBm (fractional Brownian motion). Uses deterministic LCG-based value noise — no external RNG dependency.
- mesh_
fractal_ gen - mesh_
fur_ cards - Fur card generation from surface normals.
- mesh_
fused_ deposition - FDM (Fused Deposition Modeling) layer-by-layer mesh slice visualization.
- mesh_
gear_ tooth - Involute gear tooth mesh generator.
- mesh_
genus_ compute - Genus and Euler characteristic computation for triangle meshes.
- mesh_
geodesic - Geodesic distance computation on triangle meshes using Dijkstra on edge graph.
- mesh_
geodesic_ path - Geodesic path tracing on triangle meshes using Dijkstra’s algorithm.
- mesh_
geodesic_ voronoi - Geodesic Voronoi partitioning on a triangle mesh.
- mesh_
geomorph - Geomorphing — smooth interpolation between two LOD levels.
- mesh_
geosphere - Geodesic sphere via icosahedral subdivision.
- mesh_
gordon_ surface - Gordon surface (net of curves) stub.
- mesh_
grid_ deform - Grid-based deformation (FFD-lite) for mesh vertices.
- mesh_
grid_ fill - Grid fill: create a grid mesh between two edge loops.
- mesh_
grid_ gen - mesh_
hair_ guide_ gen - Hair guide curve mesh generation.
- mesh_
half_ face - Half-face data structure for tetrahedral and polygonal mesh topology.
- mesh_
harmonic_ map - Harmonic mapping for mesh parameterization using Laplacian smoothing to UVs.
- mesh_
heat_ diffuse - Heat diffusion / harmonic field computation on mesh surface.
- mesh_
heat_ diffuse_ v2 - Heat diffusion kernel on mesh using explicit Euler time-stepping (v2).
- mesh_
helix - mesh_
hex_ mesh - Hexagonal mesh generation on a plane.
- mesh_
hole_ detect - mesh_
hollow - Hollow / shell mesh generation.
- mesh_
icosphere - Icosphere (subdivided icosahedron) mesh generation.
- mesh_
icosphere_ gen - mesh_
implicit_ blob - Blobby/implicit-surface node — a single weighted implicit primitive in a CSG tree.
- mesh_
impostor - Billboard impostor generation — creates camera-facing quad impostors for distant meshes.
- mesh_
incircle - Incircle (inscribed circle) computation for triangle mesh faces.
- mesh_
index_ remap - Index remapping utilities for mesh index buffers.
- mesh_
inflate - Inflate / erode mesh by pushing vertices along averaged normals.
- mesh_
inflate_ tool - Mesh inflation along normals.
- mesh_
inset_ face - Face inset tool.
- mesh_
inset_ faces - Face inset: shrink faces inward with a border ring.
- mesh_
intersect_ line - Mesh-line intersection utilities.
- mesh_
intersect_ ray - Ray-mesh intersection query stub.
- mesh_
isolated_ vertex_ remove - Remove isolated (unreferenced) vertices from mesh buffers.
- mesh_
isosurface - Isosurface extraction from a scalar grid (simplified marching cubes variant).
- mesh_
jiggle - mesh_
k_ ring - K-ring neighbourhood queries on triangle meshes.
- mesh_
klein_ bottle - Klein bottle surface mesh (immersed in 3D).
- mesh_
knife_ cut - Knife (projection) cut — split faces along a user-defined polyline.
- mesh_
label - mesh_
lattice_ deform - Lattice cage deform modifier.
- mesh_
lattice_ frame - Space-frame lattice mesh: beam elements rendered as cylinders.
- mesh_
light_ map_ mesh - Lightmap UV second channel — stores and validates a second UV set for lightmapping.
- mesh_
limited_ dissolve - Limited dissolve: merge coplanar/near-coplanar faces by angle threshold.
- mesh_
lod_ chain - LOD chain manager — stores and manages multiple LOD levels for a mesh.
- mesh_
loft - Loft surface generation between profile curves.
- mesh_
lofted_ surface - mesh_
loop_ detection - Detect and classify boundary loops in a mesh.
- mesh_
loop_ slide - Edge loop slide: slide an edge loop along adjacent faces.
- mesh_
loop_ to_ region - Convert an edge loop into a face region selection. All faces on one side of the loop boundary are selected.
- mesh_
lscm - Least Squares Conformal Maps (LSCM) UV parameterization.
- mesh_
magnet_ point - Magnetic attraction point modifier — draws nearby vertices toward a 3-D point.
- mesh_
manifold_ check - mesh_
mask_ modifier - mesh_
mean_ curvature - Mean curvature computation using cotangent weights on triangle meshes.
- mesh_
mean_ curvature_ flow - Mean curvature flow smoothing.
- mesh_
mean_ value - mesh_
medial_ axis - mesh_
merge - mesh_
merge_ by_ distance - Merge vertices that are within a threshold distance.
- mesh_
meta_ ball - Metaball implicit surface mesh — evaluates a metaball isosurface field.
- mesh_
minimal_ surface - Minimal surface mesh generation (Enneper, Scherk).
- mesh_
mirror - Mesh mirroring and symmetrization operations.
- mesh_
mirror_ cut - Mirror and cut a mesh along an axis-aligned plane.
- mesh_
mirror_ modifier - Mirror modifier: mirror mesh across an axis.
- mesh_
mirror_ stitch - mesh_
mls_ deform - mesh_
mobius - Möbius strip mesh generation.
- mesh_
moment_ inertia - Compute the inertia tensor from a closed triangle mesh.
- mesh_
moment_ of_ inertia - Mesh moment of inertia tensor computation stub.
- mesh_
morph_ animation - Morph target animation sequence — keyframed blend weights over time.
- mesh_
morse_ theory - mesh_
multi_ res - mesh_
multiresolution - Multiresolution mesh editing levels. Stores a stack of subdivision levels and displacement deltas for each.
- mesh_
needle_ triangle - mesh_
ngon_ fill - Ngon fan/ear fill: triangulate an N-gon polygon by fan or ear-clip.
- mesh_
noise_ gen - Procedural noise-based mesh generation and displacement.
- mesh_
non_ manifold_ fix - Non-manifold edge/vertex repair. An edge is non-manifold when it is shared by more than two faces. This module detects and optionally removes the extra faces.
- mesh_
nonorientable - Non-orientable surface meshes (Möbius strip variant).
- mesh_
normal_ delta - Compute delta normals for blend shape / morph targets.
- mesh_
normal_ edit - Normal editing: custom normal overrides per vertex.
- mesh_
normal_ map_ bake - Bake high-to-low resolution normal map (ray casting placeholder).
- mesh_
normal_ override - Per-vertex normal override layer.
- mesh_
normal_ transfer_ v2 - mesh_
nurbs_ surface - NURBS surface stub.
- mesh_
oct_ encode - mesh_
octree - Octree spatial index for mesh queries (nearest point, sphere, AABB, ray).
- mesh_
offset - Mesh offset: push vertices along their normals by a given distance.
- mesh_
orient - Consistent triangle normal orientation via flood fill.
- mesh_
orthographic_ proj - mesh_
outline_ mesh - Outline/silhouette mesh generation — produces extruded edge meshes for stylized outlines.
- mesh_
pack_ islands - UV island packing.
- mesh_
paint - Sculpt-brush deformation tools.
- mesh_
paint_ mask - Per-vertex paint mask storage and operations.
- mesh_
param_ chart - mesh_
parametric - Parametric shape generation with proper UVs.
- mesh_
parametric_ surf - Parametric surface sampler with grid tessellation.
Maps (u, v) in
[0,1]^2 to 3-D positions via a user-supplied function, then builds an indexed triangle mesh. - mesh_
particle_ hair - Particle hair strand mesh generation.
- mesh_
patch - Mesh hole detection and hole-filling (triangulated polygon patches).
- mesh_
patch_ blend - mesh_
patch_ sew - Sew / merge mesh patches along shared boundary edges.
- mesh_
path_ cut - Path cut: cut a mesh along a vertex path.
- mesh_
pca - Principal Component Analysis of mesh shape space.
- mesh_
pinch_ tool - Vertex pinch/squeeze tool.
- mesh_
pipe_ network - Pipe network mesh: multiple tube segments joined at junction nodes.
- mesh_
planar_ decimate - Planar face decimation: collapse faces that lie on the same plane.
- mesh_
planar_ proj - mesh_
plane - Flat grid plane mesh generation.
- mesh_
plane_ gen - mesh_
platonic_ solid - Platonic solid generator (tetrahedron, cube, octahedron, dodecahedron, icosahedron).
- mesh_
point_ sample - mesh_
poisson_ recon - Screened Poisson surface reconstruction from oriented point clouds.
- mesh_
poke_ face - Poke (fan triangulate) faces — inserts a centre vertex in each face.
- mesh_
poke_ faces - Poke (subdivide) faces by inserting a center vertex.
- mesh_
polar_ decomp - Polar decomposition for mesh deformation analysis (R, S = rotation, scale).
- mesh_
polar_ mesh - mesh_
polygon_ fill - Polygon triangulation utilities for 3D polygons.
- mesh_
pose_ snapshot - Single-frame mesh pose snapshot — captures and restores a mesh pose at one moment in time.
- mesh_
pose_ space - mesh_
power_ crust - Power Crust surface reconstruction from oriented point clouds.
- mesh_
principal_ axes - Compute principal axes from an inertia tensor stub.
- mesh_
principal_ curvature - Principal curvature directions and magnitudes.
- mesh_
prism_ frustum - Frustum (tapered prism) mesh generator.
- mesh_
profile_ extrude - mesh_
progressive - Progressive mesh: greedy edge-collapse LOD sequence.
- mesh_
progressive_ mesh - Progressive mesh — vertex split/collapse operations for continuous LOD.
- mesh_
project_ curve - Project a polyline curve onto a mesh surface stub.
- mesh_
projection - Surface projection — project points and meshes onto triangle meshes.
- mesh_
projective_ plane - Klein bottle mesh stub (embedded in 4-D, rendered as 3-D immersion).
- mesh_
property_ layer - Named float property layer per vertex.
- mesh_
proximity_ deform - mesh_
ptex - Ptex per-face texture coordinate storage stub.
- mesh_
push_ pull - Push/pull vertex displacement along normals.
- mesh_
qem_ simplify - Quadric error metrics (QEM) mesh simplification.
- mesh_
quad_ dominant - mesh_
quad_ mesh - mesh_
quad_ strip - mesh_
quad_ to_ tri - Convert quad mesh to triangle mesh.
- mesh_
quads_ to_ tris - Convert quads to triangles.
- mesh_
ray_ cast - mesh_
raycast - Ray–triangle intersection using the Möller–Trumbore algorithm.
- mesh_
recalc_ normals - Recalculate face/vertex normals.
- mesh_
relax_ tool - Vertex relaxation (Laplacian relax).
- mesh_
relax_ uv - UV island relaxation.
- mesh_
relaxation - mesh_
remesh - Isotropic remeshing for uniform triangle quality.
- mesh_
remesh_ adaptive - mesh_
remesh_ isotropic - Isotropic remeshing via the Botsch-Kobbelt algorithm.
- mesh_
repair_ advanced - Advanced mesh repair: manifold healing, tangent-continuous hole filling, and T-junction removal.
- mesh_
retopo_ guide - mesh_
reverse_ normal - mesh_
revolution_ surface - Surface of revolution mesh generator.
- mesh_
revolve - Surface of revolution: revolve a 2-D profile curve around the Y axis.
- mesh_
rigid_ body_ shape - Rigid body collision shape — specifies physics collision geometry for mesh rigid bodies.
- mesh_
rip_ fill - Rip-and-fill region: rip a set of vertices and fill the resulting hole.
- mesh_
rip_ vertex - Rip-vertex operation: duplicate a vertex and separate connected faces.
- mesh_
rip_ vertices - Rip/disconnect vertices: duplicate a vertex to create a gap.
- mesh_
root_ find - mesh_
ruled_ surface - Ruled surface between two curves.
- mesh_
scalar_ field - mesh_
scale_ elements - Scale individual faces/edges by a local scale factor.
- mesh_
scatter - Scatter points on mesh surface using area-weighted per-face sampling. Uses deterministic LCG pseudo-random number generation (no rand crate).
- mesh_
screw_ helix - Screw thread helix mesh generator.
- mesh_
screw_ modifier - Screw modifier: rotate profile and offset per step.
- mesh_
sdf - mesh_
seam_ flatten - mesh_
seam_ mark - mesh_
seam_ mark_ v2 - Seam marking v2 — seams as edge pairs for UV unwrapping.
- mesh_
seam_ welder - UV seam welding — finds boundary edges that share the same 3-D position but differ in UV, then merges them for correct normal/lighting continuity.
- mesh_
segment - Surface mesh segmentation into connected/coherent regions.
- mesh_
select_ by_ angle - Select faces by normal angle.
- mesh_
select_ linked - Flood-fill face selection (select linked).
- mesh_
self_ intersect - Self-intersection detection for triangle meshes.
- mesh_
shadow_ mesh - Shadow volume mesh — generates shadow volume geometry for stencil shadow rendering.
- mesh_
shape_ key_ mix - Shape key mixing and combining.
- mesh_
sharp_ edge - mesh_
sharp_ feature - Detect and tag sharp edges and vertices by dihedral angle threshold.
- mesh_
sharp_ feature_ preserve - Sharp feature (edge/corner) detection and preservation.
- mesh_
sharp_ vertex - Sharp vertex (corner) marking for subdivision surfaces.
- mesh_
shear_ modifier - mesh_
shell_ deform - mesh_
signed_ distance - Signed distance field query for meshes stub.
- mesh_
silhouette - mesh_
simplicial - Simplicial complex operations (chain complex, boundary operators).
- mesh_
skeleton_ deform - mesh_
skin_ modifier - Skin modifier — generates a mesh from edges/vertices.
- mesh_
skin_ weights - Automatic skinning weight computation via heat diffusion from bone endpoints.
- mesh_
skinned_ animation - Skinned mesh animation sequence — joint transform keyframes for skeletal animation.
- mesh_
skinned_ surface - Skin surface through profile curves.
- mesh_
slice - Mesh slicing with a plane — cross-section extraction, mesh splitting, body-measurement circumference, and width-profile utilities.
- mesh_
slice_ plane - Slice mesh with an arbitrary plane stub.
- mesh_
slice_ stack - Slice mesh at multiple Z heights and return 2D contours.
- mesh_
smooth_ color - Smooth vertex colors using Laplacian diffusion.
- mesh_
smooth_ modifier - mesh_
smooth_ vertex - Smooth vertex position operations.
- mesh_
smooth_ weight - Smooth weight maps across the mesh surface using adjacency-based diffusion.
- mesh_
soft_ body_ goal - Soft body goal/pin vertex — specifies goal shape attraction for soft-body simulation.
- mesh_
solidify - Solidify modifier — create a thin-shell copy of a mesh by offsetting along normals.
- mesh_
sort_ vertex - Sort vertices along a chosen axis and produce a remapped index buffer.
- mesh_
span_ tree - Compute a minimum spanning tree over mesh vertices using edge lengths.
- mesh_
spectral - Spectral mesh analysis using the graph Laplacian (power iteration approximation).
- mesh_
sphere - UV sphere (lat/lon grid) mesh generation.
- mesh_
sphere_ gen - mesh_
sphere_ map - Spherical parameterisation mapping for triangle meshes.
- mesh_
sphere_ proj - Project mesh vertices onto a sphere surface.
- mesh_
spin - Spin-around-axis modifier.
- mesh_
spring_ helix - Helical spring mesh generator (coil spring).
- mesh_
spring_ mesh - Spring-based mesh relaxation system.
- mesh_
spring_ net - Spring network mesh from point cloud with k-nearest edges.
- mesh_
sprite_ atlas - Sprite atlas UV layout — packs sprite frames into a texture atlas grid.
- mesh_
stellated_ solid - Stellated polyhedron stub generator.
- mesh_
stitch_ seam - Stitch seam edges between two mesh boundaries.
- mesh_
strand_ mesh - Strand-to-mesh conversion: turns hair strands into renderable triangle meshes.
- mesh_
stress_ lines - mesh_
stroke_ extrude - mesh_
stroke_ path - Generate a stroke path mesh (ribbon) from a sequence of 3-D points.
- mesh_
subdiv_ loop - Loop subdivision scheme for triangle meshes.
- mesh_
superellipsoid - Superellipsoid parametric mesh generation.
- mesh_
surface_ area_ query - Mesh surface area query stub.
- mesh_
surface_ flow - Surface flow / direction field on a mesh.
- mesh_
surface_ normal - Per-vertex and per-face normal computation utilities.
- mesh_
sweep - Swept volume — extrude a cross-section profile along a 3-D path.
- mesh_
sweep_ solid - Sweep a 2-D profile along a 3-D path to produce a solid mesh.
- mesh_
swept_ solid - Swept solid mesh: a profile polygon extruded along a polyline path.
- mesh_
symmetry_ map - mesh_
tangent_ frame - Per-vertex tangent frame (tangent, bitangent, normal) computation.
- mesh_
tangent_ frames - Per-face tangent frames (T/B/N) computed from UV coordinates.
- mesh_
taper_ modifier - mesh_
terrain_ gen - mesh_
tet - Tetrahedral mesh generation from a surface triangle mesh.
- mesh_
tetrahedron_ gen - mesh_
texture_ bake - GPU-less CPU texture baking pipeline.
- mesh_
texture_ proj - Texture projection utilities: planar, cylindrical, spherical, and box.
- mesh_
thicken - Thicken a shell mesh by offsetting along per-vertex normals.
- mesh_
thicken_ normals - mesh_
thickness_ map - mesh_
thin_ shell - Thin-shell mesh generation: offset a surface inward/outward by a small thickness.
- mesh_
topo_ repair_ ext - Extended topology repair: fix winding order, remove degenerate faces, and re-stitch torn boundaries.
- mesh_
topo_ sort - Topological sorting of mesh faces and vertices based on dependency graphs.
- mesh_
topology_ flow - Topology flow analysis: edge loops, edge rings, poles detection.
- mesh_
topology_ query - Topology query: genus, Euler number, connected components stub.
- mesh_
topology_ repair - Non-manifold edge removal and T-junction resolution for triangle meshes.
- mesh_
torus - mesh_
torus_ gen - Torus mesh generation.
- mesh_
torus_ knot - Torus knot mesh generator.
- mesh_
torus_ ring - Parametric torus mesh (ring torus).
- mesh_
track_ to - Track-to constraint for mesh orientation — aligns a local axis toward a target.
- mesh_
transfer_ attr - Transfer scalar/vector attributes from a source mesh to a target mesh using nearest-neighbour or barycentric interpolation.
- mesh_
transfer_ weights - mesh_
transform_ constraint - General transform constraint — maps source transform channels to target channels.
- mesh_
trapezohedron - Trapezohedron (dual of antiprism) mesh generator.
- mesh_
trefoil - Trefoil knot mesh generation.
- mesh_
tri_ strip - Triangle-strip encoding and decoding for indexed triangle meshes.
- mesh_
tri_ to_ quad - Pair adjacent triangles into quads (greedy pairing).
- mesh_
trim - Trim mesh with a cutting plane: keep vertices (and their faces) above the plane.
- mesh_
tris_ to_ quads - Convert triangle pairs to quads.
- mesh_
tube - Generate a tube/pipe mesh along a polyline (list of centre-line points).
- mesh_
tube_ curve - Tube geometry along an arbitrary 3-D curve (generalized pipe).
- mesh_
tube_ deform - mesh_
tube_ mesh - Procedural tube/pipe mesh generation along a polyline path.
- mesh_
tweak_ tool - Soft-selection vertex tweaking tool.
- mesh_
twist_ modifier - mesh_
unfold - Unfold a triangle mesh to a flat 2D net using a spanning tree approach.
- mesh_
unsubdivide - Un-subdivide: collapse edge loops to reduce mesh resolution.
- mesh_
uv_ align_ axis - UV axis alignment tool — aligns UV islands to U or V axis.
- mesh_
uv_ atlas - UV atlas management: island tracking, packing stats, and utility helpers.
- mesh_
uv_ copy_ paste - UV copy/paste between meshes or UV layers.
- mesh_
uv_ minimize_ stretch - UV stretch minimization step for parametric UV unwrapping.
- mesh_
uv_ pack - Advanced UV island packing using a shelf-fit bin packing algorithm.
- mesh_
uv_ pin - UV vertex pinning for relaxation algorithms.
- mesh_
uv_ rotate_ align - UV rotate-to-align selected edges tool.
- mesh_
uv_ scale_ to_ bounds - UV scale-to-bounds operation — fits UV islands into a target rectangle.
- mesh_
uv_ seam - UV seam detection, marking and analysis for mesh parameterisation.
- mesh_
uv_ stitch - UV seam stitching — merging UV islands across seams.
- mesh_
vertex_ animation - Vertex animation frame storage — stores per-frame vertex position arrays.
- mesh_
vertex_ attr - Generic per-vertex attribute storage (float arrays of arbitrary width).
- mesh_
vertex_ cluster - mesh_
vertex_ color - mesh_
vertex_ color_ layer - Vertex color layer management.
- mesh_
vertex_ deform - Per-vertex deformation utilities: displacement, lattice, and blend-based.
- mesh_
vertex_ degree - Vertex degree (valence) analysis for mesh vertices.
- mesh_
vertex_ group - Named vertex group management with per-vertex weights.
- mesh_
vertex_ group_ weight - Named vertex weight groups for mesh deformation.
- mesh_
vertex_ merge - mesh_
vertex_ order_ v2 - Vertex reordering strategies: cache-friendly, axis-sorted, and Morton order.
- mesh_
vertex_ project - Vertex projection utilities.
- mesh_
vertex_ slide - Vertex slide: slide a vertex along an edge.
- mesh_
vertex_ smooth_ v2 - Vertex position smoothing: Laplacian, Taubin, and constrained variants.
- mesh_
vertex_ snap - Vertex snapping utilities.
- mesh_
vertex_ split - Vertex splitting: duplicate shared vertices across UV seams or hard edges.
- mesh_
vertex_ weight - Per-vertex scalar weight buffers with normalisation and blending support.
- mesh_
vertex_ weld - Vertex welding by threshold.
- mesh_
view_ dependent_ lod - View-dependent LOD selection — chooses detail level based on camera parameters.
- mesh_
visibility - Per-face and per-vertex visibility classification for a mesh.
- mesh_
volume_ query - Mesh volume computation stub (divergence theorem approach).
- mesh_
voronoi - Voronoi partitioning on mesh surface via BFS from seed vertices.
- mesh_
voronoi_ cell - Voronoi cell mesh from seed points, clipped to AABB.
- mesh_
voxel_ oct - Octree-based voxel structure for a mesh.
- mesh_
voxelize - Voxelize a triangle mesh into a 3D boolean occupancy grid.
- mesh_
warp - Mesh warping via Radial Basis Functions (RBF).
- mesh_
warp_ deform - Warp-based mesh deformation using radial basis functions.
- mesh_
warp_ modifier - Simple warp (lattice-based vertex displacement).
- mesh_
wave_ deform - Wave and ripple deformation of mesh vertices.
- mesh_
wave_ mesh - Generate a planar wave mesh (animated sine-wave surface).
- mesh_
wedge - Wedge (triangular prism) mesh primitive and per-wedge attribute storage.
- mesh_
winding_ query - Winding number inside/outside test for meshes stub.
- mesh_
wire_ frame - Generate a wireframe line-segment mesh from a triangle mesh.
- mesh_
wire_ mesh - Convert a triangle mesh into a wire-frame (edge-only) representation.
- mesh_
wireframe_ modifier - mesh_
wrinkle_ map - mesh_
zup_ convert - Convert mesh coordinates between Y-up and Z-up conventions.
- microdisp
- Procedural micro-displacement for mesh surface detail.
- normal_
map_ bake - normals
- octree
- Octree spatial index for fast 3-D point queries.
- pose_
library - Skeletal pose library: named pose presets stored as per-joint rotation quaternions.
- proxy_
gen - ray_
pick - remesh
- Isotropic remeshing via iterative edge operations: split long edges, collapse short edges, flip edges for valence, tangential smoothing.
- repair
- retarget
- sampling
- seam_
cut - UV seam cutting utilities.
- shapes
- skeleton
- Skeleton/joint hierarchy for animation-ready mesh export.
- skinning
- Linear Blend Skinning (LBS) for deforming mesh vertices using a skeleton.
- smooth
- spring_
deform - stats
- subdivide
- suit
- terrain
- thickness
- uv_
quality - uvgen
- visibility
- View frustum culling, backface culling, and visibility classification.
- voxelize
- vpaint
- weld
- Mesh vertex welding and seam repair utilities.
- winding