<?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.path" module="jit" category="Jitter OpenGL">
	<digest>
		Generate and render a path in OpenGL
	</digest>
	<description>
		The <o>jit.gl.path</o> object generates and renders a 3D path. See the <o>jit.path</o> object for more information on the underlying path structure. The 3D visualization can be rendered as either a line, an extruded line (ribbon), an extruded circle (tube), or an extruded 2D contour. The path stores 10 values: position x/y/z, color r/g/b/a, scale x/y, and orient angle.
		<br />
		For more information on how the extrusion is handled, see the GLE library:
		<a href="http://www.linas.org/gle">
			http://www.linas.org/gle
		</a>
	</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="addcolor">
			<arglist>
				<arg name="r" type="float" />
				<arg name="g" type="float" />
				<arg name="b" type="float" />
				<arg name="a" type="float" />
			</arglist>
			<digest>
				Add color values
			</digest>
			<description>
				Add color values to the last point in the path.
			</description>
		</method>
		<method name="addcontour">
			<arglist>
				<arg name="contour-vals" type="list" />
			</arglist>
			<digest>
				Set the contour
			</digest>
			<description>
				Set the contour to be used for <at>pathstyle</at>  <m>contour</m>. The <ar>contour-vals</ar> are a list of X and Y position values describing a contour in 2D space. A minimum of 4 are required.
			</description>
		</method>
		<method name="addorient">
			<arglist>
				<arg name="orient" type="float" />
			</arglist>
			<digest>
				Add an orientation value
			</digest>
			<description>
				Add an orientation value to the last point in the path.
			</description>
		</method>
		<method name="addscale">
			<arglist>
				<arg name="scale-x" type="float" />
				<arg name="scale-y" 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="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
				<arg name="r" optional="1" type="float" />
				<arg name="g" optional="1" type="float" />
				<arg name="b" optional="1" type="float" />
				<arg name="a" optional="1" type="float" />
				<arg name="scale-x" optional="1" type="float" />
				<arg name="scale-y" optional="1" type="float" />
				<arg name="orient" optional="1" type="float" />
			</arglist>
			<digest>
				Append point values
			</digest>
			<description>
				Append point values to the end of the path.
			</description>
		</method>
		<method name="clear">
			<arglist />
			<digest>
				Remove all points from the path
			</digest>
			<description>
				TEXT_HERE
			</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="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="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="edit">
			<arglist>
				<arg name="index" type="int" />
				<arg name="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
				<arg name="r" optional="1" type="float" />
				<arg name="g" optional="1" type="float" />
				<arg name="b" optional="1" type="float" />
				<arg name="a" optional="1" type="float" />
				<arg name="scale-x" optional="1" type="float" />
				<arg name="scale-y" optional="1" type="float" />
				<arg name="orient" optional="1" 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="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
				<arg name="r" optional="1" type="float" />
				<arg name="g" optional="1" type="float" />
				<arg name="b" optional="1" type="float" />
				<arg name="a" optional="1" type="float" />
				<arg name="scale-x" optional="1" type="float" />
				<arg name="scale-y" optional="1" type="float" />
				<arg name="orient" optional="1" 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 dump 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 dump outlet.
			</description>
		</method>
		<method name="insert">
			<arglist>
				<arg name="index" type="int" />
				<arg name="x" type="float" />
				<arg name="y" type="float" />
				<arg name="z" type="float" />
				<arg name="r" optional="1" type="float" />
				<arg name="g" optional="1" type="float" />
				<arg name="b" optional="1" type="float" />
				<arg name="a" optional="1" type="float" />
				<arg name="scale-x" optional="1" type="float" />
				<arg name="scale-y" optional="1" type="float" />
				<arg name="orient" 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="setcolor">
			<arglist>
				<arg name="index" type="int" />
				<arg name="r" type="float" />
				<arg name="g" type="float" />
				<arg name="b" type="float" />
				<arg name="a" type="float" />
			</arglist>
			<digest>
				Set color values at <ar>index</ar> 
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="setorient">
			<arglist>
				<arg name="index" type="int" />
				<arg name="orient" type="float" />
			</arglist>
			<digest>
				Set orientation value at <ar>index</ar> 
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="setscale">
			<arglist>
				<arg name="index" type="int" />
				<arg name="scale-x" type="float" />
				<arg name="scale-y" type="float" />
			</arglist>
			<digest>
				Set scale values at <ar>index</ar> 
			</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="export_material" />
		<jittermethod name="exportattrs" />
		<jittermethod name="exportsummary" />
		<jittermethod name="getattributes" />
		<jittermethod name="getstate" />
		<jittermethod name="import_material" />
		<jittermethod name="jit_gl_texture" />
		<jittermethod name="jit_matrix" />
		<jittermethod name="importattrs" />
		<jittermethod name="summary" />
		<jittermethod name="update_node" />
	</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="Autohandles" />
				<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="displaylist" get="1" set="1" type="int" size="1">
			<digest>
				Cache in displaylist flag (default = 0)
			</digest>
			<description>
				Cache in displaylist flag (default = 0) This feature may be used to speed up rendering time by creating and storing a list of gl drawing commands on the graphics card.
			</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="drawhandles" get="1" set="1" type="int" size="1">
			<digest>
				Draw handles flag
			</digest>
			<description>
				Enable drawing of path handles, for debugging (default = 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Draw Handles" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="endcap" get="1" set="1" type="int" size="1">
			<digest>
				Close extrusion endpoints flag
			</digest>
			<description>
				Enable the closing of extruded path endpoints. (default = 0)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="End Cap" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="evalin" get="1" set="1" type="float" size="1">
			<digest>
				Determine where path starts
			</digest>
			<description>
				A parameter between 0 and 1 to determine where in the path rendering starts (default = 0.).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Eval In" />
			</attributelist>
		</attribute>
		<attribute name="evalout" get="1" set="1" type="float" size="1">
			<digest>
				Determine where path ends
			</digest>
			<description>
				A parameter between 0 and 1 to determine where in the path rendering ends (default = 1.).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Eval Out" />
			</attributelist>
		</attribute>
		<attribute name="extrudescale" get="1" set="1" type="float" size="2">
			<digest>
				Extrusion scaling factor
			</digest>
			<description>
				2D scaling factor for extrusion contours in the form x y (default = 1. 1.).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Extrude Scale" />
			</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>
								TEXT_HERE
							</description>
						</enum>
						<enum name="spline">
							<digest>
								Hermite interpolation
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Interp Mode" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
		<attribute name="joinstyle" get="1" set="1" type="symbol" size="1">
			<digest>
				Segment join method
			</digest>
			<description>
				Extrusion segment join method (default = angle). See the GLE library for more information.
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="4">
					<enumlist>
						<enum name="raw">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="angle">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="cut">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="round">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Joint Style" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
		<attribute name="normgen" get="1" set="1" type="symbol" size="1">
			<digest>
				Normal generation method (default = none)
			</digest>
			<description>
				Normal generation method for extruded paths (default = none). See the GLE library for more information.
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="4">
					<enumlist>
						<enum name="none">
							<digest>
								No generation
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="facet">
							<digest>
								Normal vector per facet
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="edge">
							<digest>
								Normal vectors lie along edges
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="pathedge">
							<digest>
								Normal vectors lie along edges and interpolate between segments
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Norm Gen" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
		<attribute name="pathstyle" get="1" set="1" type="symbol" size="1">
			<digest>
				Path drawing method
			</digest>
			<description>
				Path drawing method (default = line).
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="4">
					<enumlist>
						<enum name="line">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="ribbon">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="tube">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="contour">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Path Style" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</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="segments" get="1" set="1" type="int" size="1">
			<digest>
				Number of segments between points
			</digest>
			<description>
				Number of segments between points (default = 20).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Segments" />
			</attributelist>
		</attribute>
		<attribute name="texscale" get="1" set="1" type="float" size="3">
			<digest>
				The scaling factor for textures
			</digest>
			<description>
				The 3D scaling factor for textures in the form x y z (default = 1. 1. 1.) .
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Tex Scale" />
			</attributelist>
		</attribute>
		<attribute name="texturemode" get="1" set="1" type="int" size="1">
			<digest>
				Texture coord generation
			</digest>
			<description>
				Texturing coord generation method for extruded paths (default = 1). See the GLE library for more information.
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="13">
					<enumlist>
						<enum name="none">
							<digest>
								No texture coord generation
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="vertex_flat">
							<digest>
								Vertex X is U, accumulated segment length is V
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="normal_flat">
							<digest>
								Normal vector X is U, accumulated segment length is V
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="vertex_cylinder">
							<digest>
								Vertex cylinder mapping for U, accumulated segment length for V
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="normal_cylinder">
							<digest>
								Normal cylinder mapping for U, accumulated segment length for V
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="vertex_sphere">
							<digest>
								Vertex sphere mapping
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="normal_sphere">
							<digest>
								Normal sphere mapping
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="vertex_model_flat">
							<digest>
								same as vertex_flat but with untransformed vertices
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="normal_model_flat">
							<digest>
								same as normal_flat but with untransformed vertices
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="vertex_model_cylinder">
							<digest>
								same as vertex_cylinder but with untransformed vertices
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="normal_model_cylinder">
							<digest>
								same as normal_cylinder but with untransformed vertices
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="vertex_model_sphere">
							<digest>
								same as vertex_sphere but with untransformed vertices
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="normal_model_sphere">
							<digest>
								same as normal_sphere but with untransformed vertices
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Texture Mode" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enumindex" />
			</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="color" />
		<jitterattribute name="cull_face" />
		<jitterattribute name="depth_clear" />
		<jitterattribute name="depth_enable" />
		<jitterattribute name="depth_write" />
		<jitterattribute name="dest_dim" />
		<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="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="material" />
		<jitterattribute name="matfile" />
		<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="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="texture" />
		<jitterattribute name="texzoom" />
		<jitterattribute name="transform_reset" />
		<jitterattribute name="two_sided" />
		<jitterattribute name="viewalign" />
	</jitterattributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="jit.gl.path.png" caption="Generate and render a path in OpenGL" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.path" />
		<seealso name="jit.anim.path" />
		<seealso name="jit.gl.sketch" />
	</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>
