Android Open Source - Schooner-3D Better Data Input Stream






From Project

Back to project page Schooner-3D.

License

The source code is released under:

Apache License

If you think the Android project Schooner-3D 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

/*
 * Copyright 2012 Dan Mercer/*from  w w  w.j a v  a2 s  . c  om*/
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.supermercerbros.gameengine.util;

import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;


/**
 * Subclass of {@link DataInputStream} that adds array-reading functions.
 */
public class BetterDataInputStream extends DataInputStream {

  public BetterDataInputStream(final InputStream in) {
    super(in);
  }
  
  public float readFloatDebug() throws IOException {
    final float f = readFloat();
//    System.out.println(String.format("#float  : %.4f", f));
    return f;
  }
  
  public byte readByteDebug() throws IOException {
    final byte b = readByte();
//    System.out.println("#byte   : " + b);
    return b;
  }
  
  /**
   * Reads at most <code>length</code> shorts from this stream and stores them
   * in the <code>short</code> array <code>out</code> starting at
   * <code>offset</code>. 
   * 
   * @param out
   * @param offset
   * @param length
   * @throws IOException
   */
  public void readShortArray(short[] out, int offset, int length)
      throws IOException {
    for (int i = 0; i < length; i++){
      out[offset+i] = super.readShort();
    }
  }

  public void readFloatArray(float[] out, int offset, int length) 
    throws IOException {
    for (int i = 0; i < length; i++) {
      out[offset + i] = super.readFloat();
    }
//    int floatsRead = 0;
//    int yetToBeRead;
//    while (floatsRead < length){
//      yetToBeRead = length - floatsRead;
//      final int bytesToRead = (yetToBeRead * 4 < array.length) ? yetToBeRead * 4 : array.length;
//      final int bytesRead = super.read(array, 0, bytesToRead);
//      final int floats = bytesRead / 4;
//      for (int i = 0; i < floats; i++) {
//        out[offset + floatsRead + i] = Float.intBitsToFloat(
//            (array[i*4] << 24) |
//            ((array[i*4+1] & 0xff) << 16) |
//            ((array[i*4+2] & 0xff) << 8 |
//                (array[i*4+3] & 0xff)));
//      }
//    }
    return;
  }
  
  public void readByteArray(final byte[] out, final int offset, final int length) throws IOException{
    for (int i = 0; i < length; i++) {
      out[offset + i] = super.readByte();
    }
  }
  
  /**
   * Reads a UTF-8 string whose end has been marked with NUL (0x00)
   * @return The string read
   * @throws IOException
   */
  public String readString() throws IOException{
    StringBuilder builder = new StringBuilder();
    while (true) {
      byte next = super.readByte();
      if (next == 0x00) { // If next char is NUL, the String's end has been reached.
        break;
      } else {
        builder.append((char) next);
      }
    }
    final String string = builder.toString();
//    System.out.println("#string : " + string);
    return string;
  }
  
  @Override
  public void close() throws IOException{
    super.close();
  }
  
  public boolean hasNext() throws IOException {
    return super.available() > 0;
  }
}




Java Source Code List

com.supermercerbros.gameengine.GameActivity.java
com.supermercerbros.gameengine.GameView.java
com.supermercerbros.gameengine.Schooner3D.java
com.supermercerbros.gameengine.TestActivity.java
com.supermercerbros.gameengine.TestMaterials.java
com.supermercerbros.gameengine.TestObjects.java
com.supermercerbros.gameengine.animation.AnimationData.java
com.supermercerbros.gameengine.animation.Keyframe.java
com.supermercerbros.gameengine.animation.MeshAnimation.java
com.supermercerbros.gameengine.armature.ActionData.java
com.supermercerbros.gameengine.armature.Action.java
com.supermercerbros.gameengine.armature.BinarySkeletalVertexModifier.java
com.supermercerbros.gameengine.armature.Bone.java
com.supermercerbros.gameengine.armature.SkeletalVertexModifier.java
com.supermercerbros.gameengine.armature.Skeleton.java
com.supermercerbros.gameengine.collision.Bounds.java
com.supermercerbros.gameengine.collision.Collider.java
com.supermercerbros.gameengine.collision.CollisionDetector.java
com.supermercerbros.gameengine.collision.Collision.java
com.supermercerbros.gameengine.collision.DebugListener.java
com.supermercerbros.gameengine.collision.Edge.java
com.supermercerbros.gameengine.collision.Face.java
com.supermercerbros.gameengine.collision.Feature.java
com.supermercerbros.gameengine.collision.Intersection.java
com.supermercerbros.gameengine.collision.Line.java
com.supermercerbros.gameengine.collision.LocalDistMinimum.java
com.supermercerbros.gameengine.collision.Matrix.java
com.supermercerbros.gameengine.collision.OnCollisionCheckFinishedListener.java
com.supermercerbros.gameengine.collision.Plane.java
com.supermercerbros.gameengine.collision.Point.java
com.supermercerbros.gameengine.collision.Polyhedron.java
com.supermercerbros.gameengine.collision.SphereBounds.java
com.supermercerbros.gameengine.collision.Vector.java
com.supermercerbros.gameengine.collision.Vertex.java
com.supermercerbros.gameengine.debug.JankCatcher.java
com.supermercerbros.gameengine.debug.LoopLog.java
com.supermercerbros.gameengine.engine.Camera.java
com.supermercerbros.gameengine.engine.DataPipe.java
com.supermercerbros.gameengine.engine.EGLContextLostHandler.java
com.supermercerbros.gameengine.engine.Engine.java
com.supermercerbros.gameengine.engine.GameRenderer.java
com.supermercerbros.gameengine.engine.Light.java
com.supermercerbros.gameengine.engine.Normals.java
com.supermercerbros.gameengine.engine.RenderData.java
com.supermercerbros.gameengine.engine.Scene.java
com.supermercerbros.gameengine.engine.Time.java
com.supermercerbros.gameengine.engine.shaders.Material.java
com.supermercerbros.gameengine.engine.shaders.Program.java
com.supermercerbros.gameengine.engine.shaders.ShaderLib.java
com.supermercerbros.gameengine.engine.shaders.Shader.java
com.supermercerbros.gameengine.engine.shaders.VertexModifier.java
com.supermercerbros.gameengine.handlers.OnAnimationCompleteDispatcher.java
com.supermercerbros.gameengine.handlers.OnAnimationCompleteListener.java
com.supermercerbros.gameengine.hud.CoordsConverter.java
com.supermercerbros.gameengine.hud.GameHud.java
com.supermercerbros.gameengine.hud.HudElement.java
com.supermercerbros.gameengine.material.CelShadedMaterial.java
com.supermercerbros.gameengine.material.TexturedMaterial.java
com.supermercerbros.gameengine.math.BezierCurve.java
com.supermercerbros.gameengine.math.Curve.java
com.supermercerbros.gameengine.math.MatrixUtils.java
com.supermercerbros.gameengine.math.Quaternion.java
com.supermercerbros.gameengine.motion.CurveMovement.java
com.supermercerbros.gameengine.motion.MovementData.java
com.supermercerbros.gameengine.motion.Movement.java
com.supermercerbros.gameengine.objects.AnimatedMeshObject.java
com.supermercerbros.gameengine.objects.BasicMaterial.java
com.supermercerbros.gameengine.objects.BonedObject.java
com.supermercerbros.gameengine.objects.GameObject.java
com.supermercerbros.gameengine.objects.Metadata.java
com.supermercerbros.gameengine.parsers.ConstantCurve.java
com.supermercerbros.gameengine.parsers.GameFactory.java
com.supermercerbros.gameengine.parsers.PreBoneData.java
com.supermercerbros.gameengine.parsers.PreObjectData.java
com.supermercerbros.gameengine.parsers.Sch3D.java
com.supermercerbros.gameengine.render.Compositor.java
com.supermercerbros.gameengine.shaders.ProgramSource.java
com.supermercerbros.gameengine.texture.BitmapTexture.java
com.supermercerbros.gameengine.texture.ETC1CompressedTexture.java
com.supermercerbros.gameengine.texture.Texture.java
com.supermercerbros.gameengine.util.BetterDataInputStream.java
com.supermercerbros.gameengine.util.DelayedRunnable.java
com.supermercerbros.gameengine.util.GLES2.java
com.supermercerbros.gameengine.util.IPO.java
com.supermercerbros.gameengine.util.LoopingThread.java
com.supermercerbros.gameengine.util.Toggle.java
com.supermercerbros.gameengine.util.Utils.java