24 #ifndef PXR_IMAGING_HD_BASIS_CURVES_TOPOLOGY_H
25 #define PXR_IMAGING_HD_BASIS_CURVES_TOPOLOGY_H
28 #include "pxr/imaging/hd/api.h"
29 #include "pxr/imaging/hd/version.h"
30 #include "pxr/imaging/hd/topology.h"
31 #include "pxr/imaging/hd/tokens.h"
34 #include "pxr/base/vt/value.h"
38 PXR_NAMESPACE_OPEN_SCOPE
82 HdBasisCurvesTopology(
const HdBasisCurvesTopology &src);
85 HdBasisCurvesTopology(
const TfToken &curveType,
88 const VtIntArray &curveVertexCounts,
89 const VtIntArray &curveIndices);
91 virtual ~HdBasisCurvesTopology();
98 void SetInvisiblePoints(VtIntArray
const &invisiblePoints) {
99 _invisiblePoints = invisiblePoints;
103 VtIntArray
const & GetInvisiblePoints()
const {
104 return _invisiblePoints;
108 void SetInvisibleCurves(VtIntArray
const &invisibleCurves) {
109 _invisibleCurves = invisibleCurves;
113 VtIntArray
const & GetInvisibleCurves()
const {
114 return _invisibleCurves;
120 return _curveVertexCounts;
125 return _curveIndices;
130 return _curveVertexCounts.size();
135 TfToken GetCurveBasis()
const {
return _curveBasis; }
136 TfToken GetCurveWrap()
const {
return _curveWrap; }
147 bool operator==(HdBasisCurvesTopology
const &other)
const;
149 bool operator!=(HdBasisCurvesTopology
const &other)
const;
163 VtIntArray _curveVertexCounts;
164 VtIntArray _curveIndices;
165 VtIntArray _invisiblePoints;
166 VtIntArray _invisibleCurves;
173 PXR_NAMESPACE_CLOSE_SCOPE
175 #endif // PXR_IMAGING_HD_BASIS_CURVES_TOPOLOGY_H
size_t GetNumCurves() const
Returns the number of curves.
HD_API bool operator==(HdBasisCurvesTopology const &other) const
Equality check between two basisCurves topologies.
virtual HD_API ID ComputeHash() const
Returns the hash value of this topology to be used for instancing.
HD_API size_t CalculateNeededNumberOfControlPoints() const
Figure out how many vertices / control points this topology references.
Token for efficient comparison, assignment, and hashing of known strings.
VtIntArray const & GetCurveIndices() const
Returns indices.
Topology data for basisCurves.
GF_API std::ostream & operator<<(std::ostream &, const GfBBox3d &)
Output a GfBBox3d using the format [(range) matrix zeroArea].
VtIntArray const & GetCurveVertexCounts() const
Returns segment vertex counts.
bool HasIndices() const
Does the topology use an index buffer.
HD_API size_t CalculateNeededNumberOfVaryingControlPoints() const
Figure out how many control points with varying data this topology needs.
TfToken GetCurveType() const
See class documentation for valid combination of values.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...