00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef PEEKABOT_OBJECT_VISITOR_HH_INCLUDED
00024 #define PEEKABOT_OBJECT_VISITOR_HH_INCLUDED
00025
00026
00027 namespace peekabot
00028 {
00029 class SceneObject;
00030 class CameraObject;
00031 class ModelObject;
00032 class SphereObject;
00033 class GroupObject;
00034 class CubeObject;
00035 class PolygonObject;
00036 class CylinderObject;
00037 class CircleObject;
00038 class Polyline;
00039 class Hinge;
00040 class Slider;
00041 class GridObject;
00042 class PointCloud;
00043 class LineCloud;
00044 class OccupancyGrid2D;
00045 class OccupancyGrid3D;
00046 class Label;
00047 class TriMesh;
00048
00049
00061 class ObjectVisitor
00062 {
00063 public:
00064 virtual ~ObjectVisitor() {}
00065
00066 virtual void visit(CameraObject *obj) = 0;
00067
00068 virtual void visit(ModelObject *obj) = 0;
00069
00070 virtual void visit(SphereObject *obj) = 0;
00071
00072 virtual void visit(GroupObject *obj) = 0;
00073
00074 virtual void visit(CubeObject *obj) = 0;
00075
00076 virtual void visit(PolygonObject *obj) = 0;
00077
00078 virtual void visit(CylinderObject *obj) = 0;
00079
00080 virtual void visit(CircleObject *obj) = 0;
00081
00082 virtual void visit(Polyline *obj) = 0;
00083
00084 virtual void visit(Hinge *obj) = 0;
00085
00086 virtual void visit(Slider *obj) = 0;
00087
00088 virtual void visit(GridObject *obj) = 0;
00089
00090 virtual void visit(PointCloud *obj) = 0;
00091
00092 virtual void visit(LineCloud *obj) = 0;
00093
00094 virtual void visit(OccupancyGrid2D *obj) = 0;
00095
00096 virtual void visit(OccupancyGrid3D *obj) = 0;
00097
00098 virtual void visit(Label *obj) = 0;
00099
00100 virtual void visit(TriMesh *obj) = 0;
00101 };
00102 }
00103
00104
00105 #endif // PEEKABOT_OBJECT_VISITOR_HH_INCLUDED