GeOnDT GeOnDT for JS

Class: U3dGroupLayer

U3dGroupLayer

~extends U3dLayer
여러 개의 레이어를 하나의 그룹 레이어로 묶어 일괄 관리하는 레이어 클래스
가시화(show/hide), 투명도, 이벤트 등을 묶음 단위로 제어할 수 있다.

new U3dGroupLayer(opt)

자식 배열을 공유하는 그룹 레이어를 생성한다.
초기 자식은 현재 표시 상태를 즉시 전달받은 뒤 부모 그룹에 연결된다. 생성 시에는 자식 경계를 합산하지 않으며, 경계는 이후 addLayer 호출에서 누적한다.

Name Type Default Description
opt U3dGroupLayerCO {} optional

생성자 옵션

Methods

addLayer(layer)boolean

자식 레이어를 그룹에 연결하고 경계를 누적한 뒤 목록에 추가한다.
같은 객체가 이미 있거나 자식 이름과 그룹 자신의 이름이 느슨한 비교로 같으면 거절한다. 다른 자식끼리 이름이 같은지는 검사하지 않는다.
ready가 있으면 우선 사용하고, 없으면 then, 둘 다 없으면 즉시 표시 상태를 전달한다. 준비 성공 콜백은 실행 당시의 그룹 표시 상태를 읽는다. 준비 완료를 기다리지 않고 등록 결과를 반환한다. 준비 실패는 경로별 오류 로그로 알리며, 동기 예외는 앞선 변경을 되돌리지 않고 전달한다.
최초 경계는 자식의 min·max 벡터를 공유하므로 이후 누적이 해당 자식 경계에도 반영될 수 있다.

Name Type Description
layer U3dGroupLayerChild

추가할 자식 레이어

Returns:
Type Description
boolean 목록에 추가하면 true. 이미 같은 객체가 있거나 그룹 이름과 충돌하면 false

dispose()Promise.<boolean>

자식의 해제를 순서대로 요청한 뒤 그룹을 해제 상태로 표시한다.
자식이 반환한 비동기 작업은 기다리지 않는다. 동기 예외가 발생하면 이후 처리를 중단하며, 기존 배열을 비우는 대신 그룹의 목록을 새 배열로 교체한다. 경계와 부모 연결은 별도로 지우지 않는다.

Returns:
Type Description
Promise.<boolean> 자식 해제 호출과 그룹 상태 반영이 끝나면 true로 완료되는 객체. 자식의 비동기 완료는 포함하지 않는다

getBoundingBox()Box3|undefined

addLayer 호출로 누적된 그룹 경계 상자를 반환한다.
생성 옵션의 자식이나 외부 배열 변경을 기준으로 다시 계산하지 않으며, 해제 후에도 저장된 경계는 남는다.

Returns:
Type Description
Box3 | undefined 저장된 경계의 원본 참조. 아직 누적된 경계가 없으면 undefined

getCenter()GooglePositionVector3|null

그룹 레이어 BoundingBox의 중심 좌표를 반환하는 함수

Returns:
Type Description
GooglePositionVector3 | null 저장된 경계의 중심을 담은 새 벡터. 경계가 없으면 null

getChildren()Array.<U3dGroupLayerChild>

그룹에 포함된 자식 레이어 목록을 반환하는 함수

Returns:
Type Description
Array.<U3dGroupLayerChild> 원본 자식 배열. 직접 수정하면 목록은 바뀌지만 부모 연결·표시·경계 누적은 자동 실행되지 않는다

getStateTileLength()number

그룹에 포함된 모든 자식 레이어의 상태 타일 수의 합계를 반환하는 함수

Returns:
Type Description
number 자식 레이어들의 상태 타일 수 합계

getWorkingLevel2()number

그룹 내 가시화 상태인 자식 레이어들의 working level 2 작업 수의 합계를 반환하는 함수

Returns:
Type Description
number 자식 레이어들의 working level 2 합계

getWorkingLevel3()number

그룹 내 가시화 상태인 자식 레이어들의 working level 3 작업 수의 합계를 반환하는 함수

Returns:
Type Description
number 자식 레이어들의 working level 3 합계

off(event, callback)

이벤트 리스너를 제거하는 함수
LOADED 이벤트는 그룹 레이어 자체에서 제거되고, 그 외 이벤트는 모든 자식 레이어에서 일괄 제거된다.

Name Type Description
event string optional

이벤트명. 생략하면 자식들에 해제를 전달하며 그룹 자체의 LOADED 리스너는 제거하지 않는다

callback function | string optional

콜백 함수 또는 리스너 식별자

on(event, callback, once, name)string

이벤트 리스너를 등록하는 함수
LOADED 이벤트는 그룹 레이어 자체에 등록되고, 그 외 이벤트는 모든 자식 레이어에 일괄 등록된다.

Name Type Description
event string

이벤트명

callback EventCallBack

이벤트 콜백 함수

once boolean optional

이벤트 한 번만 처리할지 여부. true면 첫 호출 후 리스너 자동 제거

name string optional

리스너 식별자 (off 호출 시 사용)

Returns:
Type Description
string 입력한 name 또는 빈 문자열. 등록 대상에서 생성한 식별자는 반환하지 않는다

once(event, callback, name)string

한 번만 실행되는 이벤트 리스너를 등록하는 함수
내부적으로 on 함수를 호출한다.

Name Type Description
event string

이벤트명

callback EventCallBack

이벤트 콜백 함수

name string optional

리스너 식별자

Returns:
Type Description
string 입력한 name 또는 빈 문자열. 등록 대상에서 생성한 식별자는 반환하지 않는다

printNotCompleteStateTiles(print)number

그룹 내 자식 레이어 중 작업이 완료되지 않은 상태 타일 정보를 콘솔에 출력하는 함수
디버깅용

Name Type Description
print boolean optional

출력 옵션 (현재 미사용)

Returns:
Type Description
number 미완료 상태 타일이 있는 자식 레이어 수

printStateTiles()number

그룹 내 자식 레이어 중 처리 중인 상태 타일이 있는 레이어들의 정보를 콘솔에 출력하는 함수
디버깅용

Returns:
Type Description
number 처리 중인 상태 타일이 있는 자식 레이어 수

setEmissiveColor(r, g, b)boolean

그룹에 포함된 모든 자식 레이어의 emissive(자체 발광) 색상을 일괄 설정하는 함수

Name Type Description
r number

Red 채널 값 (0~1)

g number

Green 채널 값 (0~1)

b number

Blue 채널 값 (0~1)

Returns:
Type Description
boolean 동기 예외 없이 순회를 마치면 true(빈 목록 포함). 예외가 발생하면 이전 자식의 변경은 유지하고 false

setOpacity(val)

그룹에 포함된 모든 자식 레이어의 투명도를 일괄 설정하는 함수

Name Type Description
val number

투명도 (0~1)

show(show)

자식들의 표시 상태를 변경한 뒤 앱에 한 번 갱신을 요청한다.
앱이 연결되지 않았으면 안내 로그만 남기고 그룹의 표시 상태도 바꾸지 않는다. 자식 호출의 동기 예외는 전달되며, 이 경우 뒤의 자식과 앱 갱신은 실행하지 않는다.

Name Type Description
show boolean

가시화 여부. true면 그룹 내 모든 레이어 가시화

Type Definitions

U3dGroupLayerBoundingBoxBox3 undefined

자식 경계 조회의 결과. 경계가 없으면 undefined이며 존재하는 경우 원본 Box3를 공유한다.

U3dGroupLayerCOobject

~extends U3dLayer~U3dLayerCO
그룹 레이어의 생성 옵션. 기반 레이어 옵션에 최초 자식 목록을 추가한다.

Properties:
Name Type Argument Default Description
listlayer Array.<U3dGroupLayer.types~U3dGroupLayerChild> <optional>
[]

복제하지 않고 보관할 최초 자식 배열. 즉시 표시·부모 연결을 수행하며 경계는 합산하지 않는다

U3dGroupLayerChildobject

~extends U3dLayer
그룹에서 호출하는 자식 레이어의 추가 계약. ready가 존재하면 then보다 우선 사용하며, 반환 객체의 catch에 실패 처리를 연결한다.

Properties:
Name Type Argument Description
getBoundingBox function

추가 시 그룹 경계에 누적할 원본 경계를 반환한다

setEmissiveColor function

자체 발광색을 설정한다. 그룹은 반환값을 합산하지 않는다

ready DeferredReadyFunc <optional>

준비 성공 콜백을 등록할 우선 진입점

then DeferredReadyFunc <optional>

ready가 없을 때 사용할 준비 진입점

catch DeferredCatchFunc <optional>

자식의 실패 콜백 등록 함수