<?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.shiva" module="jit" category="Jitter Particles">
	<digest>
		Generate/eliminate particles
	</digest>
	<description>
		The <o>jit.p.shiva</o> object generates Jitter matrices conforming to the Jitter particle system specification.
	</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="emit" get="1" set="1" type="int" size="1">
			<digest>
				Maximum particles emitted per frame
			</digest>
			<description>
				The maximum particles emitted per frame (default = 100)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Emit" />
			</attributelist>
		</attribute>
		<attribute name="emit_var" get="1" set="1" type="int" size="1">
			<digest>
				Amount of <at>emit</at> variance
			</digest>
			<description>
				The amount of <at>emit</at> variance (default = 15)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Emit Var" />
			</attributelist>
		</attribute>
		<attribute name="init" get="1" set="1" type="float" size="30">
			<digest>
				Per-plane initial values in <at>mode</at> 1 only
			</digest>
			<description>
				The initial values, per-plane in <at>mode</at> 1 only (default = 0.)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Init" />
			</attributelist>
		</attribute>
		<attribute name="init_var" get="1" set="1" type="float" size="30">
			<digest>
				Per-plane amount of <at>init</at> variance
			</digest>
			<description>
				The amount of <at>init</at> variance, per-plane (default = 0.)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Init Var" />
			</attributelist>
		</attribute>
		<attribute name="life" get="1" set="1" type="int" size="1">
			<digest>
				Maximum particle life
			</digest>
			<description>
				The maximum particle life (default = 60)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Life" />
			</attributelist>
		</attribute>
		<attribute name="life_var" get="1" set="1" type="int" size="1">
			<digest>
				Amount of <at>life</at> variance
			</digest>
			<description>
				The amount of <at>life</at> variance (default = 15)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Life Var" />
			</attributelist>
		</attribute>
		<attribute name="mode" get="1" set="1" type="int" size="1">
			<digest>
				<at>init</at> attribute flag enable
			</digest>
			<description>
				Use <at>init</at> attribute flag (default = 0)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Mode" />
			</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.shiva.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.p.bounds" />
		<seealso name="jit.p.vishnu" />
	</seealsolist>
	<discussion>
		Particle system matrices must be 2-dimensional (n x 2, where n is the maximum number of particles), and may be composed of either <m>float32</m> or <m>float64</m> data types. Planes 0 and 1 are reserved and represent a unique particle ID and the current life of the particle, respectively. All other planes (from plane 2 to plane 31) may be used to manage qualities for each particle. The second row always holds the immediately previous value of row 1.
		<p>
			Particles are emitted at a rate determined by the <at>emit</at> attribute, until the maximum number of particles are active. When newborn, their life is set to a value determined by the <at>life</at> attribute. Each time a particle passes through <o>jit.p.shiva</o>, its <at>life</at> is decremented. When <at>life</at> reaches zero, the particle is destroyed, allowing for new particles to be born. For this reason, particle systems in Jitter should be constructed as feedback systems. See the help files for examples.
		</p>
		Jitter objects with the <m>jit.p.</m> prefix expect properly specified particle systems matrices, and respect the reserved plane values. Other Jitter objects of use to particle systems construction (such as <o>jit.op</o>) have no knowledge of the matrix format, so care should be taken when you work with them, if you intend to feed the results back into <o>jit.p.shiva</o>.
	</discussion>
</c74object>
