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;
