MCPcopy Create free account
hub / github.com/Kitware/VTK / WindowLevel

Method WindowLevel

Interaction/Widgets/vtkImagePlaneWidget.cxx:1133–1202  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

1131
1132//------------------------------------------------------------------------------
1133void vtkImagePlaneWidget::WindowLevel(int X, int Y)
1134{
1135 const int* size = this->CurrentRenderer->GetSize();
1136 double window = this->InitialWindow;
1137 double level = this->InitialLevel;
1138
1139 // Compute normalized delta
1140
1141 double dx = 4.0 * (X - this->StartWindowLevelPositionX) / size[0];
1142 double dy = 4.0 * (this->StartWindowLevelPositionY - Y) / size[1];
1143
1144 // Scale by current values
1145
1146 if (fabs(window) > 0.01)
1147 {
1148 dx = dx * window;
1149 }
1150 else
1151 {
1152 dx = dx * (window < 0 ? -0.01 : 0.01);
1153 }
1154 if (fabs(level) > 0.01)
1155 {
1156 dy = dy * level;
1157 }
1158 else
1159 {
1160 dy = dy * (level < 0 ? -0.01 : 0.01);
1161 }
1162
1163 // Abs so that direction does not flip
1164
1165 if (window < 0.0)
1166 {
1167 dx = -1 * dx;
1168 }
1169 if (level < 0.0)
1170 {
1171 dy = -1 * dy;
1172 }
1173
1174 // Compute new window level
1175
1176 double newWindow = dx + window;
1177 double newLevel = level - dy;
1178
1179 if (fabs(newWindow) < 0.01)
1180 {
1181 newWindow = 0.01 * (newWindow < 0 ? -1 : 1);
1182 }
1183 if (fabs(newLevel) < 0.01)
1184 {
1185 newLevel = 0.01 * (newLevel < 0 ? -1 : 1);
1186 }
1187
1188 if (!this->UserControlledLookupTable)
1189 {
1190 if ((newWindow < 0 && this->CurrentWindow > 0) || (newWindow > 0 && this->CurrentWindow < 0))

Callers 2

OnMouseMoveMethod · 0.95
WidgetInteractionMethod · 0.45

Calls 3

InvertTableMethod · 0.95
SetTableRangeMethod · 0.80
GetSizeMethod · 0.45

Tested by

no test coverage detected