playcanvas
Version:
PlayCanvas WebGL game engine
37 lines (34 loc) • 1.01 kB
JavaScript
import { SkinInstance } from '../skin-instance.js';
class SkinBatchInstance extends SkinInstance {
constructor(device, nodes, rootNode){
super();
const numBones = nodes.length;
this.init(device, numBones);
this.device = device;
this.rootNode = rootNode;
this.bones = nodes;
}
updateMatrices(rootNode, skinUpdateIndex) {}
updateMatrixPalette(rootNode, skinUpdateIndex) {
const mp = this.matrixPalette;
const count = this.bones.length;
for(let i = 0; i < count; i++){
const pe = this.bones[i].getWorldTransform().data;
const base = i * 12;
mp[base] = pe[0];
mp[base + 1] = pe[4];
mp[base + 2] = pe[8];
mp[base + 3] = pe[12];
mp[base + 4] = pe[1];
mp[base + 5] = pe[5];
mp[base + 6] = pe[9];
mp[base + 7] = pe[13];
mp[base + 8] = pe[2];
mp[base + 9] = pe[6];
mp[base + 10] = pe[10];
mp[base + 11] = pe[14];
}
this.uploadBones(this.device);
}
}
export { SkinBatchInstance };