From 5a3045b7b7d07f15f118e83db274e367a5f5cc20 Mon Sep 17 00:00:00 2001 From: "Ilya V. Portnov" Date: Sun, 15 Sep 2024 00:43:32 +0500 Subject: [PATCH 01/11] Add "inscribed circle" API. --- utils/inscribed_circle.py | 110 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 utils/inscribed_circle.py diff --git a/utils/inscribed_circle.py b/utils/inscribed_circle.py new file mode 100644 index 0000000000..93e7136886 --- /dev/null +++ b/utils/inscribed_circle.py @@ -0,0 +1,110 @@ +# This file is part of project Sverchok. It's copyrighted by the contributors +# recorded in the version control history of the file, available from +# its original location https://github.com/nortikin/sverchok/commit/master +# +# SPDX-License-Identifier: GPL3 +# License-Filename: LICENSE + +import numpy as np +from mathutils import Vector, Matrix +from sverchok.utils.geom import linear_approximation, CircleEquation3D +from sverchok.utils.math import np_multiply_matrices_vectors, np_dot +from sverchok.dependencies import scipy +if scipy is not None: + from scipy.optimize import linprog + +def calc_inscribed_circle(verts): + """ + Calculate the biggest circle which can be inscribed into a polygon + (i.e. a circle which is inside the polygon, and touches some of polygon's edges). + + Only convex polygons are supported. + + Requires scipy. + + Theory: + If each edge of polygon (in 2D XOY plane) is represented by a unit vector (a, b), + which starts at polygon's vertex, then distance from this edge to arbitrary point (x,y) + inside polygon can be calculated as + + rho(edge, (x,y)) = a x + b y - d + + where d = a x0 + b y0, and (x0, y0) are coordinates of corresponding polygon vertex. + + Based on this formula, it is possible to state a linear programming problem. We + search for a point (x, y, Z), which satisfies constraints + + Z <= rho(edge_i, (x,y)) for i in 1 .. N, + + i.e. + + Z <= a_i x + b_i y - d_i + + or + + -a_i x -b_i y + Z <= -d_i + + with additional conditions: + + x >= 0, y >= 0, Z >= 0 + + and provides maximum for the goal function F(x, y, Z) = Z. + x and y will give us coordinates of circle's center. + + Also refer to: https://arxiv.org/pdf/1212.3193 . + + Arguments: + * verts - np.array (or list) of shape (n, 3), representing vertices of the polygon. + + Returns: an instance of CircleEquation3D. + """ + n = len(verts) + verts = np.array(verts) + + e1 = verts[1] - verts[0] + e2 = verts[2] - verts[1] + n1 = np.cross(e1, e2) + + approx = linear_approximation(verts) + plane = approx.most_similar_plane() + plane_matrix = plane.get_matrix() + plane_normal = np.array(plane.normal) + if np.dot(n1, plane_normal) < 0: + plane_matrix = Matrix.Diagonal(Vector([-1,-1,-1])) @ plane_matrix + verts = verts[::-1] + plane_normal = - plane_normal + m = plane_matrix + m = np.array(m.to_3x3()) + inv = np.linalg.inv(m) + pt0 = np.array(approx.center) + verts2d = np_multiply_matrices_vectors(inv, verts - pt0) + verts2d = verts2d[:,0:2] + origin = verts2d.min(axis=0) + verts2d -= origin[:2] + edges2d = np.roll(verts2d, -1, axis=0) - verts2d # (n, 2) + edges2d_normalized = edges2d / np.linalg.norm(edges2d, axis=1, keepdims=True) + + edges_eq = np.zeros((n+1, 3)) + edges_eq[:n,0] = edges2d_normalized[:,1] + edges_eq[:n,1] = -edges2d_normalized[:,0] + edges_eq[:n,2] = 1 + edges_eq[n,:] = np.array([0, 0, -1]) + + D = np_dot(-edges_eq[:n,:2], verts2d) + D = np.append(D, 0) + + c = np.array([0.0, 0.0, -1.0]) + + res = linprog(c, A_ub = edges_eq, b_ub = -D, method='highs') + center2d = res.x + if center2d is None: + return None + center2d[2] = 0 + + distances = np_dot(-edges_eq[:n,:2], center2d[:2]) - D[:n] + rho = abs(distances).min() + o = np.zeros((3,)) + o[:2] = origin + center = plane_matrix @ (Vector(center2d) + Vector(o)) + Vector(pt0) + return CircleEquation3D.from_center_radius_normal(center, rho, plane_normal) + From 76480ae898707e430230ceae02cb9224c03c38db Mon Sep 17 00:00:00 2001 From: "Ilya V. Portnov" Date: Sun, 15 Sep 2024 14:16:40 +0500 Subject: [PATCH 02/11] Move "Polygon Inscribed Circle" node from Sverchok-Extra. --- index.yaml | 1 + nodes/analyzer/poly_inscribed_circle.py | 64 ++++++++++++++++ ui/icons/sv_poly_inscribed_circle.png | Bin 0 -> 2499 bytes ui/icons/svg/sv_poly_inscribed_circle.svg | 89 ++++++++++++++++++++++ 4 files changed, 154 insertions(+) create mode 100644 nodes/analyzer/poly_inscribed_circle.py create mode 100644 ui/icons/sv_poly_inscribed_circle.png create mode 100644 ui/icons/svg/sv_poly_inscribed_circle.svg diff --git a/index.yaml b/index.yaml index 72fd9c98f6..f8022b23f6 100644 --- a/index.yaml +++ b/index.yaml @@ -392,6 +392,7 @@ - SvCircleApproxNode - SvSphereApproxNode - SvInscribedCircleNode + - SvSemiInscribedCircleNode - SvSteinerEllipseNode - --- - SvMeshSelectNodeMk2 diff --git a/nodes/analyzer/poly_inscribed_circle.py b/nodes/analyzer/poly_inscribed_circle.py new file mode 100644 index 0000000000..4369d17a95 --- /dev/null +++ b/nodes/analyzer/poly_inscribed_circle.py @@ -0,0 +1,64 @@ +# This file is part of project Sverchok. It's copyrighted by the contributors +# recorded in the version control history of the file, available from +# its original location https://github.com/nortikin/sverchok/commit/master +# +# SPDX-License-Identifier: GPL3 +# License-Filename: LICENSE + +import numpy as np +import bpy +from sverchok.node_tree import SverchCustomTreeNode +from sverchok.utils.inscribed_circle import calc_inscribed_circle +from sverchok.data_structure import updateNode, zip_long_repeat, ensure_nesting_level, get_data_nesting_level + +class SvSemiInscribedCircleNode(SverchCustomTreeNode, bpy.types.Node): + """ + Triggers: Polygon Inscribed Circle + Tooltip: Inscribed circle for an arbitrary convex polygon + """ + bl_idname = 'SvSemiInscribedCircleNode' + bl_label = 'Polygon Inscribed Circle' + bl_icon = 'OUTLINER_OB_EMPTY' + sv_icon = 'SV_POLY_INSCRIBED_CIRCLE' + sv_dependencies = {'scipy'} + + def sv_init(self, context): + self.inputs.new('SvVerticesSocket', "Vertices") + self.inputs.new('SvStringsSocket', "Faces") + self.outputs.new('SvMatrixSocket', "Center") + self.outputs.new('SvStringsSocket', "Radius") + + def process(self): + if not any(socket.is_linked for socket in self.outputs): + return + + vertices_s = self.inputs['Vertices'].sv_get() + vertices_s = ensure_nesting_level(vertices_s, 4) + faces_s = self.inputs['Faces'].sv_get() + faces_s = ensure_nesting_level(faces_s, 4) + + matrix_out = [] + radius_out = [] + for params in zip_long_repeat(vertices_s, faces_s): + new_matrix = [] + new_radius = [] + for vertices, faces in zip_long_repeat(*params): + vertices = np.array(vertices) + for face in faces: + face = np.array(face) + circle = calc_inscribed_circle(vertices[face]) + if circle is not None: + new_matrix.append(circle.get_matrix()) + new_radius.append(circle.radius) + matrix_out.append(new_matrix) + radius_out.append(new_radius) + + self.outputs['Center'].sv_set(matrix_out) + self.outputs['Radius'].sv_set(radius_out) + +def register(): + bpy.utils.register_class(SvSemiInscribedCircleNode) + +def unregister(): + bpy.utils.unregister_class(SvSemiInscribedCircleNode) + diff --git a/ui/icons/sv_poly_inscribed_circle.png b/ui/icons/sv_poly_inscribed_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..d98f6b5ff01c95c38013d2e732f026c83743acc9 GIT binary patch literal 2499 zcmV;!2|V_RP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H12~bHy zK~#90)th^8R979xKWDR)l8~f8LJPD&V-N_oV z3}|w`pAwP24DDuwlmr-K3V=2s>Qo7E4wwv>4E=WijofT04ZukextyWh&TjRL*VPKs?8$ur2zTySTf?o z%mJnXIT^;<4ZKAnF?Ax+nu*ac1k_=Zh~r5Sc{P-AW9|Z`IoJKpXCY7wOajLABW8`u zB({_$;JAo%hKezW0Aoxcw*SYUo&fiV$bSQLW&kUJCx8cmNPzzy;7ya`uh67r2SA` zT`jX_&GIAStLc*9k&gkkDZ4)kQrM(~UvTQz=>T(cb7lMX?fpvJjh>z!*|1@Qgwt;PTq~m%1X)0%hM!W1IjW;ei+Gv=DmKx z#SZK4zIY$%=V43ajadtRugb2&E&^;xw#%{1BXeICNY2he0P<>z88eWTva|A{}P4(_ewD3<>hJk z%^nslTBNIVQbCxf%C+$?2?RK+Ii;?uZtR@k24>Hmord4+!Nc#=FnY!qgPjAo;Y|Rb zY5ps4kGrCzq$G^rtfREFR98(1sX84P0~HFj}^7>B+IoIQIsq~Gkq!*5F}9b-%$c6mMy!H#P;;3hyf z|7z#+w7c^7@#Crd4hZV&>vdJ&dYXerxVfVRa9TtX<~42t7Aoa90SS!l-@iYE-|VBR zs!CVYddVpSHh+NlRPlWzP8GXw-nf8|xbGDf77p5rP#n$8&0bUCdqYftUsHK~LCeHj zfNuVW<>ujs!`N3)zz#+g6%`@K&mOjH*+O4m!X|R9h@20hs&}-HCP_F<{hCCko>NTz zzVcha*ptMCHx^}Yy$9}TW0Y8klrjTbu0MxlyVe12>}4C^KiyWZJZ8j2kzONF+jccQ-99Ei^SX5sSt21jmgw;Ikr9=_lX^ zW6VDQ_sY!z5jpHB9Khlf>@Kh#O!O0~#*WTGEhpV;4{5CWs}d=5Jx1|`wrw2C)FB;1QV#IymJnn~iW zIKQKOYzmSObyU_3V@w1)KCB~oz0Hkxf!|$4*Uw3k&P#uBAy6#)z|HRN>;i+3dg0`0W;{-Rv)%CEFC}s zKA?QQjdK=qKnZXKFcv#tz8ye>0QJ}dOrhrWY4~5Q{QM!M&Hz1$;ZA~jn_XY$uyc;P zvgG&Y%Ko=*2?4HvBG{iLeK<*9SDY?%UxxlpD!YqsDFG_DInH31YQWqBJlqfa`O0=5 zFlxvU;0m zngCbe@d2|b1re>-Ul`A34g6Ngr(8H45(Kysh!2?iQV{X3(}gA~{fkQOq1%c8mCS5s z!0Zknq8Io*cK4@5-MdEEwZmJTYziVuuxFO9rDzprRQX_7A3=X-x#bX%vm){|_OCS0 zVVk)Zrl@lA4v-IqGy!plNV|x97rWcD8arSHA + + + + + + + + + + + image/svg+xml + + + + + + + + + From 45fd356f0f2c6c86f8b74407555acf83ea6a61d1 Mon Sep 17 00:00:00 2001 From: "Ilya V. Portnov" Date: Sun, 15 Sep 2024 15:24:05 +0500 Subject: [PATCH 03/11] "Intersect curve with surface": output UV points. --- nodes/surface/intersect_curve_surface.py | 17 ++++++--- utils/manifolds.py | 47 ++++++++++++++++-------- 2 files changed, 43 insertions(+), 21 deletions(-) diff --git a/nodes/surface/intersect_curve_surface.py b/nodes/surface/intersect_curve_surface.py index d75d458ef4..83b80e8547 100644 --- a/nodes/surface/intersect_curve_surface.py +++ b/nodes/surface/intersect_curve_surface.py @@ -76,6 +76,7 @@ def sv_init(self, context): self.inputs.new('SvSurfaceSocket', "Surface") self.outputs.new('SvVerticesSocket', "Point") self.outputs.new('SvStringsSocket', "T") + self.outputs.new('SvVerticesSocket', "UVPoint") def process(self): if not any(socket.is_linked for socket in self.outputs): @@ -89,7 +90,8 @@ def process(self): tolerance = 10**(-self.accuracy) points_out = [] - u_out = [] + t_out = [] + uv_out = [] for surfaces, curves in zip_long_repeat(surfaces_s, curves_s): for surface, curve in zip_long_repeat(surfaces, curves): result = intersect_curve_surface(curve, surface, @@ -99,14 +101,17 @@ def process(self): raycast_method = self.raycast_method, support_nurbs = self.use_nurbs ) - new_points = [p[1] for p in result] - new_u = [p[0] for p in result] + new_points = result.points + new_t = result.ts + new_uv = [(u, v, 0) for u, v in zip(result.us, result.vs)] points_out.append(new_points) - u_out.append(new_u) + t_out.append(new_t) + uv_out.append(new_uv) self.outputs['Point'].sv_set(points_out) - self.outputs['T'].sv_set(u_out) - + self.outputs['T'].sv_set(t_out) + if 'UVPoint' in self.outputs: + self.outputs['UVPoint'].sv_set(uv_out) def register(): bpy.utils.register_class(SvExCrossCurveSurfaceNode) diff --git a/utils/manifolds.py b/utils/manifolds.py index d5c873ca7c..cbcc56e50a 100644 --- a/utils/manifolds.py +++ b/utils/manifolds.py @@ -809,6 +809,19 @@ def raycast_surface(surface, src_points, directions, samples=50, precise=True, c raycaster.init_bvh(samples) return raycaster.raycast(src_points, directions, precise=precise, calc_points=calc_points, method=method, on_init_fail=on_init_fail) +class CurveSurfaceIntersections: + def __init__(self): + self.ts = [] + self.us = [] + self.vs = [] + self.points = [] + + def add(self, t, u, v, point): + self.ts.append(t) + self.us.append(u) + self.vs.append(v) + self.points.append(point) + def intersect_curve_surface(curve, surface, init_samples=10, raycast_samples=10, tolerance=1e-3, maxiter=50, raycast_method='hybr', support_nurbs=False): """ Intersect a curve with a surface. @@ -840,17 +853,17 @@ def do_raycast(point, tangent, sign=1): u_range = np.linspace(u_min, u_max, num=init_samples) points = curve.evaluate_array(u_range) tangents = curve.tangent_array(u_range) - for u1, u2, p1, p2, tangent1, tangent2 in zip(u_range, u_range[1:], points, points[1:], tangents,tangents[1:]): + for t1, t2, p1, p2, tangent1, tangent2 in zip(u_range, u_range[1:], points, points[1:], tangents,tangents[1:]): raycast = raycaster.raycast([p1, p2], [tangent1, -tangent2], precise = False, calc_points=False, on_init_fail = RETURN_NONE) if raycast is None: continue - good_ranges.append((u1, u2, raycast.points[0], raycast.points[1])) + good_ranges.append((t1, t2, raycast.points[0], raycast.points[1])) - def to_curve(point, curve, u1, u2, raycast=None): + def to_curve(point, curve, t1, t2, raycast=None): if support_nurbs and is_nurbs and raycast is not None: - segment = curve.cut_segment(u1, u2) + segment = curve.cut_segment(t1, t2) surface_u, surface_v = raycast.us[0], raycast.vs[0] point_on_surface = raycast.points[0] surface_normal = surface.normal(surface_u, surface_v) @@ -865,7 +878,7 @@ def to_curve(point, curve, u1, u2, raycast=None): return r[0] else: ortho = ortho_project_curve(point, curve, - subdomain = (u1, u2), + subdomain = (t1, t2), init_samples = 2, on_fail = RETURN_NONE) if ortho is None: @@ -873,17 +886,19 @@ def to_curve(point, curve, u1, u2, raycast=None): else: return ortho.nearest_u, ortho.nearest - result = [] - for u1, u2, init_p1, init_p2 in good_ranges: + result = CurveSurfaceIntersections() + for t1, t2, init_p1, init_p2 in good_ranges: - tangent = curve.tangent(u1) - point = curve.evaluate(u1) + tangent = curve.tangent(t1) + point = curve.evaluate(t1) i = 0 sign = 1 prev_prev_point = None prev_point = init_p1 - u_root = None + t_root = None + u_value = None + v_value = None point_found = False raycast = None while True: @@ -891,11 +906,11 @@ def to_curve(point, curve, u1, u2, raycast=None): if i > maxiter: raise Exception("Maximum number of iterations is exceeded; last step {} - {} = {}".format(prev_prev_point, point, step)) - on_curve = to_curve(prev_point, curve, u1, u2, raycast=raycast) + on_curve = to_curve(prev_point, curve, t1, t2, raycast=raycast) if on_curve is None: break - u_root, point = on_curve - if u_root < u1 or u_root > u2: + t_root, point = on_curve + if t_root < t1 or t_root > t2: break step = np.linalg.norm(point - prev_point) if step < tolerance and i > 1: @@ -904,17 +919,19 @@ def to_curve(point, curve, u1, u2, raycast=None): break prev_point = point - tangent = curve.tangent(u_root) + tangent = curve.tangent(t_root) sign, raycast = do_raycast(point, tangent, sign) if raycast is None: raise Exception("Iteration #{}: Can't do a raycast with point {}, direction {} onto surface {}".format(i, point, tangent, surface)) point = raycast.points[0] + u_value = raycast.us[0] + v_value = raycast.vs[0] step = np.linalg.norm(point - prev_point) prev_prev_point = prev_point prev_point = point if point_found: - result.append((u_root, point)) + result.add(t_root, u_value, v_value, point) return result From 97e0c7163d4b95dff40f776fbb13d36749dde04e Mon Sep 17 00:00:00 2001 From: "Ilya V. Portnov" Date: Sun, 15 Sep 2024 20:40:17 +0500 Subject: [PATCH 04/11] Add flat_output. --- nodes/analyzer/poly_inscribed_circle.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/nodes/analyzer/poly_inscribed_circle.py b/nodes/analyzer/poly_inscribed_circle.py index 4369d17a95..f8efbf87f9 100644 --- a/nodes/analyzer/poly_inscribed_circle.py +++ b/nodes/analyzer/poly_inscribed_circle.py @@ -7,6 +7,7 @@ import numpy as np import bpy +from bpy.props import BoolProperty from sverchok.node_tree import SverchCustomTreeNode from sverchok.utils.inscribed_circle import calc_inscribed_circle from sverchok.data_structure import updateNode, zip_long_repeat, ensure_nesting_level, get_data_nesting_level @@ -28,6 +29,15 @@ def sv_init(self, context): self.outputs.new('SvMatrixSocket', "Center") self.outputs.new('SvStringsSocket', "Radius") + flat_output : BoolProperty( + name = "Flat Matrix output", + description = "Output single flat list of matrices", + default = True, + update = updateNode) + + def draw_buttons(self, context, layout): + layout.prop(self, 'flat_output') + def process(self): if not any(socket.is_linked for socket in self.outputs): return @@ -50,7 +60,10 @@ def process(self): if circle is not None: new_matrix.append(circle.get_matrix()) new_radius.append(circle.radius) - matrix_out.append(new_matrix) + if self.flat_output: + matrix_out.extend(new_matrix) + else: + matrix_out.append(new_matrix) radius_out.append(new_radius) self.outputs['Center'].sv_set(matrix_out) From ec11bd13644af2333286cc0cab27f06690223d06 Mon Sep 17 00:00:00 2001 From: "Ilya V. Portnov" Date: Sun, 15 Sep 2024 22:06:38 +0500 Subject: [PATCH 05/11] Node documentation. --- .../nodes/analyzer/inscribed_circle_1.png | Bin 0 -> 110225 bytes .../nodes/analyzer/inscribed_circle_2.png | Bin 0 -> 111772 bytes docs/nodes/analyzer/poly_inscribed_circle.rst | 68 ++++++++++++++++++ nodes/analyzer/poly_inscribed_circle.py | 25 ++++++- utils/geom.py | 21 ++++++ utils/inscribed_circle.py | 14 +++- 6 files changed, 123 insertions(+), 5 deletions(-) create mode 100644 docs/assets/nodes/analyzer/inscribed_circle_1.png create mode 100644 docs/assets/nodes/analyzer/inscribed_circle_2.png create mode 100644 docs/nodes/analyzer/poly_inscribed_circle.rst diff --git a/docs/assets/nodes/analyzer/inscribed_circle_1.png b/docs/assets/nodes/analyzer/inscribed_circle_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a54c6f711d39a1a2b6cafc30c9e52629808526cf GIT binary patch literal 110225 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

RaCj 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

a{ulz&ZvK#FP5v?!=D5&A@ATMf!k*?#l5FNyE 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 HDWM4f{oxCu literal 0 HcmV?d00001 diff --git a/docs/assets/nodes/analyzer/inscribed_circle_2.png b/docs/assets/nodes/analyzer/inscribed_circle_2.png new file mode 100644 index 0000000000000000000000000000000000000000..0d28f664801cfb02dffe13b801fad6b9161a125f GIT binary patch literal 111772 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 <-dU{Djhbwdc!l^Aq=Ln44Rk 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 ~y=krCN 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 literal 0 HcmV?d00001 diff --git a/docs/nodes/analyzer/poly_inscribed_circle.rst b/docs/nodes/analyzer/poly_inscribed_circle.rst new file mode 100644 index 0000000000..4aef448504 --- /dev/null +++ b/docs/nodes/analyzer/poly_inscribed_circle.rst @@ -0,0 +1,68 @@ +Polygon Inscribed Circle +======================== + +Dependencies +------------ + +This node requires SciPy library to work. + +Functionality +------------- + +This node calculates the center and the radius of inscribed circle for each +convex face of the input mesh. Obviously, it is not always possible to inscribe +a circle into a polygon, if polygon is not a triangle. For non-tiangular +polygons, this node calculates the biggest circle which can be inscribed into +the polygon, i.e. the circle which touches as many polygon edges as possible. + +Inputs +------ + +This node has the following inputs: + +- **Vertices**. The vertices of the input mesh. This input is mandatory. +- **Faces**. The faces of the input mesh. This input is mandatory. + +Parameters +---------- + +This node has the following parameters: + +- **Flat Matrix output**. If checked, the node will generate a single flat list + of matrices in the **Matrix** output, for all input meshes. Checked by default. +- **On concave faces**. This parameter is available in the N panel only. + Defines what the node should do if it encounters a concave face. There are + the following options available: + + - **Skip**. Just skip such faces - do not generate inscribed circles for them. + - **Error**. Stop processing and give an error (turn the node red). + - **As Is**. Try to generate an inscribed circle for such face anyway. In + many cases, the generated circle will be incorrect (will be too small or + even outside the polygon), but in some simple cases it can be valid. + + The default option is **Skip**. + +Outputs +------- + +This node has the following outputs: + +- **Center**. For each inscribed circle, this contains a matrix, Z axis of + which points along face normal, and the translation component equals to the + center of the inscribed circle. This output can be used to actually place + circles at their places. +- **Radius**. Radiuses of the inscribed circles. + +Examples of Usage +----------------- + +In many cases inscribed circle can touch only two or three polygon edges: + +.. image:: /docs/assets/nodes/analyzer/inscribed_circle_1.png + :target: /docs/assets/nodes/analyzer/inscribed_circle_1.png + +If the polygon is almost regular, the circle will touch more edges: + +.. image:: /docs/assets/nodes/analyzer/inscribed_circle_2.png + :target: /docs/assets/nodes/analyzer/inscribed_circle_2.png + diff --git a/nodes/analyzer/poly_inscribed_circle.py b/nodes/analyzer/poly_inscribed_circle.py index f8efbf87f9..9317a7bd4a 100644 --- a/nodes/analyzer/poly_inscribed_circle.py +++ b/nodes/analyzer/poly_inscribed_circle.py @@ -7,9 +7,9 @@ import numpy as np import bpy -from bpy.props import BoolProperty +from bpy.props import BoolProperty, EnumProperty from sverchok.node_tree import SverchCustomTreeNode -from sverchok.utils.inscribed_circle import calc_inscribed_circle +from sverchok.utils.inscribed_circle import calc_inscribed_circle, ERROR, RETURN_NONE, ASIS from sverchok.data_structure import updateNode, zip_long_repeat, ensure_nesting_level, get_data_nesting_level class SvSemiInscribedCircleNode(SverchCustomTreeNode, bpy.types.Node): @@ -35,9 +35,27 @@ def sv_init(self, context): default = True, update = updateNode) + concave_modes = [ + (RETURN_NONE, "Skip", "Skip concave faces - do not generate output for them", 0), + (ERROR, "Error", "Generate an error if encounter a concave face", 1), + (ASIS, "As Is", "Try to calculate inscribed circle anyway (it probably will be incorrect)", 2) + ] + + on_concave : EnumProperty( + name = "On concave face", + description = "What to do if encounter a concave face", + default = RETURN_NONE, + items = concave_modes, + update = updateNode) + def draw_buttons(self, context, layout): layout.prop(self, 'flat_output') + def draw_buttons_ext(self, context, layout): + self.draw_buttons(context, layout) + layout.label(text = "On concave faces:") + layout.prop(self, 'on_concave', text='') + def process(self): if not any(socket.is_linked for socket in self.outputs): return @@ -56,7 +74,8 @@ def process(self): vertices = np.array(vertices) for face in faces: face = np.array(face) - circle = calc_inscribed_circle(vertices[face]) + circle = calc_inscribed_circle(vertices[face], + on_concave = self.on_concave) if circle is not None: new_matrix.append(circle.get_matrix()) new_radius.append(circle.radius) diff --git a/utils/geom.py b/utils/geom.py index 258e4998b6..83e51dc5dd 100644 --- a/utils/geom.py +++ b/utils/geom.py @@ -2801,3 +2801,24 @@ def scale_relative(points, center, scale): return (points + center).tolist() +def is_convex_2d(verts): + """ + Check if 2D polygon is convex. + + Args: + verts: np.array or list of shape (n,3); only first and second components are considered. + + Returns: + boolean. + """ + verts = np.array(verts) + edges = np.roll(verts, -1, axis=0) - verts + sign = None + for e1, e2 in zip(edges[:-1], edges[1:]): + n = np.cross(e1, e2) + if sign is None: + sign = n[2] + elif sign * n[2] < 0: + return False + return True + diff --git a/utils/inscribed_circle.py b/utils/inscribed_circle.py index 93e7136886..5c8975b989 100644 --- a/utils/inscribed_circle.py +++ b/utils/inscribed_circle.py @@ -7,13 +7,17 @@ import numpy as np from mathutils import Vector, Matrix -from sverchok.utils.geom import linear_approximation, CircleEquation3D +from sverchok.utils.geom import linear_approximation, CircleEquation3D, is_convex_2d from sverchok.utils.math import np_multiply_matrices_vectors, np_dot from sverchok.dependencies import scipy if scipy is not None: from scipy.optimize import linprog -def calc_inscribed_circle(verts): +RETURN_NONE = 'RETURN_NONE' +ERROR = 'ERROR' +ASIS = 'ASIS' + +def calc_inscribed_circle(verts, on_concave=ERROR): """ Calculate the biggest circle which can be inscribed into a polygon (i.e. a circle which is inside the polygon, and touches some of polygon's edges). @@ -78,6 +82,12 @@ def calc_inscribed_circle(verts): inv = np.linalg.inv(m) pt0 = np.array(approx.center) verts2d = np_multiply_matrices_vectors(inv, verts - pt0) + if on_concave != ASIS: + if not is_convex_2d(verts2d): + if on_concave == ERROR: + raise Exception("Polygon is not convex") + else: + return None verts2d = verts2d[:,0:2] origin = verts2d.min(axis=0) verts2d -= origin[:2] From 4ebccd42ab3644eb060e22407a14d574b4635991 Mon Sep 17 00:00:00 2001 From: "Ilya V. Portnov" Date: Sun, 15 Sep 2024 22:15:14 +0500 Subject: [PATCH 06/11] Some code documentation. --- utils/inscribed_circle.py | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/utils/inscribed_circle.py b/utils/inscribed_circle.py index 5c8975b989..2610581210 100644 --- a/utils/inscribed_circle.py +++ b/utils/inscribed_circle.py @@ -64,57 +64,70 @@ def calc_inscribed_circle(verts, on_concave=ERROR): """ n = len(verts) verts = np.array(verts) - + e1 = verts[1] - verts[0] e2 = verts[2] - verts[1] n1 = np.cross(e1, e2) - + approx = linear_approximation(verts) plane = approx.most_similar_plane() plane_matrix = plane.get_matrix() + + # Flip plane matrix, in case approximation gave us a plane + # with normal pointing in direction opposite to polygon normal. plane_normal = np.array(plane.normal) if np.dot(n1, plane_normal) < 0: plane_matrix = Matrix.Diagonal(Vector([-1,-1,-1])) @ plane_matrix verts = verts[::-1] plane_normal = - plane_normal - m = plane_matrix - m = np.array(m.to_3x3()) - inv = np.linalg.inv(m) + + # Project all vertices to 2D space + inv = np.linalg.inv(plane_matrix.to_3x3()) pt0 = np.array(approx.center) verts2d = np_multiply_matrices_vectors(inv, verts - pt0) + if on_concave != ASIS: if not is_convex_2d(verts2d): if on_concave == ERROR: raise Exception("Polygon is not convex") else: return None + + # we will need only 2 coordinates verts2d = verts2d[:,0:2] + # linprog method automatically assumes that all variables are non-negative. + # So move all vertices to first quadrant. origin = verts2d.min(axis=0) verts2d -= origin[:2] + edges2d = np.roll(verts2d, -1, axis=0) - verts2d # (n, 2) edges2d_normalized = edges2d / np.linalg.norm(edges2d, axis=1, keepdims=True) - + + # edges line equations matrix edges_eq = np.zeros((n+1, 3)) edges_eq[:n,0] = edges2d_normalized[:,1] edges_eq[:n,1] = -edges2d_normalized[:,0] edges_eq[:n,2] = 1 - edges_eq[n,:] = np.array([0, 0, -1]) - + edges_eq[n,:] = np.array([0, 0, -1]) # -Z <= 0 + + # right-hand side of edges line equations D = np_dot(-edges_eq[:n,:2], verts2d) D = np.append(D, 0) - + + # function to be minimized: it's -Z (we need to maximize Z). c = np.array([0.0, 0.0, -1.0]) - + res = linprog(c, A_ub = edges_eq, b_ub = -D, method='highs') center2d = res.x if center2d is None: return None center2d[2] = 0 - + distances = np_dot(-edges_eq[:n,:2], center2d[:2]) - D[:n] - rho = abs(distances).min() + rho = abs(distances).min() o = np.zeros((3,)) o[:2] = origin + # Return to 3D space center = plane_matrix @ (Vector(center2d) + Vector(o)) + Vector(pt0) return CircleEquation3D.from_center_radius_normal(center, rho, plane_normal) From 0c58511d4de00b0cc8299d43209fc7327381f0ea Mon Sep 17 00:00:00 2001 From: "Ilya V. Portnov" Date: Sun, 15 Sep 2024 22:18:22 +0500 Subject: [PATCH 07/11] Fix links in documentation. --- docs/nodes/analyzer/poly_inscribed_circle.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/nodes/analyzer/poly_inscribed_circle.rst b/docs/nodes/analyzer/poly_inscribed_circle.rst index 4aef448504..77fa904159 100644 --- a/docs/nodes/analyzer/poly_inscribed_circle.rst +++ b/docs/nodes/analyzer/poly_inscribed_circle.rst @@ -58,11 +58,11 @@ Examples of Usage In many cases inscribed circle can touch only two or three polygon edges: -.. image:: /docs/assets/nodes/analyzer/inscribed_circle_1.png - :target: /docs/assets/nodes/analyzer/inscribed_circle_1.png +.. image:: ../../../docs/assets/nodes/analyzer/inscribed_circle_1.png + :target: ../../../docs/assets/nodes/analyzer/inscribed_circle_1.png If the polygon is almost regular, the circle will touch more edges: -.. image:: /docs/assets/nodes/analyzer/inscribed_circle_2.png - :target: /docs/assets/nodes/analyzer/inscribed_circle_2.png +.. image:: ../../../docs/assets/nodes/analyzer/inscribed_circle_2.png + :target: ../../../docs/assets/nodes/analyzer/inscribed_circle_2.png From 9b3f0156b81d4e267e6c1c9e82525a6dfadcbd91 Mon Sep 17 00:00:00 2001 From: "Ilya V. Portnov" Date: Sun, 15 Sep 2024 22:20:29 +0500 Subject: [PATCH 08/11] Add node to alternative menu presets. --- menus/full_by_data_type.yaml | 1 + menus/full_nortikin.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/menus/full_by_data_type.yaml b/menus/full_by_data_type.yaml index a2e6ff1701..230e10be85 100644 --- a/menus/full_by_data_type.yaml +++ b/menus/full_by_data_type.yaml @@ -219,6 +219,7 @@ - SvCircleApproxNode - SvSphereApproxNode - SvInscribedCircleNode + - SvSemiInscribedCircleNode - SvSteinerEllipseNode - --- - SvMeshSelectNodeMk2 diff --git a/menus/full_nortikin.yaml b/menus/full_nortikin.yaml index 01aa0bdfd9..4a6ca99296 100644 --- a/menus/full_nortikin.yaml +++ b/menus/full_nortikin.yaml @@ -446,6 +446,7 @@ - SvCircleApproxNode - SvSphereApproxNode - SvInscribedCircleNode + - SvSemiInscribedCircleNode - SvSteinerEllipseNode - --- - SvMeshSelectNodeMk2 From b4b8817ff2df287a979a1c3d467c16533ec1388c Mon Sep 17 00:00:00 2001 From: "Ilya V. Portnov" Date: Sun, 15 Sep 2024 23:35:53 +0500 Subject: [PATCH 09/11] Bugfix. --- nodes/analyzer/poly_inscribed_circle.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nodes/analyzer/poly_inscribed_circle.py b/nodes/analyzer/poly_inscribed_circle.py index 9317a7bd4a..9f97d773c7 100644 --- a/nodes/analyzer/poly_inscribed_circle.py +++ b/nodes/analyzer/poly_inscribed_circle.py @@ -79,11 +79,11 @@ def process(self): if circle is not None: new_matrix.append(circle.get_matrix()) new_radius.append(circle.radius) - if self.flat_output: - matrix_out.extend(new_matrix) - else: - matrix_out.append(new_matrix) - radius_out.append(new_radius) + if self.flat_output: + matrix_out.extend(new_matrix) + else: + matrix_out.append(new_matrix) + radius_out.append(new_radius) self.outputs['Center'].sv_set(matrix_out) self.outputs['Radius'].sv_set(radius_out) From c9308916268df0940a6eea0a36e974d37ed95ee5 Mon Sep 17 00:00:00 2001 From: "Ilya V. Portnov" Date: Mon, 16 Sep 2024 22:07:35 +0500 Subject: [PATCH 10/11] This should fix strange behavior of "edge split" node. --- nodes/modifier_change/edge_split.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nodes/modifier_change/edge_split.py b/nodes/modifier_change/edge_split.py index f4c2bf8784..91af9ea947 100644 --- a/nodes/modifier_change/edge_split.py +++ b/nodes/modifier_change/edge_split.py @@ -36,8 +36,8 @@ class SvSplitEdgesMk3Node(ModifierNode, SverchCustomTreeNode, bpy.types.Node): def update_mode(self, context): self.inputs['Factor'].hide = False # This can be True in old nodes self.inputs['Cuts'].hide = False # This can be True in old nodes - self.inputs['Factor'].enabled = self.mode != 'MULTI' - self.inputs['Cuts'].enabled = self.mode == 'MULTI' + self.inputs['Factor'].hide_safe = self.mode != 'MULTI' + self.inputs['Cuts'].hide_safe = self.mode == 'MULTI' self.process_node(context) factor: bpy.props.FloatProperty( @@ -60,7 +60,7 @@ def sv_init(self, context): self.inputs.new('SvStringsSocket', 'Factor').prop_name = 'factor' s = self.inputs.new('SvStringsSocket', 'Cuts') s.prop_name = 'count' - s.enabled = False + #s.enabled = False self.outputs.new('SvVerticesSocket', 'Vertices') self.outputs.new('SvStringsSocket', 'Edges') self.outputs.new('SvStringsSocket', 'Faces') From a48c58d6aa70afb4f361fa7a6de80be989ba8bf9 Mon Sep 17 00:00:00 2001 From: "Ilya V. Portnov" Date: Mon, 16 Sep 2024 22:35:32 +0500 Subject: [PATCH 11/11] Generalize socket conversions a bit. --- core/socket_conversions.py | 14 +++++++------- data_structure.py | 1 + 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/core/socket_conversions.py b/core/socket_conversions.py index cc07c0d7bb..79eb04b9ba 100644 --- a/core/socket_conversions.py +++ b/core/socket_conversions.py @@ -19,7 +19,7 @@ from enum import Enum from sverchok.core.sv_custom_exceptions import ImplicitConversionProhibited -from sverchok.data_structure import get_data_nesting_level, is_ultimately +from sverchok.data_structure import get_data_nesting_level, is_ultimately, NUMERIC_DATA_TYPES from sverchok.utils.field.vector import SvVectorField, SvMatrixVectorField, SvConstantVectorField from sverchok.utils.field.scalar import SvScalarField, SvConstantScalarField from sverchok.utils.curve import SvCurve @@ -42,7 +42,7 @@ def matrices_to_vfield(data): def vertices_to_vfield(data): - if isinstance(data, (tuple, list)) and len(data) == 3 and isinstance(data[0], (float, int)): + if isinstance(data, (tuple, list)) and len(data) == 3 and isinstance(data[0], NUMERIC_DATA_TYPES): data = deepcopy(data) return SvConstantVectorField(data) elif isinstance(data, (list, tuple)): @@ -52,7 +52,7 @@ def vertices_to_vfield(data): def numbers_to_sfield(data): - if isinstance(data, (int, float)): + if isinstance(data, NUMERIC_DATA_TYPES): return SvConstantScalarField(data) elif isinstance(data, (list, tuple)): return [numbers_to_sfield(item) for item in data] @@ -68,7 +68,7 @@ def vectors_to_matrices(source_data): def get_all(data): for item in data: - if isinstance(item, (tuple, list, ndarray)) and len(item) == 3 and isinstance(item[0], (float, int)): + if isinstance(item, (tuple, list, ndarray)) and len(item) == 3 and isinstance(item[0], NUMERIC_DATA_TYPES): # generate location matrix from location x, y, z = item collect_matrix(Matrix([(1., .0, .0, x), (.0, 1., .0, y), (.0, .0, 1., z), (.0, .0, .0, 1.)])) @@ -97,7 +97,7 @@ def quaternions_to_matrices(source_data): def get_all(data): for item in data: - if isinstance(item, (tuple, list)) and len(item) == 4 and isinstance(item[0], (float, int)): + if isinstance(item, (tuple, list)) and len(item) == 4 and isinstance(item[0], NUMERIC_DATA_TYPES): mat = Quaternion(item).to_matrix().to_4x4() collect_matrix(mat) else: @@ -122,14 +122,14 @@ def get_all(data): def string_to_vector(source_data): # it can be so that socket is string but data their are already vectors, performance-wise we check only first item - if isinstance(source_data[0][0], (float, int)): + if isinstance(source_data[0][0], NUMERIC_DATA_TYPES): return [[(v, v, v) for v in obj] for obj in source_data] return source_data def string_to_color(source_data): # it can be so that socket is string but data their are already colors, performance-wise we check only first item - if isinstance(source_data[0][0], (float, int)): + if isinstance(source_data[0][0], NUMERIC_DATA_TYPES): return [[(v, v, v, 1) for v in obj] for obj in source_data] if len(source_data[0][0]) == 3: return vector_to_color(source_data) diff --git a/data_structure.py b/data_structure.py index 7492882ab8..9ba4295f70 100755 --- a/data_structure.py +++ b/data_structure.py @@ -503,6 +503,7 @@ def levels_of_list_or_np(lst): return level return 0 +NUMERIC_DATA_TYPES = (float, int, float64, int32, int64) SIMPLE_DATA_TYPES = (float, int, float64, int32, int64, str, Matrix)