# Intersections
Entry point for intersecting and obtaining intersection data from the scene. Accessible from SpeckleRenderer
# Methods
intersect | intersectRay |
---|
# Typedefs
ExtendedIntersection | ExtendedMeshIntersection | MeshIntersection |
---|
# Methods
# intersect
intersect(
scene: Scene,
camera: Camera,
point: Vector2,
castLayers: ObjectLayers.STREAM_CONTENT_MESH,
nearest?: boolean,
bounds?: Box3,
firstOnly?: boolean,
tasOnly?: boolean
): Array<ExtendedMeshIntersection> | null
intersect(
scene: Scene,
camera: Camera,
point: Vector2,
castLayers?: Array<ObjectLayers>,
nearest?: boolean,
bounds?: Box3,
firstOnly?: boolean,
tasOnly?: boolean
): Array<ExtendedIntersection> | null
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Scene intersect function.
TIP
All intersect calls from this class will use the available acceleration structures. This makes the intersection significantly faster than using your own three.js raycasters.
Parameters
- scene: Scene (opens new window)
- camera: Camera (opens new window)
- point: The NDC point to cast the ray from
- castLayers: The ObjectLayers enabled on the raycaster
- nearest: If the results should be sorted by dinstance. i.e nearest first
- bounds: An optional bounds where the intersecting takes place. Everything outside this bounds is disregarded from the result list for this cast. Any object outside of these layers is disregarded from intersection
- firstOnly: When this flag is enabled the acceleration structure will stop traversing after encountering the first intersection. Only applies to meshes
- tasOnly: When this flag is enabled, onyl the TAS will be intersected. Can be combined with
firstOnly
if wanted Returns: Array< Intersection > Three.js defined intersection
# intersectRay
intersectRay(
scene: Scene,
camera: Camera,
ray: Ray,
castLayers: ObjectLayers.STREAM_CONTENT_MESH,
nearest?: boolean,
bounds?: Box3,
firstOnly?: boolean,
tasOnly?: boolean
): Array<ExtendedMeshIntersection> | null
intersectRay(
scene: Scene,
camera: Camera,
ray: Ray,
castLayers?: Array<ObjectLayers>,
nearest?: boolean,
bounds?: Box3,
firstOnly?: boolean,
tasOnly?: boolean
): Array<ExtendedIntersection> | null
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Scene intersect function using a provided Ray.
TIP
All intersect calls from this class will use the available acceleration structures. This makes the intersection significantly faster than using your own three.js raycasters.
Parameters
- scene: Scene (opens new window)
- camera: Camera (opens new window)
- ray: The ray to use for casting
- castLayers: The ObjectLayers enabled on the raycaster
- nearest: If the results should be sorted by dinstance. i.e nearest first
- bounds: An optional bounds where the intersecting takes place. Everything outside this bounds is disregarded from the result list for this cast. Any object outside of these layers is disregarded from intersection
- firstOnly: When this flag is enabled the acceleration structure will stop traversing after encountering the first intersection. Only applies to meshes
- tasOnly: When this flag is enabled, onyl the TAS will be intersected. Can be combined with
firstOnly
if wanted Returns: Array< Intersection > Three.js defined intersection
# Typedefs
# ExtendedIntersection
interface ExtendedIntersection extends Intersection {
batchObject?: BatchObject;
pointOnLine?: Material;
}
1
2
3
4
2
3
4
Extension of three.js's default Intersection.
# ExtendedMeshIntersection
interface ExtendedMeshIntersection extends MeshIntersection {
batchObject: BatchObject
object: SpeckleMesh | SpeckleInstancedMesh
}
1
2
3
4
2
3
4
# MeshIntersection
interface MeshIntersection extends Intersection {
face: Face
faceIndex: number
}
1
2
3
4
2
3
4