diff --git a/include/osg/Material b/include/osg/Material index b2552596e..e3d02b77c 100644 --- a/include/osg/Material +++ b/include/osg/Material @@ -77,6 +77,8 @@ class SG_EXPORT Material : public StateAttribute return 0; // passed all the above comparison macro's, must be equal. } + Material& operator = (const Material& rhs); + virtual void getAssociatedModes(std::vector& modes) const { // Have to think about the role of _colorMode diff --git a/src/osg/Material.cpp b/src/osg/Material.cpp index adc2341cb..906af9b86 100644 --- a/src/osg/Material.cpp +++ b/src/osg/Material.cpp @@ -45,6 +45,30 @@ Material::~Material() { } +Material& Material:: operator = (const Material& rhs) +{ + if (&rhs==this) return *this; + + _colorMode= rhs._colorMode; + _ambientFrontAndBack= rhs._ambientFrontAndBack; + _ambientFront= rhs._ambientFront; + _ambientBack= rhs._ambientBack; + _diffuseFrontAndBack= rhs._diffuseFrontAndBack; + _diffuseFront= rhs._diffuseFront; + _diffuseBack= rhs._diffuseBack; + _specularFrontAndBack= rhs._specularFrontAndBack; + _specularFront= rhs._specularFront; + _specularBack= rhs._specularBack; + _emissionFrontAndBack= rhs._emissionFrontAndBack; + _emissionFront= rhs._emissionFront; + _emissionBack= rhs._emissionBack; + _shininessFrontAndBack= rhs._shininessFrontAndBack; + _shininessFront= rhs._shininessFront; + _shininessBack= rhs._shininessBack; + + return *this; +} + void Material::setAmbient(Face face, const Vec4& ambient ) {