Alembic Version 1.1

Loading...
Searching...
No Matches
ONuPatch.h
Go to the documentation of this file.
1//-*****************************************************************************
2//
3// Copyright (c) 2009-2012,
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_ONuPatch_h
38#define Alembic_AbcGeom_ONuPatch_h
39
40#include <Alembic/Util/Export.h>
41#include <Alembic/AbcGeom/Foundation.h>
42#include <Alembic/AbcGeom/Basis.h>
43#include <Alembic/AbcGeom/SchemaInfoDeclarations.h>
44#include <Alembic/AbcGeom/OGeomParam.h>
45#include <Alembic/AbcGeom/OGeomBase.h>
46
47 namespace Alembic {
48 namespace AbcGeom {
49 namespace ALEMBIC_VERSION_NS {
50
51//-*****************************************************************************
52// for default "null" values for the int scalar properties
53 static ALEMBIC_EXPORT_CONST
54int32_t ABC_GEOM_NUPATCH_NULL_INT_VALUE( INT_MIN / 4 );
55
56//-*****************************************************************************
57 class ALEMBIC_EXPORT ONuPatchSchema : public OGeomBaseSchema<NuPatchSchemaInfo>
58{
59 public:
60 //-*************************************************************************
61 // NuPatch SCHEMA SAMPLE TYPE
62 //-*************************************************************************
63 class Sample
64 {
65 public:
68 Sample() { reset(); }
69
70 Sample(
71 const Abc::P3fArraySample &iPos,
72 const int32_t &iNumU,
73 const int32_t &iNumV,
74 const int32_t &iUOrder,
75 const int32_t &iVOrder,
76 const Abc::FloatArraySample &iUKnot,
77 const Abc::FloatArraySample &iVKnot,
78 const ON3fGeomParam::Sample &iNormals = ON3fGeomParam::Sample(),
79 const OV2fGeomParam::Sample &iUVs = OV2fGeomParam::Sample(),
80 const Abc::FloatArraySample & iPosWeight = Abc::FloatArraySample()
81 ): m_positions( iPos )
82 , m_numU( iNumU )
83 , m_numV( iNumV )
84 , m_uOrder( iUOrder )
85 , m_vOrder( iVOrder )
86 , m_uKnot( iUKnot )
87 , m_vKnot( iVKnot )
88 , m_positionWeights( iPosWeight )
89 , m_normals( iNormals )
90 , m_uvs( iUVs )
91 , m_trimNumLoops( ABC_GEOM_NUPATCH_NULL_INT_VALUE )
92 , m_trimNumVertices( Abc::Int32ArraySample() )
93 , m_trimOrder( Abc::Int32ArraySample() )
94 , m_trimKnot( Abc::FloatArraySample() )
95 , m_trimMin( Abc::FloatArraySample() )
96 , m_trimMax( Abc::FloatArraySample() )
97 , m_trimU( Abc::FloatArraySample() )
98 , m_trimV( Abc::FloatArraySample() )
99 , m_trimW( Abc::FloatArraySample() )
100 , m_hasTrimCurve( false )
101 {}
102
103 // positions
104 const Abc::P3fArraySample &getPositions() const { return m_positions; }
105 void setPositions( const Abc::P3fArraySample &iSmp )
106 { m_positions = iSmp; }
107
108 // position weights, if it isn't set, it's 1 for every point
109 const Abc::FloatArraySample &getPositionWeights() const
110 { return m_positionWeights; }
111 void setPositionWeights( const Abc::FloatArraySample &iSmp )
112 { m_positionWeights = iSmp; }
113
114 // nu
115 int32_t getNu() const { return m_numU; }
116 void setNu( const int32_t iNu )
117 { m_numU = iNu; }
118
119 // nv
120 int32_t getNv() const { return m_numV; }
121 void setNv( const int32_t iNv )
122 { m_numV = iNv; }
123
124 // uOrder
125 int32_t getUOrder() const { return m_uOrder; }
126 void setUOrder( const int32_t iUOrder )
127 { m_uOrder = iUOrder; }
128
129 // vOrder
130 int32_t getVOrder() const { return m_vOrder; }
131 void setVOrder( const int32_t iVOrder )
132 { m_vOrder = iVOrder; }
133
134 // uKnot
135 const Abc::FloatArraySample &getUKnot() const { return m_uKnot; }
136 void setUKnot( const Abc::FloatArraySample &iUKnot )
137 { m_uKnot = iUKnot; }
138
139 // vKnot
140 const Abc::FloatArraySample &getVKnot() const { return m_vKnot; }
141 void setVKnot( const Abc::FloatArraySample &iVKnot )
142 { m_vKnot = iVKnot; }
143
144 // uvs
145 const OV2fGeomParam::Sample &getUVs() const { return m_uvs; }
146 void setUVs( const OV2fGeomParam::Sample &iUVs )
147 { m_uvs = iUVs; }
148
149 // normals
150 const ON3fGeomParam::Sample &getNormals() const { return m_normals; }
151 void setNormals( const ON3fGeomParam::Sample &iNormals )
152 { m_normals = iNormals; }
153
154 // bounds
155 const Abc::Box3d &getSelfBounds() const { return m_selfBounds; }
156 void setSelfBounds( const Abc::Box3d &iBnds )
157 { m_selfBounds = iBnds; }
158
159 // velocities accessor
160 const Abc::V3fArraySample &getVelocities() const { return m_velocities; }
161 void setVelocities( const Abc::V3fArraySample &iVelocities )
162 { m_velocities = iVelocities; }
163
164 // trim curves
165 void setTrimCurve( const int32_t i_trim_nLoops,
166 const Abc::Int32ArraySample &i_trim_nCurves,
167 const Abc::Int32ArraySample &i_trim_n,
168 const Abc::Int32ArraySample &i_trim_order,
169 const Abc::FloatArraySample &i_trim_knot,
170 const Abc::FloatArraySample &i_trim_min,
171 const Abc::FloatArraySample &i_trim_max,
172 const Abc::FloatArraySample &i_trim_u,
173 const Abc::FloatArraySample &i_trim_v,
174 const Abc::FloatArraySample &i_trim_w )
175 {
176 m_trimNumLoops = i_trim_nLoops;
177 m_trimNumCurves = i_trim_nCurves;
178 m_trimNumVertices = i_trim_n;
179 m_trimOrder = i_trim_order;
180 m_trimKnot = i_trim_knot;
181 m_trimMin = i_trim_min;
182 m_trimMax = i_trim_max;
183 m_trimU = i_trim_u;
184 m_trimV = i_trim_v;
185 m_trimW = i_trim_w;
186
187 m_hasTrimCurve = true;
188 }
189
190 int32_t getTrimNumLoops() const { return m_trimNumLoops; }
191 const Abc::Int32ArraySample &getTrimNumCurves() const
192 { return m_trimNumCurves; }
193 const Abc::Int32ArraySample &getTrimNumVertices() const
194 { return m_trimNumVertices; }
195 const Abc::Int32ArraySample &getTrimOrder() const
196 { return m_trimOrder; }
197 const Abc::FloatArraySample &getTrimKnot() const { return m_trimKnot; }
198 const Abc::FloatArraySample &getTrimMin() const { return m_trimMin; }
199 const Abc::FloatArraySample &getTrimMax() const { return m_trimMax; }
200 const Abc::FloatArraySample &getTrimU() const { return m_trimU; }
201 const Abc::FloatArraySample &getTrimV() const { return m_trimV; }
202 const Abc::FloatArraySample &getTrimW() const { return m_trimW; }
203
204 bool hasTrimCurve() const
205 {
206 return m_hasTrimCurve;
207 }
208
209 void reset()
210 {
211 m_positions.reset();
212 m_velocities.reset();
213 m_numU = ABC_GEOM_NUPATCH_NULL_INT_VALUE;
214 m_numV = ABC_GEOM_NUPATCH_NULL_INT_VALUE;
215 m_uOrder = ABC_GEOM_NUPATCH_NULL_INT_VALUE;
216 m_vOrder = ABC_GEOM_NUPATCH_NULL_INT_VALUE;
217 m_uKnot.reset();
218 m_vKnot.reset();
219 m_positionWeights.reset();
220 m_normals.reset();
221 m_uvs.reset();
222 m_selfBounds.makeEmpty();
223
224 // reset trim curves
225 m_trimNumLoops = ABC_GEOM_NUPATCH_NULL_INT_VALUE;
226 m_trimNumCurves.reset();
227 m_trimNumVertices.reset();
228 m_trimOrder.reset();
229 m_trimKnot.reset();
230 m_trimMin.reset();
231 m_trimMax.reset();
232 m_trimU.reset();
233 m_trimV.reset();
234 m_trimW.reset();
235 m_hasTrimCurve = false;
236 }
237
238 bool isPartialSample() const
239 {
240 if( !m_positions.getData() )
241 {
242 if( m_uvs.getVals() || m_normals.getVals() || m_velocities.getData() )
243 {
244 return true;
245 }
246 }
247
248 return false;
249 }
250
251 bool hasKnotSampleData() const
252 {
253 if( (m_numU != ABC_GEOM_NUPATCH_NULL_INT_VALUE) ||
254 (m_numV != ABC_GEOM_NUPATCH_NULL_INT_VALUE) ||
255 (m_uOrder != ABC_GEOM_NUPATCH_NULL_INT_VALUE) ||
256 (m_vOrder != ABC_GEOM_NUPATCH_NULL_INT_VALUE) ||
257 m_uKnot || m_vKnot)
258 return true;
259 else
260 return false;
261 }
262
263 protected:
264
265 // required properties
266 Abc::P3fArraySample m_positions;
267 Abc::V3fArraySample m_velocities;
268 int32_t m_numU;
269 int32_t m_numV;
270 int32_t m_uOrder;
271 int32_t m_vOrder;
272 Abc::FloatArraySample m_uKnot;
273 Abc::FloatArraySample m_vKnot;
274
275 // optional properties
276 Abc::FloatArraySample m_positionWeights;
277 ON3fGeomParam::Sample m_normals;
278 OV2fGeomParam::Sample m_uvs;
279
280 // optional trim curves
281 int32_t m_trimNumLoops;
282 Abc::Int32ArraySample m_trimNumCurves;
283 Abc::Int32ArraySample m_trimNumVertices;
284 Abc::Int32ArraySample m_trimOrder;
285 Abc::FloatArraySample m_trimKnot;
286 Abc::FloatArraySample m_trimMin;
287 Abc::FloatArraySample m_trimMax;
288 Abc::FloatArraySample m_trimU;
289 Abc::FloatArraySample m_trimV;
290 Abc::FloatArraySample m_trimW;
291 bool m_hasTrimCurve;
292
293 // bounds
294 Abc::Box3d m_selfBounds;
295 };
296
297 //-*************************************************************************
298 // NuPatch SCHEMA
299 //-*************************************************************************
300
301 public:
302
305 typedef ONuPatchSchema this_type;
306 typedef ONuPatchSchema::Sample sample_type;
307
308 //-*************************************************************************
309 // CONSTRUCTION, DESTRUCTION, ASSIGNMENT
310 //-*************************************************************************
311
314 ONuPatchSchema()
315 {
316 m_selectiveExport = false;
317 m_numSamples = 0;
318 m_timeSamplingIndex = 0;
319 }
320
327 ONuPatchSchema( AbcA::CompoundPropertyWriterPtr iParent,
328 const std::string &iName,
329 const Abc::Argument &iArg0 = Abc::Argument(),
330 const Abc::Argument &iArg1 = Abc::Argument(),
331 const Abc::Argument &iArg2 = Abc::Argument(),
332 const Abc::Argument &iArg3 = Abc::Argument() );
333
340 ONuPatchSchema( Abc::OCompoundProperty iParent,
341 const std::string &iName,
342 const Abc::Argument &iArg0 = Abc::Argument(),
343 const Abc::Argument &iArg1 = Abc::Argument(),
344 const Abc::Argument &iArg2 = Abc::Argument() );
345
347 ONuPatchSchema(const ONuPatchSchema& iCopy)
348 : OGeomBaseSchema<NuPatchSchemaInfo>()
349 {
350 *this = iCopy;
351 }
352
353 //-*************************************************************************
354 // SCHEMA STUFF
355 //-*************************************************************************
356
359 AbcA::TimeSamplingPtr getTimeSampling() const
360 {
361 if( m_positionsProperty.valid() )
362 {
363 return m_positionsProperty.getTimeSampling();
364 }
365 else
366 {
367 return getObject().getArchive().getTimeSampling( 0 );
368 }
369 }
370
371 void setTimeSampling( uint32_t iIndex );
372 void setTimeSampling( AbcA::TimeSamplingPtr iTime );
373
374 //-*************************************************************************
375 // SAMPLE STUFF
376 //-*************************************************************************
377
380 size_t getNumSamples() const
381 {
382 return m_numSamples;
383 }
384
386 void set( const sample_type &iSamp );
387
390 void setFromPrevious();
391
392 //-*************************************************************************
393 // ABC BASE MECHANISMS
394 // These functions are used by Abc to deal with errors, validity,
395 // and so on.
396 //-*************************************************************************
397
400 void reset()
401 {
402 m_positionsProperty.reset();
403 m_positionWeightsProperty.reset();
404 m_velocitiesProperty.reset();
405 m_numUProperty.reset();
406 m_numVProperty.reset();
407 m_uOrderProperty.reset();
408 m_vOrderProperty.reset();
409 m_uKnotProperty.reset();
410 m_vKnotProperty.reset();
411
412 m_normalsParam.reset();
413 m_uvsParam.reset();
414
415 // reset trim curve attributes
416 m_trimNumLoopsProperty.reset();
417 m_trimNumVerticesProperty.reset();
418 m_trimOrderProperty.reset();
419 m_trimKnotProperty.reset();
420 m_trimMinProperty.reset();
421 m_trimMaxProperty.reset();
422 m_trimUProperty.reset();
423 m_trimVProperty.reset();
424 m_trimWProperty.reset();
425
426 OGeomBaseSchema<NuPatchSchemaInfo>::reset();
427 }
428
431 bool valid() const
432 {
433 return ( ( OGeomBaseSchema<NuPatchSchemaInfo>::valid() &&
434 m_positionsProperty.valid() ) ||
435 m_selectiveExport );
436 }
437
440 ALEMBIC_OVERRIDE_OPERATOR_BOOL( ONuPatchSchema::valid() );
441
442 protected:
443 void init( const AbcA::index_t iTsIdx, bool isSparse );
444
448 void selectiveSet( const Sample &iSamp );
449
450 // Write out only some properties (UVs, normals).
451 // This is to export data to layer into another file later.
452 bool m_selectiveExport;
453
454 // Number of times OPolyMeshSchema::set() has been called
455 size_t m_numSamples;
456
457 AbcA::index_t m_timeSamplingIndex;
458
459 void createPositionProperties();
460 void createKnotProperties();
461 void createVelocityProperty();
462 void createUVsProperty( const Sample &iSamp );
463 void createNormalsProperty( const Sample &iSamp );
464 void createPositionWeightsProperty();
465 void createTrimPropreties();
466
467
468 // point data
469 Abc::OP3fArrayProperty m_positionsProperty;
470
471 // required properties
472 Abc::OInt32Property m_numUProperty;
473 Abc::OInt32Property m_numVProperty;
474 Abc::OInt32Property m_uOrderProperty;
475 Abc::OInt32Property m_vOrderProperty;
476 Abc::OFloatArrayProperty m_uKnotProperty;
477 Abc::OFloatArrayProperty m_vKnotProperty;
478
479 // optional properties
480 Abc::OFloatArrayProperty m_positionWeightsProperty;
481 ON3fGeomParam m_normalsParam;
482 OV2fGeomParam m_uvsParam;
483 Abc::OV3fArrayProperty m_velocitiesProperty;
484
485 // optional trim curves
486 Abc::OInt32Property m_trimNumLoopsProperty;
487 Abc::OInt32ArrayProperty m_trimNumCurvesProperty;
488 Abc::OInt32ArrayProperty m_trimNumVerticesProperty;
489 Abc::OInt32ArrayProperty m_trimOrderProperty;
490 Abc::OFloatArrayProperty m_trimKnotProperty;
491 Abc::OFloatArrayProperty m_trimMinProperty;
492 Abc::OFloatArrayProperty m_trimMaxProperty;
493 Abc::OFloatArrayProperty m_trimUProperty;
494 Abc::OFloatArrayProperty m_trimVProperty;
495 Abc::OFloatArrayProperty m_trimWProperty;
496
497};
498
499//-*****************************************************************************
500// SCHEMA OBJECT
501//-*****************************************************************************
502 typedef Abc::OSchemaObject<ONuPatchSchema> ONuPatch;
503
504 typedef Util::shared_ptr< ONuPatch > ONuPatchPtr;
505
506} // End namespace ALEMBIC_VERSION_NS
507
508 using namespace ALEMBIC_VERSION_NS;
509
510} // End namespace AbcGeom
511} // End namespace Alembic
512
513#endif
Foundation.h
SchemaInfoDeclarations.h
Basis.h
Export.h
ALEMBIC_EXPORT_CONST
#define ALEMBIC_EXPORT_CONST
Definition Export.h:53
ALEMBIC_EXPORT
#define ALEMBIC_EXPORT
Definition Export.h:51
OGeomBase.h
OGeomParam.h
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OGeomBaseSchema< NuPatchSchemaInfo >::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::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample
Definition ONuPatch.h:64
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getVOrder
int32_t getVOrder() const
Definition ONuPatch.h:130
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_vOrder
int32_t m_vOrder
Definition ONuPatch.h:271
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_velocities
Abc::V3fArraySample m_velocities
Definition ONuPatch.h:267
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getUKnot
const Abc::FloatArraySample & getUKnot() const
Definition ONuPatch.h:135
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getNv
int32_t getNv() const
Definition ONuPatch.h:120
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::hasTrimCurve
bool hasTrimCurve() const
Definition ONuPatch.h:204
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getTrimNumLoops
int32_t getTrimNumLoops() const
Definition ONuPatch.h:190
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::setNv
void setNv(const int32_t iNv)
Definition ONuPatch.h:121
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_uOrder
int32_t m_uOrder
Definition ONuPatch.h:270
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getTrimNumVertices
const Abc::Int32ArraySample & getTrimNumVertices() const
Definition ONuPatch.h:193
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_trimU
Abc::FloatArraySample m_trimU
Definition ONuPatch.h:288
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::Sample
Sample()
Definition ONuPatch.h:68
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getSelfBounds
const Abc::Box3d & getSelfBounds() const
Definition ONuPatch.h:155
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getTrimMax
const Abc::FloatArraySample & getTrimMax() const
Definition ONuPatch.h:199
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_trimMin
Abc::FloatArraySample m_trimMin
Definition ONuPatch.h:286
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getUOrder
int32_t getUOrder() const
Definition ONuPatch.h:125
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_uvs
OV2fGeomParam::Sample m_uvs
Definition ONuPatch.h:278
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_hasTrimCurve
bool m_hasTrimCurve
Definition ONuPatch.h:291
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::setTrimCurve
void setTrimCurve(const int32_t i_trim_nLoops, const Abc::Int32ArraySample &i_trim_nCurves, const Abc::Int32ArraySample &i_trim_n, const Abc::Int32ArraySample &i_trim_order, const Abc::FloatArraySample &i_trim_knot, const Abc::FloatArraySample &i_trim_min, const Abc::FloatArraySample &i_trim_max, const Abc::FloatArraySample &i_trim_u, const Abc::FloatArraySample &i_trim_v, const Abc::FloatArraySample &i_trim_w)
Definition ONuPatch.h:165
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_numU
int32_t m_numU
Definition ONuPatch.h:268
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getVelocities
const Abc::V3fArraySample & getVelocities() const
Definition ONuPatch.h:160
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::setVKnot
void setVKnot(const Abc::FloatArraySample &iVKnot)
Definition ONuPatch.h:141
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getTrimMin
const Abc::FloatArraySample & getTrimMin() const
Definition ONuPatch.h:198
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getTrimV
const Abc::FloatArraySample & getTrimV() const
Definition ONuPatch.h:201
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getTrimKnot
const Abc::FloatArraySample & getTrimKnot() const
Definition ONuPatch.h:197
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_trimNumVertices
Abc::Int32ArraySample m_trimNumVertices
Definition ONuPatch.h:283
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_trimNumCurves
Abc::Int32ArraySample m_trimNumCurves
Definition ONuPatch.h:282
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getNormals
const ON3fGeomParam::Sample & getNormals() const
Definition ONuPatch.h:150
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_trimNumLoops
int32_t m_trimNumLoops
Definition ONuPatch.h:281
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::setVOrder
void setVOrder(const int32_t iVOrder)
Definition ONuPatch.h:131
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getPositions
const Abc::P3fArraySample & getPositions() const
Definition ONuPatch.h:104
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_positionWeights
Abc::FloatArraySample m_positionWeights
Definition ONuPatch.h:276
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::setNormals
void setNormals(const ON3fGeomParam::Sample &iNormals)
Definition ONuPatch.h:151
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getTrimNumCurves
const Abc::Int32ArraySample & getTrimNumCurves() const
Definition ONuPatch.h:191
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getNu
int32_t getNu() const
Definition ONuPatch.h:115
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::reset
void reset()
Definition ONuPatch.h:209
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_trimMax
Abc::FloatArraySample m_trimMax
Definition ONuPatch.h:287
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_vKnot
Abc::FloatArraySample m_vKnot
Definition ONuPatch.h:273
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::Sample
Sample(const Abc::P3fArraySample &iPos, const int32_t &iNumU, const int32_t &iNumV, const int32_t &iUOrder, const int32_t &iVOrder, const Abc::FloatArraySample &iUKnot, const Abc::FloatArraySample &iVKnot, const ON3fGeomParam::Sample &iNormals=ON3fGeomParam::Sample(), const OV2fGeomParam::Sample &iUVs=OV2fGeomParam::Sample(), const Abc::FloatArraySample &iPosWeight=Abc::FloatArraySample())
Definition ONuPatch.h:70
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_normals
ON3fGeomParam::Sample m_normals
Definition ONuPatch.h:277
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_selfBounds
Abc::Box3d m_selfBounds
Definition ONuPatch.h:294
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_trimW
Abc::FloatArraySample m_trimW
Definition ONuPatch.h:290
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_trimKnot
Abc::FloatArraySample m_trimKnot
Definition ONuPatch.h:285
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::setUVs
void setUVs(const OV2fGeomParam::Sample &iUVs)
Definition ONuPatch.h:146
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::isPartialSample
bool isPartialSample() const
Definition ONuPatch.h:238
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_numV
int32_t m_numV
Definition ONuPatch.h:269
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::setUKnot
void setUKnot(const Abc::FloatArraySample &iUKnot)
Definition ONuPatch.h:136
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getTrimU
const Abc::FloatArraySample & getTrimU() const
Definition ONuPatch.h:200
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::setNu
void setNu(const int32_t iNu)
Definition ONuPatch.h:116
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getVKnot
const Abc::FloatArraySample & getVKnot() const
Definition ONuPatch.h:140
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getUVs
const OV2fGeomParam::Sample & getUVs() const
Definition ONuPatch.h:145
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::setPositions
void setPositions(const Abc::P3fArraySample &iSmp)
Definition ONuPatch.h:105
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getTrimW
const Abc::FloatArraySample & getTrimW() const
Definition ONuPatch.h:202
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::hasKnotSampleData
bool hasKnotSampleData() const
Definition ONuPatch.h:251
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::setSelfBounds
void setSelfBounds(const Abc::Box3d &iBnds)
Definition ONuPatch.h:156
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getTrimOrder
const Abc::Int32ArraySample & getTrimOrder() const
Definition ONuPatch.h:195
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::setPositionWeights
void setPositionWeights(const Abc::FloatArraySample &iSmp)
Definition ONuPatch.h:111
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_trimOrder
Abc::Int32ArraySample m_trimOrder
Definition ONuPatch.h:284
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_positions
Abc::P3fArraySample m_positions
Definition ONuPatch.h:266
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::setVelocities
void setVelocities(const Abc::V3fArraySample &iVelocities)
Definition ONuPatch.h:161
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::setUOrder
void setUOrder(const int32_t iUOrder)
Definition ONuPatch.h:126
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::getPositionWeights
const Abc::FloatArraySample & getPositionWeights() const
Definition ONuPatch.h:109
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_trimV
Abc::FloatArraySample m_trimV
Definition ONuPatch.h:289
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::Sample::m_uKnot
Abc::FloatArraySample m_uKnot
Definition ONuPatch.h:272
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::setTimeSampling
void setTimeSampling(AbcA::TimeSamplingPtr iTime)
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_uvsParam
OV2fGeomParam m_uvsParam
Definition ONuPatch.h:482
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::sample_type
ONuPatchSchema::Sample sample_type
Definition ONuPatch.h:306
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_normalsParam
ON3fGeomParam m_normalsParam
Definition ONuPatch.h:481
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_trimOrderProperty
Abc::OInt32ArrayProperty m_trimOrderProperty
Definition ONuPatch.h:489
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::createUVsProperty
void createUVsProperty(const Sample &iSamp)
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::valid
bool valid() const
Definition ONuPatch.h:431
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::this_type
ONuPatchSchema this_type
Definition ONuPatch.h:305
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::set
void set(const sample_type &iSamp)
Set a sample!
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::createPositionWeightsProperty
void createPositionWeightsProperty()
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::selectiveSet
void selectiveSet(const Sample &iSamp)
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_uOrderProperty
Abc::OInt32Property m_uOrderProperty
Definition ONuPatch.h:474
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::createNormalsProperty
void createNormalsProperty(const Sample &iSamp)
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_trimNumCurvesProperty
Abc::OInt32ArrayProperty m_trimNumCurvesProperty
Definition ONuPatch.h:487
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::ALEMBIC_OVERRIDE_OPERATOR_BOOL
ALEMBIC_OVERRIDE_OPERATOR_BOOL(ONuPatchSchema::valid())
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::ONuPatchSchema
ONuPatchSchema()
Definition ONuPatch.h:314
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_positionsProperty
Abc::OP3fArrayProperty m_positionsProperty
Definition ONuPatch.h:469
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::getTimeSampling
AbcA::TimeSamplingPtr getTimeSampling() const
Definition ONuPatch.h:359
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::ONuPatchSchema
ONuPatchSchema(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())
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::createKnotProperties
void createKnotProperties()
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_trimMinProperty
Abc::OFloatArrayProperty m_trimMinProperty
Definition ONuPatch.h:491
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_trimVProperty
Abc::OFloatArrayProperty m_trimVProperty
Definition ONuPatch.h:494
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::reset
void reset()
Definition ONuPatch.h:400
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_trimNumLoopsProperty
Abc::OInt32Property m_trimNumLoopsProperty
Definition ONuPatch.h:486
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::createTrimPropreties
void createTrimPropreties()
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::setTimeSampling
void setTimeSampling(uint32_t iIndex)
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::setFromPrevious
void setFromPrevious()
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_trimNumVerticesProperty
Abc::OInt32ArrayProperty m_trimNumVerticesProperty
Definition ONuPatch.h:488
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::createPositionProperties
void createPositionProperties()
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::getNumSamples
size_t getNumSamples() const
Definition ONuPatch.h:380
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::ONuPatchSchema
ONuPatchSchema(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())
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_vOrderProperty
Abc::OInt32Property m_vOrderProperty
Definition ONuPatch.h:475
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_numSamples
size_t m_numSamples
Definition ONuPatch.h:455
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_uKnotProperty
Abc::OFloatArrayProperty m_uKnotProperty
Definition ONuPatch.h:476
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_trimWProperty
Abc::OFloatArrayProperty m_trimWProperty
Definition ONuPatch.h:495
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_numUProperty
Abc::OInt32Property m_numUProperty
Definition ONuPatch.h:472
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_trimKnotProperty
Abc::OFloatArrayProperty m_trimKnotProperty
Definition ONuPatch.h:490
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_positionWeightsProperty
Abc::OFloatArrayProperty m_positionWeightsProperty
Definition ONuPatch.h:480
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_velocitiesProperty
Abc::OV3fArrayProperty m_velocitiesProperty
Definition ONuPatch.h:483
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_vKnotProperty
Abc::OFloatArrayProperty m_vKnotProperty
Definition ONuPatch.h:477
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_numVProperty
Abc::OInt32Property m_numVProperty
Definition ONuPatch.h:473
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_selectiveExport
bool m_selectiveExport
Definition ONuPatch.h:452
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::ONuPatchSchema
ONuPatchSchema(const ONuPatchSchema &iCopy)
Copy constructor.
Definition ONuPatch.h:347
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_trimUProperty
Abc::OFloatArrayProperty m_trimUProperty
Definition ONuPatch.h:493
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::createVelocityProperty
void createVelocityProperty()
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_timeSamplingIndex
AbcA::index_t m_timeSamplingIndex
Definition ONuPatch.h:457
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::init
void init(const AbcA::index_t iTsIdx, bool isSparse)
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchSchema::m_trimMaxProperty
Abc::OFloatArrayProperty m_trimMaxProperty
Definition ONuPatch.h:492
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::OCompoundProperty
Definition OCompoundProperty.h:53
Alembic::Abc::ALEMBIC_VERSION_NS::OSchemaObject
Definition OSchemaObject.h:54
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::ABC_GEOM_NUPATCH_NULL_INT_VALUE
static ALEMBIC_EXPORT_CONST int32_t ABC_GEOM_NUPATCH_NULL_INT_VALUE(INT_MIN/4)
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatch
Abc::OSchemaObject< ONuPatchSchema > ONuPatch
Definition ONuPatch.h:502
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ONuPatchPtr
Util::shared_ptr< ONuPatch > ONuPatchPtr
Definition ONuPatch.h:504
Alembic::AbcGeom::ALEMBIC_VERSION_NS::ON3fGeomParam
OTypedGeomParam< N3fTPTraits > ON3fGeomParam
Definition OGeomParam.h:443
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::P3fArraySample
TypedArraySample< P3fTPTraits > P3fArraySample
Definition TypedArraySample.h:181
Alembic::Abc::ALEMBIC_VERSION_NS::Int32ArraySample
TypedArraySample< Int32TPTraits > Int32ArraySample
Definition TypedArraySample.h:155
Alembic::Abc::ALEMBIC_VERSION_NS::OP3fArrayProperty
OTypedArrayProperty< P3fTPTraits > OP3fArrayProperty
Definition OTypedArrayProperty.h:275
Alembic::Abc::ALEMBIC_VERSION_NS::OInt32Property
OTypedScalarProperty< Int32TPTraits > OInt32Property
Definition OTypedScalarProperty.h:236
Alembic::Abc::ALEMBIC_VERSION_NS::OV3fArrayProperty
OTypedArrayProperty< V3fTPTraits > OV3fArrayProperty
Definition OTypedArrayProperty.h:265
Alembic::Abc
Definition ArchiveInfo.h:47
Alembic
Alembic namespace ...
Definition ArchiveInfo.h:46