void CoordSysWidget::display() { // glMatrixMode(GL_PROJECTION); // glLoadIdentity(); // gluPerspective(45, 1, 1, 40); // glMatrixMode(GL_MODELVIEW); // glLoadIdentity(); // gluLookAt(7, -25, 10, 0, 0, 0, 0, 0, 1); glPushMatrix(); glRotated(xRot / 16.0, 1.0, 0.0, 0.0); glRotated(yRot / 16.0, 0.0, 1.0, 0.0); glRotated(zRot / 16.0, 0.0, 0.0, 1.0); move(); // glRotated(30.0, 1.0, 0.0, 0.0); // glRotated(-20.0, 0.0, 1.0, 0.0); drawCoords(); qglColor(Qt::gray); move(); // renderText(0.0, 0.0, 10.5, "Coordition System"); renderText(MAXCOORD+0.1, -0.3, 0.0, "x"); renderText(-0.3, MAXCOORD+0.1, 0.0, "y"); renderText(0.0, 0.3, MAXCOORD+0.1, "z"); glPopMatrix(); glFlush(); }
void PainterOGL2::drawTextureCoords(CoordsBuffer& coordsBuffer, const TexturePtr& texture) { if(texture && texture->isEmpty()) return; setDrawProgram(m_shaderProgram ? m_shaderProgram : m_drawTexturedProgram.get()); setTexture(texture); drawCoords(coordsBuffer); }
void PainterOGL2::drawBoundingRect(const Rect& dest, int innerLineWidth) { if(dest.isEmpty() || innerLineWidth == 0) return; setDrawProgram(m_shaderProgram ? m_shaderProgram : m_drawSolidColorProgram.get()); m_coordsBuffer.clear(); m_coordsBuffer.addBoudingRect(dest, innerLineWidth); drawCoords(m_coordsBuffer); }
void PainterOGL2::drawFilledTriangle(const Point& a, const Point& b, const Point& c) { if(a == b || a == c || b == c) return; setDrawProgram(m_shaderProgram ? m_shaderProgram : m_drawSolidColorProgram.get()); m_coordsBuffer.clear(); m_coordsBuffer.addTriangle(a, b, c); drawCoords(m_coordsBuffer); }
void PainterOGL2::drawFilledRect(const Rect& dest) { if(dest.isEmpty()) return; setDrawProgram(m_shaderProgram ? m_shaderProgram : m_drawSolidColorProgram.get()); m_coordsBuffer.clear(); m_coordsBuffer.addRect(dest); drawCoords(m_coordsBuffer); }
void PainterOGL2::drawRepeatedTexturedRect(const Rect& dest, const TexturePtr& texture, const Rect& src) { if(dest.isEmpty() || src.isEmpty() || texture->isEmpty()) return; setDrawProgram(m_shaderProgram ? m_shaderProgram : m_drawTexturedProgram.get()); setTexture(texture); m_coordsBuffer.clear(); m_coordsBuffer.addRepeatedRects(dest, src); drawCoords(m_coordsBuffer); }
void PainterOGL2::drawUpsideDownTexturedRect(const Rect& dest, const TexturePtr& texture, const Rect& src) { if(dest.isEmpty() || src.isEmpty() || texture->isEmpty()) return; setDrawProgram(m_shaderProgram ? m_shaderProgram : m_drawTexturedProgram.get()); setTexture(texture); m_coordsBuffer.clear(); m_coordsBuffer.addUpsideDownQuad(dest, src); drawCoords(m_coordsBuffer, TriangleStrip); }
void BoltzmannInfoWidget::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); QPen pen; pen.setColor(QColor(0xEE, 0xEE, 0xEE)); pen.setWidth(3); painter.setPen(pen); painter.fillRect(event->rect(), QBrush(QColor(0x30, 0x30, 0x30))); drawCoords(&painter); drawLabels(&painter); drawChart(&painter); drawStatus(&painter); }
void renderScene() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(50.0f, 3.0f, 100.0f, 0.0f, 2.0f, 0.0f, 0.0f, 1.0f, 0.0f); drawCoords(); draw(); Sleep(10); glutSwapBuffers(); }
/** 绘制坐标系 */ void CoordSysWidget::paintGL() { glPushMatrix(); glRotated(xRot / 16.0, 1.0, 0.0, 0.0); glRotated(yRot / 16.0, 0.0, 1.0, 0.0); glRotated(zRot / 16.0, 0.0, 0.0, 1.0); // 画坐标系 drawCoords(); // 画网格 drawGrid(); // 画设备位置 drawPoints(); glPopMatrix(); }
void RobotTestBackend::RenderWorld() { ViewRobot& viewRobot = world->robotViews[0]; //WorldViewProgram::RenderWorld(); glDisable(GL_LIGHTING); drawCoords(0.1); glEnable(GL_LIGHTING); for(size_t i=0;i<world->terrains.size();i++) world->terrains[i]->DrawGL(); for(size_t i=0;i<world->rigidObjects.size();i++) world->rigidObjects[i]->DrawGL(); if(draw_sensors) { if(robotSensors.sensors.empty()) { robotSensors.MakeDefault(robot); } for(size_t i=0;i<robotSensors.sensors.size();i++) { vector<double> measurements; if(0 == strcmp(robotSensors.sensors[i]->Type(),"CameraSensor")) { robotSensors.sensors[i]->SimulateKinematic(*robot,*world); robotSensors.sensors[i]->GetMeasurements(measurements); } robotSensors.sensors[i]->DrawGL(*robot,measurements); } } if(draw_geom) { //set the robot colors GLColor highlight(1,1,0); GLColor driven(1,0.5,0); GLColor colliding(1,0,0); GLColor blue(0,0,1); viewRobot.RestoreAppearance(); viewRobot.PushAppearance(); for(size_t i=0;i<robot->links.size();i++) { if(self_colliding[i]) viewRobot.SetColor(i,colliding); if((int)i == cur_link) viewRobot.SetColor(i,highlight); else if(cur_driver >= 0 && cur_driver < (int)robot->drivers.size() && robot->DoesDriverAffect(cur_driver,i)) viewRobot.SetColor(i,driven); if(draw_self_collision_tests) { //draw a little blue if(robot->selfCollisions(i,cur_link) || robot->selfCollisions(cur_link,i) ) { GLDraw::GeometryAppearance &app = viewRobot.Appearance(i); app.ModulateColor(blue,0.5); } } } //this will set the hover colors allWidgets.DrawGL(viewport); //viewRobot.Draw(); viewRobot.PopAppearance(); } else { for(size_t i=0;i<robotWidgets.size();i++) robotWidgets[i].linkPoser.draw = 0; allWidgets.DrawGL(viewport); for(size_t i=0;i<robotWidgets.size();i++) robotWidgets[i].linkPoser.draw = 1; } if(draw_com) { viewRobot.DrawCenterOfMass(); for(size_t i=0;i<robot->links.size();i++) viewRobot.DrawLinkCenterOfMass(i,0.01); } if(draw_frame) { viewRobot.DrawLinkFrames(); glDisable(GL_DEPTH_TEST); glPushMatrix(); glMultMatrix((Matrix4)robot->links[cur_link].T_World); drawCoords(0.2); glPopMatrix(); glEnable(GL_DEPTH_TEST); } if(draw_self_collision_tests) { glDisable(GL_LIGHTING); glLineWidth(2.0); glColor3f(1,0,0); glBegin(GL_LINES); for(size_t i=0;i<robot->links.size();i++) { Vector3 comi = robot->links[i].T_World*robot->links[i].com; for(size_t j=0;j<robot->links.size();j++) { if(robot->selfCollisions(i,j)) { Vector3 comj = robot->links[j].T_World*robot->links[j].com; glVertex3v(comi); glVertex3v(comj); } } } glEnd(); } if(draw_bbs) { for(size_t j=0;j<robot->geometry.size();j++) { if(robot->IsGeometryEmpty(j)) continue; Box3D bbox = robot->geometry[j]->GetBB(); Matrix4 basis; bbox.getBasis(basis); glColor3f(1,0,0); drawOrientedWireBox(bbox.dims.x,bbox.dims.y,bbox.dims.z,basis); } } }
void ViewportView::drawForeground(QPainter* painter, const QRectF& rect) { QGraphicsView::drawForeground(painter, rect); drawAxes(painter); drawCoords(painter); }
void PainterOGL2::drawFillCoords(CoordsBuffer& coordsBuffer) { setDrawProgram(m_shaderProgram ? m_shaderProgram : m_drawSolidColorProgram.get()); setTexture(nullptr); drawCoords(coordsBuffer); }