void TrussMaterialLibrary::selectMaterial ( const QString& uuid ) { TrussMaterial* material = getMaterial( uuid ); if ( material ) selectMaterial( *material ); }
void TrussMaterialLibrary::selectMaterial ( int idx ) { TrussMaterial* material = getMaterial( idx ); if ( material ) selectMaterial( *material ); }
void TrussMaterialLibrary::loadFromXML ( const QDomElement& projElem ) /*throw (LoadException)*/ { XMLSerializableObject::loadFromXML( projElem ); clean(); /** * Create materials ********************/ QDomNodeList trussMaterials = projElem.elementsByTagName( "TrussMaterial" ); for ( int i = 0; i < trussMaterials.count(); ++i ) { QDomNode material = trussMaterials.item( i ); if ( ! material.isElement() ) throw LoadException(); QDomElement materialElem = material.toElement(); TrussMaterial& newMaterial = createMaterial( 0, 0, 0, "" ); newMaterial.loadFromXML( materialElem ); } /** * Set selected material ************************/ if ( ! projElem.hasAttribute( "selectedMaterial" ) ) throw LoadException(); QString mUUID = projElem.attribute( "selectedMaterial" ); TrussMaterial* m = getMaterial( mUUID ); if ( m ) selectMaterial( *m ); }
//----------------------------------------------------------------------- void MaterialTab::OnNewMaterial(wxCommandEvent& event) { if (mMaterialListBox) { wxString name = wxT("Material") + ogre2wx(ParticleUniverse::StringConverter::toString(mNewMaterialCounter)); mMaterialListBox->addMaterialName(name); mNewMaterialCounter++; Ogre::MaterialManager* materialManager = Ogre::MaterialManager::getSingletonPtr(); Ogre::String nameString = wx2ogre(name); materialManager->create(nameString, TEMP_MATERIAL_GROUP); Ogre::MaterialPtr material = materialManager->getByName(nameString, TEMP_MATERIAL_GROUP); selectMaterial(name); } }
//----------------------------------------------------------------------- void MaterialTab::OnChangeName(wxCommandEvent& event) { wxString newName = mTxtMaterialName->GetValue(); wxString oldName = mMaterialListBox->GetStringSelection(); Ogre::String newMaterialName = wx2ogre(newName); Ogre::String oldMaterialName = wx2ogre(oldName); Ogre::MaterialPtr material = Ogre::MaterialManager::getSingleton().getByName(oldMaterialName); if (!material.isNull()) { Ogre::MaterialPtr clonedMaterial = material->clone(newMaterialName); if (!clonedMaterial.isNull()) { // Load the new resource, unload the old one, remove it from the list and set the new material as the selected clonedMaterial->load(); Ogre::MaterialManager* materialManager = Ogre::MaterialManager::getSingletonPtr(); materialManager->remove(oldMaterialName); mMaterialListBox->Delete(mMaterialListBox->GetSelection()); mMaterialListBox->addMaterialName(newName); selectMaterial(newName); } } }
//----------------------------------------------------------------------- void MaterialTab::fillMaterials(void) { mMaterialListBox->loadMaterials(); restoreSelectedMaterialName(); selectMaterial(mMaterialListBox->GetStringSelection()); }