37#ifndef Alembic_AbcGeom_OSubD_h
38#define Alembic_AbcGeom_OSubD_h
153 &iCreaseSharpnesses )
181 &iCornerSharpnesses )
215 void setUVs(
const OV2fGeomParam::Sample &iUVs )
318 m_selectiveExport =
false;
320 m_timeSamplingIndex = 0;
330 const std::string &iName,
343 const std::string &iName,
371 return getObject().getArchive().getTimeSampling( 0 );
382 {
return m_numSamples; }
461 void init( uint32_t iTsIdx,
bool isSparse );
502 void initCreases(uint32_t iNumSamples);
503 void initCorners(uint32_t iNumSamples);
504 void initHoles(uint32_t iNumSamples);
507 std::map <std::string, OFaceSet> m_faceSets;
511 bool m_selectiveExport;
516 uint32_t m_timeSamplingIndex;
518 void createSubDSchemeProperty();
520 void createFaceVaryingInterpolateBoundaryProperty();
522 void createFaceVaryingPropagateCornersProperty();
524 void createInterpolateBoundaryProperty();
526 void createVelocitiesProperty();
528 void createUVsProperty(
const Sample &iSamp );
530 void createPositionsProperty();
#define ALEMBIC_EXPORT_CONST
virtual bool valid() const
int32_t getFaceVaryingPropagateCorners() const
const Abc::V3fArraySample & getVelocities() const
Abc::Int32ArraySample m_faceIndices
const Abc::Int32ArraySample & getCornerIndices() const
Abc::Int32ArraySample m_faceCounts
void setHoles(const Abc::Int32ArraySample &iHoles)
const Abc::Int32ArraySample & getCreaseIndices() const
int32_t m_faceVaryingPropagateCorners
void setInterpolateBoundary(int32_t i)
void setPositions(const Abc::P3fArraySample &iSmp)
void setCornerSharpnesses(const Abc::FloatArraySample &iCornerSharpnesses)
Abc::V3fArraySample m_velocities
Abc::Int32ArraySample m_creaseLengths
OV2fGeomParam::Sample m_uvs
Abc::Int32ArraySample m_creaseIndices
const OV2fGeomParam::Sample & getUVs() const
const Abc::FloatArraySample & getCreaseSharpnesses() const
const Abc::Int32ArraySample & getCreaseLengths() const
void setVelocities(const Abc::V3fArraySample &iVelocities)
Sample(const Abc::P3fArraySample &iPositions, const Abc::Int32ArraySample &iFaceIndices, const Abc::Int32ArraySample &iFaceCounts, const Abc::Int32ArraySample &iCreaseIndices=Abc::Int32ArraySample(), const Abc::Int32ArraySample &iCreaseLengths=Abc::Int32ArraySample(), const Abc::FloatArraySample &iCreaseSharpnesses=Abc::FloatArraySample(), const Abc::Int32ArraySample &iCornerIndices=Abc::Int32ArraySample(), const Abc::FloatArraySample &iCornerSharpnesses=Abc::FloatArraySample(), const Abc::Int32ArraySample &iHoles=Abc::Int32ArraySample())
const Abc::Int32ArraySample & getFaceIndices() const
void setFaceVaryingInterpolateBoundary(int32_t i)
const Abc::Box3d & getSelfBounds() const
int32_t m_faceVaryingInterpolateBoundary
const Abc::P3fArraySample & getPositions() const
void setCreases(const Abc::Int32ArraySample &iCreaseIndices, const Abc::Int32ArraySample &iCreaseLengths)
int32_t getInterpolateBoundary() const
Abc::FloatArraySample m_creaseSharpnesses
void setCornerIndices(const Abc::Int32ArraySample &iCornerIndices)
void setFaceVaryingPropagateCorners(int32_t i)
Abc::Int32ArraySample m_cornerIndices
void setCreaseIndices(const Abc::Int32ArraySample &iCreaseIndices)
const Abc::FloatArraySample & getCornerSharpnesses() const
void setFaceCounts(const Abc::Int32ArraySample &iCnt)
void setSelfBounds(const Abc::Box3d &iBnds)
void setCreases(const Abc::Int32ArraySample &iCreaseIndices, const Abc::Int32ArraySample &iCreaseLengths, const Abc::FloatArraySample &iCreaseSharpnesses)
void setCorners(const Abc::Int32ArraySample &iCornerIndices, const Abc::FloatArraySample &iCornerSharpnesses)
std::string getSubdivisionScheme() const
Abc::P3fArraySample m_positions
int32_t getFaceVaryingInterpolateBoundary() const
const Abc::Int32ArraySample & getFaceCounts() const
void setFaceIndices(const Abc::Int32ArraySample &iSmp)
Abc::Int32ArraySample m_holes
int32_t m_interpolateBoundary
void setSubdivisionScheme(const std::string &iScheme)
const Abc::Int32ArraySample & getHoles() const
Abc::FloatArraySample m_cornerSharpnesses
void setCreaseSharpnesses(const Abc::FloatArraySample &iCreaseSharpnesses)
void setCreaseLengths(const Abc::Int32ArraySample &iCreaseLengths)
void setUVs(const OV2fGeomParam::Sample &iUVs)
bool isPartialSample() const
Abc::OInt32Property m_interpolateBoundaryProperty
Abc::OInt32ArrayProperty m_faceCountsProperty
Abc::OStringProperty m_subdSchemeProperty
Abc::OInt32ArrayProperty m_creaseLengthsProperty
Abc::OInt32ArrayProperty m_holesProperty
OSubDSchema(Abc::OCompoundProperty iParent, const std::string &iName, const Abc::Argument &iArg0=Abc::Argument(), const Abc::Argument &iArg1=Abc::Argument(), const Abc::Argument &iArg2=Abc::Argument())
Abc::OFloatArrayProperty m_creaseSharpnessesProperty
size_t getNumSamples() const
Abc::OInt32Property m_faceVaryingInterpolateBoundaryProperty
Abc::OInt32ArrayProperty m_creaseIndicesProperty
void setUVSourceName(const std::string &iName)
void selectiveSet(const Sample &iSamp)
void init(uint32_t iTsIdx, bool isSparse)
void getFaceSetNames(std::vector< std::string > &oFaceSetNames)
Appends the names of any FaceSets for this SubD.
OSubDSchema(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())
OSubDSchema(const OSubDSchema &iCopy)
Copy constructor.
void setTimeSampling(uint32_t iIndex)
Abc::OV3fArrayProperty m_velocitiesProperty
void setTimeSampling(AbcA::TimeSamplingPtr iTime)
OFaceSet & createFaceSet(const std::string &iFaceSetName)
std::string m_uvSourceName
Abc::OInt32ArrayProperty m_faceIndicesProperty
Abc::OFloatArrayProperty m_cornerSharpnessesProperty
void set(const Sample &iSamp)
Abc::OInt32Property m_faceVaryingPropagateCornersProperty
Abc::OP3fArrayProperty m_positionsProperty
OFaceSet getFaceSet(const std::string &iFaceSetName)
bool hasFaceSet(const std::string &iFaceSetName)
AbcA::TimeSamplingPtr getTimeSampling() const
Default assignment operator used.
friend class OFaceSetSchema
ALEMBIC_OVERRIDE_OPERATOR_BOOL(OSubDSchema::valid())
Abc::OInt32ArrayProperty m_cornerIndicesProperty
OObject getObject() const
Abc::OSchemaObject< OFaceSetSchema > OFaceSet
OTypedGeomParam< V2fTPTraits > OV2fGeomParam
Util::shared_ptr< OSubD > OSubDPtr
static ALEMBIC_EXPORT_CONST int32_t ABC_GEOM_SUBD_NULL_INT_VALUE(INT_MIN/2)
Abc::OSchemaObject< OSubDSchema > OSubD
OTypedArrayProperty< Float32TPTraits > OFloatArrayProperty
TypedArraySample< V3fTPTraits > V3fArraySample
OTypedArrayProperty< Int32TPTraits > OInt32ArrayProperty
TypedArraySample< Float32TPTraits > FloatArraySample
TypedArraySample< P3fTPTraits > P3fArraySample
TypedArraySample< Int32TPTraits > Int32ArraySample
OTypedArrayProperty< P3fTPTraits > OP3fArrayProperty
OTypedScalarProperty< Int32TPTraits > OInt32Property
OTypedArrayProperty< V3fTPTraits > OV3fArrayProperty
OTypedScalarProperty< StringTPTraits > OStringProperty