annotate Renderer/Engine/scene_graph_pack.h @ 1006:443c01049702

correct code.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Tue, 26 Oct 2010 17:41:41 +0900
parents 735f76483bb2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
283
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
1 #ifndef INCLUDED_SCENE_GRAPH_PACK
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
2 #define INCLUDED_SCENE_GRAPH_PACK
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
3
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
4 #include "SceneGraph.h"
283
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
5
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 283
diff changeset
6 #include "types.h"
283
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
7
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
8 #define MAX_NODE 16
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
9 #define MAX_POLYGON 36
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
10
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
11 typedef struct SceneGraphNode {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
12 int size; // この Node で使ってるポリゴンの数、でいいのかな
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
13 float vertex[MAX_POLYGON*3];
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
14 float texture[MAX_POLYGON*2];
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
15 float obj_pos[4];
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
16 float angle[4];
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
17 float translation[16];
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
18 uint32 *tex_addr;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
19 int tex_width, tex_height;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
20 int id;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
21 int move, interaction;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
22 int pn; // parent number?
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
23 SceneGraphNode *next;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
24 int pad[3];
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
25 SceneGraphPtr self;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
26 SceneGraphPtr tree;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
27
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
28 void init(void) {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
29 size = 0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
30 next = 0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
31 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
32
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
33 void finish(void) {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
34 SceneGraphNode *p = this->next, *p1;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
35
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
36 while (p) {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
37 p1 = p->next;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
38 free(p);
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
39 p = p1;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
40 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
41 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
42 }SceneGraphNode, *SceneGraphNodePtr;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
43
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
44 typedef struct SceneGraphInfo {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
45 int size;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
46 int pad[2];
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
47 }SceneGraphInfo;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
48
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
49 typedef struct SceneGraphPack {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
50 SceneGraphInfo info;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
51 SceneGraphNode node[MAX_NODE];
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
52 SceneGraphPack *next;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
53
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
54 void init(void){
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
55 next = 0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
56 info.size = 0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
57
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
58 for (int i = 0; i < MAX_NODE; i++) {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
59 node[i].size = 0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
60 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
61 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
62
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
63 void finish(void) {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
64 for (int i = 0; i < info.size; i++) {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
65 node[i].finish();
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
66 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
67
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
68 next = 0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
69 info.size = 0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
70 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
71 } SceneGraphPack, *SceneGraphPackPtr;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
72
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
73 #endif