OpenSubdiv
Loading...
Searching...
No Matches
RefinerSurfaceFactory< CACHE_TYPE > Class Template Reference

Template for concrete subclasses of RefinerSurfaceFactoryBase. More...

#include <refinerSurfaceFactory.h>

Inheritance diagram for RefinerSurfaceFactory< CACHE_TYPE >:
RefinerSurfaceFactoryBase SurfaceFactory SurfaceFactoryMeshAdapter

Public Member Functions

 RefinerSurfaceFactory (Far::TopologyRefiner const &mesh, Options const &options=Options())
 
 ~RefinerSurfaceFactory () override=default
 
- Public Member Functions inherited from RefinerSurfaceFactoryBase
 RefinerSurfaceFactoryBase (Far::TopologyRefiner const &mesh, Options const &options)
 
 ~RefinerSurfaceFactoryBase () override=default
 
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.
 
- 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.
 

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

template<class CACHE_TYPE = SurfaceFactoryCache>
class OpenSubdiv::OPENSUBDIV_VERSION::Bfr::RefinerSurfaceFactory< CACHE_TYPE >

Template for concrete subclasses of RefinerSurfaceFactoryBase.

This class template is used to declare concrete subclasses of RefinerSurfaceFactoryBase with the additional support of an internal cache used by the base class. With an instance of a thread-safe subclass of SurfaceFactoryCache declared as a member, the resulting factory will be thread-safe.

Template Parameters
CACHE_TYPEA subclass of SurfaceFactoryCache

Note a default template parameter uses the base SurfaceFactoryCache for convenience, but which is not thread-safe.

Definition at line 157 of file refinerSurfaceFactory.h.

Constructor & Destructor Documentation

◆ RefinerSurfaceFactory()

RefinerSurfaceFactory ( Far::TopologyRefiner const &  mesh,
Options const &  options = Options() 
)
inline

Definition at line 159 of file refinerSurfaceFactory.h.

◆ ~RefinerSurfaceFactory()

~RefinerSurfaceFactory ( )
overridedefault

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