ColRequest.h

00001 //---------------------------------------------------------------------------
00002 //  Request
00003 //---------------------------------------------------------------------------
00004 //  Copyright (C):
00005 //---------------------------------------------------------------------------
00006 
00007 
00008 #ifndef ColRequest_H
00009 #define ColRequest_H
00010 #if defined(__sgi) || defined(_WIN32)
00011 #pragma once
00012 #endif
00013 
00014 
00015 //---------------------------------------------------------------------------
00016 //  Includes
00017 //---------------------------------------------------------------------------
00018 
00019 #include <vector>
00020 
00021 #include <OpenSG/OSGConfig.h>
00022 #include <OpenSG/OSGGeoProperty.h>
00023 #include <OpenSG/OSGGeometry.h>
00024 
00025 #include <col_import_export.h>
00026 
00027 // Collision detection namespace
00028 namespace col {
00029     
00030 //---------------------------------------------------------------------------
00031 //  Forward References
00032 //---------------------------------------------------------------------------
00033 
00034 struct Data;
00035 struct Dop;
00036 struct PipelineData;
00037 
00038 template<class T> class Queue;
00039 struct Request;
00040 class Matrix;
00041 class ColObj;
00042 struct Callback;
00043 
00049 enum RequestE
00050 {
00051     ADD_OBJECT,
00052     ADD_CALLBACK,
00053     REMOVE_CALLBACK,
00054     ACTIVATE_OBJECT,
00055     DEACTIVATE_OBJECT,
00056     ADD_CYCLE_CALLBACK
00057 };
00058 
00059 
00067 struct COL_EXPORTIMPORT  Request
00068 {
00069     RequestE            req;                        // the raison d'etre
00070     osg::GeometryPtr    geom;
00071     osg::NodePtr        node;
00072     Callback            *callback;
00073 
00074     Request( RequestE req, Callback *callback );
00075     Request( RequestE req, osg::NodePtr node );
00076 
00077     void operator = ( const Request &source );
00078 
00079     void process( bool show_hulls, AlgoE algo, Matrix* colmatrix,
00080                   std::vector<ColObj>* colobjs, std::vector<Callback*> cycle_callbacks,
00081                   bool useHulls, Grid* grid );
00082 
00083     const char * getName( void ) const;
00084 
00085     static const char *Names[];
00086 };
00087 
00088 
00089 
00090 }//namespace col
00091 
00092 #endif //ColRequest_H
00093 
00094 
00095 

Generated on Tue Oct 16 18:12:21 2007 for CollDet by  doxygen 1.5.2