23 {{2, 10, 7, 3},
true},
24 {{3, 11, 4, 0},
true},
29 {{4, 12, 16, 8},
true},
30 {{5, 13, 17, 9},
true},
31 {{4, 11, 19, 12},
true},
32 {{5, 8, 16, 13},
true},
33 {{7, 10, 18, 15},
true},
34 {{6, 9, 17, 14},
true},
35 {{7, 15, 19, 11},
true},
36 {{6, 14, 18, 10},
true},
37 {{13, 21, 17},
false},
38 {{12, 20, 16},
false},
39 {{15, 23, 19},
false},
40 {{14, 22, 18},
false},
41 {{14, 17, 21, 22},
true},
42 {{13, 16, 20, 21},
true},
43 {{12, 19, 23, 20},
true},
44 {{15, 18, 22, 23},
true},
45 {{20, 23, 22, 21},
true},
49 FormFactorCantellatedCube::FormFactorCantellatedCube(
const std::vector<double> P)
52 "a cube with truncated edges and vertices",
53 {{
"Length",
"nm",
"length of untruncated edge", 0, +INF, 0},
54 {
"RemovedLength",
"nm",
55 "side length of the trirectangular tetrahedron removed one corner", 0, +INF, 0}}},
57 m_length(m_P[0]), m_removed_length(m_P[1])
62 FormFactorCantellatedCube::FormFactorCantellatedCube(
double length,
double removed_length)
69 if (m_removed_length > 0.5 * m_length) {
70 std::ostringstream ostr;
71 ostr <<
"::FormFactorCantellatedCube() -> Error in class initialization ";
72 ostr <<
"with parameters 'length':" << m_length;
73 ostr <<
" 'removed_length':" << m_removed_length <<
"\n\n";
74 ostr <<
"Check for removed_length <= 0.5*length failed.";
77 double a = m_length / 2;
78 double b = m_removed_length;
81 {+a - b, -a + b, +a}, {+a - b, +a - b, +a}, {-a + b, +a - b, +a},
83 {+a - b, -a, +a - b}, {+a, +a - b, +a - b}, {-a + b, +a, +a - b},
85 {+a, -a + b, +a - b}, {+a - b, +a, +a - b}, {-a, +a - b, +a - b},
87 {+a - b, -a, -a + b}, {+a, +a - b, -a + b}, {-a + b, +a, -a + b},
89 {+a, -a + b, -a + b}, {+a - b, +a, -a + b}, {-a, +a - b, -a + b},
91 {+a - b, -a + b, -a}, {+a - b, +a - b, -a}, {-a + b, +a - b, -a}});
Defines many exception classes in namespace Exceptionss.
For internal use in IFormFactorPolyhedron.