Android Open Source - min3d Box






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.objectPrimitives;
/*w ww.j a v a  2  s  .  co  m*/

import com.min3d.lib.Utils;
import com.min3d.lib.core.Object3dContainer;
import com.min3d.lib.vos.Color4;

/**
 * Note how each 'face' (quad) of the box uses its own set of 4 vertices each, 
 * rather than sharing with adjacent faces.  This allows for each face to be 
 * texture mapped, normal'ed, and colored independently of the others. 
 * 
 * Object origin is center of box. 
 */
public class Box extends Object3dContainer
{
  private Color4[] _cols;
  private float _width;
  private float _height;
  private float _depth;
  

  public Box(float $width, float $height, float $depth, Color4[] $sixColor4s, Boolean $useUvs, Boolean $useNormals, Boolean $useVertexColors)
  {
    super(4*6, 2*6, $useUvs,$useNormals,$useVertexColors);
    
    _width = $width;
    _height = $height;
    _depth = $depth;
    
    if ($sixColor4s != null)
    {
      _cols = $sixColor4s;
    }
    else
    {
      _cols = new Color4[6];
      _cols[0] = new Color4(255,0,0,255);
      _cols[1] = new Color4(0,255,0,255);
      _cols[2] = new Color4(0,0,255,255);
      _cols[3] = new Color4(255,255,0,255);
      _cols[4] = new Color4(0,255,255,255);
      _cols[5] = new Color4(255,0,255,255);
    }
    
    make();
  }
  
  public Box(float $width, float $height, float $depth, Color4[] $sixColor4s)
  {
    this($width,$height,$depth, $sixColor4s, true,true,true);
  }
  
  public Box(float $width, float $height, float $depth, Color4 color)
  {
    this($width,$height,$depth, new Color4[] { color, color, color, color, color, color }, true,true,true);
  }

  public Box(float $width, float $height, float $depth)
  {
    this($width,$height,$depth, null,  true,true,true);
  }

  private void make()
  {
    float w = _width / 2f;
    float h = _height / 2f;
    float d = _depth / 2f;

    short ul, ur, lr, ll;
    
    // front
    ul = this.vertices().addVertex(-w,+h,+d,  0f,0f,  0,0,1,  _cols[0].r,_cols[0].g,_cols[0].b,_cols[0].a);
    ur = this.vertices().addVertex(+w,+h,+d,  1f,0f,  0,0,1,  _cols[0].r,_cols[0].g,_cols[0].b,_cols[0].a);
    lr = this.vertices().addVertex(+w,-h,+d,  1f,1f,  0,0,1,  _cols[0].r,_cols[0].g,_cols[0].b,_cols[0].a);
    ll = this.vertices().addVertex(-w,-h,+d,  0f,1f,  0,0,1,  _cols[0].r,_cols[0].g,_cols[0].b,_cols[0].a);
    Utils.addQuad(this, ul, ur, lr, ll);
    
    // right
    ul = this.vertices().addVertex(+w,+h,+d,  0f,0f,  1,0,0,  _cols[1].r,_cols[1].g,_cols[1].b,_cols[1].a);
    ur = this.vertices().addVertex(+w,+h,-d,  1f,0f,  1,0,0,  _cols[1].r,_cols[1].g,_cols[1].b,_cols[1].a);
    lr = this.vertices().addVertex(+w,-h,-d,  1f,1f,  1,0,0,  _cols[1].r,_cols[1].g,_cols[1].b,_cols[1].a);
    ll = this.vertices().addVertex(+w,-h,+d,  0f,1f,  1,0,0,  _cols[1].r,_cols[1].g,_cols[1].b,_cols[1].a);
    Utils.addQuad(this, ul,ur,lr,ll);

    // back
    ul = this.vertices().addVertex(+w,+h,-d,  0f,0f,  0,0,-1,  _cols[2].r,_cols[2].g,_cols[2].b,_cols[2].a);
    ur = this.vertices().addVertex(-w,+h,-d,  1f,0f,  0,0,-1,  _cols[2].r,_cols[2].g,_cols[2].b,_cols[2].a);
    lr = this.vertices().addVertex(-w,-h,-d,  1f,1f,  0,0,-1,  _cols[2].r,_cols[2].g,_cols[2].b,_cols[2].a);
    ll = this.vertices().addVertex(+w,-h,-d,  0f,1f,  0,0,-1,  _cols[2].r,_cols[2].g,_cols[2].b,_cols[2].a);
    Utils.addQuad(this, ul,ur,lr,ll);
  
    // left
    ul = this.vertices().addVertex(-w,+h,-d,  0f,0f,  -1,0,0,  _cols[3].r,_cols[3].g,_cols[3].b,_cols[3].a);
    ur = this.vertices().addVertex(-w,+h,+d,  1f,0f,  -1,0,0,  _cols[3].r,_cols[3].g,_cols[3].b,_cols[3].a);
    lr = this.vertices().addVertex(-w,-h,+d,  1f,1f,  -1,0,0,  _cols[3].r,_cols[3].g,_cols[3].b,_cols[3].a);
    ll = this.vertices().addVertex(-w,-h,-d,  0f,1f,  -1,0,0,  _cols[3].r,_cols[3].g,_cols[3].b,_cols[3].a);
    Utils.addQuad(this, ul,ur,lr,ll);
    
    // top
    ul = this.vertices().addVertex(-w,+h,-d,  0f,0f,  0,1,0,  _cols[4].r,_cols[4].g,_cols[4].b,_cols[4].a);
    ur = this.vertices().addVertex(+w,+h,-d,  1f,0f,  0,1,0,  _cols[4].r,_cols[4].g,_cols[4].b,_cols[4].a);
    lr = this.vertices().addVertex(+w,+h,+d,  1f,1f,  0,1,0,  _cols[4].r,_cols[4].g,_cols[4].b,_cols[4].a);
    ll = this.vertices().addVertex(-w,+h,+d,  0f,1f,  0,1,0,  _cols[4].r,_cols[4].g,_cols[4].b,_cols[4].a);
    Utils.addQuad(this, ul,ur,lr,ll);

    // bottom
    ul = this.vertices().addVertex(-w,-h,+d,  0f,0f,  0,-1,0,  _cols[5].r,_cols[5].g,_cols[5].b,_cols[5].a);
    ur = this.vertices().addVertex(+w,-h,+d,  1f,0f,  0,-1,0,  _cols[5].r,_cols[5].g,_cols[5].b,_cols[5].a);
    lr = this.vertices().addVertex(+w,-h,-d,  1f,1f,  0,-1,0,  _cols[5].r,_cols[5].g,_cols[5].b,_cols[5].a);
    ll = this.vertices().addVertex(-w,-h,-d,  0f,1f,  0,-1,0,  _cols[5].r,_cols[5].g,_cols[5].b,_cols[5].a);
    Utils.addQuad(this, ul,ur,lr,ll);
  }
}




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