2002-11-19 20:25:57 +00:00
|
|
|
|
2004-07-02 13:31:25 +00:00
|
|
|
#ifndef __GIMPRESSIONIST_H
|
|
|
|
#define __GIMPRESSIONIST_H
|
|
|
|
|
|
|
|
/* Includes necessary for the correct processing of this file. */
|
|
|
|
#include <libgimp/gimp.h>
|
|
|
|
#include <libgimp/gimpui.h>
|
2004-07-08 15:55:14 +00:00
|
|
|
|
|
|
|
#include "ppmtool.h"
|
2004-07-02 13:31:25 +00:00
|
|
|
/* Defines */
|
|
|
|
|
2004-01-20 17:10:16 +00:00
|
|
|
#define PLUG_IN_NAME "plug_in_gimpressionist"
|
2003-10-24 20:57:29 +00:00
|
|
|
#define PLUG_IN_VERSION "v1.0, November 2003"
|
2004-01-20 17:10:16 +00:00
|
|
|
#define HELP_ID "plug-in-gimppressionist"
|
1999-08-26 22:29:37 +00:00
|
|
|
|
2004-01-27 01:44:55 +00:00
|
|
|
#define PREVIEWSIZE 150
|
|
|
|
#define MAXORIENTVECT 50
|
|
|
|
#define MAXSIZEVECT 50
|
1999-08-26 22:29:37 +00:00
|
|
|
|
2004-07-02 13:31:25 +00:00
|
|
|
#define NUMORIENTRADIO 8
|
|
|
|
#define NUMSIZERADIO 8
|
|
|
|
|
1999-08-26 22:29:37 +00:00
|
|
|
/* Type declaration and definitions */
|
|
|
|
|
2004-01-27 01:44:55 +00:00
|
|
|
typedef struct vector
|
|
|
|
{
|
1999-08-26 22:29:37 +00:00
|
|
|
double x, y;
|
|
|
|
double dir;
|
|
|
|
double dx, dy;
|
|
|
|
double str;
|
2004-01-27 01:44:55 +00:00
|
|
|
int type;
|
2002-11-19 20:25:57 +00:00
|
|
|
} vector_t;
|
1999-08-26 22:29:37 +00:00
|
|
|
|
2004-01-27 01:44:55 +00:00
|
|
|
typedef struct smvector
|
|
|
|
{
|
1999-08-26 22:29:37 +00:00
|
|
|
double x, y;
|
|
|
|
double siz;
|
|
|
|
double str;
|
2002-11-19 20:25:57 +00:00
|
|
|
} smvector_t;
|
1999-08-26 22:29:37 +00:00
|
|
|
|
2004-01-27 01:44:55 +00:00
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int orientnum;
|
|
|
|
double orientfirst;
|
|
|
|
double orientlast;
|
|
|
|
int orienttype;
|
|
|
|
double brushrelief;
|
|
|
|
double brushscale;
|
|
|
|
double brushdensity;
|
|
|
|
double brushgamma;
|
|
|
|
int generalbgtype;
|
|
|
|
double generaldarkedge;
|
|
|
|
double paperrelief;
|
|
|
|
double paperscale;
|
2004-07-15 18:09:48 +00:00
|
|
|
int paper_invert;
|
2004-01-27 01:44:55 +00:00
|
|
|
int run;
|
|
|
|
char selectedbrush[200];
|
|
|
|
char selectedpaper[200];
|
|
|
|
GimpRGB color;
|
2004-07-17 09:43:46 +00:00
|
|
|
int general_paint_edges;
|
2004-01-27 01:44:55 +00:00
|
|
|
int placetype;
|
|
|
|
vector_t orientvector[MAXORIENTVECT];
|
|
|
|
int numorientvector;
|
|
|
|
int placecenter;
|
|
|
|
double brushaspect;
|
|
|
|
double orientangoff;
|
|
|
|
double orientstrexp;
|
2004-07-17 09:43:46 +00:00
|
|
|
int general_tileable;
|
2004-07-15 18:09:48 +00:00
|
|
|
int paper_overlay;
|
2004-07-20 16:54:22 +00:00
|
|
|
int orient_voronoi;
|
2004-01-27 01:44:55 +00:00
|
|
|
int colorbrushes;
|
2004-07-17 09:43:46 +00:00
|
|
|
int general_drop_shadow;
|
2004-01-27 01:44:55 +00:00
|
|
|
double generalshadowdarkness;
|
|
|
|
int sizenum;
|
|
|
|
double sizefirst;
|
|
|
|
double sizelast;
|
|
|
|
int sizetype;
|
|
|
|
double devthresh;
|
1999-08-26 22:29:37 +00:00
|
|
|
|
2002-11-19 20:25:57 +00:00
|
|
|
smvector_t sizevector[MAXSIZEVECT];
|
2004-01-27 01:44:55 +00:00
|
|
|
int numsizevector;
|
|
|
|
double sizestrexp;
|
|
|
|
int sizevoronoi;
|
1999-08-26 22:29:37 +00:00
|
|
|
|
2004-07-17 09:43:46 +00:00
|
|
|
int general_shadow_depth;
|
|
|
|
int general_shadow_blur;
|
1999-08-29 21:06:26 +00:00
|
|
|
|
2004-01-27 01:44:55 +00:00
|
|
|
int colortype;
|
|
|
|
double colornoise;
|
1999-08-26 22:29:37 +00:00
|
|
|
} gimpressionist_vals_t;
|
|
|
|
|
2004-07-02 13:31:25 +00:00
|
|
|
/* Enumerations */
|
|
|
|
|
|
|
|
enum GENERAL_BG_TYPE_ENUM
|
|
|
|
{
|
|
|
|
BG_TYPE_SOLID = 0,
|
|
|
|
BG_TYPE_KEEP_ORIGINAL = 1,
|
|
|
|
BG_TYPE_FROM_PAPER = 2,
|
|
|
|
BG_TYPE_TRANSPARENT = 3,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum ORIENTATION_ENUM
|
|
|
|
{
|
|
|
|
ORIENTATION_VALUE = 0,
|
|
|
|
ORIENTATION_RADIUS = 1,
|
|
|
|
ORIENTATION_RANDOM = 2,
|
|
|
|
ORIENTATION_RADIAL = 3,
|
|
|
|
ORIENTATION_FLOWING = 4,
|
|
|
|
ORIENTATION_HUE = 5,
|
|
|
|
ORIENTATION_ADAPTIVE = 6,
|
|
|
|
ORIENTATION_MANUAL = 7,
|
|
|
|
};
|
|
|
|
|
2004-07-06 14:17:17 +00:00
|
|
|
enum PRESETS_LIST_COLUMN_ENUM
|
|
|
|
{
|
|
|
|
PRESETS_LIST_COLUMN_FILENAME = 0,
|
|
|
|
PRESETS_LIST_COLUMN_OBJECT_NAME = 1,
|
|
|
|
};
|
|
|
|
|
1999-08-26 22:29:37 +00:00
|
|
|
/* Globals */
|
|
|
|
|
|
|
|
extern gimpressionist_vals_t pcvals;
|
2004-07-13 20:58:02 +00:00
|
|
|
|
1999-08-26 22:29:37 +00:00
|
|
|
|
|
|
|
/* Prototypes */
|
|
|
|
|
2004-07-14 13:28:01 +00:00
|
|
|
GList *parsepath (void);
|
|
|
|
void free_parsepath_cache (void);
|
|
|
|
|
|
|
|
void create_orientationpage (GtkNotebook *);
|
|
|
|
|
|
|
|
void grabarea (void);
|
|
|
|
void store_values (void);
|
|
|
|
void restore_values (void);
|
|
|
|
gchar *findfile (const gchar *);
|
|
|
|
|
|
|
|
void unselectall (GtkWidget *list);
|
|
|
|
void reselect (GtkWidget *list, char *fname);
|
|
|
|
void readdirintolist (char *subdir, GtkWidget *view, char *selected);
|
|
|
|
void readdirintolist_extended (char *subdir, GtkWidget *view, char *selected,
|
|
|
|
gboolean with_filename_column,
|
|
|
|
gchar *(*get_object_name_cb)
|
|
|
|
(gchar *dir, gchar *filename, void *context),
|
|
|
|
void * context);
|
|
|
|
void orientation_restore (void);
|
|
|
|
|
|
|
|
GtkWidget *create_one_column_list (GtkWidget *parent,
|
|
|
|
void (*changed_cb)
|
|
|
|
(GtkTreeSelection *selection,
|
|
|
|
gpointer data));
|
|
|
|
|
|
|
|
void brush_reload (const gchar *fn, struct ppm *p);
|
|
|
|
|
|
|
|
void create_orientmap_dialog (void);
|
|
|
|
void update_orientmap_dialog (void);
|
2004-07-20 16:54:22 +00:00
|
|
|
double get_direction (double x, double y, int from);
|
2004-07-14 13:28:01 +00:00
|
|
|
|
|
|
|
void create_sizemap_dialog (void);
|
2004-07-02 13:31:25 +00:00
|
|
|
double getsiz_proto (double x, double y, int n, smvector_t *vec,
|
|
|
|
double smstrexp, int voronoi);
|
|
|
|
|
|
|
|
|
|
|
|
void set_colorbrushes (const gchar *fn);
|
|
|
|
int create_gimpressionist (void);
|
|
|
|
|
2004-07-14 13:28:01 +00:00
|
|
|
double dist (double x, double y, double dx, double dy);
|
2004-07-02 13:31:25 +00:00
|
|
|
|
2004-07-14 13:28:01 +00:00
|
|
|
void restore_default_values (void);
|
2004-07-02 13:31:25 +00:00
|
|
|
|
|
|
|
GtkWidget *create_radio_button (GtkWidget *box, int orienttype,
|
|
|
|
void (*callback)(GtkWidget *wg, void *d),
|
|
|
|
gchar *label, gchar *help_string,
|
|
|
|
GSList **radio_group,
|
|
|
|
GtkWidget **buttons_array
|
|
|
|
);
|
|
|
|
|
|
|
|
#endif /* #ifndef __GIMPRESSIONIST_H */
|
|
|
|
|