mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
Data Exchange, GLTF Reader - Fix indices during parsering of arrays (#602)
- Use the loop index (`anIndex` or `i`) instead of always reading `theValue[0]`. - Preserve existing behavior of array allocation and string concatenation. - Updated three loops in `RWGltf_GltfJsonParser.cxx` to reference the correct element.
This commit is contained in:
@@ -276,7 +276,8 @@ bool RWGltf_ExtrasParser::parseArray(const RWGltf_JsonValue& theValue,
|
||||
Handle(TColStd_HArray1OfInteger) anArray = new TColStd_HArray1OfInteger(0, theValue.Size());
|
||||
for (size_t anIndex = 0; anIndex < theValue.Size(); ++anIndex)
|
||||
{
|
||||
anArray->SetValue(static_cast<Standard_Integer>(anIndex), theValue[0].GetInt());
|
||||
anArray->SetValue(static_cast<Standard_Integer>(anIndex),
|
||||
theValue[static_cast<Standard_Integer>(anIndex)].GetInt());
|
||||
}
|
||||
getResult()->SetArrayOfIntegers(theValueName.c_str(), anArray);
|
||||
return true;
|
||||
@@ -287,7 +288,8 @@ bool RWGltf_ExtrasParser::parseArray(const RWGltf_JsonValue& theValue,
|
||||
Handle(TColStd_HArray1OfReal) anArray = new TColStd_HArray1OfReal(0, theValue.Size());
|
||||
for (size_t anIndex = 0; anIndex < theValue.Size(); ++anIndex)
|
||||
{
|
||||
anArray->SetValue(static_cast<Standard_Integer>(anIndex), theValue[0].GetDouble());
|
||||
anArray->SetValue(static_cast<Standard_Integer>(anIndex),
|
||||
theValue[static_cast<Standard_Integer>(anIndex)].GetDouble());
|
||||
}
|
||||
getResult()->SetArrayOfReals(theValueName.c_str(), anArray);
|
||||
return true;
|
||||
@@ -302,7 +304,8 @@ bool RWGltf_ExtrasParser::parseArray(const RWGltf_JsonValue& theValue,
|
||||
const std::string aSeparator = ";";
|
||||
for (size_t i = 0; i < theValue.Size(); ++i)
|
||||
{
|
||||
anArrayString = anArrayString + aSeparator + theValue[0].GetString();
|
||||
anArrayString =
|
||||
anArrayString + aSeparator + theValue[static_cast<Standard_Integer>(i)].GetString();
|
||||
}
|
||||
getResult()->SetString(theValueName.c_str(), anArrayString.c_str());
|
||||
return true;
|
||||
|
Reference in New Issue
Block a user