<?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.anim.path" module="jit" category="Jitter Animation">
	<digest>
		Evaluate a path of 3D transform points
	</digest>
	<description>
		Takes a series of 3D transform points and interpolates between them. See the <o>jit.path</o> object for more information on this interpolation. Each point stores 11 values: a time value, 3 position values, 3 scale values and 4 quaternion rotation values.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Jitter
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				messages or matrix in
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
				messages or matrix in
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				evaluated position/scale/quat values
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				dumpout
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--MESSAGES-->
	<methodlist>
		<method name="bang">
			<arglist />
			<digest>
				Update the path animation
			</digest>
			<description>
				Cause the animation to update, if currently active, and the transform messages to output.
			</description>
		</method>
		<method name="addquat">
			<arglist>
				<arg name="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
				<arg name="w" type="float" />
			</arglist>
			<digest>
				Add quaternion orientation values
			</digest>
			<description>
				Add quaternion orientation values to the last point in the path.
			</description>
		</method>
		<method name="addrotate">
			<arglist>
				<arg name="angle" type="float" />
				<arg name="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
			</arglist>
			<digest>
				Add angle-axis orientation values
			</digest>
			<description>
				Add angle-axis orientation values to the last point in the path. The values are converted to a quaternion before adding.
			</description>
		</method>
		<method name="addrotatexyz">
			<arglist>
				<arg name="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
			</arglist>
			<digest>
				Add euler orientation values
			</digest>
			<description>
				Add euler orientation values to the last point in the path. The values are converted to a quaternion before adding.
			</description>
		</method>
		<method name="addscale">
			<arglist>
				<arg name="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
			</arglist>
			<digest>
				Add scale values
			</digest>
			<description>
				Add scale values to the last point in the path.
			</description>
		</method>
		<method name="append">
			<arglist>
				<arg name="time" type="float" />
				<arg name="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
				<arg name="scale-x" optional="1" type="float" />
				<arg name="scale-y" optional="1" type="float" />
				<arg name="scale-z" optional="1" type="float" />
				<arg name="quat-x" optional="1" type="float" />
				<arg name="quat-y" optional="1" type="float" />
				<arg name="quat-z" optional="1" type="float" />
				<arg name="quat-w" optional="1" type="float" />
			</arglist>
			<digest>
				Append point values
			</digest>
			<description>
				Append point values to the end of the path. If necessary, the path will be resorted based on the <ar>time</ar> value prior to evaluation.
			</description>
		</method>
		<method name="calchandles">
			<arglist />
			<digest>
				Calculate the path handles
			</digest>
			<description>
				Calculate the path handles of each point in the path using the Catmull-Rom method. This will overwrite any previously stored handles.
			</description>
		</method>
		<method name="clear">
			<arglist />
			<digest>
				Remove all points from the path
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="closepath">
			<arglist />
			<digest>
				Create a closed path
			</digest>
			<description>
				Close the path by adding a point to the end equal to the first point.
			</description>
		</method>
		<method name="eval">
			<arglist>
				<arg name="parameter" type="float" />
			</arglist>
			<digest>
				Evaluate the path using <ar>parameter</ar> 
			</digest>
			<description>
				Evaluate the path using <ar>parameter</ar>, (between 0. and 1.) and output the interpolated values.
			</description>
		</method>
		<method name="evallength">
			<arglist>
				<arg name="length-parameter" type="float" />
			</arglist>
			<digest>
				Evaluate the path using <ar>length-parameter</ar> 
			</digest>
			<description>
				Evaluate the path using the <ar>length-parameter</ar> (between 0 and <at>pathlength</at>) and output the interpolated values.
			</description>
		</method>
		<method name="evaltime">
			<arglist>
				<arg name="time" type="float" />
			</arglist>
			<digest>
				Evaluate the path using <ar>time</ar> 
			</digest>
			<description>
				Evaluate the path using <ar>time</ar> (between 0 and <at>duration</at>) and output the interpolated values.
			</description>
		</method>
		<method name="delete">
			<arglist>
				<arg name="index" type="int" />
			</arglist>
			<digest>
				Delete the point at <ar>index</ar> 
			</digest>
			<description>
				Delete the point at <ar>index</ar>.
			</description>
		</method>
		<method name="edit">
			<arglist>
				<arg name="index" type="int" />
				<arg name="time" type="float" />
				<arg name="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
				<arg name="scale-x" type="float" />
				<arg name="scale-y" type="float" />
				<arg name="scale-z" type="float" />
				<arg name="quat-x" type="float" />
				<arg name="quat-y" type="float" />
				<arg name="quat-z" type="float" />
				<arg name="quat-w" type="float" />
			</arglist>
			<digest>
				Edit the point at <ar>index</ar>.
			</digest>
			<description>
				Edit the point at <ar>index</ar> 
			</description>
		</method>
		<method name="edithandle">
			<arglist>
				<arg name="index" type="int" />
				<arg name="time" type="float" />
				<arg name="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
				<arg name="scale-x" type="float" />
				<arg name="scale-y" type="float" />
				<arg name="scale-z" type="float" />
				<arg name="quat-x" type="float" />
				<arg name="quat-y" type="float" />
				<arg name="quat-z" type="float" />
				<arg name="quat-w" type="float" />
			</arglist>
			<digest>
				Edit the point handle at <ar>index</ar> 
			</digest>
			<description>
				Edit the point handle at <ar>index</ar>.
			</description>
		</method>
		<method name="gethandle">
			<arglist>
				<arg name="index" type="int" />
			</arglist>
			<digest>
				Get handle values at <ar>index</ar> 
			</digest>
			<description>
				Get handle values at <ar>index</ar> and output through the right (dumpout) outlet.
			</description>
		</method>
		<method name="getpoint">
			<arglist>
				<arg name="index" type="int" />
			</arglist>
			<digest>
				Get point values at <ar>index</ar> 
			</digest>
			<description>
				Get point values at <ar>index</ar> and output through the right (dumpout) outlet.
			</description>
		</method>
		<method name="insert">
			<arglist>
				<arg name="index" type="int" />
				<arg name="time" type="float" />
				<arg name="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
				<arg name="scale-x" optional="1" type="float" />
				<arg name="scale-y" optional="1" type="float" />
				<arg name="scale-z" optional="1" type="float" />
				<arg name="quat-x" optional="1" type="float" />
				<arg name="quat-y" optional="1" type="float" />
				<arg name="quat-z" optional="1" type="float" />
				<arg name="quat-w" optional="1" type="float" />
			</arglist>
			<digest>
				Insert a new point at <ar>index</ar> 
			</digest>
			<description>
				Insert a new point at <ar>index</ar> 
			</description>
		</method>
		<method name="next">
			<arglist />
			<digest>
				Advance to next point
			</digest>
			<description>
				Advance the path animation to the next point.
			</description>
		</method>
		<method name="prev">
			<arglist />
			<digest>
				Rewind to previous point
			</digest>
			<description>
				Rewind the path animation to the previous point
			</description>
		</method>
		<method name="setquat">
			<arglist>
				<arg name="index" type="int" />
				<arg name="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
				<arg name="w" type="float" />
			</arglist>
			<digest>
				Set quaternion orientation values at <ar>index</ar> 
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="setrotate">
			<arglist>
				<arg name="index" type="int" />
				<arg name="angle" type="float" />
				<arg name="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
			</arglist>
			<digest>
				Set angle-axis orientation orientation values at <ar>index</ar> 
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="setrotatexyz">
			<arglist>
				<arg name="index" type="int" />
				<arg name="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
			</arglist>
			<digest>
				Set euler orientation orientation values at <ar>index</ar> 
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="settime">
			<arglist>
				<arg name="index" type="int" />
			</arglist>
			<digest>
				Set time at <ar>index</ar> 
			</digest>
			<description>
				Set time at <ar>index</ar>. If necessary, the path will be resorted prior to evaluation.
			</description>
		</method>
		<method name="setscale">
			<arglist>
				<arg name="index" type="int" />
				<arg name="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
			</arglist>
			<digest>
				Set scale values at <ar>index</ar> 
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="sorttime">
			<arglist />
			<digest>
				Sort path based on time values
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="start">
			<arglist />
			<digest>
				Start path animation
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="stop">
			<arglist />
			<digest>
				Stop path animation
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
	</methodlist>
	<jittermethodlist>
		<jittermethod name="exportattrs" />
		<jittermethod name="exportsummary" />
		<jittermethod name="getattributes" />
		<jittermethod name="getstate" />
		<jittermethod name="jit_matrix" />
		<jittermethod name="importattrs" />
		<jittermethod name="summary" />
	</jittermethodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="autohandles" get="1" set="1" type="int" size="1">
			<digest>
				Enable automatic handle calculation
			</digest>
			<description>
				Enable the calculation of handle values every time the path is edited (default = 1).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Auto Handles" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="automatic" get="1" set="1" type="int" size="1">
			<digest>
				Enable automatic animation
			</digest>
			<description>
				Enable automatic animation notifications from the attached render context (default = 1).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Automatic" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="closed" get="1" set="0" type="int" size="1">
			<digest>
				Indicates a closed path
			</digest>
			<description>
				Indicates the path is closed (first and last points are equal).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Closed" />
			</attributelist>
		</attribute>
		<attribute name="drawpath" get="1" set="1" type="symbol" size="1">
			<digest>
				Name of <o>jit.gl.path</o> object
			</digest>
			<description>
				Name of a <o>jit.gl.path</o> object used to draw this path.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Draw Path" />
			</attributelist>
		</attribute>
		<attribute name="drawto" get="1" set="1" type="symbol" size="1">
			<digest>
				Assign to named drawing context.
			</digest>
			<description>
				Assign to the named drawing context, allowing for updates to be received automatically.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Drawto" />
			</attributelist>
		</attribute>
		<attribute name="duration" get="1" set="0" type="float" size="1">
			<digest>
				Path duration in seconds
			</digest>
			<description>
				Path duration in seconds (default = 0.)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Duration" />
			</attributelist>
		</attribute>
		<attribute name="endreport" get="1" set="1" type="int" size="1">
			<digest>
				Enable animation end reporting
			</digest>
			<description>
				Enable animation end reporting (default = 0). The symbol <m>endnotify</m> is sent out the dumpout when the animation ends. Only valid if <at>loop</at>= 0.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="End Report" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="evalquat" get="1" set="1" type="int" size="1">
			<digest>
				Output evaluated quaternion values
			</digest>
			<description>
				Output evaluated quaternion values (default = 0). Adding orientation values to the path enables.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Eval Quat" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="evalreport" get="1" set="1" type="int" size="1">
			<digest>
				Enable/disable evaluation parameter reporting
			</digest>
			<description>
				Enable/disable the evaluation parameter reporting out the dumpout (default = 0). The report is a 3 element list where each element represents the current evaluation parameters as 0 to 1, 0 to duration, and 0 to length, in that order.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Eval Report" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="evalscale" get="1" set="1" type="int" size="1">
			<digest>
				Output evaluated scale values
			</digest>
			<description>
				Output evaluated scale values (default = 0). Adding scale	values to the path enables.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Eval Scale" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="interpmode" get="1" set="1" type="symbol" size="1">
			<digest>
				Path interpolation method
			</digest>
			<description>
				Path interpolation method (default = linear).
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="2">
					<enumlist>
						<enum name="linear">
							<digest>
								Linear interpolation
							</digest>
							<description>
								Linear interpolation
							</description>
						</enum>
						<enum name="spline">
							<digest>
								Hermite interpolation
							</digest>
							<description>
								Linear interpolation
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Interpolation Mode" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
		<attribute name="length" get="1" set="0" type="float" size="1">
			<digest>
				Path length
			</digest>
			<description>
				Path length (default = 0.)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Length" />
			</attributelist>
		</attribute>
		<attribute name="loop" get="1" set="1" type="int" size="1">
			<digest>
				Path animation loop method
			</digest>
			<description>
				Path animation loop method (default = 1).
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="3">
					<enumlist>
						<enum name="off">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="on">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="palindrome">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Loop" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enumindex" />
			</attributelist>
		</attribute>
		<attribute name="loopreport" get="1" set="1" type="int" size="1">
			<digest>
				Enable animation loop reporting
			</digest>
			<description>
				Enable animation loop reporting (default = 0). The symbol <m>loopnotify</m> is sent out the dumpout when the animation loops. Only valid if <at>loop</at> is not 0.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Loop Report" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="name" get="1" set="1" type="symbol" size="1">
			<digest>
				Instance name
			</digest>
			<description>
				Specifies the name of the instance (default = UID).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Name" />
			</attributelist>
		</attribute>
		<attribute name="play" get="1" set="1" type="int" size="1">
			<digest>
				Enable path animation
			</digest>
			<description>
				Enable path animation (default = 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Play" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="pointcount" get="1" set="0" type="int" size="1">
			<digest>
				Number of path points
			</digest>
			<description>
				Number of path points (default = 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Point Count" />
			</attributelist>
		</attribute>
		<attribute name="position" get="1" set="0" type="float" size="3">
			<digest>
				Current path position
			</digest>
			<description>
				Current path position (default = 0. 0. 0.).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Position" />
			</attributelist>
		</attribute>
		<attribute name="quat" get="1" set="0" type="float" size="4">
			<digest>
				Current path quaternion orientation
			</digest>
			<description>
				Current path quaternion orientation (default = 0. 0. 0. 1.)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Quat" />
			</attributelist>
		</attribute>
		<attribute name="rate" get="1" set="1" type="float" size="1">
			<digest>
				Animation rate value
			</digest>
			<description>
				Animation rate value (default = 1.)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Rate" />
			</attributelist>
		</attribute>
		<attribute name="scale" get="1" set="0" type="float" size="3">
			<digest>
				Current path scale value
			</digest>
			<description>
				Current path scale value (default = 1. 1. 1.).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Scale" />
			</attributelist>
		</attribute>
		<attribute name="shortestrot" get="1" set="1" type="int" size="1">
			<digest>
				Use the shortest path between rotations
			</digest>
			<description>
				Use the shortest path between rotations (default = 1).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Shortest Rotation" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="targetname" get="1" set="1" type="symbol" size="1">
			<digest>
				Name of target object
			</digest>
			<description>
				The name of the target object that should be either an OpenGL object, or a <o>jit.anim.node</o> object.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Target Name" />
			</attributelist>
		</attribute>
		<attribute name="time" get="1" set="1" type="float" size="1">
			<digest>
				Current path time value
			</digest>
			<description>
				Current path time value (default = 0.)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Time" />
			</attributelist>
		</attribute>
		<attribute name="timemode" get="1" set="1" type="symbol" size="1">
			<digest>
				Determine how time values added to path
			</digest>
			<description>
				Determine how time values added to the path (default = relative).
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="2">
					<enumlist>
						<enum name="absolute">
							<digest>
								Time value is set to argument
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="relative">
							<digest>
								Time value is set to argument plus previous time value
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Time Mode" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
	</attributelist>
	<jitterattributelist />
	<!--EXAMPLE-->
	<examplelist>
		<example caption="Evaluate a path of 3D transform points" img="jit.anim.path.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.anim.drive" />
		<seealso name="jit.anim.path" />
		<seealso name="jit.path" />
		<seealso name="jit.gl.path" />
	</seealsolist>
</c74object>
