From ebbf92e43c091f8b6b36a4b8d7288d5a2d8ed2f0 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 20 Feb 2004 11:51:14 +0000 Subject: [PATCH] Added Material::operator = --- include/osg/Material | 2 ++ src/osg/Material.cpp | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) 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 ) {