Skip to content

Commit e2fd059

Browse files
Merge pull request #137 from Geode-solutions/feat/degeneration_adding_function_with_tolerance
feat(Degeneration): adding degeneration inspection function with tolerance argument.
2 parents 8823375 + d518a70 commit e2fd059

16 files changed

+225
-44
lines changed

bindings/python/src/inspector/criterion/degeneration/brep_meshes_degeneration.hpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@ namespace geode
4747
.def( pybind11::init< const BRep& >() )
4848
.def( "inspect_elements_degeneration",
4949
&BRepComponentMeshesDegeneration::
50-
inspect_elements_degeneration );
50+
inspect_elements_degeneration )
51+
.def( "inspect_polygons_degeneration",
52+
&BRepComponentMeshesDegeneration::
53+
inspect_polygons_degeneration )
54+
.def( "inspect_edges_degeneration",
55+
&BRepComponentMeshesDegeneration::inspect_edges_degeneration )
56+
.def( "inspect_polyhedra_degeneration",
57+
&BRepComponentMeshesDegeneration::
58+
inspect_polyhedra_degeneration );
5159
}
5260
} // namespace geode

bindings/python/src/inspector/criterion/degeneration/edgedcurve_degeneration.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ namespace geode
4040
.def( "is_mesh_degenerated",
4141
&EdgedCurveDegeneration::is_mesh_degenerated )
4242
.def( "degenerated_edges",
43-
&EdgedCurveDegeneration::degenerated_edges );
43+
&EdgedCurveDegeneration::degenerated_edges )
44+
.def( "small_edges", &EdgedCurveDegeneration::small_edges );
4445
}
4546
void define_edged_curve_degeneration( pybind11::module& module )
4647
{

bindings/python/src/inspector/criterion/degeneration/solid_degeneration.hpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,11 @@ namespace geode
4141
&SolidMeshDegeneration::is_mesh_degenerated )
4242
.def(
4343
"degenerated_edges", &SolidMeshDegeneration::degenerated_edges )
44+
.def( "small_edges", &SolidMeshDegeneration::small_edges )
4445
.def( "degenerated_polyhedra",
45-
&SolidMeshDegeneration::degenerated_polyhedra );
46+
&SolidMeshDegeneration::degenerated_polyhedra )
47+
.def( "small_height_polyhedra",
48+
&SolidMeshDegeneration::small_height_polyhedra );
4649
}
4750
void define_solid_degeneration( pybind11::module& module )
4851
{

bindings/python/src/inspector/criterion/degeneration/surface_degeneration.hpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,11 @@ namespace geode
4141
&SurfaceMeshDegeneration::is_mesh_degenerated )
4242
.def( "degenerated_edges",
4343
&SurfaceMeshDegeneration::degenerated_edges )
44+
.def( "small_edges", &SurfaceMeshDegeneration::small_edges )
4445
.def( "degenerated_polygons",
45-
&SurfaceMeshDegeneration::degenerated_polygons );
46+
&SurfaceMeshDegeneration::degenerated_polygons )
47+
.def( "small_height_polygons",
48+
&SurfaceMeshDegeneration::small_height_polygons );
4649
}
4750
void define_surface_degeneration( pybind11::module& module )
4851
{

include/geode/inspector/criterion/degeneration/brep_meshes_degeneration.hpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,15 @@ namespace geode
7474
[[nodiscard]] BRepMeshesDegenerationInspectionResult
7575
inspect_elements_degeneration() const;
7676

77+
[[nodiscard]] BRepMeshesDegenerationInspectionResult
78+
inspect_edges_degeneration( double threshold ) const;
79+
80+
[[nodiscard]] BRepMeshesDegenerationInspectionResult
81+
inspect_polygons_degeneration( double threshold ) const;
82+
83+
[[nodiscard]] BRepMeshesDegenerationInspectionResult
84+
inspect_polyhedra_degeneration( double threshold ) const;
85+
7786
private:
7887
IMPLEMENTATION_MEMBER( impl_ );
7988
};

include/geode/inspector/criterion/degeneration/edgedcurve_degeneration.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ namespace geode
5252

5353
[[nodiscard]] InspectionIssues< index_t > degenerated_edges() const;
5454

55+
[[nodiscard]] InspectionIssues< index_t > small_edges(
56+
double threshold ) const;
57+
5558
private:
5659
IMPLEMENTATION_MEMBER( impl_ );
5760
};

include/geode/inspector/criterion/degeneration/solid_degeneration.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,14 @@ namespace geode
5151

5252
[[nodiscard]] bool is_mesh_degenerated() const;
5353

54+
[[nodiscard]] InspectionIssues< index_t > small_edges(
55+
double threshold ) const;
56+
5457
[[nodiscard]] InspectionIssues< index_t > degenerated_edges() const;
5558

59+
[[nodiscard]] InspectionIssues< index_t > small_height_polyhedra(
60+
double threshold ) const;
61+
5662
[[nodiscard]] InspectionIssues< index_t > degenerated_polyhedra() const;
5763

5864
private:

include/geode/inspector/criterion/degeneration/surface_degeneration.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,14 @@ namespace geode
5151

5252
[[nodiscard]] bool is_mesh_degenerated() const;
5353

54+
[[nodiscard]] InspectionIssues< index_t > small_edges(
55+
double threshold ) const;
56+
5457
[[nodiscard]] InspectionIssues< index_t > degenerated_edges() const;
5558

59+
[[nodiscard]] InspectionIssues< index_t > small_height_polygons(
60+
double threshold ) const;
61+
5662
[[nodiscard]] InspectionIssues< index_t > degenerated_polygons() const;
5763

5864
private:

include/geode/inspector/criterion/internal/component_meshes_degeneration.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,13 @@ namespace geode
4848
OPENGEODE_DISABLE_COPY( ComponentMeshesDegeneration );
4949

5050
public:
51+
void add_small_edges( InspectionIssuesMap< index_t >& issues_map,
52+
double threshold ) const;
53+
54+
void add_small_height_polygons(
55+
InspectionIssuesMap< index_t >& issues_map,
56+
double threshold ) const;
57+
5158
void add_degenerated_edges(
5259
InspectionIssuesMap< index_t >& issues_map ) const;
5360

include/geode/inspector/criterion/internal/degeneration_impl.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,15 @@ namespace geode
4141

4242
[[nodiscard]] virtual bool is_mesh_degenerated() const;
4343

44+
[[nodiscard]] InspectionIssues< index_t > small_edges(
45+
double threshold ) const;
46+
4447
[[nodiscard]] InspectionIssues< index_t > degenerated_edges() const;
4548

4649
private:
50+
[[nodiscard]] bool edge_is_smaller_than_threshold(
51+
index_t edge_index, double threshold ) const;
52+
4753
[[nodiscard]] bool edge_is_degenerated( index_t edge_index ) const;
4854

4955
protected:

0 commit comments

Comments
 (0)