本文整理汇总了C++中Bone::basis方法的典型用法代码示例。如果您正苦于以下问题:C++ Bone::basis方法的具体用法?C++ Bone::basis怎么用?C++ Bone::basis使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bone
的用法示例。
在下文中一共展示了Bone::basis方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: onFrame
//metodo en bucle que actualiza la informacion de frecuencia, volumen y handsGl
void leapMotion::onFrame(const Controller& controller) {
const Frame frame = controller.frame();
int j = 0;
float mejor = 1000;
float mejorVol = 1000;
int nada=-1000;
Vector vNada = Vector(nada,nada,nada);
Matrix mNada = Matrix(vNada,vNada,vNada);
HandList hands = frame.hands();
numManos = hands.count();
for(int i=0; i<numManos; i++){
palma[i] = hands[i].palmPosition();
//anchuraPalmas[i] = hands[i].palmWidth();
direccionMano[i] = hands[i].basis();
float distVol=palma[i].y;
if((palma[i].x/50)<-4 && (palma[i].x/50)>-7 && distVol<=mejorVol) mejorVol=distVol;
//if(distVol<=mejorVol) mejorVol=distVol;
for (int f = 0; f < hands[i].fingers().count(); f++) {
Finger finger = hands[i].fingers()[f];
for (int b = 0; b < 4; b++) {
Bone bone = finger.bone(static_cast<Leap::Bone::Type>(b));
handsGl[i*20+f*4+b]=bone.nextJoint();
float dist=sqrt(pow(4.125-(handsGl[i*20+f*4+b].x/50),2)+pow((-0.75)-(handsGl[i*20+f*4+b].z/50),2));
if(dist<=mejor) mejor=dist;
centroHuesos[i*20+f*4+b]=bone.nextJoint();
direccionHuesos[i*20+f*4+b]=bone.basis();
longitudHuesos[i*20+f*4+b]=bone.length();
anchuraHuesos[i*20+f*4+b]=bone.width()/2;
}
}
}
for(int i=numManos*20;i<40;i++) handsGl[i] = vNada;
for(int i=numManos; i<2; i++) palma[i] = vNada;
//for(int i=numManos; i<2; i++) anchuraPalmas[i] = 0;
for(int i=numManos; i<2; i++) direccionMano[i] = mNada;
for(int i=numManos*20; i<40; i++) direccionHuesos[i] = mNada;
for(int i=numManos*20; i<40; i++) centroHuesos[i] = vNada;
for(int i=numManos*20; i<40; i++) longitudHuesos[i] = 0;
for(int i=numManos*20; i<40; i++) anchuraHuesos[i] = 0;
if(mejor<=0.1) freq=7902.13; //se supone que al tocar la antena del theremin, se produce una frecuencia de sonido muy alta
else if(mejor<=5){
freq=4000*(1-mejor/5);
}
else freq=0;
if(mejorVol>=250 && mejorVol<=350) volumen=1*((mejorVol-250)/100);
else if(mejorVol<250) volumen=0;
else volumen=1;
}