bool lfModifier::AddSubpixelCallbackTCA (lfLensCalibTCA &model, bool reverse) { float tmp [2]; if (reverse) switch (model.Model) { case LF_TCA_MODEL_NONE: break; case LF_TCA_MODEL_LINEAR: for (int i = 0; i < 2; i++) { if (!model.Terms [i]) return false; tmp [i] = 1.0 / model.Terms [i]; } AddSubpixelCallback (ModifyCoord_UnTCA_Linear, 500, tmp, 2 * sizeof (float)); return true; case LF_TCA_MODEL_POLY3: AddSubpixelCallback (ModifyCoord_UnTCA_Poly3, 500, model.Terms, 6 * sizeof (float)); return true; default: // keep gcc 4.4+ happy break; } else switch (model.Model) { case LF_TCA_MODEL_NONE: break; case LF_TCA_MODEL_LINEAR: AddSubpixelCallback (ModifyCoord_TCA_Linear, 500, model.Terms, 2 * sizeof (float)); return true; case LF_TCA_MODEL_POLY3: AddSubpixelCallback (ModifyCoord_TCA_Poly3, 500, model.Terms, 6 * sizeof (float)); return true; default: // keep gcc 4.4+ happy break; } return false; }
bool lfModifier::AddSubpixelCallbackTCA (lfLensCalibTCA &model, bool reverse) { float tmp [2]; if (reverse) switch (model.Model) { case LF_TCA_MODEL_NONE: break; case LF_TCA_MODEL_LINEAR: for (int i = 0; i < 2; i++) tmp [i] = model.Terms [i]; AddSubpixelCallback (lfExtModifier::ModifyCoord_TCA_Linear, 500, tmp, 2 * sizeof (float)); return true; } else switch (model.Model) { case LF_TCA_MODEL_NONE: break; case LF_TCA_MODEL_LINEAR: for (int i = 0; i < 2; i++) { if (!model.Terms [i]) return false; tmp [i] = 1.0 / model.Terms [i]; } AddSubpixelCallback (lfExtModifier::ModifyCoord_UnTCA_Linear, 500, tmp, 2 * sizeof (float)); return true; } return false; }