8#ifndef OPENSUBDIV3_FAR_STENCILTABLE_FACTORY_H
9#define OPENSUBDIV3_FAR_STENCILTABLE_FACTORY_H
11#include "../version.h"
18namespace OPENSUBDIV_VERSION {
33template <
typename REAL>
115 bool factorize =
true);
135 bool factorize =
true) {
137 refiner, baseStencilTable, localPointStencilTable, factorize);
162 bool factorize =
true);
167 static void generateControlVertStencils(
191template <
typename REAL>
288 reinterpret_cast<BaseTable const **
>(tables)));
295 bool factorize =
true) {
299 static_cast<BaseTable const *
>(baseStencilTable),
300 static_cast<BaseTable const *
>(localPointStencilTable),
308 bool factorize =
true) {
312 static_cast<BaseTable const *
>(baseStencilTable),
313 static_cast<BaseTable const *
>(localPointStencilTable),
322 bool factorize =
true) {
326 static_cast<BaseTable const *
>(baseStencilTable),
327 static_cast<BaseTable const *
>(localPointStencilTable),
328 channel, factorize));
333class LimitStencilTable;
348 Options options = Options()) {
354 static_cast<BaseTable const *
>(cvStencils),
363using namespace OPENSUBDIV_VERSION;
Container for arrays of parametric patches.
A specialized factory for StencilTable.
static StencilTableReal< REAL > const * Create(TopologyRefiner const &refiner, Options options=Options())
Instantiates StencilTable from TopologyRefiner that have been refined uniformly or adaptively.
static StencilTableReal< REAL > const * AppendLocalPointStencilTableFaceVarying(TopologyRefiner const &refiner, StencilTableReal< REAL > const *baseStencilTable, StencilTableReal< REAL > const *localPointStencilTable, int channel=0, bool factorize=true)
Utility function for stencil splicing for local point face-varying stencils.
@ INTERPOLATE_FACE_VARYING
face-varying primvar stencils
@ INTERPOLATE_VARYING
varying primvar stencils
@ INTERPOLATE_VERTEX
vertex primvar stencils
static StencilTableReal< REAL > const * AppendLocalPointStencilTableVarying(TopologyRefiner const &refiner, StencilTableReal< REAL > const *baseStencilTable, StencilTableReal< REAL > const *localPointStencilTable, bool factorize=true)
Utility function for stencil splicing for local point varying stencils.
static StencilTableReal< REAL > const * AppendLocalPointStencilTable(TopologyRefiner const &refiner, StencilTableReal< REAL > const *baseStencilTable, StencilTableReal< REAL > const *localPointStencilTable, bool factorize=true)
Utility function for stencil splicing for local point stencils.
static StencilTableReal< REAL > const * Create(int numTables, StencilTableReal< REAL > const **tables)
Instantiates StencilTable by concatenating an array of existing stencil tables.
A specialized factory for LimitStencilTable.
@ INTERPOLATE_FACE_VARYING
face-varying primvar stencils
@ INTERPOLATE_VARYING
varying primvar stencils
@ INTERPOLATE_VERTEX
vertex primvar stencils
std::vector< LocationArray > LocationArrayVec
static LimitStencilTableReal< REAL > const * Create(TopologyRefiner const &refiner, LocationArrayVec const &locationArrays, StencilTableReal< REAL > const *cvStencils=0, PatchTable const *patchTable=0, Options options=Options())
Instantiates LimitStencilTable from a TopologyRefiner that has been refined either uniformly or adapt...
Vertex stencil descriptor.
Vertex stencil class wrapping the template for compatibility.
Table of subdivision stencils.
Stencil table class wrapping the template for compatibility.
Limit point stencil descriptor.
Table of limit subdivision stencils.
Limit stencil table class wrapping the template for compatibility.
unsigned int factorizeIntermediateLevels
unsigned int maxLevel
generate stencils up to 'maxLevel'
unsigned int generateIntermediateLevels
vertices at all levels or highest only
unsigned int generateControlVerts
generate stencils for control-vertices
unsigned int generateOffsets
populate optional "_offsets" field
unsigned int interpolationMode
interpolation mode
unsigned int fvarChannel
face-varying channel to use
unsigned int interpolationMode
interpolation mode
unsigned int generate2ndDerivatives
Generate weights for 2nd derivatives.
unsigned int generate1stDerivatives
Generate weights for 1st derivatives.
Descriptor for limit surface locations.
REAL const * t
array of v coordinates
REAL const * s
array of u coordinates
int numLocations
number of (u,v) coordinates in the array
int ptexIdx
ptex face index
Stencil table factory class wrapping the template for compatibility.
static StencilTable const * AppendLocalPointStencilTableVarying(TopologyRefiner const &refiner, StencilTable const *baseStencilTable, StencilTable const *localPointStencilTable, bool factorize=true)
static StencilTable const * Create(TopologyRefiner const &refiner, Options options=Options())
static StencilTable const * AppendLocalPointStencilTableFaceVarying(TopologyRefiner const &refiner, StencilTable const *baseStencilTable, StencilTable const *localPointStencilTable, int channel=0, bool factorize=true)
static StencilTable const * AppendLocalPointStencilTable(TopologyRefiner const &refiner, StencilTable const *baseStencilTable, StencilTable const *localPointStencilTable, bool factorize=true)
static StencilTable const * Create(int numTables, StencilTable const **tables)
Stencil table factory class wrapping the template for compatibility.
static LimitStencilTable const * Create(TopologyRefiner const &refiner, LocationArrayVec const &locationArrays, StencilTable const *cvStencils=0, PatchTable const *patchTable=0, Options options=Options())
Stores topology data for a specified set of refinement options.