Compare commits

...

8 commits

Author SHA1 Message Date
Roman Telezhynskyi 2bae9a84eb Fix excluding objects in internal path. 2023-03-04 18:37:50 +02:00
Roman Telezhynskyi bd10ac3c13 Fix copying conan package library on Windows.
On Windows dll in bin folder, while on Unix it in lib.
2023-03-04 09:24:39 +02:00
Roman Telezhynskyi 5ceff228eb Fix path to platfrom plugin on Windows. 2023-03-04 09:21:22 +02:00
Roman Telezhynskyi a791fc0173 Reading from disc doesn't work from on Windows. Read from memory instead. 2023-03-04 09:17:40 +02:00
Roman Telezhynskyi 08362980bd Don't ignore warning Wenum-enum-conversion in this place. 2023-03-04 09:11:17 +02:00
Roman Telezhynskyi 2a9fcda3a6 Fix bug with compilation on Windows 10 with Qt 6. 2023-03-04 09:07:30 +02:00
Roman Telezhynskyi f3e9918729 pkg-config is more wildly used than was previously thought. 2023-03-04 09:06:06 +02:00
Roman Telezhynskyi 7d017116f3 Install only necessary dependencies since cmake and python already present. 2023-03-01 10:57:32 +02:00
17 changed files with 2652 additions and 119 deletions

View file

@ -16,6 +16,7 @@
- Shortcut to quickly enable/disable Interactive tools mode.
- Improve labels for V notch.
- Fix QT issue on MacOS version 11.0 "Big Sur".
- Fix excluding objects in internal path.
# Valentina 0.7.52 September 12, 2022
- Fix crash when default locale is ru.

View file

@ -532,7 +532,9 @@ for:
- sudo xcode-select -s /Applications/Xcode-$XCODE_VERSION.app
- sudo xcode-select -p
- brew update > /dev/null
- brew install --force qbs
- brew deps -n qbs
- brew install libpng freetype pcre2 gettext glib jpeg-turbo giflib lz4 xz zstd libtiff webp qt@5
- brew install --ignore-dependencies qbs
- export QTDIR="${HOME}/${QT}"
- export PATH="$QTDIR/bin:$HOME/.local/bin:`python3 -m site --user-base`/bin:$PATH"
- echo $PATH

View file

@ -41,11 +41,7 @@ Module {
if (Utilities.versionCompare(Qt.core.version, "6") < 0)
return false;
if (qbs.targetOS.contains("unix") && !qbs.targetOS.contains("macos"))
{
return project.enableConan;
}
return true;
return project.enableConan;
}
property string libDirName: "lib"
@ -146,6 +142,19 @@ Module {
return "c++11";
}
Properties {
condition: qbs.targetOS.contains("windows") && qbs.toolchain.contains("gcc") && !qbs.toolchain.contains("clang")
cpp.minimumWindowsVersion: {
if (Qt.core.versionMajor >= 6)
return "6.02"; // should be 10.0
if (Qt.core.versionMajor >= 5 && Qt.core.versionMinor >= 7)
return "6.00";
return "5.01";
}
}
readonly property string minimumMacosVersion: {
if (project.minimumMacosVersion !== undefined)
return project.minimumMacosVersion;

View file

@ -18,7 +18,7 @@ VToolApp {
multibundle.targetApps: ["Valentina"]
Properties {
condition: buildconfig.useConanPackages && buildconfig.enableMultiBundle
condition: buildconfig.useConanPackages && qbs.targetOS.contains("macos") && buildconfig.enableMultiBundle
conan.XercesC.libInstallDir: qbs.installPrefix + "/" + buildconfig.installLibraryPath
conan.XercesC.installLib: true
}

View file

@ -22,7 +22,7 @@ VToolApp {
multibundle.targetApps: ["Valentina"]
Properties {
condition: buildconfig.useConanPackages && buildconfig.enableMultiBundle
condition: buildconfig.useConanPackages && qbs.targetOS.contains("macos") && buildconfig.enableMultiBundle
conan.XercesC.libInstallDir: qbs.installPrefix + "/" + buildconfig.installLibraryPath
conan.XercesC.installLib: true
}

View file

@ -33,9 +33,19 @@ VToolApp {
targetName: buildconfig.appTarget
Properties {
condition: buildconfig.useConanPackages
condition: buildconfig.useConanPackages && (qbs.targetOS.contains("windows") || qbs.targetOS.contains("macos"))
conan.XercesC.libInstallDir: qbs.installPrefix + "/" + buildconfig.installLibraryPath
conan.XercesC.installLib: true
conan.XercesC.binInstallDir: qbs.installPrefix + "/" + buildconfig.installBinaryPath
conan.XercesC.installLib: {
if (qbs.targetOS.contains("windows"))
return false
return true
}
conan.XercesC.installBin: {
if (qbs.targetOS.contains("windows"))
return true
return false
}
}
files: [

View file

@ -31,6 +31,7 @@
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
#include <xercesc/parsers/XercesDOMParser.hpp>
#include <xercesc/framework/MemBufInputSource.hpp>
#else
#include <QXmlSchema>
#include <QXmlSchemaValidator>
@ -180,58 +181,64 @@ void VAbstractConverter::ValidateXML(const QString &schema) const
VParserErrorHandler parserErrorHandler;
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
QScopedPointer<QTemporaryFile> tempSchema(QTemporaryFile::createNativeFile(fileSchema));
if (tempSchema == nullptr)
XERCES_CPP_NAMESPACE::XercesDOMParser domParser;
domParser.setErrorHandler(&parserErrorHandler);
QByteArray data = fileSchema.readAll();
const char* schemaData = data.constData();
QScopedPointer<XERCES_CPP_NAMESPACE::InputSource> grammarSource(
new XERCES_CPP_NAMESPACE::MemBufInputSource(reinterpret_cast<const XMLByte*>(schemaData),
strlen(schemaData), "schema"));
if (domParser.loadGrammar(
*grammarSource,
XERCES_CPP_NAMESPACE::Grammar::SchemaGrammarType, true) == nullptr)
{
const QString errorMsg(tr("Can't create native file for schema file %1:\n%2.")
.arg(schema, fileSchema.errorString()));
VException e(parserErrorHandler.StatusMessage());
e.AddMoreInformation(tr("Could not load schema file '%1'.").arg(fileSchema.fileName()));
throw e;
}
qCDebug(vXML, "Schema loaded.");
if (parserErrorHandler.HasError())
{
VException e(parserErrorHandler.StatusMessage());
e.AddMoreInformation(tr("Schema file %3 invalid in line %1 column %2").arg(parserErrorHandler.Line())
.arg(parserErrorHandler.Column()).arg(fileSchema.fileName()));
throw e;
}
domParser.setValidationScheme(XERCES_CPP_NAMESPACE::XercesDOMParser::Val_Always);
domParser.setDoNamespaces(true);
domParser.setDoSchema(true);
domParser.setValidationConstraintFatal(true);
domParser.setValidationSchemaFullChecking(true);
domParser.useCachedGrammarInParse(true);
QFile pattern(m_convertedFileName);
if (not pattern.open(QIODevice::ReadOnly))
{
const QString errorMsg(tr("Can't open file %1:\n%2.").arg(m_convertedFileName, pattern.errorString()));
throw VException(errorMsg);
}
if (tempSchema->open())
QByteArray patternFileData = pattern.readAll();
const char* patternData = patternFileData.constData();
QScopedPointer<XERCES_CPP_NAMESPACE::InputSource> patternSource(
new XERCES_CPP_NAMESPACE::MemBufInputSource(reinterpret_cast<const XMLByte*>(patternData),
strlen(patternData), "pattern"));
domParser.parse(*patternSource);
if (domParser.getErrorCount() > 0)
{
XERCES_CPP_NAMESPACE::XercesDOMParser domParser;
domParser.setErrorHandler(&parserErrorHandler);
if (domParser.loadGrammar(
tempSchema->fileName().toUtf8().constData(),
XERCES_CPP_NAMESPACE::Grammar::SchemaGrammarType, true) == nullptr)
{
VException e(parserErrorHandler.StatusMessage());
e.AddMoreInformation(tr("Could not load schema file '%1'.").arg(fileSchema.fileName()));
throw e;
}
qCDebug(vXML, "Schema loaded.");
if (parserErrorHandler.HasError())
{
VException e(parserErrorHandler.StatusMessage());
e.AddMoreInformation(tr("Schema file %3 invalid in line %1 column %2").arg(parserErrorHandler.Line())
.arg(parserErrorHandler.Column()).arg(fileSchema.fileName()));
throw e;
}
domParser.setValidationScheme(XERCES_CPP_NAMESPACE::XercesDOMParser::Val_Always);
domParser.setDoNamespaces(true);
domParser.setDoSchema(true);
domParser.setValidationConstraintFatal(true);
domParser.setValidationSchemaFullChecking(true);
domParser.useCachedGrammarInParse(true);
domParser.parse(m_convertedFileName.toUtf8().constData());
if (domParser.getErrorCount() > 0)
{
VException e(parserErrorHandler.StatusMessage());
e.AddMoreInformation(tr("Validation error file %3 in line %1 column %2").arg(parserErrorHandler.Line())
.arg(parserErrorHandler.Column()).arg(m_originalFileName));
throw e;
}
}
else
{
qCritical() << tr("Unable to open native file for schema");
VException e(parserErrorHandler.StatusMessage());
e.AddMoreInformation(tr("Validation error file %3 in line %1 column %2").arg(parserErrorHandler.Line())
.arg(parserErrorHandler.Column()).arg(m_originalFileName));
throw e;
}
#else
QFile pattern(m_convertedFileName);

View file

@ -43,15 +43,9 @@ enum CustomEventType {
};
//---------------------------------------------------------------------------------------------------------------------
QT_WARNING_PUSH
#if !defined(Q_OS_MACOS) && defined(Q_CC_CLANG)
QT_WARNING_DISABLE_CLANG("-Wenum-enum-conversion")
#endif
// Define undo event identifier
const QEvent::Type UNDO_EVENT = static_cast<QEvent::Type>(QEvent::User + CustomEventType::UndoEventType);
QT_WARNING_POP
const QEvent::Type UNDO_EVENT =
static_cast<QEvent::Type>(QEvent::User + static_cast<int>(CustomEventType::UndoEventType));
class UndoEvent : public QEvent
{
@ -64,14 +58,8 @@ public:
};
//---------------------------------------------------------------------------------------------------------------------
QT_WARNING_PUSH
#if !defined(Q_OS_MACOS) && defined(Q_CC_CLANG)
QT_WARNING_DISABLE_CLANG("-Wenum-enum-conversion")
#endif
const QEvent::Type LITE_PARSE_EVENT = static_cast<QEvent::Type>(QEvent::User + CustomEventType::LiteParseEventType);
QT_WARNING_POP
const QEvent::Type LITE_PARSE_EVENT =
static_cast<QEvent::Type>(QEvent::User + static_cast<int>(CustomEventType::LiteParseEventType));
class LiteParseEvent : public QEvent
{
@ -84,15 +72,8 @@ public:
};
//---------------------------------------------------------------------------------------------------------------------
QT_WARNING_PUSH
#if !defined(Q_OS_MACOS) && defined(Q_CC_CLANG)
QT_WARNING_DISABLE_CLANG("-Wenum-enum-conversion")
#endif
const QEvent::Type FIT_BEST_CURRENT_EVENT = static_cast<QEvent::Type>(QEvent::User +
CustomEventType::FitBestCurrentEventType);
QT_WARNING_POP
const QEvent::Type FIT_BEST_CURRENT_EVENT =
static_cast<QEvent::Type>(QEvent::User + static_cast<int>(CustomEventType::FitBestCurrentEventType));
class FitBestCurrentEvent : public QEvent
{
@ -105,15 +86,8 @@ public:
};
//---------------------------------------------------------------------------------------------------------------------
QT_WARNING_PUSH
#if !defined(Q_OS_MACOS) && defined(Q_CC_CLANG)
QT_WARNING_DISABLE_CLANG("-Wenum-enum-conversion")
#endif
const QEvent::Type WARNING_MESSAGE_EVENT = static_cast<QEvent::Type>(QEvent::User +
CustomEventType::WarningMessageEventType);
QT_WARNING_POP
const QEvent::Type WARNING_MESSAGE_EVENT =
static_cast<QEvent::Type>(QEvent::User + static_cast<int>(CustomEventType::WarningMessageEventType));
class WarningMessageEvent : public QEvent
{

View file

@ -537,6 +537,11 @@ QVector<VSAPoint> VPiecePath::SeamAllowancePoints(const VContainer *data, qreal
for (int i = 0; i< d->m_nodes.size(); ++i)
{
const VPieceNode &node = d->m_nodes.at(i);
if (node.IsExcluded())
{
continue;// skip excluded node
}
switch (node.GetTypeTool())
{
case (Tool::NodePoint):

View file

@ -0,0 +1,808 @@
{
"vector": [
{
"turnPoint": true,
"type": "VSAPoint",
"x": 3390.5083464566933,
"y": 1652.6752916395003
},
{
"angle": 6,
"saAfter": 0,
"saBefore": 0,
"turnPoint": true,
"type": "VSAPoint",
"x": 3196.695760868326,
"y": 1437.9986654101622
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"turnPoint": true,
"type": "VSAPoint",
"x": 3196.695760868326,
"y": 1437.9986654101622
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3214.800242062198,
"y": 1437.9237170055508
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3250.924467157519,
"y": 1437.0274276114965
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3286.9335732959644,
"y": 1435.2410317459567
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3322.812633582018,
"y": 1432.5707123314983
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3358.5467211201585,
"y": 1429.0226522906896
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3394.1209090148686,
"y": 1424.6030345460995
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3429.52027037063,
"y": 1419.3180420202948
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3464.7298782919224,
"y": 1413.1738576358437
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3499.7348058832295,
"y": 1406.1766643153146
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3534.52012624903,
"y": 1398.3326449812748
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3569.0709124938066,
"y": 1389.647982556293
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3603.372237722041,
"y": 1380.128859962937
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3637.409175038214,
"y": 1369.7814601237742
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3671.166797546806,
"y": 1358.6119659613732
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3704.6301783522995,
"y": 1346.626560398302
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3737.7843905591753,
"y": 1333.8314263571283
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3770.614507271915,
"y": 1320.2327467604196
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3803.105601595,
"y": 1305.836704530745
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3835.242746632911,
"y": 1290.6494825906716
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3867.0110154901295,
"y": 1274.6772638627676
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3898.395481271137,
"y": 1257.926231269601
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3929.381217080415,
"y": 1240.40256773374
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3959.953296022444,
"y": 1222.112456177752
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3990.0967912017068,
"y": 1203.0620795242053
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4019.7967757226825,
"y": 1183.257620695668
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4049.038322689855,
"y": 1162.7052626147079
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4077.8065052077027,
"y": 1141.4111882038928
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4106.08639638071,
"y": 1119.381580385791
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4133.863069313355,
"y": 1096.6226220829703
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4161.121597110121,
"y": 1073.140496217999
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4187.84705287549,
"y": 1048.941385713445
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4214.024509713941,
"y": 1024.0314734918757
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"turnPoint": true,
"type": "VSAPoint",
"x": 4226.879307661133,
"y": 1011.2826685949643
},
{
"angle": 6,
"saAfter": 0,
"saBefore": 0,
"turnPoint": true,
"type": "VSAPoint",
"x": 4226.879307661132,
"y": 1011.2826685949636
},
{
"angle": 3,
"turnPoint": true,
"type": "VSAPoint",
"x": 4241.632412281315,
"y": 1300.128160312811
},
{
"saAfter": 75.59055118110237,
"turnPoint": true,
"type": "VSAPoint",
"x": 5349.395917674035,
"y": 2407.8916657055315
},
{
"curvePoint": true,
"saAfter": 75.59055118110237,
"turnPoint": true,
"type": "VSAPoint",
"x": 5349.395917674035,
"y": 2407.891665705532
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 5324.9525997743685,
"y": 2432.133438482997
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 5275.176329315999,
"y": 2479.4994807798857
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 5224.358042325411,
"y": 2525.513938057391
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 5172.526122201076,
"y": 2570.1650535269187
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 5119.708952341469,
"y": 2613.441070399877
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 5065.934916145059,
"y": 2655.3302318876704
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 5011.232397010321,
"y": 2695.8207812017063
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4955.629778335728,
"y": 2734.900961553391
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4899.15544351975,
"y": 2772.559016154131
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4841.837775960862,
"y": 2808.7831882153323
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4783.705159057537,
"y": 2843.5617209484017
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4724.785976208243,
"y": 2876.882857564746
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4665.108610811458,
"y": 2908.7348412757715
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4604.70144626565,
"y": 2939.105915292884
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4543.5928659692945,
"y": 2967.984322827491
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4481.811253320862,
"y": 2995.358307090998
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4419.384991718825,
"y": 3021.2161112948124
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4356.34246456166,
"y": 3045.5459786503397
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4292.7120552478345,
"y": 3068.3361523689864
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4228.522147175824,
"y": 3089.5748756621597
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4163.8011237441,
"y": 3109.250391741265
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4098.577368351134,
"y": 3127.35094381771
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4032.8792643954,
"y": 3143.8647751029
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3966.73519527537,
"y": 3158.780128808242
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3900.1735443895163,
"y": 3172.0852481451425
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3833.2226951363123,
"y": 3183.768376325008
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3765.9110309142293,
"y": 3193.8177565592446
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3698.26693512174,
"y": 3202.221632059259
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3630.3187911573177,
"y": 3208.9682460364575
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3562.094982419434,
"y": 3214.0458417022464
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3493.6238923065625,
"y": 3217.442662268033
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3424.933904217174,
"y": 3219.1469509452236
},
{
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"turnPoint": true,
"type": "VSAPoint",
"x": 3390.508346456693,
"y": 3219.289464867847
},
{
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"turnPoint": true,
"type": "VSAPoint",
"x": 3390.5083464566933,
"y": 3219.289464867847
},
{
"saBefore": 75.59055118110237,
"turnPoint": true,
"type": "VSAPoint",
"x": 3203.0527251549183,
"y": 3219.289464867847
},
{
"turnPoint": true,
"type": "VSAPoint",
"x": 3203.0527251549183,
"y": 2824.328834946587
},
{
"curvePoint": true,
"turnPoint": true,
"type": "VSAPoint",
"x": 3203.0527251549183,
"y": 2824.328834946587
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3214.093848923147,
"y": 2824.18722200513
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3235.1825150915606,
"y": 2822.4822025825333
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3255.0545479103944,
"y": 2819.0608354871247
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3273.6829077041743,
"y": 2813.911792468689
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3291.040554797428,
"y": 2807.0237452770107
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3307.100449514681,
"y": 2798.3853656618735
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3321.8355521804606,
"y": 2787.985325373062
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3335.218823119293,
"y": 2775.812296160362
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3347.2232226557044,
"y": 2761.8549497735567
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3357.8217111142217,
"y": 2746.1019579624317
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3366.987248819371,
"y": 2728.5419924767702
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3374.6927960956796,
"y": 2709.163725066357
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3380.9113132676734,
"y": 2687.955827480978
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3385.615760659879,
"y": 2664.9069714704165
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3388.7790985968227,
"y": 2640.0058287844568
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3390.3742874030313,
"y": 2613.2410711728835
},
{
"curvePoint": true,
"turnPoint": true,
"type": "VSAPoint",
"x": 3390.5083464566933,
"y": 2599.077938054261
},
{
"turnPoint": true,
"type": "VSAPoint",
"x": 3390.5083464566933,
"y": 2599.077938054261
}
]
}

View file

@ -0,0 +1,449 @@
{
"vector": [
{
"type": "QPointF",
"x": 3352.7114920203862,
"y": 1663.9854687237153
},
{
"type": "QPointF",
"x": 3195.022814756273,
"y": 1437.1240086666123
},
{
"type": "QPointF",
"x": 3214.7965925757435,
"y": 1437.0421497563877
},
{
"type": "QPointF",
"x": 3250.9026008600736,
"y": 1436.146124032368
},
{
"type": "QPointF",
"x": 3286.88989247758,
"y": 1434.36053977004
},
{
"type": "QPointF",
"x": 3322.7472028427924,
"y": 1431.6915690258236
},
{
"type": "QPointF",
"x": 3358.4596173121586,
"y": 1428.1453911778046
},
{
"type": "QPointF",
"x": 3394.012220695515,
"y": 1423.7281854260882
},
{
"type": "QPointF",
"x": 3429.3900972861366,
"y": 1418.446130842696
},
{
"type": "QPointF",
"x": 3464.578330895215,
"y": 1412.3054064166613
},
{
"type": "QPointF",
"x": 3499.562004890167,
"y": 1405.3121910940145
},
{
"type": "QPointF",
"x": 3534.3262022361305,
"y": 1397.4726638124291
},
{
"type": "QPointF",
"x": 3568.8560055400812,
"y": 1388.7930035303582
},
{
"type": "QPointF",
"x": 3603.136497096948,
"y": 1379.279389250535
},
{
"type": "QPointF",
"x": 3637.1527589371667,
"y": 1368.938000037776
},
{
"type": "QPointF",
"x": 3670.8898728751115,
"y": 1357.775015031058
},
{
"type": "QPointF",
"x": 3704.332920557862,
"y": 1345.7966134498804
},
{
"type": "QPointF",
"x": 3737.4669835137734,
"y": 1333.00897459497
},
{
"type": "QPointF",
"x": 3770.277143200359,
"y": 1319.418277843412
},
{
"type": "QPointF",
"x": 3802.748481050979,
"y": 1305.0307026383239
},
{
"type": "QPointF",
"x": 3834.8660785198645,
"y": 1289.8524284732102
},
{
"type": "QPointF",
"x": 3866.615017125016,
"y": 1273.8896348711885
},
{
"type": "QPointF",
"x": 3897.9803784885235,
"y": 1257.1485013592755
},
{
"type": "QPointF",
"x": 3928.9472443738605,
"y": 1239.6352074379765
},
{
"type": "QPointF",
"x": 3959.500696719737,
"y": 1221.3559325464375
},
{
"type": "QPointF",
"x": 3989.6258176700794,
"y": 1202.3168560234656
},
{
"type": "QPointF",
"x": 4019.3076895997374,
"y": 1182.5241570647424
},
{
"type": "QPointF",
"x": 4048.5313951355242,
"y": 1161.9840146766112
},
{
"type": "QPointF",
"x": 4077.2820171722033,
"y": 1140.702607626847
},
{
"type": "QPointF",
"x": 4105.544638883085,
"y": 1118.6861143928654
},
{
"type": "QPointF",
"x": 4133.304343724866,
"y": 1095.940713107874
},
{
"type": "QPointF",
"x": 4160.546215436448,
"y": 1072.4725815055172
},
{
"type": "QPointF",
"x": 4187.255338031426,
"y": 1048.2878968636066
},
{
"type": "QPointF",
"x": 4213.416795784059,
"y": 1023.3928359475871
},
{
"type": "QPointF",
"x": 4227.4437834869495,
"y": 1009.4812413399962
},
{
"type": "QPointF",
"x": 4276.356817006502,
"y": 1281.401973704211
},
{
"type": "QPointF",
"x": 5429.682899284537,
"y": 2434.728055982247
},
{
"type": "QPointF",
"x": 5378.181461796691,
"y": 2485.804843119651
},
{
"type": "QPointF",
"x": 5327.284704868632,
"y": 2534.2593988324966
},
{
"type": "QPointF",
"x": 5275.094577722073,
"y": 2581.547279951357
},
{
"type": "QPointF",
"x": 5221.862171390607,
"y": 2627.4353396989904
},
{
"type": "QPointF",
"x": 5167.616827024269,
"y": 2671.911293344894
},
{
"type": "QPointF",
"x": 5112.387863422606,
"y": 2714.9629000913683
},
{
"type": "QPointF",
"x": 5056.2045758312615,
"y": 2756.57795822599
},
{
"type": "QPointF",
"x": 4999.0962352987035,
"y": 2796.744300296934
},
{
"type": "QPointF",
"x": 4941.092088574002,
"y": 2835.449788366408
},
{
"type": "QPointF",
"x": 4882.2213585226855,
"y": 2872.682309393446
},
{
"type": "QPointF",
"x": 4822.513245034596,
"y": 2908.429770793144
},
{
"type": "QPointF",
"x": 4761.996926395125,
"y": 2942.680096215408
},
{
"type": "QPointF",
"x": 4700.701561089159,
"y": 2975.4212215823372
},
{
"type": "QPointF",
"x": 4638.65629000527,
"y": 3006.641091419706
},
{
"type": "QPointF",
"x": 4575.890239006519,
"y": 3036.327655514427
},
{
"type": "QPointF",
"x": 4512.432521832834,
"y": 3064.4688659266826
},
{
"type": "QPointF",
"x": 4448.312243299179,
"y": 3091.0526743822797
},
{
"type": "QPointF",
"x": 4383.558502752616,
"y": 3116.0670300679926
},
{
"type": "QPointF",
"x": 4318.200397750523,
"y": 3139.49987784994
},
{
"type": "QPointF",
"x": 4252.267027921313,
"y": 3161.339156932478
},
{
"type": "QPointF",
"x": 4185.787498967859,
"y": 3181.572799972621
},
{
"type": "QPointF",
"x": 4118.790926772826,
"y": 3200.1887326624824
},
{
"type": "QPointF",
"x": 4051.3064415637145,
"y": 3217.1748737897137
},
{
"type": "QPointF",
"x": 3983.3631920942025,
"y": 3232.519135783219
},
{
"type": "QPointF",
"x": 3914.990349796801,
"y": 3246.209425748577
},
{
"type": "QPointF",
"x": 3846.217112860415,
"y": 3258.2336469944576
},
{
"type": "QPointF",
"x": 3777.07271018483,
"y": 3268.5797010478886
},
{
"type": "QPointF",
"x": 3707.586405162767,
"y": 3277.2354901523954
},
{
"type": "QPointF",
"x": 3637.787499238787,
"y": 3284.188920238811
},
{
"type": "QPointF",
"x": 3567.7053351933278,
"y": 3289.4279043538836
},
{
"type": "QPointF",
"x": 3497.369300099439,
"y": 3292.940366526692
},
{
"type": "QPointF",
"x": 3426.8088278995137,
"y": 3294.714246047326
},
{
"type": "QPointF",
"x": 3424.982455895985,
"y": 3294.7374865339953
},
{
"type": "QPointF",
"x": 3165.257449564367,
"y": 3294.9043074856963
},
{
"type": "QPointF",
"x": 3165.257449564367,
"y": 2787.015211178435
},
{
"type": "QPointF",
"x": 3212.326550060993,
"y": 2786.411505078134
},
{
"type": "QPointF",
"x": 3230.443628087829,
"y": 2784.946738664281
},
{
"type": "QPointF",
"x": 3246.7931363373546,
"y": 2782.1318444830463
},
{
"type": "QPointF",
"x": 3261.642697048994,
"y": 2778.02729487398
},
{
"type": "QPointF",
"x": 3275.064808863416,
"y": 2772.700988889475
},
{
"type": "QPointF",
"x": 3287.1784473295534,
"y": 2766.1852420907985
},
{
"type": "QPointF",
"x": 3298.132628354119,
"y": 2758.4537775350077
},
{
"type": "QPointF",
"x": 3308.0743186796553,
"y": 2749.411108720374
},
{
"type": "QPointF",
"x": 3317.11169919482,
"y": 2738.903473590693
},
{
"type": "QPointF",
"x": 3325.2891101534337,
"y": 2726.7490339862684
},
{
"type": "QPointF",
"x": 3332.583663451456,
"y": 2712.7736286944846
},
{
"type": "QPointF",
"x": 3338.9206580745986,
"y": 2696.8370609229564
},
{
"type": "QPointF",
"x": 3344.196726681201,
"y": 2678.8433303329366
},
{
"type": "QPointF",
"x": 3348.3004735531927,
"y": 2658.73753195308
},
{
"type": "QPointF",
"x": 3351.1259375482855,
"y": 2636.4960631317567
},
{
"type": "QPointF",
"x": 3352.579168862961,
"y": 2612.1131288110905
},
{
"type": "QPointF",
"x": 3352.7114920203862,
"y": 1663.9854687237153
}
]
}

View file

@ -0,0 +1,808 @@
{
"vector": [
{
"angle": 3,
"turnPoint": true,
"type": "VSAPoint",
"x": 4241.632412281315,
"y": 1300.128160312811
},
{
"saAfter": 75.59055118110237,
"turnPoint": true,
"type": "VSAPoint",
"x": 5349.395917674035,
"y": 2407.8916657055315
},
{
"curvePoint": true,
"saAfter": 75.59055118110237,
"turnPoint": true,
"type": "VSAPoint",
"x": 5349.395917674035,
"y": 2407.891665705532
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 5324.9525997743685,
"y": 2432.133438482997
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 5275.176329315999,
"y": 2479.4994807798857
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 5224.358042325411,
"y": 2525.513938057391
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 5172.526122201076,
"y": 2570.1650535269187
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 5119.708952341469,
"y": 2613.441070399877
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 5065.934916145059,
"y": 2655.3302318876704
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 5011.232397010321,
"y": 2695.8207812017063
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4955.629778335728,
"y": 2734.900961553391
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4899.15544351975,
"y": 2772.559016154131
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4841.837775960862,
"y": 2808.7831882153323
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4783.705159057537,
"y": 2843.5617209484017
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4724.785976208243,
"y": 2876.882857564746
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4665.108610811458,
"y": 2908.7348412757715
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4604.70144626565,
"y": 2939.105915292884
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4543.5928659692945,
"y": 2967.984322827491
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4481.811253320862,
"y": 2995.358307090998
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4419.384991718825,
"y": 3021.2161112948124
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4356.34246456166,
"y": 3045.5459786503397
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4292.7120552478345,
"y": 3068.3361523689864
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4228.522147175824,
"y": 3089.5748756621597
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4163.8011237441,
"y": 3109.250391741265
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4098.577368351134,
"y": 3127.35094381771
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 4032.8792643954,
"y": 3143.8647751029
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3966.73519527537,
"y": 3158.780128808242
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3900.1735443895163,
"y": 3172.0852481451425
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3833.2226951363123,
"y": 3183.768376325008
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3765.9110309142293,
"y": 3193.8177565592446
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3698.26693512174,
"y": 3202.221632059259
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3630.3187911573177,
"y": 3208.9682460364575
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3562.094982419434,
"y": 3214.0458417022464
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3493.6238923065625,
"y": 3217.442662268033
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"type": "VSAPoint",
"x": 3424.933904217174,
"y": 3219.1469509452236
},
{
"curvePoint": true,
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"turnPoint": true,
"type": "VSAPoint",
"x": 3390.508346456693,
"y": 3219.289464867847
},
{
"saAfter": 75.59055118110237,
"saBefore": 75.59055118110237,
"turnPoint": true,
"type": "VSAPoint",
"x": 3390.5083464566933,
"y": 3219.289464867847
},
{
"saBefore": 75.59055118110237,
"turnPoint": true,
"type": "VSAPoint",
"x": 3203.0527251549183,
"y": 3219.289464867847
},
{
"turnPoint": true,
"type": "VSAPoint",
"x": 3203.0527251549183,
"y": 2824.328834946587
},
{
"curvePoint": true,
"turnPoint": true,
"type": "VSAPoint",
"x": 3203.0527251549183,
"y": 2824.328834946587
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3214.093848923147,
"y": 2824.18722200513
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3235.1825150915606,
"y": 2822.4822025825333
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3255.0545479103944,
"y": 2819.0608354871247
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3273.6829077041743,
"y": 2813.911792468689
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3291.040554797428,
"y": 2807.0237452770107
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3307.100449514681,
"y": 2798.3853656618735
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3321.8355521804606,
"y": 2787.985325373062
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3335.218823119293,
"y": 2775.812296160362
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3347.2232226557044,
"y": 2761.8549497735567
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3357.8217111142217,
"y": 2746.1019579624317
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3366.987248819371,
"y": 2728.5419924767702
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3374.6927960956796,
"y": 2709.163725066357
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3380.9113132676734,
"y": 2687.955827480978
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3385.615760659879,
"y": 2664.9069714704165
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3388.7790985968227,
"y": 2640.0058287844568
},
{
"angle": 6,
"curvePoint": true,
"type": "VSAPoint",
"x": 3390.3742874030313,
"y": 2613.2410711728835
},
{
"curvePoint": true,
"turnPoint": true,
"type": "VSAPoint",
"x": 3390.5083464566933,
"y": 2599.077938054261
},
{
"turnPoint": true,
"type": "VSAPoint",
"x": 3390.5083464566933,
"y": 2599.077938054261
},
{
"turnPoint": true,
"type": "VSAPoint",
"x": 3390.5083464566933,
"y": 1652.6752916395003
},
{
"angle": 6,
"saAfter": 0,
"saBefore": 0,
"turnPoint": true,
"type": "VSAPoint",
"x": 3196.695760868326,
"y": 1437.9986654101622
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"turnPoint": true,
"type": "VSAPoint",
"x": 3196.695760868326,
"y": 1437.9986654101622
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3214.800242062198,
"y": 1437.9237170055508
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3250.924467157519,
"y": 1437.0274276114965
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3286.9335732959644,
"y": 1435.2410317459567
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3322.812633582018,
"y": 1432.5707123314983
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3358.5467211201585,
"y": 1429.0226522906896
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3394.1209090148686,
"y": 1424.6030345460995
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3429.52027037063,
"y": 1419.3180420202948
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3464.7298782919224,
"y": 1413.1738576358437
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3499.7348058832295,
"y": 1406.1766643153146
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3534.52012624903,
"y": 1398.3326449812748
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3569.0709124938066,
"y": 1389.647982556293
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3603.372237722041,
"y": 1380.128859962937
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3637.409175038214,
"y": 1369.7814601237742
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3671.166797546806,
"y": 1358.6119659613732
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3704.6301783522995,
"y": 1346.626560398302
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3737.7843905591753,
"y": 1333.8314263571283
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3770.614507271915,
"y": 1320.2327467604196
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3803.105601595,
"y": 1305.836704530745
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3835.242746632911,
"y": 1290.6494825906716
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3867.0110154901295,
"y": 1274.6772638627676
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3898.395481271137,
"y": 1257.926231269601
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3929.381217080415,
"y": 1240.40256773374
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3959.953296022444,
"y": 1222.112456177752
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 3990.0967912017068,
"y": 1203.0620795242053
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4019.7967757226825,
"y": 1183.257620695668
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4049.038322689855,
"y": 1162.7052626147079
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4077.8065052077027,
"y": 1141.4111882038928
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4106.08639638071,
"y": 1119.381580385791
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4133.863069313355,
"y": 1096.6226220829703
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4161.121597110121,
"y": 1073.140496217999
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4187.84705287549,
"y": 1048.941385713445
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"type": "VSAPoint",
"x": 4214.024509713941,
"y": 1024.0314734918757
},
{
"angle": 6,
"curvePoint": true,
"saAfter": 0,
"saBefore": 0,
"turnPoint": true,
"type": "VSAPoint",
"x": 4226.879307661133,
"y": 1011.2826685949643
},
{
"angle": 6,
"saAfter": 0,
"saBefore": 0,
"turnPoint": true,
"type": "VSAPoint",
"x": 4226.879307661132,
"y": 1011.2826685949636
}
]
}

View file

@ -0,0 +1,449 @@
{
"vector": [
{
"type": "QPointF",
"x": 4276.356817006502,
"y": 1281.401973704211
},
{
"type": "QPointF",
"x": 5429.682899284537,
"y": 2434.728055982247
},
{
"type": "QPointF",
"x": 5378.181461796691,
"y": 2485.804843119651
},
{
"type": "QPointF",
"x": 5327.284704868632,
"y": 2534.2593988324966
},
{
"type": "QPointF",
"x": 5275.094577722073,
"y": 2581.547279951357
},
{
"type": "QPointF",
"x": 5221.862171390607,
"y": 2627.4353396989904
},
{
"type": "QPointF",
"x": 5167.616827024269,
"y": 2671.911293344894
},
{
"type": "QPointF",
"x": 5112.387863422606,
"y": 2714.9629000913683
},
{
"type": "QPointF",
"x": 5056.2045758312615,
"y": 2756.57795822599
},
{
"type": "QPointF",
"x": 4999.0962352987035,
"y": 2796.744300296934
},
{
"type": "QPointF",
"x": 4941.092088574002,
"y": 2835.449788366408
},
{
"type": "QPointF",
"x": 4882.2213585226855,
"y": 2872.682309393446
},
{
"type": "QPointF",
"x": 4822.513245034596,
"y": 2908.429770793144
},
{
"type": "QPointF",
"x": 4761.996926395125,
"y": 2942.680096215408
},
{
"type": "QPointF",
"x": 4700.701561089159,
"y": 2975.4212215823372
},
{
"type": "QPointF",
"x": 4638.65629000527,
"y": 3006.641091419706
},
{
"type": "QPointF",
"x": 4575.890239006519,
"y": 3036.327655514427
},
{
"type": "QPointF",
"x": 4512.432521832834,
"y": 3064.4688659266826
},
{
"type": "QPointF",
"x": 4448.312243299179,
"y": 3091.0526743822797
},
{
"type": "QPointF",
"x": 4383.558502752616,
"y": 3116.0670300679926
},
{
"type": "QPointF",
"x": 4318.200397750523,
"y": 3139.49987784994
},
{
"type": "QPointF",
"x": 4252.267027921313,
"y": 3161.339156932478
},
{
"type": "QPointF",
"x": 4185.787498967859,
"y": 3181.572799972621
},
{
"type": "QPointF",
"x": 4118.790926772826,
"y": 3200.1887326624824
},
{
"type": "QPointF",
"x": 4051.3064415637145,
"y": 3217.1748737897137
},
{
"type": "QPointF",
"x": 3983.3631920942025,
"y": 3232.519135783219
},
{
"type": "QPointF",
"x": 3914.990349796801,
"y": 3246.209425748577
},
{
"type": "QPointF",
"x": 3846.217112860415,
"y": 3258.2336469944576
},
{
"type": "QPointF",
"x": 3777.07271018483,
"y": 3268.5797010478886
},
{
"type": "QPointF",
"x": 3707.586405162767,
"y": 3277.2354901523954
},
{
"type": "QPointF",
"x": 3637.787499238787,
"y": 3284.188920238811
},
{
"type": "QPointF",
"x": 3567.7053351933278,
"y": 3289.4279043538836
},
{
"type": "QPointF",
"x": 3497.369300099439,
"y": 3292.940366526692
},
{
"type": "QPointF",
"x": 3426.8088278995137,
"y": 3294.714246047326
},
{
"type": "QPointF",
"x": 3424.982455895985,
"y": 3294.7374865339953
},
{
"type": "QPointF",
"x": 3165.257449564367,
"y": 3294.9043074856963
},
{
"type": "QPointF",
"x": 3165.257449564367,
"y": 2787.015211178435
},
{
"type": "QPointF",
"x": 3212.326550060993,
"y": 2786.411505078134
},
{
"type": "QPointF",
"x": 3230.443628087829,
"y": 2784.946738664281
},
{
"type": "QPointF",
"x": 3246.7931363373546,
"y": 2782.1318444830463
},
{
"type": "QPointF",
"x": 3261.642697048994,
"y": 2778.02729487398
},
{
"type": "QPointF",
"x": 3275.064808863416,
"y": 2772.700988889475
},
{
"type": "QPointF",
"x": 3287.1784473295534,
"y": 2766.1852420907985
},
{
"type": "QPointF",
"x": 3298.132628354119,
"y": 2758.4537775350077
},
{
"type": "QPointF",
"x": 3308.0743186796553,
"y": 2749.411108720374
},
{
"type": "QPointF",
"x": 3317.11169919482,
"y": 2738.903473590693
},
{
"type": "QPointF",
"x": 3325.2891101534337,
"y": 2726.7490339862684
},
{
"type": "QPointF",
"x": 3332.583663451456,
"y": 2712.7736286944846
},
{
"type": "QPointF",
"x": 3338.9206580745986,
"y": 2696.8370609229564
},
{
"type": "QPointF",
"x": 3344.196726681201,
"y": 2678.8433303329366
},
{
"type": "QPointF",
"x": 3348.3004735531927,
"y": 2658.73753195308
},
{
"type": "QPointF",
"x": 3351.1259375482855,
"y": 2636.4960631317567
},
{
"type": "QPointF",
"x": 3352.579168862961,
"y": 2612.1131288110905
},
{
"type": "QPointF",
"x": 3352.7114920203862,
"y": 1663.9854687237153
},
{
"type": "QPointF",
"x": 3195.022814756273,
"y": 1437.1240086666123
},
{
"type": "QPointF",
"x": 3214.7965925757435,
"y": 1437.0421497563877
},
{
"type": "QPointF",
"x": 3250.9026008600736,
"y": 1436.146124032368
},
{
"type": "QPointF",
"x": 3286.88989247758,
"y": 1434.36053977004
},
{
"type": "QPointF",
"x": 3322.7472028427924,
"y": 1431.6915690258236
},
{
"type": "QPointF",
"x": 3358.4596173121586,
"y": 1428.1453911778046
},
{
"type": "QPointF",
"x": 3394.012220695515,
"y": 1423.7281854260882
},
{
"type": "QPointF",
"x": 3429.3900972861366,
"y": 1418.446130842696
},
{
"type": "QPointF",
"x": 3464.578330895215,
"y": 1412.3054064166613
},
{
"type": "QPointF",
"x": 3499.562004890167,
"y": 1405.3121910940145
},
{
"type": "QPointF",
"x": 3534.3262022361305,
"y": 1397.4726638124291
},
{
"type": "QPointF",
"x": 3568.8560055400812,
"y": 1388.7930035303582
},
{
"type": "QPointF",
"x": 3603.136497096948,
"y": 1379.279389250535
},
{
"type": "QPointF",
"x": 3637.1527589371667,
"y": 1368.938000037776
},
{
"type": "QPointF",
"x": 3670.8898728751115,
"y": 1357.775015031058
},
{
"type": "QPointF",
"x": 3704.332920557862,
"y": 1345.7966134498804
},
{
"type": "QPointF",
"x": 3737.4669835137734,
"y": 1333.00897459497
},
{
"type": "QPointF",
"x": 3770.277143200359,
"y": 1319.418277843412
},
{
"type": "QPointF",
"x": 3802.748481050979,
"y": 1305.0307026383239
},
{
"type": "QPointF",
"x": 3834.8660785198645,
"y": 1289.8524284732102
},
{
"type": "QPointF",
"x": 3866.615017125016,
"y": 1273.8896348711885
},
{
"type": "QPointF",
"x": 3897.9803784885235,
"y": 1257.1485013592755
},
{
"type": "QPointF",
"x": 3928.9472443738605,
"y": 1239.6352074379765
},
{
"type": "QPointF",
"x": 3959.500696719737,
"y": 1221.3559325464375
},
{
"type": "QPointF",
"x": 3989.6258176700794,
"y": 1202.3168560234656
},
{
"type": "QPointF",
"x": 4019.3076895997374,
"y": 1182.5241570647424
},
{
"type": "QPointF",
"x": 4048.5313951355242,
"y": 1161.9840146766112
},
{
"type": "QPointF",
"x": 4077.2820171722033,
"y": 1140.702607626847
},
{
"type": "QPointF",
"x": 4105.544638883085,
"y": 1118.6861143928654
},
{
"type": "QPointF",
"x": 4133.304343724866,
"y": 1095.940713107874
},
{
"type": "QPointF",
"x": 4160.546215436448,
"y": 1072.4725815055172
},
{
"type": "QPointF",
"x": 4187.255338031426,
"y": 1048.2878968636066
},
{
"type": "QPointF",
"x": 4213.416795784059,
"y": 1023.3928359475871
},
{
"type": "QPointF",
"x": 4227.44378348695,
"y": 1009.4812413399969
},
{
"type": "QPointF",
"x": 4276.356817006502,
"y": 1281.401973704211
}
]
}

View file

@ -159,5 +159,9 @@
<file>smart_pattern_#184_case1/output.json</file>
<file>smart_pattern_#184_case2/input.json</file>
<file>smart_pattern_#184_case2/output.json</file>
<file>custom_seam_allwance_exclude_p1/input.json</file>
<file>custom_seam_allwance_exclude_p1/output.json</file>
<file>custom_seam_allwance_exclude_p2/input.json</file>
<file>custom_seam_allwance_exclude_p2/output.json</file>
</qresource>
</RCC>

View file

@ -1023,6 +1023,18 @@ void TST_VAbstractPiece::BrokenDetailEquidistant_data()
QStringLiteral("://smart_pattern_#184_case2/input.json"),
QStringLiteral("://smart_pattern_#184_case2/output.json"),
37.795275590551185 /*seam allowance width*/);
// See the file "valentina_private_collection/bugs/custom_seam_allwance_exclude/custom_seam_allwance_exclude.val"
ASSERT_TEST_CASE("Piece 1. CSA Exclude",
QStringLiteral("://custom_seam_allwance_exclude_p1/input.json"),
QStringLiteral("://custom_seam_allwance_exclude_p1/output.json"),
37.795275590551185 /*seam allowance width 1 cm*/);
// See the file "valentina_private_collection/bugs/custom_seam_allwance_exclude/custom_seam_allwance_exclude.val"
ASSERT_TEST_CASE("Piece 2. CSA Exclude",
QStringLiteral("://custom_seam_allwance_exclude_p2/input.json"),
QStringLiteral("://custom_seam_allwance_exclude_p2/output.json"),
37.795275590551185 /*seam allowance width 1 cm*/);
}
//---------------------------------------------------------------------------------------------------------------------

View file

@ -39,6 +39,7 @@
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
#include <xercesc/parsers/XercesDOMParser.hpp>
#include <xercesc/framework/MemBufInputSource.hpp>
#include <QMap>
#else
@ -48,6 +49,7 @@
namespace
{
//---------------------------------------------------------------------------------------------------------------------
void ValidateSchema(const QString &schema)
{
@ -60,36 +62,29 @@ void ValidateSchema(const QString &schema)
VParserErrorHandler parserErrorHandler;
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
QScopedPointer<QTemporaryFile> tempSchema(QTemporaryFile::createNativeFile(fileSchema));
if (tempSchema == nullptr)
XERCES_CPP_NAMESPACE::XercesDOMParser domParser;
domParser.setErrorHandler(&parserErrorHandler);
QByteArray data = fileSchema.readAll();
const char* schemaData = data.constData();
QScopedPointer<XERCES_CPP_NAMESPACE::InputSource> grammarSource(
new XERCES_CPP_NAMESPACE::MemBufInputSource(reinterpret_cast<const XMLByte*>(schemaData),
strlen(schemaData), "schema"));
if (domParser.loadGrammar(
*grammarSource,
XERCES_CPP_NAMESPACE::Grammar::SchemaGrammarType, true) == nullptr)
{
QFAIL(qUtf8Printable(QStringLiteral("Can't create native file for schema file %1:\n%2.")
.arg(schema, fileSchema.errorString())));
QFAIL(qUtf8Printable(QStringLiteral("%1 Could not load schema file '%2'.")
.arg(parserErrorHandler.StatusMessage(), fileSchema.fileName())));
}
if (tempSchema->open())
{
XERCES_CPP_NAMESPACE::XercesDOMParser domParser;
domParser.setErrorHandler(&parserErrorHandler);
if (domParser.loadGrammar(
tempSchema->fileName().toUtf8().constData(),
XERCES_CPP_NAMESPACE::Grammar::SchemaGrammarType, true) == nullptr)
{
QFAIL(qUtf8Printable(QStringLiteral("%1 Could not load schema file '%2'.")
.arg(parserErrorHandler.StatusMessage(), fileSchema.fileName())));
}
QVERIFY2(not parserErrorHandler.HasError(),
qUtf8Printable(QStringLiteral("%1 Schema file %2 invalid in line %3 column %4.")
.arg(parserErrorHandler.StatusMessage(), fileSchema.fileName())
.arg(parserErrorHandler.Line())
.arg(parserErrorHandler.Column())));
}
else
{
QFAIL("Unable to open native file for schema");
}
QVERIFY2(not parserErrorHandler.HasError(),
qUtf8Printable(QStringLiteral("%1 Schema file %2 invalid in line %3 column %4.")
.arg(parserErrorHandler.StatusMessage(), fileSchema.fileName())
.arg(parserErrorHandler.Line())
.arg(parserErrorHandler.Column())));
#else
QXmlSchema sch;
sch.setMessageHandler(&parserErrorHandler);

View file

@ -68,7 +68,7 @@ Project {
}
if (i >= env.length) {
var pluginsPath = "QT_QPA_PLATFORM_PLUGIN_PATH=" + Qt.core.pluginPath
var pluginsPath = "QT_QPA_PLATFORM_PLUGIN_PATH=" + FileInfo.joinPaths(Qt.core.pluginPath, "platforms")
env.push(pluginsPath);
}