GwyBrick

GwyBrick — Three-dimensioanl data representation

Synopsis

#include <libprocess/gwyprocess.h>

struct              GwyBrick;
struct              GwyBrickClass;
                    GwyBrickPart;
#define             gwy_brick_duplicate                 (brick)
GwyBrick *          gwy_brick_new                       (gint xres,
                                                         gint yres,
                                                         gint zres,
                                                         gdouble xreal,
                                                         gdouble yreal,
                                                         gdouble zreal,
                                                         gboolean nullme);
GwyBrick *          gwy_brick_new_alike                 (GwyBrick *model,
                                                         gboolean nullme);
void                gwy_brick_data_changed              (GwyBrick *brick);
void                gwy_brick_resample                  (GwyBrick *brick,
                                                         gint xres,
                                                         gint yres,
                                                         gint zres,
                                                         GwyInterpolationType interpolation);
gint                gwy_brick_get_xres                  (GwyBrick *brick);
gint                gwy_brick_get_yres                  (GwyBrick *brick);
gint                gwy_brick_get_zres                  (GwyBrick *brick);
gdouble             gwy_brick_get_xreal                 (GwyBrick *brick);
gdouble             gwy_brick_get_yreal                 (GwyBrick *brick);
gdouble             gwy_brick_get_zreal                 (GwyBrick *brick);
gdouble             gwy_brick_get_xoffset               (GwyBrick *brick);
gdouble             gwy_brick_get_yoffset               (GwyBrick *brick);
gdouble             gwy_brick_get_zoffset               (GwyBrick *brick);
const gdouble *     gwy_brick_get_data_const            (GwyBrick *brick);
void                gwy_brick_set_xreal                 (GwyBrick *brick,
                                                         gdouble xreal);
void                gwy_brick_set_yreal                 (GwyBrick *brick,
                                                         gdouble yreal);
void                gwy_brick_set_zreal                 (GwyBrick *brick,
                                                         gdouble zreal);
void                gwy_brick_set_xoffset               (GwyBrick *brick,
                                                         gdouble xoffset);
void                gwy_brick_set_yoffset               (GwyBrick *brick,
                                                         gdouble yoffset);
void                gwy_brick_set_zoffset               (GwyBrick *brick,
                                                         gdouble zoffset);
GwySIUnit *         gwy_brick_get_si_unit_x             (GwyBrick *brick);
GwySIUnit *         gwy_brick_get_si_unit_y             (GwyBrick *brick);
GwySIUnit *         gwy_brick_get_si_unit_z             (GwyBrick *brick);
GwySIUnit *         gwy_brick_get_si_unit_w             (GwyBrick *brick);
void                gwy_brick_set_si_unit_x             (GwyBrick *brick,
                                                         GwySIUnit *si_unit);
void                gwy_brick_set_si_unit_y             (GwyBrick *brick,
                                                         GwySIUnit *si_unit);
void                gwy_brick_set_si_unit_z             (GwyBrick *brick,
                                                         GwySIUnit *si_unit);
void                gwy_brick_set_si_unit_w             (GwyBrick *brick,
                                                         GwySIUnit *si_unit);
gdouble             gwy_brick_get_min                   (GwyBrick *brick);
gdouble             gwy_brick_get_max                   (GwyBrick *brick);
GwySIValueFormat *  gwy_brick_get_value_format_x        (GwyBrick *brick,
                                                         GwySIUnitFormatStyle style,
                                                         GwySIValueFormat *format);
GwySIValueFormat *  gwy_brick_get_value_format_y        (GwyBrick *brick,
                                                         GwySIUnitFormatStyle style,
                                                         GwySIValueFormat *format);
GwySIValueFormat *  gwy_brick_get_value_format_z        (GwyBrick *brick,
                                                         GwySIUnitFormatStyle style,
                                                         GwySIValueFormat *format);
GwySIValueFormat *  gwy_brick_get_value_format_w        (GwyBrick *brick,
                                                         GwySIUnitFormatStyle style,
                                                         GwySIValueFormat *format);
gdouble *           gwy_brick_get_data                  (GwyBrick *brick);
gdouble             gwy_brick_itor                      (GwyBrick *brick,
                                                         gdouble pixpos);
gdouble             gwy_brick_rtoi                      (GwyBrick *brick,
                                                         gdouble realpos);
gdouble             gwy_brick_jtor                      (GwyBrick *brick,
                                                         gdouble pixpos);
gdouble             gwy_brick_rtoj                      (GwyBrick *brick,
                                                         gdouble realpos);
gdouble             gwy_brick_ktor                      (GwyBrick *brick,
                                                         gdouble pixpos);
gdouble             gwy_brick_rtok                      (GwyBrick *brick,
                                                         gdouble realpos);
gdouble             gwy_brick_get_val                   (GwyBrick *brick,
                                                         gint col,
                                                         gint row,
                                                         gint lev);
void                gwy_brick_set_val                   (GwyBrick *brick,
                                                         gint col,
                                                         gint row,
                                                         gint lev,
                                                         gdouble value);
gdouble             gwy_brick_get_val_real              (GwyBrick *brick,
                                                         gdouble x,
                                                         gdouble y,
                                                         gdouble z);
void                gwy_brick_set_val_real              (GwyBrick *brick,
                                                         gdouble x,
                                                         gdouble y,
                                                         gdouble z,
                                                         gdouble value);
gdouble             gwy_brick_get_dval                  (GwyBrick *brick,
                                                         gdouble x,
                                                         gdouble y,
                                                         gdouble z,
                                                         gint interpolation);
gdouble             gwy_brick_get_dval_real             (GwyBrick *brick,
                                                         gdouble x,
                                                         gdouble y,
                                                         gdouble z,
                                                         gint interpolation);
void                gwy_brick_clear                     (GwyBrick *brick);
void                gwy_brick_fill                      (GwyBrick *brick,
                                                         gdouble value);
void                gwy_brick_multiply                  (GwyBrick *brick,
                                                         gdouble value);
void                gwy_brick_add                       (GwyBrick *brick,
                                                         gdouble value);
void                gwy_brick_extract_plane             (const GwyBrick *brick,
                                                         GwyDataField *target,
                                                         gint istart,
                                                         gint jstart,
                                                         gint kstart,
                                                         gint width,
                                                         gint height,
                                                         gint depth,
                                                         gboolean keep_offsets);
void                gwy_brick_sum_plane                 (const GwyBrick *brick,
                                                         GwyDataField *target,
                                                         gint istart,
                                                         gint jstart,
                                                         gint kstart,
                                                         gint width,
                                                         gint height,
                                                         gint depth,
                                                         gboolean keep_offsets);
void                gwy_brick_extract_line              (const GwyBrick *brick,
                                                         GwyDataLine *target,
                                                         gint istart,
                                                         gint jstart,
                                                         gint kstart,
                                                         gint iend,
                                                         gint jend,
                                                         gint kend,
                                                         gboolean keep_offsets);

Object Hierarchy

  GObject
   +----GwyBrick

Implemented Interfaces

GwyBrick implements GwySerializable.

Signals

  "data-changed"                                   : Run First

Description

GwyBrick represents 3D data arrays in Gwyddion. It is typically useful for different volume data obtained from SPMs, like in force volume measurements.

Details

struct GwyBrick

struct GwyBrick;

The GwyBrick struct contains private data only and should be accessed using the functions below.

Since 2.31


struct GwyBrickClass

struct GwyBrickClass {
    GObjectClass parent_class;

    void (*data_changed)(GwyBrick *brick);
    void (*reserved1)(void);
};


GwyBrickPart

typedef struct {
    guint col;
    guint row;
    guint level;
    guint width;
    guint height;
    guint depth;
} GwyBrickPart;


gwy_brick_duplicate()

#define             gwy_brick_duplicate(brick)

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

brick :

A data brick to duplicate.

Since 2.31


gwy_brick_new ()

GwyBrick *          gwy_brick_new                       (gint xres,
                                                         gint yres,
                                                         gint zres,
                                                         gdouble xreal,
                                                         gdouble yreal,
                                                         gdouble zreal,
                                                         gboolean nullme);

Creates a new data brick.

xres :

X resolution, i.e., the number of samples in x direction

xreal :

Real physical dimension in x direction.

yreal :

Real physical dimension in y direction.

zreal :

Real physical dimension in z direction.

nullme :

Whether the data brick should be initialized to zeroes. If FALSE, the data will not be initialized.

Returns :

A newly created data brick.

Since 2.31


gwy_brick_new_alike ()

GwyBrick *          gwy_brick_new_alike                 (GwyBrick *model,
                                                         gboolean nullme);

Creates a new data brick similar to an existing one.

Use gwy_brick_duplicate() if you want to copy a data brick including data.

model :

A data brick to take resolutions and units from.

nullme :

Whether the data brick should be initialized to zeroes. If FALSE, the data will not be initialized.

Returns :

A newly created data brick.

Since 2.31


gwy_brick_data_changed ()

void                gwy_brick_data_changed              (GwyBrick *brick);

Emits signal "data_changed" on a data brick.

brick :

A data brick.

Since 2.31


gwy_brick_resample ()

void                gwy_brick_resample                  (GwyBrick *brick,
                                                         gint xres,
                                                         gint yres,
                                                         gint zres,
                                                         GwyInterpolationType interpolation);

Resamples a data brick.

In other words changes the size of three dimensional field related with data brick. The original values are used for resampling using a requested interpolation alorithm.

brick :

A data brick.

xres :

Desired x resolution.

yres :

Desired y resolution.

zres :

Desired z resolution.

interpolation :

Interpolation method to use.

Since 2.31


gwy_brick_get_xres ()

gint                gwy_brick_get_xres                  (GwyBrick *brick);

Gets the x resolution of a data brick.

brick :

A data brick.

Returns :

Resolution (number of data points).

Since 2.31


gwy_brick_get_yres ()

gint                gwy_brick_get_yres                  (GwyBrick *brick);

Gets the y resolution of a data brick.

brick :

A data brick.

Returns :

Resolution (number of data points).

Since 2.31


gwy_brick_get_zres ()

gint                gwy_brick_get_zres                  (GwyBrick *brick);

Gets the z resolution of a data brick.

brick :

A data line.

Returns :

Resolution (number of data points).

Since 2.31


gwy_brick_get_xreal ()

gdouble             gwy_brick_get_xreal                 (GwyBrick *brick);

Gets the physical size of a data brick in the x direction.

brick :

A data brick.

Returns :

Real size of a data brick the x direction.

Since 2.31


gwy_brick_get_yreal ()

gdouble             gwy_brick_get_yreal                 (GwyBrick *brick);

Gets the physical size of a data brick in the y direction.

brick :

A data brick.

Returns :

Real size of a data brick the y direction.

Since 2.31


gwy_brick_get_zreal ()

gdouble             gwy_brick_get_zreal                 (GwyBrick *brick);

Gets the physical size of a data brick in the z direction.

brick :

A data brick.

Returns :

Real size of a data brick the z direction.

Since 2.31


gwy_brick_get_xoffset ()

gdouble             gwy_brick_get_xoffset               (GwyBrick *brick);

Gets the offset of data brick origin in x direction.

brick :

A data brick.

Returns :

Offset value.

Since 2.31


gwy_brick_get_yoffset ()

gdouble             gwy_brick_get_yoffset               (GwyBrick *brick);

Gets the offset of data brick origin in y direction.

brick :

A data brick.

Returns :

Offset value.

Since 2.31


gwy_brick_get_zoffset ()

gdouble             gwy_brick_get_zoffset               (GwyBrick *brick);

Gets the offset of data brick origin in z direction.

brick :

A data brick.

Returns :

Offset value.

Since 2.31


gwy_brick_get_data_const ()

const gdouble *     gwy_brick_get_data_const            (GwyBrick *brick);

Gets the raw data buffer of a data brick, read-only.

The returned buffer is not guaranteed to be valid through whole data brick life time. Some function may change it, most notably gwy_brick_resize() and gwy_brick_resample().

Use gwy_brick_get_data() if you want to change the data.

brick :

A data brick.

Returns :

The data as an array of doubles of length gwy_brick_get_res().

Since 2.31


gwy_brick_set_xreal ()

void                gwy_brick_set_xreal                 (GwyBrick *brick,
                                                         gdouble xreal);

Sets the real x dimension of a brick.

brick :

A data brick.

xreal :

New real x dimensions value

Since 2.31


gwy_brick_set_yreal ()

void                gwy_brick_set_yreal                 (GwyBrick *brick,
                                                         gdouble yreal);

Sets the real y dimension of a brick.

brick :

A data brick.

yreal :

New real y dimensions value

Since 2.31


gwy_brick_set_zreal ()

void                gwy_brick_set_zreal                 (GwyBrick *brick,
                                                         gdouble zreal);

Sets the real z dimension of a brick.

brick :

A data brick.

zreal :

New real z dimensions value

Since 2.31


gwy_brick_set_xoffset ()

void                gwy_brick_set_xoffset               (GwyBrick *brick,
                                                         gdouble xoffset);

Sets the offset of a data brick origin in the x direction.

Note offsets don't affect any calculation, nor functions like gwy_brick_rtoi().

brick :

A data brick.

xoffset :

New offset value.

Since 2.31


gwy_brick_set_yoffset ()

void                gwy_brick_set_yoffset               (GwyBrick *brick,
                                                         gdouble yoffset);

Sets the offset of a data brick origin in the y direction.

Note offsets don't affect any calculation, nor functions like gwy_brick_rtoi().

brick :

A data brick.

yoffset :

New offset value.

Since 2.31


gwy_brick_set_zoffset ()

void                gwy_brick_set_zoffset               (GwyBrick *brick,
                                                         gdouble zoffset);

Sets the offset of a data brick origin in the z direction.

Note offsets don't affect any calculation, nor functions like gwy_brick_rtoi().

brick :

A data brick.

zoffset :

New offset value.

Since 2.31


gwy_brick_get_si_unit_x ()

GwySIUnit *         gwy_brick_get_si_unit_x             (GwyBrick *brick);

Returns x direction SI unit of a data brick.

brick :

A data brick.

Returns :

SI unit corresponding to the lateral (X) dimension of the data brick. Its reference count is not incremented.

Since 2.31


gwy_brick_get_si_unit_y ()

GwySIUnit *         gwy_brick_get_si_unit_y             (GwyBrick *brick);

Returns y direction SI unit of a data brick.

brick :

A data brick.

Returns :

SI unit corresponding to the lateral (Y) dimension of the data brick. Its reference count is not incremented.

Since 2.31


gwy_brick_get_si_unit_z ()

GwySIUnit *         gwy_brick_get_si_unit_z             (GwyBrick *brick);

Returns z direction SI unit of a data brick.

brick :

A data brick.

Returns :

SI unit corresponding to the "height" (Z) dimension of the data brick. Its reference count is not incremented.

Since 2.31


gwy_brick_get_si_unit_w ()

GwySIUnit *         gwy_brick_get_si_unit_w             (GwyBrick *brick);

Returns value SI unit of a data brick.

brick :

A data brick.

Returns :

SI unit corresponding to the "value" of the data brick. Its reference count is not incremented.

Since 2.31


gwy_brick_set_si_unit_x ()

void                gwy_brick_set_si_unit_x             (GwyBrick *brick,
                                                         GwySIUnit *si_unit);

Sets the SI unit corresponding to the lateral (X) dimension of a data brick.

It does not assume a reference on si_unit, instead it adds its own reference.

brick :

A data brick.

si_unit :

SI unit to be set.

Since 2.31


gwy_brick_set_si_unit_y ()

void                gwy_brick_set_si_unit_y             (GwyBrick *brick,
                                                         GwySIUnit *si_unit);

Sets the SI unit corresponding to the lateral (Y) dimension of a data brick.

It does not assume a reference on si_unit, instead it adds its own reference.

brick :

A data brick.

si_unit :

SI unit to be set.

Since 2.31


gwy_brick_set_si_unit_z ()

void                gwy_brick_set_si_unit_z             (GwyBrick *brick,
                                                         GwySIUnit *si_unit);

Sets the SI unit corresponding to the "height" (Z) dimension of a data brick.

It does not assume a reference on si_unit, instead it adds its own reference.

brick :

A data brick.

si_unit :

SI unit to be set.

Since 2.31


gwy_brick_set_si_unit_w ()

void                gwy_brick_set_si_unit_w             (GwyBrick *brick,
                                                         GwySIUnit *si_unit);

Sets the SI unit corresponding to the "value" of a data brick.

It does not assume a reference on si_unit, instead it adds its own reference.

brick :

A data brick.

si_unit :

SI unit to be set.

Since 2.31


gwy_brick_get_min ()

gdouble             gwy_brick_get_min                   (GwyBrick *brick);

brick :

A data brick.

Returns :

The minimum value within the brick.

Since 2.31


gwy_brick_get_max ()

gdouble             gwy_brick_get_max                   (GwyBrick *brick);

brick :

A data brick.

Returns :

The maximum value within the brick.

Since 2.31


gwy_brick_get_value_format_x ()

GwySIValueFormat *  gwy_brick_get_value_format_x        (GwyBrick *brick,
                                                         GwySIUnitFormatStyle style,
                                                         GwySIValueFormat *format);

Finds value format good for displaying coordinates of a data brick.

brick :

A data brick.

style :

Unit format style.

format :

A SI value format to modify, or NULL to allocate a new one.

Returns :

The value format. If format is NULL, a newly allocated format is returned, otherwise (modified) format itself is returned.

Since 2.31


gwy_brick_get_value_format_y ()

GwySIValueFormat *  gwy_brick_get_value_format_y        (GwyBrick *brick,
                                                         GwySIUnitFormatStyle style,
                                                         GwySIValueFormat *format);

Finds value format good for displaying values of a data brick.

brick :

A data brick.

style :

Unit format style.

format :

A SI value format to modify, or NULL to allocate a new one.

Returns :

The value format. If format is NULL, a newly allocated format is returned, otherwise (modified) format itself is returned.

Since 2.31


gwy_brick_get_value_format_z ()

GwySIValueFormat *  gwy_brick_get_value_format_z        (GwyBrick *brick,
                                                         GwySIUnitFormatStyle style,
                                                         GwySIValueFormat *format);

Finds value format good for displaying values of a data brick.

brick :

A data brick.

style :

Unit format style.

format :

A SI value format to modify, or NULL to allocate a new one.

Returns :

The value format. If format is NULL, a newly allocated format is returned, otherwise (modified) format itself is returned.

Since 2.31


gwy_brick_get_value_format_w ()

GwySIValueFormat *  gwy_brick_get_value_format_w        (GwyBrick *brick,
                                                         GwySIUnitFormatStyle style,
                                                         GwySIValueFormat *format);

Finds value format good for displaying values of a data brick.

Note this functions searches for minimum and maximum value in brick, therefore it's relatively slow.

brick :

A data brick.

style :

Unit format style.

format :

A SI value format to modify, or NULL to allocate a new one.

Returns :

The value format. If format is NULL, a newly allocated format is returned, otherwise (modified) format itself is returned.

Since 2.31


gwy_brick_get_data ()

gdouble *           gwy_brick_get_data                  (GwyBrick *brick);

Gets the raw data buffer of a data brick.

The returned buffer is not guaranteed to be valid through whole data brick life time. Some function may change it, most notably gwy_brick_resize() and gwy_brick_resample().

This function invalidates any cached information, use gwy_brick_get_data_const() if you are not going to change the data.

brick :

A data brick.

Returns :

The data as an array of doubles of length gwy_brick_get_res().

Since 2.31


gwy_brick_itor ()

gdouble             gwy_brick_itor                      (GwyBrick *brick,
                                                         gdouble pixpos);

Transforms pixel coordinate to real (physical) coordinate in x direction.

That is it maps range [0..x resolution] to range [0..x real-size]. It is not suitable for conversion of matrix indices to physical coordinates, you have to use gwy_brick_itor(brick, pixpos + 0.5) for that.

brick :

A data brick.

pixpos :

Pixel coordinate.

Returns :

pixpos in real coordinates.

Since 2.31


gwy_brick_rtoi ()

gdouble             gwy_brick_rtoi                      (GwyBrick *brick,
                                                         gdouble realpos);

Transforms real (physical) coordinate to pixel coordinate in x axis.

That is it maps range [0..x real-size] to range [0..x resolution].

brick :

A data brick.

realpos :

Real coordinate.

Returns :

realpos in pixel coordinates.

Since 2.31


gwy_brick_jtor ()

gdouble             gwy_brick_jtor                      (GwyBrick *brick,
                                                         gdouble pixpos);

Transforms pixel coordinate to real (physical) coordinate in y direction.

That is it maps range [0..y resolution] to range [0..y real-size]. It is not suitable for conversion of matrix indices to physical coordinates, you have to use gwy_brick_itor(brick, pixpos + 0.5) for that.

brick :

A data brick.

pixpos :

Pixel coordinate.

Returns :

pixpos in real coordinates.

Since 2.31


gwy_brick_rtoj ()

gdouble             gwy_brick_rtoj                      (GwyBrick *brick,
                                                         gdouble realpos);

Transforms real (physical) coordinate to pixel coordinate in y axis.

That is it maps range [0..y real-size] to range [0..y resolution].

brick :

A data brick.

realpos :

Real coordinate.

Returns :

realpos in pixel coordinates.

Since 2.31


gwy_brick_ktor ()

gdouble             gwy_brick_ktor                      (GwyBrick *brick,
                                                         gdouble pixpos);

Transforms pixel coordinate to real (physical) coordinate.

That is it maps range [0..z resolution] to range [0..z real-size]. It is not suitable for conversion of matrix indices to physical coordinates, you have to use gwy_brick_itor(brick, pixpos + 0.5) for that.

brick :

A data brick.

pixpos :

Pixel coordinate.

Returns :

pixpos in real coordinates.

Since 2.31


gwy_brick_rtok ()

gdouble             gwy_brick_rtok                      (GwyBrick *brick,
                                                         gdouble realpos);

Transforms real (physical) coordinate to pixel coordinate in z axis.

That is it maps range [0..z real-size] to range [0..z resolution].

brick :

A data brick.

realpos :

Real coordinate.

Returns :

realpos in pixel coordinates.

Since 2.31


gwy_brick_get_val ()

gdouble             gwy_brick_get_val                   (GwyBrick *brick,
                                                         gint col,
                                                         gint row,
                                                         gint lev);

Gets value at given position in a data brick.

Do not access data with this function inside inner loops, it's slow. Get raw data buffer with gwy_brick_get_data_const() and access it directly instead.

brick :

A data brick.

col :

Position in the brick (column index).

row :

Position in the brick (row index).

lev :

Position in the brick (level index).

Returns :

Value at given index.

Since 2.31


gwy_brick_set_val ()

void                gwy_brick_set_val                   (GwyBrick *brick,
                                                         gint col,
                                                         gint row,
                                                         gint lev,
                                                         gdouble value);

Sets value at given position in a data brick.

Do not access data with this function inside inner loops, it's slow. Get raw data buffer with gwy_brick_get_data_const() and access it directly instead.

brick :

A data brick.

col :

Position in the brick (column index).

row :

Position in the brick (row index).

lev :

Position in the brick (level index).

value :

value to be set.

Since 2.31


gwy_brick_get_val_real ()

gdouble             gwy_brick_get_val_real              (GwyBrick *brick,
                                                         gdouble x,
                                                         gdouble y,
                                                         gdouble z);

Gets value at given position in a data brick, in real coordinates.

Do not access data with this function inside inner loops, it's slow. Get raw data buffer with gwy_brick_get_data_const() and access it directly instead.

brick :

A data brick.

x :

Position in the brick (x direction).

y :

Position in the brick (y direction).

z :

Position in the brick (z direction).

Returns :

Value at given index.

Since 2.31


gwy_brick_set_val_real ()

void                gwy_brick_set_val_real              (GwyBrick *brick,
                                                         gdouble x,
                                                         gdouble y,
                                                         gdouble z,
                                                         gdouble value);

Sets value at given position in a data brick.

Do not access data with this function inside inner loops, it's slow. Get raw data buffer with gwy_brick_get_data_const() and access it directly instead.

brick :

A data brick.

x :

Position in the brick (x direction).

y :

Position in the brick (y direction).

z :

Position in the brick (z direction).

Since 2.31


gwy_brick_get_dval ()

gdouble             gwy_brick_get_dval                  (GwyBrick *brick,
                                                         gdouble x,
                                                         gdouble y,
                                                         gdouble z,
                                                         gint interpolation);

Gets interpolated value at arbitrary data brick point indexed by pixel coordinates.

Note pixel values are centered in intervals [i, i+1]. See also gwy_brick_get_dval_real() that does the same, but takes real coordinates.

brick :

A data brick.

x :

Position in data brick in range [0, x resolution]. If the value is outside this range, the nearest border value is returned.

y :

Position in data brick in range [0, y resolution]. If the value is outside this range, the nearest border value is returned.

z :

Position in data brick in range [0, z resolution]. If the value is outside this range, the nearest border value is returned.

interpolation :

Interpolation method to use.

Returns :

Value interpolated in the data brick.

Since 2.31


gwy_brick_get_dval_real ()

gdouble             gwy_brick_get_dval_real             (GwyBrick *brick,
                                                         gdouble x,
                                                         gdouble y,
                                                         gdouble z,
                                                         gint interpolation);

Gets interpolated value at arbitrary data brick point indexed by pixel coordinates.

Note pixel values are centered in intervals [j, j+1]. See also gwy_brick_get_dval() that does the same, but takes pixel coordinates.

brick :

A data brick.

x :

Position in data brick in range [0, x resolution]. If the value is outside this range, the nearest border value is returned.

y :

Position in data brick in range [0, y resolution]. If the value is outside this range, the nearest border value is returned.

z :

Position in data brick in range [0, z resolution]. If the value is outside this range, the nearest border value is returned.

interpolation :

Interpolation method to use.

Returns :

Value interpolated in the data brick.

Since 2.31


gwy_brick_clear ()

void                gwy_brick_clear                     (GwyBrick *brick);

Fills a data brick with zeroes.

brick :

A data brick.

Since 2.31


gwy_brick_fill ()

void                gwy_brick_fill                      (GwyBrick *brick,
                                                         gdouble value);

Fills a data brick with specified value.

brick :

A data brick.

value :

Value to fill data brick with.

Since 2.31


gwy_brick_multiply ()

void                gwy_brick_multiply                  (GwyBrick *brick,
                                                         gdouble value);

Multiplies all values in a data brick with a specified value.

brick :

A data brick.

value :

Value to multiply data brick with.

Since 2.31


gwy_brick_add ()

void                gwy_brick_add                       (GwyBrick *brick,
                                                         gdouble value);

Adds a specified value to all values in a data brick.

brick :

A data brick.

value :

Value to be added.

Since 2.31


gwy_brick_extract_plane ()

void                gwy_brick_extract_plane             (const GwyBrick *brick,
                                                         GwyDataField *target,
                                                         gint istart,
                                                         gint jstart,
                                                         gint kstart,
                                                         gint width,
                                                         gint height,
                                                         gint depth,
                                                         gboolean keep_offsets);

Extract a plane (GwyDataField) from the brick. One value of set (width, height, depth) needs to be -1, determining the plane orientation.

brick :

A data brick.

target :

Datafield to be filled by extracted plane. It will be resampled if necessary.

istart :

column where to start (pixel coordinates).

jstart :

row where to start (pixel coordinates).

kstart :

level where to start (pixel coordinates).

width :

pixel width of extracted plane. If width is -1, the yz plane will be extracted.

height :

pixel height of extracted plane. If height is -1, the xz plane will be extracted

depth :

pixel depth of extacted plane. If depth is -1, the xy plane will be extracted

keep_offsets :

keep the physical offsets in extracted field.

Since 2.31


gwy_brick_sum_plane ()

void                gwy_brick_sum_plane                 (const GwyBrick *brick,
                                                         GwyDataField *target,
                                                         gint istart,
                                                         gint jstart,
                                                         gint kstart,
                                                         gint width,
                                                         gint height,
                                                         gint depth,
                                                         gboolean keep_offsets);

Sums planes in certain direction and extract the result (GwyDataField). One value of set (width, height, depth) needs to be -1, determining the plane orientation. In contrast to gwy_brick_extract_plane, the appropriate start coordinate (e.g. istart if width = -1) is not used for single plane extraction, but the planes are accumulated in whole range (0..xres for given example)

brick :

A data brick.

target :

Datafield to be filled by summed plane. It will be resampled if necessary.

istart :

column where to start (pixel coordinates).

jstart :

row where to start (pixel coordinates).

kstart :

level where to start (pixel coordinates).

width :

pixel width of summed plane. If width is -1, the yz planes will be summed.

height :

pixel height of summed plane. If height is -1, the xz planes will be summed

depth :

pixel depth of extacted plane. If depth is -1, the xy planes will be summed

keep_offsets :

keep the physical offsets in extracted field.

Since 2.31


gwy_brick_extract_line ()

void                gwy_brick_extract_line              (const GwyBrick *brick,
                                                         GwyDataLine *target,
                                                         gint istart,
                                                         gint jstart,
                                                         gint kstart,
                                                         gint iend,
                                                         gint jend,
                                                         gint kend,
                                                         gboolean keep_offsets);

Extract a line (GwyDataField) from the brick. Only line orientations parallel to coordinate axes are supported now, i.e. two of the start coordinates need to be same as end ones.

brick :

A data brick.

target :

Dataline to be filled by extracted line. It will be resampled if necessary.

istart :

column where to start (pixel coordinates).

jstart :

row where to start (pixel coordinates).

kstart :

level where to start (pixel coordinates).

iend :

column where to start (pixel coordinates).

jend :

row where to start (pixel coordinates).

kend :

level where to start (pixel coordinates).

keep_offsets :

keep physical offsets in extracted line

Since 2.31

Signal Details

The "data-changed" signal

void                user_function                      (GwyBrick *gwydataline,
                                                        gpointer  user_data)        : Run First

The ::data-changed signal is never emitted by data line itself. It is intended as a means to notify others data line users they should update themselves.

gwydataline :

The GwyBrick which received the signal.

user_data :

user data set when the signal handler was connected.