0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / BRep / BRep.cdl
1 -- Created on: 1991-06-27
2 -- Created by: Remi LEQUETTE
3 -- Copyright (c) 1991-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 under
9 -- the terms of the GNU Lesser General Public License 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 package BRep 
18
19         ---Purpose: This package describes  a Boundary  Representation
20         --          Data   Structure   inherited  from   the  abstract
21         --          Topology   defined  in the   TopoDS  package.  The
22         --          geometric data are provided by the Geom and Geom2d
23         --          packages.
24         --          
25         --          The TVertex,  TEdge,  and TFace  are  redefined in
26         --          this package to add geometric information.
27
28         ---Level : Public  
29         --  All methods of all  classes will be public.
30
31 uses
32     MMgt,        -- Memory management
33     TCollection, -- Basic data structures
34     TColStd,     -- HArray1OfInteger
35     gp,          -- Elementary geometry
36     Bnd,         -- Bounding boxes
37     TopLoc,      -- Local coordinate systems
38     TopAbs,      -- Enumerations : Orientation, ShapeType
39     TopoDS,      -- Abstract topological data structure
40     GeomAbs,     -- Enumerations : Shape
41     Geom,        -- 3D geometry : curves and surfaces
42     Geom2d,      -- 2D geometry : curves in parametric space
43     Poly         -- Triangulations and Polygons
44
45 is
46
47     --
48     --  Face
49     --  
50
51     class TFace;
52
53     --
54     --  Edge
55     --
56     --  An Edge is  defined by a list  of curve representations  which
57     --  are either :
58     --  
59     --  Geometric representations :
60     --  
61     --  * A 3d curve (at most one)
62     --  
63     --  * A curve on surface, curve in parametric space.
64     --  
65     --  * A curve on closed surface, two curves in parametric space.
66     --  
67     --  Polygonal representations :
68     --  
69     --  * A 3d polygon (at most one).
70     --  
71     --  * A Polygon on triangulation (array of node indices)
72     --  
73     --  * A Polygon on closed triangulation (2 arrays of node indices)
74     --  
75     --  * A polygon on surface (array of 2d points in parametric space)
76     --  
77     --  Curve on 2 surfaces :
78     --  
79     --  * This is used for storing shape continuity.
80     --  
81
82     deferred class CurveRepresentation;
83
84     imported ListOfCurveRepresentation;
85
86     imported ListIteratorOfListOfCurveRepresentation;
87     
88     deferred class GCurve;
89
90     class Curve3D;
91
92     class CurveOnSurface;
93
94     class CurveOnClosedSurface;
95
96     class Polygon3D;
97
98     class PolygonOnTriangulation;
99
100     class PolygonOnClosedTriangulation;
101
102     class PolygonOnSurface;
103
104     class PolygonOnClosedSurface;
105
106     class CurveOn2Surfaces;
107
108     class TEdge;
109
110     --
111     --  Vertex
112     --
113
114     deferred class PointRepresentation;
115
116     imported ListOfPointRepresentation;
117
118     imported ListIteratorOfListOfPointRepresentation;
119     
120     class PointOnCurve;
121
122     deferred class PointsOnSurface;
123
124     class PointOnCurveOnSurface;
125
126     class PointOnSurface;
127
128     class TVertex;
129
130     class Builder;
131
132     class Tool;
133
134
135 end BRep;