void RS_GraphicView::drawOverlay(RS_Painter *painter) { QList<int> const& keys=overlayEntities.keys(); for (int i = 0; i < keys.size(); ++i) { if (overlayEntities[i]) { setPenForEntity(painter, overlayEntities[i] ); drawEntityPlain(painter, overlayEntities[i]); } } }
void RS_GraphicView::drawEntity(RS_Painter *painter, RS_Entity* e, double& patternOffset) { // update is diabled: // given entity is nullptr: if (!e) { return; } // entity is not visible: if (!e->isVisible()) { return; } if( isPrintPreview() || isPrinting() ) { // do not draw construction layer on print preview or print if( ! e->isPrint() || e->isConstruction()) return; } // test if the entity is in the viewport /* temporary disabled so rs_overlaylien can be drawn if (!e->isContainer() && !isPrinting() && (painter==nullptr || !painter->isPreviewMode()) && (toGuiX(e->getMax().x)<0 || toGuiX(e->getMin().x)>getWidth() || toGuiY(e->getMin().y)<0 || toGuiY(e->getMax().y)>getHeight())) { return; } */ // set pen (color): setPenForEntity(painter, e ); //RS_DEBUG->print("draw plain"); if (isDraftMode()) { switch(e->rtti()){ case RS2::EntityMText: case RS2::EntityText: if (toGuiDX(((RS_MText*)e)->getHeight())<4 || e->countDeep()>100) { // large or tiny texts as rectangles: painter->drawRect(toGui(e->getMin()), toGui(e->getMax())); } else { drawEntityPlain(painter, e, patternOffset); } break; case RS2::EntityImage: // all images as rectangles: painter->drawRect(toGui(e->getMin()), toGui(e->getMax())); break; case RS2::EntityHatch: //skip hatches break; default: drawEntityPlain(painter, e, patternOffset); } } else { drawEntityPlain(painter, e, patternOffset); } // draw reference points: if (e->isSelected()) { if (!e->isParentSelected()) { RS_VectorSolutions const& s = e->getRefPoints(); for (size_t i=0; i<s.getNumber(); ++i) { int sz = -1; RS_Color col = handleColor; if (i == 0) { col = startHandleColor; } else if (i == s.getNumber() - 1) { col = endHandleColor; } if (getDeleteMode()) { painter->drawHandle(toGui(s.get(i)), background, sz); } else { painter->drawHandle(toGui(s.get(i)), col, sz); } } } } //RS_DEBUG->print("draw plain OK"); //RS_DEBUG->print("RS_GraphicView::drawEntity() end"); }
void RS_GraphicView::drawEntity(RS_Painter *painter, RS_Entity* e, double& patternOffset) { // update is diabled: // given entity is NULL: if (e==NULL) { return; } // entity is not visible: if (!e->isVisible()) { return; } if( isPrintPreview() ) { //do not draw help layer on print preview if(e->isHelpLayer()) return; } // test if the entity is in the viewport /* temporary disabled so rs_overlaylien can be drawn if (!e->isContainer() && !isPrinting() && (painter==NULL || !painter->isPreviewMode()) && (toGuiX(e->getMax().x)<0 || toGuiX(e->getMin().x)>getWidth() || toGuiY(e->getMin().y)<0 || toGuiY(e->getMax().y)>getHeight())) { return; } */ // set pen (color): setPenForEntity(painter, e ); //RS_DEBUG->print("draw plain"); if (isDraftMode()) { // large mtexts as rectangles: if (e->rtti()==RS2::EntityMText) { if (toGuiDX(((RS_MText*)e)->getHeight())<4 || e->countDeep()>100) { painter->drawRect(toGui(e->getMin()), toGui(e->getMax())); } else { drawEntityPlain(painter, e, patternOffset); } } // large texts as rectangles: else if (e->rtti()==RS2::EntityText) { if (toGuiDX(((RS_Text*)e)->getHeight())<4 || e->countDeep()>100) { painter->drawRect(toGui(e->getMin()), toGui(e->getMax())); } else { drawEntityPlain(painter, e, patternOffset); } } // all images as rectangles: else if (e->rtti()==RS2::EntityImage) { painter->drawRect(toGui(e->getMin()), toGui(e->getMax())); } // hide hatches: else if (e->rtti()==RS2::EntityHatch) { // nothing } else { drawEntityPlain(painter, e, patternOffset); } } else { drawEntityPlain(painter, e, patternOffset); } // draw reference points: if (e->isSelected()) { if (!e->isParentSelected()) { RS_VectorSolutions s = e->getRefPoints(); for (int i=0; i<s.getNumber(); ++i) { int sz = -1; RS_Color col = RS_Color(0,0,255); if (e->rtti()==RS2::EntityPolyline) { if (i==0 || i==s.getNumber()-1) { if (i==0) { sz = 4; col = QColor(0,64,255); } else { sz = 3; col = QColor(0,0,128); } } } if (getDeleteMode()) { painter->drawHandle(toGui(s.get(i)), background, sz); } else { painter->drawHandle(toGui(s.get(i)), col, sz); } } } } //RS_DEBUG->print("draw plain OK"); //RS_DEBUG->print("RS_GraphicView::drawEntity() end"); }