Problems with CULL_NONE in Java3D
0 posts in topic
Flat View  Flat View
TOPIC ACTIONS:
 

Posted By:   Fredrik_Andersson
Posted On:   Wednesday, August 15, 2001 04:06 AM

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:








WIDTH = "600" HEIGHT = "400" codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0">




















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
About | Sitemap | Contact