Я делаю приложение, которое использует OpenGL и в настоящее время хранит массив объектов, которые должны отображаться в каждом кадре, который выглядит примерно так:
class Object {
private:
float x;
float y;
public:
void func1();
void func2();
...
};
Я бы хотел иметь возможность создать объект буфера вершин из массива этих объектов, но я не могу просто передать массив, так как класс содержит дополнительные функции, которых glBufferData
не ожидает.
Можно ли разделить класс объекта следующим образом:
class baseObject {
public:
float x;
float y;
};
class derivedObject : public baseObject {
public:
float x;
float y;
void func1();
void func2();
...
};
, а затем приведите массив derivedObjects
в массив baseObjects
, используя static_cast
или иным образом, который затем может быть передан glBufferData
? Или это единственный способ перебрать массив объектов, извлекая переменные x
и y
в отдельный массив, который затем может быть передан в glBufferData
?