Skip to content

Commit fdb72f4

Browse files
Merge pull request #15 from qualisys/qtm_repo_merge
Merge latest upstream/qtm changes
2 parents 44ea278 + 2ba199f commit fdb72f4

File tree

2 files changed

+15
-22
lines changed

2 files changed

+15
-22
lines changed

RTClientExample/OutputSettings.cpp

+1-9
Original file line numberDiff line numberDiff line change
@@ -1036,15 +1036,7 @@ void COutput::PrintSkeletonSettings(CRTProtocol* poRTProtocol, bool skeletonGlob
10361036
for (unsigned int segmentIndex = 0; segmentIndex < segmentCount; segmentIndex++)
10371037
{
10381038
poRTProtocol->GetSkeletonSegment(iSkeleton, segmentIndex, &segment);
1039-
printf(" Segment id: %2d name: %-19s ", segment.id, segment.name.c_str());
1040-
if (segment.parentId == -1)
1041-
{
1042-
printf(" ");
1043-
}
1044-
else
1045-
{
1046-
printf("Parent: %-4d ", segment.parentId);
1047-
}
1039+
printf(" Segment id: %2d name: %-19s Parent id: %-4d Parent index: %-4d ", segment.id, segment.name.c_str(), segment.parentId, segment.parentIndex);
10481040
printf("%s Pos: %8.2f, %8.2f, %8.2f Rot: %4.2f, %4.2f, %4.2f, %4.2f\n", skeletonGlobalReferenceFrame ? "Global" : "Local",
10491041
segment.positionX, segment.positionY, segment.positionZ,
10501042
segment.rotationX, segment.rotationY, segment.rotationZ, segment.rotationW);

RTProtocol.cpp

+14-13
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ bool CRTProtocol::StreamFrames(EStreamRate eRate, unsigned int nRateArg, unsigne
462462

463463
if (eRate == RateFrequencyDivisor)
464464
{
465-
commandString << "StreamFrames FrequencyDivisor: " << nRateArg << " ";
465+
commandString << "StreamFrames FrequencyDivisor:" << nRateArg << " ";
466466
}
467467
else if (eRate == RateFrequency)
468468
{
@@ -4084,6 +4084,8 @@ bool CRTProtocol::ReadSkeletonSettings(bool &dataAvailable, bool skeletonGlobalD
40844084
return false;
40854085
}
40864086

4087+
int segmentIndex;
4088+
std::map<int, int> segmentIdIndexMap;
40874089
xml.ResetPos();
40884090

40894091
xml.FindElem();
@@ -4099,6 +4101,7 @@ bool CRTProtocol::ReadSkeletonSettings(bool &dataAvailable, bool skeletonGlobalD
40994101
{
41004102
SSettingsSkeletonHierarchical skeletonHierarchical;
41014103
SSettingsSkeleton skeleton;
4104+
segmentIndex = 0;
41024105

41034106
skeletonHierarchical.name = xml.GetAttrib("Name");
41044107
skeleton.name = skeletonHierarchical.name;
@@ -4129,6 +4132,8 @@ bool CRTProtocol::ReadSkeletonSettings(bool &dataAvailable, bool skeletonGlobalD
41294132
segmentHierarchical.name = xml.GetAttrib("Name");
41304133
ParseString(xml.GetAttrib("ID"), segmentHierarchical.id);
41314134

4135+
segmentIdIndexMap[segmentHierarchical.id] = segmentIndex++;
4136+
41324137
xml.IntoElem();
41334138

41344139
if (xml.FindElem("Transform"))
@@ -4223,15 +4228,14 @@ bool CRTProtocol::ReadSkeletonSettings(bool &dataAvailable, bool skeletonGlobalD
42234228
segment.name = segmentHierarchical.name;
42244229
segment.id = segmentHierarchical.id;
42254230
segment.parentId = parentId;
4226-
segment.parentIndex = segments.size() - 1;
4227-
segment.positionX = (float)segmentHierarchical.position.x;
4228-
segment.positionX = (float)segmentHierarchical.position.x;
4229-
segment.positionY = (float)segmentHierarchical.position.y;
4230-
segment.positionZ = (float)segmentHierarchical.position.z;
4231-
segment.rotationX = (float)segmentHierarchical.rotation.x;
4232-
segment.rotationY = (float)segmentHierarchical.rotation.y;
4233-
segment.rotationZ = (float)segmentHierarchical.rotation.z;
4234-
segment.rotationW = (float)segmentHierarchical.rotation.w;
4231+
segment.parentIndex = (parentId != -1) ? segmentIdIndexMap[parentId] : -1;
4232+
segment.positionX = (float)segmentHierarchical.defaultPosition.x;
4233+
segment.positionY = (float)segmentHierarchical.defaultPosition.y;
4234+
segment.positionZ = (float)segmentHierarchical.defaultPosition.z;
4235+
segment.rotationX = (float)segmentHierarchical.defaultRotation.x;
4236+
segment.rotationY = (float)segmentHierarchical.defaultRotation.y;
4237+
segment.rotationZ = (float)segmentHierarchical.defaultRotation.z;
4238+
segment.rotationW = (float)segmentHierarchical.defaultRotation.w;
42354239

42364240
segments.push_back(segment);
42374241

@@ -4258,9 +4262,6 @@ bool CRTProtocol::ReadSkeletonSettings(bool &dataAvailable, bool skeletonGlobalD
42584262
}
42594263
else
42604264
{
4261-
int segmentIndex;
4262-
std::map<int, int> segmentIdIndexMap;
4263-
42644265
while (xml.FindElem("Skeleton"))
42654266
{
42664267
SSettingsSkeleton skeleton;

0 commit comments

Comments
 (0)