halfedge 0.12.0__py3-none-any.whl → 0.13.0__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.
@@ -164,7 +164,7 @@ class BlindHalfEdges:
164
164
  This function can also fill in holes inside the mesh.
165
165
  """
166
166
  hole_edges: set[Edge] = set()
167
- for edge in self.edges:
167
+ for edge in sorted(self.edges):
168
168
  with suppress(AttributeError):
169
169
  _ = edge.pair
170
170
  continue
@@ -143,31 +143,31 @@ class StaticHalfEdges(BlindHalfEdges):
143
143
  return {vert: cnt for cnt, vert in enumerate(self.vl)}
144
144
 
145
145
  @property
146
- def ei(self) -> set[tuple[int, int]]:
146
+ def ei(self) -> list[tuple[int, int]]:
147
147
  """Edge indices - Edges as a set of paired vertex indices.
148
148
 
149
149
  :return: A set of tuples where each tuple represents an edge as paired vertex
150
150
  indices.
151
151
  """
152
152
  v2i = self._vert2list_index
153
- return {(v2i[edge.orig], v2i[edge.dest]) for edge in self.edges}
153
+ return [(v2i[edge.orig], v2i[edge.dest]) for edge in sorted(self.edges)]
154
154
 
155
155
  @property
156
- def fi(self) -> set[tuple[int, ...]]:
156
+ def fi(self) -> list[tuple[int, ...]]:
157
157
  """Face indices - Faces as a set of tuples of vertex list indices.
158
158
 
159
159
  :return: A set of tuples where each tuple represents a face as a sequence of
160
160
  vertex indices.
161
161
  """
162
162
  v2i = self._vert2list_index
163
- return {tuple(v2i[x] for x in face.verts) for face in self.faces}
163
+ return [tuple(v2i[x] for x in face.verts) for face in sorted(self.faces)]
164
164
 
165
165
  @property
166
- def hi(self) -> set[tuple[int, ...]]:
166
+ def hi(self) -> list[tuple[int, ...]]:
167
167
  """Hole indices - Holes as a set of tuples of vertex list indices.
168
168
 
169
169
  :return: A set of tuples where each tuple represents a hole as a sequence of
170
170
  vertex indices.
171
171
  """
172
172
  v2i = self._vert2list_index
173
- return {tuple(v2i[x] for x in hole.verts) for hole in self.holes}
173
+ return [tuple(v2i[x] for x in face.verts) for face in sorted(self.holes)]
halfedge/type_attrib.py CHANGED
@@ -98,7 +98,7 @@ class StaticAttrib(Generic[_T]):
98
98
  self, value: _T | None = None, mesh: BlindHalfEdges | None = None
99
99
  ) -> None:
100
100
  """Set value and mesh."""
101
- self.cached_value = value
101
+ self.cached_value: _T | None = value
102
102
  self._mesh = mesh
103
103
 
104
104
  def copy_to_element(
@@ -207,7 +207,7 @@ class Attrib(Generic[_T]):
207
207
  self, value: _T | None = None, element: MeshElementBase | None = None
208
208
  ) -> None:
209
209
  """Set value and element."""
210
- self.cached_value = value
210
+ self.cached_value: _T | None = value
211
211
  self._element = element
212
212
 
213
213
  @property
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: halfedge
3
- Version: 0.12.0
3
+ Version: 0.13.0
4
4
  Summary: A typical half-edge data structure with some padding
5
5
  Author: Shay Hill
6
6
  Author-email: Shay Hill <shay_public@hotmail.com>
@@ -0,0 +1,11 @@
1
+ halfedge/__init__.py,sha256=1-q2fVFdMh3NWMh9ujuuyAnxNgPW8jIs_XpJ2oU8eFc,703
2
+ halfedge/half_edge_constructors.py,sha256=zSSagf7ru8jml-K9zzjIvNaR2m_eDep7hLajov3qi9U,8592
3
+ halfedge/half_edge_elements.py,sha256=z5rjlZCVJJOpWUf8oVNvZXgr1x4xhz5033lmsm4UBLk,18466
4
+ halfedge/half_edge_object.py,sha256=A70CVmV44zDi46gbtGHj8dw4Ltshqs56MRn5-78eM20,28771
5
+ halfedge/half_edge_querries.py,sha256=ra5ipa0NKkdTBRrXBcqNEk0u4TUv4HoTrHkOifDpvvg,5206
6
+ halfedge/py.typed,sha256=cnjZxaS4F-N8wLWhQK9YvZ-PaN5T1TK94E9VhPT_LGg,155
7
+ halfedge/type_attrib.py,sha256=vZ6ywH2_N5dDzDPR7y3G6J2-WZ6qwVc386pRrXVT1hI,20474
8
+ halfedge/validations.py,sha256=G3YmJnxX5Q_C3Jhbd7740oTngvsOIllfSwLa81jY3d0,4544
9
+ halfedge-0.13.0.dist-info/WHEEL,sha256=5DEXXimM34_d4Gx1AuF9ysMr1_maoEtGKjaILM3s4w4,80
10
+ halfedge-0.13.0.dist-info/METADATA,sha256=aHESqNU5VOOMYuvvtOmipFe2f78oX3_KqEtZhTn6-V4,6779
11
+ halfedge-0.13.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: uv 0.9.27
2
+ Generator: uv 0.9.29
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,11 +0,0 @@
1
- halfedge/__init__.py,sha256=1-q2fVFdMh3NWMh9ujuuyAnxNgPW8jIs_XpJ2oU8eFc,703
2
- halfedge/half_edge_constructors.py,sha256=mozSdN3fBh1EbjKnhR1g9tqePj2LwM6GL1OrUaBocos,8584
3
- halfedge/half_edge_elements.py,sha256=z5rjlZCVJJOpWUf8oVNvZXgr1x4xhz5033lmsm4UBLk,18466
4
- halfedge/half_edge_object.py,sha256=A70CVmV44zDi46gbtGHj8dw4Ltshqs56MRn5-78eM20,28771
5
- halfedge/half_edge_querries.py,sha256=q5xVOFdpw7t6fhs-Z8yF5j3RlG4DOrOgoLbBsAfkm4A,5179
6
- halfedge/py.typed,sha256=cnjZxaS4F-N8wLWhQK9YvZ-PaN5T1TK94E9VhPT_LGg,155
7
- halfedge/type_attrib.py,sha256=Giu4ck7shuq2xZoRrDjOMcOGty5v69Q49lo1kz7BJlU,20452
8
- halfedge/validations.py,sha256=G3YmJnxX5Q_C3Jhbd7740oTngvsOIllfSwLa81jY3d0,4544
9
- halfedge-0.12.0.dist-info/WHEEL,sha256=e_m4S054HL0hyR3CpOk-b7Q7fDX6BuFkgL5OjAExXas,80
10
- halfedge-0.12.0.dist-info/METADATA,sha256=T_3wiZ5N5tYrZy3v36L0sjyEVVDmGv8jWpnA4RdsUT4,6779
11
- halfedge-0.12.0.dist-info/RECORD,,