Salome HOME
Merge branch 'python_parametric_api' of https://git.salome-platform.org/git/modules...
[modules/shaper.git] / src / PythonAPI / model / sketcher / arc.py
index b025c4636160e0be7ef2ece7c6e1f3a47bec0eb8..0a7ae432dc7be7bb0484d68f10aa37590bf6eb39 100644 (file)
@@ -2,11 +2,14 @@
 
 from GeomDataAPI import geomDataAPI_Point2D
 from model.errors import WrongNumberOfArguments
+from model.roots import Interface
+
+class Arc(Interface):
+    """Interface to a sketch arc feature."""
+    def __init__(self, feature, *args):
+        Interface.__init__(self, feature)
+        assert(self._feature.getKind() == "SketchArc")
 
-class Arc():
-    """Interface for editing a sketch arc feature."""
-    def __init__(self, arc_feature, *args):
-        self._feature = arc_feature
         self._center = geomDataAPI_Point2D(
             self._feature.data().attribute("ArcCenter")
             )
@@ -24,15 +27,42 @@ class Arc():
             raise WrongNumberOfArguments(
                 "Arc takes 3 or 6 arguments (%s given)" % len(args)
                 )
+        self.execute()
+        
+    ########
+    #
+    # Set methods
+    #
+    ########
+    
+    def setCenter(self, x, y):
+        """Set arc center."""
+        self._center.setValue(x, y)
+        
+    def setStartPoint(self, x, y):
+        """Set start point."""
+        self._start_point.setValue(x, y)
+        
+    def setEndPoint(self, x, y):
+        """Set end point value."""
+        self._end_point.setValue(x, y)
+        
+    
+    ########
+    #
+    # Getters
+    #
+    ########
+
 
     def centerData(self):
         """Return the center point data."""
         return self._center
-    
+
     def startPointData(self):
         """Return the start point data."""
         return self._start_point
-    
+
     def endPointData(self):
         """Return the end point data."""
         return self._end_point
@@ -40,30 +70,25 @@ class Arc():
     def result(self):
         """Return the arc circular line attribute."""
         return self._feature.lastResult()
-    
+
+
     ########
     #
     # Private methods
     #
     ########
-    
-    def __createByCoordinates(self, center_x, center_y, 
-                              start_x, start_y, 
+
+
+    def __createByCoordinates(self, center_x, center_y,
+                              start_x, start_y,
                               end_x, end_y):
         """Create an arc by point coordinates."""
-        self._center.setValue(center_x, center_y)
-        self._start_point.setValue(start_x, start_y)
-        self._end_point.setValue(end_x, end_y)
-        self._feature.execute()
-        
+        self.setCenter(center_x, center_y)
+        self.setStartPoint(start_x, start_y)
+        self.setEndPoint(end_x, end_y)
+
     def __createByPoints(self, center, start, end):
         """Create an arc with point objects."""
-        self._center.setValue(center.x(), center.y())
-        self._start_point.setValue(start.x(), start.y())
-        self._end_point.setValue(end.x(), end.y())
-        self._feature.execute()
-        
-        
-        
-        
-        
+        self.setCenter(center.x(), center.y())
+        self.setStartPoint(start.x(), start.y())
+        self.setEndPoint(end.x(), end.y())