#pragma once #include <vector> #include "gp_Pnt.hxx" /* Supported lattice types */ enum LatticeType { SimpleUniform = 0, SimpleNonuniform, GenericUniform, GenericNonuniform, ProjectedCartesian, }; /* Data structs for each type of supported lattice */ struct SimpleLatticeData { size_t nx = 0, ny = 0, nz = 0; double dx = 0.0, dy = 0.0, dz = 0.0; std::vector<double> radii; }; struct GenericLatticeData { double dx = 0.0, dy = 0.0, dz = 0.0; std::vector<double> radii; std::vector<gp_Pnt> positions; }; struct ProjectedLatticeData { size_t nx = 0, ny = 0, nz = 0; double dx = 0.0, dy = 0.0, dz = 0.0; std::vector<double> radii; std::vector<gp_Pnt> positions; };