package jhpro.engine3d.models;

import jhpro.engine3d.FacetedObject;

public class Torus {

   public static FacetedObject create(int s_tor, int s_cyl)
    {
	   

	   int max_f = s_cyl * s_tor;
       int rot = 360 / s_cyl;
       int v[][] = new int[max_f][3];
       double dir[] = new double[2];
       for(int i = 0; i < s_tor; i++)
       {
           double tor_dir = ((double)i / (double)s_tor) * 2D * 3.1415926535897931D;
           dir[0] = Math.cos(tor_dir);
           dir[1] = Math.sin(tor_dir);
           for(int j = 0; j < s_cyl; j++)
           {
               int k = s_cyl * i + j;
               int theta_deg = j * rot;
               double theta = (double)theta_deg * 0.017453292519943295D;
               v[k][0] = (int)Math.round(40D * Math.cos(theta) * dir[0] + dir[0] * 80D);
               v[k][1] = (int)Math.round(40D * Math.cos(theta) * dir[1] + dir[1] * 80D);
               v[k][2] = (int)Math.round(40D * Math.sin(theta));
           }

       }

       int vi[][] = new int[max_f][4];
       for(int i = 0; i < s_tor; i++)
       {
           for(int j = 0; j < s_cyl; j++)
           {
               int k = s_cyl * i + j;
               int b = s_cyl * i;
               vi[k][0] = k;
               vi[k][1] = b + (j + 1) % s_cyl;
               vi[k][2] = (b + (j + 1) % s_cyl + s_cyl) % max_f;
               vi[k][3] = (k + s_cyl) % max_f;
           }

       }

       FacetedObject fo = new FacetedObject(v, vi);
       return fo;
	   
	   
    }



}

 

Ads help maintain this website.