-std::vector<Tie_configuration_variation>
-Tie_formatting_problem::get_variations (Ties_configuration const &ties)
+vector<Tie_configuration_variation>
+Tie_formatting_problem::generate_extremal_tie_variations (Ties_configuration const &ties) const
+{
+ vector<Tie_configuration_variation> vars;
+ Direction d = DOWN;
+ do
+ {
+ if (boundary (ties, d, 0).dir_ == d
+ && !boundary (specifications_, d, 0).has_manual_position_)
+ for (int i = 1; i <= details_.multi_tie_region_size_; i++)
+ {
+ Tie_configuration_variation var;
+ var.index_ = (d == DOWN) ? 0 : ties.size () - 1;
+ var.suggestion_ = get_configuration (boundary (ties, d, 0).position_
+ + d * i, d,
+ boundary (ties, d, 0).column_ranks_);
+ vars.push_back (var);
+ }
+ }
+ while (flip (&d) != DOWN);
+
+ return vars;
+}
+
+
+vector<Tie_configuration_variation>
+Tie_formatting_problem::generate_collision_variations (Ties_configuration const &ties) const