UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

97 lines (96 loc) 2.46 kB
"use strict"; import { NamedFunction1, NamedFunction2, NamedFunction3 } from "./_Base"; import { sampleData0 } from "../../core/keyframes/KeyframeSamples"; import { Channel } from "../../core/keyframes/Channel"; function _getChannelByIndexOrFirst(data, index) { if (data.length > index) { return data[index]; } else { return data[0] || sampleData0(); } } export class channelFloat extends NamedFunction1 { static type() { return "channelFloat"; } func(data) { return new Channel(data); } } export class channelVector2 extends NamedFunction1 { static type() { return "channelVector2"; } func(data) { return { x: new Channel(_getChannelByIndexOrFirst(data, 0)), y: new Channel(_getChannelByIndexOrFirst(data, 1)) }; } } export class channelVector3 extends NamedFunction1 { static type() { return "channelVector3"; } func(data) { return { x: new Channel(_getChannelByIndexOrFirst(data, 0)), y: new Channel(_getChannelByIndexOrFirst(data, 1)), z: new Channel(_getChannelByIndexOrFirst(data, 2)) }; } } export class channelVector4 extends NamedFunction1 { static type() { return "channelVector4"; } func(data) { return { x: new Channel(_getChannelByIndexOrFirst(data, 0)), y: new Channel(_getChannelByIndexOrFirst(data, 1)), z: new Channel(_getChannelByIndexOrFirst(data, 2)), w: new Channel(_getChannelByIndexOrFirst(data, 3)) }; } } export class channelValueFloat extends NamedFunction2 { static type() { return "channelValueFloat"; } func(channel, t) { return channel.value(t); } } export class channelValueVector2 extends NamedFunction3 { static type() { return "channelValueVector2"; } func(channel, t, target) { target.x = channel.x.value(t); target.y = channel.y.value(t); return target; } } export class channelValueVector3 extends NamedFunction3 { static type() { return "channelValueVector3"; } func(channel, t, target) { target.x = channel.x.value(t); target.y = channel.y.value(t); target.z = channel.z.value(t); return target; } } export class channelValueVector4 extends NamedFunction3 { static type() { return "channelValueVector4"; } func(channel, t, target) { target.x = channel.x.value(t); target.y = channel.y.value(t); target.z = channel.z.value(t); target.w = channel.w.value(t); return target; } }