我已经获得了一些代码来阅读,这些代码对网格进行了一些几何操作。
根据定义,网格数据结构应至少包含有关点坐标、边缘连接性和面部信息的信息。
所以,给我的代码有定义顶点、边和面数据结构的类,分别命名为顶点、边和面。
然而网格类看起来像这样。
class basemesh
{
public:
/* Methods to operate on the protected data below.*/
protected:
/*! list of edges */
std::list<Edge*> m_edges;
/*! list of vertices */
std::list<Vertex*> m_verts;
/*! list of faces */
std::list<Face*> m_faces;
}
我的问题:为什么网格数据结构存储指针列表而不是相应对象本身的列表。
例如为什么不直接说 std::list<Vertex>
我已经看到在其他几个 C++ 代码中使用了这个结构
这与类的继承有关吗?或者它是否与迭代列表的性能有关?
顾名思义,这个 basemesh 类是派生其他专用网格的基类。