Add preliminary code for stream evaluation.
[Ale.git] / d2 / align.cc
blobabbccede856164498edb9b215efaa09ba63313c8
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
21 #include "align.h"
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;
32 int align::_keep = 0;
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;
53 int align::latest_ok;
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;
65 int align::old_lod;
66 int align::channel_alignment_type = 2;
67 float align::metric_exponent = 2;
68 float align::match_threshold = 0;
71 * Upper/lower bounds
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
85 * problems.
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;
98 int align::_gs = 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;