kopia lustrzana https://github.com/Reenforcements/PES-Embroidery
Thread groups are working!
rodzic
64e723a97c
commit
58ce931d4e
|
@ -3,8 +3,8 @@
|
|||
<component name="ChangeListManager">
|
||||
<list default="true" id="0b5af789-e47c-4138-bdb9-8fa765481e1e" name="Default Changelist" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/LOG.md" beforeDir="false" afterPath="$PROJECT_DIR$/LOG.md" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/PES_Emb_mathutils.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/PES_Emb_mathutils.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/PES_render_utils.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/PES_render_utils.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/main.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/svgFunctions.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/svgFunctions.py" afterDir="false" />
|
||||
</list>
|
||||
|
@ -16,7 +16,7 @@
|
|||
</component>
|
||||
<component name="CoverageDataManager">
|
||||
<SUITE FILE_PATH="coverage/PES_Embroidery$svgImport.coverage" NAME="svgImport Coverage Results" MODIFIED="1541478220694" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src/learning" />
|
||||
<SUITE FILE_PATH="coverage/PES_Embroidery$main.coverage" NAME="main Coverage Results" MODIFIED="1543623333938" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src" />
|
||||
<SUITE FILE_PATH="coverage/PES_Embroidery$main.coverage" NAME="main Coverage Results" MODIFIED="1543627152612" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src" />
|
||||
<SUITE FILE_PATH="coverage/PES_Embroidery$PECRender_main.coverage" NAME="PECRender-main Coverage Results" MODIFIED="1542987287831" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/PECRender" />
|
||||
<SUITE FILE_PATH="coverage/PES_Embroidery$getColors.coverage" NAME="getColors Coverage Results" MODIFIED="1542917684965" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/Colors" />
|
||||
<SUITE FILE_PATH="coverage/PES_Embroidery$main__1_.coverage" NAME="PECRender-main Coverage Results" MODIFIED="1542509072203" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/PECRender" />
|
||||
|
@ -37,7 +37,7 @@
|
|||
<usages-collector id="statistics.vcs.git.usages" />
|
||||
<usages-collector id="statistics.file.types.edit">
|
||||
<counts>
|
||||
<entry key="Python" value="33818" />
|
||||
<entry key="Python" value="34342" />
|
||||
</counts>
|
||||
</usages-collector>
|
||||
<usages-collector id="statistics.js.language.service.starts" />
|
||||
|
@ -55,7 +55,7 @@
|
|||
</usages-collector>
|
||||
<usages-collector id="statistics.file.extensions.edit">
|
||||
<counts>
|
||||
<entry key="py" value="33818" />
|
||||
<entry key="py" value="34342" />
|
||||
</counts>
|
||||
</usages-collector>
|
||||
</session>
|
||||
|
@ -65,8 +65,8 @@
|
|||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/main.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="430">
|
||||
<caret line="47" lean-forward="true" selection-start-line="47" selection-end-line="47" />
|
||||
<state relative-caret-position="100">
|
||||
<caret line="28" column="15" selection-start-line="28" selection-start-column="15" selection-end-line="28" selection-end-column="15" />
|
||||
<folding>
|
||||
<element signature="e#0#15#0" expanded="true" />
|
||||
</folding>
|
||||
|
@ -77,12 +77,12 @@
|
|||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/src/svgFunctions.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-3868">
|
||||
<caret line="50" column="42" selection-start-line="50" selection-start-column="42" selection-end-line="50" selection-end-column="42" />
|
||||
<state relative-caret-position="182">
|
||||
<caret line="95" column="69" selection-start-line="95" selection-start-column="69" selection-end-line="95" selection-end-column="69" />
|
||||
<folding>
|
||||
<element signature="e#0#19#0" expanded="true" />
|
||||
<marker date="1543623262668" expanded="true" signature="143:2223" ph="..." />
|
||||
<marker date="1543623262668" expanded="true" signature="12373:12378" ph="..." />
|
||||
<marker date="1543627151776" expanded="true" signature="143:2224" ph="..." />
|
||||
<marker date="1543627151776" expanded="true" signature="12788:12793" ph="..." />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
|
@ -91,8 +91,8 @@
|
|||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/PES.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1455">
|
||||
<caret line="97" column="20" selection-start-line="97" selection-start-column="20" selection-end-line="97" selection-end-column="20" />
|
||||
<state relative-caret-position="450">
|
||||
<caret line="30" column="26" selection-start-line="30" selection-start-column="26" selection-end-line="30" selection-end-column="26" />
|
||||
<folding>
|
||||
<element signature="e#0#23#0" expanded="true" />
|
||||
<marker date="1543520578420" expanded="true" signature="133:210" ph="..." />
|
||||
|
@ -106,20 +106,21 @@
|
|||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/PES_Emb_mathutils.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="177">
|
||||
<caret line="67" column="40" lean-forward="true" selection-start-line="67" selection-start-column="40" selection-end-line="67" selection-end-column="40" />
|
||||
<state relative-caret-position="182">
|
||||
<caret line="44" column="26" selection-start-line="44" selection-start-column="8" selection-end-line="44" selection-end-column="26" />
|
||||
<folding>
|
||||
<element signature="e#0#29#0" expanded="true" />
|
||||
<marker date="1543617883777" expanded="true" signature="139:2607" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="497:1536" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="754:886" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="1606:2400" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="2658:2734" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="2800:2805" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="2800:4180" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="3729:3892" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="3934:4053" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="4090:4180" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="139:2608" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="497:1537" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="755:887" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="1607:2401" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="2659:2735" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="2801:2806" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="2801:4181" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="3323:3324" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="3730:3893" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="3935:4054" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="4091:4181" ph="..." />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
|
@ -137,15 +138,15 @@
|
|||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/PES_render_utils.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="615">
|
||||
<caret line="42" column="20" selection-start-line="42" selection-start-column="20" selection-end-line="42" selection-end-column="20" />
|
||||
<state relative-caret-position="285">
|
||||
<caret line="19" column="63" selection-start-line="19" selection-start-column="63" selection-end-line="19" selection-end-column="63" />
|
||||
<folding>
|
||||
<element signature="e#0#13#0" expanded="true" />
|
||||
<marker date="1543517886574" expanded="true" signature="129:130" ph="..." />
|
||||
<marker date="1543517886574" expanded="true" signature="129:135" ph="..." />
|
||||
<marker date="1543517886574" expanded="true" signature="1233:1565" ph="..." />
|
||||
<marker date="1543517886574" expanded="true" signature="1460:1565" ph="..." />
|
||||
<marker date="1543517886574" expanded="true" signature="1592:1687" ph="..." />
|
||||
<marker date="1543626061469" expanded="true" signature="129:130" ph="..." />
|
||||
<marker date="1543626061469" expanded="true" signature="129:135" ph="..." />
|
||||
<marker date="1543626061469" expanded="true" signature="1235:1567" ph="..." />
|
||||
<marker date="1543626061469" expanded="true" signature="1462:1567" ph="..." />
|
||||
<marker date="1543626061469" expanded="true" signature="1594:1689" ph="..." />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
|
@ -162,13 +163,6 @@
|
|||
</component>
|
||||
<component name="FindInProjectRecents">
|
||||
<findStrings>
|
||||
<find>getStartAndEndPointsOfLineInBox</find>
|
||||
<find>x_for_y</find>
|
||||
<find>invertSlope</find>
|
||||
<find>InfLine</find>
|
||||
<find>[</find>
|
||||
<find>addPoint</find>
|
||||
<find>Stitch</find>
|
||||
<find>index</find>
|
||||
<find>type(</find>
|
||||
<find>enumerate</find>
|
||||
|
@ -180,18 +174,25 @@
|
|||
<find>getClosestColor</find>
|
||||
<find>stitchLines</find>
|
||||
<find>maxDist</find>
|
||||
<find>endWithinStart</find>
|
||||
<find>invertLine</find>
|
||||
<find>clearAll</find>
|
||||
<find>lineIntersectsAnyBarrier</find>
|
||||
<find>intersect(</find>
|
||||
<find>StitchLevel</find>
|
||||
<find>barrier</find>
|
||||
<find>intersection points for this</find>
|
||||
<find>intersect</find>
|
||||
<find>self.b</find>
|
||||
<find>intersection points for this</find>
|
||||
<find>lineFallsInValidProjection</find>
|
||||
<find>addPoint</find>
|
||||
<find>addLine</find>
|
||||
<find>endWithinStart</find>
|
||||
<find>intersectionPointWithInfLine</find>
|
||||
<find>invertLine</find>
|
||||
<find>matchInfLine</find>
|
||||
<find>invertSlope</find>
|
||||
<find>moveToIncludePoint</find>
|
||||
<find>renderPECCommands</find>
|
||||
<find>lineFallsInValidProjection</find>
|
||||
<find>makeStitchLevels</find>
|
||||
</findStrings>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
|
@ -208,9 +209,9 @@
|
|||
<option value="$PROJECT_DIR$/src/utilities.py" />
|
||||
<option value="$PROJECT_DIR$/PECRender/main.py" />
|
||||
<option value="$PROJECT_DIR$/Colors/getColors.py" />
|
||||
<option value="$PROJECT_DIR$/src/PES_render_utils.py" />
|
||||
<option value="$PROJECT_DIR$/src/PES.py" />
|
||||
<option value="$PROJECT_DIR$/src/PES_Emb_mathutils.py" />
|
||||
<option value="$PROJECT_DIR$/src/PES_render_utils.py" />
|
||||
<option value="$PROJECT_DIR$/src/main.py" />
|
||||
<option value="$PROJECT_DIR$/src/svgFunctions.py" />
|
||||
</list>
|
||||
|
@ -553,45 +554,10 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/PES_render_utils.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="615">
|
||||
<caret line="42" column="20" selection-start-line="42" selection-start-column="20" selection-end-line="42" selection-end-column="20" />
|
||||
<folding>
|
||||
<element signature="e#0#13#0" expanded="true" />
|
||||
<marker date="1543517886574" expanded="true" signature="129:130" ph="..." />
|
||||
<marker date="1543517886574" expanded="true" signature="129:135" ph="..." />
|
||||
<marker date="1543517886574" expanded="true" signature="1233:1565" ph="..." />
|
||||
<marker date="1543517886574" expanded="true" signature="1460:1565" ph="..." />
|
||||
<marker date="1543517886574" expanded="true" signature="1592:1687" ph="..." />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/PES_Emb_mathutils.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="177">
|
||||
<caret line="67" column="40" lean-forward="true" selection-start-line="67" selection-start-column="40" selection-end-line="67" selection-end-column="40" />
|
||||
<folding>
|
||||
<element signature="e#0#29#0" expanded="true" />
|
||||
<marker date="1543617883777" expanded="true" signature="139:2607" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="497:1536" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="754:886" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="1606:2400" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="2658:2734" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="2800:2805" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="2800:4180" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="3729:3892" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="3934:4053" ph="..." />
|
||||
<marker date="1543617883777" expanded="true" signature="4090:4180" ph="..." />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/PES.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1455">
|
||||
<caret line="97" column="20" selection-start-line="97" selection-start-column="20" selection-end-line="97" selection-end-column="20" />
|
||||
<state relative-caret-position="450">
|
||||
<caret line="30" column="26" selection-start-line="30" selection-start-column="26" selection-end-line="30" selection-end-column="26" />
|
||||
<folding>
|
||||
<element signature="e#0#23#0" expanded="true" />
|
||||
<marker date="1543520578420" expanded="true" signature="133:210" ph="..." />
|
||||
|
@ -601,10 +567,46 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/PES_Emb_mathutils.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="182">
|
||||
<caret line="44" column="26" selection-start-line="44" selection-start-column="8" selection-end-line="44" selection-end-column="26" />
|
||||
<folding>
|
||||
<element signature="e#0#29#0" expanded="true" />
|
||||
<marker date="1543625107768" expanded="true" signature="139:2608" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="497:1537" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="755:887" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="1607:2401" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="2659:2735" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="2801:2806" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="2801:4181" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="3323:3324" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="3730:3893" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="3935:4054" ph="..." />
|
||||
<marker date="1543625107768" expanded="true" signature="4091:4181" ph="..." />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/PES_render_utils.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="285">
|
||||
<caret line="19" column="63" selection-start-line="19" selection-start-column="63" selection-end-line="19" selection-end-column="63" />
|
||||
<folding>
|
||||
<element signature="e#0#13#0" expanded="true" />
|
||||
<marker date="1543626061469" expanded="true" signature="129:130" ph="..." />
|
||||
<marker date="1543626061469" expanded="true" signature="129:135" ph="..." />
|
||||
<marker date="1543626061469" expanded="true" signature="1235:1567" ph="..." />
|
||||
<marker date="1543626061469" expanded="true" signature="1462:1567" ph="..." />
|
||||
<marker date="1543626061469" expanded="true" signature="1594:1689" ph="..." />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/main.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="430">
|
||||
<caret line="47" lean-forward="true" selection-start-line="47" selection-end-line="47" />
|
||||
<state relative-caret-position="100">
|
||||
<caret line="28" column="15" selection-start-line="28" selection-start-column="15" selection-end-line="28" selection-end-column="15" />
|
||||
<folding>
|
||||
<element signature="e#0#15#0" expanded="true" />
|
||||
</folding>
|
||||
|
@ -613,12 +615,12 @@
|
|||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/svgFunctions.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-3868">
|
||||
<caret line="50" column="42" selection-start-line="50" selection-start-column="42" selection-end-line="50" selection-end-column="42" />
|
||||
<state relative-caret-position="182">
|
||||
<caret line="95" column="69" selection-start-line="95" selection-start-column="69" selection-end-line="95" selection-end-column="69" />
|
||||
<folding>
|
||||
<element signature="e#0#19#0" expanded="true" />
|
||||
<marker date="1543623262668" expanded="true" signature="143:2223" ph="..." />
|
||||
<marker date="1543623262668" expanded="true" signature="12373:12378" ph="..." />
|
||||
<marker date="1543627151776" expanded="true" signature="143:2224" ph="..." />
|
||||
<marker date="1543627151776" expanded="true" signature="12788:12793" ph="..." />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
|
|
|
@ -25,6 +25,7 @@ class InfLine:
|
|||
|
||||
self.m = m2
|
||||
self.b = b2
|
||||
|
||||
def matchInfLine(self, infLine):
|
||||
self.b = infLine.b
|
||||
self.m = infLine.m
|
||||
|
@ -104,8 +105,8 @@ def invertLine(line, scale=1.0):
|
|||
p1 = line.start - center
|
||||
p2 = line.end - center
|
||||
|
||||
p1 = complex(p2.imag, p1.real) * scale
|
||||
p2 = complex(p1.imag , p2.real) * scale
|
||||
p1 = complex(p1.imag, p2.real) * scale
|
||||
p2 = complex(p2.imag , p1.real) * scale
|
||||
|
||||
# Shift back
|
||||
p1 = p1 + center
|
||||
|
|
Plik binarny nie jest wyświetlany.
|
@ -14,7 +14,7 @@ class GenericRenderer:
|
|||
self.lineBatch = pyglet.graphics.Batch()
|
||||
self.pointBatch = pyglet.graphics.Batch()
|
||||
|
||||
pyglet.gl.glLineWidth(2)
|
||||
pyglet.gl.glLineWidth(7)#2
|
||||
pyglet.gl.glPointSize(4)
|
||||
|
||||
self.addLine(Line(start=(0+0j), end=(1000+1000j)), 255, 0, 0)
|
||||
|
|
Plik binarny nie jest wyświetlany.
|
@ -26,7 +26,7 @@ paths, attributes = svg
|
|||
if paths is None:
|
||||
sys.exit(0)
|
||||
|
||||
threadWidth = 4
|
||||
threadWidth = 3
|
||||
|
||||
# Enumerate the shapes in the SVG to find where stitches should go.
|
||||
levelGroups = []
|
||||
|
@ -47,7 +47,7 @@ for i, shape in enumerate(paths):
|
|||
PECCommands = createStitchRoutine(levelGroups, fillColors=fillColors, threadWidth=threadWidth)
|
||||
|
||||
# Render the PEC commands
|
||||
renderPECCommands(PECCommands)
|
||||
#renderPECCommands(PECCommands)
|
||||
|
||||
pes = PES(PECCommands=PECCommands)
|
||||
pes.encode()
|
||||
|
|
|
@ -9,25 +9,25 @@ class StitchLevel:
|
|||
def __init__(self, lines, infLine):
|
||||
self.lines = lines
|
||||
self.infLine = infLine
|
||||
self.barriers = []
|
||||
#self.barriers = []
|
||||
|
||||
# Make barriers out of the spaces between the lines
|
||||
numBarriers = len(lines) - 1
|
||||
for x in range(0, numBarriers):
|
||||
p1 = self.lines[x].end
|
||||
p2 = self.lines[x+1].start
|
||||
b = Line(start=p1, end=p2)
|
||||
#GenericRenderer.globalRenderer.addLine(b, 55, 55, 55)
|
||||
# Rotate line around center
|
||||
invertedB = invertLine(b)
|
||||
self.barriers.append(invertedB)
|
||||
# numBarriers = len(lines) - 1
|
||||
# for x in range(0, numBarriers):
|
||||
# p1 = self.lines[x].end
|
||||
# p2 = self.lines[x+1].start
|
||||
# b = Line(start=p1, end=p2)
|
||||
# #GenericRenderer.globalRenderer.addLine(b, 55, 55, 55)
|
||||
# # Rotate line around center
|
||||
# invertedB = invertLine(b)
|
||||
# self.barriers.append(invertedB)
|
||||
|
||||
#GenericRenderer.globalRenderer.addLine(invertLine(b, scale = 1), 55, 0, 255)
|
||||
|
||||
def lineFallsInValidProjection(self, line):
|
||||
def lineFallsInValidProjectionOfUngroupedLine(self, line, ungroupedLine):
|
||||
# Project the line onto the intersection line
|
||||
pLine = projectLineOntoInfLine(line, self.infLine)
|
||||
GenericRenderer.globalRenderer.addLine(pLine, 255, 0, 255)
|
||||
#GenericRenderer.globalRenderer.addLine(pLine, 255, 0, 255)
|
||||
ipLine = invertLine(pLine)
|
||||
|
||||
# # Avoid rounding errors by doing this with two
|
||||
|
@ -41,27 +41,27 @@ class StitchLevel:
|
|||
# l2.matchLine(ipLine)
|
||||
# l2.moveToIncludePoint(pLine.end)
|
||||
# l2 = l2.to_svg_Line(pLine.end, 1)
|
||||
l = ungroupedLine
|
||||
|
||||
for l in self.lines:
|
||||
lLength = l.length()
|
||||
pLength = pLine.length()
|
||||
maxDist = max(lLength, pLength)
|
||||
lLength = l.length()
|
||||
pLength = pLine.length()
|
||||
maxDist = max(lLength, pLength)
|
||||
|
||||
# For a line to be valid with another line,
|
||||
# the two points of one line can't be farther
|
||||
# than maxDist more than once.
|
||||
dists = [Line(l.start, pLine.start).length(),
|
||||
Line(l.start, pLine.end).length(),
|
||||
Line(l.end, pLine.start).length(),
|
||||
Line(l.end, pLine.end).length()]
|
||||
# For a line to be valid with another line,
|
||||
# the two points of one line can't be farther
|
||||
# than maxDist more than once.
|
||||
dists = [Line(l.start, pLine.start).length(),
|
||||
Line(l.start, pLine.end).length(),
|
||||
Line(l.end, pLine.start).length(),
|
||||
Line(l.end, pLine.end).length()]
|
||||
|
||||
total = 0
|
||||
for d in dists:
|
||||
if d > maxDist:
|
||||
total += 1
|
||||
totalTooFar = 0
|
||||
for d in dists:
|
||||
if d > maxDist:
|
||||
totalTooFar += 1
|
||||
|
||||
if total <= 1:
|
||||
return True
|
||||
if totalTooFar <= 1:
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
|
@ -158,7 +158,7 @@ def makeStitchLevels(shape, fillColor=(0,0,0), threadWidth=2, slope=1, debug=Fal
|
|||
# Get a new (infinite) line using the point at the current t value
|
||||
# as the center
|
||||
center = intersectionPath.point((tIncrementAmount * x) / pathLength)
|
||||
GenericRenderer.globalRenderer.addPoint(center, 255, 255, 0)
|
||||
#GenericRenderer.globalRenderer.addPoint(center, 255, 255, 0)
|
||||
infLine = InfLine(m=slope, center=center)
|
||||
# Convert it to a bezier line
|
||||
l = infLine.to_svg_Line(center=center, length=intersectionLineLength)
|
||||
|
@ -188,7 +188,7 @@ def makeStitchLevels(shape, fillColor=(0,0,0), threadWidth=2, slope=1, debug=Fal
|
|||
if debug:
|
||||
#print("{} intersection points for this iteration.".format(len(intersectionPoints)))
|
||||
for i in intersectionPoints:
|
||||
GenericRenderer.globalRenderer.addPoint(i, 255, 0, 255)
|
||||
None#GenericRenderer.globalRenderer.addPoint(i, 255, 0, 255)
|
||||
|
||||
genericColors = [(255, 0, 0), (0, 255, 0), (0, 0, 255), (0, 255, 255), (255, 255, 0), (255, 0, 255)]
|
||||
|
||||
|
@ -248,6 +248,7 @@ def createStitchRoutine(levelGroups, fillColors, threadWidth=2):
|
|||
newUsedGroups = []
|
||||
|
||||
# Check each ungrouped line in the level
|
||||
level.lines.reverse()
|
||||
for ungroupedLine in level.lines:
|
||||
# Remove lines that are super short
|
||||
# TODO: Find a good value for this.
|
||||
|
@ -258,10 +259,9 @@ def createStitchRoutine(levelGroups, fillColors, threadWidth=2):
|
|||
foundGroup = None
|
||||
for lineGroup in lastUsedGroups:
|
||||
lastLine = lineGroup[-1]
|
||||
# Is the start of this line near the end of the last one?
|
||||
#if endWithinStart(lastLine, ungroupedLine, maxDist):
|
||||
|
||||
# Does it cross a barrier?
|
||||
if level.lineFallsInValidProjection( lastLine ):
|
||||
if level.lineFallsInValidProjectionOfUngroupedLine( lastLine, ungroupedLine ):
|
||||
foundGroup = lineGroup
|
||||
break
|
||||
|
||||
|
@ -276,6 +276,8 @@ def createStitchRoutine(levelGroups, fillColors, threadWidth=2):
|
|||
foundGroup.append(ungroupedLine)
|
||||
|
||||
newUsedGroups.append(foundGroup)
|
||||
# This group found a member. It's off the table
|
||||
# for the rest of this iteration.
|
||||
if foundGroup in lastUsedGroups:
|
||||
lastUsedGroups.remove(foundGroup)
|
||||
|
||||
|
@ -283,6 +285,16 @@ def createStitchRoutine(levelGroups, fillColors, threadWidth=2):
|
|||
|
||||
print("Made {} groups for a shape.".format(len(lineGroups)))
|
||||
|
||||
GenericRenderer.globalRenderer.clearAll()
|
||||
curColor = 0
|
||||
for lineGroups in shapeLineGroups:
|
||||
for lineGroup in lineGroups:
|
||||
curColor += 1
|
||||
currentColor = PES.colors[curColor % len(PES.colors)]
|
||||
for line in lineGroup:
|
||||
GenericRenderer.globalRenderer.addLine(line, currentColor[1], currentColor[2], currentColor[3])
|
||||
|
||||
|
||||
# Add color change, convert lines to stitches and add jump commands
|
||||
allStitches = []
|
||||
|
||||
|
@ -336,6 +348,6 @@ def renderPECCommands(PECCommands):
|
|||
if isinstance(command, ColorChange):
|
||||
None
|
||||
#currentColor = PES.colors[command.colorIndex]
|
||||
#
|
||||
# for jump in jumps:
|
||||
# GenericRenderer.globalRenderer.addLine(jump, 255, 255, 255)
|
||||
|
||||
for jump in jumps:
|
||||
GenericRenderer.globalRenderer.addLine(jump, 255, 255, 255)
|
Plik binarny nie jest wyświetlany.
Ładowanie…
Reference in New Issue