‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
math_shared.csc
Go to the documentation of this file.
1 #insert scripts\shared\shared.gsh;
2 
3 #namespace math;
4 
16 function ‪clamp(val, val_min, val_max)
17 {
18  if (val < val_min)
19  {
20  val = val_min;
21  }
22  else if (val > val_max)
23  {
24  val = val_max;
25  }
26 
27  return val;
28 }
29 
43 function ‪linear_map(num, min_a, max_a, min_b, max_b)
44 {
45  return ‪clamp(( (num - min_a) / (max_a - min_a) * (max_b - min_b) + min_b ), min_b, max_b);
46 }
47 
60 function ‪lag(desired, curr, k, dt)
61 {
62  r = 0.0;
63 
64  if (((k * dt) >= 1.0) || (k <= 0.0))
65  {
66  r = desired;
67  }
68  else
69  {
70  err = desired - curr;
71  r = curr + k * err * dt;
72  }
73 
74  return r;
75 }
76 
87 {
88  assert( IsArray( ‪array ) );
89  assert( ‪array.size > 0 );
90 
91  total = 0;
92 
93  for ( i = 0; i < ‪array.size; i++ )
94  {
95  total += ‪array[i];
96  }
97 
98  return ( total / ‪array.size );
99 }
100 
112 {
113  assert( IsArray( ‪array ) );
114  assert( ‪array.size > 0 );
115 
116  tmp = [];
117  for ( i = 0; i < ‪array.size; i++ )
118  {
119  tmp[i] = ( ‪array[i] - mean ) * ( ‪array[i] - mean );
120  }
121 
122  total = 0;
123  for ( i = 0; i < tmp.size; i++ )
124  {
125  total = total + tmp[i];
126  }
127 
128  return Sqrt( total / ‪array.size );
129 }
130 
131 // ----------------------------------------------------------------------------------------------------
132 // -- Vectors -----------------------------------------------------------------------------------------
133 // ----------------------------------------------------------------------------------------------------
134 
144 function ‪vector_compare(vec1, vec2)
145 {
146  return (abs(vec1[0] - vec2[0]) < .001) && (abs(vec1[1] - vec2[1]) < .001) && (abs(vec1[2] - vec2[2]) < .001);
147 }
148 
149 function ‪random_vector(max_length)
150 {
151  return (RandomFloatRange(-1 * max_length, max_length), RandomFloatRange(-1 * max_length, max_length), RandomFloatRange(-1 * max_length, max_length));
152 }
153 
154 function ‪angle_dif(oldangle, newangle)
155 {
156  outvalue=(oldangle-newangle)%360;
157  if (outvalue<0)
158  outvalue+=360;
159  if (outvalue>180)
160  outvalue=(outvalue-360)*-1;
161  return outvalue;
162 }
163 
164 function ‪sign( x )
165 {
166  if ( x >= 0 )
167  return 1;
168  return -1;
169 }
170 
171 function ‪cointoss()
172 {
173  return RandomInt( 100 ) >= 50 ;
174 }
‪vector_compare
‪function vector_compare(vec1, vec2)
Definition: math_shared.csc:144
‪sign
‪function sign(x)
Definition: math_shared.csc:164
‪cointoss
‪function cointoss()
Definition: math_shared.csc:171
‪array_std_deviation
‪function array_std_deviation(array, mean)
Definition: math_shared.csc:111
‪random_vector
‪function random_vector(max_length)
Definition: math_shared.csc:149
‪linear_map
‪function linear_map(num, min_a, max_a, min_b, max_b)
Definition: math_shared.csc:43
‪array
‪function filter array
Definition: array_shared.csc:16
‪lag
‪function lag(desired, curr, k, dt)
Definition: math_shared.csc:60
‪clamp
‪function clamp(val, val_min, val_max)
Definition: math_shared.csc:16
‪angle_dif
‪function angle_dif(oldangle, newangle)
Definition: math_shared.csc:154
‪array_average
‪function array_average(array)
Definition: math_shared.csc:86