Needs a lot of cleanup. Data has been de-duplicated, and where identical copies existed, one of them has been replaced with a symlink. Some files have been excluded, such as binaries, installers and debug dumps. Some of that may still be present.
73 lines
No EOL
1.9 KiB
JavaScript
73 lines
No EOL
1.9 KiB
JavaScript
//
|
|
// rayPickingFilterExample.js
|
|
// examples
|
|
//
|
|
// Created by Eric Levin on 12/24/2015
|
|
// Copyright 2015 High Fidelity, Inc.
|
|
//
|
|
// This is an example script that demonstrates the use of filtering entities for ray picking
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
|
|
|
|
var center = Vec3.sum(MyAvatar.position, Vec3.multiply(3, Quat.getFront(Camera.getOrientation())));
|
|
|
|
var whiteListBox = Entities.addEntity({
|
|
type: "Box",
|
|
color: {
|
|
red: 10,
|
|
green: 200,
|
|
blue: 10
|
|
},
|
|
dimensions: {
|
|
x: 0.2,
|
|
y: 0.2,
|
|
z: 0.2
|
|
},
|
|
position: center
|
|
});
|
|
|
|
var blackListBox = Entities.addEntity({
|
|
type: "Box",
|
|
color: {
|
|
red: 100,
|
|
green: 10,
|
|
blue: 10
|
|
},
|
|
dimensions: {
|
|
x: 0.2,
|
|
y: 0.2,
|
|
z: 0.2
|
|
},
|
|
position: Vec3.sum(center, {
|
|
x: 0,
|
|
y: 0.3,
|
|
z: 0
|
|
})
|
|
});
|
|
|
|
|
|
function castRay(event) {
|
|
var pickRay = Camera.computePickRay(event.x, event.y);
|
|
// In this example every entity will be pickable except the entities in the blacklist array
|
|
// the third argument is the whitelist array,and the fourth and final is the blacklist array
|
|
var pickResults = Entities.findRayIntersection(pickRay, true, [], [blackListBox]);
|
|
|
|
// With below example, only entities added to whitelist will be pickable
|
|
// var pickResults = Entities.findRayIntersection(pickRay, true, [whiteListBox], []);
|
|
|
|
if (pickResults.intersects) {
|
|
print("INTERSECTION!");
|
|
}
|
|
|
|
}
|
|
|
|
function cleanup() {
|
|
Entities.deleteEntity(whiteListBox);
|
|
Entities.deleteEntity(blackListBox);
|
|
}
|
|
|
|
Script.scriptEnding.connect(cleanup);
|
|
Controller.mousePressEvent.connect(castRay); |