[英]Two vectors with same data but different types
我正在执行流程可视化任务,需要以某种方式分析数据。 该可视化由其他人编写,并且期望包含数据的GLFloat向量。 但是,我更喜欢具有如下所示的类结构。 有什么方法可以在不复制数据的情况下实现此目的(例如联合)?
struct Vertex
{
math::vec3 pos;
float time;
float velocity;
};
class Pathline
{
std::vector<Vertex> points;
};
//these have the same data
std::vector<Pathline> lines;
std::vector<GLfloat> lineData;
谢谢
从您的示例中,我想到了几个问题:
可能您可以将您的结构改写为以下内容:
struct Vertex
{
GLfloat[3] pos;
GLfloat time;
GLFloat velocity;
};
std::vector<Vertex> lineVertexData;
std::vector<GLfloat> lineData;
而且,如果您还有其他外部数据来定义路径,则可以再走一步。
一切都取决于您要完成“哲学上正确的” C ++代码的程度。 有时候用OpenGL很难实现。
一旦两个结构等效,就可以在它们之间转换指针/引用。 但是,这种等效并不容易。
回答您的问题:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.