FieldContainerUnrecPtr getFieldContainer(const FieldContainerType *szType, const std::string &namestring) { if(szType == NULL) { SWARNING << "getFieldContainer(): The Field type is not defined." << std::endl; return NULL; } const FieldContainerFactoryBase::ContainerStore &FCStore( FieldContainerFactory::the()->getFieldContainerStore () ); FieldContainerFactoryBase::ContainerStore::const_iterator FCStoreIter; FieldContainerFactoryBase::ContainerPtr Cont; for(FCStoreIter = FCStore.begin() ; FCStoreIter != FCStore.end() ; ++FCStoreIter) { #ifdef OSG_MT_CPTR_ASPECT Cont = (*FCStoreIter)->getPtr(); #else Cont = *FCStoreIter; #endif if( Cont != NULL && Cont->getType() == (*szType) ) { const Char8 *Name( getName(dynamic_cast<AttachmentContainer*>(Cont)) ); if(Name != NULL && namestring.compare(Name) == 0) { return Cont; } } } return NULL; }
FieldContainer *getFieldContainer(const FieldContainerType *pType, const std::string &szName) { if(pType == NULL) { SWARNING << "getFieldContainer(): The Field type is not defined." << std::endl; return NULL; } const FieldContainerFactoryBase::ContainerStore &oFCStore( FieldContainerFactory::the()->getFieldContainerStore()); FieldContainerFactoryBase::ContainerStore::const_iterator fcStoreIt = oFCStore.begin(); FieldContainerFactoryBase::ContainerPtr pCont = NULL; for(; fcStoreIt != oFCStore.end() ; ++fcStoreIt) { #ifdef OSG_MT_CPTR_ASPECT pCont = (*fcStoreIt).second->getPtr(); #else pCont = *fcStoreIt .second; #endif if(pCont != NULL && pCont->getType() == (*pType)) { const Char8 *szCntName = getName(dynamic_cast<AttachmentContainer *>(pCont)); if(szCntName != NULL && szName.compare(szCntName) == 0) { return pCont; } } } return NULL; }
std::vector<FieldContainerUnrecPtr> getAllContainersByDerivedType(const FieldContainerType *szType) { std::vector<FieldContainerUnrecPtr> Result; const FieldContainerFactoryBase::ContainerStore &FCStore( FieldContainerFactory::the()->getFieldContainerStore () ); FieldContainerFactoryBase::ContainerStore::const_iterator FCStoreIter; FieldContainerFactoryBase::ContainerPtr Cont; for(FCStoreIter = FCStore.begin() ; FCStoreIter != FCStore.end() ; ++FCStoreIter) { #ifdef OSG_MT_CPTR_ASPECT Cont = (*FCStoreIter)->getPtr(); #else Cont = *FCStoreIter; #endif if( Cont != NULL && Cont->getType().isDerivedFrom(*szType) ) { Result.push_back(Cont); } } return Result; }
std::vector<FieldContainer *> getAllContainersByDerivedType( const FieldContainerType *pType) { std::vector<FieldContainer *> vResult; const FieldContainerFactoryBase::ContainerStore &oFCStore = FieldContainerFactory::the()->getFieldContainerStore(); FieldContainerFactoryBase::ContainerStore::const_iterator fcStoreIt = oFCStore.begin(); FieldContainerFactoryBase::ContainerPtr pCont = NULL; for(;fcStoreIt != oFCStore.end() ; ++fcStoreIt) { if((*fcStoreIt).second != NULL) { #ifdef OSG_MT_CPTR_ASPECT pCont = (*fcStoreIt).second->getPtr(); #else pCont = *fcStoreIt .second; #endif } else { pCont = NULL; } if(pCont != NULL && pCont->getType().isDerivedFrom(*pType)) { vResult.push_back(pCont); } } return vResult; }