27 | | * Support XY, XYM, XYZ, XYZM efficiently |
| 27 | * Support XY, XYM, XYZ, XYZM |
| 28 | * Coord Seq will need to know dimension of coordinates |
| 29 | * Support efficient input of Point data |
| 30 | * Optimized storage of Point and Multi Point data |
| 31 | |
| 32 | === Ideas |
| 33 | |
| 34 | **Memory-based Coordinate Sequence implementation** |
| 35 | * Class which contains pointer to memory block of coordinates, length, dimension |
| 36 | * Coordinate Sequence becomes a slimmed-down interface with accessors |
| 37 | * Will still provide setters, but use const to prevent unwanted modification |
| 38 | * How will coordinates be accessed? |
| 39 | * By copying into stack-allocated object? This would allow using a Coordinate with XYZM |
| 40 | * By getX, getY and optional getZ, getM? This requires rewriting some GEOS code to avoid copying coordinates |
| 41 | |
| 42 | **Templates** |
| 43 | * problem is that templates would pervade entire code base |
| 44 | * does not allow dynamic adapting to external structures |
| 45 | |
| 46 | == Tasks |
| 47 | |
| 48 | 1. Remove extraneous operations from CoordinateSequence (e.g. removeRepeatedPoints) |
| 49 | 1. Create a MemoryBasedCoordinateSequence (better name?) which allows access to external blocks of memory |
| 50 | 1. Review how Coordinates are accessed - is there a better way? |
| 51 | 1. Review how this can provide XYZM capability? |