Commit 89a5f0fa5bc32fbff4044290a70cb0b6d59a38f5
1 parent
52fc0bb0
Exists in
master
and in
46 other branches
The use of ctrl and shift in the threshold pen
Showing
3 changed files
with
20 additions
and
5 deletions
Show diff stats
invesalius/constants.py
| ... | ... | @@ -251,6 +251,8 @@ BRUSH_DRAW = 0 |
| 251 | 251 | BRUSH_ERASE = 1 |
| 252 | 252 | BRUSH_THRESH = 2 |
| 253 | 253 | BRUSH_THRESH_ERASE = 3 |
| 254 | +BRUSH_THRESH_ADD_ONLY = 4 | |
| 255 | +BRUSH_THRESH_ERASE_ONLY = 5 | |
| 254 | 256 | DEFAULT_BRUSH_OP = BRUSH_THRESH |
| 255 | 257 | BRUSH_OP_NAME = [_("Draw"), _("Erase"), _("Threshold")] |
| 256 | 258 | ... | ... |
invesalius/data/slice_.py
| ... | ... | @@ -461,8 +461,12 @@ class Slice(object): |
| 461 | 461 | roi_m[index] = (((roi_i[index] >= thresh_min) |
| 462 | 462 | & (roi_i[index] <= thresh_max)) * 253) + 1 |
| 463 | 463 | elif operation == const.BRUSH_THRESH_ERASE: |
| 464 | - roi_m[index] = (((roi_i[index] >= thresh_min) | |
| 465 | - & (roi_i[index] <= thresh_max)) * 1) -1 | |
| 464 | + roi_m[index] = (((roi_i[index] < thresh_min) | |
| 465 | + | (roi_i[index] > thresh_max)) * 253) + 1 | |
| 466 | + elif operation == const.BRUSH_THRESH_ADD_ONLY: | |
| 467 | + roi_m[((index) & (roi_i >= thresh_min) & (roi_i <= thresh_max))] = 254 | |
| 468 | + elif operation == const.BRUSH_THRESH_ERASE_ONLY: | |
| 469 | + roi_m[((index) & ((roi_i < thresh_min) | (roi_i > thresh_max)))] = 1 | |
| 466 | 470 | elif operation == const.BRUSH_DRAW: |
| 467 | 471 | roi_m[index] = 254 |
| 468 | 472 | elif operation == const.BRUSH_ERASE: | ... | ... |
invesalius/data/styles.py
| ... | ... | @@ -563,8 +563,12 @@ class EditorInteractorStyle(DefaultInteractorStyle): |
| 563 | 563 | operation = viewer._brush_cursor_op |
| 564 | 564 | if operation == const.BRUSH_THRESH: |
| 565 | 565 | if iren.GetControlKey(): |
| 566 | - operation = const.BRUSH_THRESH_ERASE | |
| 567 | - | |
| 566 | + if iren.GetShiftKey(): | |
| 567 | + operation = const.BRUSH_THRESH_ERASE_ONLY | |
| 568 | + else: | |
| 569 | + operation = const.BRUSH_THRESH_ERASE | |
| 570 | + elif iren.GetShiftKey(): | |
| 571 | + operation = const.BRUSH_THRESH_ADD_ONLY | |
| 568 | 572 | |
| 569 | 573 | viewer._set_editor_cursor_visibility(1) |
| 570 | 574 | |
| ... | ... | @@ -615,7 +619,12 @@ class EditorInteractorStyle(DefaultInteractorStyle): |
| 615 | 619 | operation = viewer._brush_cursor_op |
| 616 | 620 | if operation == const.BRUSH_THRESH: |
| 617 | 621 | if iren.GetControlKey(): |
| 618 | - operation = const.BRUSH_THRESH_ERASE | |
| 622 | + if iren.GetShiftKey(): | |
| 623 | + operation = const.BRUSH_THRESH_ERASE_ONLY | |
| 624 | + else: | |
| 625 | + operation = const.BRUSH_THRESH_ERASE | |
| 626 | + elif iren.GetShiftKey(): | |
| 627 | + operation = const.BRUSH_THRESH_ADD_ONLY | |
| 619 | 628 | |
| 620 | 629 | # TODO: Improve! |
| 621 | 630 | #for i in self.slice_data_list: | ... | ... |