I have a the following class which make a polyhedron
-----------------------------------------
import com.sun.j3d.utils.geometry.*;
 import javax.media.j3d.*;
 import java.awt.*;
 import javax.vecmath.*;
 import javax.media.j3d.GeometryArray;
 import java.applet.Applet;
 import com.sun.j3d.utils.geometry.GeometryInfo;
 
 
 public class Polyhedron extends Applet
 {
  
  public Polyhedron()
 
 { Point3f[] pts=new Point3f[20];
 
 pts[0]= new Point3f(  0.0f,    0.0f,  1.1547f);
 pts[1]= new Point3f(  1.0f,  0.0f,  0.57735f);
 pts[2]= new Point3f( 0.333333f,  0.942809f,         0.57735f);
 pts[3]= new Point3f( -1.0f, 0.0f,  0.57735f);
 pts[4]= new Point3f(  -0.333333f,   -0.942809f,  0.57735f);
 pts[5]= new Point3f(  1.0f,   0.0f,  -0.57735f);
 pts[6]= new Point3f(  0.666667f,  -0.942809f, 0.0f);
 pts[7]= new Point3f( -0.666667f,  0.942809f,  0.0f);
 pts[8]= new Point3f( 0.333333f,   0.942809f, -0.57735f);
 pts[9]= new Point3f( -1.0f,    0.0f,          -0.57735f);
 pts[10]= new Point3f( -0.333333f,  -0.942809f, -0.57735f);
 pts[11]= new Point3f( 0.0f, 0.0f,    -1.1547f);
 
 
 // the faces
  int[] indices={2, 1, 0,
                 0, 3, 4,
                 1, 6, 5,
                 2,8,7,
                 3,7,9,
                 4,10,6,
                 5,11,8,
                 9,11,10,
                 0,2,7,3,
                 0,4,6,1,
                 1,5,8,2,
                 3,9,10,4,
                 5,6,10,11,
                 7,8,11,9
                
                 };
 
 // the number of vertices of each face
 int[] stripCounts={3,3,3,3,3,3,3,3,4,4,4,4,4,4};
 
 
  // I like Geometry Info. It's easier to create shapes ;-)
  GeometryInfo gi = new GeometryInfo(GeometryInfo.POLYGON_ARRAY);
 // initialize the geometry info here
 
  gi.setCoordinateIndices(indices);
  gi.setCoordinates(pts);
  gi.setStripCounts(stripCounts);
  gi.recomputeIndices();
 

  NormalGenerator ng = new NormalGenerator();
  ng.generateNormals(gi);
  gi.recomputeIndices();
  // stripify
  Stripifier st = new Stripifier();
  st.stripify(gi);
  gi.recomputeIndices();
 
  GeometryArray myPolyhedron = gi.getGeometryArray();
 
  Shape3D shape = new Shape3D();
 
  shape.setGeometry(myPolyhedron);
 
  Appearance app = new Appearance();
  Material mat = new Material();
  PolygonAttributes polyAtt= new
PolygonAttributes(PolygonAttributes.POLYGON_FILL,PolygonAttributes.CULL_BACK
, 0.0f);
 
  app.setMaterial(mat);
  app.setPolygonAttributes(polyAtt);
 
  shape.setAppearance(app);
 
  TransformGroup tg=new TransformGroup();
  tg.addChild(shape);
}
 
}//end class
 
-----------------------------------------
 
I also have another class that calls the previous one as below
 
-------------------------------------------
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.BranchGroup;
import com.sun.j3d.utils.applet.MainFrame;
import javax.media.j3d.*;
import java.awt.*;
import java.awt.BorderLayout;
import com.sun.j3d.utils.applet.MainFrame;
 
public class CallClass extends  java.applet.Applet{
 
 
 public CallClass () {
  
  
 SimpleUniverse universe = new SimpleUniverse();
  
   GraphicsConfiguration config = universe.getPreferredConfiguration();
 
 
  Canvas3D c = new Canvas3D(config);  
    
 Polyhedron polyhedron=new Polyhedron();
 
   BranchGroup group = new BranchGroup();
  
    group.addChild(polyhedron);
   
   universe.getViewingPlatform().setNominalViewingTransform();
 
   universe.addBranchGraph(group);  
  
  
 }
 
 public static void main(String[] args) {
  
  
 new CallClass();
  
  
  
 }
}//end class CallClass
-------------------------------------------
 
 
The problem is that when i am compiling the second class i recieve the following error
 
D:\java\Java3d Project\tests\Hard tests\CallClass.java:26: addChild(javax.media.j3d.Node) in javax.media.j3d.Group cannot be applied to (Polyhedron)
    group.addChild(polyhedron);
         ^
1 error
 
 
What is wrong?
 
 

Reply via email to