basegfx/Library_basegfx.mk            |    3 -
 basegfx/source/tools/canvastools.cxx  |   69 ++++++++++++++++++++++++++++++++++
 include/basegfx/tools/canvastools.hxx |   12 +++++
 3 files changed, 82 insertions(+), 2 deletions(-)

New commits:
commit 6a45c27ba42e8e51a427a90a3fc745f149b948d8
Author: Michael Jaumann <meta_...@yahoo.com>
Date:   Tue Nov 4 08:18:40 2014 +0000

    wrappers for bdhommatrix/affinematrix ->glm::mat4
    
    Change-Id: I0ff0b5ed82bbe9dc0ed264b71f6cea5a72809aff

diff --git a/basegfx/source/tools/canvastools.cxx 
b/basegfx/source/tools/canvastools.cxx
index f59f447..c578e16 100644
--- a/basegfx/source/tools/canvastools.cxx
+++ b/basegfx/source/tools/canvastools.cxx
@@ -334,6 +334,41 @@ namespace basegfx
             return output;
         }
 
+        glm::mat4 glmMatrixFromAffineMatrix( const 
::com::sun::star::geometry::AffineMatrix2D& input )
+        {
+            // ensure last row is [0,0,1] (and optimized away)
+            glm::mat4 output;
+            output[0][0] = input.m00;
+            output[1][0] = input.m01;
+            output[2][0] = input.m02;
+            output[0][1] = input.m10;
+            output[1][1] = input.m11;
+            output[2][1] = input.m12;
+
+            return output;
+        }
+
+        glm::mat4 glmMatrixFromAffineMatrix3D( const 
::com::sun::star::geometry::AffineMatrix3D& input )
+        {
+            glm::mat4 output;
+            output[0][0] = input.m00;
+            output[1][0] = input.m01;
+            output[2][0] = input.m02;
+            output[3][0] = input.m03;
+
+            output[0][1] = input.m10;
+            output[1][1] = input.m11;
+            output[2][1] = input.m12;
+            output[3][1] = input.m13;
+
+            output[0][2] = input.m20;
+            output[1][2] = input.m21;
+            output[2][2] = input.m22;
+            output[3][2] = input.m23;
+
+            return output;
+        }
+
         ::basegfx::B3DHomMatrix homMatrixFromAffineMatrix3D( const 
::com::sun::star::geometry::AffineMatrix3D& input )
         {
             ::basegfx::B3DHomMatrix output;
@@ -369,6 +404,40 @@ namespace basegfx
             return output;
         }
 
+        glm::mat4 glmMatFromHomMatrix( const ::basegfx::B2DHomMatrix& input)
+        {
+            glm::mat4 output;
+            output[0][0] = input.get(0,0);
+            output[1][0] = input.get(0,1);
+            output[2][0] = input.get(0,2);
+            output[0][1] = input.get(1,0);
+            output[1][1] = input.get(1,1);
+            output[2][1] = input.get(1,2);
+
+            return output;
+        }
+
+        glm::mat4 glmMatFromHomMatrix3d( const ::basegfx::B3DHomMatrix& input)
+        {
+            glm::mat4 output;
+            output[0][0] = input.get(0,0);
+            output[1][0] = input.get(0,1);
+            output[2][0] = input.get(0,2);
+            output[3][0] = input.get(0,3);
+
+            output[0][1] = input.get(1,0);
+            output[1][1] = input.get(1,1);
+            output[2][1] = input.get(1,2);
+            output[3][1] = input.get(1,3);
+
+            output[0][2] = input.get(2,0);
+            output[1][2] = input.get(2,1);
+            output[2][2] = input.get(2,2);
+            output[3][2] = input.get(2,3);
+
+            return output;
+        }
+
         geometry::AffineMatrix3D& affineMatrixFromHomMatrix3D(
             geometry::AffineMatrix3D& output,
             const ::basegfx::B3DHomMatrix&  input)
diff --git a/include/basegfx/tools/canvastools.hxx 
b/include/basegfx/tools/canvastools.hxx
index c678805..2a3030a 100644
--- a/include/basegfx/tools/canvastools.hxx
+++ b/include/basegfx/tools/canvastools.hxx
@@ -23,6 +23,7 @@
 #include <com/sun/star/uno/Reference.hxx>
 #include <com/sun/star/uno/Sequence.hxx>
 #include <basegfx/basegfxdllapi.h>
+#include <glm/glm.hpp>
 
 
 namespace com { namespace sun { namespace star { namespace geometry
@@ -128,12 +129,21 @@ namespace basegfx
         BASEGFX_DLLPUBLIC ::basegfx::B2DHomMatrix&
             homMatrixFromAffineMatrix( ::basegfx::B2DHomMatrix&                
             transform,
                                        const 
::com::sun::star::geometry::AffineMatrix2D&    matrix );
+       BASEGFX_DLLPUBLIC ::basegfx::B3DHomMatrix
+            homMatrixFromAffineMatrix3D( const 
::com::sun::star::geometry::AffineMatrix3D& matrix );
 
-        BASEGFX_DLLPUBLIC ::basegfx::B3DHomMatrix homMatrixFromAffineMatrix3D( 
const ::com::sun::star::geometry::AffineMatrix3D& matrix );
+
+
+        BASEGFX_DLLPUBLIC glm::mat4 glmMatrixFromAffineMatrix( const 
::com::sun::star::geometry::AffineMatrix2D&   matrix );
+
+        BASEGFX_DLLPUBLIC glm::mat4 glmMatrixFromAffineMatrix3D( const 
::com::sun::star::geometry::AffineMatrix3D& matrix );
 
         BASEGFX_DLLPUBLIC ::com::sun::star::geometry::Matrix2D&
             matrixFromHomMatrix( ::com::sun::star::geometry::Matrix2D& matrix,
                                  const ::basegfx::B2DHomMatrix&        
transform);
+        BASEGFX_DLLPUBLIC glm::mat4 glmMatFromHomMatrix( const 
::basegfx::B2DHomMatrix& input);
+
+        BASEGFX_DLLPUBLIC glm::mat4 glmMatFromHomMatrix3d( const 
::basegfx::B3DHomMatrix& input);
 
         // Geometry conversions
 
commit 7743dd1c32452e9baa2293f7d6c69bc8b7bcc253
Author: Michael Jaumann <meta_...@yahoo.com>
Date:   Tue Nov 4 08:14:06 2014 +0000

    add glmmatrixtools to makefile
    
    Change-Id: I4d4edd81c4115963557afc35029f10818218688e

diff --git a/basegfx/Library_basegfx.mk b/basegfx/Library_basegfx.mk
index ac5878a..95ba931 100644
--- a/basegfx/Library_basegfx.mk
+++ b/basegfx/Library_basegfx.mk
@@ -39,7 +39,8 @@ $(eval $(call gb_Library_add_exception_objects,basegfx,\
     basegfx/source/matrix/b2dhommatrix \
     basegfx/source/matrix/b2dhommatrixtools \
     basegfx/source/matrix/b3dhommatrix \
-       basegfx/source/numeric/ftools \
+    basegfx/source/glm_matrix/b2dglmmatrixtools \
+    basegfx/source/numeric/ftools \
     basegfx/source/pixel/bpixel \
     basegfx/source/point/b2dpoint \
     basegfx/source/point/b2ipoint \
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to