ELF>@@ATL%UH-HHH=LHH-HH=LHH]A\//VTK::System::Dec /*========================================================================= Program: Visualization Toolkit Module: vtkSphereMapperGS.glsl Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ // Template for the polydata mappers geometry shader // primitiveID //VTK::PrimID::Dec // optional color passed in from the vertex shader, vertexColor //VTK::Color::Dec layout(points) in; layout(triangle_strip, max_vertices = 3) out; uniform int cameraParallel; uniform mat4 VCDCMatrix; in float radiusVCVSOutput[]; out float radiusVCGSOutput; out vec4 vertexVCGSOutput; out vec3 centerVCGSOutput; // clipping plane vars //VTK::Clip::Dec // picking support //VTK::Picking::Dec void main() { radiusVCGSOutput = radiusVCVSOutput[0]; int i = 0; vec4 offset; vec4 base1 = vec4(1.0,0.0,0.0,0.0); vec4 base2 = vec4(0.0,1.0,0.0,0.0); // make the triangle face the camera if (cameraParallel == 0) { vec3 dir = normalize(-gl_in[0].gl_Position.xyz); base2 = vec4(normalize(cross(dir,vec3(1.0,0.0,0.0))), 0.0); base1 = vec4(cross(base2.xyz,dir),0.0); } //VTK::PrimID::Impl //VTK::Clip::Impl //VTK::Color::Impl centerVCGSOutput = gl_in[0].gl_Position.xyz/gl_in[0].gl_Position.w; //VTK::Picking::Impl // note 1.73205 = 2.0*cos(30) offset = vec4(-1.73205*radiusVCGSOutput, -radiusVCGSOutput, 0.0, 0.0); vertexVCGSOutput = gl_in[0].gl_Position + offset.x*base1 + offset.y*base2; gl_Position = VCDCMatrix * vertexVCGSOutput; EmitVertex(); offset = vec4(1.73205*radiusVCGSOutput, -radiusVCGSOutput, 0.0, 0.0); vertexVCGSOutput = gl_in[0].gl_Position + offset.x*base1 + offset.y*base2; gl_Position = VCDCMatrix * vertexVCGSOutput; EmitVertex(); offset = vec4(0.0, 2.0*radiusVCGSOutput, 0.0, 0.0); vertexVCGSOutput = gl_in[0].gl_Position + offset.x*base1 + offset.y*base2; gl_Position = VCDCMatrix * vertexVCGSOutput; EmitVertex(); EndPrimitive(); } GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0GNUzRx $`FHN |AB`&5Wd| _GLOBAL__sub_I_vtkSphereMapperGS.cxx_ZStL8__ioinit_ZL28vtkDebugLeaksManagerInstance__dso_handle_ZNSt8ios_base4InitC1Ev_GLOBAL_OFFSET_TABLE__ZNSt8ios_base4InitD1Ev__cxa_atexit_ZN20vtkDebugLeaksManagerC1Ev_ZN20vtkDebugLeaksManagerD1Ev_Z33vtkRenderingUI_AutoInit_ConstructvvtkSphereMapperGS  $* 16 > E*P \ .symtab.strtab.shstrtab.text.data.bss.rela.text.startup.rela.init_array.rodata.str1.8.rela.data.rel.local.comment.note.GNU-stack.note.gnu.property.rela.eh_frame@!@'@1@`,@( D?@P2 d _@0 t0 ,}   @@H`   ,`