diff --git a/src/osgPlugins/ive/DataInputStream.cpp b/src/osgPlugins/ive/DataInputStream.cpp index ed92bbc69..9fbdc6aac 100644 --- a/src/osgPlugins/ive/DataInputStream.cpp +++ b/src/osgPlugins/ive/DataInputStream.cpp @@ -53,6 +53,7 @@ #include "PointSprite.h" #include "Multisample.h" #include "Fog.h" +#include "Light.h" #include "Group.h" @@ -1193,6 +1194,10 @@ osg::StateAttribute* DataInputStream::readStateAttribute() else if(attributeID == IVEFOG){ attribute = new osg::Fog(); ((ive::Fog*)(attribute))->read(this); + } + else if(attributeID == IVELIGHT){ + attribute = new osg::Light(); + ((ive::Light*)(attribute))->read(this); } else{ throw Exception("Unknown StateAttribute in StateSet::read()"); diff --git a/src/osgPlugins/ive/DataOutputStream.cpp b/src/osgPlugins/ive/DataOutputStream.cpp index a5c585634..ea04e2c77 100644 --- a/src/osgPlugins/ive/DataOutputStream.cpp +++ b/src/osgPlugins/ive/DataOutputStream.cpp @@ -56,6 +56,7 @@ #include "PointSprite.h" #include "Multisample.h" #include "Fog.h" +#include "Light.h" #include "Group.h" #include "MatrixTransform.h" @@ -835,6 +836,10 @@ void DataOutputStream::writeStateAttribute(const osg::StateAttribute* attribute) else if(dynamic_cast(attribute)){ ((ive::Fog*)(attribute))->write(this); } + // This is a Light + else if(dynamic_cast(attribute)){ + ((ive::Light*)(attribute))->write(this); + } else{ std::string className = attribute->className();