UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

39 lines (38 loc) 1.3 kB
"use strict"; import { computerVisionValidSource } from "../../core/computerVision/Common"; import { CoreComputerVisionFace } from "../../core/computerVision/face/CoreComputerVisionFace"; import { dummyReadRefVal } from "../../core/reactivity/CoreReactivity"; import { touchTrackedObject, getOrCreateTrackedObjectRef } from "../../core/reactivity/TrackingReactivity"; import { ObjectNamedFunction1, ObjectNamedFunction2 } from "./_Base"; export class trackFace extends ObjectNamedFunction1 { static type() { return "trackFace"; } func(object3D, texture) { if (!texture) { return; } const source = computerVisionValidSource(texture); if (!source) { return; } CoreComputerVisionFace.trackMedia(object3D, source); touchTrackedObject(object3D); } } export class trackFaceGetLandmarks extends ObjectNamedFunction2 { static type() { return "trackFaceGetLandmarks"; } func(object3D, faceIndex, target) { dummyReadRefVal(getOrCreateTrackedObjectRef(this.timeController, object3D).value); const results = CoreComputerVisionFace.trackerResults(object3D); const vectorArray = results[faceIndex].multiFaceLandmarks; let i = 0; for (let src of vectorArray) { target[i].copy(src); i++; } return target; } }