GeOnDT GeOnDT for JS

Class: UAnalyMultipleComponent

UAnalyMultipleComponent

~extends UAnaly
다중 컴포넌트(시설물) 관리 클래스
컴포넌트 생성, 삭제, 변경 등의 기능을 제공한다.

new UAnalyMultipleComponent(opt)

다중 컴포넌트(시설물) 분석 모드의 생성자

Name Type Description
opt UAnalyMultipleComponentCO optional

생성자 옵션

Members

additionalOpt

컴포넌트 생성 시 적용되는 부가 옵션(setAdditionalOpt으로 설정한 값)을 반환하는 함수

Methods

active()

분석모드 실행 함수

addArea(interval, mode, opt)

영역으로 컴포넌트를 추가하는 함수
기존의 작업 및 이벤트를 종료하고 구간 추가 이벤트 리스너를 생성한다. 그려진 영역에 정해진 간격으로 컴포넌트를 추가한다.

Name Type Default Description
interval number

추가할 컴포넌트 간 간격

mode string 'area' optional

영역 모드 (area : 자유영역 / circle : 원 영역)

opt object {} optional

영역 옵션 값

Name Type Description
points Array.<GeoPosition> optional

좌표를 직접 입력할 경우 사용하는 지리좌표 배열

addInterval(interval, opt, isCreateOnModel)

구간으로 컴포넌트를 추가하는 함수
기존의 작업 및 이벤트를 종료하고 구간 추가 이벤트 리스너를 생성한다.
그려진 구간 라인에 따라 정해진 간격으로 컴포넌트를 추가한다.

Name Type Default Description
interval number

추가할 컴포넌트 간 간격

opt object {} optional

구간 라인 옵션 값

Name Type Description
points Array.<GeoPosition> optional

좌표를 직접 입력할 경우 사용하는 지리좌표 배열

lineTension number optional

구간 라인 곡선률 (0이면 직선)

isCreateOnModel boolean false optional

컴포넌트 생성 시, 모델레이어를 감지하여 모델레이어 객체 위에 출력을 허용할 건지의 여부

addRoad()

기존 작업을 중단하고 도로 그리기 모드를 활성화하는 함수
클릭 이벤트를 활성화 해, 사용자가 클릭한 지점에 도로를 생성하고, 더블클릭으로 도로 생성을 종료한다.

addSingle(isCreateOnModel)

단일 컴포넌트를 추가하는 함수
기존의 작업 및 이벤트를 종료하고 단일 추가 이벤트 리스너를 생성한다.
입력 된 좌표에 한개의 컴포넌트를 추가한다.

Name Type Default Description
isCreateOnModel boolean false optional

컴포넌트 생성 시, 모델레이어를 감지하여 모델레이어 객체 위에 출력을 허용할 건지의 여부

cameraAnalysis(options)

Name Type Description
options U3dView~ViewAnalyOption

카메라 분석 옵션

Deprecated
  • 제거될 메서드입니다.

    checkIsExistLight(name)boolean

    광원뷰의 중복을 체크하는 함수

    Name Type Description
    name string

    컴포넌트의 이름

    Returns:
    Type Description
    boolean 중복 여부

    clear()

    분석모드를 정리하는 함수
    활성화된 작업, 추가된 컴포넌트/도로, 선택 상태, 뷰 및 오버레이를 모두 제거한다.

    clearComponent()

    전체 컴포넌트 제거하는 함수

    clearRoad()

    전체 도로 컴포넌트를 제거하는 함수

    clearSelect()

    선택된 컴포넌트를 취소하고 선택을 초기화하는 함수

    deactive()

    분석모드 종료 함수

    edit(mode)

    Gizmo 모드를 변경하는 메서드
    Gizmo란 3D 화면에서 컴포넌트를 직접 조작할 수 있는 도구로,
    이동 / 회전 / 크기 조절 중 원하는 작업 모드를 선택할 수 있습니다.

    Name Type Description
    mode string optional

    Gizmo 모드 이름

    • 'translate' : 이동
    • 'rotate' : 회전
    • 'scale' : 크기 조절
    • 'none' : Gizmo 종료

    endLightAnaly(component)

    Name Type Description
    component U3dMultipleComponentLayer~Component
    Deprecated
    • 제거될 메서드입니다.

      finishWork()

      EventListener, Gizmo를 제거하고 작업을 종료하는 함수

      getCurrentLight()

      Deprecated
      • 제거될 메서드입니다.

        getLayer()U3dMultipleComponentLayer|undefined

        현재 지정된 레이어를 반환하는 함수

        Returns:
        Type Description
        U3dMultipleComponentLayer | undefined

        getLineMesh()Object3D|undefined

        구간 추가시 생성되는 가이드 라인(lineMesh)을 반환하는 함수

        Returns:
        Type Description
        Object3D | undefined 가이드 라인(lineMesh)

        getMapTime()object

        현재 설정된 태양 시간을 반환하는 함수

        Returns:
        Type Description
        object 현재 태양 시간 (Date 객체)
        Example
        Tue Jun 27 2023 17:47:38 GMT+0900 (한국 표준시)

        getRoads()Array.<U3dRoad>

        추가된 도로 목록을 반환하는 함수

        Returns:
        Type Description
        Array.<U3dRoad> 추가된 도로(U3dRoad) 객체 배열

        getScene()UScene

        출력 화면(scene)을 반환하는 함수

        Returns:
        Type Description
        UScene analy._scene

        getSelected()U3dComponentPosition|U3dRoad|undefined

        선택된 컴포넌트를 반환하는 함수

        Returns:
        Type Description
        U3dComponentPosition | U3dRoad | undefined 현재 선택된 컴포넌트

        hideLabel()

        전체 컴포넌트(도로 포함) 라벨울 감추는(hide) 함수

        isLoadModel(name, baseurl)Object3D|undefined

        로드된 모델을 검색하여 리턴하는 함수
        모델을 좌표에 출력하기 전 모델 원본 데이터 로드가 완료되었는 지 확인

        Name Type Description
        name string

        모델 원본 데이터 이름

        baseurl string optional

        모델 url, 미입력 시 name 만으로 검색 (이름은 중복될 수 있기 때문에 넣어 주는게 더 정확한 검색이 가능하다.)

        Returns:
        Type Description
        Object3D | undefined 로도 완료된 모델

        lightAnalysis(options)

        Name Type Description
        options any
        Deprecated
        • 제거될 메서드입니다.

          lineMeshHide()

          구간 추가 시 생성되는 가이드 라인을 비가시화(hide)하는 함수

          lineMeshShow()

          구간 추가 시 생성되는 가이드 라인을 가시화(show)하는 함수

          async loadModel(modelData)

          화면에 출력할 모델을 설정(Load)하는 함수
          이후 사용자가 addSingle(), addInterval(), addArea() 등 추가 함수를 호출해 설정된 좌표에 해당 모델을 화면에 출력한다.

          Name Type Description
          modelData object

          추가할 컴포넌트 Model 옵션값

          Example
          const modelData = {
               name: '다가구주택', //model 이름 (사용자 정의)
               type: "component" //model 타입
               baseurl: info.baseUrl, //model을 Load해오는 서버 URL
               fileName: "VIL_A.3ds", //model의 원본 파일명
               ext: '3ds' //model 원본 데이터 포맷
           };
          
           analy.loadModel(modelData);

          readyModel(name, baseurl)

          로드된 모델 중 실제로 화면에 출력할 모델을 설정하는 함수

          Name Type Description
          name string

          모델의 이름

          baseurl string

          모델 데이터 URL

          removeEventListener(type, listener)

          분석모드의 EventListener를 제거하는 함수
          type과 listener를 모두 생략하면 모든 리스너를 제거하고 작업을 종료한다.

          Name Type Description
          type string

          이벤트 타입 (click, dblclick, select, create 등)

          listener UEventDispatcher~Listener optional

          제거할 리스너. 생략 시 해당 타입의 모든 리스너 제거

          removeSelected(selected)

          선택된 컴포넌트를 제거하는 함수

          Name Type Description
          selected U3dMultipleComponentLayer~Component | U3dRoad optional

          제거할 컴포넌트. 미입력 시 현재 선택된 컴포넌트를 제거한다.

          resetGizmo()

          Gizmo 모드를 초기화하는 함수

          saveComponent()Object|undefined

          현재 추가된 컴포넌트를 JSON 데이터 형식으로 저장하는 함수

          Returns:
          Type Description
          Object | undefined 컴포넌트 saveDate

          saveRoad()Array.<U3dRoadSaveData>

          현재 추가된 도로 컴포넌트 정보를 JSON 데이터를 저장하는 함수

          Returns:
          Type Description
          Array.<U3dRoadSaveData> 저장될 데이터 배열

          setAdditionalOpt(opt)

          컴포넌트 생성 시 적용할 부가 옵션을 설정하는 함수
          addSingle, addInterval, addArea 등의 컴포넌트 추가 함수가 호출될 때 함께 적용된다.

          Name Type Description
          opt object

          부가 옵션

          Name Type Description
          style object optional

          컴포넌트 머터리얼 스타일 옵션

          scale Vector3 | Object optional

          컴포넌트 스케일

          rotation Euler | Object optional

          컴포넌트 회전값

          setComponentData(savedData)Promise.<U3dComponentPosition>

          세이브 데이터(JSON)를 입력 받아 컴포넌트의 position 및 Overlay를 추가하는 함수

          Name Type Description
          savedData Array.<ComponentParam>
          Returns:
          Type Description
          Promise.<U3dComponentPosition> 생성된 컴포넌트
          Example
          let savedData = {
              "component": [
                  {
                      "layer": "공공기관",
                      "components": [
                          {
                              "name": "공공기관",
                              "position": { "x": 126.91531286469325, "y": 37.53021590591402, "z": 17.142259662314714 },
                              "scale": {"x": 1,  "y": 1, "z": 1 },
                              "rotation": { "x": 0,  "y": 0, "z": 0 },
                              "overlay": []
                          }
                      ]
                  }
              ]
          }
          analy.setComponentData(savedData);

          setCurrentLight(light)

          Name Type Description
          light any
          Deprecated
          • 제거될 메서드입니다.

            setIntervalDirection(direction)

            구간 컴포넌트가 바라보는 방향을 설정하는 메서드
            컴포넌트를 추가할 때 어느 방향을 향할지 지정할 수 있다.

            Name Type Description
            direction string

            방향

            • 'front' : 앞
            • 'back' : 뒤
            • 'left' : 왼쪽
            • 'right' : 오른쪽

            setIntervalTension(tension)

            구간 추가 시 그리는 라인의 곡선률을 설정하는 함수

            Name Type Description
            tension number

            곡선률(곡선이 꺽이는 정도). 0일때 직선을 그린다.

            setLayer(layer)

            분석모드에 결과 출력 레이어를 지정하는 함수

            Name Type Description
            layer U3dMultipleComponentLayer

            출력 레이어

            setLineMaterial(opt)

            구간 추가시 생성되는 가이드 라인(lineMesh)의 Material 옵션을 설정하는 함수

            Name Type Description
            opt object

            Material 옵션

            Name Type Description
            color string

            가이드 라인 색상

            opacity number

            가이드 라인 투명도

            width number

            가이드 라인 너비

            setMapTime(time, intensity)

            Name Type Description
            time Date | string | number
            intensity number optional
            Deprecated
            • 제거 될 메서드입니다.

              setRoad(options)Promise.<U3dRoad>|undefined

              도로를 생성하는 함수

              Name Type Description
              options U3dRoadOption | Array.<U3dRoadOption>

              도로 생성 옵션 또는 옵션 배열

              Returns:
              Type Description
              Promise.<U3dRoad> | undefined 도로 생성 성공 시 resolve로 생성한 도로를 반환하고 실패 시 reject로 에러 메세지가 반환된다.

              setRoadHeight(height)

              도로에 높이를 지정하는 함수

              Name Type Description
              height number

              도로 높이 값

              setRoadImage(url)

              도로 이미지를 지정하는 함수

              Name Type Description
              url string

              도로 이미지 소스가 저장된 경로

              setRoadWidth(width)

              도로에 너비를 지정하는 함수

              Name Type Description
              width number

              도로 너비 값

              setRotation(degree, axis)

              컴포넌트 회전값을 지정하는 함수

              Name Type Description
              degree number

              컴포넌트 Angle 값 (degree)

              axis Vector3

              컴포넌트 회전축 값 (axis) {x:1, y:0, z:0}

              setScale(scale)

              컴포넌트 크기를 지정하는 함수

              Name Type Description
              scale Vector3 | number

              컴포넌트 Scale 값

              setSelect(active, type)

              컴포넌트를 선택 모드를 활성하는 함수

              Name Type Description
              active boolean

              선택 모드 활성 여부

              type string optional

              컴포넌트 타입 component road

              setSelectedRotation(degreeX, degreeY, degreeZ)

              선택된 컴포넌트의 회전값을 degree 단위로 설정하는 함수

              Name Type Description
              degreeX number

              X축 회전 각도 (degree)

              degreeY number

              Y축 회전 각도 (degree)

              degreeZ number

              Z축 회전 각도 (degree)

              setStyle(opt)

              컴포넌트의 렌더링 스타일을 설정합니다.

              Name Type Description
              opt object

              렌더링 스타일 옵션

              Name Type Description
              renderOrder number optional

              렌더링 순서 우선도 (값이 클수록 위에 그려짐).

              depthTest boolean optional

              깊이 테스트 여부.

              depthWrite boolean optional

              렌더링 시 서로 겹치는 물체를 가릴지 말지를 결정하는 설정.

              • true: 이후 겹치는 물체가 생기면 겹쳐지는 부분을 자연스럽게 가림.
              • false: 이후 물체가 겹쳐도 가리지 않고 무조건 위에 그려짐.

              showLabel()

              전체 컴포넌트(도로 포함) 라벨을 보여주는(show) 함수

              Type Definitions

              U3dRoadOptionobject

              도로 생성 옵션

              Properties:
              Name Type Argument Description
              positions Array.<GeoPosition>

              도로 좌표 배열

              name string <optional>

              도로 이름

              width number <optional>

              도로 너비

              height number <optional>

              도로 높이

              imageUrl string <optional>

              도로 이미지 URL

              visible boolean <optional>

              도로 가시화 여부

              labelVisible boolean <optional>

              라벨 가시화 여부

              labelcenter WorldPosition <optional>

              라벨 중심 좌표

              UAnalyMultipleComponentCOobject

              생성자 옵션 ~extends UAnaly~UAnalyCO

              Properties:
              Name Type Argument Default Description
              name string <optional>
              'multipleComponent'

              분析모드 이름

              scale WorldPosition <optional>
              {x:1,y:1,z:1}

              컴포넌트 크기

              rotation WorldPosition <optional>
              {x:0,y:0,z:0}

              컴포넌트 회전값

              lineVisible boolean <optional>
              true

              구간 추가 시 가이드 라인 가시화 여부