1 -- Created on: 1992-11-18
2 -- Created by: Christian CAILLET
3 -- Copyright (c) 1992-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
6 -- This file is part of Open CASCADE Technology software library.
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
17 class SelectRoots from IFSelect inherits SelectExtract
19 ---Purpose : A SelectRoots sorts the Entities which are local roots of a
20 -- set of Entities (not shared by other Entities inside this set,
21 -- even if they are shared by other Entities outside it)
23 uses AsciiString from TCollection, InterfaceModel, EntityIterator, Graph
27 Create returns SelectRoots;
28 ---Purpose : Creates a SelectRoots
30 RootResult (me; G : Graph) returns EntityIterator is redefined;
31 ---Purpose : Returns the list of local roots. It is redefined for a purpose
32 -- of effeciency : calling a Sort routine for each Entity would
33 -- cost more ressource than to work in once using a Map
34 -- RootResult takes in account the Direct status
36 HasUniqueResult (me) returns Boolean is redefined protected;
37 ---Purpose : Returns True, because RootResult assures uniqueness
39 Sort (me; rank : Integer; ent : Transient; model : InterfaceModel)
41 ---Purpose : Returns always True, because RootResult has done work
43 ExtractLabel (me) returns AsciiString from TCollection;
44 ---Purpose : Returns a text defining the criterium : "Local Root Entities"