Hi all,
I've been playing around with Pure Data data structures for the first time, and I've managed to create a simple struct with two float fields and instantiate the struct in a pd subpatch. However, I can't figure out how to create an array field in a struct (as in making a breakpoint envelope).
i.e.
I can create these by using the [append] object:
[struct point float x float y]
But I can figure out how to build these:
[ struct points array array1 point ]
Can someone point me in the right direction?
Thanks,
-Brendan
Hallo, Samuel Rye hat gesagt: // Samuel Rye wrote:
I've been playing around with Pure Data data structures for the first time, and I've managed to create a simple struct with two float fields and instantiate the struct in a pd subpatch. However, I can't figure out how to create an array field in a struct (as in making a breakpoint envelope).
i.e.
I can create these by using the [append] object:
[struct point float x float y]
But I can figure out how to build these:
[ struct points array array1 point ]
You create a "points" instance with [append] as well. The problem is, that [append] needs to set one field of the struct, when creating an instance through an incoming message. But you cannot set an array with a message directly, so you should extend your struct definition by at least one float variable. The implicit variables "x" or "y" come to mind.
So the solution is: you use [struct points float x array array1 point] instead of your defintion, and then append with [append points x].
Frank Barknecht _ ______footils.org_ __goto10.org__
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote:
You create a "points" instance with [append] as well. The problem is, that [append] needs to set one field of the struct, when creating an instance through an incoming message. But you cannot set an array with a message directly
Oh, I just found out, that you *can* indeed do this and create an array directly, as in attached patch. Pd warns "error: pd-points.array1: not a number", it ignores the value of that number, but still creates the array. For clarity I would still recommend to do as below:
so you should extend your struct definition by at least one float variable. The implicit variables "x" or "y" come to mind.
So the solution is: you use [struct points float x array array1 point] instead of your defintion, and then append with [append points x].
Frank Barknecht _ ______footils.org_ __goto10.org__
Ah, I got the same error! I didn't check if it actually created it though. I'll just extend the struct though, that seems cleaner.
Cheers!
-Brendan
On 7/8/07, Frank Barknecht fbar@footils.org wrote:
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote:
You create a "points" instance with [append] as well. The problem is, that [append] needs to set one field of the struct, when creating an instance through an incoming message. But you cannot set an array with a message directly
Oh, I just found out, that you *can* indeed do this and create an array directly, as in attached patch. Pd warns "error: pd-points.array1: not a number", it ignores the value of that number, but still creates the array. For clarity I would still recommend to do as below:
so you should extend your struct definition by at least one float variable. The implicit variables "x" or "y" come to mind.
So the solution is: you use [struct points float x array array1 point] instead of your defintion, and then append with [append points x].
Ciao
Frank Barknecht _ ______footils.org_ __goto10.org__
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list