Java wrapping of overloaded methods doesn't prefer 'double' over 'float'
The Java wrappers always use 'jdouble' as the floating-point interface type on the Java side. However, on the C++ side, if a method is overloaded for 'float' and 'double' arguments, then the Java wrappers will simply wrap whichever overload comes first in the header file. If the 'float' overload comes first, then the Java wrappers will convert 'jdouble' to 'float' and will call the 'float' overload.
Example where the 'double' overload is wrapped and the 'float' overload is ignored:
double *vtkAbstractTransform::TransformPoint(const double p[3]) VTK_SIZEHINT(3);
float *vtkAbstractTransform::TransformPoint(const float p[3]) VTK_SIZEHINT(3);
Example where the 'float' overload is wrapped and the 'double' overload is ignored:
float *vtkMatrix4x4::MultiplyPoint(const float p[4]) VTK_SIZEHINT(4);
double *vtkMatrix4x4::MultiplyPoint(const double p[4]) VTK_SIZEHINT(4);