/* * House.java 1.0 98/11/25 * * Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved. * * Sun grants you ("Licensee") a non-exclusive, royalty free, license to use, * modify and redistribute this software in source and binary code form, * provided that i) this copyright notice and license appear on all copies of * the software; and ii) Licensee does not utilize the software in a manner * which is disparaging to Sun. * * This software is provided "AS IS," without a warranty of any kind. ALL * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. * * This software is not designed or intended for use in on-line control of * aircraft, air traffic, aircraft navigation or aircraft communications; or in * the design, construction, operation or maintenance of any nuclear * facility. Licensee represents and warrants that it will not use or * redistribute the Software for such purposes. */ /* * Getting Started with the Java 3D API * written in Java 3D * * This program demonstrates: * 1. writing a visual object class * In this program, House class defines a visual object * This particular class extends Shape3D * See the text for a discussion. * 2. Using LineArray to draw 3D lines. */ import javax.media.j3d.*; import javax.vecmath.*; import com.sun.j3d.utils.geometry.Cone; public class House extends Shape3D{ //////////////////////////////////////////// // // create axis visual object // public House() { this.setGeometry(createGeometry()); } private Geometry createGeometry(){ // create line for X axis IndexedLineArray houseLines = new IndexedLineArray(10, GeometryArray.COORDINATES, 32); // Group 1 houseLines.setCoordinate( 0, new Point3f(-0.7f, 0.7f, 0.0f)); houseLines.setCoordinate( 1, new Point3f(-0.7f, 0.7f,-0.7f)); houseLines.setCoordinate( 2, new Point3f( 0.7f, 0.7f,-0.7f)); houseLines.setCoordinate( 3, new Point3f( 0.7f, 0.7f, 0.0f)); // Group 2 houseLines.setCoordinate( 4, new Point3f(-0.7f,-0.7f, 0.0f)); houseLines.setCoordinate( 5, new Point3f( 0.7f,-0.7f, 0.0f)); houseLines.setCoordinate( 6, new Point3f( 0.7f,-0.7f,-0.7f)); houseLines.setCoordinate( 7, new Point3f(-0.7f,-0.7f,-0.7f)); // Group 3 houseLines.setCoordinate( 8, new Point3f( 0.0f, 1.0f, -0.35f)); // Group 1 houseLines.setCoordinateIndex( 0, 0); houseLines.setCoordinateIndex( 1, 1); houseLines.setCoordinateIndex( 2, 2); houseLines.setCoordinateIndex( 3, 3); houseLines.setCoordinateIndex( 4, 0); houseLines.setCoordinateIndex( 5, 3); houseLines.setCoordinateIndex( 6, 2); houseLines.setCoordinateIndex( 7, 1); // Group 1 <-> Group 2 houseLines.setCoordinateIndex( 8, 0); houseLines.setCoordinateIndex( 9, 4); houseLines.setCoordinateIndex(10, 2); houseLines.setCoordinateIndex(11, 6); houseLines.setCoordinateIndex(12, 3); houseLines.setCoordinateIndex(13, 5); houseLines.setCoordinateIndex(14, 1); houseLines.setCoordinateIndex(15, 7); // Group 2 houseLines.setCoordinateIndex(16, 5); houseLines.setCoordinateIndex(17, 6); houseLines.setCoordinateIndex(18, 6); houseLines.setCoordinateIndex(19, 7); houseLines.setCoordinateIndex(20, 7); houseLines.setCoordinateIndex(21, 4); houseLines.setCoordinateIndex(22, 4); houseLines.setCoordinateIndex(23, 5); // Group 1 <-> Group 3 houseLines.setCoordinateIndex(24, 0); houseLines.setCoordinateIndex(25, 8); houseLines.setCoordinateIndex(26, 1); houseLines.setCoordinateIndex(27, 8); houseLines.setCoordinateIndex(28, 2); houseLines.setCoordinateIndex(29, 8); houseLines.setCoordinateIndex(30, 3); houseLines.setCoordinateIndex(31, 8); return houseLines; } // end of House createGeometry() } // end of class House