Alembic Version 1.1

Loading...
Searching...
No Matches
OCurves.h
Go to the documentation of this file.
1//-*****************************************************************************
2//
3// Copyright (c) 2009-2013,
4// Sony Pictures Imageworks, Inc. and
5// Industrial Light & Magic, a division of Lucasfilm Entertainment Company Ltd.
6//
7// All rights reserved.
8//
9// Redistribution and use in source and binary forms, with or without
10// modification, are permitted provided that the following conditions are
11// met:
12// * Redistributions of source code must retain the above copyright
13// notice, this list of conditions and the following disclaimer.
14// * Redistributions in binary form must reproduce the above
15// copyright notice, this list of conditions and the following disclaimer
16// in the documentation and/or other materials provided with the
17// distribution.
18// * Neither the name of Sony Pictures Imageworks, nor
19// Industrial Light & Magic nor the names of their contributors may be used
20// to endorse or promote products derived from this software without specific
21// prior written permission.
22//
23// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34//
35//-*****************************************************************************
36
37#ifndef Alembic_AbcGeom_OCurves_h
38#define Alembic_AbcGeom_OCurves_h
39
40#include <Alembic/Util/Export.h>
41#include <Alembic/AbcGeom/Foundation.h>
42#include <Alembic/AbcGeom/Basis.h>
43#include <Alembic/AbcGeom/CurveType.h>
44#include <Alembic/AbcGeom/SchemaInfoDeclarations.h>
45#include <Alembic/AbcGeom/OGeomParam.h>
46#include <Alembic/AbcGeom/OGeomBase.h>
47
48 namespace Alembic {
49 namespace AbcGeom {
50 namespace ALEMBIC_VERSION_NS {
51
52//-*****************************************************************************
53// Curves definition - Similar in form to the Geometric primitive used to
54// specify curves in renderman.
55// "type" - linear or cubic, one type for all curves
56// "wrap" - periodic or nonperiodic, one mode for all curves
57// ---
58// "P" - vertexes for the curves being written
59// "width" - can be constant or can vary
60// "N" - (just like PolyMesh, via a geom parameter) Normals
61// "uv" - (just like PolyMesh, via a geom parameter) u-v coordinates
62 class ALEMBIC_EXPORT OCurvesSchema : public OGeomBaseSchema<CurvesSchemaInfo>
63{
64 public:
65 //-*************************************************************************
66 // CURVE SCHEMA SAMPLE TYPE
67 //-*************************************************************************
68 class Sample
69 {
70 public:
73 Sample()
74 {
75 // even though this might not be written out
76 // (unless curvesNumVertices and points is set) give some reasonable
77 // and predictable defaults
78 reset();
79 m_type = kCubic;
80 m_wrap = kNonPeriodic;
81 m_basis = kBezierBasis;
82 }
83
86 Sample( const Abc::P3fArraySample &iPos )
87 : m_positions( iPos )
88 {
89 // even though this might not be written out
90 // (unless curvesNumVertices is set) give some reasonable
91 // and predictable defaults
92 m_type = kCubic;
93 m_wrap = kNonPeriodic;
94 m_basis = kBezierBasis;
95 }
96
97
103 Sample(
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 ),
119 m_type( iType ),
120 m_wrap( iWrap ),
121 m_widths( iWidths ),
122 m_uvs( iUVs ),
123 m_normals( iNormals ),
124 m_basis( iBasis ),
125 m_positionWeights( iPosWeight ),
126 m_orders( iOrders ),
127 m_knots( iKnots ) {}
128
129 // widths accessor
130 const OFloatGeomParam::Sample &getWidths() const { return m_widths; }
131 void setWidths( const OFloatGeomParam::Sample &iWidths )
132 { m_widths = iWidths; }
133
134 // positions accessor
135 const Abc::P3fArraySample &getPositions() const { return m_positions; }
136 void setPositions( const Abc::P3fArraySample &iSmp )
137 { m_positions = iSmp; }
138
139 // position weights, if it isn't set, it's 1 for every point
140 const Abc::FloatArraySample &getPositionWeights() const
141 { return m_positionWeights; }
142 void setPositionWeights( const Abc::FloatArraySample &iSmp )
143 { m_positionWeights = iSmp; }
144
145 // type accessors
146 void setType( const CurveType &iType )
147 { m_type = iType; }
148 CurveType getType() const { return m_type; }
149
150 // wrap accessors
151 void setWrap( const CurvePeriodicity &iWrap )
152 { m_wrap = iWrap; }
153 CurvePeriodicity getWrap() const { return m_wrap; }
154
155 std::size_t getNumCurves() const { return m_nVertices.size(); }
156
159 void setCurvesNumVertices( const Abc::Int32ArraySample &iNVertices)
160 { m_nVertices = iNVertices; }
161 const Abc::Int32ArraySample &getCurvesNumVertices() const
162 { return m_nVertices; }
163
164 // UVs
165 const OV2fGeomParam::Sample &getUVs() const { return m_uvs; }
166 void setUVs( const OV2fGeomParam::Sample &iUVs )
167 { m_uvs = iUVs; }
168
169 // bounding box accessors
170 const Abc::Box3d &getSelfBounds() const { return m_selfBounds; }
171 void setSelfBounds( const Abc::Box3d &iBnds )
172 { m_selfBounds = iBnds; }
173
174 // velocities accessor
175 const Abc::V3fArraySample &getVelocities() const { return m_velocities; }
176 void setVelocities( const Abc::V3fArraySample &iVelocities )
177 { m_velocities = iVelocities; }
178
179 // normal accessors
180 const ON3fGeomParam::Sample &getNormals() const { return m_normals; }
181 void setNormals( const ON3fGeomParam::Sample &iNormals )
182 { m_normals = iNormals; }
183
184 // basis accessors
185 BasisType getBasis() const { return m_basis; }
186 void setBasis( const BasisType &iBasis )
187 { m_basis = iBasis; }
188
189 // orders accessors
190 const Abc::UcharArraySample &getOrders() const { return m_orders; }
191 void setOrders( const Abc::UcharArraySample &iOrders)
192 { m_orders = iOrders; }
193
194 // knot accessors
195 const Abc::FloatArraySample &getKnots() const { return m_knots; }
196 void setKnots( const Abc::FloatArraySample &iKnots)
197 { m_knots = iKnots; }
198
199 void reset()
200 {
201 m_positions.reset();
202 m_positionWeights.reset();
203 m_velocities.reset();
204 m_uvs.reset();
205 m_normals.reset();
206 m_widths.reset();
207
208 m_nVertices.reset();
209
210 m_orders.reset();
211 m_knots.reset();
212
213 m_selfBounds.makeEmpty();
214
215 m_type = kCubic;
216 m_wrap = kNonPeriodic;
217 m_basis = kBezierBasis;
218 }
219
220 bool isPartialSample() const
221 {
222 if( !m_positions.getData() )
223 {
224 if( m_uvs.getVals() || m_normals.getVals() || m_velocities.getData() )
225 {
226 return true;
227 }
228 }
229
230 return false;
231 }
232
233 protected:
234
235 // properties
236 Abc::P3fArraySample m_positions;
237 Abc::V3fArraySample m_velocities;
238 Abc::Int32ArraySample m_nVertices;
239
240 CurveType m_type;
241 CurvePeriodicity m_wrap;
242
243 OFloatGeomParam::Sample m_widths;
244 OV2fGeomParam::Sample m_uvs;
245 ON3fGeomParam::Sample m_normals;
246
247 BasisType m_basis;
248
249 // optional properties
250 Abc::FloatArraySample m_positionWeights;
251 Abc::UcharArraySample m_orders;
252 Abc::FloatArraySample m_knots;
253
254 // bounding box attributes
255 Abc::Box3d m_selfBounds;
256
257 };
258
259 //-*************************************************************************
260 // CURVE SCHEMA
261 //-*************************************************************************
262
263 public:
264
267 typedef OCurvesSchema this_type;
268 typedef OCurvesSchema::Sample sample_type;
269
270 //-*************************************************************************
271 // CONSTRUCTION, DESTRUCTION, ASSIGNMENT
272 //-*************************************************************************
273
276 OCurvesSchema()
277 {
278 m_selectiveExport = false;
279 m_numSamples = 0;
280 m_timeSamplingIndex = 0;
281 }
282
283
288 OCurvesSchema( AbcA::CompoundPropertyWriterPtr iParent,
289 const std::string &iName,
290 const Abc::Argument &iArg0 = Abc::Argument(),
291 const Abc::Argument &iArg1 = Abc::Argument(),
292 const Abc::Argument &iArg2 = Abc::Argument(),
293 const Abc::Argument &iArg3 = Abc::Argument() )
294 : OGeomBaseSchema<CurvesSchemaInfo>( iParent, iName,
295 iArg0, iArg1, iArg2, iArg3)
296 {
297 // Meta data and error handling are eaten up by
298 // the super type, so all that's left is time sampling.
299 AbcA::TimeSamplingPtr tsPtr =
300 Abc::GetTimeSampling( iArg0, iArg1, iArg2, iArg3 );
301
302 AbcA::index_t tsIndex =
303 Abc::GetTimeSamplingIndex( iArg0, iArg1, iArg2, iArg3 );
304
305 if ( tsPtr )
306 {
307 tsIndex = GetCompoundPropertyWriterPtr( iParent )->getObject(
308 )->getArchive()->addTimeSampling( *tsPtr );
309 }
310
311 init( tsIndex, Abc::IsSparse( iArg0, iArg1, iArg2, iArg3 ) );
312 }
313
314 OCurvesSchema( const OCurvesSchema& iCopy )
315 : OGeomBaseSchema<CurvesSchemaInfo>()
316 {
317 *this = iCopy;
318 }
319
321
322 //-*************************************************************************
323 // SCHEMA STUFF
324 //-*************************************************************************
325
328 AbcA::TimeSamplingPtr getTimeSampling() const
329 {
330 if( m_positionsProperty.valid() )
331 {
332 return m_positionsProperty.getTimeSampling();
333 }
334 else
335 {
336 return getObject().getArchive().getTimeSampling( 0 );
337 }
338 }
339
340 void setTimeSampling( uint32_t iIndex );
341 void setTimeSampling( AbcA::TimeSamplingPtr iTime );
342
343 //-*************************************************************************
344 // SAMPLE STUFF
345 //-*************************************************************************
346
349 size_t getNumSamples() const { return m_numSamples; }
350
353 void set( const sample_type &iSamp );
354
357 void setFromPrevious();
358
359 //-*************************************************************************
360 // ABC BASE MECHANISMS
361 // These functions are used by Abc to deal with errors, validity,
362 // and so on.
363 //-*************************************************************************
364
367 void reset()
368 {
369 m_positionsProperty.reset();
370 m_positionWeightsProperty.reset();
371 m_uvsParam.reset();
372 m_normalsParam.reset();
373 m_widthsParam.reset();
374 m_nVerticesProperty.reset();
375 m_ordersProperty.reset();
376 m_knotsProperty.reset();
377
378 m_basisAndTypeProperty.reset();
379
380 OGeomBaseSchema<CurvesSchemaInfo>::reset();
381 }
382
385 bool valid() const
386 {
387 return ( ( OGeomBaseSchema<CurvesSchemaInfo>::valid() &&
388 m_positionsProperty.valid() )
389 || m_selectiveExport );
390 }
391
394 ALEMBIC_OVERRIDE_OPERATOR_BOOL( this_type::valid() );
395
396 private:
397 void init( const AbcA::index_t iTsIdx, bool isSparse );
398
402 void selectiveSet( const Sample &iSamp );
403
404 // point data
405 Abc::OP3fArrayProperty m_positionsProperty;
406 Abc::OInt32ArrayProperty m_nVerticesProperty;
407
408 // Write out only some properties (UVs, normals).
409 // This is to export data to layer into another file later.
410 bool m_selectiveExport;
411
412 // Number of times OPolyMeshSchema::set() has been called
413 size_t m_numSamples;
414
415 uint32_t m_timeSamplingIndex;
416
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();
426 void calcBasisAndType(Alembic::Util::uint8_t (&basisAndType)[4], const Sample &iSamp);
427
428 // optional data
429 OV2fGeomParam m_uvsParam;
430 ON3fGeomParam m_normalsParam;
431 OFloatGeomParam m_widthsParam;
432 Abc::OV3fArrayProperty m_velocitiesProperty;
433 Abc::OFloatArrayProperty m_positionWeightsProperty;
434 Abc::OUcharArrayProperty m_ordersProperty;
435 Abc::OFloatArrayProperty m_knotsProperty;
436
437 Abc::OScalarProperty m_basisAndTypeProperty;
438};
439
440//-*****************************************************************************
441// SCHEMA OBJECT
442//-*****************************************************************************
443 typedef Abc::OSchemaObject<OCurvesSchema> OCurves;
444
445 typedef Util::shared_ptr< OCurves > OCurvesPtr;
446
447} // End namespace ALEMBIC_VERSION_NS
448
449 using namespace ALEMBIC_VERSION_NS;
450
451} // End namespace AbcGeom
452} // End namespace Alembic
453
454#endif
Foundation.h
SchemaInfoDeclarations.h
Basis.h
CurveType.h
Export.h
ALEMBIC_EXPORT
#define ALEMBIC_EXPORT
Definition Export.h:51
OGeomBase.h
OGeomParam.h
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample
Definition OCurves.h:69
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::getCurvesNumVertices
const Abc::Int32ArraySample & getCurvesNumVertices() const
Definition OCurves.h:161
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::m_velocities
Abc::V3fArraySample m_velocities
Definition OCurves.h:237
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::setUVs
void setUVs(const OV2fGeomParam::Sample &iUVs)
Definition OCurves.h:166
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::getOrders
const Abc::UcharArraySample & getOrders() const
Definition OCurves.h:190
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::Sample
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())
Definition OCurves.h:103
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::getVelocities
const Abc::V3fArraySample & getVelocities() const
Definition OCurves.h:175
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::setOrders
void setOrders(const Abc::UcharArraySample &iOrders)
Definition OCurves.h:191
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::setWidths
void setWidths(const OFloatGeomParam::Sample &iWidths)
Definition OCurves.h:131
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::isPartialSample
bool isPartialSample() const
Definition OCurves.h:220
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::m_widths
OFloatGeomParam::Sample m_widths
Definition OCurves.h:243
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::m_selfBounds
Abc::Box3d m_selfBounds
Definition OCurves.h:255
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::getSelfBounds
const Abc::Box3d & getSelfBounds() const
Definition OCurves.h:170
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::getBasis
BasisType getBasis() const
Definition OCurves.h:185
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::reset
void reset()
Definition OCurves.h:199
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::getWidths
const OFloatGeomParam::Sample & getWidths() const
Definition OCurves.h:130
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::m_nVertices
Abc::Int32ArraySample m_nVertices
Definition OCurves.h:238
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::m_basis
BasisType m_basis
Definition OCurves.h:247
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::getNormals
const ON3fGeomParam::Sample & getNormals() const
Definition OCurves.h:180
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::setType
void setType(const CurveType &iType)
Definition OCurves.h:146
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::getPositions
const Abc::P3fArraySample & getPositions() const
Definition OCurves.h:135
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::m_normals
ON3fGeomParam::Sample m_normals
Definition OCurves.h:245
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::m_orders
Abc::UcharArraySample m_orders
Definition OCurves.h:251
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::m_positions
Abc::P3fArraySample m_positions
Definition OCurves.h:236
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::m_wrap
CurvePeriodicity m_wrap
Definition OCurves.h:241
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::getNumCurves
std::size_t getNumCurves() const
Definition OCurves.h:155
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::setCurvesNumVertices
void setCurvesNumVertices(const Abc::Int32ArraySample &iNVertices)
Definition OCurves.h:159
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::getType
CurveType getType() const
Definition OCurves.h:148
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::Sample
Sample()
Definition OCurves.h:73
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::getUVs
const OV2fGeomParam::Sample & getUVs() const
Definition OCurves.h:165
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::setWrap
void setWrap(const CurvePeriodicity &iWrap)
Definition OCurves.h:151
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::setSelfBounds
void setSelfBounds(const Abc::Box3d &iBnds)
Definition OCurves.h:171
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::m_knots
Abc::FloatArraySample m_knots
Definition OCurves.h:252
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::getWrap
CurvePeriodicity getWrap() const
Definition OCurves.h:153
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::setNormals
void setNormals(const ON3fGeomParam::Sample &iNormals)
Definition OCurves.h:181
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::setBasis
void setBasis(const BasisType &iBasis)
Definition OCurves.h:186
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::getKnots
const Abc::FloatArraySample & getKnots() const
Definition OCurves.h:195
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::Sample
Sample(const Abc::P3fArraySample &iPos)
Definition OCurves.h:86
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::setPositionWeights
void setPositionWeights(const Abc::FloatArraySample &iSmp)
Definition OCurves.h:142
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::setVelocities
void setVelocities(const Abc::V3fArraySample &iVelocities)
Definition OCurves.h:176
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::m_positionWeights
Abc::FloatArraySample m_positionWeights
Definition OCurves.h:250
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::m_type
CurveType m_type
Definition OCurves.h:240
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::m_uvs
OV2fGeomParam::Sample m_uvs
Definition OCurves.h:244
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::getPositionWeights
const Abc::FloatArraySample & getPositionWeights() const
Definition OCurves.h:140
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::setPositions
void setPositions(const Abc::P3fArraySample &iSmp)
Definition OCurves.h:136
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::Sample::setKnots
void setKnots(const Abc::FloatArraySample &iKnots)
Definition OCurves.h:196
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::sample_type
OCurvesSchema::Sample sample_type
Definition OCurves.h:268
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::reset
void reset()
Definition OCurves.h:367
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::getTimeSampling
AbcA::TimeSamplingPtr getTimeSampling() const
Default assignment operator used.
Definition OCurves.h:328
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::ALEMBIC_OVERRIDE_OPERATOR_BOOL
ALEMBIC_OVERRIDE_OPERATOR_BOOL(this_type::valid())
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::this_type
OCurvesSchema this_type
Definition OCurves.h:267
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::OCurvesSchema
OCurvesSchema(const OCurvesSchema &iCopy)
Definition OCurves.h:314
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::OCurvesSchema
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())
Definition OCurves.h:288
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::OCurvesSchema
OCurvesSchema()
Definition OCurves.h:276
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::getNumSamples
size_t getNumSamples() const
Definition OCurves.h:349
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::valid
bool valid() const
Definition OCurves.h:385
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::setTimeSampling
void setTimeSampling(AbcA::TimeSamplingPtr iTime)
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::set
void set(const sample_type &iSamp)
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::setTimeSampling
void setTimeSampling(uint32_t iIndex)
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesSchema::setFromPrevious
void setFromPrevious()
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OGeomBaseSchema< CurvesSchemaInfo >::OGeomBaseSchema
OGeomBaseSchema()
Definition OGeomBase.h:74
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OGeomBaseSchema::reset
virtual void reset()
Definition OGeomBase.h:110
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OGeomBaseSchema::valid
virtual bool valid() const
Definition OGeomBase.h:119
Alembic::Abc::ALEMBIC_VERSION_NS::Argument
Definition Argument.h:120
Alembic::Abc::ALEMBIC_VERSION_NS::OBasePropertyT< AbcA::CompoundPropertyWriterPtr >::getObject
OObject getObject() const
Definition OBaseProperty.h:225
Alembic::Abc::ALEMBIC_VERSION_NS::OScalarProperty
Definition OScalarProperty.h:53
Alembic::Abc::ALEMBIC_VERSION_NS::OSchemaObject
Definition OSchemaObject.h:54
Alembic::Util::ALEMBIC_VERSION_NS::uint8_t
Alembic::AbcGeom::ALEMBIC_VERSION_NS
Definition ArchiveBounds.h:45
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OV2fGeomParam
OTypedGeomParam< V2fTPTraits > OV2fGeomParam
Definition OGeomParam.h:396
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OFloatGeomParam
OTypedGeomParam< Float32TPTraits > OFloatGeomParam
Definition OGeomParam.h:389
Alembic::AbcGeom::ALEMBIC_VERSION_NS::CurvePeriodicity
CurvePeriodicity
Definition CurveType.h:46
Alembic::AbcGeom::ALEMBIC_VERSION_NS::kNonPeriodic
@ kNonPeriodic
Definition CurveType.h:47
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ON3fGeomParam
OTypedGeomParam< N3fTPTraits > ON3fGeomParam
Definition OGeomParam.h:443
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurves
Abc::OSchemaObject< OCurvesSchema > OCurves
Definition OCurves.h:443
Alembic::AbcGeom::ALEMBIC_VERSION_NS::BasisType
BasisType
Definition Basis.h:48
Alembic::AbcGeom::ALEMBIC_VERSION_NS::kBezierBasis
@ kBezierBasis
Definition Basis.h:50
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OCurvesPtr
Util::shared_ptr< OCurves > OCurvesPtr
Definition OCurves.h:445
Alembic::AbcGeom::ALEMBIC_VERSION_NS::CurveType
CurveType
Definition CurveType.h:51
Alembic::AbcGeom::ALEMBIC_VERSION_NS::kCubic
@ kCubic
Definition CurveType.h:52
Alembic::AbcGeom
Definition ArchiveBounds.h:44
Alembic::Abc::ALEMBIC_VERSION_NS::OFloatArrayProperty
OTypedArrayProperty< Float32TPTraits > OFloatArrayProperty
Definition OTypedArrayProperty.h:253
Alembic::Abc::ALEMBIC_VERSION_NS::V3fArraySample
TypedArraySample< V3fTPTraits > V3fArraySample
Definition TypedArraySample.h:171
Alembic::Abc::ALEMBIC_VERSION_NS::OInt32ArrayProperty
OTypedArrayProperty< Int32TPTraits > OInt32ArrayProperty
Definition OTypedArrayProperty.h:249
Alembic::Abc::ALEMBIC_VERSION_NS::FloatArraySample
TypedArraySample< Float32TPTraits > FloatArraySample
Definition TypedArraySample.h:159
Alembic::Abc::ALEMBIC_VERSION_NS::OUcharArrayProperty
OTypedArrayProperty< Uint8TPTraits > OUcharArrayProperty
Definition OTypedArrayProperty.h:244
Alembic::Abc::ALEMBIC_VERSION_NS::GetTimeSampling
AbcA::TimeSamplingPtr GetTimeSampling(const Argument &iArg0, const Argument &iArg1=Argument(), const Argument &iArg2=Argument(), const Argument &iArg3=Argument())
Definition Argument.h:288
Alembic::Abc::ALEMBIC_VERSION_NS::P3fArraySample
TypedArraySample< P3fTPTraits > P3fArraySample
Definition TypedArraySample.h:181
Alembic::Abc::ALEMBIC_VERSION_NS::GetCompoundPropertyWriterPtr
AbcA::CompoundPropertyWriterPtr GetCompoundPropertyWriterPtr(AbcA::CompoundPropertyWriterPtr iPtr)
Definition Foundation.h:174
Alembic::Abc::ALEMBIC_VERSION_NS::GetTimeSamplingIndex
uint32_t GetTimeSamplingIndex(const Argument &iArg0, const Argument &iArg1=Argument(), const Argument &iArg2=Argument(), const Argument &iArg3=Argument())
Definition Argument.h:303
Alembic::Abc::ALEMBIC_VERSION_NS::Int32ArraySample
TypedArraySample< Int32TPTraits > Int32ArraySample
Definition TypedArraySample.h:155
Alembic::Abc::ALEMBIC_VERSION_NS::IsSparse
bool IsSparse(const Argument &iArg0, const Argument &iArg1=Argument(), const Argument &iArg2=Argument(), const Argument &iArg3=Argument())
Definition Argument.h:333
Alembic::Abc::ALEMBIC_VERSION_NS::OP3fArrayProperty
OTypedArrayProperty< P3fTPTraits > OP3fArrayProperty
Definition OTypedArrayProperty.h:275
Alembic::Abc::ALEMBIC_VERSION_NS::UcharArraySample
TypedArraySample< Uint8TPTraits > UcharArraySample
Definition TypedArraySample.h:150
Alembic::Abc::ALEMBIC_VERSION_NS::OV3fArrayProperty
OTypedArrayProperty< V3fTPTraits > OV3fArrayProperty
Definition OTypedArrayProperty.h:265
Alembic
Alembic namespace ...
Definition ArchiveInfo.h:46