## GtkPlotSurface GtkPlotSurface |

## Synopsis

    #include <gtkextra.h>

                        GtkPlotSurface;
                        GtkPlotPolygon;
    GtkWidget*          gtk_plot_surface_new                (void);
    GtkWidget*          gtk_plot_surface_new_function       (GtkPlotFunc3D function);
    void                gtk_plot_surface_construct_function (GtkPlotSurface *surface,
                                                             GtkPlotFunc3D function);
    void                gtk_plot_surface_set_color          (GtkPlotSurface *data,
                                                             GdkColor *color);
    void                gtk_plot_surface_set_shadow         (GtkPlotSurface *data,
                                                             GdkColor *color);
    void                gtk_plot_surface_set_grid_foreground
                                                            (GtkPlotSurface *data,
                                                             GdkColor *foreground);
    void                gtk_plot_surface_set_grid_background
                                                            (GtkPlotSurface *data,
                                                             GdkColor *background);
    void                gtk_plot_surface_set_grid_visible   (GtkPlotSurface *data,
                                                             gboolean visible);
    gboolean            gtk_plot_surface_get_grid_visible   (GtkPlotSurface *data);
    void                gtk_plot_surface_set_mesh_visible   (GtkPlotSurface *data,
                                                             gboolean visible);
    gboolean            gtk_plot_surface_get_mesh_visible   (GtkPlotSurface *data);
    void                gtk_plot_surface_set_light          (GtkPlotSurface *data,
                                                             gdouble x,
                                                             gdouble y,
                                                             gdouble z);
    void                gtk_plot_surface_set_ambient        (GtkPlotSurface *data,
                                                             gdouble ambient);
    void                gtk_plot_surface_use_height_gradient
                                                            (GtkPlotSurface *data,
                                                             gboolean use_gradient);
    void                gtk_plot_surface_use_amplitud       (GtkPlotSurface *data,
                                                             gboolean use_amplitud);
    void                gtk_plot_surface_set_transparent    (GtkPlotSurface *data,
                                                             gboolean transparent);
    void                gtk_plot_surface_set_points         (GtkPlotSurface *data,
                                                             gdouble *x,
                                                             gdouble *y,
                                                             gdouble *z,
                                                             gdouble *dx,
                                                             gdouble *dy,
                                                             gdouble *dz,
                                                             gint nx,
                                                             gint ny);
    void                gtk_plot_surface_get_points         (GtkPlotSurface *data,
                                                             gdouble **x,
                                                             gdouble **y,
                                                             gdouble **z,
                                                             gdouble **dx,
                                                             gdouble **dy,
                                                             gdouble **dz,
                                                             gint *nx,
                                                             gint *ny);
    GtkPlotArray *      gtk_plot_surface_set_x              (GtkPlotSurface *data,
                                                             gdouble *x);
    GtkPlotArray *      gtk_plot_surface_set_y              (GtkPlotSurface *data,
                                                             gdouble *y);
    GtkPlotArray *      gtk_plot_surface_set_z              (GtkPlotSurface *data,
                                                             gdouble *z);
    GtkPlotArray *      gtk_plot_surface_set_dx             (GtkPlotSurface *data,
                                                             gdouble *dx);
    GtkPlotArray *      gtk_plot_surface_set_dy             (GtkPlotSurface *data,
                                                             gdouble *dy);
    GtkPlotArray *      gtk_plot_surface_set_dz             (GtkPlotSurface *data,
                                                             gdouble *dz);
    gdouble *           gtk_plot_surface_get_x              (GtkPlotSurface *dataset,
                                                             gint *nx);
    gdouble *           gtk_plot_surface_get_y              (GtkPlotSurface *dataset,
                                                             gint *ny);
    gdouble *           gtk_plot_surface_get_z              (GtkPlotSurface *dataset,
                                                             gint *nx,
                                                             gint *ny);
    gdouble *           gtk_plot_surface_get_dx             (GtkPlotSurface *dataset);
    gdouble *           gtk_plot_surface_get_dy             (GtkPlotSurface *dataset);
    gdouble *           gtk_plot_surface_get_dz             (GtkPlotSurface *dataset);
    void                gtk_plot_surface_set_nx             (GtkPlotSurface *dataset,
                                                             gint nx);
    void                gtk_plot_surface_set_ny             (GtkPlotSurface *dataset,
                                                             gint ny);
    gint                gtk_plot_surface_get_nx             (GtkPlotSurface *dataset);
    gint                gtk_plot_surface_get_ny             (GtkPlotSurface *dataset);
    void                gtk_plot_surface_set_xstep          (GtkPlotSurface *dataset,
                                                             gdouble xstep);
    void                gtk_plot_surface_set_ystep          (GtkPlotSurface *dataset,
                                                             gdouble ystep);
    gdouble             gtk_plot_surface_get_xstep          (GtkPlotSurface *dataset);
    gdouble             gtk_plot_surface_get_ystep          (GtkPlotSurface *dataset);
    void                gtk_plot_surface_build_mesh         (GtkPlotSurface *surface);
    void                gtk_plot_surface_recalc_nodes       (GtkPlotSurface *surface);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkPlotData
                               +----GtkPlotSurface
                                     +----GtkPlotCSurface

## Implemented Interfaces

GtkPlotSurface implements AtkImplementorIface and GtkBuildable.

## Properties

      "ambient"                  gdouble               : Read / Write
      "mesh-color"               gpointer              : Read / Write
      "mesh-style"               gint                  : Read / Write
      "mesh-width"               gdouble               : Read / Write
      "nx"                       gint                  : Read / Write
      "ny"                       gint                  : Read / Write
      "show-grid"                gboolean              : Read / Write
      "show-mesh"                gboolean              : Read / Write
      "transparent"              gboolean              : Read / Write
      "use-amplitud"             gboolean              : Read / Write
      "use-height"               gboolean              : Read / Write
      "vector-light"             gpointer              : Read / Write
      "xstep"                    gdouble               : Read / Write
      "ystep"                    gdouble               : Read / Write

## Description

FIXME:: need long description

## Details

### GtkPlotSurface

    typedef struct _GtkPlotSurface GtkPlotSurface;

The GtkPlotSurface struct contains only private data. It should only be accessed through the functions described below.

### GtkPlotPolygon

    typedef struct {
      GtkPlotDTtriangle *t;  		/* parent triangle */
      GtkPlotVector xyz[4]; 		/* points */
      GtkPlotVector p[4];			/* pixels */
      gint n;				/* number of points */
      gdouble level;
      gboolean cut_level;
      gboolean sublevel;
    } GtkPlotPolygon;

### gtk_plot_surface_new ()

    GtkWidget*          gtk_plot_surface_new                (void);

Returns : |

### gtk_plot_surface_new_function ()

    GtkWidget*          gtk_plot_surface_new_function       (GtkPlotFunc3D function);

`function` : | a GtkPlotFunc3D. scope async.
Returns : | (transfer full) the constructed GtkWidget

### gtk_plot_surface_construct_function ()

    void                gtk_plot_surface_construct_function (GtkPlotSurface *surface,
                                                             GtkPlotFunc3D function);

`surface` : |
`function` : | a GtkPlotFunc3D. scope async.

### gtk_plot_surface_set_color ()

    void                gtk_plot_surface_set_color          (GtkPlotSurface *data,
                                                             GdkColor *color);

`data` : |
`color` : |

### gtk_plot_surface_set_shadow ()

    void                gtk_plot_surface_set_shadow         (GtkPlotSurface *data,
                                                             GdkColor *color);

`data` : |
`color` : |

### gtk_plot_surface_set_grid_foreground ()

    void                gtk_plot_surface_set_grid_foreground
                                                            (GtkPlotSurface *data,
                                                             GdkColor *foreground);

`data` : |
`foreground` : |

### gtk_plot_surface_set_grid_background ()

    void                gtk_plot_surface_set_grid_background
                                                            (GtkPlotSurface *data,
                                                             GdkColor *background);

`data` : |
`background` : |

### gtk_plot_surface_set_grid_visible ()

    void                gtk_plot_surface_set_grid_visible   (GtkPlotSurface *data,
                                                             gboolean visible);

`data` : |
`visible` : |

### gtk_plot_surface_get_grid_visible ()

    gboolean            gtk_plot_surface_get_grid_visible   (GtkPlotSurface *data);

`data` : |
Returns : |

### gtk_plot_surface_set_mesh_visible ()

    void                gtk_plot_surface_set_mesh_visible   (GtkPlotSurface *data,
                                                             gboolean visible);

`data` : |
`visible` : |

### gtk_plot_surface_get_mesh_visible ()

    gboolean            gtk_plot_surface_get_mesh_visible   (GtkPlotSurface *data);

`data` : |
Returns : |

### gtk_plot_surface_set_light ()

    void                gtk_plot_surface_set_light          (GtkPlotSurface *data,
                                                             gdouble x,
                                                             gdouble y,
                                                             gdouble z);

`data` : |
`x` : |
`y` : |
`z` : |

### gtk_plot_surface_set_ambient ()

    void                gtk_plot_surface_set_ambient        (GtkPlotSurface *data,
                                                             gdouble ambient);

`data` : |
`ambient` : |

### gtk_plot_surface_use_height_gradient ()

    void                gtk_plot_surface_use_height_gradient
                                                            (GtkPlotSurface *data,
                                                             gboolean use_gradient);

`data` : |
`use_gradient` : |

### gtk_plot_surface_use_amplitud ()

    void                gtk_plot_surface_use_amplitud       (GtkPlotSurface *data,
                                                             gboolean use_amplitud);

`data` : |
`use_amplitud` : |

### gtk_plot_surface_set_transparent ()

    void                gtk_plot_surface_set_transparent    (GtkPlotSurface *data,
                                                             gboolean transparent);

`data` : |
`transparent` : |

### gtk_plot_surface_set_points ()

    void                gtk_plot_surface_set_points         (GtkPlotSurface *data,
                                                             gdouble *x,
                                                             gdouble *y,
                                                             gdouble *z,
                                                             gdouble *dx,
                                                             gdouble *dy,
                                                             gdouble *dz,
                                                             gint nx,
                                                             gint ny);

`data` : |
`x` : |
`y` : |
`z` : |
`dx` : |
`dy` : |
`dz` : |
`nx` : |
`ny` : |

### gtk_plot_surface_get_points ()

    void                gtk_plot_surface_get_points         (GtkPlotSurface *data,
                                                             gdouble **x,
                                                             gdouble **y,
                                                             gdouble **z,
                                                             gdouble **dx,
                                                             gdouble **dy,
                                                             gdouble **dz,
                                                             gint *nx,
                                                             gint *ny);

`data` : |
`x` : |
`y` : |
`z` : |
`dx` : |
`dy` : |
`dz` : |
`nx` : |
`ny` : |

### gtk_plot_surface_set_x ()

    GtkPlotArray *      gtk_plot_surface_set_x              (GtkPlotSurface *data,
                                                             gdouble *x);

`data` : |
`x` : | the value to be set
Returns : | (transfer none) the affected GtkPlotArray

### gtk_plot_surface_set_y ()

    GtkPlotArray *      gtk_plot_surface_set_y              (GtkPlotSurface *data,
                                                             gdouble *y);

`data` : |
`y` : | the value to be set
Returns : | (transfer none) the affected GtkPlotArray

### gtk_plot_surface_set_z ()

    GtkPlotArray *      gtk_plot_surface_set_z              (GtkPlotSurface *data,
                                                             gdouble *z);

`data` : |
`z` : | the value to be set
Returns : | (transfer none) the affected GtkPlotArray

### gtk_plot_surface_set_dx ()

    GtkPlotArray *      gtk_plot_surface_set_dx             (GtkPlotSurface *data,
                                                             gdouble *dx);

`data` : |
`dx` : | the value to be set
Returns : | (transfer none) the affected GtkPlotArray

### gtk_plot_surface_set_dy ()

    GtkPlotArray *      gtk_plot_surface_set_dy             (GtkPlotSurface *data,
                                                             gdouble *dy);

`data` : |
`dy` : | the value to be set
Returns : | (transfer none) the affected GtkPlotArray

### gtk_plot_surface_set_dz ()

    GtkPlotArray *      gtk_plot_surface_set_dz             (GtkPlotSurface *data,
                                                             gdouble *dz);

`data` : |
`dz` : | the value to be set
Returns : | (transfer none) the affected GtkPlotArray

### gtk_plot_surface_get_x ()

    gdouble *           gtk_plot_surface_get_x              (GtkPlotSurface *dataset,
                                                             gint *nx);

`dataset` : |
`nx` : | the value to be set
Returns : |

### gtk_plot_surface_get_y ()

    gdouble *           gtk_plot_surface_get_y              (GtkPlotSurface *dataset,
                                                             gint *ny);

`dataset` : |
`ny` : |
Returns : |

### gtk_plot_surface_get_z ()

    gdouble *           gtk_plot_surface_get_z              (GtkPlotSurface *dataset,
                                                             gint *nx,
                                                             gint *ny);

`dataset` : |
`nx` : |
`ny` : |
Returns : |

### gtk_plot_surface_get_dx ()

    gdouble *           gtk_plot_surface_get_dx             (GtkPlotSurface *dataset);

`dataset` : |
Returns : |

### gtk_plot_surface_get_dy ()

    gdouble *           gtk_plot_surface_get_dy             (GtkPlotSurface *dataset);

`dataset` : |
Returns : |

### gtk_plot_surface_get_dz ()

    gdouble *           gtk_plot_surface_get_dz             (GtkPlotSurface *dataset);

`dataset` : |
Returns : |

### gtk_plot_surface_set_nx ()

    void                gtk_plot_surface_set_nx             (GtkPlotSurface *dataset,
                                                             gint nx);

`dataset` : |
`nx` : |

### gtk_plot_surface_set_ny ()

    void                gtk_plot_surface_set_ny             (GtkPlotSurface *dataset,
                                                             gint ny);

`dataset` : |
`ny` : |

### gtk_plot_surface_get_nx ()

    gint                gtk_plot_surface_get_nx             (GtkPlotSurface *dataset);

`dataset` : |
Returns : |

### gtk_plot_surface_get_ny ()

    gint                gtk_plot_surface_get_ny             (GtkPlotSurface *dataset);

`dataset` : |
Returns : |

### gtk_plot_surface_set_xstep ()

    void                gtk_plot_surface_set_xstep          (GtkPlotSurface *dataset,
                                                             gdouble xstep);

`dataset` : |
`xstep` : |

### gtk_plot_surface_set_ystep ()

    void                gtk_plot_surface_set_ystep          (GtkPlotSurface *dataset,
                                                             gdouble ystep);

`dataset` : |
`ystep` : |

### gtk_plot_surface_get_xstep ()

    gdouble             gtk_plot_surface_get_xstep          (GtkPlotSurface *dataset);

`dataset` : |
Returns : |

### gtk_plot_surface_get_ystep ()

    gdouble             gtk_plot_surface_get_ystep          (GtkPlotSurface *dataset);

`dataset` : |
Returns : |

### gtk_plot_surface_build_mesh ()

    void                gtk_plot_surface_build_mesh         (GtkPlotSurface *surface);

`surface` : |

### gtk_plot_surface_recalc_nodes ()

    void                gtk_plot_surface_recalc_nodes       (GtkPlotSurface *surface);

`surface` : |

## Property Details

### The `"ambient"` property

      "ambient"                  gdouble               : Read / Write

Allowed values: >= 0

Default value: 0

### The `"mesh-color"` property

      "mesh-color"               gpointer              : Read / Write

### The `"mesh-style"` property

      "mesh-style"               gint                  : Read / Write

Allowed values: >= 0

Default value: 0

### The `"mesh-width"` property

      "mesh-width"               gdouble               : Read / Write

Allowed values: >= 0

Default value: 0

### The `"nx"` property

      "nx"                       gint                  : Read / Write

Allowed values: >= 0

Default value: 0

### The `"ny"` property

      "ny"                       gint                  : Read / Write

Allowed values: >= 0

Default value: 0

### The `"show-grid"` property

      "show-grid"                gboolean              : Read / Write

Default value: FALSE

### The `"show-mesh"` property

      "show-mesh"                gboolean              : Read / Write

Default value: FALSE

### The `"transparent"` property

      "transparent"              gboolean              : Read / Write

Default value: FALSE

### The `"use-amplitud"` property

      "use-amplitud"             gboolean              : Read / Write

Default value: FALSE

### The `"use-height"` property

      "use-height"               gboolean              : Read / Write

Default value: TRUE

### The `"vector-light"` property

      "vector-light"             gpointer              : Read / Write

### The `"xstep"` property

      "xstep"                    gdouble               : Read / Write

Allowed values: >= 0

Default value: 0

### The `"ystep"` property

      "ystep"                    gdouble               : Read / Write

Allowed values: >= 0

Default value: 0