30de00030bb42bd27dd7035cd8531d1ae844b140
[occt.git] / src / V3d / V3d_Plane.cdl
1 -- Created on: 1992-01-17
2 -- Created by: GG
3 -- Copyright (c) 1992-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
21 -- Modified:    GG 23/11/00 Add Display(),Erase(),IsDisplayed() methods
22
23
24 class Plane from V3d
25
26 inherits
27
28         TShared
29         ---Purpose: Defines the services of Plane type objects. Only
30         --          the creation and editing of the functions is dealt
31         --          with here.
32         -- Warning: The representation of the clipping plane must be
33         --          calculated by the application by means of Graphic3d.
34         --          Editing of this representation must be coherent with
35         --          respect to the position of the plane.
36
37 uses
38
39         View from V3d,
40         ClipPlane from Visual3d,
41         Structure from Graphic3d,
42         Parameter from Quantity,
43         Color from Quantity
44
45
46 raises
47
48         BadValue from V3d
49
50 is
51
52         --
53         -- The methods :
54         --
55
56         Create (A: Parameter = 0.0;
57                 B: Parameter = 0.0;
58                 C: Parameter = 1.0;
59                 D: Parameter = 0.0
60         )  returns mutable Plane
61         ---Level : Public
62         ---Purpose: Creates a clipping plane using the equation :
63         --          <A>*X + <B>*Y + <C>*Z + <D> = 0.0
64         raises BadValue from V3d;
65         ---Purpose:  Warning! raises BadValue from V3d
66         --          if the norm of the plane is NULL.
67
68         --------------------------------------------------------
69         ---Category: Methods to modify the Attributs of the Plane
70         --------------------------------------------------------
71
72         SetPlane( me : mutable; A,B,C,D : Parameter)
73         ---Level : Public
74         ---Purpose: Modifies the plane equation.
75         raises BadValue from V3d
76         ---Purpose:  Warning! raises BadValue from V3d
77         --          if the norm of the plane is NULL.
78         --      If the norm of the plane is NULL.
79         is static;
80
81         Display(me: mutable; aView: View from V3d;
82                              aColor: Color from Quantity= Quantity_NOC_GRAY)
83         ---Level : Public
84         ---Purpose: Display the plane representation
85         --          in the choosen view.
86         is virtual;
87
88         Erase(me: mutable) is static;
89         ---Level: Public
90         ---Purpose: Erase the plane representation.
91
92         ---------------------------------------------------
93         ---Category: Inquire methods
94         ---------------------------------------------------
95
96         Plane( me ; A,B,C,D : out Parameter )  is static;
97         ---Level : Public
98         ---Purpose: Returns the parameters of the plane .
99
100         IsDisplayed( me ) returns Boolean from Standard is static;
101         ---Level : Public
102         ---Purpose: Returns TRUE when the plane representation is displayed
103
104         -----------------------------------------
105         ---Category: Private or Protected methods
106         -----------------------------------------
107
108         Plane( me) returns mutable ClipPlane from Visual3d is static private ;
109         ---Level : Internal
110         ---Purpose: Returns the associated plane from Visual3d.
111
112         Update( me : mutable ) is static private;
113         ---Level : Internal
114         ---Purpose: Updates the the plane representation.
115
116
117 fields
118
119         MyPlane:        ClipPlane from Visual3d ;
120         MyGraphicStructure:     Structure from Graphic3d is protected;
121
122 friends
123
124         SetPlaneOn from class View from V3d ( me : mutable ),
125         SetPlaneOn from class View from V3d
126                                 ( me : mutable ; Plane : Plane from V3d ),
127         SetPlaneOff from class View from V3d ( me : mutable ),
128         SetPlaneOff from class View from V3d
129                                 ( me : mutable ; Plane : Plane from V3d )
130
131 end Plane;