All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opengis.geometry.coordinate.Knot Maven / Gradle / Ivy

There is a newer version: 24.2-oss84-1
Show newest version
/*
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2011, Open Source Geospatial Foundation (OSGeo)
 *    (C) 2003-2005, Open Geospatial Consortium Inc.
 *
 *    All Rights Reserved. http://www.opengis.org/legal/
 */
package org.opengis.geometry.coordinate;

import static org.opengis.annotation.Obligation.*;
import static org.opengis.annotation.Specification.*;

import org.opengis.annotation.UML;

/**
 * Controls the constructive parameter space for spline curves and surfaces. Each knot sequence is
 * used for a dimension of the spline's parameter space. Thus, in a surface spline, there will be
 * two knot sequences, one for each parameter (u, v). The
 * ith, jth would be (ui,
 * vj), where the original knot sequences were (ui) and
 * (vj). Each knot of a spline curve or surface is described using a {@code
 * Knot}.
 *
 * @version ISO 19107
 * @author Martin Desruisseaux (IRD)
 * @since GeoAPI 2.0
 */
@UML(identifier = "GM_Knot", specification = ISO_19107)
public interface Knot {
    /**
     * The value of the parameter at the knot of the spline. The sequence of knots shall be a
     * nondecreasing sequence. That is, each knot's value in the sequence shall be equal to or
     * greater than the previous knot's value. The use of equal consecutive knots is normally
     * handled using the multiplicity.
     */
    @UML(identifier = "value", obligation = MANDATORY, specification = ISO_19107)
    double getValue();

    /**
     * The multiplicity of this knot used in the definition of the spline (with the same weight).
     */
    @UML(identifier = "multiplicity", obligation = MANDATORY, specification = ISO_19107)
    int getMultiplicity();

    /** The value of the averaging weight used for this knot of the spline. */
    @UML(identifier = "weight", obligation = MANDATORY, specification = ISO_19107)
    double getWeight();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy