- Markers Plugin - fixed issue when adding existing markers to an external Geometry object

This commit is contained in:
Marius Stanciu
2021-11-01 02:07:20 +02:00
committed by Marius
parent 29457e9867
commit 1e5bc400a5
3 changed files with 18 additions and 27 deletions

View File

@@ -662,9 +662,11 @@ class ToolMarkers(AppTool):
tool_found = tool
break
geo_buff_list = []
if tool_found:
new_tools[tool_found]['solid_geometry'] += marker_geometry
if isinstance(new_tools[tool_found]['solid_geometry'], list):
new_tools[tool_found]['solid_geometry'] += marker_geometry
else:
new_tools[tool_found]['solid_geometry'] = [new_tools[tool_found]['solid_geometry'], marker_geometry]
else:
obj_tools = list(new_tools.keys())
if obj_tools:
@@ -696,23 +698,13 @@ class ToolMarkers(AppTool):
s_list = []
if new_geo_obj.solid_geometry:
if isinstance(new_geo_obj.solid_geometry, MultiPolygon):
work_geo = new_geo_obj.solid_geometry.geoms
else:
work_geo = new_geo_obj.solid_geometry
try:
for poly in work_geo:
s_list.append(poly)
except TypeError:
s_list.append(work_geo)
geo_buff_list = flatten_shapely_geometry(geo_buff_list)
s_list = flatten_shapely_geometry(new_geo_obj.solid_geometry)
try:
for poly in geo_buff_list + marker_geometry:
s_list.append(poly)
for g_el in marker_geometry:
s_list.append(g_el)
except TypeError:
s_list.append(geo_buff_list)
s_list.append(marker_geometry)
def initialize(geo_obj, app_obj):
geo_obj.options = LoudDict()
@@ -722,11 +714,11 @@ class ToolMarkers(AppTool):
# Propagate options
geo_obj.options["tools_mill_tooldia"] = app_obj.defaults["tools_mill_tooldia"]
geo_obj.solid_geometry = flatten_shapely_geometry(unary_union(s_list))
geo_obj.solid_geometry = flatten_shapely_geometry(s_list)
geo_obj.multitool = False
geo_obj.multigeo = False
geo_obj.tools = new_tools
geo_obj.multitool = True
geo_obj.multigeo = True
geo_obj.tools = deepcopy(new_tools)
ret = self.app.app_obj.new_object('geometry', outname, initialize, plot=True, autoselected=False)