#pragma once #include "layereddataz.h" class AVISOData: public LayeredDataZ { enum Type { TYPE_UNKNOWN, TYPE_DT, TYPE_NRT, TYPE_EDT, TYPE_ENRT }; Type type = TYPE_UNKNOWN; public: static constexpr const char* name = "AVISO"; AVISOData() = default; MString DataTitle() const { switch(type) { case(TYPE_DT): return "AVISO Delayed time velocity field"; case(TYPE_NRT): return "AVISO Near-real time velocity field"; case(TYPE_EDT): return "AVISO+Eckman Delayed time velocity field"; case(TYPE_ENRT): return "AVISO+Eckman Near-real time velocity field"; default: return "No title"; } } // TODO: RetVal MString Open(const CLArgs& args) { MString dataset = args.contains("dataset") ? args.at("dataset") : "DT"; GPL.UsePrefix("AVISO"); if(dataset == "DT") type = TYPE_DT; else if(dataset == "NRT") type = TYPE_NRT; else if(dataset == "EckmanDT") type = TYPE_EDT; else if(dataset == "EckmanNRT") type = TYPE_ENRT; else return "Unknown dataset: " + dataset; SetTitle(DataTitle()); return LayeredDataZ::Open(dataset); } };