GeOnDT GeOnDT for JS

Class: U3dCumulativePath

U3dCumulativePath

이동체가 지나온 경로를 실시간으로 누적해 3D 궤적(꼬리)으로 그려 주는 클래스입니다.
매 프레임 현재 위치를 추가하면 지나온 길이 이어지며, 색상·너비·투명도·그라데이션·스무딩 등을 조절할 수 있습니다.

new U3dCumulativePath(opt)

누적 주행 경로를 생성합니다. app과 scene은 필수입니다.

Name Type Description
opt U3dCumulativePathCO

생성 옵션 (app·scene·경로 스타일·컴포넌트 이름 등)

Members

cumulativeDist

현재까지 누적된 주행(이동) 거리를 반환합니다.

isAutoVisibleboolean

화면 표시를 자동으로 켜고 끌지 여부를 담아 두는 값입니다.
이 클래스는 이 값을 읽지 않으며, 표시 여부는 show·hide로 직접 바꿉니다.

lastUpdatePoint

마지막으로 경로에 추가된 지점(월드 좌표)을 반환합니다.

needUpdate

다음 업데이트에서 경로를 리셋(재생성)해야 하는지 여부를 반환합니다.

targetName

경로가 속한 컴포넌트의 이름을 반환합니다.

visible

경로가 현재 화면에 표시되고 있는지 여부를 반환합니다.

staticU3dCumulativePath.U3dCumulativePathnumber

Methods

createTrailFromPositions(positions)

위치 데이터 배열로부터 전체 경로를 한 번에 생성합니다.

Name Type Description
positions Array.<U3dCumulativePathPositionData>

한 번에 그릴 지점 목록 (위경도, EPSG:4326). 순서대로 이어 붙여 경로를 만듭니다

dispose()

누적 경로 인스턴스를 완전히 해제합니다.

getHelperMesh(update)InstancedMesh

경로 위 지점을 마우스로 선택(pick)할 수 있도록 돕는 보조 mesh를 반환합니다.

Name Type Default Description
update boolean true optional

반환 전에 보조 mesh를 최신 경로로 갱신할지 여부

Returns:
Type Description
InstancedMesh 경로를 클릭으로 집을 때 쓰는 보조 mesh

getPath()USimpleTail|undefined

내부 궤적(tail) 인스턴스를 반환합니다. getTail과 같은 값을 돌려줍니다.

Deprecated
  • `getTail`을 사용합니다.
    Returns:
    Type Description
    USimpleTail | undefined 궤적 인스턴스. 아직 만들어지지 않았으면 undefined

    getTail()USimpleTail|undefined

    내부 궤적(tail) 인스턴스를 반환합니다.

    Returns:
    Type Description
    USimpleTail | undefined 경로를 실제로 그리는 궤적 인스턴스. 아직 만들어지지 않았으면 undefined

    hide()

    경로를 화면에서 숨깁니다.

    removePath()

    경로 mesh를 화면(scene)에서 제거하고 관련 리소스를 해제합니다.

    setColor(color)

    경로 색상을 설정하는 메서드입니다.

    Name Type Description
    color ColorRepresentation

    경로 색상. 16진수 숫자(0xff0000), CSS 색 문자열('#ff0000') 또는 THREE.Color를 넣습니다

    setGradation(colorGradation)

    경로 색상 그라데이션을 설정하는 메서드입니다.

    Name Type Description
    colorGradation boolean

    그라데이션 사용 여부. true면 사용하고, false면 사용하지 않습니다.

    setOpacity(opacity)

    경로 투명도를 설정하는 메서드입니다.

    Name Type Description
    opacity number

    설정할 투명도 값 (0~1)

    setPathOffset(offset)

    경로를 진행 방향 기준으로 앞뒤로 이동시키는 오프셋을 설정하는 메서드입니다.
    양수면 진행 방향 앞쪽, 음수면 뒤쪽으로 경로가 그려집니다.

    Name Type Description
    offset number

    경로 오프셋 (m)

    setPathStyle(opt)

    경로 종합적인 스타일을 적용하는 메서드입니다.

    Name Type Description
    opt U3dCumulativePath~U3dCumulativePath_StyleOpt

    바꿀 스타일 항목. 넣은 항목만 반영되고 나머지는 현재 값을 유지합니다

    setSmooth(enable, factor, maxDistance)

    경로를 부드럽게 이어지도록 스무딩을 설정하는 메서드입니다.
    새 지점을 이전 지점 쪽으로 보간해 급격한 꺾임을 완화합니다.

    Name Type Description
    enable boolean

    true면 지점 사이를 부드럽게 잇습니다

    factor number

    보간 비율 (0~1, 클수록 새 지점에 가깝게)

    maxDistance number

    스무딩을 적용할 최대 지점 간 거리 (m). 이보다 멀면 스무딩하지 않음

    setStyleFunc(styleFunc)

    그라데이션 보간 함수를 설정하는 메서드입니다.
    파라미터를 넣지 않으면 내장된 높이 기반 기본 보간 함수를 사용해 그라데이션을 적용합니다.

    Name Type Description
    styleFunc U3dCumulativePathStyleFunc | undefined

    setTailPolicy(opt)

    USimpleTail buffer/simplification policy를 설정합니다
    initLength는 런타임에서 기존 버퍼보다 큰 값일 때만 확장하며, 축소는 하지 않습니다.

    Name Type Description
    opt USimpleTail_Policy

    지점을 얼마나 솎아낼지 정하는 옵션. 넣지 않은 항목은 현재 값을 유지합니다

    setWidth(width)

    경로 너비를 설정하는 메서드입니다.

    Name Type Description
    width number

    경로 굵기 (미터)

    show()

    경로를 화면에 표시합니다.

    updatePath(pos, dist, time)

    현재 위치를 경로 끝에 이어 붙여 궤적을 갱신합니다.
    이동 중 매 프레임 호출하면 실시간으로 이동 경로가 그려집니다.

    Name Type Description
    pos WorldPosition

    이어 붙일 지점의 월드 좌표 (EPSG:3857). x·y·z가 모두 있어야 반영됩니다

    dist number

    경로 시작점부터 이 지점까지 누적된 이동 거리 (미터). 직전 값과의 차이가 precision보다 작으면 건너뜁니다

    time number

    이 지점의 시각. 색 계산과 위치 기록에 그대로 쓰입니다

    Type Definitions

    U3dCumulativePathCOobject

    U3dCumulativePath 생성자 옵션

    Properties:
    Name Type Argument Default Description
    scene Scene

    경로를 그려 넣을 장면. 필수

    app U3dApp

    좌표 변환과 렌더링에 사용할 앱. 필수

    targetName string <optional>
    ''

    이 경로가 따라다니는 대상 객체의 이름. 경로를 구분하는 데 사용합니다

    pathStyle U3dCumulativePath.types~U3dCumulativePath_StyleOpt <optional>

    색상·굵기·그라데이션 등 경로를 그리는 방식

    initTime number <optional>
    0

    경로를 시작할 시각. 이어서 기록할 때 앞선 시각을 넘깁니다

    initDist number <optional>
    0

    경로를 시작할 누적 거리 (미터). 이어서 기록할 때 앞서 이동한 거리를 넘깁니다

    initPositions Array.<U3dCumulativePath.types~U3dCumulativePathPositionData> <optional>
    []

    만들자마자 그려 둘 지점 목록. 이미 지나온 경로를 한 번에 복원할 때 사용합니다

    drawOffset number <optional>
    0

    각 지점을 진행 방향으로 밀어내는 거리 (미터). 양수면 진행 방향 앞, 음수면 뒤로 옮겨 그립니다

    precision number <optional>

    최소 업데이트 거리 — 이 미만의 dist 증가량은 스킵

    U3dCumulativePathPositionDataobject

    누적 경로 위치 데이터 항목

    Properties:
    Name Type Description
    position Vector3 | Object

    그 지점의 위경도 좌표 (EPSG:4326). initPositions·createTrailFromPositions로 넘기면 내부에서 월드 좌표로 바꿔 그립니다

    dist number

    경로 시작점부터 그 지점까지 누적된 이동 거리 (미터)

    time number

    그 지점이 기록된 시각. updatePath에 넘긴 값을 그대로 보관합니다

    U3dCumulativePathStyleFunc(pos, dist, time)number

    경로의 각 지점에서 색을 얼마나 진하게 칠할지 정하는 콜백입니다.
    setStyleFunc이나 스타일 옵션의 styleFunc으로 등록하며, 등록하면 기본 그라데이션 대신 이 함수의 결과를 사용합니다.

    Name Type Description
    pos Vector3

    그 지점의 좌표. updatePath로 넣은 지점은 월드 좌표(EPSG:3857), initPositions로 넣은 지점은 위경도(EPSG:4326)입니다

    dist number

    경로 시작점부터 그 지점까지 누적된 이동 거리 (미터)

    time number

    그 지점이 기록된 시각. updatePath에 넘긴 값을 그대로 받습니다

    Returns:
    Type Description
    number 0~1 사이의 값. 0에 가까울수록 옅고 1에 가까울수록 진하게 칠합니다

    U3dCumulativePath_StyleOptobject

    누적 주행 경로 스타일 옵션

    Properties:
    Name Type Argument Default Description
    type 'tail' | 'pipe' <optional>
    'tail'

    경로 종류.

    lineType string <optional>
    'circle'

    경로 선 종류.

    color ColorRepresentation <optional>
    'rgb(255,0,0)'

    경로 색상. 16진수 숫자, CSS 색 문자열 또는 THREE.Color를 넣습니다

    opacity number <optional>
    1

    불투명도 (0~1). 1보다 작으면 투명 처리가 켜집니다

    width number <optional>
    3

    경로 굵기 (미터)

    colorGradation boolean <optional>
    false

    경로를 따라 색을 점점 옅어지게 그릴지 여부

    styleFunc U3dCumulativePathStyleFunc <optional>

    지점별 색 농도를 직접 정하는 함수. 넣으면 colorGradation의 기본 계산 대신 이 함수를 씁니다

    debugPointBox boolean <optional>
    false

    확인용 표시 옵션.

    smooth boolean <optional>
    false

    지점 사이를 부드럽게 이을지 여부

    smoothFactor number <optional>
    0.35

    부드럽게 잇는 정도 (0~1). 클수록 더 완만해집니다

    smoothMaxDistance number <optional>
    5

    부드럽게 잇기를 적용할 지점 간 최대 거리 (미터). 이보다 멀리 떨어진 구간은 곧게 잇습니다

    drawOffset number <optional>
    0

    각 지점을 진행 방향으로 밀어내는 거리 (미터). 양수면 진행 방향 앞, 음수면 뒤로 옮겨 그립니다

    onFadeOut function <optional>

    maxDistance 경계가 앞으로 이동해 경로 앞부분이 완전히 투명해질 때 호출되는 콜백

    tailPolicy USimpleTail_Policy <optional>

    경로 단순화 옵션