new U3dLodModelLayer()
Methods
-
clearAllInstances()
-
레이어에 추가된 모든 모델 인스턴스를 제거하고 관련 데이터를 초기화합니다. 인스턴스와 인스턴스 수명주기의 비동기 상태를 초기화합니다.
-
dispose()void
-
레이어의 모델, 작업자, 캐시와 예약된 비동기 작업을 해제합니다.
Returns:
Type Description void 반환값 없이 레이어가 소유한 리소스를 해제합니다. -
downloadFeatureToJson(propertiesName)
-
layer의 현재 featureMap에 저장된 feature 정보들을 json 파일로 받는 함수
Name Type Default Description propertiesNamestring '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 featureIdstring | number 상세 상태를 확인할 선택 feature 식별자
Returns:
Type Description Object 전체 캐시 계측값과 선택 feature의 level·타일·geometry별 인스턴스 수 -
getFilteredObject(filterPoints, type, offset, isRemove)Array.<object>
-
검색하려는 위치 목록과 타입을 지정 받아 해당 하는 모델의 이름과 idx를 반환하는 함수, (검색 된 객체에 대해서 제거 여부 선택 가능)
Name Type Default Description filterPointsArray.<WorldPosition> [] optional 검색 하려는 영역 또는 좌표
typestring 'polygon' optional 영역의 타입 ['line', 'polygon']
offsetnumber 0 optional 버퍼 사이즈
isRemoveboolean 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 namestring optional 대상 mesh의 이름 미 입력시 레이어의 모델(Instanced Mesh)의 전체 정보 반환
Returns:
Type Description Array.<object> 반환 정보에 대한 설명 - name (String) : 해당 인스턴스 메쉬의 고유 이름입니다.
- activeCount (Number) : 현재 활성화(Active) 상태인 인스턴스의 총 개수입니다. *용도: 실제로 로직상 살아있는 객체의 수량을 의미하며, instancesArrayCount보다 작거나 같을 수 있습니다.
- capacity (Number) : 해당 메쉬가 수용할 수 있는 최대 용량(Buffer Size)입니다. *용도: GPU 메모리에 미리 할당된 인스턴스 공간의 크기입니다. 만약 인스턴스가 이 수치를 초과하여 추가되면 버퍼 리사이징(Resize)이 발생할 수 있습니다. ( 사용자가 생성시에 설정하지 않으면 동적으로 증가됩니다.)
- instancesArrayCount (Number) : 인스턴스 데이터 배열 내에서 사용 중인 인덱스의 상한선입니다. *용도: 데이터 배열(Matrix, Color 등)에서 유효한 데이터가 들어있는 범위의 끝을 나타냅니다. 인스턴스가 추가되면 증가하고, 마지막 인덱스의 인스턴스가 해제되면 감소합니다.
- visibilityCount (Number) : availabilityArray 기준으로 visible && active인 인스턴스 수입니다.
-
lodCount (Array
| undefined) : LOD(Level of Detail) 단계별로 현재 렌더링되고 있는 인스턴스의 개수 리스트입니다. * 용도: 거리나 화면 비중에 따라 최적화된 모델 단계(LOD 0, LOD 1, ...)별로 각각 몇 개의 인스턴스가 화면에 그려지고 있는지 확인할 수 있습니다. 예를 들어 [100, 50]이라면 LOD 0 단계로 100개, LOD 1 단계로 50개가 렌더링 중임을 의미합니다. - lodRenderCount (Number) : lodCount 합계이며 카메라 프러스텀 컬링과 LOD index 갱신 이후의 렌더 대상 수입니다.
-
getMeshByPropertiesMap(propertyKey, value)Array.<object>
-
feature의 속성 Key와 Value로 검색하여 해당하는 mesh와 index를 반환 받는 함수
Name Type Description propertyKeystring | function feature의 속성 명 또는 검색 함수 설정 * 호출시 propertyKey(feature) 형태
valuestring 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 namestring 제거할 모델의 이름.
-
removeObject(name, idx)
-
모델 이름과 해당 idx 번호를 받아서 대상을 지우는 함수
Name Type Description namestring 모델 데이터의 이름
idxnumber 대상 idx
-
restoreColorByName(name)
-
지정된 이름의 모델 인스턴스들의 색상을 원래대로 복원합니다.
Name Type Description namestring 색상을 복원할 모델의 이름.
-
setApp(app)
-
레이어를 앱에 연결하고 모델 초기화 및 대기 중인 렌더 전 작업을 시작합니다.
Name Type Description appU3dApp 연결할 U3dApp 인스턴스
-
setColorByName(name, color)
-
지정된 이름의 모델 인스턴스들의 전체 색상을 설정합니다.
Name Type Description namestring 색상을 변경할 모델의 이름.
colorColorRepresentation 설정할 색상. THREE.Color 객체, CSS 색상 문자열 또는 16진수 값을 사용할 수 있습니다.
-
setLodOption(name, option)
-
모델에 대한 LOD 옵션을 설정합니다.
Name Type Description namestring 모델의 이름
optionArray.<object> LOD 정보 배열. 각 객체는
ratio,distance,minVertexCount,setConvexHull속성을 가집니다. -
setSamplingStartLevel(level)
-
sampling start level을 설정합니다.
Name Type Description levelnumber 샘플링 시작 레벨 (해당 레벨 이하의 타일이 샘플링 대상 타일 레벨) 예시 ) value : 13 -> minLevel 12 / maxLevel 15 대상 (minlevel ~ value) 12, 13 레벨 타일의 feature 정보들을 로드시에 샘플링이 적용 됩니다.
-
setScaleByName(name, value)
-
Name Type Description namevalue -
setTileDistanceLodModelMap(map)object|undefined
-
baseName별 거리 LOD 모델과 maxCapacity 설정 맵을 교체합니다. 이미 생성된 메시의 capacity는 유지되며, 교체 후 새로 생성되는 메시부터 변경된 정책을 사용합니다.
Name Type Description mapobject | undefined | null baseName을 key로 사용하는 거리 LOD 설정 맵
Returns:
Type Description object | undefined 실제 저장된 거리 LOD 설정 맵 -
show(value)void
-
레이어를 표시하고 소유한 instance를 전역 visible 통계에 다시 포함합니다.
Name Type Default Description valueboolean true true이면 표시하고 false이면 hide()를 호출합니다.
Returns:
Type Description void 반환값 없이 레이어와 전역 visible 통계를 갱신합니다. -
update(drawArg, delta)
-
모델 레이어의 프레임 순환 작업을 처리합니다. pending LOD/index 갱신은 auto-height와 분리해 먼저 선처리하고, 고도 보정은 기존 비동기 순환을 유지합니다.
Name Type Description drawArgUDrawArg 카메라와 지형 타일 조회 함수를 포함하는 앱 draw argument
deltanumber 앱이 전달한 현재 update 시간 값
Type Definitions
-
ModelDataInfoobject
-
컴포넌트 모델 데이터 로드 시 사용되는 원천 정보
- See:
-
- GeOnDT.model.U3dLodModelLayer
- GeOnDT.model.U3dMultipleComponentLayer
Properties:
Name Type Argument Default Description namestring 모델의 이름 (사용자 정의)
typestring 모델 타입
componentbaseurlstring 모델 데이터 URL
fileNamestring 실제 모델 데이터의 원본 파일 명 (ex : "building.3ds")
extstring 모델 데이터 포맷 (3ds, obj, glb, fbx 등)
lodMaxLevelnumber <optional>
2 Lod의 단계를 표현
tileLevelInfoobject <optional>
Lod의 단계를 Tile Level에 단계별로 지정하여 설정