Mercurial > hg > Members > kono > Cerium
view TaskManager/Test/test_render/scene_graph_pack.h @ 174:559b48b69b76
getScale()、getTapestry から、span->length に適切なテクスチャの選択に成功
author | gongo@localhost.localdomain |
---|---|
date | Fri, 12 Dec 2008 12:23:20 +0900 |
parents | 38cbb7aecc70 |
children | 25c820b6060e |
line wrap: on
line source
#ifndef INCLUDED_SCENE_GRAPH_PACK #define INCLUDED_SCENE_GRAPH_PACK #ifndef INCLUDED_SCENE_GRAPH # include "SceneGraph.h" #endif #ifndef INCLUDED_TYPES # include "types.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]; uint32 *tex_addr; int 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