This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 8d053b8eb6708b66a610b696607585416069d824
Author: jsorel <[email protected]>
AuthorDate: Fri Sep 4 16:32:38 2026 +0200

    feat(Geometry): fuze SIS getPoints() and ISO getDataPoints() as 
getDataPoints()
---
 .../main/org/apache/sis/geometries/Curve.java      | 26 ++++++++++++++---
 .../org/apache/sis/geometries/CurvePolygon.java    |  4 +--
 .../org/apache/sis/geometries/GeometryVisitor.java |  4 +--
 .../main/org/apache/sis/geometries/LineString.java | 25 ++++++----------
 .../main/org/apache/sis/geometries/LinearRing.java |  2 +-
 .../org/apache/sis/geometries/MultiLineString.java |  2 +-
 .../main/org/apache/sis/geometries/MultiPoint.java |  2 +-
 .../org/apache/sis/geometries/MultiPolygon.java    |  4 +--
 .../main/org/apache/sis/geometries/Point.java      |  1 -
 .../main/org/apache/sis/geometries/Polygon.java    |  4 +--
 .../org/apache/sis/geometries/PreparedTIN.java     |  2 +-
 .../main/org/apache/sis/geometries/TIN.java        |  2 +-
 .../main/org/apache/sis/geometries/Triangle.java   | 12 ++++----
 .../main/org/apache/sis/geometries/Wrapper.java    |  6 ++--
 .../apache/sis/geometries/adapter/JTSAdapter.java  |  6 ++--
 .../geometries/adapter/PathIteratorAdapter.java    |  4 +--
 .../main/org/apache/sis/geometries/conics/Arc.java |  3 +-
 .../sis/geometries/conics/CircularString.java      | 34 ++++++++++------------
 .../org/apache/sis/geometries/conics/Conic.java    |  9 +++---
 .../apache/sis/geometries/curve/ArcByBulge.java    | 26 ++++-------------
 .../sis/geometries/curve/ArcByCenterPoint.java     |  3 +-
 .../internal/shared/DefaultArcByBulge.java         |  2 +-
 .../internal/shared/DefaultCircularString.java     |  2 +-
 .../internal/shared/DefaultCompoundCurve.java      |  3 +-
 .../internal/shared/DefaultLineString.java         |  2 +-
 .../internal/shared/DefaultMultiPoint.java         |  2 +-
 .../internal/shared/DefaultReversedCurve.java      |  3 +-
 .../internal/shared/DefaultTriangle.java           |  2 +-
 .../apache/sis/geometries/mesh/MeshPrimitive.java  |  8 ++---
 .../geometries/mesh/MeshPrimitiveComparator.java   | 24 +++++++--------
 .../sis/geometries/mesh/MeshPrimitiveVisitor.java  |  4 +--
 .../apache/sis/geometries/operation/Contains.java  |  4 +--
 .../sis/geometries/operation/Intersection.java     |  4 +--
 .../org/apache/sis/geometries/operation/To3D.java  |  2 +-
 .../sis/geometries/operation/ToPrimitive.java      |  6 ++--
 .../apache/sis/geometries/operation/Transform.java |  4 +--
 .../simplify/greedyinsert/TinDistance.java         |  2 +-
 .../operation/spatialanalysis2d/ISOBand.java       |  2 +-
 .../operation/spatialanalysis2d/ISOLine.java       |  2 +-
 .../operation/triangulate/EarClipping.java         |  4 +--
 .../triangulate/delaunay/OrientedEdge.java         |  2 +-
 .../main/org/apache/sis/gml/GML2Writer.java        |  4 +--
 .../main/org/apache/sis/gml/GML3Writer.java        |  8 ++---
 .../sis/geometries/adapter/ShapeConverterTest.java |  2 +-
 .../sis/geometries/operation/ToPrimitiveTest.java  |  4 +--
 .../test/org/apache/sis/gml/GML3ReaderTest.java    | 16 +++++-----
 .../test/org/apache/sis/gml/GeometryAssert.java    |  2 +-
 .../sis/referencing/dggs/AbstractDggrsTest.java    |  2 +-
 48 files changed, 150 insertions(+), 153 deletions(-)

diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Curve.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Curve.java
index 44c4a81597..0574932512 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Curve.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Curve.java
@@ -35,6 +35,22 @@ import org.apache.sis.geometries.math.Vector;
 @UML(identifier="Curve", specification=ISO_19107) // section 6.4.18
 public interface Curve extends Orientable {
 
+    /**
+     * Contains a list of points on the curve.
+     * The first point is the curve starting point.
+     * The last point is the curve last point.
+     *
+     * <p>
+     * Difference with ISO-19107 : The type has been changed from
+     * a list of direct positions to a PointSequence.
+     * This change allows to accomodate addition attributes like in GLTF or 
GPU models.
+     * </p>
+     *
+     * @return curve data points.
+     */
+    @UML(identifier="dataPoint", specification=ISO_19107) // section 6.4.18.3
+    PointSequence getDataPoints();
+
     /**
      * The length of this Curve in its associated spatial reference.
      *
@@ -54,7 +70,9 @@ public interface Curve extends Orientable {
      */
     @UML(identifier="startPoint", specification=ISO_19107) // section 6.4.18.6
     default Point getStartPoint() {
-        throw new UnsupportedOperationException();
+        final PointSequence points = getDataPoints();
+        if (points.isEmpty()) return null;
+        return points.getPoint(0);
     }
 
     /**
@@ -65,7 +83,9 @@ public interface Curve extends Orientable {
      */
     @UML(identifier="endPoint", specification=ISO_19107) // section 6.4.18.7
     default Point getEndPoint() {
-        throw new UnsupportedOperationException();
+        final PointSequence points = getDataPoints();
+        if (points.isEmpty()) return null;
+        return points.getPoint(points.size()-1);
     }
 
     /**
@@ -93,8 +113,6 @@ public interface Curve extends Orientable {
     @UML(identifier="controlPoint", specification=ISO_19107) // section 
6.4.18.2
     Array getControlPoints();
 
-    @UML(identifier="dataPoint", specification=ISO_19107) // section 6.4.18.3
-    Array getDataPoints();
 
     @UML(identifier="knot", specification=ISO_19107) // section 6.4.18.4
     default List<Knot> getKnots() {
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/CurvePolygon.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/CurvePolygon.java
index 41c79e8d23..b71d06da2a 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/CurvePolygon.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/CurvePolygon.java
@@ -94,12 +94,12 @@ public interface CurvePolygon extends Surface {
     @Override
     default String asText() {
         final StringBuilder sb = new StringBuilder("POLYGON ((");
-        AbstractGeometry.toText(sb,  getExteriorRing().asLine(null, 
null).getPoints());
+        AbstractGeometry.toText(sb,  getExteriorRing().asLine(null, 
null).getDataPoints());
         sb.append(')');
         for (int i = 0, n = getNumInteriorRing(); i < n; i++) {
             if (i != 0) sb.append(',');
             sb.append('(');
-            AbstractGeometry.toText(sb, getInteriorRingN(i).asLine(null, 
null).getPoints());
+            AbstractGeometry.toText(sb, getInteriorRingN(i).asLine(null, 
null).getDataPoints());
             sb.append(')');
         }
         sb.append(')');
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/GeometryVisitor.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/GeometryVisitor.java
index 6ea87869e8..4e2bccf616 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/GeometryVisitor.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/GeometryVisitor.java
@@ -56,7 +56,7 @@ public class GeometryVisitor {
     }
 
     public void visit(LineString geometry) {
-        visit(geometry.getPoints());
+        visit(geometry.getDataPoints());
     }
 
     public void visit(Polygon geometry) {
@@ -69,7 +69,7 @@ public class GeometryVisitor {
     }
 
     public void visit(LinearRing geometry) {
-        visit(geometry.getPoints());
+        visit(geometry.getDataPoints());
     }
 
     public void visit(TIN geometry) {
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/LineString.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/LineString.java
index 86e94436ec..ef1abdadd5 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/LineString.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/LineString.java
@@ -29,7 +29,7 @@ import org.apache.sis.geometries.math.Array;
  * A LineString is a Curve with linear interpolation between Points.
  * Each consecutive pair of Points defines a Line segment.
  *
- * A Line is a LineString with exactly 2 Points.
+ * Note : ISO-19107 name this class a Line, even if it has more then 2 points.
  *
  * @author Johann Sorel (Geomatys)
  */
@@ -49,8 +49,6 @@ public interface LineString extends Curve {
         return CurveInterpolation.LINEAR;
     }
 
-    PointSequence getPoints();
-
     @Override
     public default LineString asLine(Length spacing, Length offset) {
         return this;
@@ -63,7 +61,7 @@ public interface LineString extends Curve {
      * @return number of Points in this LineString.
      */
     default int getNumPoints() {
-        return getPoints().size();
+        return getDataPoints().size();
     }
 
     /**
@@ -73,12 +71,7 @@ public interface LineString extends Curve {
      * @return the specified Point N in this LineString.
      */
     default Point getPointN(int n) {
-        return getPoints().getPoint(n);
-    }
-
-    @Override
-    public default Array getDataPoints() {
-        return getPoints().getAttributeArray(AttributesType.ATT_POSITION);
+        return getDataPoints().getPoint(n);
     }
 
     /**
@@ -91,17 +84,17 @@ public interface LineString extends Curve {
 
     @Override
     default CoordinateReferenceSystem getCoordinateReferenceSystem() {
-        return getPoints().getCoordinateReferenceSystem();
+        return getDataPoints().getCoordinateReferenceSystem();
     }
 
     @Override
     default void setCoordinateReferenceSystem(CoordinateReferenceSystem cs) 
throws IllegalArgumentException {
-        getPoints().setCoordinateReferenceSystem(cs);
+        getDataPoints().setCoordinateReferenceSystem(cs);
     }
 
     @Override
     public default AttributesType getAttributesType() {
-        return getPoints().getAttributesType();
+        return getDataPoints().getAttributesType();
     }
 
     /**
@@ -110,12 +103,12 @@ public interface LineString extends Curve {
      * @return true if lineString is a line.
      */
     default boolean isLine() {
-        return getPoints().size() == 2;
+        return getDataPoints().size() == 2;
     }
 
     @Override
     default Envelope getEnvelope() {
-        PointSequence points = getPoints();
+        PointSequence points = getDataPoints();
         if (points.isEmpty()) {
             return null;
         }
@@ -125,7 +118,7 @@ public interface LineString extends Curve {
     @Override
     default String asText() {
         final StringBuilder sb = new StringBuilder("LINESTRING (");
-        final PointSequence points = getPoints();
+        final PointSequence points = getDataPoints();
         AbstractGeometry.toText(sb, points);
         sb.append(')');
         return sb.toString();
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/LinearRing.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/LinearRing.java
index 10e83870b9..3e281f2087 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/LinearRing.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/LinearRing.java
@@ -37,7 +37,7 @@ public interface LinearRing extends LineString {
     @Override
     default String asText() {
         final StringBuilder sb = new StringBuilder("LINEARRING (");
-        final PointSequence points = getPoints();
+        final PointSequence points = getDataPoints();
         for (int i = 0, n = points.size() ; i < n; i++) {
             final Tuple pt = points.getPosition(i);
             if (i > 0) sb.append(',');
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/MultiLineString.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/MultiLineString.java
index 5785a74814..474f9878bb 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/MultiLineString.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/MultiLineString.java
@@ -41,7 +41,7 @@ public interface MultiLineString extends 
MultiCurve<LineString> {
             if (k > 0) sb.append(',');
             sb.append('(');
             final LineString line = getGeometryN(k);
-            final PointSequence points = line.getPoints();
+            final PointSequence points = line.getDataPoints();
             for (int i = 0, n = points.size() ; i < n; i++) {
                 final Tuple pos = points.getPosition(i);
                 if (i > 0) sb.append(',');
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/MultiPoint.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/MultiPoint.java
index d6c032f4a3..9e226fb898 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/MultiPoint.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/MultiPoint.java
@@ -43,7 +43,7 @@ public interface MultiPoint<T extends Point> extends 
GeometryCollection<T>{
     /**
      * View this multipoint as a point sequence
      */
-    default PointSequence asPointSequence() {
+    default PointSequence asDataPoints() {
         return new PointSequence() {
             @Override
             public CoordinateReferenceSystem getCoordinateReferenceSystem() {
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/MultiPolygon.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/MultiPolygon.java
index 981644e8e6..e993092a43 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/MultiPolygon.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/MultiPolygon.java
@@ -50,12 +50,12 @@ public interface MultiPolygon extends MultiSurface<Polygon> 
{
             if (k > 0) sb.append(',');
             final Polygon polygon = getGeometryN(k);
             sb.append("((");
-            AbstractGeometry.toText(sb,  
polygon.getExteriorRing().asLine(null, null).getPoints());
+            AbstractGeometry.toText(sb,  
polygon.getExteriorRing().asLine(null, null).getDataPoints());
             sb.append(')');
             for (int i = 0, n = polygon.getNumInteriorRing(); i < n; i++) {
                 if (i != 0) sb.append(',');
                 sb.append('(');
-                AbstractGeometry.toText(sb, 
polygon.getInteriorRingN(i).getPoints());
+                AbstractGeometry.toText(sb, 
polygon.getInteriorRingN(i).getDataPoints());
                 sb.append(')');
             }
             sb.append(')');
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Point.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Point.java
index 86c47a91f2..d177155b2e 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Point.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Point.java
@@ -24,7 +24,6 @@ import org.opengis.referencing.crs.CoordinateReferenceSystem;
 import org.apache.sis.geometries.internal.shared.AbstractGeometry;
 import org.apache.sis.geometries.math.Tuple;
 import org.apache.sis.geometries.math.Vector;
-import org.apache.sis.geometry.GeneralEnvelope;
 
 
 /**
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Polygon.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Polygon.java
index e3df35b3bc..530221cf5f 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Polygon.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Polygon.java
@@ -101,12 +101,12 @@ public interface Polygon extends Surface {
     @Override
     default String asText() {
         final StringBuilder sb = new StringBuilder("POLYGON ((");
-        AbstractGeometry.toText(sb,  getExteriorRing().asLine(null, 
null).getPoints());
+        AbstractGeometry.toText(sb,  getExteriorRing().asLine(null, 
null).getDataPoints());
         sb.append(')');
         for (int i = 0, n = getNumInteriorRing(); i < n; i++) {
             if (i != 0) sb.append(',');
             sb.append('(');
-            AbstractGeometry.toText(sb, getInteriorRingN(i).getPoints());
+            AbstractGeometry.toText(sb, getInteriorRingN(i).getDataPoints());
             sb.append(')');
         }
         sb.append(')');
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/PreparedTIN.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/PreparedTIN.java
index f213314df9..d1b1c7f33b 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/PreparedTIN.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/PreparedTIN.java
@@ -341,7 +341,7 @@ public interface PreparedTIN extends TIN {
                 final Iterator<Triangle> iterator = triangles.iterator();
                 while (iterator.hasNext()) {
                     final Triangle triangle = iterator.next();
-                    final PointSequence points = 
triangle.getExteriorRing().getPoints();
+                    final PointSequence points = 
triangle.getExteriorRing().getDataPoints();
                     final Tuple a = points.getPosition(0);
                     final Tuple b = points.getPosition(1);
                     final Tuple c = points.getPosition(2);
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/TIN.java 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/TIN.java
index 0a550589aa..c70e581062 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/TIN.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/TIN.java
@@ -51,7 +51,7 @@ public interface TIN extends TriangulatedSurface<Triangle> {
                 sb.append(',');
             }
             sb.append("((");
-            final PointSequence points = 
triangle.getExteriorRing().getPoints();
+            final PointSequence points = 
triangle.getExteriorRing().getDataPoints();
             corner = points.getPosition(0);
             AbstractGeometry.toText(sb, corner);
 
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Triangle.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Triangle.java
index 3647c9cf80..4134b0891d 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Triangle.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Triangle.java
@@ -72,7 +72,7 @@ public interface Triangle extends Polygon {
 
     @Override
     default Envelope getEnvelope() {
-        final PointSequence exterior = getExteriorRing().getPoints();
+        final PointSequence exterior = getExteriorRing().getDataPoints();
         final Tuple<?> first = exterior.getPosition(0);
         final BBox env = new BBox(first, first);
         env.add(exterior.getPosition(1));
@@ -83,7 +83,7 @@ public interface Triangle extends Polygon {
 
     @Override
     default double getArea() {
-        final PointSequence points = getExteriorRing().getPoints();
+        final PointSequence points = getExteriorRing().getDataPoints();
         final Tuple<?> a = points.getPosition(0);
         final Tuple<?> b = points.getPosition(1);
         final Tuple<?> c = points.getPosition(2);
@@ -101,7 +101,7 @@ public interface Triangle extends Polygon {
      * @return point distance to triangle
      */
     default double distance(Tuple pt) {
-        final PointSequence exterior = getExteriorRing().getPoints();
+        final PointSequence exterior = getExteriorRing().getDataPoints();
         final Tuple<?> p0 = exterior.getPosition(0);
         final Tuple<?> p1 = exterior.getPosition(1);
         final Tuple<?> p2 = exterior.getPosition(2);
@@ -214,7 +214,7 @@ public interface Triangle extends Polygon {
 
     @Override
     default String asText() {
-        final PointSequence exterior = getExteriorRing().getPoints();
+        final PointSequence exterior = getExteriorRing().getDataPoints();
         final StringBuilder sb = new StringBuilder("TRIANGLE ((");
         AbstractGeometry.toText(sb, exterior.getPosition(0));
         sb.append(',');
@@ -265,7 +265,7 @@ public interface Triangle extends Polygon {
 
         @Override
         public Tuple getPosition() {
-            final PointSequence points = 
triangle.getExteriorRing().getPoints();
+            final PointSequence points = 
triangle.getExteriorRing().getDataPoints();
             switch (cornerIdx) {
                 case -1 :
                     return interpolate(
@@ -286,7 +286,7 @@ public interface Triangle extends Polygon {
          */
         @Override
         public Tuple getAttribute(String name) {
-            final PointSequence points = 
triangle.getExteriorRing().getPoints();
+            final PointSequence points = 
triangle.getExteriorRing().getDataPoints();
             switch (cornerIdx) {
                 case -1 :
                     return interpolate(
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Wrapper.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Wrapper.java
index 73bde45a69..3b73d4f1d4 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Wrapper.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Wrapper.java
@@ -337,9 +337,9 @@ public final class Wrapper extends GeometryWrapper {
         if (geometry instanceof Point cdt){
             jts = gf.createPoint(new JTSSequence(cdt.asPointSequence()));
         } else if (geometry instanceof LinearRing cdt) {
-            jts = gf.createLinearRing(new JTSSequence(cdt.getPoints()));
+            jts = gf.createLinearRing(new JTSSequence(cdt.getDataPoints()));
         } else if (geometry instanceof LineString cdt) {
-            jts = gf.createLineString(new JTSSequence(cdt.getPoints()));
+            jts = gf.createLineString(new JTSSequence(cdt.getDataPoints()));
         } else if (geometry instanceof Polygon cdt) {
             final org.locationtech.jts.geom.LinearRing exterior = 
(org.locationtech.jts.geom.LinearRing) asJTS(cdt.getExteriorRing(), gf);
             final org.locationtech.jts.geom.LinearRing[] inners = new 
org.locationtech.jts.geom.LinearRing[cdt.getNumInteriorRing()];
@@ -348,7 +348,7 @@ public final class Wrapper extends GeometryWrapper {
             }
             jts = gf.createPolygon(exterior, inners);
         } else if (geometry instanceof MultiPoint<?> cdt) {
-            jts = gf.createMultiPoint(new JTSSequence(cdt.asPointSequence()));
+            jts = gf.createMultiPoint(new JTSSequence(cdt.asDataPoints()));
         } else if (geometry instanceof MultiLineString cdt) {
             final org.locationtech.jts.geom.LineString[] children = new 
org.locationtech.jts.geom.LineString[cdt.getNumGeometries()];
             for (int i = 0; i < children.length; i++) {
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/adapter/JTSAdapter.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/adapter/JTSAdapter.java
index bed13ebfc0..eaf95556e9 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/adapter/JTSAdapter.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/adapter/JTSAdapter.java
@@ -122,13 +122,13 @@ public final class JTSAdapter {
             final CoordinateSequence cs = 
toCoordinateSequence(cdt.asPointSequence(), copy, gf);
             jts = new org.locationtech.jts.geom.Point(cs, gf);
         } else if (geom instanceof MultiPoint cdt) {
-            final CoordinateSequence cs = 
toCoordinateSequence(cdt.asPointSequence(), copy, gf);
+            final CoordinateSequence cs = 
toCoordinateSequence(cdt.asDataPoints(), copy, gf);
             jts = gf.createMultiPoint(cs);
         } else if (geom instanceof LinearRing cdt) {
-            final CoordinateSequence cs = 
toCoordinateSequence(cdt.getPoints(), copy, gf);
+            final CoordinateSequence cs = 
toCoordinateSequence(cdt.getDataPoints(), copy, gf);
             jts = new org.locationtech.jts.geom.LinearRing(cs, gf);
         } else if (geom instanceof LineString cdt) {
-            final CoordinateSequence cs = 
toCoordinateSequence(cdt.getPoints(), copy, gf);
+            final CoordinateSequence cs = 
toCoordinateSequence(cdt.getDataPoints(), copy, gf);
             jts = new org.locationtech.jts.geom.LineString(cs, gf);
         } else if (geom instanceof MultiLineString cdt) {
             final org.locationtech.jts.geom.LineString[] children = new 
org.locationtech.jts.geom.LineString[cdt.getNumGeometries()];
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/adapter/PathIteratorAdapter.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/adapter/PathIteratorAdapter.java
index 4291943544..93fb55d4c7 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/adapter/PathIteratorAdapter.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/adapter/PathIteratorAdapter.java
@@ -178,7 +178,7 @@ final class PathIteratorAdapter implements PathIterator {
     private static Iterator<PointSequence> iterator(final Geometry geometry) {
         final Collection<PointSequence> sequences;
         if (geometry instanceof LineString) {
-            sequences = List.of(((LineString) geometry).getPoints());
+            sequences = List.of(((LineString) geometry).getDataPoints());
         } else if (geometry instanceof Point) {
             sequences = List.of(((Point) geometry).asPointSequence());
         } else if (geometry instanceof Polygon) {
@@ -223,7 +223,7 @@ final class PathIteratorAdapter implements PathIterator {
                 current = polygon.getInteriorRingN(interior);
             }
             interior++;
-            return current.getPoints();
+            return current.getDataPoints();
         }
     }
 
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conics/Arc.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conics/Arc.java
index ee58b4ef83..95b18f3891 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conics/Arc.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conics/Arc.java
@@ -17,6 +17,7 @@
 package org.apache.sis.geometries.conics;
 
 import java.util.List;
+import org.apache.sis.geometries.PointSequence;
 import org.apache.sis.geometries.math.Array;
 import static org.opengis.annotation.Specification.ISO_19107;
 import org.opengis.annotation.UML;
@@ -39,7 +40,7 @@ public interface Arc extends Conic {
 
     @UML(identifier="dataPoints", specification=ISO_19107) // section 7.9.2.4
     @Override
-    Array getDataPoints();
+    PointSequence getDataPoints();
 
     @UML(identifier="radius", specification=ISO_19107) // section 7.9.2.5
     List<Vector> getRadius();
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conics/CircularString.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conics/CircularString.java
index 5ddb10e59f..d3d1530ed1 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conics/CircularString.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conics/CircularString.java
@@ -44,19 +44,11 @@ public interface CircularString extends Curve {
         return TYPE;
     }
 
-    /**
-     * Returns the control points of this circular string: for each arc, its 
start point, a point
-     * on the arc and its end point, with consecutive arcs sharing a point.
-     *
-     * @return the control points, never null. Its size is odd and at least 3, 
or 0 if empty.
-     */
-    PointSequence getPoints();
-
     /**
      * Returns the number of arcs this circular string is made of.
      */
     default int getNumArcs() {
-        final int size = getPoints().size();
+        final int size = getDataPoints().size();
         return (size == 0) ? 0 : (size - 1) / 2;
     }
 
@@ -68,10 +60,14 @@ public interface CircularString extends Curve {
         return CurveInterpolation.CIRCULAR;
     }
 
+    /**
+     * Returns the control points of this circular string: for each arc, its 
start point, a point
+     * on the arc and its end point, with consecutive arcs sharing a point.
+     *
+     * @return the control points, never null. Its size is odd and at least 3, 
or 0 if empty.
+     */
     @Override
-    public default Array getDataPoints() {
-        return getPoints().getAttributeArray(AttributesType.ATT_POSITION);
-    }
+    PointSequence getDataPoints();
 
     /**
      * @return null, a CircularString has no control points
@@ -83,37 +79,37 @@ public interface CircularString extends Curve {
 
     @Override
     default CoordinateReferenceSystem getCoordinateReferenceSystem() {
-        return getPoints().getCoordinateReferenceSystem();
+        return getDataPoints().getCoordinateReferenceSystem();
     }
 
     @Override
     default void setCoordinateReferenceSystem(CoordinateReferenceSystem cs) 
throws IllegalArgumentException {
-        getPoints().setCoordinateReferenceSystem(cs);
+        getDataPoints().setCoordinateReferenceSystem(cs);
     }
 
     @Override
     default AttributesType getAttributesType() {
-        return getPoints().getAttributesType();
+        return getDataPoints().getAttributesType();
     }
 
     @Override
     default boolean isEmpty() {
-        return getPoints().isEmpty();
+        return getDataPoints().isEmpty();
     }
 
     @Override
     default Point getStartPoint() {
-        return getPoints().getPoint(0);
+        return getDataPoints().getPoint(0);
     }
 
     @Override
     default Point getEndPoint() {
-        return getPoints().getPoint(getPoints().size() - 1);
+        return getDataPoints().getPoint(getDataPoints().size() - 1);
     }
 
     @Override
     default boolean isClosed() {
-        final PointSequence points = getPoints();
+        final PointSequence points = getDataPoints();
         final int size = points.size();
         if (size == 0) {
             return false;
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conics/Conic.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conics/Conic.java
index db0a43b8a2..f7275e7923 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conics/Conic.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conics/Conic.java
@@ -19,6 +19,7 @@ package org.apache.sis.geometries.conics;
 import static org.opengis.annotation.Specification.ISO_19107;
 import org.opengis.annotation.UML;
 import org.apache.sis.geometries.Curve;
+import org.apache.sis.geometries.PointSequence;
 import org.apache.sis.geometries.math.Array;
 
 
@@ -29,14 +30,14 @@ import org.apache.sis.geometries.math.Array;
 @UML(identifier="Conic", specification=ISO_19107) // section 7.9.5
 public interface Conic extends Curve {
 
+    @UML(identifier="dataPoints", specification=ISO_19107) // section 7.9.5.2
+    @Override
+    PointSequence getDataPoints();
+    
     @UML(identifier="controlPoints", specification=ISO_19107) // section 
7.9.5.2
     @Override
     Array getControlPoints();
 
-    @UML(identifier="dataPoints", specification=ISO_19107) // section 7.9.5.2
-    @Override
-    Array getDataPoints();
-
     @UML(identifier="isCycle", specification=ISO_19107) // section 7.9.5.2
     boolean isCycle();
 
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/curve/ArcByBulge.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/curve/ArcByBulge.java
index 4d7d7deed5..80d08a36a2 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/curve/ArcByBulge.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/curve/ArcByBulge.java
@@ -54,7 +54,8 @@ public interface ArcByBulge extends Curve {
      *
      * @return the start and end points, never null and always of size 2.
      */
-    PointSequence getPoints();
+    @Override
+    PointSequence getDataPoints();
 
     /**
      * Returns the distance from the midpoint of the chord joining the two end 
points to the arc,
@@ -73,11 +74,6 @@ public interface ArcByBulge extends Curve {
      */
     Vector<?> getNormal();
 
-    @Override
-    public default Array getDataPoints() {
-        return getPoints().getAttributeArray(AttributesType.ATT_POSITION);
-    }
-
     /**
      * @return null, a ArcByBulge has no control points
      */
@@ -96,32 +92,22 @@ public interface ArcByBulge extends Curve {
 
     @Override
     default CoordinateReferenceSystem getCoordinateReferenceSystem() {
-        return getPoints().getCoordinateReferenceSystem();
+        return getDataPoints().getCoordinateReferenceSystem();
     }
 
     @Override
     default void setCoordinateReferenceSystem(CoordinateReferenceSystem cs) 
throws IllegalArgumentException {
-        getPoints().setCoordinateReferenceSystem(cs);
+        getDataPoints().setCoordinateReferenceSystem(cs);
     }
 
     @Override
     default AttributesType getAttributesType() {
-        return getPoints().getAttributesType();
+        return getDataPoints().getAttributesType();
     }
 
     @Override
     default boolean isEmpty() {
-        return getPoints().isEmpty();
-    }
-
-    @Override
-    default Point getStartPoint() {
-        return getPoints().getPoint(0);
-    }
-
-    @Override
-    default Point getEndPoint() {
-        return getPoints().getPoint(getPoints().size() - 1);
+        return getDataPoints().isEmpty();
     }
 
     /**
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/curve/ArcByCenterPoint.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/curve/ArcByCenterPoint.java
index 9a6a3fcefa..ed9bcfaa9a 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/curve/ArcByCenterPoint.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/curve/ArcByCenterPoint.java
@@ -22,6 +22,7 @@ import org.apache.sis.geometries.AttributesType;
 import org.apache.sis.geometries.Curve;
 import org.apache.sis.geometries.CurveInterpolation;
 import org.apache.sis.geometries.Point;
+import org.apache.sis.geometries.PointSequence;
 import org.apache.sis.geometries.math.Array;
 
 
@@ -103,7 +104,7 @@ public interface ArcByCenterPoint extends Curve {
     }
 
     @Override
-    public default Array getDataPoints() {
+    public default PointSequence getDataPoints() {
         throw new UnsupportedOperationException("Not supported yet");
     }
 
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultArcByBulge.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultArcByBulge.java
index b60451267d..54f09dc058 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultArcByBulge.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultArcByBulge.java
@@ -59,7 +59,7 @@ public class DefaultArcByBulge extends AbstractGeometry 
implements ArcByBulge {
     }
 
     @Override
-    public PointSequence getPoints() {
+    public PointSequence getDataPoints() {
         return points;
     }
 
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultCircularString.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultCircularString.java
index a96a1f265f..04fd89e57f 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultCircularString.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultCircularString.java
@@ -46,7 +46,7 @@ public class DefaultCircularString extends AbstractGeometry 
implements CircularS
     }
 
     @Override
-    public PointSequence getPoints() {
+    public PointSequence getDataPoints() {
         return points;
     }
 
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultCompoundCurve.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultCompoundCurve.java
index e615591261..02fd790bc0 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultCompoundCurve.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultCompoundCurve.java
@@ -21,6 +21,7 @@ import org.opengis.referencing.crs.CoordinateReferenceSystem;
 import org.apache.sis.geometries.AttributesType;
 import org.apache.sis.geometries.CompoundCurve;
 import org.apache.sis.geometries.Curve;
+import org.apache.sis.geometries.PointSequence;
 import org.apache.sis.geometries.math.Array;
 
 
@@ -111,7 +112,7 @@ public class DefaultCompoundCurve extends AbstractGeometry 
implements CompoundCu
     }
 
     @Override
-    public Array getDataPoints() {
+    public PointSequence getDataPoints() {
         throw new UnsupportedOperationException("Not supported yet.");
     }
 }
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultLineString.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultLineString.java
index 84b6e2f464..4edcf32b76 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultLineString.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultLineString.java
@@ -38,7 +38,7 @@ public class DefaultLineString extends AbstractGeometry 
implements LineString {
     }
 
     @Override
-    public PointSequence getPoints() {
+    public PointSequence getDataPoints() {
         return points;
     }
 
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultMultiPoint.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultMultiPoint.java
index a9ef70c2b5..ec3ab6f861 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultMultiPoint.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultMultiPoint.java
@@ -67,7 +67,7 @@ public class DefaultMultiPoint extends AbstractGeometry 
implements MultiPoint<Po
     }
 
     @Override
-    public PointSequence asPointSequence() {
+    public PointSequence asDataPoints() {
         return points;
     }
 
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultReversedCurve.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultReversedCurve.java
index 326a3bdbbb..8691a0bcb2 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultReversedCurve.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultReversedCurve.java
@@ -24,6 +24,7 @@ import org.apache.sis.geometries.Curve;
 import org.apache.sis.geometries.CurveInterpolation;
 import org.apache.sis.geometries.Orientable;
 import org.apache.sis.geometries.Point;
+import org.apache.sis.geometries.PointSequence;
 import org.apache.sis.geometries.Primitive;
 import org.apache.sis.geometries.math.Array;
 
@@ -137,7 +138,7 @@ public class DefaultReversedCurve extends AbstractGeometry 
implements Curve {
     }
 
     @Override
-    public Array getDataPoints() {
+    public PointSequence getDataPoints() {
         return base.getDataPoints();
     }
 }
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultTriangle.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultTriangle.java
index 4fd2e4e449..ecd8900166 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultTriangle.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/internal/shared/DefaultTriangle.java
@@ -34,7 +34,7 @@ public class DefaultTriangle extends DefaultPolygon 
implements Triangle {
      */
     public DefaultTriangle(LinearRing exterior) {
         super(exterior);
-        final PointSequence points = exterior.getPoints();
+        final PointSequence points = exterior.getDataPoints();
         final int size = points.size();
         switch (size) {
             case 0: //empty triangle
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/mesh/MeshPrimitive.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/mesh/MeshPrimitive.java
index 1c5b63b217..328bd23280 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/mesh/MeshPrimitive.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/mesh/MeshPrimitive.java
@@ -794,7 +794,7 @@ public interface MeshPrimitive extends Geometry {
 
                 @Override
                 protected void visit(Triangle candidate) {
-                    final PointSequence points = 
candidate.getExteriorRing().getPoints();
+                    final PointSequence points = 
candidate.getExteriorRing().getDataPoints();
                     long idx0 = 
((MeshPrimitive.Vertex)points.getPoint(0)).getIndex();
                     long idx1 = 
((MeshPrimitive.Vertex)points.getPoint(1)).getIndex();
                     long idx2 = 
((MeshPrimitive.Vertex)points.getPoint(2)).getIndex();
@@ -828,7 +828,7 @@ public interface MeshPrimitive extends Geometry {
 
                 @Override
                 protected void visit(LineString candidate) {
-                    final PointSequence points = candidate.getPoints();
+                    final PointSequence points = candidate.getDataPoints();
                     long idx0 = 
((MeshPrimitive.Vertex)points.getPoint(0)).getIndex();
                     long idx1 = 
((MeshPrimitive.Vertex)points.getPoint(1)).getIndex();
                     positions.get(idx0, pos0);
@@ -1159,7 +1159,7 @@ public interface MeshPrimitive extends Geometry {
         }
 
         @Override
-        public PointSequence getPoints() {
+        public PointSequence getDataPoints() {
             //select all points, duplicate first point as last
             int[] indices;
             if (index == null) {
@@ -1181,7 +1181,7 @@ public interface MeshPrimitive extends Geometry {
         }
 
         @Override
-        public PointSequence getPoints() {
+        public PointSequence getDataPoints() {
             final int[] indices;
             if (index == null) {
                 indices = new int[Math.toIntExact(getPositions().getLength())];
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/mesh/MeshPrimitiveComparator.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/mesh/MeshPrimitiveComparator.java
index 5b6170323e..622f28f802 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/mesh/MeshPrimitiveComparator.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/mesh/MeshPrimitiveComparator.java
@@ -196,10 +196,10 @@ public final class MeshPrimitiveComparator {
             final LineString e1 = (LineString) expected;
             final LineString e2 = (LineString) candidate;
 
-            final Vertex e1v0 = (Vertex) e1.getPoints().getPoint(0);
-            final Vertex e1v1 = (Vertex) e1.getPoints().getPoint(1);
-            final Vertex e2v0 = (Vertex) e2.getPoints().getPoint(0);
-            final Vertex e2v1 = (Vertex) e2.getPoints().getPoint(1);
+            final Vertex e1v0 = (Vertex) e1.getDataPoints().getPoint(0);
+            final Vertex e1v1 = (Vertex) e1.getDataPoints().getPoint(1);
+            final Vertex e2v0 = (Vertex) e2.getDataPoints().getPoint(0);
+            final Vertex e2v1 = (Vertex) e2.getDataPoints().getPoint(1);
             return (compareVertex(e1v0, e2v0) && compareVertex(e1v1, e2v1))
                 || (compareVertex(e1v0, e2v1) && compareVertex(e1v1, e2v0));
 
@@ -208,12 +208,12 @@ public final class MeshPrimitiveComparator {
             final LineString e1 = ((Triangle) expected).getExteriorRing();
             final LineString e2 = ((Triangle) candidate).getExteriorRing();
 
-            final Vertex e1v0 = (Vertex) e1.getPoints().getPoint(0);
-            final Vertex e1v1 = (Vertex) e1.getPoints().getPoint(1);
-            final Vertex e1v2 = (Vertex) e1.getPoints().getPoint(2);
-            final Vertex e2v0 = (Vertex) e2.getPoints().getPoint(0);
-            final Vertex e2v1 = (Vertex) e2.getPoints().getPoint(1);
-            final Vertex e2v2 = (Vertex) e2.getPoints().getPoint(2);
+            final Vertex e1v0 = (Vertex) e1.getDataPoints().getPoint(0);
+            final Vertex e1v1 = (Vertex) e1.getDataPoints().getPoint(1);
+            final Vertex e1v2 = (Vertex) e1.getDataPoints().getPoint(2);
+            final Vertex e2v0 = (Vertex) e2.getDataPoints().getPoint(0);
+            final Vertex e2v1 = (Vertex) e2.getDataPoints().getPoint(1);
+            final Vertex e2v2 = (Vertex) e2.getDataPoints().getPoint(2);
             return (compareVertex(e1v0, e2v0) && compareVertex(e1v1, e2v1) && 
compareVertex(e1v2, e2v2))
                 || (compareVertex(e1v0, e2v1) && compareVertex(e1v1, e2v2) && 
compareVertex(e1v2, e2v0))
                 || (compareVertex(e1v0, e2v2) && compareVertex(e1v1, e2v0) && 
compareVertex(e1v2, e2v1));
@@ -254,12 +254,12 @@ public final class MeshPrimitiveComparator {
     private static boolean isDegenerated(Object candidate) {
         if (candidate instanceof LineString) {
             final LineString cdt = (LineString) candidate;
-            final PointSequence points = cdt.getPoints();
+            final PointSequence points = cdt.getDataPoints();
             return points.getPosition(0).equals(points.getPosition(1));
 
         } else if (candidate instanceof Triangle) {
             final Triangle cdt = (Triangle) candidate;
-            final PointSequence points = cdt.getExteriorRing().getPoints();
+            final PointSequence points = cdt.getExteriorRing().getDataPoints();
             final Tuple c0 = points.getPosition(0);
             final Tuple c1 = points.getPosition(1);
             final Tuple c2 = points.getPosition(2);
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/mesh/MeshPrimitiveVisitor.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/mesh/MeshPrimitiveVisitor.java
index 77954297f4..80361048ce 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/mesh/MeshPrimitiveVisitor.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/mesh/MeshPrimitiveVisitor.java
@@ -204,7 +204,7 @@ public abstract class MeshPrimitiveVisitor {
      * Override this method to process a triangle.
      */
     protected void visit(Triangle candidate) {
-        final PointSequence points = candidate.getExteriorRing().getPoints();
+        final PointSequence points = 
candidate.getExteriorRing().getDataPoints();
         visit((MeshPrimitive.Vertex) points.getPoint(0));
         visit((MeshPrimitive.Vertex) points.getPoint(1));
         visit((MeshPrimitive.Vertex) points.getPoint(2));
@@ -214,7 +214,7 @@ public abstract class MeshPrimitiveVisitor {
      * Override this method to process a line.
      */
     protected void visit(LineString candidate) {
-        final PointSequence points = candidate.getPoints();
+        final PointSequence points = candidate.getDataPoints();
         visit((MeshPrimitive.Vertex) points.getPoint(0));
         visit((MeshPrimitive.Vertex) points.getPoint(1));
     }
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/Contains.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/Contains.java
index 4b16931957..68fe374410 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/Contains.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/Contains.java
@@ -85,7 +85,7 @@ public final class Contains {
         ProcessorUtils.ensureSameCRS2D(polygon, candidate);
 
         { //check exterior
-            final Array coords = 
polygon.getExteriorRing().getPoints().getAttributeArray(AttributesType.ATT_POSITION);
+            final Array coords = 
polygon.getExteriorRing().getDataPoints().getAttributeArray(AttributesType.ATT_POSITION);
             if (!contains(coords, candidate.getPosition())) {
                 //point is outside the exterior ring
                 return false;
@@ -95,7 +95,7 @@ public final class Contains {
         { //check holes
             for (int i = 0, n = polygon.getNumInteriorRing(); i < n; i++) {
                 final LineString hole = polygon.getInteriorRingN(i);
-                final Array coords = 
hole.getPoints().getAttributeArray(AttributesType.ATT_POSITION);
+                final Array coords = 
hole.getDataPoints().getAttributeArray(AttributesType.ATT_POSITION);
                 if (contains(coords, candidate.getPosition())) {
                     //point is within a hole
                     return false;
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/Intersection.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/Intersection.java
index 55ce8d9a2d..c20a2661c1 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/Intersection.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/Intersection.java
@@ -154,7 +154,7 @@ public final class Intersection {
         final List<LineString> segments = new ArrayList<>();
         for (int i = 0, n = lines.getNumGeometries(); i < n; i++) {
             final LineString line = lines.getGeometryN(i);
-            final Array segment = 
line.getPoints().getAttributeArray(AttributesType.ATT_POSITION);
+            final Array segment = 
line.getDataPoints().getAttributeArray(AttributesType.ATT_POSITION);
             final Tuple s1 = segment.get(0);
             final Tuple s2 = segment.get(1);
 
@@ -163,7 +163,7 @@ public final class Intersection {
 
                 while (iterator.hasNext()) {
                     final Triangle triangle = iterator.next();
-                    final Array corners = 
triangle.getExteriorRing().getPoints().getAttributeArray(AttributesType.ATT_POSITION);
+                    final Array corners = 
triangle.getExteriorRing().getDataPoints().getAttributeArray(AttributesType.ATT_POSITION);
                     final Tuple c0 = corners.get(0);
                     final Tuple c1 = corners.get(1);
                     final Tuple c2 = corners.get(2);
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/To3D.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/To3D.java
index 5d4974c0a1..2aef6747d7 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/To3D.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/To3D.java
@@ -127,7 +127,7 @@ public final class To3D {
      * Add Z axis to LineString.
      */
     public static LineString to3D(LineString base, CoordinateReferenceSystem 
crs3d, Consumer<Tuple> zeditor) {
-        final PointSequence copy3d = to3d(base.getPoints(), crs3d, zeditor);
+        final PointSequence copy3d = to3d(base.getDataPoints(), crs3d, 
zeditor);
         return GeometryFactory.createLineString(copy3d);
     }
 
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/ToPrimitive.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/ToPrimitive.java
index 3eeb5122e0..113bc64288 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/ToPrimitive.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/ToPrimitive.java
@@ -71,7 +71,7 @@ public final class ToPrimitive {
      */
     public static MeshPrimitive.LineStrip toPrimitive(LineString geometry) 
throws OperationException {
         final MeshPrimitive.LineStrip primitive = new 
MeshPrimitive.LineStrip();
-        final ArraySequence array = toArraySequence(geometry.getPoints());
+        final ArraySequence array = toArraySequence(geometry.getDataPoints());
         for (String name : array.getAttributeNames()) {
             primitive.setAttribute(name, array.getAttribute(name));
         }
@@ -90,7 +90,7 @@ public final class ToPrimitive {
      * Transform MultiPoint to Primitive.
      */
     public static MeshPrimitive.Points toPrimitive(MultiPoint geometry) throws 
OperationException {
-        final ArraySequence array = 
toArraySequence(geometry.asPointSequence());
+        final ArraySequence array = toArraySequence(geometry.asDataPoints());
         final MeshPrimitive.Points primitive = new MeshPrimitive.Points();
         for (String name : array.getAttributeNames()) {
             primitive.setAttribute(name, array.getAttribute(name));
@@ -118,7 +118,7 @@ public final class ToPrimitive {
 
             for (int i = 0, k = 0; i < numGeometries; i++, k += 2) {
                 final org.apache.sis.geometries.LineString line = 
geometry.getGeometryN(i);
-                final PointSequence points = line.getPoints();
+                final PointSequence points = line.getDataPoints();
                 for (String name : attributesType.getAttributeNames()) {
                     Array att = primitive.getAttribute(name);
                     att.set(k, points.getAttribute(0, name));
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/Transform.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/Transform.java
index 957b5defa9..b0bf221c01 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/Transform.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/Transform.java
@@ -79,7 +79,7 @@ public final class Transform {
 
     public static LinearRing transform(LinearRing r, CoordinateReferenceSystem 
crs, MathTransform transform) throws OperationException {
 
-        PointSequence ps = r.getPoints();
+        PointSequence ps = r.getDataPoints();
         final Array reference = 
ps.getAttributeArray(AttributesType.ATT_POSITION);
         final Array positions = transform(reference, crs, transform);
         final ArraySequence cp = new ArraySequence(positions);
@@ -186,7 +186,7 @@ public final class Transform {
     }
 
     public static Triangle transform(Triangle p, CoordinateReferenceSystem 
crs, MathTransform transform) throws OperationException {
-        final PointSequence ps = p.getExteriorRing().getPoints();
+        final PointSequence ps = p.getExteriorRing().getDataPoints();
 
         final Array reference = 
ps.getAttributeArray(AttributesType.ATT_POSITION);
         final Array positions = transform(reference, crs, transform);
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/simplify/greedyinsert/TinDistance.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/simplify/greedyinsert/TinDistance.java
index 1566d79301..44ca406453 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/simplify/greedyinsert/TinDistance.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/simplify/greedyinsert/TinDistance.java
@@ -32,7 +32,7 @@ final class TinDistance implements 
BiFunction<Tuple,Triangle,Double> {
 
     @Override
     public Double apply(Tuple pt, Triangle triangle) {
-        final PointSequence points = triangle.getExteriorRing().getPoints();
+        final PointSequence points = 
triangle.getExteriorRing().getDataPoints();
         final Tuple p0 = points.getPosition(0);
         final Tuple p1 = points.getPosition(1);
         final Tuple p2 = points.getPosition(2);
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/spatialanalysis2d/ISOBand.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/spatialanalysis2d/ISOBand.java
index b1403d9971..64e6bc0059 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/spatialanalysis2d/ISOBand.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/spatialanalysis2d/ISOBand.java
@@ -79,7 +79,7 @@ public final class ISOBand {
         final MeshPrimitiveVisitor visitor = new 
MeshPrimitiveVisitor(triangles) {
             @Override
             protected void visit(Triangle candidate) {
-                final PointSequence points = 
candidate.getExteriorRing().getPoints();
+                final PointSequence points = 
candidate.getExteriorRing().getDataPoints();
                 Tuple t0 = points.getPosition(0);
                 Tuple t1 = points.getPosition(1);
                 Tuple t2 = points.getPosition(2);
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/spatialanalysis2d/ISOLine.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/spatialanalysis2d/ISOLine.java
index b92844c2cf..f6858aa876 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/spatialanalysis2d/ISOLine.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/spatialanalysis2d/ISOLine.java
@@ -55,7 +55,7 @@ public final class ISOLine {
         final MeshPrimitiveVisitor visitor = new 
MeshPrimitiveVisitor(triangles) {
             @Override
             protected void visit(Triangle candidate) {
-                final PointSequence points = 
candidate.getExteriorRing().getPoints();
+                final PointSequence points = 
candidate.getExteriorRing().getDataPoints();
                 final double[] p0 = points.getPosition(0).toArrayDouble();
                 final double[] p1 = points.getPosition(1).toArrayDouble();
                 final double[] p2 = points.getPosition(2).toArrayDouble();
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/triangulate/EarClipping.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/triangulate/EarClipping.java
index d8e3278b55..d99d816f23 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/triangulate/EarClipping.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/triangulate/EarClipping.java
@@ -148,14 +148,14 @@ public class EarClipping {
 
         //build a single geometry linking inner holes.
         final List<Tuple<?>> borderCoords = new ArrayList<>();
-        
part.outter.getPoints().getAttributeArray(AttributesType.ATT_POSITION).stream(false).forEach(borderCoords::add);
+        
part.outter.getDataPoints().getAttributeArray(AttributesType.ATT_POSITION).stream(false).forEach(borderCoords::add);
         //sort inner holes by minimum x value
         orderHoles(part);
 
         //attach holes to the main geometry
         for(int i=0,n=part.inners.size();i<n;i++){
             //we must find the minimum x coordinate in the inner loop
-            final List<Tuple<?>> loop = 
part.inners.get(i).getPoints().getAttributeArray(AttributesType.ATT_POSITION).stream(false).toList();
+            final List<Tuple<?>> loop = 
part.inners.get(i).getDataPoints().getAttributeArray(AttributesType.ATT_POSITION).stream(false).toList();
             int index = 0;
             Tuple min = loop.get(index);
             for(int k=1,p=loop.size();k<p;k++){
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/triangulate/delaunay/OrientedEdge.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/triangulate/delaunay/OrientedEdge.java
index 47cd16159d..4c01968fe8 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/triangulate/delaunay/OrientedEdge.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/triangulate/delaunay/OrientedEdge.java
@@ -181,7 +181,7 @@ final class OrientedEdge extends AbstractGeometry 
implements LineString, PointSe
     }
 
     @Override
-    public PointSequence getPoints() {
+    public PointSequence getDataPoints() {
         return this;
     }
 
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/gml/GML2Writer.java 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/gml/GML2Writer.java
index c82047aeee..9077a54855 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/gml/GML2Writer.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/gml/GML2Writer.java
@@ -98,7 +98,7 @@ public final class GML2Writer extends AbstractGMLWriter {
     @Override
     protected void writeLineString(final LineString g, final String srsName, 
final boolean declareNamespace) throws XMLStreamException {
         writeStart(GML2Tags.LINE_STRING, srsName, declareNamespace);
-        writeCoordinates(g.getPoints());
+        writeCoordinates(g.getDataPoints());
         writer.writeEndElement();
     }
 
@@ -108,7 +108,7 @@ public final class GML2Writer extends AbstractGMLWriter {
     @Override
     protected void writeLinearRing(final LinearRing g, final String srsName, 
final boolean declareNamespace) throws XMLStreamException {
         writeStart(GML2Tags.LINEAR_RING, srsName, declareNamespace);
-        writeCoordinates(g.getPoints());
+        writeCoordinates(g.getDataPoints());
         writer.writeEndElement();
     }
 
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/gml/GML3Writer.java 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/gml/GML3Writer.java
index 2040ea0092..25b8bddc58 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/gml/GML3Writer.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/gml/GML3Writer.java
@@ -115,7 +115,7 @@ public final class GML3Writer extends AbstractGMLWriter {
     @Override
     protected void writeLineString(final LineString g, final String srsName, 
final boolean declareNamespace) throws XMLStreamException {
         writeStart(GML2Tags.LINE_STRING, srsName, declareNamespace);
-        writePosList(g.getPoints());
+        writePosList(g.getDataPoints());
         writer.writeEndElement();
     }
 
@@ -125,7 +125,7 @@ public final class GML3Writer extends AbstractGMLWriter {
     @Override
     protected void writeLinearRing(final LinearRing g, final String srsName, 
final boolean declareNamespace) throws XMLStreamException {
         writeStart(GML2Tags.LINEAR_RING, srsName, declareNamespace);
-        writePosList(g.getPoints());
+        writePosList(g.getDataPoints());
         writer.writeEndElement();
     }
 
@@ -347,7 +347,7 @@ public final class GML3Writer extends AbstractGMLWriter {
      */
     private void writeArcSegment(final CircularString g) throws 
XMLStreamException {
         writer.writeStartElement((g.getNumArcs() == 1) ? GML3Tags.ARC : 
GML3Tags.ARC_STRING);
-        writePosList(g.getPoints());
+        writePosList(g.getDataPoints());
         writer.writeEndElement();
     }
 
@@ -382,7 +382,7 @@ public final class GML3Writer extends AbstractGMLWriter {
         writeStart(GML3Tags.CURVE, srsName, declareNamespace);
         writer.writeStartElement(GML3Tags.SEGMENTS);
         writer.writeStartElement(GML3Tags.ARC_BY_BULGE);
-        writePosList(g.getPoints());
+        writePosList(g.getDataPoints());
         writeMeasure(GML3Tags.BULGE, g.getBulge(), null);
         writePos(GML3Tags.NORMAL, g.getNormal());
         writer.writeEndElement();
diff --git 
a/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/adapter/ShapeConverterTest.java
 
b/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/adapter/ShapeConverterTest.java
index d495285fb0..c2fba9a30d 100644
--- 
a/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/adapter/ShapeConverterTest.java
+++ 
b/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/adapter/ShapeConverterTest.java
@@ -97,7 +97,7 @@ public final class ShapeConverterTest {
         } else if (geom instanceof Point pt) {
             lst.add(new Vector2D.Double(pt.getPosition().toArrayDouble()));
         } else if (geom instanceof LineString ls) {
-            PointSequence ps = ls.getPoints();
+            PointSequence ps = ls.getDataPoints();
             for (int i = 0, n = ps.size(); i < n; i++) {
                 lst.add(new 
Vector2D.Double(ps.getPosition(i).toArrayDouble()));
             }
diff --git 
a/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/ToPrimitiveTest.java
 
b/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/ToPrimitiveTest.java
index 46d60086d7..9c16611ee8 100644
--- 
a/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/ToPrimitiveTest.java
+++ 
b/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/ToPrimitiveTest.java
@@ -121,8 +121,8 @@ public class ToPrimitiveTest {
             assertEquals(2, mp.getNumGeometries());
             LineString l1 = mp.getGeometryN(0);
             LineString l2 = mp.getGeometryN(1);
-            assertArrayEquals(new double[]{0,1,2,3}, 
l1.getPoints().getAttributeArray(AttributesType.ATT_POSITION).toArrayDouble(), 
0.0);
-            assertArrayEquals(new double[]{3,4,5,6}, 
l2.getPoints().getAttributeArray(AttributesType.ATT_POSITION).toArrayDouble(), 
0.0);
+            assertArrayEquals(new double[]{0,1,2,3}, 
l1.getDataPoints().getAttributeArray(AttributesType.ATT_POSITION).toArrayDouble(),
 0.0);
+            assertArrayEquals(new double[]{3,4,5,6}, 
l2.getDataPoints().getAttributeArray(AttributesType.ATT_POSITION).toArrayDouble(),
 0.0);
         }
     }
 
diff --git 
a/incubator/src/org.apache.sis.geometry/test/org/apache/sis/gml/GML3ReaderTest.java
 
b/incubator/src/org.apache.sis.geometry/test/org/apache/sis/gml/GML3ReaderTest.java
index a126b9094b..fc16763ec9 100644
--- 
a/incubator/src/org.apache.sis.geometry/test/org/apache/sis/gml/GML3ReaderTest.java
+++ 
b/incubator/src/org.apache.sis.geometry/test/org/apache/sis/gml/GML3ReaderTest.java
@@ -322,8 +322,8 @@ public final class GML3ReaderTest {
                 + "<gml:posList>0.0 0.0 0.0 10.0 0.0 0.0 10.0 10.0 
0.0</gml:posList>"
                 + "</gml:LineString>";
         final LineString g = assertInstanceOf(LineString.class, 
readInline(xml));
-        assertEquals(3, g.getPoints().getDimension(), "inferred tuple width");
-        assertEquals(3, g.getPoints().size(), "number of points");
+        assertEquals(3, g.getDataPoints().getDimension(), "inferred tuple 
width");
+        assertEquals(3, g.getDataPoints().size(), "number of points");
         assertEquals(3, 
g.getCoordinateReferenceSystem().getCoordinateSystem().getDimension(),
                      "The two-dimensional srsName should have been promoted to 
three dimensions.");
     }
@@ -351,8 +351,8 @@ public final class GML3ReaderTest {
                 + "<gml:posList srsDimension=\"4\">0 0 0 0 1 1 1 
1</gml:posList>"
                 + "</gml:LineString>";
         final LineString g = assertInstanceOf(LineString.class, 
readInline(xml));
-        assertEquals(4, g.getPoints().getDimension());
-        assertEquals(2, g.getPoints().size());
+        assertEquals(4, g.getDataPoints().getDimension());
+        assertEquals(2, g.getDataPoints().size());
         assertUndefinedCRS(g);
     }
 
@@ -424,7 +424,7 @@ public final class GML3ReaderTest {
         final Geometry g = read(TestData.V3, TestData.CURVE_ARC);
         final CircularString arc = assertInstanceOf(CircularString.class, g);
         assertEquals(1, arc.getNumArcs());
-        assertEquals(3, arc.getPoints().size());
+        assertEquals(3, arc.getDataPoints().size());
         assertEquals(CurveInterpolation.CIRCULAR, arc.getInterpolation());
         assertCRS(wgs84, g);
     }
@@ -531,9 +531,9 @@ public final class GML3ReaderTest {
     public void testArcByBulge() throws Exception {
         final Geometry g = read(TestData.V3, TestData.CURVE_ARC_BY_BULGE);
         final ArcByBulge arc = assertInstanceOf(ArcByBulge.class, g);
-        assertEquals(2, arc.getPoints().size(), "number of points");
-        assertEquals( 0.0, arc.getPoints().getPosition(0).get(0), 
GeometryAssert.TOLERANCE, "start x");
-        assertEquals(10.0, arc.getPoints().getPosition(1).get(0), 
GeometryAssert.TOLERANCE, "end x");
+        assertEquals(2, arc.getDataPoints().size(), "number of points");
+        assertEquals( 0.0, arc.getDataPoints().getPosition(0).get(0), 
GeometryAssert.TOLERANCE, "start x");
+        assertEquals(10.0, arc.getDataPoints().getPosition(1).get(0), 
GeometryAssert.TOLERANCE, "end x");
         assertEquals( 2.0, arc.getBulge(), GeometryAssert.TOLERANCE, "bulge");
         assertEquals(2, arc.getNormal().getDimension(), "normal dimension");
         assertEquals(0.0, arc.getNormal().get(0), GeometryAssert.TOLERANCE, 
"normal x");
diff --git 
a/incubator/src/org.apache.sis.geometry/test/org/apache/sis/gml/GeometryAssert.java
 
b/incubator/src/org.apache.sis.geometry/test/org/apache/sis/gml/GeometryAssert.java
index fa1bc3c299..6dab0e0591 100644
--- 
a/incubator/src/org.apache.sis.geometry/test/org/apache/sis/gml/GeometryAssert.java
+++ 
b/incubator/src/org.apache.sis.geometry/test/org/apache/sis/gml/GeometryAssert.java
@@ -87,7 +87,7 @@ final class GeometryAssert {
             assertSequenceEquals(e.asPointSequence(), a.asPointSequence(), 
tolerance);
         } else if (expected instanceof LineString e) {                  // 
Also covers LinearRing.
             final LineString a = (LineString) actual;
-            assertSequenceEquals(e.getPoints(), a.getPoints(), tolerance);
+            assertSequenceEquals(e.getDataPoints(), a.getDataPoints(), 
tolerance);
         } else if (expected instanceof Polygon e) {                     // 
Also covers Triangle.
             final Polygon a = (Polygon) actual;
             assertEquals(e.getNumInteriorRing(), a.getNumInteriorRing(), 
"number of interior rings");
diff --git 
a/incubator/src/org.apache.sis.referencing.dggs/test/org/apache/sis/referencing/dggs/AbstractDggrsTest.java
 
b/incubator/src/org.apache.sis.referencing.dggs/test/org/apache/sis/referencing/dggs/AbstractDggrsTest.java
index 2a8244804e..4ad1283843 100644
--- 
a/incubator/src/org.apache.sis.referencing.dggs/test/org/apache/sis/referencing/dggs/AbstractDggrsTest.java
+++ 
b/incubator/src/org.apache.sis.referencing.dggs/test/org/apache/sis/referencing/dggs/AbstractDggrsTest.java
@@ -187,7 +187,7 @@ public abstract class AbstractDggrsTest {
                 final Polygon geometry = (Polygon) 
DiscreteGlobalGridSystems.toSISPolygon(z.getGeographicExtent());
                 final DirectPosition center = z.getPosition();
                 final LinearRing exterior = (LinearRing) 
geometry.getExteriorRing();
-                final PointSequence ps = exterior.getPoints();
+                final PointSequence ps = exterior.getDataPoints();
                 for (int i = 0; i < ps.size(); i++) {
                     final Tuple corner = ps.getPosition(i);
 

Reply via email to