<?xml version="1.0" encoding="iso-8859-1"?>
<xsi_file type="CompoundNode" name="Density" category="Effects" author="Reinhard Claus" formatversion="1.4" compoundversion="1.0" constructionmode="Animation" backgroundcolor="2982012">
	<description><![CDATA[Outputs Tension Values that could be applied to a weightmap, or for controlling other deforms inside an ICE graph]]></description>
	<definition>
		<nodes>
			<node type="GetDataNode" index="1">
				<param name="reference" type="31" value="Self.PointNeighbors"></param>
				<param_ext name="reference" type="31" value="Self.PointNeighbors"></param_ext>
				<portdef name="source" type="2048" structure="1" group="1" instance="0" port="0"></portdef>
				<portdef name="inname" type="8192" structure="1" group="3" instance="0" port="0"></portdef>
				<datablob category="ui_infos">
					<prop name="posx">-406</prop>
					<prop name="posy">-741</prop>
					<prop name="state">ConnectedOnly</prop>
				</datablob>
			</node>
			<node type="GetDataNode" index="3">
				<param name="reference" type="31" value="PointPosition"></param>
				<param_ext name="reference" type="31" value="PointPosition"></param_ext>
				<portdef name="source" type="2048" structure="2" group="1" instance="0" port="0"></portdef>
				<portdef name="inname" type="8192" structure="1" group="3" instance="0" port="0"></portdef>
				<datablob category="ui_infos">
					<prop name="posx">-128</prop>
					<prop name="posy">-762</prop>
					<prop name="state">Normal</prop>
				</datablob>
			</node>
			<node type="GetDistanceBetweenNode" index="6">
				<param name="first.first_x" type="4" value="0.000000"></param>
				<param name="first.first_y" type="4" value="0.000000"></param>
				<param name="first.first_z" type="4" value="0.000000"></param>
				<param name="second.second_x" type="4" value="0.000000"></param>
				<param name="second.second_y" type="4" value="0.000000"></param>
				<param name="second.second_z" type="4" value="0.000000"></param>
				<portdef name="first" type="16" structure="1" group="0" instance="0" port="0"></portdef>
				<portdef name="second" type="16" structure="2" group="0" instance="0" port="1"></portdef>
				<datablob category="ui_infos">
					<prop name="posx">46</prop>
					<prop name="posy">-827</prop>
					<prop name="state">Normal</prop>
				</datablob>
			</node>
			<node type="GetArrayAverageNode" index="7">
				<param name="array" type="4" value="0.000000"></param>
				<portdef name="array" type="4" structure="2" group="0" instance="0" port="0"></portdef>
				<datablob category="ui_infos">
					<prop name="posx">304</prop>
					<prop name="posy">-800</prop>
					<prop name="state">Collapsed</prop>
				</datablob>
			</node>
			<node type="GetDataNode" index="8">
				<param name="reference" type="31" value="PointPosition"></param>
				<param_ext name="reference" type="31" value="PointPosition"></param_ext>
				<portdef name="source" type="2048" structure="1" group="1" instance="0" port="0"></portdef>
				<portdef name="inname" type="8192" structure="1" group="3" instance="0" port="0"></portdef>
				<datablob category="ui_infos">
					<prop name="posx">-129</prop>
					<prop name="posy">-895</prop>
					<prop name="state">Normal</prop>
				</datablob>
			</node>
			<node type="MultiplyNode" index="9">
				<param name="value1" type="4" value="1.000000"></param>
				<param name="value2" type="4" value="1.283000"></param>
				<portdef name="value1" type="4" structure="1" group="0" instance="0" port="0"></portdef>
				<portdef name="value2" type="4" structure="1" group="0" instance="1" port="0"></portdef>
				<datablob category="ui_infos">
					<prop name="posx">683</prop>
					<prop name="posy">-843</prop>
					<prop name="state">ConnectedOnly</prop>
				</datablob>
			</node>
			<node type="GetDataNode" index="11">
				<param name="reference" type="31" value="Self.PointLocation"></param>
				<param_ext name="reference" type="31" value="Self.PointLocation"></param_ext>
				<portdef name="source" type="2048" structure="1" group="1" instance="0" port="0"></portdef>
				<portdef name="inname" type="8192" structure="1" group="3" instance="0" port="0"></portdef>
				<datablob category="ui_infos">
					<prop name="posx">-387</prop>
					<prop name="posy">-890</prop>
					<prop name="state">Normal</prop>
				</datablob>
			</node>
			<node type="FCurveNode" index="15">
				<param name="profile" type="buffer">2 20 1 0.99574 -1.79769E+308 1.79769E+308 3 0
0 -0.003167 0.995740 0.248826 -0.630913 -0.082112 0.208201 4 3
0 0.989609 -0.001888 0.224249 -0.004147 -0.838864 0.015514 4 3
</param>
				<param name="in" type="4" value="0.000000"></param>
				<portdef name="in" type="4" structure="1" group="0" instance="0" port="0"></portdef>
				<datablob category="ui_infos">
					<prop name="posx">529</prop>
					<prop name="posy">-832</prop>
					<prop name="state">Normal</prop>
				</datablob>
			</node>
			<comment type="node" state="maximized" wordwrap="true" autoresize="true" background="0" background_alpha="0.000000" title="14876671" title_text="0" offsetx="448" offsety="-734" sizex="618" sizey="346"><![CDATA[Postprocessing is where most of the customization would take place. From the previous computation you receive the average edge length in object space for a point's adajcent edges

Denisity uses a fcurve profile to "inverse" the density (e.g. less edge length = more denisty) and cuts off values <0 and >1 (with a smooth transition).


Example   customization

>>>when rendering you could modify the fcurve for a different look / profile of the density calculation
>>>you adjust the fcurve to allow edge lengths that are far greater than 1 (currenly everything above 1 equals a density of 0)]]></comment>
			<comment type="group" state="maximized" wordwrap="false" autoresize="false" background="0" background_alpha="0.100000" title="14876534" title_text="0" offsetx="-162" offsety="-935" sizex="405" sizey="313"><![CDATA[Get Distances between Point and Point Neightbors (for the Object)]]></comment>
			<comment type="node" state="maximized" wordwrap="true" autoresize="true" background="0" background_alpha="0.000000" title="6553599" title_text="16711680" offsetx="-48" offsety="-1140" sizex="515" sizey="20"><![CDATA[D e n s i t y    C o m p o u n d  
This calculates mesh density in the object coordinate space. By the default settings, all edge lengths >1 produce a density value of 0, as the edge lengths get closer to 0, the density value will approach 1.

Usage(Example).....
>>>Create a weightmap, create a set data node for the "weights" parameter of this weightmap. 
>>>Plug the set data node into the ICETree main node. Plug this Density Node into the set data node.
>>>Move the ICETree node above the point in the stack where the deformations happen that you want to have registered (e.g. "Animation" Marker)
>>>Make Weightmaps visible and test the output, customize the compound, access the values from the rendertree with a Map Lookup (Scalar) node

compound version 1.0 created by Reinhard Claus]]></comment>
			<comment type="group" state="maximized" wordwrap="true" autoresize="false" background="0" background_alpha="0.100000" title="14876534" title_text="0" offsetx="519" offsety="-881" sizex="306" sizey="140"><![CDATA[Postprocessing....]]></comment>
		</nodes>
		<exposed_ports>
			<port index="9" portname="value2" username="Gain" basename="Gain" portlabel="Gain" exposetype="single"> </port>
			<port index="9" portname="result" username="Result" basename="Result" portlabel="Result" exposetype="single"> </port>
		</exposed_ports>
		<connections>
			<cnx from_node="7" from_port="result" to_node="15" to_port="in"> </cnx>
			<cnx from_node="1" from_port="value" to_node="3" to_port="source"> </cnx>
			<cnx from_node="3" from_port="value" to_node="6" to_port="second"> </cnx>
			<cnx from_node="6" from_port="result" to_node="7" to_port="array"> </cnx>
			<cnx from_node="8" from_port="value" to_node="6" to_port="first"> </cnx>
			<cnx from_node="11" from_port="value" to_node="8" to_port="source"> </cnx>
			<cnx from_node="15" from_port="out" to_node="9" to_port="value1"> </cnx>
		</connections>
		<layout>
			<item type="input" name="Gain" min="0" max="100"> </item>
			<item type="output" name="Result"> </item>
		</layout>
	</definition>
</xsi_file>
