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

History | View | Annotate | Download (2.24 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.GeometryLocator;
8
import org.gvsig.fmap.geom.GeometryManager;
9
import org.gvsig.fmap.geom.exception.CreateGeometryException;
10
import org.gvsig.fmap.geom.operation.GeometryOperationException;
11
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
12
import org.gvsig.fmap.geom.primitive.GeneralPathX;
13
import org.gvsig.fmap.geom.primitive.Line;
14
import org.gvsig.fmap.geom.primitive.Point;
15
import org.gvsig.fmap.geom.primitive.Primitive;
16

    
17

    
18
public class CurveStretchOperation implements StretchOperation{
19

    
20
    public CurveStretchOperation() {
21
        // TODO Auto-generated constructor stub
22
    }
23

    
24
    @Override
25
    public Geometry transform(AffineTransform at, Primitive geom, Geometry roi)
26
        throws GeometryOperationNotSupportedException,
27
        GeometryOperationException, CreateGeometryException {
28
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
29
        Line line = geometryManager.createLine(geom.getGeometryType().getSubType());
30
        line.setGeneralPath((GeneralPathX) geom.getGeneralPath().clone());
31
        for (int j = 0; j < line.getNumVertices(); j++) {
32
            Point point = line.getVertex(j);
33
          if (roi.intersects(point) || roi.contains(point)) {
34
            point.transform(at);
35
            StretchOperationUtils.setVertex(line, j, point);
36
          }
37
        }
38
        return line;
39
    }
40

    
41
    @Override
42
    public List<Point> getSelectedVertex(Primitive geom, Geometry roi) throws GeometryOperationNotSupportedException, GeometryOperationException, CreateGeometryException {
43
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
44
        List<Point> vertexList = new ArrayList<>();
45
        Line line = geometryManager.createLine(geom.getGeometryType().getSubType());
46
        line.setGeneralPath(geom.getGeneralPath());
47
        for (int j = 0; j < line.getNumVertices(); j++) {
48
            Point point = line.getVertex(j);
49
          if (roi.intersects(point) || roi.contains(point)) {
50
              vertexList.add(point);
51
          }
52
        }
53
        return vertexList;
54
    }
55
}