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
|
-- File: MakePln.cdl
-- Created: Wed Aug 26 14:30:57 1992
-- Author: Remi GILET
-- <reg@topsn3>
---Copyright: Matra Datavision 1992
class MakePln from gce inherits Root from gce
---Purpose : This class implements the following algorithms used
-- to create a Pln from gp.
-- * Create a Pln parallel to another and passing
-- through a point.
-- * Create a Pln passing through 3 points.
-- * Create a Pln by its normal.
-- Defines a non-persistent plane.
-- The plane is located in 3D space with an axis placement
-- two axis. It is the local coordinate system of the plane.
--
-- The "Location" point and the main direction of this axis
-- placement define the "Axis" of the plane. It is the axis
-- normal to the plane which gives the orientation of the
-- plane.
--
-- The "XDirection" and the "YDirection" of the axis
-- placement define the plane ("XAxis" and "YAxis") .
uses Pnt from gp,
Pln from gp,
Ax1 from gp,
Ax2 from gp,
Dir from gp,
Real from Standard
raises NotDone from StdFail
is
Create (A2 : Ax2 from gp) returns MakePln;
--- Purpose :
-- The coordinate system of the plane is defined with the axis
-- placement A2.
-- The "Direction" of A2 defines the normal to the plane.
-- The "Location" of A2 defines the location (origin) of the plane.
-- The "XDirection" and "YDirection" of A2 define the "XAxis" and
-- the "YAxis" of the plane used to parametrize the plane.
Create (P : Pnt from gp;
V : Dir from gp) returns MakePln;
--- Purpose :
-- Creates a plane with the "Location" point <P>
-- and the normal direction <V>.
Create (A, B, C, D : Real from Standard) returns MakePln;
--- Purpose :
-- Creates a plane from its cartesian equation :
-- A * X + B * Y + C * Z + D = 0.0
--- Purpose :
-- the status is "BadEquation" if Sqrt (A*A + B*B + C*C) <=
-- Resolution from gp.
Create(Pln : Pln from gp;
Point : Pnt from gp) returns MakePln;
---Purpose : Make a Pln from gp <ThePln> parallel to another
-- Pln <Pln> and passing through a Pnt <Point>.
Create(Pln : Pln from gp ;
Dist : Real from Standard) returns MakePln;
---Purpose : Make a Pln from gp <ThePln> parallel to another
-- Pln <Pln> at the distance <Dist> which can be greater
-- or less than zero.
-- In the first case the result is at the distance
-- <Dist> to the plane <Pln> in the direction of the
-- normal to <Pln>.
-- Otherwize it is in the opposite direction.
Create(P1 : Pnt from gp;
P2 : Pnt from gp;
P3 : Pnt from gp) returns MakePln;
---Purpose : Make a Pln from gp <ThePln> passing through 3
-- Pnt <P1>,<P2>,<P3>.
-- It returns false if <P1> <P2> <P3> are confused.
Create(P1 : Pnt from gp;
P2 : Pnt from gp) returns MakePln;
---Purpose : Make a Pln from gp <ThePln> perpendicular to the line
-- passing through <P1>,<P2>.
-- The status is "ConfusedPoints" if <P1> <P2> are confused.
Create(Axis : Ax1 from gp) returns MakePln;
---Purpose: Make a pln passing through the location of <Axis>and
-- normal to the Direction of <Axis>.
-- Warning - If an error occurs (that is, when IsDone returns
-- false), the Status function returns:
-- - gce_BadEquation if Sqrt(A*A + B*B +
-- C*C) is less than or equal to gp::Resolution(),
-- - gce_ConfusedPoints if P1 and P2 are coincident, or
-- - gce_ColinearPoints if P1, P2 and P3 are collinear.
Value(me) returns Pln from gp
raises NotDone
is static;
---C++: return const&
---Purpose: Returns the constructed plane.
-- Exceptions StdFail_NotDone if no plane is constructed.
Operator(me) returns Pln from gp
is static;
---C++: return const&
---C++: alias "Standard_EXPORT operator gp_Pln() const;"
fields
ThePln : Pln from gp;
--The solution from gp.
end MakePln;
|