Exemple #1
0
void MainWindow::reDraw(){
  scene = new QGraphicsScene(this);
  //set background color
  QColor myColor( 50, 100, 100,  255 );
  ui->graphicsView->setBackgroundBrush(QBrush(myColor, Qt::SolidPattern));
  ui->graphicsView->setScene(scene);

  //set window to view
  scene->setSceneRect(0,0,400,400);

  //update background colors according to their temperatures
  updateTemperatures();


  //redraw robots

  // NOTE -IF WE FIX UPDATES USE robots[i].updateDrawPosition(scene)
  for(unsigned i = 0; i<robots.size(); i++){
    //robots[i].randUpdateDrawPosition(scene);
    robots[i].updateDrawPosition(scene);
  }

  //redraw environment objects
  for(unsigned i = 0; i<environmentObjects.size(); i++){
    environmentObjects[i].updateDrawPosition(scene);
  }
}
Exemple #2
0
void Vertex::draw(Object const &obj) const {
    // Indices can be -1 to indicate that data does not exist.
    // We don't do anything with normals because there isn't a myNormal.
    if (ti_ >= 0) {
        myTexCoord(obj.texCoords_[ti_][0], obj.texCoords_[ti_][1]);
    }
    if (ci_ >= 0) {
        myColor(obj.colors_[ci_][0], obj.colors_[ci_][1], obj.colors_[ci_][2]);
    }
    if (ni_ >= 0) {
        myNormal(obj.normals_[ni_][0], obj.normals_[ni_][1], obj.normals_[ni_][2]);
    }
    myVertex(obj.positions_[pi_][0], obj.positions_[pi_][1], obj.positions_[pi_][2]);
}
Exemple #3
0
QPen MainWindow::getPenFromTemp(int temp){
  //assume temp goes from 0 to 100

  //dont let the temperature go over 100
  if(temp > 100) temp = 100;
  int redComponent = ((double)temp / 100) * 255;
  //to make white
  int otherComponent = 0;
  if(redComponent > 180)
    otherComponent = redComponent - 180;

  QColor myColor( redComponent, 100+otherComponent, 100+otherComponent,  255 );
  QBrush myBrush(  myColor, Qt::SolidPattern );
  QPen pen(myBrush, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
  return pen;
}
Exemple #4
0
void ege::Element::drawLife(ememory::SharedPtr<ewol::resource::Colored3DObject> _draw, ememory::SharedPtr<ege::Camera> _camera) {
	if (_draw == nullptr) {
		return;
	}
	float ratio = getLifeRatio();
	if (ratio == 1.0f) {
		return;
	}
	#if 0
	mat4 transformationMatrix =   etk::matTranslate(getPosition())
	                            * etk::matRotate(vec3(0,0,1),_camera.getAngleZ())
	                            * etk::matRotate(vec3(1,0,0),(M_PI/2.0f-_camera.getAngleTeta()));
	std::vector<vec3> localVertices;
	localVertices.push_back(vec3(-lifeWidth/2.0-lifeBorder,lifeYPos           -lifeBorder,0));
	localVertices.push_back(vec3(-lifeWidth/2.0-lifeBorder,lifeYPos+lifeHeight+lifeBorder,0));
	localVertices.push_back(vec3( lifeWidth/2.0+lifeBorder,lifeYPos+lifeHeight+lifeBorder,0));
	localVertices.push_back(vec3(-lifeWidth/2.0-lifeBorder,lifeYPos           -lifeBorder,0));
	localVertices.push_back(vec3( lifeWidth/2.0+lifeBorder,lifeYPos+lifeHeight+lifeBorder,0));
	localVertices.push_back(vec3( lifeWidth/2.0+lifeBorder,lifeYPos           -lifeBorder,0));
	etk::Color<float> myColor(0x0000FF99);
	_draw->draw(localVertices, myColor, transformationMatrix, false, false);
	localVertices.clear();
	/** Bounding box  == > model shape **/
	localVertices.push_back(vec3(-lifeWidth/2.0                ,lifeYPos,0));
	localVertices.push_back(vec3(-lifeWidth/2.0                ,lifeYPos + lifeHeight,0));
	localVertices.push_back(vec3(-lifeWidth/2.0+lifeWidth*ratio,lifeYPos + lifeHeight,0));
	localVertices.push_back(vec3(-lifeWidth/2.0                ,lifeYPos,0));
	localVertices.push_back(vec3(-lifeWidth/2.0+lifeWidth*ratio,lifeYPos + lifeHeight,0));
	localVertices.push_back(vec3(-lifeWidth/2.0+lifeWidth*ratio,lifeYPos,0));
	myColor =0x00FF00FF;
	if (ratio < 0.2f) {
		myColor = 0xFF0000FF;
	} else if (ratio < 0.4f) {
		myColor = 0xDA7B00FF;
	}
	_draw->draw(localVertices, myColor, transformationMatrix, false, false);
	#endif
}
Exemple #5
0
void Lien::redraw(QPainter *painter, const QStyleOptionGraphicsItem *,QWidget *)
 {
     qDebug()<<"void lien::paint(QPainter *painter, const QStyleOptionGraphicsItem *,QWidget *)";
     if (t1->collidesWithItem(t2))
         return;
     QColor myColor(Qt::red);
     QPen myPen = laLigne->pen();
     myPen.setColor(myColor);
     painter->setPen(myPen);
     painter->setBrush(myColor);
     QPointF origine=t1->pos()+QPointF(t1->boundingRect().width()/2,10);
     QPointF destination=t2->pos()+QPointF(t2->boundingRect().width()/2,10);
     QLineF centerLine(origine,destination);
     QPolygonF endPolygon = t2->polygon();
     QPolygonF beginPolygon = t1->polygon();

     QPointF p1 = endPolygon.first()+t2->pos() ;
     QPointF p2;
     QPointF intersectPointT2;
     QLineF polyLine;
     for (int i = 1; i < endPolygon.count(); ++i)
     {
         p2 = endPolygon.at(i)+t2->pos();
         polyLine = QLineF(p1, p2);
         QLineF::IntersectType intersectType =
                 polyLine.intersect(centerLine, &intersectPointT2);
         if (intersectType == QLineF::BoundedIntersection)
             break;
         p1 = p2;
     }
     p1 = beginPolygon.first()+t1->pos() ;

     QPointF intersectPointT1;

     for (int i = 1; i < beginPolygon.count(); ++i)
     {
         p2 = beginPolygon.at(i)+t1->pos();
         polyLine = QLineF(p1, p2);
         QLineF::IntersectType intersectType =
                 polyLine.intersect(centerLine, &intersectPointT1);
         if (intersectType == QLineF::BoundedIntersection)
             break;
         p1 = p2;
     }
     laLigne->setLine(QLineF(intersectPointT1,intersectPointT2));
if(typeDeJointure=="Cross")
     {

         texte1->document()->setPlainText("X");

         texte2->document()->setPlainText("X");
     }
     else
{
     if(typeDeJointure=="Natural")
     {

         texte1->document()->setPlainText("?");

         texte2->document()->setPlainText("?");
     }
     else
     {
         if(typeDeJointure=="Inner")
         {

             texte1->document()->setPlainText("=");

             texte2->document()->setPlainText("=");
         }
         else
         {
             if(typeDeJointure=="left outer")
         {

             texte1->document()->setPlainText("+=");

             texte2->document()->setPlainText("");
         }
         else
         {
             if(typeDeJointure=="right outer")
         {

             texte1->document()->setPlainText("");

             texte2->document()->setPlainText("+=");
         }

         }

         }
     }
 }
         QPointF posTexte1,posTexte2;

         if(intersectPointT1.x()<intersectPointT2.x())
         {
             posTexte1.setX(intersectPointT1.x());
             posTexte2.setX(intersectPointT2.x()-texte2->document()->size().width());

         }
         else
         {
             posTexte2.setX(intersectPointT2.x());
             posTexte1.setX(intersectPointT1.x()-texte1->document()->size().width());

         }
         if(intersectPointT1.y()<intersectPointT2.y())
         {
             posTexte1.setY(intersectPointT1.y());
             posTexte2.setY(intersectPointT2.y()-texte2->document()->size().height());
         }
         else
         {
             posTexte2.setY(intersectPointT2.y());
             posTexte1.setY(intersectPointT1.y()-texte1->document()->size().height());
         }
         texte1->setPos(posTexte1);
         texte2->setPos(posTexte2);


    painter->drawLine(laLigne->line());

     //
     if (isSelected())
     {
         painter->setPen(QPen(myColor, 1, Qt::DashLine));
         QLineF myLine = laLigne->line();
         myLine.translate(0, 4.0);
         painter->drawLine(myLine);
         myLine.translate(0,-8.0);
         painter->drawLine(myLine);
     }
}