﻿<?xml version="1.0" encoding="UTF-8"?>
<!-- Note: These templates are provided as-is with no support.  They can, and likely will, change in future versions of Windows Live Essentials. -->
<X3D profile="Immersive"  version="3.1">
  <Transform>
    <MetadataSet name='Template'>
      <MetadataString containerField='value' name='TemplateID' value='"PixelateSize70EffectTemplate"'/>
      <MetadataInteger containerField='value' name='TemplateKind' value='3'/>
      <MetadataString containerField='value' name='TimeDependentNode' value='""'/>
      <MetadataString containerField='value' name='TemplateTitle' value='"PixelFX Pixelate x70"'/>
      <MetadataString containerField='value' name='TemplateCategory' value='"Reimaginated Suite - PixelFX"'/>
      <MetadataString containerField='value' name='TemplateThumbnailPath' value='"Effects\IgniterDire\Pixel70.ico"'/>
      <MetadataInteger containerField='value' name='TemplateSubType' value='1'/>
      <MetadataInteger containerField='value' name='TemplateEffectKind' value='1'/>
    </MetadataSet>

    <!--OUT properties -->
    <Transform>
      <MetadataSet DEF='OutSockets'>
        <MetadataSet containerField='value' name='OutSocket'>
          <MetadataString containerField='value' name='socketName' value='"effectShaderSet"'/>
          <MetadataFloat containerField='value' name='socketCompatibilitySet' value='1.0'/>
          <MetadataString containerField='value' name='socketConnectToExtent' value='"current"'/>
          <MetadataString containerField='value' name='socketParentDEF' value='""'/>
          <MetadataString containerField='value' name='socketChildNodeDEF' value='"ShaderSet"'/>
        </MetadataSet>
      </MetadataSet>
    </Transform>

    <!--IN properties -->
    <Transform>
      <MetadataSet DEF='InSockets'>
        <MetadataSet containerField='value' name='InSocket'>
          <MetadataString containerField='value' name='socketName' value='"effectTimer"'/>
          <MetadataFloat containerField='value' name='socketCompatibilitySet' value='1.0'/>
          <MetadataString containerField='value' name='socketParentDEF' value='"PixelateEffectInterpolator"'/>
          <MetadataString containerField='value' name='socketConnectAttribute' value='"set_fraction"'/>
        </MetadataSet>
        <MetadataSet containerField='value' name='InSocket'>
          <MetadataString containerField='value' name='socketName' value='"projectAspectRatio"'/>
          <MetadataFloat containerField='value' name='socketCompatibilitySet' value='1.0'/>
          <MetadataString containerField='value' name='socketParentDEF' value='"PixelateCountInterpolator"'/>
          <MetadataString containerField='value' name='socketConnectAttribute' value='"set_fraction"'/>
        </MetadataSet>
      </MetadataSet>
    </Transform>

    <!--Socket Nodes scratch pad (only nodes with def's are injected)-->
    <Transform>
      <Shape>
        <Appearance>
          <MotionTexture>
            <ShaderSet DEF='ShaderSet'>
              <PixelateShader DEF='PixelateShader' minPixelCount='12 8'/>
            </ShaderSet>
          </MotionTexture>
        </Appearance>
    </Shape>
    </Transform>

    <!--Nodes that need to be injected-->
    <Transform DEF='InjectSet'>
      <ScalarInterpolator DEF='PixelateEffectInterpolator' key='0 1' keyValue='0.7 0.7'/>
      <ROUTE fromNode='PixelateEffectInterpolator' fromField='value_changed' toNode='PixelateShader' toField='set_fraction'/>

      <!--Aspect ratio calculation: we'll always want the minimum vertical pixel count to be 8;
      we only adjust the horizontal value based on the aspect ratio (if it's 1, we want 8 8)-->
      <PositionInterpolator2D DEF='PixelateCountInterpolator' key='0 10' keyValue='0 8 80 8'/>
      <ROUTE fromNode='PixelateCountInterpolator' fromField='value_changed' toNode='PixelateShader' toField='set_minPixelCount'/>
    </Transform>

  </Transform>
</X3D>
