GeOnDT GeOnDT for JS

Class: U3dFault

U3dFault

~extends U3dGeometry
3D 단층(Fault) 면을 생성·관리하는 클래스입니다.
윗면 좌표 배열(topCoordinates)과 경사각(dip)·폭(width) 등으로 단층면을 만들거나, 상단과 같은 개수의 bottomCoordinates를 제공하면 상단과 하단 사이의 높이 차에 수직 축척을 적용합니다.
좌표가 1개뿐이면 주향(strike)·길이(length)로 기본 단층면을 생성합니다. 높이에 따라 그라디언트 색상이 적용되며, 외곽선·하이라이트·라벨을 설정할 수 있습니다.
topCoordinates 없이 생성하면 서버 geometry를 기다리는 빈 Fault로 유지되며, 서버 응답 후 setFaultData/setGeometryData로 실제 데이터를 적용할 수 있습니다.

new U3dFault(opt)

생성 옵션으로 단층(Fault) 면을 생성합니다.
app 옵션이 없으면 생성되지 않으므로 반드시 전달해야 합니다.
topCoordinates가 있으면 기존과 동일하게 즉시 단층면을 만들고, 없으면 id/name/properties를 몰라도 서버 geometry를 기다리는 빈 U3dFault로 생성됩니다.
Node에서 geometryOnly=true를 전달하면 geometry/transform만 계산하고 material/edge는 만들지 않습니다.

Name Type Default Description
opt U3dFaultCO {} optional

단층(Fault) 생성 옵션 (app 필수, 경사각·폭·주향 등)

Methods

addPosition(x, y, z)

단층면을 이루는 위경도 좌표를 추가합니다.
기존 끝점에서 새 좌표까지 단층면이 이어지며, 좌표가 처음이면 시작점으로 설정됩니다.

Name Type Description
x number

경도 (EPSG:4326)

y number

위도 (EPSG:4326)

z number

높이 (미터). 지표면이 0이며 지하는 음수입니다

getColor()Array.<Color>

단층면에 적용된 색상 배열(높이별 그라디언트 색상)을 반환합니다.

Returns:
Type Description
Array.<Color> 최대 깊이부터 지표 순서의 그라디언트 색상 배열. 단일 색상이면 원소 하나

getDepthColorStops()Array.<{ratio: number, depth: number, color: Color}>

현재 단층면에 적용된 깊이별 색상 스톱을 반환합니다.
배열은 최대 깊이에서 지표 방향 순서이며, 깊이는 현재 렌더링 높이 범위를 기준으로 계산합니다.

Returns:
Type Description
Array.<{ratio: number, depth: number, color: Color}> 깊이 비율·깊이(m)·색상으로 구성된 범례 스톱

getFadeStartDepth()number

단층의 가장 높은 점에서 투명도 감소가 시작되는 깊이를 반환합니다.

Returns:
Type Description
number 투명도 감소 시작 깊이(m)

getId()string|undefined

단층의 식별자를 반환합니다.
생성 옵션 id 또는 setId로 지정한 값입니다.

Returns:
Type Description
string | undefined 단층의 식별자. 지정하지 않았으면 undefined

getLabel()U3dPOI|undefined

단층에 연결된 라벨(주석) 객체를 반환합니다.

Returns:
Type Description
U3dPOI | undefined 라벨 POI 객체. 없으면 undefined

getName()string|undefined

단층의 이름을 반환합니다.
생성 옵션 name 또는 setName으로 지정한 값입니다.

Returns:
Type Description
string | undefined 단층의 이름. 지정하지 않았으면 undefined

getOpacity()number|undefined

단층면의 불투명도를 반환합니다.
1이면 불투명하며, 1 미만이면 투명 처리가 켜져 있습니다.

Returns:
Type Description
number | undefined 투명도 (설정값이 없으면 undefined)

getParam()U3dFaultParam

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

Returns:
Type Description
U3dFaultParam 폭·길이·경사각·주향·외곽선 등 현재 속성 객체

getProperties()KeyValue

단층에 설정된 사용자 정의 속성 정보(key-value)를 반환합니다.

Returns:
Type Description
KeyValue 단층에 보관된 사용자 정의 속성. 설정하지 않았으면 빈 객체

getRenderOffset()number

단층면의 깊이 보정값을 반환합니다.
0이면 보정하지 않습니다.

Returns:
Type Description
number 깊이 보정값. 0이면 보정하지 않습니다

getScaleRatio()number

단층면의 깊이 방향 축척을 반환합니다.
width와 dtop에 이 값으로 나눗셈이 적용됩니다.

Returns:
Type Description
number 깊이 방향 축척. width와 dtop에 나눗셈으로 적용됩니다

getTopCenter()WorldPositionVector3|undefined

단층면 상단의 현재 중심점 좌표를 반환합니다.

Returns:
Type Description
WorldPositionVector3 | undefined 중심점 좌표 (월드 좌표, EPSG:3857)

resetHighLight()

하이라이트(강조 표시)를 해제하고 원래 색상·투명도로 되돌립니다.
외곽선 옵션(useline)이 꺼져 있으면 강조용 외곽선도 함께 제거합니다.

setColor(color)

단층면의 색상을 설정합니다.
단일 색상을 주면 전체에 같은 색을, 색상 배열을 주면 높이별 그라디언트 구간에 순서대로 적용합니다.

Name Type Description
color ColorRepresentation | Array.<ColorRepresentation>

단일 색상, 또는 최대 깊이부터 지표 순서의 그라디언트 색상 배열 (2~10개)

setFadeStartDepth(depth)

단층의 가장 높은 점에서 투명도 감소가 시작되는 깊이를 설정합니다.
설정 깊이부터 사용자 지정 최대 깊이까지 알파가 부드럽게 감소합니다.

Name Type Description
depth number

투명도 감소 시작 깊이(m)

setFaultData(data, opt)

외부에서 읽은 Fault 한 건의 데이터를 빈 U3dFault에 한 번에 적용합니다.

Browser에서는 new U3dFault({app, colors})처럼 식별 정보와 형상을 모르는 상태로 먼저 생성하고, 저장 JSON 또는 서버 응답을 이 함수에 전달해 속성·좌표·geometry를 채울 수 있습니다.

Name Type Default Description
data object

외부 Fault 데이터

opt Partial.<{binaryBuffer: ArrayBuffer}> {} optional

외부 geometry 바이너리 옵션

setGeometryData(data, opt)

직렬화된 BufferGeometry 데이터를 이 단층의 geometry에 채웁니다.
생성자가 만든 geometry 인스턴스를 그대로 사용하며 새로 만들지 않습니다. 채울 geometry가 없으면 경고를 출력하고 아무것도 하지 않습니다.

데이터는 attributes·index·groups만 있으면 되고, 나머지 항목은 기본값으로 채웁니다. normal attribute가 없으면 position과 index를 적용한 뒤 정점 normal을 계산합니다. 적용이 끝나면 재질·외곽선·월드 정점을 갱신하므로 생성자로 만든 단층과 동일하게 사용할 수 있습니다.

attribute와 index는 두 가지 방식으로 지정합니다. array에 값을 직접 담으면 type이 가리키는 TypedArray로 변환하고, byteOffset과 count를 지정하면 opt.binaryBuffer를 복사 없이 참조합니다. 후자에서 opt.binaryBuffer가 없으면 예외가 발생합니다.

opt.binaryBuffer를 사용할 때는 position이 반드시 있어야 하며 Float32Array 또는 Float64Array의 itemSize 3이어야 하고, index는 Uint16Array 또는 Uint32Array여야 합니다. 조건을 벗어나면 예외가 발생하며 기존 형상은 그대로 유지됩니다.

Name Type Default Description
data U3dFault~FaultGeometryData

직렬화된 BufferGeometry 데이터

opt U3dFault~FaultGeometryApplyOption {} optional

외부 바이너리 버퍼와 transform·meta 정보

Examples

값을 배열로 직접 전달

fault.setGeometryData({
    attributes: {
        position: { type: 'Float32Array', itemSize: 3, array: positionValues }
    },
    index: { type: 'Uint32Array', array: indexValues },
    drawRange: { start: 0, count: 1200 }
});

외부 바이너리를 복사 없이 참조

fault.setGeometryData({
    attributes: {
        position: { type: 'Float32Array', itemSize: 3, byteOffset: 0, count: 3600 }
    },
    index: { type: 'Uint32Array', byteOffset: 14400, count: 1200 }
}, { binaryBuffer });

setHighLight(color, opacity)

단층면을 하이라이트(강조 표시)합니다.
외곽선을 켜고 지정한 색상·투명도로 바꿔, 선택되었음을 눈에 띄게 표시합니다. (해제는 resetHighLight)

Name Type Default Description
color ColorRepresentation 0x22aa22 optional

하이라이트 색상. 16진수 숫자, CSS 색 문자열 또는 THREE.Color

opacity number 0.8 optional

하이라이트 불투명도 (0~1)

setId(id)

단층의 식별자를 설정합니다.
name과 별개로 관리하는 값입니다.

Name Type Description
id string | undefined

설정할 식별자. undefined이면 식별자를 비웁니다

setLabel(label)

단층에 라벨(주석) 객체를 연결합니다.
라벨의 표시 여부는 단층의 표시 여부를 그대로 따릅니다.

Name Type Description
label U3dPOI

연결할 라벨 객체. 표시 여부는 단층의 표시 여부를 따릅니다

setLineWidth(lineWidth)

단층 외곽 테두리 두께를 화면 픽셀 단위로 설정합니다.

Name Type Description
lineWidth number

외곽 테두리 두께 (화면 픽셀). 0 이하이거나 숫자가 아니면 2를 적용합니다

setName(name)

단층의 이름을 설정합니다.
레이어에서 단층을 조회하는 키입니다.

Name Type Description
name string | undefined

설정할 이름. undefined이면 이름을 비웁니다

setOpacity(value)

단층면의 투명도를 설정합니다. (1이면 불투명, 1 미만이면 반투명)

Name Type Description
value number

불투명도 (0~1). 1 미만이면 투명 처리가 켜집니다

setParam(param)

단층면의 속성(색상·투명도·형상 파라미터·외곽선)을 한 번에 변경합니다.
전달하신 값만 반영되고 나머지는 기존 값이 유지되며, 형태 관련 값을 바꾸면 단층면이 즉시 다시 생성됩니다.
표시 여부(visible)는 이전 상태가 그대로 유지됩니다.

Name Type Description
param U3dFaultCO optional

변경할 속성 객체 (색상·투명도·폭·길이·경사각·주향·축척·외곽선)

setProperties(properties)

단층에 사용자 정의 속성 정보(key-value)를 설정합니다.

Name Type Description
properties KeyValue

단층에 보관할 사용자 정의 속성. 화면 표현에는 사용하지 않습니다

setRenderOffset(val)

렌더 오프셋을 설정합니다.
단층면을 카메라 쪽으로 조금 당겨(또는 밀어) 다른 면과 겹칠 때 어른거림(z-fighting)을 줄이는 데 사용합니다.

Name Type Description
val number

깊이 보정값. 미터가 아니라 셰이더 깊이 보정에 쓰는 배율입니다

setScaleRatio(ratio)

단층면의 축척(스케일) 비율을 설정하고 지오메트리를 다시 생성합니다.
표시 여부(visible)는 이전 상태가 그대로 유지됩니다.

Name Type Description
ratio number

깊이 방향 축척. width와 dtop에 나눗셈으로 적용됩니다

setTopCenter(vec)

단층면 상단의 중심점 좌표를 설정합니다. (라벨 위치 등 기준점으로 사용됩니다.)

Name Type Description
vec WorldPositionVector3

중심점 좌표 (월드 좌표, EPSG:3857)

setUseLine(useLine)

단층 내부 분할선을 제외한 외곽 테두리 표시 여부를 설정합니다.

Name Type Description
useLine boolean

외곽 테두리 표시 여부

Type Definitions

FaultGeometryApplyOptionobject

FaultGeometryData와 함께 넘기는 부가 정보입니다.
attribute와 index를 외부 바이너리에 담은 경우 그 버퍼와 변환·메타 정보를 지정합니다.

Properties:
Name Type Argument Description
binaryBuffer ArrayBuffer <optional>

attribute/index가 저장된 외부 바이너리

transform unknown <optional>

Object3D transform 정보

meta unknown <optional>

Fault geometry 메타 정보

FaultGeometryBufferDescriptorobject

저장 geometry의 attribute 또는 index 정보입니다.

Properties:
Name Type Argument Description
type U3dFault~FaultGeometryTypedArrayName <optional>

TypedArray 타입 이름

array ArrayLike.<number> <optional>

기존 JSON 배열 또는 TypedArray

byteOffset number <optional>

외부 바이너리 시작 기준 바이트 위치

count number <optional>

TypedArray의 scalar 원소 개수

itemSize number <optional>

vertex 하나를 구성하는 원소 개수

normalized boolean <optional>

정수 값을 0~1 범위로 환산해 읽을지 여부

usage number <optional>

버퍼 갱신 빈도를 나타내는 three.js 사용 힌트 값

FaultGeometryDataobject

단층 geometry 하나를 복원하는 데 필요한 정보입니다.
setGeometryData의 입력이며, three.js BufferGeometry로 변환됩니다.

Properties:
Name Type Argument Description
attributes Record.<string, U3dFault~FaultGeometryBufferDescriptor> <optional>

정점 속성 버퍼 정보. position·normal 등 속성 이름을 키로 씁니다

index U3dFault~FaultGeometryBufferDescriptor <optional>

정점을 이어 삼각형을 만드는 index 버퍼 정보

groups Array.<U3dFault~FaultGeometryGroup> <optional>

재질별로 나눠 그릴 구간 목록

drawRange Partial.<U3dFault~FaultGeometryDrawRange> <optional>

실제로 화면에 그릴 구간

name string <optional>

geometry를 구분하는 이름

userData object <optional>

geometry에 보관하는 사용자 정의 정보

FaultGeometryDrawRangeobject

geometry 중 실제로 그릴 index 구간입니다.
정점은 그대로 두고 이 범위로 그리는 양을 조절합니다.

Properties:
Name Type Description
start number

그리기를 시작하는 index 위치

count number | null

그릴 index 개수. null이면 끝까지 모두 그립니다

FaultGeometryGroupobject

geometry를 재질별로 나누는 index 구간입니다.
구간마다 다른 재질 번호를 지정합니다.

Properties:
Name Type Argument Description
start number

그룹이 시작하는 index 위치

count number

그룹이 포함하는 index 개수

materialIndex number <optional>

이 구간에 적용할 재질의 배열 index

FaultGeometryTypedArrayFloat64Array Float32Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array

geometry 버퍼를 담는 TypedArray입니다.
FaultGeometryTypedArrayName이 나타내는 종류 중 하나입니다.

FaultGeometryTypedArrayName'Float64Array' 'Float32Array' 'Int8Array' 'Uint8Array' 'Uint8ClampedArray' 'Int16Array' 'Uint16Array' 'Int32Array' 'Uint32Array'

geometry 버퍼를 복원할 TypedArray의 종류 이름입니다.
FaultGeometryBufferDescriptor.type의 값으로 사용합니다.

U3dFaultCOobject

~extends U3dGeometry~U3dGeometryCO
U3dFault 생성자 옵션입니다.
topCoordinates가 두 개 이상이면 그 선을 따라 단층면을 만들고, 하나이면 strike·length로 단층면을 만듭니다. topCoordinates가 없으면 형상 없이 생성되며, 이후 setFaultData·setGeometryData로 형상을 적용합니다.

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

단층 이름. 레이어에서 단층을 조회하는 키입니다

color ColorRepresentation <optional>

단층면 색상. 16진수 숫자(0xff0000), CSS 색 문자열('#ff0000') 또는 THREE.Color. colors를 지정하면 무시됩니다

opacity number <optional>

불투명도 (0~1). 1 미만이면 투명 처리가 켜집니다

fadeStartDepth number <optional>
3000

단층 최상단에서 투명도 감소가 시작되는 깊이 (미터). 이보다 깊은 구간은 점차 투명해집니다

app U3dApp <optional>

좌표 변환과 지형 높이 조회에 사용하는 앱. 필수

colors Array.<ColorRepresentation> <optional>

최대 깊이부터 지표 순서의 그라디언트 색상 배열 (2~10개). 2개 미만이면 단일 색상으로 처리합니다

topCoordinates Array.<Vector3> <optional>

단층면 윗변의 위경도 좌표 배열 (EPSG:4326). z는 높이 (미터)

width number <optional>
1

윗변에서 경사 방향으로의 단층면 폭 (미터)

bottomCoordinates Array.<Vector3> <optional>

단층면 아랫변의 위경도 좌표 배열 (EPSG:4326). topCoordinates와 개수가 같을 때만 적용되며, 상하 높이 차에 수직 축척이 적용됩니다

dip number <optional>
0

지표면 기준 단층면의 경사각 (도). 0은 수평, 90은 수직입니다

dtop number <optional>
0

지표면에서 단층면 윗변까지의 깊이 (미터)

id string <optional>

단층 식별자. name과 별개로 관리합니다

strike number <optional>
0

정북 기준 단층 윗변의 주향 각도 (도). topCoordinates가 하나일 때 단층면의 방향을 결정합니다

planeArea number <optional>
0

단층면의 넓이 (제곱미터). 값을 그대로 보관하며 형상 계산에는 사용하지 않습니다

sense string <optional>

단층의 운동 감각. 값을 그대로 보관하며 화면 표현에는 사용하지 않습니다

length number <optional>
0

topCoordinates가 하나일 때 주향 방향 단층면의 길이 (미터)

direction string <optional>

단층의 방향. 값을 그대로 보관하며 화면 표현에는 사용하지 않습니다

scaleRatio number <optional>
1

깊이 방향 축척. width와 dtop에 나눗셈으로 적용됩니다

properties KeyValue <optional>

단층에 보관할 사용자 정의 속성. 화면 표현에는 사용하지 않습니다

renderOffset number <optional>
0

셰이더 깊이 보정값. 미터가 아니며, 다른 면과 겹쳐 어른거릴 때 값을 올립니다

applyHeight boolean <optional>
false

단층면 좌표에 지형 높이를 반영할지 여부

wireframe boolean <optional>

면을 채우지 않고 삼각형 모서리만 그릴지 여부

showLabel boolean <optional>

단층에 연결된 라벨을 표시할지 여부

lineWidth number <optional>
2

외곽 테두리 두께 (화면 픽셀). 0 이하이거나 숫자가 아니면 2를 적용합니다

vertices Array.<Vector3> <optional>

꼭짓점 좌표 배열 (월드 좌표, EPSG:3857)

coordinates Array.<Vector3> <optional>

위치 좌표 배열 (위경도, EPSG:4326)

U3dFaultParamobject

getParam이 반환하는 단층의 현재 속성입니다.
setParam의 입력으로 그대로 사용할 수 있습니다.

Properties:
Name Type Description
width number

윗변에서 경사 방향으로의 단층면 폭 (미터)

length number

주향 방향 단층면의 길이 (미터)

dip number

지표면 기준 단층면의 경사각 (도)

dtop number

지표면에서 단층면 윗변까지의 깊이 (미터)

strike number

정북 기준 단층 윗변의 주향 각도 (도)

scaleRatio number

깊이 방향 축척. width와 dtop에 나눗셈으로 적용됩니다

outline boolean

외곽 테두리 표시 여부

lineWidth number

외곽 테두리 두께 (화면 픽셀)

colors Array.<Color>

최대 깊이부터 지표 순서의 그라디언트 색상 배열(2~10개)

fadeStartDepth number

단층의 가장 높은 점에서 투명도 감소가 시작되는 깊이(m)