0

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 の経験のある方からのアドバイスをいただければ幸いです。

4

2 に答える 2

1

MingW GCC-3.4.5 http://pastebin.com/uYnCepEYの下で (ついに!) Refine が動作する例を取得しました。

于 2011-05-18T02:39:19.857 に答える
1

作成者と話し合ったところ、これは GCC がライブラリの特定の部分をコンパイルする方法に問題があることがわかりました。詳細はわかりませんが、LLVMは問題なく、GCCは問題ありません。Linux では問題なく動作しますが、XCode で作業していたときに問題が発生しました。これはすぐには更新されないものなので、今のところ VCG メッシュ リファイニングは GCC 4.2 では機能していないようです。

于 2011-05-15T11:09:08.163 に答える