37#ifndef Alembic_AbcGeom_OCurves_h
38#define Alembic_AbcGeom_OCurves_h
108 const OFloatGeomParam::Sample &iWidths = \
109 OFloatGeomParam::Sample(),
110 const OV2fGeomParam::Sample &iUVs = OV2fGeomParam::Sample(),
111 const ON3fGeomParam::Sample &iNormals = ON3fGeomParam::Sample(),
131 void setWidths(
const OFloatGeomParam::Sample &iWidths )
166 void setUVs(
const OV2fGeomParam::Sample &iUVs )
278 m_selectiveExport =
false;
280 m_timeSamplingIndex = 0;
289 const std::string &iName,
295 iArg0, iArg1, iArg2, iArg3)
299 AbcA::TimeSamplingPtr tsPtr =
302 AbcA::index_t tsIndex =
308 )->getArchive()->addTimeSampling( *tsPtr );
311 init( tsIndex,
Abc::IsSparse( iArg0, iArg1, iArg2, iArg3 ) );
330 if( m_positionsProperty.valid() )
332 return m_positionsProperty.getTimeSampling();
336 return getObject().getArchive().getTimeSampling( 0 );
369 m_positionsProperty.reset();
370 m_positionWeightsProperty.reset();
372 m_normalsParam.reset();
373 m_widthsParam.reset();
374 m_nVerticesProperty.reset();
375 m_ordersProperty.reset();
376 m_knotsProperty.reset();
378 m_basisAndTypeProperty.reset();
388 m_positionsProperty.valid() )
389 || m_selectiveExport );
397 void init(
const AbcA::index_t iTsIdx,
bool isSparse );
402 void selectiveSet(
const Sample &iSamp );
410 bool m_selectiveExport;
415 uint32_t m_timeSamplingIndex;
417 void createPositionProperty();
418 void createVertexProperties();
419 void createVelocityProperty();
420 void createUVsProperty(
const Sample &iSamp );
421 void createNormalsProperty(
const Sample &iSamp );
422 void createWidthProperty(
const Sample &iSamp );
423 void createPositionWeightsProperty();
424 void createOrdersProperty();
425 void createKnotsProperty();
const Abc::Int32ArraySample & getCurvesNumVertices() const
Abc::V3fArraySample m_velocities
void setUVs(const OV2fGeomParam::Sample &iUVs)
const Abc::UcharArraySample & getOrders() const
Sample(const Abc::P3fArraySample &iPos, const Abc::Int32ArraySample &iNVertices, const CurveType &iType=kCubic, const CurvePeriodicity iWrap=kNonPeriodic, const OFloatGeomParam::Sample &iWidths=OFloatGeomParam::Sample(), const OV2fGeomParam::Sample &iUVs=OV2fGeomParam::Sample(), const ON3fGeomParam::Sample &iNormals=ON3fGeomParam::Sample(), const BasisType &iBasis=kBezierBasis, const Abc::FloatArraySample &iPosWeight=Abc::FloatArraySample(), const Abc::UcharArraySample &iOrders=Abc::UcharArraySample(), const Abc::FloatArraySample &iKnots=Abc::FloatArraySample())
const Abc::V3fArraySample & getVelocities() const
void setOrders(const Abc::UcharArraySample &iOrders)
void setWidths(const OFloatGeomParam::Sample &iWidths)
bool isPartialSample() const
OFloatGeomParam::Sample m_widths
const Abc::Box3d & getSelfBounds() const
BasisType getBasis() const
const OFloatGeomParam::Sample & getWidths() const
Abc::Int32ArraySample m_nVertices
const ON3fGeomParam::Sample & getNormals() const
void setType(const CurveType &iType)
const Abc::P3fArraySample & getPositions() const
ON3fGeomParam::Sample m_normals
Abc::UcharArraySample m_orders
Abc::P3fArraySample m_positions
std::size_t getNumCurves() const
void setCurvesNumVertices(const Abc::Int32ArraySample &iNVertices)
CurveType getType() const
const OV2fGeomParam::Sample & getUVs() const
void setWrap(const CurvePeriodicity &iWrap)
void setSelfBounds(const Abc::Box3d &iBnds)
Abc::FloatArraySample m_knots
CurvePeriodicity getWrap() const
void setNormals(const ON3fGeomParam::Sample &iNormals)
void setBasis(const BasisType &iBasis)
const Abc::FloatArraySample & getKnots() const
Sample(const Abc::P3fArraySample &iPos)
void setPositionWeights(const Abc::FloatArraySample &iSmp)
void setVelocities(const Abc::V3fArraySample &iVelocities)
Abc::FloatArraySample m_positionWeights
OV2fGeomParam::Sample m_uvs
const Abc::FloatArraySample & getPositionWeights() const
void setPositions(const Abc::P3fArraySample &iSmp)
void setKnots(const Abc::FloatArraySample &iKnots)
OCurvesSchema::Sample sample_type
AbcA::TimeSamplingPtr getTimeSampling() const
Default assignment operator used.
ALEMBIC_OVERRIDE_OPERATOR_BOOL(this_type::valid())
OCurvesSchema(const OCurvesSchema &iCopy)
OCurvesSchema(AbcA::CompoundPropertyWriterPtr iParent, const std::string &iName, const Abc::Argument &iArg0=Abc::Argument(), const Abc::Argument &iArg1=Abc::Argument(), const Abc::Argument &iArg2=Abc::Argument(), const Abc::Argument &iArg3=Abc::Argument())
size_t getNumSamples() const
void setTimeSampling(AbcA::TimeSamplingPtr iTime)
void set(const sample_type &iSamp)
void setTimeSampling(uint32_t iIndex)
virtual bool valid() const
OObject getObject() const
OTypedGeomParam< V2fTPTraits > OV2fGeomParam
OTypedGeomParam< Float32TPTraits > OFloatGeomParam
OTypedGeomParam< N3fTPTraits > ON3fGeomParam
Abc::OSchemaObject< OCurvesSchema > OCurves
Util::shared_ptr< OCurves > OCurvesPtr
OTypedArrayProperty< Float32TPTraits > OFloatArrayProperty
TypedArraySample< V3fTPTraits > V3fArraySample
OTypedArrayProperty< Int32TPTraits > OInt32ArrayProperty
TypedArraySample< Float32TPTraits > FloatArraySample
OTypedArrayProperty< Uint8TPTraits > OUcharArrayProperty
AbcA::TimeSamplingPtr GetTimeSampling(const Argument &iArg0, const Argument &iArg1=Argument(), const Argument &iArg2=Argument(), const Argument &iArg3=Argument())
TypedArraySample< P3fTPTraits > P3fArraySample
AbcA::CompoundPropertyWriterPtr GetCompoundPropertyWriterPtr(AbcA::CompoundPropertyWriterPtr iPtr)
uint32_t GetTimeSamplingIndex(const Argument &iArg0, const Argument &iArg1=Argument(), const Argument &iArg2=Argument(), const Argument &iArg3=Argument())
TypedArraySample< Int32TPTraits > Int32ArraySample
bool IsSparse(const Argument &iArg0, const Argument &iArg1=Argument(), const Argument &iArg2=Argument(), const Argument &iArg3=Argument())
OTypedArrayProperty< P3fTPTraits > OP3fArrayProperty
TypedArraySample< Uint8TPTraits > UcharArraySample
OTypedArrayProperty< V3fTPTraits > OV3fArrayProperty