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 / PolygonStretchOperation.java @ 2616

History | View | Annotate | Download (1.86 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
import org.gvsig.fmap.geom.Geometry;
7
import org.gvsig.fmap.geom.exception.CreateGeometryException;
8
import org.gvsig.fmap.geom.operation.GeometryOperationException;
9
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
10
import org.gvsig.fmap.geom.primitive.OrientablePrimitive;
11
import org.gvsig.fmap.geom.primitive.Point;
12
import org.gvsig.fmap.geom.primitive.Primitive;
13

    
14

    
15
public class PolygonStretchOperation implements StretchOperation{
16

    
17
    public PolygonStretchOperation() {
18
        // TODO Auto-generated constructor stub
19
    }
20

    
21
    @Override
22
    public Geometry transform(AffineTransform at, Primitive geom, Geometry roi)
23
        throws GeometryOperationNotSupportedException,
24
        GeometryOperationException {
25
        OrientablePrimitive primitive = (OrientablePrimitive)(geom.cloneGeometry());
26
        for (int j = 0; j < primitive.getNumVertices(); j++) {
27
            Point point = primitive.getVertex(j);
28
          if (roi.intersects(point) || roi.contains(point)) {
29
            point.transform(at);
30
            StretchOperationUtils.setVertex(primitive, j, point);
31
          }
32
        }
33
        return primitive;
34
    }
35

    
36
    @Override
37
    public List<Point> getSelectedVertex(Primitive geom, Geometry roi)
38
        throws  GeometryOperationNotSupportedException, GeometryOperationException, CreateGeometryException {
39
        OrientablePrimitive primitive = (OrientablePrimitive)(geom.cloneGeometry());
40
        List<Point> vertexList = new ArrayList<>();
41
        for (int j = 0; j < primitive.getNumVertices(); j++) {
42
            Point point = primitive.getVertex(j);
43
          if (roi.intersects(point) || roi.contains(point)) {
44
              vertexList.add(point);
45
          }
46
        }
47
        return vertexList;
48
    }
49

    
50

    
51

    
52
}