void Doc_plugin_interface::getCurrentLayerProperties(QColor *c, QString *w, QString *t){ RS_Pen pen = docGr->getActiveLayer()->getPen(); RS_Color col = pen.getColor(); c->setRgb(col.red(), col.green(), col.blue()); w->clear(); w->append(Converter.lw2str(pen.getWidth())); t->clear(); t->append(Converter.lt2str(pen.getLineType())); }
void Plugin_Entity::getData(QHash<int, QVariant> *data){ if (entity == NULL) return; RS2::EntityType et = entity->rtti(); data->insert(DPI::EID, (qulonglong)entity->getId()); data->insert(DPI::LAYER, entity->getLayer()->getName() ); data->insert(DPI::LTYPE, Converter.lt2str(entity->getPen().getLineType()) ); data->insert(DPI::LWIDTH, Converter.lw2str(entity->getPen().getWidth()) ); data->insert(DPI::COLOR, entity->getPen().getColor() ); switch (et) { //atomicEntity case RS2::EntityLine: { data->insert(DPI::ETYPE, DPI::LINE); RS_LineData d = static_cast<RS_Line*>(entity)->getData(); data->insert(DPI::STARTX, d.startpoint.x ); data->insert(DPI::STARTY, d.startpoint.y ); data->insert(DPI::ENDX, d.endpoint.x ); data->insert(DPI::ENDY, d.endpoint.y ); break;} case RS2::EntityPoint: { data->insert(DPI::ETYPE, DPI::POINT); RS_PointData d = static_cast<RS_Point*>(entity)->getData(); data->insert(DPI::STARTX, d.pos.x ); data->insert(DPI::STARTY, d.pos.y ); break; } case RS2::EntityArc: { data->insert(DPI::ETYPE, DPI::ARC); RS_ArcData d = static_cast<RS_Arc*>(entity)->getData(); data->insert(DPI::STARTX, d.center.x ); data->insert(DPI::STARTY, d.center.y ); data->insert(DPI::RADIUS, d.radius ); data->insert(DPI::STARTANGLE, d.angle1 ); data->insert(DPI::ENDANGLE, d.angle2 ); data->insert(DPI::REVERSED, d.reversed ); break;} case RS2::EntityCircle: { data->insert(DPI::ETYPE, DPI::CIRCLE); RS_CircleData d = static_cast<RS_Circle*>(entity)->getData(); data->insert(DPI::STARTX, d.center.x ); data->insert(DPI::STARTY, d.center.y ); data->insert(DPI::RADIUS, d.radius ); break;} case RS2::EntityEllipse: { data->insert(DPI::ETYPE, DPI::ELLIPSE); // RS_EllipseData d = static_cast<RS_Ellipse*>(entity)->getData(); RS_Ellipse *dd = static_cast<RS_Ellipse*>(entity); data->insert(DPI::STARTX, dd->getCenter().x );//10 data->insert(DPI::STARTY, dd->getCenter().y );//20 data->insert(DPI::ENDX, dd->getMajorP().x );//11 endpoint major axis x data->insert(DPI::ENDY, dd->getMajorP().y );//21 endpoint major axis y data->insert(DPI::HEIGHT, dd->getRatio() );//40 major/minor axis ratio data->insert(DPI::STARTANGLE, dd->getAngle1() ); data->insert(DPI::ENDANGLE, dd->getAngle2() ); data->insert(DPI::REVERSED, dd->isReversed() ); break;} case RS2::EntitySolid: //TODO //Only used in dimensions ? data->insert(DPI::ETYPE, DPI::SOLID); break; case RS2::EntityConstructionLine: //Unused ? data->insert(DPI::ETYPE, DPI::CONSTRUCTIONLINE); break; case RS2::EntityImage: { data->insert(DPI::ETYPE, DPI::IMAGE); RS_ImageData d = static_cast<RS_Image*>(entity)->getData(); data->insert(DPI::STARTX, d.insertionPoint.x ); data->insert(DPI::STARTY, d.insertionPoint.y ); break;} case RS2::EntityOverlayBox: //Unused ? data->insert(DPI::ETYPE, DPI::OVERLAYBOX); break; //EntityContainer case RS2::EntityInsert: { data->insert(DPI::ETYPE, DPI::INSERT); RS_InsertData d = static_cast<RS_Insert*>(entity)->getData(); data->insert(DPI::STARTX, d.insertionPoint.x ); data->insert(DPI::STARTY, d.insertionPoint.y ); data->insert(DPI::BLKNAME, d.name ); data->insert(DPI::STARTANGLE, d.angle ); data->insert(DPI::XSCALE, d.scaleFactor.x ); data->insert(DPI::YSCALE, d.scaleFactor.y ); break;} case RS2::EntityText: { data->insert(DPI::ETYPE, DPI::TEXT); RS_TextData d = static_cast<RS_Text*>(entity)->getData(); data->insert(DPI::STARTX, d.insertionPoint.x ); data->insert(DPI::STARTY, d.insertionPoint.y ); data->insert(DPI::STARTANGLE, d.angle ); data->insert(DPI::HEIGHT, d.height ); data->insert(DPI::TEXTCONTENT, d.text ); break;} case RS2::EntityHatch: data->insert(DPI::ETYPE, DPI::HATCH); break; case RS2::EntitySpline: data->insert(DPI::ETYPE, DPI::SPLINE); break; case RS2::EntityPolyline: data->insert(DPI::ETYPE, DPI::POLYLINE); data->insert(DPI::CLOSEPOLY, static_cast<RS_Polyline*>(entity)->isClosed() ); break; case RS2::EntityVertex: data->insert(DPI::ETYPE, DPI::UNKNOWN); break; case RS2::EntityDimAligned: data->insert(DPI::ETYPE, DPI::DIMALIGNED); break; case RS2::EntityDimLinear: data->insert(DPI::ETYPE, DPI::DIMLINEAR); break; case RS2::EntityDimRadial: data->insert(DPI::ETYPE, DPI::DIMRADIAL); break; case RS2::EntityDimDiametric: data->insert(DPI::ETYPE, DPI::DIMDIAMETRIC); break; case RS2::EntityDimAngular: data->insert(DPI::ETYPE, DPI::DIMANGULAR); break; case RS2::EntityDimLeader: data->insert(DPI::ETYPE, DPI::DIMLEADER); break; case RS2::EntityUnknown: default: data->insert(DPI::ETYPE, DPI::UNKNOWN); break; } }