Hello! I'm trying to get the "PolygonAttributes.CULL_NONE" to work in an 3D applet. But I can't get it right I ad here 1a full class wich extends Shape3D wich in my opinion use "PolygonAttributes.CULL_NONE" wich also in my opinion shuld be solid. I also add the html-file to run it and an applet. When you have started the applet, start navigate with ARROW_DOWN-key. Then You will see the Shape3d The shape3d-class import java.applet.*; import java.awt.*; import java.awt.Frame; import java.awt.event.*; import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.universe.*; import co
More>>
Hello!
I'm trying to get the "PolygonAttributes.CULL_NONE" to work in an 3D applet. But I can't get it right
I ad here 1a full class wich extends Shape3D wich in my opinion use "PolygonAttributes.CULL_NONE" wich also in my opinion shuld be solid.
I also add the html-file to run it and an applet.
When you have started the applet, start navigate with ARROW_DOWN-key. Then You will see the Shape3d
The shape3d-class
import java.applet.*;
import java.awt.*;
import java.awt.Frame;
import java.awt.event.*;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import java.awt.event.*;
import java.util.Enumeration;
public class Test3dBrick extends Shape3D
{
public Test3dBrick()
{
createAppearance();
addGeometry(getContour());
addGeometry(getBody());
}
public void createAppearance()
{
Appearance appearance = new Appearance();
PolygonAttributes polygonAttributes = new PolygonAttributes();
polygonAttributes.setCullFace(PolygonAttributes.CULL_NONE);
polygonAttributes.setPolygonMode(PolygonAttributes.POLYGON_FILL);
polygonAttributes.setBackFaceNormalFlip(true);
appearance.setPolygonAttributes(polygonAttributes);
setAppearance(appearance);
}
public Geometry getContour()
{
Color3f darkgray = new Color3f(0.2f, 0.2f, 0.2f);
IndexedLineArray indexedLineArray = new IndexedLineArray(8, GeometryArray.COORDINATES | GeometryArray.COLOR_3 , 24);
indexedLineArray.setCoordinate(0, new Point3f( -0.201f, -0.001f, -0.201f ));
indexedLineArray.setCoordinate(1, new Point3f( -0.201f, -0.001f, 0.201f ));
indexedLineArray.setCoordinate(2, new Point3f( 0.201f, -0.001f, 0.201f ));
indexedLineArray.setCoordinate(3, new Point3f( 0.201f, -0.001f, -0.201f ));
indexedLineArray.setCoordinate(4, new Point3f( -0.201f, 0.201f, -0.201f ));
indexedLineArray.setCoordinate(5, new Point3f( -0.201f, 0.201f, 0.201f ));
indexedLineArray.setCoordinate(6, new Point3f( 0.201f, 0.201f, 0.201f ));
indexedLineArray.setCoordinate(7, new Point3f( 0.201f, 0.201f, -0.201f ));
indexedLineArray.setCoordinateIndex( 0, 0);
indexedLineArray.setCoordinateIndex( 1, 1);
indexedLineArray.setCoordinateIndex( 2, 1);
indexedLineArray.setCoordinateIndex( 3, 2);
indexedLineArray.setCoordinateIndex( 4, 2);
indexedLineArray.setCoordinateIndex( 5, 3);
indexedLineArray.setCoordinateIndex( 6, 3);
indexedLineArray.setCoordinateIndex( 7, 0);
indexedLineArray.setCoordinateIndex( 10, 4);
indexedLineArray.setCoordinateIndex( 11, 5);
indexedLineArray.setCoordinateIndex( 12, 5);
indexedLineArray.setCoordinateIndex( 13, 6);
indexedLineArray.setCoordinateIndex( 14, 6);
indexedLineArray.setCoordinateIndex( 15, 7);
indexedLineArray.setCoordinateIndex( 16, 7);
indexedLineArray.setCoordinateIndex( 17, 4);
indexedLineArray.setCoordinateIndex( 8, 0);
indexedLineArray.setCoordinateIndex( 9, 4);
indexedLineArray.setCoordinateIndex( 18, 1);
indexedLineArray.setCoordinateIndex( 19, 5);
indexedLineArray.setCoordinateIndex( 20, 2);
indexedLineArray.setCoordinateIndex( 21, 6);
indexedLineArray.setCoordinateIndex( 22, 3);
indexedLineArray.setCoordinateIndex( 23, 7);
indexedLineArray.setColor(0, darkgray);
return indexedLineArray;
}
public Geometry getBody()
{
Color3f lightgray = new Color3f(0.8f, 0.8f, 0.8f);
IndexedQuadArray indexedQuadArray = new IndexedQuadArray(8, GeometryArray.COORDINATES | GeometryArray.COLOR_3 , 24);
indexedQuadArray.setCoordinate(0, new Point3f( -0.2f, 0.0f, -0.2f ));
indexedQuadArray.setCoordinate(1, new Point3f( -0.2f, 0.0f, 0.2f ));
indexedQuadArray.setCoordinate(2, new Point3f( 0.2f, 0.0f, 0.2f ));
indexedQuadArray.setCoordinate(3, new Point3f( 0.2f, 0.0f, -0.2f ));
indexedQuadArray.setCoordinate(4, new Point3f( -0.2f, 0.2f, -0.2f ));
indexedQuadArray.setCoordinate(5, new Point3f( -0.2f, 0.2f, 0.2f ));
indexedQuadArray.setCoordinate(6, new Point3f( 0.2f, 0.2f, 0.2f ));
indexedQuadArray.setCoordinate(7, new Point3f( 0.2f, 0.2f, -0.2f ));
indexedQuadArray.setCoordinateIndex( 0, 0);
indexedQuadArray.setCoordinateIndex( 1, 1);
indexedQuadArray.setCoordinateIndex( 2, 2);
indexedQuadArray.setCoordinateIndex( 3, 3);
indexedQuadArray.setCoordinateIndex( 4, 4);
indexedQuadArray.setCoordinateIndex( 5, 5);
indexedQuadArray.setCoordinateIndex( 6, 6);
indexedQuadArray.setCoordinateIndex( 7, 7);
indexedQuadArray.setCoordinateIndex( 8, 0);
indexedQuadArray.setCoordinateIndex( 9, 4);
indexedQuadArray.setCoordinateIndex( 10, 5);
indexedQuadArray.setCoordinateIndex( 11, 1);
indexedQuadArray.setCoordinateIndex( 12, 1);
indexedQuadArray.setCoordinateIndex( 13, 5);
indexedQuadArray.setCoordinateIndex( 14, 6);
indexedQuadArray.setCoordinateIndex( 15, 7);
indexedQuadArray.setCoordinateIndex( 16, 2);
indexedQuadArray.setCoordinateIndex( 17, 6);
indexedQuadArray.setCoordinateIndex( 18, 7);
indexedQuadArray.setCoordinateIndex( 19, 3);
indexedQuadArray.setCoordinateIndex( 20, 0);
indexedQuadArray.setCoordinateIndex( 21, 4);
indexedQuadArray.setCoordinateIndex( 22, 7);
indexedQuadArray.setCoordinateIndex( 23, 3);
indexedQuadArray.setColor(0, lightgray);
return indexedQuadArray;
}
}
The html-file:
The applet
import java.applet.*;
import java.awt.*;
import java.awt.Frame;
import java.awt.event.*;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.behaviors.keyboard.*;
public class Shape3DTesterApplet extends Applet
{
public void init()
{
setLayout(new BorderLayout());
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas3D = new Canvas3D(config);
add("Center", canvas3D);
SimpleUniverse simpleUniverse = new SimpleUniverse(canvas3D);
BranchGroup branchGroup = new BranchGroup();
branchGroup.addChild(addShape3D());
TransformGroup transformGroup1 = simpleUniverse.getViewingPlatform().getViewPlatformTransform();
KeyNavigatorBehavior keyNavigatorBehavior = new KeyNavigatorBehavior(transformGroup1);
keyNavigatorBehavior.setSchedulingBounds(new BoundingSphere(new Point3d(-3.0f, -3.0f, -3.0f),10000.0));
branchGroup.addChild(keyNavigatorBehavior);
simpleUniverse.addBranchGraph(branchGroup);
}
public Shape3D addShape3D()
{
Test3dBrick test3dBrick = new Test3dBrick();
return test3dBrick;
}
}
Best regards
Fredrik
<<Less