← Back to file list Raw

src/U_JSON.cpp

#include "U_JSON.h"
void JsonToVHACD(const nlohmann::json& _json, VHACD::IVHACD::Parameters& params)
{
params.m_maxConvexHulls = GetFromJson<uint32_t>(_json, "maxConvexHulls", params.m_maxConvexHulls);
params.m_resolution = GetFromJson<uint32_t>(_json, "resolution", params.m_resolution);
params.m_minimumVolumePercentErrorAllowed = GetFromJson<double>(_json, "volumePercentError", params.m_minimumVolumePercentErrorAllowed);
params.m_maxRecursionDepth = GetFromJson<uint32_t>(_json, "maxRecursionDepth", params.m_maxRecursionDepth);
params.m_shrinkWrap = GetFromJson<bool>(_json, "shrinkWrap", params.m_shrinkWrap);
params.m_maxNumVerticesPerCH = GetFromJson<uint32_t>(_json, "maxVerticesPerChunk", params.m_maxNumVerticesPerCH);
params.m_minEdgeLength = GetFromJson<uint32_t>(_json, "minEdgeLength", params.m_minEdgeLength);
params.m_findBestPlane = GetFromJson<bool>(_json, "findBestPlane", params.m_findBestPlane);
if(_json.contains("fillMode"))
{
auto& fillMode = _json["fillMode"];
if(fillMode.is_string())
{
auto sFillMode = fillMode.get<std::string>();
if(sFillMode == "FLOOD_FILL")
{
params.m_fillMode = VHACD::FillMode::FLOOD_FILL;
}
else if(sFillMode == "SURFACE_ONLY")
{
params.m_fillMode = VHACD::FillMode::SURFACE_ONLY;
}
else if(sFillMode == "RAYCAST_FILL")
{
params.m_fillMode = VHACD::FillMode::RAYCAST_FILL;
}
}
}
}