runmat-meshing 0.6.0

Topology-first meshing pipeline orchestration for RunMat
Documentation
use runmat_meshing_core::contracts::MeshBackendSummary;
use runmat_meshing_tetrahedron::generate::TetrahedronMesh;

use super::backend_counts::tetrahedron_entity_count;

pub(super) fn plc_input_and_generation_summary(
    tetrahedron_mesh: &TetrahedronMesh,
    base: MeshBackendSummary,
) -> MeshBackendSummary {
    MeshBackendSummary {
        plc_input_node_count: tetrahedron_entity_count(tetrahedron_mesh, "input_plc_nodes"),
        plc_input_facet_count: tetrahedron_entity_count(tetrahedron_mesh, "input_plc_facets"),
        plc_input_protected_edge_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_protected_edges",
        ),
        plc_input_boundary_component_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_boundary_components",
        ),
        plc_input_boundary_component_node_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_boundary_component_nodes",
        ),
        plc_input_max_boundary_component_node_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_max_boundary_component_nodes",
        ),
        plc_input_shell_nesting_classified: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_shell_nesting_classified",
        ) > 0,
        plc_input_outer_shell_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_outer_shells",
        ),
        plc_input_nested_shell_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_nested_shells",
        ),
        plc_input_max_shell_nesting_depth: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_max_shell_nesting_depth",
        ),
        plc_input_material_region_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_material_regions",
        ),
        plc_input_material_region_facet_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_material_region_facets",
        ),
        plc_input_cad_curve_boundary_source_edge_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_cad_curve_boundary_source_edges",
        ),
        plc_input_cad_curve_boundary_segment_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_cad_curve_boundary_segments",
        ),
        plc_input_cad_curve_imported_edge_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_cad_curve_imported_edges",
        ),
        plc_input_cad_curve_evaluator_edge_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_cad_curve_evaluator_edges",
        ),
        plc_input_cad_curve_evaluator_sample_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_cad_curve_evaluator_samples",
        ),
        plc_input_cad_curve_live_query_edge_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_cad_curve_live_query_edges",
        ),
        plc_input_cad_curve_live_query_sample_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_cad_curve_live_query_samples",
        ),
        plc_input_cad_curve_rejected_evaluator_sample_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_cad_curve_rejected_evaluator_samples",
        ),
        plc_input_cad_curve_curvature_sized_edge_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_cad_curve_curvature_sized_edges",
        ),
        plc_input_cad_curve_curvature_sample_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_cad_curve_curvature_samples",
        ),
        plc_input_surface_boundary_node_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "input_plc_surface_boundary_nodes",
        ),
        tetrahedron_generation_family: tetrahedron_mesh.tetrahedron_generation_family.clone(),
        tetrahedron_generation_attempted_family_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "solver_generation_attempted_families",
        ),
        tetrahedron_generation_rejected_family_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "solver_generation_rejected_families",
        ),
        tetrahedron_generation_selected_family_index: tetrahedron_entity_count(
            tetrahedron_mesh,
            "solver_generation_selected_family_index",
        ),
        tetrahedron_generation_interior_support_candidate_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "interior_support_candidate_points",
        ),
        tetrahedron_generation_interior_support_accepted_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "interior_support_accepted_points",
        ),
        tetrahedron_generation_nested_shell_outer_node_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "nested_tetrahedron_shell_outer_nodes",
        ),
        tetrahedron_generation_nested_shell_inner_node_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "nested_tetrahedron_shell_inner_nodes",
        ),
        tetrahedron_generation_nested_shell_generated_node_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "nested_tetrahedron_shell_generated_nodes",
        ),
        tetrahedron_generation_nested_shell_refill_boundary_face_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "nested_tetrahedron_shell_refill_boundary_faces",
        ),
        tetrahedron_generation_nested_shell_boundary_centroid_refinement_attempt_count:
            tetrahedron_entity_count(
                tetrahedron_mesh,
                "nested_tetrahedron_shell_boundary_centroid_refinement_attempts",
            ),
        tetrahedron_generation_nested_shell_boundary_centroid_refinement_rejected_count:
            tetrahedron_entity_count(
                tetrahedron_mesh,
                "nested_tetrahedron_shell_boundary_centroid_refinement_rejected",
            ),
        tetrahedron_generation_nested_shell_boundary_exact_cover_refill_count:
            tetrahedron_entity_count(
                tetrahedron_mesh,
                "nested_tetrahedron_shell_boundary_exact_cover_refills",
            ),
        tetrahedron_generation_nested_shell_boundary_centroid_refinement_refill_count:
            tetrahedron_entity_count(
                tetrahedron_mesh,
                "nested_tetrahedron_shell_boundary_centroid_refinement_refills",
            ),
        tetrahedron_generation_nested_shell_barycentric_partition_refill_count:
            tetrahedron_entity_count(
                tetrahedron_mesh,
                "nested_tetrahedron_shell_barycentric_partition_refills",
            ),
        tetrahedron_generation_nested_shell_outer_facet_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "nested_tetrahedron_shell_outer_facets",
        ),
        tetrahedron_generation_nested_shell_inner_facet_count: tetrahedron_entity_count(
            tetrahedron_mesh,
            "nested_tetrahedron_shell_inner_facets",
        ),
        ..base
    }
}