00001 00005 #ifndef Group_h 00006 #define Group_h 00007 00008 #include "Object.h" 00009 #include <vector> 00010 00011 class Group : public Object { 00012 public: 00013 Group(); 00014 virtual ~Group(); 00015 00016 void addObject(Object* object); 00017 virtual void preprocess(); 00018 virtual void getBounds(BoundingBox& bbox) const; 00019 virtual void intersect(HitRecord& hit, const RenderContext& context, const Ray& ray) const; 00020 00021 protected: 00022 std::vector<Object*> objects; 00023 00024 private: 00025 Group(const Group&); 00026 Group& operator=(const Group&); 00027 }; 00028 00029 #endif 00030