GeOnDT GeOnDT for JS

Class: U3dLodModelLayer

U3dLodModelLayer

3D 컴포넌트 레이어 관련 클래스

new U3dLodModelLayer()

Methods

clearAllInstances()

레이어에 추가된 모든 모델 인스턴스를 제거하고 관련 데이터를 초기화합니다. 인스턴스와 인스턴스 수명주기의 비동기 상태를 초기화합니다.

dispose()void

레이어의 모델, 작업자, 캐시와 예약된 비동기 작업을 해제합니다.

Returns:
Type Description
void 반환값 없이 레이어가 소유한 리소스를 해제합니다.

downloadFeatureToJson(propertiesName)

layer의 현재 featureMap에 저장된 feature 정보들을 json 파일로 받는 함수

Name Type Default Description
propertiesName string 'FIFTH_FRTP' optional

정렬하려는 properties 이름

getCapacityResizeStats()Object

layer가 소유한 InstancedMesh의 capacity resize 통계를 조회 시점에 집계합니다.

Returns:
Type Description
Object 전체 resize 횟수와 mesh별 마지막 capacity/저장소 크기

getFeatureLodCacheStats(featureId)Object

개발 및 성능 검증을 위해 feature LOD 증분 캐시의 현재 상태를 반환합니다. 캐시 내부 Map과 Set은 노출하지 않으며 호출 시점의 숫자 통계만 새 객체로 복사합니다.

Name Type Description
featureId string | number

상세 상태를 확인할 선택 feature 식별자

Returns:
Type Description
Object 전체 캐시 계측값과 선택 feature의 level·타일·geometry별 인스턴스 수

getFilteredObject(filterPoints, type, offset, isRemove)Array.<object>

검색하려는 위치 목록과 타입을 지정 받아 해당 하는 모델의 이름과 idx를 반환하는 함수, (검색 된 객체에 대해서 제거 여부 선택 가능)

Name Type Default Description
filterPoints Array.<WorldPosition> [] optional

검색 하려는 영역 또는 좌표

type string 'polygon' optional

영역의 타입 ['line', 'polygon']

offset number 0 optional

버퍼 사이즈

isRemove boolean true optional

검색 결과 대상 삭제 여부

Returns:
Type Description
Array.<object> 검색 결과 대상들의 {index: idx 번호, intersect: infoList 대상의 정보 object} 목록을 반환

getInstanceRemovalQueueStats()Object

개발 및 성능 검증용 제거 큐 상태를 반환합니다.

Returns:
Type Description
Object 제거 대기 작업 수, 남은 ID 수와 직전 flush 계측값

getInstancesCount(name)Array.<object>

함수는 U3dLodModelLayer에서 관리하는 인스턴스 메쉬(Instanced Mesh)들의 상태를 모니터링하기 위한 용도로 사용됩니다. 각 속성의 의미는 다음과 같습니다:

Name Type Description
name string optional

대상 mesh의 이름 미 입력시 레이어의 모델(Instanced Mesh)의 전체 정보 반환

Returns:
Type Description
Array.<object> 반환 정보에 대한 설명
  1. name (String) : 해당 인스턴스 메쉬의 고유 이름입니다.
  2. activeCount (Number) : 현재 활성화(Active) 상태인 인스턴스의 총 개수입니다. *용도: 실제로 로직상 살아있는 객체의 수량을 의미하며, instancesArrayCount보다 작거나 같을 수 있습니다.
  3. capacity (Number) : 해당 메쉬가 수용할 수 있는 최대 용량(Buffer Size)입니다. *용도: GPU 메모리에 미리 할당된 인스턴스 공간의 크기입니다. 만약 인스턴스가 이 수치를 초과하여 추가되면 버퍼 리사이징(Resize)이 발생할 수 있습니다. ( 사용자가 생성시에 설정하지 않으면 동적으로 증가됩니다.)
  4. instancesArrayCount (Number) : 인스턴스 데이터 배열 내에서 사용 중인 인덱스의 상한선입니다. *용도: 데이터 배열(Matrix, Color 등)에서 유효한 데이터가 들어있는 범위의 끝을 나타냅니다. 인스턴스가 추가되면 증가하고, 마지막 인덱스의 인스턴스가 해제되면 감소합니다.
  5. visibilityCount (Number) : availabilityArray 기준으로 visible && active인 인스턴스 수입니다.
  6. lodCount (Array | undefined) : LOD(Level of Detail) 단계별로 현재 렌더링되고 있는 인스턴스의 개수 리스트입니다. * 용도: 거리나 화면 비중에 따라 최적화된 모델 단계(LOD 0, LOD 1, ...)별로 각각 몇 개의 인스턴스가 화면에 그려지고 있는지 확인할 수 있습니다. 예를 들어 [100, 50]이라면 LOD 0 단계로 100개, LOD 1 단계로 50개가 렌더링 중임을 의미합니다.
  7. lodRenderCount (Number) : lodCount 합계이며 카메라 프러스텀 컬링과 LOD index 갱신 이후의 렌더 대상 수입니다.

getMeshByPropertiesMap(propertyKey, value)Array.<object>

feature의 속성 Key와 Value로 검색하여 해당하는 mesh와 index를 반환 받는 함수

Name Type Description
propertyKey string | function

feature의 속성 명 또는 검색 함수 설정 * 호출시 propertyKey(feature) 형태

value string

feature의 속성 Key의 검색하는 value 값 / propertyKey를 함수로 지정시에는 해당 값은 무시됩니다.

Returns:
Type Description
Array.<object> {mesh : 해당하는 instancedMesh, idxList : 해당 instancedMesh의 instancedId} 객체의 목록을 반환

getPendingInitUpdateQueueStats()Object

pending mesh queue와 mesh별 initUpdate 실행 시간의 개발용 통계를 반환합니다. 통계 조회 시에만 배열과 결과 객체를 생성하므로 렌더 hot path에는 추가 할당이 없습니다.

Returns:
Type Description
Object 현재 queue 길이와 누적/mesh별 initUpdate 실행 시간

getSamplingStartLevel()number

sampling start level을 반환합니다.

Returns:
Type Description
number 샘플링 시작 레벨 (해당 레벨 이하의 타일이 샘플링 대상 타일 레벨)

getSyncUpdateStats()Object

update 순환에서 수행한 LOD/index 선처리의 개발용 계측값을 반환합니다.

Returns:
Type Description
Object 누적 호출 수와 직전 update의 pending 작업 전후 수 및 실행 시간

hide()void

레이어를 숨기고 소유한 instance를 전역 visible 통계에서 제외합니다.

Returns:
Type Description
void 반환값 없이 레이어와 전역 visible 통계를 갱신합니다.

initialize()object

Basic 모델 로드와 LOD InstancedMesh 생성을 순서대로 초기화합니다. 입력 파라미터는 없습니다.

Returns:
Type Description
object LOD 생성 완료 또는 실패 상태를 전달하는 deferred 객체

removeModelByName(name)

지정된 이름의 모델 인스턴스를 전체 제거합니다.

Name Type Description
name string

제거할 모델의 이름.

removeObject(name, idx)

모델 이름과 해당 idx 번호를 받아서 대상을 지우는 함수

Name Type Description
name string

모델 데이터의 이름

idx number

대상 idx

restoreColorByName(name)

지정된 이름의 모델 인스턴스들의 색상을 원래대로 복원합니다.

Name Type Description
name string

색상을 복원할 모델의 이름.

setApp(app)

레이어를 앱에 연결하고 모델 초기화 및 대기 중인 렌더 전 작업을 시작합니다.

Name Type Description
app U3dApp

연결할 U3dApp 인스턴스

setColorByName(name, color)

지정된 이름의 모델 인스턴스들의 전체 색상을 설정합니다.

Name Type Description
name string

색상을 변경할 모델의 이름.

color ColorRepresentation

설정할 색상. THREE.Color 객체, CSS 색상 문자열 또는 16진수 값을 사용할 수 있습니다.

setLodOption(name, option)

모델에 대한 LOD 옵션을 설정합니다.

Name Type Description
name string

모델의 이름

option Array.<object>

LOD 정보 배열. 각 객체는 ratio, distance, minVertexCount, setConvexHull 속성을 가집니다.

setSamplingStartLevel(level)

sampling start level을 설정합니다.

Name Type Description
level number

샘플링 시작 레벨 (해당 레벨 이하의 타일이 샘플링 대상 타일 레벨) 예시 ) value : 13 -> minLevel 12 / maxLevel 15 대상 (minlevel ~ value) 12, 13 레벨 타일의 feature 정보들을 로드시에 샘플링이 적용 됩니다.

setScaleByName(name, value)

Name Type Description
name
value

setTileDistanceLodModelMap(map)object|undefined

baseName별 거리 LOD 모델과 maxCapacity 설정 맵을 교체합니다. 이미 생성된 메시의 capacity는 유지되며, 교체 후 새로 생성되는 메시부터 변경된 정책을 사용합니다.

Name Type Description
map object | undefined | null

baseName을 key로 사용하는 거리 LOD 설정 맵

Returns:
Type Description
object | undefined 실제 저장된 거리 LOD 설정 맵

show(value)void

레이어를 표시하고 소유한 instance를 전역 visible 통계에 다시 포함합니다.

Name Type Default Description
value boolean true

true이면 표시하고 false이면 hide()를 호출합니다.

Returns:
Type Description
void 반환값 없이 레이어와 전역 visible 통계를 갱신합니다.

update(drawArg, delta)

모델 레이어의 프레임 순환 작업을 처리합니다. pending LOD/index 갱신은 auto-height와 분리해 먼저 선처리하고, 고도 보정은 기존 비동기 순환을 유지합니다.

Name Type Description
drawArg UDrawArg

카메라와 지형 타일 조회 함수를 포함하는 앱 draw argument

delta number

앱이 전달한 현재 update 시간 값

Type Definitions

ModelDataInfoobject

컴포넌트 모델 데이터 로드 시 사용되는 원천 정보

Properties:
Name Type Argument Default Description
name string

모델의 이름 (사용자 정의)

type string

모델 타입 component

baseurl string

모델 데이터 URL

fileName string

실제 모델 데이터의 원본 파일 명 (ex : "building.3ds")

ext string

모델 데이터 포맷 (3ds, obj, glb, fbx 등)

lodMaxLevel number <optional>
2

Lod의 단계를 표현

tileLevelInfo object <optional>

Lod의 단계를 Tile Level에 단계별로 지정하여 설정

See:
  • GeOnDT.model.U3dLodModelLayer
  • GeOnDT.model.U3dMultipleComponentLayer