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


The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
     new f5dd64c5b3 feat(Geometry): add base polyhedron classes used by DGGRS
f5dd64c5b3 is described below

commit f5dd64c5b37cf6118939346d560193eae04b49ce
Author: jsorel <[email protected]>
AuthorDate: Wed Aug 5 10:58:50 2026 +0200

    feat(Geometry): add base polyhedron classes used by DGGRS
---
 .../geometries/polyhedron/AbstractPolyhedron.java  | 62 ++++++++++++++++++++++
 .../sis/geometries/polyhedron/Dodecahedron.java    | 26 +++++++++
 .../sis/geometries/polyhedron/Hexahedron.java      | 26 +++++++++
 .../sis/geometries/polyhedron/Icosahedron.java     | 26 +++++++++
 .../sis/geometries/polyhedron/Octahedron.java      | 26 +++++++++
 .../polyhedron/RhombicTriacontahedron.java         | 26 +++++++++
 .../sis/geometries/polyhedron/Tetrahedron.java     | 26 +++++++++
 .../polyhedron/TruncatedIcosahedron.java           | 26 +++++++++
 .../sis/geometries/polyhedron/package-info.java    | 28 ++++++++++
 9 files changed, 272 insertions(+)

diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/AbstractPolyhedron.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/AbstractPolyhedron.java
new file mode 100644
index 0000000000..96ca8aa219
--- /dev/null
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/AbstractPolyhedron.java
@@ -0,0 +1,62 @@
+/*
+ * 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.polyhedron;
+
+import java.util.List;
+import org.apache.sis.geometries.MultiPolygon;
+import org.apache.sis.geometries.Polyhedron;
+import org.apache.sis.geometries.internal.shared.AbstractGeometry;
+import org.opengis.geometry.Envelope;
+import org.opengis.referencing.crs.CoordinateReferenceSystem;
+
+/**
+ *
+ * @author Johann Sorel (Geomatys)
+ */
+public class AbstractPolyhedron extends AbstractGeometry implements Polyhedron{
+
+    @Override
+    public CoordinateReferenceSystem getCoordinateReferenceSystem() {
+        throw new UnsupportedOperationException("Not supported yet."); // 
Generated from 
nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
+    }
+
+    @Override
+    public void setCoordinateReferenceSystem(CoordinateReferenceSystem crs) 
throws IllegalArgumentException {
+        throw new UnsupportedOperationException("Not supported yet."); // 
Generated from 
nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
+    }
+
+    @Override
+    public Envelope getEnvelope() {
+        throw new UnsupportedOperationException("Not supported yet."); // 
Generated from 
nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
+    }
+
+    @Override
+    public boolean isEmpty() {
+        throw new UnsupportedOperationException("Not supported yet."); // 
Generated from 
nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
+    }
+
+    @Override
+    public MultiPolygon getExteriorShell() {
+        throw new UnsupportedOperationException("Not supported yet."); // 
Generated from 
nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
+    }
+
+    @Override
+    public List<MultiPolygon> getInteriorShells() {
+        throw new UnsupportedOperationException("Not supported yet."); // 
Generated from 
nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
+    }
+
+}
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Dodecahedron.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Dodecahedron.java
new file mode 100644
index 0000000000..388b64da6c
--- /dev/null
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Dodecahedron.java
@@ -0,0 +1,26 @@
+/*
+ * 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.polyhedron;
+
+/**
+ *
+ * @see https://mathworld.wolfram.com/RegularDodecahedron.html
+ * @author Johann Sorel (Geomatys)
+ */
+public final class Dodecahedron extends AbstractPolyhedron{
+
+}
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Hexahedron.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Hexahedron.java
new file mode 100644
index 0000000000..e970cd38d0
--- /dev/null
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Hexahedron.java
@@ -0,0 +1,26 @@
+/*
+ * 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.polyhedron;
+
+/**
+ *
+ * @see https://mathworld.wolfram.com/Cube.html
+ * @author Johann Sorel (Geomatys)
+ */
+public final class Hexahedron extends AbstractPolyhedron{
+
+}
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Icosahedron.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Icosahedron.java
new file mode 100644
index 0000000000..a2fca45320
--- /dev/null
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Icosahedron.java
@@ -0,0 +1,26 @@
+/*
+ * 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.polyhedron;
+
+/**
+ *
+ * @see https://mathworld.wolfram.com/RegularIcosahedron.html
+ * @author Johann Sorel (Geomatys)
+ */
+public final class Icosahedron extends AbstractPolyhedron{
+
+}
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Octahedron.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Octahedron.java
new file mode 100644
index 0000000000..b097e0c12b
--- /dev/null
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Octahedron.java
@@ -0,0 +1,26 @@
+/*
+ * 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.polyhedron;
+
+/**
+ *
+ * @see https://mathworld.wolfram.com/RegularOctahedron.html
+ * @author Johann Sorel (Geomatys)
+ */
+public final class Octahedron extends AbstractPolyhedron{
+
+}
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/RhombicTriacontahedron.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/RhombicTriacontahedron.java
new file mode 100644
index 0000000000..a5c12fdc02
--- /dev/null
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/RhombicTriacontahedron.java
@@ -0,0 +1,26 @@
+/*
+ * 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.polyhedron;
+
+/**
+ *
+ * @see https://mathworld.wolfram.com/RhombicTriacontahedron.html
+ * @author Johann Sorel (Geomatys)
+ */
+public final class RhombicTriacontahedron extends AbstractPolyhedron{
+
+}
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Tetrahedron.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Tetrahedron.java
new file mode 100644
index 0000000000..7c978a66ca
--- /dev/null
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/Tetrahedron.java
@@ -0,0 +1,26 @@
+/*
+ * 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.polyhedron;
+
+/**
+ *
+ * @see https://mathworld.wolfram.com/Tetrahedron.html
+ * @author Johann Sorel (Geomatys)
+ */
+public final class Tetrahedron extends AbstractPolyhedron{
+
+}
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/TruncatedIcosahedron.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/TruncatedIcosahedron.java
new file mode 100644
index 0000000000..aebe4cfe7a
--- /dev/null
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/TruncatedIcosahedron.java
@@ -0,0 +1,26 @@
+/*
+ * 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.polyhedron;
+
+/**
+ *
+ * @see https://mathworld.wolfram.com/TruncatedIcosahedron.html
+ * @author Johann Sorel (Geomatys)
+ */
+public final class TruncatedIcosahedron extends AbstractPolyhedron{
+
+}
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/package-info.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/package-info.java
new file mode 100644
index 0000000000..9cfd88ec24
--- /dev/null
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/polyhedron/package-info.java
@@ -0,0 +1,28 @@
+/*
+ * 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.
+ */
+
+/**
+ * This package contains Well Known polyhedron types.
+ * There is a large amount of different polyhedron, only those of special 
interest are defined here. *
+ * More classes may be added when needed.
+ * <p>
+ * Most polyhedron have prefixed names to identify them like 'Regular', 
'Truncated', 'Rhombic', ...etc... .
+ * The 'Regular' prefix for class names is drop as it is considered to be the 
default, otherwise the prefix is preserved.
+ * <p>
+ * Some practical use cases include : DGGRS
+ */
+package org.apache.sis.geometries.polyhedron;

Reply via email to