Qt3DRender::QObjectPicker Class
class Qt3DRender::QObjectPickerQObjectPicker 클래스는 ‘피킹(picking)’이라고 하는 과정을 통해 QEntity와 상호 작용하는 데 사용할 수 있는 컴포넌트를 인스턴스화합니다. 더 보기...
| 헤더: | #include <qobjectpicker.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| QML에서: | ObjectPicker |
| 상속: | Qt3DCore::QComponent |
| 상태: | 사용 중단됨 |
이 클래스는 더 이상 사용되지 않습니다. 새로운 코드에서는 이 클래스를 사용하지 않는 것을 강력히 권장합니다.
속성
|
공개 함수
| bool | containsMouse() const |
| bool | isDragEnabled() const |
| bool | isHoverEnabled() const |
| bool | isPressed() const |
| int | priority() const |
공개 슬롯
| void | setDragEnabled(bool dragEnabled) |
| void | setHoverEnabled(bool hoverEnabled) |
| void | setPriority(int priority) |
신호
| void | clicked(Qt3DRender::QPickEvent *pick) |
| void | containsMouseChanged(bool containsMouse) |
| void | dragEnabledChanged(bool dragEnabled) |
| void | entered() |
| void | exited() |
| void | hoverEnabledChanged(bool hoverEnabled) |
| void | moved(Qt3DRender::QPickEvent *pick) |
| void | pressed(Qt3DRender::QPickEvent *pick) |
| void | pressedChanged(bool pressed) |
| void | priorityChanged(int priority) |
| void | released(Qt3DRender::QPickEvent *pick) |
상세 설명
뷰포트와 카메라의 모든 조합에 대해, 피킹은 씬을 가로질러 광선을 투사하여 바운딩 볼륨이 해당 광선과 교차하는 엔티티를 찾습니다. 바운딩 볼륨은 지오메트리의 boundingVolumePositionAttribute로 지정된 속성 버퍼의 값을 사용하여 계산됩니다.
pickAttribute 속성으로 정의된 바운딩 볼륨이 레이와 교차할 때, pressed(), released(), clicked(), moved(), entered() 및 exited() 신호가 발산됩니다.
대부분의 신호는 ` QPickEvent ` 인스턴스를 전달합니다. `QPickingSettings::pickMode()`가 ` QPickingSettings::TrianglePicking`로 설정된 경우, `pick` 매개변수의 실제 유형은 ` QPickTriangleEvent`가 됩니다.
픽 쿼리는 마우스 클릭 및 마우스 릴리스 시 수행됩니다. 드래그가 활성화된 경우, 버튼을 누른 상태에서 마우스를 움직일 때마다 쿼리가 수행됩니다. 호버가 활성화된 경우, 버튼을 누르지 않은 상태에서도 마우스를 움직일 때마다 쿼리가 수행됩니다.
일반화된 레이 캐스팅 쿼리에 대해서는 Qt3DRender::QRayCaster 및 Qt3DRender::QScreenRayCaster 을 참조하십시오.
참고: 이 컴포넌트의인스턴스는 공유해서는 안 됩니다. 이 조건을 준수하지 않을 경우 정의되지 않은 동작이 발생할 가능성이 높습니다.
참고: 카메라 원거리 평면값은 피킹에 영향을 미치며, 이 값이 ~100,000보다 클 경우 부동 소수점 정밀도 문제로 인해 잘못된 결과가 발생할 수 있습니다.
Qt3DRender::QPickingSettings, Qt3DCore::QGeometry, Qt3DCore::QAttribute, Qt3DRender::QPickEvent, Qt3DRender::QPickTriangleEvent 및 Qt3DRender::QNoPicking도 참조하십시오 .
속성 문서
[read-only] containsMouse : bool
현재 오브젝트 피커에 마우스가 포함되어 있는지 여부를 지정합니다
액세스 함수:
| bool | containsMouse() const |
알림 신호:
| void | containsMouseChanged(bool containsMouse) |
dragEnabled : bool
드래그가 활성화되어 있는지 여부를 지정합니다
액세스 함수:
| bool | isDragEnabled() const |
| void | setDragEnabled(bool dragEnabled) |
알림 신호:
| void | dragEnabledChanged(bool dragEnabled) |
hoverEnabled : bool
호버 기능이 활성화되어 있는지 여부를 지정합니다
액세스 함수:
| bool | isHoverEnabled() const |
| void | setHoverEnabled(bool hoverEnabled) |
알림 신호:
| void | hoverEnabledChanged(bool hoverEnabled) |
[read-only] pressed : bool
객체 선택기가 현재 눌려 있는지를 지정합니다
액세스 함수:
| bool | isPressed() const |
알림 신호:
| void | pressedChanged(bool pressed) |
priority : int
QPickingSettings::pickResultMode 가 ‘ QPickingSettings::NearestPriorityPick ’로 설정되어 있을 때, 선택 결과를 우선순위에 따라 필터링할 때 적용할 우선순위입니다.
액세스 기능:
| int | priority() const |
| void | setPriority(int priority) |
알림 신호:
| void | priorityChanged(int priority) |
멤버 함수 문서
[signal] void QObjectPicker::clicked(Qt3DRender::QPickEvent *pick)
이 신호는 마우스 클릭 시 pickAttribute 속성으로 정의된 경계 볼륨이 레이와 교차할 때 발생하며, QPickEvent pick 에는 해당 이벤트에 대한 세부 정보가 포함되어 있습니다.
bool QObjectPicker::containsMouse() const
객체 선택기에 현재 마우스가 포함되어 있으면 true를 반환합니다
참고: containsMouse 속성에 대한게터 함수입니다.
[signal] void QObjectPicker::entered()
이 신호는 pickAttribute 속성으로 정의된 경계 볼륨이, 해당 볼륨으로 들어오는 마우스 레이와 교차할 때 발생합니다.
[signal] void QObjectPicker::exited()
이 신호는 pickAttribute 속성으로 정의된 경계 볼륨이, 해당 볼륨을 빠져나가는 광선과 교차할 때 발생합니다.
bool QObjectPicker::isDragEnabled() const
드래그가 활성화된 경우 true를 반환합니다
참고: dragEnabled 속성에 대한게터 함수입니다.
bool QObjectPicker::isHoverEnabled() const
호버가 활성화되어 있으면 true를 반환합니다
참고: hoverEnabled 속성에 대한게터 함수입니다.
[signal] void QObjectPicker::moved(Qt3DRender::QPickEvent *pick)
이 신호는 마우스 버튼이 눌린 상태에서 마우스를 이동할 때, pickAttribute 속성으로 정의된 경계 볼륨이 광선과 교차할 때 발생하며, QPickEvent pick 에는 해당 이벤트에 대한 세부 정보가 포함되어 있습니다.
[signal] void QObjectPicker::pressed(Qt3DRender::QPickEvent *pick)
이 신호는 pickAttribute 속성으로 정의된 경계 볼륨이 마우스 클릭 시 발산되는 광선과 교차할 때 발생하며, QPickEvent pick 에는 해당 이벤트에 대한 세부 정보가 포함되어 있습니다.
[signal] void QObjectPicker::released(Qt3DRender::QPickEvent *pick)
이 신호는 pickAttribute 속성으로 정의된 바운딩 볼륨이 마우스 버튼이 놓일 때의 광선과 교차할 때 발생하며, QPickEvent pick 에는 해당 이벤트에 대한 세부 정보가 포함됩니다.
[slot] void QObjectPicker::setDragEnabled(bool dragEnabled)
dragEnabled 속성을 다음과 같이 설정합니다. dragEnabled
참고: dragEnabled 속성에 대한세터 함수입니다.
isDragEnabled()도 참조하십시오 .
[slot] void QObjectPicker::setHoverEnabled(bool hoverEnabled)
hoverEnabled 속성을 다음과 같이 설정합니다. hoverEnabled
참고: hoverEnabled 속성에 대한세터 함수입니다.
isHoverEnabled()도 참조하십시오 .
[slot] void QObjectPicker::setPriority(int priority)
피커의 우선순위를 ‘ priority ’로 설정합니다. 이는 QPickingSettings의 피킹 결과 모드가 ‘ QPickingSettings::NearestPriorityPick ’로 설정된 경우에 사용됩니다. 피킹 결과는 우선순위가 가장 높고 피킹 거리가 가장 짧은 순으로 정렬됩니다.
참고: priority 속성에 대한세터 함수입니다.
참조: priority()
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.