|
@@ -37,19 +37,17 @@
|
|
|
"def add_blocks_along(border_chain: PolygonalChain, length_add_mm: float,\n",
|
|
|
" height_mm: float, width_mm: float):\n",
|
|
|
" for vertex_triplet_indices in border_chain.adjacent_vertex_indices(3):\n",
|
|
|
- " vertex_triplet_coords = tuple(numpy.array(surface.vertices[idx])\n",
|
|
|
- " for idx in vertex_triplet_indices)\n",
|
|
|
- " backward_vector = vertex_triplet_coords[0] - vertex_triplet_coords[1]\n",
|
|
|
- " forward_vector = vertex_triplet_coords[2] - vertex_triplet_coords[1]\n",
|
|
|
+ " vertex_triplet = surface.select_vertices(vertex_triplet_indices)\n",
|
|
|
+ " backward_vector = vertex_triplet[0] - vertex_triplet[1]\n",
|
|
|
+ " forward_vector = vertex_triplet[2] - vertex_triplet[1]\n",
|
|
|
" forward_vector = unit_vector(forward_vector) \\\n",
|
|
|
" * (numpy.linalg.norm(forward_vector) + length_add_mm)\n",
|
|
|
" upward_vector = unit_vector(numpy.cross(backward_vector, forward_vector)) * height_mm / 2\n",
|
|
|
" sideward_vector = unit_vector(numpy.cross(upward_vector, forward_vector)) * width_mm / 2\n",
|
|
|
- " base_corners = [vertex_triplet_coords[1] + v\n",
|
|
|
- " for v in [-upward_vector -sideward_vector,\n",
|
|
|
- " -upward_vector +sideward_vector,\n",
|
|
|
- " +upward_vector +sideward_vector,\n",
|
|
|
- " +upward_vector -sideward_vector]]\n",
|
|
|
+ " base_corners = [vertex_triplet[1] + v for v in [-upward_vector -sideward_vector,\n",
|
|
|
+ " -upward_vector +sideward_vector,\n",
|
|
|
+ " +upward_vector +sideward_vector,\n",
|
|
|
+ " +upward_vector -sideward_vector]]\n",
|
|
|
" top_corners = [v + forward_vector for v in base_corners]\n",
|
|
|
" base_indices = [surface.add_vertex(Vertex(*coords)) for coords in base_corners]\n",
|
|
|
" top_indices = [surface.add_vertex(Vertex(*coords)) for coords in top_corners]\n",
|