Choreonoid  1.5
Camera.h
Go to the documentation of this file.
1 
6 #ifndef CNOID_BODY_CAMERA_H
7 #define CNOID_BODY_CAMERA_H
8 
9 #include "Device.h"
10 #include <cnoid/Image>
11 #include <boost/shared_ptr.hpp>
12 #include "exportdecl.h"
13 
14 namespace cnoid {
15 
16 class CNOID_EXPORT Camera : public Device
17 {
18 public:
19  Camera();
20  Camera(const Camera& org, bool copyStateOnly = false);
21 
22  virtual const char* typeName();
23  void copyStateFrom(const Camera& other);
24  virtual void copyStateFrom(const DeviceState& other);
25  virtual DeviceState* cloneState() const;
26  virtual Device* clone() const;
27  virtual void forEachActualType(boost::function<bool(const std::type_info& type)> func);
28  virtual void clearState();
29  virtual int stateSize() const;
30  virtual const double* readState(const double* buf);
31  virtual double* writeState(double* out_buf) const;
32 
33  void setImageStateClonable(bool on) { isImageStateClonable_ = on; }
34  bool isImageStateClonable() const { return isImageStateClonable_; }
35 
36  enum ImageType { NO_IMAGE, COLOR_IMAGE, GRAYSCALE_IMAGE };
37  ImageType imageType() const { return imageType_; }
38  void setImageType(ImageType type) { imageType_ = type; }
39 
40  bool on() const { return on_; }
41  void on(bool on) { on_ = on; }
42 
43  double nearClipDistance() const { return nearClipDistance_; }
44  void setNearClipDistance(double d) { nearClipDistance_ = d; }
45  double farClipDistance() const { return farClipDistance_; }
46  void setFarClipDistance(double d) { farClipDistance_ = d; }
47 
48 #ifdef CNOID_BACKWARD_COMPATIBILITY
49  double nearDistance() const { return nearDistance_; }
50  void setNearDistance(double d) { nearDistance_ = d; }
51  double farDistance() const { return farDistance_; }
52  void setFarDistance(double d) { farDistance_ = d; }
53 #endif
54 
55  double fieldOfView() const { return fieldOfView_; }
56  void setFieldOfView(double f) { fieldOfView_ = f; }
57 
58  void setResolution(int x, int y) {
59  resolutionX_ = x; resolutionY_ = y;
60  }
61  void setResolutionX(int x) { resolutionX_ = x; }
62  void setResolutionY(int y) { resolutionY_ = y; }
63 
64  int resolutionX() const { return resolutionX_; }
65  int resolutionY() const { return resolutionY_; }
66 
67  void setFrameRate(double r) { frameRate_ = r; }
68  double frameRate() const { return frameRate_; }
69 
70  const Image& image() const;
71  const Image& constImage() const { return *image_; }
72  Image& image();
73  Image& newImage();
74 
75  boost::shared_ptr<const Image> sharedImage() const { return image_; }
76 
82  void setImage(boost::shared_ptr<Image>& image);
83 
87  double delay() const { return delay_; }
88  void setDelay(double time) { delay_ = time; }
89 
90 private:
91  bool on_;
92  bool isImageStateClonable_;
93  ImageType imageType_;
94  int resolutionX_;
95  int resolutionY_;
96  double nearClipDistance_;
97  double farClipDistance_;
98  double fieldOfView_;
99  double frameRate_;
100  double delay_;
101  boost::shared_ptr<Image> image_;
102 
103  Camera(const Camera& org, int x);
104  void copyCameraStateFrom(const Camera& other);
105 };
106 
108 
109 }
110 
111 #endif
void setImageStateClonable(bool on)
Definition: Camera.h:33
int resolutionY() const
Definition: Camera.h:65
void setResolutionX(int x)
Definition: Camera.h:61
const Image & constImage() const
Definition: Camera.h:71
void setFarClipDistance(double d)
Definition: Camera.h:46
void setResolution(int x, int y)
Definition: Camera.h:58
void setImageType(ImageType type)
Definition: Camera.h:38
bool on() const
Definition: Camera.h:40
Definition: Camera.h:16
ImageType
Definition: Camera.h:36
void setDelay(double time)
Definition: Camera.h:88
Definition: Referenced.h:128
bool isImageStateClonable() const
Definition: Camera.h:34
void setFieldOfView(double f)
Definition: Camera.h:56
Definition: Image.h:15
void on(bool on)
Definition: Camera.h:41
double nearClipDistance() const
Definition: Camera.h:43
Definition: Device.h:18
double farClipDistance() const
Definition: Camera.h:45
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
double delay() const
Definition: Camera.h:87
int resolutionX() const
Definition: Camera.h:64
ImageType imageType() const
Definition: Camera.h:37
double fieldOfView() const
Definition: Camera.h:55
ref_ptr< Camera > CameraPtr
Definition: Camera.h:107
void setResolutionY(int y)
Definition: Camera.h:62
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
void setNearClipDistance(double d)
Definition: Camera.h:44
void setFrameRate(double r)
Definition: Camera.h:67
Definition: Device.h:52
Definition: Camera.h:36
double frameRate() const
Definition: Camera.h:68
boost::shared_ptr< const Image > sharedImage() const
Definition: Camera.h:75