#### flyingsaucerinvasion

##### Member

Code:

```
attribute vec3 in_Position; // (x,y,z)
attribute vec4 in_Colour; // (r,g,b,a)
attribute vec2 in_TextureCoord; // (u,v)
uniform vec3 start_point;
uniform vec3 end_point;
varying vec2 v_vTexcoord;
varying vec4 v_vColour;
vec4 start_point_pos = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * vec4(start_point, 1.0);
vec4 end_point_pos = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * vec4(end_point, 1.0);
vec2 rot = normalize(end_point_pos.yx - start_point_pos.yx);
void main()
{
gl_Position = mix(start_point_pos,end_point_pos,in_Position.x) + vec4(rot.x * 480.0/640.0 * in_Position.y, -rot.y * in_Position.y,0.0,0.0);
v_vColour = in_Colour;
v_vTexcoord = in_TextureCoord;
}
```