让我们创建三个类:
Vector3d 类:
class Vector3d{
int a,b,c;
}
Class Face,每个Face包含3个向量:
class Face{
Vector3d *a, *b, *c;
}
和类网格(3d 对象):在类网格中,我只能获取面的向量,但是 Vector3d 类的大多数对象将在许多面之间共享,所以我想将 Vector3d 存储在 Mesh 类中,并仅将指针存储在人脸对象;
class Mesh{
std::vector<Vector3d> points;
std::vector<Face> faces;
}
问题是,我不明白什么时候应该删除 Face 类中的指针,我应该使用其他东西而不是这个吗?
编辑: 3 int 只是为了解释我的概念,在最终版本中 Vector3d 类中会有更多数据
答案 0 :(得分:6)
Face
应该存储索引,而不是指针。
IE。 Face
应该有三个成员:
unsigned a,b,c;
如果您添加/删除/调整 Vector3d
向量,索引是安全的。
它还允许您以更方便的方式在人脸之间共享点。
这也意味着您可以将 faces
向量的内容直接复制到 Graphics API 缓冲区(假设类型匹配)。