Browse Source

add 2d version

Alec Jacobson 5 years ago
parent
commit
c0fdeb1f62
1 changed files with 17 additions and 0 deletions
  1. 17 0
      include/igl/segment_segment_intersect.cpp

+ 17 - 0
include/igl/segment_segment_intersect.cpp

@@ -62,6 +62,23 @@ IGL_INLINE bool igl::segment_segment_intersect(
   return true;
   return true;
 };
 };
 
 
+template <> bool igl::segment_segment_intersect<Eigen::Matrix<double, 1, 2, 1, 1, 2>, Eigen::Matrix<double, 1, 2, 1, 1, 2> >(
+  Eigen::MatrixBase<Eigen::Matrix<double, 1, 2, 1, 1, 2> > const& p, 
+  Eigen::MatrixBase<Eigen::Matrix<double, 1, 2, 1, 1, 2> > const& r, 
+  Eigen::MatrixBase<Eigen::Matrix<double, 1, 2, 1, 1, 2> > const& q, 
+  Eigen::MatrixBase<Eigen::Matrix<double, 1, 2, 1, 1, 2> > const& s, 
+  double& t, 
+  double& u, 
+  double eps)
+{
+  const Eigen::Vector3d p3(p(0),p(1),0);
+  const Eigen::Vector3d r3(r(0),r(1),0);
+  const Eigen::Vector3d q3(q(0),q(1),0);
+  const Eigen::Vector3d s3(s(0),s(1),0);
+  return segment_segment_intersect(p3,r3,q3,s3,t,u,eps);
+}
+
 #ifdef IGL_STATIC_LIBRARY
 #ifdef IGL_STATIC_LIBRARY
+// Explicit template instantiation
 template bool igl::segment_segment_intersect<Eigen::Matrix<double, 1, 3, 1, 1, 3>, Eigen::Matrix<double, 1, 3, 1, 1, 3> >(Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, double&, double&, double);
 template bool igl::segment_segment_intersect<Eigen::Matrix<double, 1, 3, 1, 1, 3>, Eigen::Matrix<double, 1, 3, 1, 1, 3> >(Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, double&, double&, double);
 #endif
 #endif