Android Open Source - min3d Sphere






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;
//from   w  ww  .ja va2s .c  o  m

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

/**
 * Creates a sphere.
 * Vertex colors are assigned randomly across the 'latitudes' of the sphere,
 */
public class Sphere extends Object3dContainer
{
  private float _radius;
  private int _cols;
  private int _rows;
  
  
  public Sphere(float $radius, int $columns, int $rows, Boolean $useUvs, Boolean $useNormals, Boolean $useVertexColors)
  {
    super(
      ($columns+1) * ($rows+1),
      $columns * $rows * 2,
      $useUvs,
      $useNormals,
      $useVertexColors
    );

    _cols = $columns;
    _rows = $rows;
    _radius = $radius;

    build();
  }

  public Sphere(float $radius, int $columns, int $rows)
  {
    super(
        ($columns+1) * ($rows+1),
        $columns * $rows * 2,
        true,
        true,
        true
      );

      _cols = $columns;
      _rows = $rows;
      _radius = $radius;
      
      build();
  } 
  
  public Sphere(float $radius, int $columns, int $rows, Color4 color)
  {
    super(
        ($columns+1) * ($rows+1),
        $columns * $rows * 2,
        true,
        true,
        true
    );
    defaultColor(color);
    _cols = $columns;
    _rows = $rows;
    _radius = $radius;
    
    build();
  }
  
  private void build()
  {
    int r, c;
    
    Number3d n = new Number3d();
    Number3d pos = new Number3d();
    Number3d posFull = new Number3d();

    if( defaultColor() == null ) defaultColor(new Color4());
    // Build vertices
        
    for (r = 0; r <= _rows; r++)
    {
      float v = (float)r / (float)_rows; // [0,1]
      float theta1 = v * (float)Math.PI; // [0,PI]

      n.setAll(0,1,0);
      n.rotateZ(theta1); 

      // each 'row' assigned random color. for the hell of it.
      
      for (c = 0; c <= _cols; c++)
      {
        float u = (float)c / (float)_cols; // [0,1]
        float theta2 = u * (float)(Math.PI * 2f); // [0,2PI]
        pos.setAllFrom(n);
        pos.rotateY(theta2);
        
        posFull.setAllFrom(pos);
        posFull.multiply(_radius);
        
        
        this.vertices().addVertex(posFull.x,posFull.y,posFull.z,  u,v,  pos.x,pos.y,pos.z,  defaultColor().r,defaultColor().g,defaultColor().b,defaultColor().a);
      }
    }


    // Add faces

    int colLength = _cols + 1;
    
    for (r = 0; r < _rows; r++)
    {
      int offset = r * colLength; 
      
      for (c = 0; c < _cols; c++)
      {
        int ul = offset  +  c;
        int ur = offset  +  c+1;
        int br = offset  +  (int)(c + 1 + colLength);
        int bl = offset  +  (int)(c + 0 + colLength);
        
        Utils.addQuad(this, ul, ur, br, bl);
      }
    }
  }
}




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