Page principale | Liste des namespaces | Hiérarchie des classes | Liste par ordre alphabétique | Liste des composants | Liste des fichiers | Composants | Déclarations

CollisionManager.h

Aller à la documentation de ce fichier.
00001 /*=========================================================================
00002 UberSim Source Code Release
00003 -------------------------------------------------------------------------
00004 Copyright (C) 2002 Manuela Veloso, Brett Browning, Mike Bowling,
00005                    James Bruce; {mmv, brettb, mhb, jbruce}@cs.cmu.edu
00006                    Erick Tryzelaar {erickt}@andrew.cmu.edu
00007 School of Computer Science, Carnegie Mellon University
00008 -------------------------------------------------------------------------
00009 This software is distributed under the GNU General Public License,
00010 version 2.  If you do not have a copy of this licence, visit
00011 www.gnu.org, or write: Free Software Foundation, 59 Temple Place,
00012 Suite 330 Boston, MA 02111-1307 USA.  This program is distributed
00013 in the hope that it will be useful, but WITHOUT ANY WARRANTY,
00014 including MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00015 -------------------------------------------------------------------------*/
00016 
00017 #ifndef __COLLIDER_H__
00018 #define __COLLIDER_H__
00019 
00020 #include "nommgr.h"
00021 #include <vector>
00022 #include "mmgr.h"
00028 class CollisionGroup;
00029 class Geometry;
00030 class Node;
00031 class Spatial;
00032 
00033 class CollisionManager
00034 {
00035     public:
00036         static CollisionManager* getInstance ();
00037     bool getShowMode ();
00038     void setShowMode(bool mode);
00039 
00040     public:
00041         virtual ~CollisionManager ();
00042 
00043     public:
00044         void initialize ();
00045         void shutdown   ();
00046         
00047     public:
00048         void beginFrame ();
00049         void frame      ();
00050         void endFrame   ();
00051         
00052     public:
00053         int             addCollisionGroup    (CollisionGroup* collisionGroup);
00054         CollisionGroup* removeCollisionGroup (unsigned int i);
00055         void            removeCollisionGroup (CollisionGroup* collisionGroup);
00056 
00057     public:
00058         void addCollision (Geometry* geometry1, Spatial*  spatial2);
00059         void addCollision (Geometry* geometry1, Geometry* geometry2);
00060 
00061     protected:
00062         CollisionManager ();
00063         
00064     protected:
00065         bool isInitialized;
00066         bool isShutdown;
00067     bool static show_contacts;
00068     
00069         std::vector<CollisionGroup*> collisionGroups;
00070 };
00071 
00072 #endif

Généré le Fri Mar 24 12:03:07 2000 par doxygen 1.3.3