VCG ライブラリでトリメッシュの改良を行った人はいますか? タグとして追加しますが、まだ十分な評判がありません。洗練されたライブラリのいずれかを含めるたびに、次のエラーが発生します。
../../../addons/ofxVCGLib/vcglib/vcg/complex/trimesh/refine.h:880:0
../../../addons/ofxVCGLib/vcglib/vcg/complex/trimesh/refine.h:880: error: expected
unqualified-id before numeric constant
これはこの行にあります:
typename TRIMESH_TYPE::FacePointer FF0;
それを含む定義 (巨大な c/p を許してください) は次のようになります。
template<class TRIMESH_TYPE, class CenterPoint>
void TriSplit(typename TRIMESH_TYPE::FacePointer f,
typename TRIMESH_TYPE::FacePointer f1,typename TRIMESH_TYPE::FacePointer f2,
typename TRIMESH_TYPE::VertexPointer vB, CenterPoint Center)
{
私の頂点、面、およびメッシュは次のように宣言されています。
class innerMeshFace:public Face<myTypes, face::FFAdj, face::Mark, face::VertexRef, face::BitFlags, face::Normal3f, face::InfoOcf> {
};
class myVertex:
public Vertex<myTypes, vertex::Coord3f, vertex::BitFlags, vertex::TexCoord2f, vertex::Normal3f, vertex::Mark, vertex::Color4b, vertex::VFAdj, vertex::InfoOcf>
{}
class myMesh:public tri::TriMesh< vector<myVertex>, vector<innerMeshFace> > { }
誤解しているものがあるかどうかはわかりません。コードの他の場所で myMesh::FacePointer を使用していますが、テンプレートの山に欠けているものがあると思います。これは、refine.h をインクルードしようとするまでは正常に動作します (つまり、コンパイルして、想定どおりに動作します)。VCG の経験のある方からのアドバイスをいただければ幸いです。