summaryrefslogtreecommitdiff
path: root/basegfx/inc/basegfx/point/b3dhompoint.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'basegfx/inc/basegfx/point/b3dhompoint.hxx')
-rw-r--r--basegfx/inc/basegfx/point/b3dhompoint.hxx216
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