diff options
Diffstat (limited to 'basegfx/inc/basegfx/point/b3dhompoint.hxx')
-rw-r--r-- | basegfx/inc/basegfx/point/b3dhompoint.hxx | 216 |
1 files changed, 108 insertions, 108 deletions
diff --git a/basegfx/inc/basegfx/point/b3dhompoint.hxx b/basegfx/inc/basegfx/point/b3dhompoint.hxx index 763997620bd0..3bea4d66f2ac 100644 --- a/basegfx/inc/basegfx/point/b3dhompoint.hxx +++ b/basegfx/inc/basegfx/point/b3dhompoint.hxx @@ -2,7 +2,7 @@ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * + * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite @@ -50,22 +50,22 @@ namespace basegfx { protected: /// This member contains the coordinate part of the point - ::basegfx::B3DTuple maTuple; - + ::basegfx::B3DTuple maTuple; + /// This Member holds the homogenous part of the point - double mfW; + double mfW; - /** Test if this homogen point does have a homogenous part + /** Test if this homogen point does have a homogenous part @return Returns true if this point has no homogenous part */ - bool implIsHomogenized() const - { + bool implIsHomogenized() const + { const double fOne(1.0); - return ::basegfx::fTools::equal(mfW, fOne); + return ::basegfx::fTools::equal(mfW, fOne); } - - /** Remove homogenous part of this Point + + /** Remove homogenous part of this Point This method does necessary calculations to remove the evtl. homogenous part of this Point. This may @@ -73,7 +73,7 @@ namespace basegfx */ void implHomogenize(); - /** Test and on demand remove homogenous part + /** Test and on demand remove homogenous part This method tests if this Point does have a homogenous part and then evtl. takes actions to remove that part. @@ -89,65 +89,65 @@ namespace basegfx ((B3DHomPoint*)this)->implHomogenize(); } - public: - /** Create a homogen point + public: + /** Create a homogen point The point is initialized to (0.0, 0.0, 0.0) */ - B3DHomPoint() - : maTuple(), + B3DHomPoint() + : maTuple(), mfW(1.0) {} - /** Create a homogen point + /** Create a homogen point @param fX This parameter is used to initialize the X-coordinate of the Point. The homogenous part is initialized to 1.0. - + @param fY This parameter is used to initialize the Y-coordinate of the Point. The homogenous part is initialized to 1.0. - + @param fZ This parameter is used to initialize the Z-coordinate of the Point. The homogenous part is initialized to 1.0. */ - B3DHomPoint(double fX, double fY, double fZ) - : maTuple(fX, fY, fZ), + B3DHomPoint(double fX, double fY, double fZ) + : maTuple(fX, fY, fZ), mfW(1.0) {} - /** Create a copy of a 3D Point + /** Create a copy of a 3D Point @param rVec - The 3D point which will be copied. The homogenous part + The 3D point which will be copied. The homogenous part is initialized to 1.0. */ - B3DHomPoint(const B3DPoint& rVec) - : maTuple(rVec), + B3DHomPoint(const B3DPoint& rVec) + : maTuple(rVec), mfW(1.0) {} - /** Create a copy of a homogen point + /** Create a copy of a homogen point @param rVec - The homogen point which will be copied. The homogenous part + The homogen point which will be copied. The homogenous part is copied, too. */ - B3DHomPoint(const B3DHomPoint& rVec) - : maTuple(rVec.maTuple.getX(), rVec.maTuple.getY(), rVec.maTuple.getZ()), + B3DHomPoint(const B3DHomPoint& rVec) + : maTuple(rVec.maTuple.getX(), rVec.maTuple.getY(), rVec.maTuple.getZ()), mfW(rVec.mfW) {} - ~B3DHomPoint() + ~B3DHomPoint() {} - /** get a 3D point from this homogenous point + /** get a 3D point from this homogenous point This method normalizes this homogen point if necessary and returns the corresponding 3D point for this homogen point. - + @attention Even when this method is const it may change all members of this instance. */ @@ -157,49 +157,49 @@ namespace basegfx return B3DPoint(maTuple.getX(), maTuple.getY(), maTuple.getZ()); } - /** get X-coordinate + /** get X-coordinate This method normalizes this homogen point if necessary and returns the corresponding X-coordinate for this homogen point. - + @attention Even when this method is const it may change all members of this instance. */ double getX() const - { + { implTestAndHomogenize(); - return maTuple.getX(); + return maTuple.getX(); } - /** get Y-coordinate + /** get Y-coordinate This method normalizes this homogen point if necessary and returns the corresponding Y-coordinate for this homogen point. - + @attention Even when this method is const it may change all members of this instance. */ double getY() const - { + { implTestAndHomogenize(); - return maTuple.getY(); + return maTuple.getY(); } - /** get Z-coordinate + /** get Z-coordinate This method normalizes this homogen point if necessary and returns the corresponding Z-coordinate for this homogen point. - + @attention Even when this method is const it may change all members of this instance. */ double getZ() const - { + { implTestAndHomogenize(); - return maTuple.getY(); + return maTuple.getY(); } - /** Set X-coordinate of the homogen point. + /** Set X-coordinate of the homogen point. This method sets the X-coordinate of the homogen point. If the point does have a homogenous part this is taken into account. @@ -212,7 +212,7 @@ namespace basegfx maTuple.setX(implIsHomogenized() ? fX : fX * mfW ); } - /** Set Y-coordinate of the homogen point. + /** Set Y-coordinate of the homogen point. This method sets the Y-coordinate of the homogen point. If the point does have a homogenous part this is taken into account. @@ -225,7 +225,7 @@ namespace basegfx maTuple.setY(implIsHomogenized() ? fY : fY * mfW ); } - /** Set Z-coordinate of the homogen point. + /** Set Z-coordinate of the homogen point. This method sets the Z-coordinate of the homogen point. If the point does have a homogenous part this is taken into account. @@ -241,8 +241,8 @@ namespace basegfx // operators ////////////////////////////////////////////////////////////////////// - B3DHomPoint& operator+=( const B3DHomPoint& rPnt ) - { + B3DHomPoint& operator+=( const B3DHomPoint& rPnt ) + { maTuple.setX(getX() * rPnt.mfW + rPnt.getX() * mfW); maTuple.setY(getY() * rPnt.mfW + rPnt.getY() * mfW); maTuple.setZ(getZ() * rPnt.mfW + rPnt.getZ() * mfW); @@ -251,8 +251,8 @@ namespace basegfx return *this; } - B3DHomPoint& operator-=( const B3DHomPoint& rPnt ) - { + B3DHomPoint& operator-=( const B3DHomPoint& rPnt ) + { maTuple.setX(getX() * rPnt.mfW - rPnt.getX() * mfW); maTuple.setY(getY() * rPnt.mfW - rPnt.getY() * mfW); maTuple.setZ(getZ() * rPnt.mfW - rPnt.getZ() * mfW); @@ -260,146 +260,146 @@ namespace basegfx return *this; } - - B3DHomPoint& operator*=(double t) - { + + B3DHomPoint& operator*=(double t) + { if(!::basegfx::fTools::equalZero(t)) { mfW /= t; } - return *this; + return *this; } - B3DHomPoint& operator/=(double t) - { + B3DHomPoint& operator/=(double t) + { mfW *= t; - return *this; + return *this; } B3DHomPoint& operator-(void) - { + { mfW = -mfW; return *this; } - - bool operator==( const B3DHomPoint& rPnt ) const - { + + bool operator==( const B3DHomPoint& rPnt ) const + { implTestAndHomogenize(); return (maTuple == rPnt.maTuple); } - bool operator!=( const B3DHomPoint& rPnt ) const - { + bool operator!=( const B3DHomPoint& rPnt ) const + { implTestAndHomogenize(); return (maTuple != rPnt.maTuple); } - - B3DHomPoint& operator=( const B3DHomPoint& rPnt ) - { + + B3DHomPoint& operator=( const B3DHomPoint& rPnt ) + { maTuple = rPnt.maTuple; mfW = rPnt.mfW; - return *this; + return *this; } }; // external operators ////////////////////////////////////////////////////////////////////////// - inline B3DHomPoint minimum(const B3DHomPoint& rVecA, const B3DHomPoint& rVecB) - { + inline B3DHomPoint minimum(const B3DHomPoint& rVecA, const B3DHomPoint& rVecB) + { B3DHomPoint aMin( (rVecB.getX() < rVecA.getX()) ? rVecB.getX() : rVecA.getX(), (rVecB.getY() < rVecA.getY()) ? rVecB.getY() : rVecA.getY(), - (rVecB.getZ() < rVecA.getZ()) ? rVecB.getZ() : rVecA.getZ()); + (rVecB.getZ() < rVecA.getZ()) ? rVecB.getZ() : rVecA.getZ()); return aMin; } - inline B3DHomPoint maximum(const B3DHomPoint& rVecA, const B3DHomPoint& rVecB) - { + inline B3DHomPoint maximum(const B3DHomPoint& rVecA, const B3DHomPoint& rVecB) + { B3DHomPoint aMax( (rVecB.getX() > rVecA.getX()) ? rVecB.getX() : rVecA.getX(), (rVecB.getY() > rVecA.getY()) ? rVecB.getY() : rVecA.getY(), - (rVecB.getZ() > rVecA.getZ()) ? rVecB.getZ() : rVecA.getZ()); + (rVecB.getZ() > rVecA.getZ()) ? rVecB.getZ() : rVecA.getZ()); return aMax; } - inline B3DHomPoint absolute(const B3DHomPoint& rVec) - { + inline B3DHomPoint absolute(const B3DHomPoint& rVec) + { B3DHomPoint aAbs( (0.0 > rVec.getX()) ? -rVec.getX() : rVec.getX(), (0.0 > rVec.getY()) ? -rVec.getY() : rVec.getY(), - (0.0 > rVec.getZ()) ? -rVec.getZ() : rVec.getZ()); + (0.0 > rVec.getZ()) ? -rVec.getZ() : rVec.getZ()); return aAbs; } - inline B3DHomPoint interpolate(B3DHomPoint& rOld1, B3DHomPoint& rOld2, double t) - { + inline B3DHomPoint interpolate(B3DHomPoint& rOld1, B3DHomPoint& rOld2, double t) + { B3DHomPoint aInt( ((rOld2.getX() - rOld1.getX()) * t) + rOld1.getX(), ((rOld2.getY() - rOld1.getY()) * t) + rOld1.getY(), - ((rOld2.getZ() - rOld1.getZ()) * t) + rOld1.getZ()); + ((rOld2.getZ() - rOld1.getZ()) * t) + rOld1.getZ()); return aInt; } - inline B3DHomPoint average(B3DHomPoint& rOld1, B3DHomPoint& rOld2) - { + inline B3DHomPoint average(B3DHomPoint& rOld1, B3DHomPoint& rOld2) + { B3DHomPoint aAvg( (rOld1.getX() + rOld2.getX()) * 0.5, (rOld1.getY() + rOld2.getY()) * 0.5, - (rOld1.getZ() + rOld2.getZ()) * 0.5); + (rOld1.getZ() + rOld2.getZ()) * 0.5); return aAvg; } - + inline B3DHomPoint average(B3DHomPoint& rOld1, B3DHomPoint& rOld2, B3DHomPoint& rOld3) - { + { B3DHomPoint aAvg( (rOld1.getX() + rOld2.getX() + rOld3.getX()) * (1.0 / 3.0), (rOld1.getY() + rOld2.getY() + rOld3.getY()) * (1.0 / 3.0), - (rOld1.getZ() + rOld2.getZ() + rOld3.getZ()) * (1.0 / 3.0)); + (rOld1.getZ() + rOld2.getZ() + rOld3.getZ()) * (1.0 / 3.0)); return aAvg; } inline B3DHomPoint operator+(const B3DHomPoint& rVecA, const B3DHomPoint& rVecB) - { - B3DHomPoint aSum(rVecA); - aSum += rVecB; - return aSum; + { + B3DHomPoint aSum(rVecA); + aSum += rVecB; + return aSum; } inline B3DHomPoint operator-(const B3DHomPoint& rVecA, const B3DHomPoint& rVecB) - { - B3DHomPoint aSub(rVecA); - aSub -= rVecB; - return aSub; + { + B3DHomPoint aSub(rVecA); + aSub -= rVecB; + return aSub; } inline B3DHomPoint operator*(const B3DHomPoint& rVec, double t) - { - B3DHomPoint aNew(rVec); - aNew *= t; - return aNew; + { + B3DHomPoint aNew(rVec); + aNew *= t; + return aNew; } inline B3DHomPoint operator*(double t, const B3DHomPoint& rVec) - { - B3DHomPoint aNew(rVec); - aNew *= t; - return aNew; + { + B3DHomPoint aNew(rVec); + aNew *= t; + return aNew; } inline B3DHomPoint operator/(const B3DHomPoint& rVec, double t) - { - B3DHomPoint aNew(rVec); - aNew /= t; - return aNew; + { + B3DHomPoint aNew(rVec); + aNew /= t; + return aNew; } inline B3DHomPoint operator/(double t, const B3DHomPoint& rVec) { - B3DHomPoint aNew(rVec); - aNew /= t; - return aNew; + B3DHomPoint aNew(rVec); + aNew /= t; + return aNew; } } // end of namespace basegfx |