= GEOS RFC 8: Improve Coordinate Sequence API (WIP) ||RFC 7: ||Improve CoordinateSequence API|| ||Author: ||Martin Davis || ||Contact:||martin-dot-davis at crunchydata.com || ||Status: || || This document proposes to modify the Coordinate Sequence API to improve performance and adaptiveness. These improvements are (likely to be) breaking changes to the C++ API. These may require extensions to the C API to be externally available, but should not result in breaking the current C API. === Background The Coordinate Sequence API as it stands imposes a large cost on clients. * It requires copying coordinate list structures one or more times * It imposes the cost of a Z ordinate even if not required by the client The API also has some functional limitations: * it does not support M values === Goals * Allow using external coordinate list structures with no copying (except as needed by GEOS algorithms, e.g. removing repeated points) * Prevent mutating of external coordinate structures * Support XY, XYM, XYZ, XYZM efficiently