Revision 2101

View differences:

org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.regularpolygon/src/main/java/org/gvsig/vectorediting/lib/prov/regularpolygon/FilledRegularPolygonEditingProvider.java
96 96
                Polygon polygon =
97 97
                    calculateFilledPolygon(modeValue, centerValue,
98 98
                        pointOfCircleValue, sidesValue);
99
                if (polygon != null) {
100
                    EditingProviderServices editingProviderServices
101
                            = (EditingProviderServices) getProviderServices();
102
                    GeometryType geomType
103
                            = editingProviderServices.getGeomType(featureStore);
99 104

  
100
                EditingProviderServices editingProviderServices =
101
                    (EditingProviderServices) getProviderServices();
102
                GeometryType geomType =
103
                    editingProviderServices.getGeomType(featureStore);
104

  
105
                if (geomType.isTypeOf(Geometry.TYPES.MULTISURFACE)) {
106
                    GeometryManager geometryManager =
107
                        GeometryLocator.getGeometryManager();
108
                    MultiSurface multiSurface =
109
                        geometryManager.createMultiSurface(geomType
110
                            .getSubType());
111
                    multiSurface.addSurface(polygon);
112
                    return multiSurface;
105
                    if (geomType.isTypeOf(Geometry.TYPES.MULTISURFACE)) {
106
                        GeometryManager geometryManager
107
                                = GeometryLocator.getGeometryManager();
108
                        MultiSurface multiSurface
109
                                = geometryManager.createMultiSurface(geomType
110
                                        .getSubType());
111
                        multiSurface.addSurface(polygon);
112
                        return multiSurface;
113
                    }
113 114
                }
114 115

  
115 116
                return polygon;
......
146 147
        Curve polygon =
147 148
            calculateRegularPolygon(modeValue, centerValue, pointOfCircleValue,
148 149
                sides);
150
        if(polygon==null){
151
            return null;
152
        }        
149 153

  
150 154
        Point vertexAnt = null;
151 155
        for (int i = 0; i < polygon.getNumVertices(); i++) {
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.regularpolygon/src/main/java/org/gvsig/vectorediting/lib/prov/regularpolygon/RegularPolygonEditingProvider.java
205 205
                    circumference.setPoints(centerValue, radius);
206 206

  
207 207
                    drawingStatus.addStatus(circumference, auxiliaryLineSymbolEditing, "");
208
                    drawingStatus.addStatus(polygon, lineSymbolEditing, "");
208
                    if(polygon!=null){
209
                        drawingStatus.addStatus(polygon, lineSymbolEditing, "");
210
                    }
209 211
                    drawingStatus.addStatus(centerValue, auxiliaryPointSymbolEditing, "");
210 212
                    drawingStatus.addStatus(line, auxiliaryLineSymbolEditing, "");
211 213

  
......
246 248
        double initAngle =
247 249
            editingProviderServices.getAngle(centerValue, pointOfCircle);
248 250
        double radiusValue = pointOfCircle.distance(centerValue);
251
        if(radiusValue == 0.0){
252
            return null;
253
        }
249 254
        double theta = -(2 * Math.PI) / sidesValue;
250 255

  
251 256
        if (modeValue.equalsIgnoreCase("key_inscribed")) {
......
480 485
                Curve polygon =
481 486
                    calculateRegularPolygon(modeValue, centerValue,
482 487
                        pointOfCircleValue, sidesValue);
488
                if(polygon!=null){
489
                    EditingProviderServices editingProviderServices =
490
                        (EditingProviderServices) getProviderServices();
491
                    GeometryType geomType =
492
                        editingProviderServices.getGeomType(featureStore);
483 493

  
484
                EditingProviderServices editingProviderServices =
485
                    (EditingProviderServices) getProviderServices();
486
                GeometryType geomType =
487
                    editingProviderServices.getGeomType(featureStore);
494
                    if (geomType.isTypeOf(Geometry.TYPES.MULTICURVE)) {
488 495

  
489
                if (geomType.isTypeOf(Geometry.TYPES.MULTICURVE)) {
490
//                    return polygon.toLines();
491

  
492
                    MultiCurve multiCurve =
493
                        GeometryLocator.getGeometryManager().createMultiCurve(
494
                            geomType.getSubType());
495
                    multiCurve.addCurve(polygon);
496
                    return multiCurve;
496
                        MultiCurve multiCurve =
497
                            GeometryLocator.getGeometryManager().createMultiCurve(
498
                                geomType.getSubType());
499
                        multiCurve.addCurve(polygon);
500
                        return multiCurve;
501
                    }
497 502
                }
498 503

  
499 504
                return polygon;

Also available in: Unified diff