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)
32 """Return the center point data."""
35 def startPointData(self):
36 """Return the start point data."""
37 return self._start_point
39 def endPointData(self):
40 """Return the end point data."""
41 return self._end_point
44 """Return the arc circular line attribute."""
45 return self._feature.lastResult()
53 def __createByCoordinates(self, center_x, center_y,
56 """Create an arc by point coordinates."""
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()
62 def __createByPoints(self, center, start, end):
63 """Create an arc with point objects."""
64 self._center.setValue(center.x(), center.y())
65 self._start_point.setValue(start.x(), start.y())
66 self._end_point.setValue(end.x(), end.y())
67 self._feature.execute()