示例#1
0
 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;
     }
   }
 }
示例#2
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);
    }
示例#4
0
  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);
      }
    }
  }
示例#5
0
  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);
 }
示例#7
0
 private <T extends GameObject> void removeT(T t, GameObjectListField<T> field) {
   field.get(coordinatesToCell(t.getPosition())).remove(t);
 }