- function TEditor.Pick: Integer;
 - var SelectBuffer: array[0..512] of TGLUInt;
 - Viewport: TGLArrayi4;
 - HitCount,i: Integer;
 - HitZ,HitName: TGLUInt;
 - begin
 - glGetIntegerv(GL_VIEWPORT,@Viewport);
 - glSelectBuffer(512,@SelectBuffer);
 - glRenderMode(GL_SELECT);
 - glInitNames;
 - glPushName(0);
 - glMatrixMode(GL_PROJECTION);
 - glPushMatrix;
 - glLoadIdentity;
 - gluPickMatrix(mX, Viewport[3]-mY, 5.0, 5.0, Viewport);
 - gluPerspective(45,CWIDTH/CHEIGHT,1,2048);
 - oCamera.Move;
 - oEditor.Render;
 - glMatrixMode(GL_PROJECTION);
 - glPopMatrix;
 - HitCount:=glRenderMode(GL_RENDER);
 - HitName:=High(TGLUInt);
 - HitZ:=High(TGLUInt);
 - for i:=0 to HitCount-1 do
 - if SelectBuffer[(i*4)+1]<HitZ then
 - begin
 - HitName:=SelectBuffer[(i*4)+3];
 - HitZ:=SelectBuffer[(i*4)+1];
 - end;
 - Result:=HitName;
 - end;
 
