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;
