00001
00002
00003
00004
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
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
00028 namespace col {
00029
00030
00031
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;
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 }
00091
00092 #endif //ColRequest_H
00093
00094
00095