@type plain_point_2d() :: {integer(), integer()}
@type plain_point_3d() :: {integer(), integer(), integer()}