#pragma once #include using ia_vertex_t = point_t; struct ia_edge_t { std::array vertices{INVALID_INDEX, INVALID_INDEX}; ///< ordered std::array supporting_planes{INVALID_INDEX, INVALID_INDEX}; }; struct ia_face_t { std::vector edges{}; ///< ordered uint32_t supporting_plane{INVALID_INDEX}; uint32_t positive_cell{INVALID_INDEX}; uint32_t negative_cell{INVALID_INDEX}; }; struct ia_cell_t { std::vector faces{}; ///< ordered std::vector signs{}; ///< sign of implicit functions }; struct ia_complex_t { std::vector vertices{}; std::vector edges{}; std::vector faces{}; std::vector cells{}; };