2012-04-26 5 views
1

Delaunay三角形分割を行った後に色にアクセスできるように、CGALのPoint_3クラスに色変数(符号なしの文字)を追加しようとしています。私が実際に達成したい何CGALのPointクラスに変数を追加する

私が試してみましたが、このような色を保存するためにTriangulation_vertex_base_with_info_3を使用している(http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Triangulation_3/Chapter_main.html#Subsection_39.5.3での例を以下)

typedef CGAL::Exact_predicates_inexact_constructions_kernel K; 
typedef CGAL::Triangulation_vertex_base_with_info_3<unsigned char, K> Vb; 
typedef CGAL::Triangulation_data_structure_3<Vb> Tds; 
typedef CGAL::Delaunay_triangulation_3<K, Tds> Triangulation; 
typedef Triangulation::Point CGAL_Point; 

//... 
//here I make a vector of pairs of points and their color 

std::vector<std::pair<CGAL_Point, unsigned char> > points; 

Point currentPoint; 
for (int i=0; i<roiPoints.size(); i++){ 
    currentPoint=roiPoints[i]; 
    points.push_back(std::make_pair(CGAL_Point(currentPoint.x, currentPoint.y, currentPoint.z), roiColors[i])); 
} 

//... 
//triangulation 
T.clear(); 
T.insert(points.begin(), points.end()); 

は、三角測量によって、頂点の色にアクセスできるようにすることです::三角測量を行った後の四面体クラス。

私は(x、y、z)に点Pがあるとしましょう。三角形分割の後、私はこの点Pを含む四面体tを見つけ、この四面体の頂点にアクセスすることができます(t.vertex(0..3)を使用)。これは、Point_3型の頂点を返し、以前に保存した色にはアクセスできません。

これを行う方法は、色情報を含む独自のPointクラスを作成することです。簡単ですが、Point_3の代わりにこのクラスを使用する方法を理解していません。私はこれを行うための自分のカーネルと、http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Kernel_23/Chapter_main.html#Section_11.5の例を書かなければならないが、カーネルをベースクラスとして使うべきか、私のカーネルはどんな機能を含むべきかを理解できない。

は私もstackoverflowの時にここに2つの類似のトピックを見つけました: Customizing CGAL Kernel with my own Point classCGAL: Inheritance and the kernel しかし、彼らは私を助けていませんでした。

ありがとうございました!

答えて

1

あなたの説明から、私は単に頂点クラスの中に色を追加する必要があると思います。 見つけたら、シンプレックスがあり、頂点の中の色にアクセスすることができます。

hereの例を参照してください。

+0

頂点の色を設定するためにリンクした例を使用しましたが(私が付けたコードを参照してください)、私はTetrahedronを通して色にアクセスできませんでした。どうすればより具体的にできますか?ありがとうございました! – ppalasek

+0

私はそれを理解しました! Cell_iterator ci = T.locate(CGAL_Point(x、y、z));今度は、ci-> vertex(index) - > info()を使って色にアクセスできます(index = 0..3)。私はcell_iteratorから頂点にアクセスできるかどうかわかりませんでした。ありがとうございました! – ppalasek

関連する問題