Point Cloud Library (PCL)
1.7.0
|
00001 #ifndef PCL_OUTOFCORE_OBJECT_H_ 00002 #define PCL_OUTOFCORE_OBJECT_H_ 00003 00004 // C++ 00005 #include <map> 00006 #include <set> 00007 #include <string> 00008 00009 // VTK 00010 #include <vtkActor.h> 00011 #include <vtkActorCollection.h> 00012 #include <vtkRenderer.h> 00013 #include <vtkSmartPointer.h> 00014 00015 // Boost 00016 //#include <boost/date_time.hpp> 00017 //#include <boost/filesystem.hpp> 00018 #include <boost/thread.hpp> 00019 00020 //Forward Declaration 00021 class Scene; 00022 00023 class Object 00024 { 00025 public: 00026 00027 // Operators 00028 // ----------------------------------------------------------------------------- 00029 Object (std::string name); 00030 00031 virtual 00032 ~Object () { } 00033 00034 00035 // Accessors 00036 // ----------------------------------------------------------------------------- 00037 std::string 00038 getName () const; 00039 00040 void 00041 setName (std::string name); 00042 00043 virtual void 00044 render (vtkRenderer* renderer); 00045 00046 bool 00047 hasActor (vtkActor *actor); 00048 00049 void 00050 addActor (vtkActor *actor); 00051 00052 void 00053 removeActor (vtkActor *actor); 00054 00055 vtkSmartPointer<vtkActorCollection> 00056 getActors (); 00057 00058 protected: 00059 vtkSmartPointer<vtkActorCollection> actors_; 00060 boost::mutex actors_mutex_; 00061 00062 private: 00063 00064 // Members 00065 // ----------------------------------------------------------------------------- 00066 std::string name_; 00067 std::map<vtkActor*, std::set<vtkRenderer*> > associated_renderers_; 00068 00069 }; 00070 00071 #endif