1 line
1.0 KiB
JavaScript
1 line
1.0 KiB
JavaScript
"use strict";var t=require("../main").animate,i=require("../bt/main"),e=i.Status,s=i.createBehavior,o=i.factory,n=require("animation-utilities").THREE;module.exports=s({constructor:function(t,i,s){this.getTarget=t,this.isContinous=void 0===i?!1:i,this.config=s,this.status=e.INVALID,this.threeVec=new n.Vector3(0,0,0)},start:function(){this.status=e.IN_PROGRESS,this.builder=t.createLookatBuilder(),this.onStoppedBind=this.onStopped.bind(this),this.builder.on("STOPPED",this.onStoppedBind),this.builder.setContinuousMode(this.isContinous),void 0!==this.config&&this.config(this.builder);var i=this.getTarget();return this.threeVec.set(i.x,i.y,i.z),this.lookAtInstance=this.builder.startLookat(this.threeVec),!0},onStopped:function(){this.status=e.SUCCEEDED},stop:function(){this.lookAtInstance&&this.lookAtInstance.stop()},update:function(){if(this.isContinous&&void 0!==this.lookAtInstance){var t=this.getTarget();this.threeVec.set(t.x,t.y,t.z),this.lookAtInstance.updateTarget(this.threeVec)}return this.status}}),o.addBehavior(module); |