More aggressive checking on nullptr parameters and incorrect types
iMSTK passes a lot of parameters as std::shared_ptr
of the super type, in various places the (e.g. all geometry filter) subclasses these parameters need to be of specific types otherwise the filter will not run. In a lot of cases this is checked only on executing the filter and is the only reported with a warning on the console while the the rest of the software keeps running. This can make it hard to detect failures especially with new users.
In general we should CHECK
for the correct type of input parameters whenever a polymorphic type is received in a function call (this will also automatically check for nullptr)