void ActionGraphicsItem::paint(QPainter * painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) { if(elementLayout() == 0) return; const ElementLayout & el = *elementLayout(); painter->save(); // use the right brush & pen painter->setPen(isHovered() ? el.selectedStrokePen() : el.strokePen()); painter->setBrush(isHovered() ? el.selectedBackgroundBrush() : el.backgroundBrush()); // draw the shape painter->drawRoundedRect(innerRect(), el.roundness(), el.roundness()); drawConnector(inputLayout(), QPointF(0,0), painter, isHovered()); // draw the label if(delegate()) { QTransform transform = QTransform::fromTranslate(labelStart().x(), labelStart().y()); painter->setTransform(transform, true); delegate()->paint(painter, element()); } painter->restore(); }
int drawAllConnectors(struct VirtualStream * scene,unsigned int timestampToUse, float scaleX, float scaleY, float scaleZ) { //Draw all connectors float posStackA[7]={0}; float posStackB[7]={0}; float * pos1 = (float*) &posStackA; float * pos2 = (float*) &posStackB; unsigned int i=0; for (i=0; i<scene->numberOfConnectors; i++) { if ( ( calculateVirtualStreamPos(scene,scene->connector[i].objID_A,timestampToUse,pos1,0,&scaleX,&scaleY,&scaleZ) ) && ( calculateVirtualStreamPos(scene,scene->connector[i].objID_B,timestampToUse,pos2,0,&scaleX,&scaleY,&scaleZ) ) ) { /* fprintf(stderr,"Draw drawConnector %u( Object %u ( %f %f %f ) to Object %u ( %f %f %f ) )\n",i, scene->connector[i].objID_A , pos1[0],pos1[1],pos1[2], scene->connector[i].objID_B , pos2[0],pos2[1],pos2[2]);*/ float scale = (float) scene->connector[i].scale; drawConnector( pos1, pos2, &scale , &scene->connector[i].R , &scene->connector[i].G , &scene->connector[i].B , &scene->connector[i].Transparency ); } else { fprintf(stderr,YELLOW "Could not determine position of objects for connector %u\n" NORMAL,i); } } return 1; }