The MGI Library is a collection of time-saving tools developed over the years in the course of our consulting work. These tools are freely shared with the community under the BSD license for the benefit of all. The library is composed of several packages, each of which is briefly described here. All of these packages are available on the Tools Network or in VI Package Manager.
1D Array: Includes tools for sorting, averaging, interpolating, and computing various metrics like max and min on 1D arrays.
2D Array: Edge enhancing and smoothing tools for use with 2D arrays.
Application Control: Many tools for Front panel manipulation including setting the origin, control disabling, window control, and storing and loading all controls. Also includes tools for checking runtime environment and executables. One very popular item is the Change Detector function.
Bezier: Utilities for working with Bezier curves.
Boolean: Debounce and triggering functions.
Cluster: Get cluster elements and values as well as tools to work with variant data.
Error Handling: Basic functions for inserting, clearing, and working with errors.
Error Reporter: Very easy-to-use system for inserting, logging, and displaying custom errors.
File: Very handy tools for using file paths, writing simple files. Includes functions for checksums and working with Zip files.
Graph: Tools for setting graph colors, scales, and plot names.
Matrix and Vector: Math functions for working with matrices and vectors. Includes dot and cross products.
Coordinates: Useful tools for working with coordinate transforms like rotations and translations, finding intersections and closest points.
Numeric: Various functions for rounding, comparison, coercion. Includes basic PID control, Nth root, and several compound arithmetic versions for convenience.
Picture and Image: Utilities for working with text in images and finding points in rectangles. Also a set of functions for making it easier to work with cameras in 3D Picture Controls.
Read Write Anything: This is probably the most popular package in the library. It allows reading and writing of any data type (typically a cluster) to or from a human-readable configuration file.
Robust XML: A handful of utilities making it easier and more reliable to store XML data to the LabVIEW schema.
Spline: Functions for creating, manipulating, and interpolating splines.
String: Utility functions for generating, manipulating, interpreting, validating, and searching strings.
Timing: Functions to wait or to measure time.
Tree: Utility functions to simplify working with the tree control.
User Interface: Dialogs and progress bars.