view document/presentation/semi09_07_07.html @ 0:99a6512a8253

moving from firefly
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Wed, 28 Oct 2009 20:12:40 +0900
parents
children
line wrap: on
line source

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>ゼミ資料 09/07/07</title>
<!-- metadata -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="generator" content="S5" />
<meta name="version" content="S5 1.1" />
<meta name="presdate" content="20050728" />
<meta name="author" content="Eric A. Meyer" />
<meta name="company" content="Complex Spiral Consulting" />
<!-- configuration parameters -->
<meta name="defaultView" content="slideshow" />
<meta name="controlVis" content="hidden" />
<!-- style sheet links -->
<link rel="stylesheet" href="ui/default/slides.css" type="text/css" media="projection" id="slideProj" />
<link rel="stylesheet" href="ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" />
<link rel="stylesheet" href="ui/default/print.css" type="text/css" media="print" id="slidePrint" />
<link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" />
<!-- S5 JS -->
<script src="ui/default/slides.js" type="text/javascript"></script>
</head>
<body>

<div class="layout">
<div id="controls"><!-- DO NOT EDIT --></div>
<div id="currentSlide"><!-- DO NOT EDIT --></div>
<div id="header"></div>
<div id="footer">
<h1>[date:09/07/07]</h1>
<h2>発表資料</h2>
</div>

</div>


<div class="presentation">

<div class="slide">
<h1>発表資料</h1>
<h3>小林 佑亮</h3>
<h4>琉球大学 理工学研究科 情報工学専攻</h4>
<h4>No.098581D</h4>
</div>

<div class="slide">
<h1>DOING</h1>

<ul>
<li>複数の XML から registSceneGraph() で HashTable に登録する機能の実装</li>
<ul>
<li>HashTable の勉強</li>
<li>コード読み</li>
</ul>
</ul>
</div>

<div class="slide">
<h1>Approach</h1>
<ul>
<li>とりあえず SceneGraphPtr を格納する HashTable を作成してみる</li>
<li>registSceneGraph() で HashTable に登録する</li>
<li>createSceneGraph(int id) を変更</li>
</ul>
</div>

<div class="slide">
<h1>HashTableの作成</h1>
<ul>
<li>TextureHash, spe/TileHashを参考に</li>
<li>とりあえず書いてみる</li>
<li>Hash 関数を考える</li>
</ul>

</div>

<div class="slide">
<h1>HashTableの作成</h1>
<h2>実装例</h2>
<font size="5">
<pre>
int
SGHash::put(char *sg_name, SceneGraphPtr data)
{
    int hashval = hash(sg_name);

    for (int i = 0; i < hashSize/2; i++) {
        int index = (hashval + i*i)%hashSize;

        if (table[index] == 0) {
            table[index] = data;
            return index;
        }
    }

}

SceneGraphPtr
SGHash::get(char *sg_name)
{
    int hashval = hash(sg_name);

    for (int i = 0; i < hashSize/2; i++) {
        int index = (hashval + i*i)%hashSize;

        if (table[index] != NULL &&
            table[index]->name == sg_name) {
            return table[index];
        }
    }
</pre>
</font>
</div>

<div class="slide">
<h1>複数のXMLからHashTableに登録</h1>
<ul>
<li>現在の実装</li>
<font size="5">
<pre>
..

  sgroot->createFromXMLfile("xml_file/boss1.xml");
  sgroot->createFromXMLfile("xml_file/player1.xml");
  sgroot->createFromXMLfile("xml_file/p_shot.xml");
  sgroot->createFromXMLfile("xml_file/blast.xml");

..
</pre>
</font>
</ul>
</div>

<div class="slide">
<h1>今後の課題</h1>
<ul>
<li>以下のような記述を使わないような実装</li>
<font size="5">
<pre>
#define BOSS1 scene_graph
#define BOSS1_L scene_graph->next
#define BOSS1_R scene_graph->next->next
</pre>
</font>
</ul>
</div>

</body>
</html>