Android Open Source - min3d Faces Buffered List






From Project

Back to project page min3d.

License

The source code is released under:

MIT License

If you think the Android project min3d 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.min3d.lib.core;
/*w w w . ja  va  2  s.co  m*/
import com.min3d.lib.vos.Face;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.ShortBuffer;

public class FacesBufferedList
{
  public static final int PROPERTIES_PER_ELEMENT = 3;
  public static final int BYTES_PER_PROPERTY = 2;

  private ShortBuffer _b;
  private int _numElements;

  private int _renderSubsetStartIndex = 0;
  private int _renderSubsetLength = 1;
  private boolean _renderSubsetEnabled = false;
  
  public FacesBufferedList(ShortBuffer $b, int $size)
  {
    ByteBuffer bb = ByteBuffer.allocateDirect($b.limit() * BYTES_PER_PROPERTY); 
    bb.order(ByteOrder.nativeOrder());
    _b = bb.asShortBuffer();
    _b.put($b);
    _numElements = $size;
  }
  
  public FacesBufferedList(int $maxElements)
  {
    ByteBuffer b = ByteBuffer.allocateDirect($maxElements * PROPERTIES_PER_ELEMENT * BYTES_PER_PROPERTY); 
    b.order(ByteOrder.nativeOrder());
    _b = b.asShortBuffer();
  }
  
  /**
   * The number of items in the list. 
   */
  public int size()
  {
    return _numElements;
  }
  
  
  /**
   * The _maximum_ number of items that the list can hold, as defined on instantiation.
   * (Not to be confused with the Buffer's capacity)
   */
  public int capacity()
  {
    return _b.capacity() / PROPERTIES_PER_ELEMENT;
  }
  
  /**
   * Clear object in preparation for garbage collection
   */
  public void clear()
  {
    _b.clear();
  }

  public Face get(int $index)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT);
    return new Face( _b.get(), _b.get(), _b.get() );
  }
  
  public void putInFace(int $index, Face $face)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT);
    $face.a = (short)_b.get();
    $face.b = (short)_b.get();
    $face.c = (short)_b.get();
  }
  
  public short getPropertyA(int $index)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT);
    return (short)_b.get();
  }
  public short getPropertyB(int $index)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT + 1);
    return (short)_b.get();
  }
  public float getPropertyC(int $index)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT + 2);
    return (short)_b.get();
  }

  /**
   * Enables rendering only a subset of faces (renderSubset must be set to true) 
   * This mechanism could be expanded to render multiple 'subsets' of the list of faces...
   */
  public void renderSubsetStartIndex(int $num)
  {
    _renderSubsetStartIndex = $num;
  }
  public int renderSubsetStartIndex()
  {
    return _renderSubsetStartIndex;
  }
  public void renderSubsetLength(int $num)
  {
    _renderSubsetLength = $num;
  }
  public int renderSubsetLength()
  {
    return _renderSubsetLength;
  }
  
  /**
   * If true, Renderer will only draw the faces as defined by 
   * renderSubsetStartIndex and renderSubsetLength  
   */
  public boolean renderSubsetEnabled()
  {
    return _renderSubsetEnabled;
  }
  public void renderSubsetEnabled(boolean $b)
  {
    _renderSubsetEnabled = $b;
  }
  
  //
  
  public void add(Face $f)
  {
    set( _numElements, $f );
    _numElements++;
  }
  
  public void add(int $a, int $b, int $c) {
    add((short)$a, (short)$b, (short)$c);
  }
  
  public void add(short $a, short $b, short $c)
  {
    set(_numElements, $a, $b, $c);
    _numElements++;
  }
  
  public void set(int $index, Face $face)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT);
    _b.put($face.a);
    _b.put($face.b);
    _b.put($face.c);
  }

  public void set(int $index, short $a, short $b, short $c)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT);
    _b.put($a);
    _b.put($b);
    _b.put($c);
  }
  
  public void setPropertyA(int $index, short $a)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT);
    _b.put($a);
  }
  public void setPropertyB(int $index, short $b)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT + 1);
    _b.put($b);
  }
  public void setPropertyC(int $index, short $c)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT + 2);
    _b.put($c);
  }
  
  //
  
  public ShortBuffer buffer()
  {
    return _b;
  }
  
  public FacesBufferedList clone()
  {
    _b.position(0);
    FacesBufferedList c = new FacesBufferedList(_b, size());
    return c;
  }
}




Java Source Code List

com.min3d.ApplicationTest.java
com.min3d.ExampleAccelerometer.java
com.min3d.ExampleAnimatedTexture.java
com.min3d.ExampleAnimatingVertices.java
com.min3d.ExampleAssigningTexturesDynamically.java
com.min3d.ExampleCamera.java
com.min3d.ExampleFog.java
com.min3d.ExampleFromScratch.java
com.min3d.ExampleInsideLayout.java
com.min3d.ExampleKeyframeAnimation.java
com.min3d.ExampleLightProperties.java
com.min3d.ExampleLoad3DSFile.java
com.min3d.ExampleLoadMD2File.java
com.min3d.ExampleLoadObjFileMultiple.java
com.min3d.ExampleLoadObjFile.java
com.min3d.ExampleMipMap.java
com.min3d.ExampleMostMinimal.java
com.min3d.ExampleMultiTexture.java
com.min3d.ExampleMultipleLights.java
com.min3d.ExampleRenderType.java
com.min3d.ExampleRotatingPlanets.java
com.min3d.ExampleSubsetOfFaces.java
com.min3d.ExampleTextureOffset.java
com.min3d.ExampleTextureWrap.java
com.min3d.ExampleTextures.java
com.min3d.ExampleTransparentGlSurface.java
com.min3d.ExampleVertexColors.java
com.min3d.ExampleVerticesVariations.java
com.min3d.ScratchActivity.java
com.min3d.SplashActivity.java
com.min3d.lib.AParser.java
com.min3d.lib.ApplicationTest.java
com.min3d.lib.IParser.java
com.min3d.lib.LittleEndianDataInputStream.java
com.min3d.lib.MD2Parser.java
com.min3d.lib.Max3DSParser.java
com.min3d.lib.Min3d.java
com.min3d.lib.ObjParser.java
com.min3d.lib.ParseObjectData.java
com.min3d.lib.ParseObjectFace.java
com.min3d.lib.Parser.java
com.min3d.lib.Shared.java
com.min3d.lib.Utils.java
com.min3d.lib.animation.AnimationObject3d.java
com.min3d.lib.animation.KeyFrame.java
com.min3d.lib.core.Color4BufferList.java
com.min3d.lib.core.FacesBufferedList.java
com.min3d.lib.core.ManagedLightList.java
com.min3d.lib.core.Number3dBufferList.java
com.min3d.lib.core.Object3dContainer.java
com.min3d.lib.core.Object3d.java
com.min3d.lib.core.RenderCaps.java
com.min3d.lib.core.RendererActivity.java
com.min3d.lib.core.Renderer.java
com.min3d.lib.core.Scene.java
com.min3d.lib.core.TextureList.java
com.min3d.lib.core.TextureManager.java
com.min3d.lib.core.UvBufferList.java
com.min3d.lib.core.Vertices.java
com.min3d.lib.interfaces.IDirtyManaged.java
com.min3d.lib.interfaces.IDirtyParent.java
com.min3d.lib.interfaces.IObject3dContainer.java
com.min3d.lib.interfaces.ISceneController.java
com.min3d.lib.objectPrimitives.Box.java
com.min3d.lib.objectPrimitives.HollowCylinder.java
com.min3d.lib.objectPrimitives.Rectangle.java
com.min3d.lib.objectPrimitives.SkyBox.java
com.min3d.lib.objectPrimitives.Sphere.java
com.min3d.lib.objectPrimitives.Torus.java
com.min3d.lib.vos.AbstractDirtyManaged.java
com.min3d.lib.vos.BooleanManaged.java
com.min3d.lib.vos.CameraVo.java
com.min3d.lib.vos.Color4Managed.java
com.min3d.lib.vos.Color4.java
com.min3d.lib.vos.Face.java
com.min3d.lib.vos.FloatManaged.java
com.min3d.lib.vos.FogType.java
com.min3d.lib.vos.FrustumManaged.java
com.min3d.lib.vos.LightType.java
com.min3d.lib.vos.Light.java
com.min3d.lib.vos.Number3dManaged.java
com.min3d.lib.vos.Number3d.java
com.min3d.lib.vos.RenderType.java
com.min3d.lib.vos.ShadeModelManaged.java
com.min3d.lib.vos.ShadeModel.java
com.min3d.lib.vos.TexEnvxVo.java
com.min3d.lib.vos.TextureVo.java
com.min3d.lib.vos.Uv.java
com.min3d.lib.vos.Vertex3d.java