Salome HOME
projects
/
modules
/
geom.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
78d08f2
)
[bos #33060] EDF 26527 - remove extra-edges doesn't work
author
jfa
<jfa@opencascade.com>
Fri, 10 Feb 2023 14:38:14 +0000
(14:38 +0000)
committer
jfa
<jfa@opencascade.com>
Fri, 10 Feb 2023 14:38:14 +0000
(14:38 +0000)
src/BlockFix/BlockFix_UnionFaces.cxx
patch
|
blob
|
history
diff --git
a/src/BlockFix/BlockFix_UnionFaces.cxx
b/src/BlockFix/BlockFix_UnionFaces.cxx
index 15ed9da9b6fa84f04c9ae06f33a1b601119d8c92..294deb2245796d062e52873a92d1bdbba6125cc8 100644
(file)
--- a/
src/BlockFix/BlockFix_UnionFaces.cxx
+++ b/
src/BlockFix/BlockFix_UnionFaces.cxx
@@
-91,6
+91,7
@@
#include <Bnd_Box.hxx>
#include <BRepBndLib.hxx>
#include <Bnd_Box.hxx>
#include <BRepBndLib.hxx>
+#include <Geom_TrimmedCurve.hxx>
#include <Geom_Curve.hxx>
#include <Geom_Line.hxx>
#include <Geom_Circle.hxx>
#include <Geom_Curve.hxx>
#include <Geom_Line.hxx>
#include <Geom_Circle.hxx>
@@
-814,6
+815,13
@@
bool getCylinder (Handle(Geom_Surface)& theInSurface, gp_Cylinder& theOutCylinde
Handle(Geom_SurfaceOfRevolution) aRS =
Handle(Geom_SurfaceOfRevolution)::DownCast(theInSurface);
Handle(Geom_Curve) aBasis = aRS->BasisCurve();
Handle(Geom_SurfaceOfRevolution) aRS =
Handle(Geom_SurfaceOfRevolution)::DownCast(theInSurface);
Handle(Geom_Curve) aBasis = aRS->BasisCurve();
+
+ while (aBasis->IsKind(STANDARD_TYPE(Geom_TrimmedCurve))) {
+ Handle(Geom_TrimmedCurve) aTc =
+ Handle(Geom_TrimmedCurve)::DownCast(aBasis);
+ aBasis = aTc->BasisCurve();
+ }
+
if (aBasis->IsKind(STANDARD_TYPE(Geom_Line))) {
Handle(Geom_Line) aBasisLine = Handle(Geom_Line)::DownCast(aBasis);
gp_Dir aDir = aRS->Direction();
if (aBasis->IsKind(STANDARD_TYPE(Geom_Line))) {
Handle(Geom_Line) aBasisLine = Handle(Geom_Line)::DownCast(aBasis);
gp_Dir aDir = aRS->Direction();
@@
-833,6
+841,13
@@
bool getCylinder (Handle(Geom_Surface)& theInSurface, gp_Cylinder& theOutCylinde
Handle(Geom_SurfaceOfLinearExtrusion) aLES =
Handle(Geom_SurfaceOfLinearExtrusion)::DownCast(theInSurface);
Handle(Geom_Curve) aBasis = aLES->BasisCurve();
Handle(Geom_SurfaceOfLinearExtrusion) aLES =
Handle(Geom_SurfaceOfLinearExtrusion)::DownCast(theInSurface);
Handle(Geom_Curve) aBasis = aLES->BasisCurve();
+
+ while (aBasis->IsKind(STANDARD_TYPE(Geom_TrimmedCurve))) {
+ Handle(Geom_TrimmedCurve) aTc =
+ Handle(Geom_TrimmedCurve)::DownCast(aBasis);
+ aBasis = aTc->BasisCurve();
+ }
+
if (aBasis->IsKind(STANDARD_TYPE(Geom_Circle))) {
Handle(Geom_Circle) aBasisCircle = Handle(Geom_Circle)::DownCast(aBasis);
gp_Dir aDir = aLES->Direction();
if (aBasis->IsKind(STANDARD_TYPE(Geom_Circle))) {
Handle(Geom_Circle) aBasisCircle = Handle(Geom_Circle)::DownCast(aBasis);
gp_Dir aDir = aLES->Direction();