19void BLI_jitterate1(
float (*jit1)[2],
float (*jit2)[2],
int num,
float radius1)
22 float vecx, vecy, dvecx, dvecy,
x,
y,
len;
24 for (i = num - 1; i >= 0; i--) {
28 for (j = num - 1; j >= 0; j--) {
30 vecx = jit1[j][0] - x - 1.0f;
31 vecy = jit1[j][1] - y - 1.0f;
32 for (k = 3; k > 0; k--) {
33 if (
fabsf(vecx) < radius1 &&
fabsf(vecy) < radius1) {
34 len =
sqrtf(vecx * vecx + vecy * vecy);
35 if (
len > 0 &&
len < radius1) {
43 if (
fabsf(vecx) < radius1 &&
fabsf(vecy) < radius1) {
44 len =
sqrtf(vecx * vecx + vecy * vecy);
45 if (
len > 0 &&
len < radius1) {
53 if (
fabsf(vecx) < radius1 &&
fabsf(vecy) < radius1) {
54 len =
sqrtf(vecx * vecx + vecy * vecy);
55 if (
len > 0 &&
len < radius1) {
74 memcpy(jit1, jit2, 2 * (
uint)num *
sizeof(
float));
77void BLI_jitterate2(
float (*jit1)[2],
float (*jit2)[2],
int num,
float radius2)
80 float vecx, vecy, dvecx, dvecy,
x,
y;
82 for (i = num - 1; i >= 0; i--) {
86 for (j = num - 1; j >= 0; j--) {
88 vecx = jit1[j][0] - x - 1.0f;
89 vecy = jit1[j][1] - y - 1.0f;
91 if (
fabsf(vecx) < radius2) {
92 dvecx += vecx * radius2;
95 if (
fabsf(vecx) < radius2) {
96 dvecx += vecx * radius2;
99 if (
fabsf(vecx) < radius2) {
100 dvecx += vecx * radius2;
103 if (
fabsf(vecy) < radius2) {
104 dvecy += vecy * radius2;
107 if (
fabsf(vecy) < radius2) {
108 dvecy += vecy * radius2;
111 if (
fabsf(vecy) < radius2) {
112 dvecy += vecy * radius2;
124 memcpy(jit1, jit2, (
uint)num *
sizeof(
float[2]));
130 float number_fl, number_fl_sqrt;
131 float x, rad1, rad2, rad3;
139 number_fl = (
float)num;
140 number_fl_sqrt =
sqrtf(number_fl);
143 rad1 = 1.0f / number_fl_sqrt;
144 rad2 = 1.0f / number_fl;
145 rad3 = number_fl_sqrt / number_fl;
150 for (i = 0; i < num; i++) {
159 for (i = 0; i < 24; i++) {
168 for (i = 0; i < num; i++) {
169 jitarr[i][0] -= 0.5f;
170 jitarr[i][1] -= 0.5f;
struct RNG * BLI_rng_new(unsigned int seed)
void BLI_rng_free(struct RNG *rng) ATTR_NONNULL(1)
double BLI_rng_get_double(struct RNG *rng) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
Read Guarded memory(de)allocation.
draw_view in_light_buf[] float
void BLI_jitterate1(float(*jit1)[2], float(*jit2)[2], int num, float radius1)
void BLI_jitter_init(float(*jitarr)[2], int num)
void BLI_jitterate2(float(*jit1)[2], float(*jit2)[2], int num, float radius2)
void *(* MEM_mallocN)(size_t len, const char *str)
void MEM_freeN(void *vmemh)