Re: What do you want out of a path API?
Re: What do you want out of a path API?
- Subject: Re: What do you want out of a path API?
- From: Peter Litwinowicz <email@hidden>
- Date: Tue, 07 Sep 2010 11:11:31 -0700
- Thread-topic: What do you want out of a path API?
> FxPlug Developers,
>
> One set of functions I'm not sure is useful is the functions for getting the
> length of 1 segment of a path,
Oh, we use this all the time. In our warper, we want to align segments of a
spline to another segment of a spline. So we need to be able to evaluate
each segment of a spline independently.
For us it is necessary to be able to get "checkpoints" along the spline, and
we use control points to do that.... In essence we see each segment of a
spline as something to use a "primitive" to match to another segment on
another spline... Not just along the whole spline itself. That said, we also
need to know the length of the spline in order to evaluate at discreet
points along the spline approximately a pixel apart for drawing, warping,
etc.
>
> Looking at our internal use of paths, it seems much more frequent that we need
> to get a point which is some percentage along a path. For example, if you're
> doing a stroke over time, and you know you're 38% through your time, you want
> to know the point that is 38% along the path.
Yes, we need that too, in order to evaluate at regular distances along the
spline. But we need to be able to evaluate percentages of each segment too
(see above paragraph!).
We need to be able to get each vertex, we need to be able to evaluate points
along the curve: and that includes by equal spacing in the output space, and
by equal spacing in the parameter space (which are not the same thing!). We
do lots of matching up of evaluate points along a spline segment to a
corresponding place on another spline segment.. And doing that in the
parameter space is pretty much useless.. You want to match up things based
on their distance in the output (screen space!).
>
> Also, do you need to know the mode of the mask? (Add, Subtract, etc.) It seems
> like in most cases you're drawing something rather than actually rendering the
> mask and applying it in some way, since that's what the app does for you. But
> if that functionality is useful, let me know.
Oh, that is useful. Why leave it out? :-) It's just a call to implement
and query the status of the mask, right?
>
> So if you're using paths in your plugins for other platforms, please let me
> know what you think of the above questions, and also if there's something
> missing from other APIs that you'd like to see, let me know!
We also need to be able to evaluate splines at differing points in time.
We also need to be able to attach our own parameters to each spline
(checkboxes, menus, floating point sliders, etc.). We can live with each
spline getting the same set (that is, we don't need to vary the set of
params per spline, just per plugin!).
As far as UI goes, I also believe that you should attach splines to the
individual plugin instances, so there is no doubt as to "who" owns the
plugin (the masking interface of Motion, the plugin, which plugin, etc.) .
The After Effects UI model is all wrong. You should really look at the
Combustion model for the UI (Ummm, Guido should be able to help you there
:-))
It would be helpful if we could programmatically change the drawing color of
the spline. It is also necessary to be able to programmatically make
individual splines invisible or not (for example, when warping or morphing,
you'll have two splines for each primitive: a "src" spline and a "dest"
spline, and it is necessary for the user to be able to see only one set (all
src or all dest splines) at a time. We normally have a button in our
plugin's UI where we can do internally within he plugin).
It would be helpful if we could copy and create a duplicate of a spline, so
that when the user creates a source or dest spline, that we can
automatically create the other one. It would be useful to programmatically
copy keyframes from one spline to another (for similar reasons). It would
also be useful to delete vertices internally and add vertices
programmatically. So that if one spline of a pair has a vertex added by the
user that we can add a vertex in the corresponding place on the other spline
automatically (by us internally).
When cutting and pasting splines between plugins, you should bring along all
the per-spline params, unless it is a differing plugin... Then just
cut-and-paste the geometry portion (and with keyframes, if animated).
It would be useful for the user if you could attach trackers to control
points of the spline (trackers anyone? :-))
I'm sure I'll think of more things... Call me if you want to talk about
this.
Pete
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Pro-apps-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden