ParseBlock* CostConfig::toBlock() const { ParseBlock *ret = resolution::AlgorithmConfig::toBlock(); // Type ret->setProperty("cost_type", objective_type); // Bounds ParseBlock *bounds_block = new ParseBlock; bounds_block->setProperty("upper", functions::printVector(upper_bounds)); bounds_block->setProperty("lower", functions::printVector(lower_bounds)); bounds_block->setProperty("speed", functions::printVector(speed_bounds)); ret->setBlock("bounds", bounds_block); // Cost parameters ParseBlock *cost_block = new ParseBlock; cost_block -> setProperty("distance", numberToString(distance_cost)); cost_block -> setProperty("collision_penalty", numberToString(collision_penalty)); ret->setBlock("cost", cost_block); // Sampling parameters ret->setProperty("population", numberToString(population)); ret->setProperty("generations", numberToString(generations)); ret->setProperty("max_time", numberToString(max_time)); ret->setProperty("waypoint_dimension", numberToString(waypoint_dimension)); ret->setProperty("intermediate_waypoints", numberToString(intermediate_waypoints)); ret->setProperty("altitude_levels", boolToString(altitude_levels)); ret->setProperty("altitude_step", numberToString(altitude_step)); ret->setProperty("export_evolution", boolToString(export_evolution)); ret->setProperty("evolution_filename", evolution_file); ret->setProperty("time_exploration", boolToString(time_exploration)); switch (time_exploration_type) { case INDEPENDENT_VELOCITY: ret->setProperty("time_exploration_type", numberToString(INDEPENDENT_VELOCITY)); break; default: ret->setProperty("time_exploration_type", numberToString(MANTAIN_ETA)); } ret->setProperty("speed_factor", numberToString(speed_factor)); // MS-PSO stuff ret->setProperty("manoeuvre_selection", boolToString(manoeuvre_selection)); ret->setProperty("min_z", numberToString(min_z)); ret->setProperty("max_z", numberToString(max_z)); ret->setProperty("max_course", numberToString(max_course)); return ret; }
ParseBlock *ThermalModelSimple::exportThermalData() const { ParseBlock* block = new ParseBlock; for (unsigned int i = 0; i < updraft_vector.size(); i++) { block->setBlock("updraft", updraft_vector.at(i).toBlock()); } return block; }