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 @ 320

History | View | Annotate | Download (2.06 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.Line;
15
import org.gvsig.fmap.geom.primitive.OrientablePrimitive;
16
import org.gvsig.fmap.geom.primitive.Point;
17
import org.gvsig.fmap.geom.primitive.Polygon;
18
import org.gvsig.fmap.geom.primitive.Primitive;
19

    
20

    
21
public class PolygonStretchOperation implements StretchOperation{
22

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

    
27
    public Geometry transform(AffineTransform at, Primitive geom, Geometry roi)
28
        throws GeometryOperationNotSupportedException,
29
        GeometryOperationException {
30
        OrientablePrimitive primitive = (OrientablePrimitive)(geom.cloneGeometry());
31
        for (int j = 0; j < primitive.getNumVertices(); j++) {
32
            Point point = primitive.getVertex(j);
33
          if (roi.intersects(point) || roi.contains(point)) {
34
            point.transform(at);
35
            StretchOperationUtils.setVertex(primitive, j, point);
36
          }
37
        }
38
        return primitive;
39
    }
40

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

    
54

    
55

    
56
}