Re: What do you want out of a path API?
site_archiver@lists.apple.com Delivered-To: pro-apps-dev@lists.apple.com Thread-index: ActOuBj3euzOPggq+kyg3RdEBi7mvw== Thread-topic: What do you want out of a path API? User-agent: Microsoft-Entourage/12.26.0.100708
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 (Pro-apps-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/pro-apps-dev/site_archiver%40lists.ap... This email sent to site_archiver@lists.apple.com
participants (1)
-
Peter Litwinowicz