webgl/src/client/init.ts

62 lines
1.6 KiB
TypeScript

import $ from 'jquery';
/**
* Initialize the parameters
* @param {any} context the program context
*/
export function initParams(context: any) {
const distance: any = $('#distance').val();
const distanceFine: any = $('#distancefine').val();
context.params = {
distance: parseFloat(distance) + parseFloat(distanceFine),
circleSize: $('#circlesize').val(),
fov: $('#fov').val(),
length: 0,
avg: {
x: 0,
y: 0,
z: 0,
},
range: 0,
rot: {
x: $('#rotx').val(),
y: $('#roty').val(),
z: $('#rotz').val(),
},
rotSpeed: $('#rotspeed').val(),
instanceNumber: $('#instance').val(),
squareRotation: 0,
};
}
/**
* Set the program info
* @param {any} context the program context
*/
export function setProgramInfo(context: any) {
context.programInfo = {
program: context.shaderProgram,
attribLocations: {
vertexPosition: context.gl.getAttribLocation(context.shaderProgram,
'aVertexPosition'),
vertexNormal: context.gl.getAttribLocation(context.shaderProgram,
'aVertexNormal'),
textureCoord: context.gl.getAttribLocation(context.shaderProgram,
'aTextureCoord'),
},
uniformLocations: {
projectionMatrix: context.gl.getUniformLocation(
context.shaderProgram, 'uProjectionMatrix'),
viewMatrix: context.gl.getUniformLocation(
context.shaderProgram, 'uviewMatrix'),
modelMatrix: context.gl.getUniformLocation(
context.shaderProgram, 'umodelMatrix'),
normalModelMatrix: context.gl.getUniformLocation(
context.shaderProgram, 'unormalModelMatrix'),
uSampler: context.gl.getUniformLocation(
context.shaderProgram, 'uSampler'),
},
};
}