00001 // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- 00002 00003 // -- BEGIN LICENSE BLOCK ---------------------------------------------- 00004 00024 // -- END LICENSE BLOCK ------------------------------------------------ 00025 00026 //---------------------------------------------------------------------- 00033 //---------------------------------------------------------------------- 00034 00035 #ifndef SICK_SAFETYSCANNERS_DATASTRUCTURE_FIELDDATA_H 00036 #define SICK_SAFETYSCANNERS_DATASTRUCTURE_FIELDDATA_H 00037 00038 #include <iostream> 00039 #include <vector> 00040 00041 namespace sick { 00042 namespace datastructure { 00043 00044 00048 class FieldData 00049 { 00050 public: 00054 FieldData(); 00055 00061 bool getIsValid() const; 00062 00068 void setIsValid(bool is_valid); 00069 00075 uint16_t getFieldSetIndex() const; 00076 00082 void setFieldSetIndex(uint16_t& field_set_index); 00083 00089 bool getIsWarningField() const; 00090 00096 void setIsWarningField(bool is_warning_field); 00097 00103 bool getIsProtectiveField() const; 00104 00110 void setIsProtectiveField(bool is_protective_field); 00111 00117 std::vector<uint16_t> getBeamDistances() const; 00118 00124 void setBeamDistances(const std::vector<uint16_t>& beam_distances); 00125 00130 float getStartAngle() const; 00131 00136 void setStartAngle(const int32_t& start_angle); 00137 00142 void setStartAngleDegrees(const float& start_angle); 00143 00148 float getEndAngle() const; 00149 00154 void setEndAngle(const int32_t& end_angle); 00155 00160 void setEndAngleDegrees(const float& end_angle); 00161 00166 float getAngularBeamResolution() const; 00167 00172 void setAngularBeamResolution(const int32_t& angular_beam_resolution); 00173 00178 void setAngularBeamResolutionDegrees(const float& angular_beam_resolution); 00179 00180 private: 00184 const double ANGLE_RESOLUTION = 4194304.0; 00185 00186 bool m_is_valid; 00187 uint16_t m_field_set_index; 00188 bool m_is_warning_field; 00189 bool m_is_protective_field; 00190 std::vector<uint16_t> m_beam_distances; // in mm 00191 float m_start_angle; 00192 float m_end_angle; 00193 float m_angular_beam_resolution; 00194 }; 00195 00196 00197 } // namespace datastructure 00198 } // namespace sick 00199 00200 #endif // SICK_SAFETYSCANNERS_DATASTRUCTURE_FIELDDATA_H