engeom 0.2.3__tar.gz → 0.2.4__tar.gz

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 (119) hide show
  1. {engeom-0.2.3 → engeom-0.2.4}/Cargo.lock +1 -1
  2. {engeom-0.2.3 → engeom-0.2.4}/Cargo.toml +1 -1
  3. {engeom-0.2.3 → engeom-0.2.4}/PKG-INFO +1 -1
  4. {engeom-0.2.3 → engeom-0.2.4}/python/engeom/geom3.pyi +11 -0
  5. {engeom-0.2.3 → engeom-0.2.4}/python/engeom/pyvista.py +13 -1
  6. {engeom-0.2.3 → engeom-0.2.4}/src/mesh.rs +6 -1
  7. {engeom-0.2.3 → engeom-0.2.4}/.github/workflows/CI.yml +0 -0
  8. {engeom-0.2.3 → engeom-0.2.4}/.gitignore +0 -0
  9. {engeom-0.2.3 → engeom-0.2.4}/.gitmodules +0 -0
  10. {engeom-0.2.3 → engeom-0.2.4}/engeom/.gitignore +0 -0
  11. {engeom-0.2.3 → engeom-0.2.4}/engeom/Cargo.lock +0 -0
  12. {engeom-0.2.3 → engeom-0.2.4}/engeom/Cargo.toml +0 -0
  13. {engeom-0.2.3 → engeom-0.2.4}/engeom/README.md +0 -0
  14. {engeom-0.2.3 → engeom-0.2.4}/engeom/docs/airfoils/camber.md +0 -0
  15. {engeom-0.2.3 → engeom-0.2.4}/engeom/docs/airfoils/overview.md +0 -0
  16. {engeom-0.2.3 → engeom-0.2.4}/engeom/docs/common/angles.md +0 -0
  17. {engeom-0.2.3 → engeom-0.2.4}/engeom/docs/common/core_space.md +0 -0
  18. {engeom-0.2.3 → engeom-0.2.4}/engeom/docs/common/discrete_domain.md +0 -0
  19. {engeom-0.2.3 → engeom-0.2.4}/engeom/docs/common/images/surface_point_meas.svg +0 -0
  20. {engeom-0.2.3 → engeom-0.2.4}/engeom/docs/common/svd_basis.md +0 -0
  21. {engeom-0.2.3 → engeom-0.2.4}/engeom/docs/geom2/alignment.md +0 -0
  22. {engeom-0.2.3 → engeom-0.2.4}/engeom/docs/geom2/curve.md +0 -0
  23. {engeom-0.2.3 → engeom-0.2.4}/engeom/docs/geom2/point_collections.md +0 -0
  24. {engeom-0.2.3 → engeom-0.2.4}/engeom/docs/geom2/shapes.md +0 -0
  25. {engeom-0.2.3 → engeom-0.2.4}/engeom/docs/index.md +0 -0
  26. {engeom-0.2.3 → engeom-0.2.4}/engeom/docs/javascripts/mathjax.js +0 -0
  27. {engeom-0.2.3 → engeom-0.2.4}/engeom/docs/python_rust.md +0 -0
  28. {engeom-0.2.3 → engeom-0.2.4}/engeom/mkdocs.yml +0 -0
  29. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/airfoil/camber.rs +0 -0
  30. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/airfoil/edges.rs +0 -0
  31. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/airfoil/helpers.rs +0 -0
  32. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/airfoil/inscribed_circle.rs +0 -0
  33. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/airfoil/orientation.rs +0 -0
  34. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/airfoil.rs +0 -0
  35. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/common/align.rs +0 -0
  36. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/common/angles.rs +0 -0
  37. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/common/convert_2d_3d.rs +0 -0
  38. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/common/discrete_domain.rs +0 -0
  39. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/common/indices.rs +0 -0
  40. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/common/interval.rs +0 -0
  41. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/common/kd_tree.rs +0 -0
  42. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/common/points.rs +0 -0
  43. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/common/poisson_disk.rs +0 -0
  44. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/common/surface_point.rs +0 -0
  45. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/common/svd_basis.rs +0 -0
  46. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/common/vec_f64.rs +0 -0
  47. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/common.rs +0 -0
  48. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/errors.rs +0 -0
  49. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/func1/common_functions.rs +0 -0
  50. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/func1/polynomial.rs +0 -0
  51. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/func1/series1.rs +0 -0
  52. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/func1.rs +0 -0
  53. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom2/aabb2.rs +0 -0
  54. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom2/align2/jacobian.rs +0 -0
  55. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom2/align2/points_to_curve.rs +0 -0
  56. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom2/align2/rc_params2.rs +0 -0
  57. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom2/align2.rs +0 -0
  58. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom2/angles2.rs +0 -0
  59. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom2/circle2.rs +0 -0
  60. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom2/curve2.rs +0 -0
  61. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom2/hull.rs +0 -0
  62. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom2/line2.rs +0 -0
  63. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom2/polyline2.rs +0 -0
  64. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom2.rs +0 -0
  65. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/align3/jacobian.rs +0 -0
  66. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/align3/multi_param.rs +0 -0
  67. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/align3/points_to_mesh.rs +0 -0
  68. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/align3/rotations.rs +0 -0
  69. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/align3.rs +0 -0
  70. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/curve3.rs +0 -0
  71. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/mesh/conformal.rs +0 -0
  72. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/mesh/edges.rs +0 -0
  73. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/mesh/faces.rs +0 -0
  74. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/mesh/filtering.rs +0 -0
  75. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/mesh/measurement.rs +0 -0
  76. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/mesh/patches.rs +0 -0
  77. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/mesh/queries.rs +0 -0
  78. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/mesh/sampling.rs +0 -0
  79. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/mesh/serialization.rs +0 -0
  80. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/mesh/uv_mapping.rs +0 -0
  81. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/mesh.rs +0 -0
  82. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/plane3.rs +0 -0
  83. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3/point_cloud.rs +0 -0
  84. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/geom3.rs +0 -0
  85. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/io.rs +0 -0
  86. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/lib.rs +0 -0
  87. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/metrology/dimension.rs +0 -0
  88. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/metrology/line_profiles.rs +0 -0
  89. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/metrology/surface_deviation.rs +0 -0
  90. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/metrology/tolerance.rs +0 -0
  91. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/metrology/tolerance_map.rs +0 -0
  92. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/metrology.rs +0 -0
  93. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/stats.rs +0 -0
  94. {engeom-0.2.3 → engeom-0.2.4}/engeom/src/utility.rs +0 -0
  95. {engeom-0.2.3 → engeom-0.2.4}/pyproject.toml +0 -0
  96. {engeom-0.2.3 → engeom-0.2.4}/python/engeom/__init__.py +0 -0
  97. {engeom-0.2.3 → engeom-0.2.4}/python/engeom/airfoil/__init__.py +0 -0
  98. {engeom-0.2.3 → engeom-0.2.4}/python/engeom/airfoil.pyi +0 -0
  99. {engeom-0.2.3 → engeom-0.2.4}/python/engeom/align/__init__.py +0 -0
  100. {engeom-0.2.3 → engeom-0.2.4}/python/engeom/align.pyi +0 -0
  101. {engeom-0.2.3 → engeom-0.2.4}/python/engeom/engeom.pyi +0 -0
  102. {engeom-0.2.3 → engeom-0.2.4}/python/engeom/geom2/__init__.py +0 -0
  103. {engeom-0.2.3 → engeom-0.2.4}/python/engeom/geom2.pyi +0 -0
  104. {engeom-0.2.3 → engeom-0.2.4}/python/engeom/geom3/__init__.py +0 -0
  105. {engeom-0.2.3 → engeom-0.2.4}/python/engeom/matplotlib.py +0 -0
  106. {engeom-0.2.3 → engeom-0.2.4}/python/engeom/metrology/__init__.py +0 -0
  107. {engeom-0.2.3 → engeom-0.2.4}/python/engeom/metrology.pyi +0 -0
  108. {engeom-0.2.3 → engeom-0.2.4}/python/tests/test_all.py +0 -0
  109. {engeom-0.2.3 → engeom-0.2.4}/python/tests/test_geom2_simple.py +0 -0
  110. {engeom-0.2.3 → engeom-0.2.4}/src/airfoil.rs +0 -0
  111. {engeom-0.2.3 → engeom-0.2.4}/src/alignments.rs +0 -0
  112. {engeom-0.2.3 → engeom-0.2.4}/src/bounding.rs +0 -0
  113. {engeom-0.2.3 → engeom-0.2.4}/src/common.rs +0 -0
  114. {engeom-0.2.3 → engeom-0.2.4}/src/conversions.rs +0 -0
  115. {engeom-0.2.3 → engeom-0.2.4}/src/geom2.rs +0 -0
  116. {engeom-0.2.3 → engeom-0.2.4}/src/geom3.rs +0 -0
  117. {engeom-0.2.3 → engeom-0.2.4}/src/lib.rs +0 -0
  118. {engeom-0.2.3 → engeom-0.2.4}/src/metrology.rs +0 -0
  119. {engeom-0.2.3 → engeom-0.2.4}/src/svd_basis.rs +0 -0
@@ -1024,7 +1024,7 @@ dependencies = [
1024
1024
 
1025
1025
  [[package]]
1026
1026
  name = "py-engeom"
1027
- version = "0.2.3"
1027
+ version = "0.2.4"
1028
1028
  dependencies = [
1029
1029
  "engeom",
1030
1030
  "numpy",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "py-engeom"
3
- version = "0.2.3"
3
+ version = "0.2.4"
4
4
  edition = "2021"
5
5
 
6
6
  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: engeom
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -638,6 +638,17 @@ class Mesh:
638
638
  :return:
639
639
  """
640
640
 
641
+ def surface_closest_to(self, x: float, y: float, z: float) -> SurfacePoint3:
642
+ """
643
+ Find the closest point on the surface of the mesh to a given point in space, returning the point and normal
644
+ in the form of a `SurfacePoint3` object.
645
+ :param x: the x coordinate of the point to find the closest point to
646
+ :param y: the y coordinate of the point to find the closest point to
647
+ :param z: the z coordinate of the point to find the closest point to
648
+ :return: a `SurfacePoint3` object containing the closest point and normal
649
+ """
650
+ ...
651
+
641
652
 
642
653
  class MeshTriangleFilter:
643
654
  def collect(self) -> List[int]:
@@ -9,7 +9,7 @@ from typing import List, Any, Dict, Union, Iterable, Tuple
9
9
  import numpy
10
10
  from pyvista import ColorLike
11
11
 
12
- from .geom3 import Mesh, Curve3, Vector3, Point3
12
+ from .geom3 import Mesh, Curve3, Vector3, Point3, Iso3
13
13
  from .metrology import Length3
14
14
  from .matplotlib import LabelPlace
15
15
 
@@ -110,6 +110,18 @@ else:
110
110
  label = pyvista.Label(text=template.format(value=value), position=lines[-1], size=text_size)
111
111
  self.plotter.add_actor(label)
112
112
 
113
+ def coordinate_frame(self, iso: Iso3, size: float = 1.0):
114
+ points = numpy.array([[0, 0, 0], [size, 0, 0], [0, size, 0], [0, 0, size]], dtype=numpy.float64)
115
+ points = iso.transform_points(points)
116
+
117
+ self.plotter.add_lines(points[[0, 1]], color="red", width=5.0)
118
+ self.plotter.add_lines(points[[0, 2]], color="green", width=5.0)
119
+ self.plotter.add_lines(points[[0, 3]], color="blue", width=5.0)
120
+
121
+ def label(self, point: PlotCoords, text: str, **kwargs):
122
+ label = pyvista.Label(text=text, position=_tuplefy(point), **kwargs)
123
+ self.plotter.add_actor(label)
124
+
113
125
  def arrow(self, start: PlotCoords, direction: PlotCoords,
114
126
  tip_length: float = 0.25,
115
127
  tip_radius: float = 0.1,
@@ -1,7 +1,7 @@
1
1
  use crate::bounding::Aabb3;
2
2
  use crate::common::{DeviationMode, SelectOp};
3
3
  use crate::conversions::{array_to_faces, array_to_points3, faces_to_array, points_to_array3};
4
- use crate::geom3::{Curve3, Iso3, Plane3};
4
+ use crate::geom3::{Curve3, Iso3, Plane3, SurfacePoint3};
5
5
  use crate::metrology::Length3;
6
6
  use engeom::common::points::dist;
7
7
  use engeom::common::{Selection, SplitResult};
@@ -81,6 +81,11 @@ impl Mesh {
81
81
  self.inner.transform(iso.get_inner());
82
82
  }
83
83
 
84
+ fn surface_closest_to(&self, x: f64, y: f64, z: f64) -> SurfacePoint3 {
85
+ let p = engeom::Point3::new(x, y, z);
86
+ SurfacePoint3::from_inner(self.inner.surf_closest_to(&p))
87
+ }
88
+
84
89
  fn append(&mut self, other: &Mesh) -> PyResult<()> {
85
90
  self.inner
86
91
  .append(&other.inner)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes