 |
My Project
|
Go to the documentation of this file.
25 #ifndef OPENSUBDIV3_FAR_STENCILTABLE_FACTORY_H
26 #define OPENSUBDIV3_FAR_STENCILTABLE_FACTORY_H
28 #include "../version.h"
30 #include "../far/patchTable.h"
35 namespace OPENSUBDIV_VERSION {
39 class TopologyRefiner;
41 template <
typename REAL>
class StencilReal;
42 template <
typename REAL>
class StencilTableReal;
44 template <
typename REAL>
class LimitStencilReal;
45 template <
typename REAL>
class LimitStencilTableReal;
50 template <
typename REAL>
51 class StencilTableFactoryReal {
132 bool factorize =
true);
152 bool factorize =
true) {
154 refiner, baseStencilTable, localPointStencilTable, factorize);
179 bool factorize =
true);
184 static void generateControlVertStencils(
208 template <
typename REAL>
209 class LimitStencilTableFactoryReal {
274 Options options = Options());
305 reinterpret_cast<BaseTable const **
>(tables)));
312 bool factorize =
true) {
316 static_cast<BaseTable const *
>(baseStencilTable),
317 static_cast<BaseTable const *
>(localPointStencilTable),
325 bool factorize =
true) {
329 static_cast<BaseTable const *
>(baseStencilTable),
330 static_cast<BaseTable const *
>(localPointStencilTable),
339 bool factorize =
true) {
343 static_cast<BaseTable const *
>(baseStencilTable),
344 static_cast<BaseTable const *
>(localPointStencilTable),
345 channel, factorize));
350 class LimitStencilTable;
365 Options options = Options()) {
371 static_cast<BaseTable const *
>(cvStencils),
380 using namespace OPENSUBDIV_VERSION;
384 #endif // OPENSUBDIV3_FAR_STENCILTABLE_FACTORY_H
static const StencilTable * AppendLocalPointStencilTableVarying(TopologyRefiner const &refiner, StencilTable const *baseStencilTable, StencilTable const *localPointStencilTable, bool factorize=true)
@ INTERPOLATE_VARYING
varying primvar stencils
static const StencilTableReal< REAL > * Create(TopologyRefiner const &refiner, Options options=Options())
Instantiates StencilTable from TopologyRefiner that have been refined uniformly or adaptively.
Table of subdivision stencils.
A specialized factory for LimitStencilTable.
static const LimitStencilTable * Create(TopologyRefiner const &refiner, LocationArrayVec const &locationArrays, StencilTable const *cvStencils=0, PatchTable const *patchTable=0, Options options=Options())
const REAL * s
array of u coordinates
static const StencilTable * AppendLocalPointStencilTable(TopologyRefiner const &refiner, StencilTable const *baseStencilTable, StencilTable const *localPointStencilTable, bool factorize=true)
Vertex stencil class wrapping the template for compatibility.
unsigned int generate2ndDerivatives
Generate weights for 2nd derivatives.
A specialized factory for StencilTable.
unsigned int generateOffsets
populate optional "_offsets" field
unsigned int generate1stDerivatives
Generate weights for 1st derivatives.
Stores topology data for a specified set of refinement options.
unsigned int factorizeIntermediateLevels
const REAL * t
array of v coordinates
unsigned int maxLevel
generate stencils up to 'maxLevel'
static const StencilTableReal< REAL > * 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.
int numLocations
number of (u,v) coordinates in the array
int ptexIdx
ptex face index
Descriptor for limit surface locations.
unsigned int interpolationMode
interpolation mode
@ INTERPOLATE_VARYING
varying primvar stencils
std::vector< LocationArray > LocationArrayVec
unsigned int generateControlVerts
generate stencils for control-vertices
@ INTERPOLATE_FACE_VARYING
face-varying primvar stencils
unsigned int fvarChannel
face-varying channel to use
unsigned int generateIntermediateLevels
vertices at all levels or highest only
static const StencilTable * Create(int numTables, StencilTable const **tables)
@ INTERPOLATE_VERTEX
vertex primvar stencils
Stencil table factory class wrapping the template for compatibility.
Container for arrays of parametric patches.
unsigned int interpolationMode
interpolation mode
@ INTERPOLATE_FACE_VARYING
face-varying primvar stencils
Limit stencil table class wrapping the template for compatibility.
static const StencilTableReal< REAL > * 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.
Stencil table factory class wrapping the template for compatibility.
static const StencilTable * Create(TopologyRefiner const &refiner, Options options=Options())
Vertex stencil descriptor.
@ INTERPOLATE_VERTEX
vertex primvar stencils
static const LimitStencilTableReal< REAL > * 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...
Table of limit subdivision stencils.
Stencil table class wrapping the template for compatibility.
static const StencilTable * AppendLocalPointStencilTableFaceVarying(TopologyRefiner const &refiner, StencilTable const *baseStencilTable, StencilTable const *localPointStencilTable, int channel=0, bool factorize=true)
static const StencilTableReal< REAL > * AppendLocalPointStencilTable(TopologyRefiner const &refiner, StencilTableReal< REAL > const *baseStencilTable, StencilTableReal< REAL > const *localPointStencilTable, bool factorize=true)
Utility function for stencil splicing for local point stencils.