Choreonoid  1.5
SceneCameras.h
Go to the documentation of this file.
1 
6 #ifndef CNOID_UTIL_SCENE_CAMERAS_H
7 #define CNOID_UTIL_SCENE_CAMERAS_H
8 
9 #include "SceneGraph.h"
10 #include "exportdecl.h"
11 
12 namespace cnoid {
13 
15 {
16 protected:
17  SgCamera();
18  SgCamera(const SgCamera& org);
19 
20 public:
21  virtual void accept(SceneVisitor& visitor);
22 
23  static Affine3 positionLookingFor(const Vector3& eye, const Vector3& direction, const Vector3& up);
24  static Affine3 positionLookingAt(const Vector3& eye, const Vector3& center, const Vector3& up);
25 
26  template<class Scalar, int Mode, int Options>
27  static Eigen::Matrix<Scalar, 3, 1> right(const Eigen::Transform<Scalar, 3, Mode, Options>& T){
28  return T.linear().col(0);
29  }
30  template<class Scalar, int Mode, int Options>
31  static Eigen::Matrix<Scalar, 3, 1> direction(const Eigen::Transform<Scalar, 3, Mode, Options>& T){
32  return -T.linear().col(2);
33  }
34  template<class Scalar, int Mode, int Options>
35  static Eigen::Matrix<Scalar, 3, 1> up(const Eigen::Transform<Scalar, 3, Mode, Options>& T){
36  return T.linear().col(1);
37  }
38 
39  double nearClipDistance() const { return nearClipDistance_; }
40  void setNearClipDistance(double d) { nearClipDistance_ = d; }
41  double farClipDistance() const { return farClipDistance_; }
42  void setFarClipDistance(double d) { farClipDistance_ = d; }
43 
44 #ifdef CNOID_BACKWARD_COMPATIBILITY
45  double nearDistance() const { return nearDistance_; }
46  void setNearDistance(double d) { nearDistance_ = d; }
47  double farDistance() const { return farDistance_; }
48  void setFarDistance(double d) { farDistance_ = d; }
49 #endif
50 
51 private:
52  double nearClipDistance_;
53  double farClipDistance_;
54 };
56 
57 
59 {
60 public:
63  virtual SgObject* clone(SgCloneMap& cloneMap) const;
64  virtual void accept(SceneVisitor& visitor);
65 
66  double fieldOfView() const { return fieldOfView_; }
67  void setFieldOfView(double fov) { fieldOfView_ = fov; }
68 
69  static double fovy(double aspectRatio, double fieldOfView);
70 
71  double fovy(double aspectRatio) const {
72  return SgPerspectiveCamera::fovy(aspectRatio, fieldOfView_);
73  }
74 
75 private:
76  double fieldOfView_;
77 };
79 
80 
82 {
83 public:
86  virtual SgObject* clone(SgCloneMap& cloneMap) const;
87  virtual void accept(SceneVisitor& visitor);
88 
89  double height() const { return height_; }
90  void setHeight(double h) { height_ = h; }
91 
92 private:
93  double height_;
94 };
96 }
97 
98 #endif
static Eigen::Matrix< Scalar, 3, 1 > right(const Eigen::Transform< Scalar, 3, Mode, Options > &T)
Definition: SceneCameras.h:27
ref_ptr< SgOrthographicCamera > SgOrthographicCameraPtr
Definition: SceneCameras.h:95
double height() const
Definition: SceneCameras.h:89
ref_ptr< SgCamera > SgCameraPtr
Definition: SceneCameras.h:55
Definition: SceneGraph.h:394
void setFarClipDistance(double d)
Definition: SceneCameras.h:42
static Eigen::Matrix< Scalar, 3, 1 > direction(const Eigen::Transform< Scalar, 3, Mode, Options > &T)
Definition: SceneCameras.h:31
Definition: SceneCameras.h:14
static double fovy(double aspectRatio, double fieldOfView)
Definition: SceneCameras.cpp:80
Eigen::Affine3d Affine3
Definition: EigenTypes.h:64
Definition: Referenced.h:128
static Eigen::Matrix< Scalar, 3, 1 > up(const Eigen::Transform< Scalar, 3, Mode, Options > &T)
Definition: SceneCameras.h:35
Definition: SceneGraph.h:56
ref_ptr< SgPerspectiveCamera > SgPerspectiveCameraPtr
Definition: SceneCameras.h:78
void setFieldOfView(double fov)
Definition: SceneCameras.h:67
Definition: SceneCameras.h:58
void setNearClipDistance(double d)
Definition: SceneCameras.h:40
double fieldOfView() const
Definition: SceneCameras.h:66
void setHeight(double h)
Definition: SceneCameras.h:90
double fovy(double aspectRatio) const
Definition: SceneCameras.h:71
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
double nearClipDistance() const
Definition: SceneCameras.h:39
Definition: SceneCameras.h:81
double farClipDistance() const
Definition: SceneCameras.h:41
Eigen::Vector3d Vector3
Definition: EigenTypes.h:58
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
Definition: SceneVisitor.h:15
Definition: SceneGraph.h:79