anchor.diff:        ;(print mp)
         (if (robray::motion-plan-valid-p mp)
             (values mp
  -                  (scene-graph-reparent sg frame object-name :tf relative-tf))
  +                  (scene-graph-reparent sg destination-name object-name :tf relative-tf))
             (values nil sg)))))
   
   (defun act-transfer-tf (sg-0 frame start object-name pick-rel-tf destination-name dst-rel-tf)
  -  (print 'transfer)
  +  ;(print 'transfer)
     (multiple-value-bind (mp-pick sg)
         (act-pick-tf sg-0 frame start object-name pick-rel-tf )
       (if (null mp-pick)
  
positive.code:       ;(print mp)
        (if (robray::motion-plan-valid-p mp)
            (values mp
                    (let* ((end (motion-plan-endpoint-map mp))
                           (g-tf-ae (scene-graph-tf-absolute sg frame :configuration-map end))
                           (o-tf-ae (g* (tf-inverse g-tf-o) g-tf-ae)))
                      (print (tf-array g-tf-e))
                      (print (tf-array g-tf-ae))
                      ;(print (tf-inverse relative-tf))
                      (scene-graph-reparent sg frame object-name
                                            ;:tf (g* (tf-inverse act-g-tf-e) g-tf-e)
  
negative.code:           (values nil sg)))))
  
  (defun act-place-tf (sg frame start destination-name relative-tf object-name )
    ;(print 'place)
    (let* ((ssg (scene-graph-chain sg nil frame))
           (g-tf-dst (scene-graph-tf-absolute sg destination-name :configuration-map start))
           (g-tf-obj (g* g-tf-dst relative-tf))
  