From f3df40aa70ae03ffbc8857c99d20f62f89125c07 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Mon, 20 Dec 2010 16:23:27 +0000 Subject: [PATCH] =?UTF-8?q?From=20Andy=20Skinner,=20"We=20use=20a=20shared?= =?UTF-8?q?=20array=20for=20our=20OpenSceneGraph=20arrays,=20and=20the=20e?= =?UTF-8?q?xisting=20(deprecated)=20OSG=20plugin=20casts=20the=20Array=20t?= =?UTF-8?q?o=20IntArray=20and=20FloatArray=20and=20the=20like.=20=20Becaus?= =?UTF-8?q?e=20our=20arrays=20don=E2=80=99t=20use=20FloatArray,=20this=20c?= =?UTF-8?q?rashes=20for=20us.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Attached is src/osgWrappers/deprecated-dotosg/osg/Geometry.cpp. It gets the data pointer out and casts it to a pointer to the element type, rather than casting the array object itself. This seems to work." --- .../deprecated-dotosg/osg/Geometry.cpp | 126 +++++++++--------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/src/osgWrappers/deprecated-dotosg/osg/Geometry.cpp b/src/osgWrappers/deprecated-dotosg/osg/Geometry.cpp index 1cd6513a5..e47215467 100644 --- a/src/osgWrappers/deprecated-dotosg/osg/Geometry.cpp +++ b/src/osgWrappers/deprecated-dotosg/osg/Geometry.cpp @@ -819,98 +819,98 @@ bool Array_writeLocalData(const Array& array,Output& fw) { case(Array::ByteArrayType): { - const ByteArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArrayAsInts(fw,&base[0], &base[array.getNumElements()]); return true; } break; case(Array::ShortArrayType): { - const ShortArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()]); return true; } break; case(Array::IntArrayType): { - const IntArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()]); return true; } break; case(Array::UByteArrayType): { - const UByteArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArrayAsInts(fw,&base[0], &base[array.getNumElements()]); return true; } break; case(Array::UShortArrayType): { - const UShortArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()]); return true; } break; case(Array::UIntArrayType): { - const UIntArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()]); return true; } break; case(Array::Vec4ubArrayType): { - const Vec4ubArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()],1); return true; } break; case(Array::FloatArrayType): { - const FloatArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()]); return true; } break; case(Array::Vec2ArrayType): { - const Vec2Array& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()],1); return true; } break; case(Array::Vec3ArrayType): { - const Vec3Array& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()],1); return true; } break; case(Array::Vec4ArrayType): { - const Vec4Array& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()],1); return true; } break; case(Array::DoubleArrayType): { int prec = fw.precision(15); - const DoubleArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()]); fw.precision(prec); return true; } @@ -918,9 +918,9 @@ bool Array_writeLocalData(const Array& array,Output& fw) case(Array::Vec2dArrayType): { int prec = fw.precision(15); - const Vec2dArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()],1); fw.precision(prec); return true; } @@ -928,9 +928,9 @@ bool Array_writeLocalData(const Array& array,Output& fw) case(Array::Vec3dArrayType): { int prec = fw.precision(15); - const Vec3dArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()],1); fw.precision(prec); return true; } @@ -938,58 +938,58 @@ bool Array_writeLocalData(const Array& array,Output& fw) case(Array::Vec4dArrayType): { int prec = fw.precision(15); - const Vec4dArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()],1); fw.precision(prec); return true; } break; case(Array::Vec2sArrayType): { - const Vec2sArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()], 3); return true; } break; case(Array::Vec3sArrayType): { - const Vec3sArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()], 2); return true; } break; case(Array::Vec4sArrayType): { - const Vec4sArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()], 1); return true; } break; case(Array::Vec2bArrayType): { - const Vec2bArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()],1); return true; } break; case(Array::Vec3bArrayType): { - const Vec3bArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()],1); return true; } break; case(Array::Vec4bArrayType): { - const Vec4bArray& carray = static_cast(array); - fw<(array.getDataPointer()); + writeArray(fw,&base[0], &base[array.getNumElements()],1); return true; } break;