The Tracking Library seamlessly integrates the processing, visualization, and analysis of dynamically acquired data in DME Component Libraries. This functionality is divided across several core features, each designed to solve a specific problem domain.
The functionality described in this topic requires a license for the Tracking Library.
In order to achieve maximum performance with today's multi-core hardware architectures, Tracking Library implements a software transactional memory system (STM) which simplifies the process of multi-threaded application development, and makes it easy for to build fast, scalable applications without traditional and error-prone lock-based APIs.
Tracking Library defines an entity as an object with a unique identifier containing one or more pieces of data. Because of this flexible but overly generic definition, Tracking Library does not provide a entity base class. Instead, you create your own entity class by implementing a variety of small standard interfaces which provide the necessary information, such as position and orientation. This provides a standard way to access data while still allowing you to create classes tailored to your specific input data being used.
The Evaluator pattern works on the assumption that all information required for analysis is known up front. That is, a developer creates definitional objects from known data sets and then performs the desired analysis. This enables highly-optimized evaluators to be created for specific computations. However, it is contrary to how most near-real-time systems and simulation environments are constructed. When dealing with dynamic input data feeds, the type of analysis that needs to be done is known up front, but no actual data is available until it is received. Parameterized evaluators provide a solution to this problem.
Modern datasets can contain thousands, if not hundreds of thousands of unique points of interest. While computer hardware has scaled to meet increasing demand, the process of comb through data to separate important findings from background noise is still vital. Tracking Library provides a mechanism to automatically filter entity data as it's received and select only those entities that match the criteria defined.
While the primary purpose of Tracking Library is the ability to perform analysis and visualization as data is received, it also contains a set of classes for archiving received data for later analysis and review.
Tracking Library includes a specialized library, Tracking Graphics, which visualizes entities in Insight3D®, by providing a framework for creating and updating graphics primitives for entities declaratively.