<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<?xml-stylesheet href="./_c74_ref.xsl" type="text/xsl"?>

<!--This is an automatically generated file. DO NOT EDIT THIS FILE DIRECTLY. Rather, use the _ref.xml files found in the 'edits' folder.-->
<c74object name="jit.p.vishnu" module="jit" category="Jitter Particles">
	<digest>
		Apply single force to particles
	</digest>
	<description>
		The <o>jit.p.vishnu</o> object takes a Jitter particle systems matrix as input, and applies a specific single force world model to it.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Jitter
		</metadata>
		<metadata name="tag">
			Jitter Particles
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="matrix">
			<digest>
				in
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="matrix">
			<digest>
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="matrix">
			<digest>
				out
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="matrix">
			<digest>
				dumpout
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--MOP-->
	<mop matrixinputcount="1" matrixoutputcount="1">
		<matrixoutput name="out" planelink="1" typelink="1" dimlink="1" minplanecount="2" maxplanecount="32" mindimcount="2" maxdimcount="32">
			<types>
				float32 float64
			</types>
		</matrixoutput>
	</mop>
	<!--MESSAGES-->
	<jittermethodlist>
		<jittermethod name="bang" />
		<jittermethod name="clear" />
		<jittermethod name="exportattrs" />
		<jittermethod name="exportsummary" />
		<jittermethod name="getattributes" />
		<jittermethod name="getstate" />
		<jittermethod name="jit_matrix" />
		<jittermethod name="importattrs" />
		<jittermethod name="outputmatrix" />
		<jittermethod name="summary" />
	</jittermethodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="force" get="1" set="1" type="float" size="30">
			<digest>
				World force per-plane
			</digest>
			<description>
				The world force per-plane (default = 0. -0.001 0.)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Force" />
			</attributelist>
		</attribute>
		<attribute name="mode" get="1" set="1" type="int" size="1">
			<digest>
				Generation mode flag
			</digest>
			<description>
				Generation mode flag (default = 0 (use <at>pos</at> attribute))
				<br />
				When the flag is set, any pre-existing values in the matrix are used as initial positions. Otherwise, the <at>pos</at> attribute is used to generate an initial position for new particles.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Mode" />
			</attributelist>
		</attribute>
		<attribute name="pitch" get="1" set="1" type="float" size="1">
			<digest>
				Initial angle of deviation from the horizontal plane
			</digest>
			<description>
				The initial angle of deviation from the horizontal plane (in radians) (default = 1.5708)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Pitch" />
			</attributelist>
		</attribute>
		<attribute name="pitch_var" get="1" set="1" type="float" size="1">
			<digest>
				The amount of variance in <at>pitch</at> attribute output values
			</digest>
			<description>
				The amount of variance in <at>pitch</at> attribute output values (default = 0.6981)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Pitch Var" />
			</attributelist>
		</attribute>
		<attribute name="pos" get="1" set="1" type="float" size="30">
			<digest>
				Initial position, per-plane
			</digest>
			<description>
				The initial position, per-plane (default = 0. -0.5 -0.5)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Pos" />
			</attributelist>
		</attribute>
		<attribute name="pos_var" get="1" set="1" type="float" size="30">
			<digest>
				Amount of variance in <at>pos</at> attribute output values
			</digest>
			<description>
				The amount of variance in <at>pos</at> attribute output values (default = 0. 0. 0.)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Pos Var" />
			</attributelist>
		</attribute>
		<attribute name="speed" get="1" set="1" type="float" size="1">
			<digest>
				Initial speed
			</digest>
			<description>
				The initial speed (default = 0.05)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Speed" />
			</attributelist>
		</attribute>
		<attribute name="speed_var" get="1" set="1" type="float" size="1">
			<digest>
				Amount of variance in <at>speed</at> attribute output values
			</digest>
			<description>
				The amount of variance in <at>speed</at> attribute output values (default = 0.01)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Speed Var" />
			</attributelist>
		</attribute>
		<attribute name="yaw" get="1" set="1" type="float" size="1">
			<digest>
				Initial angle of deviation from the vertical plane
			</digest>
			<description>
				The initial angle of deviation from the vertical plane (in radians) (default = 0.)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Yaw" />
			</attributelist>
		</attribute>
		<attribute name="yaw_var" get="1" set="1" type="float" size="1">
			<digest>
				Amount of variance in <at>yaw</at> attribute output values
			</digest>
			<description>
				The amount of variance in <at>yaw</at> attribute output values (default = 6.2832)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Yaw Var" />
			</attributelist>
		</attribute>
	</attributelist>
	<jitterattributelist>
		<jitterattribute name="outputmode" />
		<jitterattribute name="out_name" />
		<jitterattribute name="type" />
		<jitterattribute name="dim" />
		<jitterattribute name="planecount" />
	</jitterattributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="jit.p.vishnu.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.p.bounds" />
		<seealso name="jit.p.shiva" />
	</seealsolist>
	<discussion>
		In order to do so, it interprets the matrix's planes in a particular way: if the incoming matrix is 5-plane, planes 2-4 are interpreted as 3-dimensional position data (x, y, z); if the incoming matrix is 8-plane, planes 2-4 are considered position data, and planes 5-7 as velocity data (in the 5-plane model, velocity is derived from an analysis of positional change).
		<p>
			The world of the <o>jit.p.vishnu</o> object is fairly simple: particles, born in the <o>jit.p.shiva</o> object are animated by applying force to them. New particles (i.e., particles with identical values in both rows 0 and 1) are given an initial position with the <at>pos</at> attribute. Next they are assigned an initial velocity, through the <at>pitch</at>, <at>yaw</at> and <at>speed</at> attributes. Finally, each time the particle passes through the object, the velocity is altered by the world's <at>force</at>.
		</p>
	</discussion>
</c74object>
