From 0e2dea9a393718482162035f4022a1285d30b2a1 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 11 Jul 2008 19:23:49 +0000 Subject: [PATCH] From Liang Aibin, " In lastest svn version of OSG, the .ive plugin missing osg::Light, it does not process I/O for osg::Light. Now I have fixed it as follows: 2. In DataInputStream.cpp, I add support code in DataInputStream::readStateAttribute for osg::Light. 3. In DataOutputStream.cpp, I add support code in DataOutputStream::writeStateAttribute for osg::Light. " --- src/osgPlugins/ive/DataInputStream.cpp | 5 +++++ src/osgPlugins/ive/DataOutputStream.cpp | 5 +++++ 2 files changed, 10 insertions(+) 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();