diff --git a/src/osgPlugins/osg/ColorMatrix.cpp b/src/osgPlugins/osg/ColorMatrix.cpp index eaf522012..ad0e7b109 100644 --- a/src/osgPlugins/osg/ColorMatrix.cpp +++ b/src/osgPlugins/osg/ColorMatrix.cpp @@ -4,6 +4,8 @@ #include #include +#include "Matrix.h" + using namespace osg; using namespace osgDB; @@ -24,44 +26,13 @@ RegisterDotOsgWrapperProxy g_ColorMatrixProxy bool ColorMatrix_readLocalData(Object& obj, Input& fr) { - bool iteratorAdvanced = false; - ColorMatrix& colorMatrix = static_cast(obj); - - bool matched = true; - for(int k=0;k<16 && matched;++k) - { - matched = fr[k].isFloat(); - } - if (matched) - { - - Matrix& matrix = colorMatrix.getMatrix(); - - int k=0; - for(int i=0;i<4;++i) - { - for(int j=0;j<4;++j) - { - fr[k].getFloat(matrix(i,j)); - k++; - } - } - fr += 16; - iteratorAdvanced = true; - } - - return iteratorAdvanced; + return readMatrix(colorMatrix.getMatrix(), fr); } bool ColorMatrix_writeLocalData(const Object& obj, Output& fw) { const ColorMatrix& colorMatrix = static_cast(obj); - const Matrix& matrix = colorMatrix.getMatrix(); - fw.indent() << matrix(0,0) << " " << matrix(0,1) << " " << matrix(0,2) << " " << matrix(0,3) << std::endl; - fw.indent() << matrix(1,0) << " " << matrix(1,1) << " " << matrix(1,2) << " " << matrix(1,3) << std::endl; - fw.indent() << matrix(2,0) << " " << matrix(2,1) << " " << matrix(2,2) << " " << matrix(2,3) << std::endl; - fw.indent() << matrix(3,0) << " " << matrix(3,1) << " " << matrix(3,2) << " " << matrix(3,3) << std::endl; - return true; + return writeMatrix(colorMatrix.getMatrix(), fw); }