A user implements this interface to create a COM component that can be called during the HPOP propagation.
The COM component can be created using compiled code (C++, C#, Visual Basic, etc.) or using a Windows Script Component created using a script language (VBScript, JScript, PerlScript, etc.). Each function of the interface must be implemented, though functions are not required to do anything other than return an error status (either true or false). Once created, the user must register the component in the Windows Registry. After creation and registration, the user may choose to use this plugin component during HPOP propagation (using the standard GUI interface).
The plugin component will be called at certain event times defined by the interface (see the members of the interface). During these calls, the component may request input values and set output values that can affect the computation. Inputs and outputs are accessed through an interface component (either IAgAsHpopPluginResult or IAgAsHpopPluginResultEval as defined by the interface function calls) . The interface component is sent to the plugin component as the lone argument to the function calls.
|Evaluate||Triggered on every force model evaluation during the propagation of a step. Use the input interface to access force model settings. Returning false will turn this callback off.|
|Free||Triggered just before the plugin is freed from use to allow for any additional cleanup.|
|Init||Triggered when the plugin is initialized to allow for any additional needed initialization. Must return true to turn on use of plugin.|
|PostEvaluate||Triggered on every force model evaluation during the propagation of a step, but after the individual force model components have been computed. The components can be obtained from the input interface. Returning false will turn this callback off.|
|PostPropagate||Triggered just after the last propagation step has been taken. Use the input interface to access force model settings.|
|PreNextStep||Triggered just before the next propagation step is attempted. Use the input interface to access force model settings. Returning false will turn this callback off.|
|PrePropagate||Triggered just before propagation starts. Use the input interface to access force model settings.|
|Name||Triggered after initialization to set the name of the plugin used in messages.|