BALL  1.5.0
VIEW/KERNEL/common.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: common.h,v 1.40.16.4 2007/04/20 14:16:50 amoll Exp $
5 //
6 
7 #ifndef BALL_VIEW_KERNEL_COMMON_H
8 #define BALL_VIEW_KERNEL_COMMON_H
9 
10 #ifndef BALL_DATATYPE_STRING_H
11  #include <BALL/DATATYPE/string.h>
12 #endif
13 
14 #ifndef BALL_MATHS_VECTOR3
15  #include <BALL/MATHS/vector3.h>
16 #endif
17 
18 #ifndef BALL_CONCEPT_COMPOSITE_H
19  #include <BALL/CONCEPT/composite.h>
20 #endif
21 
22 #ifndef BALL_DATATYPE_REGULARDATA3D_H
24 #endif
25 
26 #include <QtCore/QEvent>
27 #include <QtWidgets/QColorDialog>
28 #include <QtWidgets/QLabel>
29 #include <QtGui/QDropEvent>
30 
31 namespace BALL
32 {
33  namespace VIEW
34  {
35 
36  class GeometricObject;
37  class MainControl;
38  class ColorRGBA;
39  class Camera;
40 
45 
50  #define VIEW_DEFAULT_PORT 20000
51 
54  #define BALL_ASSIGN_NAME(OBJ)\
55  OBJ->setObjectName(#OBJ);
56 
58 
64 
71  enum EventsIDs
72  {
74  MESSAGE_EVENT = 60000,
75 
78 
81 
84 
87 
90 
93 
96 
99  };
100 
102 
107 
110  {
113 
116 
119 
122  };
123 
125  #define BALL_VIEW_MAXIMAL_DRAWING_MODE 4
126 
129  {
132 
135 
138 
141 
144  };
145 
147  #define BALL_VIEW_MAXIMAL_DRAWING_PRECISION 4
148 
150  #define BALL_VIEW_MAXIMAL_DISPLAY_LIST_OBJECT_SIZE BALL_VIEW_MAXIMAL_DRAWING_PRECISION * BALL_VIEW_MAXIMAL_DRAWING_MODE
151 
154 
166  {
169 
172 
175 
178 
181 
184 
187 
190 
193 
196 
199 
200  // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
201  // add new model types before this comment!!!!
202  // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
203 
205  MODEL_LABEL = 100,
206 
209 
212 
215 
218 
221 
224 
227 
230 
233 
236  };
237 
238 
243  {
246 
249 
252 
255 
258 
261 
264 
267 
270 
273 
276 
279 
280  // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
281  // add new coloring types before this comment!!!!
282  // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
283 
286 
289  };
290 
296 
298 
301 
303  BALL_VIEW_EXPORT bool stringToVector3(const String& data, Vector3& v);
304 
307 
314 
317 
320 
323  : public QEvent
324  {
325  public:
326 
328  LogEvent();
329 
331  void setMessage(const String& msg) {message_ = msg;}
332 
334  String getMessage() {return message_;}
335 
337  bool isImportant() { return important_;}
338 
340  void setImportant(bool state) { important_ = state;}
341 
343  bool showOnlyInLogView() const { return only_log_;}
344 
346  void setShowOnlyInLogView(bool state) { only_log_ = state;}
347 
348  protected:
351  bool only_log_;
352  };
353 
355  BALL_VIEW_EXPORT void logString(const String& data);
356 
358  #define BALLVIEW_DEBUG logString(String("A problem occurred in ") + __FILE__ + " " + \
359  String(__LINE__) + ". Please notify us on GitHub: " + \
360  "https://github.com/ball-project/ball/issues\n");
361 
362 
363  BALL_VIEW_EXPORT void processDropEvent(QDropEvent* e);
364 
368  BALL_VIEW_EXPORT Camera focusCamera(Composite* composite);
369 
373  BALL_VIEW_EXPORT Camera focusCamera(const std::list<Vector3>& points);
374 
376  BALL_VIEW_EXPORT String ascii(const QString& str);
377 
379  BALL_VIEW_EXPORT ColorRGBA getColor(const QLabel* label);
380 
382  BALL_VIEW_EXPORT void setColor(const QLabel* label, const ColorRGBA& color);
383 
385  BALL_VIEW_EXPORT QColor chooseColor(QLabel* label);
386 
388  BALL_VIEW_EXPORT void setTextColor(QLabel* label, const ColorRGBA& color);
389 
393  BALL_VIEW_EXPORT void cubicInterpolation(const Vector3& a, const Vector3& b,
394  const Vector3& tangent_a, const Vector3& tangent_b,
395  std::vector<Vector3>& interpolated_values);
396 
399  extern float icosaeder_vertices[12][3];
400  extern Position icosaeder_indices[20][3];
401 
402  BALL_VIEW_EXPORT void subdivideTriangle(vector<Vector3>& results, Vector3& v1, Vector3& v2, Vector3& v3, Size precision);
403 
404  BALL_VIEW_EXPORT vector<Vector3> createSphere(Size precision);
405 
406  BALL_VIEW_EXPORT void calculateHistogramEqualization(const vector<float>& values, vector<float>& normalized_values, bool use_absolute_values = false);
407 
409  BALL_VIEW_EXPORT void calculateRandomPoints(const RegularData3D& grid, Size nr_points, vector<Vector3>& resulting_points);
410 
412 
413  } // namespace VIEW
414 } // namespace BALL
415 
416 #endif // BALL_VIEW_KERNEL_COMMON_H
BALL_VIEW_EXPORT String createFloatString(float value, Size precision)
create a string from a float and cut after a given number of digits after the dot ...
BALL_VIEW_EXPORT void processDropEvent(QDropEvent *e)
Event that encodes a 6 dimensional transformation.
BALL_VIEW_EXPORT float SurfaceDrawingPrecisions[4]
Mapping from the enum to the float values of Surfaces.
BALL_VIEW_EXPORT void setColor(const QLabel *label, const ColorRGBA &color)
DrawingMode
Enumeration for Drawing Modes.
Event posted by renderers after a new buffer is available.
BALL_VIEW_EXPORT bool stringToVector3(const String &data, Vector3 &v)
BALL_VIEW_EXPORT MainControl * getMainControl()
void setMessage(const String &msg)
bool isImportant()
will allways be shown in Statusbar or just when no other message shown?
BALL_VIEW_EXPORT Composite composite_to_be_ignored_for_colorprocessors_
defines the property for the model: Ball and Stick
defines the property for the model: H-Bonds
BALL_SIZE_TYPE Position
DrawingPrecision
Enumeration for Drawing Precisions.
void setShowOnlyInLogView(bool state)
#define BALL_VIEW_EXPORT
Definition: COMMON/global.h:52
defines the property for the model: Lines
Event for button press events of custom input devices.
BALL_VIEW_EXPORT String ascii(const QString &str)
Event to print output from a Thread.
BALL_VIEW_EXPORT QColor chooseColor(QLabel *label)
Event for passing BALL Messages accross threads.
defines the property for the model: solvent-accessible surface
defines the property for the model: Cartoon
BALL_VIEW_EXPORT void cubicInterpolation(const Vector3 &a, const Vector3 &b, const Vector3 &tangent_a, const Vector3 &tangent_b, std::vector< Vector3 > &interpolated_values)
BALL_VIEW_EXPORT vector< Vector3 > createSphere(Size precision)
defines the property for the model: contour surface
BALL_VIEW_EXPORT Vector3 getNormal(const Vector3 &v)
Event that encodes a head tracker position change.
Event that encodes a motion tracker position change.
BALL_VIEW_EXPORT Camera focusCamera(Composite *composite)
BALL_VIEW_EXPORT void logString(const String &data)
thread safe output to logview
float icosaeder_vertices[12][3]
Code to refine a icosaeder:
defines the property for the model: Ribbon
BALL_VIEW_EXPORT ColorRGBA getColor(const QLabel *label)
TRegularData3D< float > RegularData3D
defines the property for the model: proximity light
Position icosaeder_indices[20][3]
defines the property for the model: Label
BALL_VIEW_EXPORT void calculateHistogramEqualization(const vector< float > &values, vector< float > &normalized_values, bool use_absolute_values=false)
BALL_SIZE_TYPE Size
BALL_VIEW_EXPORT void subdivideTriangle(vector< Vector3 > &results, Vector3 &v1, Vector3 &v2, Vector3 &v3, Size precision)
Definition: constants.h:12
BALL_VIEW_EXPORT void calculateRandomPoints(const RegularData3D &grid, Size nr_points, vector< Vector3 > &resulting_points)
calcualte a random set of points, dependening of the field strength of a grid
bool showOnlyInLogView() const
only show in logview, no change to status bar
TVector3< float > Vector3
Definition: vector3.h:1084
double precision
Definition: classTest.h:30
BALL_VIEW_EXPORT String createTemporaryFilename()
Create a temporary filename in the users home dir.
defines the property for the model: solvent-excluded surface
Event class used for thread safe output to logview.
defines the property for the model: Stick
defines the property for the model: Van der Waals
void setImportant(bool state)
defines the property for the model: Backbone
BALL_VIEW_EXPORT String vector3ToString(const Vector3 &v)
Event for button press events of custom input devices.
BALL_VIEW_EXPORT void setTextColor(QLabel *label, const ColorRGBA &color)
An event with a contained VIEW message.