00001 00011 #ifndef SPATIAL_TEMPORAL_LEARNING_WORLDLIB_WORLD_OBSERVATION_H_ 00012 #define SPATIAL_TEMPORAL_LEARNING_WORLDLIB_WORLD_OBSERVATION_H_ 00013 00014 // worldlib 00015 #include "Item.h" 00016 #include "PlacementSurface.h" 00017 #include "Surface.h" 00018 #include "../geometry/Pose.h" 00019 00020 // ROS 00021 #include <ros/time.h> 00022 00023 namespace rail 00024 { 00025 namespace spatial_temporal_learning 00026 { 00027 namespace worldlib 00028 { 00029 namespace world 00030 { 00031 00038 class Observation 00039 { 00040 public: 00053 Observation(const Item &item = Item(), const Surface &surface = Surface(), 00054 const geometry::Pose &pose = geometry::Pose(), const ros::Time &time = ros::Time::now(), 00055 const ros::Time &removed_estimate = ros::Time(0), const ros::Time &removed_observed = ros::Time(0)); 00056 00064 const Item &getItem() const; 00065 00073 Item &getItem(); 00074 00082 void setItem(const Item &item); 00083 00091 const Surface &getSurface() const; 00092 00100 Surface &getSurface(); 00101 00109 void setSurface(const Surface &surface); 00110 00118 const PlacementSurface &getPlacementSurface() const; 00119 00127 const geometry::Pose &getPose() const; 00128 00136 geometry::Pose &getPose(); 00137 00145 void setPose(const geometry::Pose &pose); 00146 00154 const ros::Time &getTime() const; 00155 00163 ros::Time &getTime(); 00164 00172 void setTime(const ros::Time &time); 00173 00181 const ros::Time &getRemovedEstimate() const; 00182 00190 ros::Time &getRemovedEstimate(); 00191 00199 void setRemovedEstimate(const ros::Time &removed_estimate); 00200 00208 const ros::Time &getRemovedObserved() const; 00209 00217 ros::Time &getRemovedObserved(); 00218 00226 void setRemovedObserved(const ros::Time &removed_observed); 00227 00228 private: 00230 Item item_; 00232 Surface surface_; 00234 geometry::Pose pose_; 00236 ros::Time time_, removed_estimate_, removed_observed_; 00237 }; 00238 00239 } 00240 } 00241 } 00242 } 00243 00244 #endif