[squeak-dev] Passing array of float from Squeak to C

Yoshiki Ohshima yoshiki at vpri.org
Fri Feb 20 20:50:14 UTC 2009


At Fri, 20 Feb 2009 12:44:23 -0800,
Joshua Gargus wrote:
> 
> [1  <multipart/alternative (7bit)>]
> [1.1  <text/plain; ISO-8859-1 (7bit)>]
> 
> [1.2  <text/html; ISO-8859-1 (7bit)>]
> Yoshiki Ohshima wrote:
> 
>     At Fri, 20 Feb 2009 03:11:20 -0800 (PST),
>     Ang Beepeng wrote:
> 
>         I'm facing problem to pass a float array over to C, to create a plugin. 
>         
>         Previously, I use variableWordSubclass: to create a class to store floats,
>         in an array. It works fine, as floats are stored as words.
>         Now that I need to have an instance variable, I use variableSubclass: to
>         store floats. It seems like floats are being stored as object in the array
>         this time. The VM crashes when I try to use to same method to access to the
>         float array.
> 
>       To get a Float object and use the value in C, use #floatValueOf:.
>     Look at the senders of the method for examples.
> 
> I'm not sure that this is the right thing, since each Float represents a double-precision floating point number, and the
> contents of FloatArray are single-precision.

> I would look at the primitives in CroquetPlugin, which you can find in an OpenCroquet or Cobalt image.  For example, #
> primitiveTransformVector3 transforms a 3-element vector by a 4x4 matrix.  Matrix4x4 and Vector3 are both subclasses of
> FloatArray.

  Yes, I may be just misunderstanding what he wants.  Though, he did
have a variant of MatrixPlugins that manipulates FloatArrays already,
and now going to have some additional data involved in the
computation.  So I thought he want to have a way to get that
additional data that is stored as Squeak's Float.

> This might still not be answering your question directly (since you are talking about adding inst-vars to a
> 'variable-word' class).  My suggestion would be add another inst-var to hold a separate FloatArray object which contains
> your floating point data.

  Yes, that would do, too.

-- Yoshiki



More information about the Squeak-dev mailing list