|
Lagrange
|
Subdivision surfaces. More...
Classes | |
| struct | SharpnessResults |
Attribute ids returned by the compute_sharpness function. More... | |
| struct | SharpnessOptions |
Input options for the compute_sharpness function. More... | |
| class | InterpolatedAttributes |
| Helper class to select which attributes to interpolate. More... | |
| struct | SubdivisionOptions |
| Mesh subdivision options. More... | |
Enumerations | |
| enum class | SchemeType { Bilinear , CatmullClark , Loop } |
| Subdivision scheme. More... | |
| enum class | VertexBoundaryInterpolation { None , EdgeOnly , EdgeAndCorner } |
| Boundary Interpolation Rules. More... | |
| enum class | FaceVaryingInterpolation { None , CornersOnly , CornersPlus1 , CornersPlus2 , Boundaries , All } |
| Face-varying Interpolation Rules. More... | |
| enum class | RefinementType { Uniform , EdgeAdaptive } |
| Topology refinement method. More... | |
Functions | |
| template<typename Scalar, typename Index> | |
| SharpnessResults | compute_sharpness (SurfaceMesh< Scalar, Index > &mesh, const SharpnessOptions &options={}) |
| Compute subdivision options to handle sharp edges and vertices based on existing mesh attributes. | |
| template<typename Scalar, typename Index> | |
| SurfaceMesh< Scalar, Index > | subdivide_mesh (const SurfaceMesh< Scalar, Index > &mesh, const SubdivisionOptions &options={}) |
| Evaluates the subdivision surface of a polygonal mesh. | |
| template<typename Scalar, typename Index> | |
| SurfaceMesh< Scalar, Index > | midpoint_subdivision (const SurfaceMesh< Scalar, Index > &mesh) |
| Performs one step of midpoint subdivision for triangle meshes. | |
| template<typename Scalar, typename Index> | |
| SurfaceMesh< Scalar, Index > | sqrt_subdivision (const SurfaceMesh< Scalar, Index > &mesh) |
| Performs one step of sqrt(3)-subdivision. | |
Subdivision surfaces.
|
strong |
#include <lagrange/subdivision/mesh_subdivision.h>
Subdivision scheme.
|
strong |
#include <lagrange/subdivision/mesh_subdivision.h>
Boundary Interpolation Rules.
Boundary interpolation rules control how subdivision and the limit surface behave for faces adjacent to boundary edges and vertices.
|
strong |
#include <lagrange/subdivision/mesh_subdivision.h>
Face-varying Interpolation Rules.
Face-varying interpolation rules control how face-varying data is interpolated both in the interior of face-varying regions (smooth or linear) and at the boundaries where it is discontinuous (constrained to be linear or "pinned" in a number of ways). Where the topology is continuous and the interpolation chosen to be smooth, the behavior of face-varying interpolation will match that of the vertex interpolation.
|
strong |
#include <lagrange/subdivision/mesh_subdivision.h>
Topology refinement method.
| SharpnessResults compute_sharpness | ( | SurfaceMesh< Scalar, Index > & | mesh, |
| const SharpnessOptions & | options = {} ) |
#include <lagrange/subdivision/compute_sharpness.h>
Compute subdivision options to handle sharp edges and vertices based on existing mesh attributes.
This function performs the following operations:
float attributes based on indexed normals topology.The mesh is modified in place to add the necessary attributes. If no indexed normal attribute is found, and no autosmooth feature angle threshold is provided, then no sharpness information is computed.
| [in,out] | mesh | Input mesh to prepare for subdivision. |
| [in] | options | Input options for computing sharpness information. |
| Scalar | Mesh scalar type. |
| Index | Mesh index type. |
| SurfaceMesh< Scalar, Index > subdivide_mesh | ( | const SurfaceMesh< Scalar, Index > & | mesh, |
| const SubdivisionOptions & | options = {} ) |
#include <lagrange/subdivision/mesh_subdivision.h>
Evaluates the subdivision surface of a polygonal mesh.
| [in] | mesh | Input mesh to subdivide. |
| [in] | options | Subdivision options. |
| Scalar | Mesh scalar type. |
| Index | Mesh index type. |
| SurfaceMesh< Scalar, Index > midpoint_subdivision | ( | const SurfaceMesh< Scalar, Index > & | mesh | ) |
#include <lagrange/subdivision/midpoint_subdivision.h>
Performs one step of midpoint subdivision for triangle meshes.
| [in,out] | mesh | Input mesh to subdivide. |
| Scalar | Mesh scalar type. |
| Index | Mesh index type. |
| SurfaceMesh< Scalar, Index > sqrt_subdivision | ( | const SurfaceMesh< Scalar, Index > & | mesh | ) |
#include <lagrange/subdivision/sqrt_subdivision.h>
Performs one step of sqrt(3)-subdivision.
Implementation based on:
Kobbelt, Leif. "√3-subdivision." Proceedings of the 27th annual conference on Computer graphics and interactive techniques. 2000. https://doi.org/10.1145/344779.344835
| [in] | mesh | Input mesh to subdivide. Only triangle meshes are supported. |
| Scalar | Mesh scalar type. |
| Index | Mesh index type. |