Revision 491

View differences:

org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.polarmatrix/src/main/java/org/gvsig/vectorediting/lib/prov/polarmatrix/PolarMatrixEditingProvider.java
43 43
import org.gvsig.fmap.geom.aggregate.MultiCurve;
44 44
import org.gvsig.fmap.geom.aggregate.MultiPoint;
45 45
import org.gvsig.fmap.geom.aggregate.MultiSurface;
46
import org.gvsig.fmap.geom.exception.CreateGeometryException;
46 47
import org.gvsig.fmap.geom.operation.GeometryOperationException;
47 48
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
48 49
import org.gvsig.fmap.geom.primitive.Arc;
......
335 336
        Integer elementsNumberValue, Boolean rotateElementsValue,
336 337
        Point centerPointValue, Double angle)
337 338
        throws GeometryOperationNotSupportedException,
338
        GeometryOperationException {
339
        GeometryOperationException, CreateGeometryException {
339 340

  
340 341
        Geometry[] geometryMatrix = new Geometry[elementsNumberValue];
341 342

  
......
346 347
                at = getRotateAffineTransform(centerPointValue, angle * i);
347 348
            } else {
348 349
                at = getRotateAffineTransform(centerPointValue, angle * i);
349
                Point lowerCorner = geometry.getEnvelope().getLowerCorner();
350
                Point lowerCornerCloned = (Point) lowerCorner.cloneGeometry();
351
                lowerCornerCloned.transform(at);
352
                at = getMoveAffineTransform(lowerCorner, lowerCornerCloned);
350
                
351
                double centerX = geometry.getEnvelope().getCenter(0);
352
                double centerY = geometry.getEnvelope().getCenter(1);
353
                GeometryManager geometryManager =
354
                    GeometryLocator.getGeometryManager();
355
                Point geometryCenter =
356
                    geometryManager.createPoint(centerX, centerY, GEOM2D);
357
                
358
                Point geometryCenterCloned = (Point) geometryCenter.cloneGeometry();
359
                geometryCenterCloned.transform(at);
360
                at = getMoveAffineTransform(geometryCenter, geometryCenterCloned);
353 361
            }
354 362

  
355 363
            Geometry clonedGeometry = geometry.cloneGeometry();

Also available in: Unified diff