80 m_wrap = kNonPeriodic;
81 m_basis = kBezierBasis;
86 Sample(
const Abc::P3fArraySample &iPos )
93 m_wrap = kNonPeriodic;
94 m_basis = kBezierBasis;
104 const Abc::P3fArraySample &iPos,
105 const Abc::Int32ArraySample &iNVertices,
106 const CurveType &iType = kCubic,
107 const CurvePeriodicity iWrap = kNonPeriodic,
108 const OFloatGeomParam::Sample &iWidths = \
109 OFloatGeomParam::Sample(),
110 const OV2fGeomParam::Sample &iUVs = OV2fGeomParam::Sample(),
111 const ON3fGeomParam::Sample &iNormals = ON3fGeomParam::Sample(),
112 const BasisType &iBasis = kBezierBasis,
113 const Abc::FloatArraySample &iPosWeight = \
114 Abc::FloatArraySample(),
115 const Abc::UcharArraySample &iOrders = Abc::UcharArraySample(),
116 const Abc::FloatArraySample &iKnots = Abc::FloatArraySample()
117 ): m_positions( iPos ),
118 m_nVertices( iNVertices ),
123 m_normals( iNormals ),
125 m_positionWeights( iPosWeight ),
130 const OFloatGeomParam::Sample &getWidths()
const {
return m_widths; }
131 void setWidths(
const OFloatGeomParam::Sample &iWidths )
132 { m_widths = iWidths; }
135 const Abc::P3fArraySample &getPositions()
const {
return m_positions; }
136 void setPositions(
const Abc::P3fArraySample &iSmp )
137 { m_positions = iSmp; }
140 const Abc::FloatArraySample &getPositionWeights()
const
141 {
return m_positionWeights; }
142 void setPositionWeights(
const Abc::FloatArraySample &iSmp )
143 { m_positionWeights = iSmp; }
146 void setType(
const CurveType &iType )
148 CurveType getType()
const {
return m_type; }
151 void setWrap(
const CurvePeriodicity &iWrap )
153 CurvePeriodicity getWrap()
const {
return m_wrap; }
155 std::size_t getNumCurves()
const {
return m_nVertices.size(); }
160 { m_nVertices = iNVertices; }
161 const Abc::Int32ArraySample &getCurvesNumVertices()
const
162 {
return m_nVertices; }
165 const OV2fGeomParam::Sample &getUVs()
const {
return m_uvs; }
166 void setUVs(
const OV2fGeomParam::Sample &iUVs )
170 const Abc::Box3d &getSelfBounds()
const {
return m_selfBounds; }
171 void setSelfBounds(
const Abc::Box3d &iBnds )
172 { m_selfBounds = iBnds; }
175 const Abc::V3fArraySample &getVelocities()
const {
return m_velocities; }
176 void setVelocities(
const Abc::V3fArraySample &iVelocities )
177 { m_velocities = iVelocities; }
180 const ON3fGeomParam::Sample &getNormals()
const {
return m_normals; }
181 void setNormals(
const ON3fGeomParam::Sample &iNormals )
182 { m_normals = iNormals; }
185 BasisType getBasis()
const {
return m_basis; }
186 void setBasis(
const BasisType &iBasis )
187 { m_basis = iBasis; }
190 const Abc::UcharArraySample &getOrders()
const {
return m_orders; }
191 void setOrders(
const Abc::UcharArraySample &iOrders)
192 { m_orders = iOrders; }
195 const Abc::FloatArraySample &getKnots()
const {
return m_knots; }
196 void setKnots(
const Abc::FloatArraySample &iKnots)
197 { m_knots = iKnots; }
202 m_positionWeights.reset();
203 m_velocities.reset();
213 m_selfBounds.makeEmpty();
216 m_wrap = kNonPeriodic;
217 m_basis = kBezierBasis;
220 bool isPartialSample()
const
222 if( !m_positions.getData() )
224 if( m_uvs.getVals() || m_normals.getVals() || m_velocities.getData() )
236 Abc::P3fArraySample m_positions;
237 Abc::V3fArraySample m_velocities;
238 Abc::Int32ArraySample m_nVertices;
241 CurvePeriodicity m_wrap;
243 OFloatGeomParam::Sample m_widths;
244 OV2fGeomParam::Sample m_uvs;
245 ON3fGeomParam::Sample m_normals;
250 Abc::FloatArraySample m_positionWeights;
251 Abc::UcharArraySample m_orders;
252 Abc::FloatArraySample m_knots;
255 Abc::Box3d m_selfBounds;
289 const std::string &iName,
295 iArg0, iArg1, iArg2, iArg3)
299 AbcA::TimeSamplingPtr tsPtr =
300 Abc::GetTimeSampling( iArg0, iArg1, iArg2, iArg3 );
302 AbcA::index_t tsIndex =
303 Abc::GetTimeSamplingIndex( iArg0, iArg1, iArg2, iArg3 );
307 tsIndex = GetCompoundPropertyWriterPtr( iParent )->getObject(
308 )->getArchive()->addTimeSampling( *tsPtr );
311 init( tsIndex, Abc::IsSparse( iArg0, iArg1, iArg2, iArg3 ) );
363 m_positionsProperty.reset();
364 m_positionWeightsProperty.reset();
366 m_normalsParam.reset();
367 m_widthsParam.reset();
368 m_nVerticesProperty.reset();
369 m_ordersProperty.reset();
370 m_knotsProperty.reset();
372 m_basisAndTypeProperty.reset();
374 OGeomBaseSchema<CurvesSchemaInfo>::reset();