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

Common settings shared by all primitives. More...

#include <lagrange/primitive/PrimitiveOptions.h>

Inheritance diagram for PrimitiveOptions:
DiscOptions IcosahedronOptions OctahedronOptions RoundedConeOptions RoundedCubeOptions RoundedPlaneOptions SphereOptions SubdividedSphereOptions SweptSurfaceOptions TorusOptions

Public Types

using Scalar = float
 

Public Attributes

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

Common settings shared by all primitives.

Member Data Documentation

◆ center

std::array<Scalar, 3> center {0, 0, 0}

Center of the primitive in 3D space.

Note
The center is not necessarily the mesh centroid or bounding box center due to the nature of parametric primitive. The center is invariant to the parameter changes.
  • For torus, the center is the center of the torus ring.
  • For sphere, the center is the center of the sphere.
  • For cylinder, the center is the center of the bottom cap of the cylinder.
  • For cone, the center is the center of the bottom cap of the cone.

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