<?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.matrix" module="jit" category="Jitter Data">
	<digest>
		The Jitter Matrix!
	</digest>
	<description>
		The <o>jit.matrix</o> object is a named matrix which may be used for data storage and retrieval, resampling, and matrix type and planecount conversion operations.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Jitter
		</metadata>
		<metadata name="tag">
			Jitter Data
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="matrix">
			<digest>
				in
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="matrix">
			<digest>
				in
			</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>
	<!--MESSAGES-->
	<methodlist>
		<method name="bang">
			<arglist />
			<digest>
				Output the currently stored matrix
			</digest>
			<description>
				Outputs the currently stored matrix.
			</description>
		</method>
		<method name="int">
			<arglist>
				<arg name="values" type="list" />
			</arglist>
			<digest>
				Set all cells to a value and output the result
			</digest>
			<description>
				Sets all cells to the value specified by <m>value(s)</m> and output the data. Position is specified of a list whose length is equal to the number of dimensions (<m>dimcount</m>).
			</description>
		</method>
		<method name="float">
			<arglist>
				<arg name="values" type="list" />
			</arglist>
			<digest>
				Set all cells to a value and output the result
			</digest>
			<description>
				Sets all cells to the value specified by <m>value(s)</m> and output the data. Value is specified as a list whose length is equal to the number of dimensions (<m>dimcount</m>).
			</description>
		</method>
		<method name="list">
			<arglist>
				<arg name="values" type="list" />
			</arglist>
			<digest>
				Set all cells to a value and output the result
			</digest>
			<description>
				Sets all cells to the value specified by <m>value(s)</m> and output the data. Position is specified of a list whose length is equal to the number of dimensions (<m>dimcount</m>).
			</description>
		</method>
		<method name="clear">
			<arglist />
			<digest>
				Set all matrix values to zero
			</digest>
			<description>
				Sets all matrix values to zero.
			</description>
		</method>
		<method name="exportimage">
			<arglist>
				<arg name="filename" type="symbol" />
				<arg name="file-type" type="symbol" />
			</arglist>
			<digest>
				Export the current frame as an image file
			</digest>
			<description>
				Export the current frame as an image file with the name specified by the first argument. The second argument sets the file type (default = png). Available file types are <m>png</m>, <m>tiff</m>, and <m>jpeg</m>.				<br />
				You can use the Max Preferences to <link anchor="defaultimageresolution" module="core" name="interface_preferences" type="vignette">specify a default image resolution</link> for png image types.
			</description>
		</method>
		<method name="exportmovie">
			<arglist>
				<arg name="filename" optional="1" type="symbol" />
				<arg name="FPS" type="float" />
				<arg name="codec" type="symbol" />
				<arg name="quality" type="symbol" />
				<arg name="timescale" type="int" />
			</arglist>
			<digest>
				Export a matrix as a QuickTime movie
			</digest>
			<description>
				Exports a matrix as a QuickTime movie. The <m>exportmovie</m> message takes an optional argument to specify a file name. If no filename is specified, a file dialog will open to let you choose a file.
				<br />
				See the <o>jit.record</o> object for information on the <m>write</m> arguments and their default values.
			</description>
		</method>
		<method name="exprfill">
			<arglist>
				<arg name="plane" optional="1" type="int" />
				<arg name="expression" type="symbol" />
			</arglist>
			<digest>
				Evaluate an expression to fill the matrix
			</digest>
			<description>
				Evaluates <i>expression</i> to fill the matrix. If a <i>plane</i> argument is provided, the expression is applied to a single plane. Otherwise, it is applied to all planes in the matrix. See <o>jit.expr</o> for more information on expressions. Unlike the <o>jit.expr</o> object, there is no support for providing multiple expressions to fill multiple planes at once with different expressions. Call this method multiple times once for each plane you wish to fill.
			</description>
		</method>
		<method name="getcell">
			<arglist>
				<arg name="position" type="list" />
			</arglist>
			<digest>
				Report cell values
			</digest>
			<description>
				Sends the value(s) in the cell specified by <m>position</m> out the right outlet of the object as a list in the form <m>cell</m>  <i>cell-position0</i>... <i>cell-positionN</i>  <m>val</m>  <i>plane0-value</i>... <i>planeN-value</i>.
			</description>
		</method>
		<method name="fillplane">
			<arglist>
				<arg name="plane" optional="0" type="int" />
				<arg name="value" optional="0" type="int" />
			</arglist>
			<digest>
				Fill a plane with a specified value
			</digest>
			<description>
				The word <m>fillplane</m>, followed by an integer that specifies a plane number and a value, will fill the specified plane with the single value.
			</description>
		</method>
		<method name="importmovie">
			<arglist>
				<arg name="filename" optional="1" type="symbol" />
				<arg name="time-offset" type="int" />
			</arglist>
			<digest>
				Import a QuickTime movie into the matrix
			</digest>
			<description>
				Imports a QuickTime movie into the matrix. If no filename is specified, a file dialog will open to let you choose a file. The <i>time-offset</i> argument may be used to set a time offset for the QuickTime movie being imported (the default is 0).
			</description>
		</method>
		<method name="jit_gl_texture">
			<arglist>
				<arg name="texture-name" type="symbol" />
			</arglist>
			<digest>
				Copy a texture to the matrix
			</digest>
			<description>
				Copies the texture specified by <i>texture-name</i> to the matrix.
			</description>
		</method>
		<method name="op">
			<arglist />
			<digest>
				Perform <o>jit.op</o> operations on the matrix
			</digest>
			<description>
				The word <m>op</m>, followed by the name of a <o>jit.op</o> object operator and a set of values, is equivalent to including a <o>jit.op</o> object with the specified operator set as an attribute and this <o>jit.matrix</o> object specified as the output matrix. The additional <i>value</i> arguments may either be a matrix name or a constant. If only one value argument is provided, this matrix is considered both the output and the left operand. For example, &quot;op + foo bar&quot; is equivalent to the operation thismatrix = foo + bar, and &quot;op * 0.5&quot; is equivalent to the operation thismatrix = thismatrix * 0.5.
			</description>
		</method>
		<method name="read">
			<arglist>
				<arg name="filename" optional="1" type="symbol" />
			</arglist>
			<digest>
				Read Jitter binary data files (.jxf)
			</digest>
			<description>
				Reads Jitter binary data files (.jxf) into a matrix set. If no filename is specified, a file dialog will open to let you choose a file.
			</description>
		</method>
		<method name="setall">
			<arglist>
				<arg name="values" type="list" />
			</arglist>
			<digest>
				Set all cells to a value
			</digest>
			<description>
				Sets all cells to the value specified by <m>value(s)</m>. Position is specified of a list whose length is equal to the number of dimensions (<m>dimcount</m>).
			</description>
		</method>
		<method name="setcell">
			<arglist>
				<arg name="position" type="list" />
				<arggroup optional="1">
					<arg name="plane" type="literal" />
					<arg name="plane-number" type="int" />
				</arggroup>
				<arg name="val" type="literal" />
				<arg name="values" type="list" />
			</arglist>
			<digest>
				Set a cell to a specified value
			</digest>
			<description>
				Sets the cell specified by <m>position</m> to the value specified by <m>value</m>. Position is specified of a list whose length is equal to the number of dimensions (<m>dimcount</m>). The optional arguments <m>plane</m>  <i>plane-number</i> can be used to specify a plane. If a plane is specified, <i>value</i> should be a single number, otherwise it should be a list of numbers of size <m>planecount - 1</m>.
			</description>
		</method>
		<method name="setcell1d">
			<arglist />
			<digest>
				Set a 1-dimensional cell to a specified value
			</digest>
			<description>
				The word <m>setcell1d</m>, followed by a number specifying an <i>x</i> coordinate and a list of values, is similar to the <m>setcell</m> message but without the need to use a &quot;val&quot; token to separate the coordinates from the value since the dimension count (1) is fixed.
			</description>
		</method>
		<method name="setcell2d">
			<arglist />
			<digest>
				Set a 2-dimensional cell to specified values
			</digest>
			<description>
				The word <m>setcell2d</m>, followed by a pair of numbers specifying <i>x</i> and <i>y</i> coordinates and a list of values, is similar to the <m>setcell</m> message but without the need to use a &quot;val&quot; token to separate the coordinates from the value since the dimension count (2) is fixed.
			</description>
		</method>
		<method name="setcell3d">
			<arglist />
			<digest>
				Set a 3-dimensional cell to specified values
			</digest>
			<description>
				The word <m>setcell3d</m>, followed by three numbers specifying <i>x</i>, <i>y</i>, and <i>z</i> coordinates and a list of values, is similar to the <m>setcell</m> message but without the need to use a &quot;val&quot; token to separate the coordinates from the value since the dimension count (3) is fixed.
			</description>
		</method>
		<method name="setplane1d">
			<arglist />
			<digest>
				Set a cell in a plane to a value (1d, no val token)
			</digest>
			<description>
				The word <m>setplane1d</m>, followed by a number specifying an <i>x</i> coordinate, a number specifying a plane, and a value, is similar to the <m>setcell</m> message but without the need to use a &quot;val&quot; token to separate the coordinates from the value since the dimension count (1) is fixed, or use the &quot;plane&quot; token to specify which plane to set.
			</description>
		</method>
		<method name="setplane2d">
			<arglist />
			<digest>
				Set a cell in a plane to a value (2d, no val token)
			</digest>
			<description>
				The word <m>setplane2d</m>, followed by a pair of numbers specifying <i>x</i> and <i>y</i> coordinates, a number specifying a plane, and a value, is similar to the <m>setcell</m> message but without the need to use a &quot;val&quot; token to separate the coordinates from the value since the dimension count (2) is fixed, or use the &quot;plane&quot; token to specify which plane to set.
			</description>
		</method>
		<method name="setplane3d">
			<arglist />
			<digest>
				Set a cell in a plane to a value (3d, no val token)
			</digest>
			<description>
				The word <m>setplane3d</m>, followed by three numbers specifying <i>x</i>, <i>y</i>, and <i>z</i> coordinates, a number specifying a plane, and a value, is similar to the <m>setcell</m> message but without the need to use a &quot;val&quot; token to separate the coordinates from the value since the dimension count (1) is fixed, or use the &quot;plane&quot; token to specify which plane to set.
			</description>
		</method>
		<method name="val">
			<arglist>
				<arg name="values" type="list" />
			</arglist>
			<digest>
				Set all cells to a value and output the result
			</digest>
			<description>
				Sets all cells to the value specified by <m>value(s)</m>. Position is specified of a list whose length is equal to the number of dimensions (<m>dimcount</m>) and outputs the data.
			</description>
		</method>
		<method name="write">
			<arglist>
				<arg name="filename" optional="1" type="symbol" />
			</arglist>
			<digest>
				Write matrix set as a Jitter binary data file (.jxf)
			</digest>
			<description>
				Writes matrix set as a Jitter binary data file (.jxf). If no filename is specified, a file dialog will open to let you choose a file.
			</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="outputmatrix" />
		<jittermethod name="register" />
		<jittermethod name="summary" />
	</jittermethodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="adapt" get="1" set="1" type="int" size="1">
			<digest>
				Matrix adaptation flag
			</digest>
			<description>
				Matrix adaptation flag (default = 0 if matrix arguments are present, otherwise 1) When the flag is set, the <o>jit.matrix</o> object will adapt to the incoming matrix planecount, type, and dimensions.
			</description>
		</attribute>
		<attribute name="dim" get="1" set="1" type="int" size="32">
			<digest>
				Dimensions of matrix data
			</digest>
			<description>
				The dimensions of matrix data (default = 1 1)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Dim" />
			</attributelist>
		</attribute>
		<attribute name="dimstride" get="1" set="0" type="int" size="32">
			<digest>
				Byte stride per dimension
			</digest>
			<description>
				The byte stride per dimension
			</description>
		</attribute>
		<attribute name="dstdimend" get="1" set="1" type="int" size="32">
			<digest>
				The destination dimension end position
			</digest>
			<description>
				The destination dimension end position (default = all <at>dim</at> values minus 1)
			</description>
		</attribute>
		<attribute name="dstdimstart" get="1" set="1" type="int" size="32">
			<digest>
				Destination dimension start position
			</digest>
			<description>
				The destination dimension start position (default = all 0)
			</description>
		</attribute>
		<attribute name="interp" get="1" set="1" type="int" size="1">
			<digest>
				Matrix interpolation flag
			</digest>
			<description>
				Matrix interpolation flag (default = 0) When the flag is set, the input matrix will be interpolated when copied to the internal matrix.
			</description>
		</attribute>
		<attribute name="name" get="1" set="1" type="symbol" size="1">
			<digest>
				Name of the matrix
			</digest>
			<description>
				The name of the matrix (default = UID)
			</description>
		</attribute>
		<attribute name="planecount" get="1" set="1" type="int" size="1">
			<digest>
				Number of planes in matrix data
			</digest>
			<description>
				The number of planes in matrix data (default = 4)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Planecount" />
			</attributelist>
		</attribute>
		<attribute name="planemap" get="1" set="1" type="int" size="32">
			<digest>
				Plane mapping
			</digest>
			<description>
				Maps input places to output planes (default = 0 1 2 3 ...)
			</description>
		</attribute>
		<attribute name="thru" get="1" set="1" type="int" size="1">
			<digest>
				Thru mode flag
			</digest>
			<description>
				Thru mode flag (default = 1) When the flag is set, a matrix is output when another one is received.
			</description>
		</attribute>
		<attribute name="size" get="1" set="0" type="int" size="1">
			<digest>
				Total byte size of matrix
			</digest>
			<description>
				Total byte size of matrix
			</description>
		</attribute>
		<attribute name="srcdimend" get="1" set="1" type="int" size="32">
			<digest>
				The source dimension end position
			</digest>
			<description>
				The source dimension end position (default = all <at>dim</at> values minus 1)
			</description>
		</attribute>
		<attribute name="srcdimstart" get="1" set="1" type="int" size="32">
			<digest>
				Source dimension start position
			</digest>
			<description>
				The source dimension start position (default = all 0)
			</description>
		</attribute>
		<attribute name="usedstdim" get="1" set="1" type="int" size="1">
			<digest>
				Destdim use flag
			</digest>
			<description>
				Destdim use flag (default = 0) When the flag is set, the destination dimension's attributes are used when copying an input matrix to an internal matrix.
			</description>
		</attribute>
		<attribute name="usesrcdim" get="1" set="1" type="int" size="1">
			<digest>
				Srcdim use flag
			</digest>
			<description>
				Srcdim use flag (default = 0) When the flag is set, the source dimension's attributes are used when copying an input matrix to an internal matrix.
			</description>
		</attribute>
		<attribute name="type" get="1" set="1" type="symbol" size="1">
			<digest>
				Matrix data type
			</digest>
			<description>
				The matrix data type (default = <m>char</m>)
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="4">
					<enumlist>
						<enum name="char">
							<digest>
								Char data
							</digest>
							<description>
								Char data (0-255)
							</description>
						</enum>
						<enum name="long">
							<digest>
								Long data
							</digest>
							<description>
								Long data
							</description>
						</enum>
						<enum name="float32">
							<digest>
								32-bit floating-point data
							</digest>
							<description>
								32-bit floating-point data
							</description>
						</enum>
						<enum name="float64">
							<digest>
								64-bit floating-point data
							</digest>
							<description>
								64-bit floating-point data
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Type" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
	</attributelist>
	<jitterattributelist />
	<!--EXAMPLE-->
	<examplelist>
		<example img="jit.matrix.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.coerce" />
		<seealso name="jit.fill" />
		<seealso name="jit.matrixset" />
		<seealso name="jit.matrixinfo" />
		<seealso name="jit.peek~" />
		<seealso name="jit.poke~" />
		<seealso name="jit.spill" />
		<seealso name="jit.submatrix" />
		<seealso name="jitterchapter02" module="jit" type="tutorial" />
		<seealso name="jitterchapter11" module="jit" type="tutorial" />
		<seealso name="jitterchapter14" module="jit" type="tutorial" />
		<seealso name="jitterchapter16" module="jit" type="tutorial">
			Jitter Tutorial 16: Using Named Jitter Matrices
		</seealso>
		<seealso name="jitterchapter18" module="jit" type="tutorial">
			Jitter Tutorial 18: Iterative Processes and Matrix Re-Sampling
		</seealso>
		<seealso name="jitterchapter20" module="jit" type="tutorial">
			Jitter Tutorial 20: Importing and Exporting Single Matrices
		</seealso>
		<seealso name="jitterchapter31" module="jit" type="tutorial">
			Jitter Tutorial 31: Rendering Destinations
		</seealso>
		<seealso name="jitterchapter39" module="jit" type="tutorial">
			Jitter Tutorial 39: Spatial Mapping
		</seealso>
		<seealso name="jitterchapter42" module="jit" type="tutorial" />
	</seealsolist>
</c74object>
