Skip to content

Commit a06dae0

Browse files
committedSep 19, 2023
fixed float parsing for different globalization styles
1 parent 6716bd0 commit a06dae0

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed
 

‎unity/Assets/URDFLoader/URDFLoader.cs

+11-10
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ ROS URDf
2424
using System.Collections.Generic;
2525
using System.Xml;
2626
using System.IO;
27+
using System.Globalization;
2728

2829
using URDFJoint = URDFRobot.URDFJoint;
2930
using URDFLink = URDFRobot.URDFLink;
@@ -309,7 +310,7 @@ public struct Options {
309310
primitiveGameObject = GameObject.CreatePrimitive(PrimitiveType.Sphere);
310311
primitiveTransform = primitiveGameObject.transform;
311312

312-
float sphereRadius = float.Parse(primitiveNode.Attributes["radius"].Value);
313+
float sphereRadius = float.Parse(primitiveNode.Attributes["radius"].Value, CultureInfo.InvariantCulture);
313314
primitiveTransform.localScale = Vector3.one * sphereRadius * 2;
314315
break;
315316

@@ -323,8 +324,8 @@ public struct Options {
323324
GameObject cylinderPrimitive = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
324325
cylinderPrimitive.transform.parent = primitiveTransform;
325326

326-
float length = float.Parse(primitiveNode.Attributes["length"].Value);
327-
float radius = float.Parse(primitiveNode.Attributes["radius"].Value);
327+
float length = float.Parse(primitiveNode.Attributes["length"].Value, CultureInfo.InvariantCulture);
328+
float radius = float.Parse(primitiveNode.Attributes["radius"].Value, CultureInfo.InvariantCulture);
328329
primitiveTransform.localScale = new Vector3(radius * 2, length / 2, radius * 2);
329330
break;
330331

@@ -640,9 +641,9 @@ public static Vector3 TupleToVector3(string str) {
640641

641642
try {
642643

643-
result.x = float.Parse(numbers[0]);
644-
result.y = float.Parse(numbers[1]);
645-
result.z = float.Parse(numbers[2]);
644+
result.x = float.Parse(numbers[0], CultureInfo.InvariantCulture);
645+
result.y = float.Parse(numbers[1], CultureInfo.InvariantCulture);
646+
result.z = float.Parse(numbers[2], CultureInfo.InvariantCulture);
646647

647648
} catch (Exception e) {
648649

@@ -667,10 +668,10 @@ public static Color TupleToColor(string str) {
667668
if (numbers.Length == 4) {
668669

669670
try {
670-
result.r = float.Parse(numbers[0]);
671-
result.g = float.Parse(numbers[1]);
672-
result.b = float.Parse(numbers[2]);
673-
result.a = float.Parse(numbers[3]);
671+
result.r = float.Parse(numbers[0], CultureInfo.InvariantCulture);
672+
result.g = float.Parse(numbers[1], CultureInfo.InvariantCulture);
673+
result.b = float.Parse(numbers[2], CultureInfo.InvariantCulture);
674+
result.a = float.Parse(numbers[3], CultureInfo.InvariantCulture);
674675

675676
} catch (Exception e) {
676677

0 commit comments

Comments
 (0)
Please sign in to comment.