]> SALOME platform Git repositories - modules/shaper.git/blob - src/PythonAPI/modeler/sketcher/arc.py
Salome HOME
[PythonAPI / sketcher] added addArc method and the corresponding test + fix for point API
[modules/shaper.git] / src / PythonAPI / modeler / sketcher / arc.py
1 """Sketch circle feature interface."""
2
3 from GeomDataAPI import geomDataAPI_Point2D
4 from modeler.errors import WrongNumberOfArguments
5
6 class Arc():
7     def __init__(self, arc_feature, *args):
8         self._feature = arc_feature
9         self._center = geomDataAPI_Point2D(
10             self._feature.data().attribute("ArcCenter")
11             )
12         self._start_point = geomDataAPI_Point2D(
13             self._feature.data().attribute("ArcStartPoint")
14             )
15         self._end_point = geomDataAPI_Point2D(
16             self._feature.data().attribute("ArcEndPoint")
17             )
18         if len(args) == 6:
19             self.__createByCoordinates(*args)
20         elif len(args) == 3:
21             self.__createByPoints(*args)
22         else:
23             raise WrongNumberOfArguments(
24                 "Arc takes 3 or 6 arguments (%s given)" % len(args)
25                 )
26
27     def centerData (self):
28         return self._center
29     
30     def startPointData (self):
31         return self._start_point
32     
33     def endPointData (self):
34         return self._end_point
35
36     def result (self):
37         return self._feature.lastResult()
38     
39     ########
40     #
41     # Private methods
42     #
43     ########
44     
45     def __createByCoordinates(self, 
46                          center_x, center_y, 
47                          start_x, start_y, 
48                          end_x, end_y):
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()
54         
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()
61         
62         
63         
64         
65