From 7742794eec9a9bef8ef97af2d64d4ff043e3e51a Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Mon, 10 May 2004 20:01:13 +0000 Subject: [PATCH] From Bruce Clay, modify template copy method to avoid VS6.0 compile errors. --- src/osgUtil/Simplifier.cpp | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/osgUtil/Simplifier.cpp b/src/osgUtil/Simplifier.cpp index b4bfdb03c..da3cf36e4 100644 --- a/src/osgUtil/Simplifier.cpp +++ b/src/osgUtil/Simplifier.cpp @@ -176,14 +176,14 @@ public: if (edge->getErrorMetric()==FLT_MAX) { - osg::notify(osg::WARN)<<"collapseMinimumErrorEdge() return false due to edge->getErrorMetric()==FLT_MAX"<getErrorMetric()==FLT_MAX"< pNew = edge->_proposedPoint.valid()? edge->_proposedPoint : computeInterpolatedPoint(edge,0.5f); return (collapseEdge(edge,pNew.get())); } - osg::notify(osg::WARN)<<"collapseMinimumErrorEdge() return false due to _edgeSet.empty()"< - void copy(T& array) + void copy(T& array, R dummy) { array.resize(_pointList.size()); @@ -1275,14 +1276,19 @@ class CopyPointsToArrayVisitor : public osg::ArrayVisitor ++_index; } + // use local typedefs if usinged char,short and int to get round gcc 3.3.1 problem with defining unsigned short() + typedef unsigned char dummy_uchar; + typedef unsigned short dummy_ushort; + typedef unsigned int dummy_uint; + virtual void apply(osg::Array&) {} - virtual void apply(osg::ByteArray& array) { copy(array); } - virtual void apply(osg::ShortArray& array) { copy(array); } - virtual void apply(osg::IntArray& array) { copy(array); } - virtual void apply(osg::UByteArray& array) { copy(array); } - virtual void apply(osg::UShortArray& array) { copy(array); } - virtual void apply(osg::UIntArray& array) { copy(array); } - virtual void apply(osg::FloatArray& array) { copy(array); } + virtual void apply(osg::ByteArray& array) { copy(array, char());} + virtual void apply(osg::ShortArray& array) { copy(array, short()); } + virtual void apply(osg::IntArray& array) { copy(array, int()); } + virtual void apply(osg::UByteArray& array) { copy(array, dummy_uchar()); } + virtual void apply(osg::UShortArray& array) { copy(array,dummy_ushort()); } + virtual void apply(osg::UIntArray& array) { copy(array, dummy_uint()); } + virtual void apply(osg::FloatArray& array) { copy(array, float()); } virtual void apply(osg::UByte4Array& array) {