List of usage examples for javax.media.j3d GeometryArray COORDINATES
int COORDINATES
To view the source code for javax.media.j3d GeometryArray COORDINATES.
Click Source Link
From source file:KeyNavigateTest.java
protected Group createGeometryGroup(Appearance app, Vector3d position, Vector3d scale, String szTextureFile, String szSoundFile) {//ww w .j av a 2 s.c o m int nFlags = GeometryArray.COORDINATES | GeometryArray.NORMALS; if ((m_nFlags & TEXTURE) == TEXTURE) nFlags |= GeometryArray.TEXTURE_COORDINATE_2; QuadArray quadArray = new QuadArray(4, nFlags); float[] coordArray = { -WIDTH, HEIGHT, LENGTH, WIDTH, HEIGHT, LENGTH, WIDTH, HEIGHT, -LENGTH, -WIDTH, HEIGHT, -LENGTH }; quadArray.setCoordinates(0, coordArray, 0, coordArray.length / 3); for (int n = 0; n < coordArray.length / 3; n++) quadArray.setNormal(n, new Vector3f(0, 1, 0)); if ((m_nFlags & TEXTURE) == TEXTURE) { float[] texArray = { 0, 0, 1, 0, 1, 1, 0, 1 }; quadArray.setTextureCoordinates(0, 0, texArray, 0, coordArray.length / 3); setTexture(app, szTextureFile); } BranchGroup bg = new BranchGroup(); Shape3D shape = new Shape3D(quadArray, app); bg.addChild(shape); return bg; }
From source file:PickTest.java
CubeIQA() { super(8, GeometryArray.COORDINATES | GeometryArray.COLOR_3, 24); Point3f verts[] = new Point3f[8]; Color3f colors[] = new Color3f[8]; verts[0] = new Point3f(1.0f, 1.0f, 1.0f); verts[1] = new Point3f(-1.0f, 1.0f, 1.0f); verts[2] = new Point3f(-1.0f, -1.0f, 1.0f); verts[3] = new Point3f(1.0f, -1.0f, 1.0f); verts[4] = new Point3f(1.0f, 1.0f, -1.0f); verts[5] = new Point3f(-1.0f, 1.0f, -1.0f); verts[6] = new Point3f(-1.0f, -1.0f, -1.0f); verts[7] = new Point3f(1.0f, -1.0f, -1.0f); colors[0] = new Color3f(1.0f, 0.0f, 0.0f); colors[1] = new Color3f(0.0f, 1.0f, 0.0f); colors[2] = new Color3f(0.0f, 0.0f, 1.0f); colors[3] = new Color3f(1.0f, 1.0f, 0.0f); colors[4] = new Color3f(1.0f, 0.0f, 1.0f); colors[5] = new Color3f(0.0f, 1.0f, 1.0f); colors[6] = new Color3f(0.0f, 1.0f, 1.0f); colors[7] = new Color3f(0.0f, 1.0f, 1.0f); int pntsIndex[] = new int[24]; int clrsIndex[] = new int[24]; pntsIndex[0] = 0;//from w ww . jav a 2 s . co m clrsIndex[0] = 0; pntsIndex[1] = 3; clrsIndex[1] = 0; pntsIndex[2] = 7; clrsIndex[2] = 0; pntsIndex[3] = 4; clrsIndex[3] = 0; pntsIndex[4] = 1; clrsIndex[4] = 1; pntsIndex[5] = 5; clrsIndex[5] = 1; pntsIndex[6] = 6; clrsIndex[6] = 1; pntsIndex[7] = 2; clrsIndex[7] = 1; pntsIndex[8] = 0; clrsIndex[8] = 2; pntsIndex[9] = 4; clrsIndex[9] = 2; pntsIndex[10] = 5; clrsIndex[10] = 2; pntsIndex[11] = 1; clrsIndex[11] = 2; pntsIndex[12] = 3; clrsIndex[12] = 3; pntsIndex[13] = 2; clrsIndex[13] = 3; pntsIndex[14] = 6; clrsIndex[14] = 3; pntsIndex[15] = 7; clrsIndex[15] = 3; pntsIndex[16] = 0; clrsIndex[16] = 4; pntsIndex[17] = 1; clrsIndex[17] = 4; pntsIndex[18] = 2; clrsIndex[18] = 4; pntsIndex[19] = 3; clrsIndex[19] = 4; pntsIndex[20] = 7; clrsIndex[20] = 5; pntsIndex[21] = 6; clrsIndex[21] = 5; pntsIndex[22] = 5; clrsIndex[22] = 5; pntsIndex[23] = 4; clrsIndex[23] = 5; setCoordinates(0, verts); setCoordinateIndices(0, pntsIndex); setColors(0, colors); setColorIndices(0, clrsIndex); }
From source file:GearTest.java
/** * Construct a Shaft;//from w ww . j ava 2s. com * * @return a new shaft that with the specified radius centered about the * origin an laying in the XY plane and of a specified length * extending in the Z dimension * @param radius * radius of shaft * @param length * shaft length shaft extends from -length/2 to length/2 in the Z * dimension * @param segmentCount * number of segments for the shaft face * @param look * the Appearance to associate with this shaft */ public Shaft(float radius, float length, int segmentCount, Appearance look) { // The direction of the ray from the shaft's center float xDirection, yDirection; float xShaft, yShaft; // The z coordinates for the shaft's faces (never change) float frontZ = -0.5f * length; float rearZ = 0.5f * length; int shaftFaceVertexCount; // #(vertices) per shaft face int shaftFaceTotalVertexCount; // total #(vertices) in all teeth int shaftFaceStripCount[] = new int[1]; // per shaft vertex count int shaftVertexCount; // #(vertices) for shaft int shaftStripCount[] = new int[1]; // #(vertices) in strip/strip // Front and rear facing normals for the shaft's faces Vector3f frontNormal = new Vector3f(0.0f, 0.0f, -1.0f); Vector3f rearNormal = new Vector3f(0.0f, 0.0f, 1.0f); // Outward facing normal Vector3f outNormal = new Vector3f(1.0f, 0.0f, 0.0f); // Temporary variables for storing coordinates and vectors Point3f coordinate = new Point3f(0.0f, 0.0f, 0.0f); Shape3D newShape; // The angle subtended by a single segment double segmentAngle = 2.0 * Math.PI / segmentCount; double tempAngle; // Allow this object to spin. etc. this.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); /* * for the forward facing fan: ___3___ - | - / | \ 4/\ | /\2 / \ | / \ / \ | / \ : \ | / : * |--------------- *----------------| 5 0 1 * * for backward facing fan exchange 1 with 5; 2 with 4, etc. */ // Construct the shaft's front and rear face shaftFaceVertexCount = segmentCount + 2; shaftFaceStripCount[0] = shaftFaceVertexCount; TriangleFanArray frontShaftFace = new TriangleFanArray(shaftFaceVertexCount, GeometryArray.COORDINATES | GeometryArray.NORMALS, shaftFaceStripCount); TriangleFanArray rearShaftFace = new TriangleFanArray(shaftFaceVertexCount, GeometryArray.COORDINATES | GeometryArray.NORMALS, shaftFaceStripCount); coordinate.set(0.0f, 0.0f, frontZ); frontShaftFace.setCoordinate(0, coordinate); frontShaftFace.setNormal(0, frontNormal); coordinate.set(0.0f, 0.0f, rearZ); rearShaftFace.setCoordinate(0, coordinate); rearShaftFace.setNormal(0, rearNormal); for (int index = 1; index < segmentCount + 2; index++) { tempAngle = segmentAngle * -(double) index; coordinate.set(radius * (float) Math.cos(tempAngle), radius * (float) Math.sin(tempAngle), frontZ); frontShaftFace.setCoordinate(index, coordinate); frontShaftFace.setNormal(index, frontNormal); tempAngle = -tempAngle; coordinate.set(radius * (float) Math.cos(tempAngle), radius * (float) Math.sin(tempAngle), rearZ); rearShaftFace.setCoordinate(index, coordinate); rearShaftFace.setNormal(index, rearNormal); } newShape = new Shape3D(frontShaftFace, look); this.addChild(newShape); newShape = new Shape3D(rearShaftFace, look); this.addChild(newShape); // Construct shaft's outer skin (the cylinder body) shaftVertexCount = 2 * segmentCount + 2; shaftStripCount[0] = shaftVertexCount; TriangleStripArray shaft = new TriangleStripArray(shaftVertexCount, GeometryArray.COORDINATES | GeometryArray.NORMALS, shaftStripCount); outNormal.set(1.0f, 0.0f, 0.0f); coordinate.set(radius, 0.0f, rearZ); shaft.setCoordinate(0, coordinate); shaft.setNormal(0, outNormal); coordinate.set(radius, 0.0f, frontZ); shaft.setCoordinate(1, coordinate); shaft.setNormal(1, outNormal); for (int count = 0; count < segmentCount; count++) { int index = 2 + count * 2; tempAngle = segmentAngle * (double) (count + 1); xDirection = (float) Math.cos(tempAngle); yDirection = (float) Math.sin(tempAngle); xShaft = radius * xDirection; yShaft = radius * yDirection; outNormal.set(xDirection, yDirection, 0.0f); coordinate.set(xShaft, yShaft, rearZ); shaft.setCoordinate(index, coordinate); shaft.setNormal(index, outNormal); coordinate.set(xShaft, yShaft, frontZ); shaft.setCoordinate(index + 1, coordinate); shaft.setNormal(index + 1, outNormal); } newShape = new Shape3D(shaft, look); this.addChild(newShape); }