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" 36 namespace OPENSUBDIV_VERSION {
147 case LOOP :
return 12;
148 case QUADS :
return 4;
154 case LINES :
return 2;
169 return (_type < other._type);
175 return _type == other._type;
183 using namespace OPENSUBDIV_VERSION;
PatchDescriptor(int type)
Constructor.
4-sided quadrilateral (bilinear)
points (useful for cage drawing)
static short GetRegularPatchSize()
Number of control vertices of Regular Patches in table.
PatchDescriptor(PatchDescriptor const &d)
Copy Constructor.
SchemeType
Enumerated type for all subdivision schemes supported by OpenSubdiv.
Vtr::ConstArray< PatchDescriptor > ConstPatchDescriptorArray
lines (useful for cage drawing)
bool IsAdaptive() const
Returns true if the type is an adaptive patch.
short GetNumFVarControlVertices() const
Deprecated.
bool operator==(PatchDescriptor const other) const
True if the descriptors are identical.
PatchDescriptor()
Default constructor.
regular B-Spline patch for the Catmark scheme
static bool IsAdaptive(Type type)
Returns true if the type is an adaptive (non-linear) patch.
static short GetGregoryPatchSize()
Number of control vertices of Gregory (and Gregory Boundary) Patches in table.
Describes the type of a patch.
static short GetGregoryBasisPatchSize()
Number of control vertices of Gregory patch basis (20)
Type GetType() const
Returns the type of the patch.
bool operator<(PatchDescriptor const other) const
Allows ordering of patches by type.
short GetNumControlVertices() const
Returns the number of control vertices expected for a patch of the type described.
static Vtr::ConstArray< PatchDescriptor > GetAdaptivePatchDescriptors(Sdc::SchemeType type)
Returns a vector of all the legal patch descriptors for the given adaptive subdivision scheme.
regular triangular patch for the Loop scheme