Skip to content

Commit a5e84b8

Browse files
committed
Review changes
1 parent 7ef87b6 commit a5e84b8

File tree

12 files changed

+90
-125
lines changed

12 files changed

+90
-125
lines changed

include/geode/geometry/nn_search.hpp

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -110,19 +110,18 @@ namespace geode
110110
const Point< dimension >& point, double threshold_distance ) const;
111111

112112
/*!
113-
* Get the neighbors closer than a given distance from the given point
114-
* or within a sphere
115-
* @param[in] point The center of the sphere
116-
* @param[in] threshold_distance The radius of the sphere
113+
* Get the neighbors within an ellipse described by its frame, centered
114+
* on the given point
115+
* @param[in] point The center of the ellipse
116+
* @param[in] epsilons_frame The frame describing the ellipse
117117
* @return the list of points inside this distance
118118
*/
119119
[[nodiscard]] std::vector< index_t > frame_neighbors(
120120
const Point< dimension >& point,
121-
const Frame< dimension >& epsilons_frame,
122-
const double factor_distance ) const;
121+
const Frame< dimension >& epsilons_frame ) const;
123122

124123
/*!
125-
* Get a number ol close neighbors from the given point
124+
* Get a number of close neighbors from the given point
126125
* @param[in] point The requested point
127126
* @param[in] nb_neighbors The number of neighbors to return
128127
* @return the list of points, it can be smaller than the requested
@@ -142,8 +141,7 @@ namespace geode
142141
const double epsilon ) const;
143142

144143
[[nodiscard]] ColocatedInfo colocated_index_mapping(
145-
const Frame< dimension >& epsilon,
146-
const double factor_distance ) const;
144+
const Frame< dimension >& epsilon ) const;
147145

148146
private:
149147
IMPLEMENTATION_MEMBER( impl_ );

include/geode/mesh/helpers/detail/curve_merger.hpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@ namespace geode
4141
namespace detail
4242
{
4343
template < index_t dimension >
44-
class EdgedCurveMerger
45-
: public VertexMerger< EdgedCurve< dimension >, dimension >
44+
class EdgedCurveMerger : public VertexMerger< EdgedCurve< dimension > >
4645
{
4746
public:
4847
struct EdgeOrigin
@@ -71,8 +70,7 @@ namespace geode
7170
double epsilon );
7271

7372
[[nodiscard]] std::unique_ptr< EdgedCurve< dimension > > merge(
74-
const Frame< dimension >& epsilons_frame,
75-
const double factor_distance );
73+
const Frame< dimension >& epsilons_frame );
7674

7775
[[nodiscard]] index_t edge_in_merged(
7876
index_t curve, index_t edge ) const;

include/geode/mesh/helpers/detail/point_set_merger.hpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ namespace geode
3838
namespace detail
3939
{
4040
template < index_t dimension >
41-
class PointSetMerger
42-
: public VertexMerger< PointSet< dimension >, dimension >
41+
class PointSetMerger : public VertexMerger< PointSet< dimension > >
4342
{
4443
public:
4544
PointSetMerger( absl::Span< const std::reference_wrapper<
@@ -51,7 +50,7 @@ namespace geode
5150
double epsilon );
5251

5352
[[nodiscard]] std::unique_ptr< PointSet< dimension > > merge(
54-
const Frame3D& frame, const double factor_distance );
53+
const Frame< dimension >& frame );
5554
};
5655
ALIAS_2D_AND_3D( PointSetMerger );
5756
} // namespace detail

include/geode/mesh/helpers/detail/solid_merger.hpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ namespace geode
4343
namespace detail
4444
{
4545
template < index_t dimension >
46-
class SolidMeshMerger
47-
: public VertexMerger< SolidMesh< dimension >, dimension >
46+
class SolidMeshMerger : public VertexMerger< SolidMesh< dimension > >
4847
{
4948
public:
5049
struct PolyhedronOrigin
@@ -76,8 +75,7 @@ namespace geode
7675
const double epsilon );
7776

7877
[[nodiscard]] std::unique_ptr< SolidMesh< dimension > > merge(
79-
const Frame< dimension >& epsilons_frame,
80-
const double factor_distance );
78+
const Frame< dimension >& epsilons_frame );
8179

8280
[[nodiscard]] index_t polyhedron_in_merged(
8381
index_t solid, index_t polyhedron ) const;

include/geode/mesh/helpers/detail/surface_merger.hpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ namespace geode
4242
{
4343
template < index_t dimension >
4444
class SurfaceMeshMerger
45-
: public VertexMerger< SurfaceMesh< dimension >, dimension >
45+
: public VertexMerger< SurfaceMesh< dimension > >
4646
{
4747
public:
4848
struct PolygonOrigin
@@ -72,8 +72,7 @@ namespace geode
7272
double epsilon );
7373

7474
[[nodiscard]] std::unique_ptr< SurfaceMesh< dimension > > merge(
75-
const Frame< dimension >& epsilons_frame,
76-
const double factor_distance );
75+
const Frame< dimension >& epsilons_frame );
7776

7877
[[nodiscard]] index_t polygon_in_merged(
7978
index_t surface, index_t polygon ) const;

include/geode/mesh/helpers/detail/vertex_merger.hpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ namespace geode
3434
{
3535
namespace detail
3636
{
37-
template < typename Mesh, index_t dimension >
37+
template < typename Mesh >
3838
class VertexMerger
3939
{
4040
public:
@@ -59,10 +59,6 @@ namespace geode
5959
index_t vertex ) const;
6060

6161
protected:
62-
// VertexMerger(
63-
// absl::Span< const std::reference_wrapper< const Mesh > >
64-
// meshes, double epsilon );
65-
6662
VertexMerger(
6763
absl::Span< const std::reference_wrapper< const Mesh > >
6864
meshes );
@@ -82,8 +78,7 @@ namespace geode
8278

8379
void create_points( double epsilon );
8480

85-
void create_points( const Frame< dimension >& epsilons_frame,
86-
const double factor_distance );
81+
void create_points( const Frame< Mesh::dim >& epsilons_frame );
8782

8883
private:
8984
IMPLEMENTATION_MEMBER( impl_ );

src/geode/geometry/nn_search.cpp

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,7 @@ namespace geode
7979
}
8080

8181
std::vector< index_t > frame_neighbors( const Point< dimension >& point,
82-
const Frame< dimension >& epsilons_frame,
83-
const double factor_distance ) const
82+
const Frame< dimension >& epsilons_frame ) const
8483
{
8584
std::vector< nanoflann::ResultItem< index_t, double > > results;
8685
nanoflann::SearchParameters params;
@@ -89,8 +88,7 @@ namespace geode
8988
epsilons_frame.max_elongation_direction();
9089
const auto max_elongation =
9190
epsilons_frame.direction( max_elongation_direction ).length();
92-
const auto radius = factor_distance * factor_distance
93-
* max_elongation * max_elongation;
91+
const auto radius = max_elongation * max_elongation;
9492
const auto nb_results = nn_tree_.radiusSearch(
9593
&copy( point )[0], radius, results, params );
9694
std::vector< index_t > indices;
@@ -193,14 +191,12 @@ namespace geode
193191
typename geode::NNSearch< dimension >::ColocatedInfo
194192
colocated_index_mapping(
195193
const geode::NNSearch< dimension >& nn_search,
196-
const Frame< dimension >& epsilons_frame,
197-
const double factor_distance ) const
194+
const Frame< dimension >& epsilons_frame ) const
198195
{
199196
for( const auto d : LRange{ dimension } )
200197
{
201198
OPENGEODE_EXCEPTION(
202-
epsilons_frame.direction( d ).length() * factor_distance
203-
>= GLOBAL_EPSILON,
199+
epsilons_frame.direction( d ).length() >= GLOBAL_EPSILON,
204200
"[NNSearch::colocated_index_mapping] Given epsilon too "
205201
"small, "
206202
"should be bigger than GLOBAL_EPSILON (i.e. ",
@@ -211,15 +207,14 @@ namespace geode
211207
std::vector< index_t > mapping( nb_points, NO_ID );
212208
std::mutex mutex;
213209
async::parallel_for( async::irange( index_t{ 0 }, nb_points ),
214-
[&nn_search, &epsilons_frame, &factor_distance, &mapping,
215-
&mutex, this]( index_t point_id ) {
210+
[&nn_search, &epsilons_frame, &mapping, &mutex, this](
211+
index_t point_id ) {
216212
if( mapping[point_id] != NO_ID )
217213
{
218214
return;
219215
}
220-
const auto vertices_around =
221-
frame_neighbors( nn_search.point( point_id ),
222-
epsilons_frame, factor_distance );
216+
const auto vertices_around = frame_neighbors(
217+
nn_search.point( point_id ), epsilons_frame );
223218
std::lock_guard< std::mutex > lock( mutex );
224219
if( mapping[point_id] != NO_ID )
225220
{
@@ -357,10 +352,9 @@ namespace geode
357352
template < index_t dimension >
358353
std::vector< index_t > NNSearch< dimension >::frame_neighbors(
359354
const Point< dimension >& point,
360-
const Frame< dimension >& epsilons_frame,
361-
const double factor_distance ) const
355+
const Frame< dimension >& epsilons_frame ) const
362356
{
363-
return impl_->frame_neighbors( point, epsilons_frame, factor_distance );
357+
return impl_->frame_neighbors( point, epsilons_frame );
364358
}
365359

366360
template < index_t dimension >
@@ -381,11 +375,9 @@ namespace geode
381375
template < geode::index_t dimension >
382376
typename geode::NNSearch< dimension >::ColocatedInfo
383377
NNSearch< dimension >::colocated_index_mapping(
384-
const Frame< dimension >& epsilons_frame,
385-
const double factor_distance ) const
378+
const Frame< dimension >& epsilons_frame ) const
386379
{
387-
return impl_->colocated_index_mapping(
388-
*this, epsilons_frame, factor_distance );
380+
return impl_->colocated_index_mapping( *this, epsilons_frame );
389381
}
390382

391383
template class opengeode_geometry_api NNSearch< 2 >;

src/geode/mesh/helpers/detail/curve_merger.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,9 @@ namespace geode
7171

7272
std::unique_ptr< EdgedCurve< dimension > > merge(
7373
EdgedCurveMerger< dimension >& merger,
74-
const Frame< dimension >& epsilons_frame,
75-
const double factor_distance )
74+
const Frame< dimension >& epsilons_frame )
7675
{
77-
merger.create_points( epsilons_frame, factor_distance );
76+
merger.create_points( epsilons_frame );
7877
create_edges( merger );
7978
clean_curve( merger );
8079
curve_id_.clear();
@@ -197,8 +196,7 @@ namespace geode
197196
EdgedCurveMerger< dimension >::EdgedCurveMerger( absl::Span<
198197
const std::reference_wrapper< const EdgedCurve< dimension > > >
199198
curves )
200-
: VertexMerger< EdgedCurve< dimension >, dimension >{ curves },
201-
impl_{ curves }
199+
: VertexMerger< EdgedCurve< dimension > >{ curves }, impl_{ curves }
202200
{
203201
}
204202

@@ -219,10 +217,9 @@ namespace geode
219217
template < index_t dimension >
220218
std::unique_ptr< EdgedCurve< dimension > >
221219
EdgedCurveMerger< dimension >::merge(
222-
const Frame< dimension >& epsilons_frame,
223-
const double factor_distance )
220+
const Frame< dimension >& epsilons_frame )
224221
{
225-
return impl_->merge( *this, epsilons_frame, factor_distance );
222+
return impl_->merge( *this, epsilons_frame );
226223
}
227224

228225
template < index_t dimension >
@@ -233,8 +230,8 @@ namespace geode
233230
}
234231

235232
template < index_t dimension >
236-
auto EdgedCurveMerger< dimension >::edge_origins(
237-
index_t edge ) const -> const EdgeOrigins&
233+
auto EdgedCurveMerger< dimension >::edge_origins( index_t edge ) const
234+
-> const EdgeOrigins&
238235
{
239236
return impl_->edge_origins( edge );
240237
}

src/geode/mesh/helpers/detail/point_set_merger.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ namespace geode
3333
PointSetMerger< dimension >::PointSetMerger( absl::Span<
3434
const std::reference_wrapper< const PointSet< dimension > > >
3535
pointsets )
36-
: VertexMerger< PointSet< dimension >, dimension >{ pointsets }
36+
: VertexMerger< PointSet< dimension > >{ pointsets }
3737
{
3838
}
3939

@@ -55,13 +55,13 @@ namespace geode
5555
template < index_t dimension >
5656
std::unique_ptr< PointSet< dimension > >
5757
PointSetMerger< dimension >::merge(
58-
const Frame3D& frame, const double factor_distance )
58+
const Frame< dimension >& frame )
5959
{
60-
this->create_points( frame, factor_distance );
60+
this->create_points( frame );
6161
return this->steal_mesh();
6262
}
6363

64-
// template class opengeode_mesh_api PointSetMerger< 2 >;
65-
// template class opengeode_mesh_api PointSetMerger< 3 >;
64+
template class opengeode_mesh_api PointSetMerger< 2 >;
65+
template class opengeode_mesh_api PointSetMerger< 3 >;
6666
} // namespace detail
6767
} // namespace geode

src/geode/mesh/helpers/detail/solid_merger.cpp

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,9 @@ namespace geode
9797

9898
std::unique_ptr< SolidMesh< dimension > > merge(
9999
SolidMeshMerger< dimension >& merger,
100-
const Frame3D& epsilons_frame,
101-
const double factor_distance )
100+
const Frame3D& epsilons_frame )
102101
{
103-
merger.create_points( epsilons_frame, factor_distance );
102+
merger.create_points( epsilons_frame );
104103
create_polyhedra( merger );
105104
create_adjacencies( merger );
106105
clean_solid( merger );
@@ -329,8 +328,7 @@ namespace geode
329328
SolidMeshMerger< dimension >::SolidMeshMerger( absl::Span<
330329
const std::reference_wrapper< const SolidMesh< dimension > > >
331330
solids )
332-
: VertexMerger< SolidMesh< dimension >, dimension >{ solids },
333-
impl_{ solids }
331+
: VertexMerger< SolidMesh< dimension > >{ solids }, impl_{ solids }
334332
{
335333
}
336334

@@ -351,10 +349,9 @@ namespace geode
351349
template < index_t dimension >
352350
std::unique_ptr< SolidMesh< dimension > >
353351
SolidMeshMerger< dimension >::merge(
354-
const Frame< dimension >& epsilons_frame,
355-
const double factor_distance )
352+
const Frame< dimension >& epsilons_frame )
356353
{
357-
return impl_->merge( *this, epsilons_frame, factor_distance );
354+
return impl_->merge( *this, epsilons_frame );
358355
}
359356

360357
template < index_t dimension >

0 commit comments

Comments
 (0)