OpenSubdiv
Loading...
Searching...
No Matches
RefinerSurfaceFactoryBase Class Reference

Intermediate subclass of SurfaceFactory with Far::TopologyRefiner as the mesh. More...

#include <refinerSurfaceFactory.h>

Inheritance diagram for RefinerSurfaceFactoryBase:
SurfaceFactory SurfaceFactoryMeshAdapter RefinerSurfaceFactory< CACHE_TYPE >

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
 
SurfaceFactoryoperator= (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
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ RefinerSurfaceFactoryBase()

RefinerSurfaceFactoryBase ( Far::TopologyRefiner const &  mesh,
Options const &  options 
)

◆ ~RefinerSurfaceFactoryBase()

~RefinerSurfaceFactoryBase ( )
overridedefault

Member Function Documentation

◆ GetMesh()

Far::TopologyRefiner const & GetMesh ( ) const
inline

Return the instance of the mesh.

Definition at line 79 of file refinerSurfaceFactory.h.

◆ GetNumFaces()

int GetNumFaces ( ) const
inline

Return the number of faces.

Definition at line 82 of file refinerSurfaceFactory.h.

◆ GetNumFVarChannels()

int GetNumFVarChannels ( ) const
inline

Return the number of face-varying channels.

Definition at line 85 of file refinerSurfaceFactory.h.


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