From 23f613adcafb78ac18a974f35f5552cd05450b8c Mon Sep 17 00:00:00 2001 From: Eric Date: Mon, 10 Aug 2026 14:54:08 +0200 Subject: [PATCH 1/3] fix polyhedron vertices points to list[x, y, z], when initiated as vertices: list[Point]. --- src/compas/geometry/polyhedron.py | 2 ++ tests/compas/geometry/test_polyhedron.py | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/compas/geometry/polyhedron.py b/src/compas/geometry/polyhedron.py index 68720119daa3..8169a3d81f96 100644 --- a/src/compas/geometry/polyhedron.py +++ b/src/compas/geometry/polyhedron.py @@ -284,6 +284,8 @@ def vertices(self): @vertices.setter def vertices(self, vertices): + if all(isinstance(vertex, Point) for vertex in vertices): + vertices = [[vertex.x, vertex.y, vertex.z] for vertex in vertices] self._vertices = vertices @property diff --git a/tests/compas/geometry/test_polyhedron.py b/tests/compas/geometry/test_polyhedron.py index 03763feeb61b..87de040eb02f 100644 --- a/tests/compas/geometry/test_polyhedron.py +++ b/tests/compas/geometry/test_polyhedron.py @@ -1,4 +1,5 @@ from compas.geometry import Polyhedron +from compas.geometry import Point from compas.itertools import pairwise @@ -17,3 +18,18 @@ def test_polyhedron(): assert polyhedron.lines == [(a, b) for a, b in pairwise(vertices[-1:] + vertices)] assert polyhedron.points[0] == vertices[0] assert polyhedron.points[-1] != polyhedron.points[0] + + +def test_polyhedron_vertices(): + vertices = [[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]] + faces = [[0, 1, 2, 3]] + name = "Test Polyhedron" + polyhedron = Polyhedron(vertices, faces, name) + + polyhedron_vertices = polyhedron.vertices + assert all(isinstance(vertex, list) and len(vertex) == 3 for vertex in polyhedron_vertices) + + vertices = [Point(0, 0, 0), Point(1, 0, 0), Point(1, 1, 0), Point(0, 1, 0)] + polyhedron = Polyhedron(vertices, faces, name) + polyhedron_vertices = polyhedron.vertices + assert all(isinstance(vertex, list) and len(vertex) == 3 for vertex in polyhedron_vertices) From 8da0accaf9e6224d00aed472108eea374e77d9b1 Mon Sep 17 00:00:00 2001 From: Eric Date: Mon, 10 Aug 2026 14:59:47 +0200 Subject: [PATCH 2/3] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 48f846510721..896a6c208163 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * Renamed `Tolerance.units` to `Tolerance.unit` to better reflect the documented properties. Left `units` with deprecation warning. * Fixed `NotImplementedErorr` when calling `BrepLoop.vertices`. * Fixed `python -m compas` to detect extensions based on `importlib` rather than `pkg_resources`. +* Fixed `Polyhedron.vertices` setter to convert `Point` instances to `[x, y, z]` lists. ### Removed From ab601b3115897f22830c3baac66ad4997c721781 Mon Sep 17 00:00:00 2001 From: Eric Date: Mon, 7 Sep 2026 11:55:04 +0200 Subject: [PATCH 3/3] Update src/compas/geometry/polyhedron.py Co-authored-by: Chen Kasirer --- src/compas/geometry/polyhedron.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/compas/geometry/polyhedron.py b/src/compas/geometry/polyhedron.py index 8169a3d81f96..c0cecdafecf7 100644 --- a/src/compas/geometry/polyhedron.py +++ b/src/compas/geometry/polyhedron.py @@ -284,9 +284,9 @@ def vertices(self): @vertices.setter def vertices(self, vertices): - if all(isinstance(vertex, Point) for vertex in vertices): - vertices = [[vertex.x, vertex.y, vertex.z] for vertex in vertices] - self._vertices = vertices + self._vertices = [] + for vertex in vertices: + self._vertices.append([*vertex]) @property def faces(self):