--- /dev/null
+package jp.nyatla.util;\r
+\r
+public class IntPointer {\r
+ private int[] array_ref; //配列\r
+ private int array_offset; //配列に対する基準値\r
+ private int position; //array_offsetに対する現在位置\r
+ public static IntPointer wrap(int[] i_array_ref,int i_offset)\r
+ {\r
+ return new IntPointer(i_array_ref,i_offset);\r
+ }\r
+ public void set(int i_value)\r
+ {\r
+ array_ref[array_offset+position]=i_value; \r
+ }\r
+ public void set(int i_rel_positon,int i_value)\r
+ {\r
+ array_ref[array_offset+position+i_rel_positon]=i_value;\r
+ }\r
+ /**\r
+ * カレント位置の値を取得する\r
+ * @return\r
+ */\r
+ public int get()\r
+ {\r
+ return array_ref[array_offset+position];\r
+ }\r
+ /**\r
+ * カレント位置から+i_slideの位置にある値を取得する。\r
+ * @param i_step\r
+ * @return\r
+ */\r
+ public int get(int i_slide)\r
+ {\r
+ return array_ref[array_offset+position+i_slide];\r
+ }\r
+ public void incPtr()\r
+ {\r
+ position++;\r
+ }\r
+ public void addPtr(int v)\r
+ {\r
+ position+=v;\r
+ }\r
+ public void addValue(int i_val)\r
+ {\r
+ array_ref[array_offset+position]+=i_val;\r
+ }\r
+ public void addValue(int i_step,int i_val)\r
+ {\r
+ array_ref[array_offset+position+i_step]+=i_val;\r
+ }\r
+ private IntPointer(int[] i_array_ref,int i_base_point)\r
+ {\r
+ array_offset =i_base_point;\r
+ array_ref =i_array_ref;\r
+ position =0;\r
+ }\r
+ public IntPointer()\r
+ {\r
+ array_offset =0;\r
+ array_ref =new int[1];\r
+ position =0;\r
+ }\r
+}\r