use rayon::prelude::*;
pub struct BlueNoiseSampler {
width: f32,
height: f32,
radius: f32,
}
impl BlueNoiseSampler {
pub fn new(width: f32, height: f32, radius: f32) -> Self {
Self {
width,
height,
radius,
}
}
pub fn get_samples(&self) -> Vec<(f32, f32)> {
let scale = self.radius / RADIUS;
let x_chunks = (self.width / (SIZE * scale)).ceil() as usize;
let y_chunks = (self.height / (SIZE * scale)).ceil() as usize;
let samples = (0..x_chunks)
.flat_map(|x| (0..y_chunks).map(move |y| (x, y)))
.par_bridge()
.flat_map(|(x, y)| {
let x_offset = x as f32 * SIZE;
let y_offset = y as f32 * SIZE;
MAP.iter()
.filter_map(move |(px, py)| {
let px = (px + x_offset) * scale;
let py = (py + y_offset) * scale;
if px < self.width && py < self.height {
Some((px, py))
} else {
None
}
})
.par_bridge()
})
.collect();
samples
}
}
const SIZE: f32 = 256.0;
const RADIUS: f32 = 8.0;
const MAP: [(f32, f32); 774] = [
(0.2764113, 120.06027),
(0.28250122, 235.84833),
(0.34890747, 167.01163),
(1.098114, 200.57393),
(1.173523, 12.157671),
(1.886617, 137.44229),
(2.2110786, 85.88271),
(2.446349, 208.46051),
(3.4327588, 68.77514),
(3.4662962, 101.12913),
(3.7521362, 145.22276),
(3.8832703, 180.35101),
(4.090872, 113.02707),
(4.8233643, 190.60692),
(4.841812, 76.651085),
(5.177867, 93.31334),
(5.610565, 37.362595),
(5.7337503, 229.63008),
(6.7541056, 152.63925),
(6.8701925, 50.179024),
(7.1376953, 26.34877),
(7.3986874, 7.1314063),
(7.664989, 162.73828),
(7.741582, 255.13776),
(7.745237, 58.13203),
(7.7605515, 214.44176),
(8.230994, 15.927036),
(8.886387, 127.256195),
(9.032901, 222.34094),
(9.109603, 119.25831),
(9.325587, 174.4861),
(9.853827, 136.70773),
(10.682013, 196.05598),
(10.75322, 65.546074),
(10.879393, 104.13944),
(11.366581, 88.24226),
(11.929499, 186.93011),
(11.980217, 80.26483),
(12.324714, 146.89606),
(12.445141, 111.98574),
(13.374113, 157.13275),
(13.610802, 242.19383),
(14.176221, 30.896597),
(14.445612, 228.23318),
(14.535822, 203.68736),
(15.095036, 20.038113),
(15.669182, 42.155346),
(15.774742, 131.3264),
(16.01449, 8.932009),
(16.527987, 73.68199),
(17.105175, 172.61687),
(17.444511, 61.159435),
(18.28962, 96.57812),
(18.646173, 196.82289),
(18.869432, 104.55808),
(18.88674, 211.76947),
(19.011992, 248.09665),
(19.368977, 120.06872),
(19.489336, 1.5384521),
(20.449545, 238.0408),
(20.473799, 25.961365),
(20.549004, 53.785282),
(21.12114, 82.869606),
(21.374279, 157.01723),
(21.62837, 112.06836),
(22.192907, 230.23204),
(22.649895, 46.065033),
(22.650555, 37.554703),
(23.49897, 145.63702),
(23.756697, 131.87813),
(23.978306, 8.1615305),
(24.228664, 186.09517),
(24.950222, 171.04485),
(25.697819, 252.49161),
(26.085402, 193.87775),
(26.187263, 124.25524),
(26.288242, 96.773155),
(26.424006, 209.08514),
(26.518978, 88.77548),
(26.56444, 15.73305),
(26.593262, 59.027702),
(26.87581, 30.76035),
(27.37012, 69.06123),
(27.710318, 138.83405),
(28.084429, 163.68327),
(28.326881, 236.63953),
(28.462587, 224.39545),
(28.738264, 201.42615),
(28.778732, 80.550705),
(29.01497, 104.45023),
(29.51681, 216.4642),
(30.046247, 245.77542),
(30.44806, 154.63892),
(30.707905, 181.40097),
(30.813063, 45.717003),
(31.399555, 112.08762),
(31.740398, 131.3523),
(32.428223, 53.553284),
(32.98516, 189.26111),
(33.02446, 169.97708),
(33.161106, 146.31546),
(33.55768, 74.13372),
(33.581474, 62.923965),
(34.140873, 98.306854),
(34.174797, 18.202559),
(34.33235, 87.05293),
(34.8343, 31.979124),
(35.246, 228.63824),
(35.549026, 160.80302),
(35.776577, 239.55809),
(36.144073, 208.87154),
(36.25612, 39.85278),
(36.721375, 200.89139),
(36.733025, 137.60448),
(37.232143, 117.70473),
(37.370316, 253.78412),
(37.40703, 125.70382),
(38.420807, 48.194553),
(38.45056, 183.41771),
(38.895203, 5.6384583),
(39.325977, 80.80156),
(39.490105, 24.18282),
(40.08392, 154.2113),
(40.126972, 246.27301),
(41.008476, 102.41197),
(41.16204, 146.28328),
(41.251198, 91.07109),
(41.341713, 194.35928),
(41.755745, 171.49275),
(42.30923, 71.56045),
(42.66187, 57.97067),
(43.13824, 212.7571),
(43.246864, 228.68422),
(43.937977, 236.65532),
(44.35346, 114.05742),
(44.697514, 160.74818),
(44.991707, 178.81017),
(45.240124, 220.47708),
(46.93433, 64.735435),
(47.197994, 79.3707),
(47.22882, 26.214642),
(47.237453, 8.382925),
(47.337887, 249.7398),
(48.49713, 143.08759),
(48.509975, 129.72697),
(48.65609, 197.6021),
(48.721794, 120.76067),
(48.977615, 103.1253),
(49.250366, 95.128944),
(49.393112, 43.722065),
(49.866753, 15.939564),
(50.29843, 71.994835),
(50.469723, 205.39484),
(50.513786, 1.0834961),
(51.323505, 227.93889),
(52.104385, 112.072685),
(52.794586, 243.88828),
(52.878548, 177.4634),
(53.263508, 88.20719),
(53.55158, 153.16013),
(53.721245, 36.99278),
(53.961994, 191.6135),
(54.04802, 216.56679),
(54.37272, 49.984615),
(54.97516, 61.727913),
(55.10059, 161.2294),
(55.198162, 79.25533),
(55.38776, 169.22525),
(55.54277, 7.306463),
(56.10125, 145.57625),
(56.428467, 130.87306),
(56.85039, 101.69862),
(57.331055, 22.004225),
(57.441216, 209.32094),
(57.800438, 69.213486),
(58.566696, 223.16963),
(58.642944, 231.17027),
(58.794586, 197.99017),
(59.034225, 182.57452),
(59.417385, 138.29482),
(59.44957, 14.288792),
(59.608963, 114.847084),
(59.900146, 44.19985),
(60.093506, 55.578236),
(61.086605, 174.84123),
(61.11192, 89.76233),
(61.476295, 246.81454),
(62.12658, 36.514862),
(62.569263, 76.1436),
(62.596844, 150.24779),
(63.0017, 215.07394),
(63.03955, 160.23497),
(64.36183, 97.07356),
(64.65846, 65.092384),
(65.516304, 29.267397),
(65.77942, 19.182564),
(65.90968, 186.66647),
(65.96311, 207.64117),
(66.121315, 9.872484),
(66.126656, 240.30377),
(66.837234, 51.272648),
(66.96678, 169.41542),
(67.638, 82.33423),
(67.821014, 134.35268),
(67.930756, 194.408),
(68.05524, 121.71926),
(68.23841, 43.395294),
(68.35071, 228.9991),
(68.37942, 220.99815),
(70.10112, 143.33804),
(70.22691, 156.71959),
(70.40158, 35.603806),
(70.55113, 107.469185),
(70.71281, 180.05127),
(72.03006, 201.27908),
(72.14702, 245.57361),
(72.65798, 64.93841),
(72.686775, 235.72328),
(72.86591, 14.176716),
(73.039856, 254.62085),
(73.857285, 165.34885),
(73.87698, 187.40001),
(73.98227, 129.24828),
(74.82244, 51.775143),
(74.848465, 27.047218),
(74.85789, 117.507385),
(75.3936, 208.53874),
(75.65358, 87.02652),
(76.671165, 99.67452),
(77.80469, 145.49931),
(78.059, 223.61105),
(78.07786, 110.18292),
(78.28356, 78.1535),
(78.38871, 36.074753),
(78.45282, 19.904064),
(78.770035, 59.77519),
(79.102295, 241.4497),
(79.14595, 249.45059),
(79.416016, 215.72597),
(79.50193, 45.285275),
(79.61114, 70.26341),
(80.328316, 155.2462),
(80.40462, 123.27364),
(80.413506, 134.00803),
(81.32859, 180.96606),
(81.32932, 1.1479187),
(81.419556, 92.57355),
(82.00261, 169.43523),
(82.15407, 230.48465),
(82.56359, 192.40541),
(83.33571, 84.35768),
(84.454956, 101.526184),
(84.543274, 9.24958),
(84.57872, 31.005257),
(85.27187, 148.37285),
(85.27867, 199.93166),
(86.04027, 110.967804),
(86.20384, 245.13536),
(86.695564, 41.78276),
(87.01011, 237.1751),
(87.15727, 213.70384),
(87.19353, 175.52377),
(87.34879, 221.70255),
(88.227516, 119.79857),
(88.26386, 132.46274),
(88.311905, 155.7738),
(88.396126, 164.62492),
(88.92739, 187.55586),
(89.05103, 94.97698),
(89.17346, 2.7244446),
(89.47703, 63.91303),
(90.28034, 140.20546),
(90.47637, 16.853565),
(90.824295, 87.17496),
(90.83933, 24.846329),
(90.961, 206.66483),
(91.0144, 71.76494),
(91.75445, 35.584072),
(92.1206, 103.81832),
(93.0732, 79.49652),
(93.50842, 9.449332),
(93.697655, 170.6174),
(94.01694, 111.59135),
(94.44166, 225.74191),
(94.5063, 150.70967),
(95.092255, 182.45581),
(95.26932, 197.8983),
(95.278885, 52.014008),
(95.51309, 159.26077),
(96.212036, 119.28534),
(96.41815, 59.933483),
(96.71582, 243.1769),
(97.03389, 135.91528),
(97.79799, 218.47893),
(98.32599, 97.640144),
(98.42313, 3.1357183),
(98.94962, 206.22005),
(99.06123, 69.335175),
(99.77637, 231.70488),
(100.019135, 40.767265),
(100.098785, 165.81725),
(100.34967, 24.783663),
(100.44505, 250.25566),
(100.53046, 32.78262),
(101.26882, 11.396704),
(101.31781, 192.66077),
(102.04421, 76.759315),
(102.14615, 178.67976),
(102.403854, 84.75223),
(102.50174, 124.230606),
(103.45659, 224.13545),
(103.48716, 115.95538),
(103.55771, 239.02905),
(104.05539, 132.07932),
(104.07517, 62.717316),
(104.56897, 102.644264),
(104.717575, 51.103317),
(104.79681, 144.41037),
(106.28175, 203.01756),
(106.85521, 17.674831),
(107.95956, 151.75972),
(107.99688, 167.09636),
(108.31469, 25.541592),
(108.51766, 217.93855),
(108.82387, 195.43115),
(109.01917, 248.15758),
(109.06631, 182.69566),
(109.32103, 0.15289307),
(109.88817, 57.219578),
(109.97048, 91.40537),
(110.123474, 38.90589),
(110.229225, 174.77963),
(110.2916, 83.41082),
(110.95131, 209.51457),
(111.258865, 7.915677),
(111.55495, 239.27441),
(111.722015, 134.36818),
(112.25152, 104.87909),
(112.592674, 49.68953),
(113.556885, 227.18753),
(113.77932, 76.21),
(113.86978, 126.599365),
(114.84985, 17.355932),
(115.13095, 200.35423),
(115.1735, 68.331406),
(115.21552, 97.44735),
(115.56268, 149.26804),
(115.97424, 191.84116),
(116.213615, 159.52188),
(116.32658, 219.68121),
(116.56731, 34.163204),
(116.569176, 245.50928),
(117.472725, 178.17783),
(118.07704, 110.36355),
(119.04162, 0.315664),
(119.126884, 118.29537),
(119.46043, 232.58792),
(119.652626, 135.42714),
(120.570595, 50.296787),
(120.844574, 185.49326),
(120.99993, 91.91955),
(121.13112, 27.591473),
(121.23479, 171.11646),
(121.42218, 63.334408),
(121.53977, 83.93678),
(121.634705, 13.115442),
(121.79226, 127.71754),
(122.60709, 214.72429),
(122.769844, 42.603977),
(122.98988, 155.26768),
(123.01448, 203.47449),
(123.226006, 146.96815),
(123.275444, 241.14557),
(124.7814, 20.471684),
(125.43719, 178.94162),
(125.49448, 248.8327),
(126.07584, 191.54716),
(126.12074, 114.409256),
(126.45101, 139.6459),
(126.46201, 98.61099),
(126.73332, 69.31837),
(126.8804, 165.44698),
(127.03413, 0.6841736),
(127.44929, 234.31952),
(127.55226, 106.53736),
(127.646255, 122.26348),
(128.01517, 36.562237),
(128.22173, 226.3559),
(128.23593, 8.5943985),
(128.49345, 209.30518),
(128.7648, 89.990074),
(129.08807, 132.07076),
(129.221, 81.697395),
(129.61148, 198.94728),
(130.06091, 52.004364),
(130.72871, 172.9403),
(130.79344, 157.03418),
(132.80959, 144.50229),
(133.47935, 248.325),
(133.55772, 215.49947),
(133.69087, 28.377144),
(134.09467, 190.91905),
(134.3405, 41.461853),
(134.3639, 58.749752),
(134.41502, 110.65058),
(134.91553, 230.73871),
(135.77805, 76.608025),
(135.97092, 127.99123),
(136.24054, 98.73048),
(136.31297, 207.61075),
(136.66885, 84.83185),
(136.68265, 20.019562),
(136.96753, 241.1244),
(137.22566, 161.7926),
(137.41351, 48.84918),
(137.73581, 8.796705),
(138.13013, 169.90138),
(138.60439, 34.69168),
(138.80246, 200.0069),
(139.40138, 120.762955),
(139.58798, 140.08505),
(139.9676, 148.07704),
(140.14876, 184.8291),
(140.4822, 91.94635),
(141.45432, 26.441957),
(141.5256, 71.04192),
(141.5923, 226.33),
(141.88373, 55.484924),
(141.90973, 192.63391),
(142.4604, 2.3395996),
(142.49057, 132.62912),
(142.9557, 15.053198),
(142.95918, 103.07511),
(143.91974, 250.45465),
(144.45457, 82.98836),
(144.51831, 165.08401),
(145.58244, 219.39497),
(145.78531, 233.63428),
(145.81412, 62.454002),
(146.72765, 152.35696),
(147.53513, 139.15831),
(147.66893, 200.40395),
(147.84291, 211.71992),
(147.92484, 176.20724),
(148.93257, 33.35169),
(149.11522, 24.134026),
(149.30049, 184.0891),
(149.43156, 72.27152),
(149.57112, 41.327168),
(149.84843, 7.6567993),
(149.91023, 192.72328),
(149.99835, 255.6572),
(150.0287, 96.8453),
(150.3848, 55.05853),
(150.7694, 104.81194),
(150.84973, 118.21453),
(150.93913, 15.58311),
(151.1312, 241.2464),
(151.83655, 79.90252),
(152.31137, 129.21663),
(152.40213, 166.44836),
(152.56268, 87.8705),
(153.78606, 233.6987),
(154.1336, 248.8077),
(154.58627, 150.8543),
(155.16595, 203.1987),
(155.31898, 214.57024),
(155.48766, 111.273674),
(155.81093, 67.44246),
(155.88158, 177.0476),
(156.22203, 222.52011),
(156.31126, 158.66713),
(156.3571, 187.98474),
(156.38278, 30.434444),
(157.14128, 136.47144),
(157.46005, 100.424324),
(157.5708, 41.47275),
(157.6805, 58.343163),
(157.80954, 6.8587556),
(158.16939, 19.0094),
(158.7935, 119.1698),
(159.07951, 144.23412),
(159.56874, 81.959045),
(159.59186, 169.9589),
(159.92546, 195.14594),
(160.09616, 127.369194),
(160.883, 237.3932),
(161.17014, 209.11313),
(161.62863, 89.69034),
(162.02637, 250.11928),
(162.72855, 217.8638),
(162.9398, 35.01937),
(163.16281, 162.79898),
(163.23973, 154.66557),
(163.37608, 112.611145),
(164.0803, 185.89474),
(164.47221, 27.16649),
(164.56902, 54.27323),
(164.62524, 201.69342),
(165.5546, 178.03075),
(165.99844, 96.39264),
(166.17006, 62.112408),
(166.17645, 0.95980835),
(166.36377, 243.39597),
(166.4052, 70.109955),
(166.82744, 123.04417),
(167.79086, 79.11772),
(167.79474, 227.31113),
(168.68912, 8.78088),
(168.71294, 235.7476),
(168.9309, 145.46956),
(169.13028, 208.30559),
(169.19983, 40.002144),
(170.06453, 21.444431),
(170.35188, 48.743816),
(170.73718, 109.47582),
(170.81865, 129.97859),
(170.83247, 160.52032),
(171.52658, 86.193054),
(171.95589, 196.56473),
(172.13103, 182.58778),
(172.4073, 152.67584),
(173.53683, 214.98378),
(173.83678, 173.67638),
(173.96996, 2.7701657),
(173.98367, 96.8947),
(174.52263, 248.52538),
(174.6029, 34.101067),
(174.94376, 70.77159),
(174.99721, 230.79544),
(175.11514, 240.54634),
(175.63644, 61.835423),
(176.34335, 135.76596),
(176.65836, 190.09149),
(177.4357, 165.03845),
(177.54344, 223.2104),
(177.59726, 122.181435),
(178.04419, 20.860443),
(178.20442, 47.209694),
(178.63, 110.7871),
(178.72182, 82.693825),
(179.85703, 55.038162),
(180.12665, 182.8813),
(180.46918, 204.6543),
(180.9389, 100.84955),
(181.36548, 141.99446),
(181.44127, 216.22307),
(181.7206, 175.04068),
(182.2176, 234.67285),
(182.35147, 67.74806),
(182.68298, 75.742195),
(182.7742, 149.87047),
(182.93048, 255.01593),
(183.23915, 14.775344),
(184.46379, 6.868622),
(184.82294, 125.61735),
(185.04967, 24.725582),
(185.34543, 163.83337),
(185.52031, 86.912415),
(185.71658, 44.455894),
(185.86238, 114.20891),
(186.4959, 209.91687),
(186.71407, 247.96606),
(186.82742, 106.26632),
(187.67288, 36.697742),
(187.83698, 133.02893),
(188.06299, 183.89641),
(188.10812, 240.08745),
(189.35689, 217.38887),
(189.36664, 170.75044),
(189.5653, 64.28735),
(189.80614, 196.56485),
(190.2654, 232.38277),
(190.39577, 50.945988),
(190.40625, 152.27211),
(190.906, 120.42001),
(191.47401, 16.896208),
(192.1184, 204.22446),
(192.43216, 30.266155),
(192.83026, 8.516455),
(192.92575, 161.27316),
(192.97198, 224.85347),
(193.4811, 87.71366),
(193.69945, 189.575),
(194.7371, 0.3701477),
(194.82701, 71.989624),
(195.13786, 103.42257),
(195.4728, 79.96452),
(195.582, 95.43391),
(196.18343, 237.76727),
(196.312, 23.268805),
(197.38991, 145.4505),
(197.47481, 63.08074),
(197.797, 218.47105),
(197.80844, 110.96472),
(197.9198, 155.02213),
(198.25697, 35.75136),
(198.75946, 174.56108),
(198.76985, 121.8951),
(198.9719, 13.644455),
(199.15453, 43.70186),
(199.56363, 210.66753),
(199.95908, 136.7053),
(200.15498, 184.84825),
(200.44121, 164.01796),
(201.27489, 251.75786),
(201.47845, 87.95521),
(201.4851, 243.75961),
(201.61864, 56.15261),
(202.32594, 129.06241),
(202.35341, 225.04791),
(202.82799, 72.00916),
(202.87085, 233.37474),
(203.61899, 195.34825),
(203.65016, 203.3492),
(203.66824, 20.122128),
(204.09055, 115.91964),
(204.31728, 30.527502),
(205.16652, 48.981243),
(205.2701, 146.83565),
(205.48576, 170.2283),
(206.29248, 81.560936),
(206.47997, 4.336731),
(207.00789, 159.44688),
(207.0718, 12.712395),
(207.5124, 102.371124),
(207.55756, 210.33119),
(207.9252, 63.12033),
(207.93806, 136.11224),
(208.15036, 184.54843),
(208.46133, 247.6773),
(209.06052, 94.521324),
(209.96492, 55.383694),
(209.97699, 126.722),
(210.07494, 176.78235),
(210.46034, 224.42267),
(210.91202, 192.05771),
(211.62595, 19.290821),
(212.05959, 115.205246),
(212.20564, 254.74811),
(212.32498, 150.60985),
(212.33414, 203.91245),
(212.44028, 27.250273),
(212.60155, 142.61363),
(213.70758, 237.46976),
(214.16034, 83.01446),
(214.82059, 105.62789),
(214.93277, 213.43317),
(215.45427, 12.2651615),
(216.2941, 229.89836),
(216.45084, 186.28384),
(216.50723, 68.076385),
(216.55832, 172.09389),
(216.91167, 121.56711),
(217.26091, 90.39026),
(217.58511, 164.15904),
(217.64853, 33.323997),
(217.66924, 220.95166),
(217.76938, 44.78632),
(217.9198, 75.951706),
(218.07532, 156.17308),
(218.13092, 98.34382),
(218.57167, 137.28694),
(218.88661, 5.037781),
(220.03929, 253.12024),
(220.23384, 145.32263),
(220.23965, 25.465395),
(220.5123, 195.05862),
(221.16937, 56.91161),
(221.56047, 239.0021),
(222.34703, 108.342415),
(223.2913, 38.9963),
(223.6065, 11.498319),
(223.87787, 85.89228),
(224.0833, 225.73453),
(224.26707, 187.99338),
(224.55927, 172.12262),
(224.756, 246.65736),
(224.78436, 125.570885),
(224.82433, 151.87576),
(225.02386, 161.21269),
(225.39922, 216.3176),
(225.93152, 200.94489),
(226.52747, 2.6642933),
(226.56223, 95.86147),
(227.17653, 63.467068),
(227.54008, 22.191284),
(227.86975, 208.70757),
(228.94722, 103.49874),
(228.97826, 71.262566),
(229.07736, 55.69514),
(229.13272, 145.13382),
(229.55971, 238.83434),
(229.71445, 111.46287),
(229.94946, 119.46042),
(230.01471, 44.416817),
(230.22556, 194.1938),
(231.37553, 36.53239),
(231.56754, 8.878282),
(231.71252, 137.56013),
(231.72049, 129.55914),
(231.75577, 185.17639),
(231.87817, 85.99791),
(232.08134, 225.95203),
(232.15031, 169.59438),
(232.46068, 28.60532),
(232.65309, 153.52693),
(233.39813, 216.50023),
(233.53236, 77.84102),
(234.42426, 97.66624),
(234.4837, 245.1407),
(235.59537, 206.62651),
(235.7956, 253.03342),
(235.80725, 162.478),
(236.49849, 21.69793),
(236.99571, 179.12999),
(236.99863, 115.675545),
(237.86443, 13.814387),
(238.20694, 194.75366),
(238.53046, 230.68752),
(238.69853, 4.4892273),
(239.1067, 148.79756),
(239.47299, 221.70717),
(239.70766, 129.08882),
(239.7429, 140.8219),
(239.8008, 87.82413),
(239.8131, 31.760946),
(240.11653, 58.75169),
(240.25568, 104.557556),
(240.53598, 238.43309),
(240.74605, 74.37998),
(241.04732, 39.66618),
(241.85419, 50.94166),
(242.06725, 172.94165),
(242.1199, 66.49782),
(242.8281, 210.04759),
(243.68726, 161.09183),
(243.79565, 252.91084),
(244.10434, 122.40413),
(244.73921, 17.907475),
(245.99046, 196.60646),
(246.18205, 188.60776),
(246.45671, 151.95879),
(246.56989, 99.64361),
(246.90561, 114.90954),
(247.19345, 90.88429),
(247.461, 221.25125),
(247.53151, 138.99062),
(247.63716, 245.89238),
(247.72507, 30.570698),
(248.31241, 236.55078),
(248.41907, 168.07645),
(248.6212, 57.02807),
(248.69412, 73.4612),
(248.98875, 40.640656),
(249.22087, 11.279444),
(249.72778, 175.9697),
(250.51915, 1.2479553),
(250.60103, 206.88983),
(251.78831, 145.99304),
(251.90205, 227.90656),
(252.12448, 80.68952),
(252.22267, 108.93083),
(252.92732, 184.30458),
(253.36305, 193.49825),
(253.45505, 130.78067),
(253.55339, 95.7389),
(253.62723, 63.269516),
(254.80348, 249.45045),
(254.85997, 153.94254),
(254.89644, 49.519325),
(255.22826, 219.33145),
(255.45695, 24.107765),
(255.57701, 32.107864),
];
#[cfg(test)]
mod tests {
use super::BlueNoiseSampler;
#[test]
fn get_samples_unscaled() {
let sampler = BlueNoiseSampler::new(256.0, 256.0, 8.0);
let samples = sampler.get_samples();
assert_eq!(samples.len(), 774);
}
#[test]
fn get_samples_with_smaller_radius() {
let sampler = BlueNoiseSampler::new(256.0, 256.0, 4.0);
let samples = sampler.get_samples();
assert_eq!(samples.len(), 774 * 4);
}
#[test]
fn get_samples_with_bigger_radius() {
let sampler = BlueNoiseSampler::new(256.0, 256.0, 16.0);
let samples = sampler.get_samples();
assert_eq!(samples.len(), 194);
}
#[test]
fn get_samples_with_bigger_size() {
let sampler = BlueNoiseSampler::new(512.0, 512.0, 8.0);
let samples = sampler.get_samples();
assert_eq!(samples.len(), 774 * 4);
}
#[test]
fn get_samples_with_smaller_size() {
let sampler = BlueNoiseSampler::new(128.0, 128.0, 8.0);
let samples = sampler.get_samples();
assert_eq!(samples.len(), 194);
}
}