Choreonoid  1.5
ImageWidget.h
Go to the documentation of this file.
1 
5 #ifndef CNOID_BASE_IMAGE_WIDGET_H
6 #define CNOID_BASE_IMAGE_WIDGET_H
7 
8 #include <QWidget>
9 #include <cnoid/Image>
10 #include <boost/thread/mutex.hpp>
11 #include <boost/thread/locks.hpp>
12 #include "exportdecl.h"
13 
14 namespace cnoid {
15 
16 class Image;
17 
18 class CNOID_EXPORT ImageWidget : public QWidget
19 {
20  Q_OBJECT
21 
22 public:
23  explicit ImageWidget(QWidget* parent = 0);
24 
25 //public Q_SLOTS:
26  void setPixmap(const QPixmap& pixmap);
27  void setImage(const Image& image);
28  void setImage(const QImage& image);
29 
30  void setScalingEnabled(bool on);
31  bool isScalingEnabled() const;
32 
33  void zoom(double scale);
34  void translate(QPoint pos);
35 
36  bool getTransform(QTransform& transform);
37  double getAngle();
38  void setTransform(const QTransform& transform);
39  void setAngle(double angle);
40  void rotate(double angle);
41  void reset();
42  Image& getImage();
43  boost::mutex mtx;
44 
45  protected:
46  virtual void paintEvent(QPaintEvent* event);
47  virtual QSize sizeHint() const;
48  virtual void resizeEvent(QResizeEvent *event);
49 
50 private:
51  QPixmap pixmap_;
52  bool isScalingEnabled_;
53  QTransform transform_;
54  QTransform notScaledTransform_;
55  QTransform initialTransform_;
56  Image transformedImage;
57 
58  void fitCenter();
59  void resize(const QSize& size);
60  bool fitted;
61  QSize oldSize;
62  double oldScale;
63  bool settedT;
64 
65 };
66 
67 }
68 
69 #endif
Definition: Image.h:15
Definition: ImageWidget.h:18
boost::mutex mtx
Definition: ImageWidget.h:43
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37