The class has public member instances of the shape_model, patch_models, and face_detector classes. It uses the functionality of these three classes to effect tracking. The timer variable is an instance of the fps_timer class that keeps track of the frame-rate at which the face_tracker::track function is called and is useful for analyzing the effects patch and shape model configurations on the computational complexity of the algorithm. The tracking member variable is a flag to indicate
the current state of the tracking procedure. When this flag is set to false, as it is in the constructor and the face_tracker::reset function, the tracker enters a Detection mode whereby the face_detector::detect function is applied to the next incoming image to initialize the model. When in the tracking mode, the initial estimate used for inferring facial feature locations in the next incoming image is simply their location in the previous frame. The complete tracking algorithm is
implemented simply as follows: