Пример #1
0
		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();
		}
Пример #2
0
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;
}