ToNukeGeometryConverterPtr ToNukeGeometryConverter::create( ConstObjectPtr object ) { const TypesToFnsMap *m = typesToFns(); TypesToFnsMap::const_iterator it = m->find( Types( object->typeId() ) ); if( it!=m->end() ) { return it->second( object ); } return 0; }
ToMayaObjectConverterPtr ToMayaObjectConverter::create( ConstObjectPtr object, MFn::Type resultType ) { const TypesToFnsMap *m = typesToFns(); TypesToFnsMap::const_iterator it = m->find( Types( object->typeId(), resultType ) ); if( it!=m->end() ) { return it->second( object ); } return 0; }
ToHoudiniGeometryConverterPtr ToHoudiniGeometryConverter::create( const VisibleRenderable *renderable ) { const TypesToFnsMap *m = typesToFns(); TypesToFnsMap::const_iterator it = m->find( Types( renderable->typeId() ) ); if( it!=m->end() ) { return it->second( renderable ); } return 0; }
ToHoudiniGeometryConverterPtr ToHoudiniGeometryConverter::create( const Object *object ) { const TypesToFnsMap *m = typesToFns(); TypesToFnsMap::const_iterator it = m->find( Types( object->typeId() ) ); if( it!=m->end() ) { return it->second( object ); } // no exact match, so check for base class matches const std::vector<IECore::TypeId> &bases = RunTimeTyped::baseTypeIds( object->typeId() ); for ( std::vector<IECore::TypeId>::const_iterator it = bases.begin(); it != bases.end(); ++it ) { TypesToFnsMap::const_iterator cIt = m->find( Types( *it ) ); if ( cIt != m->end() ) { return cIt->second( object ); } } return 0; }