<?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="function" module="max" category="U/I">
	<digest>
		Breakpoint function editor
	</digest>
	<description>
		Draw or store a set of x, y points as floating-point numbers. The output the entire function is useful as an input for <o>line~</o>. You can also get an interpolated y value for any x value.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Max
		</metadata>
		<metadata name="tag">
			MSP U/I
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				bang Outputs All, float Outputs Y at X, list Edits
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				Interpolated Y (float) for Input X
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				All Points in line Format
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="2" type="OUTLET_TYPE">
			<digest>
				dump Message Output (list)
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="3" type="OUTLET_TYPE">
			<digest>
				bang When Changed With Mouse
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<palette category="Data, Audio" action="function" pic="function.svg" />
	<!--ARGUMENTS-->
	<objarglist>
		<objarg id="0" name="OBJARG_NAME" type="OBJARG_TYPE" optional="0">
			<digest>
				TEXT_HERE
			</digest>
			<description>
				TEXT_HERE
			</description>
		</objarg>
	</objarglist>
	<!--parameter-->
	<parameter />
	<!--MESSAGES-->
	<methodlist>
		<method name="bang">
			<arglist />
			<digest>
				Output a list of breakpoints
			</digest>
			<description>
				Triggers a list output of the current breakpoints from the middle-left outlet formatted for use by the <o>line~</o> object. As an example, if the <o>function</o> contained breakpoints at X = 1, Y = 0; X = 10, Y = 1; and X = 20, Y = 0, the output would be <m>0, 1 9 0 10</m>. If the optional output mode is enabled, the output would be <m>0 0 1 9 0 10</m>.				<br />
				<br />
				If there are any sustain points in the function, <m>bang</m> outputs a list of all the points up to the sustain point. Additional points in the function, up to a subsequent sustain point or the end point, whichever applies, can be output by sending the next message. See the description of the <m>next</m> and <m>sustain</m> messages for additional information.
			</description>
		</method>
		<method name="int">
			<arglist>
				<arg name="x-value" optional="0" type="int" />
			</arglist>
			<digest>
				Output an interpolated y-axis value
			</digest>
			<description>
				The value is taken as an X value and outputs a corresponding Y value out the left outlet. The Y value is produced by linear floating-point interpolation of the function. If the X value lies outside the first or last breakpoint, the Y value is <m>0</m>.
			</description>
		</method>
		<method name="float">
			<arglist>
				<arg name="input" optional="0" type="float" />
			</arglist>
			<digest>
				Output an interpolated y-axis value
			</digest>
			<description>
				The value is taken as an X value and outputs a corresponding Y value out the left outlet. The Y value is produced by linear floating-point interpolation of the function. If the X value lies outside the first or last breakpoint, the Y value is <m>0</m>.
			</description>
		</method>
		<method name="list">
			<arglist>
				<arg name="x-value" optional="0" type="number" />
				<arg name="y-value" optional="0" type="number" />
			</arglist>
			<digest>
				Add a new breakpoint
			</digest>
			<description>
				If the list contains two values, a new point is added to the <o>function</o>. The first value is X, the second is Y.
				<br />
				<br />
				If the list contains three values, an existing point in the <o>function</o> is modified. The first value is the index (starting at 0) of a breakpoint to modify, the second is the new X value for the breakpoint, and the third is the new Y value for the breakpoint. (If the index number in the list refers to a breakpoint that does not exist, the message is ignored.)
			</description>
		</method>
		<method name="clear">
			<arglist>
				<arg name="indices" optional="0" type="list" />
			</arglist>
			<digest>
				Clear breakpoints
			</digest>
			<description>
				The word <m>clear</m> by itself erases all existing breakpoints. The word <m>clear</m> can also be followed by one or more breakpoint indices (starting at 0) to clear selected breakpoints.
			</description>
		</method>
		<method name="clearfix">
			<arglist />
			<digest>
				Clear all fixed-value states
			</digest>
			<description>
				The word <m>clearfix</m> clears all fix states (sets them to 0).
			</description>
		</method>
		<method name="clearsustain">
			<arglist />
			<digest>
				Clear all sustain states
			</digest>
			<description>
				The word <m>clearsustain</m> clears all sustain states (sets them to 0).
			</description>
		</method>
		<method name="color">
			<arglist>
				<arg name="ARG_NAME_0" type="int" optional="0" />
			</arglist>
			<digest>
				TEXT_HERE
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
			</attributelist>
		</method>
		<method name="copy">
			<arglist />
			<digest>
				Copy the points from a function
			</digest>
			<description>
				The <m>copy</m> message copies all of the current function points to the clipboard so that they can be pasted into another <o>function</o> object.
			</description>
		</method>
		<method name="dump">
			<arglist>
				<arg name="receive-name" optional="0" type="symbol" />
			</arglist>
			<digest>
				Output all breakpoints
			</digest>
			<description>
				Outputs a series of two-item lists, containing the X and Y values for each of the breakpoints, out the <o>function</o> object's middle-right outlet. An optional symbol argument can be used to specify a <o>receive</o> objects as a destination.
			</description>
		</method>
		<method name="fix">
			<arglist>
				<arg name="index" optional="0" type="number" />
				<arg name="flag" optional="0" type="int" />
			</arglist>
			<digest>
				Toggle breakpoint editing
			</digest>
			<description>
				The word <m>fix</m>, followed by a number specifying the index of a point and 0 or 1, prevents the user from changing the point if the second number is 1, and allows the user to change the point if the second number is 0. By default, points are moveable unless clickmove 0 has been sent to disable moving of all points.
			</description>
		</method>
		<method name="getfix">
			<arglist>
				<arg name="point-indices" optional="0" type="list" />
			</arglist>
			<digest>
				Report all fixed-value points
			</digest>
			<description>
				The word <m>getfix</m>. with no arguments, will cause the <o>function</o> object to send a list all fix points out the object's middle-right outlet. If an index is provided as an argument, the fix state for that point will be output.
			</description>
		</method>
		<method name="getsustain">
			<arglist>
				<arg name="point-indices" optional="0" type="list" />
			</arglist>
			<digest>
				Report all sustain points
			</digest>
			<description>
				The word <m>getsustain</m>. with no arguments, will cause the <o>function</o> object to send a list all sustain points out the object's middle-right outlet. If an index is provided as an argument, the sustain state for that point will be output.
			</description>
		</method>
		<method name="listdump">
			<arglist>
				<arg name="receive-name" optional="0" type="symbol" />
			</arglist>
			<digest>
				Output all breakpoints as a single list
			</digest>
			<description>
				Outputs a single list which contains all X and Y values for each of the breakpoints out the <o>function</o> object's middle-right outlet.An optional symbol argument can be used to specify a <o>receive</o> objects as a destination.
			</description>
		</method>
		<method name="next">
			<arglist />
			<digest>
				Continue from a sustain point
			</digest>
			<description>
				The <m>next</m> message continues a list output from the sustain point where the output of the last bang or next message ended. For instance, if the <o>function</o> contained breakpoints at (a) X = 1, Y = 0; (b) X = 10, Y = 1; and (c) X = 20, Y = 0, and point b was a sustain point, a <m>bang</m> message would output <m>0, 1 9</m> and a subsequent <m>next</m> message would output <m>1, 0 10.</m> After a <m>next</m> message reaches the end point, a subsequent <m>next</m> message is equivalent to a <m>bang</m> message. <m>next</m> is also equivalent to a <m>bang</m> when no <m>bang</m> has been sent that reached a sustain point, or when a <o>function</o> contains no sustain points.
			</description>
		</method>
		<method name="(mouse)">
			<digest>
				Manually add or edit breakpoints
			</digest>
			<description>
				You can use the mouse to draw points in a line segment function; the finished function can then be sent to a <o>line~</o> object for use as a control signal in MSP. Clicking on empty space in the function adds a breakpoint, which you can begin to move immediately by dragging (unless function has been sent the <m>clickadd 0</m> message). Clicking on a breakpoint allows you to move the breakpoint by dragging (unless function has been sent the <m>clickmove 0</m> message). The X and Y values of the breakpoint are displayed in the upper part of the object’s box. Shift-clicking on a breakpoint deletes that point from the function. Command-clicking on Macintosh or Control-clicking on Windows on a breakpoint toggles the sustain property of the point. Sustain points are outlined in white. Whenever an editing operation with the mouse is completed, a bang is sent out the right outlet.
				<br />
				Points with a Y value of 0 are outlined circles; other points are solid. This allows you to see at a glance whether a function starts or ends at Y = 0.
			</description>
		</method>
		<method name="nth">
			<arglist>
				<arg name="index" optional="0" type="int" />
			</arglist>
			<digest>
				Output a breakpoint value
			</digest>
			<description>
				The word <m>nth</m>, followed by a number, uses the number as the index (starting at 0) of a breakpoint, and outputs the Y value of the breakpoint out the left outlet. If no breakpoint with the specified index exists, no output occurs.
			</description>
		</method>
		<method name="quantize_x">
			<arglist />
			<digest>
				Quantize points on the grid's horizontal axis
			</digest>
			<description>
				This message will cause all of the points to automatically snap to the horizontal grid as defined by the <m>gridstep_x</m> attribute.
			</description>
		</method>
		<method name="quantize_y">
			<arglist />
			<digest>
				Quantize points on the grid's vertical axis
			</digest>
			<description>
				This message will cause all of the points to automatically snap to the vertical grid as defined by the <m>gridstep_y</m> attribute.
			</description>
		</method>
		<method name="paste">
			<arglist />
			<digest>
				Paste the points of a copied function
			</digest>
			<description>
				The <m>paste</m> message pastes all of the points of a previously copied function into a <o>function</o> object.
			</description>
		</method>
		<method name="set">
			<arglist>
				<arg name="x-y-coordinate-pairs" optional="0" type="list" />
			</arglist>
			<digest>
				Set breakpoint values
			</digest>
			<description>
				Given the number of points already defined within <o>function</o>'s graphic editor, a corresponding list of x-y-coordinate pairs will set the position of each point.
			</description>
		</method>
		<method name="setcurve">
			<arglist>
				<arg name="index" optional="0" type="int" />
				<arg name="curve-factor" optional="0" type="float" />
			</arglist>
			<digest>
				Draw a curve between two points
			</digest>
			<description>
				The word <m>setcurve</m>, followed by an integer that specifies the index of a function point (numbered from 1) and a floating point value that specifies a curve, will create a curved line segment between the specified point and the next point.
				<br />
				<br />
				Curve factor values from 0 to 1.0 produce an &quot;exponential&quot; curve when increasing in value and values from -1.0 to 0 produce a &quot;logarithmic&quot; curve. The closer to 0 the curve parameter is, the closer the curve is to a straight line, and the farther away the parameter is from 0, the steeper the curve. The <m>mode</m> attribute must be set to 1 (curve mode) for this message to be effective.
			</description>
		</method>
		<method name="setdomain">
			<arglist>
				<arg name="maximum" optional="0" type="float" />
			</arglist>
			<digest>
				Set the maximum X-axis value
			</digest>
			<description>
				The word <m>setdomain</m>, followed by a <m>float</m> or <m>int</m> value, sets the maximum displayed X value, then modifies the X values of all breakpoints so that they remain in the same place given the new domain.
			</description>
		</method>
		<method name="setrange">
			<arglist>
				<arg name="minimum" optional="0" type="number" />
				<arg name="maximum" optional="0" type="number" />
			</arglist>
			<digest>
				Set minimum and maximum Y-axis values
			</digest>
			<description>
				The word <m>setrange</m>, followed by two <m>float</m> or <m>int</m> values, sets the minimum and maximum display range for Y values, then modifies the Y values of all breakpoints so that they remain in the same place given the new range.
			</description>
		</method>
		<method name="sustain">
			<arglist>
				<arg name="index" optional="0" type="int" />
				<arg name="flag" optional="0" type="int" />
			</arglist>
			<digest>
				Set the sustain state for a breakpoint
			</digest>
			<description>
				The word <m>sustain</m>, followed by number specifying the index of a point and zero or one, turns that point into a sustain point if the second number is 1, or into a regular point if the second number is 0. By default, points are regular (non-sustain). The behavior of sustain points is discussed in the description of the <m>bang</m> message above. Command-clicking on Macintosh or Control-clicking on Windows also toggle the sustain property of a point.
			</description>
		</method>
		<method name="xyc">
			<arglist>
				<arg name="x-value" optional="0" type="number" />
				<arg name="y-value" optional="0" type="number" />
				<arg name="curve-factor" optional="0" type="float" />
			</arglist>
			<digest>
				Add a point with curve information
			</digest>
			<description>
				The word <m>xyc</m>, followed by an two numbers that specifies X and Y values and a floating point number that specifies a curve factor, will add a new point with curve information to the function.
				<br />
				<br />
				Curve factor values from 0 to 1.0 produce an &quot;exponential&quot; curve when increasing in value and values from -1.0 to 0 produce a &quot;logarithmic&quot; curve. The closer to 0 the curve parameter is, the closer the curve is to a straight line, and the farther away the parameter is from 0, the steeper the curve. The <m>mode</m> attribute must be set to 1 (curve mode) for this message to be effective.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="autosustain" get="1" set="1" type="int" size="1">
			<digest>
				Automatic sustain mode
			</digest>
			<description>
				Toggles setting the sustain point to the one before last point. This feature requires that there are more than two points in the current function. The default is 0 (off).
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Auto Sustain" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="bgcolor" get="1" set="1" type="float" size="4">
			<digest>
				Background color
			</digest>
			<description>
				Sets the display color for the background in RGBA format.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Color" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Background Color" />
				<attribute name="legacydefault" get="1" set="1" type="float" size="4" value="0.8 0.8 0.8 1." />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="preview" get="1" set="1" type="symbol" size="1" value="rect_fill" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="set" get="1" set="1" type="pointer" size="1" value="pointer" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="rgba" />
			</attributelist>
		</attribute>
		<attribute name="bordercolor" get="1" set="1" type="atom" size="1">
			<digest>
				TEXT_HERE
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="invisible" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="obsolete" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="clickadd" get="1" set="1" type="int" size="1">
			<digest>
				Click-to-add flag
			</digest>
			<description>
				Toggles a user's ability to create new breakpoints by clicking and dragging with the mouse. This feature is enabled by default.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Allows Adding Points by Clicking" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="clickmove" get="1" set="1" type="int" size="1">
			<digest>
				Click-to-move flag
			</digest>
			<description>
				Toggles a user's ability to move existing breakpoints by dragging them with the mouse. This feature is enabled by default.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Allows Moving Points by Clicking/Dragging" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="clicksustain" get="1" set="1" type="int" size="1">
			<digest>
				Toggles a user's ability to specify a sustain point by clicking with the mouse.
			</digest>
			<description>
				Click-to-sustain flag
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Allows Changing Sustain by Clicking" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="cursor" get="1" set="1" type="float" size="1">
			<digest>
				Cursor Position
			</digest>
			<description>
				Sets the position of the cursor along the <o>function</o> object's X axis.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="float" size="1" value="-1." />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Cursor Position" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="cursorcolor" get="1" set="1" type="atom" size="1">
			<digest>
				TEXT_HERE
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="invisible" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="obsolete" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="domain" get="1" set="1" type="float" size="1">
			<digest>
				Maximum sustain value
			</digest>
			<description>
				Sets the maximum displayed X value.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="float" size="1" value="1000." />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Hi Domain Display Value (X-Axis)" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="grid" get="1" set="1" type="int" size="1">
			<digest>
				Display Grid
			</digest>
			<description>
				Enables and selects the display of a grid for the <o>function</o> object display. The modes are:
				<br />
				<br />
				0: No grid displayed (default).
				<br />
				1: Horizontal grid displayed.
				<br />
				2: Vertical grid displayed.
				<br />
				3: Horizontal and vertical grids displayed.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="0" />
				<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="Horizontal">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="Vertical">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="Horizontal and Vertical">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Display Grid" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enumindex" />
			</attributelist>
		</attribute>
		<attribute name="gridcolor" get="1" set="1" type="float" size="4">
			<digest>
				Grid Color
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Color" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Grid Color" />
				<attribute name="legacydefault" get="1" set="1" type="float" size="4" value="0.5 0.5 0.5 0.5" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="preview" get="1" set="1" type="symbol" size="1" value="gridlines" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="set" get="1" set="1" type="pointer" size="1" value="pointer" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="rgba" />
				<attribute name="stylemap" get="1" set="1" type="symbol" size="1" value="elementcolor" />
			</attributelist>
		</attribute>
		<attribute name="gridstep_x" get="1" set="1" type="float" size="1">
			<digest>
				Horizontal Grid Step
			</digest>
			<description>
				Sets the horizontal (x) grid step for the <o>function</o> object's display.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="float" size="1" value="100." />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Horizontal Grid Step" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="gridstep_y" get="1" set="1" type="float" size="1">
			<digest>
				Vertical Grid Step
			</digest>
			<description>
				Sets the vertical (y) grid step for the <o>function</o> object's display.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="float" size="1" value="0.1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Vertical Grid Step" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="legend" get="1" set="1" type="int" size="1">
			<digest>
				Legend display flag
			</digest>
			<description>
				Toggles the numerical display (legend) of the <m>function</m> object, displayed when a point is highlighted or updated.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Display Legend at Top of Object" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="linecolor" get="1" set="1" type="float" size="4">
			<digest>
				Color
			</digest>
			<description>
				Sets the display color for the function line segments in RGBA format.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Color" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Color" />
				<attribute name="legacydefault" get="1" set="1" type="float" size="4" value="0.33 0.33 0.33 1." />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="preview" get="1" set="1" type="symbol" size="1" value="wave" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="set" get="1" set="1" type="pointer" size="1" value="pointer" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="rgba" />
				<attribute name="stylemap" get="1" set="1" type="symbol" size="1" value="color" />
			</attributelist>
		</attribute>
		<attribute name="linethickness" get="1" set="1" type="float" size="1">
			<digest>
				Line Thickness
			</digest>
			<description>
				Sets the thickness (width) of the lines drawn between points.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="float" size="1" value="1." />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Line Thickness" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="mode" get="1" set="1" type="int" size="1">
			<digest>
				Mode
			</digest>
			<description>
				Selects the <m>function</m> object's drawing mode. The modes are:
				<br />
				<br />
				0: Linear mode (default).
				<br />
				1: Curve mode. The amount of curve between each point is set using the <m>setcurve</m> message.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="0" />
				<attribute name="enumvals" get="1" set="1" type="atom" size="2">
					<enumlist>
						<enum name="Linear">
							<digest>
								Linear mode
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="Curve">
							<digest>
								Curve mode
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Mode" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enumindex" />
			</attributelist>
		</attribute>
		<attribute name="mousemode" get="1" set="1" type="int" size="1">
			<digest>
				Mouse Mode
			</digest>
			<description>
				This attribute changes the behavior of what happens when moving a function point via the mouse. When mousemode is set to 'free' (default), the point being moved can only be moved between the preceding and subsequent points, and all other points are unchanged. When mousemode is set to 'shift', all subsequent points are moved an equal amount on the x axis, keeping their relative distance on the x axis from the point being moved.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="0" />
				<attribute name="enumvals" get="1" set="1" type="atom" size="2">
					<enumlist>
						<enum name="free">
							<digest>
								Move point without moving others
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="shift">
							<digest>
								Move point and shift subsequent points
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Mouse Mode" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enumindex" />
			</attributelist>
		</attribute>
		<attribute name="mousereport" get="1" set="1" type="int" size="1">
			<digest>
				Output Mouse Information
			</digest>
			<description>
				When mousereport is set to 1, a three item list of mouse data is output from the third outlet. The list contains the mouse's current position on the x and y axis, as well as the current point under the mouse pointer. If no point is under the mouse, a -1 is output. The list is only output when the mouse is over the function object and the patcher is locked.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Output Mouse Information" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="outputmode" get="1" set="1" type="int" size="1">
			<digest>
				Output mode
			</digest>
			<description>
				Sets the <m>function</m> object's output mode.
				<br />
				<m>Normal</m>: When the object receives a <m>bang</m>, it outputs a list of the current breakpoints formatted for use by the <m>line~</m> object.
				<br />
				<m>List</m>: When the object receives a <m>bang</m>, it sends its values in single list in which the first Y value is followed by a 0, followed by any additional Y values and associated times.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="0" />
				<attribute name="enumvals" get="1" set="1" type="atom" size="2">
					<enumlist>
						<enum name="Normal">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="List">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Output mode" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enumindex" />
			</attributelist>
		</attribute>
		<attribute name="parameter_enable" get="1" set="1" type="int" size="1">
			<digest>
				Enable parameter mode handling
			</digest>
			<description>
				Enables use of this object with <link type="vignette" module="core" name="live_parameters">Max for Live Parameters</link> and allows for <link type="vignette" module="core" name="parameter_enable">setting initial parameter values</link> in the Max environment.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Parameter" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Parameter Mode Enable" />
				<attribute name="order" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="pointcolor" get="1" set="1" type="atom" size="1">
			<digest>
				TEXT_HERE
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="invisible" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="obsolete" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="range" get="1" set="1" type="float" size="2">
			<digest>
				Y-axis display range
			</digest>
			<description>
				Sets the minimum and maximum display ranges for Y values.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="float" size="2" value="0. 1." />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Lo and Hi Display Range (Y-Axis)" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="snap2grid" get="1" set="1" type="int" size="1">
			<digest>
				Snap Mouse to Grid
			</digest>
			<description>
				Enables and selects a snap to grid mode for the placement of function points. Snap to grid may be enabled even when the grid is not displayed (set using the <m>grid</m> attribute. The modes are:
				<br />
				<br />
				0: Snap to grid disabled (default).
				<br />
				1: Snap to horizontal grid.
				<br />
				2: Snap to vertical grid.
				<br />
				3: Snap to horizontal and vertical grids.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="0" />
				<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="Horizontal">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="Vertical">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="Horizontal and Vertical">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Snap Mouse to Grid" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enumindex" />
			</attributelist>
		</attribute>
		<attribute name="style" get="1" set="1" type="symbol" size="1">
			<digest>
				Style
			</digest>
			<description>
				Sets the <link type="vignette" module="core" name="styles">style</link> to be applied to the object. Styles can be set using the <link type="vignette" module="core" name="format_palette">Format palette</link>.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="symbol" size="1" value="Appearance" />
				<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="Style" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="style" />
			</attributelist>
		</attribute>
		<attribute name="sustaincolor" get="1" set="1" type="atom" size="1">
			<digest>
				Grid and Sustain Color
			</digest>
			<description>
				Sets the display colors for the function grid and for indicating sustain in RGBA format.
			</description>
			<attributelist>
				<attribute name="invisible" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="obsolete" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="textcolor" get="1" set="1" type="float" size="4">
			<digest>
				Text Color
			</digest>
			<description>
				Sets the display color for text in RGBA format.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Color" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Text Color" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="set" get="1" set="1" type="pointer" size="1" value="pointer" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="rgba" />
				<attribute name="stylemap" get="1" set="1" type="symbol" size="1" value="textcolor_inverse" />
			</attributelist>
		</attribute>
		<attribute name="zoom_x" get="1" set="1" type="float" size="2">
			<digest>
				Horizontal zoom factor
			</digest>
			<description>
				Sets the horizontal zoom for the <o>function</o> object's display. Zoom values are set using a pair of floating point values in the range 0.0 - 1.0.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="float" size="2" value="0. 1." />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Horizontal Zoom Factors" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="zoom_y" get="1" set="1" type="float" size="2">
			<digest>
				Vertical zoom factor
			</digest>
			<description>
				Sets the vertical zoom for the <o>function</o> object's display. Zoom values are set using a pair of floating point values in the range 0.0 - 1.0.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="float" size="2" value="0. 1." />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Vertical Zoom Factors" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
	</attributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="function.png" caption="Send line segment information to line~, or look up (and interpolate) individual Y values" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="line" />
	</seealsolist>
	<misc name="Output">
		<entry name="float">
			<description>
				Out left outlet: The interpolated Y value is sent out in response to a <m>float</m> or <m>int</m> X value received in the inlet; or a stored Y value is sent out in response to an <m>nth</m> message.
			</description>
		</entry>
		<entry name="list">
			<description>
				Out middle-left outlet: When <m>bang</m> is received, a list containing information about all stored values will be sent out the outlet. This format is intended for input to the <o>line~</o> object.
				<br />
				<br />
				If the <o>function</o> object is in linear mode (set via the <m>mode</m> attribute), a <m>float</m> is sent out for the first stored Y value, followed by a <m>list</m> containing pairs of numbers indicating each subsequent stored Y value and its transition time (the difference between X and the previous X). If the <o>function</o> object is in linear mode (set via the <m>mode</m> attribute), a <m>float</m> is sent out for the first stored Y value, followed by a <m>list</m> containing pairs of numbers indicating each subsequent stored Y value and its transition time (the difference between X and the previous X).
				<br />
				<br />
				If the <o>function</o> object is in curve mode (set via the <m>mode</m> attribute), a <m>float</m> is sent out for the first stored Y value, followed by a <m>list</m> containing triplets of numbers indicating each subsequent stored Y value, its transition time (the difference between X and the previous X), and a curve factor value (see the <m>setcurve</m> message listing).
				<br />
				<br />
				Out middle-right outlet: If the <o>function</o> object is in linear mode (set via the <m>mode</m> attribute), a series of two-item lists containing the X and Y values of each of the <o>function</o> object's breakpoints is sent out when a <m>dump</m> message is received.
				<br />
				<br />
				If the <o>function</o> object is in curve mode (set via the <m>mode</m> attribute), a series of three-item lists containing the X and Y values and a curve factor of each of the <o>function</o> object's breakpoints is sent out when a <m>dump</m> message is received.
			</description>
		</entry>
		<entry name="bang">
			<description>
				Out right outlet: When a mouse editing operation is completed, a <m>bang</m> is sent out.
			</description>
		</entry>
	</misc>
</c74object>
