50 lines
1.5 KiB
C++
50 lines
1.5 KiB
C++
#include "../headers/gamba.hpp"
|
|
|
|
Gamba::Gamba(rb::Vector3 pos, unsigned int* dataPos, std::string cosciaData, std::string cavigliaData){
|
|
CSVProcessor processor;
|
|
try {
|
|
processor.readCSVFile (DATA_PATH + "coscia_filt.csv");
|
|
const auto& coscia = processor.getData();
|
|
processor.readCSVFile(DATA_PATH + "caviglia_filt.csv");
|
|
const auto& caviglia = processor.getData();
|
|
|
|
pezzi.push_back(new Coscia(pos,2));
|
|
pezzi.push_back(new Caviglia(rb::Vector3{pos[0],pos[1],pos[2]+200},2));
|
|
|
|
sensori.push_back(new Sensore(pos,_Float16( 0.2 ),dataPos,coscia));
|
|
sensori.push_back(new Sensore (rb::Vector3{pos[0],pos[1],pos[2]+200},_Float16( 0.2 ),dataPos,caviglia));
|
|
|
|
// modifico la rotazione relativa della gamba
|
|
sensori[0]->body.setRot({_Float16 (1.3),_Float16 (1.7),0});
|
|
sensori[1]->body.setRot({_Float16 (1.8),_Float16 (1.7),0});
|
|
|
|
joints.push_back(new RigidJoint(sensori[0], {pezzi[0]}));
|
|
joints.push_back(new PivotJoint(sensori[0], {sensori[1]}, rb::Vector3{0,0,100}));
|
|
joints.push_back(new RigidJoint(sensori[1], {pezzi[1]}));
|
|
|
|
}
|
|
catch(char* e){
|
|
throw "Gamba ERROR : "+ std::string(e) +" \n" ;
|
|
}
|
|
|
|
}
|
|
|
|
collection Gamba::create(ReferencePlane plane){
|
|
collection coll;
|
|
for(auto e : pezzi){
|
|
coll.pieces.push_back(e);
|
|
}
|
|
for(auto e : sensori){
|
|
coll.pieces.push_back(e);
|
|
}
|
|
|
|
for(auto j : joints){
|
|
coll.joints.push_back(j);
|
|
}
|
|
|
|
return coll;
|
|
}
|
|
|
|
PieceInterface* Gamba::getJointPiece(){
|
|
return sensori[0];
|
|
} |