new U3dMultipleComponentLayer(opt)
컴포넌트(Component) 레이어 생성옵션
| Name | Type | Description |
|---|---|---|
opt |
Partial.<U3dMultipleComponentLayer~U3dMultipleComponentLayerCO> |
Example
const componentLayer = new GeOnDT.model.U3dMultipleComponentLayer({
name: "ComponentLayer",
setInstanced: true
});
app.addLayer(componentLayer);
app.showLayer("ComponentLayer", true);
Members
-
EVENTany
-
-
OPT_KEYS
-
Methods
-
addPosition(opt)U3dMultipleComponentLayer~Component|undefined
-
컴포넌트를 생성할 랜더링 위치를 지정하고 컴포넌트를 생성하는 메서드입니다. style의 밝기·대비는 생성 전에 검증합니다. 숫자가 아니면 TypeError, 음수·비유한 값·Float32 표현 범위 초과이면 RangeError를 발생시키며 객체와 인스턴스 ID를 생성하지 않습니다.
Name Type Description optU3dMultipleComponentLayer~ComponentCreateOption 컴포넌트 생성 옵션입니다.
Returns:
Type Description U3dMultipleComponentLayer~Component | undefined 컴포넌트 생성 실패 시 undefined를 반환합니다. -
changeObject(id, option)
-
현재 출력되고 있는 컴포넌트 3D 에셋을 다른 3D 에셋으로 변경하는 메서드입니다.
변경하려는 3D 에셋은 사전에 load되어 (_listModel) 프로퍼티에 저장되어 있어야 합니다.Name Type Description idstring 레이어의 등록된 컴포넌트의 아이디
optionU3dMultipleComponentLayer~ChangeObjectOpt 변경옵션
Example
layer.changeObject('path_5680' , { object : 'drone_01', animationNum : 2, rotation :{x: 0, y: 0, z: 0}, scale : {x: 1, y: 1, z: 1} }); -
checkObjectSize(model)boolean
-
Name Type Description modelObject3D Returns:
Type Description boolean -
debugBound(isDebug, color)boolean
-
Name Type Default Description isDebugboolean colorColorRepresentation 16776960 Returns:
Type Description boolean -
dispose()
-
-
getBbox(key)UBox3|undefined
-
로드 된 3d 에셋의 박스영역 정보를 이름으로 찾는 메서드입니다.
Name Type Description keystring 3d 에셋 이름
Returns:
Type Description UBox3 | undefined 박스영역 -
getComponentByName(name)U3dMultipleComponentLayer~Component|undefined
-
이름으로 컴포넌트를 찾아 반환하는 메서드.
컴포넌트를 찾을 수 없으면undefined를 반환한다.Name Type Description namestring 컴포넌트 이름
Returns:
Type Description U3dMultipleComponentLayer~Component | undefined 컴포넌트 -
getComponentList()
-
- Deprecated
- getComponents() 를 사용하세요.
-
getComponents()Array.<U3dMultipleComponentLayer~Component>
-
전체 컴포넌트 목록을 반환하는 메서드.
Returns:
Type Description Array.<U3dMultipleComponentLayer~Component> 전체 컴포넌트 목록 -
getComponentsByArea(points)Array.<U3dMultipleComponentLayer~Component>
-
바닥 영역을 구성하는 좌표점을 입력받아, 해당 영역 내에 위치한 컴포넌트 목록을 검색하는 함수
Name Type Description pointsArray.<GeoPosition> 검색 영역을 구성하는 위경도 좌표 배열
Returns:
Type Description Array.<U3dMultipleComponentLayer~Component> 해당하는 component 목록 반환 -
getComponentsByModel(modelName)Array.<U3dMultipleComponentLayer~Component>
-
모델이름으로 생성된 component List를 반환
Name Type Description modelNamelistmodel 속성 값에 생성시 model 이름
Returns:
Type Description Array.<U3dMultipleComponentLayer~Component> 해당하는 component 목록 반환 -
getComponentsByProperty(callback)Array.<U3dMultipleComponentLayer~Component>
-
컴포넌트의 속성 정보(Property)로 특정 컴포넌트를 검색하는 함수
Name Type Description callbackfunction 검색 콜백함수. 파라미터로 컴포넌트 객체와 해당하는 속성정보를 입력받는다.
Returns:
Type Description Array.<U3dMultipleComponentLayer~Component> 해당하는 component 목록 반환 Example
const searched = componentLayer.getComponentsByProperty( function (component, properties) { for(let [key, value] of Object.entries(properties)) { if(key.equal("건축용도")) { return component; } else if(Class} } }); for(const component of searched) { console.log(`[${component.name}] 검색 완료!`); } -
getInstancedInfo()U3dMultipleComponentLayer~InstancedInfoStore
-
인스턴스 컴포넌트의 메타데이터를 반환하는 메서드
Returns:
Type Description U3dMultipleComponentLayer~InstancedInfoStore 인스턴스 컴포넌트 정보 -
getListModel()Array.<U3dMultipleComponentLayer~ModelDataInfo>
-
로드된 3D 에셋 파일 의 원본 정보 목록을 반환하는 메서드.
Returns:
Type Description Array.<U3dMultipleComponentLayer~ModelDataInfo> 3D 에셋 원본 정보 목록 -
getListModelByName(name)U3dMultipleComponentLayer~ModelDataInfo|undefined
-
이름으로 3D 에셋 원본 정보를 찾아 반환하는 메서드.
Name Type Description namestring 찾을 3D 에셋 이름
Returns:
Type Description U3dMultipleComponentLayer~ModelDataInfo | undefined 찾은 3D 에셋 원본 정보. 없으면 undefined -
getPositionList()
-
- Deprecated
- 사용 안하는 메서드입니다. getComponents() 를 사용하세요.
-
hide()
-
레이어 비가시화(hide) 함수
-
hideComponent(component)Promise.<void>
-
특정 컴포넌트를 화면에서 감추는(hide) 메서드입니다.
Name Type Description componentU3dMultipleComponentLayer~Component 대상 컴포넌트. 인스턴스 컴포넌트를 포함합니다.
Returns:
Type Description Promise.<void> 작업 성공 -> resolve(), 작업 실패 -> reject() -
hideLabel()Promise.<boolean>
-
레이어의 모든 컴포넌트 라벨 POI을 비가시화(hide)하는 메서드입니다.
Returns:
Type Description Promise.<boolean> 작업 성공 -> true, 작업 실패 -> false -
isInstanced()boolean
-
현재 레이어가 인스턴스 컴포넌트 생성 모드인지 확인하는 메서드.
true일 경우,addPosition()호출 시 컴포넌트가 인스턴스 방식으로 생성된다.Returns:
Type Description boolean true: 인스턴스 모드 /false: 일반 모드 -
loadModel(modelInfo)Promise.<(void|ModelObject3D)>
-
입력한 3D 에셋 정보를 파싱해 GeOnDT가 사용할 수 있는 데이터로 로드하는 메서드입니다.
Name Type Description modelInfoU3dMultipleComponentLayer~ModelDataInfo 3D 에셋 정보
Returns:
Type Description Promise.<(void|ModelObject3D)> Example
let model = { name: '다가구주택', ext: '3ds', baseurl: '모델 요청 URL', fileName: 'VIL_A.3ds' } layer.loadModel(model); -
loadWork(savedData)Promise.<Array.<(U3dComponentPosition|undefined)>>
-
레이어의 작업을 불러오는 함수
Name Type Description savedDataComponentParam 저장된 작업 데이터(단일/배열 허용)
Returns:
Type Description Promise.<Array.<(U3dComponentPosition|undefined)>> 모든 컴포넌트 결과 배열 -
offSelectHelperMeshes()
-
컴포넌트 선택을 위한 헬퍼 메시를 비활성화하는 메서드
-
onSelectHelperMeshes()
-
컴포넌트 선택을 위한 헬퍼 메시를 활성화하는 메서드
-
pauseAnimation()
-
전체 컴포넌트의 이동/주행 애니메이션을 일시정지하는 메서드입니다..
addMovePoint(),moveStart()등으로 시작된 경로 기반 이동을 일시 정지합니다. -
removeAllComponent()
-
전체 컴포넌트를 제거하는 메서드입니다.
-
removeAllPosition()
-
- Deprecated
- 사용하지 않는 메서드입니다. removeAllComponent 메서드를 사용하세요.
-
removeComponent(selected)
-
특정 컴포넌트를 레이어에서 제거하는 메서드입니다.
Name Type Description selectedU3dMultipleComponentLayer~Component 제거할 컴포넌트
-
removeComponentByName(name)
-
컴포넌트의 이름을 받아 해당하는 컴포넌트를 제거하는 메서드입니다.
Name Type Description namestring 제거할 컴포넌트 이름
-
removeLabel()Promise.<boolean>
-
레이어의 모든 컴포넌트 라벨 POI을 삭제하는 메서드입니다.
Returns:
Type Description Promise.<boolean> 작업 성공 -> true, 작업 실패 -> reject -
removeModelAlphaMap(name)
-
이름으로 등록된 컴포넌트의 알파맵 속성을 제거하는 메서드입니다. [용어] 알파맵(alphaMap) - 표면 전체의 불투명도를 제어하는 회색조 텍스처
Name Type Description namestring 컴포넌트 이름
-
removePosition(selected)
-
Name Type Description selectedU3dMultipleComponentLayer~Component - Deprecated
- removeComponentByName 메서드를 사용하세요.
-
removePositionByName(name)
-
Name Type Description namestring 제거하려는 컴포넌트 이름
- Deprecated
- 사용하지 않는 메서드입니다. removeComponentByName 메서드를 사용하세요.
-
resetModelAlphaMap(name)
-
이름으로 등록된 컴포넌트의 알파맵 속성을 원본으로 되돌리는 메서드입니다. [용어] 알파맵(alphaMap) - 표면 전체의 불투명도를 제어하는 회색조 텍스처
Name Type Description namestring 컴포넌트 이름
-
restartAnimation()
-
전체 컴포넌트의 이동/주행 애니메이션을 재시작하는 메서드입니다.
addMovePoint(),moveStart()등으로 시작된 경로 기반 이동을 초기화 하고 재시작 한다. -
saveWork()Object|undefined
-
컴포넌트 등 레이어의 작업을 저장하는 함수
Returns:
Type Description Object | undefined -
selectComponentByTrails(e)Array.<U3dMultipleComponentLayer~Component>
-
누적 경로(trail)를 통해 해당하는 컴포넌트를 선택하는 함수
Name Type Description eMouseEvent 클릭 이벤트
Returns:
Type Description Array.<U3dMultipleComponentLayer~Component> 선택된 컴포넌트 리스트 -
setBbox(key, value)
-
로드 된 3d 에셋의 박스영역 정보를 key-value 형식으로 저장하는 메서드입니다.
Name Type Description keystring 저장 키
valueUBox3 박스영역
-
setCameraTrace(opt)
-
특정 컴포넌트를 기준으로 카메라 추적 시점을 설정합니다. 비행 시뮬레이션 등 컴포넌트 애니메이션 적용 시 카메라의 시점을 제어합니다.
Name Type Description optU3dMultipleComponentLayer~CameraViewOption 카메라 추적 제어 옵션
-
setHelperPosition(position)
-
helper 포지션의 위치를 설정
Name Type Description positionWorldPositionVector3 optional 설정 할 world 좌표 위치
-
setInstanced(val)
-
컴포넌트 출력 시 Instanced mesh로 출력할 것인지 설정하는 함수
Name Type Description valboolean Instanced mesh 여부
-
setModelAlphaTest(name, alphaFilter)
-
이름으로 등록된 컴포넌트의 알파테스트 속성을 설정하는 메서드입니다.
[용어]
알파 테스트(Alpha Test) - 재질의 투명도 값을 기준으로 픽셀을 렌더링할지 여부를 결정 속성 값
(opacity값이 알파테스트 값보다 낮으면 화면에 렌더링되지 않습니다.)Name Type Description namestring 컴포넌트 이름
alphaFilternumber 알파테스트 정수
-
setRotation(degree, axis)
-
레이어에 회전각을 지정하는 메서드입니다.
레이어에 출력되고 있는 컴포넌트에 일괄적으로 회전각이 지정됩니다.Name Type Description degreenumber 회전각
axisVector3Like 회전축 ex) {x:1, y:0, z:0} x축 기준 회전
-
setScale(scale)
-
레이어에 표시된 모든 컴포넌트의 크기를 전체 설정하는 메서드입니다.
Name Type Description scaleVector3Like | number 크기값.
{ x, y, z }또는 Vector3로 입력하면 각 축을 개별적으로 설정합니다.
숫자로 입력하면 X, Y, Z 축 모두 동일한 크기로 설정합니다. -
show()
-
레이어 가시화(show) 함수
-
showComponent(component)Promise.<void>
-
특정 컴포넌트를 화면에 나타내는(show) 메서드입니다.
Name Type Description componentU3dMultipleComponentLayer~Component 대상 컴포넌트. 인스턴스 컴포넌트를 포함합니다.
Returns:
Type Description Promise.<void> 작업 성공 -> resolve(), 작업 실패 -> reject() -
showLabel()Promise.<boolean>
-
레이어의 모든 컴포넌트 라벨 POI을 가시화(show)하는 메서드입니다.
Returns:
Type Description Promise.<boolean> 작업 성공 -> true, 작업 실패 -> false -
startAnimation()
-
전체 컴포넌트의 이동/주행 애니메이션을 시작하는 메서드입니다.
addMovePoint(),moveStart()등으로 시작된 경로 기반 이동을 시작합니다. -
startMixers()
-
전체 컴포넌트의 내장 애니메이션 클립 재생을 시작하는 메서드입니다.
프로펠러 회전, 걷기 동작처럼 3D 에셋 파일 자체에 포함된 클립 애니메이션을 시작합니다. -
stopAnimation()
-
/** 전체 컴포넌트의 이동/주행 애니메이션을 정지하는 메서드입니다.
addMovePoint(),moveStart()등으로 시작된 경로 기반 이동을 멈춥니다. -
stopMixers()
-
전체 컴포넌트의 내장 애니메이션 클립 재생을 정지하는 메서드입니다.
프로펠러 회전, 걷기 동작처럼 3D 에셋 파일 자체에 포함된 클립 애니메이션을 멈춥니다. -
update(drawArg, curTime)
-
Name Type Description drawArgUDrawArg optional curTimenumber optional -
visibleCumulativeRoute(isVisible)
-
컴포넌트 전체 누적 경로(CumulativeRoute)의 가시화를 설정하는 함수
Name Type Description isVisibleboolean 가시화 여부 (true || false)
Type Definitions
-
ModelDataInfo
-
3D 에셋 파일을 로드할 때 필요한 원본 정보.
3ds, obj, glb, fbx 등 다양한 3D 파일 포맷을 지원한다.Properties:
Name Type Description namestring 3D 에셋 이름 (사용자가 직접 지정)
baseurlstring 3D 에셋 파일을 불러올 URL 경로
fileNamestring 3D 에셋의 원본 파일명 (예:
"building.3ds")extstring 3D 에셋 파일 포맷 (예:
"3ds","obj","glb","fbx")