<?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.cornerpin" module="jit" category="Jitter OpenGL">
	<digest>
		Map textures in a window
	</digest>
	<description>
		Provides controls for mapping textures and matrices to an output window by repositioning the image corners. Mouse input is received from the context window allowing for easy manipulation of corner positions.
	</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 to this 3d object
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				matrix output if enabled
			</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="reset">
			<arglist />
			<digest>
				Reset corner position attributes
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="sendtexture">
			<arglist>
				<arg name="name" optional="0" type="symbol" />
				<arg name="message" optional="0" type="symbol" />
				<arg name="values" optional="1" type="list" />
			</arglist>
			<digest>
				Send the output texture a message
			</digest>
			<description>
				TEXT_HERE
			</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="exportattrs" />
		<jittermethod name="exportsummary" />
		<jittermethod name="getattributes" />
		<jittermethod name="getstate" />
		<jittermethod name="importattrs" />
		<jittermethod name="jit_gl_texture" />
		<jittermethod name="jit_matrix" />
		<jittermethod name="rebuild_geometry" />
		<jittermethod name="summary" />
		<jittermethod name="update_node" />
	</jittermethodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="colormode" get="1" set="1" type="symbol" size="1">
			<digest>
				Matrix color mode
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="2">
					<enumlist>
						<enum name="argb">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="uyvy">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Colormode" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
		<attribute name="corner_color" get="1" set="1" type="float" size="4">
			<digest>
				Set the corner gui color
			</digest>
			<description>
				Set the corner gui color, used when drawcorners is enabled (default = 1 1 1 1).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Corner Color" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="rgba" />
			</attributelist>
		</attribute>
		<attribute name="corner_radius" get="1" set="1" type="int" size="1">
			<digest>
				Pixel size of corner GUI
			</digest>
			<description>
				Pixel size of corner GUI (default = 10)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Corner Radius" />
			</attributelist>
		</attribute>
		<attribute name="cornermode" get="1" set="1" type="symbol" size="1">
			<digest>
				Mode to determine corner position
			</digest>
			<description>
				Mode to determine how corner attributes are used to set corner position (default = relative)
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="3">
					<enumlist>
						<enum name="relative">
							<digest>
								Normalized coords relative to window size
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="absolute">
							<digest>
								Absolute window coordinates
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="absolute_texture">
							<digest>
								Absolute coordinates based on texture dimensions
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Corner Mode" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
		<attribute name="displaylist" get="1" set="1" type="int" size="1">
			<digest>
				Geometry displaylist flag
			</digest>
			<description>
				Geometry displaylist flag (default = 1)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Displaylist" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="drawcorners" get="1" set="1" type="int" size="1">
			<digest>
				Corner GUI mode
			</digest>
			<description>
				Corner GUI mode (default = 1 - on). Determines if and how the cornerpin GUI is visible.
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="4">
					<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="on_hover">
							<digest>
								Visible when mouse hovers over cornerpin quad
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="on_click">
							<digest>
								Visible when mouse clicks on cornerpin quad
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Draw Corners" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enumindex" />
			</attributelist>
		</attribute>
		<attribute name="enable_mouse" get="1" set="1" type="int" size="1">
			<digest>
				Mouse interaction flag
			</digest>
			<description>
				Mouse interaction flag (default = 1)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Enable Mouse" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="hover" get="1" set="1" type="int" size="1">
			<digest>
				Enable/disable mouse hovering
			</digest>
			<description>
				Enable/disable mouse hovering (default = 0), when <at>drawcorners</at> mode is 3 (on_hover) or <at>mousereport</at> is enabled.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Hover" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="interp" get="1" set="1" type="int" size="1">
			<digest>
				Enable interpolation
			</digest>
			<description>
				Enable interpolation of input image (default = 1)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Interp" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="invert_corners" get="1" set="1" type="int" size="1">
			<digest>
				Invert corner values
			</digest>
			<description>
				Invert source and destination corner position values (default = 0). This allows for deskewing an image, without dragging beyond the window bounds.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Invert Corners" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="lower_left" get="1" set="1" type="float" size="2">
			<digest>
				Lower left corner position
			</digest>
			<description>
				Lower left corner position (default = 0 1)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Lower Left" />
			</attributelist>
		</attribute>
		<attribute name="lower_right" get="1" set="1" type="float" size="2">
			<digest>
				Lower right corner position
			</digest>
			<description>
				Lower right corner position (default = 1 1)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Lower Right" />
			</attributelist>
		</attribute>
		<attribute name="mousereport" get="1" set="1" type="int" size="1">
			<digest>
				Enable/disable mouse reporting
			</digest>
			<description>
				Enable/disable mouse reporting out first outlet (default = 0). The report indicates clicking, dragging, and hovering (if <at>hover</at> enabled) over the cornerpin quad.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Mouse Report" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="preserve_aspect" get="1" set="1" type="int" size="1">
			<digest>
				Preserve aspect ratio flag
			</digest>
			<description>
				Preserve aspect ratio flag of input image (default = 0)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Preserve Aspect" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="rect_tex" get="1" set="1" type="int" size="1">
			<digest>
				Enable rectangular textures
			</digest>
			<description>
				Enable rectangular textures (default = 1)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Rect Tex" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="texturename" get="1" set="1" type="symbol" size="1">
			<digest>
				Internal texture name
			</digest>
			<description>
				Internal texture name
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Texture Name" />
			</attributelist>
		</attribute>
		<attribute name="ui_priority" get="1" set="1" type="int" size="1">
			<digest>
				UI priority value
			</digest>
			<description>
				UI priority value (default = -900). When multiple UI objects are listening to the same window, ui_priority determines the order objects receive input. Lower values test first.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="UI Priority" />
			</attributelist>
		</attribute>
		<attribute name="upper_left" get="1" set="1" type="float" size="2">
			<digest>
				Upper left corner position
			</digest>
			<description>
				Upper left corner position (default = 0 0)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Upper Left" />
			</attributelist>
		</attribute>
		<attribute name="upper_right" get="1" set="1" type="float" size="2">
			<digest>
				Upper right corner position
			</digest>
			<description>
				Upper right corner position (default = 1 0)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Upper Right" />
			</attributelist>
		</attribute>
	</attributelist>
	<jitterattributelist>
		<jitterattribute name="anchor" />
		<jitterattribute name="anim" />
		<jitterattribute name="animmode" />
		<jitterattribute name="automatic" />
		<jitterattribute name="aux_color" />
		<jitterattribute name="axes" />
		<jitterattribute name="blend" />
		<jitterattribute name="blend_enable" />
		<jitterattribute name="blend_mode" />
		<jitterattribute name="capture" />
		<jitterattribute name="cull_face" />
		<jitterattribute name="drawto" />
		<jitterattribute name="enable" />
		<jitterattribute name="filterclass" />
		<jitterattribute name="gl_color" />
		<jitterattribute name="layer" />
		<jitterattribute name="line_width" />
		<jitterattribute name="name" />
		<jitterattribute name="point_mode" />
		<jitterattribute name="point_size" />
		<jitterattribute name="poly_mode" />
		<jitterattribute name="position" />
		<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="texture" />
		<jitterattribute name="texzoom" />
	</jitterattributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example caption="Map textures in a window" img="jit.gl.cornerpin.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.gl.render" />
		<seealso name="jit.gl.videoplane" />
		<seealso name="jit.gl.texture" />
		<seealso name="jit.gl.slab" />
		<seealso name="jit.gl.skybox" />
	</seealsolist>
	<discussion>
		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.
	</discussion>
</c74object>
