From c3c727b82209a4fe715a212c3e02a89fae3170a4 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 19 Jun 2008 14:14:20 +0000 Subject: [PATCH] From Andrew Bettison, "Attached are changes for src/osgPlugins/ive (version 2.4.0) that implement LineStipple read/write support for the ive file format." --- src/osgPlugins/ive/CMakeLists.txt | 2 ++ src/osgPlugins/ive/DataInputStream.cpp | 5 +++++ src/osgPlugins/ive/DataOutputStream.cpp | 6 ++++-- src/osgPlugins/ive/ReadWrite.h | 1 + 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/osgPlugins/ive/CMakeLists.txt b/src/osgPlugins/ive/CMakeLists.txt index ee503238b..1ad7cc2dd 100644 --- a/src/osgPlugins/ive/CMakeLists.txt +++ b/src/osgPlugins/ive/CMakeLists.txt @@ -54,6 +54,7 @@ SET(TARGET_SRC LightPoint.cpp LightPointNode.cpp LightSource.cpp + LineStipple.cpp LineWidth.cpp Locator.cpp LOD.cpp @@ -159,6 +160,7 @@ SET(TARGET_H LightPoint.h LightPointNode.h LightSource.h + LineStipple.h LineWidth.h Locator.h LOD.h diff --git a/src/osgPlugins/ive/DataInputStream.cpp b/src/osgPlugins/ive/DataInputStream.cpp index ab5fc4afe..1749cfb47 100644 --- a/src/osgPlugins/ive/DataInputStream.cpp +++ b/src/osgPlugins/ive/DataInputStream.cpp @@ -31,6 +31,7 @@ #include "ShadeModel.h" #include "Point.h" #include "LineWidth.h" +#include "LineStipple.h" #include "Texture1D.h" #include "Texture2D.h" #include "Texture3D.h" @@ -1178,6 +1179,10 @@ osg::StateAttribute* DataInputStream::readStateAttribute() attribute = new osg::Multisample(); ((ive::Multisample*)(attribute))->read(this); } + else if(attributeID == IVELINESTIPPLE){ + attribute = new osg::LineStipple(); + ((ive::LineStipple*)(attribute))->read(this); + } else if(attributeID == IVESTENCIL){ attribute = new osg::Stencil(); ((ive::Stencil*)(attribute))->read(this); diff --git a/src/osgPlugins/ive/DataOutputStream.cpp b/src/osgPlugins/ive/DataOutputStream.cpp index c9d71a1e6..a5c585634 100644 --- a/src/osgPlugins/ive/DataOutputStream.cpp +++ b/src/osgPlugins/ive/DataOutputStream.cpp @@ -32,6 +32,7 @@ #include "ShadeModel.h" #include "Point.h" #include "LineWidth.h" +#include "LineStipple.h" #include "Texture1D.h" #include "Texture2D.h" #include "Texture3D.h" @@ -762,8 +763,9 @@ void DataOutputStream::writeStateAttribute(const osg::StateAttribute* attribute) else if(dynamic_cast(attribute)){ ((ive::LineWidth*)(attribute))->write(this); } - else if(dynamic_cast(attribute)){ - ((ive::LineWidth*)(attribute))->write(this); + // This is a LineStipple + else if(dynamic_cast(attribute)){ + ((ive::LineStipple*)(attribute))->write(this); } // This is a Texture1D else if(dynamic_cast(attribute)){ diff --git a/src/osgPlugins/ive/ReadWrite.h b/src/osgPlugins/ive/ReadWrite.h index 86445eb52..97303b8a0 100644 --- a/src/osgPlugins/ive/ReadWrite.h +++ b/src/osgPlugins/ive/ReadWrite.h @@ -84,6 +84,7 @@ namespace ive { #define IVEPOINTSPRITE 0x00001131 #define IVEMULTISAMPLE 0x00001132 #define IVEFOG 0x00001133 +#define IVELINESTIPPLE 0x00001134 // Drawables #define IVEDRAWABLE 0x00001000