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 8546d59b4eaa3be88cc59fe03ff81245fdb7c978
Author: jsorel <[email protected]>
AuthorDate: Thu Feb 26 09:22:40 2026 +0100

    doc(Geometry): document scene sampler
---
 .../org/apache/sis/geometries/scene/Material.java  | 30 ++++++++++++++++++++++
 .../org/apache/sis/geometries/scene/Model.java     |  2 +-
 .../org/apache/sis/geometries/scene/Sampler.java   |  1 +
 .../org/apache/sis/geometries/scene/SceneNode.java |  2 +-
 .../org/apache/sis/geometries/scene/Surface.java   |  2 +-
 5 files changed, 34 insertions(+), 3 deletions(-)

diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Material.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Material.java
index 257f22268c..c0c9e65900 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Material.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Material.java
@@ -30,6 +30,18 @@ import org.apache.sis.util.ArgumentChecks;
  */
 public class Material extends HashMap<String,Object> {
 
+    public static enum Technique {
+        BLINN_PHONG,
+        /**
+         * Physically-Based Rendering
+         */
+        PBR,
+        /**
+         * Specular-glossiness material model from Physically-Based Rendering 
(PBR)
+         */
+        PBRSG
+    }
+
     public static final String ALPHA_MODE_OPAQUE = "OPAQUE";
     public static final String ALPHA_MODE_MASK = "MASK";
     public static final String ALPHA_MODE_BLEND = "BLEND";
@@ -122,6 +134,7 @@ public class Material extends HashMap<String,Object> {
 
 
     private String id;
+    private Technique technique = Technique.PBR;
 
     public Material() {
 
@@ -141,6 +154,23 @@ public class Material extends HashMap<String,Object> {
         this.id = id;
     }
 
+    /**
+     * Get material rendering technique.
+     * Blinn-Phong and PBR are the most common.
+     * @return technique, never null.
+     */
+    public Technique getTechnique() {
+        return technique;
+    }
+
+    /**
+     * @param technique rendering technique
+     */
+    public void setTechnique(Technique technique) {
+        ArgumentChecks.ensureNonNull("technique", technique);
+        this.technique = technique;
+    }
+
     /**
      * Default is OPAQUE
      * @return alphaMode
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Model.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Model.java
index 4a1efeba06..aa9e6d0998 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Model.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Model.java
@@ -38,7 +38,7 @@ import org.opengis.referencing.crs.CoordinateReferenceSystem;
  *
  * @author Johann Sorel (Geomatys)
  */
-public final class Model {
+public class Model {
 
     private CoordinateReferenceSystem crs;
     private String name;
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Sampler.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Sampler.java
index ad05ac0cb7..5b659d4e79 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Sampler.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Sampler.java
@@ -20,6 +20,7 @@ import java.util.Objects;
 import org.apache.sis.util.ArgumentChecks;
 
 /**
+ * A sampler defines how textures are to be interpolated and clipped/repeated 
when applied on a surface.
  *
  * @author Johann Sorel (Geomatys)
  */
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/SceneNode.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/SceneNode.java
index feb3ff13c8..c5312b2e50 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/SceneNode.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/SceneNode.java
@@ -45,7 +45,7 @@ import org.opengis.referencing.operation.TransformException;
  *
  * @author Johann Sorel (Geomatys)
  */
-public final class SceneNode {
+public class SceneNode {
 
     private final Similarity3D parentToNode = new Similarity3D();
     private SceneNode parent = null;
diff --git 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Surface.java
 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Surface.java
index e4daf2b40d..9da1dc4543 100644
--- 
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Surface.java
+++ 
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/scene/Surface.java
@@ -26,7 +26,7 @@ import org.apache.sis.util.ArgumentChecks;
  *
  * @author Johann Sorel (Geomatys)
  */
-public final class Surface {
+public class Surface {
 
     private Geometry geometry;
     private Material material;

Reply via email to