| 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 >:

## 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.
| 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

## 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_TYPE | A 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()

template<class CACHE_TYPE = SurfaceFactoryCache>

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

Definition at line 159 of file refinerSurfaceFactory.h.

## ◆ ~RefinerSurfaceFactory()

template<class CACHE_TYPE = SurfaceFactoryCache>

~RefinerSurfaceFactory | ( |  | ) |
| override default

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

- opensubdiv/bfr/refinerSurfaceFactory.h