polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
68 lines (67 loc) • 1.94 kB
JavaScript
import {TypedMultipleParam} from "./_Multiple";
import {Vector2 as Vector22} from "three/src/math/Vector2";
import {ParamType as ParamType2} from "../poly/ParamType";
import {CoreType} from "../../core/Type";
const COMPONENT_NAMES_VECTOR2 = ["x", "y"];
export class Vector2Param extends TypedMultipleParam {
constructor() {
super(...arguments);
this._value = new Vector22();
this._copied_value = [0, 0];
}
static type() {
return ParamType2.VECTOR2;
}
get component_names() {
return COMPONENT_NAMES_VECTOR2;
}
get default_value_serialized() {
if (CoreType.isArray(this.default_value)) {
return this.default_value;
} else {
return this.default_value.toArray();
}
}
get value_serialized() {
return this.value.toArray();
}
_copy_value(param) {
param.value.toArray(this._copied_value);
this.set(this._copied_value);
}
_clone_raw_input(raw_input) {
if (raw_input instanceof Vector22) {
return raw_input.clone();
} else {
const new_array = [raw_input[0], raw_input[1]];
return new_array;
}
}
static are_raw_input_equal(raw_input1, raw_input2) {
if (raw_input1 instanceof Vector22) {
if (raw_input2 instanceof Vector22) {
return raw_input1.equals(raw_input2);
} else {
return raw_input1.x == raw_input2[0] && raw_input1.y == raw_input2[1];
}
} else {
if (raw_input2 instanceof Vector22) {
return raw_input1[0] == raw_input2.x && raw_input1[1] == raw_input2.y;
} else {
return raw_input1[0] == raw_input2[0] && raw_input1[1] == raw_input2[1];
}
}
}
static are_values_equal(val1, val2) {
return val1.equals(val2);
}
init_components() {
super.init_components();
this.x = this.components[0];
this.y = this.components[1];
}
set_value_from_components() {
this._value.x = this.x.value;
this._value.y = this.y.value;
}
}