<?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.camera" module="jit" category="Jitter OpenGL">
	<digest>
		Set a rendering view
	</digest>
	<description>
		Sets the properties needed to define a view in OpenGL. These include field of view, clipping planes, and perspective or orthographic projection modes. In addition a position and orientation can be defined for a virtual camera in 3D space, and the proper view will be generated from these transforms.
	</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>
				texture output if capture 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="gettargetnames">
			<arglist />
			<digest>
				Return list of capture target names
			</digest>
			<description>
				Return list of capture target names
			</description>
		</method>
		<method name="getviewportray">
			<arglist>
				<arg name="screen-x" type="int" />
				<arg name="screen-y" type="int" />
			</arglist>
			<digest>
				Return ray coords from screen coords
			</digest>
			<description>
				Return 6 values representing the world-space endpoints of a ray cast from the <ar>screen-x</ar> and <ar>screen-y</ar> arguments.
			</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="summary" />
		<jittermethod name="update_node" />
	</jittermethodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="adapt" get="1" set="1" type="int" size="1">
			<digest>
				Adapt texture dims to window size
			</digest>
			<description>
				Adapt the capture texture dimensions to the context window size (default = 1).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Adapt" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="capture" get="1" set="1" type="int" size="1">
			<digest>
				Capture to texture flag
			</digest>
			<description>
				Capture to texture flag (default = 0)
			</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="Capture" />
			</attributelist>
		</attribute>
		<attribute name="colormask" get="1" set="1" type="int" size="4">
			<digest>
				Color mask values
			</digest>
			<description>
				Color mask values for red, green, blue, and alpha channels. When set to 0, the corresponding color component is ignored by OpenGL.  See
				<a href="http://www.opengl.org/sdk/docs/man/xhtml/glColorMask.xml">
					glColorMask
				</a>
				for more detail.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Colormask" />
			</attributelist>
		</attribute>
		<attribute name="dim" get="1" set="1" type="int" size="2">
			<digest>
				Capture texture dimensions
			</digest>
			<description>
				Capture texture dimensions, used when <at>adapt</at>= 0 (default = 256 256).
			</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="Dim" />
			</attributelist>
		</attribute>
		<attribute name="drawto" get="1" set="1" type="symbol" size="1">
			<digest>
				Drawing context
			</digest>
			<description>
				Drawing context
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Drawto" />
			</attributelist>
		</attribute>
		<attribute name="erase_color" get="1" set="1" type="float" size="4">
			<digest>
				Background color
			</digest>
			<description>
				Background color of viewport and capture texture (default = 0.2 0.2 0.2 1.). Not compatible with non-automatic mode objects.
			</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="Erase Color" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="rgba" />
			</attributelist>
		</attribute>
		<attribute name="far_clip" get="1" set="1" type="float" size="1">
			<digest>
				Far clipping plane distance
			</digest>
			<description>
				The far clipping plane distance in 3D world (default = 100.)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Far Clip" />
			</attributelist>
		</attribute>
		<attribute name="frustum" get="1" set="1" type="float" size="6">
			<digest>
				Camera frustum values
			</digest>
			<description>
				Camera frustum values (left, right, bottom, top, near, far). <at>projection_mode</at> must be set to frustum for these values to have an effect. The camera's frustum values entirely specify the geometry of the viewing frustum. For more technical documentation on what the six parameters to the frustum attribute mean, see the OpenGL documentation for
				<a href="http://www.opengl.org/sdk/docs/man/xhtml/glFrustum.xml">
					glFrustum
				</a>
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Frustum" />
			</attributelist>
		</attribute>
		<attribute name="lens_angle" get="1" set="1" type="float" size="1">
			<digest>
				Lens angle
			</digest>
			<description>
				The lens angle of the OpenGL camera (default = 45.)
			</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="Lens Angle" />
			</attributelist>
		</attribute>
		<attribute name="locklook" get="1" set="1" type="int" size="1">
			<digest>
				Force camera to remain pointed at <at>lookat</at>
			</digest>
			<description>
				Force the camera to remain pointed at the <at>lookat</at> value, ignoring orientation messages and attributes (default = 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Lock Look" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="lookat" get="1" set="1" type="float" size="3">
			<digest>
				Camera view position
			</digest>
			<description>
				3D position at which the camera is pointed (default = 0. 0. 0.)
			</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="Lookat" />
			</attributelist>
		</attribute>
		<attribute name="near_clip" get="1" set="1" type="float" size="1">
			<digest>
				Near clipping plane distance
			</digest>
			<description>
				The near clipping plane distance in 3D world (default = 0.1)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Near Clip" />
			</attributelist>
		</attribute>
		<attribute name="ortho" get="1" set="1" type="int" size="1">
			<digest>
				Orthographic projection mode
			</digest>
			<description>
				Orthographic projection mode (default = 0)
				<br />
				0 = orthographic projection off (perspective projection)
				<br />
				1 = orthographic projection on, using lens angle
				<br />
				2 = orthographic projection on, ignoring lens angle
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="enumvals" get="1" set="1" type="atom" size="3">
					<enumlist>
						<enum name="Off (Perspective)">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="Orthographic (Lens Angle)">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="Orthographic (No Lens Angle)">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Ortho" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enumindex" />
			</attributelist>
		</attribute>
		<attribute name="out_name" get="1" set="1" type="symbol" size="1">
			<digest>
				Capture texture name
			</digest>
			<description>
				Capture texture name
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Out Name" />
			</attributelist>
		</attribute>
		<attribute name="proj_matrix" get="1" set="0" type="float" size="16">
			<digest>
				Current projection matrix
			</digest>
			<description>
				Current projection matrix
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Projection Matrix" />
			</attributelist>
		</attribute>
		<attribute name="projection_mode" get="1" set="1" type="symbol" size="1">
			<digest>
				Camera projection mode
			</digest>
			<description>
				Camera projection mode sets how the projection matrix is generated.  In standard mode, the camera uses the <at>ortho</at> setting an related attributes such as <at>near</at>, <at>far</at>, <at>lens_angle</at>, etc. to generate the projection matrix. In frustum mode, only the <at>frustum</at> attribute is used to calculate the projection matrix.
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="2">
					<enumlist>
						<enum name="standard">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="frustum">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Projection Mode" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
		<attribute name="tripod" get="1" set="1" type="int" size="1">
			<digest>
				Tripod mode flag
			</digest>
			<description>
				Force the camera to orient itself as if mounted on a tripod. Y-axis <m>turn</m> values are applied in world-space regardless of <at>animmode</at> (default = 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Tripod" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="type" get="1" set="1" type="symbol" size="1">
			<digest>
				Capture texture type
			</digest>
			<description>
				Capture texture type (default = auto)
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="enumvals" get="1" set="1" type="atom" size="7">
					<enumlist>
						<enum name="auto">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="char">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="long">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="half">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="float">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="float16">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="float32">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</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>
		<attribute name="view_matrix" get="1" set="0" type="float" size="16">
			<digest>
				Current view matrix
			</digest>
			<description>
				Current view matrix
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="View Matrix" />
			</attributelist>
		</attribute>
		<attribute name="viewport" get="1" set="1" type="float" size="4">
			<digest>
				Viewport coordinates
			</digest>
			<description>
				Viewport coordinates which set the left, bottom, width, and height of the viewport (default = 0. 0. 1. 1.)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Viewport" />
			</attributelist>
		</attribute>
		<attribute name="viewproj_matrix" get="1" set="0" type="float" size="16">
			<digest>
				Current view projection matrix
			</digest>
			<description>
				Current view projection matrix
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="View Projection Matrix" />
			</attributelist>
		</attribute>
		<attribute name="vp_mode" get="1" set="1" type="symbol" size="1">
			<digest>
				Viewport coordinate mode
			</digest>
			<description>
				Viewport coordinate mode (default = normalized). Determines if the <at>viewport</at> values are <m>absolute</m> or <m>normalized</m> coordinates.
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="2">
					<enumlist>
						<enum name="normalized">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="absolute">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Viewport Mode" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
	</attributelist>
	<jitterattributelist>
		<jitterattribute name="anchor" />
		<jitterattribute name="anim" />
		<jitterattribute name="animmode" />
		<jitterattribute name="antialias" />
		<jitterattribute name="auto_material" />
		<jitterattribute name="axes" />
		<jitterattribute name="blend_enable" />
		<jitterattribute name="blend_mode" />
		<jitterattribute name="color" />
		<jitterattribute name="cull_face" />
		<jitterattribute name="depth_clear" />
		<jitterattribute name="depth_enable" />
		<jitterattribute name="depth_write" />
		<jitterattribute name="dest_dim" />
		<jitterattribute name="enable" />
		<jitterattribute name="filterclass" />
		<jitterattribute name="fog_color" />
		<jitterattribute name="fog_density" />
		<jitterattribute name="fog_params" />
		<jitterattribute name="fog_range" />
		<jitterattribute name="inherit_all" />
		<jitterattribute name="inherit_color" />
		<jitterattribute name="inherit_depth" />
		<jitterattribute name="inherit_fog" />
		<jitterattribute name="inherit_material" />
		<jitterattribute name="inherit_poly" />
		<jitterattribute name="inherit_texture" />
		<jitterattribute name="inherit_transform" />
		<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="name" />
		<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="shininess" />
		<jitterattribute name="smooth_shading" />
		<jitterattribute name="transform_reset" />
		<jitterattribute name="two_sided" />
		<jitterattribute name="viewalign" />
	</jitterattributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="jit.gl.camera.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.gl.render" />
		<seealso name="jit.gl.sketch" />
		<seealso name="jit.anim.node" />
		<seealso name="jit.anim.drive" />
	</seealsolist>
	<discussion>
		Multiple <o>jit.gl.camera</o> objects can be added to a single drawing context, and switched between using the enable attribute.
		<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.
	</discussion>
</c74object>
