#pragma once #include #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 { stl_vector_mp edges{}; ///< ordered uint32_t supporting_plane{INVALID_INDEX}; uint32_t positive_cell{INVALID_INDEX}; uint32_t negative_cell{INVALID_INDEX}; }; struct ia_cell_t { stl_vector_mp faces{}; ///< ordered stl_vector_mp signs{}; ///< sign of implicit functions }; struct ia_complex_t { stl_vector_mp vertices{}; stl_vector_mp edges{}; stl_vector_mp faces{}; stl_vector_mp cells{}; };