Ticket #2772: os_curvedpolygon.diff
| File os_curvedpolygon.diff, 3.0 KB (added by , 15 years ago) |
|---|
-
maporaclespatial.c
177 177 static void osClosedPolygon(msOracleSpatialHandler *hand, shapeObj *shape, SDOGeometryObj *obj, int start, int end, lineObj points, int elem_type, int data3d); 178 178 static void osRectangle(msOracleSpatialHandler *hand, shapeObj *shape, SDOGeometryObj *obj, int start, int end, lineObj points, pointObj *pnt, int data3d); 179 179 static void osCircle(msOracleSpatialHandler *hand, shapeObj *shape, SDOGeometryObj *obj, int start, int end, lineObj points, pointObj *pnt, int data3d); 180 static void osArcPolygon(msOracleSpatialHandler *hand, shapeObj *shape, SDOGeometryObj *obj, int start, int end, lineObj arcpoints, int data3d);180 static void osArcPolygon(msOracleSpatialHandler *hand, shapeObj *shape, SDOGeometryObj *obj, int start, int end, lineObj arcpoints,int elem_type,int data3d); 181 181 static int osGetOrdinates(msOracleSpatialDataHandler *dthand, msOracleSpatialHandler *hand, shapeObj *shape, SDOGeometryObj *obj, SDOGeometryInd *ind); 182 182 static int osCheck2DGtype(int pIntGtype); 183 183 static int osCheck3DGtype(int pIntGtype); … … 1283 1283 } 1284 1284 } 1285 1285 1286 static void osArcPolygon(msOracleSpatialHandler *hand, shapeObj *shape, SDOGeometryObj *obj, int start, int end, lineObj arcpoints, int data3d)1286 static void osArcPolygon(msOracleSpatialHandler *hand, shapeObj *shape, SDOGeometryObj *obj, int start, int end, lineObj arcpoints, int elem_type, int data3d) 1287 1287 { 1288 1288 int n, i; 1289 1289 lineObj points = {0, NULL}; … … 1298 1298 1299 1299 if (n > 2) 1300 1300 { 1301 shape->type = MS_SHAPE_LINE;1301 shape->type = (elem_type==32) ? MS_SHAPE_POLYGON : MS_SHAPE_LINE; 1302 1302 points.numpoints = n; 1303 1303 1304 1304 for (i = 0; i < n-2; i = i+2) … … 1469 1469 break; 1470 1470 case 22: /* compound type */ 1471 1471 if (compound_type) 1472 osArcPolygon(hand, &newshape, obj, ord_start, (compound_count<compound_lenght)?ord_end+2:ord_end , points, data3d);1472 osArcPolygon(hand, &newshape, obj, ord_start, (compound_count<compound_lenght)?ord_end+2:ord_end , points, elem_type, data3d); 1473 1473 else 1474 osArcPolygon(hand, shape, obj, ord_start, ord_end, points, data3d);1474 osArcPolygon(hand, shape, obj, ord_start, ord_end, points, elem_type, data3d); 1475 1475 break; 1476 1476 case 31: /* simple polygon with n points, last point equals the first one */ 1477 1477 osClosedPolygon(hand, shape, obj, ord_start, ord_end, points, elem_type, data3d); 1478 1478 break; 1479 case 32: /* Polygon with arcs */ 1480 osArcPolygon(hand, shape, obj, ord_start, ord_end, points, elem_type, data3d); 1481 break; 1479 1482 case 33: /* rectangle defined by 2 points */ 1480 1483 osRectangle(hand, shape, obj, ord_start, ord_end, points, point5, data3d); 1481 1484 break;
