-- File : Partition_Inter3d.cdl -- Created: Thu Aug 02 16:07:39 2001 -- Author : Benedicte MARTIN -- ---Copyright: OPEN CASCADE 2001 class Inter3d from Partition ---Purpose: Computes the intersection face face in a set of faces -- Store the result in a SD as AsDes. uses Edge from TopoDS, Vertex from TopoDS, DataMapOfShapeShape from TopTools, MapOfShape from TopTools, Boolean from Standard, AsDes from BRepAlgo, Image from BRepAlgo, Shape from TopoDS, Face from TopoDS, ListOfShape from TopTools, Real from Standard, State from TopAbs, DataMapOfShapeListOfShape from TopTools is Create returns Inter3d from Partition; Create(AsDes : mutable AsDes from BRepAlgo); CompletPart3d (me : in out; SetOfFaces1 : ListOfShape from TopTools; FaceShapeMap: DataMapOfShapeShape from TopTools) is static; FacesPartition (me : in out; F1, F2 : Face from TopoDS) is static; ---------------------------- ---Category: Result Querying ---------------------------- IsDone(me ; F1,F2 : Face from TopoDS) returns Boolean from Standard is static; ---Purpose: return True if F1-F2 pair has been processed TouchedFaces(me : in out) returns MapOfShape from TopTools ---C++: return & is static; ---Purpose: return map of AsDes(me) returns AsDes from BRepAlgo is static; NewEdges(me : in out) returns MapOfShape from TopTools ---C++: return & is static; ------------------------------- ---Category: Same domain shapes ------------------------------- HasSameDomainF(me; F : Shape from TopoDS) returns Boolean from Standard; ---Purpose: Return true if F has same domain faces IsSameDomainF(me; F1, F2 : Shape from TopoDS) returns Boolean from Standard; ---Purpose: Return true if F1 and F2 are same domain faces SameDomain(me; F : Face from TopoDS) returns ListOfShape from TopTools; ---C++: return const & ---Purpose: Return same domain faces of F ReplaceSameDomainV (me; V : Vertex from TopoDS; E : Edge from TopoDS) returns Vertex from TopoDS; ---Purpose: return same domain vertex of V if it was replaced -- and make this vertex to be on E too, else return V -------------------------- ---Category: Section edges -------------------------- SectionEdgesAD (me) returns AsDes from BRepAlgo is static; IsSectionEdge (me; E : Edge from TopoDS) returns Boolean from Standard; ---Purpose: return True if E is an edge of a face and it -- intersects an other face HasSectionEdge (me; F : Face from TopoDS) returns Boolean from Standard; ---Purpose: return True if F is intersected by an edge of -- other face IsSplitOn (me; NewE, OldE : Edge from TopoDS; F : Face from TopoDS) returns Boolean from Standard; ---Purpose: return True if NewE is split of OldE on F; -- no check if NewE is split of OldE :) SectionEdgeFaces (me; SecE : Edge from TopoDS) returns ListOfShape from TopTools; ---C++: return const& ---Purpose: return faces cut by section edge -------------------- ---Category: Private -------------------- Inter3D (me: in out; F1, F2 : Face from TopoDS; LInt : in out ListOfShape from TopTools) is static private; StorePart3d(me : in out; F1,F2 : Face from TopoDS; LInt1 : ListOfShape from TopTools) is static private; SetDone(me : in out; F1,F2 : Face from TopoDS) is static private; Affiche (me; SetOfFaces : ListOfShape from TopTools) is static private; fields myAsDes : AsDes from BRepAlgo; myDone : DataMapOfShapeListOfShape from TopTools; myTouched : MapOfShape from TopTools; myNewEdges : MapOfShape from TopTools; -- section edges: existing edges that are intersection lines, -- may be partially. -- Store as -- FACE -> SECTION EDGES, SECTION EDGE -> OTHER SECTION EDGE mySectionEdgesAD : AsDes from BRepAlgo; -- same domain shapes -- faces mySameDomainFM : DataMapOfShapeListOfShape from TopTools; -- vertex -> vertex replacement mySameDomainVM : DataMapOfShapeShape from TopTools; end Inter3d;