overte/scripts/system/fingerPaint/content/animatedBrushes/animatedHueBrush.js
2017-08-16 18:35:21 +01:00

26 lines
No EOL
1.2 KiB
JavaScript

//Superclass
Script.include("animatedBrush.js");
Script.include("../js/ColorUtils.js");
function AnimatedHueBrushClass(settings, entityID) {
AnimatedBrush.call(this);
this.hsvColor = rgb2hsv(Entities.getEntityProperties(entityID).color);// {hue: 0, saturation: 1.0, value: 1.0};
this.animatedColor = {red: 0, green: 0, blue: 0};
}
AnimatedHueBrushClass.prototype.ANIMATED_BRUSH_TIME = 10; //inteval in milliseconds to update the brush width;
AnimatedHueBrushClass.prototype.ANIMATED_BRUSH_INCREMENT = 0.5; //linear increment of brush size;
AnimatedHueBrushClass.prototype.NAME = "animatedHueBrush";
AnimatedHueBrushClass.prototype.onUpdate = function(deltaSeconds, entityID) {
this.hsvColor.hue = this.hsvColor.hue + ((deltaSeconds * this.ANIMATED_BRUSH_INCREMENT)/this.ANIMATED_BRUSH_TIME);
this.hsvColor.hue = this.hsvColor.hue >= 360 ? 0 : this.hsvColor.hue; //restart hue cycle
this.animatedColor = hsv2rgb(this.hsvColor);
Entities.editEntity(entityID, { color : this.animatedColor});
this.parent.updateUserData(entityID, this);
}
AnimatedHueBrushClass.prototype.constructor = AnimatedHueBrushClass;
AnimatedHueBrushClass.prototype.parent = AnimatedBrush.prototype;
AnimatedHueBrush = AnimatedHueBrushClass;