Horrible hack to work around bug in OCCT7.7.2
This commit is contained in:
@@ -652,6 +652,13 @@ App::DocumentObjectExecReturn *Cone::execute()
|
||||
return new App::DocumentObjectExecReturn("Radius of cone too small");
|
||||
if (Height.getValue() < Precision::Confusion())
|
||||
return new App::DocumentObjectExecReturn("Height of cone too small");
|
||||
double angle = Angle.getValue();
|
||||
#if OCC_VERSION_HEX == 0x070702
|
||||
// OCCT 7.7.2 will not model a cone with an angle of exactly 360, so we cheat:
|
||||
if ( angle == 360.0) {
|
||||
angle = 359.99;
|
||||
}
|
||||
#endif
|
||||
try {
|
||||
TopoDS_Shape ResultShape;
|
||||
if (std::abs(Radius1.getValue() - Radius2.getValue()) < Precision::Confusion()){
|
||||
@@ -665,7 +672,7 @@ App::DocumentObjectExecReturn *Cone::execute()
|
||||
BRepPrimAPI_MakeCone mkCone(Radius1.getValue(),
|
||||
Radius2.getValue(),
|
||||
Height.getValue(),
|
||||
Angle.getValue()/180.0f*M_PI);
|
||||
angle/180.0f*M_PI);
|
||||
ResultShape = mkCone.Shape();
|
||||
}
|
||||
this->Shape.setValue(ResultShape);
|
||||
|
||||
Reference in New Issue
Block a user