Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO > Class Template Reference
+ Collaboration diagram for igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >:

Public Member Functions

 MissMatchCalculatorLine (const Eigen::PlainObjectBase< DerivedV > &_V, const Eigen::PlainObjectBase< DerivedF > &_F, const Eigen::PlainObjectBase< DerivedV > &_PD1, const Eigen::PlainObjectBase< DerivedV > &_PD2)
 
void calculateMissmatchLine (Eigen::PlainObjectBase< DerivedO > &Handle_MMatch)
 

Public Attributes

const Eigen::PlainObjectBase< DerivedV > & V
 
const Eigen::PlainObjectBase< DerivedF > & F
 
const Eigen::PlainObjectBase< DerivedV > & PD1
 
const Eigen::PlainObjectBase< DerivedV > & PD2
 
DerivedV N
 

Private Member Functions

int MissMatchByLine (const int f0, const int f1)
 

Private Attributes

std::vector< bool > V_border
 
std::vector< std::vector< int > > VF
 
std::vector< std::vector< int > > VFi
 
DerivedF TT
 
DerivedF TTi
 

Detailed Description

template<typename DerivedV, typename DerivedF, typename DerivedO>
class igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >

Constructor & Destructor Documentation

◆ MissMatchCalculatorLine()

template<typename DerivedV , typename DerivedF , typename DerivedO >
igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::MissMatchCalculatorLine ( const Eigen::PlainObjectBase< DerivedV > &  _V,
const Eigen::PlainObjectBase< DerivedF > &  _F,
const Eigen::PlainObjectBase< DerivedV > &  _PD1,
const Eigen::PlainObjectBase< DerivedV > &  _PD2 
)
inline
88 :
89 V(_V),
90 F(_F),
91 PD1(_PD1),
92 PD2(_PD2)
93 {
98 }
DerivedV N
Definition line_field_missmatch.cpp:35
const Eigen::PlainObjectBase< DerivedF > & F
Definition line_field_missmatch.cpp:32
const Eigen::PlainObjectBase< DerivedV > & V
Definition line_field_missmatch.cpp:31
DerivedF TT
Definition line_field_missmatch.cpp:42
const Eigen::PlainObjectBase< DerivedV > & PD1
Definition line_field_missmatch.cpp:33
const Eigen::PlainObjectBase< DerivedV > & PD2
Definition line_field_missmatch.cpp:34
std::vector< bool > V_border
Definition line_field_missmatch.cpp:39
DerivedF TTi
Definition line_field_missmatch.cpp:43
std::vector< std::vector< int > > VFi
Definition line_field_missmatch.cpp:41
std::vector< std::vector< int > > VF
Definition line_field_missmatch.cpp:40
IGL_INLINE void vertex_triangle_adjacency(const typename DerivedF::Scalar n, const Eigen::MatrixBase< DerivedF > &F, std::vector< std::vector< VFType > > &VF, std::vector< std::vector< VFiType > > &VFi)
Definition vertex_triangle_adjacency.cpp:12
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 std::vector< bool > is_border_vertex(const Eigen::PlainObjectBase< DerivedV > &V, const Eigen::PlainObjectBase< DerivedF > &F)
Definition is_border_vertex.cpp:14
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::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::F, igl::is_border_vertex(), igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::N, igl::per_face_normals(), igl::triangle_triangle_adjacency(), igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::TT, igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::TTi, igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::V, igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::V_border, igl::vertex_triangle_adjacency(), igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::VF, and igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::VFi.

+ Here is the call graph for this function:

Member Function Documentation

◆ calculateMissmatchLine()

template<typename DerivedV , typename DerivedF , typename DerivedO >
void igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::calculateMissmatchLine ( Eigen::PlainObjectBase< DerivedO > &  Handle_MMatch)
inline
101 {
102 Handle_MMatch.setConstant(F.rows(),3,-1);
103 for (unsigned int i=0;i<F.rows();i++)
104 {
105 for (int j=0;j<3;j++)
106 {
107 if (i==TT(i,j) || TT(i,j) == -1)
108 Handle_MMatch(i,j)=0;
109 else
110 Handle_MMatch(i,j) = MissMatchByLine(i,TT(i,j));
111 }
112 }
113 }
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index rows() const
Definition PlainObjectBase.h:151
EIGEN_DEVICE_FUNC Derived & setConstant(Index size, const Scalar &val)
Definition CwiseNullaryOp.h:341
int MissMatchByLine(const int f0, const int f1)
Definition line_field_missmatch.cpp:49

References igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::F, igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::MissMatchByLine(), Eigen::PlainObjectBase< Derived >::rows(), Eigen::PlainObjectBase< Derived >::setConstant(), and igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::TT.

Referenced by igl::line_field_missmatch().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MissMatchByLine()

template<typename DerivedV , typename DerivedF , typename DerivedO >
int igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::MissMatchByLine ( const int  f0,
const int  f1 
)
inlineprivate
51 {
56
58 dir1Rot.normalize();
59
60 // TODO: this should be equivalent to the other code below, to check!
61 // Compute the angle between the two vectors
62 // double a0 = atan2(dir0.dot(B2.row(f0)),dir0.dot(B1.row(f0)));
63 // double a1 = atan2(dir1Rot.dot(B2.row(f0)),dir1Rot.dot(B1.row(f0)));
64 //
65 // double angle_diff = a1-a0; //VectToAngle(f0,dir1Rot);
66
67 double angle_diff = atan2(dir1Rot.dot(PD2.row(f0)),dir1Rot.dot(PD1.row(f0)));
68
69 double step=igl::PI;
70 int i=(int)std::floor((angle_diff/step)+0.5);
71 assert((i>=-2)&&(i<=2));
72 int k=0;
73 if (i>=0)
74 k=i%2;
75 else
76 k=(2+i)%2;
77
78 assert((k==0)||(k==1));
79 return (k*2);
80 }
The matrix class, also used for vectors and row-vectors.
Definition Matrix.h:180
const double PI
Definition PI.h:16
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
Coord step(const Coord &crd, Dir d)
Definition MarchingSquares.hpp:137

References igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::N, igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::PD1, igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::PD2, igl::PI, and igl::rotation_matrix_from_directions().

Referenced by igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::calculateMissmatchLine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ F

◆ N

template<typename DerivedV , typename DerivedF , typename DerivedO >
DerivedV igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::N

◆ PD1

template<typename DerivedV , typename DerivedF , typename DerivedO >
const Eigen::PlainObjectBase<DerivedV>& igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::PD1

◆ PD2

template<typename DerivedV , typename DerivedF , typename DerivedO >
const Eigen::PlainObjectBase<DerivedV>& igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::PD2

◆ TT

template<typename DerivedV , typename DerivedF , typename DerivedO >
DerivedF igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::TT
private

◆ TTi

template<typename DerivedV , typename DerivedF , typename DerivedO >
DerivedF igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::TTi
private

◆ V

template<typename DerivedV , typename DerivedF , typename DerivedO >
const Eigen::PlainObjectBase<DerivedV>& igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::V

◆ V_border

template<typename DerivedV , typename DerivedF , typename DerivedO >
std::vector<bool> igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::V_border
private

◆ VF

template<typename DerivedV , typename DerivedF , typename DerivedO >
std::vector<std::vector<int> > igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::VF
private

◆ VFi

template<typename DerivedV , typename DerivedF , typename DerivedO >
std::vector<std::vector<int> > igl::MissMatchCalculatorLine< DerivedV, DerivedF, DerivedO >::VFi
private

The documentation for this class was generated from the following file: