BALL  1.5.0
scene.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 #ifndef BALL_VIEW_WIDGETS_SCENE_H
6 #define BALL_VIEW_WIDGETS_SCENE_H
7 
8 #ifndef BALL_VIEW_KERNEL_MODULARWIDGET_H
10 #endif
11 
12 #ifndef BALL_VIEW_RENDERING_RENDERERSGLRENDERER_H
14 #endif
15 
16 #ifndef BALL_VIEW_KERNEL_COMMON_H
17 # include <BALL/VIEW/KERNEL/common.h>
18 #endif
19 
20 #ifndef BALL_VIEW_RENDERING_RENDERWINDOW_H
22 #endif
23 
24 #ifndef BALL_VIEW_RENDERING_GLRENDERWINDOW_H
26 #endif
27 
28 #ifndef BALL_VIEW_RENDERING_RENDERSETUP_H
30 #endif
31 
32 #ifndef BALL_VIEW_DIALOGS_EDITSETTINGS_H
34 #endif
35 
36 #ifndef BALL_VIEW_KERNEL_EDITOPERATION_H
38 #endif
39 
40 #ifndef BALL_VIEW_KERNEL_MODES_INTERACTIONMODEMANAGER_H
42 #endif
43 
44 #include <QtCore/QThread>
45 #include <QtCore/QTimer>
46 #include <QtGui/QDragEnterEvent>
47 #include <QtGui/QDropEvent>
48 #include <QtWidgets/QToolBar>
49 #include <QtGui/QFont>
50 #include <QtGui/QPicture>
51 
52 #include <boost/shared_ptr.hpp>
53 
54 #ifdef BALL_HAS_RTFACT
55 
56 #ifndef BALL_VIEW_RENDERING_RAYTRACINGRENDERER_H
58 #endif
59 
60 #endif // BALL_HAS_RTFACT
61 
62 class QMouseEvent;
63 class QRubberBand;
64 class QMenu;
65 class QImage;
66 class QAction;
67 class QWheelEvent;
68 class QKeyEvent;
69 
70 namespace BALL
71 {
72  class Bond;
73  class PDBAtom;
74  class AtomContainer;
75 
76  namespace VIEW
77  {
78  class ColorMap;
79  class InteractionMode;
80  class Preferences;
81  class LightSettings;
82  class StageSettings;
83  class MaterialSettings;
84  class AnimationThread;
85  class ClippingPlane;
86  class CompositeMessage;
87  class ControlSelectionMessage;
88  class RepresentationMessage;
89  class DatasetMessage;
90  class SceneMessage;
91 
92  class TransformationEvent6D;
93  class MotionTrackingEvent;
94  class ButtonEvent;
95  class RenderToBufferFinishedEvent;
96 
139  : public QWidget,
140  public ModularWidget
141  {
142  friend class AnimationThread;
143  friend class RenderSetup;
144 
145 #ifdef BALL_HAS_RTFACT
146  typedef boost::shared_ptr<RaytracingRenderer> RaytracingRendererPtr;
147  typedef boost::shared_ptr<RenderWindow> RaytracingWindowPtr;
148 #endif
149 
150  Q_OBJECT
151 
152  public:
154 
155 
158 
165  {
167  CONTROL_WINDOW = 0,
168 
171 
173  RIGHT_EYE_WINDOW
174  };
175 
179 
190  Scene(QWidget* parent_widget = 0, const char* name = NULL, Qt::WindowFlags w_flags = 0);
191 
194  virtual ~Scene();
195 
204  virtual void clear();
205 
207 
209 
212 
219  virtual void onNotify(Message *message);
220 
223  virtual bool exportScene(Renderer &er) const;
224 
226 
228 
231 
241  virtual void initializeWidget(MainControl& main_control);
242 
244  virtual void fetchPreferences(INIFile& inifile);
245 
247  virtual void writePreferences(INIFile& inifile);
248 
259  virtual void checkMenu(MainControl& main_control);
260 
262 
265 
269  virtual bool isValid() const;
270 
277  virtual void dump(std::ostream& s = std::cout, Size depth = 0) const;
278 
279  void setInfo(const QString& info_string);
280  bool isRecording() const;
282  Atom* getCurrentAtom() { return current_atom_; }
283  void setCurrentAtom(Atom* atom) { current_atom_ = atom; }
284  void notify(Message* msg) { notify_(msg); }
287  Vector3 mapViewportTo3D(int x, int y);
288  void setRubberBandGeometry(const QRect& rect);
289  void setRubberBandVisible(bool show);
290  void pickObjects(const QPoint& pos, list<GeometricObject*>& objects);
291  void pickObjects(const QPoint& pos1, const QPoint& pos2, list<GeometricObject*>& objects);
292  void merge(Composite* a1, Composite* a2);
293  std::list<AtomContainer*> getContainers();
296 
297  void drawLine(const QPointF& a, const QPointF& b, QPainter* painter = 0);
298  void drawLine(const Vector2& a, const Vector2& b, QPainter* painter = 0);
299 
300  Bond* getCurrentBond() { return current_bond_; }
301  void setCurrentBond(Bond* b) { current_bond_ = b; }
302 
304  void changeBondOrder(Index delta);
305  void activatedOrderItem_(QAction* action);
308 
309  void deselect(bool update=true);
310  void getClickedItems(const QPoint& p);
311 
314  { return stage_;}
315 
317  const Stage* getStage() const
318  { return stage_;}
319 
322  { return stage_settings_; }
323 
326  { return stage_settings_; }
327 
330  { return material_settings_; }
331 
334  { return material_settings_; }
335 
337  void setCamera(const Camera& camera);
338 
340  std::list<Camera>& getAnimationPoints()
341  { return animation_points_;}
342 
344  static void setAnimationSmoothness(float value)
345  { animation_smoothness_ = value;}
346 
348  static float getAnimationSmoothness()
349  { return animation_smoothness_;}
350 
352  float getDownsamplingFactor() const
353  { return downsampling_factor_;}
354 
356  void setDownsamplingFactor(float ds_factor);
357 
359  void setDefaultLighting(bool update_GL = true);
360 
362  BALL_DEPRECATED static void setMouseSensitivity(float /* sensitivity */) {}
363 
365  BALL_DEPRECATED static float getMouseSensitivity() { return 0; }
366 
368  BALL_DEPRECATED static void setMouseWheelSensitivity(float /* sensitivity */) {}
369 
371  BALL_DEPRECATED static float getMouseWheelSensitivity() { return 0; }
372 
374  static void setShowLightSources(bool state)
375  { show_light_sources_ = state;}
376 
379  { return show_light_sources_;}
380 
383  { return *gl_renderer_;}
384 
385 #ifdef BALL_HAS_RTFACT
386  RaytracingRenderer& getRaytracingRenderer()
388  { return *rt_renderer_;}
389 #endif
390 
395  void setGLRenderer(GLRenderer& renderer);
396 
398  static bool stereoBufferSupportTest();
399 
401  bool inMoveMode() const;
402 
404  bool exportPNG(const String& filename);
405 
407  virtual void setWidgetVisible(bool state);
408 
410  void setOffScreenRendering(bool enabled, Size factor);
411 
413  virtual void paintEvent(QPaintEvent* e);
414 
416  virtual bool eventFilter(QObject* object, QEvent* event);
417 
419  virtual void projectionModeChanged();
420 
422  static void setScreenShotNumber(Position pos) { screenshot_nr_ = pos;}
423 
425  static void setPOVNumber(Position pos) { pov_nr_ = pos;}
426 
428  static void setVRMLNumber(Position pos) {vrml_nr_ = pos;}
429 
431  void rotate(float degree_right, float degree_up);
432 
434  void rotateClockwise(float degree);
435 
441  void move(Vector3 v);
442 
443  // TODO: move this and the next function somewhere else...
449  void moveComposites(const std::list<Composite*>& composites, Vector3 v);
450 
456  void rotateComposites(const std::list<Composite*>& composites, float degree_right, float degree_up, float degree_clockwise = 0);
457 
459  bool isAnimationRunning() const;
460 
462  void setTurnPoint(const Vector3& v) { system_origin_ = v;}
463 
465  const Vector3& getTurnPoint() const { return system_origin_;}
466 
468  void setFullScreen(bool state);
469 
471  void setFPSEnabled(bool state) { show_fps_ = state; }
472 
476  void showText(const String& text, Size font_size = 20);
477 
479  bool isUpdateRunning() const { return update_running_;}
480 
481  void resetTracking() {tracking_initialized_ = false;}
482 
483  // TODO: this pretty hacky!
485 
487 
488  void lightsUpdated(bool redraw = false);
489 
491  void setupEnvironmentMap(const QImage& image);
492 
494 
495  void updateGL();
498 
501 
503  virtual void applyPreferences();
504 
506  void showContextMenu(QPoint pos);
507 
508  // Allow to use the base class setCursor, too
509  using QWidget::setCursor;
510 
513 
515  void setElementCursor(int number);
516 
518  virtual void addToolBarEntries(QToolBar* tb);
519 
521  virtual void keyPressEvent(QKeyEvent* e);
522 
524  public Q_SLOTS:
527 
530 
533 
535  void exportPOVRay();
536 
539 
541  void printScene();
542 
545 
548 
550  void setPreview(bool state) { use_preview_ = state; }
551 
553  bool usePreview() const { return use_preview_; }
554 
555  bool useVertexBuffers() const { return want_to_use_vertex_buffer_; }
556 
560  virtual void switchShowWidget();
561 
564 
566  void addGlWindow();
567 
568 #ifdef BALL_HAS_RTFACT
569  void addRTfactWindow();
571 #endif
572 
574  void exitStereo();
575 
577  void enterStereo();
578 
581 
584 
587 
590 
593 
596 
599 
602 
604  void showInfos();
605 
608 
611 
614 
617 
620 
623 
626 
627 #ifdef BALL_HAS_RTFACT
628  RaytracingWindowPtr getWindow(WindowType aWindowType);
629 #endif
630 
635 
636  // slots for communication with PTEDialog
637  void setEditElementType(int element_number);
639 
642 
644  protected Q_SLOTS:
645 
649 
652  virtual void showViewPoint_();
654 
656  virtual void setViewPoint_();
657 
659  virtual void resetCamera_();
660 
665 
667  virtual void dropEvent(QDropEvent* e);
668 
670  virtual void dragEnterEvent(QDragEnterEvent* e);
671 
672  // dummy slot for menu entries without immediate action (saves many lines code this way)
673  void dummySlot(){}
674 
676 
678  Q_SIGNALS:
679 
680  // signal for communication with EditOperationDialog
682 
684  protected:
685 
689 
693 
697 
701 
705 
709 
714  void renderText_(QPointF const& point, QString const& text, QPaintDevice* current_dev);
715 
721  void insert_(int x_, int y_, PDBAtom &atom_);
722 
728 
730 
731  void renderGrid_();
732 
733  QAction *new_molecule_action_, *optimize_action_;
736 
739 
740  // pick atoms/bonds only in highlighted AtomContainer?
741  static bool only_highlighted_;
742  // element for new atoms
744 
745  //undo stack
746  vector<EditOperation> undo_;
749 
753 
756  virtual void init();
757 
764  virtual void paintGL();
765 
772  virtual void resizeEvent(QResizeEvent* event);
773 
779  virtual void customEvent(QEvent* evt);
780 
785 
790 
794  virtual void buttonPressEvent(ButtonEvent* evt);
795 
799  virtual void buttonReleaseEvent(ButtonEvent* evt);
800 
805  virtual void mouseMoveEvent(QMouseEvent* qmouse_event);
806 
811  virtual void mousePressEvent(QMouseEvent* qmouse_event);
812 
817  virtual void mouseReleaseEvent(QMouseEvent* qmouse_event);
818 
822  virtual void wheelEvent(QWheelEvent* qmouse_event);
823 
825 
826  //_
827  void animate_();
828 
830  void zoomSystem_();
831 
834 
836  void pickParent_(QPoint p);
837 
838  void writeLights_(INIFile& inifile) const;
839 
840  void readLights_(const INIFile& inifile);
841 
842  void createCoordinateSystem_(bool at_origin);
843 
845 
848 
849  // Menu entry IDs
850  QAction *no_stereo_action_, *enter_stereo_action_, *active_stereo_action_, *dual_stereo_action_, *dual_stereo_different_display_action_;
851  QAction *record_animation_action_, *start_animation_action_, *clear_animation_action_, *cancel_animation_action_;
852  QAction *animation_export_POV_action_, *animation_export_VRML_action_, *animation_export_PNG_action_, *animation_repeat_action_;
853 
854 #ifdef BALL_HAS_RTFACT
855  QAction *toggle_continuous_loop_action_;
856 #endif
857  QAction *switch_grid_;
859 
864 
866 
867  QRubberBand* rb_;
868 
872 
873  std::vector<boost::shared_ptr<RenderSetup> > renderers_;
875 
876 #ifdef BALL_HAS_RTFACT
877  RaytracingRenderer* rt_renderer_;
878  RaytracingWindowPtr rt_window_;
879 #endif
880 
881  static bool show_light_sources_;
882  static float animation_smoothness_;
883  static float downsampling_factor_;
884 
888 
889  // nr of last png file export
891  // nr of last pov file export
893  //nr of last vrml or stl export
895 
896  std::list<Camera> animation_points_;
899 #ifdef BALL_HAS_RTFACT
900  bool continuous_loop_;
901 #endif
904 
906  QPoint info_point_;
907  QByteArray last_state_;
908  list<float> fps_;
909  bool show_fps_;
910  static bool offscreen_rendering_;
916 
917  QString info_string_;
918 
922 
925 
927 
928  QPicture overlay_;
931  };
932 
933 
936  : public QThread
937  {
938  public:
939 
942 
944  virtual void run() {scene_->animate_();}
945 
947  void mySleep(Size msec);
948 
950  void setScene(Scene* scene) { scene_ = scene;}
951 
953  Scene* getScene() { return scene_;}
954 
955  protected:
956 
958  };
959 
960  } // namespace VIEW
961 } // namespace BALL
962 
963 #endif // BALL_VIEW_WIDGETS_SCENE_H
BALL::VIEW::Scene::renderGrid_
void renderGrid_()
BALL::VIEW::Scene::getStageSettings
const StageSettings * getStageSettings() const
Definition: scene.h:325
BALL::VIEW::Scene::applyPreferences
virtual void applyPreferences()
BALL::VIEW::Scene::font_size_
Size font_size_
Definition: scene.h:912
BALL::VIEW::EditOperation
Definition: editOperation.h:23
BALL::VIEW::Scene::setGLRenderer
void setGLRenderer(GLRenderer &renderer)
BALL::VIEW::Scene::exportPNG
String exportPNG()
Export PNG image and return the filename.
BALL::VIEW::AnimationThread::scene_
Scene * scene_
Definition: scene.h:957
BALL::VIEW::Scene::getAnimationSmoothness
static float getAnimationSmoothness()
Definition: scene.h:348
BALL::VIEW::Scene::isUpdateRunning
bool isUpdateRunning() const
Definition: scene.h:479
BALL::VIEW::Scene::exportPOVRay
void exportPOVRay()
BALL::VIEW::Scene::vrml_nr_
static Position vrml_nr_
Definition: scene.h:894
BALL::VIEW::Scene::current_atom_
Atom * current_atom_
Definition: scene.h:737
BALL::VIEW::Scene::usePreview
bool usePreview() const
Returns the state of the preview mode.
Definition: scene.h:553
BALL::VIEW::Scene::time_
PreciseTime time_
Definition: scene.h:905
BALL::VIEW::Scene::moveComposites
void moveComposites(const std::list< Composite * > &composites, Vector3 v)
BALL::VIEW::Scene::rotate
void rotate(float degree_right, float degree_up)
BALL::VIEW::Scene::getEditElementType
int getEditElementType()
BALL::VIEW::Scene::getBondOrderString_
String getBondOrderString_(Index order)
BALL::VIEW::Scene::getStageSettings
StageSettings * getStageSettings()
Definition: scene.h:321
BALL::VIEW::Scene::info_point_
QPoint info_point_
Definition: scene.h:906
BALL::VIEW::Scene::getTurnPoint
const Vector3 & getTurnPoint() const
Definition: scene.h:465
BALL::VIEW::Scene::prepareGridTextures
Position prepareGridTextures(const RegularData3D &grid, const ColorMap &map)
BALL::VIEW::Scene::transformationEvent6D
virtual void transformationEvent6D(TransformationEvent6D *evt)
BALL::VIEW::Scene::animation_repeat_action_
QAction * animation_repeat_action_
Definition: scene.h:852
BALL::VIEW::Scene::writePreferences
virtual void writePreferences(INIFile &inifile)
BALL::VIEW::Scene::setupViewVolume
void setupViewVolume()
BALL::VIEW::Scene::fetchPreferences
virtual void fetchPreferences(INIFile &inifile)
BALL::VIEW::Scene::newEditOperation
void newEditOperation(EditOperation &eo)
BALL::VIEW::ControlSelectionMessage
Definition: message.h:487
BALL::VIEW::Scene::setAnimationSmoothness
static void setAnimationSmoothness(float value)
Definition: scene.h:344
BALL::VIEW::StageSettings
Definition: stageSettings.h:54
BALL::VIEW::MaterialSettings
Definition: materialSettings.h:37
BALL::TRegularData3D< float >
BALL::VIEW::Scene::stereo_camera_
Camera stereo_camera_
Definition: scene.h:870
BALL::VIEW::Scene::renderText_
void renderText_(QPointF const &point, QString const &text, QPaintDevice *current_dev)
BALL::PreciseTime
Definition: timeStamp.h:38
BALL::VIEW::Scene::mouseDoubleClickEvent
virtual void mouseDoubleClickEvent(QMouseEvent *e)
BALL::Bond
Definition: bond.h:57
BALL::VIEW::Scene::pickObjects
void pickObjects(const QPoint &pos, list< GeometricObject * > &objects)
BALL::VIEW::Scene::stop_animation_
bool stop_animation_
Definition: scene.h:898
renderWindow.h
BALL::VIEW::RenderSetup::RendererType
RendererType
Definition: renderSetup.h:63
BALL::VIEW::Scene::restoreViewPoint
void restoreViewPoint()
BALL::VIEW::Scene::stage_
Stage * stage_
Definition: scene.h:869
BALL::VIEW::Scene::handleDatasetMessage_
void handleDatasetMessage_(DatasetMessage *dm)
BALL::VIEW::Scene::writeLights_
void writeLights_(INIFile &inifile) const
BALL::VIEW::Scene::addToolBarEntries
virtual void addToolBarEntries(QToolBar *tb)
BALL::VIEW::Scene::WindowType
WindowType
Definition: scene.h:165
interactionModeManager.h
BALL::VIEW::Scene::overlay_
QPicture overlay_
Definition: scene.h:928
BALL::VIEW::Scene::getMouseSensitivity
static BALL_DEPRECATED float getMouseSensitivity()
Definition: scene.h:365
QEvent
BALL::VIEW::Scene::setTurnPoint
void setTurnPoint(const Vector3 &v)
Definition: scene.h:462
BALL::VIEW::Scene::readLights_
void readLights_(const INIFile &inifile)
BALL::VIEW::Scene::mapViewportTo3D
Vector3 mapViewportTo3D(const Vector2 &coords)
BALL::VIEW::Scene::old_trackrotation_
Quaternion old_trackrotation_
Definition: scene.h:863
BALL::VIEW::Scene::setScreenShotNumber
static void setScreenShotNumber(Position pos)
Definition: scene.h:422
BALL::VIEW::Message
Definition: message.h:53
BALL::VIEW::Scene::rb_
QRubberBand * rb_
Definition: scene.h:867
BALL::VIEW::Scene::light_settings_
LightSettings * light_settings_
Definition: scene.h:885
BALL::VIEW::Scene::setEditElementType
void setEditElementType(int element_number)
BALL::VIEW::Scene::switchShowGrid
void switchShowGrid()
BALL::VIEW::Scene::paintEvent
virtual void paintEvent(QPaintEvent *e)
BALL::Atom
Definition: atom.h:90
BALL::VIEW::Camera
Definition: camera.h:24
BALL::VIEW::Scene::getScreenPosition_
TVector2< float > getScreenPosition_(Vector3 vec)
BALL::VIEW::Scene::setElementCursor
void setElementCursor(int number)
BALL::PDBAtom
Definition: PDBAtom.h:40
BALL::VIEW::Scene::enterActiveStereo
void enterActiveStereo()
BALL::VIEW::Scene::main_renderer_
Position main_renderer_
The index of the renderer responsible for the main display.
Definition: scene.h:921
BALL::VIEW::Scene::paintGL
virtual void paintGL()
BALL::VIEW::Scene::createCoordinateSystemAtOrigin
void createCoordinateSystemAtOrigin()
Create an coordinate system at origin.
BALL::VIEW::Scene::setOffScreenRendering
void setOffScreenRendering(bool enabled, Size factor)
BALL::VIEW::Scene::createNewMolecule
void createNewMolecule()
BALL::VIEW::Scene::setupEnvironmentMap
void setupEnvironmentMap(const QImage &image)
Try to setup an environment map for all renderers that support it.
BALL::VIEW::Scene::switch_grid_
QAction * switch_grid_
Definition: scene.h:857
BALL::VIEW::Scene::showContextMenu
void showContextMenu(QPoint pos)
BALL::VIEW::Scene::old_trackorigin_
Vector3 old_trackorigin_
Definition: scene.h:861
BALL::VIEW::Representation
Definition: representation.h:59
BALL::VIEW::Scene::current_bond_
Bond * current_bond_
Definition: scene.h:738
BALL::VIEW::Scene::offscreen_factor_
Size offscreen_factor_
Definition: scene.h:911
BALL::VIEW::RenderToBufferFinishedEvent
Definition: renderSetup.h:370
BALL::VIEW::Scene::getMouseWheelSensitivity
static BALL_DEPRECATED float getMouseWheelSensitivity()
Definition: scene.h:371
BALL::VIEW::Scene::wheelEvent
virtual void wheelEvent(QWheelEvent *qmouse_event)
BALL::VIEW::Scene::use_preview_
bool use_preview_
Definition: scene.h:903
BALL::VIEW::Scene::animation_thread_
AnimationThread * animation_thread_
Definition: scene.h:897
BALL::VIEW::Scene::initializePreferencesTab
void initializePreferencesTab(Preferences &preferences)
BALL::VIEW::Scene::stage_settings_
StageSettings * stage_settings_
Definition: scene.h:886
BALL::VIEW::Scene::handleRenderToBufferFinishedEvent_
virtual void handleRenderToBufferFinishedEvent_(RenderToBufferFinishedEvent *evt)
BALL::VIEW::Scene::registerRenderers_
void registerRenderers_()
BALL::VIEW::Scene::enterDualStereo
void enterDualStereo()
BALL::VIEW::Scene::rotateClockwise
void rotateClockwise(float degree)
BALL::VIEW::Scene::deselect
void deselect(bool update=true)
BALL::VIEW::Scene::startAnimation
void startAnimation()
BALL::VIEW::Scene::dragEnterEvent
virtual void dragEnterEvent(QDragEnterEvent *e)
BALL::VIEW::Scene::stopAnimation
void stopAnimation()
BALL::String
Definition: string.h:57
BALL::VIEW::Scene::setRubberBandGeometry
void setRubberBandGeometry(const QRect &rect)
BALL::VIEW::Scene::setWidgetVisible
virtual void setWidgetVisible(bool state)
BALL::VIEW::CompositeMessage
Definition: message.h:202
BALL_EMBEDDABLE
#define BALL_EMBEDDABLE(TYPE, BASE)
Definition: embeddable.h:31
BALL::VIEW::Scene::edit_settings_
EditSettings * edit_settings_
Definition: scene.h:747
BALL::VIEW::MainControl
Definition: mainControl.h:118
BALL::VIEW::Scene::printScene
void printScene()
BALL::VIEW::Scene::getMaterialSettings
MaterialSettings * getMaterialSettings()
Definition: scene.h:329
BALL::VIEW::Scene
Definition: scene.h:141
BALL::VIEW::Scene::system_origin_
Vector3 system_origin_
Definition: scene.h:860
BALL::VIEW::Scene::exitPickingMode
void exitPickingMode()
BALL::VIEW::Scene::offscreen_rendering_
static bool offscreen_rendering_
Definition: scene.h:910
BALL::VIEW::Scene::setFPSEnabled
void setFPSEnabled(bool state)
Definition: scene.h:471
BALL
Definition: constants.h:13
BALL::VIEW::Scene::map3DToViewport
Vector2 map3DToViewport(const Vector3 &coords)
BALL::VIEW::Scene::getGLRenderer
GLRenderer & getGLRenderer()
Definition: scene.h:382
BALL::VIEW::Scene::switchRenderer
void switchRenderer(RenderSetup::RendererType new_type)
BALL::VIEW::Scene::selectionPressedMoved_
void selectionPressedMoved_()
BALL::VIEW::Scene::clear
virtual void clear()
QWidget
BALL::VIEW::TransformationEvent6D
Definition: transformationEvent6D.h:14
BALL::VIEW::Scene::eventFilter
virtual bool eventFilter(QObject *object, QEvent *event)
BALL::VIEW::Scene::show_light_sources_
static bool show_light_sources_
Definition: scene.h:881
editOperation.h
BALL::VIEW::Scene::renderers_
std::vector< boost::shared_ptr< RenderSetup > > renderers_
Definition: scene.h:873
BALL::VIEW::Scene::animation_smoothness_
static float animation_smoothness_
Definition: scene.h:882
BALL::VIEW::Scene::has_overlay_
bool has_overlay_
Definition: scene.h:929
BALL::VIEW::Scene::enterDualStereoDifferentDisplays
void enterDualStereoDifferentDisplays()
editSettings.h
BALL::VIEW::Renderer
Definition: renderer.h:55
BALL::VIEW::Scene::setMouseWheelSensitivity
static BALL_DEPRECATED void setMouseWheelSensitivity(float)
Definition: scene.h:368
BALL::VIEW::AnimationThread::mySleep
void mySleep(Size msec)
BALL::VIEW::Stage::Material
Definition: stage.h:246
BALL::VIEW::Scene::setCamera
void setCamera(const Camera &camera)
BALL::VIEW::InteractionModeManager
Definition: interactionModeManager.h:28
BALL::VIEW::Scene::zoomSystem_
void zoomSystem_()
BALL::VIEW::Scene::mousePressEvent
virtual void mousePressEvent(QMouseEvent *qmouse_event)
BALL::VIEW::Scene::setFormalCharge_
void setFormalCharge_()
BALL::VIEW::Scene::rotateComposites
void rotateComposites(const std::list< Composite * > &composites, float degree_right, float degree_up, float degree_clockwise=0)
BALL::VIEW::Scene::pov_nr_
static Position pov_nr_
Definition: scene.h:892
BALL::VIEW::Scene::selectionPressed_
void selectionPressed_()
BALL::VIEW::Scene::exitStereo
void exitStereo()
BALL::VIEW::Scene::getInteractionModeManager
InteractionModeManager & getInteractionModeManager()
Returns a reference to the Scene's interaction mode manager.
Definition: scene.h:641
BALL::VIEW::AnimationThread::AnimationThread
AnimationThread()
Definition: scene.h:941
BALL::VIEW::Scene::createCoordinateSystem
void createCoordinateSystem()
Create an coordinate system at current position.
BALL::VIEW::Scene::setCursor
void setCursor(String c)
BALL::Constants::c
BALL_EXTERN_VARIABLE const double c
Definition: constants.h:149
BALL::VIEW::Scene::keyPressEvent
virtual void keyPressEvent(QKeyEvent *e)
Catch key events.
BALL::VIEW::Scene::lightsUpdated
void lightsUpdated(bool redraw=false)
BALL::VIEW::Scene::exportScene
virtual bool exportScene(Renderer &er) const
BALL::VIEW::Scene::setVRMLNumber
static void setVRMLNumber(Position pos)
Definition: scene.h:428
BALL::VIEW::Scene::buttonReleaseEvent
virtual void buttonReleaseEvent(ButtonEvent *evt)
BALL::VIEW::Scene::getStage
Stage * getStage()
Definition: scene.h:313
BALL::VIEW::Scene::initializeMembers_
void initializeMembers_()
BALL::VIEW::Scene::setInfo
void setInfo(const QString &info_string)
glRenderer.h
BALL::VIEW::Scene::create_coordinate_system_
QMenu * create_coordinate_system_
Definition: scene.h:858
BALL::VIEW::Scene::storeViewPoint
void storeViewPoint()
BALL::VIEW::Scene::resetRepresentationsForRenderer_
virtual void resetRepresentationsForRenderer_(RenderSetup &rs)
BALL::VIEW::Scene::createCoordinateSystem_
void createCoordinateSystem_(bool at_origin)
BALL::VIEW::Scene::gl_renderer_
GLRenderer * gl_renderer_
Definition: scene.h:874
BALL::VIEW::Scene::toolbar_actions_view_controls_
QList< QAction * > toolbar_actions_view_controls_
Definition: scene.h:915
glRenderWindow.h
BALL::VIEW::Scene::material_settings_
MaterialSettings * material_settings_
Definition: scene.h:887
BALL::VIEW::Scene::start_animation_action_
QAction * start_animation_action_
Definition: scene.h:851
modularWidget.h
BALL::VIEW::Scene::createMolecule_
void createMolecule_()
BALL::VIEW::RepresentationMessage
Base class for all messages concerning a Representation.
Definition: message.h:570
BALL::VIEW::Scene::tracking_initialized_
bool tracking_initialized_
Definition: scene.h:862
BALL::VIEW::ButtonEvent
Definition: buttonEvent.h:35
BALL::VIEW::GLRenderer
Definition: glRenderer.h:71
BALL::VIEW::Scene::getMaterialSettings
const MaterialSettings * getMaterialSettings() const
Definition: scene.h:333
BALL_INDEX_TYPE
BALL::VIEW::Scene::switchToLastMode
void switchToLastMode()
BALL::VIEW::Scene::getCurrentBond
Bond * getCurrentBond()
Definition: scene.h:300
BALL::Composite
Definition: composite.h:74
BALL::VIEW::Scene::optimizeStructure
void optimizeStructure()
BALL::VIEW::Scene::setCurrentBond
void setCurrentBond(Bond *b)
Definition: scene.h:301
BALL_SIZE_TYPE
BALL::VIEW::Scene::insert_
void insert_(int x_, int y_, PDBAtom &atom_)
BALL::VIEW::Scene::info_string_
QString info_string_
Definition: scene.h:917
BALL::VIEW::Scene::checkMenu
virtual void checkMenu(MainControl &main_control)
BALL::VIEW::Scene::getAnimationPoints
std::list< Camera > & getAnimationPoints()
Definition: scene.h:340
BALL::VIEW::Scene::changeBondOrder
void changeBondOrder(Index delta)
BALL::VIEW::Scene::no_stereo_action_
QAction * no_stereo_action_
Definition: scene.h:850
BALL::VIEW::Scene::dump
virtual void dump(std::ostream &s=std::cout, Size depth=0) const
BALL::TVector3< float >
BALL::VIEW::Scene::toolbar_view_controls_
QToolBar * toolbar_view_controls_
Definition: scene.h:913
BALL_VIEW_EXPORT
#define BALL_VIEW_EXPORT
Definition: COMMON/global.h:52
BALL::VIEW::Scene::finalizePreferencesTab
void finalizePreferencesTab(Preferences &preferences)
BALL::VIEW::Scene::setFullScreen
void setFullScreen(bool state)
BALL::VIEW::Scene::setMouseSensitivity
static BALL_DEPRECATED void setMouseSensitivity(float)
Definition: scene.h:362
BALL::VIEW::Scene::startContinuousLoop
void startContinuousLoop()
BALL::VIEW::Scene::setCurrentAtom
void setCurrentAtom(Atom *atom)
Definition: scene.h:283
BALL::VIEW::Scene::merge
void merge(Composite *a1, Composite *a2)
BALL::VIEW::Scene::updateMaterialForRepresentation
void updateMaterialForRepresentation(Representation *rep, const Stage::Material &new_material)
BALL::VIEW::Scene::enterPickingMode
void enterPickingMode()
BALL::VIEW::Scene::customEvent
virtual void customEvent(QEvent *evt)
BALL::VIEW::Scene::show_fps_
bool show_fps_
Definition: scene.h:909
BALL::VIEW::Scene::captureCamera
void captureCamera()
BALL::VIEW::Scene::createFPSInfo_
String createFPSInfo_(Renderer *renderer)
Estimate current fps and convert into a string.
BALL::VIEW::Scene::notify
void notify(Message *msg)
Definition: scene.h:284
BALL::VIEW::Scene::toolbar_actions_edit_controls_
QList< QAction * > toolbar_actions_edit_controls_
Definition: scene.h:748
BALL::VIEW::Scene::default_font_
QFont default_font_
Definition: scene.h:926
BALL::VIEW::Scene::showExportPNGDialog
void showExportPNGDialog()
show an dialog to save an PNG file to
BALL::VIEW::Scene::LEFT_EYE_WINDOW
@ LEFT_EYE_WINDOW
Window into which left eye should be rendered. Indicates same window as CONTROL_WINDOW if no stereo i...
Definition: scene.h:170
BALL::VIEW::Scene::drawLine
void drawLine(const QPointF &a, const QPointF &b, QPainter *painter=0)
BALL::VIEW::Scene::undo_
vector< EditOperation > undo_
Definition: scene.h:746
BALL::VIEW::Scene::Scene
Scene(QWidget *parent_widget=0, const char *name=NULL, Qt::WindowFlags w_flags=0)
BALL::VIEW::Scene::last_state_
QByteArray last_state_
Definition: scene.h:907
BALL::VIEW::Scene::rotateSystemClockwise_
void rotateSystemClockwise_()
BALL::VIEW::Scene::drawLine
void drawLine(const Vector2 &a, const Vector2 &b, QPainter *painter=0)
BALL::VIEW::Scene::isRecording
bool isRecording() const
BALL::INIFile
Definition: INIFile.h:29
BALL::VIEW::Scene::fps_
list< float > fps_
Definition: scene.h:908
BALL::VIEW::Scene::onNotify
virtual void onNotify(Message *message)
BALL::TQuaternion< float >
BALL::VIEW::Scene::stereoBufferSupportTest
static bool stereoBufferSupportTest()
BALL::VIEW::Scene::pickParent_
void pickParent_(QPoint p)
BALL::VIEW::Scene::setRubberBandVisible
void setRubberBandVisible(bool show)
BALL::VIEW::Scene::resetCamera_
virtual void resetCamera_()
Reset the camera to standard values.
BALL::VIEW::Scene::atomic_number_
int atomic_number_
Definition: scene.h:743
BALL::VIEW::Scene::setDownsamplingFactor
void setDownsamplingFactor(float ds_factor)
BALL::VIEW::Scene::mode_manager_
InteractionModeManager mode_manager_
Definition: scene.h:930
BALL::TVector2< float >
BALL::VIEW::Scene::clearRecordedAnimation
void clearRecordedAnimation()
BALL::VIEW::Scene::handleCompositeMessage_
void handleCompositeMessage_(CompositeMessage *cm)
BALL::VIEW::Scene::enterStereo
void enterStereo()
BALL::VIEW::Scene::add_hydrogens_action_
QAction * add_hydrogens_action_
Definition: scene.h:734
BALL::VIEW::Scene::exportNextPOVRay
void exportNextPOVRay()
Export to POVRay whithout showing file dialog.
BALL::VIEW::Scene::getCurrentAtom
Atom * getCurrentAtom()
Definition: scene.h:282
BALL::VIEW::RaytracingRenderer
Definition: raytracingRenderer.h:34
BALL::VIEW::Scene::selectObjects_
void selectObjects_()
BALL::VIEW::Scene::isValid
virtual bool isValid() const
BALL::VIEW::Scene::showLightSourcesEnabled
static bool showLightSourcesEnabled()
Definition: scene.h:378
BALL::VIEW::Scene::setDefaultLighting
void setDefaultLighting(bool update_GL=true)
BALL::VIEW::Scene::toggleContinuousLoop
void toggleContinuousLoop()
BALL::VIEW::Scene::changeBondOrder
void changeBondOrder()
BALL::VIEW::Preferences
Definition: preferences.h:43
BALL::VIEW::Scene::handleRepresentationMessage_
void handleRepresentationMessage_(RepresentationMessage *rm)
BALL::VIEW::EditSettings
Definition: editSettings.h:36
BALL::VIEW::Scene::getDownsamplingFactor
float getDownsamplingFactor() const
Definition: scene.h:352
common.h
BALL::VIEW::Scene::setPOVNumber
static void setPOVNumber(Position pos)
Definition: scene.h:425
BALL::VIEW::Scene::applyStereoDefaults
void applyStereoDefaults()
BALL::VIEW::Scene::motionTrackingEvent
virtual void motionTrackingEvent(MotionTrackingEvent *evt)
BALL::VIEW::Scene::stored_camera_
Camera stored_camera_
Definition: scene.h:871
BALL::VIEW::Scene::handleControlSelectionMessage_
void handleControlSelectionMessage_(ControlSelectionMessage *csm)
renderSetup.h
BALL::VIEW::Scene::animate_
void animate_()
BALL::VIEW::Scene::getContainers
std::list< AtomContainer * > getContainers()
BALL::VIEW::Scene::stereo_left_eye_
Index stereo_left_eye_
Definition: scene.h:923
BALL::VIEW::Scene::computeBondOrders
void computeBondOrders()
BALL::VIEW::Scene::isAnimationRunning
bool isAnimationRunning() const
BALL::VIEW::Scene::showText
void showText(const String &text, Size font_size=20)
BALL::VIEW::Scene::bondorders_action_
QAction * bondorders_action_
Definition: scene.h:735
BALL::VIEW::Scene::dropEvent
virtual void dropEvent(QDropEvent *e)
QMouseEvent
BALL::VIEW::Scene::dummySlot
void dummySlot()
Definition: scene.h:673
BALL::VIEW::Scene::mouseReleaseEvent
virtual void mouseReleaseEvent(QMouseEvent *qmouse_event)
QPaintDevice
BALL::VIEW::Scene::toolbar_edit_controls_
QToolBar * toolbar_edit_controls_
Definition: scene.h:914
BALL::VIEW::ColorMap
Definition: colorMap.h:30
BALL::VIEW::Scene::setShowLightSources
static void setShowLightSources(bool state)
Definition: scene.h:374
BALL::VIEW::AnimationThread::setScene
void setScene(Scene *scene)
Definition: scene.h:950
BALL::VIEW::Scene::showExportVRMLDialog
void showExportVRMLDialog()
opens the VIEW/DIALOGS/GeometryExportDialog for vrml and stl export
QThread
BALL::VIEW::AnimationThread::getScene
Scene * getScene()
Definition: scene.h:953
BALL::VIEW::Scene::inMoveMode
bool inMoveMode() const
BALL::VIEW::MotionTrackingEvent
Definition: motionTrackingEvent.h:15
BALL::VIEW::Scene::pickObjects
void pickObjects(const QPoint &pos1, const QPoint &pos2, list< GeometricObject * > &objects)
BALL::VIEW::Scene::resetTracking
void resetTracking()
Definition: scene.h:481
BALL::VIEW::SceneMessage
Definition: message.h:329
BALL::VIEW::Scene::stopContinuousLoop
void stopContinuousLoop()
BALL::VIEW::Scene::resizeEvent
virtual void resizeEvent(QResizeEvent *event)
BALL::VIEW::GLRenderWindow
Definition: glRenderWindow.h:40
BALL::VIEW::LightSettings
Definition: lightSettings.h:43
BALL::VIEW::Scene::optimize_action_
QAction * optimize_action_
Definition: scene.h:733
BALL::VIEW::AnimationThread::run
virtual void run()
Definition: scene.h:944
BALL::VIEW::Scene::setViewPoint_
virtual void setViewPoint_()
Set the viewpoint.
BALL::VIEW::Scene::updateGL
void updateGL()
BALL::VIEW::RenderSetup
Definition: renderSetup.h:46
BALL::VIEW::Scene::getStage
const Stage * getStage() const
Definition: scene.h:317
BALL::VIEW::Scene::stereo_right_eye_
Index stereo_right_eye_
Definition: scene.h:924
BALL::VIEW::Scene::initializeWidget
virtual void initializeWidget(MainControl &main_control)
BALL::VIEW::AnimationThread
Definition: scene.h:937
BALL::VIEW::Scene::mapViewportTo3D
Vector3 mapViewportTo3D(int x, int y)
BALL::VIEW::Scene::update_running_
bool update_running_
Definition: scene.h:865
BALL::VIEW::Scene::saturateWithHydrogens
void saturateWithHydrogens()
BALL::VIEW::Scene::mouseMoveEvent
virtual void mouseMoveEvent(QMouseEvent *qmouse_event)
BALL::VIEW::Scene::~Scene
virtual ~Scene()
BALL::VIEW::Scene::animation_points_
std::list< Camera > animation_points_
Definition: scene.h:896
BALL::VIEW::Scene::projectionModeChanged
virtual void projectionModeChanged()
BALL::VIEW::Scene::exportPNG
bool exportPNG(const String &filename)
BALL::VIEW::Scene::addGlWindow
void addGlWindow()
BALL::VIEW::Scene::screenshot_nr_
static Position screenshot_nr_
Definition: scene.h:890
BALL::VIEW::Scene::activatedOrderItem_
void activatedOrderItem_(QAction *action)
BALL::VIEW::Scene::getClickedItems
void getClickedItems(const QPoint &p)
BALL::VIEW::Scene::main_display_
GLRenderWindow * main_display_
Definition: scene.h:919
BALL::VIEW::Scene::want_to_use_vertex_buffer_
bool want_to_use_vertex_buffer_
Definition: scene.h:902
BALL::VIEW::Scene::switchShowWidget
virtual void switchShowWidget()
QObject
BALL::VIEW::Scene::useVertexBuffers
bool useVertexBuffers() const
Definition: scene.h:555
BALL::VIEW::Scene::move
void move(Vector3 v)
BALL::VIEW::Stage
Definition: stage.h:239
BALL::VIEW::DatasetMessage
Definition: message.h:139
BALL::VIEW::Scene::showInfos
void showInfos()
Popup informations for object under mouse cursor.
BALL::VIEW::Scene::buttonPressEvent
virtual void buttonPressEvent(ButtonEvent *evt)
BALL::VIEW::Scene::init
virtual void init()
BALL::VIEW::ModularWidget
Definition: modularWidget.h:63
BALL::VIEW::Scene::updateAllMaterials
void updateAllMaterials()
BALL::VIEW::Scene::setPreview
void setPreview(bool state)
Enable or disable model previews e.g. while rotating.
Definition: scene.h:550
BALL_DEPRECATED
#define BALL_DEPRECATED
Definition: COMMON/global.h:64
BALL::VIEW::Scene::only_highlighted_
static bool only_highlighted_
Definition: scene.h:741
BALL::VIEW::Scene::handleSceneMessage_
void handleSceneMessage_(SceneMessage *sm)
raytracingRenderer.h
BALL::VIEW::Scene::downsampling_factor_
static float downsampling_factor_
Definition: scene.h:883