Android Open Source - android-plotter List Group






From Project

Back to project page android-plotter.

License

The source code is released under:

Apache License

If you think the Android project android-plotter listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.solovyev.android.plotter.meshes;
//from  w  w  w.j  a va2  s  .  c om
import org.solovyev.android.plotter.MeshConfig;

import javax.annotation.Nonnull;
import javax.annotation.concurrent.ThreadSafe;
import javax.microedition.khronos.opengles.GL11;
import java.util.Collection;
import java.util.Iterator;
import java.util.concurrent.CopyOnWriteArrayList;

@ThreadSafe
public final class ListGroup<M extends Mesh> implements Group<M> {

  @Nonnull
  private final CopyOnWriteArrayList<M> list;

  private ListGroup() {
    list = new CopyOnWriteArrayList<M>();
  }

  private ListGroup(@Nonnull CopyOnWriteArrayList<M> list) {
    this.list = list;
  }

  @Nonnull
  public static <M extends Mesh> ListGroup<M> create() {
    return new ListGroup<M>();
  }

  @Nonnull
  public static <M extends Mesh> ListGroup<M> create(@Nonnull Collection<M> meshes) {
    return new ListGroup<M>(new CopyOnWriteArrayList<M>(meshes));
  }

  @Override
  public void draw(@Nonnull GL11 gl) {
    for (M mesh : list) {
      mesh.draw(gl);
    }
  }

  @Nonnull
  @Override
  public ListGroup<M> copy() {
    final CopyOnWriteArrayList<M> meshes = new CopyOnWriteArrayList<M>();
    for (M mesh : list) {
      meshes.add((M) mesh.copy());
    }
    return new ListGroup<M>(meshes);
  }

  @Nonnull
  @Override
  public State getState() {
    State state = State.INIT_GL;
    for (Mesh mesh : list) {
      final State meshState = mesh.getState();
      if (state.order > meshState.order) {
        state = meshState;
      }
    }
    return state;
  }

  @Override
  public boolean add(@Nonnull M mesh) {
    return list.add(mesh);
  }

  @Override
  public void clear() {
    list.clear();
  }

  @Override
  public boolean init() {
    boolean changed = false;
    for (M mesh : list) {
      changed |= mesh.init();
    }
    return changed;
  }

  @Override
  public boolean initGl(@Nonnull GL11 gl, @Nonnull MeshConfig config) {
    boolean changed = false;
    for (M mesh : list) {
      changed |= mesh.initGl(gl, config);
    }
    return changed;
  }

  @Override
  @Nonnull
  public M get(int location) {
    return list.get(location);
  }

  @Override
  public int size() {
    return list.size();
  }

  @Override
  @Nonnull
  public M remove(int i) {
    return list.remove(i);
  }

  @Override
  public Iterator<M> iterator() {
    return list.iterator();
  }
}




Java Source Code List

com.android.texample.GLText.java
com.android.texample.SpriteBatch.java
com.android.texample.TexampleRenderer.java
com.android.texample.TextureRegion.java
com.android.texample.Vertices.java
org.solovyev.android.plotter.Angle.java
org.solovyev.android.plotter.AxisStyle.java
org.solovyev.android.plotter.Check.java
org.solovyev.android.plotter.Color.java
org.solovyev.android.plotter.DefaultPlotter.java
org.solovyev.android.plotter.Dimensions.java
org.solovyev.android.plotter.Frustum.java
org.solovyev.android.plotter.Function0.java
org.solovyev.android.plotter.Function1.java
org.solovyev.android.plotter.Function2.java
org.solovyev.android.plotter.Function.java
org.solovyev.android.plotter.LineStyle.java
org.solovyev.android.plotter.MeshConfig.java
org.solovyev.android.plotter.MultisampleConfigChooser.java
org.solovyev.android.plotter.PinchZoomTracker.java
org.solovyev.android.plotter.PlotData.java
org.solovyev.android.plotter.PlotFunction.java
org.solovyev.android.plotter.PlotRenderer.java
org.solovyev.android.plotter.PlotView.java
org.solovyev.android.plotter.Plot.java
org.solovyev.android.plotter.Plotter.java
org.solovyev.android.plotter.PlottingView.java
org.solovyev.android.plotter.Spf.java
org.solovyev.android.plotter.SuperFunction.java
org.solovyev.android.plotter.TouchHandler.java
org.solovyev.android.plotter.ZoomLevels.java
org.solovyev.android.plotter.Zoomer.java
org.solovyev.android.plotter.app.MainActivity.java
org.solovyev.android.plotter.app.PlotterApplication.java
org.solovyev.android.plotter.meshes.Arrays.java
org.solovyev.android.plotter.meshes.AxisGrid.java
org.solovyev.android.plotter.meshes.Axis.java
org.solovyev.android.plotter.meshes.BaseCube.java
org.solovyev.android.plotter.meshes.BaseCurve.java
org.solovyev.android.plotter.meshes.BaseMesh.java
org.solovyev.android.plotter.meshes.BaseSurface.java
org.solovyev.android.plotter.meshes.DimensionsAwareSwapper.java
org.solovyev.android.plotter.meshes.DimensionsAware.java
org.solovyev.android.plotter.meshes.DoubleBufferGroup.java
org.solovyev.android.plotter.meshes.DoubleBufferMesh.java
org.solovyev.android.plotter.meshes.FunctionGraph2d.java
org.solovyev.android.plotter.meshes.FunctionGraph3d.java
org.solovyev.android.plotter.meshes.FunctionGraphSwapper.java
org.solovyev.android.plotter.meshes.FunctionGraph.java
org.solovyev.android.plotter.meshes.Graph.java
org.solovyev.android.plotter.meshes.Group.java
org.solovyev.android.plotter.meshes.IndicesOrder.java
org.solovyev.android.plotter.meshes.ListGroup.java
org.solovyev.android.plotter.meshes.ListPool.java
org.solovyev.android.plotter.meshes.Mesh.java
org.solovyev.android.plotter.meshes.Meshes.java
org.solovyev.android.plotter.meshes.Pool.java
org.solovyev.android.plotter.meshes.Scene.java
org.solovyev.android.plotter.meshes.SolidCube.java
org.solovyev.android.plotter.meshes.SurfaceInitializer.java
org.solovyev.android.plotter.meshes.WireFrameCube.java