예제 #1
0
RS_Entity* RS_Spline::clone() const{
    RS_Spline* l = new RS_Spline(*this);
    l->setOwner(isOwner());
    l->initId();
    l->detach();
    return l;
}
예제 #2
0
void RS_ActionDrawSpline::mouseMoveEvent(QMouseEvent* e) {
    RS_DEBUG->print("RS_ActionDrawSpline::mouseMoveEvent begin");

    RS_Vector mouse = snapPoint(e);
    if (getStatus()==SetNextPoint && spline!=NULL /*&& point.valid*/) {
        deletePreview();

                RS_Spline* tmpSpline = (RS_Spline*)spline->clone();
                tmpSpline->addControlPoint(mouse);
                tmpSpline->update();
                preview->addEntity(tmpSpline);

                QList<RS_Vector> cpts = tmpSpline->getControlPoints();
                for (int i = 0; i < cpts.size(); ++i) {
                        preview->addEntity(new RS_Point(preview, RS_PointData(cpts.at(i))));
                }
        drawPreview();
    }

    RS_DEBUG->print("RS_ActionDrawSpline::mouseMoveEvent end");
}
예제 #3
0
void RS_ActionDrawSpline::mouseMoveEvent(QMouseEvent* e) {
    RS_DEBUG->print("RS_ActionDrawSpline::mouseMoveEvent begin");

    RS_Vector mouse = snapPoint(e);
	if (getStatus()==SetNextPoint && spline /*&& point.valid*/) {
        deletePreview();

				RS_Spline* tmpSpline = static_cast<RS_Spline*>(spline->clone());
                tmpSpline->addControlPoint(mouse);
                tmpSpline->update();
                preview->addEntity(tmpSpline);

				QList<RS_Vector>&& cpts = tmpSpline->getControlPoints();
				for (const RS_Vector& vp: cpts) {
						preview->addEntity(new RS_Point(preview.get(), RS_PointData(vp)));
                }
        drawPreview();
    }

    RS_DEBUG->print("RS_ActionDrawSpline::mouseMoveEvent end");
}