@classmethod
def RegisterAdditionalConversionType(cls, class_, func):
    """
        This function may be used to register conversions for additional classes, not originally
        treated (e.g.: IGridFunction)

        :param type class_:
            This is the class that should be treated. So, when a conversion is requested,
            if a class is an instance of the class passed, it'll be used to do the conversions.

        :param callable func:
            The function that should do the conversion. It'll be called as
            func(unit_database, quantity_type, from_unit_info, to_unit_info, value)
        """
    if class_ not in cls._additional_conversions:
        cls._additional_conversions[class_] = func
    else:
        assert cls._additional_conversions[class_
            ] == func, 'The class %s already has a convertion function registered' % str(
            class_)
