MeVisLabToolboxReference
MeVisLab/Standard/Sources/Inventor/SoCSO/SoCSODefines.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00004 
00009 //----------------------------------------------------------------------------------
00010 
00011 // Some definitions for the SoCSO project.
00012 
00013 #ifndef __SoCSODefines_H
00014 #define __SoCSODefines_H
00015 
00016 #include <SoCSOIncludes.h>
00017 #include <CSOBase/CSODefines.h>
00018 
00020 
00021 ML_START_NAMESPACE
00022 class StylePalette;
00023 class CSOProcessorData;
00024 class CSOVisualizationSettings;
00025 ML_END_NAMESPACE
00026 
00027 class SoCSOTransform;
00028 
00029 
00031 
00032 struct CSOEvalEventView2DInfos 
00033 {
00034   CSOEvalEventView2DInfos()
00035   {
00036     view2D = NULL;
00037     slicelist = NULL;
00038     ec = NULL;
00039     phase = EVENT_ANY;
00040   }
00041   SoView2D*        view2D;
00042   View2DSliceList* slicelist;
00043   View2DEvent*     ec;
00044   View2DEventPhase phase;
00045 };
00046 
00048 
00049 struct CSOEvalEventCSOInfos 
00050 {
00051   CSOEvalEventCSOInfos()
00052   {
00053     csoList = NULL;
00054     hitMode = 0;
00055     recentlySelectedCSO = NULL;
00056     recentlySelectedSeedPoint = NULL;
00057     recentlySelectedPathPoints = NULL;
00058     timepointindex = -1;
00059     deleteSeedPoint = false;
00060     interactOnlyOnSelectedCSOs = false;
00061   }
00062 
00063   ml::CSOList*       csoList;
00064   ml::Vector3        currentHitPoint;
00065   int                hitMode;
00066   ml::CSO*           recentlySelectedCSO;
00067   ml::CSOSeedPoint*  recentlySelectedSeedPoint;
00068   ml::CSOPathPoints* recentlySelectedPathPoints;
00069   ml::CSOBoundingBox slabBB;
00070   int                timepointindex;
00071   bool               deleteSeedPoint;
00072   bool               interactOnlyOnSelectedCSOs;
00073 };
00074 
00076 
00078 typedef CSOEvalEventView2DInfos CSOProcessView2DInfos;
00079 typedef CSOEvalEventCSOInfos    CSOProcessCSOInfos;
00080 
00082 
00083 struct CSODrawView2DInfos 
00084 {
00085   CSODrawView2DInfos()
00086   {
00087     slicelist = NULL;
00088     slice = NULL;
00089     z = -1;
00090     stylePalette = NULL;
00091     seriesInstanceUID = "";
00092     csoTransform = NULL;
00093   }
00094   View2DSliceList*  slicelist;
00095   View2DSlice*      slice;
00096   int               z;
00097   std::string       seriesInstanceUID;  
00098   SoCSOTransform*   csoTransform;
00099 
00100   ml::StylePalette* stylePalette;
00101 };
00102 
00104 
00105 enum CSOSliceInformation
00106 {
00107   CSO_SLICE_UNKNOWN = 0,      
00108   CSO_SLICE_COMPLETELY_ON,    
00109   CSO_SLICE_CROSSED,          
00110   CSO_SLICE_COMPLETELY_ABOVE, 
00111   CSO_SLICE_COMPLETELY_BELOW  
00112 };
00113 
00115 
00116 struct CSOSliceCrossing
00117 {
00118   std::vector<ml::Vector3> positions;
00119 };
00120 
00122 
00123 struct CSODrawSliceInformation
00124 {
00125   CSODrawSliceInformation() 
00126   {
00127     sliceInformation = CSO_SLICE_UNKNOWN;
00128     distanceFromSliceInVoxels = 0;
00129   }
00130   
00131   CSOSliceInformation sliceInformation;  
00132   int distanceFromSliceInVoxels;
00133 };
00134 
00136 
00137 struct CSODrawCSOInfos 
00138 {
00139   CSODrawCSOInfos()
00140   {
00141     csoList = NULL;
00142     cso = NULL;
00143   }
00144   ml::CSOBoundingBox slabBB;
00145   ml::CSOList*       csoList;
00146   ml::CSO*           cso;
00147   std::vector<int>   csoIds;
00148 
00149   void setDrawnCSOIDs(const std::vector<int>& ids) 
00150   {
00151     csoIds.clear();
00152     for (size_t i = 0; i < ids.size(); ++i) {
00153       csoIds.push_back(ids[i]);
00154     }
00155   }
00156 
00157   CSODrawCSOInfos& operator=(const CSODrawCSOInfos& infos)
00158   {
00159     if (&infos != this)
00160     {
00161       slabBB = infos.slabBB;
00162       csoList = infos.csoList;
00163       setDrawnCSOIDs(infos.csoIds);
00164     }
00165     return *this;
00166   }
00167 };
00168 
00170 
00172 enum SEED_POINT_MARKER_MODES 
00173 {
00174   SHOW_MARKER_NONE    = 0, 
00175   SHOW_MARKER_RECT    = 1, 
00176   SHOW_MARKER_CIRCLE  = 2  
00177 };
00178 
00180 
00182 enum COLOR_MODES 
00183 {
00184   COLOR_AS_CSO  = 0, 
00185   COLOR_GENERAL = 1  
00186 };
00187 
00189 
00191 enum STYLE_PALETTE_INDEX_USE 
00192 {
00193   USE_INDEX_FOR_CSO   = 0, 
00194   USE_INDEX_FOR_GROUP = 1  
00195 };
00196 
00198 
00200 struct CSOVisualParameters 
00201 {
00202   float pathPointRed;
00203   float pathPointGreen;
00204   float pathPointBlue;
00205   float pathPointAlpha; 
00206   float pathPointWidth;
00207   unsigned short pathPointStyle;
00208 
00209   float seedPointRed;
00210   float seedPointGreen;
00211   float seedPointBlue;
00212   float seedPointAlpha;
00213   float seedPointSize;
00214   int   seedPointStyle;
00215 
00216   float labelRed;
00217   float labelGreen;
00218   float labelBlue;
00219   float labelAlpha;
00220 };
00221 
00223 
00226 struct CSOEditorState
00227 {
00228   CSOEditorState()
00229   {
00230     csoCurrentlyUnderMouse = NULL;
00231     isCurrentlyMovingCSO = false;
00232     processorData = NULL;
00233   }
00234   ml::CSO* csoCurrentlyUnderMouse;
00235   bool isCurrentlyMovingCSO;
00236   ml::CSOProcessorData* processorData;
00237 };
00238 
00240 
00242 enum HIT_POINT_MODE 
00243 {
00244   HIT_NOTHING_HIT = 0, 
00245   HIT_SEED_POINT  = 1, 
00246   HIT_PATH_POINT  = 2, 
00247 };
00248 
00250 
00252 enum SELECTION_COLOR_MODES 
00253 {
00254   SELECTION_COLOR_MODE_BRIGHTEN = 0, 
00255   SELECTION_COLOR_MODE_FIXED    = 1  
00256 };
00257 
00259 
00261 enum SELECTION_LINE_WIDTH_MODES 
00262 {
00263   SELECTION_LINE_WIDEN = 0, 
00264   SELECTION_LINE_FIXED = 1  
00265 };
00266 
00268 
00270 enum SELECTED_SEED_POINT_COLOR_MODES 
00271 {
00272   SELECTED_SEED_POINT_COLOR_MODE_BRIGHTEN = 0, 
00273   SELECTED_SEED_POINT_COLOR_MODE_FIXED = 1     
00274 };
00275 
00277 
00279 enum SELECTED_SEED_POINT_SIZE_MODES 
00280 {
00281   SELECTED_SEED_POINT_ENLARGE = 0, 
00282   SELECTED_SEED_POINT_FIXED = 1    
00283 };
00284 
00286 
00288 enum HIGHLIGHT_COLOR_MODES 
00289 {
00290   HIGHLIGHT_COLOR_MODE_BRIGHTEN = 0, 
00291   HIGHLIGHT_COLOR_MODE_FIXED    = 1  
00292 };
00293 
00295 
00297 enum HIGHLIGHT_LINE_WIDTH_MODES 
00298 {
00299   HIGHLIGHT_LINE_WIDEN = 0, 
00300   HIGHLIGHT_LINE_FIXED = 1  
00301 };
00302 
00304 
00306 enum SIDE_FILLING_LINE_WIDTH_MODES 
00307 {
00308   SIDE_FILLING_WIDTH_AS_CSO = 0,
00309   SIDE_FILLING_WIDTH_AUTOMATIC,
00310   SIDE_FILLING_WIDTH_MANUAL
00311 };
00312 
00314 
00315 const unsigned short LINE_PATTERN_NONE   = 0x0000;       
00316 const unsigned short LINE_PATTERN_SOLID  = 0xFFFF;       //<! Line pattern for a solid line.
00317 const unsigned short LINE_PATTERN_DASHED = 0xF0FF;       
00318 const unsigned short LINE_PATTERN_DOTTED = 0x0808;       
00319 const unsigned short LINE_PATTERN_SHORT_DASHED = 0xC7C7; //<! Line pattern for a short dashed line.
00320 
00322 
00323 
00324 #endif // __SoCSODefines_H