本文整理汇总了C++中IObject::getChild方法的典型用法代码示例。如果您正苦于以下问题:C++ IObject::getChild方法的具体用法?C++ IObject::getChild怎么用?C++ IObject::getChild使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IObject
的用法示例。
在下文中一共展示了IObject::getChild方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: layerTest
//-*****************************************************************************
void layerTest()
{
std::string fileName = "objectLayer1.abc";
std::string fileName2 = "objectLayer2.abc";
{
OArchive archive( Alembic::AbcCoreOgawa::WriteArchive(), fileName );
OObject child( archive.getTop(), "child" );
OObject childCool( child, "cool" );
OObject childGuy( child, "guy" );
OObject childA( archive.getTop(), "childA" );
OObject childAA( childA, "A" );
}
{
OArchive archive( Alembic::AbcCoreOgawa::WriteArchive(), fileName2 );
OObject child( archive.getTop(), "child" );
OObject childCool( child, "cool" );
OObject childGal( child, "gal" );
OObject childA( archive.getTop(), "childB" );
OObject childAA( childA, "B" );
}
{
std::vector< std::string > files;
files.push_back( fileName );
files.push_back( fileName2 );
Alembic::AbcCoreFactory::IFactory factory;
IArchive archive = factory.getArchive( files );
// child, childA, childB
TESTING_ASSERT( archive.getTop().getNumChildren() == 3 );
IObject child = archive.getTop().getChild("child");
TESTING_ASSERT( child.getNumChildren() == 3 );
TESTING_ASSERT( child.getChild("cool").valid() );
TESTING_ASSERT( child.getChild("cool").getNumChildren() == 0 );
TESTING_ASSERT( child.getChild("guy").valid() );
TESTING_ASSERT( child.getChild("guy").getNumChildren() == 0 );
TESTING_ASSERT( child.getChild("gal").valid() );
TESTING_ASSERT( child.getChild("gal").getNumChildren() == 0 );
IObject childA = archive.getTop().getChild("childA");
TESTING_ASSERT( childA.getNumChildren() == 1 );
TESTING_ASSERT( childA.getChild("A").valid() );
TESTING_ASSERT( childA.getChild("A").getNumChildren() == 0 );
IObject childB = archive.getTop().getChild("childB");
TESTING_ASSERT( childB.getNumChildren() == 1 );
TESTING_ASSERT( childB.getChild("B").valid() );
TESTING_ASSERT( childB.getChild("B").getNumChildren() == 0 );
}
}
示例2: pruneTest
//-*****************************************************************************
void pruneTest()
{
std::string fileName = "objectPrune1.abc";
std::string fileName2 = "objectPrune2.abc";
{
OArchive archive( Alembic::AbcCoreOgawa::WriteArchive(), fileName );
OObject child( archive.getTop(), "child" );
OObject childCool( child, "cool" );
OObject childGuy( child, "guy" );
OObject childA( archive.getTop(), "childA" );
OObject childAA( childA, "A" );
OObject childB( archive.getTop(), "childB" );
OObject childBB( childB, "B" );
}
{
MetaData md;
Alembic::AbcCoreLayer::SetPrune( md, true );
OArchive archive( Alembic::AbcCoreOgawa::WriteArchive(), fileName2 );
OObject child( archive.getTop(), "child" );
OObject childGuy( child, "guy", md );
OObject childA( archive.getTop(), "childA" );
OObject childAA( childA, "A", md );
OObject childAB( childA, "B", md );
OObject childB( archive.getTop(), "childB", md );
}
{
std::vector< std::string > files;
files.push_back( fileName );
files.push_back( fileName2 );
Alembic::AbcCoreFactory::IFactory factory;
IArchive archive = factory.getArchive( files );
// child, childA, childB
TESTING_ASSERT( archive.getTop().getNumChildren() == 2 );
IObject child = archive.getTop().getChild("child");
TESTING_ASSERT( child.getNumChildren() == 1 );
TESTING_ASSERT( child.getChild("cool").valid() );
TESTING_ASSERT( child.getChild("cool").getNumChildren() == 0 );
IObject childA = archive.getTop().getChild("childA");
TESTING_ASSERT( childA.getNumChildren() == 0 );
}
}
示例3: getABCTimeSpan
//-*****************************************************************************
void getABCTimeSpan(IArchive archive, chrono_t& first, chrono_t& last)
{
// TO DO: Is the childBounds property reliable to get the full archive's span?
if (!archive.valid())
return;
IObject archiveTop = archive.getTop();
if ( archiveTop.getProperties().getPropertyHeader( ".childBnds" ) != NULL ) { // Try to get timing from childBounds first
IBox3dProperty childbnds = Alembic::Abc::IBox3dProperty( archive.getTop().getProperties(),
".childBnds", ErrorHandler::kQuietNoopPolicy);
TimeSamplingPtr ts = childbnds.getTimeSampling();
first = std::min(first, ts->getSampleTime(0) );
last = std::max(last, ts->getSampleTime(childbnds.getNumSamples()-1) );
return;
}
unsigned int numChildren = archiveTop.getNumChildren();
for (unsigned i=0; i<numChildren; ++i) // Visit every object to get its first and last sample
{
IObject obj( archiveTop.getChild( i ));
getObjectTimeSpan(obj, first, last, true);
}
}
示例4: getObjectTimeSpan
void getObjectTimeSpan(IObject obj, chrono_t& first, chrono_t& last, bool doChildren)
{
if ( Alembic::AbcGeom::IPolyMesh::matches(obj.getHeader()) ) {
IPolyMesh iPoly(obj, Alembic::Abc::kWrapExisting);
getPolyMeshTimeSpan(iPoly, first, last);
}
else if ( Alembic::AbcGeom::ISubD::matches(obj.getHeader()) ) {
ISubD iSub(obj, Alembic::Abc::kWrapExisting);
getSubDTimeSpan(iSub, first, last);
}
else if ( Alembic::AbcGeom::IXform::matches(obj.getHeader()) ) {
IXform iXf(obj, Alembic::Abc::kWrapExisting);
getXformTimeSpan(iXf, first, last, false);
}
else if ( Alembic::AbcGeom::ICamera::matches(obj.getHeader()) ) {
ICamera iCam(obj, Alembic::Abc::kWrapExisting);
getCameraTimeSpan(iCam, first, last);
}
if (doChildren) {
// do this object's children too
for (unsigned i=0; i < obj.getNumChildren(); ++i)
{
IObject child( obj.getChild( i ));
getObjectTimeSpan(child, first, last, doChildren);
}
}
}
示例5: recursivelyReadChildren
void recursivelyReadChildren( IObject& parent )
{
unsigned int numChildren = parent.getNumChildren();
std::cout << " has " << numChildren << " children"
<< std::endl;
for (unsigned int ii=0; ii<numChildren; ii++)
{
IObject child = parent.getChild(ii);
std::cout << " " << child.getName();
unsigned int expectedChildren = 2;
if (child.getName().substr(6,1) == "2")
// bottom of the hierarchy
expectedChildren = 0;
unsigned int children = child.getNumChildren();
ABCA_ASSERT( children == expectedChildren,
"Expected " << expectedChildren << " children " <<
"but found " << children );
recursivelyReadChildren( child );
}
return;
}
示例6: getABCTimeSpan
//-*****************************************************************************
void getABCTimeSpan(IArchive archive, chrono_t& first, chrono_t& last)
{
// TO DO: Is the childBounds property reliable to get the full archive's span?
if (!archive.valid())
return;
IObject archiveTop = archive.getTop();
unsigned int numChildren = archiveTop.getNumChildren();
for (unsigned i=0; i<numChildren; ++i)
{
IObject obj( archiveTop.getChild( i ));
getObjectTimeSpan(obj, first, last, true);
}
}
示例7: diabolicalInstance
//-*****************************************************************************
void diabolicalInstance( const std::string& iArchiveName, bool useOgawa )
{
/*
a0 b0 (points to a0)
/ |
a1 b1 (points to a1)
/ |
a2 b2 (points to b2)
*/
{
OArchive archive;
if (useOgawa)
{
archive = OArchive( Alembic::AbcCoreOgawa::WriteArchive(),
iArchiveName, ErrorHandler::kThrowPolicy );
}
else
{
archive = OArchive( Alembic::AbcCoreHDF5::WriteArchive(),
iArchiveName, ErrorHandler::kThrowPolicy );
}
OObject topobj = archive.getTop();
OObject a0( topobj, "a0" );
TESTING_ASSERT( topobj.addChildInstance( a0, "b0" ) );
OObject a1( a0, "a1" );
TESTING_ASSERT( a0.addChildInstance( a1, "b1" ) );
OObject a2( a1, "a2" );
TESTING_ASSERT( a1.addChildInstance( a2, "b2" ) );
}
{
AbcF::IFactory factory;
IArchive archive = factory.getArchive( iArchiveName );
IObject topObject = archive.getTop();
IObject a0( topObject.getChild(0) );
TESTING_ASSERT( !a0.isInstanceDescendant() );
TESTING_ASSERT( a0.getFullName() == "/a0" );
TESTING_ASSERT( !a0.getParent().isInstanceDescendant() );
TESTING_ASSERT( a0.getParent().getFullName() == "/" );
IObject b0( topObject.getChild(1) );
TESTING_ASSERT( b0.isInstanceDescendant() );
TESTING_ASSERT( b0.getName() == "b0" );
TESTING_ASSERT( b0.getFullName() == "/b0" );
TESTING_ASSERT( !b0.getParent().isInstanceDescendant() );
TESTING_ASSERT( b0.getParent().getFullName() == "/" );
IObject a0a1( a0.getChild(0) );
TESTING_ASSERT( !a0a1.isInstanceDescendant() );
TESTING_ASSERT( a0a1.getName() == "a1" );
TESTING_ASSERT( a0a1.getFullName() == "/a0/a1" );
TESTING_ASSERT( !a0a1.getParent().isInstanceDescendant() );
TESTING_ASSERT( a0a1.getParent().getName() == "a0" );
TESTING_ASSERT( a0a1.getParent().getFullName() == "/a0" );
IObject a0b1( a0.getChild(1) );
TESTING_ASSERT( a0b1.isInstanceDescendant() );
TESTING_ASSERT( a0b1.getName() == "b1" );
TESTING_ASSERT( a0b1.getFullName() == "/a0/b1" );
TESTING_ASSERT( !a0b1.getParent().isInstanceDescendant() );
TESTING_ASSERT( a0b1.getParent().getName() == "a0" );
TESTING_ASSERT( a0b1.getParent().getFullName() == "/a0" );
IObject b0a1( b0.getChild(0) );
TESTING_ASSERT( b0a1.isInstanceDescendant() );
TESTING_ASSERT( b0a1.getParent().isInstanceDescendant() );
IObject b0b1( b0.getChild(1) );
TESTING_ASSERT( b0b1.isInstanceDescendant() );
TESTING_ASSERT( b0b1.getName() == "b1" );
TESTING_ASSERT( b0b1.getFullName() == "/b0/b1" );
TESTING_ASSERT( b0b1.getParent().isInstanceDescendant() );
TESTING_ASSERT( b0b1.getParent().getName() == "b0" );
TESTING_ASSERT( b0b1.getParent().getFullName() == "/b0" );
IObject a0a1a2( a0a1.getChild(0) );
TESTING_ASSERT( !a0a1a2.isInstanceDescendant() );
TESTING_ASSERT( a0a1a2.getName() == "a2" );
TESTING_ASSERT( a0a1a2.getFullName() == "/a0/a1/a2" );
TESTING_ASSERT( !a0a1a2.getParent().isInstanceDescendant() );
TESTING_ASSERT( a0a1a2.getParent().getName() == "a1" );
TESTING_ASSERT( a0a1a2.getParent().getFullName() == "/a0/a1" );
TESTING_ASSERT( !a0a1a2.getParent().getParent().isInstanceDescendant() );
TESTING_ASSERT( a0a1a2.getParent().getParent().getName() == "a0" );
TESTING_ASSERT( a0a1a2.getParent().getParent().getFullName() == "/a0" );
IObject a0a1b2( a0a1.getChild(1) );
TESTING_ASSERT( a0a1b2.isInstanceDescendant() );
TESTING_ASSERT( a0a1b2.getName() == "b2" );
TESTING_ASSERT( a0a1b2.getFullName() == "/a0/a1/b2" );
TESTING_ASSERT( !a0a1b2.getParent().isInstanceDescendant() );
TESTING_ASSERT( a0a1b2.getParent().getName() == "a1" );
//.........这里部分代码省略.........