안녕하세요 저는 Delaunay_triangulation_2 및 Delaunay_triangulation_3을 사용하여 보간 할 점을 찾습니다.cgal triangulation_3 찾기 사용 방법은 무엇입니까?
Locate_type loc;
int li;
CgalPoint point(_params[0], _params[1]);
Face_handle handle = delaunay.locate(point, loc, li);
if(loc == Delaunay::VERTEX)
{
MyData data = _handle->vertex(_li)->info();
}
else if(loc == Delaunay::EDGE)
{
MyData data1 = handle->vertex(handle->cw(li))->info();
MyData data2 = handle->vertex(handle->ccw(li))->info();
}
else if(loc == Delaunay::FACE)
{
MyData data1 = handle->vertex(0)->info();
MyData data2 = handle->vertex(1)->info();
MyData data3 = handle->vertex(2)->info();
}
CW 및 CCW와 그 트릭은 나를 위해 직관적하지 않은 : 나는 Delaunay_triangulation_2에 대한 위치를 사용하는 방법을 발견했다. Triangulation_3를 사용하는 경우
은 내가 EDGE, FACET 및 VEREX 경우를
Locate_type loc;
int li,lj;
Cell_handle handle = delaunay.locate(point, loc, li, lj);
switch(loc)
{
case Delaunay::CELL:
{
for(int i = 0; i < 4 ; ++i)
MyData data = handle->vertex(i)->info();
break;
}
case Delaunay::EDGE:
case Delaunay::FACET:
case Delaunay::VERTEX:
assert(false);
}
내 테스트를 실행에 문제가 들로네 :: VERTEX가 Triangulation_2에서와 동일하게 동작하는 경우를 보여줍니다.
Triangulation_3은 다른 유형의 핸들을 제공하고 Triangulation_2를 제공합니다. 내가 여기 cw 및 ccw 트릭을 사용해야합니까?
문서 :
쿼리가면, 모서리 또는 정점, 그 경계에 가진 쿼리가 반환되는 셀 중 하나에 놓여있는 경우
. http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Triangulation_3_ref/Class_Triangulation_3.html
나는 (다른 뭔가가 다음 들로네 :: CELL을 반환 될 때 경우에) 내 쿼리 및 얼굴의 세 점을 가장자리의 두 점을 싶어. "경계에서 쿼리하는 셀 중 하나"에서 가져 오는 방법?
감사합니다. 위와 같은 코드 예는 정확하게 필요한 것입니다. – Dorian