public EsriGraphicList getPolyGeometry(int[][] indexData, int shapeType)
throws Exception {
EsriGraphicList list = null;
if (shapeType == SHAPE_TYPE_POLYLINE) {
list = new EsriPolylineList();
} else if (shapeType == SHAPE_TYPE_POLYGON) {
list = new EsriPolygonList();
}
int numVertices;
int numShapes = indexData[1].length;
for (int t = 0; t < numShapes; t++) {
Integer shpRecordIndex = new Integer(_leis.readInt());
/* int shpContentLength = */_leis.readInt();
int shpType = _leis.readLEInt();
if (shpType != SHAPE_TYPE_NULL) {
/* double xLeft = */_leis.readLEDouble();
/* double xBottom = */_leis.readLEDouble();
/* double xRight = */_leis.readLEDouble();
/* double xTop = */_leis.readLEDouble();
int numParts = _leis.readLEInt();
int numPoints = _leis.readLEInt();
int[] offsets = new int[numParts];
// OK, we don't want to create a sublist unless the poly
// has multiple parts. Remember that. sublist will only
// be created if there is more than one part.
for (int n = 0; n < numParts; n++) {
offsets[n] = _leis.readLEInt();
}
float[] points;
OMGraphic poly = null;
EsriGraphicList sublist = null;
if (numParts > 1) {
if (shapeType == SHAPE_TYPE_POLYLINE) {
sublist = new EsriPolylineList();
} else if (shapeType == SHAPE_TYPE_POLYGON) {
sublist = new EsriPolygonList();
}
sublist.setVague(true); // Treat sublist as one