1 """Sketch circle feature interface."""
3 from GeomDataAPI import geomDataAPI_Point2D
4 from model.errors import WrongNumberOfArguments
5 from model.roots import Interface
8 """Interface to a sketch arc feature."""
9 def __init__(self, feature, *args):
10 Interface.__init__(self, feature)
11 assert(self._feature.getKind() == "SketchArc")
13 self._center = geomDataAPI_Point2D(
14 self._feature.data().attribute("ArcCenter")
16 self._start_point = geomDataAPI_Point2D(
17 self._feature.data().attribute("ArcStartPoint")
19 self._end_point = geomDataAPI_Point2D(
20 self._feature.data().attribute("ArcEndPoint")
23 self.__createByCoordinates(*args)
25 self.__createByPoints(*args)
27 raise WrongNumberOfArguments(
28 "Arc takes 3 or 6 arguments (%s given)" % len(args)
38 def setCenter(self, x, y):
40 self._center.setValue(x, y)
42 def setStartPoint(self, x, y):
43 """Set start point."""
44 self._start_point.setValue(x, y)
46 def setEndPoint(self, x, y):
47 """Set end point value."""
48 self._end_point.setValue(x, y)
59 """Return the center point data."""
62 def startPointData(self):
63 """Return the start point data."""
64 return self._start_point
66 def endPointData(self):
67 """Return the end point data."""
68 return self._end_point
71 """Return the arc circular line attribute."""
72 return self._feature.lastResult()
82 def __createByCoordinates(self, center_x, center_y,
85 """Create an arc by point coordinates."""
86 self.setCenter(center_x, center_y)
87 self.setStartPoint(start_x, start_y)
88 self.setEndPoint(end_x, end_y)
90 def __createByPoints(self, center, start, end):
91 """Create an arc with point objects."""
92 self.setCenter(center.x(), center.y())
93 self.setStartPoint(start.x(), start.y())
94 self.setEndPoint(end.x(), end.y())