rational-linkages 2.2.1__cp311-cp311-win_amd64.whl → 2.2.3__cp311-cp311-win_amd64.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.
- rational_linkages/PlotterPyqtgraph.py +57 -54
- rational_linkages/utils_rust.cp311-win_amd64.pyd +0 -0
- {rational_linkages-2.2.1.dist-info → rational_linkages-2.2.3.dist-info}/METADATA +1 -2
- {rational_linkages-2.2.1.dist-info → rational_linkages-2.2.3.dist-info}/RECORD +7 -7
- {rational_linkages-2.2.1.dist-info → rational_linkages-2.2.3.dist-info}/WHEEL +0 -0
- {rational_linkages-2.2.1.dist-info → rational_linkages-2.2.3.dist-info}/licenses/LICENSE +0 -0
- {rational_linkages-2.2.1.dist-info → rational_linkages-2.2.3.dist-info}/top_level.txt +0 -0
@@ -709,65 +709,68 @@ else:
|
|
709
709
|
CustomGLViewWidget = None
|
710
710
|
|
711
711
|
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
712
|
+
if gl is not None:
|
713
|
+
class FramePlotHelper:
|
714
|
+
def __init__(self,
|
715
|
+
transform: TransfMatrix = TransfMatrix(),
|
716
|
+
width: float = 2.,
|
717
|
+
length: float = 1.,
|
718
|
+
antialias: bool = True):
|
719
|
+
"""
|
720
|
+
Create a coordinate frame using three GLLinePlotItems.
|
720
721
|
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
722
|
+
:param TransfMatrix transform: The initial transformation matrix.
|
723
|
+
:param float width: The width of the lines.
|
724
|
+
:param float length: The length of the axes.
|
725
|
+
:param bool antialias: Whether to use antialiasing
|
726
|
+
"""
|
727
|
+
# Create GLLinePlotItems for the three axes.
|
728
|
+
# The initial positions are placeholders; they will be set properly in setData().
|
729
|
+
self.x_axis = gl.GLLinePlotItem(pos=np.zeros((2, 3)),
|
730
|
+
color=(1, 0, 0, 0.5),
|
731
|
+
glOptions='translucent',
|
732
|
+
width=width,
|
733
|
+
antialias=antialias)
|
734
|
+
self.y_axis = gl.GLLinePlotItem(pos=np.zeros((2, 3)),
|
735
|
+
color=(0, 1, 0, 0.5),
|
736
|
+
glOptions='translucent',
|
737
|
+
width=width,
|
738
|
+
antialias=antialias)
|
739
|
+
self.z_axis = gl.GLLinePlotItem(pos=np.zeros((2, 3)),
|
740
|
+
color=(0, 0, 1, 0.5),
|
741
|
+
glOptions='translucent',
|
742
|
+
width=width,
|
743
|
+
antialias=antialias)
|
744
|
+
|
745
|
+
# Set the initial transformation
|
746
|
+
self.tr = transform
|
747
|
+
self.length = length
|
748
|
+
self.setData(transform)
|
749
|
+
|
750
|
+
def setData(self, transform: TransfMatrix):
|
751
|
+
"""
|
752
|
+
Update the coordinate frame using a new 4x4 transformation matrix.
|
752
753
|
|
753
|
-
|
754
|
-
|
755
|
-
|
754
|
+
:param TransfMatrix transform: The new transformation matrix.
|
755
|
+
"""
|
756
|
+
self.tr = transform
|
756
757
|
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
758
|
+
# Update the positions for each axis.
|
759
|
+
self.x_axis.setData(pos=np.array([transform.t, transform.t + self.length * transform.n]))
|
760
|
+
self.y_axis.setData(pos=np.array([transform.t, transform.t + self.length * transform.o]))
|
761
|
+
self.z_axis.setData(pos=np.array([transform.t, transform.t + self.length * transform.a]))
|
761
762
|
|
762
|
-
|
763
|
-
|
764
|
-
|
763
|
+
def addToView(self, view: gl.GLViewWidget):
|
764
|
+
"""
|
765
|
+
Add all three axes to a GLViewWidget.
|
765
766
|
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
|
767
|
+
:param gl.GLViewWidget view: The view to add the axes to.
|
768
|
+
"""
|
769
|
+
view.addItem(self.x_axis)
|
770
|
+
view.addItem(self.y_axis)
|
771
|
+
view.addItem(self.z_axis)
|
772
|
+
else:
|
773
|
+
FramePlotHelper = None
|
771
774
|
|
772
775
|
if QtWidgets is not None:
|
773
776
|
class InteractivePlotterWidget(QtWidgets.QWidget):
|
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: rational-linkages
|
3
|
-
Version: 2.2.
|
3
|
+
Version: 2.2.3
|
4
4
|
Summary: Rational Linkages
|
5
5
|
Author-email: Daniel Huczala <daniel.huczala@uibk.ac.at>
|
6
6
|
License-Expression: GPL-3.0-or-later
|
@@ -19,7 +19,6 @@ Requires-Dist: sympy>=1.10.0
|
|
19
19
|
Requires-Dist: PyQt6>=6.2.0
|
20
20
|
Requires-Dist: pyqtgraph>=0.12.4
|
21
21
|
Requires-Dist: PyOpenGL>=3.0.0
|
22
|
-
Requires-Dist: matplotlib>=3.9.0; platform_system == "Linux"
|
23
22
|
Requires-Dist: matplotlib>=3.9.0; platform_system == "Windows" and platform_machine == "ARM64"
|
24
23
|
Provides-Extra: opt
|
25
24
|
Requires-Dist: ipython>=8.0.0; extra == "opt"
|
@@ -15,7 +15,7 @@ rational_linkages/NormalizedLine.py,sha256=J41UnSQg6jS23uW_oKYzse_MLRqEMgC-RQ0jN
|
|
15
15
|
rational_linkages/NormalizedPlane.py,sha256=KlsV2Bems4onD_TTDj9SaPa57hVjZHiTt4tqZ5jpRZw,6032
|
16
16
|
rational_linkages/Plotter.py,sha256=g-DI3kKh6-Y1Q5uvGde-exDeFkifia7MIQDVK3FQsvo,4456
|
17
17
|
rational_linkages/PlotterMatplotlib.py,sha256=H53nc147fgw8iTP2xeiphIaHdW9URTTX7zyAucsHHhw,37734
|
18
|
-
rational_linkages/PlotterPyqtgraph.py,sha256=
|
18
|
+
rational_linkages/PlotterPyqtgraph.py,sha256=LAK6rVWeKKvygd1Syb_tbBd6_Dwwr9eO42AXQK1LldI,54533
|
19
19
|
rational_linkages/PointHomogeneous.py,sha256=PFOUriVm-kRvV2PzlyyZcrw2wlCK3uGDB3ZEgfXP5v4,13784
|
20
20
|
rational_linkages/Quaternion.py,sha256=RDRRczv10hLehnsJepwYXXBQeum9-tfstJATdsDCssE,5285
|
21
21
|
rational_linkages/RationalBezier.py,sha256=sPoWuVcjm_EiaRDMHPEUaeFO8MMWZUSSq4MSUrznPrs,15243
|
@@ -28,13 +28,13 @@ rational_linkages/TransfMatrix.py,sha256=UuPw5z6wBgqxYwNczxgYJfvjyYl_rxk5Bhax-pR
|
|
28
28
|
rational_linkages/__init__.py,sha256=j51yV2-UG2vDFIUmV0sg0TDb5RmbhJ6LBaalrZspisQ,1050
|
29
29
|
rational_linkages/models.py,sha256=aMdyKBeLDi3XtXebW84K1w8VL8g3eqlMXVCG6OJqrb4,7246
|
30
30
|
rational_linkages/utils.py,sha256=yWALKgkgTcYobZVCWuyAspe0DFdmagBTVyH16rdxqmk,5246
|
31
|
-
rational_linkages/utils_rust.cp311-win_amd64.pyd,sha256=
|
31
|
+
rational_linkages/utils_rust.cp311-win_amd64.pyd,sha256=oXcK6aQISZ_pZ9umZe6JEoxMmyKwnIULcAnT5_GFOgo,244736
|
32
32
|
rational_linkages/utils_rust.pyi,sha256=iTaedylbvDNplOzrd1RZ0PPJzCvh20w52ewbLiuAgnU,140
|
33
33
|
rational_linkages/data/bennett_ark24.pkl,sha256=Eh7S5PHOi0ENg8-FS7KjQsc6BBeMXT984Yz5VKiqwNM,39216
|
34
34
|
rational_linkages/data/collisions_free_6r.pkl,sha256=XZFvnt8jEUfDY3JacLlS1kE-EQvtgmb7Un07DovmUmg,73101
|
35
35
|
rational_linkages/data/plane_fold_6r.pkl,sha256=lbrnqFksdJ6QW4LJqyVv-ujjhP25kkUWdGY7bjR6Hbo,48752
|
36
|
-
rational_linkages-2.2.
|
37
|
-
rational_linkages-2.2.
|
38
|
-
rational_linkages-2.2.
|
39
|
-
rational_linkages-2.2.
|
40
|
-
rational_linkages-2.2.
|
36
|
+
rational_linkages-2.2.3.dist-info/licenses/LICENSE,sha256=SrpxAZ1vJi81S4VF9EBjgxz9qrVj9acCyQPSAk3JgOo,35784
|
37
|
+
rational_linkages-2.2.3.dist-info/METADATA,sha256=H4lt7oruxa1j44lFrsjcmMWlJw_GV1hM7GRwR7i6sXA,9842
|
38
|
+
rational_linkages-2.2.3.dist-info/WHEEL,sha256=JLOMsP7F5qtkAkINx5UnzbFguf8CqZeraV8o04b0I8I,101
|
39
|
+
rational_linkages-2.2.3.dist-info/top_level.txt,sha256=IxRIuCa6RJFZKK15jamktxgS0abg1PV2WqXo1Z-MalI,18
|
40
|
+
rational_linkages-2.2.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|