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.stretch / src / main / java / org / gvsig / vectorediting / lib / prov / stretch / operation / SplineStretchOperation.java @ 320

History | View | Annotate | Download (2.19 KB)

1
package org.gvsig.vectorediting.lib.prov.stretch.operation;
2

    
3
import java.awt.geom.AffineTransform;
4
import java.util.ArrayList;
5
import java.util.List;
6

    
7
import org.gvsig.fmap.geom.Geometry;
8
import org.gvsig.fmap.geom.GeometryLocator;
9
import org.gvsig.fmap.geom.GeometryManager;
10
import org.gvsig.fmap.geom.aggregate.MultiSurface;
11
import org.gvsig.fmap.geom.exception.CreateGeometryException;
12
import org.gvsig.fmap.geom.operation.GeometryOperationException;
13
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
14
import org.gvsig.fmap.geom.primitive.Arc;
15
import org.gvsig.fmap.geom.primitive.Line;
16
import org.gvsig.fmap.geom.primitive.Point;
17
import org.gvsig.fmap.geom.primitive.Primitive;
18
import org.gvsig.fmap.geom.primitive.Spline;
19

    
20

    
21
public class SplineStretchOperation implements StretchOperation{
22

    
23
    public SplineStretchOperation() {
24
        // TODO Auto-generated constructor stub
25
    }
26

    
27
    public Geometry transform(AffineTransform at, Primitive geom, Geometry roi)
28
        throws GeometryOperationNotSupportedException,
29
        GeometryOperationException, CreateGeometryException {
30
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
31
        Line line = (Line) geometryManager.createLine(geom.getGeometryType().getSubType());
32

    
33
        Spline spline = ((Spline)geom);
34

    
35
        for (int j = 0; j < spline.getNumVertices(); j++) {
36
            Point point = (Point) spline.getVertex(j).cloneGeometry();
37
          if (roi.intersects(point) || roi.contains(point)) {
38
            point.transform(at);
39
          }
40
          line.addVertex(point);
41
        }
42
        return line;
43
    }
44

    
45
    public List<Point> getSelectedVertex(Primitive geom, Geometry roi) throws GeometryOperationNotSupportedException, GeometryOperationException, CreateGeometryException {
46
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
47
        List<Point> vertexList = new ArrayList<Point>();
48
        Spline spline = ((Spline)geom);
49

    
50
        for (int j = 0; j < spline.getNumVertices(); j++) {
51
            Point point = spline.getVertex(j);
52
          if (roi.intersects(point) || roi.contains(point)) {
53
              vertexList.add(point);
54
          }
55
        }
56
        return vertexList;
57
    }
58
}