molde 0.1.3__py3-none-any.whl → 0.1.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. molde/__init__.py +12 -6
  2. molde/__main__.py +74 -74
  3. molde/actors/__init__.py +5 -5
  4. molde/actors/common_symbols_actor.py +164 -164
  5. molde/actors/ghost_actor.py +12 -12
  6. molde/actors/lines_actor.py +31 -31
  7. molde/actors/round_points_actor.py +7 -7
  8. molde/actors/square_points_actor.py +32 -32
  9. molde/colors/__init__.py +1 -1
  10. molde/colors/color.py +150 -120
  11. molde/colors/color_names.py +124 -124
  12. molde/interactor_styles/__init__.py +2 -2
  13. molde/interactor_styles/arcball_camera_style.py +288 -288
  14. molde/interactor_styles/box_selection_style.py +70 -70
  15. molde/main_window.ui +864 -864
  16. molde/pickers/__init__.py +2 -2
  17. molde/pickers/cell_area_picker.py +61 -61
  18. molde/pickers/cell_property_area_picker.py +84 -84
  19. molde/poly_data/__init__.py +13 -13
  20. molde/poly_data/lines_data.py +23 -23
  21. molde/poly_data/vertices_data.py +24 -24
  22. molde/render_widgets/__init__.py +2 -2
  23. molde/render_widgets/animated_render_widget.py +164 -164
  24. molde/render_widgets/common_render_widget.py +429 -433
  25. molde/stylesheets/__init__.py +120 -119
  26. molde/stylesheets/common.qss +16 -16
  27. molde/stylesheets/create_color_page.py +61 -61
  28. molde/stylesheets/mainwindow.ui +611 -611
  29. molde/stylesheets/qcheckbox.qss +23 -18
  30. molde/stylesheets/qinputs.qss +81 -78
  31. molde/stylesheets/qlayouts.qss +23 -22
  32. molde/stylesheets/qmenubar.qss +12 -12
  33. molde/stylesheets/qprogressbar.qss +11 -11
  34. molde/stylesheets/qpushbutton.qss +91 -91
  35. molde/stylesheets/qradiobutton.qss +30 -30
  36. molde/stylesheets/qscrollbar.qss +29 -29
  37. molde/stylesheets/qslider.qss +61 -61
  38. molde/stylesheets/qtablewidget.qss +27 -27
  39. molde/stylesheets/qtabwidget.qss +28 -29
  40. molde/stylesheets/qtoolbar.qss +52 -62
  41. molde/stylesheets/qtoolbuttons.qss +14 -14
  42. molde/stylesheets/qtreewidget.qss +25 -25
  43. molde/ui_files/messages/new_loading_window.ui +73 -73
  44. molde/utils/__init__.py +8 -8
  45. molde/utils/format_sequences.py +44 -44
  46. molde/utils/poly_data_utils.py +66 -66
  47. molde/utils/tree_info.py +52 -52
  48. molde/windows/loading_window.py +189 -189
  49. {molde-0.1.3.dist-info → molde-0.1.4.dist-info}/METADATA +6 -4
  50. molde-0.1.4.dist-info/RECORD +68 -0
  51. {molde-0.1.3.dist-info → molde-0.1.4.dist-info}/WHEEL +1 -1
  52. molde-0.1.3.dist-info/RECORD +0 -68
molde/pickers/__init__.py CHANGED
@@ -1,2 +1,2 @@
1
- from .cell_area_picker import CellAreaPicker
2
- from .cell_property_area_picker import CellPropertyAreaPicker
1
+ from .cell_area_picker import CellAreaPicker
2
+ from .cell_property_area_picker import CellPropertyAreaPicker
@@ -1,61 +1,61 @@
1
- from vtkmodules.vtkCommonDataModel import vtkPolyData
2
- from vtkmodules.vtkFiltersGeneral import vtkExtractSelectedFrustum
3
- from vtkmodules.vtkRenderingCore import (
4
- vtkActor,
5
- vtkAreaPicker,
6
- vtkCellPicker,
7
- vtkPropPicker,
8
- vtkRenderer,
9
- )
10
-
11
-
12
- class CellAreaPicker(vtkPropPicker):
13
- def __init__(self) -> None:
14
- super().__init__()
15
- self._picked_cells = []
16
- self._picked_actors = []
17
- self._picked = dict()
18
-
19
- self._area_picker = vtkAreaPicker()
20
- self._cell_picker = vtkCellPicker()
21
- self._cell_picker.SetTolerance(0.01)
22
-
23
- def pick(self, x: float, y: float, z: float, renderer: vtkRenderer):
24
- self._picked.clear()
25
- self._cell_picker.Pick(x, y, z, renderer)
26
- self._picked[self._cell_picker.GetActor()] = [self._cell_picker.GetCellId()]
27
-
28
- # # select a small area around the mouse click
29
- # delta = 10
30
- # self.area_pick(x-delta, y-delta, x+delta, y+delta, renderer)
31
-
32
- # # keep at most a single cell selected for every picked actor
33
- # for actor, selection in self._picked.items():
34
- # self._picked[actor] = selection[:1]
35
-
36
- def area_pick(
37
- self, x0: float, y0: float, x1: float, y1: float, renderer: vtkRenderer
38
- ):
39
- self._picked.clear()
40
- self._area_picker.AreaPick(x0, y0, x1, y1, renderer)
41
- extractor = vtkExtractSelectedFrustum()
42
- extractor.SetFrustum(self._area_picker.GetFrustum())
43
-
44
- for actor in self._area_picker.GetProp3Ds():
45
- if not isinstance(actor, vtkActor):
46
- continue
47
-
48
- data: vtkPolyData = actor.GetMapper().GetInput()
49
- if data is None:
50
- continue
51
-
52
- cells = []
53
- for i in range(data.GetNumberOfCells()):
54
- bounds = [0, 0, 0, 0, 0, 0]
55
- data.GetCellBounds(i, bounds)
56
- if extractor.OverallBoundsTest(bounds):
57
- cells.append(i)
58
- self._picked[actor] = cells
59
-
60
- def get_picked(self):
61
- return dict(self._picked)
1
+ from vtkmodules.vtkCommonDataModel import vtkPolyData
2
+ from vtkmodules.vtkFiltersGeneral import vtkExtractSelectedFrustum
3
+ from vtkmodules.vtkRenderingCore import (
4
+ vtkActor,
5
+ vtkAreaPicker,
6
+ vtkCellPicker,
7
+ vtkPropPicker,
8
+ vtkRenderer,
9
+ )
10
+
11
+
12
+ class CellAreaPicker(vtkPropPicker):
13
+ def __init__(self) -> None:
14
+ super().__init__()
15
+ self._picked_cells = []
16
+ self._picked_actors = []
17
+ self._picked = dict()
18
+
19
+ self._area_picker = vtkAreaPicker()
20
+ self._cell_picker = vtkCellPicker()
21
+ self._cell_picker.SetTolerance(0.01)
22
+
23
+ def pick(self, x: float, y: float, z: float, renderer: vtkRenderer):
24
+ self._picked.clear()
25
+ self._cell_picker.Pick(x, y, z, renderer)
26
+ self._picked[self._cell_picker.GetActor()] = [self._cell_picker.GetCellId()]
27
+
28
+ # # select a small area around the mouse click
29
+ # delta = 10
30
+ # self.area_pick(x-delta, y-delta, x+delta, y+delta, renderer)
31
+
32
+ # # keep at most a single cell selected for every picked actor
33
+ # for actor, selection in self._picked.items():
34
+ # self._picked[actor] = selection[:1]
35
+
36
+ def area_pick(
37
+ self, x0: float, y0: float, x1: float, y1: float, renderer: vtkRenderer
38
+ ):
39
+ self._picked.clear()
40
+ self._area_picker.AreaPick(x0, y0, x1, y1, renderer)
41
+ extractor = vtkExtractSelectedFrustum()
42
+ extractor.SetFrustum(self._area_picker.GetFrustum())
43
+
44
+ for actor in self._area_picker.GetProp3Ds():
45
+ if not isinstance(actor, vtkActor):
46
+ continue
47
+
48
+ data: vtkPolyData = actor.GetMapper().GetInput()
49
+ if data is None:
50
+ continue
51
+
52
+ cells = []
53
+ for i in range(data.GetNumberOfCells()):
54
+ bounds = [0, 0, 0, 0, 0, 0]
55
+ data.GetCellBounds(i, bounds)
56
+ if extractor.OverallBoundsTest(bounds):
57
+ cells.append(i)
58
+ self._picked[actor] = cells
59
+
60
+ def get_picked(self):
61
+ return dict(self._picked)
@@ -1,84 +1,84 @@
1
- from vtkmodules.vtkCommonDataModel import vtkPolyData
2
- from vtkmodules.vtkFiltersGeneral import vtkExtractSelectedFrustum
3
- from vtkmodules.vtkRenderingCore import (
4
- vtkActor,
5
- vtkAreaPicker,
6
- vtkCellPicker,
7
- vtkPropPicker,
8
- vtkRenderer,
9
- )
10
-
11
-
12
- class CellPropertyAreaPicker(vtkPropPicker):
13
- def __init__(self, property_name: str, desired_actor: vtkActor) -> None:
14
- super().__init__()
15
-
16
- self.property_name = property_name
17
- self.desired_actor = desired_actor
18
- self._picked = set()
19
-
20
- self._cell_picker = vtkCellPicker()
21
- self._area_picker = vtkAreaPicker()
22
- self._cell_picker.SetTolerance(0.005)
23
-
24
- def pick(self, x: float, y: float, z: float, renderer: vtkRenderer):
25
- # maybe a behaviour like the one implemented in CellAreaPicker
26
- # would fit nicely here
27
- self._picked.clear()
28
- self._cell_picker.Pick(x, y, z, renderer)
29
-
30
- if self.desired_actor != self._cell_picker.GetActor():
31
- return self.get_picked()
32
-
33
- data: vtkPolyData = self.desired_actor.GetMapper().GetInput()
34
- if data is None:
35
- return self.get_picked()
36
-
37
- property_array = data.GetCellData().GetArray(self.property_name)
38
- if property_array is None:
39
- return self.get_picked()
40
-
41
- cell = self._cell_picker.GetCellId()
42
- property_val = property_array.GetValue(cell)
43
- self._picked.add(property_val)
44
- return self.get_picked()
45
-
46
- def area_pick(
47
- self, x0: float, y0: float, x1: float, y1: float, renderer: vtkRenderer
48
- ):
49
- self._picked.clear()
50
- self._area_picker.AreaPick(x0, y0, x1, y1, renderer)
51
- extractor = vtkExtractSelectedFrustum()
52
- extractor.SetFrustum(self._area_picker.GetFrustum())
53
-
54
- if self.desired_actor not in self._area_picker.GetProp3Ds():
55
- return self.get_picked()
56
-
57
- data: vtkPolyData = self.desired_actor.GetMapper().GetInput()
58
- if data is None:
59
- return self.get_picked()
60
-
61
- property_array = data.GetCellData().GetArray(self.property_name)
62
- if property_array is None:
63
- return self.get_picked()
64
-
65
- if property_array.GetNumberOfValues() < data.GetNumberOfCells():
66
- return self.get_picked()
67
-
68
- for cell in range(data.GetNumberOfCells()):
69
- property_val = property_array.GetValue(cell)
70
-
71
- # if the property was already picked
72
- # we don't even need to check if the cell
73
- # is inside the selection box
74
- if property_val in self._picked:
75
- continue
76
-
77
- bounds = [0, 0, 0, 0, 0, 0]
78
- data.GetCellBounds(cell, bounds)
79
- if extractor.OverallBoundsTest(bounds):
80
- self._picked.add(property_val)
81
- return self.get_picked()
82
-
83
- def get_picked(self):
84
- return set(self._picked)
1
+ from vtkmodules.vtkCommonDataModel import vtkPolyData
2
+ from vtkmodules.vtkFiltersGeneral import vtkExtractSelectedFrustum
3
+ from vtkmodules.vtkRenderingCore import (
4
+ vtkActor,
5
+ vtkAreaPicker,
6
+ vtkCellPicker,
7
+ vtkPropPicker,
8
+ vtkRenderer,
9
+ )
10
+
11
+
12
+ class CellPropertyAreaPicker(vtkPropPicker):
13
+ def __init__(self, property_name: str, desired_actor: vtkActor) -> None:
14
+ super().__init__()
15
+
16
+ self.property_name = property_name
17
+ self.desired_actor = desired_actor
18
+ self._picked = set()
19
+
20
+ self._cell_picker = vtkCellPicker()
21
+ self._area_picker = vtkAreaPicker()
22
+ self._cell_picker.SetTolerance(0.005)
23
+
24
+ def pick(self, x: float, y: float, z: float, renderer: vtkRenderer):
25
+ # maybe a behaviour like the one implemented in CellAreaPicker
26
+ # would fit nicely here
27
+ self._picked.clear()
28
+ self._cell_picker.Pick(x, y, z, renderer)
29
+
30
+ if self.desired_actor != self._cell_picker.GetActor():
31
+ return self.get_picked()
32
+
33
+ data: vtkPolyData = self.desired_actor.GetMapper().GetInput()
34
+ if data is None:
35
+ return self.get_picked()
36
+
37
+ property_array = data.GetCellData().GetArray(self.property_name)
38
+ if property_array is None:
39
+ return self.get_picked()
40
+
41
+ cell = self._cell_picker.GetCellId()
42
+ property_val = property_array.GetValue(cell)
43
+ self._picked.add(property_val)
44
+ return self.get_picked()
45
+
46
+ def area_pick(
47
+ self, x0: float, y0: float, x1: float, y1: float, renderer: vtkRenderer
48
+ ):
49
+ self._picked.clear()
50
+ self._area_picker.AreaPick(x0, y0, x1, y1, renderer)
51
+ extractor = vtkExtractSelectedFrustum()
52
+ extractor.SetFrustum(self._area_picker.GetFrustum())
53
+
54
+ if self.desired_actor not in self._area_picker.GetProp3Ds():
55
+ return self.get_picked()
56
+
57
+ data: vtkPolyData = self.desired_actor.GetMapper().GetInput()
58
+ if data is None:
59
+ return self.get_picked()
60
+
61
+ property_array = data.GetCellData().GetArray(self.property_name)
62
+ if property_array is None:
63
+ return self.get_picked()
64
+
65
+ if property_array.GetNumberOfValues() < data.GetNumberOfCells():
66
+ return self.get_picked()
67
+
68
+ for cell in range(data.GetNumberOfCells()):
69
+ property_val = property_array.GetValue(cell)
70
+
71
+ # if the property was already picked
72
+ # we don't even need to check if the cell
73
+ # is inside the selection box
74
+ if property_val in self._picked:
75
+ continue
76
+
77
+ bounds = [0, 0, 0, 0, 0, 0]
78
+ data.GetCellBounds(cell, bounds)
79
+ if extractor.OverallBoundsTest(bounds):
80
+ self._picked.add(property_val)
81
+ return self.get_picked()
82
+
83
+ def get_picked(self):
84
+ return set(self._picked)
@@ -1,13 +1,13 @@
1
- from .lines_data import LinesData
2
- from .vertices_data import VerticesData
3
- from .arrows import (
4
- create_arrow_source,
5
- create_long_arrow_source,
6
- create_double_arrow_source,
7
- create_outwards_arrow_source,
8
- )
9
-
10
- from .simple_shapes import (
11
- create_cone_source,
12
- create_cube_source,
13
- )
1
+ from .lines_data import LinesData
2
+ from .vertices_data import VerticesData
3
+ from .arrows import (
4
+ create_arrow_source,
5
+ create_long_arrow_source,
6
+ create_double_arrow_source,
7
+ create_outwards_arrow_source,
8
+ )
9
+
10
+ from .simple_shapes import (
11
+ create_cone_source,
12
+ create_cube_source,
13
+ )
@@ -1,23 +1,23 @@
1
- from vtkmodules.vtkCommonCore import vtkPoints
2
- from vtkmodules.vtkCommonDataModel import VTK_LINE, vtkPolyData
3
-
4
-
5
- class LinesData(vtkPolyData):
6
- def __init__(self, lines_list) -> None:
7
- super().__init__()
8
-
9
- self.lines_list = lines_list
10
- self.build()
11
-
12
- def build(self):
13
- points = vtkPoints()
14
- self.Allocate(len(self.lines_list))
15
-
16
- current_point = 0
17
- for x0, y0, z0, x1, y1, z1 in self.lines_list:
18
- points.InsertPoint(current_point, x0, y0, z0)
19
- points.InsertPoint(current_point + 1, x1, y1, z1)
20
- self.InsertNextCell(VTK_LINE, 2, [current_point, current_point + 1])
21
- current_point += 2
22
-
23
- self.SetPoints(points)
1
+ from vtkmodules.vtkCommonCore import vtkPoints
2
+ from vtkmodules.vtkCommonDataModel import VTK_LINE, vtkPolyData
3
+
4
+
5
+ class LinesData(vtkPolyData):
6
+ def __init__(self, lines_list) -> None:
7
+ super().__init__()
8
+
9
+ self.lines_list = lines_list
10
+ self.build()
11
+
12
+ def build(self):
13
+ points = vtkPoints()
14
+ self.Allocate(len(self.lines_list))
15
+
16
+ current_point = 0
17
+ for x0, y0, z0, x1, y1, z1 in self.lines_list:
18
+ points.InsertPoint(current_point, x0, y0, z0)
19
+ points.InsertPoint(current_point + 1, x1, y1, z1)
20
+ self.InsertNextCell(VTK_LINE, 2, [current_point, current_point + 1])
21
+ current_point += 2
22
+
23
+ self.SetPoints(points)
@@ -1,24 +1,24 @@
1
- from vtkmodules.vtkCommonCore import vtkPoints
2
- from vtkmodules.vtkCommonDataModel import VTK_VERTEX, vtkPolyData
3
-
4
-
5
- class VerticesData(vtkPolyData):
6
- """
7
- This class describes a polydata composed by a set of points.
8
- """
9
-
10
- def __init__(self, points_list: list[tuple[int, int, int]]) -> None:
11
- super().__init__()
12
-
13
- self.points_list = points_list
14
- self.build()
15
-
16
- def build(self):
17
- points = vtkPoints()
18
- self.Allocate(len(self.points_list))
19
-
20
- for i, (x, y, z) in enumerate(self.points_list):
21
- points.InsertNextPoint(x, y, z)
22
- self.InsertNextCell(VTK_VERTEX, 1, [i])
23
-
24
- self.SetPoints(points)
1
+ from vtkmodules.vtkCommonCore import vtkPoints
2
+ from vtkmodules.vtkCommonDataModel import VTK_VERTEX, vtkPolyData
3
+
4
+
5
+ class VerticesData(vtkPolyData):
6
+ """
7
+ This class describes a polydata composed by a set of points.
8
+ """
9
+
10
+ def __init__(self, points_list: list[tuple[int, int, int]]) -> None:
11
+ super().__init__()
12
+
13
+ self.points_list = points_list
14
+ self.build()
15
+
16
+ def build(self):
17
+ points = vtkPoints()
18
+ self.Allocate(len(self.points_list))
19
+
20
+ for i, (x, y, z) in enumerate(self.points_list):
21
+ points.InsertNextPoint(x, y, z)
22
+ self.InsertNextCell(VTK_VERTEX, 1, [i])
23
+
24
+ self.SetPoints(points)
@@ -1,2 +1,2 @@
1
- from .animated_render_widget import AnimatedRenderWidget
2
- from .common_render_widget import CommonRenderWidget
1
+ from .animated_render_widget import AnimatedRenderWidget
2
+ from .common_render_widget import CommonRenderWidget