0024428: Implementation of LGPL license
[occt.git] / src / Bnd / Bnd.cdl
1 -- Created on: 1991-01-08
2 -- Created by: Didier Piffault
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
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 by  hl1 (juillet 96) : ajout de SeqOfBox
18
19
20
21
22 --------------------------------------------------------
23 ---              I n f o r m a t i o n               ---
24 ---                                                  ---
25 ---  The Bnd_Tool class is now in the package Intf.  ---
26 --------------------------------------------------------
27
28
29
30
31
32 package Bnd 
33
34         ---Purpose: Supports the Boundings Volumes.  A Bounding Volume
35         --          is used to bound a shape to optimising algorithms.
36         --          If  a point is  outside the Bounding   Volume of a
37         --          shape it is also  outside the shape.  The contrary
38         --          is not necessarily true.
39         --          
40         --          Various classes are  then implemented to  describe
41         --          the usual  Bounding volumes. Not  all  classes are
42         --          implemented.
43         --          
44         --          in 3D :
45         --          Box                -- Implemented
46         --          BoundSortBox       -- Implemented
47         --          
48         --          in 2D :
49         --          Box2d              -- Implemented
50         --          BoundSortBox2d     -- Implemented
51         --          
52         --          
53
54         ---Level : Public. 
55         --  All methods of all  classes will be public.
56
57         
58 uses    Standard,
59         TCollection,
60         TColStd,
61         gp,
62         MMgt
63
64
65 is  class Box;
66         ---Purpose: A box parallel to the main axes.
67         --          A 3D Bounding.
68     class Array1OfBox instantiates Array1 from TCollection
69                                    (Box from Bnd);
70     class HArray1OfBox instantiates HArray1 from TCollection
71                                    (Box from Bnd,
72                                     Array1OfBox from Bnd);
73
74    class Sphere;
75    class Array1OfSphere instantiates Array1 from TCollection
76                                      (Sphere from Bnd);
77    class HArray1OfSphere instantiates HArray1 from TCollection
78                                       (Sphere from Bnd,
79                                       Array1OfSphere from Bnd);
80
81
82     class Box2d;
83         ---Purpose: A rectangle parallel to the main axes.
84         --          A 2D Bounding.
85     class Array1OfBox2d instantiates Array1 from TCollection
86                                    (Box2d from Bnd);
87     class HArray1OfBox2d instantiates HArray1 from TCollection
88                                    (Box2d from Bnd,
89                                     Array1OfBox2d from Bnd);
90
91
92     class BoundSortBox2d;
93         ---Purpose: A tool to sort a set of Box2d  and compare with an
94         --          other Box2d to find the list of touched items.
95
96
97     class BoundSortBox;
98         ---Purpose: A tool to sort a  set of Box  and compare with  an
99         --          other Box to find the list of touched items.
100
101
102     class SeqOfBox instantiates Sequence from TCollection (Box from Bnd);
103         ---Purpose: This sequence used to store the bounding boxes of sub-Shapes.
104     
105     --- Optimized boxes (no Gap, no infinity supported)
106     generic class B2x;
107     generic class B3x;
108
109     class B2d instantiates B2x from Bnd (Real from Standard);
110     -- 2D box with double-precision coordinates
111
112     class B2f instantiates B2x from Bnd (ShortReal from Standard);
113     -- 2D box with single-precision coordinates
114
115     class B3d instantiates B3x from Bnd (Real from Standard);
116     -- 3D box with double-precision coordinates
117
118     class B3f instantiates B3x from Bnd (ShortReal from Standard);
119     -- 3D box with single-precision coordinates
120
121 end Bnd;