libgutenprint API Reference  5.2.12-pre4
Data Structures | Typedefs | Enumerations | Functions
curve.h File Reference

Curve functions. More...

#include <stdio.h>
#include <stdlib.h>
#include <gutenprint/sequence.h>

Data Structures

struct  stp_curve_point_t
 Point (x,y) for piecewise curve. More...
 

Typedefs

typedef struct stp_curve stp_curve_t
 The curve opaque data type. More...
 

Enumerations

enum  stp_curve_type_t { STP_CURVE_TYPE_LINEAR, STP_CURVE_TYPE_SPLINE }
 Curve types. More...
 
enum  stp_curve_wrap_mode_t { STP_CURVE_WRAP_NONE, STP_CURVE_WRAP_AROUND }
 Wrapping mode. More...
 
enum  stp_curve_compose_t { STP_CURVE_COMPOSE_ADD, STP_CURVE_COMPOSE_MULTIPLY, STP_CURVE_COMPOSE_EXPONENTIATE }
 Composition types. More...
 
enum  stp_curve_bounds_t { STP_CURVE_BOUNDS_RESCALE, STP_CURVE_BOUNDS_CLIP, STP_CURVE_BOUNDS_ERROR }
 Behaviour when curve exceeds bounds. More...
 

Functions

stp_curve_tstp_curve_create (stp_curve_wrap_mode_t wrap)
 Create a new curve. More...
 
stp_curve_tstp_curve_create_copy (const stp_curve_t *curve)
 Copy and allocate a curve. More...
 
void stp_curve_copy (stp_curve_t *dest, const stp_curve_t *source)
 Copy a curve. More...
 
stp_curve_tstp_curve_create_reverse (const stp_curve_t *curve)
 Reverse and allocate a curve. More...
 
void stp_curve_reverse (stp_curve_t *dest, const stp_curve_t *source)
 Reverse a curve. More...
 
void stp_curve_destroy (stp_curve_t *curve)
 Destroy an curve. More...
 
int stp_curve_set_bounds (stp_curve_t *curve, double low, double high)
 Set the lower and upper bounds on a curve. More...
 
void stp_curve_get_bounds (const stp_curve_t *curve, double *low, double *high)
 Get the lower and upper bounds on a curve. More...
 
stp_curve_wrap_mode_t stp_curve_get_wrap (const stp_curve_t *curve)
 Get the wrapping mode. More...
 
int stp_curve_is_piecewise (const stp_curve_t *curve)
 Determine whether the curve is piecewise. More...
 
void stp_curve_get_range (const stp_curve_t *curve, double *low, double *high)
 
size_t stp_curve_count_points (const stp_curve_t *curve)
 Get the number of allocated points in the curve. More...
 
int stp_curve_set_interpolation_type (stp_curve_t *curve, stp_curve_type_t itype)
 Set the curve interpolation type. More...
 
stp_curve_type_t stp_curve_get_interpolation_type (const stp_curve_t *curve)
 Get the curve interpolation type. More...
 
int stp_curve_set_data (stp_curve_t *curve, size_t count, const double *data)
 Set all data points of the curve. More...
 
int stp_curve_set_data_points (stp_curve_t *curve, size_t count, const stp_curve_point_t *data)
 Set all data points of the curve. More...
 
int stp_curve_set_float_data (stp_curve_t *curve, size_t count, const float *data)
 Set the data points in a curve from float values. More...
 
int stp_curve_set_long_data (stp_curve_t *curve, size_t count, const long *data)
 Set the data points in a curve from long values. More...
 
int stp_curve_set_ulong_data (stp_curve_t *curve, size_t count, const unsigned long *data)
 Set the data points in a curve from unsigned long values. More...
 
int stp_curve_set_int_data (stp_curve_t *curve, size_t count, const int *data)
 Set the data points in a curve from integer values. More...
 
int stp_curve_set_uint_data (stp_curve_t *curve, size_t count, const unsigned int *data)
 Set the data points in a curve from unsigned integer values. More...
 
int stp_curve_set_short_data (stp_curve_t *curve, size_t count, const short *data)
 Set the data points in a curve from short values. More...
 
int stp_curve_set_ushort_data (stp_curve_t *curve, size_t count, const unsigned short *data)
 Set the data points in a curve from unsigned short values. More...
 
stp_curve_tstp_curve_get_subrange (const stp_curve_t *curve, size_t start, size_t count)
 Get a curve containing a subrange of data. More...
 
int stp_curve_set_subrange (stp_curve_t *curve, const stp_curve_t *range, size_t start)
 
const double * stp_curve_get_data (const stp_curve_t *curve, size_t *count)
 Get a pointer to the curve's raw data. More...
 
const stp_curve_point_tstp_curve_get_data_points (const stp_curve_t *curve, size_t *count)
 Get a pointer to the curve's raw data as points. More...
 
const float * stp_curve_get_float_data (const stp_curve_t *curve, size_t *count)
 Get pointer to the curve's raw data as floats. More...
 
const long * stp_curve_get_long_data (const stp_curve_t *curve, size_t *count)
 Get pointer to the curve's raw data as longs. More...
 
const unsigned long * stp_curve_get_ulong_data (const stp_curve_t *curve, size_t *count)
 Get pointer to the curve's raw data as unsigned longs. More...
 
const int * stp_curve_get_int_data (const stp_curve_t *curve, size_t *count)
 Get pointer to the curve's raw data as integers. More...
 
const unsigned int * stp_curve_get_uint_data (const stp_curve_t *curve, size_t *count)
 Get pointer to the curve's raw data as unsigned integers. More...
 
const short * stp_curve_get_short_data (const stp_curve_t *curve, size_t *count)
 Get pointer to the curve's raw data as shorts. More...
 
const unsigned short * stp_curve_get_ushort_data (const stp_curve_t *curve, size_t *count)
 Get pointer to the curve's raw data as unsigned shorts. More...
 
const stp_sequence_tstp_curve_get_sequence (const stp_curve_t *curve)
 Get the underlying stp_sequence_t data structure which stp_curve_t is derived from. More...
 
int stp_curve_set_gamma (stp_curve_t *curve, double f_gamma)
 Set the gamma of a curve. More...
 
double stp_curve_get_gamma (const stp_curve_t *curve)
 Get the gamma value of the curve. More...
 
int stp_curve_set_point (stp_curve_t *curve, size_t where, double data)
 Set a point along the curve. More...
 
int stp_curve_get_point (const stp_curve_t *curve, size_t where, double *data)
 Get a point along the curve. More...
 
int stp_curve_interpolate_value (const stp_curve_t *curve, double where, double *result)
 Interpolate a point along the curve. More...
 
int stp_curve_resample (stp_curve_t *curve, size_t points)
 Resample a curve (change the number of points). More...
 
int stp_curve_rescale (stp_curve_t *curve, double scale, stp_curve_compose_t mode, stp_curve_bounds_t bounds_mode)
 Rescale a curve (multiply all points by a scaling constant). More...
 
int stp_curve_write (FILE *file, const stp_curve_t *curve)
 Write a curve to a file. More...
 
char * stp_curve_write_string (const stp_curve_t *curve)
 Write a curve to a string. More...
 
stp_curve_tstp_curve_create_from_stream (FILE *fp)
 Create a curve from a stream. More...
 
stp_curve_tstp_curve_create_from_file (const char *file)
 Create a curve from a stream. More...
 
stp_curve_tstp_curve_create_from_string (const char *string)
 Create a curve from a string. More...
 
int stp_curve_compose (stp_curve_t **retval, stp_curve_t *a, stp_curve_t *b, stp_curve_compose_t mode, int points)
 Compose two curves, creating a third curve. More...
 

Detailed Description

Curve functions.