Tabnine Logo
BitVector.nextSetBit
Code IndexAdd Tabnine to your IDE (free)

How to use
nextSetBit
method
in
com.artemis.utils.BitVector

Best Java code snippets using com.artemis.utils.BitVector.nextSetBit (Showing top 20 results out of 315)

origin: junkdog/artemis-odb

  private void purgeNoPool() {
    for (int id = idBits.nextSetBit(0); id >= 0; id = idBits.nextSetBit(id + 1)) {
      components.unsafeSet(id, null);
    }
  }
}
origin: junkdog/artemis-odb

public BitVector(BitVector source) {
  this();
  for (int id = source.nextSetBit(0); id != -1; id = source.nextSetBit(id + 1)) {
    set(id);
  }
}
origin: net.onedaybeard.artemis/artemis-odb

  private void purgeNoPool() {
    for (int id = idBits.nextSetBit(0); id >= 0; id = idBits.nextSetBit(id + 1)) {
      components.unsafeSet(id, null);
    }
  }
}
origin: junkdog/artemis-odb

@Override
public String toString() {
  // possibly faster if done in JavaScript and all numerical properties
  // are
  // put into an array and sorted
  int length = length();
  if (length == 0) {
    // a "length" of 0 means there are no bits set to true
    return "{}";
  }
  StringBuilder sb = new StringBuilder("{");
  // at this point, there is at least one true bit, nextSetBit can not
  // fail
  int next = nextSetBit(0);
  sb.append(next);
  // loop until nextSetBit returns -1
  while ((next = nextSetBit(next + 1)) != -1) {
    sb.append(", ");
    sb.append(next);
  }
  sb.append("}");
  return sb.toString();
}
origin: junkdog/artemis-odb

  @Override
  public String toString() {
    int cardinality = cardinality();
    int end = Math.min(128, cardinality);
    int count = 0;

    StringBuilder sb = new StringBuilder();
    sb.append("BitVector[").append(cardinality);
    if (cardinality > 0) {
      sb.append(": {");
      for (int i = nextSetBit(0); end > count && i != -1; i = nextSetBit(i + 1)) {
        if (count != 0)
          sb.append(", ");

        sb.append(i);
        count++;
      }

      if (cardinality > end)
        sb.append(" ...");

      sb.append("}");
    }
    sb.append("]");
    return sb.toString();
  }
}
origin: junkdog/artemis-odb

private void purgeWithPool() {
  for (int id = idBits.nextSetBit(0); id >= 0; id = idBits.nextSetBit(id + 1)) {
    A c = components.get(id);
      pool.free((PooledComponent) c);
    components.unsafeSet(id, null);
  }
}
origin: net.onedaybeard.artemis/artemis-odb

private void purgeWithPool() {
  for (int id = idBits.nextSetBit(0); id >= 0; id = idBits.nextSetBit(id + 1)) {
    A c = components.get(id);
      pool.free((PooledComponent) c);
    components.unsafeSet(id, null);
  }
}
origin: junkdog/artemis-odb

protected void extractComponents(SaveFileFormat save) {
  ComponentManager cm = world.getComponentManager();
  Map<Class<? extends Component>, String> lookup = save.componentIdentifiers.typeToName;
  Set<String> names = new HashSet<String>();
  BitVector bs = componentIds;
  SaveFileFormat.ComponentIdentifiers identifiers = save.componentIdentifiers;
  for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) {
    Class<? extends Component> type = cm.typeFactory.getTypeFor(i).getType();
    lookup.put(type, resolveNameId(names, type));
    if (identifiers.typeToId.get(type) == null) {
      identifiers.typeToId.put(type, lookup.size());
      identifiers.idToType.put(lookup.size(), type);
    }
  }
}
origin: net.onedaybeard.artemis/artemis-odb-serializer

protected void extractComponents(SaveFileFormat save) {
  ComponentManager cm = world.getComponentManager();
  Map<Class<? extends Component>, String> lookup = save.componentIdentifiers.typeToName;
  Set<String> names = new HashSet<String>();
  BitVector bs = componentIds;
  SaveFileFormat.ComponentIdentifiers identifiers = save.componentIdentifiers;
  for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) {
    Class<? extends Component> type = cm.typeFactory.getTypeFor(i).getType();
    lookup.put(type, resolveNameId(names, type));
    if (identifiers.typeToId.get(type) == null) {
      identifiers.typeToId.put(type, lookup.size());
      identifiers.idToType.put(lookup.size(), type);
    }
  }
}
origin: junkdog/artemis-odb

/**
 * Decodes the set bits as integers. The destination
 * {@link IntBag} is reset before the bits are transposed.
 *
 * @param out decoded ints end up here
 * @return Same as out
 */
public IntBag toIntBag(IntBag out) {
  out.setSize(0);
  if (isEmpty())
    return out;
  for (int id = nextSetBit(0); id >= 0; id = nextSetBit(id + 1)) {
    out.add(id);
  }
  return out;
}
origin: junkdog/artemis-odb

void preWrite(SaveFileFormat save) {
  entityIds.clear();
  ConverterUtil.toBitVector(save.entities, entityIds);
  boolean foundNew = true;
  BitVector bs = entityIds;
  while (foundNew) {
    foundNew = false;
    for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) {
      for (Field f : referencingFields) {
        foundNew |= findReferences(i, f, bs);
      }
    }
  }
  entityIds.toIntBag(save.entities);
}
origin: net.onedaybeard.artemis/artemis-odb-serializer

void preWrite(SaveFileFormat save) {
  entityIds.clear();
  ConverterUtil.toBitVector(save.entities, entityIds);
  boolean foundNew = true;
  BitVector bs = entityIds;
  while (foundNew) {
    foundNew = false;
    for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) {
      for (Field f : referencingFields) {
        foundNew |= findReferences(i, f, bs);
      }
    }
  }
  entityIds.toIntBag(save.entities);
}
origin: junkdog/artemis-odb

private Bag<ComponentMapper> getAdditions(BitVector origin) {
  ComponentTypeFactory tf = cm.typeFactory;
  Bag<ComponentMapper> types = new Bag(ComponentMapper.class);
  for (int i = additions.nextSetBit(0); i >= 0; i = additions.nextSetBit(i + 1)) {
    if (!origin.get(i))
      types.add(cm.getMapper(tf.getTypeFor(i).getType()));
  }
  return types;
}
origin: junkdog/artemis-odb

  private Bag<ComponentMapper> getRemovals(BitVector origin) {
    ComponentTypeFactory tf = cm.typeFactory;
    Bag<ComponentMapper> types = new Bag(ComponentMapper.class);
    for (int i = removals.nextSetBit(0); i >= 0; i = removals.nextSetBit(i + 1)) {
      if (origin.get(i))
        types.add(cm.getMapper(tf.getTypeFor(i).getType()));
    }
    return types;
  }
}
origin: net.onedaybeard.artemis/artemis-odb

private Bag<ComponentMapper> getAdditions(BitVector origin) {
  ComponentTypeFactory tf = cm.typeFactory;
  Bag<ComponentMapper> types = new Bag(ComponentMapper.class);
  for (int i = additions.nextSetBit(0); i >= 0; i = additions.nextSetBit(i + 1)) {
    if (!origin.get(i))
      types.add(cm.getMapper(tf.getTypeFor(i).getType()));
  }
  return types;
}
origin: net.onedaybeard.artemis/artemis-odb

  private Bag<ComponentMapper> getRemovals(BitVector origin) {
    ComponentTypeFactory tf = cm.typeFactory;
    Bag<ComponentMapper> types = new Bag(ComponentMapper.class);
    for (int i = removals.nextSetBit(0); i >= 0; i = removals.nextSetBit(i + 1)) {
      if (origin.get(i))
        types.add(cm.getMapper(tf.getTypeFor(i).getType()));
    }
    return types;
  }
}
origin: junkdog/artemis-odb

/**
 * Decodes the set bits as pairs of <code>entity id</code> and
 * {@link World#compositionId(int) compositionId}. The
 * destination{@link IntBag} is reset before the bits are
 * transposed.
 *
 * @param out decoded ints end up here
 * @return Same as out
 */
public IntBag toIntBagIdCid(ComponentManager cm, IntBag out) {
  out.setSize(0);
  if (isEmpty())
    return out;
  for (int id = nextSetBit(0); id >= 0; id = nextSetBit(id + 1)) {
    out.add(id);
    out.add(cm.getIdentity(id));
  }
  return out;
}
origin: junkdog/artemis-odb

  int allocateIdentity(BitVector componentBits, ComponentManager cm) {
    Bag<ComponentMapper> mappers =
      new Bag<ComponentMapper>(ComponentMapper.class, componentBits.cardinality());
    ComponentTypeFactory tf = cm.getTypeFactory();
    for (int i = componentBits.nextSetBit(0); i >= 0; i = componentBits.nextSetBit(i + 1)) {
      mappers.add(cm.getMapper(tf.getTypeFor(i).getType()));
    }
    compositionMappers.add(mappers);
    compositionBits.add(new BitVector(componentBits));
    return compositionBits.size() - 1;
  }
}
origin: junkdog/artemis-odb

  int allocateIdentity(BitVector componentBits, ComponentManager cm) {
    Bag<ComponentMapper> mappers =
      new Bag<ComponentMapper>(ComponentMapper.class, componentBits.cardinality());
    ComponentTypeFactory tf = cm.getTypeFactory();
    for (int i = componentBits.nextSetBit(0); i >= 0; i = componentBits.nextSetBit(i + 1)) {
      mappers.add(cm.getMapper(tf.getTypeFor(i).getType()));
    }
    compositionMappers.add(mappers);
    compositionBits.add(new BitVector(componentBits));
    return compositionBits.size() - 1;
  }
}
origin: net.onedaybeard.artemis/artemis-odb

  int allocateIdentity(BitVector componentBits, ComponentManager cm) {
    Bag<ComponentMapper> mappers =
      new Bag<ComponentMapper>(ComponentMapper.class, componentBits.cardinality());
    ComponentTypeFactory tf = cm.getTypeFactory();
    for (int i = componentBits.nextSetBit(0); i >= 0; i = componentBits.nextSetBit(i + 1)) {
      mappers.add(cm.getMapper(tf.getTypeFor(i).getType()));
    }
    compositionMappers.add(mappers);
    compositionBits.add(new BitVector(componentBits));
    return compositionBits.size() - 1;
  }
}
com.artemis.utilsBitVectornextSetBit

Javadoc

Returns the index of the first bit that is set to true that occurs on or after the specified starting index. If no such bit exists then -1 is returned.

Popular methods of BitVector

  • get
  • clear
  • set
  • <init>
  • cardinality
  • equals
  • intersects
    Returns true if the specified BitVector has any bits set to true that are also set to true in this B
  • isEmpty
  • length
    Returns the "logical size" of this bitset: the index of the highest set bit in the bitset plus one.
  • or
    Performs a logical OR of this bit set with the bit set argument. This bit set is modified so that a
  • toIntBag
    Decodes the set bits as integers. The destination IntBag is reset before the bits are transposed.
  • unsafeGet
  • toIntBag,
  • unsafeGet,
  • andNot,
  • bitIndex,
  • bitOffset,
  • checkCapacity,
  • checkIndex,
  • checkRange,
  • clone

Popular in Java

  • Reading from database using SQL prepared statement
  • setScale (BigDecimal)
  • setRequestProperty (URLConnection)
  • scheduleAtFixedRate (ScheduledExecutorService)
  • PrintWriter (java.io)
    Wraps either an existing OutputStream or an existing Writerand provides convenience methods for prin
  • List (java.util)
    An ordered collection (also known as a sequence). The user of this interface has precise control ove
  • Queue (java.util)
    A collection designed for holding elements prior to processing. Besides basic java.util.Collection o
  • Random (java.util)
    This class provides methods that return pseudo-random values.It is dangerous to seed Random with the
  • AtomicInteger (java.util.concurrent.atomic)
    An int value that may be updated atomically. See the java.util.concurrent.atomic package specificati
  • DateTimeFormat (org.joda.time.format)
    Factory that creates instances of DateTimeFormatter from patterns and styles. Datetime formatting i
  • Top Sublime Text plugins
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now