diff --git a/src/Mod/Draft/getSVG.py b/src/Mod/Draft/getSVG.py
index 6e6d0826e1..219d2029ba 100644
--- a/src/Mod/Draft/getSVG.py
+++ b/src/Mod/Draft/getSVG.py
@@ -239,6 +239,85 @@ def getEllipse(plane,
return get_ellipse(plane, fill, stroke, linewidth, lstyle, edge)
+def get_arrow(obj,
+ arrowtype, point, arrowsize, color, linewidth, angle=0):
+ """Get the SVG representation from an arrow."""
+ svg = ""
+
+ if not FreeCAD.GuiUp or not obj.ViewObject:
+ return svg
+
+ _cx_cy_r = 'cx="{}" cy="{}" r="{}"'.format(point.x, point.y, arrowsize)
+ _rotate = 'rotate({},{},{})'.format(math.degrees(angle),
+ point.x, point.y)
+ _transl = 'translate({},{})'.format(point.x, point.y)
+ _scale = 'scale({},{})'.format(arrowsize, arrowsize)
+ _style = 'style="stroke-miterlimit:4;stroke-dasharray:none"'
+
+ if obj.ViewObject.ArrowType == "Circle":
+ svg += '\n'
+ elif obj.ViewObject.ArrowType == "Dot":
+ svg += '\n'
+ elif obj.ViewObject.ArrowType == "Arrow":
+ svg += '\n'
+ elif obj.ViewObject.ArrowType == "Tick":
+ svg += '\n'
+ elif obj.ViewObject.ArrowType == "Tick-2":
+ svg += '\n'
+ else:
+ _wrn("getSVG: arrow type not implemented")
+
+ return svg
+
+
+def getArrow(obj,
+ arrowtype, point, arrowsize, color, linewidth, angle=0):
+ """Get the SVG representation from an arrow. DEPRECATED."""
+ utils.use_instead("get_arrow")
+ return get_arrow(obj,
+ arrowtype, point, arrowsize, color, linewidth, angle)
+
+
def get_path(obj, plane,
fill, pathdata, stroke, linewidth, lstyle,
fill_opacity=None,
@@ -577,55 +656,6 @@ def getSVG(obj,
if hasattr(obj, "ViewObject") and hasattr(obj.ViewObject, "DrawStyle"):
lstyle = get_line_style(obj.ViewObject.DrawStyle, scale)
- def getArrow(arrowtype,point,arrowsize,color,linewidth,angle=0):
- svg = ""
- if FreeCAD.GuiUp:
- if not obj.ViewObject:
- return svg
- if obj.ViewObject.ArrowType == "Circle":
- svg += '\n'
- elif obj.ViewObject.ArrowType == "Dot":
- svg += '\n'
- elif obj.ViewObject.ArrowType == "Arrow":
- svg += '\n'
- elif obj.ViewObject.ArrowType == "Tick":
- svg += '\n'
- elif obj.ViewObject.ArrowType == "Tick-2":
- svg += '\n'
- else:
- print("getSVG: arrow type not implemented")
- return svg
-
def getOvershoot(point,shootsize,color,linewidth,angle=0):
svg = '= 2:
last_segment = FreeCAD.Vector(obj.Points[-1] - obj.Points[-2])
angle = -DraftVecUtils.angle(get_proj(last_segment, plane)) + math.pi
- svg += getArrow(
- arrowtype=obj.ViewObject.ArrowType,
- point=proj_points[-1],
- arrowsize=obj.ViewObject.ArrowSize.Value/pointratio,
- color=stroke,
- linewidth=linewidth,
- angle=angle
- )
+ svg += get_arrow(obj,
+ obj.ViewObject.ArrowType,
+ proj_points[-1],
+ obj.ViewObject.ArrowSize.Value/pointratio,
+ stroke, linewidth, angle)
# print text
if FreeCAD.GuiUp:
@@ -1162,7 +1201,9 @@ def getSVG(obj,
p2 = get_proj(obj.Shape.Vertexes[-2].Point, plane)
angle = -DraftVecUtils.angle(p2.sub(p1))
arrowsize = obj.ViewObject.ArrowSize.Value/pointratio
- svg += getArrow(obj.ViewObject.ArrowType,p1,arrowsize,stroke,linewidth,angle)
+ svg += get_arrow(obj,
+ obj.ViewObject.ArrowType,
+ p1, arrowsize, stroke, linewidth, angle)
# techdraw expects bottom-to-top coordinates
if techdraw: