Refactoring.
--HG-- branch : develop
This commit is contained in:
parent
f8882f48f1
commit
88b8a00a2e
107
src/app/tools/drawTools/vtoolcut.cpp
Normal file
107
src/app/tools/drawTools/vtoolcut.cpp
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
/************************************************************************
|
||||||
|
**
|
||||||
|
** @file vtoolcut.cpp
|
||||||
|
** @author Roman Telezhynskyi <dismine(at)gmail.com>
|
||||||
|
** @date 25 6, 2014
|
||||||
|
**
|
||||||
|
** @brief
|
||||||
|
** @copyright
|
||||||
|
** This source code is part of the Valentine project, a pattern making
|
||||||
|
** program, whose allow create and modeling patterns of clothing.
|
||||||
|
** Copyright (C) 2014 Valentina project
|
||||||
|
** <https://bitbucket.org/dismine/valentina> All Rights Reserved.
|
||||||
|
**
|
||||||
|
** Valentina is free software: you can redistribute it and/or modify
|
||||||
|
** it under the terms of the GNU General Public License as published by
|
||||||
|
** the Free Software Foundation, either version 3 of the License, or
|
||||||
|
** (at your option) any later version.
|
||||||
|
**
|
||||||
|
** Valentina is distributed in the hope that it will be useful,
|
||||||
|
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
** GNU General Public License for more details.
|
||||||
|
**
|
||||||
|
** You should have received a copy of the GNU General Public License
|
||||||
|
** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
**
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
#include "vtoolcut.h"
|
||||||
|
#include "../../geometry/vpointf.h"
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VToolCut::VToolCut(VPattern *doc, VContainer *data, const quint32 &id, const QString &formula,
|
||||||
|
const quint32 &curveCutId, const quint32 &curve1id, const quint32 &curve2id,
|
||||||
|
QGraphicsItem *parent)
|
||||||
|
:VToolPoint(doc, data, id, parent), formula(formula), firstCurve(nullptr), secondCurve(nullptr),
|
||||||
|
curveCutId(curveCutId), curve1id(curve1id), curve2id(curve2id)
|
||||||
|
{
|
||||||
|
Q_ASSERT_X(curveCutId > 0, Q_FUNC_INFO, "curveCutId <= 0");
|
||||||
|
Q_ASSERT_X(curve1id > 0, Q_FUNC_INFO, "curve1id <= 0");
|
||||||
|
Q_ASSERT_X(curve2id > 0, Q_FUNC_INFO, "curve2id <= 0");
|
||||||
|
|
||||||
|
firstCurve = new VSimpleCurve(curve1id, ¤tColor, &factor);
|
||||||
|
firstCurve->setParentItem(this);
|
||||||
|
connect(firstCurve, &VSimpleCurve::Choosed, this, &VToolCut::CurveChoosed);
|
||||||
|
|
||||||
|
secondCurve = new VSimpleCurve(curve2id, ¤tColor, &factor);
|
||||||
|
secondCurve->setParentItem(this);
|
||||||
|
connect(secondCurve, &VSimpleCurve::Choosed, this, &VToolCut::CurveChoosed);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief ChangedActivDraw disable or enable context menu after change active pattern peace.
|
||||||
|
* @param newName new name active pattern peace.
|
||||||
|
*/
|
||||||
|
void VToolCut::ChangedActivDraw(const QString &newName)
|
||||||
|
{
|
||||||
|
bool flag = true;
|
||||||
|
if (nameActivDraw == newName)
|
||||||
|
{
|
||||||
|
currentColor = Qt::black;
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
currentColor = Qt::gray;
|
||||||
|
flag = false;
|
||||||
|
}
|
||||||
|
firstCurve->ChangedActivDraw(flag);
|
||||||
|
secondCurve->ChangedActivDraw(flag);
|
||||||
|
VToolPoint::ChangedActivDraw(newName);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief RefreshGeometry refresh item on scene.
|
||||||
|
*/
|
||||||
|
void VToolCut::RefreshGeometry()
|
||||||
|
{
|
||||||
|
RefreshCurve(firstCurve, curve1id, SimpleCurvePoint::ForthPoint);
|
||||||
|
RefreshCurve(secondCurve, curve2id, SimpleCurvePoint::FirstPoint);
|
||||||
|
VToolPoint::RefreshPointGeometry(*VDrawTool::data.GeometricObject<const VPointF *>(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief RemoveReferens decrement referens value for used objects.
|
||||||
|
*/
|
||||||
|
void VToolCut::RemoveReferens()
|
||||||
|
{
|
||||||
|
doc->DecrementReferens(curveCutId);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolCut::FullUpdateCurveFromFile(const QString &attrCurve)
|
||||||
|
{
|
||||||
|
Q_ASSERT_X(attrCurve.isEmpty() == false, Q_FUNC_INFO, "attribute name is empty");
|
||||||
|
|
||||||
|
QDomElement domElement = doc->elementById(QString().setNum(id));
|
||||||
|
if (domElement.isElement())
|
||||||
|
{
|
||||||
|
formula = domElement.attribute(AttrLength, "");
|
||||||
|
curveCutId = domElement.attribute(attrCurve, "").toUInt();
|
||||||
|
}
|
||||||
|
RefreshGeometry();
|
||||||
|
}
|
66
src/app/tools/drawTools/vtoolcut.h
Normal file
66
src/app/tools/drawTools/vtoolcut.h
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
/************************************************************************
|
||||||
|
**
|
||||||
|
** @file vtoolcut.h
|
||||||
|
** @author Roman Telezhynskyi <dismine(at)gmail.com>
|
||||||
|
** @date 25 6, 2014
|
||||||
|
**
|
||||||
|
** @brief
|
||||||
|
** @copyright
|
||||||
|
** This source code is part of the Valentine project, a pattern making
|
||||||
|
** program, whose allow create and modeling patterns of clothing.
|
||||||
|
** Copyright (C) 2014 Valentina project
|
||||||
|
** <https://bitbucket.org/dismine/valentina> All Rights Reserved.
|
||||||
|
**
|
||||||
|
** Valentina is free software: you can redistribute it and/or modify
|
||||||
|
** it under the terms of the GNU General Public License as published by
|
||||||
|
** the Free Software Foundation, either version 3 of the License, or
|
||||||
|
** (at your option) any later version.
|
||||||
|
**
|
||||||
|
** Valentina is distributed in the hope that it will be useful,
|
||||||
|
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
** GNU General Public License for more details.
|
||||||
|
**
|
||||||
|
** You should have received a copy of the GNU General Public License
|
||||||
|
** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
**
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
#ifndef VTOOLCUT_H
|
||||||
|
#define VTOOLCUT_H
|
||||||
|
|
||||||
|
#include "vtoolpoint.h"
|
||||||
|
#include "../../widgets/vsimplecurve.h"
|
||||||
|
|
||||||
|
class VToolCut : public VToolPoint
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
VToolCut(VPattern *doc, VContainer *data, const quint32 &id, const QString &formula, const quint32 &curveCutId,
|
||||||
|
const quint32 &curve1id, const quint32 &curve2id, QGraphicsItem * parent = nullptr);
|
||||||
|
public slots:
|
||||||
|
virtual void ChangedActivDraw(const QString &newName);
|
||||||
|
virtual void CurveChoosed(quint32 id)=0;
|
||||||
|
protected:
|
||||||
|
/** @brief formula keep formula of length */
|
||||||
|
QString formula;
|
||||||
|
|
||||||
|
/** @brief firstCurve first curve after cutting. */
|
||||||
|
VSimpleCurve *firstCurve;
|
||||||
|
|
||||||
|
/** @brief secondCurve second curve after cutting. */
|
||||||
|
VSimpleCurve *secondCurve;
|
||||||
|
|
||||||
|
quint32 curveCutId;
|
||||||
|
quint32 curve1id;
|
||||||
|
quint32 curve2id;
|
||||||
|
|
||||||
|
virtual void RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurvePoint tr)=0;
|
||||||
|
void RefreshGeometry();
|
||||||
|
virtual void RemoveReferens();
|
||||||
|
void FullUpdateCurveFromFile(const QString &attrCurve);
|
||||||
|
private:
|
||||||
|
Q_DISABLE_COPY(VToolCut)
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // VTOOLCUT_H
|
|
@ -33,7 +33,7 @@
|
||||||
#include "../../geometry/varc.h"
|
#include "../../geometry/varc.h"
|
||||||
|
|
||||||
const QString VToolCutArc::ToolType = QStringLiteral("cutArc");
|
const QString VToolCutArc::ToolType = QStringLiteral("cutArc");
|
||||||
const QString VToolCutArc::AttrArc = QStringLiteral("arc");
|
const QString VToolCutArc::AttrArc = QStringLiteral("arc");
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
@ -51,22 +51,10 @@ const QString VToolCutArc::AttrArc = QStringLiteral("arc");
|
||||||
VToolCutArc::VToolCutArc(VPattern *doc, VContainer *data, const quint32 &id, const QString &formula,
|
VToolCutArc::VToolCutArc(VPattern *doc, VContainer *data, const quint32 &id, const QString &formula,
|
||||||
const quint32 &arcId, const quint32 &arc1id, const quint32 &arc2id,
|
const quint32 &arcId, const quint32 &arc1id, const quint32 &arc2id,
|
||||||
const Source &typeCreation, QGraphicsItem * parent)
|
const Source &typeCreation, QGraphicsItem * parent)
|
||||||
:VToolPoint(doc, data, id, parent), formula(formula), arcId(arcId), firstArc(), secondArc(), arc1id(arc1id),
|
:VToolCut(doc, data, id, formula, arcId, arc1id, arc2id, parent)
|
||||||
arc2id(arc2id)
|
|
||||||
{
|
{
|
||||||
Q_ASSERT_X(arcId > 0, Q_FUNC_INFO, "arcId <= 0");
|
RefreshCurve(firstCurve, curve1id, SimpleCurvePoint::ForthPoint);
|
||||||
Q_ASSERT_X(arc1id > 0, Q_FUNC_INFO, "arc1id <= 0");
|
RefreshCurve(secondCurve, curve2id, SimpleCurvePoint::FirstPoint);
|
||||||
Q_ASSERT_X(arc2id > 0, Q_FUNC_INFO, "arc2id <= 0");
|
|
||||||
|
|
||||||
firstArc = new VSimpleCurve(arc1id, ¤tColor, &factor);
|
|
||||||
RefreshArc(firstArc, arc1id, SimpleCurvePoint::ForthPoint);
|
|
||||||
firstArc->setParentItem(this);
|
|
||||||
connect(firstArc, &VSimpleCurve::Choosed, this, &VToolCutArc::ArcChoosed);
|
|
||||||
|
|
||||||
secondArc = new VSimpleCurve(arc2id, ¤tColor, &factor);
|
|
||||||
RefreshArc(secondArc, arc2id, SimpleCurvePoint::FirstPoint);
|
|
||||||
secondArc->setParentItem(this);
|
|
||||||
connect(secondArc, &VSimpleCurve::Choosed, this, &VToolCutArc::ArcChoosed);
|
|
||||||
|
|
||||||
if (typeCreation == Source::FromGui)
|
if (typeCreation == Source::FromGui)
|
||||||
{
|
{
|
||||||
|
@ -89,7 +77,7 @@ void VToolCutArc::setDialog()
|
||||||
SCASSERT(dialogTool != nullptr);
|
SCASSERT(dialogTool != nullptr);
|
||||||
const VPointF *point = VAbstractTool::data.GeometricObject<const VPointF *>(id);
|
const VPointF *point = VAbstractTool::data.GeometricObject<const VPointF *>(id);
|
||||||
dialogTool->setFormula(formula);
|
dialogTool->setFormula(formula);
|
||||||
dialogTool->setArcId(arcId, id);
|
dialogTool->setArcId(curveCutId, id);
|
||||||
dialogTool->setPointName(point->name());
|
dialogTool->setPointName(point->name());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,48 +192,19 @@ VToolCutArc* VToolCutArc::Create(const quint32 _id, const QString &pointName, QS
|
||||||
*/
|
*/
|
||||||
void VToolCutArc::FullUpdateFromFile()
|
void VToolCutArc::FullUpdateFromFile()
|
||||||
{
|
{
|
||||||
QDomElement domElement = doc->elementById(QString().setNum(id));
|
FullUpdateCurveFromFile(AttrArc);
|
||||||
if (domElement.isElement())
|
|
||||||
{
|
|
||||||
formula = domElement.attribute(AttrLength, "");
|
|
||||||
arcId = domElement.attribute(AttrArc, "").toUInt();
|
|
||||||
}
|
|
||||||
RefreshGeometry();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief ArcChoosed send signal about selection from cutted arc.
|
* @brief CurveChoosed send signal about selection from cutted arc.
|
||||||
* @param id object id in container.
|
* @param id object id in container.
|
||||||
*/
|
*/
|
||||||
void VToolCutArc::ArcChoosed(quint32 id)
|
void VToolCutArc::CurveChoosed(quint32 id)
|
||||||
{
|
{
|
||||||
emit ChoosedTool(id, SceneObject::Arc);
|
emit ChoosedTool(id, SceneObject::Arc);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief ChangedActivDraw disable or enable context menu after change active pattern peace.
|
|
||||||
* @param newName new name active pattern peace.
|
|
||||||
*/
|
|
||||||
void VToolCutArc::ChangedActivDraw(const QString &newName)
|
|
||||||
{
|
|
||||||
bool flag = true;
|
|
||||||
if (nameActivDraw == newName)
|
|
||||||
{
|
|
||||||
currentColor = Qt::black;
|
|
||||||
flag = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
currentColor = Qt::gray;
|
|
||||||
flag = false;
|
|
||||||
}
|
|
||||||
firstArc->ChangedActivDraw(flag);
|
|
||||||
secondArc->ChangedActivDraw(flag);
|
|
||||||
VToolPoint::ChangedActivDraw(newName);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief ShowContextMenu show context menu.
|
* @brief ShowContextMenu show context menu.
|
||||||
|
@ -282,7 +241,7 @@ void VToolCutArc::AddToFile()
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
||||||
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formula);
|
doc->SetAttribute(domElement, AttrLength, formula);
|
||||||
doc->SetAttribute(domElement, AttrArc, arcId);
|
doc->SetAttribute(domElement, AttrArc, curveCutId);
|
||||||
|
|
||||||
AddToCalculation(domElement);
|
AddToCalculation(domElement);
|
||||||
}
|
}
|
||||||
|
@ -301,21 +260,10 @@ void VToolCutArc::RefreshDataInFile()
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
||||||
doc->SetAttribute(domElement, AttrLength, formula);
|
doc->SetAttribute(domElement, AttrLength, formula);
|
||||||
doc->SetAttribute(domElement, AttrArc, arcId);
|
doc->SetAttribute(domElement, AttrArc, curveCutId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief RefreshGeometry refresh item on scene.
|
|
||||||
*/
|
|
||||||
void VToolCutArc::RefreshGeometry()
|
|
||||||
{
|
|
||||||
RefreshArc(firstArc, arc1id, SimpleCurvePoint::ForthPoint);
|
|
||||||
RefreshArc(secondArc, arc2id, SimpleCurvePoint::FirstPoint);
|
|
||||||
VToolPoint::RefreshPointGeometry(*VDrawTool::data.GeometricObject<const VPointF *>(id));
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief SaveDialog save options into file after change in dialog.
|
* @brief SaveDialog save options into file after change in dialog.
|
||||||
|
@ -332,14 +280,14 @@ void VToolCutArc::SaveDialog(QDomElement &domElement)
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief RefreshArc refresh arc on scene.
|
* @brief RefreshCurve refresh curve on scene.
|
||||||
* @param sArc arc.
|
* @param curve curve.
|
||||||
* @param arcid arc id.
|
* @param curveId curve id.
|
||||||
* @param tr arc type.
|
* @param tr point type.
|
||||||
*/
|
*/
|
||||||
void VToolCutArc::RefreshArc(VSimpleCurve *sArc, quint32 arcid, SimpleCurvePoint tr)
|
void VToolCutArc::RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurvePoint tr)
|
||||||
{
|
{
|
||||||
const VArc *arc = VAbstractTool::data.GeometricObject<const VArc *>(arcid);
|
const VArc *arc = VAbstractTool::data.GeometricObject<const VArc *>(curveId);
|
||||||
QPainterPath path;
|
QPainterPath path;
|
||||||
path.addPath(arc->GetPath());
|
path.addPath(arc->GetPath());
|
||||||
path.setFillRule( Qt::WindingFill );
|
path.setFillRule( Qt::WindingFill );
|
||||||
|
@ -351,5 +299,5 @@ void VToolCutArc::RefreshArc(VSimpleCurve *sArc, quint32 arcid, SimpleCurvePoint
|
||||||
{
|
{
|
||||||
path.translate(-arc->GetP2().x(), -arc->GetP2().y());
|
path.translate(-arc->GetP2().x(), -arc->GetP2().y());
|
||||||
}
|
}
|
||||||
sArc->setPath(path);
|
curve->setPath(path);
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,13 +29,12 @@
|
||||||
#ifndef VTOOLCUTARC_H
|
#ifndef VTOOLCUTARC_H
|
||||||
#define VTOOLCUTARC_H
|
#define VTOOLCUTARC_H
|
||||||
|
|
||||||
#include "vtoolpoint.h"
|
#include "vtoolcut.h"
|
||||||
#include "../../widgets/vsimplecurve.h"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The VToolCutArc class tool for cutting arc.
|
* @brief The VToolCutArc class tool for cutting arc.
|
||||||
*/
|
*/
|
||||||
class VToolCutArc : public VToolPoint
|
class VToolCutArc : public VToolCut
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
@ -51,36 +50,16 @@ public:
|
||||||
static const QString AttrArc;
|
static const QString AttrArc;
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile();
|
virtual void FullUpdateFromFile();
|
||||||
void ArcChoosed(quint32 id);
|
virtual void CurveChoosed(quint32 id);
|
||||||
virtual void ChangedActivDraw(const QString &newName);
|
|
||||||
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
||||||
protected:
|
protected:
|
||||||
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
||||||
virtual void AddToFile();
|
virtual void AddToFile();
|
||||||
virtual void RefreshDataInFile();
|
virtual void RefreshDataInFile();
|
||||||
void RefreshGeometry();
|
|
||||||
virtual void SaveDialog(QDomElement &domElement);
|
virtual void SaveDialog(QDomElement &domElement);
|
||||||
|
virtual void RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurvePoint tr);
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VToolCutArc)
|
Q_DISABLE_COPY(VToolCutArc)
|
||||||
|
|
||||||
/** @brief formula keep formula of length */
|
|
||||||
QString formula;
|
|
||||||
|
|
||||||
/** @brief arcId keep id of arc */
|
|
||||||
quint32 arcId;
|
|
||||||
|
|
||||||
/** @brief firstArc first arc after cutting. */
|
|
||||||
VSimpleCurve *firstArc;
|
|
||||||
|
|
||||||
/** @brief secondArc second arc after cutting. */
|
|
||||||
VSimpleCurve *secondArc;
|
|
||||||
|
|
||||||
/** @brief arc1id id first arc after cutting. */
|
|
||||||
const quint32 arc1id;
|
|
||||||
|
|
||||||
/** @brief arc2id id second arc after cutting. */
|
|
||||||
const quint32 arc2id;
|
|
||||||
void RefreshArc(VSimpleCurve *sArc, quint32 arcid, SimpleCurvePoint tr);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VTOOLCUTARC_H
|
#endif // VTOOLCUTARC_H
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
#include <geometry/vspline.h>
|
#include <geometry/vspline.h>
|
||||||
|
|
||||||
const QString VToolCutSpline::ToolType = QStringLiteral("cutSpline");
|
const QString VToolCutSpline::ToolType = QStringLiteral("cutSpline");
|
||||||
const QString VToolCutSpline::AttrSpline = QStringLiteral("spline");
|
const QString VToolCutSpline::AttrSpline = QStringLiteral("spline");
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -50,22 +50,10 @@ const QString VToolCutSpline::AttrSpline = QStringLiteral("spline");
|
||||||
VToolCutSpline::VToolCutSpline(VPattern *doc, VContainer *data, const quint32 &id, const QString &formula,
|
VToolCutSpline::VToolCutSpline(VPattern *doc, VContainer *data, const quint32 &id, const QString &formula,
|
||||||
const quint32 &splineId, const quint32 &spl1id, const quint32 &spl2id,
|
const quint32 &splineId, const quint32 &spl1id, const quint32 &spl2id,
|
||||||
const Source &typeCreation, QGraphicsItem *parent)
|
const Source &typeCreation, QGraphicsItem *parent)
|
||||||
:VToolPoint(doc, data, id, parent), formula(formula), splineId(splineId), firstSpline(), secondSpline(),
|
:VToolCut(doc, data, id, formula, splineId, spl1id, spl2id, parent)
|
||||||
spl1id(spl1id), spl2id(spl2id)
|
|
||||||
{
|
{
|
||||||
Q_ASSERT_X(splineId > 0, Q_FUNC_INFO, "splineId <= 0");
|
RefreshCurve(firstCurve, curve1id, SimpleCurvePoint::ForthPoint);
|
||||||
Q_ASSERT_X(spl1id > 0, Q_FUNC_INFO, "spl1id <= 0");
|
RefreshCurve(secondCurve, curve2id, SimpleCurvePoint::FirstPoint);
|
||||||
Q_ASSERT_X(spl2id > 0, Q_FUNC_INFO, "spl2id <= 0");
|
|
||||||
|
|
||||||
firstSpline = new VSimpleCurve(spl1id, ¤tColor, &factor);
|
|
||||||
RefreshSpline(firstSpline, spl1id, SimpleCurvePoint::ForthPoint);
|
|
||||||
firstSpline->setParentItem(this);
|
|
||||||
connect(firstSpline, &VSimpleCurve::Choosed, this, &VToolCutSpline::SplineChoosed);
|
|
||||||
|
|
||||||
secondSpline = new VSimpleCurve(spl2id, ¤tColor, &factor);
|
|
||||||
RefreshSpline(secondSpline, spl2id, SimpleCurvePoint::FirstPoint);
|
|
||||||
secondSpline->setParentItem(this);
|
|
||||||
connect(secondSpline, &VSimpleCurve::Choosed, this, &VToolCutSpline::SplineChoosed);
|
|
||||||
|
|
||||||
if (typeCreation == Source::FromGui)
|
if (typeCreation == Source::FromGui)
|
||||||
{
|
{
|
||||||
|
@ -88,7 +76,7 @@ void VToolCutSpline::setDialog()
|
||||||
SCASSERT(dialogTool != nullptr);
|
SCASSERT(dialogTool != nullptr);
|
||||||
const VPointF *point = VAbstractTool::data.GeometricObject<const VPointF *>(id);
|
const VPointF *point = VAbstractTool::data.GeometricObject<const VPointF *>(id);
|
||||||
dialogTool->setFormula(formula);
|
dialogTool->setFormula(formula);
|
||||||
dialogTool->setSplineId(splineId, id);
|
dialogTool->setSplineId(curveCutId, id);
|
||||||
dialogTool->setPointName(point->name());
|
dialogTool->setPointName(point->name());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -196,48 +184,19 @@ void VToolCutSpline::Create(const quint32 _id, const QString &pointName, QString
|
||||||
*/
|
*/
|
||||||
void VToolCutSpline::FullUpdateFromFile()
|
void VToolCutSpline::FullUpdateFromFile()
|
||||||
{
|
{
|
||||||
QDomElement domElement = doc->elementById(QString().setNum(id));
|
FullUpdateCurveFromFile(AttrSpline);
|
||||||
if (domElement.isElement())
|
|
||||||
{
|
|
||||||
formula = domElement.attribute(AttrLength, "");
|
|
||||||
splineId = domElement.attribute(AttrSpline, "").toUInt();
|
|
||||||
}
|
|
||||||
RefreshGeometry();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief SplineChoosed send signal about selection from spline.
|
* @brief CurveChoosed send signal about selection from spline.
|
||||||
* @param id object id in container.
|
* @param id object id in container.
|
||||||
*/
|
*/
|
||||||
void VToolCutSpline::SplineChoosed(quint32 id)
|
void VToolCutSpline::CurveChoosed(quint32 id)
|
||||||
{
|
{
|
||||||
emit ChoosedTool(id, SceneObject::Spline);
|
emit ChoosedTool(id, SceneObject::Spline);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief ChangedActivDraw disable or enable context menu after change active pattern peace.
|
|
||||||
* @param newName new name active pattern peace.
|
|
||||||
*/
|
|
||||||
void VToolCutSpline::ChangedActivDraw(const QString &newName)
|
|
||||||
{
|
|
||||||
bool flag = true;
|
|
||||||
if (nameActivDraw == newName)
|
|
||||||
{
|
|
||||||
currentColor = Qt::black;
|
|
||||||
flag = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
currentColor = Qt::gray;
|
|
||||||
flag = false;
|
|
||||||
}
|
|
||||||
firstSpline->ChangedActivDraw(flag);
|
|
||||||
secondSpline->ChangedActivDraw(flag);
|
|
||||||
VToolPoint::ChangedActivDraw(newName);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief ShowContextMenu show context menu.
|
* @brief ShowContextMenu show context menu.
|
||||||
|
@ -274,7 +233,7 @@ void VToolCutSpline::AddToFile()
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
||||||
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formula);
|
doc->SetAttribute(domElement, AttrLength, formula);
|
||||||
doc->SetAttribute(domElement, AttrSpline, splineId);
|
doc->SetAttribute(domElement, AttrSpline, curveCutId);
|
||||||
|
|
||||||
AddToCalculation(domElement);
|
AddToCalculation(domElement);
|
||||||
}
|
}
|
||||||
|
@ -293,30 +252,10 @@ void VToolCutSpline::RefreshDataInFile()
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
||||||
doc->SetAttribute(domElement, AttrLength, formula);
|
doc->SetAttribute(domElement, AttrLength, formula);
|
||||||
doc->SetAttribute(domElement, AttrSpline, splineId);
|
doc->SetAttribute(domElement, AttrSpline, curveCutId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief RefreshGeometry refresh item on scene.
|
|
||||||
*/
|
|
||||||
void VToolCutSpline::RefreshGeometry()
|
|
||||||
{
|
|
||||||
RefreshSpline(firstSpline, spl1id, SimpleCurvePoint::ForthPoint);
|
|
||||||
RefreshSpline(secondSpline, spl2id, SimpleCurvePoint::FirstPoint);
|
|
||||||
VToolPoint::RefreshPointGeometry(*VDrawTool::data.GeometricObject<const VPointF *>(id));
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief RemoveReferens decrement referens value for used objects.
|
|
||||||
*/
|
|
||||||
void VToolCutSpline::RemoveReferens()
|
|
||||||
{
|
|
||||||
doc->DecrementReferens(splineId);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief SaveDialog save options into file after change in dialog.
|
* @brief SaveDialog save options into file after change in dialog.
|
||||||
|
@ -333,14 +272,14 @@ void VToolCutSpline::SaveDialog(QDomElement &domElement)
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief RefreshSpline refresh spline on scene.
|
* @brief RefreshCurve refresh curve on scene.
|
||||||
* @param spline spline.
|
* @param curve curve.
|
||||||
* @param splid spline id.
|
* @param curveId curve id.
|
||||||
* @param tr spline type.
|
* @param tr point type.
|
||||||
*/
|
*/
|
||||||
void VToolCutSpline::RefreshSpline(VSimpleCurve *spline, quint32 splid, SimpleCurvePoint tr)
|
void VToolCutSpline::RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurvePoint tr)
|
||||||
{
|
{
|
||||||
const VSpline *spl = VAbstractTool::data.GeometricObject<const VSpline *>(splid);
|
const VSpline *spl = VAbstractTool::data.GeometricObject<const VSpline *>(curveId);
|
||||||
QPainterPath path;
|
QPainterPath path;
|
||||||
path.addPath(spl->GetPath());
|
path.addPath(spl->GetPath());
|
||||||
path.setFillRule( Qt::WindingFill );
|
path.setFillRule( Qt::WindingFill );
|
||||||
|
@ -352,5 +291,5 @@ void VToolCutSpline::RefreshSpline(VSimpleCurve *spline, quint32 splid, SimpleCu
|
||||||
{
|
{
|
||||||
path.translate(-spl->GetP4().toQPointF().x(), -spl->GetP4().toQPointF().y());
|
path.translate(-spl->GetP4().toQPointF().x(), -spl->GetP4().toQPointF().y());
|
||||||
}
|
}
|
||||||
spline->setPath(path);
|
curve->setPath(path);
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,13 +29,12 @@
|
||||||
#ifndef VTOOLCUTSPLINE_H
|
#ifndef VTOOLCUTSPLINE_H
|
||||||
#define VTOOLCUTSPLINE_H
|
#define VTOOLCUTSPLINE_H
|
||||||
|
|
||||||
#include "vtoolpoint.h"
|
#include "vtoolcut.h"
|
||||||
#include "../../widgets/vsimplecurve.h"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The VToolCutSpline class for tool CutSpline. This tool find point on spline and cut spline on two.
|
* @brief The VToolCutSpline class for tool CutSpline. This tool find point on spline and cut spline on two.
|
||||||
*/
|
*/
|
||||||
class VToolCutSpline : public VToolPoint
|
class VToolCutSpline : public VToolCut
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
@ -52,38 +51,16 @@ public:
|
||||||
static const QString AttrSpline;
|
static const QString AttrSpline;
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile();
|
virtual void FullUpdateFromFile();
|
||||||
void SplineChoosed(quint32 id);
|
virtual void CurveChoosed(quint32 id);
|
||||||
virtual void ChangedActivDraw(const QString &newName);
|
|
||||||
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
||||||
protected:
|
protected:
|
||||||
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
||||||
virtual void AddToFile();
|
virtual void AddToFile();
|
||||||
virtual void RefreshDataInFile();
|
virtual void RefreshDataInFile();
|
||||||
void RefreshGeometry();
|
|
||||||
virtual void RemoveReferens();
|
|
||||||
virtual void SaveDialog(QDomElement &domElement);
|
virtual void SaveDialog(QDomElement &domElement);
|
||||||
|
virtual void RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurvePoint tr);
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VToolCutSpline)
|
Q_DISABLE_COPY(VToolCutSpline)
|
||||||
|
|
||||||
/** @brief formula keep formula of length. */
|
|
||||||
QString formula;
|
|
||||||
|
|
||||||
/** @brief splineId keep id of spline. */
|
|
||||||
quint32 splineId;
|
|
||||||
|
|
||||||
/** @brief firstSpline first spline after cutting. */
|
|
||||||
VSimpleCurve *firstSpline;
|
|
||||||
|
|
||||||
/** @brief secondSpline second spline after cutting. */
|
|
||||||
VSimpleCurve *secondSpline;
|
|
||||||
|
|
||||||
/** @brief spl1id id first spline after cutting. */
|
|
||||||
const quint32 spl1id;
|
|
||||||
|
|
||||||
/** @brief spl2id id second spline after cutting. */
|
|
||||||
const quint32 spl2id;
|
|
||||||
|
|
||||||
void RefreshSpline(VSimpleCurve *spline, quint32 splid, SimpleCurvePoint tr);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VTOOLCUTSPLINE_H
|
#endif // VTOOLCUTSPLINE_H
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
#include "../../geometry/vsplinepath.h"
|
#include "../../geometry/vsplinepath.h"
|
||||||
|
|
||||||
const QString VToolCutSplinePath::ToolType = QStringLiteral("cutSplinePath");
|
const QString VToolCutSplinePath::ToolType = QStringLiteral("cutSplinePath");
|
||||||
const QString VToolCutSplinePath::AttrSplinePath = QStringLiteral("splinePath");
|
const QString VToolCutSplinePath::AttrSplinePath = QStringLiteral("splinePath");
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -53,22 +53,10 @@ VToolCutSplinePath::VToolCutSplinePath(VPattern *doc, VContainer *data, const qu
|
||||||
const QString &formula, const quint32 &splinePathId,
|
const QString &formula, const quint32 &splinePathId,
|
||||||
const quint32 &splPath1id, const quint32 &splPath2id,
|
const quint32 &splPath1id, const quint32 &splPath2id,
|
||||||
const Source &typeCreation, QGraphicsItem *parent)
|
const Source &typeCreation, QGraphicsItem *parent)
|
||||||
:VToolPoint(doc, data, id, parent), formula(formula), splinePathId(splinePathId), firstSpline(), secondSpline(),
|
:VToolCut(doc, data, id, formula, splinePathId, splPath1id, splPath2id, parent)
|
||||||
splPath1id (splPath1id), splPath2id(splPath2id)
|
|
||||||
{
|
{
|
||||||
Q_ASSERT_X(splinePathId > 0, Q_FUNC_INFO, "splinePathId <= 0");
|
RefreshCurve(firstCurve, curve1id, SimpleCurvePoint::ForthPoint);
|
||||||
Q_ASSERT_X(splPath1id > 0, Q_FUNC_INFO, "spl1id <= 0");
|
RefreshCurve(secondCurve, curve2id, SimpleCurvePoint::FirstPoint);
|
||||||
Q_ASSERT_X(splPath2id > 0, Q_FUNC_INFO, "spl2id <= 0");
|
|
||||||
|
|
||||||
firstSpline = new VSimpleCurve(splPath1id, ¤tColor, &factor);
|
|
||||||
RefreshSpline(firstSpline, splPath1id, SimpleCurvePoint::ForthPoint);
|
|
||||||
firstSpline->setParentItem(this);
|
|
||||||
connect(firstSpline, &VSimpleCurve::Choosed, this, &VToolCutSplinePath::SplineChoosed);
|
|
||||||
|
|
||||||
secondSpline = new VSimpleCurve(splPath2id, ¤tColor, &factor);
|
|
||||||
RefreshSpline(secondSpline, splPath2id, SimpleCurvePoint::FirstPoint);
|
|
||||||
secondSpline->setParentItem(this);
|
|
||||||
connect(secondSpline, &VSimpleCurve::Choosed, this, &VToolCutSplinePath::SplineChoosed);
|
|
||||||
|
|
||||||
if (typeCreation == Source::FromGui)
|
if (typeCreation == Source::FromGui)
|
||||||
{
|
{
|
||||||
|
@ -91,7 +79,7 @@ void VToolCutSplinePath::setDialog()
|
||||||
SCASSERT(dialogTool != nullptr);
|
SCASSERT(dialogTool != nullptr);
|
||||||
const VPointF *point = VAbstractTool::data.GeometricObject<const VPointF *>(id);
|
const VPointF *point = VAbstractTool::data.GeometricObject<const VPointF *>(id);
|
||||||
dialogTool->setFormula(formula);
|
dialogTool->setFormula(formula);
|
||||||
dialogTool->setSplinePathId(splinePathId, id);
|
dialogTool->setSplinePathId(curveCutId, id);
|
||||||
dialogTool->setPointName(point->name());
|
dialogTool->setPointName(point->name());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,48 +239,19 @@ void VToolCutSplinePath::Create(const quint32 _id, const QString &pointName, QSt
|
||||||
*/
|
*/
|
||||||
void VToolCutSplinePath::FullUpdateFromFile()
|
void VToolCutSplinePath::FullUpdateFromFile()
|
||||||
{
|
{
|
||||||
QDomElement domElement = doc->elementById(QString().setNum(id));
|
FullUpdateCurveFromFile(AttrSplinePath);
|
||||||
if (domElement.isElement())
|
|
||||||
{
|
|
||||||
formula = domElement.attribute(AttrLength, "");
|
|
||||||
splinePathId = domElement.attribute(AttrSplinePath, "").toUInt();
|
|
||||||
}
|
|
||||||
RefreshGeometry();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief SplineChoosed send signal about selection splinePath.
|
* @brief CurveChoosed send signal about selection splinePath.
|
||||||
* @param id object id in container.
|
* @param id object id in container.
|
||||||
*/
|
*/
|
||||||
void VToolCutSplinePath::SplineChoosed(quint32 id)
|
void VToolCutSplinePath::CurveChoosed(quint32 id)
|
||||||
{
|
{
|
||||||
emit ChoosedTool(id, SceneObject::SplinePath);
|
emit ChoosedTool(id, SceneObject::SplinePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief ChangedActivDraw disable or enable context menu after change active pattern peace.
|
|
||||||
* @param newName new name active pattern peace.
|
|
||||||
*/
|
|
||||||
void VToolCutSplinePath::ChangedActivDraw(const QString &newName)
|
|
||||||
{
|
|
||||||
bool flag = true;
|
|
||||||
if (nameActivDraw == newName)
|
|
||||||
{
|
|
||||||
currentColor = Qt::black;
|
|
||||||
flag = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
currentColor = Qt::gray;
|
|
||||||
flag = false;
|
|
||||||
}
|
|
||||||
firstSpline->ChangedActivDraw(flag);
|
|
||||||
secondSpline->ChangedActivDraw(flag);
|
|
||||||
VToolPoint::ChangedActivDraw(newName);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief ShowContextMenu show context menu.
|
* @brief ShowContextMenu show context menu.
|
||||||
|
@ -329,7 +288,7 @@ void VToolCutSplinePath::AddToFile()
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
||||||
|
|
||||||
doc->SetAttribute(domElement, AttrLength, formula);
|
doc->SetAttribute(domElement, AttrLength, formula);
|
||||||
doc->SetAttribute(domElement, AttrSplinePath, splinePathId);
|
doc->SetAttribute(domElement, AttrSplinePath, curveCutId);
|
||||||
|
|
||||||
AddToCalculation(domElement);
|
AddToCalculation(domElement);
|
||||||
}
|
}
|
||||||
|
@ -348,30 +307,10 @@ void VToolCutSplinePath::RefreshDataInFile()
|
||||||
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
doc->SetAttribute(domElement, AttrMx, qApp->fromPixel(point->mx()));
|
||||||
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
doc->SetAttribute(domElement, AttrMy, qApp->fromPixel(point->my()));
|
||||||
doc->SetAttribute(domElement, AttrLength, formula);
|
doc->SetAttribute(domElement, AttrLength, formula);
|
||||||
doc->SetAttribute(domElement, AttrSplinePath, splinePathId);
|
doc->SetAttribute(domElement, AttrSplinePath, curveCutId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief RefreshGeometry refresh item on scene.
|
|
||||||
*/
|
|
||||||
void VToolCutSplinePath::RefreshGeometry()
|
|
||||||
{
|
|
||||||
RefreshSpline(firstSpline, splPath1id, SimpleCurvePoint::ForthPoint);
|
|
||||||
RefreshSpline(secondSpline, splPath2id, SimpleCurvePoint::FirstPoint);
|
|
||||||
VToolPoint::RefreshPointGeometry(*VDrawTool::data.GeometricObject<const VPointF *>(id));
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief RemoveReferens decrement referens value for used objects.
|
|
||||||
*/
|
|
||||||
void VToolCutSplinePath::RemoveReferens()
|
|
||||||
{
|
|
||||||
doc->DecrementReferens(splinePathId);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief SaveDialog save options into file after change in dialog.
|
* @brief SaveDialog save options into file after change in dialog.
|
||||||
|
@ -388,14 +327,14 @@ void VToolCutSplinePath::SaveDialog(QDomElement &domElement)
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief RefreshSpline refresh splinePath on scene.
|
* @brief RefreshCurve refresh curve on scene.
|
||||||
* @param spline splinePath.
|
* @param curve curve.
|
||||||
* @param splPathid splinePath id.
|
* @param curveId curve id.
|
||||||
* @param tr splineType type.
|
* @param tr point type.
|
||||||
*/
|
*/
|
||||||
void VToolCutSplinePath::RefreshSpline(VSimpleCurve *spline, quint32 splPathid, SimpleCurvePoint tr)
|
void VToolCutSplinePath::RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurvePoint tr)
|
||||||
{
|
{
|
||||||
const VSplinePath *splPath = VAbstractTool::data.GeometricObject<const VSplinePath *>(splPathid);
|
const VSplinePath *splPath = VAbstractTool::data.GeometricObject<const VSplinePath *>(curveId);
|
||||||
QPainterPath path;
|
QPainterPath path;
|
||||||
path.addPath(splPath->GetPath());
|
path.addPath(splPath->GetPath());
|
||||||
path.setFillRule( Qt::WindingFill );
|
path.setFillRule( Qt::WindingFill );
|
||||||
|
@ -409,5 +348,5 @@ void VToolCutSplinePath::RefreshSpline(VSimpleCurve *spline, quint32 splPathid,
|
||||||
VSpline spl = splPath->GetSpline(splPath->Count());
|
VSpline spl = splPath->GetSpline(splPath->Count());
|
||||||
path.translate(-spl.GetP4().toQPointF().x(), -spl.GetP4().toQPointF().y());
|
path.translate(-spl.GetP4().toQPointF().x(), -spl.GetP4().toQPointF().y());
|
||||||
}
|
}
|
||||||
spline->setPath(path);
|
curve->setPath(path);
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,14 +29,13 @@
|
||||||
#ifndef VTOOLCUTSPLINEPATH_H
|
#ifndef VTOOLCUTSPLINEPATH_H
|
||||||
#define VTOOLCUTSPLINEPATH_H
|
#define VTOOLCUTSPLINEPATH_H
|
||||||
|
|
||||||
#include "vtoolpoint.h"
|
#include "vtoolcut.h"
|
||||||
#include "../../widgets/vsimplecurve.h"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The VToolCutSplinePath class for tool CutSplinePath. This tool find point on splinePath and cut splinePath on
|
* @brief The VToolCutSplinePath class for tool CutSplinePath. This tool find point on splinePath and cut splinePath on
|
||||||
* two.
|
* two.
|
||||||
*/
|
*/
|
||||||
class VToolCutSplinePath : public VToolPoint
|
class VToolCutSplinePath : public VToolCut
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
@ -53,38 +52,16 @@ public:
|
||||||
static const QString AttrSplinePath;
|
static const QString AttrSplinePath;
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile();
|
virtual void FullUpdateFromFile();
|
||||||
void SplineChoosed(quint32 id);
|
virtual void CurveChoosed(quint32 id);
|
||||||
virtual void ChangedActivDraw(const QString &newName);
|
|
||||||
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event);
|
||||||
protected:
|
protected:
|
||||||
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
|
||||||
virtual void AddToFile();
|
virtual void AddToFile();
|
||||||
virtual void RefreshDataInFile();
|
virtual void RefreshDataInFile();
|
||||||
void RefreshGeometry();
|
|
||||||
virtual void RemoveReferens();
|
|
||||||
virtual void SaveDialog(QDomElement &domElement);
|
virtual void SaveDialog(QDomElement &domElement);
|
||||||
|
virtual void RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurvePoint tr);
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VToolCutSplinePath)
|
Q_DISABLE_COPY(VToolCutSplinePath)
|
||||||
|
|
||||||
/** @brief formula keep formula of length */
|
|
||||||
QString formula;
|
|
||||||
|
|
||||||
/** @brief splineId keep id of spline. */
|
|
||||||
quint32 splinePathId;
|
|
||||||
|
|
||||||
/** @brief firstSpline first splinePath after cutting. */
|
|
||||||
VSimpleCurve *firstSpline;
|
|
||||||
|
|
||||||
/** @brief secondSpline second splinePath after cutting. */
|
|
||||||
VSimpleCurve *secondSpline;
|
|
||||||
|
|
||||||
/** @brief splPath1id id first splinePath after cutting. */
|
|
||||||
const quint32 splPath1id;
|
|
||||||
|
|
||||||
/** @brief splPath2id id second splinePath after cutting. */
|
|
||||||
const quint32 splPath2id;
|
|
||||||
|
|
||||||
void RefreshSpline(VSimpleCurve *spline, quint32 splPathid, SimpleCurvePoint tr);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VTOOLCUTSPLINEPATH_H
|
#endif // VTOOLCUTSPLINEPATH_H
|
||||||
|
|
|
@ -32,7 +32,8 @@ HEADERS += \
|
||||||
tools/drawTools/vtoolcutsplinepath.h \
|
tools/drawTools/vtoolcutsplinepath.h \
|
||||||
tools/vtooluniondetails.h \
|
tools/vtooluniondetails.h \
|
||||||
tools/drawTools/vtoolcutarc.h \
|
tools/drawTools/vtoolcutarc.h \
|
||||||
tools/drawTools/vabstractspline.h
|
tools/drawTools/vabstractspline.h \
|
||||||
|
tools/drawTools/vtoolcut.h
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
tools/vtooldetail.cpp \
|
tools/vtooldetail.cpp \
|
||||||
|
@ -65,4 +66,5 @@ SOURCES += \
|
||||||
tools/drawTools/vtoolcutsplinepath.cpp \
|
tools/drawTools/vtoolcutsplinepath.cpp \
|
||||||
tools/vtooluniondetails.cpp \
|
tools/vtooluniondetails.cpp \
|
||||||
tools/drawTools/vtoolcutarc.cpp \
|
tools/drawTools/vtoolcutarc.cpp \
|
||||||
tools/drawTools/vabstractspline.cpp
|
tools/drawTools/vabstractspline.cpp \
|
||||||
|
tools/drawTools/vtoolcut.cpp
|
||||||
|
|
|
@ -55,13 +55,13 @@ protected:
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VSimpleCurve)
|
Q_DISABLE_COPY(VSimpleCurve)
|
||||||
/** @brief id spline id. */
|
/** @brief id spline id. */
|
||||||
quint32 id;
|
quint32 id;
|
||||||
|
|
||||||
/** @brief factor scale factor. */
|
/** @brief factor scale factor. */
|
||||||
qreal *factor;
|
qreal *factor;
|
||||||
|
|
||||||
/** @brief currentColor current color. */
|
/** @brief currentColor current color. */
|
||||||
Qt::GlobalColor *currentColor;
|
Qt::GlobalColor *currentColor;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VSIMPLECURVE_H
|
#endif // VSIMPLECURVE_H
|
||||||
|
|
Loading…
Reference in New Issue
Block a user