MeVisLabToolboxReference
MeVisLab/Standard/Sources/Inventor/SoCSO/CSOProcessor/CSOProcessor.h
Go to the documentation of this file.
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