[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fenfire-dev] New interpolation system

From: Benja Fallenstein
Subject: [Fenfire-dev] New interpolation system
Date: Sat, 27 Nov 2004 05:22:03 +0100
User-agent: Mozilla Thunderbird 0.9 (X11/20041124)


I've committed an improved interpolation system (implemented only in AWT, GL works as before) to the darcs repository.

(If you don't know, I'm trying out darcs <http://darcs.net/> as a revision control system for the Fenfire codebase at the moment. So far it seems that darcs is MUCH MUCH better than CVS or Arch -- the darcs interface is very easy to get into and get productive with, and no nasty surprises so far.)

Basically, the idea of what's different is that coordinate systems that have not been added into the matcher are shown during interpolation, non-interpolated; only keyed coordinate systems are omitted during interpolation.

This means that for example you can place some text on the screen without giving it keys et cetera, and while the text won't be interpolated, if it is both in the source and target vob scene, it will look as if it is 'interpolated' if it doesn't change position. (If it does change position, it will jump.)

Now that's the idea. The devil is in the details:

- If the *parent* is keyed and interpolated, you want the child to move with the parent. (I mean the coorder parent(s) here, not the matching parent!) For example, if your non-keyed text is in a node and the node moves, the text needs to move with it. - If the parent is keyed and *not* interpolated, the child shouldn't be shown during interpolation. - We want to use this for the boxes around things, so that we can just add a box around something, and if the whole thing including the box is interpolated, then the box itself is interpolated. However, if we have this lob structure:


then we have a cs structure (in the coorder) something like this:

          box        <-- this cs has the key
        /  |  \
      /    |    \
    /      |      \
 trans   trans   trans
   |       |       |
  (bg) (content) (border)

The translations are necessary because we need to arrange the background, content, and border depth-wise.

However, the bg and border need to inherit the w and h of the box. We could place a box cs inside the trans cs, but then the w and h doesn't get interpolated! We need the w and h to be interpolated with the cs that has the key...

So it's kinda icky, but at least it works and makes working with lobs easier in many common cases.

- Benja

reply via email to

[Prev in Thread] Current Thread [Next in Thread]