25#ifndef OPENSUBDIV3_FAR_PATCH_DESCRIPTOR_H
26#define OPENSUBDIV3_FAR_PATCH_DESCRIPTOR_H
28#include "../version.h"
30#include "../far/types.h"
31#include "../sdc/types.h"
36namespace OPENSUBDIV_VERSION {
153 case LOOP :
return 12;
154 case QUADS :
return 4;
160 case LINES :
return 2;
175 return (_type < other._type);
181 return _type == other._type;
189using namespace OPENSUBDIV_VERSION;
Vtr::ConstArray< PatchDescriptor > ConstPatchDescriptorArray
SchemeType
Enumerated type for all subdivision schemes supported by OpenSubdiv.
Describes the type of a patch.
@ LINES
lines (useful for cage drawing)
@ QUADS
4-sided quadrilateral (bilinear)
@ LOOP
regular triangular patch for the Loop scheme
@ TRIANGLES
3-sided triangle
@ POINTS
points (useful for cage drawing)
@ REGULAR
regular B-Spline patch for the Catmark scheme
bool IsAdaptive() const
Returns true if the type is an adaptive patch.
Type GetType() const
Returns the type of the patch.
static short GetGregoryBasisPatchSize()
Number of control vertices of Gregory patch basis (20)
short GetNumControlVertices() const
Returns the number of control vertices expected for a patch of the type described.
PatchDescriptor(PatchDescriptor const &d)
Copy Constructor.
bool operator==(PatchDescriptor const other) const
True if the descriptors are identical.
static short GetRegularPatchSize()
Number of control vertices of Regular Patches in table.
short GetNumFVarControlVertices() const
Deprecated.
PatchDescriptor(int type)
Constructor.
PatchDescriptor & operator=(PatchDescriptor const &d)
Assignment operator.
static bool IsAdaptive(Type type)
Returns true if the type is an adaptive (non-linear) patch.
bool operator<(PatchDescriptor const other) const
Allows ordering of patches by type.
static short GetGregoryPatchSize()
Number of control vertices of Gregory (and Gregory Boundary) Patches in table.
static Vtr::ConstArray< PatchDescriptor > GetAdaptivePatchDescriptors(Sdc::SchemeType type)
Returns a vector of all the legal patch descriptors for the given adaptive subdivision scheme.
PatchDescriptor()
Default constructor.