- if (P1.X() == P2.X() || P1.Y() == P2.Y() || P1.Z() == P2.Z()) {
- StdFail_NotDone::Raise("Box can not be created, the points belong to the same plane");
- return 0;
+ if (std::abs(P1.X() - P2.X()) < Precision::Confusion() ||
+ std::abs(P1.Y() - P2.Y()) < Precision::Confusion() ||
+ std::abs(P1.Z() - P2.Z()) < Precision::Confusion() ) {
+ StdFail_NotDone::Raise("Box can not be created, the points belong both to one of the OXY, OYZ or OZX planes");
+ return 0;