/***********************************************************************
 *  Method: DistanceDistributionAnalysis::deserialiseAdditional
 *  Params: const picojson::value &v
 * Returns: bool
 * Effects: 
 ***********************************************************************/
bool
DistanceDistributionAnalysis::deserialiseAdditional(const picojson::value &v)
{
	picojson::object vd;
	if (!jat(vd, v, "distances")) return false;
	float provisionalMaxDistance;
	if (!jat(provisionalMaxDistance, v, "max_distance")) return false;
	std::map<int, std::list<float>> provisionalDistances;
	for (const auto& indexDists : vd)
	{
		int provisionalIndex = std::stoi(indexDists.first);
		if (provisionalDistances.find(provisionalIndex) != provisionalDistances.end()) return false;

		picojson::array va;
		if (!jget(va, indexDists.second)) return false;
		for (const auto& vf : va)
		{
			float dist;
			if (!jget(dist, vf)) return false;
			provisionalDistances[provisionalIndex].push_back(dist);
		}
	}

	mMaxDistance = provisionalMaxDistance;
	distances = provisionalDistances;
	return true;
}
示例#2
0
int _stdcall JGetB(J jt, C* name, VARIANT* v)
{
	return jget(jt, name, v, 1); // do bstrs
}
示例#3
0
int _stdcall JGet(J jt, C* name, VARIANT* v)
{
	return jget(jt, name, v, 0); // no bstrs
}