public static extern float lcg_float_incl([In][Out] LCG lcg, float a, float b);
public static extern float lcg_float_neg([In][Out] LCG lcg);
public static extern float lcg_float_range([In][Out] LCG lcg, float a, float b);
public static extern int lcg_int_range([In][Out] LCG lcg, int a, int b);
public static extern float lcg_float_01_incl([In][Out] LCG lcg);
public static extern int lcg_int([In][Out] LCG lcg);
public static extern uint lcg_int_fast([In][Out] LCG lcg);
public static extern void lcg_seed([In][Out] LCG lcg, uint seed, uint multiplier, uint increment, uint modulus );
public Vector3 RandomPointOnSurface(LCG rng) { NativeMethods.obb_random_point_on_surface(this, rng, out var point); return(point); }
public static extern void obb_random_point_on_surface( [In] OrientedBoundingBox box, LCG rng, out Vector3 outVec );