gnome-mag
magnifier-main.c
Go to the documentation of this file.
00001 /*
00002  * AT-SPI - Assistive Technology Service Provider Interface
00003  * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
00004  *
00005  * Copyright 2001 Sun Microsystems Inc.
00006  *
00007  * This library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Library General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2 of the License, or (at your option) any later version.
00011  *
00012  * This library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  * Library General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Library General Public
00018  * License along with this library; if not, write to the
00019  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00020  * Boston, MA 02111-1307, USA.
00021  */
00022 
00023 #include "config.h"
00024 #include "magnifier.h"
00025 #include "magnifier-private.h"
00026 #include "zoom-region.h"
00027 #include "gmag-graphical-server.h"
00028 #include "GNOME_Magnifier.h"
00029 
00030 #include <unistd.h>
00031 
00032 #include <string.h>
00033 #include <stdlib.h>
00034 #include <sys/time.h>
00035 
00036 #include <gdk/gdk.h>
00037 #include <gdk/gdkx.h>
00038 #include <gtk/gtk.h>
00039 
00040 #include <libbonobo.h>
00041 
00042 #define ENV_STRING_MAX_SIZE 128
00043 
00044 GNOME_Magnifier_ZoomRegion zoom_region;
00045 
00046 typedef struct {
00047         gchar    *target_display;
00048         gchar    *source_display;
00049         gchar    *cursor_set;
00050         gchar    *smoothing_type;
00051         gdouble   zoom_factor;
00052         gdouble   zoom_factor_x;
00053         gdouble   zoom_factor_y;
00054         gint      refresh_time;
00055         gint      mouse_poll_time;
00056         gint      cursor_size;
00057         gdouble   cursor_scale_factor;
00058         gint64    cursor_color;
00059         gboolean  vertical_split;
00060         gboolean  horizontal_split;
00061         gboolean  fullscreen;
00062         gboolean  mouse_follow;
00063         gboolean  invert_image;
00064         gboolean  no_initial_region;
00065         gint      timing_iterations;
00066         gboolean  timing_output;
00067         gint      timing_delta_x;
00068         gint      timing_delta_y;
00069         gint      timing_pan_rate;
00070         gboolean  smooth_scroll;
00071         gint      border_width;
00072         gint64    border_color;
00073         gboolean  test_pattern;
00074         gboolean  is_override_redirect;
00075         gboolean  ignore_damage;
00076 #ifdef HAVE_COMPOSITE
00077         gboolean   ignore_composite;
00078 #endif /* HAVE_COMPOSITE */
00079         gboolean  print_version;
00080         gboolean  hide_pointer;
00081         gboolean  show_crosswires;
00082 } MagnifierOptions;
00083 
00084 static MagnifierOptions global_options = { NULL,      /* target_display */
00085                                            NULL,      /* source_display */
00086                                            "default", /* cursor_set */
00087                                            "none",    /* smoothing_type */
00088                                            2.0,       /* zoom_factor */
00089                                            0.0,       /* zoom_factor_x */
00090                                            0.0,       /* zoom_factor_y */
00091                                            500,       /* refresh_time */
00092                                            50,        /* mouse_poll_time */
00093                                            0,         /* cursor_size */
00094                                            0.0F,      /* cursor_scale_factor */
00095                                            0xFF000000,/* cursor_color */
00096                                            0,         /* vertical_split */
00097                                            0,         /* horizontal_split */
00098                                            0,         /* fullscreen */
00099                                            0,         /* mouse_follow */
00100                                            0,         /* invert_image */
00101                                            0,         /* no_initial_region */
00102                                            0,         /* timing_iterations */
00103                                            0,         /* timing_output */
00104                                            10,        /* timing_delta_x */
00105                                            10,        /* timing_delat_y */
00106                                            0,         /* timing_pan_rate */
00107                                            1,         /* smooth_scroll */
00108                                            0,         /* border_width */
00109                                            0,         /* border_color */
00110                                            0,         /* test_pattern */
00111                                            0,         /* is_override_redirect*/
00112                                            0          /* ignore_damage */
00113 #ifdef HAVE_COMPOSITE
00114                                            ,0         /* ignore_composite */
00115 #endif /* HAVE_COMPOSITE */
00116                                            ,0,        /* print_version */
00117                                            0,         /* hide_pointer */
00118                                            0          /* show_crosswires */ 
00119                                          };
00120 
00121 static GOptionEntry magnifier_options [] = {
00122         {"target-display", 't', 0, G_OPTION_ARG_STRING, &global_options.target_display, "specify display on which to show magnified view", NULL},
00123         {"source-display", 's', 0, G_OPTION_ARG_STRING, &global_options.source_display, "specify display to magnify", NULL},
00124         {"cursor-set", 0, 0, G_OPTION_ARG_STRING, &global_options.cursor_set, "cursor set to use in target display", NULL},
00125         {"cursor-size", 0, 0, G_OPTION_ARG_INT, &global_options.cursor_size, "cursor size to use (overrides cursor-scale-factor)", NULL},
00126         {"cursor-scale-factor", 0, 0, G_OPTION_ARG_DOUBLE, &global_options.cursor_scale_factor, "cursor scale factor", NULL},
00127         {"cursor-color", 0, 0, G_OPTION_ARG_INT64, &global_options.cursor_color, "cursor color (applied to \'black\' pixels)", NULL},
00128         {"vertical", 'v', 0, G_OPTION_ARG_NONE, &global_options.vertical_split, "split screen vertically (if target display = source display)", NULL},
00129         {"horizontal", 'h', 0, G_OPTION_ARG_NONE, &global_options.horizontal_split, "split screen horizontally (if target display = source display)", NULL},
00130         {"mouse-follow", 'm', 0, G_OPTION_ARG_NONE, &global_options.mouse_follow, "track mouse movements", NULL},
00131         {"refresh-time", 'r', 0, G_OPTION_ARG_INT, &global_options.refresh_time, "minimum refresh time for idle, in ms", NULL},
00132         {"mouse-latency", 0, 0, G_OPTION_ARG_INT, &global_options.mouse_poll_time, "maximum mouse latency time, in ms", NULL},
00133         {"zoom-factor", 'z', 0, G_OPTION_ARG_DOUBLE, &global_options.zoom_factor, "zoom (scale) factor used to magnify source display", NULL}, 
00134         {"invert-image", 'i', 0, G_OPTION_ARG_NONE, &global_options.invert_image, "invert the image colormap", NULL}, 
00135         {"no-initial-region", 0, 0, G_OPTION_ARG_NONE, &global_options.no_initial_region, "don't create an initial zoom region", NULL},
00136         {"timing-iterations", 0, 0, G_OPTION_ARG_INT, &global_options.timing_iterations, "iterations to run timing benchmark test (0=continuous)", NULL},
00137         {"timing-output", 0, 0, G_OPTION_ARG_NONE, &global_options.timing_output, "display performance ouput", NULL},
00138         {"timing-pan-rate", 0, 0, G_OPTION_ARG_INT, &global_options.timing_pan_rate, "timing pan rate in lines per frame", NULL},
00139         {"timing-delta-x", 0, 0, G_OPTION_ARG_INT, &global_options.timing_delta_x, "pixels to pan in x-dimension each frame in timing update test", NULL},
00140         {"timing-delta-y", 0, 0, G_OPTION_ARG_INT, &global_options.timing_delta_y, "pixels to pan in y-dimension each frame in timing update test", NULL},
00141         {"smoothing-type", 0, 0, G_OPTION_ARG_STRING, &global_options.smoothing_type, "image smoothing algorithm to apply (bilinear-interpolation | none)", NULL},
00142         {"fullscreen", 'f', 0, G_OPTION_ARG_NONE, &global_options.fullscreen, "fullscreen magnification, covers entire target display [REQUIRES --source-display and --target-display]", NULL},
00143         {"smooth-scrolling", 0, 0, G_OPTION_ARG_NONE, &global_options.smooth_scroll, "use smooth scrolling", NULL},
00144         {"border-size", 'b', 0, G_OPTION_ARG_INT, &global_options.border_width, "width of border", NULL},
00145         {"border-color", 'c', 0, G_OPTION_ARG_INT64, &global_options.border_color, "border color specified as (A)RGB 23-bit value, Alpha-MSB", NULL},
00146         {"hide-pointer", 0, 0, G_OPTION_ARG_NONE, &global_options.hide_pointer, "hide magnifier pointer when passed", NULL},
00147         {"show-crosswires", 0, 0, G_OPTION_ARG_NONE, &global_options.show_crosswires, "show crosswires when passed", NULL},
00148         {"use-test-pattern", 0, 0, G_OPTION_ARG_NONE, &global_options.test_pattern, "use test pattern as source", NULL},
00149         {"override-redirect", 0, 0, G_OPTION_ARG_NONE, &global_options.is_override_redirect, "make the magnifier window totally unmanaged by the window manager", NULL},
00150         {"ignore-damage", 0, 0, G_OPTION_ARG_NONE, &global_options.ignore_damage, "ignore the X server DAMAGE extension, if present", NULL},
00151 #ifdef HAVE_COMPOSITE
00152         {"ignore-composite", 0, 0, G_OPTION_ARG_NONE, &global_options.ignore_composite, "ignore the X server COMPOSITE extension, if present", NULL},
00153 #endif /* HAVE_COMPOSITE */
00154         {"version", 0, 0, G_OPTION_ARG_NONE, &global_options.print_version, "print version", NULL},
00155         {NULL}
00156 };
00157 
00158 static void
00159 init_rect_bounds (GNOME_Magnifier_RectBounds *bounds,
00160                   long x1, long y1, long x2, long y2)
00161 {
00162         bounds->x1 = x1;
00163         bounds->y1 = y1;
00164         bounds->x2 = x2;
00165         bounds->y2 = y2;
00166 }
00167 
00168 static int target_width, target_height;
00169 
00170 static int
00171 magnifier_main_test_image (gpointer data)
00172 {
00173         static long timing_counter = 0;
00174         static int timing_x_pos = 0;
00175         static int timing_y_pos = 0;
00176         static int x_direction = 1;
00177         static int y_direction = 1;
00178         Magnifier *magnifier = (Magnifier *) data;
00179         GNOME_Magnifier_ZoomRegionList *zoom_regions;
00180         Bonobo_PropertyBag properties;
00181         CORBA_Environment ev;
00182         GNOME_Magnifier_RectBounds roi;
00183         int x_roi, y_roi;
00184         
00185         /* Only iterate the number of times specified */
00186         if (global_options.timing_iterations > 0) {
00187                 if (timing_counter > global_options.timing_iterations) {
00188                         CORBA_exception_init (&ev);
00189                         properties = GNOME_Magnifier_ZoomRegion_getProperties (zoom_region, &ev);
00190                         if (BONOBO_EX (&ev))
00191                                 fprintf (stderr, "EXCEPTION\n");
00192 
00193                         bonobo_pbclient_set_boolean (properties, "exit-magnifier",
00194                                        TRUE, &ev);
00195                 }
00196         }
00197 
00198         CORBA_exception_init (&ev);
00199 
00200         x_roi  = global_options.timing_delta_x * timing_x_pos;
00201         roi.x1 = x_roi;
00202         roi.x2 = (target_width / global_options.zoom_factor) + roi.x1;
00203         x_roi  = global_options.timing_delta_x * (timing_x_pos + x_direction);
00204 
00205         /* Determine if magnifier hit an edge and should reverse direction */
00206         if (x_roi + (target_width / global_options.zoom_factor) > target_width)
00207                 x_direction = -1;
00208         else if (x_roi < 0)
00209                 x_direction = 1;
00210 
00211         timing_x_pos += x_direction;
00212 
00213         y_roi = global_options.timing_delta_y * timing_y_pos;
00214 
00215         /* Calculate size of screen not covered by magnifier */
00216         if (global_options.horizontal_split)
00217                 roi.y1 = y_roi + target_height;
00218         else
00219                 roi.y1 = y_roi;
00220         roi.y2 = (target_height / global_options.zoom_factor) + roi.y1;
00221 
00222         y_roi = global_options.timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d2cea8ae9c76">timing_delta_y * (timing_y_pos + y_direction);
003">fierOptions.html#a2a0ccfc882c403b2bae0d