void drawsp(SceneHandle scene) {
  int i;
  apitexture p1;  
  apivector ct1, n1;

  for (i=0; i<NUMSP; i++) {
    sp[i].voidtex = rt_texture(scene, &sp[i].tex);
    rt_sphere(scene, sp[i].voidtex, sp[i].ctr, sp[i].rad);   
  }

  p1.col.r=1.0;
  p1.col.g=1.0;
  p1.col.b=1.0;
  p1.ambient=0.1;
  p1.diffuse=0.5;
  p1.specular=0.4;
  p1.opacity=1.0;
 
  ct1.x=0.0;
  ct1.y=-1.10;
  ct1.z=0.0;

  n1.x=0.0;
  n1.y=1.0;
  n1.z=0.0;
 
  rt_plane(scene, rt_texture(scene, &p1), ct1, n1);  
}
int NFFGetSphere(FILE *dfile, SceneHandle scene) {
  apiflt rad;
  apivector ctr;
  float a;  

  NFFGetVector(dfile, &ctr);
  fscanf(dfile, "%f", &a);
  rad = a;

  rt_sphere(scene, curtexture, ctr, rad);

  return NFFNOERR;
}
Ejemplo n.º 3
0
void rt_polycylinder(void * tex, vector * points, int numpts, apiflt rad) {
  vector a;
  int i;

  if ((points == NULL) || (numpts == 0)) {
    return;
  }

  if (numpts > 0) {
    rt_sphere(tex, points[0], rad);
    
    if (numpts > 1) {
      for (i=1; i<numpts; i++) {
        a.x = points[i].x - points[i-1].x;
        a.y = points[i].y - points[i-1].y;
        a.z = points[i].z - points[i-1].z;
        
        rt_fcylinder(tex, points[i-1], a, rad);
        rt_sphere(tex, points[i], rad);
      }
    }
  }
}
static errcode GetSphere(parsehandle * ph, SceneHandle scene) {
  apiflt rad;
  apivector ctr;
  void * tex;
  float a;
  errcode rc;
 
  rc = GetString(ph, "CENTER");
  rc |= GetVector(ph, &ctr); 
  rc |= GetString(ph, "RAD");
  fscanf(ph->ifp, "%f", &a); 
  rad=a;

  rc |= GetTexture(ph, scene, &tex); 
 
  rt_sphere(scene, tex, ctr, rad);

  return rc;
}
Ejemplo n.º 5
0
static errcode GetSphere(FILE * dfile) {
  apiflt rad;
  vector ctr;
  void * tex;
  float a;
  errcode rc;
 
  rc = GetString(dfile,"CENTER");
  rc |= GetVector(dfile, &ctr); 
  rc |= GetString(dfile, "RAD");
  fscanf(dfile,"%f",&a); 
  rad=a;

  rc |= GetTexture(dfile, &tex); 
 
  rt_sphere(tex, ctr, rad);

  return rc;
}