MeVisLabToolboxReference
|
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