summaryrefslogtreecommitdiff
path: root/basegfx/inc/basegfx/point/b2dhompoint.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'basegfx/inc/basegfx/point/b2dhompoint.hxx')
-rw-r--r--basegfx/inc/basegfx/point/b2dhompoint.hxx303
1 files changed, 150 insertions, 153 deletions
diff --git a/basegfx/inc/basegfx/point/b2dhompoint.hxx b/basegfx/inc/basegfx/point/b2dhompoint.hxx
index 3b145bf4e444..911e61a884fd 100644
--- a/basegfx/inc/basegfx/point/b2dhompoint.hxx
+++ b/basegfx/inc/basegfx/point/b2dhompoint.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: b2dhompoint.hxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: aw $ $Date: 2003-11-06 16:30:23 $
+ * last change: $Author: aw $ $Date: 2003-11-28 11:17:51 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -68,209 +68,206 @@
namespace basegfx
{
- namespace point
+ /** Basic homogen Point class with two double values and one homogen factor
+
+ This class provides access to homogen coordinates in 2D.
+ For this purpose all the operators which need to do specific
+ action due to their homogenity are implemented here.
+ The only caveat are member methods which are declared as const
+ but do change the content. These are documented for that reason.
+ The class is designed to provide homogenous coordinates without
+ direct access to the homogen part (mfW). This is also the reason
+ for leaving out the [] operators which return references to members.
+
+ @see B2DTuple
+ */
+ class B2DHomPoint
{
- /** Basic homogen Point class with two double values and one homogen factor
-
- This class provides access to homogen coordinates in 2D.
- For this purpose all the operators which need to do specific
- action due to their homogenity are implemented here.
- The only caveat are member methods which are declared as const
- but do change the content. These are documented for that reason.
- The class is designed to provide homogenous coordinates without
- direct access to the homogen part (mfW). This is also the reason
- for leaving out the [] operators which return references to members.
-
- @see B2DTuple
+ protected:
+ /// This member contains the coordinate part of the point
+ ::basegfx::B2DTuple maTuple;
+
+ /// This Member holds the homogenous part of the point
+ double mfW;
+
+ /** Test if this homogen point does have a homogenous part
+
+ @return Returns sal_True if this point has no homogenous part
*/
- class B2DHomPoint
- {
- protected:
- /// This member contains the coordinate part of the point
- ::basegfx::tuple::B2DTuple maTuple;
-
- /// This Member holds the homogenous part of the point
- double mfW;
-
- /** Test if this homogen point does have a homogenous part
-
- @return Returns sal_True if this point has no homogenous part
- */
- sal_Bool implIsHomogenized() const;
-
- /** Remove homogenous part of this Point
-
- This method does necessary calculations to remove
- the evtl. homogenous part of this Point. This may
- change all members.
- */
- void implHomogenize();
+ sal_Bool implIsHomogenized() const;
- /** 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.
-
- @attention Even when this method is const it may change all
- members of this instance. This is due to the fact that changing
- the homogenous part of a homogenous point does from a mathematical
- point of view not change the point at all.
- */
- void implTestAndHomogenize() const;
+ /** Remove homogenous part of this Point
+
+ This method does necessary calculations to remove
+ the evtl. homogenous part of this Point. This may
+ change all members.
+ */
+ void implHomogenize();
+
+ /** 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.
+
+ @attention Even when this method is const it may change all
+ members of this instance. This is due to the fact that changing
+ the homogenous part of a homogenous point does from a mathematical
+ point of view not change the point at all.
+ */
+ void implTestAndHomogenize() const;
- public:
- /** Create a homogen point
+ public:
+ /** Create a homogen point
- @param fVal
- This parameter is used to initialize the coordinate
- part of the Point. The homogenous part is initialized to 1.0.
- */
- B2DHomPoint(double fVal = 0.0)
- : maTuple(fVal),
- mfW(1.0)
- {}
+ @param fVal
+ This parameter is used to initialize the coordinate
+ part of the Point. The homogenous part is initialized to 1.0.
+ */
+ B2DHomPoint(double fVal = 0.0)
+ : maTuple(fVal),
+ 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 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.
- */
- B2DHomPoint(double fX, double fY)
- : maTuple(fX, fY),
- mfW(1.0)
- {}
+ @param fY
+ This parameter is used to initialize the Y-coordinate
+ of the Point. The homogenous part is initialized to 1.0.
+ */
+ B2DHomPoint(double fX, double fY)
+ : maTuple(fX, fY),
+ mfW(1.0)
+ {}
- /** Create a copy of a 2D Point
+ /** Create a copy of a 2D Point
- @param rVec
- The 2D point which will be copied. The homogenous part
- is initialized to 1.0.
- */
- B2DHomPoint(const B2DPoint& rVec)
- : maTuple(rVec),
- mfW(1.0)
- {}
+ @param rVec
+ The 2D point which will be copied. The homogenous part
+ is initialized to 1.0.
+ */
+ B2DHomPoint(const B2DPoint& 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
- is copied, too.
- */
- B2DHomPoint(const B2DHomPoint& rVec)
- : maTuple(rVec.maTuple.getX(), rVec.maTuple.getY()),
- mfW(rVec.mfW)
- {}
+ @param rVec
+ The homogen point which will be copied. The homogenous part
+ is copied, too.
+ */
+ B2DHomPoint(const B2DHomPoint& rVec)
+ : maTuple(rVec.maTuple.getX(), rVec.maTuple.getY()),
+ mfW(rVec.mfW)
+ {}
- ~B2DHomPoint()
- {}
+ ~B2DHomPoint()
+ {}
- /** Get a 2D point from this homogenous point
+ /** Get a 2D point from this homogenous point
- This method normalizes this homogen point if necessary and
- returns the corresponding 2D point for this homogen point.
+ This method normalizes this homogen point if necessary and
+ returns the corresponding 2D point for this homogen point.
- @attention Even when this method is const it may change all
- members of this instance.
- */
- B2DPoint getB2DPoint() const;
+ @attention Even when this method is const it may change all
+ members of this instance.
+ */
+ B2DPoint getB2DPoint() const;
- /** Get X-coordinate
+ /** Get X-coordinate
- This method normalizes this homogen point if necessary and
- returns the corresponding X-coordinate for this homogen point.
+ 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;
+ @attention Even when this method is const it may change all
+ members of this instance.
+ */
+ double getX() const;
- /** Get Y-coordinate
+ /** Get Y-coordinate
- This method normalizes this homogen point if necessary and
- returns the corresponding Y-coordinate for this homogen point.
+ 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;
+ @attention Even when this method is const it may change all
+ members of this instance.
+ */
+ double getY() const;
- /** 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.
+ This method sets the X-coordinate of the homogen point. If
+ the point does have a homogenous part this is taken into account.
- @param fX
- The to-be-set X-coordinate without homogenous part.
- */
- void setX(double fX);
+ @param fX
+ The to-be-set X-coordinate without homogenous part.
+ */
+ void setX(double fX);
- /** 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.
+ This method sets the Y-coordinate of the homogen point. If
+ the point does have a homogenous part this is taken into account.
- @param fY
- The to-be-set Y-coordinate without homogenous part.
- */
- void setY(double fY);
+ @param fY
+ The to-be-set Y-coordinate without homogenous part.
+ */
+ void setY(double fY);
- // operators
- //////////////////////////////////////////////////////////////////////
+ // operators
+ //////////////////////////////////////////////////////////////////////
- B2DHomPoint& operator+=( const B2DHomPoint& rPnt );
+ B2DHomPoint& operator+=( const B2DHomPoint& rPnt );
- B2DHomPoint& operator-=( const B2DHomPoint& rPnt );
+ B2DHomPoint& operator-=( const B2DHomPoint& rPnt );
- B2DHomPoint& operator*=(double t);
+ B2DHomPoint& operator*=(double t);
- B2DHomPoint& operator*=( const matrix::B2DHomMatrix& rMat );
+ B2DHomPoint& operator*=( const B2DHomMatrix& rMat );
- B2DHomPoint& operator/=(double t);
+ B2DHomPoint& operator/=(double t);
- B2DHomPoint& operator-(void);
+ B2DHomPoint& operator-(void);
- sal_Bool operator==( const B2DHomPoint& rPnt ) const;
+ sal_Bool operator==( const B2DHomPoint& rPnt ) const;
- sal_Bool operator!=( const B2DHomPoint& rPnt ) const;
+ sal_Bool operator!=( const B2DHomPoint& rPnt ) const;
- B2DHomPoint& operator=( const B2DHomPoint& rPnt );
- };
+ B2DHomPoint& operator=( const B2DHomPoint& rPnt );
+ };
- // external operators
- //////////////////////////////////////////////////////////////////////////
+ // external operators
+ //////////////////////////////////////////////////////////////////////////
- B2DHomPoint min(const B2DHomPoint& rVecA, const B2DHomPoint& rVecB);
+ B2DHomPoint min(const B2DHomPoint& rVecA, const B2DHomPoint& rVecB);
- B2DHomPoint max(const B2DHomPoint& rVecA, const B2DHomPoint& rVecB);
+ B2DHomPoint max(const B2DHomPoint& rVecA, const B2DHomPoint& rVecB);
- B2DHomPoint abs(const B2DHomPoint& rVec);
+ B2DHomPoint abs(const B2DHomPoint& rVec);
- B2DHomPoint interpolate(B2DHomPoint& rOld1, B2DHomPoint& rOld2, double t);
+ B2DHomPoint interpolate(B2DHomPoint& rOld1, B2DHomPoint& rOld2, double t);
- B2DHomPoint average(B2DHomPoint& rOld1, B2DHomPoint& rOld2);
+ B2DHomPoint average(B2DHomPoint& rOld1, B2DHomPoint& rOld2);
- B2DHomPoint average(B2DHomPoint& rOld1, B2DHomPoint& rOld2, B2DHomPoint& rOld3);
+ B2DHomPoint average(B2DHomPoint& rOld1, B2DHomPoint& rOld2, B2DHomPoint& rOld3);
- B2DHomPoint operator+(const B2DHomPoint& rVecA, const B2DHomPoint& rVecB);
+ B2DHomPoint operator+(const B2DHomPoint& rVecA, const B2DHomPoint& rVecB);
- B2DHomPoint operator-(const B2DHomPoint& rVecA, const B2DHomPoint& rVecB);
+ B2DHomPoint operator-(const B2DHomPoint& rVecA, const B2DHomPoint& rVecB);
- B2DHomPoint operator*(const B2DHomPoint& rVec, double t);
+ B2DHomPoint operator*(const B2DHomPoint& rVec, double t);
- B2DHomPoint operator*(double t, const B2DHomPoint& rVec);
+ B2DHomPoint operator*(double t, const B2DHomPoint& rVec);
- B2DHomPoint operator*( const matrix::B2DHomMatrix& rMat, const B2DHomPoint& rPoint );
+ B2DHomPoint operator*( const B2DHomMatrix& rMat, const B2DHomPoint& rPoint );
- B2DHomPoint operator/(const B2DHomPoint& rVec, double t);
+ B2DHomPoint operator/(const B2DHomPoint& rVec, double t);
- B2DHomPoint operator/(double t, const B2DHomPoint& rVec);
- } // end of namespace point
+ B2DHomPoint operator/(double t, const B2DHomPoint& rVec);
} // end of namespace basegfx
#endif // _BGFX_POINT_B2DHOMPOINT_HXX