Skip to content

Commit e55e2a8

Browse files
committed
more 1D
1 parent 7e951ef commit e55e2a8

File tree

14 files changed

+59
-8
lines changed

14 files changed

+59
-8
lines changed

include/geode/geometry/basic_objects/infinite_line.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ namespace geode
5454

5555
[[nodiscard]] const Point< dimension >& origin() const;
5656
[[nodiscard]] const Vector< dimension >& direction() const;
57+
[[nodiscard]] double line_constant() const;
5758

5859
private:
5960
Vector< dimension > direction_;

include/geode/mesh/builder/geode/geode_point_set_builder.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,5 @@ namespace geode
6868
private:
6969
OpenGeodePointSet< dimension >& geode_point_set_;
7070
};
71-
ALIAS_2D_AND_3D( OpenGeodePointSetBuilder );
71+
ALIAS_1D_AND_2D_AND_3D( OpenGeodePointSetBuilder );
7272
} // namespace geode

include/geode/mesh/builder/point_set_builder.hpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ namespace geode
4545
: public VertexSetBuilder,
4646
public CoordinateReferenceSystemManagersBuilder< dimension >
4747
{
48-
OPENGEODE_TEMPLATE_ASSERT_2D_OR_3D( dimension );
49-
5048
public:
5149
static constexpr auto dim = dimension;
5250

@@ -75,5 +73,5 @@ namespace geode
7573
private:
7674
PointSet< dimension >& point_set_;
7775
};
78-
ALIAS_2D_AND_3D( PointSetBuilder );
76+
ALIAS_1D_AND_2D_AND_3D( PointSetBuilder );
7977
} // namespace geode

include/geode/mesh/core/geode/geode_point_set.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,5 +94,5 @@ namespace geode
9494
private:
9595
IMPLEMENTATION_MEMBER( impl_ );
9696
};
97-
ALIAS_2D_AND_3D( OpenGeodePointSet );
97+
ALIAS_1D_AND_2D_AND_3D( OpenGeodePointSet );
9898
} // namespace geode

include/geode/mesh/core/point_set.hpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ namespace geode
4646
class PointSet : public VertexSet,
4747
public CoordinateReferenceSystemManagers< dimension >
4848
{
49-
OPENGEODE_TEMPLATE_ASSERT_2D_OR_3D( dimension );
50-
5149
public:
5250
using Builder = PointSetBuilder< dimension >;
5351
static constexpr auto dim = dimension;
@@ -83,5 +81,5 @@ namespace geode
8381
template < typename Archive >
8482
void serialize( Archive& archive );
8583
};
86-
ALIAS_2D_AND_3D( PointSet );
84+
ALIAS_1D_AND_2D_AND_3D( PointSet );
8785
} // namespace geode

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ namespace geode
3434
FORWARD_DECLARATION_DIMENSION_CLASS( Segment );
3535
FORWARD_DECLARATION_DIMENSION_CLASS( Triangle );
3636
FORWARD_DECLARATION_DIMENSION_CLASS( TetrahedralSolid );
37+
FORWARD_DECLARATION_DIMENSION_CLASS( TriangulatedSurface );
3738
ALIAS_3D( TetrahedralSolid );
3839
class Tetrahedron;
3940
} // namespace geode
@@ -50,6 +51,11 @@ namespace geode
5051
void save_triangle(
5152
const Triangle< dimension >& triangle, std::string_view suffix );
5253

54+
template < index_t dimension >
55+
void save_triangles( const TriangulatedSurface< dimension >& surface,
56+
absl::Span< const index_t > indices,
57+
std::string_view suffix );
58+
5359
void opengeode_mesh_api save_tetrahedron(
5460
const Tetrahedron& tetrahedron, std::string_view suffix );
5561

src/geode/geometry/basic_objects/infinite_line.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,16 @@ namespace geode
6767
{
6868
return direction_;
6969
}
70+
template < typename PointType, index_t dimension >
71+
double GenericLine< PointType, dimension >::line_constant() const
72+
{
73+
double line_constant{ 0.0 };
74+
for( const auto i : LRange{ 2 } )
75+
{
76+
line_constant -= origin().value( i ) * direction().value( i );
77+
}
78+
return line_constant;
79+
}
7080

7181
template < index_t dimension >
7282
OwnerInfiniteLine< dimension >::OwnerInfiniteLine(

src/geode/mesh/builder/geode/geode_point_set_builder.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ namespace geode
8181
// Operation is directly handled by the AttributeManager
8282
}
8383

84+
template class opengeode_mesh_api OpenGeodePointSetBuilder< 1 >;
8485
template class opengeode_mesh_api OpenGeodePointSetBuilder< 2 >;
8586
template class opengeode_mesh_api OpenGeodePointSetBuilder< 3 >;
8687
} // namespace geode

src/geode/mesh/builder/point_set_builder.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ namespace geode
7777
}
7878
}
7979

80+
template class opengeode_mesh_api PointSetBuilder< 1 >;
8081
template class opengeode_mesh_api PointSetBuilder< 2 >;
8182
template class opengeode_mesh_api PointSetBuilder< 3 >;
8283
} // namespace geode

src/geode/mesh/builder/register_builder.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,16 @@ namespace geode
5757
MeshBuilderFactory::register_mesh_builder< OpenGeodeGraphBuilder >(
5858
OpenGeodeGraph::impl_name_static() );
5959

60+
MeshBuilderFactory::register_mesh_builder< OpenGeodePointSetBuilder1D >(
61+
OpenGeodePointSet1D::impl_name_static() );
6062
MeshBuilderFactory::register_mesh_builder< OpenGeodePointSetBuilder2D >(
6163
OpenGeodePointSet2D::impl_name_static() );
6264
MeshBuilderFactory::register_mesh_builder< OpenGeodePointSetBuilder3D >(
6365
OpenGeodePointSet3D::impl_name_static() );
6466

67+
MeshBuilderFactory::register_mesh_builder<
68+
OpenGeodeEdgedCurveBuilder1D >(
69+
OpenGeodeEdgedCurve1D::impl_name_static() );
6570
MeshBuilderFactory::register_mesh_builder<
6671
OpenGeodeEdgedCurveBuilder2D >(
6772
OpenGeodeEdgedCurve2D::impl_name_static() );

0 commit comments

Comments
 (0)