]> SALOME platform Git repositories - modules/shaper.git/blob - src/PythonAPI/model/sketcher/arc.py
Salome HOME
Merge branch 'python_parametric_api' of https://git.salome-platform.org/git/modules...
[modules/shaper.git] / src / PythonAPI / model / sketcher / arc.py
1 """Sketch circle feature interface."""
2
3 from GeomDataAPI import geomDataAPI_Point2D
4 from model.errors import WrongNumberOfArguments
5
6 class Arc():
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")
12             )
13         self._start_point = geomDataAPI_Point2D(
14             self._feature.data().attribute("ArcStartPoint")
15             )
16         self._end_point = geomDataAPI_Point2D(
17             self._feature.data().attribute("ArcEndPoint")
18             )
19         if len(args) == 6:
20             self.__createByCoordinates(*args)
21         elif len(args) == 3:
22             self.__createByPoints(*args)
23         else:
24             raise WrongNumberOfArguments(
25                 "Arc takes 3 or 6 arguments (%s given)" % len(args)
26                 )
27
28     def centerData(self):
29         """Return the center point data."""
30         return self._center
31     
32     def startPointData(self):
33         """Return the start point data."""
34         return self._start_point
35     
36     def endPointData(self):
37         """Return the end point data."""
38         return self._end_point
39
40     def result(self):
41         """Return the arc circular line attribute."""
42         return self._feature.lastResult()
43     
44     ########
45     #
46     # Private methods
47     #
48     ########
49     
50     def __createByCoordinates(self, center_x, center_y, 
51                               start_x, start_y, 
52                               end_x, end_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()
58         
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()
65         
66         
67         
68         
69