이 페이지에서

Qt3DRender::QAbstractRayCaster Class

class Qt3DRender::QAbstractRayCaster

3D 장면에서 레이 캐스팅을 위한 추상 기본 클래스입니다. 더 보기...

헤더: #include <qabstractraycaster.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
QML에서: AbstractRayCaster
상속: Qt3DCore::QComponent
상속받는 클래스:

Qt3DRender::QRayCaster 그리고 Qt3DRender::QScreenRayCaster

상태: 사용 중단됨

이 클래스는 더 이상 사용되지 않습니다. 새로운 코드에서는 이 클래스를 사용하지 않는 것이 좋습니다.

공개 유형

enum FilterMode { AcceptAnyMatchingLayers, AcceptAllMatchingLayers, DiscardAnyMatchingLayers, DiscardAllMatchingLayers }
enum RunMode { Continuous, SingleShot }

속성

  • filterMode : Qt3DRender::QAbstractRayCaster::FilterMode
  • hits : Qt3DRender::QAbstractRayCaster::Hits
  • runMode : Qt3DRender::QAbstractRayCaster::RunMode

공개 함수

void addLayer(Qt3DRender::QLayer *layer)
Qt3DRender::QAbstractRayCaster::FilterMode filterMode() const
Qt3DRender::QAbstractRayCaster::Hits hits() const
QList<Qt3DRender::QLayer *> layers() const
void removeLayer(Qt3DRender::QLayer *layer)
Qt3DRender::QAbstractRayCaster::RunMode runMode() const

공개 슬롯

void setFilterMode(Qt3DRender::QAbstractRayCaster::FilterMode filterMode)
void setRunMode(Qt3DRender::QAbstractRayCaster::RunMode runMode)

신호

void filterModeChanged(Qt3DRender::QAbstractRayCaster::FilterMode filterMode)
void hitsChanged(const Qt3DRender::QAbstractRayCaster::Hits &hits)
void runModeChanged(Qt3DRender::QAbstractRayCaster::RunMode runMode)

상세 설명

Qt3DRender::QAbstractRayCaster 는 3D 씬에 레이를 캐스팅하기 위한 추상 기본 클래스입니다. ` Qt3DRender::QAbstractRayCaster `는 직접 인스턴스화할 수 없으며, 대신 하위 클래스를 통해 인스턴스화해야 합니다. `QAbstractRayCaster`는 실행 모드 및 레이어 처리와 같이 모든 레이 캐스터에 공통적인 속성을 지정하는 한편, 실제 레이 캐스팅에 대한 세부 사항은 하위 클래스에 맡깁니다.

레이 캐스팅은 ( Qt3DRender::QObjectPicker 를 사용하는) 피킹과 달리, 트리거하기 위해 마우스 이벤트가 필요하지 않다는 점에서 다릅니다.

기본적으로 Qt3DRender::QAbstractRayCaster 인스턴스는 비활성화되어 있습니다. 활성화되면 매 프레임마다 지정된 레이가 오브젝트와 교차하는지 테스트됩니다. 오브젝트가 발견되지 않더라도 QAbstractRayCaster::hits 속성은 레이 캐스팅 결과로 업데이트됩니다.

Qt3DRender::QPickingSettings 를 사용하면 테스트할 프리미티브를 지정하거나 결과 반환 방식을 설정하는 등 레이 캐스팅을 제어할 수 있습니다.

또한, ` Qt3DRender::QLayer ` 컴포넌트를 사용하여 엔티티나 엔티티 서브그래프가 레이 캐스팅에 어떻게 반응할지 제어할 수 있습니다.

참고: QAbstractRayCaster에서 파생된컴포넌트는 여러 엔티티에서 공유해서는 안 됩니다.

Qt3DRender::QRayCaster, Qt3DRender::QScreenRayCaster, Qt3DRender::QObjectPicker, Qt3DRender::QPickingSettings 및 Qt3DRender::QNoPicking도 참조하십시오 .

멤버 유형 문서

enum QAbstractRayCaster::FilterMode

레이캐스팅 테스트 대상 엔티티를 선택하는 규칙을 지정합니다.

상수값설명
Qt3DRender::QAbstractRayCaster::AcceptAnyMatchingLayers0이 ` QAbstractRayCaster`에 추가된 하나 이상의 ` QLayer ` 객체를 참조하는 엔티티를 허용합니다. 이 값이 기본값입니다.
Qt3DRender::QAbstractRayCaster::AcceptAllMatchingLayers1이 에 추가된 모든 QLayer 객체를 참조하는 엔티티를 허용합니다. QAbstractRayCaster
Qt3DRender::QAbstractRayCaster::DiscardAnyMatchingLayers2이 에 추가된 하나 이상의 QLayer 객체를 참조하는 엔티티를 버립니다. QAbstractRayCaster
Qt3DRender::QAbstractRayCaster::DiscardAllMatchingLayers3이 에 추가된 모든 QLayer 객체를 참조하는 엔티티를 제외합니다. QAbstractRayCaster

enum QAbstractRayCaster::RunMode

이 열거형은 레이 캐스팅이 수행되는 빈도를 지정합니다

상수값설명
Qt3DRender::QAbstractRayCaster::Continuous0컴포넌트가 활성화된 상태에서는 매 프레임마다 레이 캐스팅이 수행됩니다.
Qt3DRender::QAbstractRayCaster::SingleShot1레이 캐스팅이 한 번 수행된 후 컴포넌트가 자동으로 비활성화됩니다. 이것이 기본값입니다.

속성 설명

filterMode : Qt3DRender::QAbstractRayCaster::FilterMode

레이 캐스팅 테스트에서 선택할 엔티티를 지정하는 필터 모드를 저장합니다.

기본값은 AcceptMatchingLayers입니다.

액세스 함수:

Qt3DRender::QAbstractRayCaster::FilterMode filterMode() const
void setFilterMode(Qt3DRender::QAbstractRayCaster::FilterMode filterMode)

알림 신호:

void filterModeChanged(Qt3DRender::QAbstractRayCaster::FilterMode filterMode)

[read-only] hits : Qt3DRender::QAbstractRayCaster::Hits

마지막 레이 캐스팅 테스트 결과를 Qt3DRender::QRayCasterHit 인스턴스의 벡터로 저장합니다.

연속된 테스트에서 정확히 동일한 결과(또는 빈 결과)가 반환되더라도, 모든 테스트마다 변경 알림이 발생한다는 점에 유의하십시오.

액세스 함수:

Qt3DRender::QAbstractRayCaster::Hits hits() const

알림 신호:

void hitsChanged(const Qt3DRender::QAbstractRayCaster::Hits &hits)

runMode : Qt3DRender::QAbstractRayCaster::RunMode

레이 캐스팅 테스트가 수행되는 빈도를 제어하는 실행 모드를 설정합니다.

SingleShot (기본값)로 설정된 경우, 컴포넌트가 활성화되면 레이 캐스팅 테스트가 한 번 수행된 후 컴포넌트가 자동으로 비활성화됩니다.

'Continuous'로 설정된 경우, 컴포넌트가 활성화된 동안 매 프레임마다 레이 캐스팅 테스트가 수행됩니다.

액세스 함수:

Qt3DRender::QAbstractRayCaster::RunMode runMode() const
void setRunMode(Qt3DRender::QAbstractRayCaster::RunMode runMode)

알림 신호:

void runModeChanged(Qt3DRender::QAbstractRayCaster::RunMode runMode)

멤버 함수 설명서

void QAbstractRayCaster::addLayer(Qt3DRender::QLayer *layer)

layer 를 현재 레이어 목록에 추가하세요

QList<Qt3DRender::QLayer *> QAbstractRayCaster::layers() const

현재 레이어 목록을 반환합니다.

void QAbstractRayCaster::removeLayer(Qt3DRender::QLayer *layer)

현재 레이어 목록에서 ‘ layer ’을 제거합니다.

© 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.