Skip to content

Commit 7f40766

Browse files
authored
Merge pull request #31 from qualisys/unify_settings
Remove deprecated settings types
2 parents 329daf1 + d0f322d commit 7f40766

File tree

3 files changed

+9
-233
lines changed

3 files changed

+9
-233
lines changed

QTMSettings.cs

+5-177
Original file line numberDiff line numberDiff line change
@@ -162,79 +162,10 @@ public Settings3D()
162162

163163
/// <summary>6D Settings from QTM</summary>
164164
[XmlRoot("The_6D")]
165-
public class Settings6D_V1 : SettingsBase
166-
{
167-
internal static Settings6D ConvertToSettings6DOF(Settings6D_V1 settings)
168-
{
169-
return new Settings6D(settings.Xml, settings.BodyCount, settings.Bodies.ConvertAll<Settings6DOF>(Settings6DOF_V1.ConvertToSettings6DOF), settings.EulerNames);
170-
}
171-
172-
[XmlElement("Bodies")]
173-
public int BodyCount;
174-
[XmlElement("Body")]
175-
public List<Settings6DOF_V1> Bodies;
176-
[XmlElement("Euler")]
177-
public EulerNames EulerNames;
178-
}
179-
180-
[XmlRoot("Euler")]
181-
public class EulerNames
182-
{
183-
public EulerNames()
184-
{
185-
First = "Roll";
186-
Second = "Pitch";
187-
Third = "Yaw";
188-
}
189-
190-
[XmlElement("First")]
191-
public string First;
192-
[XmlElement("Second")]
193-
public string Second;
194-
[XmlElement("Third")]
195-
public string Third;
196-
}
197-
198-
/// <summary>6D Settings from QTM</summary>
199-
[XmlRoot("The_6D")]
200-
public class Settings6D_V2 : SettingsBase
201-
{
202-
public Settings6D_V2() { }
203-
internal Settings6D_V2(Settings6D settings)
204-
{
205-
Bodies = settings.Bodies.ConvertAll<Settings6DOF_V2>(Settings6DOF.ConvertToSettings6DOF_V2);
206-
}
207-
208-
internal static Settings6D ConvertToSettings6DOF(Settings6D_V2 settings)
209-
{
210-
return new Settings6D(settings.Xml, settings.Bodies.Count, settings.Bodies.ConvertAll<Settings6DOF>(Settings6DOF_V2.ConvertToSettings6DOF), new EulerNames());
211-
}
212-
[XmlElement("Body")]
213-
public List<Settings6DOF_V2> Bodies;
214-
}
215-
216165
public class Settings6D : SettingsBase
217166
{
218-
public Settings6D()
219-
{
220-
#pragma warning disable CS0618 // Type or member is obsolete
221-
EulerNames = new EulerNames();
222-
#pragma warning restore CS0618 // Type or member is obsolete
223-
}
224-
public Settings6D(string xml, int bodyCount, List<Settings6DOF> bodies, EulerNames eulerNames)
225-
{
226-
Xml = xml;
227-
BodyCount = bodyCount;
228-
Bodies = bodies;
229-
#pragma warning disable CS0618 // Type or member is obsolete
230-
EulerNames = eulerNames;
231-
#pragma warning restore CS0618 // Type or member is obsolete
232-
}
233-
234-
public int BodyCount;
167+
[XmlElement("Body")]
235168
public List<Settings6DOF> Bodies;
236-
[Obsolete("EulerNames is moved to general settings from protocol version 1.21.", false)]
237-
public EulerNames EulerNames;
238169
}
239170

240171
/// <summary>Analog Settings from QTM</summary>
@@ -1016,48 +947,10 @@ public string TimestampTypeAsString
1016947
public int Frequency;
1017948
}
1018949

1019-
/// <summary>Struct for 6dof point information</summary>
1020-
public struct Settings6DOFPoint_V1
1021-
{
1022-
internal static Settings6DOFPoint ConvertToSettingsPoint(Settings6DOFPoint_V1 settingsPoint)
1023-
{
1024-
return new Settings6DOFPoint("", settingsPoint.X, settingsPoint.Y, settingsPoint.Z, settingsPoint.Virtual, settingsPoint.PhysicalId);
1025-
}
1026-
[XmlElement("X")]
1027-
public float X;
1028-
[XmlElement("Y")]
1029-
public float Y;
1030-
[XmlElement("Z")]
1031-
public float Z;
1032-
[XmlElement("PhysicalId")]
1033-
public int PhysicalId;
1034-
[XmlElement("Virtual")]
1035-
public bool Virtual;
1036-
}
1037-
1038-
/// <summary>Settings for 6DOF bodies</summary>
1039-
public struct Settings6DOF_V1
1040-
{
1041-
internal static Settings6DOF ConvertToSettings6DOF(Settings6DOF_V1 settings6DOF)
1042-
{
1043-
return new Settings6DOF(settings6DOF.Name, true, settings6DOF.ColorRGB, 0, 0, 0, new Settings6DOFFilter(), new Settings6DOFMesh(),
1044-
settings6DOF.Points.ConvertAll<Settings6DOFPoint>(Settings6DOFPoint_V1.ConvertToSettingsPoint), new Settings6DOFDataOrigin(), new Settings6DOFDataOrientation());
1045-
}
1046-
/// <summary>Name of 6DOF body</summary>
1047-
[XmlElement("Name")]
1048-
public string Name;
1049-
/// <summary>Color of 6DOF body</summary>
1050-
[XmlElement("RGBColor")]
1051-
public int ColorRGB;
1052-
/// <summary>List of points in 6DOF body</summary>
1053-
[XmlElement("Point")]
1054-
public List<Settings6DOFPoint_V1> Points;
1055-
}
1056-
1057950
/// <summary>Struct for 6dof filter</summary>
1058-
public struct Settings6DOFColor_V2
951+
public struct Settings6DOFColor
1059952
{
1060-
internal Settings6DOFColor_V2(int ColorRGB)
953+
internal Settings6DOFColor(int ColorRGB)
1061954
{
1062955
R = (ColorRGB & 0xff);
1063956
G = ((ColorRGB >> 8) & 0xff);
@@ -1155,28 +1048,8 @@ public struct Settings6DOFDataOrientation
11551048
public float R33;
11561049
}
11571050

1158-
public struct Settings6DOF_V2
1051+
public struct Settings6DOF
11591052
{
1160-
internal Settings6DOF_V2(Settings6DOF settings)
1161-
{
1162-
Name = settings.Name;
1163-
Enabled = settings.Enabled;
1164-
Color = new Settings6DOFColor_V2(settings.ColorRGB);
1165-
MaximumResidual = settings.MaximumResidual;
1166-
MinimumMarkersInBody = settings.MinimumMarkersInBody;
1167-
BoneLengthTolerance = settings.BoneLengthTolerance;
1168-
Filter = settings.Filter;
1169-
Mesh = settings.Mesh;
1170-
Points = settings.Points;
1171-
DataOrigin = settings.DataOrigin;
1172-
DataOrientation = settings.DataOrientation;
1173-
}
1174-
internal static Settings6DOF ConvertToSettings6DOF(Settings6DOF_V2 settings6DOF)
1175-
{
1176-
int colorRGB = (settings6DOF.Color.R & 0xff) | ((settings6DOF.Color.G << 8) & 0xff00) | ((settings6DOF.Color.B << 16) & 0xff0000);
1177-
return new Settings6DOF(settings6DOF.Name, settings6DOF.Enabled, colorRGB, settings6DOF.MaximumResidual, settings6DOF.MinimumMarkersInBody, settings6DOF.BoneLengthTolerance,
1178-
settings6DOF.Filter, settings6DOF.Mesh, settings6DOF.Points, settings6DOF.DataOrigin, settings6DOF.DataOrientation);
1179-
}
11801053
/// <summary>Name of 6DOF body</summary>
11811054
[XmlElement("Name")]
11821055
public string Name;
@@ -1185,7 +1058,7 @@ internal static Settings6DOF ConvertToSettings6DOF(Settings6DOF_V2 settings6DOF)
11851058
public bool Enabled;
11861059
/// <summary>Color of 6DOF body</summary>
11871060
[XmlElement("Color")]
1188-
public Settings6DOFColor_V2 Color;
1061+
public Settings6DOFColor Color;
11891062
/// <summary>Maximum residual of 6DOF body</summary>
11901063
[XmlElement("MaximumResidual")]
11911064
public float MaximumResidual;
@@ -1238,51 +1111,6 @@ public Settings6DOFPoint(string name, float x, float y, float z, bool _virtual,
12381111
public int PhysicalId;
12391112
}
12401113

1241-
public struct Settings6DOF
1242-
{
1243-
internal static Settings6DOF_V2 ConvertToSettings6DOF_V2(Settings6DOF settings)
1244-
{
1245-
return new Settings6DOF_V2(settings);
1246-
}
1247-
public Settings6DOF(string name, bool enabled, int colorRGB, float maxResidual, int minimumMarkersInBody, float boneLengthTolerance, Settings6DOFFilter filter, Settings6DOFMesh mesh,
1248-
List<Settings6DOFPoint> points, Settings6DOFDataOrigin dataOrigin, Settings6DOFDataOrientation dataOrientation)
1249-
{
1250-
Name = name;
1251-
Enabled = enabled;
1252-
ColorRGB = colorRGB;
1253-
MaximumResidual = maxResidual;
1254-
MinimumMarkersInBody = minimumMarkersInBody;
1255-
BoneLengthTolerance = boneLengthTolerance;
1256-
Filter = filter;
1257-
Mesh = mesh;
1258-
Points = points;
1259-
DataOrigin = dataOrigin;
1260-
DataOrientation = dataOrientation;
1261-
}
1262-
/// <summary>Name of 6DOF body</summary>
1263-
public string Name;
1264-
/// <summary>Availability of 6DOF body</summary>
1265-
public bool Enabled;
1266-
/// <summary>Color of 6DOF body</summary>
1267-
public int ColorRGB;
1268-
/// <summary>Maximum residual of 6DOF body</summary>
1269-
public float MaximumResidual;
1270-
/// <summary>Minimum markers in 6DOF body</summary>
1271-
public int MinimumMarkersInBody;
1272-
/// <summary>Bone length tolerance of 6DOF body</summary>
1273-
public float BoneLengthTolerance;
1274-
/// <summary>Filter of 6DOF body</summary>
1275-
public Settings6DOFFilter Filter;
1276-
/// <summary>Mesh of 6DOF body</summary>
1277-
public Settings6DOFMesh Mesh;
1278-
/// <summary>List of points in 6DOF body</summary>
1279-
public List<Settings6DOFPoint> Points;
1280-
/// <summary>Data origin of 6DOF body</summary>
1281-
public Settings6DOFDataOrigin DataOrigin;
1282-
/// <summary>Data orientation of 6DOF body</summary>
1283-
public Settings6DOFDataOrientation DataOrientation;
1284-
}
1285-
12861114
/// <summary>General settings for Analog devices</summary>
12871115
public struct AnalogDevice
12881116
{

RTProtocol.cs

+2-54
Original file line numberDiff line numberDiff line change
@@ -929,38 +929,7 @@ public bool Get3dSettings()
929929
/// <returns>Returns true if settings was retrieved</returns>
930930
public bool Get6dSettings()
931931
{
932-
if (mMajorVersion > 1 || mMinorVersion > 20)
933-
{
934-
Settings6D_V2 settings6D_v2;
935-
if (GetSettings("6D", "The_6D", out settings6D_v2))
936-
{
937-
m6DOFSettings = Settings6D_V2.ConvertToSettings6DOF(settings6D_v2);
938-
return true;
939-
}
940-
}
941-
else
942-
{
943-
Settings6D_V1 settings6D_v1;
944-
if (GetSettings("6D", "The_6D", out settings6D_v1))
945-
{
946-
m6DOFSettings = Settings6D_V1.ConvertToSettings6DOF(settings6D_v1);
947-
return true;
948-
}
949-
}
950-
return false;
951-
}
952-
953-
/// <summary>Get 6DOF settings from XML string</summary>
954-
/// <returns>Returns true if settings was retrieved</returns>
955-
public static bool Get6dSettings(string xmlData, out Settings6D settings, out string error)
956-
{
957-
xmlData = xmlData.Replace("QTM_Body_File_Ver_1.00", "The_6D");
958-
settings = Settings6D_V2.ConvertToSettings6DOF(RTProtocol.ReadSettings<Settings6D_V2>("The_6D", xmlData, out error));
959-
if (settings != null)
960-
{
961-
return true;
962-
}
963-
return false;
932+
return GetSettings("6D", "The_6D", out m6DOFSettings);
964933
}
965934

966935
/// <summary>Get Analog settings from QTM Server</summary>
@@ -1134,28 +1103,7 @@ public bool SetGeneralSettings(SettingsGeneral settings)
11341103

11351104
public bool Set6DSettings(Settings6D settings)
11361105
{
1137-
if (mMajorVersion > 1 || mMinorVersion > 20)
1138-
{
1139-
Settings6D_V2 settings6D_v2 = new Settings6D_V2(settings);
1140-
return SetSettings("6D", "The_6D", settings6D_v2);
1141-
}
1142-
mErrorString = "Can not set 6D settings in protocol versions prior to 1.21";
1143-
return false;
1144-
}
1145-
1146-
public static bool Set6DSettings(Settings6D settings, out string xmlData, out string error)
1147-
{
1148-
Settings6D_V2 settings6D_v2 = new Settings6D_V2(settings);
1149-
1150-
xmlData = RTProtocol.CreateSettingsXml(settings6D_v2, out error);
1151-
if (xmlData != string.Empty)
1152-
{
1153-
xmlData = xmlData.Replace("</QTM_Settings>", "");
1154-
xmlData = xmlData.Replace("<QTM_Settings>", "");
1155-
xmlData = xmlData.Replace("The_6D", "QTM_Body_File_Ver_1.00");
1156-
return true;
1157-
}
1158-
return false;
1106+
return SetSettings("6D", "The_6D", settings);
11591107
}
11601108

11611109
public bool SetForceSettings(SettingsForce settings)

SixDofViewer/SixDofViewer/MainWindow.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ private void Timer_Tick(object sender, EventArgs e)
9494

9595
if (sixDofBodyNameToUse.Length > 0)
9696
{
97-
for (int bodyIndex = 0; bodyIndex < rtProtocol.Settings6DOF.BodyCount; bodyIndex++)
97+
for (int bodyIndex = 0; bodyIndex < rtProtocol.Settings6DOF.Bodies.Count; bodyIndex++)
9898
{
9999
if (string.Equals(rtProtocol.Settings6DOF.Bodies[bodyIndex].Name, sixDofBodyNameToUse, StringComparison.OrdinalIgnoreCase))
100100
{
@@ -105,7 +105,7 @@ private void Timer_Tick(object sender, EventArgs e)
105105
}
106106
else
107107
{
108-
if (rtProtocol.Settings6DOF.BodyCount > 0)
108+
if (rtProtocol.Settings6DOF.Bodies.Count > 0)
109109
{
110110
sixDofBodyNameToUse = rtProtocol.Settings6DOF.Bodies[0].Name;
111111
bodyIndexToUse = 0;

0 commit comments

Comments
 (0)