GeOnDT GeOnDT for JS

Class: UBox3Helper

UBox3Helper

~extends LineSegments
Box3의 외곽선을 표시하며 geometry와 같은 색상의 재질을 인스턴스 사이에서 공유한다. box는 복제하지 않고 참조하므로 변경 후 updateMatrixWorld()로 표시 변환을 갱신한다. 공유 재질의 속성 변경은 같은 재질을 쓰는 다른 helper에도 영향을 준다.

new UBox3Helper(box, color)

표시할 box와 공유 재질을 연결한다. 색상 변환 등의 오류는 호출자에게 전달한다.

Name Type Default Description
box Box3

표시할 경계 상자의 원본 참조.

color Color | string | number 0xffff00 optional

Three.js가 해석할 선 색상.

Members

boxBox3

표시 대상 Box3의 원본 참조다. setBox() 또는 외부 대입으로 교체할 수 있다.

colorColor

현재 색상 참조다. dispose()는 이 객체의 현재 getHex() 값으로 공유 상태를 조회한다.

typestring

상위 생성자가 설정한 값을 보존하면서 기존 TS의 쓰기 가능한 type 선언을 유지한다. Box3Helper 종류 값은 아래 생성자에서 box·color 연결 후 설정한다.

staticUBox3Helper.sharedGeometryBufferGeometry

첫 생성자 호출에서 준비하며 이후 인스턴스에서도 재사용하는 geometry다. dispose()를 호출해도 이 정적 참조를 초기화하지 않는다.

staticUBox3Helper.sharedIndexBufferAttribute

staticUBox3Helper.sharedMaterialsMap.<any, any>

색상 키별 공유 재질 저장소다. 기존 공개 Map에는 외부에서 임의의 키·값을 넣을 수 있으므로 기존 any 계약을 유지한다. 이 클래스가 직접 등록하는 값은 LineBasicMaterial이다.

staticUBox3Helper.sharedPositionAttrFloat32BufferAttribute

staticUBox3Helper.sharedStateMap.<number, number>

색상 키별 재질 획득 횟수다. dispose()의 현재 처리와 함께 해석해야 한다.

Methods

dispose()

공유 geometry를 해제하고 현재 색상의 저장 횟수에서 1을 뺀 값이 0 이하일 때만 현재 재질을 해제하고 해당 색상의 캐시 항목을 제거한다. 양수인 계산 결과를 sharedState에 다시 저장하지 않는 기존 동작을 유지한다. 장면에서 자신을 제거하지 않으며 중복 호출을 막는 상태도 두지 않는다.

setBox(box3)

표시 대상 참조만 교체한다. 위치·크기는 다음 updateMatrixWorld()에서 반영된다.

Name Type Description
box3 Box3

새 표시 대상의 원본 참조.

setColor(color)

색상에 대응하는 공유 재질로 교체한다. 이전 재질을 해제하거나 이전 색상의 획득 횟수를 줄이지 않는다.

Name Type Description
color Color | string | number

새 선 색상.

updateMatrixWorld(force)

Three.js Box3Helper의 갱신 방식으로 현재 box의 중심과 크기를 표시 변환에 반영한다.

Name Type Description
force boolean

자식까지 월드 행렬 갱신을 강제할지 여부.

static createMaterial(color)any

같은 색상의 재질을 재사용하고 획득 횟수를 증가시킨다. 공유 Map에 외부에서 넣은 값도 그대로 반환하므로 반환형은 기존 any 계약을 보존한다.

Name Type Description
color Color | string | number

재질 조회 또는 생성에 사용할 색상.

Returns:
Type Description
any 기존 공개 캐시 값 또는 새로 만든 LineBasicMaterial.