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 / SurfaceStretchOperation.java @ 340

History | View | Annotate | Download (2.27 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.exception.CreateGeometryException;
11
import org.gvsig.fmap.geom.operation.GeometryOperationException;
12
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
13
import org.gvsig.fmap.geom.primitive.GeneralPathX;
14
import org.gvsig.fmap.geom.primitive.Point;
15
import org.gvsig.fmap.geom.primitive.Polygon;
16
import org.gvsig.fmap.geom.primitive.Primitive;
17

    
18

    
19
public class SurfaceStretchOperation implements StretchOperation{
20

    
21
    public SurfaceStretchOperation() {
22
        // TODO Auto-generated constructor stub
23
    }
24

    
25
    public Geometry transform(AffineTransform at, Primitive geom, Geometry roi)
26
        throws GeometryOperationNotSupportedException,
27
        GeometryOperationException, CreateGeometryException {
28
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
29
        Polygon polygon = geometryManager.createPolygon(geom.getGeometryType().getSubType());
30
        polygon.setGeneralPath((GeneralPathX) geom.getGeneralPath().clone());
31

    
32
        for (int j = 0; j < polygon.getNumVertices(); j++) {
33
            Point point = polygon.getVertex(j);
34
          if (roi.intersects(point) || roi.contains(point)) {
35
            point.transform(at);
36
            StretchOperationUtils.setVertex(polygon, j, point);
37
          }
38
        }
39

    
40
        return polygon;
41
    }
42

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

    
47
        Polygon polygon = geometryManager.createPolygon(geom.getGeometryType().getSubType());
48
        polygon.setGeneralPath(geom.getGeneralPath());
49

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