/* ************************************************************************** description -------------------- copyright : (C) 2001 by Luis Carvalho email : lpassos@mail.telepac.pt ************************************************************************** ************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * **************************************************************************/ #include "pmfinish.h" #include "pmxmlhelper.h" #include "pmmemento.h" #include "pmfinishedit.h" #include <klocale.h> const PMColor ambientColorDefault = PMColor( 0.0, 0.0, 0.0, 0.0, 0.0 ); const double diffuseDefault = 0.6; const double brillianceDefault = 1.0; const double crandDefault = 0.0; const double phongDefault = 0.0; const double phongSizeDefault = 40.0; const double metallicDefault = 1.0; const double specularDefault = 0.0; const double roughnessDefault = 0.05; const double iridAmountDefault = 0.0; const double iridThicknessDefault = 0.0; const double iridTurbulenceDefault = 0.0; const PMColor reflectionColorDefault = PMColor( 0.0, 0.0, 0.0, 0.0, 0.0 ); const double reflectionFalloffDefault = 0.0; const double reflectionExponentDefault = 1.0; const double reflectionMetallicDefault = 1.0; PMDefinePropertyClass( PMFinish, PMFinishProperty ); PMMetaObject* PMFinish::s_pMetaObject = 0; PMObject* createNewFinish( PMPart* part ) { return new PMFinish( part ); } PMFinish::PMFinish( PMPart* part ) : Base( part ) { m_ambientColor = ambientColorDefault; m_diffuse = diffuseDefault; m_brilliance = brillianceDefault; m_crand = crandDefault; m_conserveEnergy = false; m_phong = phongDefault; m_phongSize = phongSizeDefault; m_metallic = metallicDefault; m_specular = specularDefault; m_roughness = roughnessDefault; m_iridAmount = iridAmountDefault; m_iridThickness = iridThicknessDefault; m_iridTurbulence = iridTurbulenceDefault; m_reflectionColor = reflectionColorDefault; m_reflectionMinColor = reflectionColorDefault; m_reflectionFresnel = false; m_reflectionFalloff = reflectionFalloffDefault; m_reflectionExponent = reflectionExponentDefault; m_reflectionMetallic = reflectionMetallicDefault; m_enableAmbient = false; m_enableDiffuse = false; m_enableBrilliance = false; m_enableCrand = false; m_enablePhong = false; m_enablePhongSize = false; m_enableMetallic = false; m_enableSpecular = false; m_enableRoughness = false; m_enableReflection = false; m_enableReflectionMin = false; m_enableRefFalloff = false; m_enableRefExponent = false; m_enableRefMetallic = false; m_irid = false; } PMFinish::PMFinish( const PMFinish& f ) : Base( f ) { m_ambientColor = f.m_ambientColor; m_diffuse = f.m_diffuse; m_brilliance = f.m_brilliance; m_crand = f.m_crand; m_conserveEnergy = f.m_conserveEnergy; m_phong = f.m_phong; m_phongSize = f.m_phongSize; m_metallic = f.m_metallic; m_specular = f.m_specular; m_roughness = f.m_roughness; m_iridAmount = f.m_iridAmount; m_iridThickness = f.m_iridThickness; m_iridTurbulence = f.m_iridTurbulence; m_reflectionColor = f.m_reflectionColor; m_reflectionMinColor = f.m_reflectionMinColor; m_reflectionFresnel = f.m_reflectionFresnel; m_reflectionFalloff = f.m_reflectionFalloff; m_reflectionExponent = f.m_reflectionExponent; m_reflectionMetallic = f.m_reflectionMetallic; m_enableAmbient = f.m_enableAmbient; m_enableDiffuse = f.m_enableDiffuse; m_enableBrilliance = f.m_enableBrilliance; m_enableCrand = f.m_enableCrand; m_enablePhong = f.m_enablePhong; m_enablePhongSize = f.m_enablePhongSize; m_enableMetallic = f.m_enableMetallic; m_enableSpecular = f.m_enableSpecular; m_enableRoughness = f.m_enableRoughness; m_enableReflection = f.m_enableReflection; m_enableReflectionMin = f.m_enableReflectionMin; m_enableRefFalloff = f.m_enableRefFalloff; m_enableRefExponent = f.m_enableRefExponent; m_enableRefMetallic = f.m_enableRefMetallic; m_irid = f.m_irid; } PMFinish::~PMFinish( ) { } PMMetaObject* PMFinish::metaObject( ) const { if( !s_pMetaObject ) { s_pMetaObject = new PMMetaObject( "Finish", Base::metaObject( ), createNewFinish ); s_pMetaObject->addProperty( new PMFinishProperty( "ambientColor", &PMFinish::setAmbientColor, &PMFinish::ambientColor ) ); s_pMetaObject->addProperty( new PMFinishProperty( "phong", &PMFinish::setPhong, &PMFinish::phong ) ); s_pMetaObject->addProperty( new PMFinishProperty( "diffuse", &PMFinish::setDiffuse, &PMFinish::diffuse ) ); s_pMetaObject->addProperty( new PMFinishProperty( "brilliance", &PMFinish::setBrilliance, &PMFinish::brilliance ) ); s_pMetaObject->addProperty( new PMFinishProperty( "crand", &PMFinish::setCrand, &PMFinish::crand ) ); s_pMetaObject->addProperty( new PMFinishProperty( "conserveEnergy", &PMFinish::setConserveEnergy, &PMFinish::conserveEnergy ) ); s_pMetaObject->addProperty( new PMFinishProperty( "specular", &PMFinish::setSpecular, &PMFinish::specular ) ); s_pMetaObject->addProperty( new PMFinishProperty( "roughness", &PMFinish::setRoughness, &PMFinish::roughness ) ); s_pMetaObject->addProperty( new PMFinishProperty( "metallic", &PMFinish::setMetallic, &PMFinish::metallic ) ); s_pMetaObject->addProperty( new PMFinishProperty( "irid", &PMFinish::setIrid, &PMFinish::irid ) ); s_pMetaObject->addProperty( new PMFinishProperty( "iridAmount", &PMFinish::setIridAmount, &PMFinish::iridAmount ) ); s_pMetaObject->addProperty( new PMFinishProperty( "iridThickness", &PMFinish::setIridThickness, &PMFinish::iridThickness ) ); s_pMetaObject->addProperty( new PMFinishProperty( "reflectionColor", &PMFinish::setReflectionColor, &PMFinish::reflectionColor ) ); s_pMetaObject->addProperty( new PMFinishProperty( "reflectionMinColor", &PMFinish::setReflectionMinColor, &PMFinish::reflectionMinColor ) ); s_pMetaObject->addProperty( new PMFinishProperty( "reflectionFresnel", &PMFinish::setReflectionFresnel, &PMFinish::reflectionFresnel ) ); s_pMetaObject->addProperty( new PMFinishProperty( "reflectionFalloff", &PMFinish::setReflectionFalloff, &PMFinish::reflectionFalloff ) ); s_pMetaObject->addProperty( new PMFinishProperty( "reflectionExponent", &PMFinish::setReflectionExponent, &PMFinish::reflectionExponent ) ); s_pMetaObject->addProperty( new PMFinishProperty( "reflectionMetallic", &PMFinish::setReflectionMetallic, &PMFinish::reflectionMetallic ) ); s_pMetaObject->addProperty( new PMFinishProperty( "ambientEnabled", &PMFinish::enableAmbient, &PMFinish::isAmbientEnabled ) ); s_pMetaObject->addProperty( new PMFinishProperty( "phongEnabled", &PMFinish::enablePhong, &PMFinish::isPhongEnabled ) ); s_pMetaObject->addProperty( new PMFinishProperty( "phongSizeEnabled", &PMFinish::enablePhongSize, &PMFinish::isPhongSizeEnabled ) ); s_pMetaObject->addProperty( new PMFinishProperty( "diffuseEnabled", &PMFinish::enableDiffuse, &PMFinish::isDiffuseEnabled ) ); s_pMetaObject->addProperty( new PMFinishProperty( "brillianceEnabled", &PMFinish::enableBrilliance, &PMFinish::isBrillianceEnabled ) ); s_pMetaObject->addProperty( new PMFinishProperty( "crandEnabled", &PMFinish::enableCrand, &PMFinish::isCrandEnabled ) ); s_pMetaObject->addProperty( new PMFinishProperty( "specularEnabled", &PMFinish::enableSpecular, &PMFinish::isSpecularEnabled ) ); s_pMetaObject->addProperty( new PMFinishProperty( "roughnessEnabled", &PMFinish::enableRoughness, &PMFinish::isRoughnessEnabled ) ); s_pMetaObject->addProperty( new PMFinishProperty( "metallicEnabled", &PMFinish::enableMetallic, &PMFinish::isMetallicEnabled ) ); s_pMetaObject->addProperty( new PMFinishProperty( "reflectionEnabled", &PMFinish::enableReflection, &PMFinish::isReflectionEnabled ) ); s_pMetaObject->addProperty( new PMFinishProperty( "reflectionMinEnabled", &PMFinish::enableReflectionMin, &PMFinish::isReflectionMinEnabled ) ); s_pMetaObject->addProperty( new PMFinishProperty( "refFalloffEnabled", &PMFinish::enableRefFalloff, &PMFinish::isRefFalloffEnabled ) ); s_pMetaObject->addProperty( new PMFinishProperty( "refExponentEnabled", &PMFinish::enableRefExponent, &PMFinish::isRefExponentEnabled ) ); s_pMetaObject->addProperty( new PMFinishProperty( "refMetallicEnabled", &PMFinish::enableRefMetallic, &PMFinish::isRefMetallicEnabled ) ); } return s_pMetaObject; } void PMFinish::cleanUp( ) const { if( s_pMetaObject ) { delete s_pMetaObject; s_pMetaObject = 0; } Base::cleanUp( ); } QString PMFinish::description( ) const { return i18n( "finish" ); } void PMFinish::serialize( QDomElement& e, QDomDocument& doc ) const { Base::serialize( e, doc ); e.setAttribute( "enable_ambient", m_enableAmbient ); e.setAttribute( "enable_diffuse", m_enableDiffuse ); e.setAttribute( "enable_brilliance", m_enableBrilliance ); e.setAttribute( "enable_crand", m_enableCrand ); e.setAttribute( "enable_phong", m_enablePhong ); e.setAttribute( "enable_phong_size", m_enablePhongSize ); e.setAttribute( "enable_metallic", m_enableMetallic ); e.setAttribute( "enable_specular", m_enableSpecular ); e.setAttribute( "enable_roughness", m_enableRoughness ); e.setAttribute( "enable_reflection", m_enableReflection ); e.setAttribute( "enable_reflection_min", m_enableReflectionMin ); e.setAttribute( "enable_reflection_falloff", m_enableRefFalloff ); e.setAttribute( "enable_reflection_exponent", m_enableRefExponent ); e.setAttribute( "enable_reflection_metallic", m_enableRefMetallic ); e.setAttribute( "ambient", m_ambientColor.serializeXML( ) ); e.setAttribute( "diffuse", m_diffuse ); e.setAttribute( "brilliance", m_brilliance ); e.setAttribute( "crand", m_crand ); e.setAttribute( "conserve_energy", m_conserveEnergy ); e.setAttribute( "phong", m_phong ); e.setAttribute( "phongsize", m_phongSize ); e.setAttribute( "metallic", m_metallic ); e.setAttribute( "specular", m_specular ); e.setAttribute( "roughness", m_roughness ); e.setAttribute( "irid", m_irid ); e.setAttribute( "irid_amount", m_iridAmount ); e.setAttribute( "irid_thickness", m_iridThickness ); e.setAttribute( "irid_turbulence", m_iridTurbulence ); e.setAttribute( "reflection", m_reflectionColor.serializeXML( ) ); e.setAttribute( "reflection_min", m_reflectionMinColor.serializeXML( ) ); e.setAttribute( "reflection_fresnel", m_reflectionFresnel ); e.setAttribute( "reflection_falloff", m_reflectionFalloff ); e.setAttribute( "reflection_exponent", m_reflectionExponent ); e.setAttribute( "reflection_metallic", m_reflectionMetallic ); } void PMFinish::readAttributes( const PMXMLHelper& h ) { Base::readAttributes( h ); m_enableAmbient = h.boolAttribute( "enable_ambient", false ); m_enableDiffuse = h.boolAttribute( "enable_diffuse", false ); m_enableBrilliance = h.boolAttribute( "enable_brilliance", false ); m_enableCrand = h.boolAttribute( "enable_crand", false ); m_enablePhong = h.boolAttribute( "enable_phong", false ); m_enablePhongSize = h.boolAttribute( "enable_phong_size", false ); m_enableMetallic = h.boolAttribute( "enable_metallic", false ); m_enableSpecular = h.boolAttribute( "enable_specular", false ); m_enableRoughness = h.boolAttribute( "enable_roughness", false ); m_enableReflection = h.boolAttribute( "enable_reflection", false ); m_enableReflectionMin = h.boolAttribute( "enable_reflection_min", false ); m_enableRefFalloff = h.boolAttribute( "enable_reflection_falloff", false ); m_enableRefExponent = h.boolAttribute( "enable_reflection_exponent", false ); m_enableRefMetallic = h.boolAttribute( "enable_reflection_metallic", false ); m_irid = h.boolAttribute( "irid", false ); m_ambientColor = h.colorAttribute( "ambient", ambientColorDefault ); m_diffuse = h.doubleAttribute( "diffuse", diffuseDefault ); m_brilliance = h.doubleAttribute( "brilliance", crandDefault ); m_crand = h.doubleAttribute( "crand", crandDefault ); m_conserveEnergy = h.boolAttribute( "conserve_energy", false ); m_phong = h.doubleAttribute( "phong", phongDefault ); m_phongSize = h.doubleAttribute( "phongsize", phongSizeDefault ); m_metallic = h.doubleAttribute( "metallic", metallicDefault ); m_specular = h.doubleAttribute( "specular", specularDefault ); m_roughness = h.doubleAttribute( "roughness", roughnessDefault ); m_iridAmount = h.doubleAttribute( "irid_amount", iridAmountDefault ); m_iridThickness = h.doubleAttribute( "irid_thickness", iridThicknessDefault ); m_iridTurbulence = h.doubleAttribute( "irid_turbulence", iridTurbulenceDefault ); m_reflectionColor = h.colorAttribute( "reflection", reflectionColorDefault ); m_reflectionMinColor = h.colorAttribute( "reflection_min", reflectionColorDefault ); m_reflectionFresnel = h.boolAttribute( "reflection_fresnel", false ); m_reflectionFalloff = h.doubleAttribute( "reflection_falloff", reflectionFalloffDefault ); m_reflectionExponent = h.doubleAttribute( "reflection_exponent", reflectionExponentDefault ); m_reflectionMetallic = h.doubleAttribute( "reflection_metallic", reflectionMetallicDefault ); } void PMFinish::setPhong( double c ) { if( c != m_phong ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMPhongID, m_phong ); m_phong = c; } } void PMFinish::setPhongSize( double c ) { if( c != m_phongSize ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMPhongSizeID, m_phongSize ); m_phongSize = c; } } void PMFinish::setMetallic( double c ) { if( c != m_metallic ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMMetallicID, m_metallic ); m_metallic = c; } } void PMFinish::setAmbientColor( const PMColor& c ) { if( c != m_ambientColor ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMAmbientColorID, m_ambientColor ); m_ambientColor = c; } } void PMFinish::setDiffuse( double c ) { if( c != m_diffuse ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMDiffuseID, m_diffuse ); m_diffuse = c; } } void PMFinish::setBrilliance( double c ) { if( c != m_brilliance ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMBrillianceID, m_brilliance ); m_brilliance = c; } } void PMFinish::setCrand( double c ) { if( c != m_crand ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMCrandID, m_crand ); m_crand = c; } } void PMFinish::setConserveEnergy( bool c ) { if( c != m_conserveEnergy ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMConserveEnergyID, m_conserveEnergy ); m_conserveEnergy = c; } } void PMFinish::setSpecular( double c ) { if( c != m_specular ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMSpecularID, m_specular ); m_specular = c; } } void PMFinish::setRoughness( double c ) { if( c != m_roughness ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMRoughnessID, m_roughness ); m_roughness = c; } } void PMFinish::setIrid( bool c ) { if( c != m_irid ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMIridID, m_irid ); m_irid = c; } } void PMFinish::setReflectionColor( const PMColor& c ) { if( c != m_reflectionColor ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMReflectionColorID, m_reflectionColor ); m_reflectionColor = c; } } void PMFinish::setReflectionMinColor( const PMColor& c ) { if( c != m_reflectionMinColor ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMReflectionMinColorID, m_reflectionMinColor ); m_reflectionMinColor = c; } } void PMFinish::setReflectionFresnel( bool c ) { if( c != m_reflectionFresnel ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMReflectionFresnelID, m_reflectionFresnel ); m_reflectionFresnel = c; } } void PMFinish::setReflectionFalloff( double c ) { if( c != m_reflectionFalloff ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMReflectionFalloffID, m_reflectionFalloff ); m_reflectionFalloff = c; } } void PMFinish::setReflectionExponent( double c ) { if( c != m_reflectionExponent ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMReflectionExponentID, m_reflectionExponent ); m_reflectionExponent = c; } } void PMFinish::setReflectionMetallic( double c ) { if( c != m_reflectionMetallic ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMReflectionMetallicID, m_reflectionMetallic ); m_reflectionMetallic = c; } } void PMFinish::enableAmbient( bool c ) { if( c != m_enableAmbient ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMEnableAmbientID, m_enableAmbient ); m_enableAmbient = c; } } void PMFinish::enableDiffuse( bool c ) { if( c != m_enableDiffuse ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMEnableDiffuseID, m_enableDiffuse ); m_enableDiffuse = c; } } void PMFinish::enablePhong( bool c ) { if( c != m_enablePhong ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMEnablePhongID, m_enablePhong ); m_enablePhong = c; } } void PMFinish::enablePhongSize( bool c ) { if( c != m_enablePhongSize ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMEnablePhongSizeID, m_enablePhongSize ); m_enablePhongSize = c; } } void PMFinish::enableBrilliance( bool c ) { if( c != m_enableBrilliance ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMEnableBrillianceID, m_enableBrilliance ); m_enableBrilliance = c; } } void PMFinish::enableCrand( bool c ) { if( c != m_enableCrand ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMEnableCrandID, m_enableCrand ); m_enableCrand = c; } } void PMFinish::enableSpecular( bool c ) { if( c != m_enableSpecular ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMEnableSpecularID, m_enableSpecular ); m_enableSpecular = c; } } void PMFinish::enableRoughness( bool c ) { if( c != m_enableRoughness ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMEnableRoughnessID, m_enableRoughness ); m_enableRoughness = c; } } void PMFinish::enableMetallic( bool c ) { if( c != m_enableMetallic ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMEnableMetallicID, m_enableMetallic ); m_enableMetallic = c; } } void PMFinish::enableReflection( bool c ) { if( c != m_enableReflection ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMEnableReflectionID, m_enableReflection ); m_enableReflection = c; } } void PMFinish::enableReflectionMin( bool c ) { if( c != m_enableReflectionMin ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMEnableReflectionMinID, m_enableReflectionMin ); m_enableReflectionMin = c; } } void PMFinish::enableRefFalloff( bool c ) { if( c != m_enableRefFalloff ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMEnableRefFalloffID, m_enableRefFalloff ); m_enableRefFalloff = c; } } void PMFinish::enableRefExponent( bool c ) { if( c != m_enableRefExponent ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMEnableRefExponentID, m_enableRefExponent ); m_enableRefExponent = c; } } void PMFinish::enableRefMetallic( bool c ) { if( c != m_enableRefMetallic ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMEnableRefMetallicID, m_enableRefMetallic ); m_enableRefMetallic = c; } } void PMFinish::setIridAmount( double c ) { if( c != m_iridAmount ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMIridAmountID, m_iridAmount ); m_iridAmount = c; } } void PMFinish::setIridThickness( double c ) { if( c != m_iridThickness ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMIridThicknessID, m_iridThickness ); m_iridThickness = c; } } void PMFinish::setIridTurbulence( double c ) { if( c != m_iridTurbulence ) { if( m_pMemento ) m_pMemento->addData( s_pMetaObject, PMIridTurbulenceID, m_iridTurbulence ); m_iridTurbulence = c; } } PMDialogEditBase* PMFinish::editWidget( QWidget* parent ) const { return new PMFinishEdit( parent ); } void PMFinish::restoreMemento( PMMemento* s ) { PMMementoDataIterator it( s ); PMMementoData* data; for( ; it.current( ); ++it ) { data = it.current( ); if( data->objectType( ) == s_pMetaObject ) { switch( data->valueID( ) ) { case PMAmbientColorID: setAmbientColor( data->colorData( ) ); break; case PMDiffuseID: setDiffuse( data->doubleData( ) ); break; case PMBrillianceID: setBrilliance( data->doubleData( ) ); break; case PMCrandID: setCrand( data->doubleData( ) ); break; case PMConserveEnergyID: setConserveEnergy( data->boolData( ) ); case PMPhongID: setPhong( data->doubleData( ) ); break; case PMPhongSizeID: setPhongSize( data->doubleData( ) ); break; case PMMetallicID: setMetallic( data->doubleData( ) ); break; case PMSpecularID: setSpecular( data->doubleData( ) ); break; case PMRoughnessID: setRoughness( data->doubleData( ) ); break; case PMIridID: setIrid( data->boolData( ) ); break; case PMIridAmountID: setIridAmount( data->doubleData( ) ); break; case PMIridThicknessID: setIridThickness( data->doubleData( ) ); break; case PMIridTurbulenceID: setIridTurbulence( data->doubleData( ) ); break; case PMReflectionColorID: setReflectionColor( data->colorData( ) ); break; case PMReflectionMinColorID: setReflectionMinColor( data->colorData( ) ); break; case PMReflectionFresnelID: setReflectionFresnel( data->boolData( ) ); break; case PMReflectionFalloffID: setReflectionFalloff( data->doubleData( ) ); break; case PMReflectionExponentID: setReflectionExponent( data->doubleData( ) ); break; case PMReflectionMetallicID: setReflectionMetallic( data->doubleData( ) ); break; case PMEnableAmbientID: enableAmbient( data->boolData( ) ); break; case PMEnablePhongID: enablePhong( data->boolData( ) ); break; case PMEnablePhongSizeID: enablePhongSize( data->boolData( ) ); break; case PMEnableDiffuseID: enableDiffuse( data->boolData( ) ); break; case PMEnableBrillianceID: enableBrilliance( data->boolData( ) ); break; case PMEnableCrandID: enableCrand( data->boolData( ) ); break; case PMEnableSpecularID: enableSpecular( data->boolData( ) ); break; case PMEnableRoughnessID: enableRoughness( data->boolData( ) ); break; case PMEnableMetallicID: enableMetallic( data->boolData( ) ); break; case PMEnableReflectionID: enableReflection( data->boolData( ) ); break; case PMEnableReflectionMinID: enableReflectionMin( data->boolData( ) ); break; case PMEnableRefFalloffID: enableRefFalloff( data->boolData( ) ); break; case PMEnableRefExponentID: enableRefExponent( data->boolData( ) ); break; case PMEnableRefMetallicID: enableRefMetallic( data->boolData( ) ); break; default: kdError( PMArea ) << "Wrong ID in PMFinish::restoreMemento\n"; break; } } } Base::restoreMemento( s ); }