bool Node::Write(const TypeConfig& /*typeConfig*/, FileWriter& writer) const { writer.WriteNumber(featureValueBuffer.GetType()->GetId()); if (!featureValueBuffer.Write(writer)) { return false; } writer.WriteCoord(coords); return !writer.HasError(); }
bool RouteNode::Write(FileWriter& writer) const { writer.WriteNumber(id); writer.WriteCoord(coord); writer.WriteNumber((uint32_t)objects.size()); writer.WriteNumber((uint32_t)paths.size()); writer.WriteNumber((uint32_t)excludes.size()); Id lastFileOffset=0; for (const auto& object : objects) { FileOffset offset=object.object.GetFileOffset()-lastFileOffset; if (object.object.GetType()==refWay) { offset=offset*2; } else if (object.object.GetType()==refArea) { offset=offset*2+1; } else { assert(false); } writer.WriteNumber(offset); writer.WriteNumber(object.type); writer.Write(object.maxSpeed); writer.Write(object.grade); lastFileOffset=object.object.GetFileOffset(); } if (!paths.empty()) { for (const auto& path : paths) { writer.WriteFileOffset(path.offset); writer.WriteNumber(path.objectIndex); //writer.Write(paths[i].bearing); writer.Write(path.flags); writer.WriteNumber((uint32_t)floor(path.distance*(1000.0*100.0)+0.5)); } } for (const auto& exclude : excludes) { writer.Write(exclude.source); writer.WriteNumber(exclude.targetIndex); } return !writer.HasError(); }
bool RawNode::Write(const TypeConfig& typeConfig, FileWriter& writer) const { writer.WriteNumber(id); writer.WriteTypeId(featureValueBuffer.GetType()->GetNodeId(), typeConfig.GetNodeTypeIdBytes()); if (!featureValueBuffer.GetType()->GetIgnore()) { if (!featureValueBuffer.Write(writer)) { return false; } } writer.WriteCoord(coords); return !writer.HasError(); }
bool Preprocess::Callback::DumpBoundingBox() { progress.SetAction("Generating bounding.dat"); FileWriter writer; if (!writer.Open(AppendFileToDir(parameter.GetDestinationDirectory(), "bounding.dat"))) { progress.Error("Cannot create 'bounding.dat'"); return false; } if (!writer.WriteCoord(minCoord) || !writer.WriteCoord(maxCoord)) { progress.Error("Cannot write to 'bounding.dat'"); return false; } return writer.Close(); }
/** * Writes the data to the given FileWriter * * @throws IOException */ void RawCoord::Write(FileWriter& writer) const { writer.WriteNumber(id); writer.WriteCoord(coord); }
/** * Writes the data to the given FileWriter * * @throws IOException */ void RawCoord::Write(const TypeConfig& /*typeConfig*/, FileWriter& writer) const { writer.WriteNumber(id); writer.WriteCoord(coord); }