Skip to content

Commit cfaece0

Browse files
committed
fix(ModelColocation): Fixed verbose mode output for models with component meshes points colocated but on the same unique vertex.
1 parent cac272b commit cfaece0

File tree

2 files changed

+70
-12
lines changed

2 files changed

+70
-12
lines changed

src/geode/inspector/criterion/colocation/component_meshes_colocation.cpp

Lines changed: 68 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
#include <geode/basic/pimpl_impl.h>
2828
#include <geode/basic/uuid.h>
2929

30+
#include <geode/geometry/point.h>
31+
3032
#include <geode/mesh/core/edged_curve.h>
3133
#include <geode/mesh/core/solid_mesh.h>
3234
#include <geode/mesh/core/surface_mesh.h>
@@ -190,7 +192,7 @@ namespace
190192
for( const auto& line : model.lines() )
191193
{
192194
const geode::EdgedCurveColocation< dimension > inspector{
193-
line.mesh(), verbose
195+
line.mesh(), false
194196
};
195197
const auto nb_colocated = nb_points(
196198
filter_colocated_points_with_same_uuid< dimension, Model >(
@@ -210,7 +212,7 @@ namespace
210212
for( const auto& surface : model.surfaces() )
211213
{
212214
const geode::SurfaceMeshColocation< dimension > inspector{
213-
surface.mesh(), verbose
215+
surface.mesh(), false
214216
};
215217
const auto nb_colocated = nb_points(
216218
filter_colocated_points_with_same_uuid< dimension, Model >(
@@ -248,8 +250,7 @@ namespace
248250
model, verbose );
249251
for( const auto& block : model.blocks() )
250252
{
251-
const geode::SolidMeshColocation3D inspector{ block.mesh(),
252-
verbose };
253+
const geode::SolidMeshColocation3D inspector{ block.mesh(), false };
253254
const auto nb_colocated = nb_points(
254255
filter_colocated_points_with_same_uuid< 3, geode::BRep >( model,
255256
block.component_id(),
@@ -281,7 +282,7 @@ namespace
281282
for( const auto& line : model.lines() )
282283
{
283284
const geode::EdgedCurveColocation< dimension > inspector{
284-
line.mesh(), verbose
285+
line.mesh(), false
285286
};
286287
auto colocated_pts =
287288
filter_colocated_points_with_same_uuid< dimension, Model >(
@@ -291,12 +292,32 @@ namespace
291292
{
292293
components_colocated_points.emplace(
293294
line.id(), std::move( colocated_pts ) );
295+
if( verbose )
296+
{
297+
const auto& line_mesh = line.mesh();
298+
for( const auto& colocated_points_group : colocated_pts )
299+
{
300+
std::string point_group_string{ "" };
301+
for( const auto point_index : colocated_points_group )
302+
{
303+
absl::StrAppend(
304+
&point_group_string, " ", point_index );
305+
}
306+
geode::Logger::info( "Line with uuid ",
307+
line.id().string(), " has vertices with indices",
308+
point_group_string,
309+
" which are colocated at position [",
310+
line_mesh.point( colocated_points_group[0] )
311+
.string(),
312+
"]." );
313+
}
314+
}
294315
}
295316
}
296317
for( const auto& surface : model.surfaces() )
297318
{
298319
const geode::SurfaceMeshColocation< dimension > inspector{
299-
surface.mesh(), verbose
320+
surface.mesh(), false
300321
};
301322
auto colocated_pts =
302323
filter_colocated_points_with_same_uuid< dimension, Model >(
@@ -306,6 +327,26 @@ namespace
306327
{
307328
components_colocated_points.emplace(
308329
surface.id(), std::move( colocated_pts ) );
330+
if( verbose )
331+
{
332+
const auto& surface_mesh = surface.mesh();
333+
for( const auto& colocated_points_group : colocated_pts )
334+
{
335+
std::string point_group_string{ "" };
336+
for( const auto point_index : colocated_points_group )
337+
{
338+
absl::StrAppend(
339+
&point_group_string, " ", point_index );
340+
}
341+
geode::Logger::info( "Surface with uuid ",
342+
surface.id().string(), " has vertices with indices",
343+
point_group_string,
344+
" which are colocated at position [",
345+
surface_mesh.point( colocated_points_group[0] )
346+
.string(),
347+
"]." );
348+
}
349+
}
309350
}
310351
}
311352
return components_colocated_points;
@@ -327,7 +368,7 @@ namespace
327368
{
328369
auto components_colocated_points =
329370
model_components_colocated_points_groups_base< 3, geode::BRep >(
330-
model, verbose );
371+
model, false );
331372
for( const auto& block : model.blocks() )
332373
{
333374
const geode::SolidMeshColocation3D inspector{ block.mesh(),
@@ -339,6 +380,26 @@ namespace
339380
{
340381
components_colocated_points.emplace(
341382
block.id(), std::move( colocated_pts ) );
383+
if( verbose )
384+
{
385+
const auto& block_mesh = block.mesh();
386+
for( const auto& colocated_points_group : colocated_pts )
387+
{
388+
std::string point_group_string{ "" };
389+
for( const auto point_index : colocated_points_group )
390+
{
391+
absl::StrAppend(
392+
&point_group_string, " ", point_index );
393+
}
394+
geode::Logger::info( "Block with uuid ",
395+
block.id().string(), " has vertices with indices",
396+
point_group_string,
397+
" which are colocated at position [",
398+
block_mesh.point( colocated_points_group[0] )
399+
.string(),
400+
"]." );
401+
}
402+
}
342403
}
343404
}
344405
return components_colocated_points;

src/geode/inspector/criterion/private/colocation_impl.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,9 @@ namespace
7777
for( const auto& colocated_points_group : colocated_points_indices )
7878
{
7979
std::string point_group_string{ "" };
80-
for( const auto point_index :
81-
geode::Indices{ colocated_points_group } )
80+
for( const auto point_index : colocated_points_group )
8281
{
83-
point_group_string += " ";
84-
point_group_string +=
85-
std::to_string( colocated_points_group[point_index] );
82+
absl::StrAppend( &point_group_string, " ", point_index );
8683
}
8784
geode::Logger::info( "Vertices with indices",
8885
point_group_string, " are colocated at position [",

0 commit comments

Comments
 (0)