b311480e |
1 | -- Created on: 1990-12-20 |
2 | -- Created by: Remi Lequette |
3 | -- Copyright (c) 1990-1999 Matra Datavision |
973c2be1 |
4 | -- Copyright (c) 1999-2014 OPEN CASCADE SAS |
b311480e |
5 | -- |
973c2be1 |
6 | -- This file is part of Open CASCADE Technology software library. |
b311480e |
7 | -- |
973c2be1 |
8 | -- This library is free software; you can redistribute it and / or modify it |
9 | -- under the terms of the GNU Lesser General Public 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. |
b311480e |
13 | -- |
973c2be1 |
14 | -- Alternatively, this file may be used under the terms of Open CASCADE |
15 | -- commercial license or contractual agreement. |
7fd59977 |
16 | |
17 | package TopExp |
18 | |
19 | ---Purpose: This package provides basic tools to explore the |
20 | -- topological data structures. |
21 | -- |
22 | -- * Explorer : A tool to find all sub-shapes of a given |
23 | -- type. e.g. all faces of a solid. |
24 | -- |
25 | -- * Package methods to map sub-shapes of a shape. |
26 | -- |
27 | -- Level : Public |
28 | -- All methods of all classes will be public. |
29 | |
30 | |
31 | uses |
32 | |
33 | TCollection, |
34 | TopLoc, |
35 | TopAbs, |
36 | TopoDS, |
37 | TopTools |
38 | |
39 | is |
40 | |
41 | private class StackOfIterator instantiates |
42 | Stack from TCollection (Iterator from TopoDS); |
43 | |
44 | pointer Stack to Iterator from TopoDS; |
45 | |
46 | class Explorer; |
47 | ---Purpose: Tool to explore a topological data structure. |
48 | |
49 | -- |
50 | -- Package methods |
51 | -- |
52 | |
53 | |
54 | MapShapes(S : Shape from TopoDS; |
55 | T : ShapeEnum from TopAbs; |
56 | M : in out IndexedMapOfShape from TopTools); |
57 | ---Purpose: Stores in the map <M> all the sub-shapes of <S> |
58 | -- of type <T>. |
59 | -- |
60 | -- Warning: The map is not cleared at first. |
61 | |
62 | MapShapes(S : Shape from TopoDS; |
63 | M : in out IndexedMapOfShape from TopTools); |
64 | ---Purpose: Stores in the map <M> all the sub-shapes of <S>. |
65 | |
66 | MapShapesAndAncestors |
67 | (S : Shape from TopoDS; |
68 | TS : ShapeEnum from TopAbs; |
69 | TA : ShapeEnum from TopAbs; |
70 | M : in out IndexedDataMapOfShapeListOfShape from TopTools); |
71 | ---Purpose: Stores in the map <M> all the subshape of <S> of |
72 | -- type <TS> for each one append to the list all |
73 | -- the ancestors of type <TA>. For example map all |
74 | -- the edges and bind the list of faces. |
75 | -- Warning: The map is not cleared at first. |
76 | |
77 | FirstVertex(E : Edge from TopoDS; |
78 | CumOri : Boolean from Standard = Standard_False) |
79 | returns Vertex from TopoDS; |
80 | ---Purpose: Returns the Vertex of orientation FORWARD in E. If |
81 | -- there is none returns a Null Shape. |
82 | -- CumOri = True : taking account the edge orientation |
83 | |
84 | LastVertex(E : Edge from TopoDS; |
85 | CumOri : Boolean from Standard = Standard_False) |
86 | returns Vertex from TopoDS; |
87 | ---Purpose: Returns the Vertex of orientation REVERSED in E. If |
88 | -- there is none returns a Null Shape. |
89 | -- CumOri = True : taking account the edge orientation |
90 | |
91 | Vertices(E : Edge from TopoDS; Vfirst, Vlast : out Vertex from TopoDS; |
92 | CumOri : Boolean from Standard = Standard_False); |
93 | ---Purpose: Returns in Vfirst, Vlast the FORWARD and REVERSED |
94 | -- vertices of the edge <E>. May be null shapes. |
95 | -- CumOri = True : taking account the edge orientation |
96 | |
97 | Vertices(W : Wire from TopoDS; Vfirst, Vlast : out Vertex from TopoDS); |
98 | ---Purpose: Returns in Vfirst, Vlast the first and last |
99 | -- vertices of the open wire <W>. May be null shapes. |
100 | -- if <W> is closed Vfirst and Vlast are a same |
101 | -- vertex on <W>. |
102 | -- if <W> is no manifold. VFirst and VLast are null |
103 | -- shapes. |
104 | |
105 | CommonVertex( E1, E2 : Edge from TopoDS; |
106 | V : out Vertex from TopoDS) |
107 | returns Boolean; |
108 | ---Purpose: Finds the vertex <V> common to the two edges |
109 | -- <E1,E2>, returns True if this vertex exists. |
110 | -- |
111 | -- Warning: <V> has sense only if the value <True> is returned |
112 | |
113 | end TopExp; |
114 | |
115 | |
116 | |