1 // Copyright 2002 David Hilvert <dhilvert@auricle.dyndns.org>,
2 // <dhilvert@ugcs.caltech.edu>
4 /* This file is part of the Anti-Lamenessing Engine.
6 The Anti-Lamenessing Engine is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 The Anti-Lamenessing Engine is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with the Anti-Lamenessing Engine; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 * See align.h for details on these variables.
27 int align::_exp_register
= 1;
29 ale_pos
align::scale_factor
;
31 transformation
align::orig_t
;
33 transformation
*align::kept_t
= NULL
;
34 int *align::kept_ok
= NULL
;
36 tload_t
*align::tload
= NULL
;
37 tsave_t
*align::tsave
= NULL
;
38 render
*align::reference
= NULL
;
39 filter::scaled_filter
*align::interpolant
= NULL
;
40 const image
*align::reference_image
= NULL
;
41 const image
*align::reference_defined
= NULL
;
42 const image
*align::weight_map
= NULL
;
43 image
*align::alignment_weights
= NULL
;
44 const image
*align::alignment_weights_const
= NULL
;
45 const char *align::wmx_file
= NULL
;
46 const char *align::wmx_exec
= NULL
;
47 const char *align::wmx_defs
= NULL
;
48 const char *align::fw_output
= NULL
;
49 double align::horiz_freq_cut
= 0;
50 double align::vert_freq_cut
= 0;
51 double align::avg_freq_cut
= 0;
52 transformation
align::latest_t
;
54 int align::latest
= -1;
56 int align::alignment_class
= 1;
57 int align::default_initial_alignment_type
= 0;
58 int align::perturb_type
= 0;
59 transformation
align::default_initial_alignment
;
60 int align::is_default
= 1;
61 int align::old_is_default
;
62 int align::is_fail_default
= 0;
63 transformation
align::old_initial_alignment
;
64 transformation
align::old_final_alignment
;
66 int align::channel_alignment_type
= 2;
67 float align::metric_exponent
= 2;
68 float align::match_threshold
= 0;
74 ale_pos
align::perturb_lower
= 0.125;
75 int align::perturb_lower_percent
= 0;
76 ale_pos
align::perturb_upper
= 14;
77 int align::perturb_upper_percent
= 1;
80 * XXX: These empirical observations may have been based on buggy code.
82 * Empirically, it's okay to use a level-of-detail equal to twice the
83 * resolution of the perturbation, so we set the default lod_max to 1, as
84 * 2^1==2. lod_max of zero seems okay also, but lower values seem to cause
88 int align::lod_max
= 1;
90 ale_pos
align::rot_max
= 32.0;
91 ale_pos
align::bda_mult
= 0.0001;
92 ale_pos
align::bda_rate
= 0.0004;
93 ale_accum
align::match_sum
= 0;
94 int align::match_count
= 0;
96 ale_pos
align::_mc
= 0;
97 int align::certainty_weights
= 0;
99 unsigned int align::_gs_mo
= 16;
100 int *align::ax_parameters
= NULL
;
101 int align::ax_count
= 0;
103 const point
**align::cp_array
= NULL
;
104 unsigned int align::cp_count
= 0;