本文整理汇总了C++中alembic::abc::IObject::getChild方法的典型用法代码示例。如果您正苦于以下问题:C++ IObject::getChild方法的具体用法?C++ IObject::getChild怎么用?C++ IObject::getChild使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类alembic::abc::IObject
的用法示例。
在下文中一共展示了IObject::getChild方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: traverse
void traverse(Abc::IObject object, bool includeSelf)
{
if (includeSelf)
{
std::cout << "---------------------------------" << std::endl;
std::cout << object.getFullName() << std::endl;
if (Mat::IMaterial::matches(object.getHeader()))
{
std::cout << "(is material, local data shown)\n";
Mat::IMaterial mat(object, Abc::kWrapExisting);
printMaterialSchema(mat.getSchema());
TESTING_ASSERT(object.getName() == "materialA" ||
object.getName() == "materialB");
}
else
{
Mat::MaterialFlatten mafla(object);
std::string name = object.getName();
std::cout << name << " " << mafla.empty() << std::endl;
TESTING_ASSERT(
(!mafla.empty() &&
(name == "geoA" || name == "geoB" || name == "geoC")) ||
(mafla.empty() &&
(name == "geometry" || name == "materials")));
if (!mafla.empty())
{
std::cout << "(flattened material via has and/or assigned)\n";
printFlattenedMafla(mafla);
}
else
{
std::cout << "(neither is, has or is assigned)\n";
}
}
}
for (size_t i = 0; i < object.getNumChildren(); ++i)
{
traverse(object.getChild(i), true);
}
}
示例2: is_leaf
//-*****************************************************************************
bool is_leaf( AbcG::IObject iObj )
{
if ( !iObj.getParent().valid() ) {
return true;
}
Abc::IObject parent = iObj.getParent();
int numChildren = parent.getNumChildren();
Abc::IObject test = parent.getChild(numChildren - 1);
if ( test.valid() && test.getName() != iObj.getName() ) {
return false;
}
return true;
}
示例3: copyObject
void copyObject(Alembic::Abc::IObject & iIn,
Alembic::Abc::OObject & iOut)
{
std::size_t numChildren = iIn.getNumChildren();
Alembic::Abc::ICompoundProperty inProps = iIn.getProperties();
Alembic::Abc::OCompoundProperty outProps = iOut.getProperties();
copyProps(inProps, outProps);
for (std::size_t i = 0; i < numChildren; ++i)
{
Alembic::Abc::IObject childIn(iIn.getChild(i));
Alembic::Abc::OObject childOut(iOut, childIn.getName(),
childIn.getMetaData());
copyObject(childIn, childOut);
}
}
示例4: getABCCameras
void getABCCameras(Alembic::Abc::IObject & iObj,
std::vector<Alembic::AbcGeom::ICamera> & _objs)
{
unsigned int numChildren = iObj.getNumChildren();
for (unsigned i=0; i<numChildren; ++i)
{
IObject child( iObj.getChild( i ));
if ( Alembic::AbcGeom::ICamera::matches(child.getHeader()) ) {
ICamera cam(child, Alembic::Abc::kWrapExisting);
_objs.push_back(cam);
}
if (child.getNumChildren() > 0) {
getABCCameras(child, _objs);
}
}
}
示例5: getABCGeos
void getABCGeos(Alembic::Abc::IObject & iObj,
std::vector<Alembic::AbcGeom::IObject> & _objs)
{
unsigned int numChildren = iObj.getNumChildren();
for (unsigned i=0; i<numChildren; ++i)
{
IObject child( iObj.getChild( i ));
if ( Alembic::AbcGeom::IPolyMesh::matches(child.getHeader())
|| Alembic::AbcGeom::ISubD::matches(child.getHeader())) {
_objs.push_back(child);
}
if (child.getNumChildren() > 0) {
getABCGeos(child, _objs);
}
}
}