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;
/ / w w w . j a v a 2 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