Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #ifndef PCL_PCL_VISUALIZER_COMMON_H_
00038 #define PCL_PCL_VISUALIZER_COMMON_H_
00039 #include <vtkCommand.h>
00040 #include <vtkTextActor.h>
00041
00042 #include <pcl/pcl_macros.h>
00043 #include <Eigen/Dense>
00044
00045 namespace pcl
00046 {
00047 namespace visualization
00048 {
00056 PCL_EXPORTS void
00057 getRandomColors (double &r, double &g, double &b, double min = 0.2, double max = 2.8);
00058
00059 enum RenderingProperties
00060 {
00061 PCL_VISUALIZER_POINT_SIZE,
00062 PCL_VISUALIZER_OPACITY,
00063 PCL_VISUALIZER_LINE_WIDTH,
00064 PCL_VISUALIZER_FONT_SIZE,
00065 PCL_VISUALIZER_COLOR,
00066 PCL_VISUALIZER_REPRESENTATION,
00067 PCL_VISUALIZER_IMMEDIATE_RENDERING
00068 };
00069
00070 enum RenderingRepresentationProperties
00071 {
00072 PCL_VISUALIZER_REPRESENTATION_POINTS,
00073 PCL_VISUALIZER_REPRESENTATION_WIREFRAME,
00074 PCL_VISUALIZER_REPRESENTATION_SURFACE
00075 };
00076
00078
00079 class PCL_EXPORTS Camera
00080 {
00081 public:
00082
00083 double focal[3];
00084
00085
00086 double pos[3];
00087
00088
00089 double view[3];
00090
00091
00092 double clip[2];
00093
00094
00095 double fovy;
00096
00097
00098
00099
00100 double window_size[2];
00101 double window_pos[2];
00102
00106 void
00107 computeViewMatrix (Eigen::Matrix4d& view_mat) const;
00108
00112 void
00113 computeProjectionMatrix (Eigen::Matrix4d& proj) const;
00114
00122 template<typename PointT> void
00123 cvtWindowCoordinates (const PointT& pt, Eigen::Vector4d& window_cord);
00124
00135 template<typename PointT> void
00136 cvtWindowCoordinates (const PointT& pt, Eigen::Vector4d& window_cord, const Eigen::Matrix4d& composite_mat);
00137 };
00138
00140 class PCL_EXPORTS FPSCallback : public vtkCommand
00141 {
00142 public:
00143 static FPSCallback *New () { return new FPSCallback;}
00144 inline void setTextActor (vtkTextActor *txt) { this->actor_ = txt; }
00145 virtual void Execute (vtkObject *, unsigned long, void*);
00146 protected:
00147 vtkTextActor *actor_;
00148 };
00149 }
00150 }
00151
00152 #endif