QString CAD::getData(int eid, QString entityData) { enum DPI::EDATA edata = QStringToPluginEntityData(entityData); if (edata == DPI::ETYPE) return ""; Plug_Entity *pe = entityMap.value(eid); QHash<int,QVariant> data; pe->getData(&data); QString val = (data.value(edata)).toString(); return val; }
int CAD::newEntity(QString entityType) { enum DPI::ETYPE type = QStringToPluginEntityType(entityType); if (type == DPI::UNKNOWN) return 0; Plug_Entity *pe = _doc->newEntity(type); QHash<int,QVariant> data; pe->getData(&data); int eid = (data.take(DPI::EID)).toInt(); entityMap.insert(eid,pe); return eid; }
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); } } }