Lagrange
|
Subdivision surfaces. More...
Classes | |
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 > | |
SurfaceMesh< Scalar, Index > | subdivide_mesh (const SurfaceMesh< Scalar, Index > &mesh, const SubdivisionOptions &options={}) |
Evaluates the subdivision surface of a polygonal mesh. More... | |
template<typename Scalar , typename Index > | |
SurfaceMesh< Scalar, Index > | midpoint_subdivision (const SurfaceMesh< Scalar, Index > &mesh) |
Performs one step of midpoint subdivision for triangle meshes. More... | |
template<typename Scalar , typename Index > | |
SurfaceMesh< Scalar, Index > | sqrt_subdivision (const SurfaceMesh< Scalar, Index > &mesh) |
Performs one step of sqrt(3)-subdivision. More... | |
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.
SurfaceMesh< Scalar, Index > subdivide_mesh | ( | const SurfaceMesh< Scalar, Index > & | mesh, |
const SubdivisionOptions & | options = {} |
||
) |
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. |
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. |