14    vec3 center_world_space;
 
   22vec4 row(in mat4 M, in 
int i) {
 
   23    return vec4(M[0][i], M[1][i], M[2][i], M[3][i]);
 
   28    if(glupIsEnabled(GLUP_VERTEX_COLORS)) {
 
   29        VertexOut.color = color_in;
 
   32    if(glupIsEnabled(GLUP_TEXTURING)) {
 
   33        if(glupIsEnabled(GLUP_INDIRECT_TEXTURING)) {
 
   34            VertexOut.tex_coord = tex_coord_in;
 
   36            VertexOut.tex_coord = GLUP.texture_matrix * tex_coord_in;
 
   40    float R = vertex_in.w;
 
   42        GLUP.modelviewprojection_matrix*
vec4(vertex_in.xyz,1.0);
 
   49        vertex_in.x/R, vertex_in.y/R, vertex_in.z/R, 1.0/R
 
   52    mat4 PMT = GLUP.modelviewprojection_matrix * T;
 
   57    float r1Dr4T = 
dot(r1.xyz,r4.xyz)-r1.w*r4.w;
 
   58    float r1Dr1T = 
dot(r1.xyz,r1.xyz)-r1.w*r1.w;
 
   59    float r4Dr4T = 
dot(r4.xyz,r4.xyz)-r4.w*r4.w;
 
   60    float r2Dr2T = 
dot(r2.xyz,r2.xyz)-r2.w*r2.w;
 
   61    float r2Dr4T = 
dot(r2.xyz,r4.xyz)-r2.w*r4.w;
 
   63    float discriminant_x = r1Dr4T*r1Dr4T-r4Dr4T*r1Dr1T;
 
   64    float discriminant_y = r2Dr4T*r2Dr4T-r4Dr4T*r2Dr2T;
 
   65    float screen = max(GLUP.viewport[2], GLUP.viewport[3]);
 
   67    gl_PointSize = sqrt(max(discriminant_x,discriminant_y)) * screen/(-r4Dr4T);
 
   69    VertexOut.center_world_space = vertex_in.xyz;
 
Matrix< 4, Numeric::float64 > mat4
Represents a 4x4 matrix.
T dot(const vecng< 3, T > &v1, const vecng< 3, T > &v2)
Computes the dot product of 2 vectors.   vecng
vecng< 3, Numeric::float64 > vec3
Represents points and vectors in 3d.
vecng< 4, Numeric::float64 > vec4
Represents points and vectors in 4d.