## GtkPlotSurface

GtkPlotSurface

## Synopsis

    #include <gtkextra.h>

                        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 *data,
                                                             gint *nx);
    gdouble *           gtk_plot_surface_get_y              (GtkPlotSurface *data,
                                                             gint *ny);
    gdouble *           gtk_plot_surface_get_z              (GtkPlotSurface *data,
                                                             gint *nx,
                                                             gint *ny);
    gdouble *           gtk_plot_surface_get_dx             (GtkPlotSurface *data);
    gdouble *           gtk_plot_surface_get_dy             (GtkPlotSurface *data);
    gdouble *           gtk_plot_surface_get_dz             (GtkPlotSurface *data);
    void                gtk_plot_surface_set_nx             (GtkPlotSurface *data,
                                                             gint nx);
    void                gtk_plot_surface_set_ny             (GtkPlotSurface *data,
                                                             gint ny);
    gint                gtk_plot_surface_get_nx             (GtkPlotSurface *data);
    gint                gtk_plot_surface_get_ny             (GtkPlotSurface *data);
    void                gtk_plot_surface_set_xstep          (GtkPlotSurface *data,
                                                             gdouble xstep);
    void                gtk_plot_surface_set_ystep          (GtkPlotSurface *data,
                                                             gdouble ystep);
    gdouble             gtk_plot_surface_get_xstep          (GtkPlotSurface *data);
    gdouble             gtk_plot_surface_get_ystep          (GtkPlotSurface *data);
    void                gtk_plot_surface_build_mesh         (GtkPlotSurface *data);
    void                gtk_plot_surface_recalc_nodes       (GtkPlotSurface *data);

## Description

## Details

### 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` : |
Returns : |

### gtk_plot_surface_construct_function ()

    void                gtk_plot_surface_construct_function (GtkPlotSurface *surface,
                                                             GtkPlotFunc3D function);

`surface` : |
`function` : |

### 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` : |
Returns : |

### gtk_plot_surface_set_y ()

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

`data` : |
`y` : |
Returns : |

### gtk_plot_surface_set_z ()

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

`data` : |
`z` : |
Returns : |

### gtk_plot_surface_set_dx ()

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

`data` : |
`dx` : |
Returns : |

### gtk_plot_surface_set_dy ()

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

`data` : |
`dy` : |
Returns : |

### gtk_plot_surface_set_dz ()

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

`data` : |
`dz` : |
Returns : |

### gtk_plot_surface_get_x ()

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

`data` : |
`nx` : |
Returns : |

### gtk_plot_surface_get_y ()

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

`data` : |
`ny` : |
Returns : |

### gtk_plot_surface_get_z ()

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

`data` : |
`nx` : |
`ny` : |
Returns : |

### gtk_plot_surface_get_dx ()

    gdouble *           gtk_plot_surface_get_dx             (GtkPlotSurface *data);

`data` : |
Returns : |

### gtk_plot_surface_get_dy ()

    gdouble *           gtk_plot_surface_get_dy             (GtkPlotSurface *data);

`data` : |
Returns : |

### gtk_plot_surface_get_dz ()

    gdouble *           gtk_plot_surface_get_dz             (GtkPlotSurface *data);

`data` : |
Returns : |

### gtk_plot_surface_set_nx ()

    void                gtk_plot_surface_set_nx             (GtkPlotSurface *data,
                                                             gint nx);

`data` : |
`nx` : |

### gtk_plot_surface_set_ny ()

    void                gtk_plot_surface_set_ny             (GtkPlotSurface *data,
                                                             gint ny);

`data` : |
`ny` : |

### gtk_plot_surface_get_nx ()

    gint                gtk_plot_surface_get_nx             (GtkPlotSurface *data);

`data` : |
Returns : |

### gtk_plot_surface_get_ny ()

    gint                gtk_plot_surface_get_ny             (GtkPlotSurface *data);

`data` : |
Returns : |

### gtk_plot_surface_set_xstep ()

    void                gtk_plot_surface_set_xstep          (GtkPlotSurface *data,
                                                             gdouble xstep);

`data` : |
`xstep` : |

### gtk_plot_surface_set_ystep ()

    void                gtk_plot_surface_set_ystep          (GtkPlotSurface *data,
                                                             gdouble ystep);

`data` : |
`ystep` : |

### gtk_plot_surface_get_xstep ()

    gdouble             gtk_plot_surface_get_xstep          (GtkPlotSurface *data);

`data` : |
Returns : |

### gtk_plot_surface_get_ystep ()

    gdouble             gtk_plot_surface_get_ystep          (GtkPlotSurface *data);

`data` : |
Returns : |

### gtk_plot_surface_build_mesh ()

    void                gtk_plot_surface_build_mesh         (GtkPlotSurface *data);

`data` : |

### gtk_plot_surface_recalc_nodes ()

    void                gtk_plot_surface_recalc_nodes       (GtkPlotSurface *data);

`data` : |