У меня есть следующий struct
, который содержит элемент данных pixeldata_
, который является указателем на массив коротких целых.Размер этого массива: ширина * высота.
struct Frame
{
public:
const uint16_t* getPixelData()
{
return this->pixeldata_;
}
int getWidth() { return this->width_; }
int getHeight(){ return this->height_; }
void setPixelData(const uint16_t* pixeldata)
{
this->pixeldata_ = pixeldata;
}
int getSize(){ return this->width_*this->height_; }
private:
const uint16_t* pixeldata_{nullptr};
int width_ {0}; // typically 640 for our use case
int height_{0}; // typically 480 for our use case
};
Использование %include "stdint.i"
создает непрозрачный указатель типа SWIGTYPE_p_unsigned_short
, который я не могу разыменовать.Как я могу скопировать этот массив в контейнер Java выгодно ArrayList unsigned short
Итак, как бы я обернуть следующий код для Java и получить доступ к члену pixeldata_
и получить массив коротких целых из C ++слой в контейнеры Java?
Frame* Sensor::getFrame();
Frame* frame = getFrame();
auto pixel_data = frame->getPixelData();
for (auto pixel : pixel_data)
{
// possibly create an image or texture
}