From b9423da386ad092952bebc737d5fc9ffdc9f922b Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 10 Oct 2003 12:56:35 +0000 Subject: [PATCH] Added ClusterCullingCallback to ive. --- VisualStudio/osgPlugins/ive/ive.dsp | 8 +++ src/osgPlugins/ive/ClusterCullingCallback.cpp | 70 +++++++++++++++++++ src/osgPlugins/ive/ClusterCullingCallback.h | 15 ++++ 3 files changed, 93 insertions(+) create mode 100644 src/osgPlugins/ive/ClusterCullingCallback.cpp create mode 100644 src/osgPlugins/ive/ClusterCullingCallback.h diff --git a/VisualStudio/osgPlugins/ive/ive.dsp b/VisualStudio/osgPlugins/ive/ive.dsp index f98d9a2e0..32adba99f 100755 --- a/VisualStudio/osgPlugins/ive/ive.dsp +++ b/VisualStudio/osgPlugins/ive/ive.dsp @@ -110,6 +110,10 @@ SOURCE=..\..\..\src\osgPlugins\ive\BlendFunc.cpp # End Source File # Begin Source File +SOURCE=..\..\..\src\osgPlugins\ive\ClusterCullingCallback.cpp +# End Source File +# Begin Source File + SOURCE=..\..\..\src\osgPlugins\ive\ConvexPlanarOccluder.cpp # End Source File # Begin Source File @@ -326,6 +330,10 @@ SOURCE=..\..\..\src\osgPlugins\ive\BlendFunc.h # End Source File # Begin Source File +SOURCE=..\..\..\src\osgPlugins\ive\ClusterCullingCallback.h +# End Source File +# Begin Source File + SOURCE=..\..\..\src\osgPlugins\ive\ConvexPlanarOccluder.h # End Source File # Begin Source File diff --git a/src/osgPlugins/ive/ClusterCullingCallback.cpp b/src/osgPlugins/ive/ClusterCullingCallback.cpp new file mode 100644 index 000000000..060af4d32 --- /dev/null +++ b/src/osgPlugins/ive/ClusterCullingCallback.cpp @@ -0,0 +1,70 @@ +/********************************************************************** + * + * FILE: ClusterCullingCallback.cpp + * + * DESCRIPTION: Read/Write osg::ClusterCullingCallback in binary format to disk. + * + * CREATED BY: Auto generated by iveGenerate + * and later modified by Rune Schmidt Jensen. + * + * HISTORY: Created 25.3.2003 + * + * Copyright 2003 VR-C + **********************************************************************/ + +#include "Exception.h" +#include "ClusterCullingCallback.h" +#include "Object.h" + +using namespace ive; + +void ClusterCullingCallback::write(DataOutputStream* out) +{ + // Write ClusterCullingCallback's identification. + out->writeInt(IVECLUSTERCULLINGCALLBACK); + // If the osg class is inherited by any other class we should also write this to file. + osg::Object* obj = dynamic_cast(this); + if(obj) + { + ((ive::Object*)(obj))->write(out); + } + else + throw Exception("ClusterCullingCallback::write(): Could not cast this osg::ClusterCullingCallback to an osg::Object."); + // Write ClusterCullingCallback's properties. + + out->writeVec3(_controlPoint); + out->writeVec3(_normal); + out->writeFloat(_radius); + out->writeFloat(_deviation); +} + +void ClusterCullingCallback::read(DataInputStream* in) +{ + // Peek on ClusterCullingCallback's identification. + int id = in->peekInt(); + if(id == IVECLUSTERCULLINGCALLBACK) + { + // Read ClusterCullingCallback's identification. + id = in->readInt(); + // If the osg class is inherited by any other class we should also read this from file. + osg::Object* obj = dynamic_cast(this); + if(obj) + { + ((ive::Object*)(obj))->read(in); + } + else + throw Exception("ClusterCullingCallback::read(): Could not cast this osg::ClusterCullingCallback to an osg::Object."); + + // Read ClusterCullingCallback's properties + + _controlPoint = in->readVec3(); + _normal = in->readVec3(); + _radius = in->readFloat(); + _deviation = in->readFloat(); + + } + else + { + throw Exception("ClusterCullingCallback::read(): Expected ClusterCullingCallback identification."); + } +} diff --git a/src/osgPlugins/ive/ClusterCullingCallback.h b/src/osgPlugins/ive/ClusterCullingCallback.h new file mode 100644 index 000000000..44449de2b --- /dev/null +++ b/src/osgPlugins/ive/ClusterCullingCallback.h @@ -0,0 +1,15 @@ +#ifndef IVE_CLUSTERCULLINGCALLBACK +#define IVE_CLUSTERCULLINGCALLBACK 1 + +#include +#include "ReadWrite.h" + +namespace ive{ +class ClusterCullingCallback : public osg::ClusterCullingCallback, public ReadWrite { +public: + void write(DataOutputStream* out); + void read(DataInputStream* in); +}; +} + +#endif