int NavigationView::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QGraphicsView::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: mouseAtGeoPos((*reinterpret_cast< const QPointF(*)>(_a[1]))); break; case 1: newPointAdded((*reinterpret_cast< const QPointF(*)>(_a[1]))); break; case 2: newLineAdded((*reinterpret_cast< QPointF(*)>(_a[1])),(*reinterpret_cast< QPointF(*)>(_a[2]))); break; case 3: newLandmarkAdded((*reinterpret_cast< const QPointF(*)>(_a[1]))); break; case 4: setRoverPosAndHeading((*reinterpret_cast< const QPointF(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2]))); break; case 5: setRoverPosition((*reinterpret_cast< const QPointF(*)>(_a[1]))); break; case 6: setRoverHeading((*reinterpret_cast< qreal(*)>(_a[1]))); break; case 7: updateConfiguration(); break; case 8: plotLineForSelected(); break; case 9: plotLineForPoints((*reinterpret_cast< QPointF(*)>(_a[1])),(*reinterpret_cast< QPointF(*)>(_a[2]))); break; case 10: plotLineIntersection(); break; case 11: selectPoint((*reinterpret_cast< QPointF(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break; case 12: selectPoint((*reinterpret_cast< QPointF(*)>(_a[1]))); break; case 13: clearSelectedPoints(); break; case 14: selectLines((*reinterpret_cast< QList<QPair<QPointF,QPointF> >(*)>(_a[1]))); break; case 15: clearSelectedLines(); break; case 16: deleteSelectedPoints(); break; case 17: deleteSelectedLines(); break; default: ; } _id -= 18; } return _id; }
/* ================ idPointListInterface::selectPointByRay ================ */ int idPointListInterface::selectPointByRay(const idVec3 &origin, const idVec3 &direction, bool single) { int i, besti, count; float d, bestd; idVec3 temp, temp2; // find the point closest to the ray besti = -1; bestd = 8; count = numPoints(); for (i=0; i < count; i++) { temp = *getPoint(i); temp2 = temp; temp -= origin; d = DotProduct(temp, direction); VectorMA (origin, d, direction, temp); temp2 -= temp; d = temp2.Length(); if (d <= bestd) { bestd = d; besti = i; } } if (besti >= 0) { selectPoint(besti, single); } return besti; }
int TriangulationSidebar::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: drawLine((*reinterpret_cast< QPointF(*)>(_a[1])),(*reinterpret_cast< QPointF(*)>(_a[2]))); break; case 1: intersectLines(); break; case 2: selectPoint((*reinterpret_cast< QPointF(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break; case 3: clearSelectedPoints(); break; case 4: selectLines((*reinterpret_cast< QList<QPair<QPointF,QPointF> >(*)>(_a[1]))); break; case 5: clearSelectedLines(); break; case 6: deletePoints(); break; case 7: deleteLines(); break; case 8: addPoint((*reinterpret_cast< QPointF(*)>(_a[1]))); break; case 9: addLine((*reinterpret_cast< QPointF(*)>(_a[1])),(*reinterpret_cast< QPointF(*)>(_a[2]))); break; case 10: addLandmark((*reinterpret_cast< QPointF(*)>(_a[1]))); break; case 11: on_landmarksListWidget_itemSelectionChanged(); break; case 12: on_deleteLines_clicked(); break; case 13: on_deletePoints_clicked(); break; case 14: on_intersectLinesButton_clicked(); break; case 15: on_linesListWidget_itemSelectionChanged(); break; case 16: on_drawLinesButton_clicked(); break; case 17: on_pointsListWidget_itemSelectionChanged(); break; case 18: recalculateDistanceAltitiude(); break; case 19: newBarometerData((*reinterpret_cast< ushort(*)>(_a[1])),(*reinterpret_cast< ulong(*)>(_a[2]))); break; case 20: newAccelerometerData((*reinterpret_cast< short(*)>(_a[1])),(*reinterpret_cast< short(*)>(_a[2])),(*reinterpret_cast< short(*)>(_a[3]))); break; case 21: newRobotElevation((*reinterpret_cast< double(*)>(_a[1])),(*reinterpret_cast< double(*)>(_a[2]))); break; default: ; } _id -= 22; } return _id; }
void snlCtrlPointNetSurface::selectLineConstV ( int indexV ) { // Select line in constant V direction. // ------------------------------------ for ( int indexU = 0; indexU < sizeU; indexU ++ ) selectPoint ( indexU, indexV ); }
void snlCtrlPointNetSurface::selectLineConstU ( int indexU ) { // Select line in constant U direction. // ------------------------------------ for ( int indexV = 0; indexV < sizeV; indexV ++ ) selectPoint ( indexU, indexV ); }
void TriangulationSidebar::on_pointsListWidget_itemSelectionChanged() { QList<QListWidgetItem*> items = pointsListWidget->selectedItems(); emit clearSelectedPoints(); foreach(QListWidgetItem * item, items) { qDebug("emitting"); emit selectPoint(item->data(Qt::UserRole).toPointF(), false); }
void CQAlignAnchorPoint:: selectSlot(bool enabled) { if (enabled) emit selectPoint(); else emit cancelSelect(); }
void mouse( int button, int state, int x, int y ) { if(button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) { selectPoint(x,y); if (selected_point == -1) { addPoint(x,wY-y); } } if(button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN) { selectPoint(x,y); if (selected_point !=-1) { deletePoint(selected_point); selected_point = -1; } } glutPostRedisplay(); }
CQAlignAnchor:: CQAlignAnchor(QWidget *parent) : QWidget(parent) { QGridLayout *layout = new QGridLayout(this); layout->setMargin(0); layout->setSpacing(2); QLabel *anchorLabel = new QLabel("<small><b>Anchor</b></small>"); layout->addWidget(anchorLabel, 0, 0, 1, 2); objectCombo_ = new QComboBox; objectCombo_->addItem("Selection"); objectCombo_->addItem("Object"); objectCombo_->addItem("Position"); connect(objectCombo_, SIGNAL(activated(const QString &)), this, SLOT(objectSlot(const QString &))); layout->addWidget(objectCombo_, 1, 0); anchorStack_ = new QStackedWidget; anchorLabel_ = new QWidget; anchorObject_ = new CQAlignAnchorObject; anchorPoint_ = new CQAlignAnchorPoint; anchorStack_->addWidget(anchorLabel_); anchorStack_->addWidget(anchorObject_); anchorStack_->addWidget(anchorPoint_); layout->addWidget(anchorStack_, 1, 1); connect(anchorObject_, SIGNAL(selectObject()), this, SIGNAL(selectObject())); connect(anchorObject_, SIGNAL(cancelSelect()), this, SIGNAL(cancelSelect())); connect(anchorPoint_, SIGNAL(selectPoint()), this, SIGNAL(selectPosition())); connect(anchorPoint_, SIGNAL(cancelSelect()), this, SIGNAL(cancelSelect())); //----- updateState(); }
//---------------------------------------------------- void ofxCvCoordWarpingGui::_mousePressed(ofMouseEventArgs &e){ if (bCameraView) selectPoint(e.x, e.y, x, y, width*scale.y, height*scale.y, 40); }
void AnnotationWidget::drawTree() { if(!active) { tree->setEnabled(false); // return; } tree->setEnabled(true); // QList<QTreeWidgetItem*> traceWidgets; // QList<QTreeWidgetItem*> pointWidgets; int i; TreeItem *it; tree->clear(); traceWidgets.empty(); pointWidgets.empty(); it = new TreeItem(tree,TreeItem::Null); it->setText(0, tr("Traces") ); tree->addTopLevelItem(it); it->setExpanded(true); // trace interpretations for(i=0; i < experiment->getTraceInterpretations()->length(); i++) { traceWidgets << new TreeItem(it,TreeItem::Trace,i); // so i is placed in subitem->subject traceWidgets.last()->setText(0, experiment->getTraceInterpretations()->at(i) ); switch( experiment->getTraceLocations()->at(i) ) { case Experiment::Video: traceWidgets.last()->setText(1, video); break; case Experiment::Ultrasound: traceWidgets.last()->setText(1, ultrasound); break; default: break; } switch( experiment->getTraceTypes()->at(i) ) { case Experiment::Free: traceWidgets.last()->setText(2, free); break; case Experiment::Grid: traceWidgets.last()->setText(2, grid); break; default: break; } it->addChild(traceWidgets.last()); } it = new TreeItem(tree,TreeItem::Image); it->setText(0, tr("Points") ); tree->addTopLevelItem(it); it->setExpanded(true); // point interpretations for(i=0; i < experiment->getPointInterpretations()->length(); i++) { pointWidgets << new TreeItem(it,TreeItem::Point,i); // so i is placed in subitem->subject pointWidgets.last()->setText(0, experiment->getPointInterpretations()->at(i) ); switch( experiment->getPointLocations()->at(i) ) { case Experiment::Video: pointWidgets.last()->setText(1, video); break; case Experiment::Ultrasound: pointWidgets.last()->setText(1, ultrasound); break; default: break; } it->addChild(pointWidgets.last()); } tree->resizeColumnToContents(0); tree->resizeColumnToContents(1); tree->resizeColumnToContents(2); if(traceWidgets.length()>0) { selectTrace(0); } else if(pointWidgets.length()>0) { selectPoint(0); } }
void EditorScene::initKeyboardMouse() { auto _keyboardListener = EventListenerKeyboard::create(); _keyboardListener->onKeyPressed = [&](EventKeyboard::KeyCode code, Event* event){ switch (code) { case EventKeyboard::KeyCode::KEY_SPACE: break; case EventKeyboard::KeyCode::KEY_R: _ks_addPoint = true; break; case EventKeyboard::KeyCode::KEY_T: _ks_deletePoint = true; break; case EventKeyboard::KeyCode::KEY_A: _ks_selection = true; break; case EventKeyboard::KeyCode::KEY_D: clearSelection(); break; case EventKeyboard::KeyCode::KEY_W: moveUp(true); break; case EventKeyboard::KeyCode::KEY_S: moveUp(false); break; case EventKeyboard::KeyCode::KEY_F: _ks_shading = true; break; case EventKeyboard::KeyCode::KEY_G: _ks_digging = true; break; case EventKeyboard::KeyCode::KEY_X: _pointLayer->setVisible(!_pointLayer->isVisible()); _rulerBg->setVisible(!_rulerBg->isVisible()); break; case EventKeyboard::KeyCode::KEY_C: _copySrcIndex = _frameIndex; break; case EventKeyboard::KeyCode::KEY_V: plastFrame(); break; case EventKeyboard::KeyCode::KEY_LEFT_ARROW: case EventKeyboard::KeyCode::KEY_Q: prevFrame(); break; case EventKeyboard::KeyCode::KEY_RIGHT_ARROW: case EventKeyboard::KeyCode::KEY_E: nextFrame(); break; default: break; } }; _keyboardListener->onKeyReleased = [&](EventKeyboard::KeyCode code, Event* event){ switch (code) { case EventKeyboard::KeyCode::KEY_SPACE: break; case EventKeyboard::KeyCode::KEY_R: _ks_addPoint = false; break; case EventKeyboard::KeyCode::KEY_T: _ks_deletePoint = false; break; case EventKeyboard::KeyCode::KEY_A: _ks_selection = false; break; case EventKeyboard::KeyCode::KEY_F: _ks_shading = false; break; case EventKeyboard::KeyCode::KEY_G: _ks_digging = false; break; default: break; } }; _eventDispatcher->addEventListenerWithSceneGraphPriority(_keyboardListener, this); auto listener = EventListenerTouchOneByOne::create(); listener->onTouchBegan = [this](Touch* touch, Event* event){ auto rawpos = touch->getLocation(); CCLOG("click in at %f %f", rawpos.x, rawpos.y); if (rawpos.y < 256) { diggColor(rawpos); return false; } else { if (_ks_addPoint) { addPoint(rawpos); } else if (_ks_deletePoint) { deletePoint(rawpos); } else if (_ks_selection) { selectPoint(rawpos, true); } else if (_ks_shading) { shadingTriangle(rawpos); } else if (_ks_digging) { diggColor(rawpos); } else { selectPoint(rawpos, false); } } return _selectedPoints.size() > 0; }; listener->onTouchMoved = [this](Touch* touch, Event* event){ auto move = touch->getDelta() ;//* 0.25; for (auto point : _selectedPoints) { point->sprite->setPosition(point->sprite->getPosition() + move); point->position = help_editPosition2relativePosition(point->sprite->getPosition()); } this->delaunay(); this->refreshLines(); this->refreshTriangles(); }; listener->onTouchEnded = [this](Touch* touch, Event* event){ }; listener->onTouchCancelled = [this](Touch* touch, Event* event){ }; _pointLayer->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, _pointLayer); }
KMeansClustering::KMeansClustering(int _k, PointList *p, int algorithm) { k = _k; point_list = p; vector<float> distance_list; for (int l = 0; l < point_list->size(); l++) { distance_list.push_back(0); } QColor colours[30] = {QColor(255, 0, 0), QColor(0, 255, 255), QColor(0, 0, 255), QColor(0, 255, 0), QColor(255, 255, 0), QColor(255, 0, 255), QColor(0, 64, 128), QColor(64, 0, 128), QColor(64, 128, 0), QColor(128, 64, 0), QColor(128, 0, 64), QColor(214, 41, 41), QColor(232, 17, 45), QColor(252, 191, 201), QColor(143, 239, 45), QColor(242, 206, 104), QColor(107, 71, 21), QColor(255, 214, 145), QColor(249, 221, 22), QColor(91, 119, 204), QColor(137, 119, 186), QColor(114, 119, 186), QColor(114, 81, 188), QColor(102, 86, 188), QColor(94, 104, 196), QColor(56, 25, 122), QColor(79, 0, 147), QColor(73, 48, 173), QColor(181, 209, 232), QColor(102, 137, 204) }; if (algorithm == KMEANS_PLUSPLUS) { // 1. first cluster is randomly assigned from point_list. int rand_val = round(rand() % point_list->size()); Cluster *first = new Cluster(colours[0], 0, (*point_list)[rand_val]->getX(), (*point_list)[rand_val]->getY()); clusters.push_back(first); for (int i = 1; i < _k; i++) { // 2. For each point, compute D(x), the distance between x and the nearest center that has already been chosen. computeDistanceList(distance_list); // 3. Choose one new data point at random as a new center, // using a weighted prob dist where a point x is chosen with prob proportional to D(x)^2 vector<float> cdf; prepareCDF(distance_list, cdf); Point *centre = selectPoint(cdf); Cluster *next = new Cluster(colours[i], i, centre->getX(), centre->getY()); clusters.push_back(next); } } else if (algorithm == KMEANS_SHARP) { int centres = 3*round(log(_k)); int id = 0; // 1. first 3*log(k) clusters are indepdently/uniformly chosen from point list. for (int i = 0; i < centres; i++) { int rand_val = round(rand() % point_list->size()); Cluster *c = new Cluster(colours[i], id, (*point_list)[rand_val]->getX(), (*point_list)[rand_val]->getY()); clusters.push_back(c); id++; } for (int i = 1; i < _k; i++) { for (int j = 0; j < centres; j++) { // 2. For each point, compute D(x). computeDistanceList(distance_list); // 3. Choose new data points with weight prob dist. vector<float> cdf; prepareCDF(distance_list, cdf); Point *centre = selectPoint(cdf); Cluster *next = new Cluster(colours[id], id, centre->getX(), centre->getY()); clusters.push_back(next); id++; } } } else { init(); } }