aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/geo_parametrizedline.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2011-12-10 12:17:42 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2011-12-10 12:17:42 +0100
commit2600ba173168b6e9b32c713f2c217d322aab043e (patch)
treeeb7cc08d05827186678b031dc1ab5ec32c793607 /test/geo_parametrizedline.cpp
parentc06ae325a4332d52e0c6049b4e7d99ac4887b26a (diff)
feature 297: s/intersectionPoint/pointAt, fix documentation, add a unit test
Diffstat (limited to 'test/geo_parametrizedline.cpp')
-rw-r--r--test/geo_parametrizedline.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/geo_parametrizedline.cpp b/test/geo_parametrizedline.cpp
index 13f98fdd6..a289e70de 100644
--- a/test/geo_parametrizedline.cpp
+++ b/test/geo_parametrizedline.cpp
@@ -40,6 +40,7 @@ template<typename LineType> void parametrizedline(const LineType& _line)
typedef Matrix<Scalar, LineType::AmbientDimAtCompileTime, 1> VectorType;
typedef Matrix<Scalar, LineType::AmbientDimAtCompileTime,
LineType::AmbientDimAtCompileTime> MatrixType;
+ typedef Hyperplane<Scalar,LineType::AmbientDimAtCompileTime> HyperplaneType;
VectorType p0 = VectorType::Random(dim);
VectorType p1 = VectorType::Random(dim);
@@ -64,6 +65,16 @@ template<typename LineType> void parametrizedline(const LineType& _line)
VERIFY_IS_APPROX(hp1f.template cast<Scalar>(),l0);
ParametrizedLine<Scalar,Dim> hp1d = l0.template cast<Scalar>();
VERIFY_IS_APPROX(hp1d.template cast<Scalar>(),l0);
+
+ // intersections
+ VectorType p2 = VectorType::Random(dim);
+ VectorType n2 = VectorType::Random(dim).normalized();
+ HyperplaneType hp(p2,n2);
+ Scalar t = l0.intersectionParameter(hp);
+ VectorType pi = l0.pointAt(t);
+ VERIFY_IS_MUCH_SMALLER_THAN(hp.signedDistance(pi), RealScalar(1));
+ VERIFY_IS_MUCH_SMALLER_THAN(l0.distance(pi), RealScalar(1));
+ VERIFY_IS_APPROX(l0.intersectionPoint(hp), pi);
}
template<typename Scalar> void parametrizedline_alignment()