14#include <lagrange/SurfaceMesh.h>
15#include <lagrange/internal/constants.h>
16#include <lagrange/primitive/PrimitiveOptions.h>
20namespace lagrange::primitive {
27 using Scalar = PrimitiveOptions::Scalar;
36 Scalar
end_angle =
static_cast<Scalar
>(2 * lagrange::internal::pi);
45 std::array<Scalar, 3>
normal = {0, 0, 1};
47 void project_to_valid_range()
64template <
typename Scalar,
typename Index>
@ Scalar
Mesh attribute must have exactly 1 channel.
Definition AttributeFwd.h:56
SurfaceMesh< Scalar, Index > generate_disc(DiscOptions setting)
Generates a disc mesh with the specified settings.
Definition generate_disc.cpp:31
Definition generate_disc.h:26
size_t radial_sections
Number of radial sections (spokes) in the disc.
Definition generate_disc.h:39
Scalar end_angle
End angle of the disc in radians.
Definition generate_disc.h:36
std::array< Scalar, 3 > normal
Unit normal vector for the disc.
Definition generate_disc.h:45
Scalar start_angle
Start angle of the disc in radians.
Definition generate_disc.h:33
Scalar radius
Radius of the disc.
Definition generate_disc.h:30
size_t num_rings
Number of concentric rings in the disc.
Definition generate_disc.h:42
Common settings shared by all primitives.
Definition PrimitiveOptions.h:28