ROOT logo
// $Id: Mover.cxx 2456 2010-10-17 18:31:40Z matevz $

// Copyright (C) 1999-2008, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.

#include "Mover.h"
#include "Mover.c7"
#include <Gled/GledOperatorDefs.h>

//________________________________________________________________________
//
// Translates and/or rotates mNode (if not null) in its local frame.
// mMi ~ index of Move axis (1~x,2~y,3~z),
// mMa ~ amount of displacement;
// mRi, mRj ~ indices determining the Rotation plane,
// mRa ~ amount of angular displacement (in radians).
// If mMa!=0 translates; if mRa!=0 rotates.
//________________________________________________________________________

ClassImp(Mover);

void Mover::_init()
{
  mMi = 1; mRi = 1; mRj = 2;
  mMa = mRa = 0;
  bMovParentFrame = bRotParentFrame = false;
}

/**************************************************************************/

void Mover::SetRotateParams(UInt_t i, UInt_t j, Float_t a)
{
  mRi = i; mRj = j; mRa = a;
  Stamp(FID());
}

/**************************************************************************/

void Mover::Operate(Operator::Arg* op_arg)
{
  Operator::PreOperate(op_arg);
  if(mNode != 0) {
    if(mMa != 0) {
      if(bMovParentFrame) {
	OP_EXE_OR_SP_MIR(mNode.get(), MovePF, mMi, mMa);
      } else {
	OP_EXE_OR_SP_MIR(mNode.get(), MoveLF, mMi, mMa);
      }
    }
    if(mRa != 0) {
      if(bRotParentFrame) {
	OP_EXE_OR_SP_MIR(mNode.get(), RotatePF, mRi, mRj, mRa);
      } else {
	OP_EXE_OR_SP_MIR(mNode.get(), RotateLF, mRi, mRj, mRa);
      }
    }
  }
  Operator::PostOperate(op_arg);
}
 Mover.cxx:1
 Mover.cxx:2
 Mover.cxx:3
 Mover.cxx:4
 Mover.cxx:5
 Mover.cxx:6
 Mover.cxx:7
 Mover.cxx:8
 Mover.cxx:9
 Mover.cxx:10
 Mover.cxx:11
 Mover.cxx:12
 Mover.cxx:13
 Mover.cxx:14
 Mover.cxx:15
 Mover.cxx:16
 Mover.cxx:17
 Mover.cxx:18
 Mover.cxx:19
 Mover.cxx:20
 Mover.cxx:21
 Mover.cxx:22
 Mover.cxx:23
 Mover.cxx:24
 Mover.cxx:25
 Mover.cxx:26
 Mover.cxx:27
 Mover.cxx:28
 Mover.cxx:29
 Mover.cxx:30
 Mover.cxx:31
 Mover.cxx:32
 Mover.cxx:33
 Mover.cxx:34
 Mover.cxx:35
 Mover.cxx:36
 Mover.cxx:37
 Mover.cxx:38
 Mover.cxx:39
 Mover.cxx:40
 Mover.cxx:41
 Mover.cxx:42
 Mover.cxx:43
 Mover.cxx:44
 Mover.cxx:45
 Mover.cxx:46
 Mover.cxx:47
 Mover.cxx:48
 Mover.cxx:49
 Mover.cxx:50
 Mover.cxx:51
 Mover.cxx:52
 Mover.cxx:53
 Mover.cxx:54
 Mover.cxx:55
 Mover.cxx:56
 Mover.cxx:57
 Mover.cxx:58
 Mover.cxx:59
 Mover.cxx:60