annotate src/main/csharp/jp.ac.u-ryukyu.ie.cr/ObjectMapper/SceneNode.cs @ 19:0865819106cf

add mapping code.
author Kazuma
date Mon, 05 Dec 2016 05:28:53 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
1 using System.Collections;
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
2 using System.Collections.Generic;
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
3 using UnityEngine;
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
4
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
5 public class SceneNode : MonoBehaviour {
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
6
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
7 public GameObject obj;
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
8
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
9 public SceneNode m_parent;
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
10 public System.Collections.Generic.List<SceneNode> m_childs;
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
11
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
12 public SceneNode(GameObject obj, SceneNode parent=null){
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
13 this.obj = obj;
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
14 m_parent = parent;
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
15 m_childs = new System.Collections.Generic.List<SceneNode>();
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
16 }
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
17
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
18 public void OnAdded () {}
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
19
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
20 public void OnRemoved () {}
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
21
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
22 public bool AddChild (SceneNode toAdd){
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
23 toAdd.m_parent = this;
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
24 m_childs.Add(toAdd);
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
25 toAdd.OnAdded();
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
26 return true;
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
27 }
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
28
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
29 public bool RemoveChild (SceneNode toRemove) {
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
30 toRemove.OnRemoved();
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
31 return m_childs.Remove(toRemove);
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
32 }
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
33
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
34 public void RemoveAllChildren () {
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
35 int childcount = m_childs.Count;
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
36 for(int i = 0; i < childcount ;++i){
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
37 m_childs[i].RemoveAllChildren();
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
38 }
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
39
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
40 for(int i = 0; i < childcount ;++i){
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
41 m_childs[i].OnRemoved();
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
42 }
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
43 m_childs.Clear();
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
44 }
0865819106cf add mapping code.
Kazuma
parents:
diff changeset
45 }