GeOnDT GeOnDT for JS

Class: UAnalySurfaceVolume

UAnalySurfaceVolume

~extends UAnaly
표면과 기준면 사이의 절토, 성토, 순 체적을 정규 Grid Cell과 Polygon 교차 영역의 삼각 Cell 샘플로 계산하는 분석 클래스

new UAnalySurfaceVolume(options)

Name Type Default Description
options UAnalySurfaceVolumeCO {} optional
Example
const analy = app.getAnalysis('SurfaceVolume');
analy.active();
analy.startDraw();

Members

REFERENCE_TYPE

기준면 타입 상수

TARGET_TYPE

분석 대상 타입 상수

Methods

active()

분석을 활성화합니다.

addBoundary(id, options)SurfaceVolumeVisualizationHandle

영역 외곽선 가시화를 추가합니다.

Name Type Default Description
id string

영역 ID

options SurfaceVolumeVisualizationOptions {} optional

가시화 옵션

Returns:
Type Description
SurfaceVolumeVisualizationHandle 가시화 핸들

addGrid(id, options)SurfaceVolumeVisualizationHandle

영역 격자 가시화를 추가합니다.

Name Type Default Description
id string

영역 ID

options SurfaceVolumeVisualizationOptions {} optional

가시화 옵션

Returns:
Type Description
SurfaceVolumeVisualizationHandle 가시화 핸들

addHeatmap(id, options)SurfaceVolumeVisualizationHandle

사용자 Result 값을 기준으로 Heatmap 가시화를 추가합니다.

Name Type Default Description
id string

영역 ID

options SurfaceVolumeVisualizationOptions | Partial.<{valueAccessor: function(), minValue: number, maxValue: number, colorRamp: Array.<object>, opacity: number, offset: number, sideFaces: boolean, sideOpacity: number}> {} optional

가시화 옵션

Returns:
Type Description
SurfaceVolumeVisualizationHandle 가시화 핸들

addLabel(id, options)SurfaceVolumeVisualizationHandle

결과 라벨 가시화를 추가합니다.

Name Type Default Description
id string

영역 ID

options SurfaceVolumeVisualizationOptions | Partial.<{text: (string|function()), position: Vector3Like, fontsize: number}> {} optional

가시화 옵션

Returns:
Type Description
SurfaceVolumeVisualizationHandle 가시화 핸들

addReference(id, options)SurfaceVolumeVisualizationHandle

기준면 샘플 포인트 가시화를 추가합니다.

Name Type Default Description
id string

영역 ID

options SurfaceVolumeVisualizationOptions {} optional

가시화 옵션

Returns:
Type Description
SurfaceVolumeVisualizationHandle 가시화 핸들

addVerticalLines(id, options)SurfaceVolumeVisualizationHandle

사용자 Result 값을 기준으로 수직선 가시화를 추가합니다.

Name Type Default Description
id string

영역 ID

options SurfaceVolumeVisualizationOptions | Partial.<{startAccessor: function(), endAccessor: function()}> {} optional

가시화 옵션

Returns:
Type Description
SurfaceVolumeVisualizationHandle 가시화 핸들

addVisualization(id, options)SurfaceVolumeVisualizationHandle

사용자 정의 Object3D 가시화를 추가합니다.

Name Type Default Description
id string

영역 ID

options SurfaceVolumeVisualizationOptions | Partial.<{create: function(), update: function(), dispose: function()}> {} optional

가시화 옵션

Returns:
Type Description
SurfaceVolumeVisualizationHandle 가시화 핸들

분석 영역을 추가합니다.

Name Type Description
options SurfaceVolumeAreaOption

영역 옵션

Returns:
Type Description
UAnalySurfaceVolume~SurfaceVolumeArea 분석 영역

cancelCompute(id)

분석 작업을 취소합니다.

Name Type Description
id string optional

영역 ID

cancelCurrentHeatmap()UAnalySurfaceVolume~SurfaceVolumeArea|undefined

취소 동작에서 현재 Heatmap 미리보기를 제거합니다.

Returns:
Type Description
UAnalySurfaceVolume~SurfaceVolumeArea | undefined 제거된 Heatmap 미리보기 영역

cancelDraw()

Polygon 영역 입력을 취소합니다.

cancelPreparation(id)

분석 준비 작업을 취소합니다.

Name Type Description
id string optional

영역 ID

clear(options)

분석 상태와 시각화를 정리합니다.

Name Type Default Description
options Partial.<{areas: boolean, drawing: boolean, visualization: boolean, visualizations: boolean, results: boolean, cache: boolean, preparation: boolean}> {} optional

정리 옵션

clearResult(id)

영역 결과를 제거합니다.

Name Type Description
id string

영역 ID

async computeVolume(id, options)Promise.<SurfaceVolumeComputeResult>

단일 영역의 체적을 계산합니다. 기존 코드 호환용 API이며 내부적으로 runAnalysis를 호출합니다.

Name Type Default Description
id string

영역 ID

options Partial.<{calculator: (SurfaceVolumeCalculator|string)}> {} optional

계산 옵션

Returns:
Type Description
Promise.<SurfaceVolumeComputeResult> 분석 결과
Example
const result = await analy.computeVolume(areaId, {
    calculator: customVolumeCalculator
});

async computeVolumeAll()Promise.<Array.<SurfaceVolumeComputeResult>>

전체 영역의 체적을 순차 계산합니다.

Returns:
Type Description
Promise.<Array.<SurfaceVolumeComputeResult>> 분석 결과 목록

deactive()

분석을 비활성화합니다.

dispose()

분석 객체를 폐기합니다.

async editVolumeArea(id, options)Promise.<(SurfaceVolumeComputeResult|undefined)>

분석 영역을 수정하고 재분석합니다.

Name Type Description
id string

영역 ID

options Partial.<SurfaceVolumeAreaOption>

수정 옵션

Returns:
Type Description
Promise.<(SurfaceVolumeComputeResult|undefined)> 재분석 결과

getAnalysisOption()object

현재 분석 옵션을 반환합니다.

Returns:
Type Description
object 분석 옵션

getClippingInfo(areaId)object|undefined

clipping UI 구성을 위한 영역 정보를 반환합니다.

Name Type Description
areaId string optional

영역 ID

Returns:
Type Description
object | undefined clipping 영역 정보

getParam()object

Returns:
Type Description
object 저장 가능한 분석 파라미터

getReferenceSurface()SurfaceVolumeReferenceOption|undefined

Returns:
Type Description
SurfaceVolumeReferenceOption | undefined 기준면

getResult(id)SurfaceVolumeComputeResult|undefined

영역 결과를 반환합니다.

Name Type Description
id string

영역 ID

Returns:
Type Description
SurfaceVolumeComputeResult | undefined 분석 결과

getTarget()SurfaceVolumeTargetOption|undefined

Returns:
Type Description
SurfaceVolumeTargetOption | undefined 분석 대상

getVisualization(id, visualizationId)SurfaceVolumeVisualizationHandle|undefined

가시화 핸들을 반환합니다.

Name Type Description
id string

영역 ID

visualizationId string

가시화 ID

Returns:
Type Description
SurfaceVolumeVisualizationHandle | undefined 가시화 핸들

getVisualizationList(id)Array.<SurfaceVolumeVisualizationHandle>

영역의 가시화 핸들 목록을 반환합니다.

Name Type Description
id string

영역 ID

Returns:
Type Description
Array.<SurfaceVolumeVisualizationHandle> 가시화 핸들 목록

getVolume(id)Object|undefined

영역 체적 정보를 반환합니다.

Name Type Description
id string

영역 ID

Returns:
Type Description
Object | undefined 체적 정보

getVolumeArea(id)UAnalySurfaceVolume~SurfaceVolumeArea|undefined

분석 영역을 반환합니다.

Name Type Description
id string

영역 ID

Returns:
Type Description
UAnalySurfaceVolume~SurfaceVolumeArea | undefined 분석 영역

getVolumeAreaList()Array.<UAnalySurfaceVolume~SurfaceVolumeArea>

Returns:
Type Description
Array.<UAnalySurfaceVolume~SurfaceVolumeArea> 분석 영역 목록

getVolumeCalculator()SurfaceVolumeCalculator

등록된 기본 사용자 Calculator를 반환합니다.

Returns:
Type Description
SurfaceVolumeCalculator 계산 콜백

hide()

시각화 객체를 숨긴다.

hideAllVisualizations()

모든 영역의 가시화를 숨긴다.

hideAreaVisualizations(id)

영역의 모든 가시화를 숨긴다.

Name Type Description
id string

영역 ID

hideCurrentHeatmap()UAnalySurfaceVolume~SurfaceVolumeArea|undefined

확인 동작에서 현재 Heatmap 미리보기를 숨긴다.

Returns:
Type Description
UAnalySurfaceVolume~SurfaceVolumeArea | undefined 현재 Heatmap 미리보기 영역

hideVisualization(id, visualizationId)

지정한 가시화를 숨긴다.

Name Type Description
id string

영역 ID

visualizationId string

가시화 ID

async loadParam(params, options)

저장된 분석 파라미터를 불러온다.

Name Type Default Description
params Partial.<{options: Partial.<UAnalySurfaceVolumeCO_Content>, target: SurfaceVolumeTargetOption, referenceSurface: SurfaceVolumeReferenceOption, areas: Array.<SurfaceVolumeAreaOption>}>

저장 파라미터

options Partial.<{replace: boolean, compute: boolean}> {} optional

불러오기 옵션

async prepareAnalysis(id, options)Promise.<SurfaceVolumeComputeContext>

분석 영역의 Polygon 삼각 Mesh와 표면 샘플을 준비합니다. 이 단계는 체적 계산식을 실행하지 않고 사용자 Calculator에 전달할 원시 데이터만 만듭니다.

Name Type Default Description
id string

영역 ID

options object {} optional

준비 옵션

Throws:

영역이 없거나 샘플링을 준비할 수 없을 때 발생합니다.

Type
Error
Returns:
Type Description
Promise.<SurfaceVolumeComputeContext> 계산 문맥
Example
const context = await analy.prepareAnalysis(areaId);
const result = await customVolumeCalculator(context);
analy.setResult(areaId, result);

registerCalculator(id, calculator)

저장 데이터에서 다시 연결할 Calculator를 ID로 등록합니다.

Name Type Description
id string

Calculator ID

calculator SurfaceVolumeCalculator

계산 콜백

registerVisualizationAccessor(id, accessor)

저장 데이터에서 다시 연결할 가시화 Accessor를 ID로 등록합니다.

Name Type Description
id string

Accessor ID

accessor function

값 접근 함수

removeAllVisualizations(id)

영역의 모든 가시화를 제거합니다.

Name Type Description
id string

영역 ID

removeVisualization(id, visualizationId)

지정한 가시화를 제거합니다.

Name Type Description
id string

영역 ID

visualizationId string

가시화 ID

removeVolumeAreaAll()

모든 분석 영역을 삭제합니다.

removeVolumeAreaById(id)boolean

분석 영역을 삭제합니다.

Name Type Description
id string

영역 ID

Returns:
Type Description
boolean 삭제 여부

async runAnalysis(id, calculator, options)Promise.<SurfaceVolumeComputeResult>

준비, 사용자 Calculator 실행, Result 등록을 순서대로 수행합니다. Calculator를 전달하지 않으면 기존 SurfaceVolume 계산식을 기본값으로 사용합니다.

Name Type Default Description
id string

영역 ID

calculator SurfaceVolumeCalculator | string optional

개별 계산 콜백 또는 등록 ID

options object {} optional

실행 옵션

Throws:

Calculator가 없거나 Result 구조가 잘못되면 발생합니다.

Type
Error
Returns:
Type Description
Promise.<SurfaceVolumeComputeResult> 사용자 계산 결과
Example
const result = await analy.runAnalysis(areaId, 'custom-volume-calculator');

setAnalysisOption(options)

분석 옵션을 설정합니다.

Name Type Default Description
options Partial.<UAnalySurfaceVolumeCO_Content> {} optional

분석 옵션

setClippingOption(option)this

분석 결과 시각화 객체에 적용할 clipping 옵션을 설정합니다.

Name Type Description
option object

clipping 옵션

Returns:
Type Description
this 현재 인스턴스

setReferenceSurface(reference)

기준면을 설정합니다.

Name Type Description
reference SurfaceVolumeReferenceOption

기준면

setResult(id, result)SurfaceVolumeComputeResult

사용자 계산 결과를 영역에 저장합니다. 결과의 수학적 정합성은 검증하지 않고 구조만 확인합니다.

Name Type Description
id string

영역 ID

result SurfaceVolumeComputeResult

사용자 계산 결과

Throws:

영역이 없거나 Result 구조가 잘못되면 발생합니다.

Type
Error
Returns:
Type Description
SurfaceVolumeComputeResult 저장된 결과

setTarget(target)

분석 대상을 설정합니다.

Name Type Description
target SurfaceVolumeTargetOption | undefined

분석 대상

setVisualizationTypeVisible(id, type, visible)

영역 안에서 특정 유형 가시화의 표시 상태를 설정합니다.

Name Type Description
id string

영역 ID

type string

가시화 유형

visible boolean

표시 여부

setVolumeCalculator(calculator)

기본 사용자 Calculator를 등록합니다.

Name Type Description
calculator SurfaceVolumeCalculator | string | undefined

계산 콜백 또는 등록 ID

Example
analy.registerCalculator('custom-volume-calculator', customVolumeCalculator);
analy.setVolumeCalculator('custom-volume-calculator');

show()

시각화 객체를 표시합니다.

showAllVisualizations()

모든 영역의 가시화를 표시합니다.

showAreaVisualizations(id)

영역의 모든 가시화를 표시합니다.

Name Type Description
id string

영역 ID

showVisualization(id, visualizationId)

지정한 가시화를 표시합니다.

Name Type Description
id string

영역 ID

visualizationId string

가시화 ID

startDraw(options)

Polygon 영역 입력을 시작합니다.

Name Type Default Description
options Partial.<{minVertexCount: number, closeOnDoubleClick: boolean}> {} optional

입력 옵션

stopDraw()

Polygon 영역 입력 이벤트만 중지합니다.

Type Definitions

SurfaceVolumeAreaOptionobject

표면 체적 분석 영역 입력값

Properties:
Name Type Argument Description
id string <optional>

영역 ID

name string <optional>

영역 이름

geoVertex Array.<Vector3Like> <optional>

지리 좌표 목록

worldVertex Array.<Vector3Like> <optional>

월드 좌표 목록

target UAnalySurfaceVolume.types~SurfaceVolumeTargetOption <optional>

분석 대상

referenceSurface UAnalySurfaceVolume.types~SurfaceVolumeReferenceOption <optional>

기준면

resolution number <optional>

격자 간격

visualization UAnalySurfaceVolume.types~SurfaceVolumeVisualizationOption <optional>

시각화 옵션

사용자 체적 계산 콜백

Name Type Description
context UAnalySurfaceVolume.types~SurfaceVolumeComputeContext

분석 준비 데이터

Returns:
Type Description
SurfaceVolumeComputeResult | Promise.<UAnalySurfaceVolume.types~SurfaceVolumeComputeResult> 계산 결과

SurfaceVolumeCellResultobject

사용자 셀 계산 결과

Properties:
Name Type Argument Description
index number

셀 인덱스

valid boolean

유효 여부

currentHeight number <optional>

현재 표면 높이

referenceHeight number <optional>

기준면 높이

heightDifference number <optional>

높이 차

cutVolume number <optional>

절토량

fillVolume number <optional>

성토량

signedVolume number <optional>

부호 있는 체적

heatmapValue number <optional>

Heatmap 값

currentPoint Vector3 <optional>

현재 표면 좌표

referencePoint Vector3 <optional>

기준면 좌표

metadata KeyValue <optional>

부가 정보

SurfaceVolumeComputeContextobject

사용자 계산 문맥

Properties:
Name Type Description
areaId string

영역 ID

geoVertex Array.<Vector3Like>

지리 좌표 목록

worldVertex Array.<WorldPositionVector3>

월드 좌표 목록

resolution number

격자 간격

grid UAnalySurfaceVolume.types~SurfaceVolumeGrid

격자 정보

samples Array.<UAnalySurfaceVolume.types~SurfaceVolumeSample>

샘플 목록

target UAnalySurfaceVolume.types~SurfaceVolumeTargetOption | undefined

분석 대상

reference UAnalySurfaceVolume.types~SurfaceVolumeReferenceOption | undefined

기준면

upDirection Vector3

위 방향

downDirection Vector3

아래 방향

bounds Box3

영역 범위

signal AbortSignal

취소 신호

reportProgress function

계산 진행률 보고 함수

metadata KeyValue

부가 정보

SurfaceVolumeComputeResultobject

사용자 체적 계산 결과

Properties:
Name Type Argument Description
area object <optional>

면적 결과

Properties
Name Type Argument Description
projected number <optional>

투영 면적

effective number <optional>

유효 면적

surface number <optional>

표면 면적

perimeter number <optional>

둘레

volume object <optional>

체적 결과

Properties
Name Type Argument Description
cut number <optional>

절토량

fill number <optional>

성토량

net number <optional>

순 체적

estimated number <optional>

추정 체적

height object <optional>

높이 결과

Properties
Name Type Argument Description
min number <optional>

최저 높이 차

max number <optional>

최고 높이 차

average number <optional>

평균 높이 차

cells Array.<UAnalySurfaceVolume.types~SurfaceVolumeCellResult> <optional>

셀 결과

warnings Array.<(string|KeyValue)> <optional>

경고 목록

metadata KeyValue <optional>

부가 정보

SurfaceVolumeGridobject

격자 정보

Properties:
Name Type Description
cells Array.<UAnalySurfaceVolume.types~SurfaceVolumeGridCell>

격자 셀 목록

resolution number

격자 간격

rows number

행 수

cols number

열 수

bounds Object

격자 경계 범위

totalCount number

전체 셀 수

origin Vector3

원점

SurfaceVolumeGridCellobject

격자 셀

Properties:
Name Type Description
index number

셀 인덱스

row number

행 번호

col number

열 번호

center Vector3

셀 중심

corners Array.<Vector3>

셀 꼭짓점

area number

셀 면적

valid boolean

유효 여부

SurfaceVolumeHeatmapOptionobject

표면 체적 Heatmap 표시 옵션

Properties:
Name Type Argument Default Description
enabled boolean <optional>
true

Heatmap 표시 여부

valueType string <optional>
'height-difference'

색상 기준값

opacity number <optional>
0.38

Heatmap 투명도

offset number <optional>
0.2

Z-fighting 방지 높이 보정값

sideFaces boolean <optional>
true

단차 및 외곽 수직면 표시 여부

sideOpacity number <optional>
0.45

수직면 투명도

showLegend boolean <optional>
false

범례 표시 여부

SurfaceVolumeReferenceOptionobject

표면 체적 기준면

Properties:
Name Type Argument Description
type string

기준면 유형

height number <optional>

고정 높이

layerName string <optional>

레이어 이름

targetKey string <optional>

저장용 대상 키

points Array.<Vector3Like> <optional>

평면 기준점

object Object3D <optional>

Object3D 기준면

objects Array.<Object3D> <optional>

Object3D 기준면 목록

SurfaceVolumeSampleobject

샘플 정보

Properties:
Name Type Description
index number

셀 인덱스

center Vector3

셀 중심

corners Array.<Vector3>

셀 꼭짓점

projectedArea number

투영 면적

clippedArea number

분석 면적

current object

현재 표면 샘플

Properties
Name Type Description
centerPoint Vector3 | undefined

현재 중심점

cornerPoints Array.<(Vector3|undefined)>

현재 꼭짓점

reference object

기준면 샘플

Properties
Name Type Description
centerPoint Vector3 | undefined

기준면 중심점

cornerPoints Array.<(Vector3|undefined)>

기준면 꼭짓점

valid boolean

유효 여부

boundary boolean

경계 셀 여부

SurfaceVolumeTargetOptionobject

표면 체적 분석 대상

Properties:
Name Type Argument Description
type string

대상 유형

layerName string <optional>

레이어 이름

targetKey string <optional>

저장용 대상 키

object Object3D <optional>

Object3D 대상

objects Array.<Object3D> <optional>

Object3D 대상 목록

SurfaceVolumeVisualizationHandleobject

가시화 핸들

Properties:
Name Type Description
id string

가시화 ID

type string

가시화 유형

areaId string

영역 ID

object Object3D

3D 객체

options UAnalySurfaceVolume.types~SurfaceVolumeVisualizationOptions

가시화 옵션

show function

표시

hide function

숨김

setVisible function

표시 상태 설정

update function

옵션 갱신

remove function

제거

dispose function

폐기

SurfaceVolumeVisualizationOptionobject

표면 체적 시각화 옵션

Properties:
Name Type Argument Default Description
showBoundary boolean <optional>
true

경계 표시 여부

showGrid boolean <optional>
true

격자 표시 여부

showCutFillMap boolean <optional>
true

절성토 표시 여부

showReferenceSurface boolean <optional>
true

기준면 표시 여부

heatmap UAnalySurfaceVolume.types~SurfaceVolumeHeatmapOption <optional>

Heatmap 표시 옵션

verticalLines Partial.<{enabled: boolean}> <optional>

수직선 표시 옵션 (enabled: 표시 여부)

SurfaceVolumeVisualizationOptionsobject

가시화 옵션

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

가시화 ID

type string <optional>

가시화 유형

replace boolean <optional>
false

중복 ID 교체 여부

visible boolean <optional>
true

표시 여부

UAnalySurfaceVolumeCOobject

~extends UAnaly~UAnalyCO
표면 체적 분석 옵션

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

분석 이름

resolution number <optional>
0.5

격자 간격

maxGridCount number <optional>
200000

최대 격자 수

heightTolerance number <optional>
0.02

절성토 분류 허용 오차

rayOffset number <optional>
10

Ray 시작 높이 여유값

chunkSize number <optional>
500

비동기 처리 청크 크기

visualization UAnalySurfaceVolume.types~SurfaceVolumeVisualizationOption <optional>

시각화 옵션