diff options
Diffstat (limited to 'doc/gutenprint/html/group__curve.html')
-rw-r--r-- | doc/gutenprint/html/group__curve.html | 2470 |
1 files changed, 2470 insertions, 0 deletions
diff --git a/doc/gutenprint/html/group__curve.html b/doc/gutenprint/html/group__curve.html new file mode 100644 index 0000000..25b60cc --- /dev/null +++ b/doc/gutenprint/html/group__curve.html @@ -0,0 +1,2470 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> +<title>libgutenprint API Reference: curve</title> +<link href="doxygen.css" rel="stylesheet" type="text/css"> +</head><body> +<!-- Generated by Doxygen 1.4.3-20050530 --> +<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a></div> +<h1>curve</h1>The curve type models a linear, spline or gamma curve. +<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0"> +<tr><td></td></tr> +<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structstp__curve__point__t.html">stp_curve_point_t</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Point (x,y) for piecewise curve. <a href="structstp__curve__point__t.html#_details">More...</a><br></td></tr> +<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef stp_curve </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga0">stp_curve_t</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">The curve opaque data type. <a href="#ga0"></a><br></td></tr> +<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga47">stp_curve_type_t</a> { <a class="el" href="group__curve.html#gga47a1">STP_CURVE_TYPE_LINEAR</a>, +<a class="el" href="group__curve.html#gga47a2">STP_CURVE_TYPE_SPLINE</a> + }</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Curve types. <a href="group__curve.html#ga47">More...</a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga48">stp_curve_wrap_mode_t</a> { <a class="el" href="group__curve.html#gga48a3">STP_CURVE_WRAP_NONE</a>, +<a class="el" href="group__curve.html#gga48a4">STP_CURVE_WRAP_AROUND</a> + }</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Wrapping mode. <a href="group__curve.html#ga48">More...</a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga49">stp_curve_compose_t</a> { <a class="el" href="group__curve.html#gga49a5">STP_CURVE_COMPOSE_ADD</a>, +<a class="el" href="group__curve.html#gga49a6">STP_CURVE_COMPOSE_MULTIPLY</a>, +<a class="el" href="group__curve.html#gga49a7">STP_CURVE_COMPOSE_EXPONENTIATE</a> + }</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Composition types. <a href="group__curve.html#ga49">More...</a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga50">stp_curve_bounds_t</a> { <a class="el" href="group__curve.html#gga50a8">STP_CURVE_BOUNDS_RESCALE</a>, +<a class="el" href="group__curve.html#gga50a9">STP_CURVE_BOUNDS_CLIP</a>, +<a class="el" href="group__curve.html#gga50a10">STP_CURVE_BOUNDS_ERROR</a> + }</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Behaviour when curve exceeds bounds. <a href="group__curve.html#ga50">More...</a><br></td></tr> +<tr><td colspan="2"><br><h2>Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga1">stp_curve_create</a> (<a class="el" href="group__curve.html#ga48">stp_curve_wrap_mode_t</a> wrap)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new curve. <a href="#ga1"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga2">stp_curve_create_copy</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Copy and allocate an curve. <a href="#ga2"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga3">stp_curve_copy</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *dest, const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *source)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Copy an curve. <a href="#ga3"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga4">stp_curve_destroy</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Destroy an curve. <a href="#ga4"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga5">stp_curve_set_bounds</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, double low, double high)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the lower and upper bounds on a curve. <a href="#ga5"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga6">stp_curve_get_bounds</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, double *low, double *high)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the lower and upper bounds on a curve. <a href="#ga6"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__curve.html#ga48">stp_curve_wrap_mode_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga7">stp_curve_get_wrap</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the wrapping mode. <a href="#ga7"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga8">stp_curve_is_piecewise</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Determine whether the curve is piecewise. <a href="#ga8"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga9">stp_curve_get_range</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, double *low, double *high)</td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga10">stp_curve_count_points</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of allocated points in the curve. <a href="#ga10"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga11">stp_curve_set_interpolation_type</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, <a class="el" href="group__curve.html#ga47">stp_curve_type_t</a> itype)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the curve interpolation type. <a href="#ga11"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__curve.html#ga47">stp_curve_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga12">stp_curve_get_interpolation_type</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the curve interpolation type. <a href="#ga12"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga13">stp_curve_set_data</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t count, const double *data)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set all data points of the curve. <a href="#ga13"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga14">stp_curve_set_data_points</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t count, const <a class="el" href="structstp__curve__point__t.html">stp_curve_point_t</a> *data)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set all data points of the curve. <a href="#ga14"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga15">stp_curve_set_float_data</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t count, const float *data)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the data points in a curve from float values. <a href="#ga15"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga16">stp_curve_set_long_data</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t count, const long *data)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the data points in a curve from long values. <a href="#ga16"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga17">stp_curve_set_ulong_data</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t count, const unsigned long *data)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the data points in a curve from unsigned long values. <a href="#ga17"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga18">stp_curve_set_int_data</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t count, const int *data)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the data points in a curve from integer values. <a href="#ga18"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga19">stp_curve_set_uint_data</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t count, const unsigned int *data)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the data points in a curve from unsigned integer values. <a href="#ga19"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga20">stp_curve_set_short_data</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t count, const short *data)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the data points in a curve from short values. <a href="#ga20"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga21">stp_curve_set_ushort_data</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t count, const unsigned short *data)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the data points in a curve from unsigned short values. <a href="#ga21"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga22">stp_curve_get_subrange</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t start, size_t count)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a curve containing a subrange of data. <a href="#ga22"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga23">stp_curve_set_subrange</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *range, size_t start)</td></tr> + +<tr><td class="memItemLeft" nowrap align="right" valign="top">const double * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga24">stp_curve_get_data</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t *count)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a pointer to the curve's raw data. <a href="#ga24"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structstp__curve__point__t.html">stp_curve_point_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga25">stp_curve_get_data_points</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t *count)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a pointer to the curve's raw data as points. <a href="#ga25"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">const float * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga26">stp_curve_get_float_data</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t *count)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get pointer to the curve's raw data as floats. <a href="#ga26"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">const long * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga27">stp_curve_get_long_data</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t *count)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get pointer to the curve's raw data as longs. <a href="#ga27"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">const unsigned long * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga28">stp_curve_get_ulong_data</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t *count)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get pointer to the curve's raw data as unsigned longs. <a href="#ga28"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">const int * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga29">stp_curve_get_int_data</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t *count)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get pointer to the curve's raw data as integers. <a href="#ga29"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">const unsigned int * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga30">stp_curve_get_uint_data</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t *count)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get pointer to the curve's raw data as unsigned integers. <a href="#ga30"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">const short * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga31">stp_curve_get_short_data</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t *count)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get pointer to the curve's raw data as shorts. <a href="#ga31"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">const unsigned short * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga32">stp_curve_get_ushort_data</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t *count)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get pointer to the curve's raw data as unsigned shorts. <a href="#ga32"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="group__sequence.html#ga0">stp_sequence_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga33">stp_curve_get_sequence</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the underlying stp_sequence_t data structure which stp_curve_t is derived from. <a href="#ga33"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga34">stp_curve_set_gamma</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, double f_gamma)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the gamma of a curve. <a href="#ga34"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga35">stp_curve_get_gamma</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the gamma value of the curve. <a href="#ga35"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga36">stp_curve_set_point</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t where, double data)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set a point along the curve. <a href="#ga36"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga37">stp_curve_get_point</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t where, double *data)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a point along the curve. <a href="#ga37"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga38">stp_curve_interpolate_value</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, double where, double *result)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Interpolate a point along the curve. <a href="#ga38"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga39">stp_curve_resample</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, size_t points)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Resample a curve (change the number of points). <a href="#ga39"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga40">stp_curve_rescale</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve, double scale, <a class="el" href="group__curve.html#ga49">stp_curve_compose_t</a> mode, <a class="el" href="group__curve.html#ga50">stp_curve_bounds_t</a> bounds_mode)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Rescale a curve (multiply all points by a scaling constant). <a href="#ga40"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga41">stp_curve_write</a> (FILE *file, const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Write a curve to a file. <a href="#ga41"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga42">stp_curve_write_string</a> (const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *curve)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Write a curve to a string. <a href="#ga42"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga43">stp_curve_create_from_stream</a> (FILE *fp)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a curve from a stream. <a href="#ga43"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga44">stp_curve_create_from_file</a> (const char *file)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a curve from a stream. <a href="#ga44"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga45">stp_curve_create_from_string</a> (const char *string)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a curve from a string. <a href="#ga45"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__curve.html#ga46">stp_curve_compose</a> (<a class="el" href="group__curve.html#ga0">stp_curve_t</a> **retval, <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *a, <a class="el" href="group__curve.html#ga0">stp_curve_t</a> *b, <a class="el" href="group__curve.html#ga49">stp_curve_compose_t</a> mode, int points)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Compose two curves, creating a third curve. <a href="#ga46"></a><br></td></tr> +</table> +<hr><a name="_details"></a><h2>Detailed Description</h2> +The curve type models a linear, spline or gamma curve. +<p> +curve "inherits" from the sequence data structure (implemented via containment), since the curve data is represented internally as a sequence of numbers, for linear and spline curves. Linear Piecewise Curves (LPCs) should be implemented in the future which represent a curve in a more compact format.<p> +Various operations are supported, including interpolation and composition.<hr><h2>Typedef Documentation</h2> +<a class="anchor" name="ga0"></a><!-- doxytag: member="curve.h::stp_curve_t" ref="ga0" args="" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">typedef struct stp_curve <a class="el" href="group__curve.html#ga0">stp_curve_t</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +The curve opaque data type. +<p> + </td> + </tr> +</table> +<hr><h2>Enumeration Type Documentation</h2> +<a class="anchor" name="ga50"></a><!-- doxytag: member="curve.h::stp_curve_bounds_t" ref="ga50" args="" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">enum <a class="el" href="group__curve.html#ga50">stp_curve_bounds_t</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Behaviour when curve exceeds bounds. +<p> +<dl compact><dt><b>Enumerator: </b></dt><dd> +<table border="0" cellspacing="2" cellpadding="0"> +<tr><td valign="top"><em><a class="anchor" name="gga50a8"></a><!-- doxytag: member="STP_CURVE_BOUNDS_RESCALE" ref="gga50a8" args="" -->STP_CURVE_BOUNDS_RESCALE</em> </td><td> +Rescale the bounds. </td></tr> +<tr><td valign="top"><em><a class="anchor" name="gga50a9"></a><!-- doxytag: member="STP_CURVE_BOUNDS_CLIP" ref="gga50a9" args="" -->STP_CURVE_BOUNDS_CLIP</em> </td><td> +Clip the curve to the existing bounds. </td></tr> +<tr><td valign="top"><em><a class="anchor" name="gga50a10"></a><!-- doxytag: member="STP_CURVE_BOUNDS_ERROR" ref="gga50a10" args="" -->STP_CURVE_BOUNDS_ERROR</em> </td><td> +Error if bounds are violated. </td></tr> +</table> +</dl> + </td> + </tr> +</table> +<a class="anchor" name="ga49"></a><!-- doxytag: member="curve.h::stp_curve_compose_t" ref="ga49" args="" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">enum <a class="el" href="group__curve.html#ga49">stp_curve_compose_t</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Composition types. +<p> +<dl compact><dt><b>Enumerator: </b></dt><dd> +<table border="0" cellspacing="2" cellpadding="0"> +<tr><td valign="top"><em><a class="anchor" name="gga49a5"></a><!-- doxytag: member="STP_CURVE_COMPOSE_ADD" ref="gga49a5" args="" -->STP_CURVE_COMPOSE_ADD</em> </td><td> +Add composition. </td></tr> +<tr><td valign="top"><em><a class="anchor" name="gga49a6"></a><!-- doxytag: member="STP_CURVE_COMPOSE_MULTIPLY" ref="gga49a6" args="" -->STP_CURVE_COMPOSE_MULTIPLY</em> </td><td> +Multiply composition. </td></tr> +<tr><td valign="top"><em><a class="anchor" name="gga49a7"></a><!-- doxytag: member="STP_CURVE_COMPOSE_EXPONENTIATE" ref="gga49a7" args="" -->STP_CURVE_COMPOSE_EXPONENTIATE</em> </td><td> +Exponentiate composition. </td></tr> +</table> +</dl> + </td> + </tr> +</table> +<a class="anchor" name="ga47"></a><!-- doxytag: member="curve.h::stp_curve_type_t" ref="ga47" args="" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">enum <a class="el" href="group__curve.html#ga47">stp_curve_type_t</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Curve types. +<p> +<dl compact><dt><b>Enumerator: </b></dt><dd> +<table border="0" cellspacing="2" cellpadding="0"> +<tr><td valign="top"><em><a class="anchor" name="gga47a1"></a><!-- doxytag: member="STP_CURVE_TYPE_LINEAR" ref="gga47a1" args="" -->STP_CURVE_TYPE_LINEAR</em> </td><td> +Linear interpolation. </td></tr> +<tr><td valign="top"><em><a class="anchor" name="gga47a2"></a><!-- doxytag: member="STP_CURVE_TYPE_SPLINE" ref="gga47a2" args="" -->STP_CURVE_TYPE_SPLINE</em> </td><td> +Spline interpolation. </td></tr> +</table> +</dl> + </td> + </tr> +</table> +<a class="anchor" name="ga48"></a><!-- doxytag: member="curve.h::stp_curve_wrap_mode_t" ref="ga48" args="" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">enum <a class="el" href="group__curve.html#ga48">stp_curve_wrap_mode_t</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Wrapping mode. +<p> +<dl compact><dt><b>Enumerator: </b></dt><dd> +<table border="0" cellspacing="2" cellpadding="0"> +<tr><td valign="top"><em><a class="anchor" name="gga48a3"></a><!-- doxytag: member="STP_CURVE_WRAP_NONE" ref="gga48a3" args="" -->STP_CURVE_WRAP_NONE</em> </td><td> +The curve does not wrap. </td></tr> +<tr><td valign="top"><em><a class="anchor" name="gga48a4"></a><!-- doxytag: member="STP_CURVE_WRAP_AROUND" ref="gga48a4" args="" -->STP_CURVE_WRAP_AROUND</em> </td><td> +The curve wraps to its starting point. </td></tr> +</table> +</dl> + </td> + </tr> +</table> +<hr><h2>Function Documentation</h2> +<a class="anchor" name="ga46"></a><!-- doxytag: member="curve.h::stp_curve_compose" ref="ga46" args="(stp_curve_t **retval, stp_curve_t *a, stp_curve_t *b, stp_curve_compose_t mode, int points)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_compose </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> ** </td> + <td class="mdname" nowrap> <em>retval</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>a</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>b</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap><a class="el" href="group__curve.html#ga49">stp_curve_compose_t</a> </td> + <td class="mdname" nowrap> <em>mode</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>int </td> + <td class="mdname" nowrap> <em>points</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Compose two curves, creating a third curve. +<p> +Only add and multiply composition is currently supported. If both curves are gamma curves with the same sign, and the operation is multiplication or division, the returned curve is a gamma curve with the appropriate number of points. Both a and b must have the same wraparound type. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>retval</em> </td><td>a pointer to store the location of the newly-created output curve in. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>the first source curve. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>b</em> </td><td>the second source curve. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>mode</em> </td><td>the composition mode. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>points</em> </td><td>the number of points in the output curve (must not exceed 1048576). It must be at least two, unless the curve is a gamma curve and the operation chosen is multiplication or division. If -1, the resulting number of points will be the least common multiplier of the number of points in the input and output curves (but will not exceed 1048576). </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>FALSE if element-wise composition fails.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga3"></a><!-- doxytag: member="curve.h::stp_curve_copy" ref="ga3" args="(stp_curve_t *dest, const stp_curve_t *source)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void stp_curve_copy </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>dest</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>source</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Copy an curve. +<p> +Both dest and source must be valid curves previously created with <a class="el" href="group__curve.html#ga1">stp_curve_create()</a>. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>the destination curve. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>the source curve.</td></tr> + </table> +</dl> + </td> + </tr> +</table> +<a class="anchor" name="ga10"></a><!-- doxytag: member="curve.h::stp_curve_count_points" ref="ga10" args="(const stp_curve_t *curve)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">size_t stp_curve_count_points </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>curve</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get the number of allocated points in the curve. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>the number of points.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga1"></a><!-- doxytag: member="curve.h::stp_curve_create" ref="ga1" args="(stp_curve_wrap_mode_t wrap)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a>* stp_curve_create </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga48">stp_curve_wrap_mode_t</a> </td> + <td class="mdname1" valign="top" nowrap> <em>wrap</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Create a new curve. +<p> +Curves have y=lower..upper. The default bounds are 0..1. The default interpolation type is linear. There are no points allocated, and the gamma is defaulted to 1. The curve is a dense (equally-spaced) curve.<p> +A wrapped curve has the same value at x=0 and x=1. The wrap mode of a curve cannot be changed except by routines that destroy the old curve entirely (e. g. stp_curve_copy, stp_curve_read). <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>wrap</em> </td><td>the wrap mode of the curve. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>the newly created curve.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga2"></a><!-- doxytag: member="curve.h::stp_curve_create_copy" ref="ga2" args="(const stp_curve_t *curve)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a>* stp_curve_create_copy </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>curve</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Copy and allocate an curve. +<p> +dest will be created, and then the contents of source will be copied into it. dest must not have been previously allocated with <a class="el" href="group__curve.html#ga1">stp_curve_create()</a>. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the source curve. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>the new copy of the curve.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga44"></a><!-- doxytag: member="curve.h::stp_curve_create_from_file" ref="ga44" args="(const char *file)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a>* stp_curve_create_from_file </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const char * </td> + <td class="mdname1" valign="top" nowrap> <em>file</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Create a curve from a stream. +<p> +<dl compact><dt><b>Warning:</b></dt><dd>NOTE that these calls are not thread-safe! These routines may manipulate the locale to achieve a safe representation. </dd></dl> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>file</em> </td><td>the file to read. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>the newly created curve, or NULL if an error occured.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga43"></a><!-- doxytag: member="curve.h::stp_curve_create_from_stream" ref="ga43" args="(FILE *fp)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a>* stp_curve_create_from_stream </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">FILE * </td> + <td class="mdname1" valign="top" nowrap> <em>fp</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Create a curve from a stream. +<p> +<dl compact><dt><b>Warning:</b></dt><dd>NOTE that these calls are not thread-safe! These routines may manipulate the locale to achieve a safe representation. </dd></dl> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>fp</em> </td><td>the stream to read. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>the newly created curve, or NULL if an error occured.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga45"></a><!-- doxytag: member="curve.h::stp_curve_create_from_string" ref="ga45" args="(const char *string)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a>* stp_curve_create_from_string </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const char * </td> + <td class="mdname1" valign="top" nowrap> <em>string</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Create a curve from a string. +<p> +<dl compact><dt><b>Warning:</b></dt><dd>NOTE that these calls are not thread-safe! These routines may manipulate the locale to achieve a safe representation. </dd></dl> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>string</em> </td><td>the string to read. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>the newly created curve, or NULL if an error occured.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga4"></a><!-- doxytag: member="curve.h::stp_curve_destroy" ref="ga4" args="(stp_curve_t *curve)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void stp_curve_destroy </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>curve</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Destroy an curve. +<p> +It is an error to destroy the curve more than once. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to destroy.</td></tr> + </table> +</dl> + </td> + </tr> +</table> +<a class="anchor" name="ga6"></a><!-- doxytag: member="curve.h::stp_curve_get_bounds" ref="ga6" args="(const stp_curve_t *curve, double *low, double *high)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void stp_curve_get_bounds </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>double * </td> + <td class="mdname" nowrap> <em>low</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>double * </td> + <td class="mdname" nowrap> <em>high</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get the lower and upper bounds on a curve. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>low</em> </td><td>a pointer to a double to store the lower bound in. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>high</em> </td><td>a pointer to a double to store the upper bound in.</td></tr> + </table> +</dl> + </td> + </tr> +</table> +<a class="anchor" name="ga24"></a><!-- doxytag: member="curve.h::stp_curve_get_data" ref="ga24" args="(const stp_curve_t *curve, size_t *count)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">const double* stp_curve_get_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t * </td> + <td class="mdname" nowrap> <em>count</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get a pointer to the curve's raw data. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>a pointer to a size_t to store the curve size in. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a pointer to the curve data. This data is not guaranteed to be valid beyond the next non-const curve call. If the curve is a pure gamma curve (no associated points), NULL is returned and the count is 0. This call also returns NULL if the curve is a piecewise curve.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga25"></a><!-- doxytag: member="curve.h::stp_curve_get_data_points" ref="ga25" args="(const stp_curve_t *curve, size_t *count)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">const <a class="el" href="structstp__curve__point__t.html">stp_curve_point_t</a>* stp_curve_get_data_points </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t * </td> + <td class="mdname" nowrap> <em>count</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get a pointer to the curve's raw data as points. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>a pointer to a size_t to store the curve size in. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a pointer to the curve data. This data is not guaranteed to be valid beyond the next non-const curve call. If the curve is a pure gamma curve (no associated points), NULL is returned and the count is 0. This call also returns NULL if the curve is a dense (equally-spaced) curve.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga26"></a><!-- doxytag: member="curve.h::stp_curve_get_float_data" ref="ga26" args="(const stp_curve_t *curve, size_t *count)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">const float* stp_curve_get_float_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t * </td> + <td class="mdname" nowrap> <em>count</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get pointer to the curve's raw data as floats. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>a pointer to a size_t to store the curve size in. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a pointer to the curve data. This data is not guaranteed to be valid beyond the next non-const curve call. If the curve is a pure gamma curve (no associated points), NULL is returned and the count is 0. This also returns NULL if the curve is a piecewise curve.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga35"></a><!-- doxytag: member="curve.h::stp_curve_get_gamma" ref="ga35" args="(const stp_curve_t *curve)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">double stp_curve_get_gamma </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>curve</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get the gamma value of the curve. +<p> +<dl compact><dt><b>Returns:</b></dt><dd>the gamma value. A value of 0 indicates that the curve does not have a valid gamma value.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga29"></a><!-- doxytag: member="curve.h::stp_curve_get_int_data" ref="ga29" args="(const stp_curve_t *curve, size_t *count)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">const int* stp_curve_get_int_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t * </td> + <td class="mdname" nowrap> <em>count</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get pointer to the curve's raw data as integers. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>a pointer to a size_t to store the curve size in. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a pointer to the curve data. This data is not guaranteed to be valid beyond the next non-const curve call. If the curve is a pure gamma curve (no associated points), NULL is returned and the count is 0. This also returns NULL if the curve is a piecewise curve.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga12"></a><!-- doxytag: member="curve.h::stp_curve_get_interpolation_type" ref="ga12" args="(const stp_curve_t *curve)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga47">stp_curve_type_t</a> stp_curve_get_interpolation_type </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>curve</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get the curve interpolation type. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>the interpolation type.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga27"></a><!-- doxytag: member="curve.h::stp_curve_get_long_data" ref="ga27" args="(const stp_curve_t *curve, size_t *count)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">const long* stp_curve_get_long_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t * </td> + <td class="mdname" nowrap> <em>count</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get pointer to the curve's raw data as longs. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>a pointer to a size_t to store the curve size in. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a pointer to the curve data. This data is not guaranteed to be valid beyond the next non-const curve call. If the curve is a pure gamma curve (no associated points), NULL is returned and the count is 0. This also returns NULL if the curve is a piecewise curve.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga37"></a><!-- doxytag: member="curve.h::stp_curve_get_point" ref="ga37" args="(const stp_curve_t *curve, size_t where, double *data)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_get_point </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>where</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>double * </td> + <td class="mdname" nowrap> <em>data</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get a point along the curve. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>where</em> </td><td>the point to get. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>a pointer to a double to store the value of where in. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>FALSE if where is outside of the number of valid points. This also returns NULL if the curve is a piecewise curve.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga9"></a><!-- doxytag: member="curve.h::stp_curve_get_range" ref="ga9" args="(const stp_curve_t *curve, double *low, double *high)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">void stp_curve_get_range </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>double * </td> + <td class="mdname" nowrap> <em>low</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>double * </td> + <td class="mdname" nowrap> <em>high</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + </td> + </tr> +</table> +<a class="anchor" name="ga33"></a><!-- doxytag: member="curve.h::stp_curve_get_sequence" ref="ga33" args="(const stp_curve_t *curve)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">const <a class="el" href="group__sequence.html#ga0">stp_sequence_t</a>* stp_curve_get_sequence </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>curve</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get the underlying stp_sequence_t data structure which stp_curve_t is derived from. +<p> +This can be used for fast access to the raw data. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>the stp_sequence_t. If the curve is a piecewise curve, the sequence returned is NULL;</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga31"></a><!-- doxytag: member="curve.h::stp_curve_get_short_data" ref="ga31" args="(const stp_curve_t *curve, size_t *count)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">const short* stp_curve_get_short_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t * </td> + <td class="mdname" nowrap> <em>count</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get pointer to the curve's raw data as shorts. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>a pointer to a size_t to store the curve size in. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a pointer to the curve data. This data is not guaranteed to be valid beyond the next non-const curve call. If the curve is a pure gamma curve (no associated points), NULL is returned and the count is 0. This also returns NULL if the curve is a piecewise curve.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga22"></a><!-- doxytag: member="curve.h::stp_curve_get_subrange" ref="ga22" args="(const stp_curve_t *curve, size_t start, size_t count)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a>* stp_curve_get_subrange </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>start</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>count</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get a curve containing a subrange of data. +<p> +If the start or count is invalid, the returned curve will compare equal to NULL (i. e. it will be a null pointer). start and count must not exceed the number of points in the curve, and count must be at least 2. The curve must be a dense (equally-spaced) curve <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>the start of the subrange. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>the number of point starting at start. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a curve containing the subrange. The returned curve is non-wrapping.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga30"></a><!-- doxytag: member="curve.h::stp_curve_get_uint_data" ref="ga30" args="(const stp_curve_t *curve, size_t *count)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">const unsigned int* stp_curve_get_uint_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t * </td> + <td class="mdname" nowrap> <em>count</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get pointer to the curve's raw data as unsigned integers. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>a pointer to a size_t to store the curve size in. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a pointer to the curve data. This data is not guaranteed to be valid beyond the next non-const curve call. If the curve is a pure gamma curve (no associated points), NULL is returned and the count is 0. This also returns NULL if the curve is a piecewise curve.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga28"></a><!-- doxytag: member="curve.h::stp_curve_get_ulong_data" ref="ga28" args="(const stp_curve_t *curve, size_t *count)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">const unsigned long* stp_curve_get_ulong_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t * </td> + <td class="mdname" nowrap> <em>count</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get pointer to the curve's raw data as unsigned longs. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>a pointer to a size_t to store the curve size in. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a pointer to the curve data. This data is not guaranteed to be valid beyond the next non-const curve call. If the curve is a pure gamma curve (no associated points), NULL is returned and the count is 0. This also returns NULL if the curve is a piecewise curve.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga32"></a><!-- doxytag: member="curve.h::stp_curve_get_ushort_data" ref="ga32" args="(const stp_curve_t *curve, size_t *count)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">const unsigned short* stp_curve_get_ushort_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t * </td> + <td class="mdname" nowrap> <em>count</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get pointer to the curve's raw data as unsigned shorts. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>a pointer to a size_t to store the curve size in. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a pointer to the curve data. This data is not guaranteed to be valid beyond the next non-const curve call. If the curve is a pure gamma curve (no associated points), NULL is returned and the count is 0. This also returns NULL if the curve is a piecewise curve.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga7"></a><!-- doxytag: member="curve.h::stp_curve_get_wrap" ref="ga7" args="(const stp_curve_t *curve)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga48">stp_curve_wrap_mode_t</a> stp_curve_get_wrap </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>curve</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Get the wrapping mode. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>the wrapping mode.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga38"></a><!-- doxytag: member="curve.h::stp_curve_interpolate_value" ref="ga38" args="(const stp_curve_t *curve, double where, double *result)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_interpolate_value </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>double </td> + <td class="mdname" nowrap> <em>where</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>double * </td> + <td class="mdname" nowrap> <em>result</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Interpolate a point along the curve. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>where</em> </td><td>the point to interpolate. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>result</em> </td><td>a pointer to double to store the value of where in. If interpolation would produce a value outside of the allowed range (as could happen with spline interpolation), the value is clipped to the range. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>FALSE if 'where' is less than 0 or greater than the number of points, an error is returned. Also returns FALSE if the curve is a piecewise curve.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga8"></a><!-- doxytag: member="curve.h::stp_curve_is_piecewise" ref="ga8" args="(const stp_curve_t *curve)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_is_piecewise </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>curve</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Determine whether the curve is piecewise. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>whether the curve is piecewise</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga39"></a><!-- doxytag: member="curve.h::stp_curve_resample" ref="ga39" args="(stp_curve_t *curve, size_t points)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_resample </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>points</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Resample a curve (change the number of points). +<p> +This does not destroy the gamma value of a curve. Points are interpolated as required; any interpolation that would place points outside of the bounds of the curve will be clipped to the bounds. The resulting curve is always dense (equally-spaced). This is the correct way to convert a piecewise curve to an equally-spaced curve. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use (must not exceed 1048576). </td></tr> + <tr><td valign="top"></td><td valign="top"><em>points</em> </td><td>the number of points. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>FALSE if the number of points is invalid (less than two, except that zero points is permitted for a gamma curve).</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga40"></a><!-- doxytag: member="curve.h::stp_curve_rescale" ref="ga40" args="(stp_curve_t *curve, double scale, stp_curve_compose_t mode, stp_curve_bounds_t bounds_mode)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_rescale </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>double </td> + <td class="mdname" nowrap> <em>scale</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap><a class="el" href="group__curve.html#ga49">stp_curve_compose_t</a> </td> + <td class="mdname" nowrap> <em>mode</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap><a class="el" href="group__curve.html#ga50">stp_curve_bounds_t</a> </td> + <td class="mdname" nowrap> <em>bounds_mode</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Rescale a curve (multiply all points by a scaling constant). +<p> +This also rescales the bounds. Note that this currently destroys the gamma property of the curve. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>scale</em> </td><td>the scaling factor. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>mode</em> </td><td>the composition mode. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>bounds_mode</em> </td><td>the bounds exceeding mode. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>FALSE if this would exceed floating point limits</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga5"></a><!-- doxytag: member="curve.h::stp_curve_set_bounds" ref="ga5" args="(stp_curve_t *curve, double low, double high)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_set_bounds </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>double </td> + <td class="mdname" nowrap> <em>low</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>double </td> + <td class="mdname" nowrap> <em>high</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the lower and upper bounds on a curve. +<p> +To change the bounds adjusting data as required, use stp_curve_rescale instead. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>low</em> </td><td>the lower bound. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>high</em> </td><td>the upper bound. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>FALSE if any existing points on the curve are outside the bounds.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga13"></a><!-- doxytag: member="curve.h::stp_curve_set_data" ref="ga13" args="(stp_curve_t *curve, size_t count, const double *data)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_set_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>count</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>const double * </td> + <td class="mdname" nowrap> <em>data</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set all data points of the curve. +<p> +If any of the data points fall outside the bounds, the operation is not performed and FALSE is returned. This creates a curve with equally-spaced points. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>the number of points (must be at least two and not more than 1048576). </td></tr> + <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>a pointer to an array of doubles (must be at least count in size). </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga14"></a><!-- doxytag: member="curve.h::stp_curve_set_data_points" ref="ga14" args="(stp_curve_t *curve, size_t count, const stp_curve_point_t *data)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_set_data_points </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>count</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>const <a class="el" href="structstp__curve__point__t.html">stp_curve_point_t</a> * </td> + <td class="mdname" nowrap> <em>data</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set all data points of the curve. +<p> +If any of the data points fall outside the bounds, the operation is not performed and FALSE is returned. This creates a piecewise curve. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>the number of points (must be at least two and not more than 1048576). </td></tr> + <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>a pointer to an array of points (must be at least count in size). The first point must have X=0, and each point must have an X value at least .000001 greater than the previous point. If the curve is not a wraparound curve, the last point must have X=1. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga15"></a><!-- doxytag: member="curve.h::stp_curve_set_float_data" ref="ga15" args="(stp_curve_t *curve, size_t count, const float *data)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_set_float_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>count</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>const float * </td> + <td class="mdname" nowrap> <em>data</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the data points in a curve from float values. +<p> +If any of the data points fall outside the bounds, the operation is not performed and FALSE is returned. This creates a curve with equally-spaced points. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>the number of the number of points (must be at least two and not more than 1048576). </td></tr> + <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>a pointer to an array of floats (must be at least count in size). </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga34"></a><!-- doxytag: member="curve.h::stp_curve_set_gamma" ref="ga34" args="(stp_curve_t *curve, double f_gamma)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_set_gamma </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>double </td> + <td class="mdname" nowrap> <em>f_gamma</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the gamma of a curve. +<p> +This replaces all existing points along the curve. The bounds are set to 0..1. If the gamma value is positive, the function is increasing; if negative, the function is decreasing. Count must be either 0 or at least 2. If the count is zero, the gamma of the curve is set for interpolation purposes, but points cannot be assigned to. It is illegal to set gamma on a wrap-mode curve. The resulting curve is treated as a dense (equally-spaced) curve. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>f_gamma</em> </td><td>the gamma value to set. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>FALSE if the gamma value is illegal (0, infinity, or NaN), or if the curve wraps around.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga18"></a><!-- doxytag: member="curve.h::stp_curve_set_int_data" ref="ga18" args="(stp_curve_t *curve, size_t count, const int *data)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_set_int_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>count</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>const int * </td> + <td class="mdname" nowrap> <em>data</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the data points in a curve from integer values. +<p> +If any of the data points fall outside the bounds, the operation is not performed and FALSE is returned. This creates a curve with equally-spaced points. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>the number of the number of points (must be at least two and not more than 1048576). </td></tr> + <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>a pointer to an array of integers (must be at least count in size). </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga11"></a><!-- doxytag: member="curve.h::stp_curve_set_interpolation_type" ref="ga11" args="(stp_curve_t *curve, stp_curve_type_t itype)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_set_interpolation_type </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap><a class="el" href="group__curve.html#ga47">stp_curve_type_t</a> </td> + <td class="mdname" nowrap> <em>itype</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the curve interpolation type. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>itype</em> </td><td>the interpolation type. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>1 on success, or 0 if itype is invalid.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga16"></a><!-- doxytag: member="curve.h::stp_curve_set_long_data" ref="ga16" args="(stp_curve_t *curve, size_t count, const long *data)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_set_long_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>count</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>const long * </td> + <td class="mdname" nowrap> <em>data</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the data points in a curve from long values. +<p> +If any of the data points fall outside the bounds, the operation is not performed and FALSE is returned. This creates a curve with equally-spaced points. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>the number of the number of points (must be at least two and not more than 1048576). </td></tr> + <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>a pointer to an array of longs (must be at least count in size). </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga36"></a><!-- doxytag: member="curve.h::stp_curve_set_point" ref="ga36" args="(stp_curve_t *curve, size_t where, double data)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_set_point </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>where</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>double </td> + <td class="mdname" nowrap> <em>data</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set a point along the curve. +<p> +This call destroys any gamma value assigned to the curve. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>where</em> </td><td>the point to set. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>the value to set where to. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>FALSE if data is outside the valid bounds or if where is outside the number of valid points. This also returns NULL if the curve is a piecewise curve.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga20"></a><!-- doxytag: member="curve.h::stp_curve_set_short_data" ref="ga20" args="(stp_curve_t *curve, size_t count, const short *data)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_set_short_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>count</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>const short * </td> + <td class="mdname" nowrap> <em>data</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the data points in a curve from short values. +<p> +If any of the data points fall outside the bounds, the operation is not performed and FALSE is returned. This creates a curve with equally-spaced points. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>the number of the number of points (must be at least two and not more than 1048576). </td></tr> + <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>a pointer to an array of shorts (must be at least count in size). </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga23"></a><!-- doxytag: member="curve.h::stp_curve_set_subrange" ref="ga23" args="(stp_curve_t *curve, const stp_curve_t *range, size_t start)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_set_subrange </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>range</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>start</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> + </td> + </tr> +</table> +<a class="anchor" name="ga19"></a><!-- doxytag: member="curve.h::stp_curve_set_uint_data" ref="ga19" args="(stp_curve_t *curve, size_t count, const unsigned int *data)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_set_uint_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>count</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>const unsigned int * </td> + <td class="mdname" nowrap> <em>data</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the data points in a curve from unsigned integer values. +<p> +If any of the data points fall outside the bounds, the operation is not performed and FALSE is returned. This creates a curve with equally-spaced points. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>the number of the number of points (must be at least two and not more than 1048576). </td></tr> + <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>a pointer to an array of unsigned integers (must be at least count in size). </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga17"></a><!-- doxytag: member="curve.h::stp_curve_set_ulong_data" ref="ga17" args="(stp_curve_t *curve, size_t count, const unsigned long *data)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_set_ulong_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>count</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>const unsigned long * </td> + <td class="mdname" nowrap> <em>data</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the data points in a curve from unsigned long values. +<p> +If any of the data points fall outside the bounds, the operation is not performed and FALSE is returned. This creates a curve with equally-spaced points. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>the number of the number of points (must be at least two and not more than 1048576). </td></tr> + <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>a pointer to an array of unsigned longs (must be at least count in size). </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga21"></a><!-- doxytag: member="curve.h::stp_curve_set_ushort_data" ref="ga21" args="(stp_curve_t *curve, size_t count, const unsigned short *data)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_set_ushort_data </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>size_t </td> + <td class="mdname" nowrap> <em>count</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>const unsigned short * </td> + <td class="mdname" nowrap> <em>data</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Set the data points in a curve from unsigned short values. +<p> +If any of the data points fall outside the bounds, the operation is not performed and FALSE is returned. This creates a curve with equally-spaced points. <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>the number of the number of points (must be at least two and not more than 1048576). </td></tr> + <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>a pointer to an array of unsigned shorts (must be at least count in size). </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga41"></a><!-- doxytag: member="curve.h::stp_curve_write" ref="ga41" args="(FILE *file, const stp_curve_t *curve)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">int stp_curve_write </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">FILE * </td> + <td class="mdname" nowrap> <em>file</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td class="md"></td> + <td class="md" nowrap>const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname" nowrap> <em>curve</em></td> + </tr> + <tr> + <td class="md"></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Write a curve to a file. +<p> +The printable representation is guaranteed to contain only 7-bit printable ASCII characters, and is null-terminated. The curve will not contain any space, newline, single quote, or comma characters. Furthermore, a printed curve will be read back correctly in all locales. These calls are not guaranteed to provide more than 6 decimal places of precision or +/-0.5e-6 accuracy, whichever is less. <dl compact><dt><b>Warning:</b></dt><dd>NOTE that these calls are not thread-safe! These routines may manipulate the locale to achieve a safe representation. </dd></dl> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>file</em> </td><td>the file to write. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure.</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="ga42"></a><!-- doxytag: member="curve.h::stp_curve_write_string" ref="ga42" args="(const stp_curve_t *curve)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">char* stp_curve_write_string </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="group__curve.html#ga0">stp_curve_t</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>curve</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Write a curve to a string. +<p> +The printable representation is guaranteed to contain only 7-bit printable ASCII characters, and is null-terminated. The curve will not contain any space, newline, or comma characters. Furthermore, a printed curve will be read back correctly in all locales. These calls are not guaranteed to provide more than 6 decimal places of precision or +/-0.5e-6 accuracy, whichever is less. <dl compact><dt><b>Warning:</b></dt><dd>NOTE that these calls are not thread-safe! These routines may manipulate the locale to achieve a safe representation. </dd></dl> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>curve</em> </td><td>the curve to use. </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>a pointer to a string. This is allocated on the heap, and it is the caller's responsibility to free it.</dd></dl> + </td> + </tr> +</table> +<hr size="1"><address style="align: right;"><small>Generated on Sat Jul 2 09:45:10 2005 for libgutenprint API Reference by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.3-20050530 </small></address> +</body> +</html> |