Class: ARPlacementBox
Extra-Helpers.ARPlacementBox
This class is a set of two coincident planes. The first is just a cute box outline with rounded corners and damped opacity to indicate the floor extents of a scene. It is purposely larger than the scene's bounding box by RADIUS on all sides so that small scenes are still visible / selectable. Its center is actually carved out by vertices to ensure its fragment shader doesn't add much time.
The child plane is a simple plane with the same extents for use in hit testing (translation is triggered when the touch hits the plane, rotation otherwise).
Hierarchy
Mesh<BufferGeometry,MeshBasicMaterial>↳
ARPlacementBox
Properties
hitPlane
• hitPlane: Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, MeshBasicMaterial<MaterialEventMap>, Object3DEventMap>
shadowHeight
• shadowHeight: number
boundingSize
• Readonly boundingSize: Vector3
_stablePoses
• Optional _stablePoses: { distance: number ; faceNormal: Vector3 ; area: number ; face: Face ; maxEdgeLength: number ; xform: Matrix4 ; edgePoint: Vector3 }[]
Inherited from
Mesh._stablePoses
_poseIndex
• Optional _poseIndex: number
Inherited from
Mesh._poseIndex
_originalXform
• Optional _originalXform: Matrix4
Inherited from
Mesh._originalXform
Constructors
constructor
• new ARPlacementBox(boundingBox, camera, placeOnWall?)
Parameters
| Name | Type | Default value |
|---|---|---|
boundingBox | Box3B | undefined |
camera | Camera<Object3DEventMap> | undefined |
placeOnWall | boolean | false |
Overrides
Mesh<BufferGeometry, MeshBasicMaterial\>.constructor
Methods
getHit
▸ getHit(scene, screenX, screenY): null | Vector3
Get the world hit position if the touch coordinates hit the box, and null otherwise. Pass the scene in to get access to its raycaster.
Parameters
| Name | Type |
|---|---|
scene | Object3D<Object3DEventMap> |
screenX | number |
screenY | number |
Returns
null | Vector3
getExpandedHit
▸ getExpandedHit(scene, screenX, screenY): null | Vector3
Parameters
| Name | Type |
|---|---|
scene | Object3D<Object3DEventMap> |
screenX | number |
screenY | number |
Returns
null | Vector3
updateOpacity
▸ updateOpacity(delta): void
Call on each frame with the frame delta to fade the box.
Parameters
| Name | Type |
|---|---|
delta | number |
Returns
void
dispose
▸ dispose(): void
Call this to clean up Three's cache when you remove the box.
Returns
void
Accessors
offsetHeight
• get offsetHeight(): number
Offset the height of the box relative to the bottom of the scene. Positive is up, so generally only negative values are used.
Returns
number
• set offsetHeight(offset): void
Offset the height of the box relative to the bottom of the scene. Positive is up, so generally only negative values are used.
Parameters
| Name | Type |
|---|---|
offset | number |
Returns
void
show
• get show(): boolean
Set the box's visibility; it will fade in and out.
Returns
boolean
• set show(visible): void
Set the box's visibility; it will fade in and out.
Parameters
| Name | Type |
|---|---|
visible | boolean |
Returns
void