summaryrefslogtreecommitdiff
path: root/basegfx/source/vector/b2dvector.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'basegfx/source/vector/b2dvector.cxx')
-rw-r--r--basegfx/source/vector/b2dvector.cxx31
1 files changed, 27 insertions, 4 deletions
diff --git a/basegfx/source/vector/b2dvector.cxx b/basegfx/source/vector/b2dvector.cxx
index 92931c563125..1177396fefd1 100644
--- a/basegfx/source/vector/b2dvector.cxx
+++ b/basegfx/source/vector/b2dvector.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: b2dvector.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: aw $ $Date: 2003-11-06 16:30:30 $
+ * last change: $Author: aw $ $Date: 2003-11-10 11:45:52 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -163,13 +163,13 @@ namespace basegfx
sal_Bool areParallel( const B2DVector& rVecA, const B2DVector& rVecB )
{
- double fVal(rVecA.getX() * rVecB.getY() - rVecA.getY() * rVecA.getX());
+ double fVal(rVecA.getX() * rVecB.getY() - rVecA.getY() * rVecB.getX());
return ::basegfx::numeric::fTools::equalZero(fVal);
}
B2DVectorOrientation getOrientation( const B2DVector& rVecA, const B2DVector& rVecB )
{
- double fVal(rVecA.getX() * rVecB.getY() - rVecA.getY() * rVecA.getX());
+ double fVal(rVecA.getX() * rVecB.getY() - rVecA.getY() * rVecB.getX());
if(fVal > 0.0)
{
@@ -195,6 +195,29 @@ namespace basegfx
B2DVector aRes( rVec );
return aRes*=rMat;
}
+
+ ::basegfx::vector::B2DVectorContinuity getContinuity(const B2DVector& rBackVector, const B2DVector& rForwardVector )
+ {
+ ::basegfx::vector::B2DVectorContinuity eRetval(::basegfx::vector::CONTINUITY_NONE);
+
+ if(!rBackVector.equalZero() && !rForwardVector.equalZero())
+ {
+ const B2DVector aInverseForwardVector(-rForwardVector.getX(), -rForwardVector.getY());
+
+ if(rBackVector.equal(aInverseForwardVector))
+ {
+ // same direction and same length -> C2
+ eRetval = ::basegfx::vector::CONTINUITY_C2;
+ }
+ else if(areParallel(rBackVector, aInverseForwardVector))
+ {
+ // same direction -> C1
+ eRetval = ::basegfx::vector::CONTINUITY_C1;
+ }
+ }
+
+ return eRetval;
+ }
} // end of namespace vector
} // end of namespace basegfx