summaryrefslogtreecommitdiff
path: root/src/BRepAlgo/BRepAlgo.cdl
blob: 657a1549f6aa36991230b86fd19af83089d640ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
-- File:        BRepAlgo.cdl
-- Created:     Fri Jan 17 15:17:44 1997
-- Author:      Didier PIFFAULT
--              <dpf@motox.paris1.matra-dtv.fr>
-- Modified     David CARBONEL
--              <d-carbonel@aix.matra-dtv.fr>
--              Add of Sewing class		
---Copyright:    Matra Datavision 1997

package BRepAlgo

        ---Purpose: 
	-- The BRepAlgo package provides a full range of
	-- services to perform Old Boolean Operations in Open CASCADE. 
	--   Attention:
	-- The New Boolean Operation has replaced the Old
	-- Boolean Operations algorithm in the BrepAlgoAPI
	-- package in Open CASCADE.

uses
    BRep,
    BRepTools, 
    BRepBuilderAPI,
    Bnd,
    Standard,
    TCollection,
    TColStd,
    TopAbs,
    GeomAbs,
    GeomTools,
    Geom,
    Geom2d,
    gp,
    MMgt,
    TopExp,
    TopAbs,
    TopLoc,
    TColgp,
    TColStd,
    TCollection,
    TopoDS,
    TopTools,
    TopOpeBRepDS,
    TopOpeBRepBuild,
    TopOpeBRep,
    Adaptor3d, 
    StdFail, 
    BOP, 
    BOPTools, 
    BooleanOperations

is 
    enumeration CheckStatus is
      OK, NOK
    end CheckStatus;
     
    --BRepAlgoAPI  f 
    deferred class BooleanOperation; 
    class Fuse;  
    class Cut; 
    class Common;    
    class Section; 
    --BRepAlgoAPI  t 
    
    --
    --  Use of face topological builder
    --   
    class Loop;
    class Tool;
    class Image; 
    class AsDes;
    class FaceRestrictor;
        ---Purpose:Build all the faces limited with a set of non 
        --         jointing and planars wires
        --         The Wires must have correct orientations.
        --         
         
    class BooleanOperations;
        ---Purpose: 
    class DSAccess;
        ---Purpose: 
    class TopOpe;
        ---Purpose: 
    class EdgeConnector;
        ---Purpose: 
    class  NormalProjection; 
    	---Purpose: 
  --  class  Sewing; now it is in BRepBuilderAPI
    
    class DataMapOfShapeBoolean instantiates
        DataMap from TCollection(Shape          from TopoDS,
                                 Boolean        from Standard,
                                 ShapeMapHasher from TopTools);

    class DataMapOfShapeInterference instantiates
        DataMap from TCollection(Shape          from TopoDS,
                                 Interference   from TopOpeBRepDS,
                                 ShapeMapHasher from TopTools);

    class  SequenceOfSequenceOfInteger  instantiates   
        Sequence  from  TCollection(SequenceOfInteger  from  TColStd);

    ConcatenateWire(Wire   :   Wire  from TopoDS;
                    Option :   Shape from GeomAbs; 
                    AngularTolerance  :  Real  =  1.0e-4)         
    ---Purpose: this method makes a wire whose edges are C1 from
    --          a Wire whose edges could be G1. It removes a vertex
    --          between G1 edges.
    --          Option can be G1 or C1.
    returns Wire from TopoDS;

    --BRepAlgoAPI  f 

    IsValid(S: Shape from TopoDS) 
    	returns Boolean from Standard
	raises NullObject from Standard;
	---Purpose: Checks if the  shape is "correct". If not, returns
	--          <Standard_False>, else returns <Standard_True>.
    	
    IsValid(theArgs     : ListOfShape from TopTools;
    	    theResult   : Shape       from TopoDS;
    	    closedSolid : Boolean     from Standard = Standard_False;
    	    GeomCtrl    : Boolean     from Standard = Standard_True) 
    	returns Boolean from Standard; 
	---Purpose: Checks if  the  Generated and Modified Faces  from
	--          the shapes <arguments> in  the shape <result>  are
	--          "correct". The args   may be empty, then all faces
	--          will be checked. 
	--          If <Closed> is True,  only  closed shape are valid. 
	--           If <GeomCtrl>  is    False the geometry  of   new
	--            vertices and edges   are   not verified and  the
	--          auto-intersection of new wires are not searched.
    	
	 
    IsTopologicallyValid(S: Shape from TopoDS) 
    	returns Boolean from Standard
	raises NullObject from Standard;
	---Purpose: Checks if the shape is  "correct". If not, returns
	--          <Standard_False>,  else   returns <Standard_True>.
	--          This method differs from  the previous one in  the
	--          fact that no   geometric contols (intersection  of
	--          wires, pcurve validity) are performed.

    --BRepAlgoAPI  t     

end BRepAlgo;