Salome HOME
Merge with version on tag OCC-V2_1_0d
[modules/geom.git] / src / GEOMImpl / GEOMImpl_IRotate.hxx
diff --git a/src/GEOMImpl/GEOMImpl_IRotate.hxx b/src/GEOMImpl/GEOMImpl_IRotate.hxx
new file mode 100644 (file)
index 0000000..8b38e4d
--- /dev/null
@@ -0,0 +1,47 @@
+//NOTE: This is an intreface to a function for the Rotate operation.
+
+
+#include "GEOM_Function.hxx"
+
+#define ROTATE_ANGLE    1  
+#define ROTATE_AXIS     2
+#define ROTATE_ORGN     3
+#define ROTATE_STEP1      4
+#define ROTATE_NBITER1   5
+#define ROTATE_NBITER2   6
+
+class GEOMImpl_IRotate
+{
+ public:
+  
+  GEOMImpl_IRotate(Handle(GEOM_Function) theFunction): _func(theFunction) {}
+  
+  void SetAngle(Standard_Real theAngle) { _func->SetReal(ROTATE_ANGLE, theAngle); }
+  
+  Standard_Real GetAngle() { return _func->GetReal(ROTATE_ANGLE); }
+  
+  void SetAxis(Handle(GEOM_Function) theVector) { _func->SetReference(ROTATE_AXIS, theVector); }
+  
+  Handle(GEOM_Function) GetAxis() { return _func->GetReference(ROTATE_AXIS); } 
+  
+  void SetOriginal(Handle(GEOM_Function) theOriginal) { _func->SetReference(ROTATE_ORGN, theOriginal); }
+
+  Handle(GEOM_Function) GetOriginal() { return _func->GetReference(ROTATE_ORGN); }
+
+  void SetStep(double theStep) { return _func->SetReal(ROTATE_STEP1, theStep); }
+
+  double GetStep() { return _func->GetReal(ROTATE_STEP1); }
+
+  void SetNbIter1(int theNbIter) { _func->SetInteger(ROTATE_NBITER1, theNbIter); }
+
+  int GetNbIter1() { return _func->GetInteger(ROTATE_NBITER1); } 
+
+  void SetNbIter2(int theNbIter) { _func->SetInteger(ROTATE_NBITER2, theNbIter); }
+
+  int GetNbIter2() { return _func->GetInteger(ROTATE_NBITER2); } 
+
+  
+ private:
+  
+  Handle(GEOM_Function) _func;  
+};