forked from jeeliz/jeelizFaceFilter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
63 lines (49 loc) · 1.71 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// SETTINGS of this demo:
const SETTINGS = {
maxFaces: 4, // max number of detected faces
};
// some globalz:
let THREECAMERA = null;
// callback: launched if a face is detected or lost
function detect_callback(faceIndex, isDetected){
if (isDetected){
console.log('INFO in detect_callback(): face n°', faceIndex, 'DETECTED');
} else {
console.log('INFO in detect_callback(): face n°', faceIndex, 'LOST');
}
}
// build the 3D. called once when Jeeliz Face Filter is OK
function init_threeScene(spec){
const threeStuffs = JeelizThreeHelper.init(spec, detect_callback);
// CREATE A CUBE:
const cubeGeometry = new THREE.BoxGeometry(1,1,1);
const cubeMaterial = new THREE.MeshNormalMaterial();
const threeCube = new THREE.Mesh(cubeGeometry, cubeMaterial);
threeCube.frustumCulled = false;
threeStuffs.faceObjects.forEach(function(faceObject){ // display the cube for each detected face
faceObject.add(threeCube.clone());
});
// CREATE THE CAMERA:
THREECAMERA = JeelizThreeHelper.create_camera();
}
// Entry point:
function main(){
JEELIZFACEFILTER.init({
canvasId: 'jeeFaceFilterCanvas',
NNCPath: '../../../neuralNets/', // root of NN_DEFAULT.json file
maxFacesDetected: SETTINGS.maxFaces,
callbackReady: function(errCode, spec){
if (errCode){
console.log('AN ERROR HAPPENS. SORRY BRO :( . ERR =', errCode);
return;
}
console.log('INFO: JEELIZFACEFILTER IS READY');
init_threeScene(spec);
},
// called at each render iteration (drawing loop)
callbackTrack: function(detectState){
JeelizThreeHelper.render(detectState, THREECAMERA);
}
}); //end JEELIZFACEFILTER.init call
}
window.addEventListener('load', main);