Beispiel #1
0
void
TSHPath::Undecorate(LPTSTR pszPath)
{
  static TModuleProcV1<LPTSTR>
         undecorate(GetModule(), UndecorateStr);
  undecorate(pszPath);
}
path
edit_env_rep::get_animation_ip (path ip) {
  ip= undecorate (ip);
  path aip= search_animation_ip (ip);
  if (!is_nil (aip)) return aip;
  aip= search_longest_ip (ip);
  if (is_nil (aip)) return aip;
  tree t= subtree (the_et, reverse (aip));
  blackbox bb= close_box<player> (player ());
  (void) tree_addendum_new (t, ADDENDUM_PLAYER, bb, false);
  return aip;
}
void
concater_rep::typeset_anim_accelerate (tree t, path ip) {
  if (N(t) != 2) { typeset_error (t, ip); return; }
  path uip= undecorate (ip);
  while (!has_subtree (the_et, reverse (uip))) uip= uip->next;
  player apl= get_player (uip);
  if (!is_nil (uip) && !has_player (uip)) {
    path aip= search_animation_ip (uip);
    player pl = is_nil (aip)? player (): get_player (aip);
    apl= accelerate (pl, t[1]);
    tree st= subtree (the_et, reverse (uip));
    blackbox bb= close_box<player> (apl);
    (void) tree_addendum_new (st, ADDENDUM_PLAYER, bb, false);
  }
  box b= typeset_as_concat (env, t[0], descend (ip, 0));
  apl->set_duration (b->anim_duration ());
  array<box> bs;
  bs << b;
  print (composite_box (ip, bs));
}