internal override uint Search(RenderEventArgs arg,
int x, int y,
RecognizedPrimitiveInfo primitiveInfo,
OneIndexRenderer modernRenderer)
{
uint[] indexList = primitiveInfo.VertexIds;
if (indexList.Length != 3) { throw new ArgumentException(); }
OneIndexBuffer buffer = indexList.GenIndexBuffer(DrawMode.Points, BufferUsage.StaticDraw);
modernRenderer.Render4InnerPicking(arg, buffer);
uint id = ColorCodedPicking.ReadStageVertexId(x, y);
buffer.Dispose();
if (id == indexList[0] || id == indexList[1] || id == indexList[2])
{ return id; }
else
{ throw new Exception("This should not happen!"); }
}