//-***************************************************************************** IFaceSet ISubDSchema::getFaceSet( const std::string &iFaceSetName ) { ALEMBIC_ABC_SAFE_CALL_BEGIN( "ISubDSchema::getFaceSet()" ); Alembic::Util::scoped_lock l(m_faceSetsMutex); if (!m_faceSetsLoaded) { loadFaceSetNames(); } ABCA_ASSERT( m_faceSets.find (iFaceSetName) != m_faceSets.end (), "The requested FaceSet name can't be found in SubD."); if (!m_faceSets [iFaceSetName]) { // We haven't yet loaded the faceSet, so create/load it m_faceSets [iFaceSetName] = IFaceSet ( getObject(), iFaceSetName ); } return m_faceSets [iFaceSetName]; ALEMBIC_ABC_SAFE_CALL_END(); IFaceSet empty; return empty; }
//-***************************************************************************** IFaceSet IPolyMeshSchema::getFaceSet ( const std::string &iFaceSetName ) { ALEMBIC_ABC_SAFE_CALL_BEGIN( "IPolyMeshSchema::getFaceSet()" ); boost::mutex::scoped_lock l(m_faceSetsMutex); if (!m_faceSetsLoaded) { loadFaceSetNames(); } ABCA_ASSERT( m_faceSets.find (iFaceSetName) != m_faceSets.end (), "The requested FaceSet name can't be found in PolyMesh."); if (!m_faceSets [iFaceSetName]) { // We haven't yet loaded the faceSet, so create/load it m_faceSets [iFaceSetName] = IFaceSet ( this->getParent().getObject(), iFaceSetName ); } return m_faceSets [iFaceSetName]; ALEMBIC_ABC_SAFE_CALL_END(); IFaceSet emptyFaceSet; return emptyFaceSet; }
//-***************************************************************************** void ISubDSchema::getFaceSetNames (std::vector <std::string> & oFaceSetNames) { ALEMBIC_ABC_SAFE_CALL_BEGIN( "ISubDSchema::getFaceSetNames()" ); Alembic::Util::scoped_lock l(m_faceSetsMutex); loadFaceSetNames(); for (std::map<std::string, IFaceSet>::const_iterator faceSetIter = m_faceSets.begin(); faceSetIter != m_faceSets.end(); ++faceSetIter) { oFaceSetNames.push_back( faceSetIter->first ); } ALEMBIC_ABC_SAFE_CALL_END(); }
//-***************************************************************************** bool ISubDSchema::hasFaceSet( const std::string &faceSetName ) { ALEMBIC_ABC_SAFE_CALL_BEGIN( "ISubDSchema::hasFaceSet (faceSetName)" ); Alembic::Util::scoped_lock l(m_faceSetsMutex); if (!m_faceSetsLoaded) { loadFaceSetNames(); } return (m_faceSets.find (faceSetName) != m_faceSets.end ()); ALEMBIC_ABC_SAFE_CALL_END(); return false; }
//-***************************************************************************** bool IPolyMeshSchema::hasFaceSet( const std::string &iFaceSetName ) { ALEMBIC_ABC_SAFE_CALL_BEGIN( "IPolyMeshSchema::hasFaceSet (iFaceSetName)" ); boost::mutex::scoped_lock l(m_faceSetsMutex); if (!m_faceSetsLoaded) { loadFaceSetNames(); } return (m_faceSets.find (iFaceSetName) != m_faceSets.end ()); ALEMBIC_ABC_SAFE_CALL_END(); return false; }