-- File: MAT_Graph.cdl -- Created: Thu Apr 29 18:49:39 1993 -- Author: Yves FRICAUD -- ---Copyright: Matra Datavision 1993 class Graph from MAT inherits TShared from MMgt ---Purpose: The Class Graph permits the exploration of the -- Bisector Locus. uses BasicElt from MAT, Node from MAT, Arc from MAT, DataMapOfIntegerArc from MAT, DataMapOfIntegerBasicElt from MAT, DataMapOfIntegerNode from MAT, ListOfBisector from MAT is Create returns mutable Graph from MAT; --- Purpose : Empty constructor. ---Category: Computation Perform(me : mutable ; SemiInfinite : Boolean ; TheRoots : ListOfBisector from MAT; NbBasicElts : Integer ; NbArcs : Integer ) --- Purpose : Construct from the result of the method -- of the class from . -- -- : if some bisector are infinites. -- : Set of the bisectors. -- : Number of Basic Elements. -- : Number of Arcs = Number of Bisectors. is static; ---Category: Querying Arc(me ; Index : Integer) --- Purpose : Return the Arc of index in . returns Arc from MAT is static; BasicElt(me ; Index : Integer) --- Purpose : Return the BasicElt of index in . returns BasicElt from MAT is static; Node(me ; Index : Integer) --- Purpose : Return the Node of index in . returns Node from MAT is static; NumberOfArcs (me) --- Purpose : Return the number of arcs of . returns Integer is static; NumberOfNodes (me) --- Purpose : Return the number of nodes of . returns Integer is static; NumberOfBasicElts (me) --- Purpose : Return the number of basic elements of . returns Integer is static; NumberOfInfiniteNodes (me) --- Purpose : Return the number of infinites nodes of . returns Integer is static; ---Category: Modification FusionOfBasicElts (me : mutable; IndexElt1 : Integer from Standard; IndexElt2 : Integer from Standard; MergeArc1 : out Boolean from Standard; GeomIndexArc1 : out Integer from Standard; GeomIndexArc2 : out Integer from Standard; MergeArc2 : out Boolean from Standard; GeomIndexArc3 : out Integer from Standard; GeomIndexArc4 : out Integer from Standard) ---Purpose: Merge two BasicElts. The End of the BasicElt Elt1 -- of IndexElt1 becomes The End of the BasicElt Elt2 -- of IndexElt2. Elt2 is replaced in the arcs by -- Elt1, Elt2 is eliminated. -- -- is True if the fusion of the BasicElts => -- a fusion of two Arcs which separated the same elements. -- In this case and are the -- Geometric Index of this arcs. -- -- If the BasicElt corresponds to a close line , -- the StartArc and the EndArc of Elt1 can separate the same -- elements . -- In this case there is a fusion of this arcs, -- is true and and are the -- Geometric Index of this arcs. is static; FusionOfArcs (me : mutable; Arc1 : mutable Arc from MAT; Arc2 : mutable Arc from MAT) ---Purpose: Merge two Arcs. the second node of becomes -- the first node of . Update of the first -- node and the neighbours of . -- is eliminated. is static private; CompactArcs (me : mutable ) is static ; CompactNodes(me : mutable ) is static ; ChangeBasicElts(me : mutable ; NewMap : DataMapOfIntegerBasicElt from MAT) is static; ChangeBasicElt(me : mutable ; Index : Integer) returns mutable BasicElt from MAT is static; UpDateNodes(me : mutable ; Index : in out Integer) is static private; fields theArcs : DataMapOfIntegerArc from MAT; theBasicElts : DataMapOfIntegerBasicElt from MAT; theNodes : DataMapOfIntegerNode from MAT; numberOfArcs : Integer; numberOfNodes : Integer; numberOfBasicElts : Integer; numberOfInfiniteNodes : Integer; end Graph;