/* DO NOT EDIT.
 * Generated by ../bin/vtkEncodeString
 * 
 * Define the vtkProjectedAAHexahedraMapper_GS string.
 *
 * Generated from file: /home/dorado1/vtk/VTK5.10.1/VolumeRendering/vtkProjectedAAHexahedraMapper_GS.glsl
 */
#include "vtkProjectedAAHexahedraMapper_GS.h"
const char *vtkProjectedAAHexahedraMapper_GS =
"/*=========================================================================\n"
"\n"
"  Program:   Visualization Toolkit\n"
"  Module:    vtkGPUVolumeRayCastMapper_HeaderFS.glsl\n"
"\n"
"  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n"
"  All rights reserved.\n"
"  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n"
"\n"
"     This software is distributed WITHOUT ANY WARRANTY; without even\n"
"     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n"
"     PURPOSE.  See the above copyright notice for more information.\n"
"\n"
"=========================================================================*/\n"
"\n"
"// High quality volume renderer for axis-aligned hexahedra\n"
"// Implementation by Stephane Marchesin (stephane.marchesin@gmail.com)\n"
"// CEA/DIF - Commissariat a l'Energie Atomique, Centre DAM Ile-De-France\n"
"// BP12, F-91297 Arpajon, France.\n"
"//\n"
"// This file implements the paper\n"
"// \"High-Quality, Semi-Analytical Volume Rendering for AMR Data\",\n"
"// Stephane Marchesin and Guillaume Colin de Verdiere, IEEE Vis 2009.\n"
"\n"
"#version 120\n"
"#extension GL_EXT_geometry_shader4 : enable\n"
"\n"
"// inputs of GS\n"
"// vertexpos.xyz : cell position (xmin,ymin,zmin)\n"
"// texcoord0.xyz : cell position (xmax,ymax,zmax)\n"
"// texcoord1.xyzw: node data 0,1,2,3\n"
"// texcoord2.xyzw: ode data 4,5,6,7\n"
"\n"
"void draw_cell(vec4 scalars0, vec4 scalars1, vec3 m, vec3 M);\n"
"\n"
"// ----------------------------------------------------------------------------\n"
"void main()\n"
"{\n"
"  draw_cell(gl_TexCoordIn[0][1],gl_TexCoordIn[0][2],gl_PositionIn[0].xyz,\n"
"            gl_TexCoordIn[0][0].xyz);\n"
"}\n"
"\n"
"// ----------------------------------------------------------------------------\n"
"void draw_cell(vec4 scalars0, vec4 scalars1, vec3 m, vec3 M)\n"
"{\n"
"  // common node data\n"
"  gl_TexCoord[2].xyzw = scalars0;\n"
"  gl_TexCoord[3].xyzw = scalars1;\n"
"  float cs = M.x - m.x;\n"
"  vec4 p0 = vec4(m.x,m.y,m.z,1.0);\n"
"  vec4 p1 = vec4(m.x,m.y,M.z,1.0);\n"
"  vec4 p2 = vec4(m.x,M.y,m.z,1.0);\n"
"  vec4 p3 = vec4(m.x,M.y,M.z,1.0);\n"
"  vec4 p4 = vec4(M.x,m.y,m.z,1.0);\n"
"  vec4 p5 = vec4(M.x,m.y,M.z,1.0);\n"
"  vec4 p6 = vec4(M.x,M.y,m.z,1.0);\n"
"  vec4 p7 = vec4(M.x,M.y,M.z,1.0);\n"
"  vec4 t0 = gl_ModelViewProjectionMatrix * p0;\n"
"  vec4 t1 = gl_ModelViewProjectionMatrix * p1;\n"
"  vec4 t2 = gl_ModelViewProjectionMatrix * p2;\n"
"  vec4 t3 = gl_ModelViewProjectionMatrix * p3;\n"
"  vec4 t4 = gl_ModelViewProjectionMatrix * p4;\n"
"  vec4 t5 = gl_ModelViewProjectionMatrix * p5;\n"
"  vec4 t6 = gl_ModelViewProjectionMatrix * p6;\n"
"  vec4 t7 = gl_ModelViewProjectionMatrix * p7;\n"
"\n"
"  // face 0\n"
"  gl_TexCoord[0] = vec4(1.0,0.0,0.0,cs);\n"
"  gl_TexCoord[1] = p4;\n"
"  gl_Position  = t4;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(1.0,0.0,1.0,cs);\n"
"  gl_TexCoord[1] = p5;\n"
"  gl_Position  = t5;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(1.0,1.0,0.0,cs);\n"
"  gl_TexCoord[1] = p6;\n"
"  gl_Position  = t6;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(1.0,1.0,1.0,cs);\n"
"  gl_TexCoord[1] = p7;\n"
"  gl_Position  = t7;\n"
"  EmitVertex();\n"
"  EndPrimitive();\n"
"  // face 1\n"
"  gl_TexCoord[0] = vec4(0.0,1.0,0.0,cs);\n"
"  gl_TexCoord[1] = p2;\n"
"  gl_Position  = t2;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(1.0,1.0,0.0,cs);\n"
"  gl_TexCoord[1] = p6;\n"
"  gl_Position  = t6;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(0.0,1.0,1.0,cs);\n"
"  gl_TexCoord[1] = p3;\n"
"  gl_Position  = t3;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(1.0,1.0,1.0,cs);\n"
"  gl_TexCoord[1] = p7;\n"
"  gl_Position  = t7;\n"
"  EmitVertex();\n"
"  EndPrimitive();\n"
"  // face 2\n"
"  gl_TexCoord[0] = vec4(0.0,1.0,1.0,cs);\n"
"  gl_TexCoord[1] = p3;\n"
"  gl_Position  = t3;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(1.0,1.0,1.0,cs);\n"
"  gl_TexCoord[1] = p7;\n"
"  gl_Position  = t7;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(0.0,0.0,1.0,cs);\n"
"  gl_TexCoord[1] = p1;\n"
"  gl_Position  = t1;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(1.0,0.0,1.0,cs);\n"
"  gl_TexCoord[1] = p5;\n"
"  gl_Position  = t5;\n"
"  EmitVertex();\n"
"  EndPrimitive();\n"
"  // face 3\n"
"  gl_TexCoord[0] = vec4(0.0,1.0,0.0,cs);\n"
"  gl_TexCoord[1] = p2;\n"
"  gl_Position  = t2;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(0.0,1.0,1.0,cs);\n"
"  gl_TexCoord[1] = p3;\n"
"  gl_Position  = t3;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(0.0,0.0,0.0,cs);\n"
"  gl_TexCoord[1] = p0;\n"
"  gl_Position  = t0;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(0.0,0.0,1.0,cs);\n"
"  gl_TexCoord[1] = p1;\n"
"  gl_Position  = t1;\n"
"  EmitVertex();\n"
"  EndPrimitive();\n"
"  // face 4\n"
"  gl_TexCoord[0] = vec4(0.0,0.0,0.0,cs);\n"
"  gl_TexCoord[1] = p0;\n"
"  gl_Position  = t0;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(0.0,0.0,1.0,cs);\n"
"  gl_TexCoord[1] = p1;\n"
"  gl_Position  = t1;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(1.0,0.0,0.0,cs);\n"
"  gl_TexCoord[1] = p4;\n"
"  gl_Position  = t4;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(1.0,0.0,1.0,cs);\n"
"  gl_TexCoord[1] = p5;\n"
"  gl_Position  = t5;\n"
"  EmitVertex();\n"
"  EndPrimitive();\n"
"  // face 5\n"
"  gl_TexCoord[0] = vec4(0.0,1.0,0.0,cs);\n"
"  gl_TexCoord[1] = p2;\n"
"  gl_Position  = t2;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(0.0,0.0,0.0,cs);\n"
"  gl_TexCoord[1] = p0;\n"
"  gl_Position  = t0;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(1.0,1.0,0.0,cs);\n"
"  gl_TexCoord[1] = p6;\n"
"  gl_Position  = t6;\n"
"  EmitVertex();\n"
"  gl_TexCoord[0] = vec4(1.0,0.0,0.0,cs);\n"
"  gl_TexCoord[1] = p4;\n"
"  gl_Position  = t4;\n"
"  EmitVertex();\n"
"  EndPrimitive();\n"
"}\n"
"\n";

