00001 00021 #ifndef OBJECT_VIEW_DESCRIPTOR_H 00022 #define OBJECT_VIEW_DESCRIPTOR_H 00023 00024 #include <HalconCpp.h> 00025 00026 #include <Eigen/Dense> 00027 #include <vector> 00028 00029 #include "rotation_axis.h" 00030 00031 namespace descriptor_surface_based_recognition { 00032 00036 class ObjectViewDescriptor { 00037 00038 private: 00039 00041 HalconCpp::HDescriptorModel desc_model_; 00042 00044 Eigen::Vector3d view_orientation_; 00045 00047 double score_2D_; 00048 00050 bool use_color_; 00051 00053 int vertical_tex_offset_; 00054 00056 int horizontal_tex_offset_; 00057 00059 bool is_invertible_; 00060 00062 std::vector<RotationAxis> axes_; 00063 00065 std::vector<Eigen::Vector2i> box_corners_; 00066 00067 00068 00069 public: 00070 00083 ObjectViewDescriptor(HalconCpp::HDescriptorModel &desc_model, Eigen::Vector3d view_orientation, double score_2D, bool use_color, int vertical_tex_offset, int horizontal_tex_offset, bool is_invertible, std::vector<RotationAxis> &axes, std::vector<Eigen::Vector2i> &box_corners); 00084 00088 HalconCpp::HDescriptorModel getDescModel() const; 00089 Eigen::Vector3d getViewOrientation() const; 00090 double getScore2D() const; 00091 bool getUseColor() const; 00092 int getVerticalTexOffset() const; 00093 int getHorizontalTexOffset() const; 00094 bool getIsInvertible() const; 00095 std::vector<RotationAxis> getAxes() const; 00096 std::vector<Eigen::Vector2i> getBoxCorners() const; 00097 }; 00098 00099 00100 } 00101 00102 #endif