void DigitizeStatePointMatch::createPermanentPoint (CmdMediator *cmdMediator, const QPointF &posScreen) { // Create command to add point OrdinalGenerator ordinalGenerator; Document &document = cmdMediator->document (); const Transformation &transformation = context ().mainWindow ().transformation(); QUndoCommand *cmd = new CmdAddPointGraph (context ().mainWindow(), document, context ().mainWindow().selectedGraphCurve(), posScreen, ordinalGenerator.generateCurvePointOrdinal(document, transformation, posScreen, activeCurve ())); context().appendNewCmd(cmdMediator, cmd); }
void DigitizeStateSegment::slotMouseClickOnSegment(QPointF posSegmentStart) { LOG4CPP_INFO_S ((*mainCat)) << "DigitizeStateSegment::slotMouseClickOnSegment"; Segment *segment = segmentFromSegmentStart (posSegmentStart); // Create single-entry list that is expected by SegmentFactory QList<Segment*> segments; segments.push_back (segment); // Generate point coordinates. Nothing is created in the GraphicsScene at this point GraphicsScene &scene = context().mainWindow().scene(); SegmentFactory segmentFactory ((QGraphicsScene &) scene, context().isGnuplot()); QList<QPoint> points = segmentFactory.fillPoints (m_cmdMediator->document().modelSegments(), segments); // Create one ordinal for each point OrdinalGenerator ordinalGenerator; Document &document = m_cmdMediator->document (); const Transformation &transformation = context ().mainWindow ().transformation(); QList<double> ordinals; QList<QPoint>::iterator itr; for (itr = points.begin(); itr != points.end(); itr++) { QPoint point = *itr; ordinals << ordinalGenerator.generateCurvePointOrdinal(document, transformation, point, activeCurve ()); } // Create command to add points QUndoCommand *cmd = new CmdAddPointsGraph (context ().mainWindow(), document, context ().mainWindow().selectedGraphCurve(), points, ordinals); context().appendNewCmd(m_cmdMediator, cmd); }