14#include <lagrange/primitive/api.h>
16#include <lagrange/SurfaceMesh.h>
17#include <lagrange/internal/constants.h>
18#include <lagrange/primitive/PrimitiveOptions.h>
22namespace lagrange::primitive {
29 using Scalar = PrimitiveOptions::Scalar;
38 Scalar
end_angle =
static_cast<Scalar
>(2 * lagrange::internal::pi);
47 std::array<Scalar, 3>
normal = {0, 0, 1};
49 void project_to_valid_range()
66template <
typename Scalar,
typename Index>
67LA_PRIMITIVE_API SurfaceMesh<Scalar, Index>
generate_disc(DiscOptions setting);
@ 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:28
size_t radial_sections
Number of radial sections (spokes) in the disc.
Definition generate_disc.h:41
Scalar end_angle
End angle of the disc in radians.
Definition generate_disc.h:38
std::array< Scalar, 3 > normal
Unit normal vector for the disc.
Definition generate_disc.h:47
Scalar start_angle
Start angle of the disc in radians.
Definition generate_disc.h:35
Scalar radius
Radius of the disc.
Definition generate_disc.h:32
size_t num_rings
Number of concentric rings in the disc.
Definition generate_disc.h:44
Common settings shared by all primitives.
Definition PrimitiveOptions.h:28