Salome HOME
1004b8ea61b1892fa184d26d7cf0cb814a46695a
[modules/shaper.git] / src / PythonAPI / model / features / translation.py
1 """Translation Interface
2 Author: Sergey Pokhodenko
3 Copyright (C) 2014-20xx CEA/DEN, EDF R&D
4 """
5
6 from model.roots import Interface
7
8
9 def addTranslation(part, *args):
10     """Add an Translation feature to the Part and return Translation.
11
12     Pass all args to Translation __init__ function.
13     """
14     assert(args)
15     feature = part.addFeature("Translation")
16     return Translation(feature, *args)
17
18
19 class Translation(Interface):
20
21     def __init__(self, feature, *args):
22         Interface.__init__(self, feature)
23         assert(self._feature.getKind() == "Translation")
24
25         self._main_objects = self._feature.data().selectionList("main_objects")
26         self._axis_object = self._feature.data().selection("axis_object")
27         self._distance = self._feature.data().real("distance")
28
29         assert(self._main_objects)
30         assert(self._axis_object)
31         assert(self._distance)
32
33         if not args:
34             return
35
36         assert(len(args) == 3)
37         self.setMainObjects(args[0])
38         self.setAxisObject(args[1])
39         self.setDistance(args[2])
40
41         self._execute()
42         pass
43
44     def setMainObjects(self, main_objects):
45         """Modify main_objects attribute of the feature.
46
47         See __init__.
48         """
49         self._fill_attribute(self._main_objects, main_objects)
50         pass
51
52     def setAxisObject(self, axis_object):
53         """Modify axis_object attribute of the feature.
54
55         See __init__.
56         """
57         self._fill_attribute(self._axis_object, axis_object)
58         pass
59
60     def setDistance(self, distance):
61         """Modify distance attribute of the feature.
62
63         See __init__.
64         """
65         self._fill_attribute(self._distance, distance)
66         pass