Merge with develop.
--HG-- branch : feature
This commit is contained in:
commit
5a95ce9c8a
|
@ -54,6 +54,7 @@
|
|||
- [#594] Broken export on Mac.
|
||||
- Math parser allows apostrophe in variable name.
|
||||
- [#603] Wrong layout caused by wrong seam allowance.
|
||||
- [#604] Seams allowances gets "weird" and turns inward when changing measurment file.
|
||||
|
||||
# Version 0.4.5 October 15, 2016
|
||||
- [#435] Valentina doesn't change the cursor.
|
||||
|
|
|
@ -168,7 +168,7 @@ before_build:
|
|||
# to run your custom scripts instead of automatic MSBuild
|
||||
build_script:
|
||||
- cd build
|
||||
- qmake ..\Valentina.pro -r CONFIG+=no_ccache CONFIG+=checkWarnings
|
||||
- if %DEPLOY% == "true" (qmake ..\Valentina.pro -r CONFIG+=no_ccache CONFIG+=checkWarnings) else (qmake ..\Valentina.pro -r CONFIG+=noDebugSymbols CONFIG+=no_ccache CONFIG+=checkWarnings)
|
||||
- if not "%QMAKE_GENERATOR%" == "MinGW Makefiles" (nmake -s) else (mingw32-make -j%NUMBER_OF_PROCESSORS%)
|
||||
|
||||
# to run your custom scripts instead of automatic tests
|
||||
|
@ -179,7 +179,7 @@ test_script:
|
|||
#test: off
|
||||
|
||||
matrix:
|
||||
fast_finish: true
|
||||
fast_finish: false
|
||||
|
||||
#---------------------------------#
|
||||
# notifications #
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Commit hook. Helps update bookmark.
|
||||
# Put this file in your path.
|
||||
#
|
||||
# Edit file .hg/hgrc
|
||||
#
|
||||
# [hooks]
|
||||
# commit = commithook
|
||||
|
||||
DEVELOP_BRANCH="develop"
|
||||
RELEASE_BRANCH="release"
|
||||
CURRENT_BRANCH=$(hg branch)
|
||||
|
||||
if [ $CURRENT_BRANCH = $DEVELOP_BRANCH ];
|
||||
then
|
||||
hg bookmark -f master;
|
||||
fi
|
||||
|
||||
if [ $CURRENT_BRANCH = $RELEASE_BRANCH ];
|
||||
then
|
||||
hg bookmark -f release;
|
||||
fi
|
|
@ -1,13 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Commit hook. Helps update bookmark.
|
||||
# Put this file in your path.
|
||||
#
|
||||
# Edit file .hg/hgrc
|
||||
#
|
||||
# [hooks]
|
||||
# outgoing = outgoinghook
|
||||
|
||||
sh -c "hg push -f git+ssh://git@github.com/dismine/Valentina.git" &
|
||||
|
||||
exit 0;
|
4
scripts/pushtogit.sh
Executable file
4
scripts/pushtogit.sh
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
hg bookmark -f master;
|
||||
hg push -f github
|
File diff suppressed because one or more lines are too long
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<pattern>
|
||||
<!--Pattern created with Valentina (http://www.valentina-project.org/).-->
|
||||
<version>0.2.4</version>
|
||||
<version>0.3.9</version>
|
||||
<unit>cm</unit>
|
||||
<author/>
|
||||
<description/>
|
||||
|
@ -57,7 +57,7 @@
|
|||
<point type="alongLine" typeLine="none" id="18" name="А2" firstPoint="1" secondPoint="4" mx="-0.412864" lineColor="black" my="-2.09776" length="neck_arc_f/3+#Пшгор"/>
|
||||
<point type="normal" typeLine="hair" id="19" name="А1" firstPoint="18" secondPoint="1" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="Line_А_А2/3"/>
|
||||
<point type="endLine" typeLine="hair" id="20" name="А0" basePoint="19" mx="0.132292" lineColor="black" angle="180" my="0.264583" length="Line_А_А2"/>
|
||||
<spline point4="18" type="simple" kAsm1="1.20481" kAsm2="0.848476" angle1="358.627" angle2="254.057" id="21" kCurve="1" color="black" point1="20"/>
|
||||
<spline point4="18" type="simpleInteractive" angle1="358.627" angle2="254.057" id="21" color="black" length1="3.14107" length2="2.21207" point1="20"/>
|
||||
<arc type="simple" angle1="320" angle2="20" id="22" radius="shoulder_length+#Рплвыт" center="18" color="black"/>
|
||||
<arc type="simple" angle1="45" angle2="75" id="23" radius="shoulder_tip_to_waist_back+#Пдтс" center="6" color="black"/>
|
||||
<point type="pointOfIntersectionArcs" crossPoint="1" firstArc="22" id="24" name="П1" secondArc="23" mx="0.617183" my="-1.38405"/>
|
||||
|
@ -65,16 +65,16 @@
|
|||
<point type="alongLine" typeLine="none" id="26" name="И" firstPoint="18" secondPoint="24" mx="0.132292" lineColor="black" my="0.264583" length="#И"/>
|
||||
<point type="alongLine" typeLine="none" id="27" name="И1" firstPoint="26" secondPoint="24" mx="0.132292" lineColor="black" my="0.264583" length="#Рплвыт"/>
|
||||
<point type="endLine" typeLine="hair" id="28" name="И2" basePoint="26" mx="0.132292" lineColor="black" angle="270" my="0.264583" length="#Дплвыт"/>
|
||||
<spline point4="27" type="simple" kAsm1="0.882463" kAsm2="0.860247" angle1="82.8015" angle2="241.265" id="29" kCurve="1" color="black" point1="28"/>
|
||||
<spline point4="27" type="simpleInteractive" angle1="82.8015" angle2="241.265" id="29" color="black" length1="2.40527" length2="2.34471" point1="28"/>
|
||||
<point type="height" typeLine="hair" id="30" name="П2" basePoint="24" p2Line="14" mx="0.132292" lineColor="black" my="0.264583" p1Line="4"/>
|
||||
<point type="alongLine" typeLine="none" id="31" name="П3" firstPoint="14" secondPoint="30" mx="-1.29916" lineColor="black" my="-0.175863" length="Line_Г3_П2/3+2"/>
|
||||
<point type="bisector" typeLine="hair" id="32" thirdPoint="15" name="в" firstPoint="31" secondPoint="14" mx="0.132292" lineColor="black" my="0.264583" length="0.2*Line_Г4_Г3+0.5"/>
|
||||
<point type="alongLine" typeLine="none" id="33" name="Г2" firstPoint="14" secondPoint="15" mx="0.132292" lineColor="black" my="0.264583" length="Line_Г4_Г3/2"/>
|
||||
<spline type="path" id="34" kCurve="1" color="black">
|
||||
<pathPoint kAsm1="1" kAsm2="0.906322" pSpline="24" angle="248.035"/>
|
||||
<pathPoint kAsm1="0.774397" kAsm2="1" pSpline="31" angle="269.056"/>
|
||||
<pathPoint kAsm1="0.631376" kAsm2="0.902245" pSpline="32" angle="312.322"/>
|
||||
<pathPoint kAsm1="1.03287" kAsm2="1" pSpline="33" angle="359.273"/>
|
||||
<spline type="pathInteractive" id="34" color="black">
|
||||
<pathPoint angle1="68.035" pSpline="24" angle2="248.035" length1="0" length2="3.98184"/>
|
||||
<pathPoint angle1="89.056" pSpline="31" angle2="269.056" length1="3.40224" length2="2.63544"/>
|
||||
<pathPoint angle1="132.322" pSpline="32" angle2="312.322" length1="1.66396" length2="1.49368"/>
|
||||
<pathPoint angle1="179.273" pSpline="33" angle2="359.273" length1="1.70993" length2="0"/>
|
||||
</spline>
|
||||
<point type="endLine" typeLine="hair" id="35" name="Т2" basePoint="33" mx="0.132292" lineColor="black" angle="270" my="0.264583" length="Line_Т_Г"/>
|
||||
<point type="endLine" typeLine="hair" id="36" name="Б2" basePoint="35" mx="0.132292" lineColor="black" angle="270" my="0.264583" length="Line_Т_Б"/>
|
||||
|
@ -111,12 +111,12 @@
|
|||
<line typeLine="hair" id="67" firstPoint="57" secondPoint="53" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="68" name="д" firstPoint="53" secondPoint="57" mx="0.132292" lineColor="black" my="0.264583" length="Line_П5_П6/2"/>
|
||||
<point type="normal" typeLine="hair" id="69" name="е" firstPoint="68" secondPoint="53" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="1"/>
|
||||
<spline type="path" id="70" kCurve="1" color="black">
|
||||
<pathPoint kAsm1="1" kAsm2="0.845899" pSpline="57" angle="316.587"/>
|
||||
<pathPoint kAsm1="1.03197" kAsm2="0.263439" pSpline="69" angle="312.153"/>
|
||||
<pathPoint kAsm1="0.927185" kAsm2="1" pSpline="53" angle="272.146"/>
|
||||
<pathPoint kAsm1="0.548043" kAsm2="0.54785" pSpline="66" angle="224.298"/>
|
||||
<pathPoint kAsm1="1.62264" kAsm2="1" pSpline="33" angle="179.888"/>
|
||||
<spline type="pathInteractive" id="70" color="black">
|
||||
<pathPoint angle1="136.587" pSpline="57" angle2="316.587" length1="0" length2="2.03977"/>
|
||||
<pathPoint angle1="132.153" pSpline="69" angle2="312.153" length1="2.48845" length2="0.635247"/>
|
||||
<pathPoint angle1="92.146" pSpline="53" angle2="272.146" length1="2.23578" length2="1.85808"/>
|
||||
<pathPoint angle1="44.298" pSpline="66" angle2="224.298" length1="1.01831" length2="0.944264"/>
|
||||
<pathPoint angle1="359.888" pSpline="33" angle2="179.888" length1="2.79675" length2="0"/>
|
||||
</spline>
|
||||
<point type="alongLine" typeLine="none" id="71" name="Т3" firstPoint="35" secondPoint="6" mx="0.132292" lineColor="black" my="0.264583" length="1/4*#Срв"/>
|
||||
<point type="alongLine" typeLine="none" id="72" name="Т4" firstPoint="35" secondPoint="46" mx="0.132292" lineColor="black" my="0.264583" length="1/4*#Срв"/>
|
||||
|
@ -124,17 +124,17 @@
|
|||
<point type="alongLine" typeLine="none" id="74" name="Б4" firstPoint="36" secondPoint="11" mx="-1.23954" lineColor="black" my="0.425975" length="#Пбс"/>
|
||||
<point type="alongLine" typeLine="none" id="75" name="Н3" firstPoint="8" secondPoint="37" mx="0.616467" lineColor="black" my="-2.15629" length="Line_Б3_Б"/>
|
||||
<point type="alongLine" typeLine="none" id="76" name="Н4" firstPoint="12" secondPoint="37" mx="-1.15884" lineColor="black" my="-1.9142" length="Line_Б4_Б1"/>
|
||||
<spline type="path" id="77" kCurve="1" color="black">
|
||||
<pathPoint kAsm1="1" kAsm2="1.04671" pSpline="33" angle="263.309"/>
|
||||
<pathPoint kAsm1="0.652538" kAsm2="0.662841" pSpline="71" angle="274.092"/>
|
||||
<pathPoint kAsm1="0.970052" kAsm2="0.999998" pSpline="73" angle="269.229"/>
|
||||
<pathPoint kAsm1="1.05183" kAsm2="1" pSpline="75" angle="269.806"/>
|
||||
<spline type="pathInteractive" id="77" color="black">
|
||||
<pathPoint angle1="83.309" pSpline="33" angle2="263.309" length1="0" length2="7.84032"/>
|
||||
<pathPoint angle1="94.092" pSpline="71" angle2="274.092" length1="4.8878" length2="4.75295"/>
|
||||
<pathPoint angle1="89.229" pSpline="73" angle2="269.229" length1="6.95582" length2="8.39626"/>
|
||||
<pathPoint angle1="89.806" pSpline="75" angle2="269.806" length1="8.83145" length2="0"/>
|
||||
</spline>
|
||||
<spline type="path" id="78" kCurve="1" color="black">
|
||||
<pathPoint kAsm1="1" kAsm2="1" pSpline="33" angle="280.747"/>
|
||||
<pathPoint kAsm1="0.492088" kAsm2="0.706189" pSpline="72" angle="267.444"/>
|
||||
<pathPoint kAsm1="0.901032" kAsm2="0.999651" pSpline="74" angle="269.912"/>
|
||||
<pathPoint kAsm1="0.552851" kAsm2="1" pSpline="76" angle="270.112"/>
|
||||
<spline type="pathInteractive" id="78" color="black">
|
||||
<pathPoint angle1="100.747" pSpline="33" angle2="280.747" length1="0" length2="7.49044"/>
|
||||
<pathPoint angle1="87.444" pSpline="72" angle2="267.444" length1="3.68596" length2="5.06378"/>
|
||||
<pathPoint angle1="89.912" pSpline="74" angle2="269.912" length1="6.46091" length2="8.39334"/>
|
||||
<pathPoint angle1="90.112" pSpline="76" angle2="270.112" length1="4.64189" length2="0"/>
|
||||
</spline>
|
||||
<point type="alongLine" typeLine="none" id="79" name="Т5" firstPoint="6" secondPoint="35" mx="0.132292" lineColor="black" my="0.264583" length="0.4*Line_А_а"/>
|
||||
<point type="alongLine" typeLine="none" id="80" name="ж" firstPoint="3" secondPoint="14" mx="0.132292" lineColor="black" my="0.264583" length="Line_Т_Т5"/>
|
||||
|
@ -177,8 +177,10 @@
|
|||
<point type="modeling" inUse="true" id="208" idObject="94" mx="0.367513" my="-1.5231"/>
|
||||
</modeling>
|
||||
<details>
|
||||
<detail closed="1" id="209" name="Полочка" supplement="1" width="1" mx="-205.772" my="-98.2618">
|
||||
<node type="NodePoint" nodeType="Contour" idObject="190" mx="0" my="0"/>
|
||||
<detail closed="1" id="209" name="Полочка" forbidFlipping="1" supplement="1" width="1" mx="-205.772" my="-98.2618">
|
||||
<data rotation="0" letter="" fontSize="0" visible="true" mx="0" width="0" my="0" height="0"/>
|
||||
<patternInfo rotation="0" fontSize="0" visible="true" mx="0" width="0" my="0" height="0"/>
|
||||
<grainline arrows="0" rotation="90" visible="false" mx="0" my="0" length="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="191" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="192" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="197" mx="0" my="0"/>
|
||||
|
@ -189,8 +191,10 @@
|
|||
<node type="NodePoint" nodeType="Contour" idObject="206" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="207" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="208" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="190" mx="0" my="0"/>
|
||||
</detail>
|
||||
</details>
|
||||
<groups/>
|
||||
</draw>
|
||||
<draw name="Рукав">
|
||||
<calculation>
|
||||
|
@ -225,12 +229,12 @@
|
|||
<point type="alongLine" typeLine="none" id="133" name="м" firstPoint="131" secondPoint="123" mx="0.132292" lineColor="black" my="0.264583" length="Line_Г21_Р32/2"/>
|
||||
<point type="normal" typeLine="hair" id="134" name="н" firstPoint="133" secondPoint="123" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="#лн"/>
|
||||
<point type="bisector" typeLine="hair" id="135" thirdPoint="119" name="п" firstPoint="131" secondPoint="108" mx="0.132292" lineColor="black" my="0.264583" length="Line_Г4_с"/>
|
||||
<spline type="path" id="136" kCurve="1" color="black">
|
||||
<pathPoint kAsm1="1" kAsm2="1" pSpline="123" angle="302.974"/>
|
||||
<pathPoint kAsm1="1" kAsm2="0.983788" pSpline="134" angle="309.501"/>
|
||||
<pathPoint kAsm1="0.693247" kAsm2="1" pSpline="131" angle="349.475"/>
|
||||
<pathPoint kAsm1="0.8342" kAsm2="0.948548" pSpline="135" angle="53.2671"/>
|
||||
<pathPoint kAsm1="0.852814" kAsm2="1" pSpline="121" angle="81.6825"/>
|
||||
<spline type="pathInteractive" id="136" color="black">
|
||||
<pathPoint angle1="122.974" pSpline="123" angle2="302.974" length1="0" length2="2.33892"/>
|
||||
<pathPoint angle1="129.501" pSpline="134" angle2="309.501" length1="2.33892" length2="2.301"/>
|
||||
<pathPoint angle1="169.475" pSpline="131" angle2="349.475" length1="1.62145" length2="1.90657"/>
|
||||
<pathPoint angle1="233.267" pSpline="135" angle2="53.2671" length1="1.59046" length2="1.70834"/>
|
||||
<pathPoint angle1="261.683" pSpline="121" angle2="81.6825" length1="1.53593" length2="0"/>
|
||||
</spline>
|
||||
<point type="alongLine" typeLine="none" id="137" name="Л1" firstPoint="111" secondPoint="110" mx="-1.47771" lineColor="black" my="-1.71133" length="#ЛпЛ1"/>
|
||||
<line typeLine="hair" id="138" firstPoint="108" secondPoint="137" lineColor="black"/>
|
||||
|
@ -247,16 +251,16 @@
|
|||
<line typeLine="hair" id="149" firstPoint="146" secondPoint="124" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="150" name="р" firstPoint="146" secondPoint="124" mx="0.132292" lineColor="black" my="0.264583" length="Line_Р2_Р31/2"/>
|
||||
<point type="normal" typeLine="hair" id="151" name="р1" firstPoint="150" secondPoint="146" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="#рр1"/>
|
||||
<spline type="path" id="152" kCurve="1" color="black">
|
||||
<pathPoint kAsm1="1" kAsm2="1.13548" pSpline="146" angle="26.5279"/>
|
||||
<pathPoint kAsm1="1.17687" kAsm2="0.70559" pSpline="151" angle="54.1318"/>
|
||||
<pathPoint kAsm1="0.800729" kAsm2="0.772466" pSpline="124" angle="54.2353"/>
|
||||
<pathPoint kAsm1="0.995064" kAsm2="1.14755" pSpline="130" angle="35.2552"/>
|
||||
<pathPoint kAsm1="0.79757" kAsm2="0.863337" pSpline="106" angle="358.318"/>
|
||||
<pathPoint kAsm1="0.964404" kAsm2="1" pSpline="129" angle="309.447"/>
|
||||
<pathPoint kAsm1="1.19399" kAsm2="0.959102" pSpline="120" angle="282.638"/>
|
||||
<pathPoint kAsm1="1.00911" kAsm2="0.689472" pSpline="148" angle="303.385"/>
|
||||
<pathPoint kAsm1="1.01569" kAsm2="1" pSpline="147" angle="357.7"/>
|
||||
<spline type="pathInteractive" id="152" color="black">
|
||||
<pathPoint angle1="206.528" pSpline="146" angle2="26.5279" length1="0" length2="2.46899"/>
|
||||
<pathPoint angle1="234.132" pSpline="151" angle2="54.1318" length1="2.55898" length2="1.53423"/>
|
||||
<pathPoint angle1="234.235" pSpline="124" angle2="54.2353" length1="1.7411" length2="2.28964"/>
|
||||
<pathPoint angle1="215.255" pSpline="130" angle2="35.2552" length1="2.94944" length2="1.5148"/>
|
||||
<pathPoint angle1="178.318" pSpline="106" angle2="358.318" length1="1.05281" length2="1.61255"/>
|
||||
<pathPoint angle1="129.447" pSpline="129" angle2="309.447" length1="1.80132" length2="3.25273"/>
|
||||
<pathPoint angle1="102.638" pSpline="120" angle2="282.638" length1="3.88372" length2="1.72735"/>
|
||||
<pathPoint angle1="123.385" pSpline="148" angle2="303.385" length1="1.81742" length2="1.64235"/>
|
||||
<pathPoint angle1="177.7" pSpline="147" angle2="357.7" length1="2.41941" length2="0"/>
|
||||
</spline>
|
||||
<point type="endLine" typeLine="hair" id="153" name="М22" basePoint="114" mx="0.132292" lineColor="black" angle="180" my="0.264583" length="Line_М3_М1/2"/>
|
||||
<point type="endLine" typeLine="hair" id="154" name="М11" basePoint="113" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="Line_М3_М1/2"/>
|
||||
|
@ -266,15 +270,16 @@
|
|||
<point type="normal" typeLine="hair" id="158" name="т1" firstPoint="157" secondPoint="114" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="#тт1"/>
|
||||
<point type="alongLine" typeLine="none" id="159" name="у" firstPoint="154" secondPoint="107" mx="-0.76365" lineColor="black" my="0.221919" length="Line_М_т"/>
|
||||
<point type="normal" typeLine="hair" id="160" name="у1" firstPoint="159" secondPoint="113" mx="-1.19029" lineColor="black" angle="0" my="-1.39931" length="#тт1"/>
|
||||
<spline type="path" id="161" kCurve="1" color="black">
|
||||
<pathPoint kAsm1="1" kAsm2="1.08198" pSpline="153" angle="352.844"/>
|
||||
<pathPoint kAsm1="0.995423" kAsm2="1" pSpline="158" angle="1.15441"/>
|
||||
<pathPoint kAsm1="1" kAsm2="0.863427" pSpline="107" angle="6.15599"/>
|
||||
<pathPoint kAsm1="1" kAsm2="0.835679" pSpline="160" angle="359.234"/>
|
||||
<pathPoint kAsm1="1.21505" kAsm2="1" pSpline="154" angle="351.945"/>
|
||||
<spline type="pathInteractive" id="161" color="black">
|
||||
<pathPoint angle1="172.844" pSpline="153" angle2="352.844" length1="0" length2="2.9744"/>
|
||||
<pathPoint angle1="181.154" pSpline="158" angle2="1.15441" length1="2.73645" length2="2.74903"/>
|
||||
<pathPoint angle1="186.156" pSpline="107" angle2="6.15599" length1="2.74903" length2="2.37359"/>
|
||||
<pathPoint angle1="179.234" pSpline="160" angle2="359.234" length1="2.74903" length2="2.29731"/>
|
||||
<pathPoint angle1="171.945" pSpline="154" angle2="351.945" length1="3.34021" length2="0"/>
|
||||
</spline>
|
||||
</calculation>
|
||||
<modeling/>
|
||||
<details/>
|
||||
<groups/>
|
||||
</draw>
|
||||
</pattern>
|
||||
|
|
123
src/app/share/collection/bugs/Issue_#604.val
Normal file
123
src/app/share/collection/bugs/Issue_#604.val
Normal file
|
@ -0,0 +1,123 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<pattern>
|
||||
<!--Pattern created with Valentina (http://www.valentina-project.org/).-->
|
||||
<version>0.3.9</version>
|
||||
<unit>cm</unit>
|
||||
<author/>
|
||||
<description/>
|
||||
<notes/>
|
||||
<measurements>3XL.vit</measurements>
|
||||
<increments/>
|
||||
<draw name="Élément de patron 1">
|
||||
<calculation>
|
||||
<point type="single" x="0.79375" y="1.05833" id="1" name="A" mx="-6.18962" my="-7.97306"/>
|
||||
<point type="endLine" typeLine="none" id="2" name="A1" basePoint="1" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="@G*0.88/2"/>
|
||||
<point type="alongLine" typeLine="none" id="3" name="A2" firstPoint="1" secondPoint="2" mx="-9.68467" lineColor="black" my="-4.4749" length="CurrentLength/2"/>
|
||||
<point type="normal" typeLine="hair" id="4" name="A3" firstPoint="2" secondPoint="3" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="@T-9"/>
|
||||
<point type="endLine" typeLine="hair" id="5" name="A4" basePoint="1" mx="0.132292" lineColor="black" angle="270" my="0.264583" length="@T-6"/>
|
||||
<point type="normal" typeLine="hair" id="6" name="A5" firstPoint="3" secondPoint="1" mx="2.48227" lineColor="black" angle="0" my="1.40403" length="3"/>
|
||||
<point type="normal" typeLine="hair" id="7" name="A6" firstPoint="4" secondPoint="2" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="2.5"/>
|
||||
<point type="alongLine" typeLine="none" id="9" name="A8" firstPoint="4" secondPoint="2" mx="0.132292" lineColor="black" my="0.264583" length="6"/>
|
||||
<point type="alongLine" typeLine="none" id="10" name="A9" firstPoint="5" secondPoint="1" mx="-4.08231" lineColor="black" my="-0.0547053" length="5"/>
|
||||
<point type="alongLine" typeLine="none" id="11" name="A10" firstPoint="4" secondPoint="9" mx="0.132292" lineColor="black" my="0.264583" length="4"/>
|
||||
<point type="normal" typeLine="hair" id="12" name="A11" firstPoint="11" secondPoint="9" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="3.3"/>
|
||||
<point type="normal" typeLine="hair" id="13" name="A12" firstPoint="10" secondPoint="5" mx="-2.20285" lineColor="black" angle="0" my="2.40087" length="1.5"/>
|
||||
<point type="normal" typeLine="hair" id="14" name="A13" firstPoint="9" secondPoint="2" mx="-10.1488" lineColor="black" angle="0" my="4.22376" length="4.3"/>
|
||||
<point type="normal" typeLine="hair" id="15" name="A14" firstPoint="4" secondPoint="7" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="5"/>
|
||||
<point type="normal" typeLine="hair" id="16" name="A15" firstPoint="15" secondPoint="4" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="2"/>
|
||||
<point type="alongLine" typeLine="none" id="17" name="A16" firstPoint="1" secondPoint="10" mx="0.132292" lineColor="black" my="0.264583" length="CurrentLength/2"/>
|
||||
<point type="pointOfIntersection" id="18" name="A7" firstPoint="1" secondPoint="6" mx="0.132292" my="0.264583"/>
|
||||
<point type="alongLine" typeLine="none" id="19" name="A17" firstPoint="18" secondPoint="6" mx="0.132292" lineColor="black" my="0.264583" length="CurrentLength/2-1.5"/>
|
||||
<point type="alongLine" typeLine="none" id="20" name="A18" firstPoint="6" secondPoint="12" mx="5.23231" lineColor="black" my="-5.3509" length="CurrentLength/2"/>
|
||||
<point type="alongLine" typeLine="none" id="21" name="A19" firstPoint="6" secondPoint="20" mx="-7.14744" lineColor="black" my="10.4179" length="CurrentLength/2"/>
|
||||
<point type="alongLine" typeLine="none" id="22" name="A20" firstPoint="20" secondPoint="12" mx="0.132292" lineColor="black" my="0.264583" length="CurrentLength/2"/>
|
||||
<point type="normal" typeLine="hair" id="23" name="A21" firstPoint="21" secondPoint="20" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="3"/>
|
||||
<point type="normal" typeLine="hair" id="24" name="A22" firstPoint="20" secondPoint="22" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="4.5"/>
|
||||
<point type="normal" typeLine="hair" id="25" name="A23" firstPoint="22" secondPoint="12" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="3.5"/>
|
||||
<point type="pointOfIntersection" id="26" name="A24" firstPoint="13" secondPoint="17" mx="0.132292" my="0.264583"/>
|
||||
<point type="alongLine" typeLine="none" id="27" name="A25" firstPoint="26" secondPoint="19" mx="0.132292" lineColor="black" my="0.264583" length="CurrentLength/2"/>
|
||||
<point type="normal" typeLine="hair" id="28" name="A26" firstPoint="27" secondPoint="19" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="2"/>
|
||||
<spline point4="26" type="simpleInteractive" angle1="165.852" angle2="82.3061" id="29" length1="9.46509" color="black" length2="7.16949" point1="6"/>
|
||||
<point type="normal" typeLine="hair" id="30" name="A27" firstPoint="1" secondPoint="3" mx="-14.555" lineColor="black" angle="0" my="1.09473" length="0.5"/>
|
||||
<point type="alongLine" typeLine="none" id="31" name="A28" firstPoint="2" secondPoint="9" mx="0.132292" lineColor="black" my="0.264583" length="0.5"/>
|
||||
<spline point4="3" type="simpleInteractive" angle1="359.381" angle2="179.793" id="32" length1="5.9263" color="black" length2="5.5587" point1="30"/>
|
||||
<spline point4="14" type="simpleInteractive" angle1="354.316" angle2="117.117" id="34" length1="10.2446" color="black" length2="3.23394" point1="6"/>
|
||||
<point type="alongLine" typeLine="none" id="35" name="A29" firstPoint="9" secondPoint="31" mx="0.132292" lineColor="black" my="0.264583" length="0.5"/>
|
||||
<spline point4="14" type="simpleInteractive" angle1="0" angle2="21.2782" id="36" length1="0" color="black" length2="1.32127" point1="35"/>
|
||||
<spline point4="16" type="simpleInteractive" angle1="286.462" angle2="98.3582" id="37" length1="1.9649" color="black" length2="3.65423" point1="14"/>
|
||||
<point type="normal" typeLine="hair" id="39" name="A30" firstPoint="6" secondPoint="18" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="6.2"/>
|
||||
<point type="alongLine" typeLine="none" id="47" name="A35" firstPoint="3" secondPoint="39" mx="0.962441" lineColor="black" my="-1.20414" length="3.5"/>
|
||||
<point type="pointOfIntersection" id="48" name="A36" firstPoint="30" secondPoint="47" mx="-6.70048" my="1.54174"/>
|
||||
<line typeLine="hair" id="49" firstPoint="48" secondPoint="47" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="50" name="A37" firstPoint="48" secondPoint="30" mx="-16.4068" lineColor="black" my="-4.07774" length="5"/>
|
||||
<point type="alongLine" typeLine="none" id="51" name="A38" firstPoint="47" secondPoint="6" mx="1.50028" lineColor="black" my="2.38547" length="0"/>
|
||||
<operation type="rotation" suffix="a1" id="52" center="51" angle="347">
|
||||
<source>
|
||||
<item idObject="30"/>
|
||||
<item idObject="32"/>
|
||||
<item idObject="3"/>
|
||||
<item idObject="47"/>
|
||||
<item idObject="48"/>
|
||||
</source>
|
||||
<destination>
|
||||
<item idObject="53" mx="-1.40029" my="-3.43916"/>
|
||||
<item idObject="54" mx="2.14748e+09" my="2.14748e+09"/>
|
||||
<item idObject="55" mx="-9.10953" my="1.82874"/>
|
||||
<item idObject="56" mx="-9.14742" my="4.69111"/>
|
||||
<item idObject="57" mx="-15.896" my="-2.22587"/>
|
||||
</destination>
|
||||
</operation>
|
||||
<spline point4="48" type="simpleInteractive" angle1="255.907" angle2="87.9297" id="59" length1="2.09975" color="black" length2="2.78289" point1="53"/>
|
||||
<point type="alongLine" typeLine="none" id="87" name="A39" firstPoint="55" secondPoint="39" mx="3.60993" lineColor="black" my="-2.36139" length="2"/>
|
||||
<line typeLine="hair" id="116" firstPoint="55" secondPoint="6" lineColor="black"/>
|
||||
<point type="normal" typeLine="hair" id="128" name="A31" firstPoint="53" secondPoint="55" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="1"/>
|
||||
<point type="alongLine" typeLine="none" id="129" name="A32" firstPoint="6" secondPoint="55" mx="6.58701" lineColor="black" my="-3.30873" length="4"/>
|
||||
<line typeLine="hair" id="131" firstPoint="129" secondPoint="6" lineColor="black"/>
|
||||
<point type="normal" typeLine="hair" id="132" name="A33" firstPoint="3" secondPoint="31" mx="-6.0275" lineColor="black" angle="0" my="0.188515" length="1"/>
|
||||
<point type="alongLine" typeLine="none" id="154" name="A34" firstPoint="6" secondPoint="132" mx="-3.05823" lineColor="black" my="-10.8077" length="Line_A32_A5"/>
|
||||
<point type="alongLine" typeLine="none" id="156" name="A40" firstPoint="129" secondPoint="128" mx="4.04072" lineColor="black" my="-3.64384" length="40"/>
|
||||
<line typeLine="hair" id="157" firstPoint="128" secondPoint="129" lineColor="black"/>
|
||||
<line typeLine="hair" id="158" firstPoint="48" secondPoint="10" lineColor="black"/>
|
||||
<point type="normal" typeLine="hair" id="159" name="A41" firstPoint="128" secondPoint="156" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="Spl_A27a1_A36+Line_A36_A9"/>
|
||||
<point type="alongLine" typeLine="none" id="160" name="A42" firstPoint="128" secondPoint="159" mx="0.132292" lineColor="black" my="0.264583" length="40"/>
|
||||
<point type="normal" typeLine="hair" id="161" name="A43" firstPoint="159" secondPoint="160" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="2"/>
|
||||
<line typeLine="hair" id="162" firstPoint="17" secondPoint="10" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="163" name="A44" firstPoint="159" secondPoint="128" mx="0.132292" lineColor="black" my="0.264583" length="Line_A16_A9"/>
|
||||
<point type="normal" typeLine="hair" id="164" name="A45" firstPoint="163" secondPoint="159" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="2"/>
|
||||
<line typeLine="hair" id="165" firstPoint="164" secondPoint="161" lineColor="black"/>
|
||||
<spline point4="164" type="simpleInteractive" angle1="167.443" angle2="68.8099" id="166" length1="13.1825" color="black" length2="9.07056" point1="6"/>
|
||||
<line typeLine="hair" id="167" firstPoint="26" secondPoint="13" lineColor="black"/>
|
||||
<point type="normal" typeLine="hair" id="176" name="A46" firstPoint="31" secondPoint="2" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="2"/>
|
||||
<point type="alongLine" typeLine="hair" id="188" name="A47" firstPoint="27" secondPoint="28" mx="0.132292" lineColor="black" my="0.264583" length="3.8"/>
|
||||
<spline point4="154" type="simpleInteractive" angle1="179.373" angle2="353.062" id="207" length1="3.1466" color="black" length2="5.58067" point1="176"/>
|
||||
<point type="endLine" typeLine="hair" id="235" name="A48" basePoint="39" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="5"/>
|
||||
<spline point4="14" type="simpleInteractive" angle1="0.283531" angle2="122.878" id="236" length1="7.34718" color="black" length2="5.3045" point1="235"/>
|
||||
<line typeLine="hair" id="237" firstPoint="154" secondPoint="39" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="hair" id="238" name="A49" firstPoint="129" secondPoint="6" mx="0.132292" lineColor="black" my="0.264583" length="Line_A34_A30"/>
|
||||
<point type="normal" typeLine="hair" id="239" name="A50" firstPoint="238" secondPoint="129" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="7"/>
|
||||
<spline point4="239" type="simpleInteractive" angle1="56.0748" angle2="163.688" id="240" length1="4.87388" color="black" length2="2.12533" point1="164"/>
|
||||
<point type="cutSpline" id="339" name="A51" spline="207" mx="0.512539" my="-2.4918" length="Spl_A46_A34-0.5"/>
|
||||
<point type="alongLine" typeLine="none" id="340" name="A52" firstPoint="129" secondPoint="128" mx="-3.89273" lineColor="black" my="-3.24586" length="0.5"/>
|
||||
<spline point4="238" type="simpleInteractive" angle1="261.197" angle2="75.6262" id="341" length1="2.07227" color="black" length2="2.29922" point1="340"/>
|
||||
<spline point4="39" type="simpleInteractive" angle1="262.702" angle2="93.2162" id="342" length1="1.91484" color="black" length2="3.11854" point1="339"/>
|
||||
</calculation>
|
||||
<modeling>
|
||||
<point type="modeling" inUse="true" id="355" idObject="128" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="true" id="356" idObject="340" mx="0.454236" my="-3.22064"/>
|
||||
<point type="modeling" inUse="true" id="358" idObject="238" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="true" id="363" idObject="159" mx="0.132292" my="0.264583"/>
|
||||
</modeling>
|
||||
<details>
|
||||
<detail closed="0" id="364" name="Pièce de patron" forbidFlipping="0" supplement="1" width="0.3" mx="-29.7142" my="-4.53267">
|
||||
<data rotation="0" letter="" fontSize="12" visible="false" mx="0" width="0" my="0" height="0"/>
|
||||
<patternInfo rotation="0" fontSize="12" visible="false" mx="0" width="0" my="0" height="0"/>
|
||||
<grainline arrows="0" rotation="90" visible="false" mx="0" my="0" length="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="355" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="356" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="358" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="363" mx="0" my="0"/>
|
||||
</detail>
|
||||
</details>
|
||||
<groups/>
|
||||
</draw>
|
||||
</pattern>
|
53
src/app/share/collection/bugs/Issue_#604.vit
Normal file
53
src/app/share/collection/bugs/Issue_#604.vit
Normal file
|
@ -0,0 +1,53 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<vit>
|
||||
<!--Measurements created with Valentina (http://www.valentina-project.org/).-->
|
||||
<version>0.3.3</version>
|
||||
<read-only>false</read-only>
|
||||
<notes/>
|
||||
<unit>cm</unit>
|
||||
<pm_system>998</pm_system>
|
||||
<personal>
|
||||
<family-name/>
|
||||
<given-name/>
|
||||
<birth-date>1800-01-01</birth-date>
|
||||
<gender>unknown</gender>
|
||||
<email/>
|
||||
</personal>
|
||||
<body-measurements>
|
||||
<m full_name="LONGUEUR TAILLE DOS" value="43.5+1" name="@A"/>
|
||||
<m full_name="HAUTEUR SLIP DVT" value="18+0.5" description="0.5" name="@HSD"/>
|
||||
<m value="11" description="0" name="@HCRO"/>
|
||||
<m full_name="LARGEUR SLIP DVT" value="16.4+0.6" description="0,6" name="@LSD"/>
|
||||
<m full_name="LONGUEUR TAILLE DEVANT" value="39.5+1" name="@B"/>
|
||||
<m full_name="TOUR DE POITRINE" value="108+8" name="@C"/>
|
||||
<m full_name="HAUTEUR POITRINE (TETON - COU)" value="37+1" name="@D"/>
|
||||
<m full_name="1/2 ECART POITRINE" value="10.5+0.5" name="@E"/>
|
||||
<m full_name="TOUR DE TAILLE" value="88+8" name="@F"/>
|
||||
<m full_name="TOUR PETITES HANCHES" value="97+8+8" name="@G"/>
|
||||
<m full_name="TOUR DE HANCHES" value="106+8+8" name="@H"/>
|
||||
<m full_name="DEMI TOUR ENCOLURE" value="19.5+1+1" name="@I"/>
|
||||
<m full_name="DEMI CARRURE DOS" value="18.25+0.5+0.5" name="@J"/>
|
||||
<m full_name="DEMI CARRURE DVT" value="17.25+0.5+0.5" name="@K"/>
|
||||
<m full_name="LONGUEUR EPAULE" value="13.2+0.8+0.8" name="@L"/>
|
||||
<m full_name="TOUR EMMANCHURE" value="42.5+2+2" name="@M"/>
|
||||
<m full_name="HAUTEUR DESSOUS DE BRAS" value="22.25+0.5+0.5" name="@N"/>
|
||||
<m full_name="LONGUEUR BRAS" value="60" name="@O"/>
|
||||
<m full_name="TOUR DE BICEPS" value="29+2+2" name="@P"/>
|
||||
<m full_name="EPAULE À COUDE" value="35" name="@Q"/>
|
||||
<m full_name="TOUR DE POIGNET" value="16.75+0.5+0.5" name="@R"/>
|
||||
<m full_name="HAUTEUR TAILLE-HANCHES" value="22" name="@S"/>
|
||||
<m full_name="HAUTEUR MONTANT DEVANT" value="28 +1+1" name="@T"/>
|
||||
<m full_name="ENFOURCHURE TOTALE" value="66+4+4" name="@U"/>
|
||||
<m full_name="HAUTEUR TAILLE GENOU" value="61+2+2" name="@V"/>
|
||||
<m full_name="HAUTEUR TAILLE SOL" value="107+1+1" name="@W"/>
|
||||
<m full_name="HAUTEUR COTE TAILLE AU SOL" value="107.5+1+1" name="@X"/>
|
||||
<m full_name="TOUR DESSOUS DE POITRINE" value="87+8+8" description="+4" name="@TSP"/>
|
||||
<m full_name="TOUR DE CUISSE" value="63+6+6" description="+3" name="@TCU"/>
|
||||
<m full_name="TOUR DE GENOU" value="39.2+2.8+2.8" description="+1,4" name="@TG"/>
|
||||
<m full_name="TOUR DE CHEVILLE" value="24.8+1.2+1.2" description="+0,6" name="@TCH"/>
|
||||
<m full_name="HAUTEUR COU TAILLE" value="42.5+1+1" description="+0,5" name="@HCT"/>
|
||||
<m full_name="HAUTEUR EMMANCHURE DOS" value="22+0.4+0.4" description="+0.2" name="@HED"/>
|
||||
<m full_name="HAUTEUR FOURCHE COTÉ" value="30.4+1.6+1.6 " description="+0.8" name="@FC"/>
|
||||
<m full_name="HAUTEUR TAILLE GENOU" value="60.8+0.8+0.8+0.8+0.8 " description="0,8" name="@HG"/>
|
||||
</body-measurements>
|
||||
</vit>
|
278
src/app/share/collection/bugs/Issue_#609_case1.val
Normal file
278
src/app/share/collection/bugs/Issue_#609_case1.val
Normal file
|
@ -0,0 +1,278 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<pattern>
|
||||
<!--Valentina pattern format.-->
|
||||
<version>0.3.9</version>
|
||||
<unit>mm</unit>
|
||||
<author/>
|
||||
<description/>
|
||||
<notes/>
|
||||
<gradation defSize="300" defHeight="1100" custom="true">
|
||||
<heights all="true"/>
|
||||
<sizes all="true"/>
|
||||
</gradation>
|
||||
<measurements>../../../../../build-Valentina-Qt_5_2_1_GCC_32bit-Debug/src/app/valentina/bin/tables/standard/GOST_man_ru.vst</measurements>
|
||||
<increments>
|
||||
<increment name="#Пс_впрз" description="Высота основания" formula="16.1"/>
|
||||
<increment name="#Пк_впрз1" description="проймы сзади АГ" formula="14"/>
|
||||
<increment name="#Пдтс1" description="Длина спинки" formula="13"/>
|
||||
<increment name="#Пдтс2" description="до линии талии АТ" formula="20"/>
|
||||
<increment name="#Пус_ди" description="Длина куртки АН" formula="-67"/>
|
||||
<increment name="#Пс_шс" description="Ширина спинки ГГ2" formula="21"/>
|
||||
<increment name="#Пк_шс1" description="Опис" formula="2"/>
|
||||
<increment name="#Пк_шс2" description="Опис" formula="2"/>
|
||||
<increment name="#Пшпр1" description="Ширина проймы Г2Г3" formula="46"/>
|
||||
<increment name="#Пшпр2" description="Опис" formula="-24"/>
|
||||
<increment name="#Пс_шг" description="Ширина полочки на" formula="42"/>
|
||||
<increment name="#Пк_шг1" description="уровне линии груди" formula="4"/>
|
||||
<increment name="#Пк_шг2" description="Г3Г4" formula="0"/>
|
||||
<increment name="#Пс_шпт" description=" Ширина полочки на уровне линии талии Т3Т4" formula="19"/>
|
||||
<increment name="#Пс_впрс" description="Высота проймы спинки" formula="42"/>
|
||||
<increment name="#Пс_впр" description="Высота проймы полочки Г3П3" formula="28"/>
|
||||
<increment name="#Пк_впр1" description="Опис" formula="8.5"/>
|
||||
<increment name="#Пс_впрп" description="Высота горловины" formula="38"/>
|
||||
<increment name="#Пк_впрп1" description="полочки Г5А4" formula="9"/>
|
||||
<increment name="#Пшгс" description="Ширина горловины спинки А1А2" formula="30"/>
|
||||
<increment name="#Пк_шп1" description="Длина плечевой линии" formula="3"/>
|
||||
<increment name="#Пк_шп2" description="спинки А3П2" formula="-1"/>
|
||||
<increment name="#Ппос_шп" description="Опис" formula="-2"/>
|
||||
<increment name="#Пс_сб" description="Ширина куртки на линии бедер" formula="20"/>
|
||||
<increment name="#Пдр1" description="Длина рукава АН" formula="82"/>
|
||||
<increment name="#Пдр2" description="Опис" formula="20"/>
|
||||
<increment name="#Пдр_лок1" description="Длина рукава до" formula="38"/>
|
||||
<increment name="#Пдр_лок2" description="локтя АЛ" formula="-10"/>
|
||||
<increment name="#Пшр" description="Ширина рукава с курточным окатом АА1 и ББ2" formula="42"/>
|
||||
<increment name="#Ппос_ор" description="Прибавка на посадку по окату рукава" formula="34"/>
|
||||
<increment name="#Пшр1" description="Description" formula="50"/>
|
||||
<increment name="#Пшр2" description="Description" formula="62"/>
|
||||
<increment name="#Швс" description="Description" formula="70"/>
|
||||
<increment name="#Пвк" description="Висота капишона" formula="20"/>
|
||||
<increment name="#Пшк" description="ширина капишона" formula="20"/>
|
||||
</increments>
|
||||
<draw name="Куртка">
|
||||
<calculation>
|
||||
<point type="single" x="16.3689" y="57.7733" id="33" name="А" mx="1.32292" my="2.64583"/>
|
||||
<point type="endLine" typeLine="none" id="34" name="Г" basePoint="33" lineColor="black" mx="1.32292" angle="270" my="2.64583" length="0.2 * bust_arc_f + 0.07 * height + #Пс_впрз+10"/>
|
||||
<point type="alongLine" typeLine="none" id="35" name="У" firstPoint="33" secondPoint="34" lineColor="black" mx="1.32292" my="2.64583" length="0.5*Line_А_Г"/>
|
||||
<point type="endLine" typeLine="none" id="36" name="Т" basePoint="33" lineColor="black" mx="1.32292" angle="270" my="2.64583" length="0.25 * height + #Пдтс2"/>
|
||||
<point type="endLine" typeLine="hair" id="37" name="Н" basePoint="33" lineColor="black" mx="1.32292" angle="270" my="2.64583" length="0.33 * height + 0.33 * indent_neck_back"/>
|
||||
<point type="endLine" typeLine="hair" id="38" name="Г2" basePoint="34" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="0.35 * bust_arc_f + 0.017 * height + #Пс_шс + #Пк_шс2"/>
|
||||
<point type="endLine" typeLine="hair" id="39" name="Г3" basePoint="38" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="0.3 * bust_arc_f + #Пшпр2"/>
|
||||
<point type="endLine" typeLine="hair" id="40" name="Г4" basePoint="39" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="0.35 * bust_arc_f + 0.01 * height + #Пс_шг + #Пк_шг2"/>
|
||||
<point type="endLine" typeLine="hair" id="41" name="А2" basePoint="33" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="0.35*neck_mid_circ + #Пшгс"/>
|
||||
<point type="endLine" typeLine="none" id="42" name="Г5" basePoint="40" lineColor="black" mx="1.32292" angle="180" my="2.64583" length="Line_А_А2"/>
|
||||
<point type="endLine" typeLine="hair" id="43" name="А3" basePoint="41" lineColor="black" mx="1.32292" angle="90" my="2.64583" length="0.35*Line_А_А2"/>
|
||||
<point type="endLine" typeLine="hair" id="44" name="А20" basePoint="41" lineColor="black" mx="-2.08003" angle="135" my="6.61594" length="0.75*Line_А2_А3"/>
|
||||
<point type="endLine" typeLine="hair" id="45" name="П" basePoint="38" lineColor="black" mx="1.32292" angle="90" my="2.64583" length="0.2 * bust_arc_f + 0.05 * height + #Пс_впрс+10"/>
|
||||
<point type="endLine" typeLine="hair" id="46" name="П1" basePoint="35" lineColor="black" mx="28.6501" angle="0" my="-31.8727" length="Line_Г_Г2"/>
|
||||
<point type="alongLine" typeLine="hair" id="47" name="П2" firstPoint="43" secondPoint="45" lineColor="black" mx="1.32292" my="2.64583" length="0.2 * bust_arc_f + 0.03 * height + #Пк_шп2 + #Ппос_шп"/>
|
||||
<point type="alongLine" typeLine="none" id="48" name="П20" firstPoint="43" secondPoint="45" lineColor="black" mx="1.32292" my="2.64583" length="50"/>
|
||||
<point type="endLine" typeLine="hair" id="49" name="П3" basePoint="39" lineColor="black" mx="1.32292" angle="90" my="2.64583" length="Line_Г2_П"/>
|
||||
<point type="endLine" typeLine="hair" id="50" name="А4" basePoint="42" lineColor="black" mx="1.32292" angle="90" my="2.64583" length="Line_А_Г+Line_А2_А3"/>
|
||||
<point type="alongLine" typeLine="hair" id="51" name="П4" firstPoint="50" secondPoint="49" lineColor="black" mx="-1.00541" my="-11.3242" length="Line_А3_П2"/>
|
||||
<point type="endLine" typeLine="none" id="52" name="П5" basePoint="39" lineColor="black" mx="8.59896" angle="90" my="-2.01084" length="Line_Г3_П3*0.4444"/>
|
||||
<line typeLine="hair" id="53" firstPoint="51" secondPoint="52" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="54" name="П7" firstPoint="52" secondPoint="51" lineColor="black" mx="-9.23943" my="2.64583" length="0.5*Line_П4_П5"/>
|
||||
<point type="normal" typeLine="hair" id="55" name="П8" firstPoint="54" secondPoint="52" lineColor="black" mx="2.61006" angle="0" my="-10.595" length="1"/>
|
||||
<point type="endLine" typeLine="none" id="56" name="Г6" basePoint="34" lineColor="black" mx="5.48569" angle="0" my="4.79765" length="0.5*(Line_Г_Г2+Line_Г2_Г3+Line_Г3_Г4)"/>
|
||||
<point type="endLine" typeLine="hair" id="57" name="З" basePoint="38" lineColor="black" mx="-3.0442" angle="45" my="8.2607" length="0.24*Line_Г2_Г3"/>
|
||||
<point type="endLine" typeLine="hair" id="58" name="З3" basePoint="39" lineColor="black" mx="0.0751693" angle="135" my="8.88457" length="0.24*Line_Г2_Г3"/>
|
||||
<point type="endLine" typeLine="hair" id="59" name="А5" basePoint="50" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="Line_А_А2"/>
|
||||
<line typeLine="hair" id="60" firstPoint="59" secondPoint="40" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="61" name="А6" firstPoint="59" secondPoint="40" lineColor="black" mx="22.4896" my="-8.99584" length="0.82*Line_А4_А5"/>
|
||||
<point type="alongLine" typeLine="none" id="62" name="А7" firstPoint="50" secondPoint="42" lineColor="black" mx="1.32292" my="2.64583" length="0.8*Line_А4_А5"/>
|
||||
<line typeLine="hair" id="63" firstPoint="62" secondPoint="61" lineColor="black"/>
|
||||
<point type="bisector" typeLine="hair" id="64" name="А51" thirdPoint="61" firstPoint="50" secondPoint="62" lineColor="black" mx="1.32292" my="2.64583" length="150"/>
|
||||
<point type="lineIntersect" id="65" name="А50" p2Line1="59" p2Line2="64" p1Line1="50" p1Line2="62" mx="1.32292" my="2.64583"/>
|
||||
<point type="pointOfContact" id="66" name="Ак" radius="Line_А4_А50" firstPoint="62" center="65" secondPoint="61" mx="1.32292" my="2.64583"/>
|
||||
<point type="endLine" typeLine="hair" id="67" name="Т3" basePoint="36" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="Line_Г_Г2+Line_Г2_Г3"/>
|
||||
<line typeLine="hair" id="68" firstPoint="39" secondPoint="67" lineColor="black"/>
|
||||
<point type="endLine" typeLine="hair" id="69" name="Т4" basePoint="67" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="Line_Г3_Г4"/>
|
||||
<line typeLine="hair" id="70" firstPoint="40" secondPoint="69" lineColor="black"/>
|
||||
<point type="endLine" typeLine="hair" id="71" name="Н3" basePoint="37" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="Line_Т3_Т4+Line_Т_Т3"/>
|
||||
<line typeLine="hair" id="72" firstPoint="69" secondPoint="71" lineColor="black"/>
|
||||
<point type="endLine" typeLine="none" id="73" name="Н5" basePoint="37" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="Line_Г_Г6"/>
|
||||
<line typeLine="hair" id="74" firstPoint="56" secondPoint="73" lineColor="black"/>
|
||||
<line typeLine="hair" id="75" firstPoint="65" secondPoint="66" lineColor="black"/>
|
||||
<arc type="simple" angle1="180" angle2="AngleLine_А50_Ак" id="76" radius="Line_А4_А50" center="65" color="black"/>
|
||||
<spline type="pathInteractive" id="77" color="black">
|
||||
<pathPoint angle1="184.205" pSpline="33" angle2="4.20522" length1="0" length2="27.556"/>
|
||||
<pathPoint angle1="215.751" pSpline="44" angle2="35.7515" length1="12.4503" length2="8.15772"/>
|
||||
<pathPoint angle1="234.166" pSpline="43" angle2="54.166" length1="5.84299" length2="0"/>
|
||||
</spline>
|
||||
<spline type="pathInteractive" id="78" color="black">
|
||||
<pathPoint angle1="80.258" pSpline="47" angle2="260.258" length1="0" length2="20.8645"/>
|
||||
<pathPoint angle1="87.674" pSpline="46" angle2="267.674" length1="30.751" length2="50.1703"/>
|
||||
<pathPoint angle1="120.24" pSpline="57" angle2="300.24" length1="11.5169" length2="12.8071"/>
|
||||
<pathPoint angle1="317.706" pSpline="56" angle2="137.706" length1="17.5368" length2="0"/>
|
||||
</spline>
|
||||
<point type="endLine" typeLine="hair" id="79" name="П5н" basePoint="52" lineColor="black" mx="-13.6151" angle="180" my="5.24991" length="1"/>
|
||||
<spline type="pathInteractive" id="80" color="black">
|
||||
<pathPoint angle1="101.835" pSpline="51" angle2="281.835" length1="0" length2="27.3441"/>
|
||||
<pathPoint angle1="100.326" pSpline="55" angle2="280.326" length1="3.61809" length2="21.5186"/>
|
||||
<pathPoint angle1="93.053" pSpline="79" angle2="273.053" length1="12.096" length2="38.3854"/>
|
||||
<pathPoint angle1="56.906" pSpline="58" angle2="236.906" length1="13.1026" length2="8.79047"/>
|
||||
<pathPoint angle1="355.114" pSpline="56" angle2="175.114" length1="9.58048" length2="0"/>
|
||||
</spline>
|
||||
<line typeLine="hair" id="81" firstPoint="43" secondPoint="50" lineColor="black"/>
|
||||
<line typeLine="hair" id="82" firstPoint="47" secondPoint="51" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="83" name="П11" firstPoint="47" secondPoint="51" lineColor="black" mx="1.32292" my="2.64583" length="Line_П2_П4*0.5"/>
|
||||
<point type="endLine" typeLine="none" id="86" name="Г81" basePoint="83" lineColor="black" mx="-4.86142" angle="270" my="11.3574" length="Line_А_Г"/>
|
||||
<point type="lineIntersect" id="87" name="Г8" p2Line1="86" p2Line2="39" p1Line1="83" p1Line2="34" mx="-26.0772" my="7.75128"/>
|
||||
<line typeLine="hair" id="88" firstPoint="87" secondPoint="83" lineColor="black"/>
|
||||
<point type="endLine" typeLine="hair" id="89" name="К2" basePoint="67" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="0.1*bust_arc_f"/>
|
||||
<point type="endLine" typeLine="hair" id="90" name="К3" basePoint="89" lineColor="black" mx="1.32292" angle="80" my="2.64583" length="50"/>
|
||||
<point type="endLine" typeLine="hair" id="91" name="К4" basePoint="89" lineColor="black" mx="1.32292" angle="260" my="2.64583" length="50"/>
|
||||
<point type="endLine" typeLine="hair" id="92" name="К5" basePoint="90" lineColor="black" mx="1.32292" angle="170" my="2.64583" length="15"/>
|
||||
<point type="endLine" typeLine="hair" id="93" name="К6" basePoint="91" lineColor="black" mx="1.32292" angle="170" my="2.64583" length="15"/>
|
||||
<line typeLine="hair" id="94" firstPoint="92" secondPoint="93" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="hair" id="95" name="А41" firstPoint="50" secondPoint="49" lineColor="black" mx="1.32292" my="2.64583" length="20"/>
|
||||
<line typeLine="hair" id="96" firstPoint="73" secondPoint="71" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="hair" id="97" name="Н31" firstPoint="73" secondPoint="71" lineColor="black" mx="1.32292" my="2.64583" length="Line_Н5_Н3-50"/>
|
||||
<spline type="simpleInteractive" point4="97" angle1="286.103" angle2="92.0822" id="98" color="black" length1="160.559" length2="101.493" point1="95"/>
|
||||
<point type="cutSplinePath" id="203" name="С1" splinePath="78" mx="23.5479" my="13.2292" length="SplPath_П2_Г6*0.5"/>
|
||||
<point type="cutSplinePath" id="209" name="С3" splinePath="80" mx="18.0755" my="25.1094" length="SplPath_П4_Г6*0.5"/>
|
||||
<point type="alongLine" typeLine="none" id="286" name="Ф1" firstPoint="33" secondPoint="36" lineColor="black" mx="1.32292" my="2.64583" length="Line_А_Т*0.205"/>
|
||||
<point type="cutSplinePath" id="287" name="Ф2" splinePath="78" mx="1.32292" my="2.64583" length="SplPath_П2_С1*0.67"/>
|
||||
<line typeLine="hair" id="290" firstPoint="286" secondPoint="287" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="291" name="Ф3" firstPoint="69" secondPoint="59" lineColor="black" mx="1.32292" my="2.64583" length="Line_Ф1_Т"/>
|
||||
<point type="cutSplinePath" id="292" name="Ф4" splinePath="80" mx="1.32292" my="2.64583" length="SplPath_П4_С3*0.67"/>
|
||||
<line typeLine="hair" id="295" firstPoint="292" secondPoint="291" lineColor="black"/>
|
||||
</calculation>
|
||||
<modeling>
|
||||
<point type="modeling" inUse="true" id="304" idObject="286" mx="1.32292" my="2.64583"/>
|
||||
<point type="modeling" inUse="true" id="305" idObject="287" mx="1.32292" my="2.64583"/>
|
||||
<spline type="modelingPath" inUse="true" id="308" idObject="78"/>
|
||||
<point type="modeling" inUse="true" id="309" idObject="87" mx="-8.05159" my="7.80181"/>
|
||||
<point type="modeling" inUse="true" id="310" idObject="73" mx="1.32292" my="2.64583"/>
|
||||
<point type="modeling" inUse="true" id="311" idObject="37" mx="1.32292" my="2.64583"/>
|
||||
</modeling>
|
||||
<details>
|
||||
<detail closed="1" id="312" name="Деталь" forbidFlipping="1" supplement="1" width="7" mx="0" my="0">
|
||||
<data rotation="0" letter="" fontSize="12" visible="true" mx="0" width="0" my="0" height="0"/>
|
||||
<patternInfo rotation="0" fontSize="12" visible="true" mx="0" width="0" my="0" height="0"/>
|
||||
<grainline arrows="0" rotation="90" visible="false" mx="0" my="0" length="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="304" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="305" mx="0" my="0"/>
|
||||
<node type="NodeSplinePath" reverse="0" nodeType="Contour" idObject="308" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="309" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="310" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="311" mx="0" my="0"/>
|
||||
</detail>
|
||||
</details>
|
||||
<groups/>
|
||||
</draw>
|
||||
<draw name="Рукав">
|
||||
<calculation>
|
||||
<point type="single" x="662.911" y="-31.3691" id="125" name="А" mx="1.32292" my="2.64583"/>
|
||||
<point type="endLine" typeLine="hair" id="126" name="Н" basePoint="125" lineColor="black" mx="1.32292" angle="270" my="2.64583" length="0.33*height+0.15*bust_arc_f-50"/>
|
||||
<point type="alongLine" typeLine="none" id="127" name="Б" firstPoint="125" secondPoint="126" lineColor="black" mx="1.32292" my="2.64583" length="0.3792*Line_Г8_П11"/>
|
||||
<point type="endLine" typeLine="none" id="128" name="Б1" basePoint="127" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="Line_Г2_Г3+#Пшр1"/>
|
||||
<point type="endLine" typeLine="none" id="129" name="Б4" basePoint="127" lineColor="black" mx="1.32292" angle="180" my="2.64583" length="Line_Г2_Г3+#Пшр1"/>
|
||||
<point type="endLine" typeLine="hair" id="130" name="Н1" basePoint="126" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="0.6*Line_Б_Б1+38"/>
|
||||
<line typeLine="hair" id="131" firstPoint="128" secondPoint="130" lineColor="black"/>
|
||||
<point type="endLine" typeLine="hair" id="132" name="Н2" basePoint="126" lineColor="black" mx="1.32292" angle="180" my="2.64583" length="0.6*Line_Б_Б1+38"/>
|
||||
<line typeLine="hair" id="133" firstPoint="129" secondPoint="132" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="hair" id="138" name="Б2" firstPoint="127" secondPoint="128" lineColor="black" mx="1.32292" my="2.64583" length="((0.5 * (SplPath_П2_Г6+SplPath_П4_Г6) +3)^2 - Line_А_Б^2)^0.5"/>
|
||||
<point type="alongLine" typeLine="hair" id="139" name="Б3" firstPoint="127" secondPoint="129" lineColor="black" mx="1.32292" my="2.64583" length="((0.5 * (SplPath_П2_Г6+SplPath_П4_Г6) -8)^2 - Line_А_Б^2)^0.5"/>
|
||||
<line typeLine="hair" id="140" firstPoint="125" secondPoint="138" lineColor="black"/>
|
||||
<line typeLine="hair" id="141" firstPoint="125" secondPoint="139" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="142" name="А1" firstPoint="125" secondPoint="138" lineColor="black" mx="19.0616" my="-50.5702" length="Line_А_Б2*0.5"/>
|
||||
<point type="alongLine" typeLine="none" id="143" name="А2" firstPoint="125" secondPoint="142" lineColor="black" mx="0.130208" my="6.82032" length="Line_А_А1*0.5"/>
|
||||
<point type="alongLine" typeLine="none" id="144" name="А3" firstPoint="142" secondPoint="138" lineColor="black" mx="5.9633" my="-10.2441" length="Line_А1_Б2*0.5"/>
|
||||
<point type="alongLine" typeLine="none" id="145" name="А1з" firstPoint="125" secondPoint="139" lineColor="black" mx="-4.43017" my="-60.6381" length="Line_А_Б3*0.5"/>
|
||||
<point type="alongLine" typeLine="none" id="146" name="А2з" firstPoint="125" secondPoint="145" lineColor="black" mx="4.33266" my="4.97457" length="Line_А_А1з*0.5"/>
|
||||
<point type="alongLine" typeLine="none" id="147" name="А3з" firstPoint="145" secondPoint="139" lineColor="black" mx="-2.80186" my="-13.3377" length="Line_А1з_Б3*0.5"/>
|
||||
<point type="normal" typeLine="hair" id="148" name="А4" firstPoint="143" secondPoint="138" lineColor="black" mx="1.89007" angle="0" my="-12.1003" length="0.10*Line_А_Б"/>
|
||||
<point type="normal" typeLine="hair" id="149" name="А4з" firstPoint="146" secondPoint="125" lineColor="black" mx="-15.3305" angle="0" my="-20.8475" length="0.10*Line_А_Б"/>
|
||||
<point type="normal" typeLine="hair" id="150" name="А5" firstPoint="144" secondPoint="125" lineColor="black" mx="-5.89299" angle="0" my="6.80045" length="Line_А2_А4"/>
|
||||
<point type="normal" typeLine="hair" id="151" name="А5з" firstPoint="147" secondPoint="139" lineColor="black" mx="2.85356" angle="0" my="5.92579" length="Line_А2з_А4з"/>
|
||||
<line typeLine="hair" id="152" firstPoint="148" secondPoint="150" lineColor="black"/>
|
||||
<line typeLine="hair" id="153" firstPoint="149" secondPoint="151" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="hair" id="154" name="О" firstPoint="148" secondPoint="143" lineColor="black" mx="-9.59601" my="-2.49453" length="Line_А2_А4*0.25"/>
|
||||
<point type="alongLine" typeLine="hair" id="155" name="Оз" firstPoint="149" secondPoint="146" lineColor="black" mx="5.23899" my="-5.3851" length="Line_А2з_А4з*0.25"/>
|
||||
<point type="alongLine" typeLine="hair" id="156" name="О1" firstPoint="150" secondPoint="144" lineColor="black" mx="8.1015" my="5.05114" length="Line_А4_О"/>
|
||||
<point type="alongLine" typeLine="hair" id="157" name="О1з" firstPoint="151" secondPoint="147" lineColor="black" mx="-14.4209" my="2.20851" length="Line_А4з_Оз"/>
|
||||
<point type="alongLine" typeLine="hair" id="158" name="О2" firstPoint="142" secondPoint="148" lineColor="black" mx="6.04115" my="-33.125" length="Line_А4_А5*0.25"/>
|
||||
<point type="alongLine" typeLine="hair" id="159" name="О2з" firstPoint="145" secondPoint="149" lineColor="black" mx="8.66898" my="14.5691" length="Line_А4з_А5з*0.25"/>
|
||||
<point type="alongLine" typeLine="hair" id="160" name="А6" firstPoint="144" secondPoint="150" lineColor="black" mx="9.12091" my="2.93381" length="Line_А3_А5*0.5"/>
|
||||
<point type="alongLine" typeLine="hair" id="161" name="А6з" firstPoint="147" secondPoint="151" lineColor="black" mx="-12.8902" my="-0.415461" length="Line_А3з_А5з*0.5"/>
|
||||
<point type="lineIntersect" id="162" name="О3" p2Line1="158" p2Line2="138" p1Line1="160" p1Line2="125" mx="5.68854" my="-6.37646"/>
|
||||
<point type="lineIntersect" id="163" name="О3з" p2Line1="159" p2Line2="139" p1Line1="161" p1Line2="125" mx="-22.6642" my="-26.58"/>
|
||||
<point type="alongLine" typeLine="hair" id="164" name="О4" firstPoint="160" secondPoint="144" lineColor="black" mx="13.8377" my="-4.63021" length="Line_А3_А6*0.25"/>
|
||||
<point type="alongLine" typeLine="hair" id="165" name="О4з" firstPoint="161" secondPoint="147" lineColor="black" mx="7.08554" my="-5.9981" length="Line_А3з_А6з*0.25"/>
|
||||
<spline type="pathInteractive" id="166" color="black">
|
||||
<pathPoint angle1="179.998" pSpline="125" angle2="359.998" length1="0" length2="12.3634"/>
|
||||
<pathPoint angle1="153.959" pSpline="154" angle2="333.959" length1="14.6138" length2="5.85177"/>
|
||||
<pathPoint angle1="153.373" pSpline="158" angle2="333.373" length1="5.10362" length2="9.46745"/>
|
||||
<pathPoint angle1="152.532" pSpline="142" angle2="332.532" length1="5.90789" length2="19.9914"/>
|
||||
<pathPoint angle1="158.016" pSpline="156" angle2="338.016" length1="13.1046" length2="12.3332"/>
|
||||
<pathPoint angle1="173.032" pSpline="138" angle2="353.032" length1="17.7872" length2="0"/>
|
||||
</spline>
|
||||
<spline type="pathInteractive" id="167" color="black">
|
||||
<pathPoint angle1="1.148" pSpline="125" angle2="181.148" length1="0" length2="9.88634"/>
|
||||
<pathPoint angle1="24.198" pSpline="155" angle2="204.198" length1="17.7795" length2="4.99338"/>
|
||||
<pathPoint angle1="27.376" pSpline="159" angle2="207.376" length1="8.73578" length2="7.35637"/>
|
||||
<pathPoint angle1="26.864" pSpline="163" angle2="206.864" length1="13.129" length2="8.98105"/>
|
||||
<pathPoint angle1="25.87" pSpline="165" angle2="205.87" length1="13.1037" length2="6.12142"/>
|
||||
<pathPoint angle1="9.899" pSpline="139" angle2="189.899" length1="17.6503" length2="0"/>
|
||||
</spline>
|
||||
<spline type="simpleInteractive" point4="138" angle1="84.068" angle2="255.161" id="168" color="black" length1="135.76" length2="82.0371" point1="130"/>
|
||||
<spline type="simpleInteractive" point4="139" angle1="98.0171" angle2="286.671" id="169" color="black" length1="175.212" length2="76.4262" point1="132"/>
|
||||
</calculation>
|
||||
<modeling/>
|
||||
<details/>
|
||||
</draw>
|
||||
<draw name="Комір">
|
||||
<calculation>
|
||||
<point type="single" x="711.333" y="736.791" id="190" name="В" mx="1.32292" my="2.64583"/>
|
||||
<point type="endLine" typeLine="hair" id="192" name="В1" basePoint="190" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="SplPath_А_А3*2+(Arc_А50_76+Line_А6_Ак)*2"/>
|
||||
<point type="endLine" typeLine="hair" id="193" name="В2" basePoint="190" lineColor="black" mx="1.32292" angle="90" my="2.64583" length="#Швс"/>
|
||||
<point type="endLine" typeLine="hair" id="194" name="В3" basePoint="193" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="SplPath_А_А3*2+(Arc_А50_76+Line_А6_Ак)*2"/>
|
||||
<line typeLine="hair" id="195" firstPoint="194" secondPoint="192" lineColor="black"/>
|
||||
</calculation>
|
||||
<modeling/>
|
||||
<details/>
|
||||
</draw>
|
||||
<draw name="капишон">
|
||||
<calculation>
|
||||
<point type="single" x="-264.749" y="32.1467" id="224" name="А" mx="-8.83849" my="-20.0204"/>
|
||||
<point type="endLine" typeLine="hair" id="225" name="Б" basePoint="224" lineColor="black" mx="1.32292" angle="270" my="2.64583" length="1.33*(height-height_neck_back)+#Пвк"/>
|
||||
<point type="alongLine" typeLine="none" id="226" name="В" firstPoint="224" secondPoint="225" lineColor="black" mx="1.32292" my="2.64583" length="0.33*Line_А_Б"/>
|
||||
<point type="alongLine" typeLine="none" id="227" name="Д" firstPoint="225" secondPoint="226" lineColor="black" mx="1.32292" my="2.64583" length="0.25*(height-height_neck_back)"/>
|
||||
<point type="endLine" typeLine="hair" id="228" name="Г" basePoint="225" lineColor="black" mx="0.709236" angle="270" my="2.03215" length="0.33*Line_А5_А6"/>
|
||||
<point type="endLine" typeLine="hair" id="229" name="А1" basePoint="224" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="0.4*head_circ+#Пшк"/>
|
||||
<point type="alongLine" typeLine="none" id="230" name="А2" firstPoint="229" secondPoint="224" lineColor="black" mx="1.32292" my="2.64583" length="Line_А_В"/>
|
||||
<point type="endLine" typeLine="hair" id="231" name="В1" basePoint="226" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="Line_А_А1"/>
|
||||
<point type="alongLine" typeLine="none" id="232" name="В2" firstPoint="231" secondPoint="226" lineColor="black" mx="1.32292" my="2.64583" length="Line_А_В"/>
|
||||
<line typeLine="hair" id="233" firstPoint="230" secondPoint="232" lineColor="black"/>
|
||||
<point type="endLine" typeLine="hair" id="235" name="Г1" basePoint="228" lineColor="black" mx="8.68713" angle="180" my="2.03215" length="0.6*Line_А4_А5"/>
|
||||
<point type="alongLine" typeLine="hair" id="236" name="Г2" firstPoint="235" secondPoint="228" lineColor="black" mx="1.32292" my="2.64583" length="SplPath_А_А3+Arc_А50_76+Line_А6_Ак"/>
|
||||
<point type="endLine" typeLine="hair" id="237" name="Б1" basePoint="236" lineColor="black" mx="1.32292" angle="90" my="2.64583" length="Line_Б_Г"/>
|
||||
<line typeLine="hair" id="238" firstPoint="225" secondPoint="237" lineColor="black"/>
|
||||
<point type="endLine" typeLine="hair" id="239" name="Д1" basePoint="227" lineColor="black" mx="1.32292" angle="0" my="2.64583" length="Line_Б_Б1+2"/>
|
||||
<line typeLine="hair" id="240" firstPoint="239" secondPoint="237" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="243" name="А4" firstPoint="224" secondPoint="226" lineColor="black" mx="1.32292" my="2.64583" length="8"/>
|
||||
<point type="alongLine" typeLine="none" id="244" name="А3" firstPoint="224" secondPoint="230" lineColor="black" mx="1.32292" my="2.64583" length="0.65*Line_А2_А"/>
|
||||
<line typeLine="hair" id="249" firstPoint="244" secondPoint="243" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="250" name="А5" firstPoint="244" secondPoint="243" lineColor="black" mx="1.32292" my="2.64583" length="Line_А3_А4+10"/>
|
||||
<point type="endLine" typeLine="hair" id="254" name="Л" basePoint="235" lineColor="black" mx="1.32292" angle="90" my="2.64583" length="50"/>
|
||||
<point type="alongLine" typeLine="none" id="255" name="Л1" firstPoint="228" secondPoint="227" lineColor="black" mx="6.63051" my="0.750261" length="Line_Г1_Л"/>
|
||||
<line typeLine="hair" id="256" firstPoint="254" secondPoint="255" lineColor="black"/>
|
||||
<spline type="simpleInteractive" point4="237" angle1="358.736" angle2="178.86" id="258" color="black" length1="122.19" length2="106.948" point1="235"/>
|
||||
<spline type="pathInteractive" id="261" color="black">
|
||||
<pathPoint angle1="175.568" pSpline="230" angle2="355.568" length1="0" length2="79.6733"/>
|
||||
<pathPoint angle1="81.86" pSpline="231" angle2="261.86" length1="54.8681" length2="104.96"/>
|
||||
<pathPoint angle1="73.099" pSpline="237" angle2="253.099" length1="60.9341" length2="0"/>
|
||||
</spline>
|
||||
<spline type="pathInteractive" id="263" color="black">
|
||||
<pathPoint angle1="96.992" pSpline="250" angle2="276.992" length1="0" length2="39.4593"/>
|
||||
<pathPoint angle1="94.44" pSpline="226" angle2="274.44" length1="31.3315" length2="57.3187"/>
|
||||
<pathPoint angle1="2.828" pSpline="254" angle2="182.828" length1="65.4653" length2="0"/>
|
||||
</spline>
|
||||
<spline type="simpleInteractive" point4="230" angle1="11.0159" angle2="176.295" id="275" color="black" length1="53.2682" length2="26.8703" point1="250"/>
|
||||
</calculation>
|
||||
<modeling/>
|
||||
<details/>
|
||||
<groups/>
|
||||
</draw>
|
||||
</pattern>
|
279
src/app/share/collection/bugs/Issue_#609_case2.val
Normal file
279
src/app/share/collection/bugs/Issue_#609_case2.val
Normal file
|
@ -0,0 +1,279 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<pattern>
|
||||
<!--Pattern created with Valentina (http://www.valentina-project.org/).-->
|
||||
<version>0.3.9</version>
|
||||
<unit>cm</unit>
|
||||
<author/>
|
||||
<description/>
|
||||
<notes/>
|
||||
<measurements>Issue_#609_case2.vit</measurements>
|
||||
<increments>
|
||||
<increment name="#Пг" description="Прибавка по линии груди

Прибавка по линии груди распределяется между участками спинки, полочки и проймы:
Пг = Пшс + Пшп + Ппр.
" formula="3.5"/>
|
||||
<increment name="#Пшс" description="Прибавка к ширине спины

Прибавка по линии груди распределяется между участками спинки, полочки и проймы:
Пг = Пшс + Пшп + Ппр.
" formula="0.7"/>
|
||||
<increment name="#Пшп" description="Прибавка к ширине полы

Прибавка по линии груди распределяется между участками спинки, полочки и проймы:
Пг = Пшс + Пшп + Ппр." formula="0.35 "/>
|
||||
<increment name="#Ппр" description="Прибавка к ширине проймы

Прибавка по линии груди распределяется между участками спинки, полочки и проймы:
Пг = Пшс + Пшп + Ппр.
" formula="2.45 "/>
|
||||
<increment name="#Пт" description="Прибавка по линии талли" formula="1"/>
|
||||
<increment name="#Пб" description="Прибавка по линии бедер" formula="1.5"/>
|
||||
<increment name="#Пспр" description="Прибавка на свободу проймы" formula="1.5 "/>
|
||||
<increment name="#Поп" description="Прибавка к обхвату плеча" formula="3"/>
|
||||
<increment name="#Пдтс" description="Прибавка к длине спины до талии" formula="0.5"/>
|
||||
<increment name="#Пшгор" description="Прибавка к ширине горловины" formula="0.5"/>
|
||||
<increment name="#Рплвыт" description="Величина раствора вытачки ИИ1 зависит от осанки фигуры и от структуры ткани. 1,5 - 2,5 см." formula="2"/>
|
||||
<increment name="#И" description="Для типовых фигур расстояние от точки А2 до точки И равно 4 — 4,5 см. Если фигура сутулая, то вытачку располагают ближе к середине плечевого среза. " formula="4"/>
|
||||
<increment name="#Дплвыт" description="Длина вытачки ИИ2 должна быть не менее 6 см и не более 9 см" formula="7"/>
|
||||
<increment name="#кЦг" description="0,5 - 1 см " formula="0.5"/>
|
||||
<increment name="#Срв" description="∑В(сумма вытачек) = (Сг3 + Пг) – (Ст + Пт)" formula="(lowbust_arc_f+#Пг)-(waist_arc_f+#Пт)"/>
|
||||
<increment name="#Пбс" description="Положение боковых срезов. ((Сг3+Пг)-(Сб+Пб))/2" formula="((lowbust_arc_f+#Пг)-(hip_with_abdomen_arc_f+#Пб))/2"/>
|
||||
<increment name="#ОО2" description="Величина отрезка ОО2 зависит от размера руки в области предплечья:
для 44-46 размеров ОО2 = 2,5 см;
для 48-52 размеров ОО2 = 2 см;
для 54-58 размеров ОО2 = 1,5 см;
для 60 размера и более ОО2 = 1 см." formula="2.5"/>
|
||||
<increment name="#Шрук" description="Ширина рукава
Шрук=(Оп+Поп)/2" formula="(arm_upper_circ+#Поп)/2"/>
|
||||
<increment name="#О5О51" description="Биссектриса = 2 - 2,5 см" formula="2"/>
|
||||
<increment name="#О6О61" description="Биссектиса = 1 - 2 см" formula="1"/>
|
||||
<increment name="#лн" description="1 - 2 см" formula="1"/>
|
||||
<increment name="#ЛпЛ1" description="0,5 - 1 см" formula="0.5"/>
|
||||
<increment name="#М1М21" description="Ширина Рукава внизу" formula="13"/>
|
||||
<increment name="#М3М21" description="1,5 - 2" formula="1.5"/>
|
||||
<increment name="#рр1" description="1 - 1,5" formula="1"/>
|
||||
<increment name="#тт1" description="0,5 - 1 см" formula="0.5"/>
|
||||
</increments>
|
||||
<draw name="Выкройка-основа">
|
||||
<calculation>
|
||||
<point type="single" x="-15.9655" y="-56.1909" id="1" name="А" mx="0.132292" my="-1.82518"/>
|
||||
<point type="endLine" typeLine="hair" id="2" name="а1" basePoint="1" mx="0.495729" lineColor="black" angle="0" my="0.264583" length="lowbust_arc_f+#Пг"/>
|
||||
<point type="endLine" typeLine="hair" id="3" name="Г" basePoint="1" mx="0.132292" lineColor="black" angle="270" my="0.264583" length="neck_back_to_highbust_b+#Пспр"/>
|
||||
<point type="alongLine" typeLine="none" id="4" name="а" firstPoint="1" secondPoint="2" mx="0.132292" lineColor="black" my="0.264583" length="armfold_to_armfold_b+#Пшс"/>
|
||||
<point type="alongLine" typeLine="none" id="5" name="а2" firstPoint="2" secondPoint="4" mx="0.967218" lineColor="black" my="0.416388" length="armfold_to_armfold_f+(bust_arc_f-highbust_arc_f)+#Пшп"/>
|
||||
<point type="alongLine" typeLine="hair" id="6" name="Т" firstPoint="1" secondPoint="3" mx="0.214212" lineColor="black" my="0.264583" length="neck_back_to_waist_b+#Пдтс"/>
|
||||
<point type="endLine" typeLine="hair" id="7" name="Б" basePoint="6" mx="0.132292" lineColor="black" angle="270" my="0.264583" length="0.5*neck_back_to_waist_b-2"/>
|
||||
<point type="alongLine" typeLine="hair" id="8" name="Н" firstPoint="1" secondPoint="7" mx="0.132292" lineColor="black" my="0.264583" length="@Ди"/>
|
||||
<point type="endLine" typeLine="hair" id="9" name="Г1" basePoint="3" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="Line_А_а1"/>
|
||||
<point type="endLine" typeLine="hair" id="10" name="Т1" basePoint="6" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="Line_А_а1"/>
|
||||
<point type="endLine" typeLine="hair" id="11" name="Б1" basePoint="7" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="Line_А_а1"/>
|
||||
<point type="endLine" typeLine="hair" id="12" name="Н1" basePoint="8" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="Line_А_а1"/>
|
||||
<line typeLine="hair" id="13" firstPoint="2" secondPoint="12" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="14" name="Г3" firstPoint="3" secondPoint="9" mx="0.132292" lineColor="black" my="0.264583" length="Line_А_а"/>
|
||||
<point type="alongLine" typeLine="none" id="15" name="Г4" firstPoint="9" secondPoint="14" mx="0.132292" lineColor="black" my="0.264583" length="Line_а1_а2"/>
|
||||
<line typeLine="hair" id="16" firstPoint="4" secondPoint="14" lineColor="black"/>
|
||||
<line typeLine="hair" id="17" firstPoint="5" secondPoint="15" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="18" name="А2" firstPoint="1" secondPoint="4" mx="-0.412864" lineColor="black" my="-2.09776" length="neck_arc_f/3+#Пшгор"/>
|
||||
<point type="normal" typeLine="hair" id="19" name="А1" firstPoint="18" secondPoint="1" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="Line_А_А2/3"/>
|
||||
<point type="endLine" typeLine="hair" id="20" name="А0" basePoint="19" mx="0.132292" lineColor="black" angle="180" my="0.264583" length="Line_А_А2"/>
|
||||
<spline point4="18" type="simpleInteractive" angle1="358.627" angle2="254.057" id="21" color="black" length1="3.14107" length2="2.21207" point1="20"/>
|
||||
<arc type="simple" angle1="320" angle2="20" id="22" radius="shoulder_length+#Рплвыт" center="18" color="black"/>
|
||||
<arc type="simple" angle1="45" angle2="75" id="23" radius="shoulder_tip_to_waist_back+#Пдтс" center="6" color="black"/>
|
||||
<point type="pointOfIntersectionArcs" crossPoint="1" firstArc="22" id="24" name="П1" secondArc="23" mx="0.617183" my="-1.38405"/>
|
||||
<line typeLine="hair" id="25" firstPoint="18" secondPoint="24" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="26" name="И" firstPoint="18" secondPoint="24" mx="0.132292" lineColor="black" my="0.264583" length="#И"/>
|
||||
<point type="alongLine" typeLine="none" id="27" name="И1" firstPoint="26" secondPoint="24" mx="0.132292" lineColor="black" my="0.264583" length="#Рплвыт"/>
|
||||
<point type="endLine" typeLine="hair" id="28" name="И2" basePoint="26" mx="0.132292" lineColor="black" angle="270" my="0.264583" length="#Дплвыт"/>
|
||||
<spline point4="27" type="simpleInteractive" angle1="82.8015" angle2="241.265" id="29" color="black" length1="2.40527" length2="2.34471" point1="28"/>
|
||||
<point type="height" typeLine="hair" id="30" name="П2" basePoint="24" p2Line="14" mx="0.132292" lineColor="black" my="0.264583" p1Line="4"/>
|
||||
<point type="alongLine" typeLine="none" id="31" name="П3" firstPoint="14" secondPoint="30" mx="-1.29916" lineColor="black" my="-0.175863" length="Line_Г3_П2/3+2"/>
|
||||
<point type="bisector" typeLine="hair" id="32" thirdPoint="15" name="в" firstPoint="31" secondPoint="14" mx="0.132292" lineColor="black" my="0.264583" length="0.2*Line_Г4_Г3+0.5"/>
|
||||
<point type="alongLine" typeLine="none" id="33" name="Г2" firstPoint="14" secondPoint="15" mx="0.132292" lineColor="black" my="0.264583" length="Line_Г4_Г3/2"/>
|
||||
<spline type="pathInteractive" id="34" color="black">
|
||||
<pathPoint angle1="68.035" pSpline="24" angle2="248.035" length1="0" length2="3.98184"/>
|
||||
<pathPoint angle1="89.056" pSpline="31" angle2="269.056" length1="3.40224" length2="2.63544"/>
|
||||
<pathPoint angle1="132.322" pSpline="32" angle2="312.322" length1="1.66396" length2="1.49368"/>
|
||||
<pathPoint angle1="179.273" pSpline="33" angle2="359.273" length1="1.70993" length2="0"/>
|
||||
</spline>
|
||||
<point type="endLine" typeLine="hair" id="35" name="Т2" basePoint="33" mx="0.132292" lineColor="black" angle="270" my="0.264583" length="Line_Т_Г"/>
|
||||
<point type="endLine" typeLine="hair" id="36" name="Б2" basePoint="35" mx="0.132292" lineColor="black" angle="270" my="0.264583" length="Line_Т_Б"/>
|
||||
<point type="endLine" typeLine="hair" id="37" name="Н2" basePoint="36" mx="0.132292" lineColor="black" angle="270" my="0.264583" length="Line_Н_Б"/>
|
||||
<point type="alongLine" typeLine="none" id="38" name="Г6" firstPoint="9" secondPoint="15" mx="0.208194" lineColor="black" my="-1.86068" length="bustpoint_to_bustpoint+#кЦг"/>
|
||||
<point type="alongLine" typeLine="hair" id="39" name="А3" firstPoint="10" secondPoint="2" mx="1.04089" lineColor="black" my="0.355442" length="@Дтп+#Пдтс"/>
|
||||
<point type="endLine" typeLine="hair" id="40" name="А4" basePoint="39" mx="0.208194" lineColor="black" angle="180" my="-1.70888" length="Line_А_А2"/>
|
||||
<point type="alongLine" typeLine="none" id="41" name="А5" firstPoint="39" secondPoint="2" mx="0.677448" lineColor="black" my="-0.007995" length="Line_А3_А4+1"/>
|
||||
<arc type="simple" angle1="50" angle2="130" id="42" radius="Line_А3_А5" center="41" color="black"/>
|
||||
<arc type="simple" angle1="330" angle2="30" id="43" radius="Line_А3_А5" center="40" color="black"/>
|
||||
<point type="pointOfIntersectionArcs" crossPoint="1" firstArc="42" id="44" name="А6" secondArc="43" mx="0.359999" my="-1.70888"/>
|
||||
<arc type="simple" angle1="180" angle2="270" id="45" radius="Line_А3_А5" center="44" color="black"/>
|
||||
<point type="alongLine" typeLine="none" id="46" name="Т6" firstPoint="10" secondPoint="35" mx="0.132292" lineColor="black" my="0.264583" length="Line_Г1_Г6"/>
|
||||
<line typeLine="hair" id="47" firstPoint="38" secondPoint="46" lineColor="black"/>
|
||||
<arc type="simple" angle1="250" angle2="280" id="48" radius="bustpoint_to_neck_side" center="40" color="black"/>
|
||||
<point type="curveIntersectAxis" typeLine="hair" id="49" name="Г7" curve="48" basePoint="46" mx="0.359999" lineColor="black" angle="270" my="1.25131"/>
|
||||
<arc type="simple" angle1="90" angle2="120" id="50" radius="bustpoint_to_neck_side" center="49" color="black"/>
|
||||
<arc type="simple" angle1="150" angle2="230" id="51" radius="2*(bust_arc_f-highbust_arc_f)+1" center="40" color="black"/>
|
||||
<point type="alongLine" typeLine="none" id="52" name="П4" firstPoint="15" secondPoint="5" mx="0.132292" lineColor="black" my="0.264583" length="Line_Г3_П2-1"/>
|
||||
<point type="alongLine" typeLine="none" id="53" name="П6" firstPoint="15" secondPoint="52" mx="0.132292" lineColor="black" my="0.264583" length="Line_Г4_П4/3"/>
|
||||
<arc type="simple" angle1="75" angle2="150" id="54" radius="Line_П6_П4" center="53" color="black"/>
|
||||
<point type="pointOfIntersectionArcs" crossPoint="1" firstArc="50" id="55" name="А9" secondArc="51" mx="0.81541" my="-2.24019"/>
|
||||
<arc type="simple" angle1="180" angle2="270" id="56" radius="shoulder_length" center="55" color="black"/>
|
||||
<point type="pointOfIntersectionArcs" crossPoint="1" firstArc="54" id="57" name="П5" secondArc="56" mx="1.14629" my="-0.679849"/>
|
||||
<line typeLine="hair" id="58" firstPoint="57" secondPoint="55" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="59" name="П7" firstPoint="55" secondPoint="57" mx="-1.68936" lineColor="black" my="-1.48118" length="Line_А2_И"/>
|
||||
<arc type="simple" angle1="160" angle2="240" id="60" radius="Line_А2_И" center="40" color="black"/>
|
||||
<line typeLine="hair" id="61" firstPoint="49" secondPoint="59" lineColor="black"/>
|
||||
<arc type="simple" angle1="80" angle2="105" id="62" radius="Line_Г7_П7" center="49" color="black"/>
|
||||
<point type="pointOfIntersectionArcs" crossPoint="1" firstArc="62" id="63" name="А8" secondArc="60" mx="-2.04649" my="-1.43003"/>
|
||||
<line typeLine="hair" id="64" firstPoint="63" secondPoint="40" lineColor="black"/>
|
||||
<line typeLine="hair" id="65" firstPoint="49" secondPoint="63" lineColor="black"/>
|
||||
<point type="bisector" typeLine="hair" id="66" thirdPoint="33" name="с" firstPoint="53" secondPoint="15" mx="0.132292" lineColor="black" my="0.264583" length="0.2*Line_Г4_Г3"/>
|
||||
<line typeLine="hair" id="67" firstPoint="57" secondPoint="53" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="68" name="д" firstPoint="53" secondPoint="57" mx="0.132292" lineColor="black" my="0.264583" length="Line_П5_П6/2"/>
|
||||
<point type="normal" typeLine="hair" id="69" name="е" firstPoint="68" secondPoint="53" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="1"/>
|
||||
<spline type="pathInteractive" id="70" color="black">
|
||||
<pathPoint angle1="136.587" pSpline="57" angle2="316.587" length1="0" length2="2.03977"/>
|
||||
<pathPoint angle1="132.153" pSpline="69" angle2="312.153" length1="2.48845" length2="0.635247"/>
|
||||
<pathPoint angle1="92.146" pSpline="53" angle2="272.146" length1="2.23578" length2="1.85808"/>
|
||||
<pathPoint angle1="44.298" pSpline="66" angle2="224.298" length1="1.01831" length2="0.944264"/>
|
||||
<pathPoint angle1="359.888" pSpline="33" angle2="179.888" length1="2.79675" length2="0"/>
|
||||
</spline>
|
||||
<point type="alongLine" typeLine="none" id="71" name="Т3" firstPoint="35" secondPoint="6" mx="0.132292" lineColor="black" my="0.264583" length="1/4*#Срв"/>
|
||||
<point type="alongLine" typeLine="none" id="72" name="Т4" firstPoint="35" secondPoint="46" mx="0.132292" lineColor="black" my="0.264583" length="1/4*#Срв"/>
|
||||
<point type="alongLine" typeLine="none" id="73" name="Б3" firstPoint="36" secondPoint="7" mx="0.697162" lineColor="black" my="0.425975" length="#Пбс"/>
|
||||
<point type="alongLine" typeLine="none" id="74" name="Б4" firstPoint="36" secondPoint="11" mx="-1.23954" lineColor="black" my="0.425975" length="#Пбс"/>
|
||||
<point type="alongLine" typeLine="none" id="75" name="Н3" firstPoint="8" secondPoint="37" mx="0.616467" lineColor="black" my="-2.15629" length="Line_Б3_Б"/>
|
||||
<point type="alongLine" typeLine="none" id="76" name="Н4" firstPoint="12" secondPoint="37" mx="-1.15884" lineColor="black" my="-1.9142" length="Line_Б4_Б1"/>
|
||||
<spline type="pathInteractive" id="77" color="black">
|
||||
<pathPoint angle1="83.309" pSpline="33" angle2="263.309" length1="0" length2="7.84032"/>
|
||||
<pathPoint angle1="94.092" pSpline="71" angle2="274.092" length1="4.8878" length2="4.75295"/>
|
||||
<pathPoint angle1="89.229" pSpline="73" angle2="269.229" length1="6.95582" length2="8.39626"/>
|
||||
<pathPoint angle1="89.806" pSpline="75" angle2="269.806" length1="8.83145" length2="0"/>
|
||||
</spline>
|
||||
<spline type="pathInteractive" id="78" color="black">
|
||||
<pathPoint angle1="100.747" pSpline="33" angle2="280.747" length1="0" length2="7.49044"/>
|
||||
<pathPoint angle1="87.444" pSpline="72" angle2="267.444" length1="3.68596" length2="5.06378"/>
|
||||
<pathPoint angle1="89.912" pSpline="74" angle2="269.912" length1="6.46091" length2="8.39334"/>
|
||||
<pathPoint angle1="90.112" pSpline="76" angle2="270.112" length1="4.64189" length2="0"/>
|
||||
</spline>
|
||||
<point type="alongLine" typeLine="none" id="79" name="Т5" firstPoint="6" secondPoint="35" mx="0.132292" lineColor="black" my="0.264583" length="0.4*Line_А_а"/>
|
||||
<point type="alongLine" typeLine="none" id="80" name="ж" firstPoint="3" secondPoint="14" mx="0.132292" lineColor="black" my="0.264583" length="Line_Т_Т5"/>
|
||||
<point type="alongLine" typeLine="none" id="81" name="з" firstPoint="7" secondPoint="36" mx="0.132292" lineColor="black" my="0.264583" length="Line_Т_Т5"/>
|
||||
<line typeLine="hair" id="82" firstPoint="80" secondPoint="81" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="83" name="Т51" firstPoint="79" secondPoint="6" mx="-1.41327" lineColor="black" my="0.844167" length="1/3*#Срв/2"/>
|
||||
<point type="alongLine" typeLine="none" id="84" name="Т52" firstPoint="79" secondPoint="35" mx="0.132292" lineColor="black" my="0.264583" length="1/3*#Срв/2"/>
|
||||
<point type="alongLine" typeLine="none" id="85" name="ж1" firstPoint="80" secondPoint="79" mx="0.132292" lineColor="black" my="0.264583" length="2.5"/>
|
||||
<point type="alongLine" typeLine="none" id="86" name="з1" firstPoint="81" secondPoint="79" mx="0.132292" lineColor="black" my="0.264583" length="5"/>
|
||||
<line typeLine="hair" id="87" firstPoint="83" secondPoint="85" lineColor="black"/>
|
||||
<line typeLine="hair" id="88" firstPoint="85" secondPoint="84" lineColor="black"/>
|
||||
<line typeLine="hair" id="89" firstPoint="84" secondPoint="86" lineColor="black"/>
|
||||
<line typeLine="hair" id="90" firstPoint="86" secondPoint="83" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="91" name="к" firstPoint="11" secondPoint="36" mx="0.132292" lineColor="black" my="0.264583" length="Line_Т1_Т6"/>
|
||||
<line typeLine="hair" id="92" firstPoint="46" secondPoint="91" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="93" name="Т61" firstPoint="46" secondPoint="35" mx="-2.64333" lineColor="black" my="-1.47606" length="1/6*#Срв/2"/>
|
||||
<point type="alongLine" typeLine="none" id="94" name="Т62" firstPoint="46" secondPoint="10" mx="0.367513" lineColor="black" my="-1.5231" length="1/6*#Срв/2"/>
|
||||
<point type="alongLine" typeLine="none" id="95" name="л" firstPoint="49" secondPoint="46" mx="0.132292" lineColor="black" my="0.264583" length="2.5"/>
|
||||
<point type="alongLine" typeLine="none" id="96" name="к1" firstPoint="91" secondPoint="46" mx="0.132292" lineColor="black" my="0.264583" length="5"/>
|
||||
<line typeLine="hair" id="97" firstPoint="96" secondPoint="93" lineColor="black"/>
|
||||
<line typeLine="hair" id="98" firstPoint="93" secondPoint="95" lineColor="black"/>
|
||||
<line typeLine="hair" id="99" firstPoint="95" secondPoint="94" lineColor="black"/>
|
||||
<line typeLine="hair" id="100" firstPoint="94" secondPoint="96" lineColor="black"/>
|
||||
<line typeLine="hair" id="101" firstPoint="24" secondPoint="57" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="102" name="Q" firstPoint="57" secondPoint="24" mx="0.617183" lineColor="black" my="-0.753688" length="Line_П1_П5/2"/>
|
||||
<point type="height" typeLine="hair" id="103" name="Q1" basePoint="102" p2Line="15" mx="0.132292" lineColor="black" my="0.264583" p1Line="14"/>
|
||||
<point type="alongLine" typeLine="none" id="104" name="Q2" firstPoint="103" secondPoint="102" mx="0.132292" lineColor="black" my="0.264583" length="Line_Q_Q1-#ОО2"/>
|
||||
</calculation>
|
||||
<modeling>
|
||||
<point type="modeling" inUse="true" id="170" idObject="20" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="true" id="172" idObject="18" mx="-0.412864" my="-2.09776"/>
|
||||
<point type="modeling" inUse="true" id="173" idObject="26" mx="-1.90035" my="0.209647"/>
|
||||
<point type="modeling" inUse="true" id="174" idObject="28" mx="0.132292" my="0.264583"/>
|
||||
<spline type="modelingSpline" inUse="true" id="175" idObject="29"/>
|
||||
<point type="modeling" inUse="true" id="176" idObject="27" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="true" id="177" idObject="24" mx="0.617183" my="-1.38405"/>
|
||||
<point type="modeling" inUse="true" id="179" idObject="33" mx="0.132292" my="0.264583"/>
|
||||
</modeling>
|
||||
<details>
|
||||
<detail closed="1" id="189" name="Деталь" forbidFlipping="1" supplement="1" width="0.5" mx="-213.757" my="-97.7267">
|
||||
<data rotation="0" letter="" fontSize="5" visible="true" mx="-5.99359" width="26.4567" my="-1837.69" height="26.4567"/>
|
||||
<patternInfo rotation="0" fontSize="0" visible="true" mx="0" width="0" my="0" height="0"/>
|
||||
<grainline arrows="0" rotation="90" visible="false" mx="0" my="0" length="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="172" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="173" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="174" mx="0" my="0"/>
|
||||
<node type="NodeSpline" reverse="0" nodeType="Contour" idObject="175" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="176" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="177" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="179" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="170" mx="0" my="0"/>
|
||||
</detail>
|
||||
</details>
|
||||
<groups/>
|
||||
</draw>
|
||||
<draw name="Рукав">
|
||||
<calculation>
|
||||
<point type="single" x="58.4357" y="-36.6028" id="105" name="О" mx="0.132292" my="0.264583"/>
|
||||
<point type="endLine" typeLine="hair" id="106" name="О2" basePoint="105" mx="0.132292" lineColor="black" angle="90" my="0.264583" length="Line_Q1_Q2"/>
|
||||
<point type="alongLine" typeLine="hair" id="107" name="М" firstPoint="106" secondPoint="105" mx="0.132292" lineColor="black" my="0.264583" length="@Др"/>
|
||||
<point type="endLine" typeLine="hair" id="108" name="Рп" basePoint="105" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="#Шрук/2"/>
|
||||
<point type="endLine" typeLine="hair" id="109" name="Рл" basePoint="105" mx="0.132292" lineColor="black" angle="180" my="0.264583" length="#Шрук/2"/>
|
||||
<point type="alongLine" typeLine="none" id="110" name="Л" firstPoint="106" secondPoint="105" mx="0.132292" lineColor="black" my="0.264583" length="Line_О2_М/2+3"/>
|
||||
<point type="endLine" typeLine="hair" id="111" name="Лп" basePoint="110" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="Line_О_Рп"/>
|
||||
<point type="endLine" typeLine="hair" id="112" name="Лл" basePoint="110" mx="-1.64062" lineColor="black" angle="180" my="0.0200433" length="Line_Л_Лп"/>
|
||||
<point type="endLine" typeLine="hair" id="113" name="М1" basePoint="107" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="Line_Л_Лп"/>
|
||||
<point type="endLine" typeLine="hair" id="114" name="М2" basePoint="107" mx="-1.57426" lineColor="black" angle="180" my="0.56323" length="Line_Л_Лл"/>
|
||||
<point type="endLine" typeLine="hair" id="115" name="О4" basePoint="106" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="Line_Л_Лл"/>
|
||||
<point type="endLine" typeLine="hair" id="116" name="О3" basePoint="106" mx="0.132292" lineColor="black" angle="180" my="0.264583" length="Line_Л_Лп"/>
|
||||
<line typeLine="hair" id="117" firstPoint="116" secondPoint="114" lineColor="black"/>
|
||||
<line typeLine="hair" id="118" firstPoint="115" secondPoint="113" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="119" name="Р6" firstPoint="108" secondPoint="115" mx="0.132292" lineColor="black" my="0.264583" length="Line_Г4_П6"/>
|
||||
<point type="endLine" typeLine="hair" id="120" name="Р62" basePoint="119" mx="0.0591098" lineColor="black" angle="0" my="-1.63815" length="0.5"/>
|
||||
<point type="endLine" typeLine="hair" id="121" name="Р61" basePoint="119" mx="-1.84362" lineColor="black" angle="180" my="-1.4186" length="0.5"/>
|
||||
<point type="alongLine" typeLine="none" id="122" name="Р3" firstPoint="109" secondPoint="116" mx="0.132292" lineColor="black" my="0.264583" length="Line_Г3_П3"/>
|
||||
<point type="endLine" typeLine="hair" id="123" name="Р32" basePoint="122" mx="0.571383" lineColor="black" angle="0" my="-1.71133" length="0.5"/>
|
||||
<point type="endLine" typeLine="hair" id="124" name="Р31" basePoint="122" mx="-1.77044" lineColor="black" angle="180" my="-1.4186" length="0.5"/>
|
||||
<point type="alongLine" typeLine="none" id="125" name="О5" firstPoint="106" secondPoint="115" mx="-0.0872541" lineColor="black" my="-1.85769" length="Line_О2_О4/2+2"/>
|
||||
<point type="alongLine" typeLine="none" id="126" name="О6" firstPoint="106" secondPoint="116" mx="-0.599527" lineColor="black" my="-2.36997" length="Line_О2_О3/2"/>
|
||||
<line typeLine="hair" id="127" firstPoint="125" secondPoint="120" lineColor="black"/>
|
||||
<line typeLine="hair" id="128" firstPoint="126" secondPoint="124" lineColor="black"/>
|
||||
<point type="bisector" typeLine="hair" id="129" thirdPoint="120" name="О51" firstPoint="106" secondPoint="125" mx="0.132292" lineColor="black" my="0.264583" length="#О5О51"/>
|
||||
<point type="bisector" typeLine="hair" id="130" thirdPoint="124" name="О61" firstPoint="106" secondPoint="126" mx="0.132292" lineColor="black" my="0.264583" length="#О6О61"/>
|
||||
<point type="alongLine" typeLine="none" id="131" name="Г21" firstPoint="108" secondPoint="105" mx="0.132292" lineColor="black" my="0.264583" length="0.5*Line_Г4_Г3+0.5"/>
|
||||
<line typeLine="hair" id="132" firstPoint="131" secondPoint="123" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="133" name="м" firstPoint="131" secondPoint="123" mx="0.132292" lineColor="black" my="0.264583" length="Line_Г21_Р32/2"/>
|
||||
<point type="normal" typeLine="hair" id="134" name="н" firstPoint="133" secondPoint="123" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="#лн"/>
|
||||
<point type="bisector" typeLine="hair" id="135" thirdPoint="119" name="п" firstPoint="131" secondPoint="108" mx="0.132292" lineColor="black" my="0.264583" length="Line_Г4_с"/>
|
||||
<spline type="pathInteractive" id="136" color="black">
|
||||
<pathPoint angle1="122.974" pSpline="123" angle2="302.974" length1="0" length2="2.33892"/>
|
||||
<pathPoint angle1="129.501" pSpline="134" angle2="309.501" length1="2.33892" length2="2.301"/>
|
||||
<pathPoint angle1="169.475" pSpline="131" angle2="349.475" length1="1.62145" length2="1.90657"/>
|
||||
<pathPoint angle1="233.267" pSpline="135" angle2="53.2671" length1="1.59046" length2="1.70834"/>
|
||||
<pathPoint angle1="261.683" pSpline="121" angle2="81.6825" length1="1.53593" length2="0"/>
|
||||
</spline>
|
||||
<point type="alongLine" typeLine="none" id="137" name="Л1" firstPoint="111" secondPoint="110" mx="-1.47771" lineColor="black" my="-1.71133" length="#ЛпЛ1"/>
|
||||
<line typeLine="hair" id="138" firstPoint="108" secondPoint="137" lineColor="black"/>
|
||||
<line typeLine="hair" id="139" firstPoint="137" secondPoint="113" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="140" name="Л2" firstPoint="112" secondPoint="110" mx="0.193427" lineColor="black" my="-1.69173" length="#ЛпЛ1"/>
|
||||
<point type="alongLine" typeLine="none" id="141" name="М21" firstPoint="113" secondPoint="114" mx="0.132292" lineColor="black" my="0.264583" length="#М1М21"/>
|
||||
<point type="normal" typeLine="hair" id="142" name="М3" firstPoint="141" secondPoint="114" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="#М3М21"/>
|
||||
<line typeLine="hair" id="143" firstPoint="109" secondPoint="140" lineColor="black"/>
|
||||
<line typeLine="hair" id="144" firstPoint="140" secondPoint="142" lineColor="black"/>
|
||||
<line typeLine="hair" id="145" firstPoint="142" secondPoint="113" lineColor="black"/>
|
||||
<point type="endLine" typeLine="hair" id="146" name="Р2" basePoint="109" mx="0.132292" lineColor="black" angle="180" my="0.264583" length="#Шрук/2"/>
|
||||
<point type="endLine" typeLine="hair" id="147" name="Р1" basePoint="108" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="#Шрук/2"/>
|
||||
<point type="bisector" typeLine="hair" id="148" thirdPoint="119" name="п1" firstPoint="147" secondPoint="108" mx="0.132292" lineColor="black" my="0.264583" length="Line_Рп_п"/>
|
||||
<line typeLine="hair" id="149" firstPoint="146" secondPoint="124" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="150" name="р" firstPoint="146" secondPoint="124" mx="0.132292" lineColor="black" my="0.264583" length="Line_Р2_Р31/2"/>
|
||||
<point type="normal" typeLine="hair" id="151" name="р1" firstPoint="150" secondPoint="146" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="#рр1"/>
|
||||
<spline type="pathInteractive" id="152" color="black">
|
||||
<pathPoint angle1="206.528" pSpline="146" angle2="26.5279" length1="0" length2="2.46899"/>
|
||||
<pathPoint angle1="234.132" pSpline="151" angle2="54.1318" length1="2.55898" length2="1.53423"/>
|
||||
<pathPoint angle1="234.235" pSpline="124" angle2="54.2353" length1="1.7411" length2="2.28964"/>
|
||||
<pathPoint angle1="215.255" pSpline="130" angle2="35.2552" length1="2.94944" length2="1.5148"/>
|
||||
<pathPoint angle1="178.318" pSpline="106" angle2="358.318" length1="1.05281" length2="1.61255"/>
|
||||
<pathPoint angle1="129.447" pSpline="129" angle2="309.447" length1="1.80132" length2="3.25273"/>
|
||||
<pathPoint angle1="102.638" pSpline="120" angle2="282.638" length1="3.88372" length2="1.72735"/>
|
||||
<pathPoint angle1="123.385" pSpline="148" angle2="303.385" length1="1.81742" length2="1.64235"/>
|
||||
<pathPoint angle1="177.7" pSpline="147" angle2="357.7" length1="2.41941" length2="0"/>
|
||||
</spline>
|
||||
<point type="endLine" typeLine="hair" id="153" name="М22" basePoint="114" mx="0.132292" lineColor="black" angle="180" my="0.264583" length="Line_М3_М1/2"/>
|
||||
<point type="endLine" typeLine="hair" id="154" name="М11" basePoint="113" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="Line_М3_М1/2"/>
|
||||
<line typeLine="hair" id="155" firstPoint="146" secondPoint="153" lineColor="black"/>
|
||||
<line typeLine="hair" id="156" firstPoint="147" secondPoint="154" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="157" name="т" firstPoint="107" secondPoint="153" mx="0.21762" lineColor="black" my="-1.31398" length="(Line_М2_М22+Line_М_М2)/2"/>
|
||||
<point type="normal" typeLine="hair" id="158" name="т1" firstPoint="157" secondPoint="114" mx="0.132292" lineColor="black" angle="0" my="0.264583" length="#тт1"/>
|
||||
<point type="alongLine" typeLine="none" id="159" name="у" firstPoint="154" secondPoint="107" mx="-0.76365" lineColor="black" my="0.221919" length="Line_М_т"/>
|
||||
<point type="normal" typeLine="hair" id="160" name="у1" firstPoint="159" secondPoint="113" mx="-1.19029" lineColor="black" angle="0" my="-1.39931" length="#тт1"/>
|
||||
<spline type="pathInteractive" id="161" color="black">
|
||||
<pathPoint angle1="172.844" pSpline="153" angle2="352.844" length1="0" length2="2.9744"/>
|
||||
<pathPoint angle1="181.154" pSpline="158" angle2="1.15441" length1="2.73645" length2="2.74903"/>
|
||||
<pathPoint angle1="186.156" pSpline="107" angle2="6.15599" length1="2.74903" length2="2.37359"/>
|
||||
<pathPoint angle1="179.234" pSpline="160" angle2="359.234" length1="2.74903" length2="2.29731"/>
|
||||
<pathPoint angle1="171.945" pSpline="154" angle2="351.945" length1="3.34021" length2="0"/>
|
||||
</spline>
|
||||
</calculation>
|
||||
<modeling/>
|
||||
<details/>
|
||||
<groups/>
|
||||
</draw>
|
||||
</pattern>
|
36
src/app/share/collection/bugs/Issue_#609_case2.vit
Normal file
36
src/app/share/collection/bugs/Issue_#609_case2.vit
Normal file
|
@ -0,0 +1,36 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<vit>
|
||||
<!--Measurements created with Valentina (http://www.valentina-project.org/).-->
|
||||
<version>0.3.3</version>
|
||||
<read-only>false</read-only>
|
||||
<notes/>
|
||||
<unit>cm</unit>
|
||||
<pm_system>998</pm_system>
|
||||
<personal>
|
||||
<family-name/>
|
||||
<given-name/>
|
||||
<birth-date>1800-01-01</birth-date>
|
||||
<gender>unknown</gender>
|
||||
<email/>
|
||||
</personal>
|
||||
<body-measurements>
|
||||
<m value="17.5" name="neck_arc_f"/>
|
||||
<m value="42" name="highbust_arc_f"/>
|
||||
<m value="46" name="bust_arc_f"/>
|
||||
<m value="44" name="lowbust_arc_f"/>
|
||||
<m value="36" name="waist_arc_f"/>
|
||||
<m value="48" name="hip_with_abdomen_arc_f"/>
|
||||
<m value="40" name="neck_back_to_waist_b"/>
|
||||
<m value="20" name="neck_back_to_highbust_b"/>
|
||||
<m value="12.5" name="shoulder_length"/>
|
||||
<m value="14" name="armfold_to_armfold_f"/>
|
||||
<m value="17" name="armfold_to_armfold_b"/>
|
||||
<m value="8.5" name="bustpoint_to_bustpoint"/>
|
||||
<m value="26" name="bustpoint_to_neck_side"/>
|
||||
<m value="43" name="shoulder_tip_to_waist_back"/>
|
||||
<m value="27" name="arm_upper_circ"/>
|
||||
<m full_name="Длина изделия" value="80" description="Измеряется от высшей точки плечевого шва до желаемого уровня длины" name="@Ди"/>
|
||||
<m full_name="Длина переда до талии" value="43" description="Измеряется от высшей точки плечевого шва до линии талии через выступающую точку грудных желез, одновременно отмечая ее положение" name="@Дтп"/>
|
||||
<m full_name="Длина рукава" value="55" description="Измеряем от конечной плечевой точки по наружной поверхности руки до уровня желаемой длины рукава
" name="@Др"/>
|
||||
</body-measurements>
|
||||
</vit>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<pattern>
|
||||
<!--Pattern created with Valentina (http://www.valentina-project.org/).-->
|
||||
<version>0.3.4</version>
|
||||
<version>0.3.9</version>
|
||||
<unit>cm</unit>
|
||||
<author>S.L.Spencer</author>
|
||||
<description>Men's Trousers circa 1830-1870</description>
|
||||
|
@ -209,12 +209,13 @@
|
|||
<detail closed="1" id="213" name="Back" forbidFlipping="1" supplement="1" width="2" mx="0" my="0">
|
||||
<data rotation="0" letter="" fontSize="102" visible="false" mx="-20.0743" width="285.613" my="468.066" height="138.624"/>
|
||||
<patternInfo rotation="0" fontSize="24" visible="false" mx="70.2595" width="247.137" my="255.613" height="167.063"/>
|
||||
<grainline arrows="0" rotation="90" visible="false" mx="0" my="0" length="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="198" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="199" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="200" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="201" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="202" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="212" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="198" mx="0" my="0"/>
|
||||
</detail>
|
||||
</details>
|
||||
<groups/>
|
||||
|
|
464
src/app/share/collection/bugs/possible_inf_loop.val
Normal file
464
src/app/share/collection/bugs/possible_inf_loop.val
Normal file
|
@ -0,0 +1,464 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<pattern>
|
||||
<!--Pattern created with Valentina (http://www.valentina-project.org/).-->
|
||||
<version>0.3.9</version>
|
||||
<unit>cm</unit>
|
||||
<author>Timo Virtaneva</author>
|
||||
<description>Female Basic Block</description>
|
||||
<notes>Differen Dart locations available</notes>
|
||||
<patternName>Female Basic Block</patternName>
|
||||
<patternNumber>F-Basic-Bloack-2016</patternNumber>
|
||||
<company>Stinde Design</company>
|
||||
<customer>Customer</customer>
|
||||
<size>Measured</size>
|
||||
<showDate>true</showDate>
|
||||
<showMeasurements>false</showMeasurements>
|
||||
<measurements/>
|
||||
<increments>
|
||||
<increment name="#Primarymeasuremements" description="" formula="0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0"/>
|
||||
<increment name="#BH" description="Body height
Measure the height from the top of the head to the floor

Valentina: height" formula="168"/>
|
||||
<increment name="#CG" description="Chest girth
Measure the fulles part of the bust

Valentina: bust_circ" formula="92"/>
|
||||
<increment name="#WG" description="Waist girth
Measure the narrowest part of the waist

Valentina: waist_circ" formula="74"/>
|
||||
<increment name="#HG" description="Hip Girth
Measure the fullest part of the hip

Valentina: hip_circ" formula="98"/>
|
||||
<increment name="#SL" description="Sleeve lenght
Measure over the bend elbow from shoulder tip to the wristbone

Valentina: arm_shoulder_tip_to_wrist_bent" formula="60"/>
|
||||
<increment name="#Auxiliarymeasurements" description="" formula="0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0"/>
|
||||
<increment name="#SD" description="Skye depth
Measured from the neck 
Calculated
CG < 116 SD=CG/10+11, other wise CG/10+10,5 

Valentina: height_neck_back - height_armpit" formula="#CG/10+(#CG<116?11:10.5 )"/>
|
||||
<increment name="#BWL" description="Back waist lenght
Measured from the neck
Calculated:
BH/4-0...1

Valentina: height_neck_back - height_waist_side" formula="#BH/4-1"/>
|
||||
<increment name="#HD" description="Hip depth
Measured from the neck
Calculated: SD+BWL
Valentina: height_neck_back - height_hip" formula="#SD+#BWL"/>
|
||||
<increment name="#L" description="Length" formula="106"/>
|
||||
<increment name="#NW" description="Nech width
Calculated: CG/20+2" formula="#CG/20+2"/>
|
||||
<increment name="#BL_I" description="Bust lenght I
Measured from the nape of the neck
Valentina: bustpoint_to_bustpoint_halter/2" formula="34"/>
|
||||
<increment name="#BL_II" description="Bust lenght II
Measured BL_I-NW
Calculated
CG < 96 BL_II=CG/4+6
CG < 116 BL_II=CG/4+5
other wise CG/4+4
" formula="#CG/4+6-(#CG>96?1:0)-(#CG>116?1:0)"/>
|
||||
<increment name="#FWL_I" description="Front waist length I
Measured fron the nape of the neck
Valentina: " formula="52"/>
|
||||
<increment name="#FWL_II" description="Front waist lenght II
Measured FWL_I-NW
Calculated
CG < 90: BWL+4
CG < 100: BWL+4+0,5
CG < 110: BWL+4+0,5+(CG-100)/10
CG < 120: BWL+4+0,5+0,5+(CG-100)/10
CG < 130: BWL+4+0,5+0,5+0,5+(CG-100)/10
CG > 130: BWL+4+0,5+0,5+0,5+0,5+(CG-100)/10

" formula="#BWL+4+(#CG > 90?0.5:0)+(#CG > 100?(#CG-100)/10:0)+(#CG >110?0.5:0)+(#CG >120?0.5:0)+(#CG >130?0.5:0)"/>
|
||||
<increment name="#BW" description="Back width
CG/8+5,5" formula="#CG/8+5.5"/>
|
||||
<increment name="#SW" description="Skye width
CG/8-1,5" formula="#CG/8-1.5"/>
|
||||
<increment name="#CW" description="Chest width
CG/4-4" formula="#CG/4-4"/>
|
||||
<increment name="#EaseValues" description="" formula="0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0"/>
|
||||
<increment name="#SD_ease" description="Fitted w/o sleeve 0...0,5
Fitted with sleeve 1...1,5
Loose fitting with sleeve 2...3" formula="1"/>
|
||||
<increment name="#BW_ease" description="Fitted w/o sleeve 0...0,5
Fitted with sleeve 0,5...1
Loose fitting with sleeve 1,5...2" formula="0.5"/>
|
||||
<increment name="#SW_ease" description="Fitted w/o sleeve 0,5...1
Fitted with sleeve 1,5...2
Loose fitting with sleeve 2,5...3,5" formula="1.5"/>
|
||||
<increment name="#CW_ease" description="Fitted w/o sleeve 1...1,5
Fitted with sleeve 1,5
Loose fitting with sleeve 1,5...2" formula="1.5"/>
|
||||
<increment name="#WG_ease" description="2...4" formula="2"/>
|
||||
<increment name="#HG_ease" description="1,5...2" formula="2"/>
|
||||
<increment name="#DrawingParameters" description="" formula="0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0"/>
|
||||
<increment name="#BackCenterInTake" description="" formula="2"/>
|
||||
<increment name="#SeparationOfPanels" description="" formula="8"/>
|
||||
<increment name="#NeckWidthReduction" description="Reduction of the neck width for large sizes
0,5" formula="0"/>
|
||||
<increment name="#NecklineToShoulder" description="" formula="2"/>
|
||||
<increment name="#BackShoulderDrop" description="" formula="1.5"/>
|
||||
<increment name="#BackShoulderLineExtension" description="Larger sizes 0...1
Medium Sizes 1...1,5
Small Sizes 1,5...2" formula="1.5"/>
|
||||
<increment name="#BackDartLocation" description="" formula="#BW/3+1"/>
|
||||
<increment name="#BackDartHight1" description="14...16" formula="14"/>
|
||||
<increment name="#BackDartHight2" description="12...14" formula="12"/>
|
||||
<increment name="#WaistSideIntake" description="1...2" formula="1"/>
|
||||
<increment name="#ShoulderDartLocation" description="3...5" formula="5"/>
|
||||
<increment name="#Fixes" description="" formula="0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0"/>
|
||||
<increment name="#PrintingFix" description="" formula="0"/>
|
||||
<increment name="#Modifications" description="" formula="0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0"/>
|
||||
<increment name="#ShoulderSeamMove" description="" formula="1"/>
|
||||
</increments>
|
||||
<draw name="Basic block women">
|
||||
<calculation>
|
||||
<point type="single" x="0.79" y="1.06" id="1" name="Neckline" mx="0.220841" my="-0.520282"/>
|
||||
<point type="endLine" typeLine="dotLine" id="2" name="Hemline" basePoint="1" mx="0.132292" lineColor="black" my="0.264583" angle="270" length="#L"/>
|
||||
<point type="alongLine" typeLine="none" id="3" name="ChestLine" firstPoint="1" secondPoint="2" mx="0.132292" lineColor="black" my="0.264583" length="#SD+#SD_ease"/>
|
||||
<point type="alongLine" typeLine="none" id="4" name="Waistline" firstPoint="1" secondPoint="2" mx="0.132292" lineColor="black" my="0.264583" length="#BWL"/>
|
||||
<point type="alongLine" typeLine="none" id="5" name="Hipline" firstPoint="1" secondPoint="2" mx="0.132292" lineColor="black" my="0.264583" length="#HD"/>
|
||||
<point type="normal" typeLine="none" id="6" name="A1" firstPoint="4" secondPoint="1" mx="0.132292" lineColor="black" my="0.264583" angle="0" length="#BackCenterInTake"/>
|
||||
<point type="pointOfIntersection" id="7" name="A2" firstPoint="6" secondPoint="5" mx="0.132292" my="0.264583"/>
|
||||
<point type="pointOfIntersection" id="8" name="A3" firstPoint="6" secondPoint="2" mx="-1.48138" my="-1.25944"/>
|
||||
<point type="lineIntersectAxis" typeLine="none" id="9" name="A4" basePoint="3" p2Line="6" mx="-1.64741" lineColor="black" my="0.199725" angle="180" p1Line="1"/>
|
||||
<point type="normal" typeLine="dotLine" id="10" name="A5" firstPoint="9" secondPoint="3" mx="0.311589" lineColor="black" my="0.264583" angle="90" length="#CW+#CW_ease+#SW+#SW_ease+#BW+#BW_ease+#SeparationOfPanels"/>
|
||||
<point type="alongLine" typeLine="none" id="11" name="A6" firstPoint="9" secondPoint="10" mx="0.132292" lineColor="black" my="0.264583" length="#BW+#BW_ease"/>
|
||||
<point type="alongLine" typeLine="none" id="12" name="A7" firstPoint="10" secondPoint="9" mx="0.132292" lineColor="black" my="0.264583" length="#CW+#CW_ease"/>
|
||||
<point type="alongLine" typeLine="none" id="13" name="A8" firstPoint="12" secondPoint="11" mx="-0.584895" lineColor="black" my="-1.16979" length="(#SW+#SW_ease)/3"/>
|
||||
<point type="alongLine" typeLine="none" id="14" name="A9" firstPoint="11" secondPoint="12" mx="-0.699211" lineColor="black" my="-1.22632" length="(#SW+#SW_ease)-Line_A7_A8"/>
|
||||
<point type="alongLine" typeLine="none" id="15" name="A10" firstPoint="10" secondPoint="12" mx="0.132292" lineColor="black" my="0.264583" length="#CG/10+0.5"/>
|
||||
<point type="pointOfIntersection" id="16" name="A11" firstPoint="14" secondPoint="4" mx="0.132292" my="0.264583"/>
|
||||
<point type="pointOfIntersection" id="17" name="A12" firstPoint="14" secondPoint="5" mx="-0.495247" my="0.264583"/>
|
||||
<point type="pointOfIntersection" id="18" name="A13" firstPoint="13" secondPoint="4" mx="0.132292" my="0.264583"/>
|
||||
<point type="pointOfIntersection" id="19" name="A14" firstPoint="13" secondPoint="5" mx="-0.711816" my="0.35685"/>
|
||||
<point type="pointOfIntersection" id="20" name="A15" firstPoint="15" secondPoint="4" mx="-0.563944" my="0.264583"/>
|
||||
<point type="pointOfIntersection" id="21" name="A16" firstPoint="15" secondPoint="5" mx="-0.738003" my="0.525672"/>
|
||||
<point type="pointOfIntersection" id="22" name="A17" firstPoint="10" secondPoint="4" mx="0.401237" my="0.264583"/>
|
||||
<point type="pointOfIntersection" id="23" name="A18" firstPoint="10" secondPoint="5" mx="0.22194" my="0.174935"/>
|
||||
<point type="pointOfIntersection" id="24" name="A19" firstPoint="10" secondPoint="2" mx="0.311589" my="-1.34909"/>
|
||||
<point type="pointOfIntersection" id="25" name="A20" firstPoint="11" secondPoint="1" mx="-1.48409" my="-1.91759"/>
|
||||
<point type="alongLine" typeLine="none" id="26" name="A21" firstPoint="1" secondPoint="25" mx="-1.22732" lineColor="black" my="0.215744" length="#NW-#NeckWidthReduction"/>
|
||||
<point type="normal" typeLine="none" id="27" name="A22" firstPoint="26" secondPoint="1" mx="0.401237" lineColor="black" my="-0.888637" angle="0" length="#NecklineToShoulder"/>
|
||||
<point type="alongLine" typeLine="none" id="28" name="A23" firstPoint="25" secondPoint="11" mx="0.129168" lineColor="black" my="-0.204534" length="#BackShoulderDrop"/>
|
||||
<point type="alongLine" typeLine="none" id="29" name="A24" firstPoint="28" secondPoint="11" mx="0.187988" lineColor="black" my="0.264583" length="CurrentLength/2"/>
|
||||
<point type="alongLine" typeLine="none" id="30" name="A25" firstPoint="29" secondPoint="11" mx="0.132292" lineColor="black" my="0.264583" length="CurrentLength/2"/>
|
||||
<point type="alongLine" typeLine="none" id="31" name="A26" firstPoint="27" secondPoint="28" mx="-3.43223" lineColor="black" my="-0.0695909" length="CurrentLength+#BackShoulderLineExtension"/>
|
||||
<point type="normal" typeLine="none" id="32" name="A27" firstPoint="29" secondPoint="25" mx="-3.2628" lineColor="black" my="-1.25499" angle="0" length="1"/>
|
||||
<point type="normal" typeLine="none" id="33" name="A28" firstPoint="30" secondPoint="25" mx="-3.36841" lineColor="black" my="-1.11897" angle="0" length="1.3"/>
|
||||
<point type="pointOfIntersection" id="34" name="A29" firstPoint="12" secondPoint="30" mx="0.580534" my="-0.542253"/>
|
||||
<point type="normal" typeLine="dashLine" id="35" name="A30" firstPoint="20" secondPoint="4" mx="-0.509264" lineColor="black" my="-1.9207" angle="0" length="#FWL_II"/>
|
||||
<point type="alongLine" typeLine="none" id="36" name="A31" firstPoint="35" secondPoint="20" mx="0.132292" lineColor="black" my="0.264583" length="#BL_II"/>
|
||||
<point type="normal" typeLine="dotLine" id="37" name="A32" firstPoint="12" secondPoint="3" mx="-2.01927" lineColor="black" my="0.0852861" angle="0" length="Line_A23_A6-2"/>
|
||||
<point type="endLine" typeLine="none" id="38" name="A33" basePoint="12" mx="-0.0471048" lineColor="black" my="-1.08089" angle="AngleLine_A7_A32-((#CG/20)/(Line_A7_A32*2*3.14))*360" length="Line_A7_A32"/>
|
||||
<point type="pointOfIntersectionCircles" c2Radius="Line_A15_A30" crossPoint="1" c1Radius="Line_A22_A26-1" c2Center="20" id="39" name="A34" c1Center="38" mx="-1.30208" my="-1.34909"/>
|
||||
<point type="alongLine" typeLine="none" id="41" name="A35" firstPoint="38" secondPoint="34" mx="0.39338" lineColor="black" my="-0.257594" length="CurrentLength/2"/>
|
||||
<point type="normal" typeLine="none" id="42" name="A36" firstPoint="41" secondPoint="38" mx="-1.86153" lineColor="black" my="-1.49696" angle="0" length="1"/>
|
||||
<point type="pointOfIntersection" id="43" name="A37" firstPoint="10" secondPoint="35" mx="0.132292" my="0.264583"/>
|
||||
<point type="alongLine" typeLine="none" id="44" name="A38" firstPoint="43" secondPoint="35" mx="-0.85439" lineColor="black" my="-1.17059" length="#NW-#NeckWidthReduction"/>
|
||||
<point type="alongLine" typeLine="none" id="45" name="A39" firstPoint="43" secondPoint="10" mx="0.311589" lineColor="black" my="0.174935" length="#NW+1.5"/>
|
||||
<point type="alongLine" typeLine="none" id="46" name="A40" firstPoint="39" secondPoint="38" mx="0.22194" lineColor="black" my="-1.16979" length="Line_A38_A30"/>
|
||||
<line typeLine="dashLine" id="47" firstPoint="36" secondPoint="46" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="48" name="A41" firstPoint="36" secondPoint="35" mx="-1.28498" lineColor="black" my="-1.76282" length="Line_A31_A40"/>
|
||||
<point type="pointOfIntersection" id="49" name="A42" firstPoint="12" secondPoint="20" mx="0.132292" my="0.264583"/>
|
||||
<line typeLine="dotLine" id="50" firstPoint="22" secondPoint="49" lineColor="black"/>
|
||||
<line typeLine="dotLine" id="51" firstPoint="49" secondPoint="18" lineColor="black"/>
|
||||
<line typeLine="dotLine" id="52" firstPoint="16" secondPoint="6" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="53" name="A43" firstPoint="20" secondPoint="49" mx="0.39338" lineColor="black" my="-1.12789" length="max(0;((Line_A17_A42-(#WG/4-1))/2))"/>
|
||||
<point type="alongLine" typeLine="none" id="54" name="A44" firstPoint="20" secondPoint="22" mx="-2.13048" lineColor="black" my="-1.21492" length="Line_A15_A43"/>
|
||||
<point type="alongLine" typeLine="none" id="55" name="A45" firstPoint="6" secondPoint="16" mx="0.132292" lineColor="black" my="0.264583" length="#BackDartLocation"/>
|
||||
<point type="pointOfIntersection" id="56" name="A46" firstPoint="11" secondPoint="4" mx="-0.738003" my="0.264583"/>
|
||||
<point type="alongLine" typeLine="none" id="57" name="A47" firstPoint="56" secondPoint="11" mx="-0.650974" lineColor="black" my="-1.56304" length="0.5"/>
|
||||
<point type="normal" typeLine="none" id="58" name="A48" firstPoint="55" secondPoint="4" mx="0.132292" lineColor="black" my="0.264583" angle="0" length="#BackDartHight1"/>
|
||||
<point type="alongLine" typeLine="dashLine" id="59" name="A49" firstPoint="58" secondPoint="55" mx="0.132292" lineColor="black" my="0.264583" length="CurrentLength*2"/>
|
||||
<point type="normal" typeLine="none" id="60" name="A50" firstPoint="57" secondPoint="56" mx="0.132292" lineColor="black" my="0.264583" angle="90" length="#BackDartHight2"/>
|
||||
<point type="alongLine" typeLine="dashLine" id="61" name="A51" firstPoint="60" secondPoint="57" mx="0.132292" lineColor="black" my="0.264583" length="CurrentLength*2"/>
|
||||
<point type="alongLine" typeLine="none" id="62" name="A52" firstPoint="55" secondPoint="6" mx="0.132292" lineColor="black" my="0.264583" length="min(2;(max(0;((Line_A17_A42+Line_A42_A13-2*Line_A15_A43+Line_A11_A1)-(#WG/2+#WG_ease))/2)))"/>
|
||||
<point type="alongLine" typeLine="none" id="63" name="A53" firstPoint="55" secondPoint="16" mx="0.132292" lineColor="black" my="0.264583" length="Line_A45_A52"/>
|
||||
<point type="normal" typeLine="none" id="64" name="A54" firstPoint="57" secondPoint="56" mx="0.48041" lineColor="black" my="-1.21492" angle="0" length="(max(0;((Line_A17_A42+Line_A42_A13-2*Line_A15_A43+Line_A11_A1)-(#WG/2+#WG_ease)-2*Line_A45_A52)/2))"/>
|
||||
<point type="alongLine" typeLine="none" id="65" name="A55" firstPoint="64" secondPoint="57" mx="-2.04345" lineColor="black" my="-1.30195" length="CurrentLength*2"/>
|
||||
<point type="pointOfIntersection" id="66" name="A56" firstPoint="49" secondPoint="5" mx="-0.764192" my="0.533528"/>
|
||||
<line typeLine="dotLine" id="67" firstPoint="23" secondPoint="66" lineColor="black"/>
|
||||
<line typeLine="dotLine" id="68" firstPoint="66" secondPoint="19" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="69" name="A57" firstPoint="21" secondPoint="66" mx="0.398618" lineColor="black" my="-0.856326" length="max(0;((Line_A18_A56-(#WG/4+1))/2))"/>
|
||||
<point type="alongLine" typeLine="none" id="70" name="A58" firstPoint="21" secondPoint="23" mx="-2.13048" lineColor="black" my="-1.04086" length="Line_A16_A57"/>
|
||||
<line typeLine="dotLine" id="71" firstPoint="17" secondPoint="7" lineColor="black"/>
|
||||
<point type="alongLine" typeLine="none" id="72" name="A59" firstPoint="19" secondPoint="17" mx="0.56744" lineColor="black" my="-0.692742" length="max(0;(#HG/2+#HG_ease-(Line_A18_A56+Line_A56_A14+Line_A12_A2-2*Line_A16_A57))/2)"/>
|
||||
<point type="alongLine" typeLine="none" id="73" name="A60" firstPoint="17" secondPoint="19" mx="-1.95642" lineColor="black" my="-0.344624" length="Line_A14_A59"/>
|
||||
<point type="alongLine" typeLine="none" id="74" name="A61" firstPoint="16" secondPoint="14" mx="-1.86939" lineColor="black" my="-0.605712" length="1"/>
|
||||
<point type="alongLine" typeLine="none" id="75" name="A62" firstPoint="18" secondPoint="13" mx="0.306351" lineColor="black" my="-0.605712" length="1"/>
|
||||
<point type="normal" typeLine="none" id="76" name="A63" firstPoint="74" secondPoint="16" mx="0.488266" lineColor="black" my="-0.692741" angle="0" length="#WaistSideIntake"/>
|
||||
<point type="normal" typeLine="none" id="77" name="A64" firstPoint="75" secondPoint="18" mx="-1.95904" lineColor="black" my="-0.595239" angle="180" length="#WaistSideIntake"/>
|
||||
<point type="alongLine" typeLine="none" id="78" name="A65" firstPoint="27" secondPoint="31" mx="-1.03732" lineColor="black" my="0.43167" length="#ShoulderDartLocation"/>
|
||||
<point type="pointOfIntersection" id="79" name="A66" firstPoint="78" secondPoint="32" mx="0.132292" my="0.264583"/>
|
||||
<point type="normal" typeLine="none" id="80" name="A67" firstPoint="32" secondPoint="79" mx="-3.43584" lineColor="black" my="-2.2418" angle="0" length="1.5/2"/>
|
||||
<point type="alongLine" typeLine="none" id="81" name="A68" firstPoint="80" secondPoint="32" mx="-3.34881" lineColor="black" my="0.00349476" length="CurrentLength*2"/>
|
||||
<line typeLine="hair" id="82" firstPoint="24" secondPoint="45" lineColor="black"/>
|
||||
<spline type="simpleInteractive" point4="44" angle1="4.81733" angle2="268.233" id="83" color="black" length1="5.92843" length2="4.77142" point1="45"/>
|
||||
<line typeLine="hair" id="84" firstPoint="44" secondPoint="48" lineColor="black"/>
|
||||
<line typeLine="hair" id="85" firstPoint="46" secondPoint="38" lineColor="black"/>
|
||||
<spline type="pathInteractive" id="86" color="black">
|
||||
<pathPoint angle1="54.2593" pSpline="38" angle2="234.259" length1="0" length2="2.56313"/>
|
||||
<pathPoint angle1="68.4973" pSpline="42" angle2="248.497" length1="1.53956" length2="3.16154"/>
|
||||
<pathPoint angle1="88.6841" pSpline="34" angle2="268.684" length1="1.4791" length2="1.36407"/>
|
||||
<pathPoint angle1="185.711" pSpline="13" angle2="5.71084" length1="2.51067" length2="0.403221"/>
|
||||
</spline>
|
||||
<spline type="pathInteractive" id="87" color="black">
|
||||
<pathPoint angle1="176.928" pSpline="14" angle2="356.928" length1="0" length2="3.09737"/>
|
||||
<pathPoint angle1="253.51" pSpline="33" angle2="73.5103" length1="1.50216" length2="1.17981"/>
|
||||
<pathPoint angle1="268.374" pSpline="81" angle2="88.374" length1="1.65047" length2="0.789833"/>
|
||||
</spline>
|
||||
<spline type="simpleInteractive" point4="31" angle1="90.2047" angle2="280.151" id="88" color="black" length1="2.61499" length2="2.77418" point1="80"/>
|
||||
<line typeLine="hair" id="89" firstPoint="31" secondPoint="27" lineColor="black"/>
|
||||
<spline type="simpleInteractive" point4="1" angle1="283.343" angle2="179.604" id="90" color="black" length1="1.35069" length2="3.55012" point1="27"/>
|
||||
<line typeLine="hair" id="91" firstPoint="1" secondPoint="6" lineColor="black"/>
|
||||
<line typeLine="hair" id="92" firstPoint="6" secondPoint="7" lineColor="black"/>
|
||||
<line typeLine="hair" id="93" firstPoint="7" secondPoint="8" lineColor="black"/>
|
||||
<point type="pointOfIntersection" id="94" name="A69" firstPoint="72" secondPoint="2" mx="-2.01927" my="-1.25944"/>
|
||||
<point type="pointOfIntersection" id="95" name="A70" firstPoint="73" secondPoint="2" mx="0.311589" my="-1.25944"/>
|
||||
<point type="pointOfIntersection" id="96" name="A71" firstPoint="59" secondPoint="2" mx="0.401237" my="-1.25944"/>
|
||||
<point type="pointOfIntersection" id="97" name="A72" firstPoint="61" secondPoint="2" mx="0.311589" my="-1.16979"/>
|
||||
<point type="pointOfIntersection" id="98" name="A73" firstPoint="70" secondPoint="2" mx="-1.75033" my="-1.25944"/>
|
||||
<point type="pointOfIntersection" id="99" name="A74" firstPoint="69" secondPoint="2" mx="0.311589" my="-1.08015"/>
|
||||
<point type="normal" typeLine="none" id="100" name="A75" firstPoint="61" secondPoint="57" mx="-1.84587" lineColor="black" my="-0.471478" angle="0" length="#PrintingFix"/>
|
||||
<point type="normal" typeLine="none" id="101" name="A76" firstPoint="59" secondPoint="55" mx="-1.89188" lineColor="black" my="-0.471478" angle="0" length="#PrintingFix"/>
|
||||
<point type="normal" typeLine="none" id="102" name="A77" firstPoint="96" secondPoint="59" mx="-1.83997" lineColor="black" my="-1.08014" angle="0" length="#PrintingFix"/>
|
||||
<point type="normal" typeLine="none" id="103" name="A78" firstPoint="97" secondPoint="61" mx="-1.83997" lineColor="black" my="-1.08014" angle="0" length="#PrintingFix"/>
|
||||
<line typeLine="hair" id="104" firstPoint="99" secondPoint="69" lineColor="black"/>
|
||||
<line typeLine="hair" id="105" firstPoint="69" secondPoint="53" lineColor="black"/>
|
||||
<line typeLine="hair" id="106" firstPoint="53" secondPoint="36" lineColor="black"/>
|
||||
<line typeLine="hair" id="107" firstPoint="36" secondPoint="54" lineColor="black"/>
|
||||
<line typeLine="hair" id="108" firstPoint="54" secondPoint="70" lineColor="black"/>
|
||||
<line typeLine="hair" id="109" firstPoint="70" secondPoint="98" lineColor="black"/>
|
||||
<line typeLine="hair" id="110" firstPoint="96" secondPoint="59" lineColor="black"/>
|
||||
<line typeLine="hair" id="111" firstPoint="59" secondPoint="62" lineColor="black"/>
|
||||
<line typeLine="hair" id="112" firstPoint="62" secondPoint="58" lineColor="black"/>
|
||||
<line typeLine="hair" id="113" firstPoint="58" secondPoint="63" lineColor="black"/>
|
||||
<line typeLine="hair" id="114" firstPoint="63" secondPoint="101" lineColor="black"/>
|
||||
<line typeLine="hair" id="115" firstPoint="101" secondPoint="102" lineColor="black"/>
|
||||
<line typeLine="hair" id="116" firstPoint="97" secondPoint="61" lineColor="black"/>
|
||||
<line typeLine="hair" id="117" firstPoint="61" secondPoint="64" lineColor="black"/>
|
||||
<line typeLine="hair" id="118" firstPoint="64" secondPoint="60" lineColor="black"/>
|
||||
<line typeLine="hair" id="119" firstPoint="60" secondPoint="65" lineColor="black"/>
|
||||
<line typeLine="hair" id="120" firstPoint="65" secondPoint="100" lineColor="black"/>
|
||||
<line typeLine="hair" id="121" firstPoint="100" secondPoint="103" lineColor="black"/>
|
||||
<line typeLine="hair" id="122" firstPoint="13" secondPoint="77" lineColor="black"/>
|
||||
<line typeLine="hair" id="123" firstPoint="14" secondPoint="76" lineColor="black"/>
|
||||
<spline type="pathInteractive" id="124" color="black">
|
||||
<pathPoint angle1="90.9771" pSpline="77" angle2="270.977" length1="0" length2="9.68242"/>
|
||||
<pathPoint angle1="90.8098" pSpline="72" angle2="270.81" length1="6.69919" length2="4.97643"/>
|
||||
<pathPoint angle1="91.8167" pSpline="94" angle2="271.817" length1="3.83704" length2="0.722454"/>
|
||||
</spline>
|
||||
<spline type="pathInteractive" id="125" color="black">
|
||||
<pathPoint angle1="91.7529" pSpline="76" angle2="271.753" length1="0" length2="6.72577"/>
|
||||
<pathPoint angle1="90.1909" pSpline="73" angle2="270.191" length1="8.20711" length2="3.78595"/>
|
||||
<pathPoint angle1="90.9461" pSpline="95" angle2="270.946" length1="9.66358" length2="0.825579"/>
|
||||
</spline>
|
||||
<line typeLine="hair" id="126" firstPoint="8" secondPoint="96" lineColor="black"/>
|
||||
<line typeLine="hair" id="127" firstPoint="102" secondPoint="97" lineColor="black"/>
|
||||
<line typeLine="hair" id="128" firstPoint="103" secondPoint="95" lineColor="black"/>
|
||||
<line typeLine="hair" id="129" firstPoint="94" secondPoint="99" lineColor="black"/>
|
||||
<line typeLine="hair" id="130" firstPoint="98" secondPoint="24" lineColor="black"/>
|
||||
<line typeLine="dashLine" id="240" firstPoint="81" secondPoint="79" lineColor="black"/>
|
||||
<line typeLine="dashLine" id="241" firstPoint="80" secondPoint="79" lineColor="black"/>
|
||||
<point type="normal" typeLine="hair" id="243" name="A79" firstPoint="27" secondPoint="31" mx="-1.27241" lineColor="black" my="-2.20066" angle="180" length="#ShoulderSeamMove"/>
|
||||
<point type="normal" typeLine="hair" id="244" name="A80" firstPoint="31" secondPoint="27" mx="-3.33547" lineColor="black" my="-1.41214" angle="0" length="#ShoulderSeamMove"/>
|
||||
<line typeLine="hair" id="245" firstPoint="244" secondPoint="243" lineColor="black"/>
|
||||
<point type="cutSpline" id="246" name="A81" spline="83" mx="-2.02047" my="-0.632401" length="Spl_A39_A38-#ShoulderSeamMove"/>
|
||||
<point type="lineIntersectAxis" typeLine="hair" id="247" name="A82" basePoint="246" p2Line="35" mx="-2.71797" lineColor="black" my="-0.00170317" angle="AngleLine_A38_A41" p1Line="36"/>
|
||||
<point type="alongLine" typeLine="none" id="248" name="A83" firstPoint="36" secondPoint="46" mx="-2.19987" lineColor="black" my="-0.0942106" length="Line_A31_A82"/>
|
||||
<point type="curveIntersectAxis" typeLine="hair" id="249" name="A84" curve="86" basePoint="248" mx="0.132292" lineColor="black" my="0.264583" angle="AngleLine_A40_A33"/>
|
||||
<point type="lineIntersectAxis" typeLine="dashLine" id="253" name="A85" basePoint="36" p2Line="13" mx="0.132292" lineColor="black" my="0.264583" angle="0" p1Line="77"/>
|
||||
<operation type="rotation" suffix="a1" id="254" center="36" angle="AngleLine_A15_A30-AngleLine_A31_A40">
|
||||
<source>
|
||||
<item idObject="248"/>
|
||||
<item idObject="46"/>
|
||||
<item idObject="38"/>
|
||||
<item idObject="249"/>
|
||||
<item idObject="42"/>
|
||||
<item idObject="34"/>
|
||||
<item idObject="13"/>
|
||||
<item idObject="253"/>
|
||||
</source>
|
||||
<destination>
|
||||
<item idObject="255" mx="-0.716276" my="0.970934"/>
|
||||
<item idObject="256" mx="0.716471" my="-0.903504"/>
|
||||
<item idObject="257" mx="0.333304" my="-0.928726"/>
|
||||
<item idObject="258" mx="0.398578" my="-0.30603"/>
|
||||
<item idObject="259" mx="-3.80161" my="-0.964388"/>
|
||||
<item idObject="260" mx="-3.75613" my="-0.504212"/>
|
||||
<item idObject="261" mx="0.290045" my="-1.62628"/>
|
||||
<item idObject="262" mx="0.436619" my="-1.33313"/>
|
||||
</destination>
|
||||
</operation>
|
||||
<line typeLine="hair" id="263" firstPoint="256" secondPoint="257" lineColor="black"/>
|
||||
<line typeLine="hair" id="264" firstPoint="255" secondPoint="258" lineColor="black"/>
|
||||
<spline type="pathInteractive" id="265" color="black">
|
||||
<pathPoint angle1="237.018" pSpline="257" angle2="57.0183" length1="0" length2="0.0817868"/>
|
||||
<pathPoint angle1="75.0444" pSpline="258" angle2="255.044" length1="0" length2="1.7174"/>
|
||||
<pathPoint angle1="84.6657" pSpline="259" angle2="264.666" length1="2.01974" length2="3.15983"/>
|
||||
<pathPoint angle1="108.883" pSpline="260" angle2="288.883" length1="1.7209" length2="2.80344"/>
|
||||
<pathPoint angle1="190.657" pSpline="261" angle2="10.657" length1="2.41743" length2="39.4222"/>
|
||||
</spline>
|
||||
<line typeLine="hair" id="266" firstPoint="261" secondPoint="262" lineColor="black"/>
|
||||
<line typeLine="dashLine" id="267" firstPoint="262" secondPoint="36" lineColor="black"/>
|
||||
<point type="lineIntersectAxis" typeLine="dashLine" id="269" name="A86" basePoint="79" p2Line="243" mx="-3.04236" lineColor="black" my="-2.40881" angle="90" p1Line="244"/>
|
||||
<operation type="rotation" suffix="a2" id="271" center="79" angle="AngleLine_A68_A66-AngleLine_A67_A66+360">
|
||||
<source>
|
||||
<item idObject="80"/>
|
||||
<item idObject="244"/>
|
||||
<item idObject="269"/>
|
||||
</source>
|
||||
<destination>
|
||||
<item idObject="272" mx="-5.32949" my="-1.85193"/>
|
||||
<item idObject="273" mx="-5.28482" my="-1.24505"/>
|
||||
<item idObject="274" mx="-5.38158" my="-1.57337"/>
|
||||
</destination>
|
||||
</operation>
|
||||
<line typeLine="hair" id="275" firstPoint="273" secondPoint="274" lineColor="black"/>
|
||||
<line typeLine="dashLine" id="276" firstPoint="274" secondPoint="79" lineColor="black"/>
|
||||
<line typeLine="hair" id="277" firstPoint="269" secondPoint="243" lineColor="black"/>
|
||||
<spline type="simpleInteractive" point4="273" angle1="93.5988" angle2="298.116" id="278" color="black" length1="4.93464" length2="2.21638" point1="272"/>
|
||||
</calculation>
|
||||
<modeling>
|
||||
<point type="modeling" inUse="true" id="209" idObject="103" mx="-1.83997" my="-1.08014"/>
|
||||
<point type="modeling" inUse="true" id="210" idObject="95" mx="0.311589" my="-1.25944"/>
|
||||
<spline type="modelingPath" inUse="true" id="211" idObject="125"/>
|
||||
<point type="modeling" inUse="true" id="212" idObject="76" mx="0.488266" my="-0.692741"/>
|
||||
<point type="modeling" inUse="true" id="213" idObject="14" mx="-0.699211" my="-1.22632"/>
|
||||
<spline type="modelingPath" inUse="true" id="214" idObject="87"/>
|
||||
<point type="modeling" inUse="true" id="215" idObject="81" mx="-1.95642" my="0.00349476"/>
|
||||
<point type="modeling" inUse="true" id="216" idObject="79" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="true" id="217" idObject="80" mx="-2.04345" my="-1.12789"/>
|
||||
<spline type="modelingSpline" inUse="true" id="218" idObject="88"/>
|
||||
<point type="modeling" inUse="true" id="219" idObject="31" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="true" id="220" idObject="27" mx="0.401237" my="-0.72155"/>
|
||||
<spline type="modelingSpline" inUse="true" id="221" idObject="90"/>
|
||||
<point type="modeling" inUse="true" id="222" idObject="1" mx="0.220841" my="-0.520282"/>
|
||||
<point type="modeling" inUse="true" id="223" idObject="6" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="true" id="224" idObject="7" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="true" id="225" idObject="8" mx="-1.48138" my="-1.25944"/>
|
||||
<point type="modeling" inUse="true" id="226" idObject="96" mx="0.401237" my="-1.25944"/>
|
||||
<point type="modeling" inUse="true" id="227" idObject="59" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="true" id="228" idObject="62" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="true" id="229" idObject="58" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="true" id="230" idObject="63" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="true" id="231" idObject="101" mx="-1.89188" my="-0.471478"/>
|
||||
<point type="modeling" inUse="true" id="232" idObject="102" mx="-1.83997" my="-1.08014"/>
|
||||
<point type="modeling" inUse="true" id="233" idObject="97" mx="0.311589" my="-1.16979"/>
|
||||
<point type="modeling" inUse="true" id="234" idObject="61" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="true" id="235" idObject="64" mx="0.48041" my="-1.21492"/>
|
||||
<point type="modeling" inUse="true" id="236" idObject="60" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="true" id="237" idObject="65" mx="-2.04345" my="-1.30195"/>
|
||||
<point type="modeling" inUse="true" id="238" idObject="100" mx="-1.84587" my="-0.471478"/>
|
||||
<point type="modeling" inUse="false" id="280" idObject="24" mx="0.311589" my="-1.34909"/>
|
||||
<point type="modeling" inUse="false" id="281" idObject="45" mx="0.311589" my="0.174935"/>
|
||||
<spline type="modelingSpline" inUse="false" id="282" idObject="83"/>
|
||||
<point type="modeling" inUse="false" id="283" idObject="246" mx="-2.02047" my="-0.632401"/>
|
||||
<point type="modeling" inUse="false" id="284" idObject="255" mx="-0.716276" my="0.970934"/>
|
||||
<point type="modeling" inUse="false" id="285" idObject="258" mx="0.398578" my="-0.30603"/>
|
||||
<spline type="modelingPath" inUse="false" id="286" idObject="265"/>
|
||||
<point type="modeling" inUse="false" id="287" idObject="261" mx="0.290045" my="-1.62628"/>
|
||||
<point type="modeling" inUse="false" id="288" idObject="262" mx="0.436619" my="-1.33313"/>
|
||||
<point type="modeling" inUse="false" id="289" idObject="15" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="false" id="290" idObject="253" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="false" id="291" idObject="77" mx="-1.95904" my="-0.595239"/>
|
||||
<spline type="modelingPath" inUse="false" id="292" idObject="124"/>
|
||||
<point type="modeling" inUse="false" id="293" idObject="94" mx="-2.01927" my="-1.25944"/>
|
||||
<point type="modeling" inUse="false" id="294" idObject="99" mx="0.311589" my="-1.08015"/>
|
||||
<point type="modeling" inUse="false" id="295" idObject="69" mx="0.398618" my="-0.856326"/>
|
||||
<point type="modeling" inUse="false" id="296" idObject="53" mx="0.39338" my="-1.12789"/>
|
||||
<point type="modeling" inUse="false" id="297" idObject="36" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="false" id="298" idObject="54" mx="-2.13048" my="-1.21492"/>
|
||||
<point type="modeling" inUse="false" id="299" idObject="70" mx="-2.13048" my="-1.04086"/>
|
||||
<point type="modeling" inUse="false" id="300" idObject="98" mx="-1.75033" my="-1.25944"/>
|
||||
<point type="modeling" inUse="false" id="321" idObject="24" mx="0.311589" my="-1.34909"/>
|
||||
<point type="modeling" inUse="false" id="322" idObject="45" mx="0.311589" my="0.174935"/>
|
||||
<spline type="modelingSpline" inUse="false" id="323" idObject="83"/>
|
||||
<point type="modeling" inUse="false" id="324" idObject="246" mx="-2.02047" my="-0.632401"/>
|
||||
<point type="modeling" inUse="false" id="325" idObject="247" mx="-2.71797" my="-0.00170317"/>
|
||||
<point type="modeling" inUse="false" id="326" idObject="36" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="false" id="327" idObject="248" mx="-2.19987" my="-0.0942106"/>
|
||||
<point type="modeling" inUse="false" id="328" idObject="249" mx="0.132292" my="0.264583"/>
|
||||
<spline type="modelingPath" inUse="false" id="329" idObject="86"/>
|
||||
<point type="modeling" inUse="false" id="330" idObject="13" mx="-0.584895" my="-1.16979"/>
|
||||
<point type="modeling" inUse="false" id="331" idObject="77" mx="-1.95904" my="-0.595239"/>
|
||||
<spline type="modelingPath" inUse="false" id="332" idObject="124"/>
|
||||
<point type="modeling" inUse="false" id="333" idObject="94" mx="-2.01927" my="-1.25944"/>
|
||||
<point type="modeling" inUse="false" id="334" idObject="99" mx="0.311589" my="-1.08015"/>
|
||||
<point type="modeling" inUse="false" id="335" idObject="69" mx="0.398618" my="-0.856326"/>
|
||||
<point type="modeling" inUse="false" id="336" idObject="53" mx="0.39338" my="-1.12789"/>
|
||||
<point type="modeling" inUse="false" id="337" idObject="36" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="false" id="338" idObject="54" mx="-2.13048" my="-1.21492"/>
|
||||
<point type="modeling" inUse="false" id="339" idObject="70" mx="-2.13048" my="-1.04086"/>
|
||||
<point type="modeling" inUse="false" id="340" idObject="98" mx="-1.75033" my="-1.25944"/>
|
||||
<point type="modeling" inUse="false" id="342" idObject="103" mx="-1.83997" my="-1.08014"/>
|
||||
<point type="modeling" inUse="false" id="343" idObject="95" mx="0.311589" my="-1.25944"/>
|
||||
<spline type="modelingPath" inUse="false" id="344" idObject="125"/>
|
||||
<point type="modeling" inUse="false" id="345" idObject="76" mx="0.488266" my="-0.692741"/>
|
||||
<spline type="modelingPath" inUse="false" id="346" idObject="87"/>
|
||||
<point type="modeling" inUse="false" id="347" idObject="81" mx="-3.34881" my="0.00349476"/>
|
||||
<point type="modeling" inUse="false" id="348" idObject="272" mx="-5.32949" my="-1.85193"/>
|
||||
<spline type="modelingSpline" inUse="false" id="349" idObject="278"/>
|
||||
<point type="modeling" inUse="false" id="350" idObject="273" mx="-5.28482" my="-1.24505"/>
|
||||
<point type="modeling" inUse="false" id="351" idObject="274" mx="-5.38158" my="-1.57337"/>
|
||||
<point type="modeling" inUse="false" id="352" idObject="79" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="false" id="353" idObject="269" mx="-3.04236" my="-2.40881"/>
|
||||
<point type="modeling" inUse="false" id="354" idObject="243" mx="-1.27241" my="-2.20066"/>
|
||||
<spline type="modelingSpline" inUse="false" id="355" idObject="90"/>
|
||||
<point type="modeling" inUse="false" id="356" idObject="1" mx="0.220841" my="-0.520282"/>
|
||||
<point type="modeling" inUse="false" id="357" idObject="6" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="false" id="358" idObject="8" mx="-1.48138" my="-1.25944"/>
|
||||
<point type="modeling" inUse="false" id="359" idObject="96" mx="0.401237" my="-1.25944"/>
|
||||
<point type="modeling" inUse="false" id="360" idObject="59" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="false" id="361" idObject="62" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="false" id="362" idObject="58" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="false" id="363" idObject="63" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="false" id="364" idObject="101" mx="-1.89188" my="-0.471478"/>
|
||||
<point type="modeling" inUse="false" id="365" idObject="102" mx="-1.83997" my="-1.08014"/>
|
||||
<point type="modeling" inUse="false" id="366" idObject="97" mx="0.311589" my="-1.16979"/>
|
||||
<point type="modeling" inUse="false" id="367" idObject="61" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="false" id="368" idObject="64" mx="0.48041" my="-1.21492"/>
|
||||
<point type="modeling" inUse="false" id="369" idObject="60" mx="0.132292" my="0.264583"/>
|
||||
<point type="modeling" inUse="false" id="370" idObject="65" mx="-2.04345" my="-1.30195"/>
|
||||
<point type="modeling" inUse="false" id="371" idObject="100" mx="-1.84587" my="-0.471478"/>
|
||||
</modeling>
|
||||
<details>
|
||||
<detail closed="1" id="239" name="BackPanel1" supplement="1" mx="3.69534" width="1" my="1.0159">
|
||||
<data rotation="0" letter="B1" fontSize="41" visible="true" mx="-560.184" width="120" my="681.681" height="60">
|
||||
<mcp cutNumber="2" userDef="Fabric" material="0" placement="0"/>
|
||||
</data>
|
||||
<patternInfo rotation="0" fontSize="20" visible="true" mx="-588.357" width="207.371" my="896.24" height="163.257"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="209" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="210" mx="0" my="0"/>
|
||||
<node type="NodeSplinePath" reverse="1" nodeType="Contour" idObject="211" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="212" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="213" mx="0" my="0"/>
|
||||
<node type="NodeSplinePath" reverse="0" nodeType="Contour" idObject="214" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="215" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="216" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="217" mx="0" my="0"/>
|
||||
<node type="NodeSpline" reverse="0" nodeType="Contour" idObject="218" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="219" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="220" mx="0" my="0"/>
|
||||
<node type="NodeSpline" reverse="0" nodeType="Contour" idObject="221" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="222" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="223" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="224" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="225" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="226" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="227" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="228" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="229" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="230" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="231" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="232" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="233" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="234" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="235" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="236" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="237" mx="0" my="0"/>
|
||||
<node type="NodePoint" nodeType="Contour" idObject="238" mx="0" my="0"/>
|
||||
</detail>
|
||||
</details>
|
||||
<groups>
|
||||
<group id="252" name="FrontDart1" visible="true">
|
||||
<item tool="13" object="13"/>
|
||||
<item tool="34" object="34"/>
|
||||
<item tool="38" object="38"/>
|
||||
<item tool="41" object="41"/>
|
||||
<item tool="42" object="42"/>
|
||||
<item tool="46" object="46"/>
|
||||
<item tool="47" object="47"/>
|
||||
<item tool="85" object="85"/>
|
||||
<item tool="86" object="86"/>
|
||||
<item tool="248" object="248"/>
|
||||
<item tool="249" object="249"/>
|
||||
</group>
|
||||
<group id="268" name="FrontDart2" visible="false">
|
||||
<item tool="254" object="255"/>
|
||||
<item tool="254" object="256"/>
|
||||
<item tool="254" object="257"/>
|
||||
<item tool="254" object="258"/>
|
||||
<item tool="254" object="259"/>
|
||||
<item tool="254" object="260"/>
|
||||
<item tool="254" object="261"/>
|
||||
<item tool="254" object="262"/>
|
||||
<item tool="263" object="263"/>
|
||||
<item tool="264" object="264"/>
|
||||
<item tool="265" object="265"/>
|
||||
<item tool="266" object="266"/>
|
||||
<item tool="267" object="267"/>
|
||||
</group>
|
||||
<group id="270" name="BackDart1" visible="true">
|
||||
<item tool="25" object="25"/>
|
||||
<item tool="28" object="28"/>
|
||||
<item tool="31" object="31"/>
|
||||
<item tool="32" object="32"/>
|
||||
<item tool="78" object="78"/>
|
||||
<item tool="80" object="80"/>
|
||||
<item tool="88" object="88"/>
|
||||
<item tool="89" object="89"/>
|
||||
<item tool="241" object="241"/>
|
||||
<item tool="244" object="244"/>
|
||||
<item tool="245" object="245"/>
|
||||
</group>
|
||||
<group id="279" name="BackDart2" visible="false">
|
||||
<item tool="271" object="272"/>
|
||||
<item tool="271" object="273"/>
|
||||
<item tool="271" object="274"/>
|
||||
<item tool="275" object="275"/>
|
||||
<item tool="276" object="276"/>
|
||||
<item tool="277" object="277"/>
|
||||
<item tool="278" object="278"/>
|
||||
</group>
|
||||
</groups>
|
||||
</draw>
|
||||
</pattern>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,379 +0,0 @@
|
|||
/************************************************************************
|
||||
**
|
||||
** @file dialogpatternxmledit.h
|
||||
** @author Patrick Proy <patrick(at)proy.org>
|
||||
** @date 14 5, 2014
|
||||
**
|
||||
** @brief Include file for the XML editor dialog
|
||||
** @copyright
|
||||
** This source code is part of the Valentine project, a pattern making
|
||||
** program, whose allow create and modeling patterns of clothing.
|
||||
** Copyright (C) 2013-2015 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 DIALOGPATTERNXMLEDIT_H
|
||||
#define DIALOGPATTERNXMLEDIT_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QStandardItemModel>
|
||||
#include "../xml/vpattern.h"
|
||||
|
||||
//********************************************************************************************
|
||||
/**
|
||||
* @brief The vXMLTreeElement class : node/attribute of xml pattern. Used by vXMLTreeView
|
||||
*
|
||||
*/
|
||||
|
||||
#define BACKGROUND_COLOR_ATTRIBUTE QBrush(Qt::GlobalColor::cyan)
|
||||
#define BACKGROUND_COLOR_INACTIVE_NODE QBrush(Qt::GlobalColor::gray)
|
||||
class VXMLTreeElement : public QStandardItem
|
||||
{
|
||||
|
||||
public:
|
||||
/**
|
||||
* @brief vXMLTreeElement
|
||||
* @param name : display name
|
||||
* @param nodetype : node type (node, attribute, root)
|
||||
* @param source : the source dom node
|
||||
*/
|
||||
VXMLTreeElement (QString name, short int nodetype, QDomNode source, bool editor);
|
||||
|
||||
VXMLTreeElement (QString name, int nodetype);
|
||||
|
||||
~VXMLTreeElement ();
|
||||
static const short int TypeNode;
|
||||
static const short int TypeAttr;
|
||||
static const short int TypeRoot;
|
||||
/**
|
||||
* @brief setNodeValue : set value of node (content or attribute)
|
||||
* @param value : the value
|
||||
*/
|
||||
void SetTreeNodeValue(QString value);
|
||||
/**
|
||||
* @brief displayText : text to display
|
||||
* @return text to display
|
||||
*/
|
||||
QString DisplayText();
|
||||
/**
|
||||
* @brief getDocNode
|
||||
* @return current document node
|
||||
*/
|
||||
QDomNode GetDocNode();
|
||||
/**
|
||||
* @brief SetDocNode set tree element DomNode
|
||||
*/
|
||||
inline void SetDocNode(QDomNode node)
|
||||
{
|
||||
this->DocNode=node;
|
||||
}
|
||||
inline void SetAddedNode(bool state) {this->addedNode=state;}
|
||||
inline bool GetAddedNode() {return this->addedNode;}
|
||||
|
||||
QString GettreeNodeName();
|
||||
QString GettreeNodeValue();
|
||||
/**
|
||||
* @brief GettreeNodeValueSet check if value has been set
|
||||
* @return true if value is set
|
||||
*/
|
||||
bool GettreeNodeValueSet();
|
||||
void SetTreeNodeName(QString value);
|
||||
/**
|
||||
* @brief getelementType
|
||||
* @return elementType value
|
||||
*/
|
||||
short int GetelementType();
|
||||
bool IsSelectable();
|
||||
void SetSetlectable(bool value);
|
||||
|
||||
inline void SetFatherElement(VXMLTreeElement* parent)
|
||||
{
|
||||
this->parentnode=parent;
|
||||
}
|
||||
inline VXMLTreeElement* GetFatherElement()
|
||||
{
|
||||
return this->parentnode;
|
||||
}
|
||||
|
||||
private:
|
||||
/**
|
||||
* @brief DocNode : link to current document node
|
||||
*/
|
||||
QDomNode DocNode;
|
||||
|
||||
/**
|
||||
* @brief parentnode parent node of this element. If null then the DocNode must be valid
|
||||
*/
|
||||
VXMLTreeElement* parentnode;
|
||||
|
||||
/**
|
||||
* @brief addedNode : true if node is added by editor (implies empty DocNode)
|
||||
*/
|
||||
bool addedNode;
|
||||
/**
|
||||
* @brief type : element type (node, attribute, text value of node)
|
||||
*/
|
||||
short int elementType;
|
||||
/**
|
||||
* @brief nodeValue : Attribute or node value
|
||||
*/
|
||||
QString treeNodeValue;
|
||||
/**
|
||||
* @brief treeNodeValueSet : true if value has been set
|
||||
*/
|
||||
bool treeNodeValueSet;
|
||||
/**
|
||||
* @brief nodeValue : Attribute or node value
|
||||
*/
|
||||
QString treeNodeName;
|
||||
/**
|
||||
* @brief selectable : can item be selected to be changed (ex : false if father deleted).
|
||||
*/
|
||||
bool selectable;
|
||||
Q_DISABLE_COPY(VXMLTreeElement)
|
||||
};
|
||||
|
||||
inline bool VXMLTreeElement::IsSelectable()
|
||||
{
|
||||
return this->selectable;
|
||||
}
|
||||
|
||||
inline void VXMLTreeElement::SetSetlectable(bool value)
|
||||
{
|
||||
this->selectable=value;
|
||||
}
|
||||
|
||||
inline short int VXMLTreeElement::GetelementType()
|
||||
{
|
||||
return this->elementType;
|
||||
}
|
||||
|
||||
inline QDomNode VXMLTreeElement::GetDocNode()
|
||||
{
|
||||
return this->DocNode;
|
||||
}
|
||||
|
||||
inline QString VXMLTreeElement::GettreeNodeName()
|
||||
{
|
||||
return this->treeNodeName;
|
||||
}
|
||||
|
||||
inline bool VXMLTreeElement::GettreeNodeValueSet()
|
||||
{
|
||||
return this->treeNodeValueSet;
|
||||
}
|
||||
|
||||
//********************************************************************************************
|
||||
/**
|
||||
* @brief The vXMLTreeView class : container to display/edit xml pattern
|
||||
*/
|
||||
class VXMLTreeView : public QStandardItemModel
|
||||
{
|
||||
public:
|
||||
explicit VXMLTreeView (QObject *parent = 0);
|
||||
void appendchain(VXMLTreeElement* elmt);
|
||||
|
||||
/**
|
||||
* @brief The TreeElement struct : chained list of vXMLTreeElement
|
||||
*/
|
||||
typedef struct TreeElementchain
|
||||
{
|
||||
VXMLTreeElement* elmt;
|
||||
TreeElementchain* next;
|
||||
} TreeElementchain;
|
||||
|
||||
TreeElementchain * getCurrent();
|
||||
void SetCurrent(TreeElementchain * value);
|
||||
TreeElementchain * GetLast();
|
||||
TreeElementchain * GetItems();
|
||||
/**
|
||||
* @brief clearTree : clear tree elements and listed items.
|
||||
*/
|
||||
void ClearTree();
|
||||
~VXMLTreeView ();
|
||||
private:
|
||||
Q_DISABLE_COPY(VXMLTreeView)
|
||||
|
||||
/**
|
||||
* @brief items : root of chained list of vXMLTreeElement
|
||||
*/
|
||||
TreeElementchain * items;
|
||||
/**
|
||||
* @brief current : used to parse in iteration.
|
||||
*/
|
||||
TreeElementchain * current;
|
||||
/**
|
||||
* @brief last : used to parse in iteration.
|
||||
*/
|
||||
TreeElementchain * last;
|
||||
};
|
||||
|
||||
inline VXMLTreeView::TreeElementchain * VXMLTreeView::getCurrent()
|
||||
{
|
||||
return this->current;
|
||||
}
|
||||
inline void VXMLTreeView::SetCurrent(VXMLTreeView::TreeElementchain * value)
|
||||
{
|
||||
this->current=value;
|
||||
}
|
||||
inline VXMLTreeView::TreeElementchain * VXMLTreeView::GetLast()
|
||||
{
|
||||
return this->last;
|
||||
}
|
||||
inline VXMLTreeView::TreeElementchain * VXMLTreeView::GetItems()
|
||||
{
|
||||
return this->items;
|
||||
}
|
||||
|
||||
//********************************************************************************************
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
class DialogPatternXmlEdit;
|
||||
}
|
||||
/**
|
||||
* @brief The DialogPatternXmlEdit class : ui dialog for XML editing of pattern
|
||||
*/
|
||||
class DialogPatternXmlEdit : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DialogPatternXmlEdit(QWidget *parent = 0, VPattern *xmldoc = 0);
|
||||
~DialogPatternXmlEdit();
|
||||
|
||||
/**
|
||||
* @brief clear_edit_data : clear input boxes and disables buttons.
|
||||
*/
|
||||
void ClearEditData();
|
||||
|
||||
void NameTextEdited(QString newtext);
|
||||
void ValueTextEdited(QString newtext);
|
||||
void ButtonSetClicked();
|
||||
void ButtonCancelClicked();
|
||||
void ButtonDeleteAttributeClicked();
|
||||
void ButtonAddSonClicked();
|
||||
void ButtonAddAttributeClicked();
|
||||
void ButtonApplyChangesClicked();
|
||||
void ButtonUndoLastChange();
|
||||
void ButtonDeleteNode();
|
||||
|
||||
// Stack of changes definition
|
||||
typedef struct ChangesStackElement
|
||||
{
|
||||
short int type;
|
||||
VXMLTreeElement *element;
|
||||
QString *newText;
|
||||
QString *oldText;
|
||||
bool changedText;
|
||||
QString *newValue;
|
||||
QString *oldValue;
|
||||
bool changedValue;
|
||||
ChangesStackElement* next;
|
||||
} ChangesStackElement;
|
||||
|
||||
// Change stack functions
|
||||
ChangesStackElement* CreateStackElement(short int typechange);
|
||||
void RemoveChangeStackElement(ChangesStackElement* elmt);
|
||||
void ClearStack();
|
||||
bool treeChange;
|
||||
VXMLTreeElement* currentNodeEdited;
|
||||
short int currentNodeEditedStatus;
|
||||
ChangesStackElement* currentNodeEditedStack;
|
||||
/**
|
||||
* @brief UndoChange : undo change in change stack element
|
||||
* @param current : change to undo
|
||||
* @return true if undo has been done, false on error
|
||||
*/
|
||||
bool UndoChange(ChangesStackElement* current);
|
||||
/**
|
||||
* @brief DeleteNodeAndSons : delete node and all it's attribute and sons below
|
||||
* @param currentNode : node to delete
|
||||
* @param onlydeactivate : if true, dont delete just deactivate sons and attributes
|
||||
* @return false if changes couldn't be done
|
||||
*/
|
||||
bool DeleteNodeAndSons(VXMLTreeElement *currentNode, bool onlydeactivate);
|
||||
|
||||
/**
|
||||
* @brief ApplyAttributeChange change or add attribute for node
|
||||
* @param domElement : node containing attribute
|
||||
* @return true on success
|
||||
*/
|
||||
bool ApplyAttributeChange(QDomNode domElement, QString name, QString value);
|
||||
/**
|
||||
* @brief ApplyNodeChange Change name or text content of node
|
||||
* @param domElement node
|
||||
* @param value text content of node
|
||||
* @return true on success
|
||||
*/
|
||||
bool ApplyNodeChange(QDomNode domElement, QString name, QString value);
|
||||
/**
|
||||
* @brief ApplyNodeAdd add node as child of domElement and set DocNode of treeElement
|
||||
* @param treeElement the XMLTreeElement of added node
|
||||
* @return true on success
|
||||
*/
|
||||
bool ApplyNodeAdd(QDomNode domElement, VXMLTreeElement* treeElement, QString name, QString value);
|
||||
/**
|
||||
* @brief ApplyAttributeDelete delete attribute for node
|
||||
* @param name attribute name
|
||||
* @return true on success
|
||||
*/
|
||||
bool ApplyAttributeDelete(QDomNode domElement, QString name);
|
||||
/**
|
||||
* @brief ApplyNodeDelete delete node domElement
|
||||
* @return true on success
|
||||
*/
|
||||
bool ApplyNodeDelete(QDomNode domElement);
|
||||
/**
|
||||
* @brief CheckChanges Check if changes made are OK
|
||||
* @param message error message returned if false
|
||||
* @param testRoot root of DOM to test
|
||||
* @return true if validated, false otherwise
|
||||
*/
|
||||
bool CheckChanges(QString &message, QDomNode testRoot);
|
||||
private slots:
|
||||
void BaseSelectionChanged(int value);
|
||||
void ElementClicked ( const QModelIndex & index );
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogPatternXmlEdit)
|
||||
Ui::DialogPatternXmlEdit *ui;
|
||||
|
||||
VPattern *doc;
|
||||
|
||||
QDomElement root;
|
||||
QStandardItem *rootNode;
|
||||
//typedef struct rootbases { vXMLTreeElement * root; QString name; } rootbases;
|
||||
VXMLTreeElement ** rootBases;
|
||||
qint16 rootBasesNum;
|
||||
|
||||
void ReadNodes(QDomNode dNode, VXMLTreeElement* root, VXMLTreeView *xmlmodel, bool refresh);
|
||||
VXMLTreeView* xmlmodel;
|
||||
|
||||
|
||||
// Stack of changes
|
||||
static const short int ChangeTypeDelete;
|
||||
static const short int ChangeTypeAdd;
|
||||
static const short int ChangeTypeModify;
|
||||
|
||||
// Stack of changes
|
||||
|
||||
ChangesStackElement* changeStackRoot;
|
||||
ChangesStackElement* changeStackLast;
|
||||
};
|
||||
|
||||
#endif // DIALOGPATTERNXMLEDIT_H
|
|
@ -1,373 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>DialogPatternXmlEdit</class>
|
||||
<widget class="QDialog" name="DialogPatternXmlEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>664</width>
|
||||
<height>459</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>1</horstretch>
|
||||
<verstretch>1</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="sizeIncrement">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="contextMenuPolicy">
|
||||
<enum>Qt::DefaultContextMenu</enum>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>XML Editor</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
|
||||
<normaloff>:/icon/64x64/icon64x64.png</normaloff>:/icon/64x64/icon64x64.png</iconset>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="sizeGripEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout" stretch="1,0">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetMaximumSize</enum>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="3,1">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetDefaultConstraint</enum>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QTreeView" name="treeView_main">
|
||||
<property name="tabKeyNavigation">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="headerHidden">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="headerVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout" columnstretch="0" columnminimumwidth="0">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetMinimumSize</enum>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="label_Value">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Value:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0">
|
||||
<widget class="QLineEdit" name="lineEdit_Value">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QLineEdit" name="lineEdit_Name">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_Name">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Name:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Preferred</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetDefaultConstraint</enum>
|
||||
</property>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="label_type_value">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><No selection></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_type_label">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Type:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="pushButton_Add_attribute">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Add attribute</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="pushButton_Add_son">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Add son</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="11" column="0">
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetNoConstraint</enum>
|
||||
</property>
|
||||
<property name="fieldGrowthPolicy">
|
||||
<enum>QFormLayout::ExpandingFieldsGrow</enum>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="pushButton_Remove_attribute">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Remove attribute</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="pushButton_Remove_Node">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Remove node</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="pushButton_Set_Values">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Set</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="pushButton_Cancel_Values">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<spacer name="verticalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QPushButton" name="pushButton_Apply_Changes">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Apply changes</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QPushButton" name="pushButton_Undo_Last_Change">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Undo last</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QCheckBox" name="checkBox_Apply_Changes">
|
||||
<property name="text">
|
||||
<string>Immediately apply</string>
|
||||
</property>
|
||||
<property name="tristate">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_Base_Selection">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Base selection</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QComboBox" name="comboBox_Base_Selection"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="sizeIncrement">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>5</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="../../../libs/vmisc/share/resources/icon.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>DialogPatternXmlEdit</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
|
@ -35,6 +35,5 @@
|
|||
#include "dialogpatternproperties.h"
|
||||
#include "dialognewpattern.h"
|
||||
#include "dialogaboutapp.h"
|
||||
#include "dialogpatternxmledit.h"
|
||||
|
||||
#endif // DIALOGS_H
|
||||
|
|
|
@ -10,7 +10,6 @@ HEADERS += \
|
|||
$$PWD/dialogpatternproperties.h \
|
||||
$$PWD/dialognewpattern.h \
|
||||
$$PWD/dialogaboutapp.h \
|
||||
$$PWD/dialogpatternxmledit.h \
|
||||
$$PWD/configpages/configurationpage.h \
|
||||
$$PWD/configpages/patternpage.h \
|
||||
$$PWD/configpages/communitypage.h \
|
||||
|
@ -28,7 +27,6 @@ SOURCES += \
|
|||
$$PWD/dialogpatternproperties.cpp \
|
||||
$$PWD/dialognewpattern.cpp \
|
||||
$$PWD/dialogaboutapp.cpp \
|
||||
$$PWD/dialogpatternxmledit.cpp \
|
||||
$$PWD/configpages/configurationpage.cpp \
|
||||
$$PWD/configpages/patternpage.cpp \
|
||||
$$PWD/configpages/communitypage.cpp \
|
||||
|
@ -45,7 +43,6 @@ FORMS += \
|
|||
$$PWD/dialogpatternproperties.ui \
|
||||
$$PWD/dialognewpattern.ui \
|
||||
$$PWD/dialogaboutapp.ui \
|
||||
$$PWD/dialogpatternxmledit.ui \
|
||||
$$PWD/dialoglayoutsettings.ui \
|
||||
$$PWD/dialoglayoutprogress.ui \
|
||||
$$PWD/dialogsavelayout.ui \
|
||||
|
|
|
@ -2556,7 +2556,6 @@ void MainWindow::Clear()
|
|||
ui->actionZoomOriginal->setEnabled(false);
|
||||
ui->actionHistory->setEnabled(false);
|
||||
ui->actionTable->setEnabled(false);
|
||||
ui->actionEdit_pattern_code->setEnabled(false);
|
||||
ui->actionLast_tool->setEnabled(false);
|
||||
ui->actionShowCurveDetails->setEnabled(false);
|
||||
ui->actionLoadIndividual->setEnabled(false);
|
||||
|
@ -2792,7 +2791,6 @@ void MainWindow::SetEnableWidgets(bool enable)
|
|||
ui->actionSave->setEnabled(enable && not patternReadOnly);
|
||||
ui->actionSaveAs->setEnabled(enable);
|
||||
ui->actionPattern_properties->setEnabled(enable && designStage);
|
||||
ui->actionEdit_pattern_code->setEnabled(enable && designStage);
|
||||
ui->actionZoomIn->setEnabled(enable);
|
||||
ui->actionZoomOut->setEnabled(enable);
|
||||
ui->actionArrowTool->setEnabled(enable && designStage);
|
||||
|
@ -3740,13 +3738,6 @@ void MainWindow::CreateActions()
|
|||
});
|
||||
|
||||
ui->actionPattern_properties->setEnabled(false);
|
||||
connect(ui->actionEdit_pattern_code, &QAction::triggered, RECEIVER(this)[this]()
|
||||
{
|
||||
DialogPatternXmlEdit *pattern = new DialogPatternXmlEdit (this, doc);
|
||||
pattern->setAttribute(Qt::WA_DeleteOnClose, true);
|
||||
pattern->show();
|
||||
});
|
||||
|
||||
connect(ui->actionClosePattern, &QAction::triggered, RECEIVER(this)[this]()
|
||||
{
|
||||
if (MaybeSave())
|
||||
|
@ -3779,7 +3770,6 @@ void MainWindow::CreateActions()
|
|||
connect(ui->actionSaveAsTiledPDF, &QAction::triggered, this, &MainWindow::SaveAsTiledPDF);
|
||||
connect(ui->actionPrint, &QAction::triggered, this, &MainWindow::PrintOrigin);
|
||||
connect(ui->actionPrintTiled, &QAction::triggered, this, &MainWindow::PrintTiled);
|
||||
ui->actionEdit_pattern_code->setEnabled(false);
|
||||
|
||||
//Actions for recent files loaded by a main window application.
|
||||
for (int i = 0; i < MaxRecentFiles; ++i)
|
||||
|
|
|
@ -1611,7 +1611,6 @@
|
|||
<addaction name="actionLast_tool"/>
|
||||
<addaction name="actionShowCurveDetails"/>
|
||||
<addaction name="actionPattern_properties"/>
|
||||
<addaction name="actionEdit_pattern_code"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuMeasurements">
|
||||
<property name="title">
|
||||
|
@ -2238,17 +2237,6 @@
|
|||
<enum>QAction::NoRole</enum>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionEdit_pattern_code">
|
||||
<property name="text">
|
||||
<string>Edit pattern XML code</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="menuRole">
|
||||
<enum>QAction::NoRole</enum>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionZoomOriginal">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
|
|
|
@ -138,6 +138,7 @@ static inline bool QmuFuzzyComparePossibleNulls(double p1, double p2)
|
|||
}
|
||||
}
|
||||
|
||||
int ReadVal(const QString &formula, qreal &val, const QLocale &locale, const QChar &decimal, const QChar &thousand);
|
||||
QMUPARSERSHARED_EXPORT int ReadVal(const QString &formula, qreal &val, const QLocale &locale, const QChar &decimal,
|
||||
const QChar &thousand);
|
||||
|
||||
#endif // QMUDEF_H
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include <QLine>
|
||||
#include <QLineF>
|
||||
#include <QMessageLogger>
|
||||
#include <QPainterPath>
|
||||
#include <QPoint>
|
||||
#include <QPointF>
|
||||
#include <QString>
|
||||
|
@ -291,6 +292,131 @@ QVector<QPointF> VAbstractDetail::RemoveDublicates(const QVector<QPointF> &point
|
|||
return p;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
bool VAbstractDetail::CheckIntersection(const QVector<QPointF> &points, int i, int iNext, int j, int jNext,
|
||||
const QPointF &crossPoint)
|
||||
{
|
||||
QVector<QPointF> sub1 = SubPath(points, iNext, j);
|
||||
sub1.append(crossPoint);
|
||||
sub1 = CheckLoops(CorrectEquidistantPoints(sub1, false));
|
||||
const qreal sub1Sum = SumTrapezoids(sub1);
|
||||
|
||||
QVector<QPointF> sub2 = SubPath(points, jNext, i);
|
||||
sub2.append(crossPoint);
|
||||
sub2 = CheckLoops(CorrectEquidistantPoints(sub2, false));
|
||||
const qreal sub2Sum = SumTrapezoids(sub2);
|
||||
|
||||
if (sub1Sum < 0 && sub2Sum < 0)
|
||||
{
|
||||
if (Crossing(sub1, sub2))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (not Crossing(sub1, sub2))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
bool VAbstractDetail::ParallelCrossPoint(const QLineF &line1, const QLineF &line2, QPointF &point)
|
||||
{
|
||||
const bool l1p1el2p1 = (line1.p1() == line2.p1());
|
||||
const bool l1p2el2p2 = (line1.p2() == line2.p2());
|
||||
const bool l1p1el2p2 = (line1.p1() == line2.p2());
|
||||
const bool l1p2el2p1 = (line1.p2() == line2.p1());
|
||||
|
||||
if (l1p2el2p2 || l1p2el2p1)
|
||||
{
|
||||
point = line1.p2();
|
||||
return true;
|
||||
}
|
||||
else if (l1p1el2p1 || l1p1el2p2)
|
||||
{
|
||||
point = line1.p1();
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
point = QPointF();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
bool VAbstractDetail::Crossing(const QVector<QPointF> &sub1, const QVector<QPointF> &sub2)
|
||||
{
|
||||
if (sub1.isEmpty() || sub2.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
const QRectF sub1Rect = QPolygonF(sub1).boundingRect();
|
||||
const QRectF sub2Rect = QPolygonF(sub2).boundingRect();
|
||||
if (not sub1Rect.intersects(sub2Rect))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
QPainterPath sub1Path;
|
||||
sub1Path.setFillRule(Qt::WindingFill);
|
||||
sub1Path.moveTo(sub1.at(0));
|
||||
for (qint32 i = 1; i < sub1.count(); ++i)
|
||||
{
|
||||
sub1Path.lineTo(sub1.at(i));
|
||||
}
|
||||
sub1Path.lineTo(sub1.at(0));
|
||||
|
||||
QPainterPath sub2Path;
|
||||
sub2Path.setFillRule(Qt::WindingFill);
|
||||
sub2Path.moveTo(sub2.at(0));
|
||||
for (qint32 i = 1; i < sub2.count(); ++i)
|
||||
{
|
||||
sub2Path.lineTo(sub2.at(i));
|
||||
}
|
||||
sub2Path.lineTo(sub2.at(0));
|
||||
|
||||
if (not sub1Path.intersects(sub2Path))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
QVector<QPointF> VAbstractDetail::SubPath(const QVector<QPointF> &path, int startIndex, int endIndex)
|
||||
{
|
||||
if (path.isEmpty()
|
||||
|| startIndex < 0 || startIndex >= path.size()
|
||||
|| endIndex < 0 || endIndex >= path.size()
|
||||
|| startIndex == endIndex)
|
||||
{
|
||||
return path;
|
||||
}
|
||||
|
||||
QVector<QPointF> subPath;
|
||||
int i = startIndex - 1;
|
||||
do
|
||||
{
|
||||
++i;
|
||||
if (i >= path.size())
|
||||
{
|
||||
i = 0;
|
||||
}
|
||||
subPath.append(path.at(i));
|
||||
} while (i != endIndex);
|
||||
|
||||
return subPath;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
/**
|
||||
* @brief CorrectEquidistantPoints clear equivalent points and remove point on line from equdistant.
|
||||
|
@ -363,7 +489,6 @@ QVector<QPointF> VAbstractDetail::CheckLoops(const QVector<QPointF> &points)
|
|||
/*If we got less than 4 points no need seek loops.*/
|
||||
if (count < 4)
|
||||
{
|
||||
qDebug()<<"Less then 4 points. Doesn't need check for loops.";
|
||||
return points;
|
||||
}
|
||||
|
||||
|
@ -391,7 +516,6 @@ QVector<QPointF> VAbstractDetail::CheckLoops(const QVector<QPointF> &points)
|
|||
// That's why we parse from the end
|
||||
for (j = count-1; j >= i+2; --j)
|
||||
{
|
||||
|
||||
j == count-1 ? jNext = 0 : jNext = j+1;
|
||||
QLineF line2(points.at(j), points.at(jNext));
|
||||
|
||||
|
@ -413,11 +537,7 @@ QVector<QPointF> VAbstractDetail::CheckLoops(const QVector<QPointF> &points)
|
|||
// Method IsPointOnLineviaPDP will check it.
|
||||
if (VGObject::IsPointOnLineviaPDP(points.at(j), points.at(i), points.at(i+1))
|
||||
// Lines are not neighbors
|
||||
&& uniqueVertices.size() == 4
|
||||
&& line1.p2() != line2.p2()
|
||||
&& line1.p1() != line2.p1()
|
||||
&& line1.p2() != line2.p1()
|
||||
&& line1.p1() != line2.p2())
|
||||
&& uniqueVertices.size() == 4)
|
||||
{
|
||||
// Left to catch case where segments are on the same line, but do not have real intersections.
|
||||
QLineF tmpLine1 = line1;
|
||||
|
@ -435,57 +555,42 @@ QVector<QPointF> VAbstractDetail::CheckLoops(const QVector<QPointF> &points)
|
|||
|
||||
if (tmpIntrs1 == QLineF::BoundedIntersection || tmpIntrs2 == QLineF::BoundedIntersection)
|
||||
{ // Now we really sure that lines are on the same line and have real intersections.
|
||||
QPointF cPoint;
|
||||
const bool caseFlag = ParallelCrossPoint(line1, line2, cPoint);
|
||||
if (not caseFlag || CheckIntersection(points, i, i+1, j, jNext, cPoint))
|
||||
{
|
||||
status = ParallelIntersection;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (intersect == QLineF::BoundedIntersection)
|
||||
{
|
||||
if (uniqueVertices.size() == 4
|
||||
&& line1.p1() != crosPoint
|
||||
if (uniqueVertices.size() == 4)
|
||||
{ // Break, but not if lines are neighbors
|
||||
if ((line1.p1() != crosPoint
|
||||
&& line1.p2() != crosPoint
|
||||
&& line2.p1() != crosPoint
|
||||
&& line2.p2() != crosPoint)
|
||||
{ // Break, but not if lines are neighbors
|
||||
&& line2.p2() != crosPoint) || CheckIntersection(points, i, i+1, j, jNext, crosPoint))
|
||||
{
|
||||
status = BoundedIntersection;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
status = NoIntersection;
|
||||
}
|
||||
|
||||
switch (status)
|
||||
{
|
||||
case ParallelIntersection:
|
||||
{
|
||||
/*We have found a loop.*/
|
||||
// Very tricky case
|
||||
// See the file "collection/bugs/Issue_#603.val"
|
||||
const QLineF line1(points.at(i+1), points.at(j));
|
||||
const QLineF line2(points.at(i), points.at(jNext));
|
||||
|
||||
if (line1.length() <= line2.length())
|
||||
{
|
||||
// In this case we did not check a loop edges and can just skip them
|
||||
ekvPoints.append(points.at(i));
|
||||
ekvPoints.append(points.at(jNext));
|
||||
|
||||
i = j; // Skip a loo
|
||||
}
|
||||
else
|
||||
{
|
||||
// In this case a loop edges probably was also chacked and added to the list
|
||||
ekvPoints.clear();// Previous data is wrong and belong to loop.
|
||||
ekvPoints.append(points.at(j));
|
||||
ekvPoints.append(points.at(i+1));
|
||||
|
||||
count = j+1;// All beyond this belong to loop.
|
||||
}
|
||||
jNext > j ? i = jNext : i = j; // Skip a loop
|
||||
break;
|
||||
}
|
||||
case BoundedIntersection:
|
||||
/*We have found a loop.*/
|
||||
ekvPoints.append(points.at(i));
|
||||
ekvPoints.append(crosPoint);
|
||||
i = j;
|
||||
|
@ -572,16 +677,11 @@ QVector<QPointF> VAbstractDetail::EkvPoint(const QLineF &line1, const QLineF &li
|
|||
}
|
||||
}
|
||||
else
|
||||
{// Dart. Ignore if going outside of equdistant
|
||||
const QLineF bigEdge = ParallelLine(QLineF(line1.p1(), line2.p1()), width );
|
||||
QPointF px;
|
||||
const QLineF::IntersectType type = bigEdge.intersect(line, &px);
|
||||
if (type != QLineF::BoundedIntersection)
|
||||
{
|
||||
points.append(CrosPoint);
|
||||
{// Dart. Create a loop.
|
||||
points.append(bigLine1.p2());
|
||||
points.append(bigLine2.p1());
|
||||
return points;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case (QLineF::NoIntersection):
|
||||
|
@ -614,7 +714,8 @@ QPointF VAbstractDetail::UnclosedEkvPoint(const QLineF &line, const QLineF &help
|
|||
return QPointF();
|
||||
}
|
||||
|
||||
if (not (line.p2() == helpLine.p2() || line.p1() == helpLine.p1()))
|
||||
const bool firstPoint = line.p1() == helpLine.p1();
|
||||
if (not (line.p2() == helpLine.p2() || firstPoint))
|
||||
{
|
||||
qDebug()<<"Two points of two lines must be equal.";
|
||||
return QPointF();
|
||||
|
@ -634,9 +735,10 @@ QPointF VAbstractDetail::UnclosedEkvPoint(const QLineF &line, const QLineF &help
|
|||
// User can create very wrong path that will create crospoint far from main path.
|
||||
// Such an annomaly we try to catch and fix.
|
||||
// If don't do this the program will crash.
|
||||
QLineF test( line.p2(), CrosPoint );
|
||||
QLineF test;
|
||||
firstPoint ? test = QLineF(line.p1(), CrosPoint) : test = QLineF(line.p2(), CrosPoint);
|
||||
const qreal length = test.length();
|
||||
if (length > width*50) // Why 50? Try to avoid cutting correct cases.
|
||||
if (length > width*2.4)
|
||||
{
|
||||
test.setLength(width);
|
||||
return test.p2();
|
||||
|
@ -649,7 +751,14 @@ QPointF VAbstractDetail::UnclosedEkvPoint(const QLineF &line, const QLineF &help
|
|||
}
|
||||
case (QLineF::NoIntersection):
|
||||
/*If we have correct lines this means lines lie on a line.*/
|
||||
if (firstPoint)
|
||||
{
|
||||
return bigLine.p1();
|
||||
}
|
||||
else
|
||||
{
|
||||
return bigLine.p2();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -81,6 +81,11 @@ protected:
|
|||
private:
|
||||
QSharedDataPointer<VAbstractDetailData> d;
|
||||
|
||||
static bool CheckIntersection(const QVector<QPointF> &points, int i, int iNext, int j, int jNext,
|
||||
const QPointF &crossPoint);
|
||||
static bool ParallelCrossPoint(const QLineF &line1, const QLineF &line2, QPointF &point);
|
||||
static bool Crossing(const QVector<QPointF> &sub1, const QVector<QPointF> &sub2);
|
||||
static QVector<QPointF> SubPath(const QVector<QPointF> &path, int startIndex, int endIndex);
|
||||
static QVector<QPointF> EkvPoint(const QLineF &line1, const QLineF &line2, const qreal &width);
|
||||
static QPointF UnclosedEkvPoint(const QLineF &line, const QLineF &helpLine, const qreal &width);
|
||||
static QLineF ParallelLine(const QLineF &line, qreal width );
|
||||
|
|
|
@ -180,7 +180,12 @@ const TextLine& VTextManager::GetSourceLine(int i) const
|
|||
*/
|
||||
void VTextManager::FitFontSize(qreal fW, qreal fH)
|
||||
{
|
||||
int iFS = 3*qFloor(fH/GetSourceLinesCount())/4;
|
||||
int iFS = 0;
|
||||
if (GetSourceLinesCount() > 0)
|
||||
{//division by zero
|
||||
iFS = 3*qFloor(fH/GetSourceLinesCount())/4;
|
||||
}
|
||||
|
||||
if (iFS < MIN_FONT_SIZE)
|
||||
{
|
||||
iFS = MIN_FONT_SIZE;
|
||||
|
|
|
@ -65,8 +65,11 @@ void AbstractTest::Comparison(const QVector<QPointF> &ekv, const QVector<QPointF
|
|||
QCOMPARE(ekv.size(), ekvOrig.size());// First check if sizes equal
|
||||
for (int i=0; i < ekv.size(); i++)
|
||||
{
|
||||
// Check each point
|
||||
QCOMPARE(ekv.at(i).toPoint(), ekvOrig.at(i).toPoint()); // Don't use comparison float values
|
||||
const QPoint p1 = ekv.at(i).toPoint();
|
||||
const QPoint p2 = ekvOrig.at(i).toPoint();
|
||||
const QString msg = QString("Got '%1;%2', Exprected '%3;%4'.").arg(p1.x(), p1.y()).arg(p2.x(), p2.y());
|
||||
// Check each point. Don't use comparison float values
|
||||
QVERIFY2(p1 == p2, qUtf8Printable(msg));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -106,16 +106,11 @@ inline void VToolCut::ShowToolVisualization(bool show)
|
|||
{
|
||||
delete vis;
|
||||
}
|
||||
if (VAbstractSpline *parentCurve = qobject_cast<VAbstractSpline *>(doc->getTool(curveCutId)))
|
||||
|
||||
VDataTool *parent = doc->getTool(VAbstractTool::data.GetGObject(curveCutId)->getIdTool());
|
||||
if (VAbstractSpline *parentCurve = qobject_cast<VAbstractSpline *>(parent))
|
||||
{
|
||||
if (detailsMode)
|
||||
{
|
||||
parentCurve->ShowHandles(detailsMode);
|
||||
}
|
||||
else
|
||||
{
|
||||
parentCurve->ShowHandles(show);
|
||||
}
|
||||
detailsMode ? parentCurve->ShowHandles(detailsMode) : parentCurve->ShowHandles(show);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1281,21 +1281,31 @@ void VToolDetail::AllowSelecting(bool enabled)
|
|||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void VToolDetail::ResetChildren(QGraphicsItem *pItem)
|
||||
{
|
||||
const VDetail detail = VAbstractTool::data.GetDetail(id);
|
||||
VTextGraphicsItem* pVGI = dynamic_cast<VTextGraphicsItem*>(pItem);
|
||||
if (pVGI != dataLabel)
|
||||
{
|
||||
if (detail.GetPatternPieceData().IsVisible())
|
||||
{
|
||||
dataLabel->Reset();
|
||||
}
|
||||
}
|
||||
if (pVGI != patternInfo)
|
||||
{
|
||||
if (detail.GetPatternInfo().IsVisible())
|
||||
{
|
||||
patternInfo->Reset();
|
||||
}
|
||||
}
|
||||
VGrainlineItem* pGLI = dynamic_cast<VGrainlineItem*>(pItem);
|
||||
if (pGLI != grainLine)
|
||||
{
|
||||
if (detail.GetGrainlineGeometry().IsVisible())
|
||||
{
|
||||
grainLine->Reset();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void VToolDetail::UpdateAll()
|
||||
|
|
|
@ -52,6 +52,7 @@ void TST_NameRegExp::TestNameRegExp_data()
|
|||
for(int i = 0; i < allLocales.size(); ++i)
|
||||
{
|
||||
INIT_LOCALE_VARIABLES(allLocales.at(i));
|
||||
Q_UNUSED(positiveSign)
|
||||
Q_UNUSED(expUpper)
|
||||
Q_UNUSED(expLower)
|
||||
|
||||
|
|
|
@ -149,15 +149,15 @@ void TST_VAbstractDetail::PathRemoveLoop_data() const
|
|||
|
||||
path.clear();
|
||||
path << QPointF(20, 10);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(20, 20);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(20, 10);
|
||||
|
||||
QVector<QPointF> res;
|
||||
res << QPointF(20, 10);
|
||||
res << QPointF(15, 15);
|
||||
res << QPointF(20, 20);
|
||||
res << QPointF(15, 15);
|
||||
res << QPointF(20, 10);
|
||||
QTest::newRow("One loop, closed a path (four unique points)") << path << res;
|
||||
|
||||
|
@ -172,17 +172,17 @@ void TST_VAbstractDetail::PathRemoveLoop_data() const
|
|||
|
||||
path.clear();
|
||||
path << QPointF(20, 10);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(0, 10);
|
||||
path << QPointF(0, 20);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(20, 20);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(0, 20);
|
||||
path << QPointF(0, 10);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(20, 10);
|
||||
|
||||
res.clear();
|
||||
res << QPointF(20, 10);
|
||||
res << QPointF(15, 15);
|
||||
res << QPointF(20, 20);
|
||||
res << QPointF(15, 15);
|
||||
res << QPointF(20, 10);
|
||||
QTest::newRow("Two loops, closed a path (six unique points)") << path << res;
|
||||
|
||||
|
@ -197,17 +197,17 @@ void TST_VAbstractDetail::PathRemoveLoop_data() const
|
|||
|
||||
path.clear();
|
||||
path << QPointF(20, 10);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(0, 20);
|
||||
path << QPointF(0, 10);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(20, 20);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(0, 10);
|
||||
path << QPointF(0, 20);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(20, 10);
|
||||
|
||||
res.clear();
|
||||
res << QPointF(20, 10);
|
||||
res << QPointF(15, 15);
|
||||
res << QPointF(20, 20);
|
||||
res << QPointF(15, 15);
|
||||
res << QPointF(20, 10);
|
||||
QTest::newRow("One loop, the first loop, closed a path (six unique points)") << path << res;
|
||||
|
||||
|
@ -222,19 +222,19 @@ void TST_VAbstractDetail::PathRemoveLoop_data() const
|
|||
|
||||
path.clear();
|
||||
path << QPointF(20, 10);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(0, 20);
|
||||
path << QPointF(0, 10);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(20, 20);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(0, 10);
|
||||
path << QPointF(0, 20);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(20, 10);
|
||||
|
||||
res.clear();
|
||||
res << QPointF(20, 10);
|
||||
res << QPointF(10, 10);
|
||||
res << QPointF(5, 15);
|
||||
res << QPointF(10, 20);
|
||||
res << QPointF(20, 20);
|
||||
res << QPointF(10, 20);
|
||||
res << QPointF(5, 15);
|
||||
res << QPointF(10, 10);
|
||||
res << QPointF(20, 10);
|
||||
QTest::newRow("One loop, the second loop, closed a path (six unique points)") << path << res;
|
||||
|
||||
|
@ -249,10 +249,10 @@ void TST_VAbstractDetail::PathRemoveLoop_data() const
|
|||
|
||||
path.clear();
|
||||
path << QPointF(20, 10);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(20, 15);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(20, 20);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(20, 15);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(20, 10);
|
||||
QTest::newRow("Correct closed a path, point on line (four unique points)") << path << path;
|
||||
|
||||
|
@ -265,14 +265,15 @@ void TST_VAbstractDetail::PathRemoveLoop_data() const
|
|||
|
||||
path.clear();
|
||||
path << QPointF(20, 10);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(0, 10);
|
||||
path << QPointF(10, 15);
|
||||
path << QPointF(0, 20);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(20, 20);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(0, 20);
|
||||
path << QPointF(10, 15);
|
||||
path << QPointF(0, 10);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(20, 10);
|
||||
|
||||
QTest::newRow("Correct closed a path, point on line (six unique points)") << path << path;
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 1, 0)
|
||||
|
@ -312,7 +313,6 @@ void TST_VAbstractDetail::PathRemoveLoop_data() const
|
|||
res << QPointF(364.5960626489172, 1822.0507669842166);
|
||||
res << QPointF(400.66867742260206, 1822.488188976378);
|
||||
res << QPointF(1001.3385826771654, 1822.488188976378);
|
||||
res << QPointF(1001.3385826771654, 1822.488188976378);
|
||||
res << QPointF(1001.3385826771654, 2680.44094488189);
|
||||
res << QPointF(-22.11646613738226, 2680.44094488189);
|
||||
res << QPointF(100.96979100571033, 1797.6153764073072);
|
||||
|
@ -321,107 +321,50 @@ void TST_VAbstractDetail::PathRemoveLoop_data() const
|
|||
QTest::newRow("Test case issue #493") << path << res;
|
||||
|
||||
path.clear();
|
||||
path << QPointF(-656.9465284876832, -3606.6183279948636);
|
||||
path << QPointF(-656.5996104603414, -3606.6000783462687);
|
||||
path << QPointF(-655.7439133016985, -3607.1236310612317);
|
||||
path << QPointF(-654.129780081666, -3609.0558393168476);
|
||||
path << QPointF(-651.3154902471701, -3613.939306009108);
|
||||
path << QPointF(-647.8207651830382, -3621.2084054506768);
|
||||
path << QPointF(-641.4701586077349, -3636.0289997859454);
|
||||
path << QPointF(-630.9244502073004, -3663.23035747934);
|
||||
path << QPointF(-618.4465305467888, -3697.4982896415795);
|
||||
path << QPointF(-604.3873016966293, -3737.732371148936);
|
||||
path << QPointF(-581.1891087215608, -3806.460957656939);
|
||||
path << QPointF(-547.7936207285052, -3909.520915257629);
|
||||
path << QPointF(-514.3891332445846, -4016.6378180116963);
|
||||
path << QPointF(-491.17181635142833, -4093.9874129706236);
|
||||
path << QPointF(-477.094588519539, -4142.335384784734);
|
||||
path << QPointF(-464.5941701318652, -4186.745679830414);
|
||||
path << QPointF(-454.0214632588362, -4226.117872983938);
|
||||
path << QPointF(-449.6699112298347, -4243.2921010175705);
|
||||
path << QPointF(-576.966638263205, -3606.6183279948636);
|
||||
path << QPointF(-685.2149804319953, -3568.7982439212556);
|
||||
path << QPointF(-700.7415523087261, -3623.900571239949);
|
||||
path << QPointF(-675.4694480627154, -3639.3631430823175);
|
||||
path << QPointF(-684.7497934439581, -3631.3546395862268);
|
||||
path << QPointF(-683.1356602239256, -3633.2868478418427);
|
||||
path << QPointF(-686.8764821039574, -3627.927414863926);
|
||||
path << QPointF(-684.7670104817863, -3631.587853202178);
|
||||
path << QPointF(-682.2386030572435, -3636.8469922361573);
|
||||
path << QPointF(-676.4708011186385, -3650.307478525872);
|
||||
path << QPointF(-666.3050989871189, -3676.5286567894937);
|
||||
path << QPointF(-654.0449409043066, -3710.198553447806);
|
||||
path << QPointF(-640.1333287371614, -3750.0101920374505);
|
||||
path << QPointF(-617.0729873733014, -3818.3303697354913);
|
||||
path << QPointF(-583.8128392515604, -3920.9726624886944);
|
||||
path << QPointF(-550.5307668482033, -4027.6970214479597);
|
||||
path << QPointF(-527.4164674104215, -4104.7034088569535);
|
||||
path << QPointF(-513.4302533332675, -4152.73879565781);
|
||||
path << QPointF(-501.0373006826446, -4196.767296675345);
|
||||
path << QPointF(-490.59311078227046, -4235.660899517831);
|
||||
path << QPointF(-477.25724163384456, -4288.293444470835);
|
||||
path << QPointF(-405.3839593893572, -4272.013803282615);
|
||||
path << QPointF(-545.9786893428341, -3568.830152982464);
|
||||
path << QPointF(-685.2149804319953, -3568.7982439212556);
|
||||
|
||||
res.clear();
|
||||
res << QPointF(-656.9465284876832, -3606.6183279948636);
|
||||
res << QPointF(-656.5996104603414, -3606.6000783462687);
|
||||
res << QPointF(-656.5697831440032, -3606.6183279948636);
|
||||
|
||||
// See the file "collection/bugs/Issue_#515.val"
|
||||
// Check a countur path.
|
||||
// The curve that causes the issue is the first in the list.
|
||||
QTest::newRow("Test case issue #515. Big loop in countur path.") << path << res;
|
||||
|
||||
path.clear();
|
||||
path << QPointF(-449.6699112298347, -4243.2921010175705);
|
||||
path << QPointF(-576.966638263205, -3606.6183279948636);
|
||||
path << QPointF(-656.9465284876832, -3606.6183279948636);
|
||||
path << QPointF(-656.5996104603414, -3606.6000783462687);
|
||||
path << QPointF(-655.7439133016985, -3607.1236310612317);
|
||||
path << QPointF(-654.129780081666, -3609.0558393168476);
|
||||
path << QPointF(-651.3154902471701, -3613.939306009108);
|
||||
path << QPointF(-647.8207651830382, -3621.2084054506768);
|
||||
path << QPointF(-641.4701586077349, -3636.0289997859454);
|
||||
path << QPointF(-630.9244502073004, -3663.23035747934);
|
||||
path << QPointF(-618.4465305467888, -3697.4982896415795);
|
||||
path << QPointF(-604.3873016966293, -3737.732371148936);
|
||||
path << QPointF(-581.1891087215608, -3806.460957656939);
|
||||
path << QPointF(-547.7936207285052, -3909.520915257629);
|
||||
path << QPointF(-514.3891332445846, -4016.6378180116963);
|
||||
path << QPointF(-491.17181635142833, -4093.9874129706236);
|
||||
path << QPointF(-477.094588519539, -4142.335384784734);
|
||||
path << QPointF(-464.5941701318652, -4186.745679830414);
|
||||
path << QPointF(-454.0214632588362, -4226.117872983938);
|
||||
|
||||
res.clear();
|
||||
res << QPointF(-449.6699112298347, -4243.2921010175705);
|
||||
res << QPointF(-576.966638263205, -3606.6183279948636);
|
||||
res << QPointF(-656.5697831440032, -3606.6183279948636);
|
||||
res << QPointF(-655.7439133016985, -3607.1236310612317);
|
||||
res << QPointF(-654.129780081666, -3609.0558393168476);
|
||||
res << QPointF(-651.3154902471701, -3613.939306009108);
|
||||
res << QPointF(-647.8207651830382, -3621.2084054506768);
|
||||
res << QPointF(-641.4701586077349, -3636.0289997859454);
|
||||
res << QPointF(-630.9244502073004, -3663.23035747934);
|
||||
res << QPointF(-618.4465305467888, -3697.4982896415795);
|
||||
res << QPointF(-604.3873016966293, -3737.732371148936);
|
||||
res << QPointF(-581.1891087215608, -3806.460957656939);
|
||||
res << QPointF(-547.7936207285052, -3909.520915257629);
|
||||
res << QPointF(-514.3891332445846, -4016.6378180116963);
|
||||
res << QPointF(-491.17181635142833, -4093.9874129706236);
|
||||
res << QPointF(-477.094588519539, -4142.335384784734);
|
||||
res << QPointF(-464.5941701318652, -4186.745679830414);
|
||||
res << QPointF(-454.0214632588362, -4226.117872983938);
|
||||
|
||||
// See the file "collection/bugs/Issue_#515.val"
|
||||
// Check a countur path.
|
||||
// The curve that causes the issue is the last in the list.
|
||||
QTest::newRow("Test case issue #515. Small loop in countur path.") << path << res;
|
||||
|
||||
path.clear();
|
||||
path << QPointF(-656.9465284876832, -3606.6183279948636);
|
||||
path << QPointF(-656.5996104603414, -3606.6000783462687);
|
||||
path << QPointF(-655.7439133016985, -3607.1236310612317);
|
||||
path << QPointF(-654.129780081666, -3609.0558393168476);
|
||||
path << QPointF(-651.3154902471701, -3613.939306009108);
|
||||
path << QPointF(-647.8207651830382, -3621.2084054506768);
|
||||
path << QPointF(-641.4701586077349, -3636.0289997859454);
|
||||
path << QPointF(-630.9244502073004, -3663.23035747934);
|
||||
path << QPointF(-618.4465305467888, -3697.4982896415795);
|
||||
path << QPointF(-604.3873016966293, -3737.732371148936);
|
||||
path << QPointF(-581.1891087215608, -3806.460957656939);
|
||||
path << QPointF(-547.7936207285052, -3909.520915257629);
|
||||
path << QPointF(-514.3891332445846, -4016.6378180116963);
|
||||
path << QPointF(-491.17181635142833, -4093.9874129706236);
|
||||
path << QPointF(-477.094588519539, -4142.335384784734);
|
||||
path << QPointF(-464.5941701318652, -4186.745679830414);
|
||||
path << QPointF(-454.0214632588362, -4226.117872983938);
|
||||
path << QPointF(-449.6699112298347, -4243.2921010175705);
|
||||
path << QPointF(-576.966638263205, -3606.6183279948636);
|
||||
|
||||
res.clear();
|
||||
res << QPointF(-656.9465284876832, -3606.6183279948636);
|
||||
res << QPointF(-656.5996104603414, -3606.6000783462687);
|
||||
res << QPointF(-656.5697831440032, -3606.6183279948636);
|
||||
res << QPointF(-685.2149804319953, -3568.7982439212556);
|
||||
res << QPointF(-700.7415523087261, -3623.900571239949);
|
||||
res << QPointF(-683.3457668881176, -3634.5440688767967);
|
||||
res << QPointF(-682.2386030572435, -3636.8469922361573);
|
||||
res << QPointF(-676.4708011186385, -3650.307478525872);
|
||||
res << QPointF(-666.3050989871189, -3676.5286567894937);
|
||||
res << QPointF(-654.0449409043066, -3710.198553447806);
|
||||
res << QPointF(-640.1333287371614, -3750.0101920374505);
|
||||
res << QPointF(-617.0729873733014, -3818.3303697354913);
|
||||
res << QPointF(-583.8128392515604, -3920.9726624886944);
|
||||
res << QPointF(-550.5307668482033, -4027.6970214479597);
|
||||
res << QPointF(-527.4164674104215, -4104.7034088569535);
|
||||
res << QPointF(-513.4302533332675, -4152.73879565781);
|
||||
res << QPointF(-501.0373006826446, -4196.767296675345);
|
||||
res << QPointF(-490.59311078227046, -4235.660899517831);
|
||||
res << QPointF(-477.25724163384456, -4288.293444470835);
|
||||
res << QPointF(-405.3839593893572, -4272.013803282615);
|
||||
res << QPointF(-545.9786893428341, -3568.830152982464);
|
||||
res << QPointF(-685.2149804319953, -3568.7982439212556);
|
||||
|
||||
// See the file "collection/bugs/Issue_#515.val"
|
||||
// Check a seam allowance path.
|
||||
|
@ -496,67 +439,10 @@ void TST_VAbstractDetail::PathRemoveLoop_data() const
|
|||
res << QPointF(459.7677349767702, -2166.704563141019);
|
||||
res << QPointF(1229.6503937007876, -1990.077167189857);
|
||||
res << QPointF(1229.6503937007876, 937.6667716535435);
|
||||
res << QPointF(1229.6503937007876, 937.6667716535435);
|
||||
|
||||
// See the file "collection/bugs/Issue_#603.val"
|
||||
// Point H1 is first in the list
|
||||
QTest::newRow("Test issue 603. Case 1.") << path << res;
|
||||
|
||||
path.clear();
|
||||
path << QPointF(1229.6503937007876, -630.8371653543306);
|
||||
path << QPointF(1229.6503937007876, 937.6667716535435);
|
||||
path << QPointF(203.08931117793543, 937.6667716535435);
|
||||
path << QPointF(459.7677349767702, -2166.704563141019);
|
||||
path << QPointF(1229.6503937007876, -1990.077167189857);
|
||||
path << QPointF(1229.6503937007876, -555.2466141732282);
|
||||
path << QPointF(920.1053824527112, -555.2466141732282);
|
||||
path << QPointF(887.034516310979, -63.90803149606281);
|
||||
path << QPointF(816.3607592795726, -63.908031496062826);
|
||||
path << QPointF(780.7580397937137, -592.8627210002539);
|
||||
path << QPointF(816.0241340748559, -1202.917917917055);
|
||||
path << QPointF(887.3711415156957, -1202.917917917055);
|
||||
path << QPointF(920.4420076574283, -630.8371653543306);
|
||||
path << QPointF(1229.6503937007876, -630.8371653543306);
|
||||
|
||||
res.clear();
|
||||
res << QPointF(1229.6503937007876, -1990.077167189857);
|
||||
res << QPointF(1229.6503937007876, 937.6667716535435);
|
||||
res << QPointF(1229.6503937007876, 937.6667716535435);
|
||||
res << QPointF(203.08931117793543, 937.6667716535435);
|
||||
res << QPointF(459.7677349767702, -2166.704563141019);
|
||||
res << QPointF(1229.6503937007876, -1990.077167189857);
|
||||
|
||||
// See the file "collection/bugs/Issue_#603.val"
|
||||
// Point T1 is first in the list
|
||||
QTest::newRow("Test issue 603. Case 2.") << path << res;
|
||||
|
||||
path.clear();
|
||||
path << QPointF(920.4420076574283, -630.8371653543306);
|
||||
path << QPointF(1229.6503937007876, -630.8371653543306);
|
||||
path << QPointF(1229.6503937007876, 937.6667716535435);
|
||||
path << QPointF(203.08931117793543, 937.6667716535435);
|
||||
path << QPointF(459.7677349767702, -2166.704563141019);
|
||||
path << QPointF(1229.6503937007876, -1990.077167189857);
|
||||
path << QPointF(1229.6503937007876, -555.2466141732282);
|
||||
path << QPointF(920.1053824527112, -555.2466141732282);
|
||||
path << QPointF(887.034516310979, -63.90803149606281);
|
||||
path << QPointF(816.3607592795726, -63.908031496062826);
|
||||
path << QPointF(780.7580397937137, -592.8627210002539);
|
||||
path << QPointF(816.0241340748559, -1202.917917917055);
|
||||
path << QPointF(887.3711415156957, -1202.917917917055);
|
||||
path << QPointF(920.4420076574283, -630.8371653543306);
|
||||
|
||||
res.clear();
|
||||
res << QPointF(1229.6503937007876, -1990.077167189857);
|
||||
res << QPointF(1229.6503937007876, 937.6667716535435);
|
||||
res << QPointF(1229.6503937007876, 937.6667716535435);
|
||||
res << QPointF(203.08931117793543, 937.6667716535435);
|
||||
res << QPointF(459.7677349767702, -2166.704563141019);
|
||||
res << QPointF(1229.6503937007876, -1990.077167189857);
|
||||
|
||||
// See the file "collection/bugs/Issue_#603.val"
|
||||
// Point T62 is first in the list
|
||||
QTest::newRow("Test issue 603. Case 3.") << path << res;
|
||||
QTest::newRow("Test issue 603.") << path << res;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -570,37 +456,292 @@ void TST_VAbstractDetail::PathRemoveLoop() const
|
|||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void TST_VAbstractDetail::BrokenDetailEquidistant() const
|
||||
void TST_VAbstractDetail::PathLoopsCase_data() const
|
||||
{
|
||||
QTest::addColumn<QVector<QPointF>>("path");
|
||||
QTest::addColumn<QVector<QPointF>>("expect");
|
||||
|
||||
QVector<QPointF> path;
|
||||
path << QPointF(61.86670866141733, 446.92270866141735);
|
||||
path << QPointF(650.6504606788366, 473.2192016666484);
|
||||
path << QPointF(649.4426552757304, 480.5376973511262);
|
||||
path << QPointF(646.5769170924987, 501.9977838630714);
|
||||
path << QPointF(644.6382908004568, 523.6358081043691);
|
||||
path << QPointF(643.4592698551749, 551.9888717674471);
|
||||
path << QPointF(642.9134698671897, 584.1776423714557);
|
||||
path << QPointF(643.1914832622404, 613.2382010061506);
|
||||
path << QPointF(644.2199668178571, 639.3780275889782);
|
||||
path << QPointF(645.9255773115714, 662.8046020373845);
|
||||
path << QPointF(648.2349715209137, 683.7254042688159);
|
||||
path << QPointF(651.0748062234152, 702.3479142007185);
|
||||
path << QPointF(654.3717381966065, 718.8796117505387);
|
||||
path << QPointF(658.0524242180187, 733.5279768357226);
|
||||
path << QPointF(662.0435210651824, 746.5004893737165);
|
||||
path << QPointF(666.2716855156286, 758.0046292819667);
|
||||
path << QPointF(670.6635743468883, 768.2478764779191);
|
||||
path << QPointF(677.400406718071, 781.7952098705392);
|
||||
path << QPointF(691.6740007010135, 806.2608114022295);
|
||||
path << QPointF(694.5877745571677, 810.2150054671212);
|
||||
path << QPointF(699.9560352035193, 816.1706553153153);
|
||||
path << QPointF(708.9007628091615, 824.0594196166176);
|
||||
path << QPointF(719.3794725391945, 831.7499791040799);
|
||||
path << QPointF(730.9568541500198, 839.0942359684872);
|
||||
path << QPointF(743.1975973980386, 845.9440924006244);
|
||||
path << QPointF(755.6663920396528, 852.1514505912763);
|
||||
path << QPointF(767.9279278312633, 857.568212731228);
|
||||
path << QPointF(779.5468945292718, 862.046281011264);
|
||||
path << QPointF(790.0879818900794, 865.4375576221694);
|
||||
path << QPointF(799.115879670088, 867.5939447547289);
|
||||
path << QPointF(804.5608128209333, 868.2650594004886);
|
||||
path << QPointF(807.5317661719646, 868.2782441618697);
|
||||
path << QPointF(809.8795601157717, 867.8994015359809);
|
||||
path << QPointF(811.5497808719051, 867.1100192966705);
|
||||
path << QPointF(812.4880146599148, 865.8915852177861);
|
||||
path << QPointF(812.6398476993509, 864.2255870731761);
|
||||
path << QPointF(811.9508662097637, 862.0935126366886);
|
||||
path << QPointF(810.3666564107034, 859.4768496821717);
|
||||
path << QPointF(806.3216663321919, 854.66911491981);
|
||||
path << QPointF(802.0871811023624, 850.6707401574804);
|
||||
path << QPointF(799.4598981526765, 850.6707401574804);
|
||||
path << QPointF(802.0871811023624, 1653.9337322834645);
|
||||
path << QPointF(61.86670866141733, 1653.9337322834645);
|
||||
|
||||
QVector<QPointF> res;
|
||||
res << QPointF(61.86670866141733, 446.92270866141735);
|
||||
res << QPointF(650.6504606788366, 473.2192016666484);
|
||||
res << QPointF(649.4426552757304, 480.5376973511262);
|
||||
res << QPointF(646.5769170924987, 501.9977838630714);
|
||||
res << QPointF(644.6382908004568, 523.6358081043691);
|
||||
res << QPointF(643.4592698551749, 551.9888717674471);
|
||||
res << QPointF(642.9134698671897, 584.1776423714557);
|
||||
res << QPointF(643.1914832622404, 613.2382010061506);
|
||||
res << QPointF(644.2199668178571, 639.3780275889782);
|
||||
res << QPointF(645.9255773115714, 662.8046020373845);
|
||||
res << QPointF(648.2349715209137, 683.7254042688159);
|
||||
res << QPointF(651.0748062234152, 702.3479142007185);
|
||||
res << QPointF(654.3717381966065, 718.8796117505387);
|
||||
res << QPointF(658.0524242180187, 733.5279768357226);
|
||||
res << QPointF(662.0435210651824, 746.5004893737165);
|
||||
res << QPointF(666.2716855156286, 758.0046292819667);
|
||||
res << QPointF(670.6635743468883, 768.2478764779191);
|
||||
res << QPointF(677.400406718071, 781.7952098705392);
|
||||
res << QPointF(691.6740007010135, 806.2608114022295);
|
||||
res << QPointF(694.5877745571677, 810.2150054671212);
|
||||
res << QPointF(699.9560352035193, 816.1706553153153);
|
||||
res << QPointF(708.9007628091615, 824.0594196166176);
|
||||
res << QPointF(719.3794725391945, 831.7499791040799);
|
||||
res << QPointF(730.9568541500198, 839.0942359684872);
|
||||
res << QPointF(743.1975973980386, 845.9440924006244);
|
||||
res << QPointF(755.6663920396528, 852.1514505912763);
|
||||
res << QPointF(767.9279278312633, 857.568212731228);
|
||||
res << QPointF(779.5468945292718, 862.046281011264);
|
||||
res << QPointF(790.0879818900794, 865.4375576221694);
|
||||
res << QPointF(799.115879670088, 867.5939447547289);
|
||||
res << QPointF(799.5154110117976, 867.6431889469776);
|
||||
res << QPointF(802.0871811023624, 1653.9337322834645);
|
||||
res << QPointF(61.86670866141733, 1653.9337322834645);
|
||||
|
||||
// See file "collection/bugs/Issue_#609_case1.val"
|
||||
// Clear a main path. Bound intersection. External loop. Outside a loop. Start point Ф1.
|
||||
QTest::newRow("Issue 609. Case1a") << path << res;
|
||||
|
||||
path.clear();
|
||||
path << QPointF(-365.68188649000314, -2143.126579528016);
|
||||
path << QPointF(-195.75487873249062, -2116.7935769656237);
|
||||
path << QPointF(-195.75487873249062, -1836.0319480765759);
|
||||
path << QPointF(-233.39027086052477, -1838.4849618976993);
|
||||
path << QPointF(-231.15080237392075, -1855.5915146519483);
|
||||
path << QPointF(-225.84473077299972, -1889.4811404382626);
|
||||
path << QPointF(-219.39861487985402, -1922.986407729537);
|
||||
path << QPointF(-211.6695159016421, -1955.9990283342697);
|
||||
path << QPointF(-204.87723909172885, -1980.439660924953);
|
||||
path << QPointF(-199.87970909142098, -1996.6270828437923);
|
||||
path << QPointF(-194.48099536000245, -2012.6451713592935);
|
||||
path << QPointF(-188.65032933731845, -2028.5246588116781);
|
||||
path << QPointF(-182.36812965707693, -2044.2602109802488);
|
||||
path << QPointF(-175.61499879935675, -2059.8462252736344);
|
||||
path << QPointF(-168.3717693169516, -2075.2768492268588);
|
||||
path << QPointF(-160.6424572210866, -2090.5008865466684);
|
||||
path << QPointF(-150.22847685877994, -2109.7385074212525);
|
||||
path << QPointF(194.23861004296444, -2056.3576305273214);
|
||||
path << QPointF(302.4787663409577, -1301.003761061316);
|
||||
path << QPointF(279.86810151275455, -1288.330749878147);
|
||||
path << QPointF(-641.7062267185897, -2051.118466118487);
|
||||
path << QPointF(-365.68188649000314, -2143.126579528016);
|
||||
|
||||
res.clear();
|
||||
res << QPointF(-365.68188649000314, -2143.126579528016);
|
||||
res << QPointF(-195.75487873249062, -2116.7935769656237);
|
||||
res << QPointF(-195.75487873249062, -2008.8655346469059);
|
||||
res << QPointF(-194.48099536000245, -2012.6451713592935);
|
||||
res << QPointF(-188.65032933731845, -2028.5246588116781);
|
||||
res << QPointF(-182.36812965707693, -2044.2602109802488);
|
||||
res << QPointF(-175.61499879935675, -2059.8462252736344);
|
||||
res << QPointF(-168.3717693169516, -2075.2768492268588);
|
||||
res << QPointF(-160.6424572210866, -2090.5008865466684);
|
||||
res << QPointF(-150.22847685877994, -2109.7385074212525);
|
||||
res << QPointF(194.23861004296444, -2056.3576305273214);
|
||||
res << QPointF(302.4787663409577, -1301.003761061316);
|
||||
res << QPointF(279.86810151275455, -1288.330749878147);
|
||||
res << QPointF(-641.7062267185897, -2051.118466118487);
|
||||
res << QPointF(-365.68188649000314, -2143.126579528016);
|
||||
|
||||
// See file "collection/bugs/Issue_#609_case2.val"
|
||||
// Clear an equdistant. Bound intersection. Internal loop. Outside a loop. Start point А2.
|
||||
QTest::newRow("Issue 609. Case2b") << path << res;
|
||||
|
||||
path.clear();
|
||||
path << QPointF(0, 10);
|
||||
path << QPointF(5, 10);
|
||||
path << QPointF(2.5, 15);
|
||||
path << QPointF(7.5, 15);
|
||||
path << QPointF(5, 10);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(0, 20);
|
||||
path << QPointF(0, 10);
|
||||
|
||||
QTest::newRow("Internal loop. Valid case.") << path << path;
|
||||
|
||||
path.clear();
|
||||
path << QPointF(0, 10);
|
||||
path << QPointF(5, 10);
|
||||
path << QPointF(7.5, 15);
|
||||
path << QPointF(2.5, 15);
|
||||
path << QPointF(5, 10);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(0, 20);
|
||||
path << QPointF(0, 10);
|
||||
|
||||
res.clear();
|
||||
res << QPointF(0, 10);
|
||||
res << QPointF(10, 10);
|
||||
res << QPointF(10, 20);
|
||||
res << QPointF(0, 20);
|
||||
res << QPointF(0, 10);
|
||||
|
||||
QTest::newRow("Internal loop. Invalid case.") << path << res;
|
||||
|
||||
path.clear();
|
||||
path << QPointF(0, 10);
|
||||
path << QPointF(5, 10);
|
||||
path << QPointF(0, 0);
|
||||
path << QPointF(10, 0);
|
||||
path << QPointF(5, 10);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(0, 20);
|
||||
path << QPointF(0, 10);
|
||||
|
||||
QTest::newRow("External loop. Valid case.") << path << path;
|
||||
|
||||
path.clear();
|
||||
path << QPointF(0, 10);
|
||||
path << QPointF(5, 10);
|
||||
path << QPointF(10, 0);
|
||||
path << QPointF(0, 0);
|
||||
path << QPointF(5, 10);
|
||||
path << QPointF(10, 10);
|
||||
path << QPointF(10, 20);
|
||||
path << QPointF(0, 20);
|
||||
path << QPointF(0, 10);
|
||||
|
||||
res.clear();
|
||||
res << QPointF(0, 10);
|
||||
res << QPointF(10, 10);
|
||||
res << QPointF(10, 20);
|
||||
res << QPointF(0, 20);
|
||||
res << QPointF(0, 10);
|
||||
|
||||
QTest::newRow("External loop. Invalid case.") << path << res;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void TST_VAbstractDetail::PathLoopsCase() const
|
||||
{
|
||||
QFETCH(QVector<QPointF>, path);
|
||||
QFETCH(QVector<QPointF>, expect);
|
||||
|
||||
const QVector<QPointF> res = VAbstractDetail::CheckLoops(path);
|
||||
Comparison(res, expect);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void TST_VAbstractDetail::BrokenDetailEquidistant_data() const
|
||||
{
|
||||
QTest::addColumn<QVector<QPointF>>("points");
|
||||
QTest::addColumn<int>("eqv");
|
||||
QTest::addColumn<qreal>("width");
|
||||
QTest::addColumn<QVector<QPointF>>("ekvOrig");
|
||||
|
||||
// For more details see the file "collection/bugs/GAVAUDAN Laure - corsage - figure 4.val".
|
||||
// We will test only one detail. The second require too accurate data that we cannot get from debuger.
|
||||
// The test check an open equdistant of correct detail.
|
||||
QVector<QPointF> points;// Input points.
|
||||
points.append(QPointF(787.5835464566929, 1701.3138897637796));
|
||||
points.append(QPointF(938.7646488188976, 1701.3138897637796));
|
||||
points.append(QPointF(928.6149958683911, 1732.4440719866434));
|
||||
points.append(QPointF(910.0209091217698, 1792.3369853889722));
|
||||
points.append(QPointF(893.3643262819251, 1849.7845131987456));
|
||||
points.append(QPointF(878.5244039283091, 1905.2261617043234));
|
||||
points.append(QPointF(863.9159293830619, 1968.2534932384856));
|
||||
points.append(QPointF(865.3802986403739, 1959.101437194065));
|
||||
points.append(QPointF(863.9366982685195, 1965.6834024491068));
|
||||
points.append(QPointF(852.8936778444679, 1919.6965437838999));
|
||||
points.append(QPointF(837.0628180560684, 1860.2846653184251));
|
||||
points.append(QPointF(819.0677656132684, 1798.6758641921479));
|
||||
points.append(QPointF(798.7585839758027, 1734.54810216256));
|
||||
points.append(QPointF(787.5835464566929, 1701.3138897637796));
|
||||
points.append(QPointF(797.0323653543306, 2608.4005039370077));
|
||||
|
||||
const EquidistantType eqv = EquidistantType::OpenEquidistant; // Open path
|
||||
const qreal width = 37.795275590551185; // seam allowance width
|
||||
|
||||
const QVector<QPointF> ekv = VAbstractDetail::Equidistant(points, eqv, width);// Take result
|
||||
EquidistantType eqv = EquidistantType::OpenEquidistant; // Open path
|
||||
qreal width = 37.795275590551185; // seam allowance width
|
||||
|
||||
QVector<QPointF> ekvOrig;
|
||||
ekvOrig.append(QPointF(938.7646488188976, 1663.5186141732283));
|
||||
ekvOrig.append(QPointF(990.3348131440238, 1663.5186141732283));
|
||||
ekvOrig.append(QPointF(946.2541789190154, 1803.1092111713983));
|
||||
ekvOrig.append(QPointF(915.1544461790318, 1914.5762831871607));
|
||||
ekvOrig.append(QPointF(893.9371203604946, 2006.1170819537472));
|
||||
ekvOrig.append(QPointF(833.7229784629903, 2005.9802605640884));
|
||||
ekvOrig.append(QPointF(816.2424908106893, 1928.9724774988724));
|
||||
ekvOrig.append(QPointF(782.8721775719547, 1809.5818175001634));
|
||||
ekvOrig.append(QPointF(751.6217900811182, 1712.9429454154488));
|
||||
ekvOrig.append(QPointF(774.8748468280837, 1663.5186141732283));
|
||||
ekvOrig.append(QPointF(990.8407795072413, 1663.5186141732283));
|
||||
ekvOrig.append(QPointF(964.6314912875667, 1743.9055911653147));
|
||||
ekvOrig.append(QPointF(946.2221157804494, 1803.203536155223));
|
||||
ekvOrig.append(QPointF(929.7733291125676, 1859.9343877726233));
|
||||
ekvOrig.append(QPointF(915.1430746962241, 1914.5927211230298));
|
||||
ekvOrig.append(QPointF(902.2033544443959, 1967.630259856634));
|
||||
ekvOrig.append(QPointF(894.4064781634931, 2003.1794116713015));
|
||||
ekvOrig.append(QPointF(834.213891302752, 2003.7742535883901));
|
||||
ekvOrig.append(QPointF(816.2523103379473, 1928.9761772004185));
|
||||
ekvOrig.append(QPointF(800.6574884611877, 1870.4501290629887));
|
||||
ekvOrig.append(QPointF(782.9077417718742, 1809.6811695225983));
|
||||
ekvOrig.append(QPointF(786.7126382487066, 1698.723835966227));
|
||||
|
||||
QTest::newRow("GAVAUDAN Laure.") << points << static_cast<int>(eqv) << width << ekvOrig;
|
||||
|
||||
points.clear();
|
||||
points.append(QPointF(97.33089106412862, -223.03306117556497));
|
||||
points.append(QPointF(990.7494050554426, 2.819093995045));
|
||||
points.append(QPointF(908.3966357321774, 379.5839357215547));
|
||||
points.append(QPointF(-135.41154226686143, 697.6417881399819));
|
||||
|
||||
eqv = EquidistantType::OpenEquidistant;
|
||||
width = 11.338582677165354;
|
||||
|
||||
ekvOrig.clear();
|
||||
ekvOrig.append(QPointF(100.10981413873267, -234.02583351343978));
|
||||
ekvOrig.append(QPointF(1004.1704360325447, -5.483401649771952));
|
||||
ekvOrig.append(QPointF(918.0553412376563, 388.4941212347381));
|
||||
ekvOrig.append(QPointF(-138.65807550610091, 710.4843173601864));
|
||||
|
||||
// See the file "collection/bugs/Issue_#604.val" (since 0.5.0)
|
||||
QTest::newRow("Issue #604.") << points << static_cast<int>(eqv) << width << ekvOrig;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void TST_VAbstractDetail::BrokenDetailEquidistant() const
|
||||
{
|
||||
QFETCH(QVector<QPointF>, points);
|
||||
QFETCH(int, eqv);
|
||||
QFETCH(qreal, width);
|
||||
QFETCH(QVector<QPointF>, ekvOrig);
|
||||
|
||||
const QVector<QPointF> ekv = VAbstractDetail::Equidistant(points, static_cast<EquidistantType>(eqv),
|
||||
width);// Take result
|
||||
|
||||
// Begin comparison
|
||||
Comparison(ekv, ekvOrig);
|
||||
|
@ -700,6 +841,148 @@ void TST_VAbstractDetail::TestCorrectEquidistantPoints() const
|
|||
Comparison(after, expect);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void TST_VAbstractDetail::PossibleInfiniteClearLoops_data() const
|
||||
{
|
||||
QTest::addColumn<QVector<QPointF>>("path");
|
||||
QTest::addColumn<QVector<QPointF>>("expect");
|
||||
|
||||
QVector<QPointF> path;
|
||||
path << QPointF(-670.6449010946802, 4046.36220472441);
|
||||
path << QPointF(-1025.9051277126944, 4046.36220472441);
|
||||
path << QPointF(-1026.4460203880594, 4010.5247429150854);
|
||||
path << QPointF(-1027.2972172274538, 3924.202328582098);
|
||||
path << QPointF(-1028.1383921346433, 3768.5948526129496);
|
||||
path << QPointF(-1028.5065585022217, 3521.575730066707);
|
||||
path << QPointF(-1028.2712136539103, 3252.2436039362233);
|
||||
path << QPointF(-1027.2910122410117, 2850.1024469719814);
|
||||
path << QPointF(-1025.9446023682538, 2439.350819630564);
|
||||
path << QPointF(-1025.8983315247287, 2338.629525677473);
|
||||
path << QPointF(-1025.3536572186458, 2309.970015878699);
|
||||
path << QPointF(-1024.2100836932389, 2281.714612342931);
|
||||
path << QPointF(-1022.5102766116828, 2253.846781520112);
|
||||
path << QPointF(-1020.2969016371525, 2226.349989860186);
|
||||
path << QPointF(-1017.6126244328227, 2199.207703813094);
|
||||
path << QPointF(-1014.5001106618688, 2172.403389828782);
|
||||
path << QPointF(-1011.0020259874652, 2145.9205143571917);
|
||||
path << QPointF(-1005.1601480132764, 2106.7277181407126);
|
||||
path << QPointF(-996.3625412018714, 2055.4921956731814);
|
||||
path << QPointF(-986.7906327138169, 2005.2448233555149);
|
||||
path << QPointF(-976.785747854512, 1955.8533327872588);
|
||||
path << QPointF(-961.6606968634906, 1883.0158867454916);
|
||||
path << QPointF(-947.5864881030896, 1811.4914675744105);
|
||||
path << QPointF(-939.2629508127773, 1764.2008199992524);
|
||||
path << QPointF(-933.8852659113251, 1728.8707137815559);
|
||||
path << QPointF(-930.742733377741, 1705.3464944792456);
|
||||
path << QPointF(-928.0252775410311, 1681.829576238578);
|
||||
path << QPointF(-925.7755640643697, 1658.3034255094963);
|
||||
path << QPointF(-924.036258610932, 1634.7515087419433);
|
||||
path << QPointF(-922.850026843893, 1611.1572923858625);
|
||||
path << QPointF(-922.2595344264276, 1587.504242891197);
|
||||
path << QPointF(-922.3074470217107, 1563.7758267078902);
|
||||
path << QPointF(-922.613405031688, 1551.8740157480315);
|
||||
path << QPointF(-960.4086806222392, 841.3228346456693);
|
||||
path << QPointF(-954.9336313684444, 841.5464781141166);
|
||||
path << QPointF(-944.0363771538431, 841.3102753632543);
|
||||
path << QPointF(-933.2160856340209, 840.291423017261);
|
||||
path << QPointF(-922.4878118569704, 838.5316299985567);
|
||||
path << QPointF(-911.8666108706839, 836.0726052295611);
|
||||
path << QPointF(-901.3675377231535, 832.9560576326933);
|
||||
path << QPointF(-891.005647462372, 829.2236961303737);
|
||||
path << QPointF(-880.7959951363317, 824.9172296450213);
|
||||
path << QPointF(-870.7536357930251, 820.0783670990559);
|
||||
path << QPointF(-860.893624480444, 814.7488174148973);
|
||||
path << QPointF(-851.2310162465817, 808.9702895149649);
|
||||
path << QPointF(-841.7808661394299, 802.7844923216785);
|
||||
path << QPointF(-832.5582292069812, 796.2331347574575);
|
||||
path << QPointF(-823.578160497228, 789.3579257447218);
|
||||
path << QPointF(-810.5607800373014, 778.5565764202543);
|
||||
path << QPointF(-794.2367125298769, 763.3635567727296);
|
||||
path << QPointF(-779.1539087770976, 747.6258919346988);
|
||||
path << QPointF(-765.4328091629026, 731.6772532855191);
|
||||
path << QPointF(-753.193854071231, 715.8513122045474);
|
||||
path << QPointF(-742.557483886022, 700.4817400711408);
|
||||
path << QPointF(-733.644138991215, 685.9022082646563);
|
||||
path << QPointF(-726.5742597707488, 672.446388164451);
|
||||
path << QPointF(-721.4682866085625, 660.447951149882);
|
||||
path << QPointF(-718.6229063234249, 651.1532303788147);
|
||||
path << QPointF(-716.6036430255488, 642.9038041285014);
|
||||
path << QPointF(-714.137568179324, 630.1235656609365);
|
||||
path << QPointF(-711.8605525364693, 612.2344502588126);
|
||||
path << QPointF(-710.4560555432737, 593.4222205889721);
|
||||
path << QPointF(-709.4234847119759, 563.5940176156308);
|
||||
path << QPointF(-708.952111561728, 520.4666582691573);
|
||||
path << QPointF(-708.4401766852314, 497.3858267716535);
|
||||
path << QPointF(-400.92922424489655, 469.03937007874015);
|
||||
path << QPointF(-708.4401766852314, 440.6929133858268);
|
||||
path << QPointF(-708.7078446526739, 341.66122584661264);
|
||||
path << QPointF(-709.3427685457568, 299.60322373665383);
|
||||
path << QPointF(-710.6909230403871, 257.048095841136);
|
||||
path << QPointF(-713.0251717477311, 214.57984397612822);
|
||||
path << QPointF(-715.632864794307, 183.1716335401434);
|
||||
path << QPointF(-717.7953694429818, 162.55016633308693);
|
||||
path << QPointF(-720.3578834261159, 142.27891915519677);
|
||||
path << QPointF(-723.3545146951046, 122.43089223348173);
|
||||
path << QPointF(-725.0465030138121, 112.71059563115871);
|
||||
path << QPointF(-219.59055118110237, -35.52755905511811);
|
||||
path << QPointF(-218.99352387527398, -33.21125072212394);
|
||||
path << QPointF(-217.35724543521775, -28.699086141666157);
|
||||
path << QPointF(-215.20035586903225, -24.33136255454731);
|
||||
path << QPointF(-212.53403014110648, -20.10796717265881);
|
||||
path << QPointF(-209.36944321582945, -16.02878720789205);
|
||||
path << QPointF(-205.71777005759026, -12.093709872138447);
|
||||
path << QPointF(-201.59018563077785, -8.302622377289406);
|
||||
path << QPointF(-196.99786489978123, -4.65541193523633);
|
||||
path << QPointF(-189.3170483291933, 0.5638303631539586);
|
||||
path << QPointF(-177.47808861476295, 6.996342387787443);
|
||||
path << QPointF(-163.981333042598, 12.855376387191757);
|
||||
path << QPointF(-148.91618132781048, 18.141834666235646);
|
||||
path << QPointF(-132.37203318551252, 22.856619529787864);
|
||||
path << QPointF(-114.43828833081622, 27.00063328271716);
|
||||
path << QPointF(-95.20434647883366, 30.574778229892296);
|
||||
path << QPointF(-74.75960734467688, 33.57995667618201);
|
||||
path << QPointF(-53.193470643458, 36.01707092645505);
|
||||
path << QPointF(-30.595336090289106, 37.887023285580185);
|
||||
path << QPointF(-7.0546034002822875, 39.19071605842615);
|
||||
path << QPointF(17.339327711450373, 39.929051549861704);
|
||||
path << QPointF(29.858267716535437, 40.06299212598426);
|
||||
path << QPointF(-45.73228346456693, 1589.6692913385828);
|
||||
path << QPointF(-45.73228346456693, 4046.36220472441);
|
||||
path << QPointF(-297.70078740157487, 4046.36220472441);
|
||||
path << QPointF(-297.70078740157487, 2118.8031496062995);
|
||||
path << QPointF(-222.1102362204725, 1589.6692913385828);
|
||||
path << QPointF(-297.70078740157487, 1060.535433070866);
|
||||
path << QPointF(-373.2913385826772, 1589.6692913385828);
|
||||
path << QPointF(-297.70078740157487, 2118.8031496062995);
|
||||
path << QPointF(-297.70078740157487, 4046.36220472441);
|
||||
path << QPointF(-670.6449010946802, 4046.36220472441);
|
||||
path << QPointF(-670.6449010946802, 2024.3149606299214);
|
||||
path << QPointF(-622.7555214134819, 1570.7716535433071);
|
||||
path << QPointF(-670.6449010946802, 1117.2283464566929);
|
||||
path << QPointF(-718.5342807758785, 1570.7716535433071);
|
||||
path << QPointF(-670.6449010946802, 2024.3149606299214);
|
||||
|
||||
QVector<QPointF> expect;
|
||||
expect << QPointF(-670.6449010946802, 4046.36220472441);
|
||||
expect << QPointF(-670.6449010946802, 4046.36220472441);
|
||||
expect << QPointF(-670.6449010946802, 2024.3149606299214);
|
||||
expect << QPointF(-670.6449010946802, 2024.3149606299214);
|
||||
expect << QPointF(-670.6449010946802, 2024.3149606299214);
|
||||
|
||||
// See the file "collection/bugs/possible_inf_loop.val"
|
||||
QTest::newRow("Possible infinite loop") << path << expect;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void TST_VAbstractDetail::PossibleInfiniteClearLoops() const
|
||||
{
|
||||
QFETCH(QVector<QPointF>, path);
|
||||
QFETCH(QVector<QPointF>, expect);
|
||||
|
||||
QVector<QPointF> res = VAbstractDetail::CheckLoops(path);
|
||||
Comparison(res, expect);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void TST_VAbstractDetail::Case3() const
|
||||
{
|
||||
|
@ -1007,13 +1290,12 @@ QVector<QPointF> TST_VAbstractDetail::OutputPointsIssue548Case1() const
|
|||
QVector<QPointF> TST_VAbstractDetail::InputPointsIssue548Case2() const
|
||||
{
|
||||
QVector<QPointF> points;
|
||||
|
||||
points += QPointF(236.97989607468364, 65.89325192030674);
|
||||
points += QPointF(198.93409106041895, 172.04876297154925);
|
||||
points += QPointF(260.32251114299453, 75.38027418944861);
|
||||
points += QPointF(324.54110236213444, 101.48031496062993);
|
||||
points += QPointF(29.858267716535437, 300.85039370078744);
|
||||
points += QPointF(99.86433649395013, 10.166060970128015);
|
||||
points << QPointF(99.86433649395013, 10.166060970128015);
|
||||
points << QPointF(236.97989607468364, 65.89325192030674);
|
||||
points << QPointF(198.93409106041895, 172.04876297154925);
|
||||
points << QPointF(260.32251114299453, 75.38027418944861);
|
||||
points << QPointF(324.54110236213444, 101.48031496062993);
|
||||
points << QPointF(29.858267716535437, 300.85039370078744);
|
||||
|
||||
return points;
|
||||
}
|
||||
|
@ -1022,13 +1304,13 @@ QVector<QPointF> TST_VAbstractDetail::InputPointsIssue548Case2() const
|
|||
QVector<QPointF> TST_VAbstractDetail::OutputPointsIssue548Case2() const
|
||||
{
|
||||
QVector<QPointF> points;
|
||||
|
||||
points += QPointF(284.78726172969823, 44.52579327927505);
|
||||
points += QPointF(404.3486874792147, 93.11854543221973);
|
||||
points += QPointF(29.598648843228922, 346.6587450186291);
|
||||
points += QPointF(-12.946885351826726, 317.1657644661815);
|
||||
points += QPointF(73.40376616581447, -41.38574336196901);
|
||||
points += QPointF(284.78726172969823, 44.52579327927505);
|
||||
points << QPointF(73.40376616581447, -41.38574336196901);
|
||||
points << QPointF(245.32830125796568, 28.488685370970344);
|
||||
points << QPointF(245.32830125796573, 28.488685370970277);
|
||||
points << QPointF(404.3486874792147, 93.11854543221973);
|
||||
points << QPointF(29.598648843228922, 346.6587450186291);
|
||||
points << QPointF(-12.946885351826726, 317.1657644661815);
|
||||
points << QPointF(73.40376616581447, -41.38574336196901);
|
||||
|
||||
return points;
|
||||
}
|
||||
|
@ -1038,12 +1320,12 @@ QVector<QPointF> TST_VAbstractDetail::InputPointsIssue548Case3() const
|
|||
{
|
||||
QVector<QPointF> points;
|
||||
|
||||
points += QPointF(99.86433649395013, 10.166060970128015);
|
||||
points += QPointF(236.97989607468364, 65.89325192030674);
|
||||
points += QPointF(198.93409106041895, 172.04876297154925);
|
||||
points += QPointF(260.32251114299453, 75.38027418944861);
|
||||
points += QPointF(324.54110236213444, 101.48031496062993);
|
||||
points += QPointF(29.858267716535437, 300.85039370078744);
|
||||
points += QPointF(99.86433649395013, 10.166060970128015);
|
||||
|
||||
return points;
|
||||
}
|
||||
|
@ -1053,12 +1335,16 @@ QVector<QPointF> TST_VAbstractDetail::OutputPointsIssue548Case3() const
|
|||
{
|
||||
QVector<QPointF> points;
|
||||
|
||||
points += QPointF(332.5946273847129, 23.158334638243502);
|
||||
points += QPointF(46.94319583767885, -92.9375476940661);
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 3, 0)
|
||||
points += QPointF(234.2633962639462, -16.805935717278903);
|
||||
#else
|
||||
points += QPointF(238.798634936, -14.9627013515);
|
||||
#endif
|
||||
points += QPointF(484.15627259629446, 84.75677590380938);
|
||||
points += QPointF(29.339029969922702, 392.46709633647066);
|
||||
points += QPointF(-55.75203842018885, 333.48113523157537);
|
||||
points += QPointF(46.94319583767885, -92.9375476940661);
|
||||
points += QPointF(332.5946273847129, 23.158334638243502);
|
||||
|
||||
return points;
|
||||
}
|
||||
|
|
|
@ -45,11 +45,16 @@ private slots:
|
|||
void SumTrapezoids() const;
|
||||
void PathRemoveLoop_data() const;
|
||||
void PathRemoveLoop() const;
|
||||
void PathLoopsCase_data() const;
|
||||
void PathLoopsCase() const;
|
||||
void BrokenDetailEquidistant_data() const;
|
||||
void BrokenDetailEquidistant() const;
|
||||
void CorrectEquidistantPoints_data() const;
|
||||
void CorrectEquidistantPoints() const;
|
||||
void TestCorrectEquidistantPoints_data();
|
||||
void TestCorrectEquidistantPoints() const;
|
||||
void PossibleInfiniteClearLoops_data() const;
|
||||
void PossibleInfiniteClearLoops() const;
|
||||
|
||||
private:
|
||||
void Case3() const;
|
||||
|
|
Loading…
Reference in New Issue
Block a user