geodesic_mesh — 3D geodesic op

• 데이터 종류: mesh → signal

• 호출: import fullseye as fs; fs.ledger.geodesic_mesh(vertices: numpy.ndarray, faces: numpy.ndarray, source: int) -> numpy.ndarray(구현을 직접 호출하려면 import geodesic3d; geodesic3d.geodesic_mesh(vertices: numpy.ndarray, faces: numpy.ndarray, source: int) -> numpy.ndarray, 원장에서 가져오려면 ops3d.get("geodesic_mesh"))

사용법

삼각 메시의 엣지 그래프에서 Dijkstra 로 source 에서 각 정점까지의 측지 거리. → (V,) float.

각 삼각형의 3 변 (0,1),(1,2),(2,0) 을 무향 변으로 모으고, (min,max) 로 유일화한 뒤 변의 길이 = 양 끝정점의 Euclid 거리를 가중치로 한 희소 그래프를 만들어, dijkstra(directed=False) 로 source 로부터의최단 경로 길이를 반환한다. d[source] = 0, source 와 변으로 이어지지 않는 정점은 inf. 단위는 정점 좌표의 단위.

• vertices: (V,3) 정점 좌표(float64 로 변환). faces: (M,3) 정점 첨자(int 로 변환).

• source: 시점 정점의 첨자.

• faces 가 비었을 때는 전체 정점 inf(source 가 범위 안이면 그곳만 0)를 반환하며, 예외는 내지 않는다.

구현상의 요점: csr_matrix 는 같은 (i,j) 를 중복해서 넘기면 가중치를 조용히 더하므로, 중복 면· 비다양체·감는 순서가 제각각인 메시에서도 거리가 부풀지 않도록 변을 유일화하고 있다. 퇴화 변(i==j)은버린다. 거리는 변을 따른 꺾은선 길이이므로, 거친 메시에서는 참 측지 거리보다 길어진다(변이 달리는 방식에의존하는 이방성). voxel_to_mesh 나 convex_hull 이 반환하는 (verts, faces) 를그대로 넘길 수 있다.

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• pcl_geodesic — py -3.11 examples_3d/pcl_geodesic.py

타입이 이어지는 다음 연산자(signal 를 입력으로 받는 것)

fuse_to_voxel

같은 카테고리(geodesic)

geodesic_distances · farthest_point_sampling · knn_graph


*Provenance: geodesic3d.py — 3D 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.