protected void UpdateVisualization()
 {
     if (visualMode == GeometryVisualMode.ViewModes)
     {
         geometry.VisualizeVertexFunction(ObjectModes.Column(currentMode), ColorScheme.BlueRed);
     }
     else if (visualMode == GeometryVisualMode.ViewDegreeVector)
     {
         var diff = new DifferentialStructure(geometry);
         geometry.VisualizeVertexFunction(diff.MassVector, ColorScheme.Default);
     }
     else if (visualMode == GeometryVisualMode.ViewLapDiagonal)
     {
         var diff = new DifferentialStructure(geometry);
         geometry.VisualizeVertexFunction(diff.Laplacian.Diagonal(), ColorScheme.Default);
     }
     else if (visualMode == GeometryVisualMode.ViewMesh)
     {
         for (int i = 0; i < geometry.vertices.Count; ++i)
         {
             var data = geometry.vertices[i];
             data.Color           = Color4.White;
             geometry.vertices[i] = data;
         }
     }
     GenerateModelBuffers();
     GenerateVertexArray();
 }