34 CStereoCalibration* pStereoCalibration)
42 std::ifstream sFileStream(sConfigFileName.c_str(), std::ifstream::in);
43 if (!sFileStream.good())
46 <<
" could not be opened";
53 std::vector<std::vector<float>> aJointOffsets;
54 aJointOffsets.resize(5);
58 sscanf(sLine.c_str(),
"%f %f %f", &vTemp.x, &vTemp.y, &vTemp.z);
63 sscanf(sLine.c_str(),
"%f", &fTemp);
64 aJointOffsets.at(0).push_back(fTemp);
68 sscanf(sLine.c_str(),
"%f", &fTemp);
69 aJointOffsets.at(0).push_back(fTemp);
73 sscanf(sLine.c_str(),
"%f", &fTemp);
74 aJointOffsets.at(0).push_back(fTemp);
78 sscanf(sLine.c_str(),
"%f", &fTemp);
79 aJointOffsets.at(0).push_back(fTemp);
84 sscanf(sLine.c_str(),
"%f %f %f", &vTemp.x, &vTemp.y, &vTemp.z);
89 sscanf(sLine.c_str(),
"%f", &fTemp);
90 aJointOffsets.at(1).push_back(fTemp);
94 sscanf(sLine.c_str(),
"%f", &fTemp);
95 aJointOffsets.at(1).push_back(fTemp);
99 sscanf(sLine.c_str(),
"%f", &fTemp);
100 aJointOffsets.at(1).push_back(fTemp);
105 sscanf(sLine.c_str(),
"%f %f %f", &vTemp.x, &vTemp.y, &vTemp.z);
110 sscanf(sLine.c_str(),
"%f", &fTemp);
111 aJointOffsets.at(2).push_back(fTemp);
115 sscanf(sLine.c_str(),
"%f", &fTemp);
116 aJointOffsets.at(2).push_back(fTemp);
120 sscanf(sLine.c_str(),
"%f", &fTemp);
121 aJointOffsets.at(2).push_back(fTemp);
126 sscanf(sLine.c_str(),
"%f %f %f", &vTemp.x, &vTemp.y, &vTemp.z);
131 sscanf(sLine.c_str(),
"%f", &fTemp);
132 aJointOffsets.at(3).push_back(fTemp);
136 sscanf(sLine.c_str(),
"%f", &fTemp);
137 aJointOffsets.at(3).push_back(fTemp);
141 sscanf(sLine.c_str(),
"%f", &fTemp);
142 aJointOffsets.at(3).push_back(fTemp);
147 sscanf(sLine.c_str(),
"%f %f %f", &vTemp.x, &vTemp.y, &vTemp.z);
152 sscanf(sLine.c_str(),
"%f", &fTemp);
153 aJointOffsets.at(4).push_back(fTemp);
157 sscanf(sLine.c_str(),
"%f", &fTemp);
158 aJointOffsets.at(4).push_back(fTemp);
162 sscanf(sLine.c_str(),
"%f", &fTemp);
163 aJointOffsets.at(4).push_back(fTemp);
168 int nNumFingertipPoints;
170 sscanf(sLine.c_str(),
"%d", &nNumFingertipPoints);
173 float fFingerTipOffsetZ;
175 sscanf(sLine.c_str(),
"%f", &fFingerTipOffsetZ);
178 std::vector<Vec3d> aFingertipPoints;
180 for (
int i = 0; i < nNumFingertipPoints; i++)
182 sscanf(sLine.c_str(),
"%f %f %f", &vTemp.x, &vTemp.y, &vTemp.z);
183 vTemp.z += fFingerTipOffsetZ;
184 aFingertipPoints.push_back(vTemp);
185 std::getline(sFileStream, sLine);
191 sscanf(sLine.c_str(),
205 std::vector<Vec3d> aFingertipPointsThumb;
206 aFingertipPointsThumb.resize(nNumFingertipPoints);
207 for (
int i = 0; i < nNumFingertipPoints; i++)
209 Math3d::SetVec(aFingertipPointsThumb.at(i),
210 aFingertipPoints.at(i).x,
211 aFingertipPoints.at(i).y,
212 aFingertipPoints.at(i).z);
214 CFinger* pNewFinger =
new CFinger(aJointOffsets.at(0), aFingertipPointsThumb);
218 for (
int i = 1; i <= 4; i++)
220 pNewFinger =
new CFinger(aJointOffsets.at(i), aFingertipPoints);
230 for (
int i = 0; i < 5; i++)
233 m_aFingers.at(i)->m_aFingerJointsInFingerBaseCS.size());
241 for (
int i = 0; i < 5; i++)
244 m_aFingers.at(i)->m_aFingerTipCornersInFingerBaseCS.size());
262 Vec3d vHandPosition = {(
float)pConfig[0], (
float)pConfig[1], (
float)pConfig[2]};
263 Mat3d mHandOrientation;
264 Math3d::SetRotationMat(mHandOrientation, pConfig[3], pConfig[4], pConfig[5]);
266 float fPalmJointAngle = pConfig[6];
268 std::vector<std::vector<float>> aFingerJointAngles;
269 aFingerJointAngles.resize(5);
270 aFingerJointAngles.at(0).push_back(pConfig[7]);
271 aFingerJointAngles.at(0).push_back(pConfig[8]);
272 aFingerJointAngles.at(0).push_back(pConfig[8]);
273 aFingerJointAngles.at(0).push_back(pConfig[8]);
274 aFingerJointAngles.at(1).push_back(-pConfig[9]);
275 aFingerJointAngles.at(1).push_back(-pConfig[9]);
276 aFingerJointAngles.at(1).push_back(-pConfig[9]);
277 aFingerJointAngles.at(2).push_back(-pConfig[10]);
278 aFingerJointAngles.at(2).push_back(-pConfig[10]);
279 aFingerJointAngles.at(2).push_back(-pConfig[10]);
280 aFingerJointAngles.at(3).push_back(-pConfig[11]);
281 aFingerJointAngles.at(3).push_back(-pConfig[11]);
282 aFingerJointAngles.at(3).push_back(-pConfig[11]);
283 aFingerJointAngles.at(4).push_back(-pConfig[11]);
284 aFingerJointAngles.at(4).push_back(-pConfig[11]);
285 aFingerJointAngles.at(4).push_back(-pConfig[11]);
288 vHandPosition, mHandOrientation, fPalmJointAngle, aFingerJointAngles);