summaryrefslogtreecommitdiff
path: root/basegfx/inc/basegfx/matrix/b3dhommatrix.hxx
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2006-07-13 08:54:28 +0000
committerOliver Bolte <obo@openoffice.org>2006-07-13 08:54:28 +0000
commit77ad33de6981353297a1f0c39e5c07fdc0ca4309 (patch)
treeb2fe8013bb8b5418e6595dd27147fa34354a1e79 /basegfx/inc/basegfx/matrix/b3dhommatrix.hxx
parent053fdb6c0d6862bb0110917edc5d31ff764fdea8 (diff)
INTEGRATION: CWS cowfixes01 (1.8.12); FILE MERGED
2006/03/21 13:36:25 thb 1.8.12.3: #i63310# Removed silly self-referentiality for the static default objects (causing infinite loops) 2006/03/17 23:16:34 thb 1.8.12.2: #i63310# Moved BxD(Poly)Polygon to cow_wrapper; added makeUnique() to all classes using COW internally (to at least facilitate deliberate unsharing in multi-threaded uses) 2006/03/17 17:41:31 thb 1.8.12.1: #i63310# Added COW to B2DMultiRange (wasn't there before); moved BxDHomMatrix to cow_wrapper; added o3tl build dependency
Diffstat (limited to 'basegfx/inc/basegfx/matrix/b3dhommatrix.hxx')
-rw-r--r--basegfx/inc/basegfx/matrix/b3dhommatrix.hxx31
1 files changed, 13 insertions, 18 deletions
diff --git a/basegfx/inc/basegfx/matrix/b3dhommatrix.hxx b/basegfx/inc/basegfx/matrix/b3dhommatrix.hxx
index 4ef2ed60be34..5dee2dffdad3 100644
--- a/basegfx/inc/basegfx/matrix/b3dhommatrix.hxx
+++ b/basegfx/inc/basegfx/matrix/b3dhommatrix.hxx
@@ -4,9 +4,9 @@
*
* $RCSfile: b3dhommatrix.hxx,v $
*
- * $Revision: 1.8 $
+ * $Revision: 1.9 $
*
- * last change: $Author: kz $ $Date: 2005-11-02 13:53:02 $
+ * last change: $Author: obo $ $Date: 2006-07-13 09:54:28 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -40,26 +40,31 @@
#include <sal/types.h>
#endif
+#ifndef INCLUDED_O3TL_COW_WRAPPER_HXX
+#include <o3tl/cow_wrapper.hxx>
+#endif
+
namespace basegfx
{
- // predeclaration
class B3DTuple;
-
- // forward declaration
class Impl3DHomMatrix;
class B3DHomMatrix
{
- private:
- Impl3DHomMatrix* mpM;
+ public:
+ typedef o3tl::cow_wrapper< Impl3DHomMatrix > ImplType;
- void implPrepareChange();
+ private:
+ ImplType mpImpl;
public:
B3DHomMatrix();
B3DHomMatrix(const B3DHomMatrix& rMat);
~B3DHomMatrix();
+ /// unshare this matrix with all internally shared instances
+ void makeUnique();
+
double get(sal_uInt16 nRow, sal_uInt16 nColumn) const;
void set(sal_uInt16 nRow, sal_uInt16 nColumn, double fValue);
@@ -102,16 +107,6 @@ namespace basegfx
void shearYZ(double fSy, double fSz);
void shearXZ(double fSx, double fSz);
- // Projection matrices, used for converting between eye and
- // clip coordinates
-// void frustum(double fLeft = -1.0, double fRight = 1.0,
-// double fBottom = -1.0, double fTop = 1.0,
-// double fNear = 0.001, double fFar = 1.0);
-
-// void ortho(double fLeft = -1.0, double fRight = 1.0,
-// double fBottom = -1.0, double fTop = 1.0,
-// double fNear = 0.0, double fFar = 1.0);
-
// addition, subtraction
B3DHomMatrix& operator+=(const B3DHomMatrix& rMat);
B3DHomMatrix& operator-=(const B3DHomMatrix& rMat);