0032078: Visualization, Poly_Triangulation - add cached bounding box.
[occt.git] / src / RWGltf / RWGltf_GltfJsonParser.cxx
index 60bd3bc..8ef3797 100644 (file)
@@ -1617,8 +1617,16 @@ bool RWGltf_GltfJsonParser::gltfParseAccessor (const Handle(RWGltf_GltfLatePrimi
             isValidMinMax = false;
             break;
           }
-          aMinPnt.SetCoord (anIter + 1, aMinVal.GetDouble());
-          aMinPnt.SetCoord (anIter + 1, aMaxVal.GetDouble());
+          double aMinDVal = aMinVal.GetDouble();
+          double aMaxDVal = aMaxVal.GetDouble();
+          if (aMinDVal > aMaxDVal)
+          {
+            reportGltfWarning ("Accessor '" + theName + "' defines invalid min/max value.");
+            isValidMinMax = false;
+            break;
+          }
+          aMinPnt.SetCoord (anIter + 1, aMinDVal);
+          aMaxPnt.SetCoord (anIter + 1, aMaxDVal);
         }
         if (isValidMinMax)
         {
@@ -1629,7 +1637,7 @@ bool RWGltf_GltfJsonParser::gltfParseAccessor (const Handle(RWGltf_GltfLatePrimi
           aBox.Add (aMinPnt);
           aBox.Add (aMaxPnt);
 
-          theMeshData->SetBoundingBox (aBox);
+          theMeshData->SetCachedMinMax (aBox);
         }
       }
     }