Statistics
| Revision:

gvsig-vectorediting / org.gvsig.vectorediting / trunk / org.gvsig.vectorediting / org.gvsig.vectorediting.lib / org.gvsig.vectorediting.lib.prov / org.gvsig.vectorediting.lib.prov.extendline / src / main / java / org / gvsig / vectorediting / lib / prov / extendline / operation / ExtendLineOperation.java @ 325

History | View | Annotate | Download (2.6 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright ? 2007-2015 gvSIG Association
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24

    
25
package org.gvsig.vectorediting.lib.prov.extendline.operation;
26

    
27
import org.gvsig.fmap.dal.exception.DataException;
28
import org.gvsig.fmap.dal.feature.FeatureSelection;
29
import org.gvsig.fmap.geom.exception.CreateGeometryException;
30
import org.gvsig.fmap.geom.operation.GeometryOperationException;
31
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
32
import org.gvsig.fmap.geom.primitive.Curve;
33
import org.gvsig.fmap.geom.primitive.Point;
34

    
35
/**
36
 * Represents an operation to extend curve.
37
 * 
38
 * @author llmarques
39
 *
40
 */
41
public interface ExtendLineOperation {
42

    
43
    /**
44
     * Extend line to boundary objects received as parameters.
45
     * 
46
     * Inserted point is the point inserted by user. It is used to determinate
47
     * what side of curve it must extend.
48
     * 
49
     * If curveToBeExtended does not intersect with any geometry, the geometry will
50
     * not be modified.
51
     * 
52
     * @param curveToBeExtended
53
     *            Curve to be extended.
54
     * @param insertedPoint
55
     *            Point inserted by user to determinate what side of curve must
56
     *            be extended.
57
     * @param boundaryObjects
58
     *            If curveToBeExtended intersects with some boundary object, it will
59
     *            be extend to it. If there are several boundary objects that
60
     *            intersects with curveToBeExtended, it will be extended to nearest
61
     *            point.
62
     * @return extended line.
63
     */
64
    public Curve extendLine(Curve curveToBeExtended, Point insertedPoint,
65
        FeatureSelection boundaryObjects)
66
        throws GeometryOperationNotSupportedException,
67
        GeometryOperationException, DataException, CreateGeometryException;
68

    
69
}