GeOnDT GeOnDT for JS

Class: U3dMaskLayer

GeOnDT.model~ U3dMaskLayer

기반 모델 레이어의 타일에 마스크 값을 저장하고 박스로 표시하는 레이어입니다. 생성·타일 격자 준비·값 반영 후 위치별 셀을 조회하여 바람길 분석에 사용합니다. 기존 동적 인수와 object 반환 타입을 유지하며, 누락 입력의 실제 결과는 각 메서드에서 설명합니다.

new U3dMaskLayer(opt)

마스크 격자 레이어

마스크 격자와 박스 표현에 필요한 레이어 상태를 초기화합니다. opt의 falsy 값은 빈 객체로 처리하고, 개별 옵션의 기본값은 undefined에만 적용합니다.

Name Type Default Description
opt U3dMaskLayer~U3dMaskLayerCO {} optional

생성자 옵션

Methods

createMask(tile)

타일 키에 대응하는 마스크 격자가 없을 때만 생성합니다. 기존 격자는 다시 초기화하지 않습니다.

Name Type Description
tile U3dQuadTile

마스크를 생성할 타일

createMaskValue(tileKey)Promise.<void>

참조 레이어의 모델 높이를 격자 셀에 반영하고 요청 타일의 박스를 표시합니다. 공유 메시와 이미 처리한 메시를 제외하고, 모든 점 검사 이후 타일 상태와 완료 객체를 갱신합니다. infoLayer가 없으면 완료되지 않는 기존 경로도 유지합니다.

Name Type Description
tileKey string

높이를 반영할 타일 키

Returns:
Type Description
Promise.<void> 기반 비동기 실행의 완료 객체

createModel(tile)boolean

허용 레벨의 타일을 마스크 표시 조건 검사로 전달합니다. 범위 밖 타일은 상태를 초기화하고 false를 반환합니다. true는 기반 레이어가 생성을 허용했다는 뜻이며 새 메시가 만들어졌음을 보장하지 않습니다.

Name Type Description
tile U3dQuadTile

생성 조건을 검사할 타일

Returns:
Type Description
boolean 레벨 범위와 기반 생성 조건의 통과 여부

createModelByFrustum(tile, drawArg, force)boolean

기반 생성 조건에 따라 마스크 그룹을 분리하거나 박스 메시를 준비합니다. 타일 메시 맵에 이미 키가 있으면 추가 생성하지 않습니다. 반환값은 기반 생성 조건의 통과 여부이며 메시 생성 여부와는 구분합니다.

Name Type Description
tile U3dQuadTile

생성 조건을 검사할 타일

drawArg UDrawArg

기반 판정에 전달할 실행 인수

force boolean optional

기반 API에 그대로 전달할 선택 인수. 현재 기반 구현에서는 미사용

Returns:
Type Description
boolean 기반 생성 조건의 통과 여부

dispose()Promise.<boolean>

장면에서 레이어 그룹을 분리한 뒤 기반 레이어와 마스크 자원을 정리합니다. 기반 호출 후 마스크 자원을 동기적으로 정리하고 기반 dispose의 Promise를 그대로 반환합니다. 동기 예외가 발생하면 그대로 전파하며 이후 정리는 실행하지 않습니다.

Returns:
Type Description
Promise.<boolean> 기반 레이어 해제의 완료 결과를 전달하는 동일 Promise

disposeTile(tile)

기반 타일 정리 후 맵에 보관된 마스크 메시를 해제합니다. 기존 그룹 정리 호출과 맵 참조 유지 방식은 변경하지 않습니다.

Name Type Description
tile U3dQuadTile

마스크 메시를 해제할 타일

getKeyByPosition(position, level)object

월드 위치에 대응하는 타일 키와 격자 내부 셀 인덱스를 구합니다. 위치의 x·y만 사용하며 z는 계산에 사용하지 않습니다. level이 null 또는 undefined이면 레이어 레벨을 사용합니다. 크기가 준비되지 않았으면 undefined를 반환하지만 기존 공개 object 선언은 유지합니다.

Name Type Default Description
position WorldPosition

조회할 월드 위치

level number this._level optional

조회할 타일 레벨

Returns:
Type Description
object key와 index를 가진 결과 객체. 크기 미준비 시 실제 반환은 undefined

getMaskByTileKey(key)*

타일 키에 대응하는 기존 격자 객체를 그대로 반환합니다. 셀에 임의 데이터를 보관하는 기존 동적 반환 계약을 유지합니다.

Name Type Description
key string

타일 키

Returns:
Type Description
* 기존 격자 객체 또는 undefined

getMaskObject(tileKey, index)object

지정한 셀에 저장된 객체를 복사하지 않고 반환합니다. 격자나 셀이 없으면 undefined를 반환하지만 기존 공개 object 선언은 유지합니다.

Name Type Description
tileKey string

대상 타일 키

index object

x와 y를 가진 기존 셀 인덱스 객체

Returns:
Type Description
object 기존 셀 객체. 격자 또는 셀 부재 시 실제 반환은 undefined

initialize()

U3dModelLayer의 prototype을 통해 상속된 U3dLayer 초기화를 현재 인스턴스로 실행합니다. 기반 호출의 반환값은 전달하지 않습니다.

removeAll()

마스크 메시·격자·박스 형상과 표시 그룹을 정리합니다. 기존과 같이 타일 메시 맵 항목은 유지하며, 정리 중 예외가 발생하면 후속 처리는 중단합니다. Map 키 반복자의 forEach 지원 여부도 기존 실행 환경의 조건을 유지합니다.

setApp(app)

기반 모델 레이어에 애플리케이션을 연결합니다.

Name Type Description
app U3dApp

기반 레이어에 연결할 애플리케이션

setMaskObject(tileKey, index, object)

타일과 셀 인덱스에 전달 객체를 저장하고 박스 메시를 표시합니다. 타일이 캐시에 있으면 없는 격자를 생성합니다. 기존 셀 값 초기화와 메시 생성 순서를 유지합니다. 인덱스 범위 또는 메시 부재에 대한 추가 방어 처리를 수행하지 않습니다.

Name Type Description
tileKey string

대상 타일 키

index object

x와 y를 가진 기존 셀 인덱스 객체

object object

value 등 사용자가 보관할 셀 데이터

update(drawArg)

갱신 검사기가 허용한 시점에만 캐시 타일과 기반 레이어를 갱신합니다.

Name Type Description
drawArg UDrawArg

타일 캐시와 실행 인수