b311480e |
1 | -- Created on: 1993-07-21 |
2 | -- Created by: Remi LEQUETTE |
3 | -- Copyright (c) 1993-1999 Matra Datavision |
4 | -- Copyright (c) 1999-2012 OPEN CASCADE SAS |
5 | -- |
6 | -- The content of this file is subject to the Open CASCADE Technology Public |
7 | -- License Version 6.5 (the "License"). You may not use the content of this file |
8 | -- except in compliance with the License. Please obtain a copy of the License |
9 | -- at http://www.opencascade.org and read it completely before using this file. |
10 | -- |
11 | -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its |
12 | -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. |
13 | -- |
14 | -- The Original Code and all software distributed under the License is |
15 | -- distributed on an "AS IS" basis, without warranty of any kind, and the |
16 | -- Initial Developer hereby disclaims all such warranties, including without |
17 | -- limitation, any warranties of merchantability, fitness for a particular |
18 | -- purpose or non-infringement. Please see the License for the specific terms |
19 | -- and conditions governing the rights and limitations under the License. |
20 | |
7fd59977 |
21 | |
22 | |
23 | class MakeCone from BRepPrimAPI inherits MakeOneAxis from BRepPrimAPI |
24 | |
25 | ---Purpose: Describes functions to build cones or portions of cones. |
26 | -- A MakeCone object provides a framework for: |
27 | -- - defining the construction of a cone, |
28 | -- - implementing the construction algorithm, and |
29 | -- - consulting the result. |
30 | |
31 | uses |
32 | Ax2 from gp, |
33 | Cone from BRepPrim, |
34 | OneAxis from BRepPrim |
35 | |
36 | raises |
37 | DomainError from Standard |
38 | |
39 | is |
40 | Create(R1, R2, H : Real) |
41 | returns MakeCone from BRepPrimAPI |
42 | ---Purpose: Make a cone of height H radius R1 in the plane z = |
43 | -- 0, R2 in the plane Z = H. R1 and R2 may be null. |
44 | ---Level: Public |
45 | raises |
46 | DomainError from Standard; -- if H <= Precision::Confusion() |
47 | |
48 | Create(R1, R2, H, angle : Real) |
49 | returns MakeCone from BRepPrimAPI |
50 | ---Purpose: Make a cone of height H radius R1 in the plane z = |
51 | -- 0, R2 in the plane Z = H. R1 and R2 may be null. |
52 | -- Take a section of <angle> |
53 | ---Level: Public |
54 | raises |
55 | DomainError from Standard; -- if H <= Precision::Confusion() |
56 | |
57 | Create(Axes : Ax2 from gp; R1, R2, H : Real) |
58 | returns MakeCone from BRepPrimAPI |
59 | ---Purpose: Make a cone of height H radius R1 in the plane z = |
60 | -- 0, R2 in the plane Z = H. R1 and R2 may be null. |
61 | ---Level: Public |
62 | raises |
63 | DomainError from Standard; -- if H <= Precision::Confusion() |
64 | |
65 | Create(Axes : Ax2 from gp; R1, R2, H, angle : Real) |
66 | returns MakeCone from BRepPrimAPI |
67 | ---Purpose: Make a cone of height H radius R1 in the plane z = |
68 | -- 0, R2 in the plane Z = H. R1 and R2 may be null. |
69 | -- Take a section of <angle> |
70 | ---Level: Public |
71 | raises |
72 | DomainError from Standard; -- if H <= Precision::Confusion() |
73 | |
74 | ---Purpose: Constructs a cone, or a portion of a cone, of height H, |
75 | -- and radius R1 in the plane z = 0 and R2 in the plane |
76 | -- z = H. The result is a sharp cone if R1 or R2 is equal to 0. |
77 | -- The cone is constructed about the "Z Axis" of either: |
78 | -- - the global coordinate system, or |
79 | -- - the local coordinate system Axes. |
80 | -- It is limited in these coordinate systems as follows: |
81 | -- - in the v parametric direction (the Z coordinate), by |
82 | -- the two parameter values 0 and H, |
83 | -- - and in the u parametric direction (defined by the |
84 | -- angle of rotation around the Z axis), in the case of a |
85 | -- portion of a cone, by the two parameter values 0 and |
86 | -- angle. Angle is given in radians. |
87 | -- The resulting shape is composed of: |
88 | -- - a lateral conical face |
89 | -- - two planar faces in the planes z = 0 and z = H, |
90 | -- or only one planar face in one of these two planes if a |
91 | -- radius value is null (in the case of a complete cone, |
92 | -- these faces are circles), and |
93 | -- - and in the case of a portion of a cone, two planar |
94 | -- faces to close the shape. (either two parallelograms or |
95 | -- two triangles, in the planes u = 0 and u = angle). |
96 | -- Exceptions |
97 | -- Standard_DomainError if: |
98 | -- - H is less than or equal to Precision::Confusion(), or |
99 | -- - the half-angle at the apex of the cone, defined by |
100 | -- R1, R2 and H, is less than Precision::Confusion()/H, or greater than |
101 | -- (Pi/2)-Precision::Confusion()/H.f |
102 | |
103 | OneAxis(me : in out) returns Address; |
104 | ---Purpose: Returns the algorithm. |
105 | ---Level: Public |
106 | |
107 | Cone(me : in out) returns Cone from BRepPrim |
108 | ---Purpose: Returns the algorithm. |
109 | -- |
110 | ---C++: return & |
111 | ---Level: Public |
112 | is static; |
113 | |
114 | fields |
115 | |
116 | myCone : Cone from BRepPrim; |
117 | |
118 | end MakeCone; |