OpenSubdiv
|
Intermediate subclass of SurfaceFactory with Far::TopologyRefiner as the mesh. More...
#include <refinerSurfaceFactory.h>
Public Member Functions | |
Construction and initialization | |
Construction and initialization | |
RefinerSurfaceFactoryBase (Far::TopologyRefiner const &mesh, Options const &options) | |
~RefinerSurfaceFactoryBase () override=default | |
Public Member Functions inherited from SurfaceFactory | |
~SurfaceFactory () override | |
Sdc::SchemeType | GetSchemeType () const |
Return the subdivision scheme. | |
Sdc::Options | GetSchemeOptions () const |
Return the set of subdivision options. | |
bool | FaceHasLimitSurface (Index faceIndex) const |
Return if a specified face has a limit surface. | |
Parameterization | GetFaceParameterization (Index faceIndex) const |
Return the Parameterization of a face with a limit surface. | |
template<typename REAL > | |
bool | InitVertexSurface (Index faceIndex, Surface< REAL > *surface) const |
Initialize a Surface for vertex data. | |
template<typename REAL > | |
bool | InitVaryingSurface (Index faceIndex, Surface< REAL > *surface) const |
Initialize a Surface for varying data. | |
template<typename REAL > | |
bool | InitFaceVaryingSurface (Index faceIndex, Surface< REAL > *surface) const |
Initialize a Surface for the default face-varying data. | |
template<typename REAL > | |
bool | InitFaceVaryingSurface (Index faceIndex, Surface< REAL > *surface, FVarID fvarID) const |
Initialize a Surface for specified face-varying data. | |
template<typename REAL > | |
bool | InitSurfaces (Index faceIndex, Surface< REAL > *vtxSurface, Surface< REAL > *fvarSurfaces, FVarID const fvarIDs[]=0, int fvarCount=0, Surface< REAL > *varSurface=0) const |
Initialize multiple Surfaces at once. | |
template<typename REAL = float> | |
Surface< REAL > * | CreateVertexSurface (Index faceIndex) const |
Construct a Surface for vertex data. | |
template<typename REAL = float> | |
Surface< REAL > * | CreateVaryingSurface (Index faceIndex) const |
Construct a Surface for varying data. | |
template<typename REAL = float> | |
Surface< REAL > * | CreateFaceVaryingSurface (Index faceIndex) const |
Construct a Surface for the default face-varying data. | |
template<typename REAL = float> | |
Surface< REAL > * | CreateFaceVaryingSurface (Index faceIndex, FVarID id) const |
Construct a Surface for specified face-varying data. | |
Simple queries related to Far::TopologyRefiner | |
Simple queries related to Far::TopologyRefiner | |
Far::TopologyRefiner const & | GetMesh () const |
Return the instance of the mesh. | |
int | GetNumFaces () const |
Return the number of faces. | |
int | GetNumFVarChannels () const |
Return the number of face-varying channels. | |
Additional Inherited Members | |
Public Types inherited from SurfaceFactoryMeshAdapter | |
typedef int | Index |
Integer type representing a mesh index. | |
typedef std::intptr_t | FVarID |
Type used to identify and specify face-varying primvars. | |
Protected Member Functions inherited from SurfaceFactory | |
SurfaceFactory (Sdc::SchemeType schemeType, Sdc::Options const &schemeOptions, Options const &limitOptions) | |
Constructor to be used by subclasses. | |
void | setInternalCache (SurfaceFactoryCache *cache) |
Subclass to identify an internal cache for use by base class. | |
SurfaceFactory (SurfaceFactory const &)=delete | |
SurfaceFactory & | operator= (SurfaceFactory const &)=delete |
Protected Member Functions inherited from SurfaceFactoryMeshAdapter | |
virtual bool | isFaceHole (Index faceIndex) const =0 |
Returns if a face is a hole. | |
virtual int | getFaceSize (Index faceIndex) const =0 |
Returns the size of a face (number of vertices) | |
virtual int | getFaceVertexIndices (Index faceIndex, Index vertexIndices[]) const =0 |
Gather the indices of the face's vertices. | |
virtual int | getFaceFVarValueIndices (Index faceIndex, FVarID fvarID, Index fvarValueIndices[]) const =0 |
Gather the face-varying indices of the face's vertices. | |
virtual int | populateFaceVertexDescriptor (Index faceIndex, int faceVertex, VertexDescriptor *vertexDescriptor) const =0 |
Describe the topology of incident faces around a face-vertex. | |
virtual int | getFaceVertexIncidentFaceVertexIndices (Index faceIndex, int faceVertex, Index vertexIndices[]) const =0 |
Gather vertex indices of incident faces around a face-vertex. | |
virtual int | getFaceVertexIncidentFaceFVarValueIndices (Index faceIndex, int faceVertex, FVarID fvarID, Index fvarValueIndices[]) const =0 |
Gather face-varying indices of incident faces around a face-vertex. | |
virtual bool | getFaceNeighborhoodVertexIndicesIfRegular (Index faceIndex, Index vertexIndices[]) const |
virtual bool | getFaceNeighborhoodFVarValueIndicesIfRegular (Index faceIndex, FVarID fvarID, Index fvarValueIndices[]) const |
Intermediate subclass of SurfaceFactory with Far::TopologyRefiner as the mesh.
RefinerSurfaceFactoryBase is an intermediate subclass of SurfaceFactory using Far::TopologyRefiner as the connected mesh representation.
The SurfaceFactoryMeshAdapter interface for TopologyRefiner is provided in full, along with some public extensions specific to TopologyRefiner.
Additional caching expectations of SurfaceFactory are NOT specified here. These are deferred to subclasses to implement different behaviors of the factory's internal caching. A template for such subclasses is additionally provided – allowing clients desiring a thread-safe cache to simply declare a subclass for a preferred thread-safe type.
Definition at line 58 of file refinerSurfaceFactory.h.
RefinerSurfaceFactoryBase | ( | Far::TopologyRefiner const & | mesh, |
Options const & | options | ||
) |
|
overridedefault |
|
inline |
Return the instance of the mesh.
Definition at line 79 of file refinerSurfaceFactory.h.
|
inline |
Return the number of faces.
Definition at line 82 of file refinerSurfaceFactory.h.
|
inline |
Return the number of face-varying channels.
Definition at line 85 of file refinerSurfaceFactory.h.