MeVisLabToolboxReference
|
00001 // **InsertLicense** code 00002 //---------------------------------------------------------------------------------- 00006 00011 //---------------------------------------------------------------------------------- 00012 #ifndef __CSOProcessor_H 00013 #define __CSOProcessor_H 00014 00015 #include "SoCSODefines.h" 00016 #include "SoCSOSystem.h" 00017 00018 #include <CSOBase/CSOModuleBase/CSOGenerator.h> 00019 #include <CSOBase/CSOScopeEvents.h> 00020 00021 #include "CSOProcessorData.h" 00022 00023 // Used in processors for setting mouse cursor shapes. 00024 #include <SoViewerElement.h> 00025 00026 00027 ML_START_NAMESPACE 00028 00029 00031 00035 class SOCSO_EXPORT CSOProcessor : public CSOGenerator 00036 { 00037 00038 public: 00039 00041 CSOProcessor(std::string type="CSOProcessor", int numInImg=0, int numOutImg=0); 00042 00045 virtual bool process(CSOEvalEventView2DInfos view2DInfos, CSOEvalEventCSOInfos csoInfos); 00046 00048 virtual void draw(CSODrawView2DInfos view2DInfos, CSODrawCSOInfos csoInfos); 00049 00052 virtual bool needsMemoryImage(); 00053 00055 virtual void setMemoryImage(float* imageData, int sizex, int sizey, int voxelPosZ, 00056 const Matrix4& voxelToWorldMatrix, const Matrix4& worldToVoxelMatrix, 00057 View2DSliceList* slicelist); 00058 00060 virtual bool isCurrentlyGenerating(); 00062 virtual bool isCurrentlyEditing(); 00064 virtual bool couldCloseCSO(); 00065 00067 inline CSOProcessorMode getProcessorMode() { return _processorMode; } 00069 inline CSOProcessorPickingMode getPickingMode() { return _pickingMode; } 00071 virtual void resetInteractionState(); 00073 virtual void triggerSetMouseCursor(SoView2D* view2d, bool shouldSetMouseCursor); 00074 00075 protected: 00076 00077 /* FIELDS */ 00078 00080 BaseField* _outProcessDataFld; 00081 00082 00083 /* MEMBER VARIABLES */ 00084 00086 CSOProcessorData _processorData; 00088 CSOProcessorMode _processorMode; 00089 // The mode of picking. 00090 CSOProcessorPickingMode _pickingMode; 00091 00092 00093 /* METHODS */ 00094 00096 virtual ~CSOProcessor(); 00097 00098 private: 00099 00100 ML_MODULE_CLASS_HEADER(CSOProcessor); 00101 00102 }; 00103 00105 00106 00107 ML_END_NAMESPACE 00108 00109 00110 #endif // __CSOInteraction_H