Android Open Source - android_opengles Planet






From Project

Back to project page android_opengles.

License

The source code is released under:

MIT License

If you think the Android project android_opengles 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 com.example.opengles;
//from w  w  w .j a  va 2  s .  com
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;

import javax.microedition.khronos.opengles.GL10;

public class Planet {
  FloatBuffer mVertexData;
  FloatBuffer mNormalData;
  FloatBuffer mColorData;

  float mScale;
  float mSquash;
  float mRadius;

  int mStacks;
  int mSlices;

  public Planet(int stacks, int slices, float radius, float squash) {
    this.mStacks = stacks;
    this.mSlices = slices + 1;
    this.mRadius = radius;
    this.mSquash = squash;
    init();
  }

  private void init() {
    float[] vertexData;
    float[] colorData;
    float colorIncrement = 1.0f / (float) mStacks;

    float blue = 0f;
    float red = 1.0f;
    int numVertices = 0;
    int vIndex = 0;
    int cIndex = 0;

    mScale = mRadius;

    vertexData = new float[3 * mSlices * 2 * mStacks];
    colorData = new float[4 * mSlices * 2 * mStacks];

    for (int i = 0; i < mStacks; i++) {
      float phi0 = (float) Math.PI * ((float) (i + 0) * (1.0f / (float) mStacks) - 0.5f);
      float phi1 = (float) Math.PI * ((float) (i + 1) * (1.0f / (float) mStacks) - 0.5f);
      float cosPhi0 = (float) Math.cos(phi0);
      float sinPhi0 = (float) Math.sin(phi0);
      float cosPhi1 = (float) Math.cos(phi1);
      float sinPhi1 = (float) Math.sin(phi1);
      for (int j = 0; j < mSlices; j++) {
        float theta = -2.0f * (float) Math.PI * (float) j * (1.0f / (float) (mSlices - 1));
        float costheta = (float) Math.cos(theta);
        float sintheta = (float) Math.sin(theta);
        vertexData[vIndex + 0] = mScale * cosPhi0 * costheta;
        vertexData[vIndex + 1] = mScale * sinPhi0 * mSquash;
        vertexData[vIndex + 2] = mScale * cosPhi0 * sintheta;

        vertexData[vIndex + 3] = mScale * cosPhi1 * costheta;
        vertexData[vIndex + 4] = mScale * sinPhi1 * mSquash;
        vertexData[vIndex + 5] = mScale * cosPhi1 * sintheta;

        colorData[cIndex + 0] = red;
        colorData[cIndex + 1] = 0f;
        colorData[cIndex + 2] = blue;
        colorData[cIndex + 3] = 1f;

        colorData[cIndex + 4] = red;
        colorData[cIndex + 5] = 0f;
        colorData[cIndex + 6] = blue;
        colorData[cIndex + 7] = 1f;

        vIndex += 6;
        cIndex += 8;
      }
      blue += colorIncrement;
      red -= colorIncrement;
    }
    mVertexData = makeFloatBuffer(vertexData);
    mColorData = makeFloatBuffer(colorData);
  }

  public void draw(GL10 gl) {
    gl.glFrontFace(GL10.GL_CW);

    gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mVertexData);
    gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);

    gl.glColorPointer(4, GL10.GL_FLOAT, 0, mColorData);
    gl.glEnableClientState(GL10.GL_COLOR_ARRAY);

    gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, mSlices * 2 * mStacks);
  }

  private FloatBuffer makeFloatBuffer(float[] data) {
    ByteBuffer bb = ByteBuffer.allocateDirect(data.length * 4);
    bb.order(ByteOrder.nativeOrder());
    FloatBuffer fb = bb.asFloatBuffer();
    fb.put(data);
    fb.position(0);
    return fb;
  }

}




Java Source Code List

com.example.android.wifidirect.DeviceDetailFragment.java
com.example.android.wifidirect.DeviceListFragment.java
com.example.android.wifidirect.FileTransferService.java
com.example.android.wifidirect.WiFiDirectActivity.java
com.example.android.wifidirect.WiFiDirectBroadcastReceiver.java
com.example.android.wifidirect.discovery.ChatManager.java
com.example.android.wifidirect.discovery.ClientSocketHandler.java
com.example.android.wifidirect.discovery.GroupOwnerSocketHandler.java
com.example.android.wifidirect.discovery.WiFiChatFragment.java
com.example.android.wifidirect.discovery.WiFiDirectBroadcastReceiver.java
com.example.android.wifidirect.discovery.WiFiDirectServicesList.java
com.example.android.wifidirect.discovery.WiFiP2pService.java
com.example.android.wifidirect.discovery.WiFiServiceDiscoveryActivity.java
com.example.opengles.CubeRenderer.java
com.example.opengles.Cube.java
com.example.opengles.MainActivity.java
com.example.opengles.Planet.java
com.example.opengles.SolarSystemRenderer.java
com.example.opengles.SquareRenderer.java
com.example.opengles.Square.java
com.nfg.sdk.NFGameServer.java
com.nfg.sdk.NFGame.java
com.nfg.wifidirect3p.ChatActivity.java
com.nfg.wifidirect3p.WifiDirect3PActivity.java
fi.iki.elonen.HelloServer.java
fi.iki.elonen.HelloServer.java
fi.iki.elonen.IWebSocketFactory.java
fi.iki.elonen.InternalRewrite.java
fi.iki.elonen.InternalRewrite.java
fi.iki.elonen.NanoHTTPD.java
fi.iki.elonen.NanoHTTPD.java
fi.iki.elonen.NanoWebSocketServer.java
fi.iki.elonen.ServerRunner.java
fi.iki.elonen.ServerRunner.java
fi.iki.elonen.SimpleWebServer.java
fi.iki.elonen.SimpleWebServer.java
fi.iki.elonen.TempFilesServer.java
fi.iki.elonen.TempFilesServer.java
fi.iki.elonen.WebServerPluginInfo.java
fi.iki.elonen.WebServerPluginInfo.java
fi.iki.elonen.WebServerPlugin.java
fi.iki.elonen.WebServerPlugin.java
fi.iki.elonen.WebSocketException.java
fi.iki.elonen.WebSocketFrame.java
fi.iki.elonen.WebSocketResponseHandler.java
fi.iki.elonen.WebSocket.java
fi.iki.elonen.debug.DebugServer.java
fi.iki.elonen.debug.DebugServer.java
fi.iki.elonen.samples.echo.DebugWebSocketServer.java
fi.iki.elonen.samples.echo.DebugWebSocket.java
fi.iki.elonen.samples.echo.EchoSocketSample.java
org.java_websocket.AbstractWrappedByteChannel.java
org.java_websocket.SSLSocketChannel2.java
org.java_websocket.SocketChannelIOHelper.java
org.java_websocket.WebSocketAdapter.java
org.java_websocket.WebSocketFactory.java
org.java_websocket.WebSocketImpl.java
org.java_websocket.WebSocketListener.java
org.java_websocket.WebSocket.java
org.java_websocket.WrappedByteChannel.java
org.java_websocket.client.AbstractClientProxyChannel.java
org.java_websocket.client.WebSocketClient.java
org.java_websocket.drafts.Draft_10.java
org.java_websocket.drafts.Draft_17.java
org.java_websocket.drafts.Draft_75.java
org.java_websocket.drafts.Draft_76.java
org.java_websocket.drafts.Draft.java
org.java_websocket.exceptions.IncompleteHandshakeException.java
org.java_websocket.exceptions.InvalidDataException.java
org.java_websocket.exceptions.InvalidFrameException.java
org.java_websocket.exceptions.InvalidHandshakeException.java
org.java_websocket.exceptions.LimitExedeedException.java
org.java_websocket.exceptions.NotSendableException.java
org.java_websocket.exceptions.WebsocketNotConnectedException.java
org.java_websocket.framing.CloseFrameBuilder.java
org.java_websocket.framing.CloseFrame.java
org.java_websocket.framing.FrameBuilder.java
org.java_websocket.framing.FramedataImpl1.java
org.java_websocket.framing.Framedata.java
org.java_websocket.handshake.ClientHandshakeBuilder.java
org.java_websocket.handshake.ClientHandshake.java
org.java_websocket.handshake.HandshakeBuilder.java
org.java_websocket.handshake.HandshakeImpl1Client.java
org.java_websocket.handshake.HandshakeImpl1Server.java
org.java_websocket.handshake.HandshakedataImpl1.java
org.java_websocket.handshake.Handshakedata.java
org.java_websocket.handshake.ServerHandshakeBuilder.java
org.java_websocket.handshake.ServerHandshake.java
org.java_websocket.server.DefaultSSLWebSocketServerFactory.java
org.java_websocket.server.DefaultWebSocketServerFactory.java
org.java_websocket.server.WebSocketServer.java
org.java_websocket.util.Base64.java
org.java_websocket.util.Charsetfunctions.java