From cf838df461a72455ae5e140a85b5ff0bf9aaed4d Mon Sep 17 00:00:00 2001
From: Mansard <nmansard@laas.fr>
Date: Tue, 6 Sep 2011 14:13:22 +0200
Subject: [PATCH] Added a op point modifier. Should be ported to sot-core.

---
 python/meta_task_dyn_6d.py | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/python/meta_task_dyn_6d.py b/python/meta_task_dyn_6d.py
index 44e55f5..070c73b 100644
--- a/python/meta_task_dyn_6d.py
+++ b/python/meta_task_dyn_6d.py
@@ -1,5 +1,5 @@
 from dynamic_graph import plug
-from dynamic_graph.sot.core import GainAdaptive
+from dynamic_graph.sot.core import GainAdaptive, OpPointModifier
 from dynamic_graph.sot.dyninv import TaskDynPD
 from dynamic_graph.sot.core.meta_task_6d import MetaTask6d
 
@@ -18,3 +18,23 @@ class MetaTaskDyn6d(MetaTask6d):
         plug(self.dyn.velocity,self.task.qdot)
         plug(self.task.error,self.gain.error)
         plug(self.gain.gain,self.task.controlGain)
+    
+    def __init__(self,*args):
+        MetaTask6d.__init__(self,*args)
+        self.opPointModif = OpPointModifier('opmodif'+self.name)
+        plug(self.dyn.signal(self.opPoint),self.opPointModif.signal('positionIN'))
+        plug(self.dyn.signal('J'+self.opPoint),self.opPointModif.signal('jacobianIN'))
+        self.opPointModif.activ = False
+
+    @property
+    def opmodif(self):
+        if not self.opPointModif.activ: return False
+        else: return self.opPointModif.getTransformation()
+
+    @opmodif.setter
+    def opmodif(self,m):
+        if not self.opPointModif.activ:
+            plug(self.opPointModif.signal('position'),self.feature.position )
+            plug(self.opPointModif.signal('jacobian'),self.feature.Jq)
+            self.opPointModif.activ = True
+        self.opPointModif.setTransformation(m)
-- 
GitLab