new UDashLineGeometry(options)
점선(띠) 라인 지오메트리를 생성합니다.
만든 뒤 addPoint나 setPoints로 점을 넣으면 곡선으로 이어진 일정 너비의 띠가 만들어집니다.
| Name | Type | Description |
|---|---|---|
options |
UDashLineGeometry~UDashLineGeometryCO |
optional
생성 옵션 |
Members
-
appU3dApp undefined
-
생성 옵션으로 받아 보관하는 앱 객체입니다. 지형 높이 조회는
drawArg가 담당합니다. -
curveType'curve' 'line'
-
점을 잇는 방식입니다.
'line'이면 장력을 낮춰 점 사이를 곧게 잇고,'curve'면 부드러운 곡선으로 잇습니다. -
detailSegmentnumber
-
곡선을 훑는 간격입니다. 값이 클수록 점을 성기게 뽑아 정점 수가 줄고 모양이 각져집니다.
-
drawArgundefined Object
-
지형 높이를 조회하는 객체입니다.
getRenderHeightAtPoint(x, y)가 돌려준 높이에 0.1m를 더해 띠를 지면에서 살짝 띄웁니다. -
groundboolean
-
띠를 지형 높이에 맞출지 여부입니다. 켜져 있고
drawArg가 있을 때만 각 점의 높이를 지형 높이로 바꿉니다. -
indicesArray.<number>
-
삼각형을 이루는 정점 번호 목록입니다. 세 개가 한 면을 이룹니다.
-
normalsArray.<number>
-
정점별 법선 벡터를 x·y·z 순서로 펼친 배열입니다.
-
splineCatmullRomCurve3
-
점들을 잇는 Catmull-Rom 곡선입니다. 이 곡선을 일정 간격으로 훑어 나온 점들로 띠를 만듭니다. 점 목록은
getPoints로 읽습니다. -
splineStepnumber
-
생성 옵션으로 받아 보관하는 값입니다. 지오메트리 계산에는 쓰이지 않습니다.
-
uvsArray.<number>
-
정점별 텍스처 좌표를 u·v 순서로 펼친 배열입니다.
-
verticesArray.<number>
-
띠를 이루는 정점 좌표를 x·y·z 순서로 펼친 배열입니다. (월드 좌표, EPSG:3857)
-
widthnumber
-
띠의 너비입니다. (미터) 지오메트리를 만들 때
setGoogleScale로 지정한 보정 배율이 곱해집니다.
Methods
-
addPoint(point, updateVertex)
-
라인 끝에 점을 하나 추가합니다.
Name Type Default Description pointWorldPositionVector3 추가할 점 (월드 좌표, EPSG:3857)
updateVertexboolean true optional 점을 넣은 뒤 곧바로 띠를 다시 만들지 여부. 여러 점을 잇달아 넣을 때
false로 두고 마지막에 한 번만 갱신하면 계산을 줄일 수 있습니다 -
clear()
-
라인의 모든 점과 정점 데이터를 비워 초기 상태로 되돌립니다.
곡선 길이 캐시도 함께 비우므로, 비운 뒤 다시 점을 넣으면 길이가 새로 계산됩니다. -
getLength()number
-
스플라인 곡선의 전체 길이를 반환합니다.
Returns:
Type Description number 곡선을 따라 잰 전체 길이 (월드 좌표 단위, EPSG:3857) -
getPointAt(at)Vector3
-
곡선에서 비율
at(0~1) 위치의 점을 반환합니다. (0이 시작, 1이 끝)
길이를 기준으로 재므로 점 사이 간격이 달라도 고르게 나뉩니다.Name Type Description atnumber 곡선 시작점을 0, 끝점을 1로 본 비율
Returns:
Type Description Vector3 그 위치의 좌표 (월드, EPSG:3857). 호출할 때마다 새 벡터를 만들어 돌려줍니다 -
getPoints()Array.<WorldPositionVector3>
-
라인을 이루는 현재 점 배열을 반환합니다.
Returns:
Type Description Array.<WorldPositionVector3> 곡선이 지나는 점 목록 (월드 좌표, EPSG:3857). 곡선이 들고 있는 배열을 그대로 돌려주므로 고치면 곡선에도 반영됩니다 -
getTangentAt(at)Vector3
-
스플라인 곡선에서 비율
at(0~1) 위치의 접선(진행 방향) 벡터를 반환합니다.Name Type Description atnumber 곡선 시작점을 0, 끝점을 1로 본 비율
Returns:
Type Description Vector3 그 지점에서 곡선이 나아가는 방향을 가리키는 단위 벡터. 호출할 때마다 새 벡터를 만들어 돌려줍니다 -
setGoogleScale(scale)
-
구글 좌표계 보정 스케일을 설정하고 지오메트리를 다시 생성합니다.
라인 너비(미터)를 Google 세계 좌표 단위로 변환하는 데 사용됩니다.Name Type Description scalenumber 보정 스케일 (1 / UMathEngine.getRealScaleAtGeographic(lat))
-
setPoints(points)
-
라인을 이루는 점 배열을 통째로 설정하고 즉시 갱신합니다.
Name Type Description pointsArray.<WorldPositionVector3> 점 배열 (월드 좌표, EPSG:3857)
-
updateAttribute()
-
현재 정점 데이터를 buffer attribute에 반영해 갱신합니다. (위치·법선·UV·인덱스 재설정)
-
updateGeometry(startIndex)
-
현재 점들로 지오메트리(정점·면)를 다시 계산해 갱신합니다.
넘긴 인덱스와 무관하게 곡선 전체를 다시 계산합니다.Name Type Default Description startIndexnumber 0 optional 갱신을 시작할 인덱스
Type Definitions
-
UDashLineGeometryCOobject
-
UDashLineGeometry 생성자 옵션
Properties:
Name Type Argument Default Description widthnumber <optional>
3 띠의 너비 (미터). 지오메트리를 만들 때
setGoogleScale로 지정한 보정 배율이 곱해집니다splineStepnumber <optional>
100 생성 시 보관만 하는 값. 지오메트리 계산에는 쓰이지 않습니다
groundboolean <optional>
false 띠를 지형 높이에 맞출지 여부.
drawarg를 함께 넣어야 동작합니다appU3dApp <optional>
생성 시 보관만 하는 앱 객체. 지형 높이 조회는
drawarg가 담당합니다drawargObject <optional>
지형 높이를 조회할 객체.
getRenderHeightAtPoint(x, y)가 돌려준 높이에 0.1m를 더해 띠를 지면에서 살짝 띄웁니다detailSegmentnumber <optional>
3 곡선을 훑는 간격. 값이 클수록 점을 성기게 뽑아 정점 수가 줄고 모양이 각져집니다
curveType'curve' | 'line' <optional>
'curve' 점을 잇는 방식.
'line'이면 장력을 낮춰 점 사이를 곧게 잇습니다tensionnumber <optional>
곡선의 팽팽함.
curveType이'line'일 때만 쓰이며, 넣지 않으면 0입니다