GeOnDT GeOnDT for JS

Class: UEdgeLine

UEdgeLine

~extends Line2
메시의 외곽선(엣지)을 굵기·색상을 지정할 수 있는 엣지 라인으로 그려 주는 클래스입니다.
입력 지오메트리에서 엣지를 추출해 Line2 기반 라인으로 만들며, 생성자에 지오메트리와 파라미터를 넘기면 바로 사용할 수 있습니다.

new UEdgeLine(geometry, params)

입력 지오메트리의 외곽선을 그리는 엣지 라인을 생성합니다.
지오메트리를 주면 엣지를 추출해 라인 지오메트리를 만들고, 파라미터(색상·두께·점선 등)로 재질을 설정합니다.

Name Type Description
geometry BufferGeometry optional

외곽선을 뽑을 입력 지오메트리. 넣지 않으면 빈 라인 지오메트리로 만들어지므로, 나중에 createGeometry가 돌려준 값을 geometry에 넣어 채웁니다

params UEdgeLine~UEdgeLineParams optional

라인 재질 파라미터 (색상·두께·점선·해상도)

Methods

createEdgeGeometry(geometry)BufferGeometry

입력 지오메트리에서 중복 없는 엣지(선분) 지오메트리를 추출합니다.
UPlaneBufferGeometry는 격자 구조를 이용해 빠르게 처리하고, 그 외 지오메트리는 삼각형 인덱스에서 엣지를 뽑습니다.

Name Type Description
geometry BufferGeometry

외곽선을 뽑을 입력 지오메트리

Returns:
Type Description
BufferGeometry 선분 두 개씩 짝지어진 정점을 담은 지오메트리. 격자가 아닌 지오메트리는 임계각 0으로 모든 면 경계를 뽑습니다

createGeometry(geometry)LineGeometry

입력 지오메트리에서 외곽선을 뽑아 라인 지오메트리까지 한 번에 만듭니다.
createEdgeGeometry와 createLineGeometry를 차례로 호출하는 것과 같습니다.

Name Type Description
geometry BufferGeometry

외곽선을 뽑을 입력 지오메트리

Returns:
Type Description
LineGeometry 굵은 라인으로 그릴 수 있는 라인 지오메트리

createLineGeometry(edgesGeometry)LineGeometry

엣지(선분) 지오메트리를 Line2용 라인 지오메트리로 변환합니다.
각 엣지의 시작·끝 점을 선분 좌표로 펼쳐, 굵은 라인 렌더링에 사용할 수 있게 만듭니다.

Name Type Description
edgesGeometry BufferGeometry

createEdgeGeometry가 돌려준 선분 지오메트리

Returns:
Type Description
LineGeometry 굵은 라인으로 그릴 수 있게 선분 좌표를 펼쳐 담은 지오메트리. 정점이 없으면 빈 지오메트리

createMaterial(params)ShaderMaterial

엣지 라인에 사용할 셰이더 재질을 생성합니다.
색상은 셰이더의 diffuse 유니폼에 넣고, 나머지 항목은 셰이더가 같은 이름의 유니폼을 선언하고 있을 때만 반영합니다. 넣지 않은 값은 셰이더의 기본 설정을 그대로 씁니다.

Name Type Description
params UEdgeLine~UEdgeLineParams optional

재질 파라미터 (색상·두께·점선·해상도)

Returns:
Type Description
ShaderMaterial 엣지 라인용 셰이더 재질. 호출할 때마다 새 재질을 만들어 돌려줍니다

Type Definitions

UEdgeLineParamsobject

UEdgeLine 생성자와 createMaterial에 넘기는 재질 파라미터입니다.
color를 뺀 나머지 항목은 셰이더가 같은 이름의 유니폼을 선언하고 있을 때만 반영됩니다.

Properties:
Name Type Argument Description
color number | string <optional>

라인 색상. 16진수 숫자(0x000000) 또는 CSS 색 문자열('#000000')을 넣습니다

linewidth number <optional>

라인 두께. 넣지 않으면 셰이더의 기본 두께를 씁니다

dashed boolean <optional>

점선으로 그릴지 여부. 셰이더에 점선 설정이 켜져 있을 때만 반영됩니다

resolution Vector2 <optional>

화면 크기 (픽셀). 두께를 화면 기준으로 계산할 때 사용합니다

UPlaneGeometryExtobject

UPlaneBufferGeometry가 추가로 들고 있는 격자 정보입니다.
이 정보가 있으면 삼각형을 훑지 않고 격자 좌표만으로 엣지를 뽑습니다.

Properties:
Name Type Argument Description
classtype string <optional>

지오메트리 종류 식별자. 'UPlaneBufferGeometry'일 때 격자 방식으로 처리합니다

isSkirt function <optional>

가장자리에 스커트(skirt)를 만들었는지 알려주는 함수

getSkirtIndex function <optional>

가장자리에서 스커트가 차지하는 정점 줄 수를 알려주는 함수. 스커트를 쓰지 않으면 0입니다