[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) |
Hi,
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:
KeyLob
|
Frame
|
content
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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fenfire-dev] New interpolation system,
Benja Fallenstein <=