0023328: Importing VRML files with "scaleOrientation" not possible
authorakz <akz@opencascade.com>
Thu, 29 Jan 2015 11:23:35 +0000 (14:23 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 29 Jan 2015 11:24:31 +0000 (14:24 +0300)
If-else blocks "scale" and "scaleOrientation" was swapped. Now the comparing and interpretation of these key-words is correct.

Added test case bugs/xde/bug23328

src/VrmlData/VrmlData_Group.cxx
tests/bugs/xde/bug23328 [new file with mode: 0644]

index ca3990e..86be019 100644 (file)
@@ -276,15 +276,7 @@ VrmlData_ErrorStatus VrmlData_Group::Read (VrmlData_InBuffer& theBuffer)
         aStatus = VrmlData_VrmlFormatError;
         break;
       }
-    else if (VRMLDATA_LCOMPARE (theBuffer.LinePtr, "scale")) {
-      if (myIsTransform)
-        aStatus = Scene().ReadXYZ (theBuffer, aScale,
-                                   Standard_False, Standard_True);
-      else {
-        aStatus = VrmlData_VrmlFormatError;
-        break;
-      }
-    } else if (VRMLDATA_LCOMPARE (theBuffer.LinePtr, "scaleOrientation"))
+    else if (VRMLDATA_LCOMPARE (theBuffer.LinePtr, "scaleOrientation"))
       if (myIsTransform) {
         if (OK(aStatus, Scene().ReadXYZ (theBuffer, aScaleAxis,
                                          Standard_False, Standard_False)))
@@ -294,6 +286,14 @@ VrmlData_ErrorStatus VrmlData_Group::Read (VrmlData_InBuffer& theBuffer)
         aStatus = VrmlData_VrmlFormatError;
         break;
       }
+    else if (VRMLDATA_LCOMPARE (theBuffer.LinePtr, "scale"))
+      if (myIsTransform)
+        aStatus = Scene().ReadXYZ (theBuffer, aScale,
+                                   Standard_False, Standard_True);
+      else {
+        aStatus = VrmlData_VrmlFormatError;
+        break;
+      }
     else if (VRMLDATA_LCOMPARE (theBuffer.LinePtr, "translation"))
       if (myIsTransform)
         aStatus = Scene().ReadXYZ (theBuffer, aTrans,
diff --git a/tests/bugs/xde/bug23328 b/tests/bugs/xde/bug23328
new file mode 100644 (file)
index 0000000..3d59707
--- /dev/null
@@ -0,0 +1,17 @@
+puts "=========="
+puts "OCC23328"
+puts "=========="
+puts ""
+#######################################################################################
+# Importing VRML files with "scaleOrientation" not possible
+#######################################################################################
+
+set aFile [locate_data_file bug23328_occ23328.vrml]
+set aLog [loadvrml test ${aFile}]
+set aLength [string length ${aLog}]
+
+if { ${aLength} == 0 } {
+  puts "OK: Importing VRML files with scaleOrientation is possible"
+} else {
+  puts "Error: Importing VRML files with scaleOrientation is not possible"
+}