<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ndbx formatVersion="20" type="file" uuid="1d7b8f6f-e310-4ca7-9c8c-ac6b9012f1ca">
    <property name="canvasHeight" value="1000"/>
    <property name="canvasWidth" value="1000"/>
    <property name="canvasX" value="0"/>
    <property name="canvasY" value="0"/>
    <link href="python:pi_funcs.py" rel="functions"/>
    <node name="root" prototype="core.network" renderedChild="align2">
        <node name="align2" position="-2.00,8.00" prototype="corevector.align"/>
        <node name="angles" position="-4.00,0.00" prototype="core.network" renderedChild="add1">
            <node name="add1" position="-2.00,5.00" prototype="math.add">
                <port name="value2" type="float" value="180.0"/>
            </node>
            <node name="divide1" position="-2.00,-1.00" prototype="math.divide">
                <port name="value1" type="float" value="360.0"/>
                <port name="value2" type="float" value="10.0"/>
            </node>
            <node name="range1" outputRange="value" position="-2.00,1.00" prototype="math.range">
                <port name="end" type="float" value="360.0"/>
            </node>
            <node function="pi_funcs/selector" name="selector" position="-2.00,3.00">
                <port description="" label="" name="list" range="value" type="list" widget="none"/>
                <port description="" label="" name="index" range="value" type="int" value="9" widget="int"/>
            </node>
            <port childReference="selector.index" description="" label="" name="index" range="value" type="int" value="9" widget="int"/>
            <conn input="range1.step" output="divide1"/>
            <conn input="selector.list" output="range1"/>
            <conn input="add1.value1" output="selector"/>
        </node>
        <node name="colors" position="-1.00,1.00" prototype="core.network" renderedChild="selector">
            <node name="hsb_color1" position="6.00,1.00" prototype="color.hsb_color">
                <port name="hue" type="float" value="296.0"/>
                <port name="saturation" type="float" value="255.0"/>
                <port name="brightness" type="float" value="255.0"/>
            </node>
            <node name="range1" position="6.00,0.00" prototype="math.range">
                <port name="end" type="float" value="255.0"/>
                <port name="step" type="float" value="25.5"/>
            </node>
            <node function="pi_funcs/selector" name="selector" position="6.00,2.00">
                <port description="" label="" name="list" range="list" type="list" widget="none"/>
                <port description="" label="" name="index" range="value" type="int" value="9" widget="int"/>
            </node>
            <port childReference="selector.index" description="" label="" name="index" range="value" type="int" value="9" widget="int"/>
            <conn input="hsb_color1.hue" output="range1"/>
            <conn input="selector.list" output="hsb_color1"/>
        </node>
        <node name="group1" position="-2.00,6.00" prototype="corevector.group"/>
        <node name="lines" position="-2.00,3.00" prototype="core.network" renderedChild="align1">
            <node name="align1" position="1.00,6.00" prototype="corevector.align">
                <port name="halign" type="string" value="none"/>
                <port name="valign" type="string" value="none"/>
            </node>
            <node name="colorize1" position="1.00,5.00" prototype="corevector.colorize">
                <port name="strokeWidth" type="float" value="40.0"/>
            </node>
            <node name="line1" position="1.00,3.00" prototype="corevector.line">
                <port name="point1" type="point" value="0.00,10.00"/>
                <port name="point2" type="point" value="0.00,0.00"/>
            </node>
            <node name="rotate1" position="1.00,4.00" prototype="corevector.rotate"/>
            <port childReference="rotate1.angle" description="The rotation angle (in degrees)." label="" name="angle" range="value" type="float" value="0.0" widget="float"/>
            <port childReference="colorize1.stroke" description="The new stroke color." label="" name="stroke" range="value" type="color" value="#000000ff" widget="color"/>
            <conn input="rotate1.shape" output="line1"/>
            <conn input="colorize1.shape" output="rotate1"/>
            <conn input="align1.shape" output="colorize1"/>
        </node>
        <node function="pi_funcs/pass_through" name="node1" position="3.00,0.00">
            <port description="" label="" name="item" range="value" type="item" widget="none"/>
        </node>
        <node name="pi_data" position="-3.00,-5.00" prototype="core.network" renderedChild="round1">
            <node name="import_csv1" position="0.00,-1.00" prototype="data.import_csv">
                <port name="file" type="string" value="pi.csv"/>
            </node>
            <node name="lookup1" position="0.00,0.00" prototype="data.lookup">
                <port name="key" type="string" value="0"/>
            </node>
            <node name="round1" position="0.00,1.00" prototype="math.round"/>
            <conn input="lookup1.list" output="import_csv1"/>
            <conn input="round1.value" output="lookup1"/>
        </node>
        <node name="points" position="-8.00,0.00" prototype="core.network" renderedChild="make_point1">
            <node name="make_point1" position="-11.00,0.00" prototype="corevector.make_point"/>
            <node function="pi_funcs/x_points" name="x_points" outputRange="list" position="-12.00,-2.00">
                <port description="" label="" name="list" range="list" type="int" value="0" widget="int"/>
                <port description="" label="" name="index" range="value" type="int" value="0" widget="int"/>
            </node>
            <node function="pi_funcs/x_points" name="y_points" outputRange="list" position="-9.00,-2.00">
                <port description="" label="" name="list" range="list" type="int" value="0" widget="int"/>
                <port description="" label="" name="index" range="value" type="int" value="1" widget="int"/>
            </node>
            <port childReference="x_points.list" description="" label="" name="list_1" range="list" type="int" value="0" widget="int"/>
            <port childReference="y_points.list" description="" label="" name="list_2" range="list" type="int" value="0" widget="int"/>
            <conn input="make_point1.x" output="x_points"/>
            <conn input="make_point1.y" output="y_points"/>
        </node>
        <node name="scale1" position="-2.00,7.00" prototype="corevector.scale">
            <port name="scale" type="point" value="55.00,55.00"/>
        </node>
        <node name="slice1" position="-3.00,-4.00" prototype="list.slice">
            <port name="start_index" type="int" value="40000"/>
            <port name="size" type="int" value="15000"/>
        </node>
        <node name="translate1" position="-2.00,5.00" prototype="corevector.translate"/>
        <conn input="slice1.list" output="pi_data"/>
        <conn input="node1.item" output="slice1"/>
        <conn input="colors.index" output="node1"/>
        <conn input="angles.index" output="slice1"/>
        <conn input="group1.shapes" output="translate1"/>
        <conn input="scale1.shape" output="group1"/>
        <conn input="align2.shape" output="scale1"/>
        <conn input="points.list_1" output="slice1"/>
        <conn input="points.list_2" output="slice1"/>
        <conn input="translate1.translate" output="points"/>
        <conn input="lines.angle" output="angles"/>
        <conn input="lines.stroke" output="colors"/>
        <conn input="translate1.shape" output="lines"/>
    </node>
</ndbx>
