-
Notifications
You must be signed in to change notification settings - Fork 1
/
CameraZoomPan.mel
101 lines (70 loc) · 2.72 KB
/
CameraZoomPan.mel
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
// GLKT - Benjamin Vedrenne.
// MIT License
global proc resetCam() {
global string $camName;
global float $focalOrigin;
//reset values
floatSlider -edit -v 1 zoomSlider;
floatSlider -edit -v 0 Vslider;
floatSlider -edit -v 0 Hslider;
print $camName;
// reset CAM
setAttr ($camName+".focalLength") $focalOrigin;
setAttr ($camName+".horizontalFilmOffset") 0;
setAttr ($camName+".verticalFilmOffset") 0;
}
global proc getPanel() {
global string $camName;
global float $focalOrigin;
if ( $camName != "") {resetCam;};
// get CAM
string $currentPanel = `getPanel -withFocus`;
string $panelType = `getPanel -typeOf $currentPanel`;
if ( $panelType != "modelPanel") {
print ("Active panel is "+$currentPanel+"\n");
print ("This panel type is "+$panelType+"\n");
}else{
$camName =`modelPanel -q -camera $currentPanel`;
$focalOrigin = getAttr ($camName+".focalLength");
print $camName;
}
}
global proc updateCam() {
global string $camName;
global float $focalOrigin;
float $focal = `floatSlider -q -v zoomSlider`;
float $Y = `floatSlider -q -v Vslider`;
float $X = `floatSlider -q -v Hslider`;
$focal = pow(7,$focal)/7;
float $focal = clamp(2.5,3499,($focalOrigin * $focal));
// reset CAM
setAttr ($camName+".focalLength") ($focal);
setAttr ($camName+".horizontalFilmOffset") ($X * $focal / $focalOrigin / 2);
setAttr ($camName+".verticalFilmOffset") ($Y * $focal / $focalOrigin / 2);
}
global proc panZoomCam( ) {
if (`window -exists panZoomCamWindow`) deleteUI panZoomCamWindow;
window -title "panZoomCam" -widthHeight 500 140 panZoomCamWindow;
if (`windowPref -exists panZoomCamWindow`) windowPref -remove panZoomCamWindow;
columnLayout ;
rowLayout -numberOfColumns 2 -width 500;
button -bgc 0.0 0.5 0.5 -label "RESET" -width 245 -command "resetCam";
button -bgc 0.0 0.5 0.5 -label "change panel" -width 245 -command "getPanel";
setParent ..;
frameLayout -bs etchedIn -height 50 -width 495 -l "ZOOM";
floatSlider -min -1 -max 3 -v 1 -dc "updateCam" zoomSlider;
setParent ..;
frameLayout -bs etchedIn -height 60 -width 495 -l "MOVE";
rowLayout -numberOfColumns 2 -width 495;
text -l "Y : ";
floatSlider -min -1 -max 1 -v 0 -width 460 -dc "updateCam" Vslider;
setParent ..;
rowLayout -numberOfColumns 2 -width 495;
text -l "X : ";
floatSlider -min -1 -max 1 -v 0 -width 460 -dc "updateCam" Hslider;
setParent ..;
setParent ..;
showWindow panZoomCamWindow;
};
// Run the main procedure
panZoomCam;