diff --git a/Charts/Core/Testing/Cxx/TestParallelCoordinatesSelection.cxx b/Charts/Core/Testing/Cxx/TestParallelCoordinatesSelection.cxx index e7d80e88a37fdd8cda29fa004eba67cc920a417b..58c05366b668e417b047b1840214a21957aa1920 100644 --- a/Charts/Core/Testing/Cxx/TestParallelCoordinatesSelection.cxx +++ b/Charts/Core/Testing/Cxx/TestParallelCoordinatesSelection.cxx @@ -15,308 +15,293 @@ #include <vtkRenderer.h> #include <vtkTable.h> -static const int expectedValues[2] = { 62, 105 }; +static const int expectedValues[14] = { 39, 40, 41, 42, 43, 44, 45, 54, 55, 56, 57, 58, 59, 60 }; -static const char* eventLog = "# StreamVersion 1.1\n" - "ExposeEvent 0 399 0 0 0 0\n" - "RenderEvent 0 399 0 0 0 0\n" - "TimerEvent 0 399 0 0 0 0\n" - "RenderEvent 0 399 0 0 0 0\n" - "EnterEvent 599 141 0 0 0 0\n" - "MouseMoveEvent 599 141 0 0 0 0\n" - "MouseMoveEvent 220 91 0 0 0 0\n" - "KeyPressEvent 220 91 0 0 1 Control_L\n" - "CharEvent 220 91 0 0 1 Control_L\n" - "KeyPressEvent 220 91 2 0 1 Shift_L\n" - "CharEvent 220 91 2 0 1 Shift_L\n" - "LeftButtonPressEvent 220 91 3 0 0 Shift_L\n" - "TimerEvent 220 91 3 0 0 Shift_L\n" - "RenderEvent 220 91 3 0 0 Shift_L\n" - "MouseMoveEvent 220 96 3 0 0 Shift_L\n" - "MouseMoveEvent 219 115 3 0 0 Shift_L\n" - "TimerEvent 219 115 3 0 0 Shift_L\n" - "RenderEvent 219 115 3 0 0 Shift_L\n" - "MouseMoveEvent 219 118 3 0 0 Shift_L\n" - "MouseMoveEvent 219 127 3 0 0 Shift_L\n" - "TimerEvent 219 127 3 0 0 Shift_L\n" - "RenderEvent 219 127 3 0 0 Shift_L\n" - "MouseMoveEvent 219 128 3 0 0 Shift_L\n" - "MouseMoveEvent 219 130 3 0 0 Shift_L\n" - "TimerEvent 219 130 3 0 0 Shift_L\n" - "RenderEvent 219 130 3 0 0 Shift_L\n" - "MouseMoveEvent 219 130 3 0 0 Shift_L\n" - "MouseMoveEvent 219 131 3 0 0 Shift_L\n" - "TimerEvent 219 131 3 0 0 Shift_L\n" - "RenderEvent 219 131 3 0 0 Shift_L\n" - "MouseMoveEvent 219 132 3 0 0 Shift_L\n" - "MouseMoveEvent 219 139 3 0 0 Shift_L\n" - "TimerEvent 219 139 3 0 0 Shift_L\n" - "RenderEvent 219 139 3 0 0 Shift_L\n" - "MouseMoveEvent 219 140 3 0 0 Shift_L\n" - "MouseMoveEvent 219 143 3 0 0 Shift_L\n" - "TimerEvent 219 143 3 0 0 Shift_L\n" - "RenderEvent 219 143 3 0 0 Shift_L\n" - "MouseMoveEvent 219 144 3 0 0 Shift_L\n" - "MouseMoveEvent 219 147 3 0 0 Shift_L\n" - "TimerEvent 219 147 3 0 0 Shift_L\n" - "RenderEvent 219 147 3 0 0 Shift_L\n" - "MouseMoveEvent 219 149 3 0 0 Shift_L\n" - "MouseMoveEvent 219 152 3 0 0 Shift_L\n" - "TimerEvent 219 152 3 0 0 Shift_L\n" - "RenderEvent 219 152 3 0 0 Shift_L\n" - "MouseMoveEvent 219 153 3 0 0 Shift_L\n" - "MouseMoveEvent 219 155 3 0 0 Shift_L\n" - "MouseMoveEvent 219 160 3 0 0 Shift_L\n" - "TimerEvent 219 160 3 0 0 Shift_L\n" - "RenderEvent 219 160 3 0 0 Shift_L\n" - "LeftButtonReleaseEvent 219 160 3 0 0 Shift_L\n" - "TimerEvent 219 160 3 0 0 Shift_L\n" - "RenderEvent 219 160 3 0 0 Shift_L\n" - "MouseMoveEvent 220 160 3 0 0 Shift_L\n" - "MouseMoveEvent 221 159 3 0 0 Shift_L\n" - "MouseMoveEvent 410 86 3 0 0 Shift_L\n" - "KeyReleaseEvent 410 86 3 0 1 Control_L\n" - "MouseMoveEvent 408 85 1 0 0 Control_L\n" - "KeyReleaseEvent 408 85 1 0 1 Shift_L\n" - "MouseMoveEvent 405 83 0 0 0 Shift_L\n" - "MouseMoveEvent 403 83 0 0 0 Shift_L\n" - "MouseMoveEvent 384 82 0 0 0 Shift_L\n" - "KeyPressEvent 384 82 0 0 1 Control_L\n" - "CharEvent 384 82 0 0 1 Control_L\n" - "KeyPressEvent 384 82 2 0 1 Shift_L\n" - "CharEvent 384 82 2 0 1 Shift_L\n" - "MouseMoveEvent 383 82 3 0 0 Shift_L\n" - "MouseMoveEvent 379 80 3 0 0 Shift_L\n" - "LeftButtonPressEvent 379 80 3 0 0 Shift_L\n" - "TimerEvent 379 80 3 0 0 Shift_L\n" - "RenderEvent 379 80 3 0 0 Shift_L\n" - "MouseMoveEvent 379 83 3 0 0 Shift_L\n" - "MouseMoveEvent 379 95 3 0 0 Shift_L\n" - "TimerEvent 379 95 3 0 0 Shift_L\n" - "RenderEvent 379 95 3 0 0 Shift_L\n" - "MouseMoveEvent 379 97 3 0 0 Shift_L\n" - "MouseMoveEvent 379 106 3 0 0 Shift_L\n" - "TimerEvent 379 106 3 0 0 Shift_L\n" - "RenderEvent 379 106 3 0 0 Shift_L\n" - "MouseMoveEvent 379 107 3 0 0 Shift_L\n" - "MouseMoveEvent 379 115 3 0 0 Shift_L\n" - "TimerEvent 379 115 3 0 0 Shift_L\n" - "RenderEvent 379 115 3 0 0 Shift_L\n" - "MouseMoveEvent 379 116 3 0 0 Shift_L\n" - "TimerEvent 379 116 3 0 0 Shift_L\n" - "RenderEvent 379 116 3 0 0 Shift_L\n" - "LeftButtonReleaseEvent 379 116 3 0 0 Shift_L\n" - "TimerEvent 379 116 3 0 0 Shift_L\n" - "RenderEvent 379 116 3 0 0 Shift_L\n" - "MouseMoveEvent 380 122 3 0 0 Shift_L\n" - "KeyReleaseEvent 380 122 3 0 1 Control_L\n" - "MouseMoveEvent 382 129 1 0 0 Control_L\n" - "MouseMoveEvent 388 143 1 0 0 Control_L\n" - "KeyReleaseEvent 388 143 1 0 1 Shift_L\n" - "MouseMoveEvent 390 156 0 0 0 Shift_L\n" - "MouseMoveEvent 393 164 0 0 0 Shift_L\n" - "MouseMoveEvent 381 317 0 0 0 Shift_L\n" - "KeyPressEvent 381 317 0 0 1 Control_L\n" - "CharEvent 381 317 0 0 1 Control_L\n" - "MouseMoveEvent 380 317 2 0 0 Control_L\n" - "MouseMoveEvent 379 317 2 0 0 Control_L\n" - "KeyPressEvent 379 317 2 0 1 Shift_L\n" - "CharEvent 379 317 2 0 1 Shift_L\n" - "LeftButtonPressEvent 379 317 3 0 0 Shift_L\n" - "TimerEvent 379 317 3 0 0 Shift_L\n" - "RenderEvent 379 317 3 0 0 Shift_L\n" - "MouseMoveEvent 379 318 3 0 0 Shift_L\n" - "MouseMoveEvent 379 329 3 0 0 Shift_L\n" - "TimerEvent 379 329 3 0 0 Shift_L\n" - "RenderEvent 379 329 3 0 0 Shift_L\n" - "MouseMoveEvent 379 331 3 0 0 Shift_L\n" - "MouseMoveEvent 379 341 3 0 0 Shift_L\n" - "TimerEvent 379 341 3 0 0 Shift_L\n" - "RenderEvent 379 341 3 0 0 Shift_L\n" - "MouseMoveEvent 379 343 3 0 0 Shift_L\n" - "MouseMoveEvent 379 348 3 0 0 Shift_L\n" - "TimerEvent 379 348 3 0 0 Shift_L\n" - "RenderEvent 379 348 3 0 0 Shift_L\n" - "MouseMoveEvent 379 349 3 0 0 Shift_L\n" - "MouseMoveEvent 379 351 3 0 0 Shift_L\n" - "TimerEvent 379 351 3 0 0 Shift_L\n" - "RenderEvent 379 351 3 0 0 Shift_L\n" - "LeftButtonReleaseEvent 379 351 3 0 0 Shift_L\n" - "TimerEvent 379 351 3 0 0 Shift_L\n" - "RenderEvent 379 351 3 0 0 Shift_L\n" - "MouseMoveEvent 379 351 3 0 0 Shift_L\n" - "MouseMoveEvent 379 350 3 0 0 Shift_L\n" - "MouseMoveEvent 378 207 3 0 0 Shift_L\n" - "KeyReleaseEvent 378 207 3 0 1 Control_L\n" - "MouseMoveEvent 376 206 1 0 0 Control_L\n" - "MouseMoveEvent 373 202 1 0 0 Control_L\n" - "MouseMoveEvent 371 200 1 0 0 Control_L\n" - "KeyReleaseEvent 371 200 1 0 1 Shift_L\n" - "MouseMoveEvent 366 196 0 0 0 Shift_L\n" - "MouseMoveEvent 218 99 0 0 0 Shift_L\n" - "KeyPressEvent 218 99 0 0 1 Shift_L\n" - "CharEvent 218 99 0 0 1 Shift_L\n" - "KeyPressEvent 218 99 1 0 1 Control_L\n" - "CharEvent 218 99 1 0 1 Control_L\n" - "MouseMoveEvent 218 101 3 0 0 Control_L\n" - "MouseMoveEvent 220 130 3 0 0 Control_L\n" - "LeftButtonPressEvent 220 130 3 0 0 Control_L\n" - "TimerEvent 220 130 3 0 0 Control_L\n" - "RenderEvent 220 130 3 0 0 Control_L\n" - "MouseMoveEvent 220 129 3 0 0 Control_L\n" - "MouseMoveEvent 220 126 3 0 0 Control_L\n" - "TimerEvent 220 126 3 0 0 Control_L\n" - "RenderEvent 220 126 3 0 0 Control_L\n" - "MouseMoveEvent 220 124 3 0 0 Control_L\n" - "MouseMoveEvent 220 122 3 0 0 Control_L\n" - "TimerEvent 220 122 3 0 0 Control_L\n" - "RenderEvent 220 122 3 0 0 Control_L\n" - "MouseMoveEvent 220 121 3 0 0 Control_L\n" - "TimerEvent 220 121 3 0 0 Control_L\n" - "RenderEvent 220 121 3 0 0 Control_L\n" - "MouseMoveEvent 220 121 3 0 0 Control_L\n" - "MouseMoveEvent 220 120 3 0 0 Control_L\n" - "TimerEvent 220 120 3 0 0 Control_L\n" - "RenderEvent 220 120 3 0 0 Control_L\n" - "MouseMoveEvent 220 119 3 0 0 Control_L\n" - "MouseMoveEvent 220 117 3 0 0 Control_L\n" - "TimerEvent 220 117 3 0 0 Control_L\n" - "RenderEvent 220 117 3 0 0 Control_L\n" - "MouseMoveEvent 220 116 3 0 0 Control_L\n" - "MouseMoveEvent 220 111 3 0 0 Control_L\n" - "TimerEvent 220 111 3 0 0 Control_L\n" - "RenderEvent 220 111 3 0 0 Control_L\n" - "MouseMoveEvent 220 109 3 0 0 Control_L\n" - "MouseMoveEvent 220 105 3 0 0 Control_L\n" - "TimerEvent 220 105 3 0 0 Control_L\n" - "RenderEvent 220 105 3 0 0 Control_L\n" - "MouseMoveEvent 220 104 3 0 0 Control_L\n" - "MouseMoveEvent 220 103 3 0 0 Control_L\n" - "MouseMoveEvent 220 102 3 0 0 Control_L\n" - "MouseMoveEvent 220 101 3 0 0 Control_L\n" - "TimerEvent 220 101 3 0 0 Control_L\n" - "RenderEvent 220 101 3 0 0 Control_L\n" - "MouseMoveEvent 220 100 3 0 0 Control_L\n" - "MouseMoveEvent 220 99 3 0 0 Control_L\n" - "MouseMoveEvent 220 98 3 0 0 Control_L\n" - "TimerEvent 220 98 3 0 0 Control_L\n" - "RenderEvent 220 98 3 0 0 Control_L\n" - "LeftButtonReleaseEvent 220 98 3 0 0 Control_L\n" - "TimerEvent 220 98 3 0 0 Control_L\n" - "RenderEvent 220 98 3 0 0 Control_L\n" - "MouseMoveEvent 222 100 3 0 0 Control_L\n" - "MouseMoveEvent 225 102 3 0 0 Control_L\n" - "MouseMoveEvent 226 103 3 0 0 Control_L\n" - "MouseMoveEvent 229 103 3 0 0 Control_L\n" - "MouseMoveEvent 231 104 3 0 0 Control_L\n" - "MouseMoveEvent 232 105 3 0 0 Control_L\n" - "KeyReleaseEvent 232 105 3 0 1 Control_L\n" - "KeyReleaseEvent 232 105 1 0 1 Shift_L\n" - "MouseMoveEvent 232 104 0 0 0 Shift_L\n" - "MouseMoveEvent 217 84 0 0 0 Shift_L\n" - "KeyPressEvent 217 84 0 0 1 Control_L\n" - "CharEvent 217 84 0 0 1 Control_L\n" - "KeyPressEvent 217 84 2 0 1 Shift_L\n" - "CharEvent 217 84 2 0 1 Shift_L\n" - "LeftButtonPressEvent 217 84 3 0 0 Shift_L\n" - "TimerEvent 217 84 3 0 0 Shift_L\n" - "RenderEvent 217 84 3 0 0 Shift_L\n" - "MouseMoveEvent 217 85 3 0 0 Shift_L\n" - "MouseMoveEvent 217 86 3 0 0 Shift_L\n" - "TimerEvent 217 86 3 0 0 Shift_L\n" - "RenderEvent 217 86 3 0 0 Shift_L\n" - "MouseMoveEvent 217 87 3 0 0 Shift_L\n" - "MouseMoveEvent 217 89 3 0 0 Shift_L\n" - "MouseMoveEvent 217 90 3 0 0 Shift_L\n" - "MouseMoveEvent 217 91 3 0 0 Shift_L\n" - "TimerEvent 217 91 3 0 0 Shift_L\n" - "RenderEvent 217 91 3 0 0 Shift_L\n" - "MouseMoveEvent 217 91 3 0 0 Shift_L\n" - "MouseMoveEvent 217 92 3 0 0 Shift_L\n" - "TimerEvent 217 92 3 0 0 Shift_L\n" - "RenderEvent 217 92 3 0 0 Shift_L\n" - "MouseMoveEvent 217 93 3 0 0 Shift_L\n" - "MouseMoveEvent 217 94 3 0 0 Shift_L\n" - "MouseMoveEvent 217 95 3 0 0 Shift_L\n" - "TimerEvent 217 95 3 0 0 Shift_L\n" - "RenderEvent 217 95 3 0 0 Shift_L\n" - "MouseMoveEvent 217 96 3 0 0 Shift_L\n" - "MouseMoveEvent 217 97 3 0 0 Shift_L\n" - "MouseMoveEvent 217 98 3 0 0 Shift_L\n" - "TimerEvent 217 98 3 0 0 Shift_L\n" - "RenderEvent 217 98 3 0 0 Shift_L\n" - "MouseMoveEvent 217 98 3 0 0 Shift_L\n" - "TimerEvent 217 98 3 0 0 Shift_L\n" - "RenderEvent 217 98 3 0 0 Shift_L\n" - "MouseMoveEvent 217 98 3 0 0 Shift_L\n" - "MouseMoveEvent 217 99 3 0 0 Shift_L\n" - "TimerEvent 217 99 3 0 0 Shift_L\n" - "RenderEvent 217 99 3 0 0 Shift_L\n" - "MouseMoveEvent 217 100 3 0 0 Shift_L\n" - "MouseMoveEvent 217 100 3 0 0 Shift_L\n" - "TimerEvent 217 100 3 0 0 Shift_L\n" - "RenderEvent 217 100 3 0 0 Shift_L\n" - "LeftButtonReleaseEvent 217 100 3 0 0 Shift_L\n" - "TimerEvent 217 100 3 0 0 Shift_L\n" - "RenderEvent 217 100 3 0 0 Shift_L\n" - "MouseMoveEvent 218 100 3 0 0 Shift_L\n" - "MouseMoveEvent 218 99 3 0 0 Shift_L\n" - "MouseMoveEvent 226 91 3 0 0 Shift_L\n" - "MouseMoveEvent 226 90 3 0 0 Shift_L\n" - "KeyReleaseEvent 226 90 3 0 1 Control_L\n" - "KeyReleaseEvent 226 90 1 0 1 Shift_L\n" - "MouseMoveEvent 225 91 0 0 0 Shift_L\n" - "KeyPressEvent 225 91 0 0 1 Alt_L\n" - "CharEvent 225 91 0 0 1 Alt_L\n" - "KeyPressEvent 225 91 4 0 1 Control_L\n" - "CharEvent 225 91 4 0 1 Control_L\n" - "MouseMoveEvent 225 91 6 0 0 Control_L\n" - "MouseMoveEvent 224 91 6 0 0 Control_L\n" - "MouseMoveEvent 219 79 6 0 0 Control_L\n" - "LeftButtonPressEvent 219 79 6 0 0 Control_L\n" - "TimerEvent 219 79 6 0 0 Control_L\n" - "RenderEvent 219 79 6 0 0 Control_L\n" - "MouseMoveEvent 219 80 6 0 0 Control_L\n" - "MouseMoveEvent 219 85 6 0 0 Control_L\n" - "TimerEvent 219 85 6 0 0 Control_L\n" - "RenderEvent 219 85 6 0 0 Control_L\n" - "MouseMoveEvent 219 86 6 0 0 Control_L\n" - "MouseMoveEvent 219 90 6 0 0 Control_L\n" - "MouseMoveEvent 219 92 6 0 0 Control_L\n" - "TimerEvent 219 92 6 0 0 Control_L\n" - "RenderEvent 219 92 6 0 0 Control_L\n" - "MouseMoveEvent 219 93 6 0 0 Control_L\n" - "MouseMoveEvent 219 96 6 0 0 Control_L\n" - "TimerEvent 219 96 6 0 0 Control_L\n" - "RenderEvent 219 96 6 0 0 Control_L\n" - "MouseMoveEvent 219 96 6 0 0 Control_L\n" - "TimerEvent 219 96 6 0 0 Control_L\n" - "RenderEvent 219 96 6 0 0 Control_L\n" - "MouseMoveEvent 219 97 6 0 0 Control_L\n" - "MouseMoveEvent 219 97 6 0 0 Control_L\n" - "MouseMoveEvent 219 98 6 0 0 Control_L\n" - "TimerEvent 219 98 6 0 0 Control_L\n" - "RenderEvent 219 98 6 0 0 Control_L\n" - "MouseMoveEvent 219 99 6 0 0 Control_L\n" - "MouseMoveEvent 219 100 6 0 0 Control_L\n" - "MouseMoveEvent 219 101 6 0 0 Control_L\n" - "MouseMoveEvent 219 102 6 0 0 Control_L\n" - "TimerEvent 219 102 6 0 0 Control_L\n" - "RenderEvent 219 102 6 0 0 Control_L\n" - "MouseMoveEvent 219 103 6 0 0 Control_L\n" - "MouseMoveEvent 219 103 6 0 0 Control_L\n" - "TimerEvent 219 103 6 0 0 Control_L\n" - "RenderEvent 219 103 6 0 0 Control_L\n" - "LeftButtonReleaseEvent 219 103 6 0 0 Control_L\n" - "TimerEvent 219 103 6 0 0 Control_L\n" - "RenderEvent 219 103 6 0 0 Control_L\n" - "MouseMoveEvent 221 102 6 0 0 Control_L\n" - "MouseMoveEvent 237 97 6 0 0 Control_L\n" - "KeyReleaseEvent 237 97 6 0 1 Alt_L\n" - "KeyReleaseEvent 237 97 2 0 1 Control_L\n" - "MouseMoveEvent 242 103 0 0 0 Control_L\n" - "MouseMoveEvent 571 305 0 0 0 Control_L\n" - "LeaveEvent 602 305 0 0 0 Control_L\n"; +static const char* eventLog = "# StreamVersion 1.2\n" + "ExposeEvent 0 399 0 0 0 0 0\n" + "RenderEvent 0 399 0 0 0 0 0\n" + "KeyReleaseEvent 3288 -268 0 0 1 Return 0\n" + "TimerEvent 3288 -268 0 0 1 Return 0\n" + "RenderEvent 3288 -268 0 0 1 Return 0\n" + "EnterEvent 363 29 0 0 0 Return 0\n" + "MouseMoveEvent 363 29 0 0 0 Return 0\n" + "MouseMoveEvent 351 43 0 0 0 Return 0\n" + "MouseMoveEvent 444 93 0 0 0 Return 0\n" + "MouseMoveEvent 502 119 0 0 0 Return 0\n" + "MouseMoveEvent 560 139 0 0 0 Return 0\n" + "LeaveEvent 602 147 0 0 0 Return 0\n" + "KeyPressEvent 1457 323 0 0 1 Shift_L 0\n" + "CharEvent 1457 323 0 0 1 Shift_L 0\n" + "KeyReleaseEvent -463 350 1 0 1 Shift_L 0\n" + "EnterEvent 419 92 0 0 0 Shift_L 0\n" + "MouseMoveEvent 419 97 0 0 0 Shift_L 0\n" + "MouseMoveEvent 420 102 0 0 0 Shift_L 0\n" + "MouseMoveEvent 390 375 0 0 0 Shift_L 0\n" + "MouseMoveEvent 388 387 0 0 0 Shift_L 0\n" + "LeaveEvent 382 401 0 0 0 Shift_L 0\n" + "EnterEvent 336 384 0 0 0 Shift_L 0\n" + "MouseMoveEvent 336 384 0 0 0 Shift_L 0\n" + "MouseMoveEvent 320 369 0 0 0 Shift_L 0\n" + "MouseMoveEvent 61 161 0 0 0 Shift_L 0\n" + "LeftButtonPressEvent 61 161 0 0 0 Shift_L 0\n" + "TimerEvent 61 161 0 0 0 Shift_L 0\n" + "RenderEvent 61 161 0 0 0 Shift_L 0\n" + "MouseMoveEvent 60 160 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 159 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 157 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 155 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 153 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 151 0 0 0 Shift_L 0\n" + "TimerEvent 59 151 0 0 0 Shift_L 0\n" + "RenderEvent 59 151 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 149 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 147 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 146 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 145 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 143 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 141 0 0 0 Shift_L 0\n" + "TimerEvent 59 141 0 0 0 Shift_L 0\n" + "RenderEvent 59 141 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 136 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 127 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 124 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 120 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 116 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 113 0 0 0 Shift_L 0\n" + "TimerEvent 59 113 0 0 0 Shift_L 0\n" + "RenderEvent 59 113 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 106 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 104 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 100 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 99 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 96 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 95 0 0 0 Shift_L 0\n" + "TimerEvent 59 95 0 0 0 Shift_L 0\n" + "RenderEvent 59 95 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 92 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 91 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 89 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 88 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 87 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 86 0 0 0 Shift_L 0\n" + "TimerEvent 59 86 0 0 0 Shift_L 0\n" + "RenderEvent 59 86 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 85 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 83 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 82 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 79 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 75 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 73 0 0 0 Shift_L 0\n" + "TimerEvent 59 73 0 0 0 Shift_L 0\n" + "RenderEvent 59 73 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 70 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 68 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 67 0 0 0 Shift_L 0\n" + "TimerEvent 59 67 0 0 0 Shift_L 0\n" + "RenderEvent 59 67 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 66 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 66 0 0 0 Shift_L 0\n" + "TimerEvent 59 66 0 0 0 Shift_L 0\n" + "RenderEvent 59 66 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 65 0 0 0 Shift_L 0\n" + "TimerEvent 59 65 0 0 0 Shift_L 0\n" + "RenderEvent 59 65 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 64 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 62 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 61 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 59 0 0 0 Shift_L 0\n" + "TimerEvent 59 59 0 0 0 Shift_L 0\n" + "RenderEvent 59 59 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 58 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 58 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 57 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 55 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 53 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 52 0 0 0 Shift_L 0\n" + "TimerEvent 59 52 0 0 0 Shift_L 0\n" + "RenderEvent 59 52 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 51 0 0 0 Shift_L 0\n" + "TimerEvent 59 51 0 0 0 Shift_L 0\n" + "RenderEvent 59 51 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 50 0 0 0 Shift_L 0\n" + "MouseMoveEvent 59 49 0 0 0 Shift_L 0\n" + "MouseMoveEvent 60 48 0 0 0 Shift_L 0\n" + "TimerEvent 60 48 0 0 0 Shift_L 0\n" + "RenderEvent 60 48 0 0 0 Shift_L 0\n" + "LeftButtonReleaseEvent 60 48 0 0 0 Shift_L 0\n" + "TimerEvent 60 48 0 0 0 Shift_L 0\n" + "RenderEvent 60 48 0 0 0 Shift_L 0\n" + "MouseMoveEvent 61 49 0 0 0 Shift_L 0\n" + "MouseMoveEvent 61 50 0 0 0 Shift_L 0\n" + "MouseMoveEvent 223 224 0 0 0 Shift_L 0\n" + "KeyPressEvent 223 224 0 0 1 Alt_L 0\n" + "CharEvent 223 224 0 0 1 Alt_L 0\n" + "MouseMoveEvent 223 224 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 223 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 223 4 0 0 Alt_L 0\n" + "LeftButtonPressEvent 222 223 4 0 0 Alt_L 0\n" + "TimerEvent 222 223 4 0 0 Alt_L 0\n" + "RenderEvent 222 223 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 221 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 219 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 217 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 215 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 214 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 213 4 0 0 Alt_L 0\n" + "TimerEvent 222 213 4 0 0 Alt_L 0\n" + "RenderEvent 222 213 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 211 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 210 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 209 4 0 0 Alt_L 0\n" + "TimerEvent 222 209 4 0 0 Alt_L 0\n" + "RenderEvent 222 209 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 206 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 205 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 203 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 201 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 199 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 197 4 0 0 Alt_L 0\n" + "TimerEvent 222 197 4 0 0 Alt_L 0\n" + "RenderEvent 222 197 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 196 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 195 4 0 0 Alt_L 0\n" + "TimerEvent 222 195 4 0 0 Alt_L 0\n" + "RenderEvent 222 195 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 195 4 0 0 Alt_L 0\n" + "TimerEvent 222 195 4 0 0 Alt_L 0\n" + "RenderEvent 222 195 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 194 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 192 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 191 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 190 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 189 4 0 0 Alt_L 0\n" + "TimerEvent 222 189 4 0 0 Alt_L 0\n" + "RenderEvent 222 189 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 188 4 0 0 Alt_L 0\n" + "TimerEvent 222 188 4 0 0 Alt_L 0\n" + "RenderEvent 222 188 4 0 0 Alt_L 0\n" + "LeftButtonReleaseEvent 222 188 4 0 0 Alt_L 0\n" + "TimerEvent 222 188 4 0 0 Alt_L 0\n" + "RenderEvent 222 188 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 187 4 0 0 Alt_L 0\n" + "MouseMoveEvent 222 186 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 145 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 146 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 146 4 0 0 Alt_L 0\n" + "LeftButtonPressEvent 218 146 4 0 0 Alt_L 0\n" + "TimerEvent 218 146 4 0 0 Alt_L 0\n" + "RenderEvent 218 146 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 145 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 145 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 143 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 141 4 0 0 Alt_L 0\n" + "TimerEvent 218 141 4 0 0 Alt_L 0\n" + "RenderEvent 218 141 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 140 4 0 0 Alt_L 0\n" + "TimerEvent 218 140 4 0 0 Alt_L 0\n" + "RenderEvent 218 140 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 139 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 138 4 0 0 Alt_L 0\n" + "TimerEvent 218 138 4 0 0 Alt_L 0\n" + "RenderEvent 218 138 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 136 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 135 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 133 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 131 4 0 0 Alt_L 0\n" + "TimerEvent 218 131 4 0 0 Alt_L 0\n" + "RenderEvent 218 131 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 128 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 126 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 124 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 122 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 120 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 117 4 0 0 Alt_L 0\n" + "TimerEvent 218 117 4 0 0 Alt_L 0\n" + "RenderEvent 218 117 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 116 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 114 4 0 0 Alt_L 0\n" + "TimerEvent 218 114 4 0 0 Alt_L 0\n" + "RenderEvent 218 114 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 113 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 111 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 110 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 109 4 0 0 Alt_L 0\n" + "TimerEvent 218 109 4 0 0 Alt_L 0\n" + "RenderEvent 218 109 4 0 0 Alt_L 0\n" + "LeftButtonReleaseEvent 218 109 4 0 0 Alt_L 0\n" + "TimerEvent 218 109 4 0 0 Alt_L 0\n" + "RenderEvent 218 109 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 110 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 112 4 0 0 Alt_L 0\n" + "MouseMoveEvent 218 113 4 0 0 Alt_L 0\n" + "MouseMoveEvent 216 235 4 0 0 Alt_L 0\n" + "MouseMoveEvent 216 236 4 0 0 Alt_L 0\n" + "MouseMoveEvent 216 237 4 0 0 Alt_L 0\n" + "KeyPressEvent 216 237 4 0 1 Shift_L 0\n" + "CharEvent 216 237 4 0 1 Shift_L 0\n" + "LeftButtonPressEvent 216 237 5 0 0 Shift_L 0\n" + "MouseMoveEvent 216 236 5 0 0 Shift_L 0\n" + "TimerEvent 216 236 5 0 0 Shift_L 0\n" + "RenderEvent 216 236 5 0 0 Shift_L 0\n" + "MouseMoveEvent 216 236 5 0 0 Shift_L 0\n" + "MouseMoveEvent 216 235 5 0 0 Shift_L 0\n" + "MouseMoveEvent 217 233 5 0 0 Shift_L 0\n" + "MouseMoveEvent 217 231 5 0 0 Shift_L 0\n" + "MouseMoveEvent 217 227 5 0 0 Shift_L 0\n" + "TimerEvent 217 227 5 0 0 Shift_L 0\n" + "RenderEvent 217 227 5 0 0 Shift_L 0\n" + "MouseMoveEvent 217 225 5 0 0 Shift_L 0\n" + "MouseMoveEvent 218 222 5 0 0 Shift_L 0\n" + "MouseMoveEvent 218 221 5 0 0 Shift_L 0\n" + "MouseMoveEvent 218 219 5 0 0 Shift_L 0\n" + "MouseMoveEvent 218 216 5 0 0 Shift_L 0\n" + "MouseMoveEvent 219 214 5 0 0 Shift_L 0\n" + "TimerEvent 219 214 5 0 0 Shift_L 0\n" + "RenderEvent 219 214 5 0 0 Shift_L 0\n" + "MouseMoveEvent 219 211 5 0 0 Shift_L 0\n" + "MouseMoveEvent 219 210 5 0 0 Shift_L 0\n" + "MouseMoveEvent 219 209 5 0 0 Shift_L 0\n" + "TimerEvent 219 209 5 0 0 Shift_L 0\n" + "RenderEvent 219 209 5 0 0 Shift_L 0\n" + "MouseMoveEvent 219 208 5 0 0 Shift_L 0\n" + "MouseMoveEvent 219 207 5 0 0 Shift_L 0\n" + "MouseMoveEvent 219 204 5 0 0 Shift_L 0\n" + "MouseMoveEvent 219 202 5 0 0 Shift_L 0\n" + "MouseMoveEvent 219 201 5 0 0 Shift_L 0\n" + "MouseMoveEvent 219 196 5 0 0 Shift_L 0\n" + "TimerEvent 219 196 5 0 0 Shift_L 0\n" + "RenderEvent 219 196 5 0 0 Shift_L 0\n" + "MouseMoveEvent 219 195 5 0 0 Shift_L 0\n" + "MouseMoveEvent 219 194 5 0 0 Shift_L 0\n" + "TimerEvent 219 194 5 0 0 Shift_L 0\n" + "RenderEvent 219 194 5 0 0 Shift_L 0\n" + "MouseMoveEvent 219 192 5 0 0 Shift_L 0\n" + "MouseMoveEvent 219 192 5 0 0 Shift_L 0\n" + "TimerEvent 219 192 5 0 0 Shift_L 0\n" + "RenderEvent 219 192 5 0 0 Shift_L 0\n" + "LeftButtonReleaseEvent 219 192 5 0 0 Shift_L 0\n" + "TimerEvent 219 192 5 0 0 Shift_L 0\n" + "RenderEvent 219 192 5 0 0 Shift_L 0\n" + "MouseMoveEvent 222 192 5 0 0 Shift_L 0\n" + "MouseMoveEvent 226 192 5 0 0 Shift_L 0\n" + "MouseMoveEvent 369 151 5 0 0 Shift_L 0\n" + "MouseMoveEvent 371 151 5 0 0 Shift_L 0\n" + "MouseMoveEvent 372 151 5 0 0 Shift_L 0\n" + "KeyReleaseEvent 372 151 5 0 1 Shift_L 0\n" + "KeyReleaseEvent 372 151 4 0 1 Alt_L 0\n" + "MouseMoveEvent 372 152 0 0 0 Alt_L 0\n" + "MouseMoveEvent 372 152 0 0 0 Alt_L 0\n" + "MouseMoveEvent 566 380 0 0 0 Alt_L 0\n" + "MouseMoveEvent 570 387 0 0 0 Alt_L 0\n" + "MouseMoveEvent 572 391 0 0 0 Alt_L 0\n" + "MouseMoveEvent 573 396 0 0 0 Alt_L 0\n" + "MouseMoveEvent 573 399 0 0 0 Alt_L 0\n" + "LeaveEvent 574 403 0 0 0 Alt_L 0\n" + "ExitEvent 574 403 0 0 0 Alt_L 0\n" + "EnterEvent 588 399 0 0 0 Alt_L 0\n" + "MouseMoveEvent 588 399 0 0 0 Alt_L 0\n" + "MouseMoveEvent 598 382 0 0 0 Alt_L 0\n" + "LeaveEvent 606 359 0 0 0 Alt_L 0\n"; namespace { @@ -409,9 +394,9 @@ int TestParallelCoordinatesSelection(int vtkNotUsed(argc), char* vtkNotUsed(argv return EXIT_FAILURE; } - if (ids->GetSize() != 2) + if (ids->GetSize() != 14) { - std::cerr << "Wrong number of id selection. Expected to have 2 ids but got " << ids->GetSize() + std::cerr << "Wrong number of id selection. Expected to have 14 ids but got " << ids->GetSize() << std::endl; return EXIT_FAILURE; } diff --git a/Charts/Core/vtkChartParallelCoordinates.cxx b/Charts/Core/vtkChartParallelCoordinates.cxx index 88c21480e87d2ef29f9edd8c68cf984833c5769f..a1798b6f501a3214837c3df6b0a7a3a5210f7167 100644 --- a/Charts/Core/vtkChartParallelCoordinates.cxx +++ b/Charts/Core/vtkChartParallelCoordinates.cxx @@ -54,6 +54,40 @@ struct vtkChartParallelCoordinates::Private final } } + /** + * Remove all selections. + */ + void ClearSelectedAxisSelection(int i) { this->AxesSelections[i].clear(); } + + /** + * Remove all selection with a negative value. + * + * A valid selection range is normalizd between 0 and 1. + */ + void ClearInvalidRangeSelection(int i) + { + this->AxesSelections[i].erase( + std::remove(this->AxesSelections[i].begin(), this->AxesSelections[i].end(), -1), + this->AxesSelections[i].end()); + } + + /** + * Append new range selection in the selected axis. + */ + void AppendNewSelectionInAxis(int i, float min, float max) + { + this->AxesSelections[i].push_back(min); + this->AxesSelections[i].push_back(max); + } + + /** + * Sort selected axis selections. + */ + void SortAxisSelection(int i) + { + std::sort(this->AxesSelections[i].begin(), this->AxesSelections[i].end()); + } + vtkSmartPointer<vtkPlotParallelCoordinates> Plot; vtkNew<vtkTransform2D> Transform; std::vector<vtkAxis*> Axes; @@ -67,6 +101,7 @@ struct vtkChartParallelCoordinates::Private final int CurrentAxis = -1; int AxisResize = -1; + bool ShouldClearCurrentAxeSelection = true; bool InteractiveSelection = false; }; @@ -641,6 +676,14 @@ bool vtkChartParallelCoordinates::MouseButtonPressEvent(const vtkContextMouseEve axis->GetPoint1()[0] + 10 > mouse.GetScenePos()[0]) { this->Storage->CurrentAxis = static_cast<int>(i); + + if (this->GetSelectionMode() == vtkContextScene::SELECTION_DEFAULT && + this->Storage->ShouldClearCurrentAxeSelection) + { + this->ResetAxeSelection(this->Storage->CurrentAxis); + this->Storage->ShouldClearCurrentAxeSelection = false; + } + // This is a manual interactive selection this->Storage->InteractiveSelection = true; @@ -727,11 +770,16 @@ bool vtkChartParallelCoordinates::MouseButtonReleaseEvent(const vtkContextMouseE // Update all range stored based on the new selection UpdateCurrentAxisSelection(this->Storage->CurrentAxis); + + // To support multiple selection, we need to recalculate all the selection + this->ResetSelection(); + this->Storage->CurrentSelection[0] = 0; this->Storage->CurrentSelection[1] = 0; // This is a manual interactive selection this->Storage->InteractiveSelection = true; + this->Storage->ShouldClearCurrentAxeSelection = true; if (this->AnnotationLink) { @@ -838,6 +886,16 @@ void vtkChartParallelCoordinates::UpdateCurrentAxisSelection(int axisId) float minCurrentSelection = std::min(currentSelection[0], currentSelection[1]); float maxCurrentSelection = std::max(currentSelection[0], currentSelection[1]); + if (this->GetSelectionMode() == vtkContextScene::SELECTION_DEFAULT) + { + // in this context, only single selection should be done, clear the previous one. + this->Storage->ClearSelectedAxisSelection(axisId); + + this->Storage->ClearInvalidRangeSelection(axisId); + this->Storage->AppendNewSelectionInAxis(axisId, minCurrentSelection, maxCurrentSelection); + return; + } + bool isANewRange = true; bool startAMerge = false; @@ -950,21 +1008,12 @@ void vtkChartParallelCoordinates::UpdateCurrentAxisSelection(int axisId) } // Remove invalidated ranges - this->Storage->AxesSelections[axisId].erase( - std::remove(this->Storage->AxesSelections[axisId].begin(), - this->Storage->AxesSelections[axisId].end(), -1), - this->Storage->AxesSelections[axisId].end()); - + this->Storage->ClearInvalidRangeSelection(axisId); if (isANewRange) { - this->Storage->AxesSelections[axisId].push_back(minCurrentSelection); - this->Storage->AxesSelections[axisId].push_back(maxCurrentSelection); + this->Storage->AppendNewSelectionInAxis(axisId, minCurrentSelection, maxCurrentSelection); } - std::sort( - this->Storage->AxesSelections[axisId].begin(), this->Storage->AxesSelections[axisId].end()); - - // To support multiple selection, we need to recalculate all the selection - this->ResetSelection(); + this->Storage->SortAxisSelection(axisId); } VTK_ABI_NAMESPACE_END diff --git a/Documentation/release/dev/changes-selection-behavior-in-parallel-coordinates.md b/Documentation/release/dev/changes-selection-behavior-in-parallel-coordinates.md new file mode 100644 index 0000000000000000000000000000000000000000..41acaf7772e25daf81392fb03a1e5c3838d3997b --- /dev/null +++ b/Documentation/release/dev/changes-selection-behavior-in-parallel-coordinates.md @@ -0,0 +1,6 @@ +# Changes selection behavior in the Parallel Coordinate Chart + +In VTK 9.2.0, the management of multiple selections has been added +which has complicated even by default how to make a simple selection +in this chart. To simplify this, the multiple selection is not +supported anymore in SELECTION_DEFAULT.