3DCoat  3D-COAT 4.9.xx
3DCoat is the one application that has all the tools you need to take your 3D idea from a block of digital clay all the way to a production ready, fully textured organic or hard surface model.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL > Class Template Reference

A specialized factory for LimitStencilTable. More...

#include <stencilTableFactory.h>

Classes

struct  LocationArray
 Descriptor for limit surface locations. More...
 

Public Types

enum  Mode { INTERPOLATE_VERTEX =0, INTERPOLATE_VARYING, INTERPOLATE_FACE_VARYING }
 

Static Public Member Functions

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 adaptively. More...
 

Detailed Description

template<typename REAL>
class OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL >

A specialized factory for LimitStencilTable.

The LimitStencilTableFactory creates a table of limit stencils. Limit stencils can interpolate any arbitrary location on the limit surface. The stencils will be bilinear if the surface is refined uniformly, and bicubic if feature adaptive isolation is used instead.

Surface locations are expressed as a combination of ptex face index and normalized (s,t) patch coordinates. The factory exposes the LocationArray struct as a container for these location descriptors.

Member Enumeration Documentation

Enumerator
INTERPOLATE_VERTEX 

vertex primvar stencils

INTERPOLATE_VARYING 

varying primvar stencils

INTERPOLATE_FACE_VARYING 

face-varying primvar stencils

Member Function Documentation

template<typename REAL>
LimitStencilTableReal< REAL > const * OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL >::Create ( TopologyRefiner const &  refiner,
LocationArrayVec const &  locationArrays,
StencilTableReal< REAL > const *  cvStencils = 0,
PatchTable const *  patchTable = 0,
Options  options = Options() 
)
static

Instantiates LimitStencilTable from a TopologyRefiner that has been refined either uniformly or adaptively.

Parameters
refinerThe TopologyRefiner containing the topology
locationArraysAn array of surface location descriptors (see LocationArray)
cvStencilsA StencilTable generated from the TopologyRefiner (Optional: prevents redundant instantiation of the table if available. The given table must at least contain stencils for all control points and all refined points – any stencils for local points of a PatchTable must match the PatchTable provided or internally generated)
patchTableA PatchTable generated from the TopologyRefiner (Optional: prevents redundant instantiation of the table if available. The given table must match the optional StencilTable if also provided)
optionsOptions controlling the creation of the table

References OpenSubdiv::v3_4_3::Far::TopologyRefiner::AdaptiveOptions::considerFVarChannels, OpenSubdiv::v3_4_3::Far::PatchTable::EvaluateBasis(), OpenSubdiv::v3_4_3::Far::PatchTable::EvaluateBasisFaceVarying(), OpenSubdiv::v3_4_3::Far::PatchTable::EvaluateBasisVarying(), OpenSubdiv::v3_4_3::Far::PatchMap::FindPatch(), OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::fvarChannelIndices, OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::generateFVarLegacyLinearPatches, OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::generateFVarTables, OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::generateVaryingTables, OpenSubdiv::v3_4_3::Far::TopologyRefiner::GetAdaptiveOptions(), OpenSubdiv::v3_4_3::Far::TopologyRefiner::GetLevel(), OpenSubdiv::v3_4_3::Far::PatchTable::GetLocalPointFaceVaryingStencilTable(), OpenSubdiv::v3_4_3::Far::PatchTable::GetLocalPointStencilTable(), OpenSubdiv::v3_4_3::Far::PatchTable::GetLocalPointVaryingStencilTable(), OpenSubdiv::v3_4_3::Far::TopologyRefiner::GetMaxLevel(), OpenSubdiv::v3_4_3::Far::TopologyLevel::GetNumFVarValues(), OpenSubdiv::v3_4_3::Far::TopologyRefiner::GetNumFVarValuesTotal(), OpenSubdiv::v3_4_3::Far::StencilTableReal< REAL >::GetNumStencils(), OpenSubdiv::v3_4_3::Far::TopologyLevel::GetNumVertices(), OpenSubdiv::v3_4_3::Far::TopologyRefiner::GetNumVerticesTotal(), OpenSubdiv::v3_4_3::Far::PatchTable::GetPatchFVarValues(), OpenSubdiv::v3_4_3::Far::PatchTable::GetPatchVaryingVertices(), OpenSubdiv::v3_4_3::Far::PatchTable::GetPatchVertices(), OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::includeBaseLevelIndices, OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::includeFVarBaseLevelIndices, OpenSubdiv::v3_4_3::Far::PatchTable::IsFeatureAdaptive(), OpenSubdiv::v3_4_3::Far::TopologyRefiner::IsUniform(), OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::numFVarChannels, OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL >::LocationArray::numLocations, OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL >::LocationArray::ptexIdx, OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL >::LocationArray::s, OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::SetEndCapType(), OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::SetPatchPrecision(), OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL >::LocationArray::t, OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::useInfSharpPatch, and OpenSubdiv::v3_4_3::Far::TopologyRefiner::AdaptiveOptions::useInfSharpPatch.


The documentation for this class was generated from the following files: