32 lines
952 B
C++
32 lines
952 B
C++
#include "DatasetDimension.hpp"
|
||
|
||
namespace geopro::app {
|
||
|
||
namespace {
|
||
// 与 LocalSample3dRepository::dimensionOf 同一映射(spec §6.1)。
|
||
enum class Dim { D3, D2, Analysis, Other };
|
||
Dim dimOf(const std::string& c) {
|
||
if (c == "dd_voxel" || c == "dd_Structual3D" || c == "dd_Property3D" ||
|
||
c == "dd_section" || c == "dd_inversion_data")
|
||
return Dim::D3;
|
||
if (c == "dd_slice") return Dim::Analysis;
|
||
if (c == "dd_trajectory_data") return Dim::D2;
|
||
return Dim::Other;
|
||
}
|
||
} // namespace
|
||
|
||
DimBuckets splitByDimension(const std::vector<geopro::data::DsRow>& rows) {
|
||
DimBuckets b;
|
||
for (const auto& r : rows) {
|
||
switch (dimOf(r.ddCode)) {
|
||
case Dim::D3: b.dim3D.push_back(r); break;
|
||
case Dim::D2: b.dim2D.push_back(r); break;
|
||
case Dim::Analysis: b.analysis.push_back(r); break;
|
||
case Dim::Other: break;
|
||
}
|
||
}
|
||
return b;
|
||
}
|
||
|
||
} // namespace geopro::app
|