~ubuntu-branches/ubuntu/hoary/gimp/hoary

« back to all changes in this revision

Viewing changes to plug-ins/sel2path/types.h

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2005-04-04 14:51:23 UTC
  • Revision ID: james.westby@ubuntu.com-20050404145123-9py049eeelfymur8
Tags: upstream-2.2.2
ImportĀ upstreamĀ versionĀ 2.2.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* types.h: general types.
 
2
 
 
3
Copyright (C) 1992 Free Software Foundation, Inc.
 
4
 
 
5
This program is free software; you can redistribute it and/or modify
 
6
it under the terms of the GNU General Public License as published by
 
7
the Free Software Foundation; either version 2, or (at your option)
 
8
any later version.
 
9
 
 
10
This program is distributed in the hope that it will be useful,
 
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
GNU General Public License for more details.
 
14
 
 
15
You should have received a copy of the GNU General Public License
 
16
along with this program; if not, write to the Free Software
 
17
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
18
 
 
19
#ifndef TYPES_H
 
20
#define TYPES_H
 
21
 
 
22
/* Booleans.  */
 
23
typedef enum { false = 0, true = 1 } boolean;
 
24
 
 
25
/* The X11 library defines `FALSE' and `TRUE', and so we only want to
 
26
   define them if necessary.  */
 
27
#ifndef FALSE
 
28
#define FALSE false
 
29
#define TRUE true
 
30
#endif /* FALSE */
 
31
 
 
32
/* The usual null-terminated string.  */
 
33
typedef char *string;
 
34
 
 
35
/* A generic pointer in ANSI C.  */
 
36
typedef void *address;
 
37
 
 
38
/* We use `real' for our floating-point variables.  */
 
39
typedef double real;
 
40
 
 
41
/* A character code.  Perhaps someday we will allow for 16-bit
 
42
   character codes, but for now we are restricted to 256 characters per
 
43
   font (like TeX and PostScript).  */
 
44
typedef unsigned char charcode_type;
 
45
 
 
46
 
 
47
/* Used in file formats.  */
 
48
typedef unsigned char one_byte;
 
49
typedef signed char signed_byte;
 
50
typedef unsigned short two_bytes;
 
51
typedef short signed_2_bytes;
 
52
typedef unsigned int four_bytes;
 
53
typedef int signed_4_bytes;
 
54
typedef int byte_count_type;
 
55
 
 
56
/* These are intended to be used for output in file formats where a
 
57
   ``byte'' is defined to be eight bits, regardless of the hardware.  */
 
58
#define ONE_BYTE_BIG  (1 << 8)
 
59
#define TWO_BYTES_BIG  (1 << 16)
 
60
#define THREE_BYTES_BIG (1 << 24)
 
61
 
 
62
 
 
63
/* Complex numbers.  */
 
64
typedef struct
 
65
{
 
66
  real real;
 
67
  real imag;
 
68
} complex;
 
69
typedef enum { first_complex_part, second_complex_part} complex_part_type;
 
70
typedef enum { polar_rep, rectangular_rep} complex_rep_type;
 
71
 
 
72
 
 
73
/* Dimensions of a rectangle.  */
 
74
typedef struct
 
75
{
 
76
  unsigned height, width;
 
77
} dimensions_type;
 
78
 
 
79
#define DIMENSIONS_HEIGHT(d) ((d).height)
 
80
#define DIMENSIONS_WIDTH(d) ((d).width)
 
81
 
 
82
 
 
83
/* Cartesian points.  */
 
84
typedef struct
 
85
{
 
86
  int x, y;
 
87
} coordinate_type;
 
88
 
 
89
typedef struct
 
90
{
 
91
  double x, y;
 
92
} real_coordinate_type;
 
93
 
 
94
#if 0
 
95
typedef struct
 
96
{
 
97
  double       align_threshold;
 
98
  double       corner_always_threshold;
 
99
  unsigned int corner_surround;
 
100
  double       corner_threshold;
 
101
  double       error_threshold;
 
102
  unsigned int filter_alternative_surround;
 
103
  double       filter_epsilon;
 
104
  unsigned int filter_iteration_count;
 
105
  double       filter_percent;
 
106
  unsigned int filter_secondary_surround;
 
107
  unsigned int filter_surround;
 
108
  boolean      keep_knees;
 
109
  double       line_reversion_threshold;
 
110
  double       line_threshold;
 
111
  double       reparameterize_improvement;
 
112
  double       reparameterize_threshold;
 
113
  double       subdivide_search;
 
114
  unsigned int subdivide_surround;
 
115
  double       subdivide_threshold;
 
116
  unsigned int tangent_surround;
 
117
} SELVALS;
 
118
 
 
119
#else
 
120
 
 
121
typedef struct
 
122
{
 
123
  double       align_threshold;
 
124
  double       corner_always_threshold;
 
125
  double       corner_surround;
 
126
  double       corner_threshold;
 
127
  double       error_threshold;
 
128
  double       filter_alternative_surround;
 
129
  double       filter_epsilon;
 
130
  double       filter_iteration_count;
 
131
  double       filter_percent;
 
132
  double       filter_secondary_surround;
 
133
  double       filter_surround;
 
134
  boolean      keep_knees;
 
135
  double       line_reversion_threshold;
 
136
  double       line_threshold;
 
137
  double       reparameterize_improvement;
 
138
  double       reparameterize_threshold;
 
139
  double       subdivide_search;
 
140
  double       subdivide_surround;
 
141
  double       subdivide_threshold;
 
142
  double       tangent_surround;
 
143
} SELVALS;
 
144
 
 
145
#endif /* 1 */
 
146
 
 
147
#endif /* not TYPES_H */