home *** CD-ROM | disk | FTP | other *** search
/ Late Night VRML 2.0 with Java CD-ROM / code.zip / Ch12 / geometry / Sphere.java < prev    next >
Text File  |  1997-01-02  |  1KB  |  89 lines

  1. // VRML Generator
  2. // Copyright Justin Couch 1996
  3. //
  4. // Chapter 13: Late Night VRML 2.0 and Java
  5. //
  6. // Box class
  7.  
  8. package geometry;
  9.  
  10. import java.io.*;
  11. import java.awt.*;
  12. import vrml.external.*;
  13. import vrml.external.field.*;
  14. import vrml.external.exception.*;
  15. import geometry.Geometry;
  16.  
  17. public class Sphere extends Geometry
  18. {
  19.     private float _radius = 1;
  20.  
  21.     // constructor builds a default box node
  22.     public Sphere()
  23.     {
  24.         Browser b = Browser.getBrowser();
  25.  
  26.         if(b == null)
  27.             return;
  28.  
  29.         node = b.createVrmlFromString("Sphere {}")[0];
  30.     }
  31.  
  32.     public Sphere(Browser b)
  33.     {
  34.         if(b == null)
  35.             return;
  36.  
  37.         node = b.createVrmlFromString("Sphere {}")[0];
  38.     }
  39.  
  40.     public Sphere(float radius)
  41.     {
  42.         _radius = radius;
  43.  
  44.         Browser b = Browser.getBrowser();
  45.  
  46.         if(b == null)
  47.             return;
  48.  
  49.         String tmp = "Sphere { radius " + radius + " }";
  50.         node = b.createVrmlFromString(tmp)[0];
  51.     }
  52.  
  53.     public Sphere(Browser b, float radius)
  54.     {
  55.         _radius = radius;
  56.  
  57.         if(b == null)
  58.             return;
  59.  
  60.         String tmp = "Sphere { radius " + radius + " }";
  61.         node = b.createVrmlFromString(tmp)[0];
  62.     }
  63.  
  64.     public void finalize()
  65.     {
  66.         node = null;
  67.     }
  68.  
  69.     public void writeToFile(PrintStream fp, int indent)
  70.     {
  71.         int    i;
  72.         StringBuffer buffer = new StringBuffer();
  73.  
  74.         for(i = 0; i < indent; i++)
  75.             buffer.append("  ");
  76.  
  77.         fp.print(buffer.toString() + "geometry ");
  78.         if(name != null)
  79.             fp.print("DEF " + name + " ");
  80.  
  81.         fp.print("Sphere {");
  82.  
  83.         if(_radius != 1)
  84.             fp.print(" radius " + _radius + " ");
  85.  
  86.         fp.println("}");
  87.     }
  88. }
  89.