annotate Vacuum/resources/SceneGraphRoot.js @ 0:718974a1a32b

Vacuum
author <e085737>
date Tue, 07 Dec 2010 17:31:15 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
<e085737>
parents:
diff changeset
1 function SceneGraphRoot(w, h){
<e085737>
parents:
diff changeset
2 sg_src = new Array()
<e085737>
parents:
diff changeset
3 sg_exec_tree = null
<e085737>
parents:
diff changeset
4
<e085737>
parents:
diff changeset
5 //controller = create_controller()
<e085737>
parents:
diff changeset
6
<e085737>
parents:
diff changeset
7 sg_draw_tree = new Array()
<e085737>
parents:
diff changeset
8 sg_available_list = null
<e085737>
parents:
diff changeset
9 sg_remove_list = new Array()
<e085737>
parents:
diff changeset
10 sgroot = this
<e085737>
parents:
diff changeset
11
<e085737>
parents:
diff changeset
12 screen_w = w
<e085737>
parents:
diff changeset
13 screen_h = h
<e085737>
parents:
diff changeset
14
<e085737>
parents:
diff changeset
15 move_finish_flag = 0
<e085737>
parents:
diff changeset
16 cnt = 0
<e085737>
parents:
diff changeset
17 }
<e085737>
parents:
diff changeset
18
<e085737>
parents:
diff changeset
19
<e085737>
parents:
diff changeset
20 SceneGraphRoot.prototype.createFromXMLfile = function(gl, url){
<e085737>
parents:
diff changeset
21 if(gl.obj == undefined) gl.obj = new Object();
<e085737>
parents:
diff changeset
22 var xmlChara = new Object();
<e085737>
parents:
diff changeset
23 xmlChara = parsePanel(url);
<e085737>
parents:
diff changeset
24 for (var name in xmlChara)
<e085737>
parents:
diff changeset
25 {
<e085737>
parents:
diff changeset
26 gl.obj[name] = makeXmlObj(gl, xmlChara[name]);
<e085737>
parents:
diff changeset
27 gl.obj[name].texture = loadImageTexture(gl, xmlChara[name].image);
<e085737>
parents:
diff changeset
28 gl.obj[name].name = name;
<e085737>
parents:
diff changeset
29 sg_src.push(gl.obj[name])
<e085737>
parents:
diff changeset
30 }
<e085737>
parents:
diff changeset
31 }
<e085737>
parents:
diff changeset
32
<e085737>
parents:
diff changeset
33
<e085737>
parents:
diff changeset
34 SceneGraphRoot.prototype.createSceneGraph1 = function(id){
<e085737>
parents:
diff changeset
35 if(id < 0){
<e085737>
parents:
diff changeset
36 alert("error: createSceneGraph(id): id not found")
<e085737>
parents:
diff changeset
37 return null
<e085737>
parents:
diff changeset
38 }
<e085737>
parents:
diff changeset
39
<e085737>
parents:
diff changeset
40 for(num in sg_src){
<e085737>
parents:
diff changeset
41 if(id == sg_src[num].name){
<e085737>
parents:
diff changeset
42 var src = new SceneGraph(id)
<e085737>
parents:
diff changeset
43 }
<e085737>
parents:
diff changeset
44 }
<e085737>
parents:
diff changeset
45
<e085737>
parents:
diff changeset
46
<e085737>
parents:
diff changeset
47 if(sg_exec_tree != null){
<e085737>
parents:
diff changeset
48 sg_exec_tree.addChild(src)
<e085737>
parents:
diff changeset
49 }
<e085737>
parents:
diff changeset
50
<e085737>
parents:
diff changeset
51 SceneGraphRoot.prototype.addNext(src)
<e085737>
parents:
diff changeset
52
<e085737>
parents:
diff changeset
53 return src
<e085737>
parents:
diff changeset
54 }
<e085737>
parents:
diff changeset
55
<e085737>
parents:
diff changeset
56
<e085737>
parents:
diff changeset
57 SceneGraphRoot.prototype.createSceneGraph2 = function(name){
<e085737>
parents:
diff changeset
58 if(name < 0){
<e085737>
parents:
diff changeset
59 alert("error: createSceneGraph(name): name object not found.")
<e085737>
parents:
diff changeset
60 return null
<e085737>
parents:
diff changeset
61 }
<e085737>
parents:
diff changeset
62
<e085737>
parents:
diff changeset
63 for(num in sg_src){
<e085737>
parents:
diff changeset
64 if(name == sg_src[num].name){
<e085737>
parents:
diff changeset
65 var src = new SceneGraph(name)
<e085737>
parents:
diff changeset
66 }
<e085737>
parents:
diff changeset
67 }
<e085737>
parents:
diff changeset
68
<e085737>
parents:
diff changeset
69
<e085737>
parents:
diff changeset
70 //SceneGraphRoot.prototype.addNext(src)
<e085737>
parents:
diff changeset
71
<e085737>
parents:
diff changeset
72 return src
<e085737>
parents:
diff changeset
73 }
<e085737>
parents:
diff changeset
74
<e085737>
parents:
diff changeset
75
<e085737>
parents:
diff changeset
76 SceneGraphRoot.prototype.createSceneGraph3 = function(){
<e085737>
parents:
diff changeset
77 var p = new SceneGraph()
<e085737>
parents:
diff changeset
78
<e085737>
parents:
diff changeset
79 p.sgroot = this
<e085737>
parents:
diff changeset
80
<e085737>
parents:
diff changeset
81 SceneGraphRoot.prototype.addNext(p)
<e085737>
parents:
diff changeset
82
<e085737>
parents:
diff changeset
83 p.flag_drawable = 0
<e085737>
parents:
diff changeset
84
<e085737>
parents:
diff changeset
85 return p
<e085737>
parents:
diff changeset
86 }
<e085737>
parents:
diff changeset
87
<e085737>
parents:
diff changeset
88
<e085737>
parents:
diff changeset
89 SceneGraphRoot.prototype.addNext = function(sg){
<e085737>
parents:
diff changeset
90 sg_available_list = sg
<e085737>
parents:
diff changeset
91 /*last = sg_available_list
<e085737>
parents:
diff changeset
92 if(last == null){
<e085737>
parents:
diff changeset
93 sg_available_list.push(sg)
<e085737>
parents:
diff changeset
94 }else{
<e085737>
parents:
diff changeset
95 while(last.next){
<e085737>
parents:
diff changeset
96 last = last.next
<e085737>
parents:
diff changeset
97 }
<e085737>
parents:
diff changeset
98 last.next = sg
<e085737>
parents:
diff changeset
99 sg.prev = last
<e085737>
parents:
diff changeset
100 }*/
<e085737>
parents:
diff changeset
101 //cnt++
<e085737>
parents:
diff changeset
102 }
<e085737>
parents:
diff changeset
103
<e085737>
parents:
diff changeset
104
<e085737>
parents:
diff changeset
105 /* 渡された引数をもとにイメージを検索する */
<e085737>
parents:
diff changeset
106 SceneGraphRoot.prototype.getSgid = function(obj_name){
<e085737>
parents:
diff changeset
107 for(var name in sg_src){
<e085737>
parents:
diff changeset
108 if(obj_name == sg_src[name].name){
<e085737>
parents:
diff changeset
109 return sg_src[name]
<e085737>
parents:
diff changeset
110 }
<e085737>
parents:
diff changeset
111 }
<e085737>
parents:
diff changeset
112 return -1
<e085737>
parents:
diff changeset
113 }
<e085737>
parents:
diff changeset
114
<e085737>
parents:
diff changeset
115
<e085737>
parents:
diff changeset
116 SceneGraphRoot.prototype.getController = function(){
<e085737>
parents:
diff changeset
117 var left_push = currentlyPressedKeys[37] /* ← */
<e085737>
parents:
diff changeset
118 var down_push = currentlyPressedKeys[40] /* ↓ */
<e085737>
parents:
diff changeset
119 var right_push = currentlyPressedKeys[39] /* → */
<e085737>
parents:
diff changeset
120 var up_push = currentlyPressedKeys[38] /* ↑ */
<e085737>
parents:
diff changeset
121 var cross_push = currentlyPressedKeys[90] /* z */
<e085737>
parents:
diff changeset
122 var circle_push = currentlyPressedKeys[88] /* x */
<e085737>
parents:
diff changeset
123 var start_push = currentlyPressedKeys[13] /* Enter */
<e085737>
parents:
diff changeset
124 var zoom_in_push = currentlyPressedKeys[75] /* k */
<e085737>
parents:
diff changeset
125 var zoom_out_push = currentlyPressedKeys[76] /* l */
<e085737>
parents:
diff changeset
126
<e085737>
parents:
diff changeset
127 this.right_isHold = function(){
<e085737>
parents:
diff changeset
128 return right_push
<e085737>
parents:
diff changeset
129 }
<e085737>
parents:
diff changeset
130
<e085737>
parents:
diff changeset
131 this.right_isRelease = function(){
<e085737>
parents:
diff changeset
132 return !right_push
<e085737>
parents:
diff changeset
133 }
<e085737>
parents:
diff changeset
134
<e085737>
parents:
diff changeset
135 this.left_isHold = function(){
<e085737>
parents:
diff changeset
136 return left_push
<e085737>
parents:
diff changeset
137 }
<e085737>
parents:
diff changeset
138
<e085737>
parents:
diff changeset
139 this.left_isRelease = function(){
<e085737>
parents:
diff changeset
140 return !left_push
<e085737>
parents:
diff changeset
141 }
<e085737>
parents:
diff changeset
142
<e085737>
parents:
diff changeset
143 this.up_isHold = function(){
<e085737>
parents:
diff changeset
144 return up_push
<e085737>
parents:
diff changeset
145 }
<e085737>
parents:
diff changeset
146
<e085737>
parents:
diff changeset
147 this.up_isRelease = function(){
<e085737>
parents:
diff changeset
148 return !up_push
<e085737>
parents:
diff changeset
149 }
<e085737>
parents:
diff changeset
150
<e085737>
parents:
diff changeset
151 this.down_isHold = function(){
<e085737>
parents:
diff changeset
152 return down_push
<e085737>
parents:
diff changeset
153 }
<e085737>
parents:
diff changeset
154
<e085737>
parents:
diff changeset
155 this.down_isRelease = function(){
<e085737>
parents:
diff changeset
156 return !down_push
<e085737>
parents:
diff changeset
157 }
<e085737>
parents:
diff changeset
158
<e085737>
parents:
diff changeset
159 this.cross_isHold = function(){
<e085737>
parents:
diff changeset
160 return cross_push
<e085737>
parents:
diff changeset
161 }
<e085737>
parents:
diff changeset
162
<e085737>
parents:
diff changeset
163 this.cross_isRelease = function(){
<e085737>
parents:
diff changeset
164 return !cross_push
<e085737>
parents:
diff changeset
165 }
<e085737>
parents:
diff changeset
166
<e085737>
parents:
diff changeset
167 this.circle_isHold = function(){
<e085737>
parents:
diff changeset
168 return circle_push
<e085737>
parents:
diff changeset
169 }
<e085737>
parents:
diff changeset
170
<e085737>
parents:
diff changeset
171 this.circle_isRelease = function(){
<e085737>
parents:
diff changeset
172 return !circle_push
<e085737>
parents:
diff changeset
173 }
<e085737>
parents:
diff changeset
174
<e085737>
parents:
diff changeset
175 this.start_isHold = function(){
<e085737>
parents:
diff changeset
176 return start_push
<e085737>
parents:
diff changeset
177 }
<e085737>
parents:
diff changeset
178
<e085737>
parents:
diff changeset
179 this.start_isRelease = function(){
<e085737>
parents:
diff changeset
180 return !start_push
<e085737>
parents:
diff changeset
181 }
<e085737>
parents:
diff changeset
182
<e085737>
parents:
diff changeset
183 this.zoom_in_isHold = function(){
<e085737>
parents:
diff changeset
184 return zoom_in_push
<e085737>
parents:
diff changeset
185 }
<e085737>
parents:
diff changeset
186
<e085737>
parents:
diff changeset
187 this.zoom_out_isHold = function(){
<e085737>
parents:
diff changeset
188 return zoom_out_push
<e085737>
parents:
diff changeset
189 }
<e085737>
parents:
diff changeset
190
<e085737>
parents:
diff changeset
191 }
<e085737>
parents:
diff changeset
192
<e085737>
parents:
diff changeset
193
<e085737>
parents:
diff changeset
194
<e085737>
parents:
diff changeset
195 /* rootになるnodeを設定する */
<e085737>
parents:
diff changeset
196 SceneGraphRoot.prototype.setSceneData = function(sg){
<e085737>
parents:
diff changeset
197 sg.parents = null
<e085737>
parents:
diff changeset
198 sg_exec_tree = sg
<e085737>
parents:
diff changeset
199 }
<e085737>
parents:
diff changeset
200
<e085737>
parents:
diff changeset
201