GeOnDT GeOnDT for JS

Class: U3dStaticLine

U3dStaticLine

three.js 장면에 선 하나를 직접 그려 넣는 가벼운 라인 클래스입니다.
도형 레이어를 거치지 않고 장면에 바로 올리며, 좌표를 담을 자리를 처음에 한 번 잡아 두고 그 안에서만 정점을 늘렸다 줄입니다. 그래서 정점은 최대 500개까지만 넣을 수 있고, 그 대신 정점을 추가해도 지오메트리를 다시 만들지 않습니다.

깊이 검사를 끄고 그리므로 다른 도형이나 지형에 가려지지 않고 항상 위에 보입니다. 보조선·가이드선을 그릴 때 사용합니다. 좌표는 월드 좌표(EPSG:3857)로 넣으며, 만든 뒤 addVertex로 정점을 하나씩 이어 붙입니다.

new U3dStaticLine(opt)

장면에 올릴 선을 만듭니다.
정점 500개를 담을 자리를 미리 잡아 두고 빈 선으로 시작하므로, 만든 뒤 addVertex로 좌표를 넣어야 선이 보입니다.

opt.scene을 넣지 않으면 선을 만들지 않고 빈 객체로 남습니다. 이때 addVertex·removeVertex·removeAllVertex는 모두 false를 돌려줍니다.

Name Type Description
opt U3dStaticLine~U3dStaticLineOption optional

장면·이름·색상·두께를 담은 생성 옵션. scene은 반드시 넣어야 합니다

Members

listArray.<Line>

지금까지 만들어진 모든 선의 three.js Line 객체를 만든 순서대로 담아 둔 목록입니다.
생성자가 장면에 올리면서 하나씩 넣으며, 선을 지워도 이 목록에서는 빠지지 않습니다.

Methods

addVertex(x, y, z)boolean

라인 끝에 정점 하나를 추가하고 즉시 화면에 반영합니다.
정점은 최대 500개까지 추가할 수 있으며, 한도를 넘으면 추가하지 않고 false를 돌려줍니다.

Name Type Description
x number

정점의 월드 X좌표 (EPSG:3857)

y number

정점의 월드 Y좌표 (EPSG:3857)

z number

정점의 월드 Z좌표 (EPSG:3857)

Returns:
Type Description
boolean 정점을 넣었으면 true. 장면 없이 만들어졌거나 500개를 채웠으면 false

removeAllVertex()boolean

선의 정점을 모두 지워 빈 선으로 되돌립니다.
정점을 담아 둔 자리는 그대로 두므로, 이어서 addVertex로 다시 500개까지 넣을 수 있습니다.

Returns:
Type Description
boolean 정점을 비웠으면 true. 장면 없이 만들어졌으면 false

removeVertex()boolean

선의 마지막 정점을 하나 지웁니다.
남은 정점이 없으면 아무것도 지우지 않고 빈 선을 그대로 둡니다.

Returns:
Type Description
boolean 장면 없이 만들어졌으면 false, 그 밖에는 지울 정점이 없었더라도 true

updateHeightZ(drawArg)

지형 높이(Z)에 맞춰 라인을 갱신하기 위한 훅(hook)입니다.
기본 구현은 아무 동작도 하지 않으며, 필요 시 확장해 사용하는 자리입니다.

Name Type Description
drawArg UDrawArg

지형 높이를 조회할 때 쓰는 그리기 정보 객체

Type Definitions

U3dStaticLineOptionobject

U3dStaticLine 생성자에 넘기는 옵션입니다.
선의 좌표는 여기에 넣지 않고, 만든 뒤 addVertex로 하나씩 넣습니다.

Properties:
Name Type Argument Default Description
scene Scene

선을 그려 넣을 three.js 장면. 필수이며, 넣지 않으면 선을 만들지 않습니다

name string <optional>

선을 구분하는 이름. 넣지 않으면 U3dLine_0처럼 만들어진 순서대로 번호가 붙은 이름이 자동으로 들어갑니다

color number | string <optional>
0x0001ff

선 색상. 16진수 숫자(0x0001ff) 또는 CSS 색 문자열('#0001ff')을 넣습니다

linewidth number <optional>
20

선 두께 (픽셀). 대부분의 브라우저는 이 값을 무시하고 항상 1픽셀로 그립니다