GeOnDT GeOnDT for JS

Class: U3dLine

U3dLine

~extends U3dGeometry
여러 좌표를 이어 3D 공간에 두께를 가진 선(폴리라인)을 그리는 클래스입니다.
스플라인으로 부드럽게 보간되며, 단색뿐 아니라 좌표별 그라디언트 색상, 선 두께(미터/픽셀 단위) 등을 지정할 수 있습니다.

new U3dLine(opt)

선 도형을 생성합니다.
색상(또는 좌표별 그라디언트 색상 배열)·두께·표본 간격 등을 옵션으로 지정할 수 있으며, 좌표는 생성 후 setPositions(위경도)나 setVertex(월드)로 넣으면 제어점을 이은 곡선으로 그려집니다.

Name Type Default Description
opt U3dLineCO {} optional

생성 옵션

Members

closedboolean

닫힘 여부 (기본값 false).
생성 옵션이나 setParam으로 받은 값을 보관하며 getParam으로 다시 반환됩니다. 변경은 setParam으로 합니다.

divisionsnumber

곡선 표본 간격 (월드 좌표 단위, 기본값 10).
제어점을 이은 곡선을 이 간격으로 나누어 그리므로, 값이 작을수록 곡선이 부드러워지고 정점 수가 늘어납니다. 변경은 setParam으로 합니다.

linewidthnumber

선 두께 요청값 (기본값 1). worldUnits가 true면 미터, false면 화면 픽셀로 해석됩니다.
미터 단위일 때는 위도에 따른 좌표 보정이 곱해져 재질에 적용되므로 실제 적용된 두께는 getLineWidth로 확인합니다. 직접 대입하면 재질에 반영되지 않으므로 변경은 setLineWidth/setParam으로 합니다.

worldUnitsboolean

선 두께의 단위 (기본값 true).
true면 두께를 미터로 해석하여 지도를 확대·축소할 때 선도 같이 굵어지고, false면 화면 픽셀로 해석하여 화면상 두께가 항상 일정합니다. 변경은 setParam으로 합니다.

Methods

clearSurfaceDrape()void

drapeOnSurface로 표면에 붙인 선을 원래 좌표대로 되돌립니다.
진행 중인 드레이프 요청이 있으면 함께 취소되며, 붙인 적이 없으면 아무 일도 하지 않습니다.

Returns:
Type Description
void

dispose()

선을 화면에서 제거하고 관련 리소스(지오메트리·재질)를 해제합니다.
진행 중인 drapeOnSurface 요청도 함께 중단되며, 호출한 뒤에는 같은 인스턴스를 다시 사용할 수 없습니다.

async drapeOnSurface(options)Promise.<(U3dLineDrapeOnSurfaceResult|undefined)>

선을 모델·지형 표면 위에 붙입니다.
원본 좌표는 그대로 두고, divisions 간격으로 만든 표본의 높이만 표면 높이 + offset으로 바꿉니다. 표면을 만나지 못한 표본은 원래 높이를 유지하며, 모든 계산이 끝난 뒤 한 번에 화면에 반영됩니다.

  • 원래 높이로 되돌리려면 clearSurfaceDrape를 호출합니다.
  • 다시 호출하면 진행 중이던 이전 호출은 취소되고 마지막 호출 결과만 반영됩니다.
  • 색상·두께·투명도를 바꿔도 붙인 상태가 유지되지만, 좌표나 divisions·closed를 바꾸면 해제됩니다.
  • 실행 도중 지형이나 모델이 바뀌면(LOD 변경 등) 최신 표면에 맞추기 위해 다시 호출해야 합니다.
  • 화면에서 형태가 변형되는 모델(스키닝·모프·batch)은 계산 대상에서 제외됩니다.

화면이 멈추지 않도록 계산을 나눠 실행하므로 완료까지 여러 프레임이 걸릴 수 있습니다.

Name Type Description
options U3dLineDrapeOnSurfaceOptions

드레이프 옵션

Returns:
Type Description
Promise.<(U3dLineDrapeOnSurfaceResult|undefined)> 성공하면 표본·교차·미교차 개수. 잘못된 입력이나 실행 오류이면 undefined (취소되거나 다음 호출로 대체된 경우에도 오류 없이 undefined)
Example
const result = await line.drapeOnSurface({
    app,
    offset: 3,
    divisions: 5
});

getLineWidth()number

선의 현재 두께를 반환합니다.
재질에 실제로 적용된 값이므로, worldUnits가 true면 위도 보정이 곱해져 요청값(linewidth)과 다를 수 있습니다.

Returns:
Type Description
number 재질에 적용된 선 두께. 단위는 worldUnits에 따라 미터 또는 화면 픽셀

getOpacity()number|undefined

선의 현재 투명도를 반환합니다. (0이면 완전 투명, 1이면 불투명)

Returns:
Type Description
number | undefined 투명도 (0~1). 재질에 설정된 값이 없으면 undefined

getParam()U3dLineParam

선의 현재 속성을 반환합니다. (setParam과 짝을 이룹니다)
반환된 객체를 그대로 setParam에 넘기면 같은 형태를 재현할 수 있습니다.

Returns:
Type Description
U3dLineParam 두께·분할·닫힘·단위 등 현재 속성 객체

setColor(color)

선의 색상을 설정합니다.
단일 색상을 주면 선 전체가 그 색으로, 색상 배열을 주면 좌표를 따라 색이 변하는 그라디언트로 표현됩니다.
배열로 전달할 때는 배열 길이가 현재 꼭짓점(vertex) 수와 같아야 하며, 길이가 다르면 색상이 적용되지 않습니다.

Name Type Description
color ColorRepresentation | Array.<ColorRepresentation>

색상 또는 색상 배열

setLineWidth(width)

선의 두께를 설정합니다. 재질에 즉시 반영됩니다.
worldUnits가 true면 미터 단위로 해석해 위도 보정을 곱해 적용하고, false면 화면 픽셀 단위로 그대로 적용합니다.

Name Type Description
width number

새로 설정할 두께. worldUnits가 true면 미터, false면 화면 픽셀

setOpacity(value)

선의 투명도를 설정합니다. (0이면 완전 투명, 1이면 불투명)
재질에 즉시 반영됩니다.

Name Type Description
value number

투명도 (0~1)

setParam(param)

선의 속성(색상·두께·투명도·분할·닫힘 여부 등)을 한 번에 변경합니다.
전달한 값만 반영되고 나머지는 기존 값이 유지되며, 형태 관련 값을 바꾸면 선이 즉시 다시 생성됩니다.

Name Type Description
param U3dLineCO optional

변경할 속성 객체 (색상·두께·투명도·분할·닫힘·단위)

Type Definitions

U3dLineCOobject

~extends U3dGeometry~U3dGeometryCO
U3dLine 생성자 옵션

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

선 이름

color ColorRepresentation | Array.<ColorRepresentation> <optional>
0xff0000

선 단일 색상 또는 그라디언트용 색상 배열.
배열로 전달 시 길이가 vertices 수와 일치해야 하며, 꼭짓점마다 색상이 보간되어 그라디언트로 표시됩니다.

opacity number <optional>

선 투명도

lineWidth number <optional>
1

선 두께

divisions number <optional>
10

곡선 표본 간격을 계산할 때 사용하는 월드 좌표 단위 값

closed boolean <optional>
false

닫힘 여부. false면 파이프 처럼 끝이 열려있는 형태가 됨

wireframe boolean <optional>

와이어프레임 사용 여부

showLabel boolean <optional>

라벨 가시화 여부

vertices Array.<Vector3> <optional>

선 정점 배열 (형상 정보)

coordinates Array.<Vector3> <optional>

선 위치 배열

properties KeyValue <optional>

선 속성 정보

U3dLineDrapeOnSurfaceOptionsobject

선을 모델·지형 표면에 드레이프할 때 사용하는 옵션입니다.

Properties:
Name Type Argument Default Description
app U3dApp

드레이프 대상 모델·지형 레이어를 조회할 앱

offset number <optional>
0

교차 표면보다 높이거나 낮출 월드 Z 오프셋

divisions number <optional>

곡선을 등간격으로 표본화할 때 사용할 월드 좌표 단위의 최대 간격. 생략하면 선의 divisions를 사용합니다

signal AbortSignal <optional>

실행을 취소할 신호

U3dLineDrapeOnSurfaceResultobject

표면 드레이프 실행 결과입니다.

Properties:
Name Type Description
sampleCount number

생성한 곡선 표본 수

hitCount number

모델·지형 표면과 교차하여 높이를 갱신한 표본 수

missCount number

표면과 교차하지 않아 원래 곡선 높이를 유지한 표본 수

U3dLineParamobject

getParam 함수가 반환하는 라인(Line) 속성 객체

Properties:
Name Type Description
linewidth number

선 두께

divisions number

곡선 표본 간격을 계산할 때 사용하는 월드 좌표 단위 값

closed boolean

시작점과 끝점 연결 여부

worldUnits boolean

선 두께를 월드 단위(m)로 계산할지 여부