--- /dev/null
+//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;
+};