1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-10 18:51:21 +03:00

0023004: Boolean operation cut produces incorrect result.

This commit is contained in:
pkv 2012-03-12 20:13:09 +04:00 committed by bugmaster
parent 938a360f65
commit 5faddbe4a9
2 changed files with 701 additions and 414 deletions

View File

@ -19,16 +19,16 @@ uses
Wire from TopoDS, Wire from TopoDS,
Edge from TopoDS, Edge from TopoDS,
Vertex from TopoDS, Vertex from TopoDS,
ListOfShape from TopTools, ListOfShape from TopTools,
SequenceOfInteger from TColStd, SequenceOfInteger from TColStd,
Context from IntTools,
LoopSet from BOP,
BlockIterator from BOP,
BlockBuilder from BOP,
WireEdgeSet from BOP, WireEdgeSet from BOP,
FaceAreaBuilder from BOP,
PWireEdgeSet from BOP PWireEdgeSet from BOP
-- LoopSet from BOP,
-- BlockIterator from BOP,
-- BlockBuilder from BOP,
-- FaceAreaBuilder from BOP,
is is
@ -47,16 +47,27 @@ is
--- 3. Make Areas from Loops --- 3. Make Areas from Loops
--- 4. Make Faces from Areas --- 4. Make Faces from Areas
--- ---
DoInternalEdges (me :out)
is private;
---Purpose:
--- Processes internal edges if they exists
--- ---
BuildNewFaces (me :out) -- BuildNewFaces (me :out)
is private; -- is private;
---Purpose: ---Purpose:
--- Make Faces from Areas --- Make Faces from Areas
--- ---
--modified by NIZNHY-PKV Wed Feb 29 10:57:40 2012f
SetContext(me:out;
aCtx:Context from IntTools);
---Purpose:
-- Sets intersection context <aCtx>
Context(me)
returns Context from IntTools;
---C++: return const &
---Purpose:
-- Returns intersection context
--modified by NIZNHY-PKV Wed Feb 29 10:57:52 2012t
WES (me) WES (me)
returns WireEdgeSet from BOP; returns WireEdgeSet from BOP;
---C++: return const & ---C++: return const &
@ -76,21 +87,21 @@ is
--- 0 -Treat internal edges, --- 0 -Treat internal edges,
--- 1 -Do not treat internal edges --- 1 -Do not treat internal edges
--- ---
SetManifoldFlag(me: out;
aMFlag: Boolean from Standard);
---Purpose:
--- Modifier
---
SetTreatSDScales (me: out; SetTreatSDScales (me: out;
aTreatment: Integer from Standard); aTreatment: Integer from Standard);
---Purpose: ---Purpose:
--- Modifier --- Modifier
--- 1 -Treat scale configured same domain faces, --- 1 -Treat scale configured same domain faces,
--- 0 -Do not treat them. --- 0 -Do not treat them.
--- ---
-- SetManifoldFlag(me: out;
ManifoldFlag(me) -- aMFlag: Boolean from Standard);
returns Boolean from Standard; ---Purpose:
--- Modifier
---
-- ManifoldFlag(me)
-- returns Boolean from Standard;
---Purpose: ---Purpose:
--- Selector --- Selector
--- ---
@ -108,82 +119,92 @@ is
--- ---
--- Faces' iterator --- Faces' iterator
--- ---
InitFace(me:out) -- InitFace(me:out)
returns Integer from Standard; -- returns Integer from Standard;
MoreFace(me) -- MoreFace(me)
returns Boolean from Standard; -- returns Boolean from Standard;
NextFace(me:out); -- NextFace(me:out);
---Purpose: ---Purpose:
--- ---
--- ---
--- Wires' iterator --- Wires' iterator
--- ---
InitWire(me:out) -- InitWire(me:out)
returns Integer from Standard; -- returns Integer from Standard;
MoreWire(me) -- MoreWire(me)
returns Boolean from Standard; -- returns Boolean from Standard;
NextWire(me:out); -- NextWire(me:out);
IsOldWire(me) -- IsOldWire(me)
returns Boolean from Standard; -- returns Boolean from Standard;
OldWire(me) -- OldWire(me)
returns Shape from TopoDS; -- returns Shape from TopoDS;
---C++: return const & -- ---C++: return const &
Wire(me) -- Wire(me)
returns Wire from TopoDS; -- returns Wire from TopoDS;
---C++: return const & -- ---C++: return const &
---Purpose: -- ---Purpose:
--- -- ---
--- ---
--- Edges' iterator --- Edges' iterator
--- ---
FindNextValidElement(me:out); -- FindNextValidElement(me:out);
InitEdge(me:out) -- InitEdge(me:out)
returns Integer from Standard; -- returns Integer from Standard;
MoreEdge(me) -- MoreEdge(me)
returns Boolean from Standard; -- returns Boolean from Standard;
NextEdge(me : in out); -- NextEdge(me : in out);
Edge(me) -- Edge(me)
returns Edge from TopoDS; -- returns Edge from TopoDS;
---C++: return const & -- ---C++: return const &
---Purpose: ---Purpose:
--- ---
MakeLoops(me :out;
SS :out WireEdgeSet from BOP) -- MakeLoops(me :out;
is private; -- SS :out WireEdgeSet from BOP)
-- is protected;
---Purpose: ---Purpose:
--- Make Loops from wires --- Make Loops from wires
--- ---
DoInternalEdges (me :out)
is protected;
---Purpose:
--- Processes internal edges if they exists
SDScales(me :out) SDScales(me :out)
is private; is protected;
---Purpose: ---Purpose:
--- Treatment SD faces with a "scale" --- Treatment SD faces with a "scale"
--- ---
--modified by NIZNHY-PKV Wed Feb 29 09:12:17 2012f
PerformAreas(me :out;
SS :out WireEdgeSet from BOP)
is protected;
--modified by NIZNHY-PKV Wed Feb 29 09:12:20 2012t
fields fields
myFace : Face from TopoDS; myFace : Face from TopoDS;
myLoopSet : LoopSet from BOP; -- myLoopSet : LoopSet from BOP;
myBlockIterator : BlockIterator from BOP; -- myBlockIterator : BlockIterator from BOP;
myBlockBuilder : BlockBuilder from BOP; -- myBlockBuilder : BlockBuilder from BOP;
myFaceAreaBuilder : FaceAreaBuilder from BOP; -- myFaceAreaBuilder : FaceAreaBuilder from BOP;
myWES : PWireEdgeSet from BOP; myWES : PWireEdgeSet from BOP;
myNewFaces : ListOfShape from TopTools; myNewFaces : ListOfShape from TopTools;
myTreatment : Integer from Standard; myTreatment : Integer from Standard;
myManifoldFlag : Boolean from Standard; -- myManifoldFlag : Boolean from Standard;
myTreatSDScales : Integer from Standard; myTreatSDScales : Integer from Standard;
myNegatives : SequenceOfInteger from TColStd; myNegatives : SequenceOfInteger from TColStd;
myContext : Context from IntTools;
end FaceBuilder; end FaceBuilder;

File diff suppressed because it is too large Load Diff