00001 00009 #ifndef SELECTMGR_H 00010 #define SELECTMGR_H 00011 00012 // Gluebase includes 00013 #define OUTSIDE_GLUE_CORE 00014 #include <std/list.H> 00015 #include <std/strings.H> 00016 #include <mlib/points.H> 00017 00018 namespace InSpace { 00019 00020 class DrawObj; 00021 00022 class SELECTMGR 00023 { 00024 public: 00025 00026 // checks point intersection with visible objects, 00027 // returns object or NULL 00028 static DrawObj* objIntersect(Wpt pw); 00029 static DrawObj* objIntersect(ROOMpt pr); 00030 // ray intersection with visible objects 00031 static DrawObj* objIntersect(Wpt p, Wvec dir); 00032 00033 00034 static void clearSelection(); 00035 static void addToSelection(DrawObj* obj); 00036 static void removeFromSelection(DrawObj* obj); 00037 00038 static int numSelected(); 00039 static DrawObj* selectedObj(int i); 00040 static cARRAY<DrawObj*>& selection(); 00041 00042 static bool contains(DrawObj* d); 00043 protected: 00044 00045 static ARRAY<DrawObj*> _selected; 00046 00047 }; 00048 00049 } 00050 #endif