diff --git a/VisualStudio/osgPlugins/ive/ive.dsp b/VisualStudio/osgPlugins/ive/ive.dsp index 9dc86faee..143a7f5a0 100755 --- a/VisualStudio/osgPlugins/ive/ive.dsp +++ b/VisualStudio/osgPlugins/ive/ive.dsp @@ -381,6 +381,10 @@ SOURCE=..\..\..\src\osgPlugins\ive\Point.cpp # End Source File # Begin Source File +SOURCE=..\..\..\src\osgPlugins\ive\PointSprite.cpp +# End Source File +# Begin Source File + SOURCE=..\..\..\src\osgPlugins\ive\PolygonMode.cpp # End Source File # Begin Source File @@ -741,6 +745,10 @@ SOURCE=..\..\..\src\osgPlugins\ive\Point.h # End Source File # Begin Source File +SOURCE=..\..\..\src\osgPlugins\ive\PointSprite.h +# End Source File +# Begin Source File + SOURCE=..\..\..\src\osgPlugins\ive\PolygonMode.h # End Source File # Begin Source File diff --git a/src/osgPlugins/ive/DataInputStream.cpp b/src/osgPlugins/ive/DataInputStream.cpp index 29f4dec52..6ba229fd8 100644 --- a/src/osgPlugins/ive/DataInputStream.cpp +++ b/src/osgPlugins/ive/DataInputStream.cpp @@ -46,6 +46,7 @@ #include "Viewport.h" #include "Scissor.h" #include "Image.h" +#include "PointSprite.h" #include "Group.h" #include "MatrixTransform.h" @@ -1026,6 +1027,10 @@ osg::StateAttribute* DataInputStream::readStateAttribute() attribute = new osg::Program(); ((ive::Program*)(attribute))->read(this); } + else if(attributeID == IVEPOINTSPRITE){ + attribute = new osg::PointSprite(); + ((ive::PointSprite*)(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 bfd92346f..ed8776802 100644 --- a/src/osgPlugins/ive/DataOutputStream.cpp +++ b/src/osgPlugins/ive/DataOutputStream.cpp @@ -49,6 +49,7 @@ #include "Viewport.h" #include "Scissor.h" #include "Image.h" +#include "PointSprite.h" #include "Group.h" #include "MatrixTransform.h" @@ -749,10 +750,14 @@ void DataOutputStream::writeStateAttribute(const osg::StateAttribute* attribute) else if(dynamic_cast(attribute)){ ((ive::FrontFace*)(attribute))->write(this); } - // This is a FrontFace + // This is a Program else if(dynamic_cast(attribute)){ ((ive::Program*)(attribute))->write(this); } + // This is a PointSprite + else if(dynamic_cast(attribute)){ + ((ive::PointSprite*)(attribute))->write(this); + } else{ std::string className = attribute->className(); diff --git a/src/osgPlugins/ive/GNUmakefile b/src/osgPlugins/ive/GNUmakefile index 05d2c2c18..cc82b6978 100644 --- a/src/osgPlugins/ive/GNUmakefile +++ b/src/osgPlugins/ive/GNUmakefile @@ -58,6 +58,7 @@ CXXFILES =\ OccluderNode.cpp\ PagedLOD.cpp\ Point.cpp\ + PointSprite.cpp\ PolygonMode.cpp\ PolygonOffset.cpp\ PositionAttitudeTransform.cpp\ diff --git a/src/osgPlugins/ive/ReadWrite.h b/src/osgPlugins/ive/ReadWrite.h index 78860f633..c96ff3928 100644 --- a/src/osgPlugins/ive/ReadWrite.h +++ b/src/osgPlugins/ive/ReadWrite.h @@ -76,6 +76,7 @@ namespace ive { #define IVESCISSOR 0x00001128 #define IVEPOLYGONMODE 0x00001129 #define IVETEXTURERECTANGLE 0x00001130 +#define IVEPOINTSPRITE 0x00001131 // Drawables #define IVEDRAWABLE 0x00001000