1 """Sketch circle feature interface."""
3 from GeomDataAPI import geomDataAPI_Point2D
4 from model.errors import WrongNumberOfArguments
7 """Interface for editing a sketch arc feature."""
8 def __init__(self, arc_feature, *args):
9 self._feature = arc_feature
10 self._center = geomDataAPI_Point2D(
11 self._feature.data().attribute("ArcCenter")
13 self._start_point = geomDataAPI_Point2D(
14 self._feature.data().attribute("ArcStartPoint")
16 self._end_point = geomDataAPI_Point2D(
17 self._feature.data().attribute("ArcEndPoint")
20 self.__createByCoordinates(*args)
22 self.__createByPoints(*args)
24 raise WrongNumberOfArguments(
25 "Arc takes 3 or 6 arguments (%s given)" % len(args)
29 """Return the center point data."""
32 def startPointData(self):
33 """Return the start point data."""
34 return self._start_point
36 def endPointData(self):
37 """Return the end point data."""
38 return self._end_point
41 """Return the arc circular line attribute."""
42 return self._feature.lastResult()
50 def __createByCoordinates(self, center_x, center_y,
53 """Create an arc by point coordinates."""
54 self._center.setValue(center_x, center_y)
55 self._start_point.setValue(start_x, start_y)
56 self._end_point.setValue(end_x, end_y)
57 self._feature.execute()
59 def __createByPoints(self, center, start, end):
60 """Create an arc with point objects."""
61 self._center.setValue(center.x(), center.y())
62 self._start_point.setValue(start.x(), start.y())
63 self._end_point.setValue(end.x(), end.y())
64 self._feature.execute()