From c08d77f7bb0189df9ba222a3874b2e7f0b7eab0e Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Tue, 1 Feb 2011 18:12:59 +0000 Subject: [PATCH] From Sukender, "Vertices in DOUBLE PRECISION were not handled by Remapper classes. I added missing virtual methods." --- src/osgUtil/MeshOptimizers.cpp | 37 ++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/src/osgUtil/MeshOptimizers.cpp b/src/osgUtil/MeshOptimizers.cpp index f2fa4fc3f..7fcf903a4 100644 --- a/src/osgUtil/MeshOptimizers.cpp +++ b/src/osgUtil/MeshOptimizers.cpp @@ -173,12 +173,28 @@ class RemapArray : public osg::ArrayVisitor virtual void apply(osg::UByteArray& array) { remap(array); } virtual void apply(osg::UShortArray& array) { remap(array); } virtual void apply(osg::UIntArray& array) { remap(array); } - virtual void apply(osg::Vec4ubArray& array) { remap(array); } virtual void apply(osg::FloatArray& array) { remap(array); } + virtual void apply(osg::DoubleArray& array) { remap(array); } + virtual void apply(osg::Vec2Array& array) { remap(array); } virtual void apply(osg::Vec3Array& array) { remap(array); } virtual void apply(osg::Vec4Array& array) { remap(array); } + + virtual void apply(osg::Vec4ubArray& array) { remap(array); } + virtual void apply(osg::Vec2bArray& array) { remap(array); } + virtual void apply(osg::Vec3bArray& array) { remap(array); } + virtual void apply(osg::Vec4bArray& array) { remap(array); } + + virtual void apply(osg::Vec2sArray& array) { remap(array); } + virtual void apply(osg::Vec3sArray& array) { remap(array); } + virtual void apply(osg::Vec4sArray& array) { remap(array); } + + virtual void apply(osg::Vec2dArray& array) { remap(array); } + virtual void apply(osg::Vec3dArray& array) { remap(array); } + virtual void apply(osg::Vec4dArray& array) { remap(array); } + + virtual void apply(osg::MatrixfArray& array) { remap(array); } protected: RemapArray& operator = (const RemapArray&) { return *this; } @@ -1033,11 +1049,28 @@ public: virtual void apply(osg::UByteArray& array) { remap(array); } virtual void apply(osg::UShortArray& array) { remap(array); } virtual void apply(osg::UIntArray& array) { remap(array); } - virtual void apply(osg::Vec4ubArray& array) { remap(array); } virtual void apply(osg::FloatArray& array) { remap(array); } + virtual void apply(osg::DoubleArray& array) { remap(array); } + virtual void apply(osg::Vec2Array& array) { remap(array); } virtual void apply(osg::Vec3Array& array) { remap(array); } virtual void apply(osg::Vec4Array& array) { remap(array); } + + virtual void apply(osg::Vec4ubArray& array) { remap(array); } + + virtual void apply(osg::Vec2bArray& array) { remap(array); } + virtual void apply(osg::Vec3bArray& array) { remap(array); } + virtual void apply(osg::Vec4bArray& array) { remap(array); } + + virtual void apply(osg::Vec2sArray& array) { remap(array); } + virtual void apply(osg::Vec3sArray& array) { remap(array); } + virtual void apply(osg::Vec4sArray& array) { remap(array); } + + virtual void apply(osg::Vec2dArray& array) { remap(array); } + virtual void apply(osg::Vec3dArray& array) { remap(array); } + virtual void apply(osg::Vec4dArray& array) { remap(array); } + + virtual void apply(osg::MatrixfArray& array) { remap(array); } }; const unsigned Remapper::invalidIndex = std::numeric_limits::max();