Coverage Report

Created: 2025-10-10 06:47

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/alembic/lib/Alembic/Abc/ISchema.h
Line
Count
Source
1
//-*****************************************************************************
2
//
3
// Copyright (c) 2009-2011,
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_Abc_ISchema_h
38
#define Alembic_Abc_ISchema_h
39
40
#include <Alembic/Abc/Foundation.h>
41
#include <Alembic/Abc/OSchema.h>
42
#include <Alembic/Abc/ICompoundProperty.h>
43
44
namespace Alembic {
45
namespace Abc {
46
namespace ALEMBIC_VERSION_NS {
47
48
//-*****************************************************************************
49
//! See Schema Notes in OSchema.h
50
//! ...
51
//-*****************************************************************************
52
53
//-*****************************************************************************
54
//! Usually used as a base class, but could also theoretically be used
55
//! as a standalone
56
template <class INFO>
57
class ISchema : public ICompoundProperty
58
{
59
public:
60
    //-*************************************************************************
61
    // TYPEDEFS AND IDENTIFIERS
62
    //-*************************************************************************
63
    typedef INFO info_type;
64
    typedef ISchema<INFO> this_type;
65
66
    //! Return the schema title expected of this
67
    //! property. An empty title matches everything
68
    static const char * getSchemaTitle()
69
1.25k
    {
70
1.25k
        return INFO::title();
71
1.25k
    }
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::PolyMeshSchemaInfo>::getSchemaTitle()
Line
Count
Source
69
210
    {
70
210
        return INFO::title();
71
210
    }
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::SubDSchemaInfo>::getSchemaTitle()
Line
Count
Source
69
210
    {
70
210
        return INFO::title();
71
210
    }
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::FaceSetSchemaInfo>::getSchemaTitle()
Line
Count
Source
69
210
    {
70
210
        return INFO::title();
71
210
    }
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::CurvesSchemaInfo>::getSchemaTitle()
Line
Count
Source
69
210
    {
70
210
        return INFO::title();
71
210
    }
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::XformSchemaInfo>::getSchemaTitle()
Line
Count
Source
69
213
    {
70
213
        return INFO::title();
71
213
    }
Alembic::Abc::v12::ISchema<Alembic::AbcMaterial::v12::MaterialSchemaInfo>::getSchemaTitle()
Line
Count
Source
69
201
    {
70
201
        return INFO::title();
71
201
    }
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::GeomBaseSchemaInfo>::getSchemaTitle()
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::CameraSchemaInfo>::getSchemaTitle()
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::LightSchemaInfo>::getSchemaTitle()
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::NuPatchSchemaInfo>::getSchemaTitle()
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::PointsSchemaInfo>::getSchemaTitle()
72
73
    //! Return the default name for instances of this schema. Often
74
    //! something like ".geom"
75
    static const char * getDefaultSchemaName()
76
834
    {
77
834
        return INFO::defaultName();
78
834
    }
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::PolyMeshSchemaInfo>::getDefaultSchemaName()
Line
Count
Source
76
140
    {
77
140
        return INFO::defaultName();
78
140
    }
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::SubDSchemaInfo>::getDefaultSchemaName()
Line
Count
Source
76
140
    {
77
140
        return INFO::defaultName();
78
140
    }
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::FaceSetSchemaInfo>::getDefaultSchemaName()
Line
Count
Source
76
140
    {
77
140
        return INFO::defaultName();
78
140
    }
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::CurvesSchemaInfo>::getDefaultSchemaName()
Line
Count
Source
76
140
    {
77
140
        return INFO::defaultName();
78
140
    }
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::XformSchemaInfo>::getDefaultSchemaName()
Line
Count
Source
76
140
    {
77
140
        return INFO::defaultName();
78
140
    }
Alembic::Abc::v12::ISchema<Alembic::AbcMaterial::v12::MaterialSchemaInfo>::getDefaultSchemaName()
Line
Count
Source
76
134
    {
77
134
        return INFO::defaultName();
78
134
    }
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::GeomBaseSchemaInfo>::getDefaultSchemaName()
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::CameraSchemaInfo>::getDefaultSchemaName()
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::LightSchemaInfo>::getDefaultSchemaName()
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::NuPatchSchemaInfo>::getDefaultSchemaName()
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::PointsSchemaInfo>::getDefaultSchemaName()
79
80
    //! This will check whether or not a given entity (as represented by
81
    //! a metadata) strictly matches the interpretation of this
82
    //! schema object
83
    static bool matches( const AbcA::MetaData &iMetaData,
84
                         SchemaInterpMatching iMatching = kStrictMatching )
85
3
    {
86
3
        if ( std::string() == getSchemaTitle() || iMatching == kNoMatching )
87
3
        { return true; }
88
89
0
        if ( iMatching == kStrictMatching || iMatching == kSchemaTitleMatching )
90
0
        {
91
0
            return iMetaData.get( "schema" ) == getSchemaTitle();
92
0
        }
93
94
0
        return false;
95
0
    }
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::PolyMeshSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::MetaData const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::SubDSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::MetaData const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::FaceSetSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::MetaData const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::CurvesSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::MetaData const&, Alembic::Abc::v12::SchemaInterpMatching)
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::XformSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::MetaData const&, Alembic::Abc::v12::SchemaInterpMatching)
Line
Count
Source
85
3
    {
86
3
        if ( std::string() == getSchemaTitle() || iMatching == kNoMatching )
87
3
        { return true; }
88
89
0
        if ( iMatching == kStrictMatching || iMatching == kSchemaTitleMatching )
90
0
        {
91
0
            return iMetaData.get( "schema" ) == getSchemaTitle();
92
0
        }
93
94
0
        return false;
95
0
    }
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcMaterial::v12::MaterialSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::MetaData const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::GeomBaseSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::MetaData const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::CameraSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::MetaData const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::LightSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::MetaData const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::NuPatchSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::MetaData const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::PointsSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::MetaData const&, Alembic::Abc::v12::SchemaInterpMatching)
96
97
    //! This will check whether or not a given object (as represented by
98
    //! an object header) strictly matches the interpretation of this
99
    //! schema object, as well as the data type.
100
    static bool matches( const AbcA::PropertyHeader &iHeader,
101
                         SchemaInterpMatching iMatching = kStrictMatching )
102
3
    {
103
3
        return matches( iHeader.getMetaData(), iMatching );
104
3
    }
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::PolyMeshSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::PropertyHeader const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::SubDSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::PropertyHeader const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::FaceSetSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::PropertyHeader const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::CurvesSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::PropertyHeader const&, Alembic::Abc::v12::SchemaInterpMatching)
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::XformSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::PropertyHeader const&, Alembic::Abc::v12::SchemaInterpMatching)
Line
Count
Source
102
3
    {
103
3
        return matches( iHeader.getMetaData(), iMatching );
104
3
    }
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcMaterial::v12::MaterialSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::PropertyHeader const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::GeomBaseSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::PropertyHeader const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::CameraSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::PropertyHeader const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::LightSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::PropertyHeader const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::NuPatchSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::PropertyHeader const&, Alembic::Abc::v12::SchemaInterpMatching)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::PointsSchemaInfo>::matches(Alembic::AbcCoreAbstract::v12::PropertyHeader const&, Alembic::Abc::v12::SchemaInterpMatching)
105
106
    //-*************************************************************************
107
    // CONSTRUCTION, DESTRUCTION, ASSIGNMENT
108
    //-*************************************************************************
109
110
    //! The default constructor creates an empty ISchema
111
    //! function set.
112
3
    ISchema() {}
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::PolyMeshSchemaInfo>::ISchema()
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::SubDSchemaInfo>::ISchema()
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::FaceSetSchemaInfo>::ISchema()
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::CurvesSchemaInfo>::ISchema()
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::XformSchemaInfo>::ISchema()
Line
Count
Source
112
3
    ISchema() {}
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcMaterial::v12::MaterialSchemaInfo>::ISchema()
113
114
    //! Creates a new Compound Property Reader with the schema
115
    //! information added to the metadata.
116
    //! arguments count include error handling, strictness matching.
117
    ISchema( const ICompoundProperty &iParent,
118
             const std::string &iName,
119
             const Argument &iArg0 = Argument(),
120
             const Argument &iArg1 = Argument() )
121
3
    {
122
3
        init( iParent, iName, iArg0, iArg1 );
123
3
    }
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::PolyMeshSchemaInfo>::ISchema(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::SubDSchemaInfo>::ISchema(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::FaceSetSchemaInfo>::ISchema(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::CurvesSchemaInfo>::ISchema(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::XformSchemaInfo>::ISchema(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Line
Count
Source
121
3
    {
122
3
        init( iParent, iName, iArg0, iArg1 );
123
3
    }
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcMaterial::v12::MaterialSchemaInfo>::ISchema(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
124
125
    //! Wrap an existing compound property, checking that it matches
126
    //! the schema title info, if strict matching has been selected.
127
    //! Arguments allow selection of error handling and matching strictness
128
    ISchema( const ICompoundProperty &iProperty,
129
             const Argument &iArg0 = Argument(),
130
             const Argument &iArg1 = Argument() )
131
    : ICompoundProperty( iProperty.getPtr(),
132
                         GetErrorHandlerPolicy( iProperty, iArg0, iArg1 ) )
133
    {
134
        ALEMBIC_ABC_SAFE_CALL_BEGIN( "ISchema::ISchema( wrap )" );
135
136
        const AbcA::PropertyHeader &pheader = this->getHeader();
137
138
        ABCA_ASSERT( matches( pheader,
139
            GetSchemaInterpMatching( iArg0, iArg1 ) ),
140
            "Incorrect match of schema: "
141
            << pheader.getMetaData().get( "schema" )
142
            << " to expected: "
143
            << INFO::title() );
144
145
        // not wrapped, we want to use the default name
146
        if ( !iProperty.getParent().valid() )
147
        {
148
            init( iProperty, getDefaultSchemaName(),
149
                  iArg0, iArg1 );
150
        }
151
152
        ALEMBIC_ABC_SAFE_CALL_END_RESET();
153
    }
154
155
    // Deprecated in favor of the constructor above
156
    ISchema( const ICompoundProperty &iProperty,
157
             WrapExistingFlag iFlag,
158
             const Argument &iArg0 = Argument(),
159
             const Argument &iArg1 = Argument() )
160
    {
161
      *this = ISchema( iProperty, iArg0, iArg1 );
162
    }
163
164
    //! Default copy constructor used
165
    //! Default assignment operator used.
166
    //
167
6
    virtual ~ISchema() {}
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::PolyMeshSchemaInfo>::~ISchema()
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::SubDSchemaInfo>::~ISchema()
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::FaceSetSchemaInfo>::~ISchema()
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::CurvesSchemaInfo>::~ISchema()
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::XformSchemaInfo>::~ISchema()
Line
Count
Source
167
6
    virtual ~ISchema() {}
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcMaterial::v12::MaterialSchemaInfo>::~ISchema()
168
169
private:
170
    void init( const ICompoundProperty & iParentObject,
171
               const std::string &iName,
172
               const Argument &iArg0,
173
               const Argument &iArg1 );
174
};
175
176
//-*****************************************************************************
177
// TEMPLATE AND INLINE FUNCTIONS
178
//-*****************************************************************************
179
template <class INFO>
180
void ISchema<INFO>::init( const ICompoundProperty & iParent,
181
                          const std::string &iName,
182
                          const Argument &iArg0,
183
                          const Argument &iArg1 )
184
3
{
185
3
    Arguments args;
186
3
    iArg0.setInto( args );
187
3
    iArg1.setInto( args );
188
189
3
    getErrorHandler().setPolicy( args.getErrorHandlerPolicy() );
190
191
6
    ALEMBIC_ABC_SAFE_CALL_BEGIN( "ISchema::ISchema::init()" );
192
193
    // Get actual reader for parent.
194
6
    ABCA_ASSERT( iParent,
195
6
                 "NULL parent passed into ISchema ctor" );
196
3
    AbcA::CompoundPropertyReaderPtr parent = iParent.getPtr();
197
3
    ABCA_ASSERT( parent, "NULL CompoundPropertyReaderPtr" );
198
199
3
    const AbcA::PropertyHeader *pheader = parent->getPropertyHeader( iName );
200
201
3
    ABCA_ASSERT( pheader != NULL,
202
3
                 "Nonexistent compound property: " << iName );
203
204
    // Check metadata for schema.
205
3
    ABCA_ASSERT( matches( *pheader, args.getSchemaInterpMatching() ),
206
207
3
                 "Incorrect match of schema: "
208
3
                 << pheader->getMetaData().get( "schema" )
209
3
                 << " to expected: "
210
3
                 << INFO::title() );
211
212
    // Get property.
213
3
    m_property = parent->getCompoundProperty( iName );
214
215
3
    ALEMBIC_ABC_SAFE_CALL_END_RESET();
216
3
}
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::PolyMeshSchemaInfo>::init(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::SubDSchemaInfo>::init(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::FaceSetSchemaInfo>::init(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::CurvesSchemaInfo>::init(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::XformSchemaInfo>::init(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Line
Count
Source
184
3
{
185
3
    Arguments args;
186
3
    iArg0.setInto( args );
187
3
    iArg1.setInto( args );
188
189
3
    getErrorHandler().setPolicy( args.getErrorHandlerPolicy() );
190
191
6
    ALEMBIC_ABC_SAFE_CALL_BEGIN( "ISchema::ISchema::init()" );
192
193
    // Get actual reader for parent.
194
6
    ABCA_ASSERT( iParent,
195
6
                 "NULL parent passed into ISchema ctor" );
196
3
    AbcA::CompoundPropertyReaderPtr parent = iParent.getPtr();
197
3
    ABCA_ASSERT( parent, "NULL CompoundPropertyReaderPtr" );
198
199
3
    const AbcA::PropertyHeader *pheader = parent->getPropertyHeader( iName );
200
201
3
    ABCA_ASSERT( pheader != NULL,
202
3
                 "Nonexistent compound property: " << iName );
203
204
    // Check metadata for schema.
205
3
    ABCA_ASSERT( matches( *pheader, args.getSchemaInterpMatching() ),
206
207
3
                 "Incorrect match of schema: "
208
3
                 << pheader->getMetaData().get( "schema" )
209
3
                 << " to expected: "
210
3
                 << INFO::title() );
211
212
    // Get property.
213
3
    m_property = parent->getCompoundProperty( iName );
214
215
3
    ALEMBIC_ABC_SAFE_CALL_END_RESET();
216
3
}
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcMaterial::v12::MaterialSchemaInfo>::init(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::GeomBaseSchemaInfo>::init(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::CameraSchemaInfo>::init(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::LightSchemaInfo>::init(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::NuPatchSchemaInfo>::init(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
Unexecuted instantiation: Alembic::Abc::v12::ISchema<Alembic::AbcGeom::v12::PointsSchemaInfo>::init(Alembic::Abc::v12::ICompoundProperty const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::Abc::v12::Argument const&, Alembic::Abc::v12::Argument const&)
217
218
} // End namespace ALEMBIC_VERSION_NS
219
220
using namespace ALEMBIC_VERSION_NS;
221
222
} // End namespace Abc
223
} // End namespace Alembic
224
225
#endif