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 / EllipticArcStretchOperation.java @ 320

History | View | Annotate | Download (2.35 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.Arc;
14
import org.gvsig.fmap.geom.primitive.Circle;
15
import org.gvsig.fmap.geom.primitive.Ellipse;
16
import org.gvsig.fmap.geom.primitive.EllipticArc;
17
import org.gvsig.fmap.geom.primitive.Line;
18
import org.gvsig.fmap.geom.primitive.Point;
19
import org.gvsig.fmap.geom.primitive.Polygon;
20
import org.gvsig.fmap.geom.primitive.Primitive;
21

    
22

    
23
public class EllipticArcStretchOperation implements StretchOperation{
24

    
25
    public EllipticArcStretchOperation() {
26
        // TODO Auto-generated constructor stub
27
    }
28

    
29
    public Geometry transform(AffineTransform at, Primitive geom, Geometry roi)
30
        throws GeometryOperationNotSupportedException,
31
        GeometryOperationException, CreateGeometryException {
32
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
33
        Polygon polygon = geometryManager.createPolygon(geom.getGeometryType().getSubType());
34

    
35
        EllipticArc ellipticArc = ((EllipticArc)geom);
36

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

    
47
    public List<Point> getSelectedVertex(Primitive geom, Geometry roi) throws GeometryOperationNotSupportedException, GeometryOperationException, CreateGeometryException {
48
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
49
        List<Point> vertexList = new ArrayList<Point>();
50
        EllipticArc ellipticArc = ((EllipticArc)geom);
51

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