com.badlogic.gdx.utils.Array.ensureCapacity()方法的使用及代码示例

x33g5p2x  于2022-01-15 转载在 其他  
字(7.4k)|赞(0)|评价(0)|浏览(81)

本文整理了Java中com.badlogic.gdx.utils.Array.ensureCapacity()方法的一些代码示例,展示了Array.ensureCapacity()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Array.ensureCapacity()方法的具体详情如下:
包路径:com.badlogic.gdx.utils.Array
类名称:Array
方法名:ensureCapacity

Array.ensureCapacity介绍

[英]Increases the size of the backing array to accommodate the specified number of additional items. Useful before adding many items to avoid multiple backing array resizes.
[中]增加备份阵列的大小,以容纳指定数量的附加项。在添加许多项之前非常有用,以避免多次调整阵列大小。

代码示例

代码示例来源:origin: libgdx/libgdx

/** Construct a world object.
 * @param gravity the world gravity vector.
 * @param doSleep improve performance by not simulating inactive bodies. */
public World (Vector2 gravity, boolean doSleep) {
  addr = newWorld(gravity.x, gravity.y, doSleep);
  contacts.ensureCapacity(contactAddrs.length);
  freeContacts.ensureCapacity(contactAddrs.length);
  for (int i = 0; i < contactAddrs.length; i++)
    freeContacts.add(new Contact(this, 0));
}

代码示例来源:origin: libgdx/libgdx

/** @return all bodies currently in the simulation */
public void getBodies (Array<Body> bodies) {
  bodies.clear();
  bodies.ensureCapacity(this.bodies.size);
  for (Iterator<Body> iter = this.bodies.values(); iter.hasNext();) {
    bodies.add(iter.next());
  }
}

代码示例来源:origin: libgdx/libgdx

public void add (TextureRegion... regions) {
  this.regions.ensureCapacity(regions.length);
  for (TextureRegion region : regions) {
    this.regions.add(new AspectTextureRegion(region));
  }
}

代码示例来源:origin: libgdx/libgdx

public void add (TextureRegion... regions) {
  this.regions.ensureCapacity(regions.length);
  for (TextureRegion region : regions) {
    this.regions.add(new AspectTextureRegion(region));
  }
}

代码示例来源:origin: libgdx/libgdx

/** @return all joints currently in the simulation */
public void getJoints (Array<Joint> joints) {
  joints.clear();
  joints.ensureCapacity(this.joints.size);
  for (Iterator<Joint> iter = this.joints.values(); iter.hasNext();) {
    joints.add(iter.next());
  }
}

代码示例来源:origin: libgdx/libgdx

/** @param fixtures an Array in which to place all fixtures currently in the simulation */
public void getFixtures (Array<com.badlogic.gdx.physics.box2d.Fixture> fixtures) {
  fixtures.clear();
  fixtures.ensureCapacity(this.fixtures.size);
  for (Iterator<Fixture> iter = this.fixtures.values(); iter.hasNext();) {
    fixtures.add(iter.next());
  }
}

代码示例来源:origin: libgdx/libgdx

/** @param bodies an Array in which to place all bodies currently in the simulation */
public void getBodies (Array<Body> bodies) {
  bodies.clear();
  bodies.ensureCapacity(this.bodies.size);
  for (Iterator<Body> iter = this.bodies.values(); iter.hasNext();) {
    bodies.add(iter.next());
  }        
}

代码示例来源:origin: libgdx/libgdx

/** @param fixtures an Array in which to place all fixtures currently in the simulation */
public void getFixtures (Array<Fixture> fixtures) {
  fixtures.clear();
  fixtures.ensureCapacity(this.fixtures.size);
  for (Iterator<Fixture> iter = this.fixtures.values(); iter.hasNext();) {
    fixtures.add(iter.next());
  }        
}

代码示例来源:origin: libgdx/libgdx

/** @param joints an Array in which to place all joints currently in the simulation */
public void getJoints (Array<Joint> joints) {
  joints.clear();
  joints.ensureCapacity(this.joints.size);
  for (Iterator<Joint> iter = this.joints.values(); iter.hasNext();) {
    joints.add(iter.next());
  }
}

代码示例来源:origin: libgdx/libgdx

private Array<ModelNode> parseNodes (ModelData model, JsonValue json) {
  JsonValue nodes = json.get("nodes");
  if (nodes != null) {
    model.nodes.ensureCapacity(nodes.size);
    for (JsonValue node = nodes.child; node != null; node = node.next) {
      model.nodes.add(parseNodesRecursively(node));
    }
  }
  return model.nodes;
}

代码示例来源:origin: libgdx/libgdx

public RegionInfluencer (RegionInfluencer regionInfluencer) {
  this(regionInfluencer.regions.size);
  regions.ensureCapacity(regionInfluencer.regions.size);
  for (int i = 0; i < regionInfluencer.regions.size; ++i) {
    regions.add(new AspectTextureRegion((AspectTextureRegion)regionInfluencer.regions.get(i)));
  }
}

代码示例来源:origin: libgdx/libgdx

public RegionInfluencer (RegionInfluencer regionInfluencer) {
  this(regionInfluencer.regions.size);
  regions.ensureCapacity(regionInfluencer.regions.size);
  for (int i = 0; i < regionInfluencer.regions.size; ++i) {
    regions.add(new AspectTextureRegion((AspectTextureRegion)regionInfluencer.regions.get(i)));
  }
}

代码示例来源:origin: libgdx/libgdx

private Array<ModelNode> parseNodes (ModelData model, JsonValue json) {
  JsonValue nodes = json.get("nodes");
  if (nodes != null) {
    model.nodes.ensureCapacity(nodes.size);
    for (JsonValue node = nodes.child; node != null; node = node.next) {
      model.nodes.add(parseNodesRecursively(node));
    }
  }
  return model.nodes;
}

代码示例来源:origin: libgdx/libgdx

/** Returns the list of {@link Contact} instances produced by the last call to {@link #step(float, int, int)}. Note that the
 * returned list will have O(1) access times when using indexing. contacts are created and destroyed in the middle of a time
 * step. Use {@link ContactListener} to avoid missing contacts
 * @return the contact list */
public Array<Contact> getContactList () {
  int numContacts = getContactCount();
  if (numContacts > contactAddrs.length) {
    int newSize = 2 * numContacts;
    contactAddrs = new long[newSize];
    contacts.ensureCapacity(newSize);
    freeContacts.ensureCapacity(newSize);
  }
  if (numContacts > freeContacts.size) {
    int freeConts = freeContacts.size;
    for (int i = 0; i < numContacts - freeConts; i++)
      freeContacts.add(new Contact(this, 0));
  }
  jniGetContactList(addr, contactAddrs);
  contacts.clear();
  for (int i = 0; i < numContacts; i++) {
    Contact contact = freeContacts.get(i);
    contact.addr = contactAddrs[i];
    contacts.add(contact);
  }
  return contacts;
}

代码示例来源:origin: libgdx/libgdx

glyphs.ensureCapacity(end - start);
xAdvances.ensureCapacity(end - start + 1);

代码示例来源:origin: libgdx/libgdx

glyphs.ensureCapacity(end - start);
xAdvances.ensureCapacity(end - start + 1);

代码示例来源:origin: libgdx/libgdx

public BSpline set (final T[] controlPoints, final int degree, final boolean continuous) {
  if (tmp == null) tmp = controlPoints[0].cpy();
  if (tmp2 == null) tmp2 = controlPoints[0].cpy();
  if (tmp3 == null) tmp3 = controlPoints[0].cpy();
  this.controlPoints = controlPoints;
  this.degree = degree;
  this.continuous = continuous;
  this.spanCount = continuous ? controlPoints.length : controlPoints.length - degree;
  if (knots == null)
    knots = new Array<T>(spanCount);
  else {
    knots.clear();
    knots.ensureCapacity(spanCount);
  }
  for (int i = 0; i < spanCount; i++)
    knots.add(calculate(controlPoints[0].cpy(), continuous ? i : (int)(i + 0.5f * degree), 0f, controlPoints, degree,
      continuous, tmp));
  return this;
}

代码示例来源:origin: libgdx/libgdx

public BSpline set (final T[] controlPoints, final int degree, final boolean continuous) {
  if (tmp == null) tmp = controlPoints[0].cpy();
  if (tmp2 == null) tmp2 = controlPoints[0].cpy();
  if (tmp3 == null) tmp3 = controlPoints[0].cpy();
  this.controlPoints = controlPoints;
  this.degree = degree;
  this.continuous = continuous;
  this.spanCount = continuous ? controlPoints.length : controlPoints.length - degree;
  if (knots == null)
    knots = new Array<T>(spanCount);
  else {
    knots.clear();
    knots.ensureCapacity(spanCount);
  }
  for (int i = 0; i < spanCount; i++)
    knots.add(calculate(controlPoints[0].cpy(), continuous ? i : (int)(i + 0.5f * degree), 0f, controlPoints, degree,
      continuous, tmp));
  return this;
}

代码示例来源:origin: libgdx/libgdx

nodeAnim.translation.ensureCapacity(nanim.translation.size);
for (ModelNodeKeyframe<Vector3> kf : nanim.translation) {
  if (kf.keytime > animation.duration) animation.duration = kf.keytime;
nodeAnim.rotation.ensureCapacity(nanim.rotation.size);
for (ModelNodeKeyframe<Quaternion> kf : nanim.rotation) {
  if (kf.keytime > animation.duration) animation.duration = kf.keytime;
nodeAnim.scaling.ensureCapacity(nanim.scaling.size);
for (ModelNodeKeyframe<Vector3> kf : nanim.scaling) {
  if (kf.keytime > animation.duration) animation.duration = kf.keytime;

代码示例来源:origin: libgdx/libgdx

if (meshes != null) {
  model.meshes.ensureCapacity(meshes.size);
  for (JsonValue mesh = meshes.child; mesh != null; mesh = mesh.next) {
    ModelMesh jsonMesh = new ModelMesh();

相关文章