0024157: Parallelization of assembly part of BO
[occt.git] / src / TopOpeBRepBuild / TopOpeBRepBuild_AreaBuilder.cdl
1 -- Created on: 1995-12-21
2 -- Created by: Jean Yves LEBEY
3 -- Copyright (c) 1995-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
5 --
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
10 --
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 --
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
20
21
22 class AreaBuilder from TopOpeBRepBuild 
23
24 ---Purpose: 
25 --  The AreaBuilder algorithm is  used  to
26 --  reconstruct complex  topological objects as  Faces
27 --  or Solids.
28 --  * Loop is  the  composite topological object of
29 --  the boundary. Wire for a Face. Shell for a Solid.
30 --  *  LoopSet is a  tool describing the object  to
31 --  build.  It gives an iteration  on Loops.  For each
32 --  Loop it tells if it is on the boundary or if it is
33 --  an interference.
34 --  * LoopClassifier  is an algorithm  used to test
35 --  if a Loop is inside  another  Loop.
36 --  The  result of the  reconstruction is an iteration
37 --  on the reconstructed areas.  An  area is described
38 --  by a set of Loops.
39 --  A AreaBuilder is built with :
40 --    - a LoopSet describing the object to reconstruct.
41 --    - a LoopClassifier providing the classification algorithm.
42
43 uses
44
45     State from TopAbs,
46     Loop from TopOpeBRepBuild,
47     ListOfLoop from TopOpeBRepBuild,
48     ListIteratorOfListOfLoop from TopOpeBRepBuild,
49     ListOfListOfLoop from TopOpeBRepBuild,
50     ListIteratorOfListOfListOfLoop from TopOpeBRepBuild,
51     LoopSet from TopOpeBRepBuild,
52     LoopClassifier from TopOpeBRepBuild,
53     LoopEnum from TopOpeBRepBuild
54     
55 is
56
57     Create returns AreaBuilder;
58
59     Create(LS : in out LoopSet; LC : in out LoopClassifier;
60            ForceClass : Boolean = Standard_False) returns AreaBuilder;
61     ---Purpose: Creates a AreaBuilder to build the areas on
62     -- the shapes described by <LS> using the classifier <LC>.
63     
64     Delete(me:out) is virtual;
65     ---C++: alias "Standard_EXPORT virtual ~TopOpeBRepBuild_AreaBuilder(){Delete() ; }"
66     
67     InitAreaBuilder(me : in out;
68                     LS : in out LoopSet; LC : in out LoopClassifier;
69                     ForceClass : Boolean from Standard = Standard_False)
70     ---Purpose: Sets a AreaBuilder to find the areas on
71     -- the shapes described by <LS> using the classifier <LC>.
72     is virtual;
73
74     CompareLoopWithListOfLoop(me;
75                               LC  : in out LoopClassifier;
76                               L   : Loop;
77                               LOL : ListOfLoop;
78                               le  : LoopEnum) 
79     returns State from TopAbs is static protected;
80
81     Atomize(me;state : in out State from TopAbs; newstate : State from TopAbs)
82     is static protected;
83
84     InitArea(me : in out) returns Integer from Standard is static;
85     ---Purpose: Initialize iteration on areas.
86     MoreArea(me) returns Boolean from Standard is static;
87     NextArea(me : in out) is static;
88
89     InitLoop(me : in out) returns Integer from Standard is static;
90     ---Purpose: Initialize iteration on loops of current Area. 
91     MoreLoop(me) returns Boolean from Standard is static;
92     NextLoop(me : in out) is static;
93     Loop(me) returns Loop from TopOpeBRepBuild is static;
94     ---Purpose: Returns the current Loop in the current area.
95     ---C++: return const&
96     
97     ADD_Loop_TO_LISTOFLoop(me; L   : Loop;
98                                LOL : in out ListOfLoop;
99                                  s : Address = NULL) is virtual;
100
101     REM_Loop_FROM_LISTOFLoop(me; ITLOL : in out ListIteratorOfListOfLoop; 
102                                    LOL : in out ListOfLoop;
103                                      s : Address = NULL) is virtual;
104
105     ADD_LISTOFLoop_TO_LISTOFLoop(me; LOL1 : in out ListOfLoop;
106                                      LOL2 : in out ListOfLoop;
107                                        s  : Address = NULL;
108                                        s1 : Address = NULL;
109                                        s2 : Address = NULL) is virtual;
110
111 fields
112
113     myArea         : ListOfListOfLoop is protected;
114     myAreaIterator : ListIteratorOfListOfListOfLoop is protected;
115     myLoopIterator : ListIteratorOfListOfLoop is protected;
116     myUNKNOWNRaise : Boolean is protected;
117     
118 end AreaBuilder from TopOpeBRepBuild;