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

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

commit 7819f1feed2bf45726ac24a30b5c14473183644b
Author: jsorel <[email protected]>
AuthorDate: Thu Feb 26 09:34:10 2026 +0100

    feat(Geometry): merge geometry interfaces defined in different sections of 
ISO-19107
---
 .../BilinearGrid.java                              |  3 +-
 .../{parametriccurvesurfaces => }/Cone.java        |  4 +-
 .../{parametriccurvesurfaces => }/Cylinder.java    |  4 +-
 .../ParametricCurveSurface.java                    |  2 +-
 .../apache/sis/geometries/{rhumb => }/Rhumb.java   |  2 +-
 .../main/org/apache/sis/geometries/Sphere.java     | 66 +++++++++++++++++++++-
 .../apache/sis/geometries/conicsurfaces/Cone.java  | 26 ---------
 .../sis/geometries/conicsurfaces/Cylinder.java     | 26 ---------
 .../sis/geometries/conicsurfaces/Sphere.java       | 26 ---------
 .../geometries/parametriccurvesurfaces/Sphere.java | 30 ----------
 .../geometries/splinesurfaces/BSplineSurface.java  |  2 +-
 11 files changed, 74 insertions(+), 117 deletions(-)

diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/BilinearGrid.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/BilinearGrid.java
similarity index 92%
rename from 
incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/BilinearGrid.java
rename to 
incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/BilinearGrid.java
index 65c779a840..2d13af4af6 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/BilinearGrid.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/BilinearGrid.java
@@ -14,8 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.geometries.parametriccurvesurfaces;
+package org.apache.sis.geometries;
 
+import org.apache.sis.geometries.ParametricCurveSurface;
 import static org.opengis.annotation.Specification.ISO_19107;
 import org.opengis.annotation.UML;
 
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/Cone.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Cone.java
similarity index 93%
rename from 
incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/Cone.java
rename to 
incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Cone.java
index bd960338f9..2715caa088 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/Cone.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Cone.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.geometries.parametriccurvesurfaces;
+package org.apache.sis.geometries;
 
 import static org.opengis.annotation.Specification.ISO_19107;
 import org.opengis.annotation.UML;
 
 
 /**
- *
+ * ISO 19107 : classified as a conic surface
  * @author Johann Sorel (Geomatys)
  */
 @UML(identifier="Cone", specification=ISO_19107) // section 8.5.3
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/Cylinder.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Cylinder.java
similarity index 92%
rename from 
incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/Cylinder.java
rename to 
incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Cylinder.java
index 77b9cf2ad6..b9829c92c8 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/Cylinder.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Cylinder.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.geometries.parametriccurvesurfaces;
+package org.apache.sis.geometries;
 
 import static org.opengis.annotation.Specification.ISO_19107;
 import org.opengis.annotation.UML;
 
 
 /**
- *
+ * ISO 19107 : classified as a conic surface
  * @author Johann Sorel (Geomatys)
  */
 @UML(identifier="Cylinder", specification=ISO_19107) // section 8.5.4
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/ParametricCurveSurface.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/ParametricCurveSurface.java
similarity index 97%
rename from 
incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/ParametricCurveSurface.java
rename to 
incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/ParametricCurveSurface.java
index f4e2c5b0e6..24971708f8 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/ParametricCurveSurface.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/ParametricCurveSurface.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.geometries.parametriccurvesurfaces;
+package org.apache.sis.geometries;
 
 import java.util.List;
 import static org.opengis.annotation.Specification.ISO_19107;
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/rhumb/Rhumb.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Rhumb.java
similarity index 97%
rename from 
incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/rhumb/Rhumb.java
rename to 
incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Rhumb.java
index 1feb8653d5..f38cbb7a8f 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/rhumb/Rhumb.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Rhumb.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.geometries.rhumb;
+package org.apache.sis.geometries;
 
 import static org.opengis.annotation.Specification.ISO_19107;
 import org.opengis.annotation.UML;
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Sphere.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Sphere.java
index bceafeae88..4160a45cc5 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Sphere.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Sphere.java
@@ -16,6 +16,7 @@
  */
 package org.apache.sis.geometries;
 
+import java.util.List;
 import org.opengis.geometry.Envelope;
 import org.opengis.referencing.crs.CoordinateReferenceSystem;
 import org.apache.sis.geometries.internal.shared.AbstractGeometry;
@@ -24,15 +25,21 @@ import org.apache.sis.geometries.math.Vector;
 import org.apache.sis.geometries.math.Vectors;
 import org.apache.sis.geometry.GeneralEnvelope;
 import org.apache.sis.util.ArgumentChecks;
+import static org.opengis.annotation.Specification.ISO_19107;
+import org.opengis.annotation.UML;
+import org.opengis.geometry.DirectPosition;
+import org.opengis.metadata.Identifier;
 
 
 /**
  * A sphere geometry defined by a center and a radius.
  * Even if it is called a Sphere this class can handle 2 to N dimensions.
  *
+ * ISO 19107 : classified as a conic surface
  * @author Johann Sorel (Geomatys)
  */
-public final class Sphere extends AbstractGeometry {
+@UML(identifier="Sphere", specification=ISO_19107) // section 8.5.2
+public final class Sphere extends AbstractGeometry implements 
ParametricCurveSurface {
 
     private Tuple center;
     private double radius = 1.0;
@@ -120,4 +127,61 @@ public final class Sphere extends AbstractGeometry {
         return env;
     }
 
+    // methods from ParametricCurveSurface
+
+    @Override
+    public int getRows() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    @Override
+    public int getColumns() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    @Override
+    public List<DirectPosition> getControlPoints() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    @Override
+    public List<DirectPosition> getDataPoints() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    @Override
+    public GeometryType getHorizontalCurveType() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    @Override
+    public GeometryType getVerticalCurveType() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    @Override
+    public List<Knot> getKnots() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    @Override
+    public Curve getHorizontalCurve(double v) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    @Override
+    public Curve getVerticalCurve(double u) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    @Override
+    public DirectPosition getSurface(double u, double v) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    @Override
+    public Identifier getName() {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
 }
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conicsurfaces/Cone.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conicsurfaces/Cone.java
deleted file mode 100644
index bec2719686..0000000000
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conicsurfaces/Cone.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sis.geometries.conicsurfaces;
-
-
-/**
- *
- * @author Johann Sorel (Geomatys)
- */
-public interface Cone {
-
-}
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conicsurfaces/Cylinder.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conicsurfaces/Cylinder.java
deleted file mode 100644
index 21402d00fb..0000000000
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conicsurfaces/Cylinder.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sis.geometries.conicsurfaces;
-
-
-/**
- *
- * @author Johann Sorel (Geomatys)
- */
-public interface Cylinder {
-
-}
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conicsurfaces/Sphere.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conicsurfaces/Sphere.java
deleted file mode 100644
index ad9320e62f..0000000000
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/conicsurfaces/Sphere.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sis.geometries.conicsurfaces;
-
-
-/**
- *
- * @author Johann Sorel (Geomatys)
- */
-public interface Sphere {
-
-}
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/Sphere.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/Sphere.java
deleted file mode 100644
index f56e24e843..0000000000
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/parametriccurvesurfaces/Sphere.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sis.geometries.parametriccurvesurfaces;
-
-import static org.opengis.annotation.Specification.ISO_19107;
-import org.opengis.annotation.UML;
-
-
-/**
- *
- * @author Johann Sorel (Geomatys)
- */
-@UML(identifier="Sphere", specification=ISO_19107) // section 8.5.2
-public interface Sphere extends ParametricCurveSurface{
-
-}
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/splinesurfaces/BSplineSurface.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/splinesurfaces/BSplineSurface.java
index 3e1dcaab53..c35353f2ab 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/splinesurfaces/BSplineSurface.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/splinesurfaces/BSplineSurface.java
@@ -22,7 +22,7 @@ import org.opengis.annotation.UML;
 import org.opengis.geometry.coordinate.BSplineSurfaceForm;
 import org.apache.sis.geometries.Knot;
 import org.apache.sis.geometries.GeometryType;
-import 
org.apache.sis.geometries.parametriccurvesurfaces.ParametricCurveSurface;
+import org.apache.sis.geometries.ParametricCurveSurface;
 import org.apache.sis.geometries.splines.KnotType;
 
 

Reply via email to