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 
235  MODEL_UNKNOWN = 200
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 
288  COLORING_UNKNOWN = 200
289  };
290 
296 
298 
301 
304 
307 
314 
317 
320 
323  : public QEvent
324  {
325  public:
326 
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 
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 
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 
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
Definition: constants.h:13
double precision
Definition: classTest.h:30
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 Composite composite_to_be_ignored_for_colorprocessors_
BALL_VIEW_EXPORT Vector3 getNormal(const Vector3 &v)
Position icosaeder_indices[20][3]
BALL_VIEW_EXPORT void subdivideTriangle(vector< Vector3 > &results, Vector3 &v1, Vector3 &v2, Vector3 &v3, Size precision)
BALL_VIEW_EXPORT void setColor(const QLabel *label, const ColorRGBA &color)
BALL_VIEW_EXPORT QColor chooseColor(QLabel *label)
DrawingPrecision
Enumeration for Drawing Precisions.
float icosaeder_vertices[12][3]
Code to refine a icosaeder:
BALL_VIEW_EXPORT Camera focusCamera(Composite *composite)
BALL_VIEW_EXPORT String createTemporaryFilename()
Create a temporary filename in the users home dir.
BALL_VIEW_EXPORT ColorRGBA getColor(const QLabel *label)
BALL_VIEW_EXPORT String vector3ToString(const Vector3 &v)
BALL_VIEW_EXPORT void processDropEvent(QDropEvent *e)
BALL_VIEW_EXPORT String ascii(const QString &str)
BALL_VIEW_EXPORT void calculateHistogramEqualization(const vector< float > &values, vector< float > &normalized_values, bool use_absolute_values=false)
BALL_VIEW_EXPORT float SurfaceDrawingPrecisions[4]
Mapping from the enum to the float values of Surfaces.
BALL_VIEW_EXPORT vector< Vector3 > createSphere(Size precision)
@ LOG_EVENT
Event to print output from a Thread.
@ MESSAGE_EVENT
An event with a contained VIEW message.
@ BUTTON_RELEASE_EVENT
Event for button press events of custom input devices.
@ BUTTON_PRESS_EVENT
Event for button press events of custom input devices.
@ TRANSFORMATION_EVENT_6D
Event that encodes a 6 dimensional transformation.
@ MOTIONTRACKING_EVENT
Event that encodes a motion tracker position change.
@ NOTIFICATION_EVENT
Event for passing BALL Messages accross threads.
@ HEADTRACKING_EVENT
Event that encodes a head tracker position change.
@ RENDER_TO_BUFFER_FINISHED_EVENT
Event posted by renderers after a new buffer is available.
DrawingMode
Enumeration for Drawing Modes.
@ MODEL_STICK
defines the property for the model: Stick
@ MODEL_BALL_AND_STICK
defines the property for the model: Ball and Stick
@ MODEL_RIBBON
defines the property for the model: Ribbon
@ MODEL_SA_SURFACE
defines the property for the model: solvent-accessible surface
@ MODEL_CONTOUR_SURFACE
defines the property for the model: contour surface
@ MODEL_VDW
defines the property for the model: Van der Waals
@ MODEL_UNKNOWN
unkown property
@ MODEL_PROXIMITY_LIGHT
defines the property for the model: proximity light
@ MODEL_CARTOON
defines the property for the model: Cartoon
@ MODEL_LINES
defines the property for the model: Lines
@ MODEL_SE_SURFACE
defines the property for the model: solvent-excluded surface
@ MODEL_BACKBONE
defines the property for the model: Backbone
@ MODEL_HBONDS
defines the property for the model: H-Bonds
@ MODEL_LABEL
defines the property for the model: Label
BALL_VIEW_EXPORT bool stringToVector3(const String &data, Vector3 &v)
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
BALL_VIEW_EXPORT void logString(const String &data)
thread safe output to logview
BALL_VIEW_EXPORT void setTextColor(QLabel *label, const ColorRGBA &color)
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 MainControl * getMainControl()
Event class used for thread safe output to logview.
void setMessage(const String &msg)
void setImportant(bool state)
bool isImportant()
will allways be shown in Statusbar or just when no other message shown?
bool showOnlyInLogView() const
only show in logview, no change to status bar
void setShowOnlyInLogView(bool state)
#define BALL_VIEW_EXPORT
Definition: COMMON/global.h:52