<?xml version="1.0"?>
<!DOCTYPE kpartgui>
<effect tag="frei0r.kaleid0sc0pe" id="frei0r.kaleid0sc0pe">
    <name>Kaleidoscope</name>
    <description>Applies a kaleidoscope effect</description>
    <author>frei0r.kaleid0sc0pe</author>
    <parameter type="animated" name="origin_x" default="0.5" min="0" max="100" factor="100">
        <name>Origin X</name>
        <comment>Move the origin of the kaleidoscope along the X axis</comment>
    </parameter>
    <parameter type="animated" name="origin_y" default="0.5" min="0" max="100" factor="100">
        <name>Origin Y</name>
        <comment>Move the origin of the kaleidoscope along the Y axis</comment>
    </parameter>
    <parameter type="animated" name="segmentation" default="0.125" min="0" max="128" factor="128">
        <name>Segmentation</name>
        <comment><![CDATA[Kaleidoscope segmentation / 128;<br>
        segmentations of 1, 2, or multiples of 4 work best. Default is 16]]></comment> 
    </parameter>
    <parameter type="bool" name="specify_source" default="0" min="0" max="1" factor="1">
        <name>Specify Source Segment</name>
        <comment><![CDATA[If checked, the source angle<br>
        is read from the <em>source segment</em>, otherwise it is auto calculated]]></comment>
    </parameter>
    <parameter type="animated" name="source_segment" default="0" min="0" max="128" factor="128">
        <name>Source Segment</name>
        <comment><![CDATA[Center of the source segment. Only used if <em>Specify Source Segment</em> is checked.<br>
        0 is in +x and rotates counter clockwise.]]></comment>
    </parameter>
    <parameter type="list" name="segmentation_direction" default="1" paramlist="0;0.5;1">
    	<paramlistdisplay>None,Counter Clockwise,Clockwise</paramlistdisplay>
        <name>Segmentation Direction</name>
        <comment>Direction of the segmentation.</comment>
    </parameter>
    <parameter type="bool" name="reflect_edges" default="1" min="0" max="1">
        <name>Reflect Edges</name>
        <comment><![CDATA[If checked, reflections that end up outside the source reflect back into it.<br>
        Otherwise the specified background color is used.]]></comment>
    </parameter>
    <parameter type="animated" name="edge_threshold" default="0" min="0" max="1" decimals="3">
        <name>Edge Threshold</name>
        <comment><![CDATA[Edge threshold / 4, reflections <br>
        outside the image but within this distance clamp to the edge.]]></comment>
    </parameter>
    <parameter type="list" name="preferred_corner" default="0" paramlist="0;0.25;0.5;0.75">
    	<paramlistdisplay>Top right,Top left,Bottom left,Bottom right</paramlistdisplay>
        <name>Preferred Corner</name>
        <comment><![CDATA[If <em>Reflect Edges</em> is not checked, <br>
        this parameter defines the preferred corner.]]></comment>
    </parameter>
    <parameter type="bool" name="corner_search" default="1" min="0" max="1">
        <name>Corner Search</name>
        <comment><![CDATA[If checked, search clockwise for furthest corner.<br>
        Otherwise search counter clockwise.]]></comment>
    </parameter>
    <parameter type="color" name="bg_color" default="#ff00ff">
        <name>Background Color</name>
        <comment><![CDATA[Color to use if reflection<br>
        lies outside of the source image and not reflecting back in.]]></comment>
    </parameter>
    <parameter type="bool" name="bg_alpha" default="1" min="0" max="1">
        <name>No Alpha Background</name>
        <comment><![CDATA[If checked, the selected<br>
        color will be used, if reflection lies outside of the source image and not reflecting back in.]]></comment>
    </parameter>
</effect>
