<?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.gl.multiple" module="jit" category="Jitter OpenGL">
	<digest>
		Create multiple object instances
	</digest>
	<description>
		Uses several jit.matrix objects to repeatedly draw an instance of a jit.gl object like <o>jit.gl.mesh</o> or <o>jit.gl.gridshape</o>. It attaches to a named instance of a jit.gl (OB3D) object provided by the name attribute.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Jitter
		</metadata>
		<metadata name="tag">
			Jitter OpenGL
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="matrix">
			<digest>
				position array
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="matrix">
			<digest>
				scale array
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				bind gl objects
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				dumpout
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--OB3D-->
	<OB3D />
	<!--MESSAGES-->
	<methodlist>
		<method name="(drag)">
			<digest>
				Drag and drop a Jitter material file
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="color_matrix">
			<arglist>
				<arg name="matrix name" type="symbol" />
			</arglist>
			<digest>
				Set the color parameter
			</digest>
			<description>
				Specifies a named matrix to use for the color parameter if it's in the glparams list. Must be a 4-plane float32 matrix in RGBA format.
			</description>
		</method>
		<method name="position_matrix">
			<arglist>
				<arg name="matrix name" type="symbol" />
			</arglist>
			<digest>
				Set the position parameter
			</digest>
			<description>
				Specifies a named matrix to use for the position parameter if it's in the glparams list. Must be a 3-plane float32 matrix.
			</description>
		</method>
		<method name="rotate_matrix">
			<arglist>
				<arg name="matrix name" type="symbol" />
			</arglist>
			<digest>
				Set the rotation parameter
			</digest>
			<description>
				Specifies a named matrix to use for the rotate (angle-axis) parameter if it's in the glparams list. Must be a 4-plane float32 matrix.
			</description>
		</method>
		<method name="rotatexyz_matrix">
			<arglist>
				<arg name="matrix name" type="symbol" />
			</arglist>
			<digest>
				Set the rotatexyz matrix
			</digest>
			<description>
				Specifies a named matrix to use for the rotatexyz parameter if it's in the glparams list. Must be a 3-plane float32 matrix.
			</description>
		</method>
		<method name="scale_matrix">
			<arglist>
				<arg name="matrix name" type="symbol" />
			</arglist>
			<digest>
				Set the scale parameter
			</digest>
			<description>
				Specifies a named matrix to use for the scale parameter if it's in the glparams list. Must be a 3-plane float32 matrix.
			</description>
		</method>
		<method name="tex_plane_s_matrix">
			<arglist>
				<arg name="matrix name" type="symbol" />
			</arglist>
			<digest>
				Set the tex_plane_s parameter
			</digest>
			<description>
				Specifies a named matrix to use for the tex_plane_s parameter if it's in the glparams list. Must be a 4-plane float32 matrix. The tex_map attribute of the target gl object must be set to 1 or 3.
			</description>
		</method>
		<method name="tex_plane_t_matrix">
			<arglist>
				<arg name="matrix name" type="symbol" />
			</arglist>
			<digest>
				Set the tex_plane_t parameter
			</digest>
			<description>
				Specifies a named matrix to use for the tex_plane_t parameter if it's in the glparams list. Must be a 4-plane float32 matrix. The tex_map attribute of the target gl object must be set to 1 or 3.
			</description>
		</method>
		<method name="texture_matrix">
			<arglist>
				<arg name="matrix name" type="symbol" />
			</arglist>
			<digest>
				Set the texture parameter
			</digest>
			<description>
				Specifies a named matrix to use for the texture parameter if it's in the glparams list. Must be a char matrix.
			</description>
		</method>
	</methodlist>
	<jittermethodlist>
		<jittermethod name="bang" />
		<jittermethod name="anim_grow" />
		<jittermethod name="anim_move" />
		<jittermethod name="anim_reset" />
		<jittermethod name="anim_turn" />
		<jittermethod name="draw" />
		<jittermethod name="drawimmediate" />
		<jittermethod name="drawraw" />
		<jittermethod name="export_material" />
		<jittermethod name="exportattrs" />
		<jittermethod name="exportsummary" />
		<jittermethod name="get_shader" />
		<jittermethod name="getattributes" />
		<jittermethod name="getstate" />
		<jittermethod name="import_material" />
		<jittermethod name="importattrs" />
		<jittermethod name="jit_gl_texture" />
		<jittermethod name="jit_matrix" />
		<jittermethod name="summary" />
		<jittermethod name="update_node" />
	</jittermethodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="dimparam" get="1" set="1" type="symbol" size="1">
			<digest>
				Wrapping input parameter
			</digest>
			<description>
				The name of the input parameter to wrap all other input matrices to.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Dim Param" />
			</attributelist>
		</attribute>
		<attribute name="glparams" get="1" set="1" type="symbol" size="10">
			<digest>
				Inlet OB3D attributes
			</digest>
			<description>
				The list of OB3D attributes corresponding to object inlets that are modifiable by passing in a matrix. Valid attributes are position, rotate (angle-axis), rotatexyz, scale, color, texture, tex_plane_s, and tex_plane_t.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="GL Params" />
			</attributelist>
		</attribute>
		<attribute name="targetmode" get="1" set="1" type="int" size="1">
			<digest>
				Draw mode
			</digest>
			<description>
				Flag for draw mode. 1 = draw_raw, 0 = draw.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Target Mode" />
				<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>
				Attached jit.gl object
			</digest>
			<description>
				The name of the jit.gl object to attach to and draw multiple times.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Target Name" />
			</attributelist>
		</attribute>
		<attribute name="texture" get="1" set="1" type="symbol" size="256">
			<digest>
				Available textures
			</digest>
			<description>
				The list of textures that could potentially be bound to the OB3D object. The specific texture can be specified by passing in a char matrix where the values of the matrix index into the texture list.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Texture" />
			</attributelist>
		</attribute>
	</attributelist>
	<jitterattributelist>
		<jitterattribute name="anchor" />
		<jitterattribute name="anim" />
		<jitterattribute name="animmode" />
		<jitterattribute name="antialias" />
		<jitterattribute name="auto_material" />
		<jitterattribute name="automatic" />
		<jitterattribute name="aux_color" />
		<jitterattribute name="axes" />
		<jitterattribute name="blend" />
		<jitterattribute name="blend_enable" />
		<jitterattribute name="blend_mode" />
		<jitterattribute name="boundcalc" />
		<jitterattribute name="bounds" />
		<jitterattribute name="capture" />
		<jitterattribute name="cull_face" />
		<jitterattribute name="depth_clear" />
		<jitterattribute name="depth_enable" />
		<jitterattribute name="depth_write" />
		<jitterattribute name="drawbounds" />
		<jitterattribute name="drawto" />
		<jitterattribute name="enable" />
		<jitterattribute name="filterclass" />
		<jitterattribute name="fog" />
		<jitterattribute name="fog_color" />
		<jitterattribute name="fog_density" />
		<jitterattribute name="fog_params" />
		<jitterattribute name="fog_range" />
		<jitterattribute name="gl_color" />
		<jitterattribute name="layer" />
		<jitterattribute name="lighting_enable" />
		<jitterattribute name="line_width" />
		<jitterattribute name="mat_ambient" />
		<jitterattribute name="mat_diffuse" />
		<jitterattribute name="mat_emission" />
		<jitterattribute name="mat_specular" />
		<jitterattribute name="material" />
		<jitterattribute name="matfile" />
		<jitterattribute name="matrixoutput" />
		<jitterattribute name="name" />
		<jitterattribute name="point_mode" />
		<jitterattribute name="point_size" />
		<jitterattribute name="poly_mode" />
		<jitterattribute name="position" />
		<jitterattribute name="quat" />
		<jitterattribute name="rotate" />
		<jitterattribute name="rotatexyz" />
		<jitterattribute name="scale" />
		<jitterattribute name="shader" />
		<jitterattribute name="shadow_caster" />
		<jitterattribute name="shininess" />
		<jitterattribute name="smooth_shading" />
		<jitterattribute name="tex_map" />
		<jitterattribute name="tex_plane_s" />
		<jitterattribute name="tex_plane_t" />
		<jitterattribute name="texanchor" />
		<jitterattribute name="texrotate" />
		<jitterattribute name="texzoom" />
		<jitterattribute name="transform_reset" />
		<jitterattribute name="two_sided" />
		<jitterattribute name="viewalign" />
	</jitterattributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="jit.gl.multiple.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.gl.graph" />
		<seealso name="jit.gl.gridshape" />
		<seealso name="jit.gl.handle" />
		<seealso name="jit.gl.isosurf" />
		<seealso name="jit.gl.model" />
		<seealso name="jit.gl.nurbs" />
		<seealso name="jit.gl.plato" />
		<seealso name="jit.gl.render" />
		<seealso name="jit.gl.shader" />
		<seealso name="jit.gl.sketch" />
		<seealso name="jit.gl.slab" />
		<seealso name="jit.gl.text2d" />
		<seealso name="jit.gl.text3d" />
		<seealso name="jit.gl.texture" />
		<seealso name="jit.gl.videoplane" />
		<seealso name="jit.gl.volume" />
	</seealsolist>
	<discussion>
		Parameters that can be set include position, rotate, rotatexyz, scale, color, tex_plane_s, tex_plane_t, and texture. All of these parameters take float32 matrices except texture which takes a char specifying the texture from a list. Parameter matrices can be of differing dim sizes, and will wrap to the dimensions of the matrix specified by the dimparam attribute.
		<br />
		<br />
		For transformation attributes (position, rotate, rotatexyz, and scale), the order parameters are listed in the <at>glparams</at> attribute determines the order transformations are applied. The standard jit.gl transformation order is position, rotate, scale.
		<br />
		<br />
		Arbitrary object attributes and shader parameters can be set by including in the <at>glparams</at> list <at>attr.</at> followed by the attr name, or <at>shader.</at> followed by the shader parameter name. For example, shader.zoom creates a matrix input for the zoom parameter of the td.rota.jxs shader, and attr.rad_minor creates a matrix input for the rad_minor attribute of a <o>jit.gl.gridshape</o>.		<br />
		<br />
		This object requires one argument: the name of a drawing context. A named drawing context is a named instance of a <o>jit.window</o>, <o>jit.pwindow</o>, or <o>jit.matrix</o> object that has an instance of the <o>jit.gl.render</o> object associated with it. Additionally it can reference the name of a <o>jit.gl.node</o> sub-context. This value may also be set via the OB3D <at>drawto</at> attribute. If no argument is present, the object is implicitly added to the first valid drawing context or sub-context found in the current patch or by searching up the patcher hierarchy.
		<br />
		<br />
		There is an optional second argument which specifies the number of inlets corresponding to the number of arguments in the <at>glparams</at> attribute. If this second argument is not present, the default number of inlets is two. Those inlets will be for position and scale if the <at>glparams</at> attribute is not specified. If there are <at>glparams</at>, it defaults to the first two specified params.
	</discussion>
</c74object>
