| 1478 | } |
| 1479 | |
| 1480 | static void osArcPolygon(msOracleSpatialHandler *hand, shapeObj *shape, SDOGeometryObj *obj, int start, int end, lineObj arcpoints, int elem_type, int data3d, int data4d) |
| 1481 | { |
| 1482 | int n, i; |
| 1483 | lineObj points = {0, NULL}; |
| 1484 | |
| 1485 | n = (end - start)/2; |
| 1486 | points.point = (pointObj *)malloc( sizeof(pointObj)*n ); |
| 1487 | |
| 1488 | if (data3d) |
| 1489 | n = msOCIGet3DOrdinates( hand, obj, start, end, points.point ); |
| 1490 | else if (data4d) |
| 1491 | n = msOCIGet4DOrdinates( hand, obj, start, end, points.point ); |
| 1492 | else |
| 1493 | n = msOCIGet2DOrdinates( hand, obj, start, end, points.point ); |
| 1494 | |
| 1495 | if (n > 2) |
| 1496 | { |
| 1497 | shape->type = (elem_type==32) ? MS_SHAPE_POLYGON : MS_SHAPE_LINE; |
| 1498 | points.numpoints = n; |
| 1499 | |
| 1500 | for (i = 0; i < n-2; i = i+2) |
| 1501 | osGenerateArc(shape, arcpoints, points, i, n, data3d, data4d); |
| 1502 | } |
| 1503 | free (points.point); |
| 1504 | } |
| 1505 | |
| 1506 | static int osCheck2DGtype(int pIntGtype) |
| 1507 | { |
no test coverage detected