ObjsInAreaExplorer.h

Go to the documentation of this file.
00001 /* $Id: ObjsInAreaExplorer.h,v 1.3 2002/11/05 14:41:19 anonymous Exp $ */
00002 
00003 #ifndef __OBJECTS_INSIDE_AREA_EXPLORER_H
00004 #define __OBJECTS_INSIDE_AREA_EXPLORER_H
00005 
00006 #include <esg/geometry/Geometry.h>
00007 #include <esg/Group.h>
00008 #include <esg/SceneGraphObject.h>
00009 #include <esg/Definitions.h>
00010 #include <esg/explorer/Explorer.h>
00011 
00012 /*
00013  * Finds drawable objects (shapes) interfering given area.
00014  * Shapes are returned by the result() method, shape by shape
00015  * until NULL is retured.
00016  */
00017 
00018 namespace esg {
00019 
00020 class OGSCENE_EXPORT ObjsInAreaExplorer : public Explorer {
00021 protected:
00022     struct TrObj {
00023         SceneGraphObject * pObject;
00024         Matrix4          * pTrMat;
00025     };
00026     
00027     Geometry*   _pArea;
00028     Geometry*   _pTrArea;
00029     List<TrObj> _foundObjects;
00030 
00031 protected:
00032     virtual bool _iterate                   (SceneGraphObject&);
00033     virtual bool _process_leaf              (SceneGraphObject&);
00034     virtual void _accept_new_transformation (const Matrix4&);
00035 
00036     ObjsInAreaExplorer () {}
00037     
00038 public:
00039     ObjsInAreaExplorer(const Geometry& /* area */);
00040     virtual ~ObjsInAreaExplorer ();
00041 
00042     SceneGraphObject* result (Matrix4&, bool&);
00043 };
00044 
00045 }; // namespace
00046 
00047 #endif // __OBJECTS_INSIDE_AREA_EXPLORER_H

Generated on Wed Jun 28 12:24:28 2006 for esg by  doxygen 1.4.6