void SceneShape::sceneShapeAttributeNames( const MDagPath &p, SceneInterface::NameList &attributeNames ) { MDagPath dagPath; SceneShape *sceneShape = findScene( p, false, &dagPath ); if ( !sceneShape ) { return; } SceneInterface::NameList sceneAttrNames; ConstSceneInterfacePtr scene = sceneShape->getSceneInterface(); if ( !scene ) { return; } scene->attributeNames( sceneAttrNames ); attributeNames.insert( attributeNames.end(), sceneAttrNames.begin(), sceneAttrNames.end() ); MFnDagNode fnChildDag( dagPath ); if( !fnChildDag.isIntermediateObject() && hasSceneShapeLink( p ) ) { attributeNames.push_back( LinkedScene::linkAttribute ); } }
void OBJ_SceneCacheTransform::attributeNames( const OP_Node *node, SceneInterface::NameList &attrs ) { // make sure its a SceneCacheNode if ( !node->hasParm( pFile.getToken() ) || !node->hasParm( pRoot.getToken() ) ) { return; } const SceneCacheNode<OP_Node> *sceneNode = reinterpret_cast< const SceneCacheNode<OP_Node>* >( node ); /// \todo: do we need to ensure the file exists first? ConstSceneInterfacePtr scene = OBJ_SceneCacheTransform::scene( sceneNode->getFile(), sceneNode->getPath() ); if ( !scene ) { return; } scene->attributeNames( attrs ); const char *expanded = pExpanded.getToken(); if ( node->hasParm( expanded ) && !node->evalInt( expanded, 0, 0 ) ) { attrs.push_back( LinkedScene::linkAttribute ); } }