void TupGradientSelector::mousePressEvent(QMouseEvent *event) { bool select = false; for (int i = 0; i < m_arrows.count(); i++) { TupGradientArrow *aArrow = m_arrows[i]; if (aArrow->contains(event->pos())) { m_currentArrowIndex = i; select = true; break; } } if (m_arrows.count() > 2 && event->button() == Qt::RightButton) { m_arrows.removeAt(m_currentArrowIndex); m_currentArrowIndex = 0; repaint(); } else if (!select) { int val; if (orientation() == Qt::Vertical) val = (maximum() - minimum()) * (height() - event->y()) / (height()) + minimum(); else val = (maximum() - minimum()) * (width() - event->x()) / width() + minimum(); if (!m_arrows.isEmpty()) addArrow(calcArrowPos(val), m_arrows[m_currentArrowIndex]->color()); else addArrow(calcArrowPos(val), m_currentColor); } }
void ChangeDisplay::addMoveChanges( const std::vector<MoveChange>& changes) { int r_from, g_from, b_from; Change::getColors(Change::MOVE_FROM, r_from, g_from, b_from); int r_to, g_to, b_to; Change::getColors(Change::MOVE_TO, r_to, g_to, b_to); for(std::vector<MoveChange>::const_iterator ch = changes.begin(); ch < changes.end(); ch++) { Cloud::Ptr cloud(new Cloud()); Cloud::Ptr cloud_from(new Cloud()); Cloud::Ptr cloud_to(new Cloud()); pcl::fromROSMsg(ch->cloud, *cloud); Eigen::Affine3f pose_from, pose_to; ObjectDetectionBridge::transformationFromROSMsg(ch->pose_to, pose_to); ObjectDetectionBridge::transformationFromROSMsg(ch->pose_from, pose_from); pcl::transformPointCloud(*cloud, *cloud_from, pose_from); pcl::transformPointCloud(*cloud, *cloud_to, pose_to); addColoredCloud(*cloud_from, r_from, g_from, b_from, 100); addColoredCloud(*cloud_to, r_to, g_to, b_to); BBDisplay bb_from(cloud, pose_from); BBDisplay bb_to(cloud, pose_to); addAnnotatedBB(bb_from, ch->label, MAX(r_from,0), MAX(g_from,0), MAX(b_from,0)); addAnnotatedBB(bb_to, ch->label, MAX(r_to,0), MAX(g_to,0), MAX(b_to,0)); LineSegment arrow = bb_from.getArrrowTo(bb_to); addArrow(arrow.from, arrow.to, BBDisplay::avg(r_from, r_to), BBDisplay::avg(g_from, g_to), BBDisplay::avg(b_from, b_from)); } }
/// Initialises the coordinate axes, adds labels and/or units to the axes, /// calculates axes-lengths, offsets, etc. void DiagramScene::initialize() { QPen pen(Qt::black, 2, Qt::SolidLine, Qt::SquareCap, Qt::RoundJoin); pen.setCosmetic(true); setXAxis(addArrow(_bounds.width(), 0, pen)); setYAxis(addArrow(_bounds.height(), -90, pen)); _xLabel = addNonScalableText(" "); _yLabel = addNonScalableText(" "); _yLabel->rotate(-90); _xUnit = addNonScalableText(" "); _yUnit = addNonScalableText(" "); update(); }
void TupGradientSelector::setStops(const QGradientStops &stops) { m_gradient.setStops(stops); m_arrows.clear(); for (int i = 0; i < stops.count(); i++) addArrow(calcArrowPos((int) (100 - (stops[i].first * 100)) ), stops[i].second); update(); }
void MainWindow::genAxisNamesOverview() { resetPlot(); customPlot->xAxis->setRange(1, 2); customPlot->yAxis->setRange(-50, 150); customPlot->xAxis->setVisible(true); customPlot->yAxis->setVisible(true); customPlot->axisRect()->setupFullAxesBox(); customPlot->xAxis->setTickLabels(false); customPlot->axisRect()->setAutoMargins(QCP::msNone); customPlot->axisRect()->setMargins(QMargins(250, 50, 20, 65)); customPlot->yAxis->setLabel("Axis Label"); addArrow(QPointF(216, 70), QPointF(150, 32), "Tick label", Qt::AlignRight|Qt::AlignVCenter); addArrow(QPointF(187, 110), QPointF(130, 76), "Axis label", Qt::AlignRight|Qt::AlignVCenter); addArrow(QPointF(260, 77), QPointF(300, 77), "Tick", Qt::AlignLeft|Qt::AlignVCenter); addArrow(QPointF(255, 95), QPointF(300, 95), "Sub tick", Qt::AlignLeft|Qt::AlignVCenter); addArrow(QPointF(297, 193), QPointF(297, 250), "Zero line", Qt::AlignHCenter|Qt::AlignTop); addArrow(QPointF(354, 165), QPointF(354, 266), "Grid line", Qt::AlignHCenter|Qt::AlignTop); addBracket(QPointF(263, 132), QPointF(263, 105), "Tick step", QPointF(8, 0), false, Qt::AlignLeft|Qt::AlignVCenter, QCPItemBracket::bsCurly); customPlot->savePng(dir.filePath("AxisNamesOverview.png"), 450, 300); }
void Game::init() { #ifdef WIN32 device = createDevice(video::EDT_DIRECT3D9, core::dimension2d<s32>(640, 480)); #else device = createDevice(video::EDT_OPENGL, core::dimension2d<s32>(640, 480)); #endif driver = device->getVideoDriver(); smgr = device->getSceneManager(); guienv = device->getGUIEnvironment(); device->setWindowCaption(L"Not So Much Super Offroad - By Andreas Kröhnke"); IMeshSceneNode *node = smgr->addMeshSceneNode( smgr->getMesh("data/car3.3ds")->getMesh(0) ); GameObject *car = new GameObject(); car->setSceneNode(node); node->setMaterialFlag(EMF_LIGHTING, false); node->setScale(vector3df(0.09,0.09,0.09)); node->setRotation(vector3df(0,0,0)); node->setPosition(vector3df(3454,500,1256)); //node->setDebugDataVisible(EDS_BBOX); object->push_back(car); ITerrainSceneNode *terrain = smgr->addTerrainSceneNode("data/level1.bmp"); GameObject *go_terrain = new GameObject(); go_terrain->setSceneNode(terrain); terrain->setMaterialFlag(EMF_LIGHTING, false); terrain->setScale(core::vector3df(18, 3.0f, 18)); terrain->setMaterialFlag(video::EMF_LIGHTING, false); terrain->setMaterialTexture(0, driver->getTexture("data/terrain-texture.jpg")); terrain->setMaterialTexture(1, driver->getTexture("data/detailmap3.jpg")); terrain->setMaterialType(video::EMT_DETAIL_MAP); terrain->scaleTexture(1.0f, 20.0f); terrain->setDebugDataVisible(EDS_BBOX); object->push_back(go_terrain); // Camera Camera *cam = new Camera(); cam->setSceneNode(smgr->addCameraSceneNode()); object->push_back(cam); cam->followNode(car->getSceneNode()); reciever = new EventReciever(); reciever->setSteer(car->getSceneNode()); device->setEventReceiver(reciever); // create triangle selector for the terrain ITriangleSelector* selector = smgr->createTerrainTriangleSelector(terrain, 0); terrain->setTriangleSelector(selector); selector->drop(); // create collision response animator and attach it to the camera ISceneNodeAnimator* anim = smgr->createCollisionResponseAnimator(selector, car->getSceneNode(), core::vector3df(10,10,10), core::vector3df(0,-5.0f,0), core::vector3df(0,0,0) ); car->getSceneNode()->addAnimator(anim); anim->drop(); // Skybox smgr->addSkyBoxSceneNode( driver->getTexture("data/irrlicht2_up.jpg"), driver->getTexture("data/irrlicht2_dn.jpg"), driver->getTexture("data/irrlicht2_lf.jpg"), driver->getTexture("data/irrlicht2_rt.jpg"), driver->getTexture("data/irrlicht2_ft.jpg"), driver->getTexture("data/irrlicht2_bk.jpg")); // Checkpoints pair<vector3df, vector3df> cp1(vector3df(3112,393,1234), vector3df(90,90,0)); addCheckPoint(cp1.first, cp1.second); pair<vector3df, vector3df> cp2(vector3df(2531,281,1389), vector3df(90,120,0)); addCheckPoint(cp2.first, cp2.second); addCheckPoint(vector3df(2304,160,1826), vector3df(90,140,0)); addCheckPoint(vector3df(2132,111,2672), vector3df(90,120,0)); addCheckPoint(vector3df(1130,415,3313), vector3df(90,75,0)); addCheckPoint(vector3df(746,471,1753), vector3df(90,0,0)); addCheckPoint(vector3df(1985,269,1457), vector3df(90,-120,0)); addCheckPoint(vector3df(2475,146,2868), vector3df(90,-120,0)); addCheckPoint(vector3df(3707,417,2915), vector3df(90,-60,0)); // Arrows addArrow(vector3df(3012,320,1234), vector3df(100,-55,0)); addArrow(vector3df(2531,220,1389), vector3df(100,-10,0)); //addArrow(vector3df(2304,110,1826), vector3df(90,10,0)); addArrow(vector3df(2232,20,2272), vector3df(90,-20,0)); // HUD info = guienv->addStaticText(L"USE ARROW KEYS TO PLAY", rect<int>(10,10,200,60), true); info->setOverrideColor(SColor(255, 255, 255, 255)); //IGUIStaticText *quick_info = guienv->addStaticText(L"Arrow keys to play\n", rect<int>(10,50,200,50), true); //quick_info->setOverrideColor(SColor(255,255,255,255)); initSound(); }