У меня есть такая структура:
struct Rz3DContourNode {
float x;
float y;
float z;
float nx;
float ny;
float nz;
};
И я сохраняю элементы в векторе STL следующим образом:
std::vector < Rz3DContourNode > nodes;
Теперь я хочу изменить nx, ny-компонентузлов в векторе. Я попытался следующим образом:
*(&nodes[i].nx)=newNXValue;
*(&nodes[i].ny)=newNYValue;
*(&nodes[i].nz)=newNZValue;
Это не сработало. Это потому, что node [i] возвращает копию объекта?
Есть ли какое-то решение для этогоожидаете использовать указатели?
Я не могу использовать указатель (Rz3DContourNode *), потому что я использую этот вектор в OpenGL как
glNormalPointer(GL_FLOAT,sizeof(Rz3DContourNode), &nodes[0].nx);
РЕДАКТИРОВАТЬ - я извиняюсь. Я на самом деле держуQList и получайте std :: vector каждый раз. Это было причиной
std::vector<Rz3DContourNode> nodeVector = nodes.toVector().toStdVector();