OpenSubdiv
|
Template for concrete subclasses of RefinerSurfaceFactoryBase. More...
#include <refinerSurfaceFactory.h>
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 | |
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 |
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.
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.
|
inline |
Definition at line 159 of file refinerSurfaceFactory.h.
|
overridedefault |