ELF>H@@ATL%UH-HHH=LHH-HH=LHH]A\//VTK::System::Dec /*========================================================================= Program: Visualization Toolkit 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. =========================================================================*/ // 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 float particleRadius; uniform mat4 VCDCMatrix; out vec4 vertexVCGSOutput; out vec3 centerVCGSOutput; in vec3 colorVSOut[]; out vec3 colorVCGSOutput; // clipping plane vars //VTK::Clip::Dec // picking support //VTK::Picking::Dec void main() { 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; colorVCGSOutput = colorVSOut[0]; //VTK::Picking::Impl // note 1.73205 = 2.0*cos(30) offset = vec4(-1.73205 * particleRadius, -particleRadius, 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 * particleRadius, -particleRadius, 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 * particleRadius, 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`%4Vc{ _GLOBAL__sub_I_vtkFluidMapperGS.cxx_ZStL8__ioinit_ZL28vtkDebugLeaksManagerInstance__dso_handle_ZNSt8ios_base4InitC1Ev_GLOBAL_OFFSET_TABLE__ZNSt8ios_base4InitD1Ev__cxa_atexit_ZN20vtkDebugLeaksManagerC1Ev_ZN20vtkDebugLeaksManagerD1Ev_Z33vtkRenderingUI_AutoInit_ConstructvvtkFluidMapperGS  $* 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?@PP2W d _@h t0 ,}4 8 X @@  0 *