value_setter.h
Go to the documentation of this file.
00001 
00019 #ifndef __INC_VALUE_SETTER
00020 #define __INC_VALUE_SETTER
00021 
00022 #include <vector>  
00023 #include <frame.h>
00024 #include <vecmath.h>
00025 #include <utils.h>
00026 
00027 namespace robotLibPbD
00028 {
00029 
00030     class ValueSetter
00031     {
00032     public:
00033       CFrame *frame;
00034       int x,y,z;
00035       int a, b, g;
00036       int qx,qy,qz,qw;
00037 
00038       ValueSetter()
00039       {
00040         a = b = g = x = y = z = qx = qw = qy = qz = -1;
00041       }
00042 
00043       bool set(std::vector<double> &values)
00044       {
00045         if (frame == NULL)
00046           return false;
00047 
00048         CMatrix pose;
00049         if (a != -1 || b != -1 || g != -1)
00050         {
00051             /*double alpha, beta, gamma = 0.0;
00052             if (a >= 0)
00053                 alpha = values[a];
00054             if (b >= 0)
00055                 beta = values[b];
00056             if (g >= 0)
00057                 gamma = values[g];*/
00058         }
00059         else
00060         {
00061             CVec quater;
00062 
00063             if (qw >= 0)
00064               quater.w = values[qw];
00065             if (qx >= 0)
00066               quater.x = values[qx];
00067             if (qy >= 0)
00068               quater.y = values[qy];
00069             if (qz >= 0)
00070               quater.z = values[qz];
00071 
00072             CMathLib::matrixFromQuaternion(quater, pose);
00073         }
00074 
00075         if (x >= 0)
00076           pose.a[12] = values[x];
00077         if (y >= 0)
00078           pose.a[13] = values[y];
00079         if (z >= 0)
00080           pose.a[14] = values[z];
00081 
00082         frame->setPose(pose);
00083         return true;
00084       }
00085     };
00086 }
00087 
00088 #endif


asr_kinematic_chain_optimizer
Author(s): Aumann Florian, Heller Florian, Jäkel Rainer, Wittenbeck Valerij
autogenerated on Sat Jun 8 2019 19:42:49