Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
QuadricEdgeCollapse::SymMat Class Reference

Public Member Functions

 SymMat (ArithmeticOnly< T > c=T())
 
 SymMat (T a, T b, T c, T d)
 
T operator[] (int c) const
 
T det (int a11, int a12, int a13, int a21, int a22, int a23, int a31, int a32, int a33) const
 
const SymMatoperator+= (const SymMat &n)
 

Private Types

using T = double
 

Private Attributes

T m [N]
 

Static Private Attributes

static const constexpr size_t N = 10
 

Detailed Description

Member Typedef Documentation

◆ T

using QuadricEdgeCollapse::SymMat::T = double
private

Constructor & Destructor Documentation

◆ SymMat() [1/2]

QuadricEdgeCollapse::SymMat::SymMat ( ArithmeticOnly< T c = T())
inlineexplicit
21{ std::fill(m, m + N, c); }
static const constexpr size_t N
Definition QuadricEdgeCollapse.cpp:18
T m[N]
Definition QuadricEdgeCollapse.cpp:19

References m, and N.

◆ SymMat() [2/2]

QuadricEdgeCollapse::SymMat::SymMat ( T  a,
T  b,
T  c,
T  d 
)
inline
25 {
26 m[0] = a * a; m[1] = a * b; m[2] = a * c; m[3] = a * d;
27 m[4] = b * b; m[5] = b * c; m[6] = b * d;
28 m[7] = c * c; m[8] = c * d;
29 m[9] = d * d;
30 }

References m.

Member Function Documentation

◆ det()

T QuadricEdgeCollapse::SymMat::det ( int  a11,
int  a12,
int  a13,
int  a21,
int  a22,
int  a23,
int  a31,
int  a32,
int  a33 
) const
inline
38 {
39 T det = m[a11] * m[a22] * m[a33] + m[a13] * m[a21] * m[a32] +
40 m[a12] * m[a23] * m[a31] - m[a13] * m[a22] * m[a31] -
41 m[a11] * m[a23] * m[a32] - m[a12] * m[a21] * m[a33];
42
43 return det;
44 }
T det(int a11, int a12, int a13, int a21, int a22, int a23, int a31, int a32, int a33) const
Definition QuadricEdgeCollapse.cpp:35
double T
Definition QuadricEdgeCollapse.cpp:17

References det(), and m.

Referenced by QuadricEdgeCollapse::calculate_determinant(), QuadricEdgeCollapse::calculate_vertex(), and det().

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

◆ operator+=()

const SymMat & QuadricEdgeCollapse::SymMat::operator+= ( const SymMat n)
inline
47 {
48 for (size_t i = 0; i < N; ++i) m[i] += n[i];
49 return *this;
50 }

References m, and N.

◆ operator[]()

T QuadricEdgeCollapse::SymMat::operator[] ( int  c) const
inline
32{ return m[c]; }

References m.

Member Data Documentation

◆ m

T QuadricEdgeCollapse::SymMat::m[N]
private

◆ N

const constexpr size_t QuadricEdgeCollapse::SymMat::N = 10
staticconstexprprivate

Referenced by SymMat(), and operator+=().


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