From: Mathieu M. <mat...@gm...> - 2009-01-09 08:34:05
|
Hi David, On Thu, Jan 8, 2009 at 10:30 PM, David Piepgrass <dpi...@me...> wrote: > To be honest I didn't understand your original question, that's why I > didn't try to chime in. What is it exactly that you want to happen? Thanks so much for taking the time to answer. I'll try to explain myself (I've CC Chris, who is actually banging his head trying to also solve this issue). Basically I have the following piece of (pseudo) c++ code: Image image; char *buffer = new char[ image.getlength() ]; image.getbuffer( buffer ); // buffer now contains the value from the image Depending on the value of image.getscalartype() the buffer might contains floating (for example) point values. In C++, user is expected to do: float *f_buffer = (float*)buffer; float first_value = f_buffer[0]; Unfortunately I have wrapped the Image::getbuffer(char *buffer) function using a byte[]. And apparently in C# this is not possible to cast from one array type to the other. So my question is: 1. If float[], short[], char[] ... all share a common parent class, can I use this 'parent class' to wrap getbuffer ? 2. Or should I use generic to provide the user with a new method (in C# layer): Image::getarray_generic <T> ( T buffer[] ); any suggestion very welcome, Thanks, -- Mathieu |