2016. 1. 12. 23:04

SoRayPickAction은 View Volume 의 near 평면에서 점을 통해 카메라로부터 광선을 따라 물체를 찾는다

이 광선은 전형적으로 윈도우-공간 픽셀의 좌표를 줌으로써 구체화된다

SoRayPickAction은 액션을 적용한 신 그래프를 순환한다

그 후에 가장 가까운 거부터 가장 먼 거까지 정렬된, 찍은 광선을 따라 모든 도형에 대한 경로를 리턴한다

찍는 액션은 주로 지오메트리, 변형, 모양 노드에 관심있다


SoSelection 노드는 자동적으로 객체를 찍는다



* Picking Style

- 디폴트로 신 그래프에서 모든 물체는 찍음 가능하다

- 심지어 투명하거나 안 보이는 물체도 가능하다

- 찍음 액션에 보이지 않는 객체의 그룹 또는 물체를 만들기 위해

SoPickStyle 을 신 그래프에 삽입하고, style 필드를 UNPICKABLE로 설정

_ SHAPE, BOUNDING_BOX


- 액션의 인스턴스 생성


* SoRayPickAction 의 인스턴스 생성 예제


SbViewportRegion viewport;

SoRayPickAction pickAction(viewport);


뷰 포트 영역은 SoText2와 같은 스크린 정렬 물체에 대한 경계 박스를 계산하기 위해 사용


* 파라미터 설정


- 찍음 액션을 적용하기 전에 다음 파라미터를 설정할 수 있음

- 찍을 광선

- 오직 가까운 물체만 리턴할지 또는 광선에 따른 모든 물체를 리턴할지


- 찍음 광선은 두 방법 중에 하나로 구체화할 수 있다.

- 윈도우 점과 반경을 구체화 하든지

- 점과 세계 공간에 대한 방향을 구체화 하든지

- 첫 번째 방법이 상호 작용 프로그램에 대해 더 전형적이다

- 왜냐하면 일반적으로 커서 아래의 영역에 대부분 관심이 있기 때문


* 윈도우 점을 가진 찍음 광선 구체화

- setPoint(), setRadius() 함수를 찍음 광선을 설정하기 위해 사용