Integration of OCCT 6.5.0 from SVN
[occt.git] / src / Bnd / Bnd_B2x.cdl
1 -- File:        Bnd_B2x.cdl
2 -- Created:     Thu Sep  8 17:39:16 2005
3 -- Author:      Alexander GRIGORIEV
4 --              <agv@opencascade.com>
5 ---Copyright:    Open Cascade 2005
6
7 generic class B2x from Bnd (RealType as any)
8
9 uses    XY      from gp,
10         Ax2d    from gp,
11         Pnt2d   from gp,
12         Trsf2d  from gp
13
14 is
15
16     Create returns B2x from Bnd;
17     ---Purpose: Empty constructor.
18     ---C++: inline
19
20     Create      (theCenter: XY from gp; theHSize : XY from gp)
21         returns B2x from Bnd;
22     ---Purpose: Constructor.
23     ---C++: inline
24
25     IsVoid      (me)
26         returns Boolean from Standard;
27     ---Purpose: Returns True if the box is void (non-initialized).
28     ---C++: inline
29
30     Clear       (me:in out);
31     ---Purpose: Reset the box data.
32     ---C++: inline
33
34     Add         (me:in out; thePnt: XY from gp);
35     ---Purpose: Update the box by a point.
36
37     Add         (me:in out; thePnt: Pnt2d from gp);
38     ---Purpose: Update the box by a point.
39
40     Add         (me:in out; theBox: B2x from Bnd);
41     ---Purpose: Update the box by another box.
42     ---C++: inline
43
44     CornerMin   (me)
45         returns XY from gp;
46     ---Purpose: Query a box corner: (Center - HSize). You must make sure that
47     --          the box is NOT VOID (see IsVoid()), otherwise the method returns
48     --          irrelevant result.
49     ---C++: inline
50
51     CornerMax   (me)
52         returns XY from gp;
53     ---Purpose: Query a box corner: (Center + HSize). You must make sure that
54     --          the box is NOT VOID (see IsVoid()), otherwise the method returns
55     --          irrelevant result.
56     ---C++: inline
57
58     SquareExtent(me)
59         returns Real from Standard;
60     ---Purpose: Query the square diagonal. If the box is VOID (see method IsVoid())
61     --          then a very big real value is returned.
62     ---C++: inline
63
64     Enlarge     (me:in out; theDiff: Real from Standard);
65     ---Purpose: Extend the Box by the absolute value of theDiff.
66     ---C++: inline
67
68     Limit       (me:in out; theOtherBox: B2x from Bnd)
69         returns Boolean from Standard;
70     ---Purpose: Limit the Box by the internals of theOtherBox.
71     --          Returns True if the limitation takes place, otherwise False
72     --          indicating that the boxes do not intersect. 
73
74     Transformed (me; theTrsf: Trsf2d from gp)
75         returns B2x from Bnd;
76     ---Purpose: Transform the bounding box with the given transformation.
77     --          The resulting box will be larger if theTrsf contains rotation.
78
79     IsOut       (me; thePnt: XY from gp)
80         returns Boolean from Standard;
81     ---Purpose: Check the given point for the inclusion in the Box.
82     --          Returns True if the point is outside.
83     ---C++: inline
84
85     IsOut       (me; theCenter     : XY from gp;
86                      theRadius     : Real from Standard;
87                      isCircleHollow: Boolean from Standard = Standard_False)
88         returns Boolean from Standard;
89     ---Purpose: Check a circle for the intersection with the current box.
90     --          Returns True if there is no intersection between boxes.
91
92     IsOut       (me; theOtherBox: B2x from Bnd)
93         returns Boolean from Standard;
94     ---Purpose: Check the given box for the intersection with the current box.
95     --          Returns True if there is no intersection between boxes.
96     ---C++: inline
97
98     IsOut       (me; theOtherBox: B2x from Bnd; theTrsf: Trsf2d from gp)
99         returns Boolean from Standard;
100     ---Purpose: Check the given box oriented by the given transformation
101     --          for the intersection with the current box.
102     --          Returns True if there is no intersection between boxes.
103
104     IsOut       (me; theLine: Ax2d from gp)
105         returns Boolean from Standard;
106     ---Purpose: Check the given Line for the intersection with the current box.
107     --          Returns True if there is no intersection.
108
109     IsOut       (me; theP0, theP1: XY from gp)
110         returns Boolean from Standard;
111     ---Purpose: Check the Segment defined by the couple of input points
112     --          for the intersection with the current box.
113     --          Returns True if there is no intersection.
114
115     IsIn        (me; theBox: B2x from Bnd)
116         returns Boolean from Standard;
117     ---Purpose: Check that the box 'this' is inside the given box 'theBox'. Returns
118     --          True if 'this' box is fully inside 'theBox'.
119     ---C++: inline
120
121     IsIn        (me; theBox: B2x from Bnd; theTrsf: Trsf2d from gp)
122         returns Boolean from Standard;
123     ---Purpose: Check that the box 'this' is inside the given box 'theBox'
124     --          transformed by 'theTrsf'. Returns True if 'this' box is fully
125     --          inside the transformed 'theBox'.
126
127     SetCenter   (me: in out; theCenter: XY from gp);
128     ---Purpose: Set the Center coordinates
129     ---C++: inline
130
131     SetHSize    (me: in out; theHSize: XY from gp);
132     ---Purpose: Set the HSize (half-diagonal) coordinates.
133     --          All components of theHSize must be non-negative.
134     ---C++: inline
135
136
137 fields
138
139     myCenter :  RealType[2]     is protected;
140     myHSize  :  RealType[2]     is protected;
141
142 end B2x from Bnd;