new UGroupBoundaryHelper(target, options)
대상 논리 객체들의 현재 월드 위치로 최초 경계를 생성합니다. Scene 추가와 제거는 호출자가 직접 관리합니다.
| Name | Type | Description |
|---|---|---|
target |
UGroupBoundaryTarget |
경계를 계산할 Group, Object3D 배열 또는 component 배열 |
options |
UGroupBoundaryHelperCO |
생성 옵션 |
Example
const helper = new UGroupBoundaryHelper(aircraftGroup, {
height: 50,
bufferSize: 5,
connectionDistance: 20,
positionTolerance: 1,
color: 0x00ffff,
opacity: 0.2,
renderOrder: 50,
outline: {
dashed: true,
lineWidth: 2
}
});
scene.add(helper);
// 대상 위치가 달라진 시점에 호출자가 명시적으로 갱신합니다.
helper.update();
// 상면 70, 측면 71, 하면 72, 외곽선 73으로 함께 변경합니다.
helper.setRenderOrder(70);
// Scene 수명주기와 helper 자원 수명주기를 호출자가 각각 관리합니다.
scene.remove(helper);
helper.dispose();
Members
-
materialMeshBasicMaterial
-
Methods
-
dispose()
-
helper가 소유한 상면·측면·하면·외곽선 geometry와 material을 해제합니다. Scene에서 helper를 제거하지 않으며 입력 target의 자원도 변경하지 않습니다.
-
getConnectionDistance()number
-
같은 경계 형상으로 묶을 논리 객체 원점 사이의 최대 3D 공간 거리를 반환합니다. 이 값은 bufferSize와 독립적이며 bufferSize 변경으로 함께 바뀌지 않습니다.
Returns:
Type Description number 현재 연결 거리 -
getPositionTolerance()number
-
객체별 지속 골격 필터의 기준 거리와 연결 간선 히스테리시스 폭을 반환합니다. 값이 클수록 위치 변화가 더 완만하게 반영되며 bufferSize와는 독립적입니다.
Returns:
Type Description number 현재 위치 완화 기준 거리 -
getRenderOrder()number
-
경계 본체에 적용된 현재 기준 렌더 순서를 반환합니다. 측면·하면·외곽선에는 각각 이 값보다 1·2·3 높은 순서가 적용됩니다.
Returns:
Type Description number 현재 기준 렌더 순서 -
getSurfaceMode()UGroupBoundarySurfaceMode
-
양의 buffer 경계에서 상면과 하면의 Z를 배치하는 방식을 반환합니다.
Returns:
Type Description UGroupBoundarySurfaceMode 현재 surface 배치 방식 -
setBufferSize(bufferSize)UGroupBoundaryHelper
-
연결 골격 바깥쪽의 XY buffer 거리를 변경하고 즉시 경계를 다시 계산합니다.
Name Type Description bufferSizenumber 0 이상의 buffer 거리
Returns:
Type Description UGroupBoundaryHelper 현재 helper -
setColor(color)UGroupBoundaryHelper
-
경계 본체 색상을 즉시 변경합니다. 외곽선 색상은 독립적으로 setOutlineStyle에서 변경합니다.
Name Type Description colorColorRepresentation 경계 본체 색상
Returns:
Type Description UGroupBoundaryHelper 현재 helper -
setConnectionDistance(connectionDistance)UGroupBoundaryHelper
-
같은 경계 형상으로 묶을 논리 객체 원점 사이의 최대 3D 공간 거리를 변경하고 즉시 경계를 다시 계산합니다. 직접 또는 연쇄적으로 연결된 원점은 같은 경계 컴포넌트로 분류됩니다.
Name Type Description connectionDistancenumber 0 이상의 3D 공간 연결 거리
Returns:
Type Description UGroupBoundaryHelper 현재 helper -
setHeight(height)UGroupBoundaryHelper
-
각 논리 객체 원점을 기준으로 적용할 전체 수직 높이를 변경하고 즉시 경계를 다시 계산합니다. 입력값의 절반은 원점 아래에, 나머지 절반은 원점 위에 적용됩니다.
Name Type Description heightnumber 0보다 큰 전체 수직 높이
Returns:
Type Description UGroupBoundaryHelper 현재 helper -
setOpacity(opacity)UGroupBoundaryHelper
-
경계 본체 투명도를 즉시 변경합니다. 외곽선 투명도는 독립적으로 setOutlineStyle에서 변경합니다.
Name Type Description opacitynumber 0 이상 1 이하의 투명도
Returns:
Type Description UGroupBoundaryHelper 현재 helper -
setOutlineStyle(style)UGroupBoundaryHelper
-
전달된 외곽선 스타일 속성만 즉시 변경합니다. 스타일 변경은 3D 경계 geometry를 다시 계산하지 않습니다.
Name Type Default Description styleUGroupBoundaryHelperOutlineStyle {} optional 변경할 외곽선 스타일
Returns:
Type Description UGroupBoundaryHelper 현재 helper -
setPositionTolerance(positionTolerance)UGroupBoundaryHelper
-
위치 완화 기준을 변경하고 지속 노드·연결 이력을 새 기준으로 다시 시작합니다. 0이면 현재 위치를 즉시 사용하고, 양수이면 frame 간격을 반영한 객체별 연속 필터를 적용합니다.
Name Type Description positionTolerancenumber 0 이상의 위치 완화 기준 거리
Returns:
Type Description UGroupBoundaryHelper 현재 helper -
setRenderOrder(renderOrder)UGroupBoundaryHelper
-
상면의 기준 렌더 순서를 변경하고 측면·하면·외곽선에는 각각 기준값보다 1·2·3 높은 순서를 적용합니다. geometry, material과 depthTest는 변경하지 않습니다.
Name Type Description renderOrdernumber 경계 본체에 적용할 유한한 렌더 순서
Returns:
Type Description UGroupBoundaryHelper 현재 helper -
setSurfaceMode(surfaceMode)UGroupBoundaryHelper
-
양의 buffer 경계의 상·하면 Z 배치 방식을 변경하고 즉시 다시 계산합니다.
plane은 컴포넌트 전체를 포함하는 평행 평면 쌍을 만들고,skeleton은 같은 XY 외곽을 최근접 골격의 고도에 맞춰 배치합니다.Name Type Description surfaceModeUGroupBoundarySurfaceMode 새 surface 배치 방식
Returns:
Type Description UGroupBoundaryHelper 현재 helper -
setTarget(target)UGroupBoundaryHelper
-
경계 계산 대상을 교체하고 즉시 새 경계를 계산합니다.
Name Type Description targetUGroupBoundaryTarget 새 Group, Object3D 배열 또는 component 배열
Returns:
Type Description UGroupBoundaryHelper 현재 helper -
update()UGroupBoundaryHelper
-
현재 대상의 논리 객체 월드 위치로 경계 geometry와 배치를 갱신합니다. 위치와 기하 옵션이 직전 성공 상태와 같으면 기존 geometry와 GPU 자원을 그대로 재사용합니다.
Throws:
-
현재 대상 위치로 유효한 3D 경계를 계산할 수 없는 수치 오류
- Type
- Error
Returns:
Type Description UGroupBoundaryHelper 현재 helper -
-
updateMatrixWorld(force)
-
부모의 현재 월드 행렬에 맞춰 helper의 정확한 로컬 행렬을 동기화한 뒤 하위 트리를 갱신합니다. 생성 후 변환된 Scene이나 Group에 추가되어도 첫 렌더 전에 월드 기준 경계 배치를 복원합니다.
Name Type Description forceboolean optional 강제 월드 행렬 갱신 여부
-
updateWorldMatrix(updateParents, updateChildren)
-
명시적인 월드 행렬 갱신에서도 부모 역변환을 적용하여 helper의 월드 축과 기준점을 유지합니다.
Name Type Description updateParentsboolean 부모 행렬을 먼저 갱신할지 여부
updateChildrenboolean 자식 행렬까지 갱신할지 여부
Type Definitions
-
UGroupBoundaryHelperCOobject
-
UGroupBoundaryHelper 생성자 옵션입니다.
Properties:
Name Type Argument Default Description heightnumber 각 논리 객체의 아래·위에 절반씩 확보할 전체 수직 높이
bufferSizenumber <optional>
5 연결 골격 바깥쪽에 적용할 XY buffer 거리
connectionDistancenumber <optional>
20 같은 경계 형상으로 묶을 논리 객체 원점 사이의 최대 3D 공간 거리
positionTolerancenumber <optional>
1 객체별 위치 필터의 기준 거리와 기존 연결 간선의 히스테리시스 폭
surfaceModeUGroupBoundaryHelper.types~UGroupBoundarySurfaceMode <optional>
'plane' 양의 buffer 경계의 상·하면 Z 배치 방식
colorColorRepresentation <optional>
0x00ffff 경계 본체 색상
opacitynumber <optional>
0.2 경계 본체 투명도(0~1)
renderOrdernumber <optional>
상면 기준 렌더 순서. 생략하면 성공한 helper 생성 순서대로 50부터 1씩 증가하고 측면·하면·외곽선에는 각각 1·2·3 높은 순서를 적용한다.
outlineUGroupBoundaryHelper.types~UGroupBoundaryHelperOutlineStyle | false <optional>
외곽선 스타일. false이면 외곽선을 숨긴다.
namestring <optional>
'UGroupBoundaryHelper' helper 객체 이름
-
UGroupBoundaryHelperOutlineStyleobject
-
경계 외곽선 스타일입니다.
Properties:
Name Type Argument Default Description visibleboolean <optional>
true 외곽선 출력 여부
colorColorRepresentation <optional>
0x00ffff 외곽선 색상
opacitynumber <optional>
1 외곽선 투명도(0~1)
lineWidthnumber <optional>
2 외곽선 굵기
worldUnitsboolean <optional>
false 선 굵기의 월드 단위 사용 여부
dashedboolean <optional>
true 점선 사용 여부
dashSizenumber <optional>
10 점선 한 구간의 길이
gapSizenumber <optional>
6 점선 사이 간격
-
UGroupBoundaryPositionSourceobject
-
helper에 월드 위치를 제공하는 component 형태입니다. 일반 component와 instanced component가 공통으로 제공하는 getVectorPosition()만 요구합니다.
Properties:
Name Type Description getVectorPositionfunction 현재 3D 월드 좌표 반환 함수
-
UGroupBoundarySurfaceMode'plane' 'skeleton'
-
양의 buffer 경계에서 상면과 하면의 Z를 배치하는 방식입니다.
plane은 연결 컴포넌트마다 하나의 평행 평면 쌍을 만들고,skeleton은 외곽점에서 가장 가까운 연결 골격의 고도를 따라갑니다. -
UGroupBoundaryTargetGroup Array.<(Object3D|UGroupBoundaryHelper.types~UGroupBoundaryPositionSource)>
-
helper가 논리 객체 위치를 수집할 수 있는 대상입니다. Group 입력은 직접 자식 Object3D를 사용하고, 배열 입력은 Object3D와 component를 함께 허용합니다.