Controllers are the plug-in type responsible for directing all animation in 3ds Max. The section uses the Position constraint controller as a running example. The files that are relevant for this discussion are:
Controllers derive from the Control class. The primary methods that must be implemented by a plug-in are:
Control::GetValue() - Implementations usually cache the value and validity interval from the previous GetValue() call. An implementation is responsible to make sure that the validity interval gets updated correctly.
Control::SetValue() - The implementation is responsible for sending update notifications and needs to make sure any cached values get correctly cleared.
The class Control is derived from class Animatable. A controller will need to implement methods from this class, as the default implementations are not valid.