@@ -79,7 +79,6 @@ public Node add(final RectNd t) {
7979 mbr = tRect ;
8080 }
8181 cacheNode .setMbr ((RectNd ) mbr );
82- cacheNode .setRAtI (size , (RectNd ) tRect );
8382 cacheNode .setEntryAtI (size , t );
8483 size = size + 1 ;
8584 cacheNode .setProperty ("size" , size );
@@ -109,20 +108,13 @@ public Node remove(final RectNd t) {
109108
110109 if (i < j ) {
111110 final int nRemoved = j - i ;
112- RectNd [] r = cacheNode .getR ();
113111 if (j < size ) {
114112 final int nRemaining = size - j ;
115- // System.arraycopy(r, j, r, i, nRemaining);
116- for (int i1 = 0 ; i1 < nRemaining ; i1 ++) {
117- cacheNode .setRAtI (i + i1 , (RectNd ) r [j + i1 ]);
118- }
119- // System.arraycopy(entry, j, entry, i, nRemaining);
120113 for (int i1 = 0 ; i1 < nRemaining ; i1 ++) {
121114 cacheNode .setEntryAtI (i + i1 , entry [j + i1 ]);
122115 }
123116
124117 for (int k = size - nRemoved ; k < size ; k ++) {
125- cacheNode .setRAtI (k , null );
126118 cacheNode .setEntryAtI (k , null );
127119 }
128120 } else {
@@ -131,7 +123,6 @@ public Node remove(final RectNd t) {
131123 return null ;
132124 }
133125 for (int k = i ; k < size ; k ++) {
134- cacheNode .setRAtI (k , null );
135126 cacheNode .setEntryAtI (k , null );
136127 }
137128 }
@@ -142,9 +133,9 @@ public Node remove(final RectNd t) {
142133 RectNd mbr = null ;
143134 for (int k = 0 ; k < size ; k ++) {
144135 if (k == 0 ) {
145- mbr = r [k ];
136+ mbr = entry [k ];
146137 } else {
147- mbr = mbr .getMbr (r [k ]);
138+ mbr = mbr .getMbr (entry [k ]);
148139 }
149140 }
150141 if (null != mbr ) {
@@ -161,19 +152,16 @@ public Node remove(final RectNd t) {
161152 public Node update (final RectNd told , final RectNd tnew ) {
162153 int size = (int ) cacheNode .getProperty ("size" );
163154 RectNd [] entry = cacheNode .getEntry ();
164- RectNd [] r = cacheNode .getR ();
165- final RectNd bbox = builder .getBBox (tnew );
166155
167156 RectNd mbr = null ;
168157 for (int i = 0 ; i < size ; i ++) {
169158 if (entry [i ].equals (told )) {
170- cacheNode .setRAtI (i , (RectNd ) bbox );
171159 cacheNode .setEntryAtI (i , tnew );
172160 }
173161 if (i == 0 ) {
174- mbr = r [i ];
162+ mbr = entry [i ];
175163 } else {
176- mbr = mbr .getMbr (r [i ]);
164+ mbr = mbr .getMbr (entry [i ]);
177165 }
178166 }
179167 if (null != mbr ) {
@@ -189,10 +177,9 @@ public int search(final RectNd rect, final RectNd[] t, int n) {
189177 final int n0 = n ;
190178 int size = (int ) cacheNode .getProperty ("size" );
191179 RectNd [] entry = cacheNode .getEntry ();
192- RectNd [] r = cacheNode .getR ();
193180
194181 for (int i = 0 ; i < size && n < tLen ; i ++) {
195- if (rect .contains (r [i ])) {
182+ if (rect .contains (entry [i ])) {
196183 t [n ++] = entry [i ];
197184 }
198185 }
@@ -203,9 +190,8 @@ public int search(final RectNd rect, final RectNd[] t, int n) {
203190 public void search (RectNd rect , Consumer consumer ) {
204191 int size = (int ) cacheNode .getProperty ("size" );
205192 RectNd [] entry = cacheNode .getEntry ();
206- RectNd [] r = cacheNode .getR ();
207193 for (int i = 0 ; i < size ; i ++) {
208- if (rect .contains (r [i ])) {
194+ if (rect .contains (entry [i ])) {
209195 consumer .accept (entry [i ]);
210196 }
211197 }
@@ -218,10 +204,9 @@ public int intersects(final RectNd rect, final RectNd[] t, int n) {
218204
219205 int size = (int ) cacheNode .getProperty ("size" );
220206 RectNd [] entry = cacheNode .getEntry ();
221- RectNd [] r = cacheNode .getR ();
222207
223208 for (int i = 0 ; i < size && n < tLen ; i ++) {
224- if (rect .intersects (r [i ])) {
209+ if (rect .intersects (entry [i ])) {
225210 t [n ++] = entry [i ];
226211 }
227212 }
@@ -232,10 +217,9 @@ public int intersects(final RectNd rect, final RectNd[] t, int n) {
232217 public void intersects (RectNd rect , Consumer consumer ) {
233218 int size = (int ) cacheNode .getProperty ("size" );
234219 RectNd [] entry = cacheNode .getEntry ();
235- RectNd [] r = cacheNode .getR ();
236220
237221 for (int i = 0 ; i < size ; i ++) {
238- if (rect .intersects (r [i ])) {
222+ if (rect .intersects (entry [i ])) {
239223 consumer .accept (entry [i ]);
240224 }
241225 }
@@ -288,10 +272,9 @@ public void forEach(Consumer consumer) {
288272 public boolean contains (RectNd rect , RectNd t ) {
289273 int size = (int ) cacheNode .getProperty ("size" );
290274 RectNd [] entry = cacheNode .getEntry ();
291- RectNd [] r = cacheNode .getR ();
292275
293276 for (int i = 0 ; i < size ; i ++) {
294- if (rect .contains (r [i ])) {
277+ if (rect .contains (entry [i ])) {
295278 if (entry [i ].equals (t )) {
296279 return true ;
297280 }
0 commit comments