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