public void setString(T field, byte[] value) { for (int i = field.getPosition(), j = 0; i < field.getPosition() + field.getLength(); i++, j++) { if (value != null && j < value.length) { line[i] = value[j]; } else { line[i] = 0; } } }
public byte[] get(T field) { byte[] res; res = new byte[field.getLength()]; if (line != null && line.length > field.getPosition() && line.length >= field.getPosition() + field.getLength()) { for (int i = field.getPosition(); i < field.getPosition() + field.getLength(); i++) { res[i - field.getPosition()] = line[i]; } } return res; }
private void perform(MarkerModifier markerModifier) { // Don't show small clusters. Render the markers inside, instead. if (!shouldRenderAsCluster(cluster)) { for (T item : cluster.getItems()) { Marker marker = mMarkerCache.get(item); MarkerWithPosition markerWithPosition; if (marker == null) { MarkerOptions markerOptions = new MarkerOptions(); if (animateFrom != null) { markerOptions.position(animateFrom); markerOptions.icon(item.getBitmapDescriptor()); } else { markerOptions.position(item.getPosition()); markerOptions.icon(item.getBitmapDescriptor()); } onBeforeClusterItemRendered(item, markerOptions); marker = mClusterManager.getMarkerCollection().addMarker(markerOptions); markerWithPosition = new MarkerWithPosition(marker); mMarkerCache.put(item, marker); if (animateFrom != null) { markerModifier.animate(markerWithPosition, animateFrom, item.getPosition()); } } else { markerWithPosition = new MarkerWithPosition(marker); } onClusterItemRendered(item, marker); newMarkers.add(markerWithPosition); } return; } MarkerOptions markerOptions = new MarkerOptions().position(animateFrom == null ? cluster.getPosition() : animateFrom); onBeforeClusterRendered(cluster, markerOptions); Marker marker = mClusterManager.getClusterMarkerCollection().addMarker(markerOptions); mMarkerToCluster.put(marker, cluster); mClusterToMarker.put(cluster, marker); MarkerWithPosition markerWithPosition = new MarkerWithPosition(marker); if (animateFrom != null) { markerModifier.animate(markerWithPosition, animateFrom, cluster.getPosition()); } onClusterRendered(cluster, marker); newMarkers.add(markerWithPosition); }
private <T extends GameObject> void update( Cell cell, int i, int j, GameObjectListField<T> field) { List<T> listOfTs = field.get(cell); Iterator<T> iterator = listOfTs.iterator(); while (iterator.hasNext()) { T t = iterator.next(); Vector p = t.getPosition(); int newI = coordinatesToCellXIndex(p); int newJ = coordinatesToCellYIndex(p); if (i != newI || j != newJ) { iterator.remove(); field.get(cells[newI][newJ]).add(t); } } }
private <T extends GameObject> List<T> TsInsideCircle( double radius, Vector center, GameObjectListField<T> field) { if (radius > minimumCellSize) { throw new Error("radius > minimumCellSize"); } List<T> listOfTsInsideCircle = new LinkedList<T>(); int x = coordinatesToCellXIndex(center); int y = coordinatesToCellYIndex(center); for (int i = 0; i < numberOfVisibleCells; i++) { for (T t : field.get(cells[x + deltaX[i]][y + deltaY[i]])) { if (parameters.distance(t.getPosition(), center) < radius) { listOfTsInsideCircle.add(t); } } } return listOfTsInsideCircle; }
protected boolean renderRaycastedBeam(Vec3 direction, Vec3 offset, T caster) { return renderRaycastedBeam(caster.getPosition(1), direction, offset, caster); }
private <T extends GameObject> void removeT(T t, GameObjectListField<T> field) { field.get(coordinatesToCell(t.getPosition())).remove(t); }