-
Notifications
You must be signed in to change notification settings - Fork 0
/
fft_paint_pre.js
66 lines (55 loc) · 1.24 KB
/
fft_paint_pre.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
var tools = new Array(
'file_controls',
'fft_controls',
'paint_controls',
'gradient_controls',
'blur_controls',
'curve_controls'
);
var curMode = false;
var fftData = false;
var mouseDown = false;
var pi = Math.PI;
function __clampPixel( _rr, _ii ) {
var vv = Math.round( 255.0 * Math.sqrt( _rr*_rr + _ii*_ii ) );
if ( vv > 255 ) {
vv = 255;
}
return vv;
}
function __clampPhase( _rr, _ii ) {
var vv = ( _rr*_rr + _ii*_ii > 0.000001 )
? Math.round( 128.0 * Math.atan2( _ii, _rr ) / pi ) + 128
: 128;
while ( vv < 0 ) {
vv += 256;
}
while ( vv > 255 ) {
vv -= 256;
}
return vv;
}
function __recursivelyGetClientOffset( _ctrl, _rect ) {
if ( _ctrl ) {
__recursivelyGetClientOffset( _ctrl.offsetParent, _rect );
_rect.top += _ctrl.offsetTop;
_rect.left += _ctrl.offsetLeft;
}
}
function __getBoundingClientRect( _ctrl ) {
if ( _ctrl.getBoundingClientRect ) {
return _ctrl.getBoundingClientRect();
}
else {
var rect = {};
rect.left = 0;
rect.top = 0;
__recursivelyGetClientOffset( _ctrl, rect );
rect.width = _ctrl.width;
rect.height = _ctrl.height;
rect.right = rect.left + _ctrl.width;
rect.bottom = rect.top + _ctrl.height;
return rect;
}
}
var modes = { };