Android Open Source - android-plotter Base Surface






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;
// ww w.  java2  s .  c o  m
import org.solovyev.android.plotter.Dimensions;
import org.solovyev.android.plotter.MeshConfig;

import javax.annotation.Nonnull;
import javax.microedition.khronos.opengles.GL10;
import javax.microedition.khronos.opengles.GL11;

/*
 0     1     2     3     4     5
  +----->---->v----->---->v-----+
  |?????^?????|?????^?????|?????^
  |?????|?????|?????|?????|?????|
11v???10|??? 9v??? 8|??? 7v??? 6|
  +------------------------------
  |?????^?????|?????^?????|?????^
  |?????|?????|?????|?????|?????|
12v???13|???14v?? 15|???16v???17|
  +------------------------------
  |?????^?????|?????^?????|?????^
  |?????|?????|?????|?????|?????|
23v???22|???21v???20|???19v???18|
  +------------------------------
  |?????^?????|?????^?????|?????^
  |?????|?????|?????|?????|?????|
24v???25|???26v???27|???28v???29|
  +---->^----->---->^----->---->^
 */
public abstract class BaseSurface extends BaseMesh implements DimensionsAware {

  @Nonnull
  protected volatile Dimensions dimensions;

  @Nonnull
  private final Arrays arrays = new Arrays();

  @Nonnull
  public Dimensions getDimensions() {
    return dimensions;
  }

  protected BaseSurface(@Nonnull Dimensions dimensions) {
    this.dimensions = dimensions;
  }

  public void setDimensions(@Nonnull Dimensions dimensions) {
    // todo serso: might be called on GL thread, requires synchronization
    if (!this.dimensions.equals(dimensions)) {
      this.dimensions = dimensions;
      setDirty();
    }
  }

  @Override
  public void onInit() {
    super.onInit();

    if (!dimensions.isEmpty()) {
      createInitializer().init(arrays);
      arrays.createBuffers();
    } else {
      setDirty();
    }
  }

  @Nonnull
  protected abstract SurfaceInitializer createInitializer();

  @Override
  public void onInitGl(@Nonnull GL11 gl, @Nonnull MeshConfig config) {
    super.onInitGl(gl, config);

    setVertices(arrays.getVerticesBuffer());
    setIndices(arrays.getIndicesBuffer(), IndicesOrder.LINE_STRIP);
  }

  @Override
  protected void onPostDraw(@Nonnull GL11 gl) {
    super.onPostDraw(gl);
    gl.glDrawArrays(GL10.GL_LINE_STRIP, 0, arrays.vertices.length / 3);
  }

  protected abstract float z(float x, float y, int xi, int yi);
}




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