Browse Source

fix some template issues

Francis Williams 6 years ago
parent
commit
9b51e2225e
1 changed files with 5 additions and 5 deletions
  1. 5 5
      include/igl/signed_distance.cpp

+ 5 - 5
include/igl/signed_distance.cpp

@@ -148,7 +148,7 @@ IGL_INLINE void igl::signed_distance(
     }
     }
     typename DerivedV::Scalar s=1,sqrd=0;
     typename DerivedV::Scalar s=1,sqrd=0;
     Eigen::Matrix<typename DerivedV::Scalar,1,Eigen::Dynamic>  c;
     Eigen::Matrix<typename DerivedV::Scalar,1,Eigen::Dynamic>  c;
-    RowVector3S c3;
+    Eigen::Matrix<typename DerivedV::Scalar,1,3> c3;
     Eigen::Matrix<typename DerivedV::Scalar,1,2>  c2;
     Eigen::Matrix<typename DerivedV::Scalar,1,2>  c2;
     int i=-1;
     int i=-1;
     // in all cases compute squared unsiged distances
     // in all cases compute squared unsiged distances
@@ -193,15 +193,15 @@ IGL_INLINE void igl::signed_distance(
           dim==3 ?
           dim==3 ?
             pseudonormal_test(V,F,FN,VN,EN,EMAP,q3,i,c3,s,n3):
             pseudonormal_test(V,F,FN,VN,EN,EMAP,q3,i,c3,s,n3):
             pseudonormal_test(V,E,EN,VN,q2,i,c2,s,n2);
             pseudonormal_test(V,E,EN,VN,q2,i,c2,s,n2);
-          Eigen::Matrix<typename DerivedV::Scalar,1,Eigen::Dynamic>  n;
-          (dim==3 ? n = n3 : n = n2);
-          N.row(p) = n;
+          Eigen::Matrix<typename DerivedN::Scalar,1,Eigen::Dynamic>  n;
+          (dim==3 ? n = n3.template cast<typename DerivedN::Scalar>() : n = n2.template cast<typename DerivedN::Scalar>());
+          N.row(p) = n.template cast<typename DerivedN::Scalar>();
           break;
           break;
         }
         }
       }
       }
       I(p) = i;
       I(p) = i;
       S(p) = s*sqrt(sqrd);
       S(p) = s*sqrt(sqrd);
-      C.row(p) = (dim==3 ? c=c3 : c=c2);
+      C.row(p) = (dim==3 ? c=c3 : c=c2).template cast<typename DerivedC::Scalar>();
     }
     }
   }
   }
   ,10000);
   ,10000);