【发布时间】:2014-02-04 15:11:01
【问题描述】:
我正在使用 VCG 库 我有一个私有构造函数,因为 Trimesh 无法复制到我的头文件 MyProcessing.h
class MyMesh : public vcg::tri::TriMesh< std::vector<MyVertex>, std::vector<MyFace> ,
std::vector<MyEdge> > {
private:
MyMesh(const TriMesh &mesh);
MyMesh operator= (const TriMesh &mesh);
};
而且我在我的 MeshProcessing.cpp 文件中调用它时遇到了很多麻烦 我想做的是在那里创建我的网格 这是我尝试过的
vcg::tri::TriMesh< std::vector<MyVertex>, std::vector<MyFace> , std::vector<MyEdge> > *t_mesh;
MyMesh vcgMesh =MyMesh::MyMesh(*t_mesh);
但编译器正在抱怨无法访问的元素
任何关于如何创建它的帮助将不胜感激
编辑1
private:
// TriMesh cannot be copied. Use Append (see vcg/complex/append.h)
TriMesh operator =(const TriMesh & /*m*/){assert(0);return TriMesh();}
TriMesh(const TriMesh & ){}
}; // end class Mesh
【问题讨论】:
-
你的 MyMesh 构造函数是做什么的?中间的代码块的上下文是什么?最后,为什么你的网格继承自 std::vector?
-
没有私人构造器的代码是从 VCG 库的文档页面诚实复制的。我认为 MyMesh 所做的事情以某种方式继承自 trimesh 定义我的三角网格将具有定义其边缘顶点和面(多边形)的向量更多它写在这里vcg.isti.cnr.it/~cignoni/newvcglib/html/basic_concepts.html
标签: c++ constructor compiler-errors private