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); } }
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]); }
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; }
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 }
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); } }