#include <b3dhommatrix.hxx>
Public Types | |
| typedef o3tl::cow_wrapper < Impl3DHomMatrix > | ImplType |
Public Member Functions | |
| B3DHomMatrix () | |
| B3DHomMatrix (const B3DHomMatrix &rMat) | |
| ~B3DHomMatrix () | |
| void | makeUnique () |
| unshare this matrix with all internally shared instances | |
| double | get (sal_uInt16 nRow, sal_uInt16 nColumn) const |
| void | set (sal_uInt16 nRow, sal_uInt16 nColumn, double fValue) |
| bool | isLastLineDefault () const |
| bool | isIdentity () const |
| void | identity () |
| Reset to the identity matrix. | |
| bool | isInvertible () const |
| bool | invert () |
| Invert the matrix (if possible). | |
| bool | isNormalized () const |
| void | normalize () |
| Normalize (i.e. force w=1) the matrix. | |
| double | determinant () const |
| Calc the matrix determinant. | |
| double | trace () const |
| Calc the matrix trace. | |
| void | transpose () |
| Transpose the matrix. | |
| void | rotate (double fAngleX, double fAngleY, double fAngleZ) |
| Rotation. | |
| void | translate (double fX, double fY, double fZ) |
| Translation. | |
| void | scale (double fX, double fY, double fZ) |
| Scaling. | |
| void | shearXY (double fSx, double fSy) |
| void | shearYZ (double fSy, double fSz) |
| void | shearXZ (double fSx, double fSz) |
| 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) |
| void | orientation (B3DPoint aVRP=B3DPoint(0.0, 0.0, 1.0), B3DVector aVPN=B3DVector(0.0, 0.0, 1.0), B3DVector aVUV=B3DVector(0.0, 1.0, 0.0)) |
| B3DHomMatrix & | operator+= (const B3DHomMatrix &rMat) |
| B3DHomMatrix & | operator-= (const B3DHomMatrix &rMat) |
| bool | operator== (const B3DHomMatrix &rMat) const |
| bool | operator!= (const B3DHomMatrix &rMat) const |
| B3DHomMatrix & | operator*= (double fValue) |
| B3DHomMatrix & | operator/= (double fValue) |
| B3DHomMatrix & | operator*= (const B3DHomMatrix &rMat) |
| B3DHomMatrix & | operator= (const B3DHomMatrix &rMat) |
| bool | decompose (B3DTuple &rScale, B3DTuple &rTranslate, B3DTuple &rRotate, B3DTuple &rShear) const |
Private Attributes | |
| ImplType | mpImpl |
Definition at line 41 of file b3dhommatrix.hxx.
Definition at line 44 of file b3dhommatrix.hxx.
| basegfx::B3DHomMatrix::B3DHomMatrix | ( | ) |
Definition at line 45 of file b3dhommatrix.cxx.
| basegfx::B3DHomMatrix::B3DHomMatrix | ( | const B3DHomMatrix & | rMat | ) |
Definition at line 50 of file b3dhommatrix.cxx.
| basegfx::B3DHomMatrix::~B3DHomMatrix | ( | ) |
Definition at line 55 of file b3dhommatrix.cxx.
| void basegfx::B3DHomMatrix::makeUnique | ( | ) |
unshare this matrix with all internally shared instances
Definition at line 65 of file b3dhommatrix.cxx.
References o3tl::cow_wrapper< T, MTPolicy >::make_unique(), and mpImpl.
| double basegfx::B3DHomMatrix::get | ( | sal_uInt16 | nRow, | |
| sal_uInt16 | nColumn | |||
| ) | const |
Definition at line 70 of file b3dhommatrix.cxx.
References o3tl::cow_wrapper< T, MTPolicy >::get(), and mpImpl.
Referenced by basegfx::B3IVector::operator*=().
| void basegfx::B3DHomMatrix::set | ( | sal_uInt16 | nRow, | |
| sal_uInt16 | nColumn, | |||
| double | fValue | |||
| ) |
Definition at line 75 of file b3dhommatrix.cxx.
References mpImpl.
Referenced by basegfx::unotools::homMatrixFromAffineMatrix3D().
| bool basegfx::B3DHomMatrix::isLastLineDefault | ( | ) | const |
| bool basegfx::B3DHomMatrix::isIdentity | ( | ) | const |
Definition at line 85 of file b3dhommatrix.cxx.
References mpImpl, and o3tl::cow_wrapper< T, MTPolicy >::same_object().
Referenced by basegfx::tools::createB2DPolygonFromB3DPolygon(), operator*=(), basegfx::B3DRange::transform(), basegfx::B3DPolyPolygon::transform(), basegfx::B3DPolygon::transform(), basegfx::B3DPolyPolygon::transformNormals(), and basegfx::B3DPolygon::transformNormals().
| void basegfx::B3DHomMatrix::identity | ( | ) |
| bool basegfx::B3DHomMatrix::isInvertible | ( | ) | const |
| bool basegfx::B3DHomMatrix::invert | ( | ) |
Invert the matrix (if possible).
Definition at line 103 of file b3dhommatrix.cxx.
References basegfx::internal::ImplHomMatrixTemplate< _RowSize >::ludcmp(), and mpImpl.
Referenced by basegfx::tools::clipPolygonOnPlane(), and basegfx::tools::clipPolyPolygonOnPlane().
| bool basegfx::B3DHomMatrix::isNormalized | ( | ) | const |
| void basegfx::B3DHomMatrix::normalize | ( | ) |
Normalize (i.e. force w=1) the matrix.
Definition at line 126 of file b3dhommatrix.cxx.
References mpImpl.
| double basegfx::B3DHomMatrix::determinant | ( | ) | const |
Calc the matrix determinant.
Definition at line 132 of file b3dhommatrix.cxx.
References mpImpl.
Referenced by decompose().
| double basegfx::B3DHomMatrix::trace | ( | ) | const |
| void basegfx::B3DHomMatrix::transpose | ( | ) |
| void basegfx::B3DHomMatrix::rotate | ( | double | fAngleX, | |
| double | fAngleY, | |||
| double | fAngleZ | |||
| ) |
Rotation.
Definition at line 200 of file b3dhommatrix.cxx.
References basegfx::fTools::equalZero(), mpImpl, and basegfx::internal::ImplHomMatrixTemplate< _RowSize >::set().
Referenced by basegfx::tools::clipPolygonOnPlane(), and basegfx::tools::clipPolyPolygonOnPlane().
| void basegfx::B3DHomMatrix::translate | ( | double | fX, | |
| double | fY, | |||
| double | fZ | |||
| ) |
Translation.
Definition at line 248 of file b3dhommatrix.cxx.
References basegfx::fTools::equalZero(), mpImpl, and basegfx::internal::ImplHomMatrixTemplate< _RowSize >::set().
Referenced by basegfx::tools::clipPolygonOnPlane(), basegfx::tools::clipPolyPolygonOnPlane(), basegfx::tools::createCubeFillPolyPolygonFromB3DRange(), basegfx::tools::createCubePolyPolygonFromB3DRange(), basegfx::tools::createSphereFillPolyPolygonFromB3DRange(), and basegfx::tools::createSpherePolyPolygonFromB3DRange().
| void basegfx::B3DHomMatrix::scale | ( | double | fX, | |
| double | fY, | |||
| double | fZ | |||
| ) |
Scaling.
Definition at line 262 of file b3dhommatrix.cxx.
References basegfx::fTools::equal(), mpImpl, and basegfx::internal::ImplHomMatrixTemplate< _RowSize >::set().
Referenced by basegfx::tools::createCubeFillPolyPolygonFromB3DRange(), basegfx::tools::createCubePolyPolygonFromB3DRange(), basegfx::tools::createSphereFillPolyPolygonFromB3DRange(), and basegfx::tools::createSpherePolyPolygonFromB3DRange().
| void basegfx::B3DHomMatrix::shearXY | ( | double | fSx, | |
| double | fSy | |||
| ) |
Definition at line 278 of file b3dhommatrix.cxx.
References basegfx::fTools::equalZero(), mpImpl, and basegfx::internal::ImplHomMatrixTemplate< _RowSize >::set().
| void basegfx::B3DHomMatrix::shearYZ | ( | double | fSy, | |
| double | fSz | |||
| ) |
Definition at line 292 of file b3dhommatrix.cxx.
References basegfx::fTools::equalZero(), mpImpl, and basegfx::internal::ImplHomMatrixTemplate< _RowSize >::set().
| void basegfx::B3DHomMatrix::shearXZ | ( | double | fSx, | |
| double | fSz | |||
| ) |
Definition at line 306 of file b3dhommatrix.cxx.
References basegfx::fTools::equalZero(), mpImpl, and basegfx::internal::ImplHomMatrixTemplate< _RowSize >::set().
| void basegfx::B3DHomMatrix::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 | |||
| ) |
Definition at line 320 of file b3dhommatrix.cxx.
References basegfx::fTools::equal(), basegfx::fTools::more(), mpImpl, and basegfx::internal::ImplHomMatrixTemplate< _RowSize >::set().
| void basegfx::B3DHomMatrix::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 | |||
| ) |
Definition at line 366 of file b3dhommatrix.cxx.
References basegfx::fTools::equal(), mpImpl, and basegfx::internal::ImplHomMatrixTemplate< _RowSize >::set().
| void basegfx::B3DHomMatrix::orientation | ( | B3DPoint | aVRP = B3DPoint(0.0,0.0,1.0), |
|
| B3DVector | aVPN = B3DVector(0.0,0.0,1.0), |
|||
| B3DVector | aVUV = B3DVector(0.0,1.0,0.0) | |||
| ) |
Definition at line 397 of file b3dhommatrix.cxx.
References basegfx::B3DVector::getPerpendicular(), basegfx::B3DTuple::getX(), basegfx::B3DTuple::getY(), basegfx::B3DTuple::getZ(), mpImpl, basegfx::B3DVector::normalize(), and basegfx::internal::ImplHomMatrixTemplate< _RowSize >::set().
| B3DHomMatrix & basegfx::B3DHomMatrix::operator+= | ( | const B3DHomMatrix & | rMat | ) |
| B3DHomMatrix & basegfx::B3DHomMatrix::operator-= | ( | const B3DHomMatrix & | rMat | ) |
| bool basegfx::B3DHomMatrix::operator== | ( | const B3DHomMatrix & | rMat | ) | const |
Definition at line 187 of file b3dhommatrix.cxx.
References mpImpl, and o3tl::cow_wrapper< T, MTPolicy >::same_object().
| bool basegfx::B3DHomMatrix::operator!= | ( | const B3DHomMatrix & | rMat | ) | const |
Definition at line 195 of file b3dhommatrix.cxx.
| B3DHomMatrix & basegfx::B3DHomMatrix::operator*= | ( | double | fValue | ) |
| B3DHomMatrix & basegfx::B3DHomMatrix::operator/= | ( | double | fValue | ) |
| B3DHomMatrix & basegfx::B3DHomMatrix::operator*= | ( | const B3DHomMatrix & | rMat | ) |
| B3DHomMatrix & basegfx::B3DHomMatrix::operator= | ( | const B3DHomMatrix & | rMat | ) |
| bool basegfx::B3DHomMatrix::decompose | ( | B3DTuple & | rScale, | |
| B3DTuple & | rTranslate, | |||
| B3DTuple & | rRotate, | |||
| B3DTuple & | rShear | |||
| ) | const |
Definition at line 433 of file b3dhommatrix.cxx.
References basegfx::B3DTuple::correctValues(), determinant(), basegfx::fTools::equal(), basegfx::fTools::equalZero(), F_PI, o3tl::cow_wrapper< T, MTPolicy >::get(), basegfx::B3DTuple::getX(), basegfx::B3DTuple::getY(), basegfx::B3DTuple::getZ(), mpImpl, basegfx::B3DTuple::setX(), basegfx::B3DTuple::setY(), and basegfx::B3DTuple::setZ().
ImplType basegfx::B3DHomMatrix::mpImpl [private] |
Definition at line 47 of file b3dhommatrix.hxx.
Referenced by decompose(), determinant(), frustum(), get(), identity(), invert(), isIdentity(), isInvertible(), isLastLineDefault(), isNormalized(), makeUnique(), normalize(), operator*=(), operator+=(), operator-=(), operator/=(), operator=(), operator==(), orientation(), ortho(), rotate(), scale(), set(), shearXY(), shearXZ(), shearYZ(), trace(), translate(), and transpose().
1.5.6