1 """Sketch circle feature interface."""
3 from GeomDataAPI import geomDataAPI_Point2D
4 from model.errors import WrongNumberOfArguments
7 def __init__(self, arc_feature, *args):
8 self._feature = arc_feature
9 self._center = geomDataAPI_Point2D(
10 self._feature.data().attribute("ArcCenter")
12 self._start_point = geomDataAPI_Point2D(
13 self._feature.data().attribute("ArcStartPoint")
15 self._end_point = geomDataAPI_Point2D(
16 self._feature.data().attribute("ArcEndPoint")
19 self.__createByCoordinates(*args)
21 self.__createByPoints(*args)
23 raise WrongNumberOfArguments(
24 "Arc takes 3 or 6 arguments (%s given)" % len(args)
27 def centerData (self):
30 def startPointData (self):
31 return self._start_point
33 def endPointData (self):
34 return self._end_point
37 return self._feature.lastResult()
45 def __createByCoordinates(self,
49 """Create an arc by point coordinates."""
50 self._center.setValue(center_x, center_y)
51 self._start_point.setValue(start_x, start_y)
52 self._end_point.setValue(end_x, end_y)
53 self._feature.execute()
55 def __createByPoints(self, center, start, end):
56 """Create an arc with point objects."""
57 self._center.setValue(center.x(), center.y())
58 self._start_point.setValue(start.x(), start.y())
59 self._end_point.setValue(end.x(), end.y())
60 self._feature.execute()