メッシュに対していくつかの幾何学的操作を行う読み取りコードが与えられました。
定義上、メッシュ データ構造には、少なくともポイントの座標、エッジの接続性、面の情報に関する情報が含まれている必要があります。
したがって、私に与えられたコードには、頂点、エッジ、面のデータ構造を定義するクラスがあり、それぞれ頂点、エッジ、面と名付けられています。
ただし、メッシュ クラスは次のようになります。
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 クラスは、名前が示すように、他の特殊なメッシュが派生する基本クラスです。