OSDN Git Service

Merge branch 'git-svn'
[nyartoolkit-and/nyartoolkit-and.git] / tags / 0.8 / src / jp / nyatla / util / IntPointer.java
1 package jp.nyatla.util;\r
2 \r
3 public class IntPointer {\r
4         private int[] array_ref;                //配列\r
5         private int array_offset;               //配列に対する基準値\r
6         private int position;                   //array_offsetに対する現在位置\r
7         public static IntPointer wrap(int[] i_array_ref,int i_offset)\r
8         {\r
9                 return new IntPointer(i_array_ref,i_offset);\r
10         }\r
11         public void set(int i_value)\r
12         {\r
13                 array_ref[array_offset+position]=i_value;               \r
14         }\r
15         public void set(int i_rel_positon,int i_value)\r
16         {\r
17                 array_ref[array_offset+position+i_rel_positon]=i_value;\r
18         }\r
19         /**\r
20          * カレント位置の値を取得する\r
21          * @return\r
22          */\r
23         public int get()\r
24         {\r
25                 return array_ref[array_offset+position];\r
26         }\r
27         /**\r
28          * カレント位置から+i_slideの位置にある値を取得する。\r
29          * @param i_step\r
30          * @return\r
31          */\r
32         public int get(int i_slide)\r
33         {\r
34                 return array_ref[array_offset+position+i_slide];\r
35         }\r
36         public void incPtr()\r
37         {\r
38                 position++;\r
39         }\r
40         public void addPtr(int v)\r
41         {\r
42                 position+=v;\r
43         }\r
44         public void addValue(int i_val)\r
45         {\r
46                 array_ref[array_offset+position]+=i_val;\r
47         }\r
48         public void addValue(int i_step,int i_val)\r
49         {\r
50                 array_ref[array_offset+position+i_step]+=i_val;\r
51         }\r
52         private IntPointer(int[] i_array_ref,int i_base_point)\r
53         {\r
54                 array_offset    =i_base_point;\r
55                 array_ref               =i_array_ref;\r
56                 position                =0;\r
57         }\r
58         public IntPointer()\r
59         {\r
60                 array_offset    =0;\r
61                 array_ref               =new int[1];\r
62                 position                =0;\r
63         }\r
64 }\r