我正在写一个小型玩具游戏引擎,使用Tinyobjloader来加载.obj文件。我存储顶点数据和所有使用glm :: vecX来使事情更容易。std :: vector <float> to std :: vector <glm::vecX>没有复制
Tinyobjloader给我一个std::vector<float>
,当我想要一个std::vector<glm::vecX>
。我怎么做,而不复制?
要清楚,glm::vecX
是一个简单的结构,其中包含例如float
成员x, y, z
。
我在想,因为结构可以表现得像数组一样,std::move会工作,但没有运气。
谢谢!
编辑: 我知道我对此并不清楚,对不起。我想要将std::vector<float>
转换为std::vector<glm::vecX>
或将其作为std::vector<glm::vecX>&
传递。
使用std::memcpy
复制数据可以正常工作,但它复制了我希望避免的数据。
你必须创建自己的函数来实现这一(它的成本你1) –
是什么glm :: vecX'的定义? –
成员'x','y'和'z'的类型是什么?相应的“float”值应该是多少? –