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"
35 namespace OpenSubdiv {
36 namespace OPENSUBDIV_VERSION {
152 case QUADS :
return 4;
157 case LINES :
return 2;
172 return (_type < other._type);
178 return _type == other._type;
186 using namespace OPENSUBDIV_VERSION;
points (useful for cage drawing)
PatchDescriptor(int type)
Constructor.
Describes the type of a patch.
Type GetType() const
Returns the type of the patch.
static bool IsAdaptive(Type type)
Returns true if the type is an adaptive patch.
Vtr::ConstArray< PatchDescriptor > ConstPatchDescriptorArray
lines (useful for cage drawing)
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
Allows ordering of patches by type.
feature-adaptive bicubic patches
static short GetGregoryPatchSize()
Number of control vertices of Gregory (and Gregory Boundary) Patches in table.
bilinear triangles-only mesh
static short GetRegularPatchSize()
Number of control vertices of Regular Patches in table.
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.
static short GetGregoryBasisPatchSize()
Number of control vertices of Gregory patch basis (20)
PatchDescriptor()
Default constructor.
SchemeType
Enumerated type for all subdivision schemes supported by OpenSubdiv.
static Vtr::ConstArray< PatchDescriptor > GetAdaptivePatchDescriptors(Sdc::SchemeType type)
Returns a vector of all the legal patch descriptors for the given adaptive subdivision scheme...
bilinear quads-only patches