C++ (Qt)double a;double b;...if(a == b) // Wrong!!!...
C++ (Qt)double a;double b;...if(fabs(a - b) < epsilon) // True!!!...
bool qFuzzyCompare(double p1, double p2)
C++ (Qt)Q_DECL_CONSTEXPR static inline bool qFuzzyCompare(double p1, double p2){ return (qAbs(p1 - p2) <= 0.000000000001 * qMin(qAbs(p1), qAbs(p2)));}
C++ (Qt)Point3D nrml = CrossProduct(p1 - p0, p2 - p1);double len = nrml.length();if (len < 1.0e-6) ..
C++ (Qt)if (fabs(a - b) <= 16 * DBL_EPSILON * fmax(fabs(a), fabs(b))){ // ...}
C++ (Qt)struct CEdge { int mVertex[2] // индексы в контейнере вертексов int mFacet[2]; // индексы треугольников которые шерят это ребро (второй -1 если это край)}; struct CTriangle { ... int mEdge[3]; // индексы в контейнере CEdge};
C++ (Qt)typedef double qreal;