void dibSHP::readPoint(DBFHandle dh, int i){ Plug_Entity *ent =NULL; QHash<int, QVariant> data; if (pointF < 0) { ent = currDoc->newEntity(DPI::POINT); ent->getData(&data); } else { ent = currDoc->newEntity(DPI::TEXT); ent->getData(&data); data.insert(DPI::TEXTCONTENT, DBFReadStringAttribute( dh, i, pointF ) ); } data.insert(DPI::STARTX, *(sobject->padfX)); data.insert(DPI::STARTY, *(sobject->padfY)); readAttributes(dh, i); data.insert(DPI::LAYER, attdata.layer); ent->updateData(&data); currDoc->addEntity(ent); }
void dibSHP::readPolyline(DBFHandle dh, int i){ int maxPoints; Plug_Entity *ent =NULL; QHash<int, QVariant> data; QList<Plug_VertexData> vl; readAttributes(dh, i); data.insert(DPI::LAYER, attdata.layer); for( int i = 0; i < sobject->nParts; i++ ) { if ( (i+1) < sobject->nParts) maxPoints = sobject->panPartStart[i+1]; else maxPoints = sobject->nVertices; vl.clear(); for( int j = sobject->panPartStart[i]; j < maxPoints; j++ ) { vl.append( Plug_VertexData( QPointF(sobject->padfX[j],sobject->padfY[j]), 0.0) ); } if (vl.size() > 2 ) { ent = currDoc->newEntity(DPI::POLYLINE); ent->updateData(&data); currDoc->addEntity(ent); ent->updatePolylineData(&vl); } } }