$ = {
const comp = new Composition();
const anim = new Anim();
const camRatioRect = [0, 0, 1920, 1080];
const camera = anim.wrap({scene: '0', rect: [0, 0, 10, 10]});
const col = 5;
const sr = makeRects(comp, anim, col);
const ssr = makeStoredRects(comp, anim, col);
anim.reset();
anim.time = 0;
camera.scene = '0';
sr.posLabel.opacity = 1;
sr.posVec.opacity = 1;
sr.inWordVec.opacity = 1;
sr.inWordLabel.opacity = 1;
sr.inVec.opacity = 0;
sr.inVec.rect = sr.inVec.rect;
camera.rect = rect.outscribe(camRatioRect, rect.relPad(rect.bbox([
sr.posLabel.rect,
sr.inVec.rect,
]), -0.1));
sr.posVec.rect = sr.posVec.rect;
anim.time += 1;
camera.scene = '10';
sr.posVec.rect = sr.posVec.rect;
sr.inWordVec.rect = sr.inWordVec.rect;
anim.time += 1;
camera.scene = '20';
camera.rect = rect.outscribe(camRatioRect, rect.relPad(rect.bbox([
sr.posLabel.rect,
sr.inVec.rect,
]), -0.1));
sr.inVec.rect = sr.inVec.rect;
sr.posVec.rect = sr.inVec.rect;
sr.inWordVec.rect = sr.inVec.rect;
sr.posVec.opacity = 1;
sr.inWordVec.opacity = 1;
sr.inVec.opacity = 0;
anim.time += 1;
camera.scene = '30';
sr.posVec.rect = sr.inVec.rect;
sr.inWordVec.rect = sr.inVec.rect;
sr.inVec.opacity = 1;
sr.posVec.opacity = 0;
sr.inWordVec.opacity = 0;
sr.posLabel.opacity = 1;
sr.inWordLabel.opacity = 1;
anim.time += 1;
camera.scene = '40';
camera.rect = rect.outscribe(camRatioRect, rect.relPad(rect.bbox([
sr.posLabel.rect,
sr.inVec.rect,
]), -0.1));
sr.posVec.rect = sr.inVec.rect;
sr.inWordVec.rect = sr.inVec.rect;
sr.inVec.opacity = 1;
sr.posVec.opacity = 0;
sr.inWordVec.opacity = 0;
sr.posLabel.opacity = 1;
sr.inWordLabel.opacity = 1;
// sr.attnVec.opacity = 0;
// sr.attnVec.rect = sr.inVec.rect;
anim.time += 1;
camera.scene = '50';
camera.rect = rect.outscribe(camRatioRect, rect.relPad(rect.bbox([
sr.inVec.rect,
sr.queryVec.rect,
]), -0.1));
// sr.attnVec.opacity = 1;
// sr.attnVec.rect = sr.inVec.rect;
sr.keyVec.opacity = 0;
anim.time += 1;
camera.scene = '60';
// sr.attnVec.opacity = 1;
// sr.attnVec.rect = sr.attnVec.rect;
sr.keyVec.opacity = 0;
sr.valueVec.opacity = 0;
anim.time += 2;
camera.scene = '70';
sr.keyVec.opacity = 1;
sr.queryVec.opacity = 0;
anim.time += 2;
camera.scene = '80';
sr.keyVec.opacity = 1;
sr.queryVec.opacity = 1;
sr.valueVec.opacity = 0;
anim.time += 4;
camera.scene = '90';
sr.valueVec.opacity = 1;
camera.rect = rect.outscribe(camRatioRect, rect.relPad(rect.bbox([
sr.inVec.rect,
sr.queryVec.rect,
]), -0.1));
sr.keyVec.opacity = 1;
// sr.attnVec.opacity = 1;
sr.queryVec.opacity = 1;
sr.inVec.opacity = 1;
sr.posVec.opacity = 0;
sr.inWordVec.opacity = 0;
sr.posLabel.opacity = 1;
sr.inWordLabel.opacity = 1;
anim.time += 2;
camera.scene = '100';
camera.rect = rect.outscribe(camRatioRect, rect.relPad(rect.bbox([
sr.inVec.rect,
sr.queryVec.rect,
]), -0.1));
sr.keyVec.opacity = 1;
sr.queryVec.opacity = 1;
sr.queryVec.rect = sr.queryVec.rect;
sr.valueVec.opacity = 1;
// sr.attnVec.opacity = 0;
sr.inVec.opacity = 0;
sr.posVec.opacity = 0;
sr.inWordVec.opacity = 0;
sr.posLabel.opacity = 0;
sr.inWordLabel.opacity = 0;
ssr.forEach(item => {
item.storedValueVec.opacity = 0;
item.storedQueryVec.opacity = 0;
item.storedKeyVec.opacity = 0;
item.storedQueryVec.rect = sr.queryVec.rect;
});
anim.time += 2;
camera.scene = '110';
ssr.forEach((item, num) => {
item.storedValueVec.opacity = num < col ? 1 : 0;
item.storedKeyVec.opacity = num < col ? 1 : 0;
item.storedQueryVec.opacity = 1;
item.storedQueryVec.rect = sr.queryVec.rect;
});
camera.rect = rect.outscribe(camRatioRect, rect.relPad(rect.bbox([
ssr[0].storedValueVec.rect,
ssr.at(-1).storedQueryVec.rect,
ssr.at(-1).storedKeyVec.rect,
sr.queryVec.rect,
]), -0.1));
sr.valueVec.rect = sr.valueVec.rect;
sr.keyVec.rect = sr.keyVec.rect;
anim.time += 2;
camera.scene = '120';
camera.rect = rect.outscribe(camRatioRect, rect.relPad(rect.bbox([
ssr[0].storedValueVec.rect,
ssr.at(-1).storedQueryVec.rect,
ssr.at(-1).storedKeyVec.rect,
sr.queryVec.rect,
]), -0.1));
ssr.forEach((item, num) => {
item.storedValueVec.opacity = num < col ? 1 : 0;
item.storedKeyVec.opacity = num < col ? 1 : 0;
item.storedQueryVec.opacity = 1;
item.storedQueryVec.rect = sr.queryVec.rect;
});
sr.keyVec.opacity = 1;
sr.queryVec.opacity = 1;
sr.valueVec.opacity = 1;
sr.valueVec.rect = ssr[col].storedValueVec.rect;
sr.keyVec.rect = ssr[col].storedKeyVec.rect;
anim.time += 2;
camera.scene = '130';
camera.rect = rect.outscribe(camRatioRect, rect.relPad(rect.bbox([
ssr[0].storedValueVec.rect,
ssr.at(-1).storedQueryVec.rect,
ssr.at(-1).storedKeyVec.rect,
sr.queryVec.rect,
]), -0.1));
sr.valueVec.opacity = 1;
sr.keyVec.opacity = 1;
sr.queryVec.opacity = 0;
sr.queryVec.rect = sr.queryVec.rect;
ssr.forEach((item, num) => {
item.storedValueVec.opacity = num < col ? 1 : 0;
item.storedKeyVec.opacity = num < col ? 1 : 0;
item.storedQueryVec.opacity = 1;
item.storedQueryVec.rect = item.storedQueryVec.rect;
});
anim.time += 2;
camera.scene = '140';
camera.rect = rect.outscribe(camRatioRect, rect.relPad(rect.bbox([
ssr[0].storedValueVec.rect,
ssr.at(-1).storedQueryVec.rect,
ssr.at(-1).storedKeyVec.rect,
sr.queryVec.rect,
]), -0.1));
sr.queryVec.rect = sr.queryVec.rect;
ssr.forEach((item, num) => {
item.storedValueVec.opacity = 1;
item.storedKeyVec.opacity = 1;
item.storedQueryVec.opacity = 1;
item.storedQueryVec.rect = item.storedQueryVec.rect;
});
sr.keyVec.opacity = 0;
sr.valueVec.opacity = 0;
sr.queryVec.opacity = 0;
anim.time += 2;
camera.scene = '150';
camera.rect = rect.outscribe(camRatioRect, rect.relPad(rect.bbox([
ssr[col].storedKeyVec.rect,
ssr[col].storedQueryVec.rect,
]), -0.1));
ssr.forEach((item, num) => {
item.storedQueryVec.rect = item.storedQueryVec.rect;
item.storedValueVec.opacity = 1;
item.storedKeyVec.opacity = 1;
item.storedQueryVec.opacity = 1;
});
anim.time += 2;
camera.scene = '160';
camera.rect = rect.outscribe(camRatioRect, rect.relPad(rect.bbox([
ssr[col].storedKeyVec.rect,
ssr[col].storedQueryVec.rect,
]), -0.1));
ssr.forEach((item, num) => {
item.storedQueryVec.rect = item.storedQueryVec.rect;
item.storedValueVec.opacity = 1;
item.storedKeyVec.opacity = 1;
item.storedQueryVec.opacity = 1;
});
anim.time += 2;
camera.scene = '170';
camera.rect = rect.outscribe(camRatioRect, rect.relPad(rect.bbox([
ssr[0].storedValueVec.rect,
ssr.at(-1).storedQueryVec.rect,
ssr.at(-1).storedKeyVec.rect,
sr.queryVec.rect,
]), -0.1));
ssr.forEach((item, num) => {
item.storedQueryVec.rect = item.storedQueryVec.rect;
item.storedValueVec.opacity = 1;
item.storedKeyVec.opacity = 1;
item.storedQueryVec.opacity = 1;
});
anim.time += 4;
camera.scene = '180';
camera.rect = rect.outscribe(camRatioRect, rect.relPad(rect.bbox([
ssr[0].storedValueVec.rect,
ssr.at(-1).storedQueryVec.rect,
ssr.at(-1).storedKeyVec.rect,
sr.queryVec.rect,
]), -0.1));
ssr.forEach((item, num) => {
item.storedQueryVec.rect = item.storedQueryVec.rect;
item.storedValueVec.opacity = 1;
item.storedKeyVec.opacity = 1;
item.storedQueryVec.opacity = 1;
});
anim.time += 2;
camera.scene = '190';
sr.valueVec.rect = ssr[col].storedValueVec.rect;
sr.keyVec.rect = ssr[col].storedKeyVec.rect;
sr.queryVec.rect = ssr[col].storedQueryVec.rect;
sr.keyVec.opacity = 0;
sr.queryVec.opacity = 0;
sr.valueVec.opacity = 0;
// sr.attnVec.opacity = 0;
sr.inVec.opacity = 0;
sr.posVec.opacity = 0;
sr.inWordVec.opacity = 0;
sr.posLabel.opacity = 0;
sr.inWordLabel.opacity = 0;
return {
anim,
camera,
comp,
sr,
ssr,
}
}