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
00039
00040 #ifndef SELECTION_TRANSFORM_TOOL_H_
00041 #define SELECTION_TRANSFORM_TOOL_H_
00042
00043 #include <pcl/apps/point_cloud_editor/toolInterface.h>
00044 #include <pcl/apps/point_cloud_editor/localTypes.h>
00045 #include <pcl/apps/point_cloud_editor/trackball.h>
00046
00054 class SelectionTransformTool : public ToolInterface
00055 {
00056 public:
00061 SelectionTransformTool (ConstSelectionPtr selection_ptr,
00062 CloudPtr cloud_ptr,
00063 CommandQueuePtr command_queue_ptr);
00064
00066 ~SelectionTransformTool ()
00067 {
00068 }
00069
00075 void
00076 start (int x, int y, BitMask modifiers, BitMask buttons);
00077
00094 void
00095 update (int x, int y, BitMask modifiers, BitMask buttons);
00096
00104 void
00105 end (int x, int y, BitMask modifiers, BitMask buttons);
00106
00108 void
00109 draw () const
00110 {
00111 }
00112
00113 private:
00124 void
00125 getRotateMatrix (int dx, int dy, float* rotation_matrix_a,
00126 float* rotation_matrix_b, BitMask buttons) const;
00127
00129 void
00130 findSelectionCenter ();
00131
00133 ConstSelectionPtr selection_ptr_;
00134
00136 CloudPtr cloud_ptr_;
00137
00139 CommandQueuePtr command_queue_ptr_;
00140
00142 TrackBall trackball_;
00143
00145 int x_, y_;
00146
00148 float center_xyz_[XYZ_SIZE];
00149
00152 float transform_matrix_[MATRIX_SIZE];
00153
00156 float translate_factor_;
00157
00159 static const float DEFAULT_TRANSLATE_FACTOR_;
00160
00162 BitMask modifiers_;
00163
00164 };
00165 #endif // SELECTION_TRANSFORMER_H_