193 lines
4.1 KiB
JavaScript
193 lines
4.1 KiB
JavaScript
const Utils = require('r3-utils');
|
|
const Event = require('r3-event.js');
|
|
|
|
/**
|
|
|
|
OPTIONS_START
|
|
a=2.0
|
|
b=3.0
|
|
something='hello'
|
|
OPTIONS_END
|
|
|
|
INSTANCE_OPTIONS_MAPPING_START
|
|
INSTANCE_OPTIONS_MAPPING_END
|
|
|
|
LINKED_OBJECTS_START
|
|
LINKED_OBJECTS_END
|
|
|
|
EXCLUDED_FROM_INSTANCE_OPTIONS_START
|
|
b
|
|
EXCLUDED_FROM_INSTANCE_OPTIONS_END
|
|
|
|
**/
|
|
|
|
class VectorApplierAgain extends Event {
|
|
|
|
//CONSTRUCTOR_EXTENDS_TEMPLATE_START
|
|
constructor(options) {
|
|
|
|
if (Utils.UndefinedOrNull(options)) {
|
|
options = {};
|
|
}
|
|
|
|
options.id = Utils.RandomId(10);
|
|
options.name = 'VectorApplierAgain (' + options.id + ')';
|
|
|
|
super(options);
|
|
|
|
this.emit(Event.OBJECT_CREATED, this);
|
|
|
|
//OPTIONS_INIT_START
|
|
if (Utils.UndefinedOrNull(options.a)) {
|
|
options.a = 2.0;
|
|
}
|
|
if (Utils.UndefinedOrNull(options.b)) {
|
|
options.b = 3.0;
|
|
}
|
|
if (Utils.UndefinedOrNull(options.something)) {
|
|
options.something = 'hello';
|
|
}
|
|
//OPTIONS_INIT_END
|
|
|
|
//CUSTOM_OPTIONS_INIT_START
|
|
//CUSTOM_OPTIONS_INIT_END
|
|
|
|
Object.assign(this, options);
|
|
|
|
//CUSTOM_BEFORE_INIT_START
|
|
//CUSTOM_BEFORE_INIT_END
|
|
|
|
this.emit(Event.OBJECT_INITIALIZED, this);
|
|
}
|
|
//CONSTRUCTOR_EXTENDS_TEMPLATE_END
|
|
|
|
//CREATE_INSTANCE_TEMPLATE_START
|
|
createInstance() {
|
|
|
|
//CREATE_INSTANCE_BEFORE_START
|
|
super.createInstance();
|
|
this.emit(Event.CREATE_INSTANCE, this);
|
|
|
|
if (this.runtime === 'graphics') {
|
|
this.graphics.createInstance(
|
|
{
|
|
//CREATE_INSTANCE_OPTIONS_START
|
|
'a': this.a,
|
|
'something': this.something
|
|
//CREATE_INSTANCE_OPTIONS_END
|
|
},
|
|
this
|
|
)
|
|
}
|
|
//CREATE_INSTANCE_BEFORE_END
|
|
|
|
//CUSTOM_CREATE_INSTANCE_START
|
|
//CUSTOM_CREATE_INSTANCE_END
|
|
|
|
//CREATE_INSTANCE_AFTER_START
|
|
this.emit(Event.INSTANCE_CREATED, this);
|
|
//CREATE_INSTANCE_AFTER_END
|
|
|
|
}
|
|
//CREATE_INSTANCE_TEMPLATE_END
|
|
|
|
//UPDATE_INSTANCE_TEMPLATE_START
|
|
updateInstance(property) {
|
|
|
|
//UPDATE_INSTANCE_BEFORE_START
|
|
this.emit(Event.UPDATE_INSTANCE_BEFORE, this);
|
|
//UPDATE_INSTANCE_BEFORE_END
|
|
|
|
//UPDATE_INSTANCE_OPTIONS_START
|
|
if (property === 'a') {
|
|
this.instance.a = this.a;
|
|
return;
|
|
}
|
|
if (property === 'something') {
|
|
this.instance.something = this.something;
|
|
return;
|
|
}
|
|
//UPDATE_INSTANCE_OPTIONS_END
|
|
|
|
//CUSTOM_UPDATE_INSTANCE_START
|
|
//CUSTOM_UPDATE_INSTANCE_END
|
|
|
|
//UPDATE_INSTANCE_AFTER_START
|
|
this.emit(Event.UPDATE_INSTANCE_AFTER, this);
|
|
//UPDATE_INSTANCE_AFTER_END
|
|
|
|
}
|
|
//UPDATE_INSTANCE_TEMPLATE_END
|
|
|
|
//UPDATE_FROM_INSTANCE_TEMPLATE_START
|
|
updateFromInstance(property) {
|
|
|
|
//UPDATE_FROM_INSTANCE_BEFORE_START
|
|
this.emit(Event.UPDATE_FROM_INSTANCE_BEFORE, this);
|
|
//UPDATE_FROM_INSTANCE_BEFORE_END
|
|
|
|
//UPDATE_FROM_INSTANCE_OPTIONS_START
|
|
if (property === 'a') {
|
|
this.a = this.instance.a;
|
|
return;
|
|
}
|
|
if (property === 'something') {
|
|
this.something = this.instance.something;
|
|
return;
|
|
}
|
|
//UPDATE_FROM_INSTANCE_OPTIONS_END
|
|
|
|
//CUSTOM_UPDATE_FROM_INSTANCE_START
|
|
//CUSTOM_UPDATE_FROM_INSTANCE_END
|
|
|
|
//UPDATE_FROM_INSTANCE_AFTER_START
|
|
this.emit(Event.UPDATE_FROM_INSTANCE_AFTER, this);
|
|
//UPDATE_FROM_INSTANCE_AFTER_END
|
|
|
|
}
|
|
//UPDATE_FROM_INSTANCE_TEMPLATE_END
|
|
|
|
//DISPOSE_TEMPLATE_START
|
|
dispose() {
|
|
|
|
//DISPOSE_BEFORE_START
|
|
this.emit(Event.DISPOSE_OBJECT, this);
|
|
//DISPOSE_BEFORE_END
|
|
|
|
//CUSTOM_DISPOSE_START
|
|
//CUSTOM_DISPOSE_END
|
|
|
|
//DISPOSE_AFTER_START
|
|
this.emit(Event.OBJECT_DISPOSED, this);
|
|
//DISPOSE_AFTER_END
|
|
|
|
}
|
|
//DISPOSE_TEMPLATE_END
|
|
|
|
//DISPOSE_INSTANCE_TEMPLATE_START
|
|
disposeInstance() {
|
|
|
|
//DISPOSE_INSTANCE_BEFORE_START
|
|
super.disposeInstance();
|
|
this.emit(Event.DISPOSE_INSTANCE, this);
|
|
//DISPOSE_INSTANCE_BEFORE_END
|
|
|
|
//CUSTOM_DISPOSE_INSTANCE_START
|
|
//CUSTOM_DISPOSE_INSTANCE_END
|
|
|
|
//DISPOSE_INSTANCE_AFTER_START
|
|
this.emit(Event.INSTANCE_DISPOSED, this);
|
|
//DISPOSE_INSTANCE_AFTER_END
|
|
|
|
}
|
|
//DISPOSE_INSTANCE_TEMPLATE_END
|
|
|
|
//CUSTOM_IMPLEMENTATION_START
|
|
//CUSTOM_IMPLEMENTATION_END
|
|
|
|
}
|
|
|
|
//CUSTOM_OUT_OF_CLASS_IMPLEMENTATION_START
|
|
//CUSTOM_OUT_OF_CLASS_IMPLEMENTATION_END
|
|
|
|
module.exports = VectorApplierAgain; |