0022048: Visualization, AIS_InteractiveContext - single object selection should alway...
[occt.git] / src / Draw / Draw.hxx
CommitLineData
42cf5bc1 1// Created on: 1991-04-24
2// Created by: Arnaud BOUZY
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 under
9// the terms of the GNU Lesser General Public License 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#ifndef _Draw_HeaderFile
18#define _Draw_HeaderFile
19
20#include <Standard.hxx>
21#include <Standard_DefineAlloc.hxx>
22#include <Standard_Handle.hxx>
23
24#include <Draw_Interpretor.hxx>
25#include <Standard_Boolean.hxx>
26#include <Standard_CString.hxx>
27#include <Standard_Real.hxx>
28#include <Standard_Integer.hxx>
29class TCollection_AsciiString;
30class Draw_Drawable3D;
31class Draw_ProgressIndicator;
32class Draw_Drawable3D;
33class Draw_Drawable2D;
34class Draw_Color;
35class Draw_Display;
36class Draw_Segment3D;
37class Draw_Segment2D;
38class Draw_Marker3D;
39class Draw_Marker2D;
40class Draw_Axis3D;
41class Draw_Axis2D;
42class Draw_Text3D;
43class Draw_Text2D;
44class Draw_Circle3D;
45class Draw_Circle2D;
46class Draw_Number;
47class Draw_Chronometer;
48class Draw_Grid;
49class Draw_Box;
50class Draw_ProgressIndicator;
51class Draw_Printer;
52
53
54//! MAQUETTE DESSIN MODELISATION
55class Draw
56{
57public:
58
59 DEFINE_STANDARD_ALLOC
60
61
62 Standard_EXPORT static void Load (Draw_Interpretor& theDI, const TCollection_AsciiString& theKey, const TCollection_AsciiString& theResourceFileName, TCollection_AsciiString& theDefaultsDirectory, TCollection_AsciiString& theUserDefaultsDirectory, const Standard_Boolean Verbose = Standard_False);
63
64 //! Sets a variable. Display it if <Disp> is true.
65 Standard_EXPORT static void Set (const Standard_CString Name, const Handle(Draw_Drawable3D)& D, const Standard_Boolean Disp);
66
67 //! Sets a variable, a null handle clear the
68 //! vartiable. Automatic display is context driven.
69 Standard_EXPORT static void Set (const Standard_CString Name, const Handle(Draw_Drawable3D)& D);
70
71 //! Sets a numeric variable.
72 Standard_EXPORT static void Set (const Standard_CString Name, const Standard_Real val);
e59839c8 73
74 //! Returns main DRAW interpretor.
75 Standard_EXPORT static Draw_Interpretor& GetInterpretor();
42cf5bc1 76
77 //! Returns a variable value. Null if the variable
78 //! does not exist, a warning is printed if Complain
79 //! is True.
80 //!
81 //! The name "." does a graphic selection. If the
82 //! selection is a variable <Name> is overwritten with
83 //! the name of the variable.
84 Standard_EXPORT static Handle(Draw_Drawable3D) Get (Standard_CString& Name, const Standard_Boolean Complain = Standard_True);
85
86 //! Gets a numeric variable. Returns True if the
87 //! variable exist.
88 Standard_EXPORT static Standard_Boolean Get (const Standard_CString Name, Standard_Real& val);
89
90 //! Sets a TCL sting variable
91 Standard_EXPORT static void Set (const Standard_CString Name, const Standard_CString val);
92
93 //! Converts numeric expression, that can involve DRAW
94 //! variables, to real value.
95 Standard_EXPORT static Standard_Real Atof (const Standard_CString Name);
96
97 //! Converts numeric expression, that can involve DRAW
98 //! variables, to integer value.
99 //! Implemented as cast of Atof() to integer.
100 Standard_EXPORT static Standard_Integer Atoi (const Standard_CString Name);
101
102 //! Returns last graphic selection description.
103 Standard_EXPORT static void LastPick (Standard_Integer& view, Standard_Integer& X, Standard_Integer& Y, Standard_Integer& button);
104
105 //! Asks to repaint the screen after the current command.
106 Standard_EXPORT static void Repaint();
107
108 //! sets progress indicator
109 Standard_EXPORT static void SetProgressBar (const Handle(Draw_ProgressIndicator)& thePI);
110
111 //! gets progress indicator
112 Standard_EXPORT static Handle(Draw_ProgressIndicator) GetProgressBar();
113
114 //! Defines all Draw commands
115 Standard_EXPORT static void Commands (Draw_Interpretor& I);
116
117 //! Defines Draw basic commands
118 Standard_EXPORT static void BasicCommands (Draw_Interpretor& I);
119
120 //! Defines Draw variables handling commands.
121 Standard_EXPORT static void VariableCommands (Draw_Interpretor& I);
122
123 //! Defines Draw variables handling commands.
124 Standard_EXPORT static void GraphicCommands (Draw_Interpretor& I);
125
126 //! Defines Loads Draw plugins commands.
127 Standard_EXPORT static void PloadCommands (Draw_Interpretor& I);
128
129 //! Defines Draw unit commands
130 Standard_EXPORT static void UnitCommands (Draw_Interpretor& I);
131
132
133
134
135protected:
136
137
138
139
140
141private:
142
143
144
145
146friend class Draw_Drawable3D;
147friend class Draw_Drawable2D;
148friend class Draw_Color;
149friend class Draw_Display;
150friend class Draw_Segment3D;
151friend class Draw_Segment2D;
152friend class Draw_Marker3D;
153friend class Draw_Marker2D;
154friend class Draw_Axis3D;
155friend class Draw_Axis2D;
156friend class Draw_Text3D;
157friend class Draw_Text2D;
158friend class Draw_Circle3D;
159friend class Draw_Circle2D;
160friend class Draw_Number;
161friend class Draw_Chronometer;
162friend class Draw_Grid;
163friend class Draw_Box;
164friend class Draw_ProgressIndicator;
165friend class Draw_Printer;
166
167};
168
169
170
171
172
173
174
175#endif // _Draw_HeaderFile