getSCSdimensions = scs =>{
const min = [Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE];
const max = [Number.MIN_VALUE,Number.MIN_VALUE,Number.MIN_VALUE];
scs.forEach(d=>{
const sc = d.sc;
const e = reglScExtent(sc);
const M = d.modelMatrix;
const part_min = vec3.transformMat4([],[e[0][0],e[1][0],e[2][0]],M);
const part_max = vec3.transformMat4([],[e[0][1],e[1][1],e[2][1]],M);
[0,1,2].forEach((index) => {
min[index] = Math.min(min[index],part_min[index]);
max[index] = Math.max(max[index],part_max[index]);
})
})
const extent = [];
[0,1,2].forEach((index) => extent[index] = [min[index],max[index]]);
const size = [
(extent[0][1]-extent[0][0]),
(extent[1][1]-extent[1][0]),
(extent[2][1]-extent[2][0])
];
return {
center : [
0.5*(extent[0][1]+extent[0][0]),
0.5*(extent[1][1]+extent[1][0]),
0.5*(extent[2][1]+extent[2][0])
],
extent: extent,
radius : 0.5*Math.sqrt(size[0]*size[0]+size[1]*size[1]+size[2]*size[2])
};
}