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

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

commit cb32b1b2f03b18c8502cec2e9d966c162f11aa31
Merge: 3abad8c520 9f73d3edf5
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Tue Jun 24 17:54:09 2025 +0200

    Merge branch 'geoapi-4.0' into geoapi-3.1.
    Contains the introduction of a "geometries" experimental module - this is 
not committed API.

 buildSrc/build.gradle.kts                          |    2 +-
 .../apache/sis/buildtools/gradle/Dependency.java   |    1 +
 .../main/org/apache/sis/console/AboutCommand.java  |    2 +-
 .../org.apache.sis.feature/main/module-info.java   |    2 +
 .../main/org/apache/sis/coverage/CategoryList.java |   10 +-
 .../coverage/grid/CoordinateOperationFinder.java   |  116 +-
 .../sis/coverage/internal/CompoundTransform.java   |    8 +-
 .../sis/geometry/wrapper/GeometryFactories.java    |    2 +-
 .../org/apache/sis/geometry/wrapper/jts/JTS.java   |   96 +
 .../main/org/apache/sis/image/AnnotatedImage.java  |    2 +-
 .../main/org/apache/sis/image/ErrorHandler.java    |    2 +-
 .../org/apache/sis/image/privy/TileOpExecutor.java |    2 +-
 .../sis/coverage/grid/GridDerivationTest.java      |   28 +
 .../apache/sis/coverage/grid/GridGeometryTest.java |   61 +-
 .../apache/sis/metadata/sql/CachedStatement.java   |    2 +-
 .../apache/sis/metadata/sql/MetadataSource.java    |    4 +-
 .../apache/sis/metadata/sql/MetadataWriter.java    |    2 +-
 .../apache/sis/metadata/sql/privy/Initializer.java |    6 +-
 .../main/org/apache/sis/util/iso/Types.java        |    2 +-
 .../main/org/apache/sis/xml/bind/Context.java      |    2 +-
 .../apache/sis/xml/privy/ExceptionSimplifier.java  |    2 +-
 .../org/apache/sis/metadata/sql/TestDatabase.java  |    3 +-
 .../main/module-info.java                          |    1 +
 .../main/org/apache/sis/io/wkt/Warnings.java       |    4 +-
 .../factory/AuthorityFactoryIdentifier.java        |    4 +-
 .../factory/ConcurrentAuthorityFactory.java        |    4 +-
 .../referencing/factory/GeodeticObjectFactory.java |    2 +-
 .../referencing/factory/IdentifiedObjectSet.java   |    2 +-
 .../factory/MultiAuthoritiesFactory.java           |    4 +-
 .../referencing/factory/sql/EPSGDataAccess.java    |   14 +-
 .../sis/referencing/factory/sql/EPSGInstaller.java |   13 +-
 .../factory/sql/InstallationScriptProvider.java    |    4 +-
 .../internal/ParameterizedTransformBuilder.java    |    9 +-
 .../apache/sis/referencing/internal/Resources.java |   10 +
 .../sis/referencing/internal/Resources.properties  |    2 +
 .../referencing/internal/Resources_fr.properties   |    2 +
 .../apache/sis/referencing/operation/CRSPair.java  |    4 +-
 .../operation/CoordinateOperationFinder.java       |   33 +-
 .../operation/CoordinateOperationRegistry.java     |    2 +-
 .../referencing/operation/SubOperationInfo.java    |  174 +-
 .../referencing/operation/gridded/GridFile.java    |    5 +-
 .../referencing/operation/gridded/LoadedGrid.java  |    2 +-
 .../projection/EquidistantCylindrical.java         |   25 +
 .../referencing/operation/projection/Mercator.java |   41 +-
 .../operation/projection/NormalizedProjection.java |    7 +-
 .../provider/FranceGeocentricInterpolation.java    |    2 +-
 .../operation/provider/Interpolation1D.java        |   10 +-
 .../sis/referencing/operation/provider/NTv2.java   |    4 +-
 .../operation/transform/AbstractMathTransform.java |  379 +---
 .../transform/AbstractMathTransform1D.java         |   24 +-
 .../transform/AbstractMathTransform2D.java         |    6 +-
 .../operation/transform/ConcatenatedTransform.java |  428 ++--
 .../transform/ConcatenatedTransformDirect.java     |    4 +-
 .../operation/transform/ConstantTransform1D.java   |    8 +-
 .../transform/CoordinateSystemTransform.java       |   23 +-
 .../operation/transform/CopyTransform.java         |    2 +-
 .../operation/transform/DatumShiftTransform.java   |   22 +-
 .../transform/DefaultMathTransformFactory.java     |    3 +-
 .../transform/EllipsoidToCentricTransform.java     |   18 +-
 .../transform/EllipsoidToRadiusTransform.java      |   10 +-
 .../transform/ExponentialTransform1D.java          |   15 +-
 .../operation/transform/IdentityTransform.java     |   16 +-
 .../operation/transform/IdentityTransform1D.java   |    8 +-
 .../operation/transform/InterpolatedTransform.java |    2 +-
 .../operation/transform/LinearInterpolator1D.java  |    7 +-
 .../operation/transform/LinearTransform1D.java     |   10 +-
 .../transform/LogarithmicTransform1D.java          |   33 +-
 .../operation/transform/MathTransforms.java        |   77 +-
 .../operation/transform/MolodenskyTransform.java   |   48 +-
 .../operation/transform/PassThroughTransform.java  |   94 +-
 .../operation/transform/PowerTransform1D.java      |   17 +-
 .../operation/transform/ProjectiveTransform.java   |    2 +-
 .../operation/transform/ScaleTransform.java        |    2 +-
 .../operation/transform/TransformJoiner.java       |  945 +++++++++
 .../operation/transform/TransformSeparator.java    |    2 +-
 .../operation/transform/TranslationTransform.java  |    2 +-
 .../operation/transform/UnitConversion.java        |   10 +-
 .../operation/transform/WraparoundTransform.java   |  321 ++-
 .../sis/referencing/privy/DefinitionVerifier.java  |    2 +-
 .../apache/sis/geometry/EnvelopeReducerTest.java   |    7 +-
 .../referencing/crs/DefaultProjectedCRSTest.java   |    5 +-
 .../DefaultCoordinateOperationFactoryTest.java     |    4 +-
 .../operation/projection/ObliqueMercatorTest.java  |    4 +-
 .../transform/ConcatenatedTransformTest.java       |   69 +-
 .../transform/EllipsoidToCentricTransformTest.java |    4 +-
 .../transform/EllipsoidToRadiusTransformTest.java  |   21 +
 .../operation/transform/MathTransformWrapper.java  |    8 +-
 .../transform/MolodenskyTransformTest.java         |   56 +-
 .../transform/PassThroughTransformTest.java        |   36 +-
 .../transform/TransformResultComparator.java       |    9 +-
 .../transform/TransformSeparatorTest.java          |    4 +-
 .../transform/WraparoundTransformTest.java         |    2 +-
 .../sis/storage/geotiff/ImageFileDirectory.java    |    2 +-
 .../sis/storage/geotiff/reader/CRSBuilder.java     |    2 +-
 .../sis/storage/netcdf/NetcdfStoreProvider.java    |    2 +-
 .../apache/sis/storage/netcdf/base/Decoder.java    |    2 +-
 .../org/apache/sis/storage/netcdf/base/Grid.java   |    3 +-
 .../sis/storage/netcdf/base/NamedElement.java      |    2 +-
 .../apache/sis/storage/sql/feature/Database.java   |    2 +-
 .../sis/storage/sql/feature/SelectionClause.java   |    2 +-
 .../apache/sis/storage/sql/postgis/Postgres.java   |    6 +-
 .../sis/storage/AbstractGridCoverageResource.java  |    2 +-
 .../main/org/apache/sis/storage/URLDataSource.java |    9 +-
 .../sis/storage/base/DocumentedStoreProvider.java  |    2 +-
 .../org/apache/sis/storage/base/URIDataStore.java  |    6 +-
 .../sis/storage/csv/MovingFeatureBuilder.java      |    9 +-
 .../main/org/apache/sis/storage/csv/Store.java     |    2 +-
 .../org/apache/sis/storage/wkt/StoreFormat.java    |    2 +-
 .../src/org.apache.sis.util/main/module-info.java  |    1 +
 .../main/org/apache/sis/system/DataDirectory.java  |    2 +-
 .../org/apache/sis/system/OptionalDependency.java  |    6 +-
 .../main/org/apache/sis/system/Supervisor.java     |    2 +-
 .../org/apache/sis/util/collection/WeakEntry.java  |    2 +-
 .../main/org/apache/sis/util/resources/Errors.java |    2 +-
 .../apache/sis/util/resources/Errors.properties    |    2 +-
 .../apache/sis/util/resources/Errors_fr.properties |    2 +-
 .../sis/util/resources/IndexedResourceBundle.java  |   55 +-
 .../resources/ResourceInternationalString.java     |    2 +-
 .../util/resources/IndexedResourceBundleTest.java  |    8 +-
 incubator/build.gradle.kts                         |   18 +-
 .../org.apache.sis.geometry/main/module-info.java  |   57 +
 .../apache/sis/geometries/AbstractGeometry.java    |   78 +
 .../apache/sis/geometries/AbstractMultiCurve.java  |   55 +
 .../org/apache/sis/geometries/ArraySequence.java   |  218 ++
 .../org/apache/sis/geometries/AttributesType.java  |  153 ++
 .../main/org/apache/sis/geometries/BBox.java       |  118 ++
 .../main/org/apache/sis/geometries/Bearing.java    |   30 +
 .../org/apache/sis/geometries/BoundaryType.java    |   28 +
 .../main/org/apache/sis/geometries/Curve.java      |  211 ++
 .../apache/sis/geometries/CurveInterpolation.java  |   46 +
 .../sis/geometries/DefaultGeometryCollection.java  |   55 +
 .../apache/sis/geometries/DefaultLineString.java   |   41 +
 .../apache/sis/geometries/DefaultLinearRing.java   |   30 +
 .../sis/geometries/DefaultMultiLineString.java     |   29 +
 .../apache/sis/geometries/DefaultMultiPoint.java   |   69 +
 .../apache/sis/geometries/DefaultMultiPolygon.java |   29 +
 .../apache/sis/geometries/DefaultMultiSurface.java |   60 +
 .../org/apache/sis/geometries/DefaultPoint.java    |  126 ++
 .../sis/geometries/DefaultPointSequence.java       |   90 +
 .../org/apache/sis/geometries/DefaultPolygon.java  |   84 +
 .../org/apache/sis/geometries/DefaultTriangle.java |   78 +
 .../main/org/apache/sis/geometries/Empty.java      |   33 +
 .../main/org/apache/sis/geometries/Geometries.java |  810 ++++++++
 .../main/org/apache/sis/geometries/Geometry.java   |  284 +++
 .../apache/sis/geometries/GeometryCollection.java  |  107 +
 .../org/apache/sis/geometries/GeometryType.java    |   41 +
 .../org/apache/sis/geometries/GeometryVisitor.java |  127 ++
 .../main/org/apache/sis/geometries/Knot.java       |   33 +
 .../main/org/apache/sis/geometries/LineString.java |  126 ++
 .../main/org/apache/sis/geometries/LinearRing.java |   47 +
 .../org/apache/sis/geometries/MeshPrimitive.java   | 1279 ++++++++++++
 .../sis/geometries/MeshPrimitiveComparator.java    |  297 +++
 .../sis/geometries/MeshPrimitiveIndexes.java       |  495 +++++
 .../sis/geometries/MeshPrimitiveVisitor.java       |  233 +++
 .../main/org/apache/sis/geometries/MultiCurve.java |   77 +
 .../org/apache/sis/geometries/MultiLineString.java |   53 +
 .../apache/sis/geometries/MultiMeshPrimitive.java  |  194 ++
 .../main/org/apache/sis/geometries/MultiPoint.java |  106 +
 .../org/apache/sis/geometries/MultiPolygon.java    |   63 +
 .../org/apache/sis/geometries/MultiSurface.java    |   72 +
 .../main/org/apache/sis/geometries/OBBox.java      |  154 ++
 .../org/apache/sis/geometries/OffsetCurve.java     |   38 +
 .../main/org/apache/sis/geometries/Orientable.java |   59 +
 .../main/org/apache/sis/geometries/Point.java      |  153 ++
 .../org/apache/sis/geometries/PointSequence.java   |  144 ++
 .../main/org/apache/sis/geometries/Polygon.java    |  115 ++
 .../apache/sis/geometries/PolyhedralSurface.java   |   96 +
 .../org/apache/sis/geometries/PreparedTIN.java     |  362 ++++
 .../main/org/apache/sis/geometries/Primitive.java  |   34 +
 .../org/apache/sis/geometries/ProductCurve.java    |   37 +
 .../main/org/apache/sis/geometries/Solid.java      |   54 +
 .../apache/sis/geometries/SolidInterpolation.java  |   36 +
 .../main/org/apache/sis/geometries/Sphere.java     |  121 ++
 .../main/org/apache/sis/geometries/Surface.java    |  142 ++
 .../sis/geometries/SurfaceInterpolation.java       |   42 +
 .../main/org/apache/sis/geometries/TIN.java        |   73 +
 .../org/apache/sis/geometries/TransfiniteSet.java  |   30 +
 .../main/org/apache/sis/geometries/Triangle.java   |  348 ++++
 .../apache/sis/geometries/TriangulatedSurface.java |   29 +
 .../apache/sis/geometries/Vocabulary.properties    |    4 +
 .../main/org/apache/sis/geometries/conics/Arc.java |   48 +
 .../org/apache/sis/geometries/conics/Circle.java   |   29 +
 .../org/apache/sis/geometries/conics/Conic.java    |   44 +
 .../org/apache/sis/geometries/conics/ConicArc.java |   25 +
 .../org/apache/sis/geometries/conics/Ellipse.java  |   25 +
 .../apache/sis/geometries/conics/EllipticArc.java  |   29 +
 .../apache/sis/geometries/conicsurfaces/Cone.java  |   25 +
 .../sis/geometries/conicsurfaces/Cylinder.java     |   25 +
 .../sis/geometries/conicsurfaces/Sphere.java       |   25 +
 .../sis/geometries/cs/CurveRelativeDirection.java  |   38 +
 .../apache/sis/geometries/cs/FixedDirection.java   |   30 +
 .../geometries/cs/GeometricCoordinateSystem.java   |   72 +
 .../org/apache/sis/geometries/cs/Projection.java   |   25 +
 .../sis/geometries/cs/ReferenceDirection.java      |   29 +
 .../sis/geometries/cs/RelativeDirection.java       |   32 +
 .../org/apache/sis/geometries/cs/Rotation.java     |   30 +
 .../org/apache/sis/geometries/cs/package-info.java |   13 +
 .../apache/sis/geometries/geodesics/Geodesic.java  |   36 +
 .../sis/geometries/griddedsolid/BSolidSpline.java  |   29 +
 .../griddedsolid/ParametricCurveSolid.java         |   67 +
 .../org/apache/sis/geometries/index/KdTree.java    |  499 +++++
 .../sis/geometries/index/MortonIterator.java       |   75 +
 .../apache/sis/geometries/math/AbstractCursor.java |   81 +
 .../apache/sis/geometries/math/AbstractTuple.java  |  124 ++
 .../sis/geometries/math/AbstractTupleArray.java    |  115 ++
 .../org/apache/sis/geometries/math/DataType.java   |  430 ++++
 .../main/org/apache/sis/geometries/math/Maths.java | 1155 +++++++++++
 .../org/apache/sis/geometries/math/Matrices.java   |  869 ++++++++
 .../org/apache/sis/geometries/math/Matrix.java     |   36 +
 .../org/apache/sis/geometries/math/Matrix2D.java   |   63 +
 .../org/apache/sis/geometries/math/Matrix3D.java   |   59 +
 .../org/apache/sis/geometries/math/Matrix4D.java   |   62 +
 .../org/apache/sis/geometries/math/MatrixND.java   |   44 +
 .../org/apache/sis/geometries/math/Quaternion.java |  450 +++++
 .../apache/sis/geometries/math/Quaternions.java    |  273 +++
 .../apache/sis/geometries/math/SampleSystem.java   |  196 ++
 .../main/org/apache/sis/geometries/math/Tuple.java |  386 ++++
 .../org/apache/sis/geometries/math/TupleArray.java |  372 ++++
 .../geometries/math/TupleArrayConcatenated.java    |  188 ++
 .../sis/geometries/math/TupleArrayCursor.java      |   50 +
 .../math/TupleArrayCursorUnmodifiable.java         |   62 +
 .../apache/sis/geometries/math/TupleArrayND.java   | 1580 +++++++++++++++
 .../sis/geometries/math/TupleArraySpliterator.java |   87 +
 .../geometries/math/TupleArrayUnmodifiable.java    |  175 ++
 .../apache/sis/geometries/math/TupleArrays.java    |  480 +++++
 .../sis/geometries/math/TupleUnmodifiable.java     |  183 ++
 .../org/apache/sis/geometries/math/Vector.java     |  138 ++
 .../org/apache/sis/geometries/math/Vector1D.java   | 1437 ++++++++++++++
 .../org/apache/sis/geometries/math/Vector2D.java   | 1600 +++++++++++++++
 .../org/apache/sis/geometries/math/Vector3D.java   | 1834 +++++++++++++++++
 .../org/apache/sis/geometries/math/Vector4D.java   | 2077 ++++++++++++++++++++
 .../org/apache/sis/geometries/math/VectorND.java   |  551 ++++++
 .../org/apache/sis/geometries/math/Vectors.java    | 1779 +++++++++++++++++
 .../apache/sis/geometries/math/package-info.java   |    4 +
 .../geometries/operation/GeometryOperations.java   |  753 +++++++
 .../apache/sis/geometries/operation/Operation.java |   81 +
 .../geometries/operation/OperationException.java   |   37 +
 .../geometries/operation/SutherlandHodgman.java    |   96 +
 .../operation/spatialanalysis2d/Buffer.java        |   40 +
 .../operation/spatialanalysis2d/ConvexHull.java    |   38 +
 .../operation/spatialanalysis2d/Difference.java    |   36 +
 .../operation/spatialanalysis2d/Distance.java      |   39 +
 .../operation/spatialanalysis2d/ISOBand.java       |  324 +++
 .../operation/spatialanalysis2d/ISOLine.java       |  146 ++
 .../operation/spatialanalysis2d/Intersection.java  |   36 +
 .../operation/spatialanalysis2d/IsoInclusion.java  |   42 +
 .../operation/spatialanalysis2d/SymDifference.java |   37 +
 .../operation/spatialanalysis2d/Union.java         |   36 +
 .../operation/spatialedition/ComputeAttribute.java |   72 +
 .../geometries/operation/spatialedition/To3D.java  |   47 +
 .../operation/spatialedition/ToPrimitive.java      |   39 +
 .../operation/spatialedition/Transform.java        |   62 +
 .../operation/spatialrelations2d/Contains.java     |   37 +
 .../operation/spatialrelations2d/Crosses.java      |   36 +
 .../operation/spatialrelations2d/Disjoint.java     |   36 +
 .../operation/spatialrelations2d/Equals.java       |   36 +
 .../operation/spatialrelations2d/Intersects.java   |   36 +
 .../operation/spatialrelations2d/LocateAlong.java  |   39 +
 .../spatialrelations2d/LocateBetween.java          |   41 +
 .../operation/spatialrelations2d/Overlaps.java     |   36 +
 .../operation/spatialrelations2d/Relate.java       |   41 +
 .../operation/spatialrelations2d/Touches.java      |   36 +
 .../operation/spatialrelations2d/Within.java       |   36 +
 .../org/apache/sis/geometries/package-info.java    |   83 +
 .../parametriccurvesurfaces/BilinearGrid.java      |   29 +
 .../geometries/parametriccurvesurfaces/Cone.java   |   29 +
 .../parametriccurvesurfaces/Cylinder.java          |   29 +
 .../ParametricCurveSurface.java                    |   69 +
 .../geometries/parametriccurvesurfaces/Sphere.java |   29 +
 .../sis/geometries/polynomials/FunctionArc.java    |   36 +
 .../sis/geometries/polynomials/FunctionCurve.java  |   35 +
 .../sis/geometries/polynomials/PolynomialArc.java  |   35 +
 .../geometries/polynomials/PolynomialCurve.java    |   31 +
 .../sis/geometries/polynomials/RealFunction.java   |   44 +
 .../sis/geometries/polynomials/RealPolynomial.java |   50 +
 .../apache/sis/geometries/processor/Processor.java |   46 +
 .../sis/geometries/processor/ProcessorUtils.java   |  161 ++
 .../processor/spatialanalysis2d/Distance.java      |  170 ++
 .../processor/spatialanalysis2d/Intersection.java  |  243 +++
 .../processor/spatialedition/ComputeAttribute.java |  110 ++
 .../geometries/processor/spatialedition/To3D.java  |  191 ++
 .../processor/spatialedition/ToPrimitive.java      |  283 +++
 .../processor/spatialedition/Transform.java        |  215 ++
 .../processor/spatialrelations2d/Contains.java     |  144 ++
 .../org/apache/sis/geometries/rhumb/Rhumb.java     |   40 +
 .../sis/geometries/simplify/TextureAtlas.java      |  252 +++
 .../sis/geometries/simplify/greedyinsert/Edge.java |  106 +
 .../simplify/greedyinsert/TINBuilder.java          |  519 +++++
 .../simplify/greedyinsert/TinDistance.java         |   44 +
 .../simplify/greedyinsert/WTriangle.java           |  368 ++++
 .../apache/sis/geometries/spirals/Clothoid.java    |   29 +
 .../org/apache/sis/geometries/spirals/Spiral.java  |   41 +
 .../sis/geometries/splines/BSplineCurve.java       |   29 +
 .../org/apache/sis/geometries/splines/Bezier.java  |   29 +
 .../apache/sis/geometries/splines/CubicSpline.java |   29 +
 .../apache/sis/geometries/splines/KnotType.java    |   32 +
 .../org/apache/sis/geometries/splines/NURB.java    |   29 +
 .../sis/geometries/splines/PolynomialSpline.java   |   38 +
 .../apache/sis/geometries/splines/SplineCurve.java |   49 +
 .../sis/geometries/splines/SplineCurveForm.java    |   33 +
 .../geometries/splinesurfaces/BSplineSurface.java  |   57 +
 .../splinesurfaces/BSplineSurfaceForm.java         |   34 +
 .../sis/geometries/triangulate/EarClipping.java    |  562 ++++++
 .../geometries/triangulate/delaunay/Delaunay.java  | 1047 ++++++++++
 .../triangulate/delaunay/OrientedEdge.java         |  354 ++++
 .../triangulate/delaunay/OrientedTriangle.java     |  315 +++
 .../apache/sis/geometries/ArraySequenceTest.java   |  132 ++
 .../org/apache/sis/geometries/GeometriesTest.java  |  237 +++
 .../org/apache/sis/geometries/PreparedTINTest.java |   96 +
 .../sis/geometries/PrimitiveIndexesTest.java       |  423 ++++
 .../org/apache/sis/geometries/PrimitiveTest.java   |   64 +
 .../sis/geometries/PrimitiveVisitorTest.java       |  582 ++++++
 .../org/apache/sis/geometries/TriangleTest.java    |  161 ++
 .../sis/geometries/index/MortonIteratorTest.java   |  114 ++
 .../geometries/math/AbstractTupleArrayTest.java    |  349 ++++
 .../sis/geometries/math/AbstractTupleTest.java     |  296 +++
 .../sis/geometries/math/AbstractVectorTest.java    |  175 ++
 .../org/apache/sis/geometries/math/MathsTest.java  |  309 +++
 .../apache/sis/geometries/math/QuaternionTest.java |  125 ++
 .../math/TupleArrayConcatenatedTest.java           |  107 +
 .../sis/geometries/math/TupleArrayNbTest.java      |   35 +
 .../sis/geometries/math/TupleArrayNdTest.java      |   36 +
 .../sis/geometries/math/TupleArrayNfTest.java      |   35 +
 .../sis/geometries/math/TupleArrayNiTest.java      |   35 +
 .../sis/geometries/math/TupleArrayNlTest.java      |   35 +
 .../sis/geometries/math/TupleArrayNsTest.java      |   35 +
 .../sis/geometries/math/TupleArrayNubTest.java     |   35 +
 .../sis/geometries/math/TupleArrayNuiTest.java     |   35 +
 .../sis/geometries/math/TupleArrayNusTest.java     |   35 +
 .../sis/geometries/math/TupleArraysTest.java       |  135 ++
 .../apache/sis/geometries/math/VectorXbTest.java   |   41 +
 .../apache/sis/geometries/math/VectorXdTest.java   |   41 +
 .../apache/sis/geometries/math/VectorXfTest.java   |   41 +
 .../apache/sis/geometries/math/VectorXiTest.java   |   41 +
 .../apache/sis/geometries/math/VectorXlTest.java   |   41 +
 .../apache/sis/geometries/math/VectorXsTest.java   |   41 +
 .../apache/sis/geometries/math/VectorXubTest.java  |   41 +
 .../apache/sis/geometries/math/VectorXuiTest.java  |   41 +
 .../apache/sis/geometries/math/VectorXusTest.java  |   41 +
 .../apache/sis/geometries/math/VectorsTest.java    |  124 ++
 .../geometries/operation/SutherlandHogmanTest.java |   58 +
 .../operation/spatialanalysis2d/IsoBandTest.java   |  659 +++++++
 .../processor/spatialanalysis2d/DistanceTest.java  |   67 +
 .../spatialanalysis2d/IntersectionTest.java        |  143 ++
 .../processor/spatialedition/To3DTest.java         |   74 +
 .../processor/spatialedition/ToPrimitiveTest.java  |  144 ++
 .../processor/spatialedition/TransformTest.java    |  129 ++
 .../sis/geometries/simplify/TextureAtlasTest.java  |  121 ++
 .../triangulate/delaunay/DelaunayTest.java         |  348 ++++
 .../triangulate/delaunay/OrientedEdgeTest.java     |  106 +
 .../apache/sis/storage/geoheif/GeoHeifStore.java   |    2 +-
 .../org/apache/sis/storage/isobmff/Reader.java     |    2 +-
 netbeans-project/ivy.xml                           |   16 +-
 netbeans-project/nbproject/project.xml             |    1 +
 .../main/org/apache/sis/storage/gdal/GDAL.java     |    2 +-
 .../apache/sis/storage/panama/LibraryLoader.java   |    2 +-
 settings.gradle.kts                                |   12 +-
 357 files changed, 43270 insertions(+), 1289 deletions(-)

diff --cc 
endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationFinder.java
index a8f1ed8f1b,353eaaa8db..b4b046c3f1
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationFinder.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationFinder.java
@@@ -887,24 -880,14 +889,29 @@@ public class CoordinateOperationFinder 
              endAtDimension += delta;
              final int numTrailingCoordinates = remainingSourceDimensions - 
endAtDimension;
              CoordinateOperation subOperation = info.operation;
-             if ((startAtDimension | numTrailingCoordinates) != 0) {
+             if ((firstAffectedCoordinate | numTrailingCoordinates) != 0) {
 +                final Map<String,?> properties = 
IdentifiedObjects.getProperties(subOperation);
 +                /*
-                  * The DefaultPassThroughOperation constuctor expect a 
SingleOperation.
-                  * In most case, the 'subOperation' is already of this kind. 
However if
-                  * it is not, try to copy it in such object.
++                 * The `DefaultPassThroughOperation` constuctor expects a 
`SingleOperation`.
++                 * In most case, the `subOperation` is already of this kind.
++                 * However if it is not, try to copy it in such object.
 +                 */
 +                final SingleOperation op;
 +                if (SubTypes.isSingleOperation(subOperation)) {
 +                    op = (SingleOperation) subOperation;
 +                } else {
 +                    final MathTransform subTransform = 
subOperation.getMathTransform();
 +                    op = factorySIS.createSingleOperation(properties,
 +                            subOperation.getSourceCRS(), 
subOperation.getTargetCRS(), null,
 +                            new DefaultOperationMethod(subTransform), 
subTransform);
 +                }
-                 subOperation = new DefaultPassThroughOperation(properties, 
stepSourceCRS, stepTargetCRS,
-                         op, startAtDimension, numTrailingCoordinates);
+                 subOperation = new DefaultPassThroughOperation(
 -                        IdentifiedObjects.getProperties(subOperation),
++                        properties,
+                         stepSourceCRS,
+                         stepTargetCRS,
 -                        subOperation,
++                        op,
+                         firstAffectedCoordinate,
+                         numTrailingCoordinates);
              }
              /*
               * Concatenate the operation with the ones we have found so far, 
and use the current `stepTargetCRS`
diff --cc 
endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/SubOperationInfo.java
index 2f0075b64b,75f660aebb..b6ab6e89f7
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/SubOperationInfo.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/SubOperationInfo.java
@@@ -18,13 -18,20 +18,17 @@@ package org.apache.sis.referencing.oper
  
  import java.util.List;
  import org.opengis.referencing.crs.*;
+ import org.opengis.referencing.operation.Matrix;
  import org.opengis.referencing.operation.CoordinateOperation;
  import org.opengis.referencing.operation.OperationNotFoundException;
+ import org.opengis.referencing.operation.NoninvertibleTransformException;
  import org.opengis.referencing.operation.TransformException;
  import org.opengis.util.FactoryException;
+ import org.apache.sis.referencing.internal.Resources;
  import org.apache.sis.referencing.operation.matrix.Matrices;
  import org.apache.sis.referencing.operation.matrix.MatrixSIS;
+ import org.apache.sis.referencing.operation.transform.MathTransforms;
  
 -// Specific to the geoapi-4.0 branch:
 -import org.apache.sis.referencing.crs.DefaultImageCRS;
 -
  
  /**
   * Information about the operation from a source component to a target 
component in {@code CompoundCRS} instances.
diff --cc 
endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/transform/ConcatenatedTransform.java
index 6388514777,968cc4e2d2..aeeae78b66
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/transform/ConcatenatedTransform.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/transform/ConcatenatedTransform.java
@@@ -46,11 -45,10 +45,10 @@@ import org.apache.sis.util.privy.String
  import org.apache.sis.io.wkt.Convention;
  import org.apache.sis.io.wkt.Formatter;
  import org.apache.sis.io.wkt.FormattableObject;
- import org.apache.sis.util.logging.Logging;
  import org.apache.sis.util.resources.Errors;
  
 -// Specific to the geoapi-4.0 branch:
 -import org.opengis.coordinate.MismatchedDimensionException;
 +// Specific to the main and geoapi-3.1 branches:
 +import org.opengis.geometry.MismatchedDimensionException;
  
  
  /**
diff --cc 
endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactoryTest.java
index 5ea07b7b02,c7ce93f6f1..0402befb64
--- 
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactoryTest.java
+++ 
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactoryTest.java
@@@ -333,9 -328,9 +333,9 @@@ public final class DefaultCoordinateOpe
       */
      @Test
      public void testPositionVectorTransformation() throws ParseException, 
FactoryException, TransformException {
-         final CoordinateReferenceSystem sourceCRS = 
CommonCRS.WGS84.geographic();
+         final CoordinateReferenceSystem sourceCRS = 
HardCodedCRS.WGS84_LATITUDE_FIRST;
          final CoordinateReferenceSystem targetCRS = 
parse(CoordinateOperationFinderTest.AGD66());
 -        final CoordinateOperation operation = 
factory.createOperation(sourceCRS, targetCRS, null);
 +        final CoordinateOperation operation = 
factory.createOperation(sourceCRS, targetCRS, CONTEXT);
          transform  = operation.getMathTransform();
          tolerance  = Formulas.LINEAR_TOLERANCE;
          λDimension = new int[] {0};
diff --cc 
endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/feature/SelectionClause.java
index 7cdf92c2a6,efafb0a78f..c456c25856
--- 
a/endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/feature/SelectionClause.java
+++ 
b/endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/feature/SelectionClause.java
@@@ -355,10 -355,10 +355,10 @@@ public final class SelectionClause exte
       */
      @Override
      public void accept(final WarningEvent event) {
-         final LogRecord record = resources().getLogRecord(
+         final LogRecord record = resources().createLogRecord(
                  Level.WARNING,
                  Resources.Keys.IncompatibleLiteralCRS_2,
 -                
event.getOperatorType().flatMap(CodeList::identifier).orElse("?"),
 +                event.getOperatorType().map(CodeList::identifier).orElse("?"),
                  
event.getParameter(ValueReference.class).map(ValueReference<?,?>::getXPath).orElse("?"));
          record.setThrown(event.exception);
          log(record);

Reply via email to