diff -r a3cf9f635952 -r 59a331f80858 svghmi/widget_animaterotation.ysl2 --- a/svghmi/widget_animaterotation.ysl2 Fri Oct 11 10:34:15 2024 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -// widget_animaterotation.ysl2 - -widget_desc("AnimateRotation") { - longdesc - || - AnimateRotation - DEPRECATED, do not use. - Doesn't follow WYSIWYG principle, and forces user to add animateTransform tag in SVG (using inkscape XML editor for exemple) - || - - shortdesc > AnimateRotation - DEPRECATED - - path name="speed" accepts="HMI_INT,HMI_REAL" > speed - -} - -widget_class("AnimateRotation") { - || - frequency = 5; - speed = 0; - widget_center = undefined; - - dispatch(value) { - this.speed = value / 5; - - //reconfigure animation - this.request_animate(); - } - - animate(){ - // change animation properties - // TODO : rewrite with proper es6 - for(let child of this.element.children){ - if(child.nodeName == "animateTransform"){ - if(this.speed > 0){ - child.setAttribute("dur", this.speed+"s"); - child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]); - child.setAttribute("to", "360 "+this.widget_center[0]+" "+this.widget_center[1]); - } - else if(this.speed < 0){ - child.setAttribute("dur", (-1)*this.speed+"s"); - child.setAttribute("from", "360 "+this.widget_center[0]+" "+this.widget_center[1]); - child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]); - } - else{ - child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]); - child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]); - } - } - } - } - - init() { - let widget_pos = this.element.getBBox(); - this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)]; - } - || -} -