0021762: Integration of new Boolean Operation algorithm to OCCT.
[occt.git] / src / BRepAlgo / BRepAlgo.cdl
1 -- Created on: 1997-01-17
2 -- Created by: Didier PIFFAULT
3 -- Copyright (c) 1997-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 -- Modified     David CARBONEL
22 --              Add of Sewing class 
23
24 package BRepAlgo
25
26         ---Purpose: 
27         -- The BRepAlgo package provides a full range of
28         -- services to perform Old Boolean Operations in Open CASCADE. 
29         --   Attention:
30         -- The New Boolean Operation has replaced the Old
31         -- Boolean Operations algorithm in the BrepAlgoAPI
32         -- package in Open CASCADE.
33
34 uses
35     BRep,
36     BRepTools, 
37     BRepBuilderAPI,
38     Bnd,
39     Standard,
40     TCollection,
41     TColStd,
42     TopAbs,
43     GeomAbs,
44     GeomTools,
45     Geom,
46     Geom2d,
47     gp,
48     MMgt,
49     TopExp,
50     TopAbs,
51     TopLoc,
52     TColgp,
53     TColStd,
54     TCollection,
55     TopoDS,
56     TopTools,
57     TopOpeBRepDS,
58     TopOpeBRepBuild,
59     TopOpeBRep,
60     Adaptor3d, 
61     StdFail
62
63 is 
64     enumeration CheckStatus is
65       OK, NOK
66     end CheckStatus;
67      
68     --BRepAlgoAPI  f 
69     deferred class BooleanOperation; 
70     class Fuse;  
71     class Cut; 
72     class Common;    
73     class Section; 
74     --BRepAlgoAPI  t 
75     
76     --
77     --  Use of face topological builder
78     --   
79     class Loop;
80     class Tool;
81     class Image; 
82     class AsDes;
83     class FaceRestrictor;
84         ---Purpose:Build all the faces limited with a set of non 
85         --         jointing and planars wires
86         --         The Wires must have correct orientations.
87         --         
88          
89     class BooleanOperations;
90         ---Purpose: 
91     class DSAccess;
92         ---Purpose: 
93     class EdgeConnector;
94         ---Purpose: 
95     class  NormalProjection; 
96             ---Purpose: 
97   --  class  Sewing; now it is in BRepBuilderAPI
98     
99     class DataMapOfShapeBoolean instantiates
100         DataMap from TCollection(Shape          from TopoDS,
101                                  Boolean        from Standard,
102                                  ShapeMapHasher from TopTools);
103
104     class DataMapOfShapeInterference instantiates
105         DataMap from TCollection(Shape          from TopoDS,
106                                  Interference   from TopOpeBRepDS,
107                                  ShapeMapHasher from TopTools);
108
109     class  SequenceOfSequenceOfInteger  instantiates   
110         Sequence  from  TCollection(SequenceOfInteger  from  TColStd);
111
112     ConcatenateWire(Wire   :   Wire  from TopoDS;
113                     Option :   Shape from GeomAbs; 
114                     AngularTolerance  :  Real  =  1.0e-4)         
115     ---Purpose: this method makes a wire whose edges are C1 from
116     --          a Wire whose edges could be G1. It removes a vertex
117     --          between G1 edges.
118     --          Option can be G1 or C1.
119     returns Wire from TopoDS;
120
121     --BRepAlgoAPI  f 
122
123     IsValid(S: Shape from TopoDS) 
124             returns Boolean from Standard
125         raises NullObject from Standard;
126         ---Purpose: Checks if the  shape is "correct". If not, returns
127         --          <Standard_False>, else returns <Standard_True>.
128             
129     IsValid(theArgs     : ListOfShape from TopTools;
130                 theResult   : Shape       from TopoDS;
131                 closedSolid : Boolean     from Standard = Standard_False;
132                 GeomCtrl    : Boolean     from Standard = Standard_True) 
133             returns Boolean from Standard; 
134         ---Purpose: Checks if  the  Generated and Modified Faces  from
135         --          the shapes <arguments> in  the shape <result>  are
136         --          "correct". The args   may be empty, then all faces
137         --          will be checked. 
138         --          If <Closed> is True,  only  closed shape are valid. 
139         --           If <GeomCtrl>  is    False the geometry  of   new
140         --            vertices and edges   are   not verified and  the
141         --          auto-intersection of new wires are not searched.
142             
143          
144     IsTopologicallyValid(S: Shape from TopoDS) 
145             returns Boolean from Standard
146         raises NullObject from Standard;
147         ---Purpose: Checks if the shape is  "correct". If not, returns
148         --          <Standard_False>,  else   returns <Standard_True>.
149         --          This method differs from  the previous one in  the
150         --          fact that no   geometric contols (intersection  of
151         --          wires, pcurve validity) are performed.
152
153     --BRepAlgoAPI  t     
154
155 end BRepAlgo;