I was wondering if you could clarify for me what types of data structures you are pointing to, because I could think of an application that this would solve.
For a while now, I was wondering how to include a wave packets transform in pd. The wave++ library has a wave packets transform, where the structure of the transform is provided as a tree, and the tree is a class. Could we make an external that does the wave packets transform and stores the tree, then passes a pointer to the tree to the next stage in processing. (I'm not suggesting to do this any time soon, I just thought of an example) Do you do similar things in GridFlow? What kinds of pointers do you think are necessary to handle?
Chuck
On 6/23/07, Mathieu Bouchard matju@artengine.ca wrote:
GEM, PDP, GridFlow, all use fake pointers. That is, pd defines A_POINTER as being a t_gpointer * and all of the above externals disregard this completely and send something else. It's because pd provides no other sensible means to send a pointer.
Older versions of GridFlow were sending a pointer as 2 floats of integer value, and I was going to make it 3 floats when beginning to support 64-bit, but thought that although misusing A_POINTER was more evil in my book, at least it's being done with passing only one atom around, and I'm also happy to be doing the same evil as everybody else too.
(I could have tried a plain reinterpret_cast<> so that it'd be 1 float in 32-bit or 2 floats in 64-bit, but I didn't want to think of the special float values such as +0, -0, +inf, -inf, NaN, denormals, and anything else. It could've been fine, but I didn't want to have to think about it.)
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada _______________________________________________ PD-dev mailing list PD-dev@iem.at http://lists.puredata.info/listinfo/pd-dev