Revision 47432 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/surface/polygon/Polygon3D.java

View differences:

Polygon3D.java
22 22
 */
23 23
package org.gvsig.fmap.geom.jts.primitive.surface.polygon;
24 24

  
25
import com.vividsolutions.jts.geom.Coordinate;
26
import com.vividsolutions.jts.geom.CoordinateSequence;
27
import java.awt.Shape;
25 28
import java.awt.geom.AffineTransform;
26 29
import java.awt.geom.PathIterator;
27 30
import java.util.ArrayList;
28 31
import java.util.Iterator;
29 32
import java.util.List;
30

  
31
import com.vividsolutions.jts.geom.Coordinate;
32
import com.vividsolutions.jts.geom.GeometryFactory;
33
import com.vividsolutions.jts.geomgraph.Position;
34
import com.vividsolutions.jts.operation.buffer.BufferParameters;
35
import com.vividsolutions.jts.operation.buffer.OffsetCurveBuilder;
36
import java.awt.Shape;
37
import java.awt.geom.GeneralPath;
38

  
39 33
import org.cresques.cts.ICoordTrans;
40

  
41 34
import org.gvsig.fmap.geom.Geometry;
42 35
import org.gvsig.fmap.geom.GeometryException;
43 36
import org.gvsig.fmap.geom.aggregate.MultiLine;
......
45 38
import org.gvsig.fmap.geom.jts.GeometryJTS;
46 39
import org.gvsig.fmap.geom.jts.aggregate.MultiLine3D;
47 40
import org.gvsig.fmap.geom.jts.aggregate.MultiPolygon3D;
48
import org.gvsig.fmap.geom.jts.gputils.DefaultGeneralPathX;
41
import org.gvsig.fmap.geom.jts.mgeom.MCoordinate;
49 42
import org.gvsig.fmap.geom.jts.primitive.curve.line.BaseLine3D;
50 43
import org.gvsig.fmap.geom.jts.primitive.curve.line.Line3D;
51 44
import org.gvsig.fmap.geom.jts.primitive.point.Point3D;
52
import org.gvsig.fmap.geom.jts.primitive.ring.Ring2D;
53 45
import org.gvsig.fmap.geom.jts.primitive.ring.Ring3D;
54 46
import org.gvsig.fmap.geom.jts.primitive.surface.split.SurfaceSplitOperation;
55 47
import org.gvsig.fmap.geom.jts.util.ArrayListCoordinateSequence;
......
90 82
        super(Geometry.TYPES.POLYGON, coordinates);
91 83
        closePrimitive();
92 84
    }
85
    
86
    public Polygon3D(ArrayListCoordinateSequence coordinates) {
87
        super(Geometry.TYPES.POLYGON, coordinates);
88
        closePrimitive();
89
    }
90
    
93 91

  
94 92
    /* (non-Javadoc)
95 93
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
......
119 117
    }
120 118
    
121 119
    @Override
120
    public Geometry force2DM() throws GeometryOperationNotSupportedException, GeometryOperationException {
121
        ArrayListCoordinateSequence coordinates2DM = new ArrayListCoordinateSequence(coordinates.size());
122
        for (Coordinate coordinate : this.coordinates) {
123
            coordinates2DM.add(MCoordinate.create2dWithMeasure(coordinate.x, coordinate.y, 0));
124
        }
125
        Polygon2DM poligon2DM = new Polygon2DM(coordinates2DM);
126
        poligon2DM.setProjection(this.getProjection());
127
        for (int i = 0; i < getNumInteriorRings(); i++){
128
            poligon2DM.addInteriorRing((Ring)getInteriorRing(i).force2DM());
129
        }
130
        return poligon2DM;
131
    }
132

  
133
    @Override
134
    public Geometry force3D() throws GeometryOperationNotSupportedException, GeometryOperationException {
135
        ArrayListCoordinateSequence coordinates3D = new ArrayListCoordinateSequence(coordinates.size());
136
        for (Coordinate coordinate : this.coordinates) {
137
            coordinates3D.add(new Coordinate(coordinate.x, coordinate.y, coordinate.z));
138
        }
139
        Polygon3D poligon3D = new Polygon3D(coordinates3D);
140
        poligon3D.setProjection(this.getProjection());
141
        for (int i = 0; i < getNumInteriorRings(); i++){
142
            poligon3D.addInteriorRing((Ring)getInteriorRing(i).force3D());
143
        }
144
        return poligon3D;
145
    }
146

  
147
    @Override
148
    public Geometry force3DM() throws GeometryOperationNotSupportedException, GeometryOperationException {
149
        ArrayListCoordinateSequence coordinates3DM = new ArrayListCoordinateSequence(coordinates.size());
150
        for (Coordinate coordinate : this.coordinates) {
151
            coordinates3DM.add(MCoordinate.create3dWithMeasure(coordinate.x, coordinate.y, coordinate.z, 0));
152
        }
153
        Polygon3DM poligon3DM = new Polygon3DM(coordinates3DM);
154
        poligon3DM.setProjection(this.getProjection());
155
        for (int i = 0; i < getNumInteriorRings(); i++){
156
            poligon3DM.addInteriorRing((Ring)getInteriorRing(i).force3DM());
157
        }
158
        return poligon3DM;
159
    }
160

  
161
    
162
    
163
    @Override
122 164
    @SuppressWarnings("CloneDoesntCallSuperClone")
123 165
    public Polygon clone() throws CloneNotSupportedException {
124 166
        return this.cloneGeometry();
......
312 354
            for (int i = 0; i < this.getNumVertices(); i++) {
313 355
                Coordinate coordinate = this.coordinates.get(i);
314 356
                Coordinate otherCoordinate = other.coordinates.get(i);
315
                if (otherCoordinate.getOrdinate(2) != coordinate.getOrdinate(2)) {
357
                if (otherCoordinate.getOrdinate(CoordinateSequence.Z) != coordinate.getOrdinate(CoordinateSequence.Z)) {
316 358
                    return false;
317 359
                }
318 360
            }

Also available in: Unified diff