57 typedef Sample this_type;
62 Abc::P3fArraySamplePtr getPositions()
const {
return m_positions; }
63 Abc::V3fArraySamplePtr getVelocities()
const {
return m_velocities; }
64 int32_t getNumU()
const {
return m_numU; }
65 int32_t getNumV()
const {
return m_numV; }
66 int32_t getUOrder()
const {
return m_uOrder; }
67 int32_t getVOrder()
const {
return m_vOrder; }
68 Abc::FloatArraySamplePtr getUKnot()
const {
return m_uKnot; }
69 Abc::FloatArraySamplePtr getVKnot()
const {
return m_vKnot; }
73 Abc::FloatArraySamplePtr getPositionWeights()
const {
return m_positionWeights; }
76 int32_t getTrimNumLoops()
const {
return m_trimNumLoops; }
77 Abc::Int32ArraySamplePtr getTrimNumVertices()
const {
return m_trimNumVertices; }
78 Abc::Int32ArraySamplePtr getTrimNumCurves()
const {
return m_trimNumCurves; }
79 Abc::Int32ArraySamplePtr getTrimOrders()
const {
return m_trimOrder; }
80 Abc::FloatArraySamplePtr getTrimKnots()
const {
return m_trimKnot; }
81 Abc::FloatArraySamplePtr getTrimMins()
const {
return m_trimMin; }
82 Abc::FloatArraySamplePtr getTrimMaxes()
const {
return m_trimMax; }
83 Abc::FloatArraySamplePtr getTrimU()
const {
return m_trimU; }
84 Abc::FloatArraySamplePtr getTrimV()
const {
return m_trimV; }
85 Abc::FloatArraySamplePtr getTrimW()
const {
return m_trimW; }
87 bool hasTrimCurve()
const {
return m_trimNumLoops != 0; }
91 return m_positions && m_numU && m_numV && m_uOrder && m_vOrder &&
95 Abc::Box3d getSelfBounds()
const {
return m_selfBounds; }
100 m_velocities.reset();
107 m_positionWeights.reset();
109 m_selfBounds.makeEmpty();
113 m_trimNumCurves.reset();
114 m_trimNumVertices.reset();
124 ALEMBIC_OPERATOR_BOOL( valid() );
128 friend class INuPatchSchema;
130 Abc::P3fArraySamplePtr m_positions;
131 Abc::V3fArraySamplePtr m_velocities;
136 Abc::FloatArraySamplePtr m_uKnot;
137 Abc::FloatArraySamplePtr m_vKnot;
138 Abc::FloatArraySamplePtr m_positionWeights;
141 int32_t m_trimNumLoops;
142 Abc::Int32ArraySamplePtr m_trimNumCurves;
143 Abc::Int32ArraySamplePtr m_trimNumVertices;
144 Abc::Int32ArraySamplePtr m_trimOrder;
145 Abc::FloatArraySamplePtr m_trimKnot;
146 Abc::FloatArraySamplePtr m_trimMin;
147 Abc::FloatArraySamplePtr m_trimMax;
148 Abc::FloatArraySamplePtr m_trimU;
149 Abc::FloatArraySamplePtr m_trimV;
150 Abc::FloatArraySamplePtr m_trimW;
154 Abc::Box3d m_selfBounds;
277 m_positionsProperty.reset();
278 m_velocitiesProperty.reset();
279 m_numUProperty.reset();
280 m_numVProperty.reset();
281 m_uOrderProperty.reset();
282 m_vOrderProperty.reset();
283 m_uKnotProperty.reset();
284 m_vKnotProperty.reset();
285 m_positionWeightsProperty.reset();
287 m_normalsParam.reset();
291 m_trimNumLoopsProperty.reset();
292 m_trimNumCurvesProperty.reset();
293 m_trimNumVerticesProperty.reset();
294 m_trimOrderProperty.reset();
295 m_trimKnotProperty.reset();
296 m_trimMinProperty.reset();
297 m_trimMaxProperty.reset();
298 m_trimUProperty.reset();
299 m_trimVProperty.reset();
300 m_trimWProperty.reset();
302 IGeomBaseSchema<NuPatchSchemaInfo>::reset();
309 return ( IGeomBaseSchema<NuPatchSchemaInfo>::valid() &&
310 m_positionsProperty.valid() &&
311 m_numUProperty.valid() &&
312 m_numVProperty.valid() &&
313 m_uOrderProperty.valid() &&
314 m_vOrderProperty.valid() &&
315 m_uKnotProperty.valid() &&
316 m_vKnotProperty.valid() );