ONuPatch.h
Go to the documentation of this file.
//-*****************************************************************************
//
// Copyright (c) 2009-2012,
// Sony Pictures Imageworks, Inc. and
// Industrial Light & Magic, a division of Lucasfilm Entertainment Company Ltd.
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Sony Pictures Imageworks, nor
// Industrial Light & Magic nor the names of their contributors may be used
// to endorse or promote products derived from this software without specific
// prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//-*****************************************************************************
#ifndef Alembic_AbcGeom_ONuPatch_h
#define Alembic_AbcGeom_ONuPatch_h
#include <Alembic/Util/Export.h>
#include <Alembic/AbcGeom/Foundation.h>
#include <Alembic/AbcGeom/Basis.h>
#include <Alembic/AbcGeom/SchemaInfoDeclarations.h>
#include <Alembic/AbcGeom/OGeomParam.h>
#include <Alembic/AbcGeom/OGeomBase.h>
namespace Alembic {
namespace AbcGeom {
namespace ALEMBIC_VERSION_NS {
//-*****************************************************************************
// for default "null" values for the int scalar properties
static ALEMBIC_EXPORT_CONST
int32_t ABC_GEOM_NUPATCH_NULL_INT_VALUE( INT_MIN / 4 );
//-*****************************************************************************
class ALEMBIC_EXPORT ONuPatchSchema : public OGeomBaseSchema<NuPatchSchemaInfo>
{
public:
//-*************************************************************************
// NuPatch SCHEMA SAMPLE TYPE
//-*************************************************************************
class Sample
{
public:
Sample() { reset(); }
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()
): m_positions( iPos )
, m_numU( iNumU )
, m_numV( iNumV )
, m_uOrder( iUOrder )
, m_vOrder( iVOrder )
, m_uKnot( iUKnot )
, m_vKnot( iVKnot )
, m_positionWeights( iPosWeight )
, m_normals( iNormals )
, m_uvs( iUVs )
, m_trimNumLoops( ABC_GEOM_NUPATCH_NULL_INT_VALUE )
, m_trimNumVertices( Abc::Int32ArraySample() )
, m_trimOrder( Abc::Int32ArraySample() )
, m_trimKnot( Abc::FloatArraySample() )
, m_trimMin( Abc::FloatArraySample() )
, m_trimMax( Abc::FloatArraySample() )
, m_trimU( Abc::FloatArraySample() )
, m_trimV( Abc::FloatArraySample() )
, m_trimW( Abc::FloatArraySample() )
, m_hasTrimCurve( false )
{}
// positions
const Abc::P3fArraySample &getPositions() const { return m_positions; }
void setPositions( const Abc::P3fArraySample &iSmp )
{ m_positions = iSmp; }
// position weights, if it isn't set, it's 1 for every point
const Abc::FloatArraySample &getPositionWeights() const
{ return m_positionWeights; }
void setPositionWeights( const Abc::FloatArraySample &iSmp )
{ m_positionWeights = iSmp; }
// nu
int32_t getNu() const { return m_numU; }
void setNu( const int32_t iNu )
{ m_numU = iNu; }
// nv
int32_t getNv() const { return m_numV; }
void setNv( const int32_t iNv )
{ m_numV = iNv; }
// uOrder
int32_t getUOrder() const { return m_uOrder; }
void setUOrder( const int32_t iUOrder )
{ m_uOrder = iUOrder; }
// vOrder
int32_t getVOrder() const { return m_vOrder; }
void setVOrder( const int32_t iVOrder )
{ m_vOrder = iVOrder; }
// uKnot
const Abc::FloatArraySample &getUKnot() const { return m_uKnot; }
void setUKnot( const Abc::FloatArraySample &iUKnot )
{ m_uKnot = iUKnot; }
// vKnot
const Abc::FloatArraySample &getVKnot() const { return m_vKnot; }
void setVKnot( const Abc::FloatArraySample &iVKnot )
{ m_vKnot = iVKnot; }
// uvs
const OV2fGeomParam::Sample &getUVs() const { return m_uvs; }
void setUVs( const OV2fGeomParam::Sample &iUVs )
{ m_uvs = iUVs; }
// normals
const ON3fGeomParam::Sample &getNormals() const { return m_normals; }
void setNormals( const ON3fGeomParam::Sample &iNormals )
{ m_normals = iNormals; }
// bounds
const Abc::Box3d &getSelfBounds() const { return m_selfBounds; }
void setSelfBounds( const Abc::Box3d &iBnds )
{ m_selfBounds = iBnds; }
// velocities accessor
const Abc::V3fArraySample &getVelocities() const { return m_velocities; }
void setVelocities( const Abc::V3fArraySample &iVelocities )
{ m_velocities = iVelocities; }
// trim curves
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 )
{
m_trimNumLoops = i_trim_nLoops;
m_trimNumCurves = i_trim_nCurves;
m_trimNumVertices = i_trim_n;
m_trimOrder = i_trim_order;
m_trimKnot = i_trim_knot;
m_trimMin = i_trim_min;
m_trimMax = i_trim_max;
m_trimU = i_trim_u;
m_trimV = i_trim_v;
m_trimW = i_trim_w;
m_hasTrimCurve = true;
}
int32_t getTrimNumLoops() const { return m_trimNumLoops; }
const Abc::Int32ArraySample &getTrimNumCurves() const
{ return m_trimNumCurves; }
const Abc::Int32ArraySample &getTrimNumVertices() const
{ return m_trimNumVertices; }
const Abc::Int32ArraySample &getTrimOrder() const
{ return m_trimOrder; }
const Abc::FloatArraySample &getTrimKnot() const { return m_trimKnot; }
const Abc::FloatArraySample &getTrimMin() const { return m_trimMin; }
const Abc::FloatArraySample &getTrimMax() const { return m_trimMax; }
const Abc::FloatArraySample &getTrimU() const { return m_trimU; }
const Abc::FloatArraySample &getTrimV() const { return m_trimV; }
const Abc::FloatArraySample &getTrimW() const { return m_trimW; }
bool hasTrimCurve() const
{
return m_hasTrimCurve;
}
void reset()
{
m_positions.reset();
m_velocities.reset();
m_numU = ABC_GEOM_NUPATCH_NULL_INT_VALUE;
m_numV = ABC_GEOM_NUPATCH_NULL_INT_VALUE;
m_uOrder = ABC_GEOM_NUPATCH_NULL_INT_VALUE;
m_vOrder = ABC_GEOM_NUPATCH_NULL_INT_VALUE;
m_uKnot.reset();
m_vKnot.reset();
m_positionWeights.reset();
m_normals.reset();
m_uvs.reset();
m_selfBounds.makeEmpty();
// reset trim curves
m_trimNumLoops = ABC_GEOM_NUPATCH_NULL_INT_VALUE;
m_trimNumCurves.reset();
m_trimNumVertices.reset();
m_trimOrder.reset();
m_trimKnot.reset();
m_trimMin.reset();
m_trimMax.reset();
m_trimU.reset();
m_trimV.reset();
m_trimW.reset();
m_hasTrimCurve = false;
}
bool isPartialSample() const
{
if( !m_positions.getData() )
{
if( m_uvs.getVals() || m_normals.getVals() || m_velocities.getData() )
{
return true;
}
}
return false;
}
bool hasKnotSampleData() const
{
if( (m_numU != ABC_GEOM_NUPATCH_NULL_INT_VALUE) ||
(m_numV != ABC_GEOM_NUPATCH_NULL_INT_VALUE) ||
(m_uOrder != ABC_GEOM_NUPATCH_NULL_INT_VALUE) ||
(m_vOrder != ABC_GEOM_NUPATCH_NULL_INT_VALUE) ||
m_uKnot || m_vKnot)
return true;
else
return false;
}
protected:
// required properties
Abc::P3fArraySample m_positions;
Abc::V3fArraySample m_velocities;
int32_t m_numU;
int32_t m_numV;
int32_t m_uOrder;
int32_t m_vOrder;
Abc::FloatArraySample m_uKnot;
Abc::FloatArraySample m_vKnot;
// optional properties
Abc::FloatArraySample m_positionWeights;
ON3fGeomParam::Sample m_normals;
OV2fGeomParam::Sample m_uvs;
// optional trim curves
int32_t m_trimNumLoops;
Abc::Int32ArraySample m_trimNumCurves;
Abc::Int32ArraySample m_trimNumVertices;
Abc::Int32ArraySample m_trimOrder;
Abc::FloatArraySample m_trimKnot;
Abc::FloatArraySample m_trimMin;
Abc::FloatArraySample m_trimMax;
Abc::FloatArraySample m_trimU;
Abc::FloatArraySample m_trimV;
Abc::FloatArraySample m_trimW;
bool m_hasTrimCurve;
// bounds
Abc::Box3d m_selfBounds;
};
//-*************************************************************************
// NuPatch SCHEMA
//-*************************************************************************
public:
typedef ONuPatchSchema this_type;
typedef ONuPatchSchema::Sample sample_type;
//-*************************************************************************
// CONSTRUCTION, DESTRUCTION, ASSIGNMENT
//-*************************************************************************
ONuPatchSchema()
{
m_selectiveExport = false;
m_numSamples = 0;
m_timeSamplingIndex = 0;
}
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() );
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() );
ONuPatchSchema(const ONuPatchSchema& iCopy)
: OGeomBaseSchema<NuPatchSchemaInfo>()
{
*this = iCopy;
}
//-*************************************************************************
// SCHEMA STUFF
//-*************************************************************************
AbcA::TimeSamplingPtr getTimeSampling() const
{
if( m_positionsProperty.valid() )
{
return m_positionsProperty.getTimeSampling();
}
else
{
return getObject().getArchive().getTimeSampling( 0 );
}
}
void setTimeSampling( uint32_t iIndex );
void setTimeSampling( AbcA::TimeSamplingPtr iTime );
//-*************************************************************************
// SAMPLE STUFF
//-*************************************************************************
size_t getNumSamples() const
{
return m_numSamples;
}
void set( const sample_type &iSamp );
void setFromPrevious();
//-*************************************************************************
// ABC BASE MECHANISMS
// These functions are used by Abc to deal with errors, validity,
// and so on.
//-*************************************************************************
void reset()
{
m_positionsProperty.reset();
m_positionWeightsProperty.reset();
m_velocitiesProperty.reset();
m_numUProperty.reset();
m_numVProperty.reset();
m_uOrderProperty.reset();
m_vOrderProperty.reset();
m_uKnotProperty.reset();
m_vKnotProperty.reset();
m_normalsParam.reset();
m_uvsParam.reset();
// reset trim curve attributes
m_trimNumLoopsProperty.reset();
m_trimNumVerticesProperty.reset();
m_trimOrderProperty.reset();
m_trimKnotProperty.reset();
m_trimMinProperty.reset();
m_trimMaxProperty.reset();
m_trimUProperty.reset();
m_trimVProperty.reset();
m_trimWProperty.reset();
OGeomBaseSchema<NuPatchSchemaInfo>::reset();
}
bool valid() const
{
return ( ( OGeomBaseSchema<NuPatchSchemaInfo>::valid() &&
m_positionsProperty.valid() ) ||
m_selectiveExport );
}
ALEMBIC_OVERRIDE_OPERATOR_BOOL( ONuPatchSchema::valid() );
protected:
void init( const AbcA::index_t iTsIdx, bool isSparse );
void selectiveSet( const Sample &iSamp );
// Write out only some properties (UVs, normals).
// This is to export data to layer into another file later.
bool m_selectiveExport;
// Number of times OPolyMeshSchema::set() has been called
size_t m_numSamples;
AbcA::index_t m_timeSamplingIndex;
void createPositionProperties();
void createKnotProperties();
void createVelocityProperty();
void createUVsProperty( const Sample &iSamp );
void createNormalsProperty( const Sample &iSamp );
void createPositionWeightsProperty();
void createTrimPropreties();
// point data
Abc::OP3fArrayProperty m_positionsProperty;
// required properties
Abc::OInt32Property m_numUProperty;
Abc::OInt32Property m_numVProperty;
Abc::OInt32Property m_uOrderProperty;
Abc::OInt32Property m_vOrderProperty;
Abc::OFloatArrayProperty m_uKnotProperty;
Abc::OFloatArrayProperty m_vKnotProperty;
// optional properties
Abc::OFloatArrayProperty m_positionWeightsProperty;
ON3fGeomParam m_normalsParam;
OV2fGeomParam m_uvsParam;
Abc::OV3fArrayProperty m_velocitiesProperty;
// optional trim curves
Abc::OInt32Property m_trimNumLoopsProperty;
Abc::OInt32ArrayProperty m_trimNumCurvesProperty;
Abc::OInt32ArrayProperty m_trimNumVerticesProperty;
Abc::OInt32ArrayProperty m_trimOrderProperty;
Abc::OFloatArrayProperty m_trimKnotProperty;
Abc::OFloatArrayProperty m_trimMinProperty;
Abc::OFloatArrayProperty m_trimMaxProperty;
Abc::OFloatArrayProperty m_trimUProperty;
Abc::OFloatArrayProperty m_trimVProperty;
Abc::OFloatArrayProperty m_trimWProperty;
};
//-*****************************************************************************
// SCHEMA OBJECT
//-*****************************************************************************
typedef Abc::OSchemaObject<ONuPatchSchema> ONuPatch;
typedef Util::shared_ptr< ONuPatch > ONuPatchPtr;
} // End namespace ALEMBIC_VERSION_NS
using namespace ALEMBIC_VERSION_NS;
} // End namespace AbcGeom
} // End namespace Alembic
#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_VERSION_NS
#define ALEMBIC_VERSION_NS
Definition: Foundation.h:105
Alembic::AbcGeom::ALEMBIC_VERSION_NS::OGeomBaseSchema
Definition: OGeomBase.h:59
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
Definition: ONuPatch.h:58
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::AbcGeom::ALEMBIC_VERSION_NS::OTypedGeomParam< N3fTPTraits >
Alembic::Abc::ALEMBIC_VERSION_NS::Argument
Definition: Argument.h:120
Alembic::Abc::ALEMBIC_VERSION_NS::OCompoundProperty
Definition: OCompoundProperty.h:53
Alembic::Abc::ALEMBIC_VERSION_NS::OSchemaObject
Definition: OSchemaObject.h:54
Alembic::Abc::ALEMBIC_VERSION_NS::OTypedArrayProperty< P3fTPTraits >
Alembic::Abc::ALEMBIC_VERSION_NS::OTypedScalarProperty< Int32TPTraits >
Alembic::Abc::ALEMBIC_VERSION_NS::TypedArraySample< P3fTPTraits >
Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::index_t
int64_t index_t
Definition: Foundation.h:62
Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::CompoundPropertyWriterPtr
Alembic::Util::shared_ptr< CompoundPropertyWriter > CompoundPropertyWriterPtr
Definition: ForwardDeclarations.h:83
Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::TimeSamplingPtr
Alembic::Util::shared_ptr< TimeSampling > TimeSamplingPtr
Definition: TimeSampling.h:137
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::Abc::ALEMBIC_VERSION_NS
Definition: ArchiveInfo.h:48
Alembic
Alembic namespace ...
Definition: ArchiveInfo.h:46