template<typename DerivedV, typename DerivedF>
class igl::Comb< DerivedV, DerivedF >
template<typename DerivedV , typename DerivedF >
68 :
73 {
76 }
DerivedV N
Definition comb_cross_field.cpp:30
const Eigen::PlainObjectBase< DerivedV > & PD1
Definition comb_cross_field.cpp:28
const Eigen::PlainObjectBase< DerivedV > & V
Definition comb_cross_field.cpp:26
const Eigen::PlainObjectBase< DerivedV > & PD2
Definition comb_cross_field.cpp:29
DerivedF TTi
Definition comb_cross_field.cpp:35
DerivedF TT
Definition comb_cross_field.cpp:34
const Eigen::PlainObjectBase< DerivedF > & F
Definition comb_cross_field.cpp:27
IGL_INLINE void per_face_normals(const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const Eigen::MatrixBase< DerivedZ > &Z, Eigen::PlainObjectBase< DerivedN > &N)
Definition per_face_normals.cpp:13
IGL_INLINE void triangle_triangle_adjacency(const Eigen::MatrixBase< DerivedF > &F, Eigen::PlainObjectBase< DerivedTT > &TT, Eigen::PlainObjectBase< DerivedTTi > &TTi)
Definition triangle_triangle_adjacency.cpp:116
References igl::Comb< DerivedV, DerivedF >::F, igl::Comb< DerivedV, DerivedF >::N, igl::per_face_normals(), igl::triangle_triangle_adjacency(), igl::Comb< DerivedV, DerivedF >::TT, igl::Comb< DerivedV, DerivedF >::TTi, and igl::Comb< DerivedV, DerivedF >::V.
template<typename DerivedV , typename DerivedF >
79 {
80
81
84
85 Eigen::VectorXi mark = Eigen::VectorXi::Constant(
F.
rows(),
false);
86
88
90 mark(0) = true;
91
93 {
96 for (int k=0; k<3; k++)
97 {
99 if (f1==-1) continue;
100 if (mark(f1)) continue;
101
106
107
109 dir0Rot.normalize();
111
112 PD1out.row(f1) = targD;
113 PD2out.row(f1) = n1.cross(targD).normalized();
114
115 mark(f1) = true;
117
118 }
119 }
120
121
122 for (
int i=0; i<
F.
rows(); i++)
123 {
124 assert(mark(i));
125 }
126 }
The matrix class, also used for vectors and row-vectors.
Definition Matrix.h:180
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index rows() const
Definition PlainObjectBase.h:151
EIGEN_DEVICE_FUNC Derived & setZero(Index size)
Definition CwiseNullaryOp.h:515
static Eigen::Matrix< typename DerivedV::Scalar, 3, 1 > K_PI_new(const Eigen::Matrix< typename DerivedV::Scalar, 3, 1 > &a, const Eigen::Matrix< typename DerivedV::Scalar, 3, 1 > &b, const Eigen::Matrix< typename DerivedV::Scalar, 3, 1 > &n)
a and b should be in the same plane orthogonal to N
Definition comb_cross_field.cpp:48
IGL_INLINE Eigen::Matrix< Scalar, 3, 3 > rotation_matrix_from_directions(const Eigen::Matrix< Scalar, 3, 1 > v0, const Eigen::Matrix< Scalar, 3, 1 > v1)
Definition rotation_matrix_from_directions.cpp:14
References igl::Comb< DerivedV, DerivedF >::F, igl::Comb< DerivedV, DerivedF >::K_PI_new(), igl::Comb< DerivedV, DerivedF >::N, igl::Comb< DerivedV, DerivedF >::PD1, igl::Comb< DerivedV, DerivedF >::PD2, igl::rotation_matrix_from_directions(), Eigen::PlainObjectBase< Derived >::rows(), Eigen::PlainObjectBase< Derived >::setZero(), and igl::Comb< DerivedV, DerivedF >::TT.
Referenced by igl::comb_cross_field().