57 typedef Sample this_type;
62 Abc::P3fArraySamplePtr getPositions()
const {
return m_positions; }
63 Abc::UInt64ArraySamplePtr getIds()
const {
return m_ids; }
64 Abc::V3fArraySamplePtr getVelocities()
const {
return m_velocities; }
66 Abc::Box3d getSelfBounds()
const {
return m_selfBounds; }
70 return m_positions && m_ids;
78 m_selfBounds.makeEmpty();
81 ALEMBIC_OPERATOR_BOOL( valid() );
84 friend class IPointsSchema;
85 Abc::P3fArraySamplePtr m_positions;
86 Abc::UInt64ArraySamplePtr m_ids;
87 Abc::V3fArraySamplePtr m_velocities;
89 Abc::Box3d m_selfBounds;
115 const std::string &iName,
121 init( iArg0, iArg1 );
133 init( iArg0, iArg1 );
147 {
return std::max( m_positionsProperty.getNumSamples(),
148 m_idsProperty.getNumSamples() ); }
152 bool isConstant()
const {
return m_positionsProperty.isConstant() && m_idsProperty.isConstant(); }
158 if ( m_positionsProperty.valid() )
160 return m_positionsProperty.getTimeSampling();
162 return getObject().getArchive().getTimeSampling(0);
166 void get( Sample &oSample,
169 ALEMBIC_ABC_SAFE_CALL_BEGIN(
"IPointsSchema::get()" );
171 m_positionsProperty.get( oSample.m_positions, iSS );
172 m_idsProperty.get( oSample.m_ids, iSS );
174 m_selfBoundsProperty.get( oSample.m_selfBounds, iSS );
176 if ( m_velocitiesProperty && m_velocitiesProperty.getNumSamples() > 0 )
177 { m_velocitiesProperty.get( oSample.m_velocities, iSS ); }
181 ALEMBIC_ABC_SAFE_CALL_END();
191 Abc::IP3fArrayProperty getPositionsProperty()
const
193 return m_positionsProperty;
196 Abc::IV3fArrayProperty getVelocitiesProperty()
const
198 return m_velocitiesProperty;
201 Abc::IUInt64ArrayProperty getIdsProperty()
const
203 return m_idsProperty;
206 IFloatGeomParam getWidthsParam()
const
208 return m_widthsParam;
221 m_positionsProperty.reset();
222 m_velocitiesProperty.reset();
223 m_idsProperty.reset();
224 m_widthsParam.reset();
226 IGeomBaseSchema<PointsSchemaInfo>::reset();
233 return ( IGeomBaseSchema<PointsSchemaInfo>::valid() &&
234 m_positionsProperty.valid() &&
235 m_idsProperty.valid() );
246 Abc::IP3fArrayProperty m_positionsProperty;
247 Abc::IUInt64ArrayProperty m_idsProperty;
248 Abc::IV3fArrayProperty m_velocitiesProperty;
249 IFloatGeomParam m_widthsParam;