Exemple #1
0
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;
}
Exemple #2
0
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;
}
Exemple #3
0
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);
}
Exemple #4
0
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);
        }
    }
}