## GwyGraphCurveModel GwyGraphCurveModel — Representation of one graph curve |

## Functions

#define | gwy_graph_curve_model_duplicate()
GwyGraphCurveModel * | gwy_graph_curve_model_new ()
GwyGraphCurveModel * | gwy_graph_curve_model_new_alike ()
void | gwy_graph_curve_model_set_data ()
void | gwy_graph_curve_model_set_data_from_dataline ()
const gdouble * | gwy_graph_curve_model_get_xdata ()
const gdouble * | gwy_graph_curve_model_get_ydata ()
gint | gwy_graph_curve_model_get_ndata ()
gboolean | gwy_graph_curve_model_get_x_range ()
gboolean | gwy_graph_curve_model_get_y_range ()
gboolean | gwy_graph_curve_model_get_ranges ()
GwyCurveCalibrationData * | gwy_graph_curve_model_get_calibration_data ()
void | gwy_graph_curve_model_set_calibration_data ()

## Properties

GwyRGBA * | color | Read / Write
gchar * | description | Read / Write
GdkLineStyle | line-style | Read / Write
gint | line-width | Read / Write
GwyGraphCurveType | mode | Read / Write
gint | point-size | Read / Write
GwyGraphPointType | point-type | Read / Write

## Signals

void | data-changed | Run First

## Types and Values

struct | GwyGraphCurveModel
struct | GwyGraphCurveModelClass

## Object Hierarchy

        GObject
        ╰── GwyGraphCurveModel

## Implemented Interfaces

GwyGraphCurveModel implements GwySerializable.

## Includes

    #include <libgwydgets/gwydgets.h>

## Description

GwyGraphCurveModel represents information about a graph curve necessary to fully reconstruct it.

## Functions

### gwy_graph_curve_model_duplicate()

    #define             gwy_graph_curve_model_duplicate(gcmodel)

Convenience macro doing `gwy_serializable_duplicate()` with all the necessary typecasting.

#### Parameters

gcmodel | A graph curve model to duplicate. |

### gwy_graph_curve_model_new ()

    GwyGraphCurveModel *
    gwy_graph_curve_model_new (void);

Creates a new graph curve model.

#### Returns

New empty graph curve model as a GObject.

### gwy_graph_curve_model_new_alike ()

    GwyGraphCurveModel *
    gwy_graph_curve_model_new_alike (GwyGraphCurveModel *gcmodel);

Creates new graph curve model object that has the same settings as `gcmodel` .

Curve data are not duplicated.

#### Parameters

gcmodel | A graph curve model. |

#### Returns

New graph curve model.

### gwy_graph_curve_model_set_data ()

    void
    gwy_graph_curve_model_set_data (GwyGraphCurveModel *gcmodel,
                                    const gdouble *xdata,
                                    const gdouble *ydata,
                                    gint n);

Sets curve model data.

If there were calibration data in the former `gcmodel` , they are removed.

#### Parameters

gcmodel | A graph curve model. |
xdata | X data points (array of size `n` ). |
ydata | Y data points (array of size `n` ). |
n | Number of points, i.e. items in `xdata` and `ydata` . |

### gwy_graph_curve_model_set_data_from_dataline ()

    void
    gwy_graph_curve_model_set_data_from_dataline
                                   (GwyGraphCurveModel *gcmodel,
                                    GwyDataLine *dline,
                                    gint from_index,
                                    gint to_index);

Sets the curve data from GwyDataLine. The range of import can be modified using parameters `from_index` and `to_index` that are interpreted directly as data indices within the GwyDataLine. In the case that `from_index` == `to_index` , the full GwyDataLine is used.

If there were calibration data in the former `gcmodel` , they are removed.

#### Parameters

gcmodel | A graph curve model. |
dline | A GwyDataLine |
from_index | index where to start |
to_index | where to stop |

### gwy_graph_curve_model_get_xdata ()

    const gdouble *
    gwy_graph_curve_model_get_xdata (GwyGraphCurveModel *gcmodel);

Gets pointer to x data points.

Data are used within the graph and cannot be freed.

#### Parameters

gcmodel | A graph curve model. |

#### Returns

X data points, owned by the curve model.

### gwy_graph_curve_model_get_ydata ()

    const gdouble *
    gwy_graph_curve_model_get_ydata (GwyGraphCurveModel *gcmodel);

Gets pointer to y data points.

Data are used within the graph and cannot be freed.

#### Parameters

gcmodel | A graph curve model. |

#### Returns

Y data points, owned by the curve model.

### gwy_graph_curve_model_get_ndata ()

    gint
    gwy_graph_curve_model_get_ndata (GwyGraphCurveModel *gcmodel);

#### Parameters

gcmodel | A graph curve model. |

#### Returns

number of data points within the curve data

### gwy_graph_curve_model_get_x_range ()

    gboolean
    gwy_graph_curve_model_get_x_range (GwyGraphCurveModel *gcmodel,
                                       gdouble *x_min,
                                       gdouble *x_max);

Gets the abscissa range of a graph curve.

The values are cached in the curve model therefore repeated calls to this function (with unchanged data) are cheap.

If there are no data points in the curve, `x_min` and `x_max` are untouched and the function returns `FALSE`.

See also `gwy_graph_curve_model_get_ranges()` for a more high-level function.

#### Parameters

gcmodel | A graph curve model. |
x_min | Location to store the minimum abscissa value, or `NULL`. |
x_max | Location to store the maximum abscissa value, or `NULL`. |

#### Returns

`TRUE` if there are any data points in the curve and `x_min` , `x_max` were set.

### gwy_graph_curve_model_get_y_range ()

    gboolean
    gwy_graph_curve_model_get_y_range (GwyGraphCurveModel *gcmodel,
                                       gdouble *y_min,
                                       gdouble *y_max);

Gets the ordinate range of a graph curve.

The values are cached in the curve model therefore repeated calls to this function (with unchanged data) are cheap.

If there are no data points in the curve, `x_min` and `x_max` are untouched and the function returns `FALSE`.

See also `gwy_graph_curve_model_get_ranges()` for a more high-level function.

#### Parameters

gcmodel | A graph curve model. |
y_min | Location to store the minimum ordinate value, or `NULL`. |
y_max | Location to store the maximum ordinate value, or `NULL`. |

#### Returns

`TRUE` if there are any data points in the curve and `x_min` , `x_max` were set.

### gwy_graph_curve_model_get_ranges ()

    gboolean
    gwy_graph_curve_model_get_ranges (GwyGraphCurveModel *gcmodel,
                                      gboolean x_logscale,
                                      gboolean y_logscale,
                                      gdouble *x_min,
                                      gdouble *x_max,
                                      gdouble *y_min,
                                      gdouble *y_max);

### gwy_graph_curve_model_get_calibration_data ()

    GwyCurveCalibrationData *
    gwy_graph_curve_model_get_calibration_data
                                   (GwyGraphCurveModel *gcmodel);

Get pointer to actual calibration data for curve.

#### Parameters

gcmodel | A graph curve model. |

#### Returns

Pointer to the calibration data of present curve (NULL if none).

### gwy_graph_curve_model_set_calibration_data ()

    void
    gwy_graph_curve_model_set_calibration_data
                                   (GwyGraphCurveModel *gcmodel,
                                    const GwyCurveCalibrationData *calibration);

Set calibration data for curve.

#### Parameters

gcmodel | A graph curve model. |
calibration | Curve calibration data |

## Types and Values

### struct GwyGraphCurveModel

    struct GwyGraphCurveModel;

### struct GwyGraphCurveModelClass

    struct GwyGraphCurveModelClass {
        GObjectClass parent_class;

        void (*data_changed)(GwyGraphCurveModel *model);

        void (*reserved1)(void);
        void (*reserved2)(void);
        void (*reserved3)(void);
    };

## Property Details

### The `“color”` property

      “color”                    GwyRGBA *

Curve color.

Flags: Read / Write

### The `“description”` property

      “description”              gchar *

Curve description. It appears on graph key.

Flags: Read / Write

Default value: "curve"

### The `“line-style”` property

      “line-style”               GdkLineStyle

Curve line style. Curve mode has to include lines for the line to be visible.

Flags: Read / Write

Default value: GDK_LINE_SOLID

### The `“line-width”` property

      “line-width”               gint

Curve line width.

Flags: Read / Write

Allowed values: [0,100]

Default value: 1

### The `“mode”` property

      “mode”                     GwyGraphCurveType

Curve plotting mode (line, points, ...).

Flags: Read / Write

Default value: GWY_GRAPH_CURVE_LINE

### The `“point-size”` property

      “point-size”               gint

Curve point symbol size.

Flags: Read / Write

Allowed values: [0,100]

Default value: 5

### The `“point-type”` property

      “point-type”               GwyGraphPointType

Curve point symbol type. Curve mode has toinclude points for the symbols to be visible.

Flags: Read / Write

Default value: GWY_GRAPH_POINT_SQUARE

## Signal Details

### The `“data-changed”` signal

    void
    user_function (GwyGraphCurveModel *gwygraphcurvemodel,
                   gpointer            user_data)

The ::data-changed signal is emitted whenever curve data is set with a function like `gwy_graph_curve_model_set_data()`.

#### Parameters

gwygraphcurvemodel | The GwyGraphCurveModel which received the signal. |
user_data | user data set when the signal handler was connected. |

Flags: Run First