Lagrange
Loading...
Searching...
No Matches
IcosahedronOptions Struct Reference

Options for generating an icosahedron mesh. More...

#include <lagrange/primitive/generate_icosahedron.h>

Inheritance diagram for IcosahedronOptions:
PrimitiveOptions

Public Types

using Scalar = PrimitiveOptions::Scalar
 
- Public Types inherited from PrimitiveOptions
using Scalar = float
 

Public Member Functions

void project_to_valid_range ()
 Clamps all parameters to valid ranges.
 

Public Attributes

Scalar radius = 1
 Radius of the circumscribed sphere around the icosahedron.
 
- Public Attributes inherited from PrimitiveOptions
std::array< Scalar, 3 > center {0, 0, 0}
 Center of the primitive in 3D space.
 
bool with_top_cap = true
 Whether to generate top cap of the primitive (if applicable).
 
bool with_bottom_cap = true
 Whether to generate bottom cap of the primitive (if applicable).
 
bool with_cross_section = true
 Whether to generate cross section of the primitive (if applicable).
 
bool triangulate = false
 Whether to triangulate the generated surface mesh.
 
bool fixed_uv = false
 Whether to use fixed UV coordinates regardless of the primitive parameters.
 
std::string_view normal_attribute_name = "@normal"
 Name of the output indexed attribute storing the normal vectors.
 
std::string_view uv_attribute_name = "@uv"
 Name of the output indexed attribute storing the UV coordinates.
 
std::string_view semantic_label_attribute_name = "@semantic_label"
 Name of the output facet attribute storing the semantic labels.
 
Scalar dist_threshold = static_cast<Scalar>(1e-6)
 Two vertices are considered coinciding if the distance between them is smaller than dist_threshold.
 
Scalar angle_threshold = static_cast<Scalar>(30 * lagrange::internal::pi / 180)
 An edge is considered sharp if its dihedral angle is larger than angle_threshold.
 
Scalar epsilon = static_cast<Scalar>(1e-6)
 Numerical tolerance used for comparing Scalar values.
 
Scalar uv_padding = static_cast<Scalar>(0.005)
 Padding size for UV charts to avoid bleeding.
 

Detailed Description

Options for generating an icosahedron mesh.

Member Function Documentation

◆ project_to_valid_range()

void project_to_valid_range ( )
inline

Clamps all parameters to valid ranges.

This method ensures that:

  • The radius is non-negative

Invalid parameters are automatically corrected to prevent geometric inconsistencies.


The documentation for this struct was generated from the following file: