dat.gui/elements/controller-base/controller-base.js

72 lines
950 B
JavaScript
Raw Normal View History

2014-09-04 04:14:36 +00:00
/* globals Gui, Polymer, PathObserver */
'use strict';
2014-08-27 00:01:15 +00:00
/*
[ ] onChange()
[ ] onFinishChange()
2014-08-27 00:01:15 +00:00
*/
Polymer('controller-base', {
ready: function() {
2014-08-27 00:01:15 +00:00
this.update();
2014-08-27 00:01:15 +00:00
},
2014-08-27 00:01:15 +00:00
update: function() {},
2014-08-27 00:01:15 +00:00
init: function() {},
2014-08-27 00:01:15 +00:00
// Observers
// -------------------------------
2014-08-27 00:01:15 +00:00
watch: function(object, path) {
2014-08-27 00:01:15 +00:00
this.object = object;
this.path = path;
2014-08-27 00:01:15 +00:00
this.bind('value', new PathObserver(this.object, this.path));
2014-08-15 16:32:49 +00:00
},
2014-08-27 00:01:15 +00:00
valueChanged: function() {
2014-08-27 00:01:15 +00:00
this.update();
2014-08-27 00:01:15 +00:00
},
2014-08-27 00:01:15 +00:00
// Helpers
// -------------------------------
2014-08-27 00:01:15 +00:00
map: function(x, a, b, c, d) {
return (x - a) / (b - a) * (d - c) + c;
},
2014-08-27 00:01:15 +00:00
// Legacy
// -------------------------------
2014-08-27 00:01:15 +00:00
listen: function() {
2014-08-27 00:01:15 +00:00
Gui.warn('controller.listen() is deprecated. ' +
'All controllers are listened for free.');
return this;
2014-08-27 00:01:15 +00:00
},
2014-08-27 00:01:15 +00:00
getValue: function() {
2014-08-27 00:01:15 +00:00
return this.value;
2014-08-27 00:01:15 +00:00
},
2014-08-27 00:01:15 +00:00
setValue: function(v) {
2014-08-27 00:01:15 +00:00
this.value = v;
2014-08-27 00:01:15 +00:00
}
});