<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ndbx formatVersion="20" type="file" uuid="b96845f7-f8ee-42a9-b3f8-e1ed9fa3f4ce">
    <property name="canvasHeight" value="300"/>
    <property name="canvasWidth" value="300"/>
    <property name="canvasX" value="0"/>
    <property name="canvasY" value="0"/>
    <link href="python:morph.py" rel="functions"/>
    <node name="root" prototype="core.network" renderedChild="morph4">
        <node name="arc6" position="20.00,3.00" prototype="corevector.arc">
            <port name="width" type="float" value="250.0"/>
            <port name="height" type="float" value="250.0"/>
            <port name="start_angle" type="float" value="-59.0"/>
            <port name="degrees" type="float" value="120.0"/>
        </node>
        <node name="colorize1" position="22.00,12.00" prototype="corevector.colorize"/>
        <node name="compound5" position="22.00,5.00" prototype="corevector.compound">
            <port name="function" type="string" value="subtracted"/>
        </node>
        <node name="connect1" position="22.00,11.00" prototype="corevector.connect"/>
        <node name="convert_range1" position="27.00,14.00" prototype="math.convert_range">
            <port name="source_start" type="float" value="1.0"/>
            <port name="source_end" type="float" value="101.0"/>
            <port name="target_end" type="float" value="100.0"/>
        </node>
        <node name="ellipse5" position="24.00,3.00" prototype="corevector.ellipse">
            <port name="width" type="float" value="150.0"/>
            <port name="height" type="float" value="150.0"/>
        </node>
        <node name="frame1" position="27.00,13.00" prototype="core.frame"/>
        <node name="getPoints7" position="22.00,8.00" prototype="core.network" renderedChild="make_point1">
            <node name="add1" position="-3.00,0.00" prototype="math.add"/>
            <node name="length1" position="-3.00,-1.00" prototype="string.length"/>
            <node name="lookup1" position="-5.00,-3.00" prototype="data.lookup">
                <port name="key" type="string" value="points"/>
            </node>
            <node name="make_point1" position="-5.00,8.00" prototype="corevector.make_point"/>
            <node name="make_strings1" position="-5.00,3.00" prototype="string.make_strings">
                <port name="separator" type="string" value=","/>
            </node>
            <node name="rest1" position="-3.00,5.00" prototype="list.rest"/>
            <node name="sub_string1" position="-5.00,2.00" prototype="string.sub_string">
                <port name="start" type="int" value="2"/>
            </node>
            <node name="take_every1" position="-7.00,6.00" prototype="list.take_every">
                <port name="n" type="int" value="2"/>
            </node>
            <node name="take_every2" position="-3.00,6.00" prototype="list.take_every">
                <port name="n" type="int" value="2"/>
            </node>
            <port childReference="lookup1.list" description="The input value." label="" name="list" range="value" type="list" widget="none"/>
            <conn input="take_every1.list" output="make_strings1"/>
            <conn input="rest1.list" output="make_strings1"/>
            <conn input="take_every2.list" output="rest1"/>
            <conn input="make_point1.x" output="take_every1"/>
            <conn input="make_point1.y" output="take_every2"/>
            <conn input="length1.string" output="lookup1"/>
            <conn input="sub_string1.string" output="lookup1"/>
            <conn input="add1.value1" output="length1"/>
            <conn input="sub_string1.end" output="add1"/>
            <conn input="make_strings1.string" output="sub_string1"/>
        </node>
        <node comment="Arbitrary shapes can be interpolated using resample nodes." function="morph/morphPaths" name="morph4" position="19.00,17.00">
            <port description="" label="" name="path1" range="value" type="geometry" widget="none"/>
            <port description="" label="" name="path2" range="value" type="geometry" widget="none"/>
            <port description="" label="" name="t" range="value" type="float" value="14.0" widget="float"/>
        </node>
        <node name="rect3" position="15.00,5.00" prototype="corevector.rect">
            <port name="width" type="float" value="50.0"/>
            <port name="height" type="float" value="200.0"/>
        </node>
        <node name="resample3" position="15.00,7.00" prototype="corevector.resample">
            <port name="method" type="string" value="amount"/>
            <port name="points" type="int" value="100"/>
        </node>
        <node name="resample4" position="22.00,7.00" prototype="corevector.resample">
            <port name="method" type="string" value="amount"/>
            <port name="points" type="int" value="100"/>
        </node>
        <node name="reverse1" position="22.00,10.00" prototype="list.reverse"/>
        <node name="shift1" position="22.00,9.00" prototype="list.shift">
            <port name="amount" type="int" value="6"/>
        </node>
        <conn input="resample3.shape" output="rect3"/>
        <conn input="compound5.shape1" output="arc6"/>
        <conn input="compound5.shape2" output="ellipse5"/>
        <conn input="resample4.shape" output="compound5"/>
        <conn input="getPoints7.list" output="resample4"/>
        <conn input="shift1.list" output="getPoints7"/>
        <conn input="convert_range1.value" output="frame1"/>
        <conn input="morph4.t" output="convert_range1"/>
        <conn input="reverse1.list" output="shift1"/>
        <conn input="connect1.points" output="reverse1"/>
        <conn input="colorize1.shape" output="connect1"/>
        <conn input="morph4.path2" output="colorize1"/>
        <conn input="morph4.path1" output="resample3"/>
    </node>
</ndbx>
