Android Open Source - min3d Vertices






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;
/*from w  w  w.  j  a v  a  2  s .  c  o  m*/
import com.min3d.lib.vos.Color4;
import com.min3d.lib.vos.Number3d;
import com.min3d.lib.vos.Uv;

public class Vertices
{
  private Number3dBufferList _points;
  private UvBufferList _uvs;
  private Number3dBufferList _normals;
  private Color4BufferList _colors;
  
  private boolean _hasUvs;
  private boolean _hasNormals;
  private boolean _hasColors;
  
  
  /**
   * Used by Object3d to hold the lists of vertex points, texture coordinates (UV), normals, and vertex colors. 
   * Use "addVertex()" to build the vertex data for the Object3d instance associated with this instance. 
   * 
   * Direct manipulation of position, UV, normal, or color data can be done directly through the associated 
   * 'buffer list' instances contained herein.
   */
  public Vertices(int $maxElements)
  {
    _points = new Number3dBufferList($maxElements);
    
    _hasUvs = true;
    _hasNormals = true;
    _hasColors = true;
    
    if (_hasUvs) _uvs = new UvBufferList($maxElements);
    if (_hasNormals) _normals = new Number3dBufferList($maxElements);
    if (_hasColors) _colors = new Color4BufferList($maxElements);
  }

  /**
   * This version of the constructor adds 3 boolean arguments determine whether 
   * uv, normal, and color lists will be used by this instance.
   * Set to false when appropriate to save memory, increase performance. 
   */
  public Vertices(int $maxElements, Boolean $useUvs, Boolean $useNormals, Boolean $useColors)
  {
    _points = new Number3dBufferList($maxElements);
    
    _hasUvs = $useUvs;
    _hasNormals = $useNormals;
    _hasColors = $useColors;
    
    if (_hasUvs) _uvs = new UvBufferList($maxElements);
    if (_hasNormals) _normals = new Number3dBufferList($maxElements);
    if (_hasColors) _colors = new Color4BufferList($maxElements);
  }
  
  public Vertices(Number3dBufferList $points, UvBufferList $uvs, Number3dBufferList $normals,
      Color4BufferList $colors)
  {
    _points = $points;
    _uvs = $uvs;
    _normals = $normals;
    _colors = $colors;
    
    _hasUvs = _uvs != null && _uvs.size() > 0;
    _hasNormals = _normals != null && _normals.size() > 0;
    _hasColors = _colors != null && _colors.size() > 0;
  }
  
  public int size()
  {
    return _points.size();
  }
  
  public int capacity()
  {
    return _points.capacity();
  }
  
  public boolean hasUvs()
  {
    return _hasUvs;
  }

  public boolean hasNormals()
  {
    return _hasNormals;
  }
  
  public boolean hasColors()
  {
    return _hasColors;
  }
  
  
  /**
   * Use this to populate an Object3d's vertex data.
   * Return's newly added vertex's index 
   * 
   *    If hasUvs, hasNormals, or hasColors was set to false, 
   *     their corresponding arguments are just ignored.
   */
  public short addVertex(
    float $pointX, float $pointY, float $pointZ,  
    float $textureU, float $textureV,  
    float $normalX, float $normalY, float $normalZ,  
    short $colorR, short $colorG, short $colorB, short $colorA)
  {
    _points.add($pointX, $pointY, $pointZ);
    
    if (_hasUvs) _uvs.add($textureU, $textureV);
    if (_hasNormals) _normals.add($normalX, $normalY, $normalZ);
    if (_hasColors) _colors.add($colorR, $colorG, $colorB, $colorA);
    
    return (short)(_points.size()-1);
  }
  
  /**
   * More structured-looking way of adding a vertex (but potentially wasteful).
   * The VO's taken in as arguments are only used to read the values they hold
   * (no references are kept to them).  
   * Return's newly added vertex's index 
   * 
   *     If hasUvs, hasNormals, or hasColors was set to false, 
   *     their corresponding arguments are just ignored.
   */
  public short addVertex(Number3d $point, Uv $textureUv, Number3d $normal, Color4 $color)
  {
    _points.add($point);
    
    if (_hasUvs) _uvs.add($textureUv);
    if (_hasNormals) _normals.add($normal);
    if (_hasColors) _colors.add($color);
    
    return (short)(_points.size()-1);
  }
  
  public void overwriteVerts(float[] $newVerts)
  {
    _points.overwrite($newVerts);
  }
  
  public void overwriteNormals(float[] $newNormals)
  {
    _normals.overwrite($newNormals);
  }
  
  Number3dBufferList points() /*package-private*/
  {
    return _points;
  }
  
  /**
   * List of texture coordinates
   */
  UvBufferList uvs() /*package-private*/
  {
    return _uvs;
  }
  
  /**
   * List of normal values 
   */
  Number3dBufferList normals() /*package-private*/
  {
    return _normals;
  }
  
  /**
   * List of color values
   */
  Color4BufferList colors() /*package-private*/
  {
    return _colors;
  }
  
  public Vertices clone()
  {
    Vertices v = new Vertices(_points.clone(), _uvs.clone(), _normals.clone(), _colors.clone());
    return v;
  }
}




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