Mercurial > hg > Members > kono > Cerium
view TaskManager/Test/test_render/scene_graph_pack.h @ 144:949af5ee555e
fix
author | gongo@localhost.localdomain |
---|---|
date | Sat, 29 Nov 2008 11:43:13 +0900 (2008-11-29) |
parents | 6cf991f28c6c |
children | 38cbb7aecc70 |
line wrap: on
line source
#ifndef INCLUDED_SCENE_GRAPH_PACK #define INCLUDED_SCENE_GRAPH_PACK #ifndef INCLUDED_SCENE_GRAPH # include "SceneGraph.h" #endif #define MAX_NODE 16 #define MAX_POLYGON 36 typedef struct SceneGraphNode { int size; // この Node で使ってるポリゴンの数、でいいのかな float vertex[MAX_POLYGON*3]; float texture[MAX_POLYGON*2]; float obj_pos[4]; float angle[4]; float translation[16]; long *tex_addr, tex_width, tex_height; int id; int move, interaction; int pn; // parent number? SceneGraphNode *next; int pad[3]; SceneGraphPtr self; SceneGraphPtr tree; void init(void) { size = 0; next = 0; } void finish(void) { SceneGraphNode *p = this->next, *p1; while (p) { p1 = p->next; free(p); p = p1; } } }SceneGraphNode, *SceneGraphNodePtr; typedef struct SceneGraphInfo { int size; int pad[2]; }SceneGraphInfo; typedef struct SceneGraphPack { SceneGraphInfo info; SceneGraphNode node[MAX_NODE]; SceneGraphPack *next; void init(void){ next = 0; info.size = 0; for (int i = 0; i < MAX_NODE; i++) { node[i].size = 0; } } void finish(void) { for (int i = 0; i < info.size; i++) { node[i].finish(); } next = 0; info.size = 0; } } SceneGraphPack, *SceneGraphPackPtr; #endif