00001 // /////////////////// *********************** \\\\\\\\\\\\\\\\\\\\ \\ 00002 // 00003 // This file is part of the Sector 5, 3D graphic game. 00004 // Copyright (C) 2000-2002 by PC John. All rights reserved. 00005 // 00006 // This game is free software; you can redistribute it and/or 00007 // modify it under the terms of the GNU Lesser General Public License 00008 // version 2.1 as published by the Free Software Foundation. See the 00009 // file LICENSE.LGPL at the root directory of the distribution for 00010 // more details. 00011 // 00012 // If you want to use Sector 5 code for applications not compatible 00013 // with the LGPL license, please contact PC John at pcjohn@email.cz. 00014 // 00015 // \\\\\\\\\\\\\\\\\\\ *********************** //////////////////// // 00016 00017 00018 #ifndef S5_COLLISION_MANAGER_H_INCLUDED_ 00019 #define S5_COLLISION_MANAGER_H_INCLUDED_ 00020 00021 #include <Inventor/SoLists.h> 00022 class SoGroup; 00023 class SoLists; 00024 class S5object; 00025 00026 00027 00028 class S5collisionManager 00029 { 00030 public: 00031 00032 void setObject(S5object* object); 00033 S5object* getObject() const { return object; }; 00034 00035 void setScene(SoGroup* scene); 00036 SoGroup* getScene() const { return scene; }; 00037 00038 int getCollidingObjectsNum(float minDistance = 0.f); 00039 const SoNodeList& getCollidingObjects(float minDistance = 0.f); 00040 00041 void reset(); 00042 00043 S5collisionManager(); 00044 00045 protected: 00046 00047 S5object *object; 00048 SoGroup *scene; 00049 SoNodeList collisionList; 00050 00051 void updateCollisionList(float minDistance); 00052 bool collisionListValid; 00053 00054 }; 00055 00056 00057 #endif /* S5_COLLISION_MANAGER_H_INCLUDED_ */