diff options
author | kcr <kcr@28c7f869-5b4e-e670-f602-82bfaf57f300> | 2006-02-08 22:48:24 +0000 |
---|---|---|
committer | kcr <kcr@28c7f869-5b4e-e670-f602-82bfaf57f300> | 2006-02-08 22:48:24 +0000 |
commit | 80fd150d309bd13424be73392a4bde2c742a185f (patch) | |
tree | 21a60a7075bd93cf9fc7f12276becb7d2dd46c07 | |
parent | 1f9cc0db52f9a8e5ccb839930bff07145b2cf745 (diff) |
Merged changes between 1.4.0-beta3 and 1.4.0-beta4 into dev-1_5
367 files changed, 81 insertions, 88573 deletions
@@ -46,68 +46,85 @@ */ --> -<project default="compile"> - -<target name="compile"> - <property name="build.target" value="compile"/> - <antcall target="subdirs"/> -</target> - -<target name="all"> - <property name="build.target" value="all"/> - <antcall target="subdirs"/> -</target> - -<target name="clean"> - <property name="build.target" value="clean"/> - <antcall target="subdirs"/> -</target> - -<target name="subdirs"> - <ant dir="src/AlternateAppearance" target="${build.target}"/> - <ant dir="src/Appearance" target="${build.target}"/> - <ant dir="src/AppearanceMixed" target="${build.target}"/> - <ant dir="src/Applet3D" target="${build.target}"/> - <ant dir="src/Background" target="${build.target}"/> - <ant dir="src/CgShaderTest" target="${build.target}"/> - <ant dir="src/ConfiguredUniverse" target="${build.target}"/> - <ant dir="src/ConicWorld" target="${build.target}"/> - <ant dir="src/DepthFuncTest" target="${build.target}"/> - <ant dir="src/DistortGlyph" target="${build.target}"/> - <ant dir="src/FPSCounter" target="${build.target}"/> - <ant dir="src/FourByFour" target="${build.target}"/> - <ant dir="src/GearTest" target="${build.target}"/> - <ant dir="src/GeometryByReference" target="${build.target}"/> - <ant dir="src/GeometryCompression" target="${build.target}"/> - <ant dir="src/GLSLShaderTest" target="${build.target}"/> - <ant dir="src/HelloUniverse" target="${build.target}"/> - <ant dir="src/LOD" target="${build.target}"/> - <ant dir="src/Lightwave" target="${build.target}"/> - <ant dir="src/ModelClip" target="${build.target}"/> - <ant dir="src/Morphing" target="${build.target}"/> - <ant dir="src/ObjLoad" target="${build.target}"/> - <ant dir="src/OffScreenCanvas3D" target="${build.target}"/> - <ant dir="src/OrientedShape3D" target="${build.target}"/> - <ant dir="src/PackageInfo" target="${build.target}"/> - <ant dir="src/PickTest" target="${build.target}"/> - <ant dir="src/PickText3D" target="${build.target}"/> - <ant dir="src/PlatformGeometry" target="${build.target}"/> - <ant dir="src/PrintCanvas3D" target="${build.target}"/> - <ant dir="src/PureImmediate" target="${build.target}"/> - <ant dir="src/ReadRaster" target="${build.target}"/> - <ant dir="src/SgChangerListener" target="${build.target}"/> - <ant dir="src/Sound" target="${build.target}"/> - <ant dir="src/SphereMotion" target="${build.target}"/> - <ant dir="src/SplineAnim" target="${build.target}"/> - <ant dir="src/SwingInteraction" target="${build.target}"/> - <ant dir="src/Text2D" target="${build.target}"/> - <ant dir="src/Text3D" target="${build.target}"/> - <ant dir="src/TextureByReference" target="${build.target}"/> - <ant dir="src/TextureTest" target="${build.target}"/> - <ant dir="src/TickTockCollision" target="${build.target}"/> - <ant dir="src/TickTockPicking" target="${build.target}"/> - <ant dir="src/Timer" target="${build.target}"/> - <ant dir="src/VirtualInputDevice" target="${build.target}"/> -</target> +<project name="j3d-examples-1.4.0" default="jar"> + + <target name="init"> + <!-- Set global properties for this build --> + <property name="src" location="src"/> + <property name="build" location="build"/> + <property name="dist" location="dist"/> + <property name="output.jar" location="dist/j3d-examples.jar"/> + </target> + + <target name="compile" depends="init"> + <!-- Create the build directory --> + <mkdir dir="${build}/classes"/> + + <!-- Compile the java code from ${src}/classes into ${build}/classes --> + <javac srcdir="${src}/classes" + destdir="${build}/classes" + source="1.4" + target="1.4" + debug="true" + deprecation="off"> + </javac> + </target> + + <target name="jar" depends="init,compile"> + <!-- Create the dist directory --> + <mkdir dir="${dist}"/> + + <!-- Create the jar file --> + <jar jarfile="${output.jar}" + manifest="manifest.mf" + update="no" + compress="false"> + <fileset dir="${build}/classes" includes="org/**/*"/> + </jar> + </target> + + <target name="all" depends="init,jar"> + </target> + + <target name="clean" depends="init"> + <delete dir="${build}"/> + <delete dir="${dist}"/> + </target> + + <target name="init-run" depends="init,jar"> + <path id="run.classpath"> + <pathelement location="${output.jar}"/> + </path> + </target> + + <target name="run" depends="run.HelloUniverse"> + </target> + + <!-- + ************************************************** + * Individual run targets for each example program + ************************************************** + --> + + <target name="run.HelloUniverse" depends="init-run"> + <java classpath="${run.classpath}" + fork="true" + classname="org.jdesktop.j3d.examples.hello_universe.HelloUniverse"> + </java> + </target> + + <target name="run.QueryProperties" depends="init-run"> + <java classpath="${run.classpath}" + fork="true" + classname="org.jdesktop.j3d.examples.package_info.QueryProperties"> + </java> + </target> + + <target name="run.SphereMotion" depends="init-run"> + <java classpath="${run.classpath}" + fork="true" + classname="org.jdesktop.j3d.examples.sphere_motion.SphereMotion"> + </java> + </target> </project> diff --git a/src/AlternateAppearance/AlternateAppearanceBoundsTest.html b/src/AlternateAppearance/AlternateAppearanceBoundsTest.html deleted file mode 100644 index 1de548b..0000000 --- a/src/AlternateAppearance/AlternateAppearanceBoundsTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>AlternateAppearanceBoundsTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="AlternateAppearanceBoundsTest.class" width=800 height=800> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/AlternateAppearance/AlternateAppearanceBoundsTest.java b/src/AlternateAppearance/AlternateAppearanceBoundsTest.java deleted file mode 100644 index b080f97..0000000 --- a/src/AlternateAppearance/AlternateAppearanceBoundsTest.java +++ /dev/null @@ -1,308 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.*; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.border.*; -import com.sun.j3d.utils.behaviors.mouse.*; - -public class AlternateAppearanceBoundsTest extends JApplet -implements ActionListener { - - - Material mat1, altMat; - Appearance app, otherApp; - JComboBox altAppMaterialColor; - JComboBox appMaterialColor; - JCheckBox useBoundingLeaf; - JCheckBox override; - JComboBox boundsType; - private Group content1 = null; - AlternateAppearance altApp; - Shape3D[] shapes1; - boolean boundingLeafOn = false; - // Globally used colors - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - Color3f red = new Color3f(1.0f, 0.0f, 0.0f); - Color3f green = new Color3f(0.0f, 1.0f, 0.0f); - Color3f blue = new Color3f(0.0f, 0.0f, 1.0f); - Color3f[] colors = {white, red, green, blue}; - - private Bounds worldBounds = new BoundingSphere( - new Point3d( 0.0, 0.0, 0.0 ), // Center - 1000.0 ); // Extent - private Bounds smallBounds = new BoundingSphere( - new Point3d( 0.0, 0.0, 0.0 ), // Center - 0.25 ); // Extent - private Bounds tinyBounds = new BoundingSphere( - new Point3d( 0.0, 0.0, 0.0 ), // Center - 0.05 ); // Extent - private BoundingLeaf leafBounds = null; - private int currentBounds = 2; - - private Bounds[] allBounds = {tinyBounds, smallBounds, worldBounds}; - - DirectionalLight light1 = null; - - // Get the current bounding leaf position - private int currentPosition = 0; - // Point3f pos = (Point3f)positions[currentPosition].value; - - private SimpleUniverse u = null; - - public AlternateAppearanceBoundsTest() { - } - - public void init() { - Container contentPane = getContentPane(); - - Canvas3D c = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); - contentPane.add("Center", c); - - BranchGroup scene = createSceneGraph(); - // SimpleUniverse is a Convenience Utility class - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - u.addBranchGraph(scene); - - - // Create GUI - JPanel p = new JPanel(); - BoxLayout boxlayout = new BoxLayout(p, - BoxLayout.Y_AXIS); - p.add(createBoundsPanel()); - p.add(createMaterialPanel()); - p.setLayout(boxlayout); - - contentPane.add("South", p); - } - - public void destroy() { - u.cleanup(); - } - - BranchGroup createSceneGraph() { - BranchGroup objRoot = new BranchGroup(); - - // Create an alternate appearance - otherApp = new Appearance(); - altMat = new Material(); - altMat.setCapability(Material.ALLOW_COMPONENT_WRITE); - altMat.setDiffuseColor( new Color3f( 0.0f, 1.0f, 0.0f ) ); - otherApp.setMaterial(altMat); - - altApp = new AlternateAppearance(); - altApp.setAppearance(otherApp); - altApp.setCapability(AlternateAppearance.ALLOW_BOUNDS_WRITE); - altApp.setCapability(AlternateAppearance.ALLOW_INFLUENCING_BOUNDS_WRITE); - altApp.setInfluencingBounds( worldBounds ); - objRoot.addChild(altApp); - - // Build foreground geometry - Appearance app1 = new Appearance(); - mat1 = new Material(); - mat1.setCapability(Material.ALLOW_COMPONENT_WRITE); - mat1.setDiffuseColor( new Color3f( 1.0f, 0.0f, 0.0f ) ); - app1.setMaterial(mat1); - content1 = new SphereGroup( - 0.05f, // radius of spheres - 0.15f, // x spacing - 0.15f, // y spacing - 5, // number of spheres in X - 5, // number of spheres in Y - app1, // appearance - true); // alt app override = true - objRoot.addChild( content1 ); - shapes1 = ((SphereGroup)content1).getShapes(); - - - - // Add lights - light1 = new DirectionalLight( ); - light1.setEnable( true ); - light1.setColor( new Color3f(0.2f, 0.2f, 0.2f) ); - light1.setDirection( new Vector3f( 1.0f, 0.0f, -1.0f ) ); - light1.setInfluencingBounds( worldBounds ); - light1.setCapability( - DirectionalLight.ALLOW_INFLUENCING_BOUNDS_WRITE ); - light1.setCapability( - DirectionalLight.ALLOW_BOUNDS_WRITE ); - objRoot.addChild( light1 ); - - // Add an ambient light to dimly illuminate the rest of - // the shapes in the scene to help illustrate that the - // directional lights are being scoped... otherwise it looks - // like we're just removing shapes from the scene - AmbientLight ambient = new AmbientLight( ); - ambient.setEnable( true ); - ambient.setColor( new Color3f(1.0f, 1.0f, 1.0f) ); - ambient.setInfluencingBounds( worldBounds ); - objRoot.addChild( ambient ); - - - // Define a bounding leaf - leafBounds = new BoundingLeaf( allBounds[currentBounds] ); - leafBounds.setCapability( BoundingLeaf.ALLOW_REGION_WRITE ); - objRoot.addChild( leafBounds ); - if (boundingLeafOn) { - altApp.setInfluencingBoundingLeaf(leafBounds); - } - else { - altApp.setInfluencingBounds(allBounds[currentBounds]); - } - - - - return objRoot; - } - JPanel createBoundsPanel() { - JPanel panel = new JPanel(); - panel.setBorder(new TitledBorder("Scopes")); - - - String boundsValues[] = { "Tiny Bounds", "Small Bounds", "Big Bounds"}; - - boundsType = new JComboBox(boundsValues); - boundsType.addActionListener(this); - boundsType.setSelectedIndex(2); - panel.add(new JLabel("Bounds")); - panel.add(boundsType); - - useBoundingLeaf = new JCheckBox("Enable BoundingLeaf", - boundingLeafOn); - useBoundingLeaf.addActionListener(this); - panel.add(useBoundingLeaf); - - override = new JCheckBox("Enable App Override", - false); - override.addActionListener(this); - panel.add(override); - - return panel; - - } - - JPanel createMaterialPanel() { - JPanel panel = new JPanel(); - panel.setBorder(new TitledBorder("Appearance Attributes")); - - String colorVals[] = { "WHITE", "RED", "GREEN", "BLUE"}; - - altAppMaterialColor = new JComboBox(colorVals); - altAppMaterialColor.addActionListener(this); - altAppMaterialColor.setSelectedIndex(2); - panel.add(new JLabel("Alternate Appearance MaterialColor")); - panel.add(altAppMaterialColor); - - - - appMaterialColor = new JComboBox(colorVals); - appMaterialColor.addActionListener(this); - appMaterialColor.setSelectedIndex(1); - panel.add(new JLabel("Normal Appearance MaterialColor")); - panel.add(appMaterialColor); - - return panel; - - - } - - public void actionPerformed(ActionEvent e) { - int i; - - Object target = e.getSource(); - if (target == altAppMaterialColor) { - altMat.setDiffuseColor(colors[altAppMaterialColor.getSelectedIndex()]); - } - else if (target == useBoundingLeaf) { - boundingLeafOn = useBoundingLeaf.isSelected(); - if (boundingLeafOn) { - leafBounds.setRegion(allBounds[currentBounds]); - altApp.setInfluencingBoundingLeaf( leafBounds ); - } - else { - altApp.setInfluencingBoundingLeaf( null ); - altApp.setInfluencingBounds(allBounds[currentBounds]); - } - - } - else if (target == boundsType) { - currentBounds = boundsType.getSelectedIndex(); - if (boundingLeafOn) { - leafBounds.setRegion(allBounds[currentBounds]); - altApp.setInfluencingBoundingLeaf( leafBounds ); - } - else { - altApp.setInfluencingBoundingLeaf( null ); - altApp.setInfluencingBounds(allBounds[currentBounds]); - } - - } - else if (target == override) { - for (i = 0; i < shapes1.length; i++) - shapes1[i].setAppearanceOverrideEnable(override.isSelected()); - } - else if (target == appMaterialColor) { - mat1.setDiffuseColor(colors[appMaterialColor.getSelectedIndex()]); - } - - } - - - public static void main(String[] args) { - Frame frame = new MainFrame(new AlternateAppearanceBoundsTest(), 800, 800); - } - -} diff --git a/src/AlternateAppearance/AlternateAppearanceBoundsTest_plugin.html b/src/AlternateAppearance/AlternateAppearanceBoundsTest_plugin.html deleted file mode 100644 index 08f45fa..0000000 --- a/src/AlternateAppearance/AlternateAppearanceBoundsTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>AlternateAppearanceBoundsTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 800 HEIGHT = 800 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "AlternateAppearanceBoundsTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "AlternateAppearanceBoundsTest.class" WIDTH = 800 HEIGHT = 800 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "AlternateAppearanceBoundsTest.class" WIDTH = 800 HEIGHT = 800 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/AlternateAppearance/AlternateAppearanceScopeTest.html b/src/AlternateAppearance/AlternateAppearanceScopeTest.html deleted file mode 100644 index c455c5e..0000000 --- a/src/AlternateAppearance/AlternateAppearanceScopeTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>AlternateAppearanceScopeTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="AlternateAppearanceScopeTest.class" width=800 height=800> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/AlternateAppearance/AlternateAppearanceScopeTest.java b/src/AlternateAppearance/AlternateAppearanceScopeTest.java deleted file mode 100644 index 6a2d276..0000000 --- a/src/AlternateAppearance/AlternateAppearanceScopeTest.java +++ /dev/null @@ -1,354 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.*; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.border.*; -import com.sun.j3d.utils.behaviors.vp.*; - -public class AlternateAppearanceScopeTest extends JApplet -implements ActionListener { - - - Material mat1, altMat; - Appearance app, otherApp; - JComboBox altAppMaterialColor; - JComboBox appMaterialColor; - JComboBox altAppScoping; - JComboBox override; - private Group content1 = null; - private Group content2 = null; - BoundingSphere worldBounds; - AlternateAppearance altApp; - Shape3D[] shapes1, shapes2; - boolean shape1Enabled = false, shape2Enabled = false; - // Globally used colors - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - Color3f red = new Color3f(1.0f, 0.0f, 0.0f); - Color3f green = new Color3f(0.0f, 1.0f, 0.0f); - Color3f blue = new Color3f(0.0f, 0.0f, 1.0f); - Color3f[] colors = {white, red, green, blue}; - - private SimpleUniverse u; - - public AlternateAppearanceScopeTest() { - } - - public void init() { - Container contentPane = getContentPane(); - - Canvas3D c = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); - contentPane.add("Center", c); - - BranchGroup scene = createSceneGraph(); - // SimpleUniverse is a Convenience Utility class - u = new SimpleUniverse(c); - - // add mouse behaviors to the viewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - viewingPlatform.setNominalViewingTransform(); - - OrbitBehavior orbit = new OrbitBehavior(c, - OrbitBehavior.REVERSE_ALL); - BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), - 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - - u.addBranchGraph(scene); - - - // Create GUI - JPanel p = new JPanel(); - BoxLayout boxlayout = new BoxLayout(p, - BoxLayout.Y_AXIS); - p.add(createScopingPanel()); - p.add(createMaterialPanel()); - p.setLayout(boxlayout); - - contentPane.add("South", p); - } - - public void destroy() { - u.cleanup(); - } - - BranchGroup createSceneGraph() { - BranchGroup objRoot = new BranchGroup(); - - // Create influencing bounds - worldBounds = new BoundingSphere( - new Point3d( 0.0, 0.0, 0.0 ), // Center - 1000.0 ); // Extent - - Transform3D t = new Transform3D(); - // move the object upwards - t.set(new Vector3f(0.0f, 0.1f, 0.0f)); - // Shrink the object - t.setScale(0.8); - - TransformGroup trans = new TransformGroup(t); - trans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - trans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - - - otherApp = new Appearance(); - altMat = new Material(); - altMat.setCapability(Material.ALLOW_COMPONENT_WRITE); - altMat.setDiffuseColor( new Color3f( 0.0f, 1.0f, 0.0f ) ); - otherApp.setMaterial(altMat); - - altApp = new AlternateAppearance(); - altApp.setAppearance(otherApp); - altApp.setCapability(AlternateAppearance.ALLOW_SCOPE_WRITE); - altApp.setCapability(AlternateAppearance.ALLOW_SCOPE_READ); - altApp.setInfluencingBounds( worldBounds ); - objRoot.addChild(altApp); - - // Build foreground geometry into two groups. We'll - // create three directional lights below, one each with - // scope to cover the first geometry group only, the - // second geometry group only, or both geometry groups. - Appearance app1 = new Appearance(); - mat1 = new Material(); - mat1.setCapability(Material.ALLOW_COMPONENT_WRITE); - mat1.setDiffuseColor( new Color3f( 1.0f, 0.0f, 0.0f ) ); - app1.setMaterial(mat1); - content1 = new SphereGroup( - 0.05f, // radius of spheres - 0.4f, // x spacing - 0.2f, // y spacing - 3, // number of spheres in X - 5, // number of spheres in Y - app1, // appearance - true); // alt app override = true - trans.addChild( content1 ); - shapes1 = ((SphereGroup)content1).getShapes(); - - content2 = new SphereGroup( - 0.05f, // radius of spheres - .4f, // x spacing - 0.2f, // y spacing - 2, // number of spheres in X - 5, // number of spheres in Y - app1, // appearance - true); // alt app override = true - trans.addChild( content2 ); - shapes2 = ((SphereGroup)content2).getShapes(); - - - // Add lights - DirectionalLight light1 = null; - light1 = new DirectionalLight( ); - light1.setEnable( true ); - light1.setColor( new Color3f(0.2f, 0.2f, 0.2f) ); - light1.setDirection( new Vector3f( 1.0f, 0.0f, -1.0f ) ); - light1.setInfluencingBounds( worldBounds ); - objRoot.addChild( light1 ); - - DirectionalLight light2 = new DirectionalLight(); - light2.setEnable(true); - light2.setColor(new Color3f(0.2f, 0.2f, 0.2f)); - light2.setDirection(new Vector3f(-1.0f, 0.0f, 1.0f)); - light2.setInfluencingBounds(worldBounds); - objRoot.addChild(light2); - - // Add an ambient light to dimly illuminate the rest of - // the shapes in the scene to help illustrate that the - // directional lights are being scoped... otherwise it looks - // like we're just removing shapes from the scene - AmbientLight ambient = new AmbientLight( ); - ambient.setEnable( true ); - ambient.setColor( new Color3f(1.0f, 1.0f, 1.0f) ); - ambient.setInfluencingBounds( worldBounds ); - objRoot.addChild( ambient ); - - - objRoot.addChild(trans); - - return objRoot; - } - JPanel createScopingPanel() { - JPanel panel = new JPanel(); - panel.setBorder(new TitledBorder("Scopes")); - - String values[] = {"Scoped Set1", "Scoped Set2", "Universal Scope"}; - altAppScoping = new JComboBox(values); - altAppScoping.addActionListener(this); - altAppScoping.setSelectedIndex(2); - panel.add(new JLabel("Scoping")); - panel.add(altAppScoping); - - - String enables[] = { "Enabled Set1", "Enabled Set2", "Enabled set1&2", "Disabled set1&2"}; - - override = new JComboBox(enables); - override.addActionListener(this); - override.setSelectedIndex(3); - panel.add(new JLabel("Alternate Appearance Override")); - panel.add(override); - - return panel; - - } - - JPanel createMaterialPanel() { - JPanel panel = new JPanel(); - panel.setBorder(new TitledBorder("Appearance Attributes")); - - String colorVals[] = { "WHITE", "RED", "GREEN", "BLUE"}; - - altAppMaterialColor = new JComboBox(colorVals); - altAppMaterialColor.addActionListener(this); - altAppMaterialColor.setSelectedIndex(2); - panel.add(new JLabel("Alternate Appearance MaterialColor")); - panel.add(altAppMaterialColor); - - - - appMaterialColor = new JComboBox(colorVals); - appMaterialColor.addActionListener(this); - appMaterialColor.setSelectedIndex(1); - panel.add(new JLabel("Normal Appearance MaterialColor")); - panel.add(appMaterialColor); - - return panel; - - - } - - public void actionPerformed(ActionEvent e) { - Object target = e.getSource(); - if (target == altAppMaterialColor) { - altMat.setDiffuseColor(colors[altAppMaterialColor.getSelectedIndex()]); - } - else if (target == altAppScoping) { - for (int i = 0; i < altApp.numScopes(); i++) { - altApp.removeScope(0); - } - if (altAppScoping.getSelectedIndex() == 0) { - altApp.addScope(content1); - } - else if (altAppScoping.getSelectedIndex() == 1) { - altApp.addScope(content2); - } - } - else if (target == override) { - int i; - if (override.getSelectedIndex()== 0) { - if (!shape1Enabled) { - for (i = 0; i < shapes1.length; i++) - shapes1[i].setAppearanceOverrideEnable(true); - shape1Enabled = true; - } - - if (shape2Enabled) { - for (i = 0; i < shapes2.length; i++) - shapes2[i].setAppearanceOverrideEnable(false); - shape2Enabled = false; - } - } - else if (override.getSelectedIndex() == 1) { - if (!shape2Enabled) { - for (i = 0; i < shapes2.length; i++) - shapes2[i].setAppearanceOverrideEnable(true); - shape2Enabled = true; - } - - if (shape1Enabled) { - for (i = 0; i < shapes1.length; i++) - shapes1[i].setAppearanceOverrideEnable(false); - shape1Enabled = false; - } - } - else if (override.getSelectedIndex() == 2) { - if (!shape1Enabled) { - for (i = 0; i < shapes1.length; i++) - shapes1[i].setAppearanceOverrideEnable(true); - shape1Enabled = true; - } - if (!shape2Enabled) { - for (i = 0; i < shapes2.length; i++) - shapes2[i].setAppearanceOverrideEnable(true); - shape2Enabled = true; - } - } - else { - if (shape1Enabled) { - for (i = 0; i < shapes1.length; i++) - shapes1[i].setAppearanceOverrideEnable(false); - shape1Enabled = false; - } - - if (shape2Enabled) { - for (i = 0; i < shapes2.length; i++) - shapes2[i].setAppearanceOverrideEnable(false); - shape2Enabled = false; - } - } - - } - else if (target == appMaterialColor) { - mat1.setDiffuseColor(colors[appMaterialColor.getSelectedIndex()]); - } - - } - - - public static void main(String[] args) { - Frame frame = new MainFrame(new AlternateAppearanceScopeTest(), 800, 800); - } - -} diff --git a/src/AlternateAppearance/AlternateAppearanceScopeTest_plugin.html b/src/AlternateAppearance/AlternateAppearanceScopeTest_plugin.html deleted file mode 100644 index 3a1c690..0000000 --- a/src/AlternateAppearance/AlternateAppearanceScopeTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>AlternateAppearanceScopeTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 800 HEIGHT = 800 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "AlternateAppearanceScopeTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "AlternateAppearanceScopeTest.class" WIDTH = 800 HEIGHT = 800 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "AlternateAppearanceScopeTest.class" WIDTH = 800 HEIGHT = 800 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/AlternateAppearance/SphereGroup.java b/src/AlternateAppearance/SphereGroup.java deleted file mode 100644 index 7b5d4db..0000000 --- a/src/AlternateAppearance/SphereGroup.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; -import com.sun.j3d.utils.geometry.*; - -public class SphereGroup - extends Group -{ - Shape3D[] shapes; - int numShapes = 0; - // Constructors - public SphereGroup( ) - { - // radius x,y spacing x,y count appearance - this( 0.25f, 0.75f, 0.75f, 5, 5, null, false ); - } - - public SphereGroup( Appearance app ) - { - // radius x,y spacing x,y count appearance - this( 0.25f, 0.75f, 0.75f, 5, 5, app, false ); - } - - public SphereGroup( float radius, float xSpacing, float ySpacing, - int xCount, int yCount, boolean overrideflag ) - { - this( radius, xSpacing, ySpacing, xCount, yCount, null, overrideflag ); - } - - public SphereGroup( float radius, float xSpacing, float ySpacing, - int xCount, int yCount, Appearance app, boolean overrideflag ) - { - if ( app == null ) - { - app = new Appearance( ); - Material material = new Material( ); - material.setDiffuseColor( new Color3f( 0.8f, 0.8f, 0.8f ) ); - material.setSpecularColor( new Color3f( 0.0f, 0.0f, 0.0f ) ); - material.setShininess( 0.0f ); - app.setMaterial( material ); - } - - double xStart = -xSpacing * (double)(xCount-1) / 2.0; - double yStart = -ySpacing * (double)(yCount-1) / 2.0; - - Sphere sphere = null; - TransformGroup trans = null; - Transform3D t3d = new Transform3D( ); - Vector3d vec = new Vector3d( ); - double x, y = yStart, z = 0.0; - shapes = new Shape3D[xCount * yCount]; - for ( int i = 0; i < yCount; i++ ) - { - x = xStart; - for ( int j = 0; j < xCount; j++ ) { - vec.set( x, y, z ); - t3d.setTranslation( vec ); - trans = new TransformGroup( t3d ); - addChild( trans ); - - sphere = new Sphere( - radius, // sphere radius - Primitive.GENERATE_NORMALS, // generate normals - 16, // 16 divisions radially - app ); // it's appearance - trans.addChild( sphere ); - x += xSpacing; - shapes[numShapes] = sphere.getShape(); - if (overrideflag) - shapes[numShapes].setCapability(Shape3D.ALLOW_APPEARANCE_OVERRIDE_WRITE); - numShapes++; - } - y += ySpacing; - } - } - Shape3D[] getShapes() { - return shapes; - } - -} diff --git a/src/AlternateAppearance/build.xml b/src/AlternateAppearance/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/AlternateAppearance/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/Appearance/AppearanceTest.html b/src/Appearance/AppearanceTest.html deleted file mode 100644 index e5f36a4..0000000 --- a/src/Appearance/AppearanceTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>AppearanceTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="AppearanceTest.class" width=700 height=700> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/Appearance/AppearanceTest.java b/src/Appearance/AppearanceTest.java deleted file mode 100644 index 2342ad6..0000000 --- a/src/Appearance/AppearanceTest.java +++ /dev/null @@ -1,380 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import com.sun.j3d.utils.image.TextureLoader; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class AppearanceTest extends Applet { - - private java.net.URL texImage = null; - private java.net.URL bgImage = null; - - private SimpleUniverse u = null; - - private BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a bounds for the background and lights - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - TextureLoader bgTexture = new TextureLoader(bgImage, this); - Background bg = new Background(bgTexture.getImage()); - bg.setApplicationBounds(bounds); - objRoot.addChild(bg); - - // Set up the global lights - Color3f lColor1 = new Color3f(0.7f, 0.7f, 0.7f); - Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, -1.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - - AmbientLight aLgt = new AmbientLight(alColor); - aLgt.setInfluencingBounds(bounds); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - lgt1.setInfluencingBounds(bounds); - objRoot.addChild(aLgt); - objRoot.addChild(lgt1); - - // Create a bunch of objects with a behavior and add them - // into the scene graph. - - int row, col; - Appearance[][] app = new Appearance[3][3]; - - for (row = 0; row < 3; row++) - for (col = 0; col < 3; col++) - app[row][col] = createAppearance(row * 3 + col); - - for (int i = 0; i < 3; i++) { - double ypos = (double)(i - 1) * 0.6; - for (int j = 0; j < 3; j++) { - double xpos = (double)(j - 1) * 0.6; - objRoot.addChild(createObject(app[i][j], 0.12, xpos, ypos)); - } - } - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - - private Appearance createAppearance(int idx) { - Appearance app = new Appearance(); - - // Globally used colors - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - - switch (idx) { - // Unlit solid - case 0: - { - // Set up the coloring properties - Color3f objColor = new Color3f(1.0f, 0.2f, 0.4f); - ColoringAttributes ca = new ColoringAttributes(); - ca.setColor(objColor); - app.setColoringAttributes(ca); - break; - } - - - // Unlit wire frame - case 1: - { - // Set up the coloring properties - Color3f objColor = new Color3f(0.5f, 0.0f, 0.2f); - ColoringAttributes ca = new ColoringAttributes(); - ca.setColor(objColor); - app.setColoringAttributes(ca); - - // Set up the polygon attributes - PolygonAttributes pa = new PolygonAttributes(); - pa.setPolygonMode(pa.POLYGON_LINE); - pa.setCullFace(pa.CULL_NONE); - app.setPolygonAttributes(pa); - break; - } - - // Unlit points - case 2: - { - // Set up the coloring properties - Color3f objColor = new Color3f(0.2f, 0.2f, 1.0f); - ColoringAttributes ca = new ColoringAttributes(); - ca.setColor(objColor); - app.setColoringAttributes(ca); - - // Set up the polygon attributes - PolygonAttributes pa = new PolygonAttributes(); - pa.setPolygonMode(pa.POLYGON_POINT); - pa.setCullFace(pa.CULL_NONE); - app.setPolygonAttributes(pa); - - // Set up point attributes - PointAttributes pta = new PointAttributes(); - pta.setPointSize(5.0f); - app.setPointAttributes(pta); - break; - } - - // Lit solid - case 3: - { - // Set up the material properties - Color3f objColor = new Color3f(0.8f, 0.0f, 0.0f); - app.setMaterial(new Material(objColor, black, objColor, - white, 80.0f)); - break; - } - - // Texture mapped, lit solid - case 4: - { - // Set up the texture map - TextureLoader tex = new TextureLoader(texImage, this); - app.setTexture(tex.getTexture()); - - TextureAttributes texAttr = new TextureAttributes(); - texAttr.setTextureMode(TextureAttributes.MODULATE); - app.setTextureAttributes(texAttr); - - // Set up the material properties - app.setMaterial(new Material(white, black, white, black, 1.0f)); - break; - } - - // Transparent, lit solid - case 5: - { - // Set up the transparency properties - TransparencyAttributes ta = new TransparencyAttributes(); - ta.setTransparencyMode(ta.BLENDED); - ta.setTransparency(0.6f); - app.setTransparencyAttributes(ta); - - // Set up the polygon attributes - PolygonAttributes pa = new PolygonAttributes(); - pa.setCullFace(pa.CULL_NONE); - app.setPolygonAttributes(pa); - - // Set up the material properties - Color3f objColor = new Color3f(0.7f, 0.8f, 1.0f); - app.setMaterial(new Material(objColor, black, objColor, - black, 1.0f)); - break; - } - - // Lit solid, no specular - case 6: - { - // Set up the material properties - Color3f objColor = new Color3f(0.8f, 0.0f, 0.0f); - app.setMaterial(new Material(objColor, black, objColor, - black, 80.0f)); - break; - } - - // Lit solid, specular only - case 7: - { - // Set up the material properties - Color3f objColor = new Color3f(0.8f, 0.0f, 0.0f); - app.setMaterial(new Material(black, black, black, - white, 80.0f)); - break; - } - - // Another lit solid with a different color - case 8: - { - // Set up the material properties - Color3f objColor = new Color3f(0.8f, 0.8f, 0.0f); - app.setMaterial(new Material(objColor, black, objColor, - white, 80.0f)); - break; - } - - default: - { - ColoringAttributes ca = new ColoringAttributes(); - ca.setColor(new Color3f(0.0f, 1.0f, 0.0f)); - app.setColoringAttributes(ca); - } - } - - return app; - } - - - private Group createObject(Appearance app, double scale, - double xpos, double ypos) { - - // Create a transform group node to scale and position the object. - Transform3D t = new Transform3D(); - t.set(scale, new Vector3d(xpos, ypos, 0.0)); - TransformGroup objTrans = new TransformGroup(t); - - // Create a second transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. - TransformGroup spinTg = new TransformGroup(); - spinTg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - - // Create a simple shape leaf node and set the appearance - Shape3D shape = new Tetrahedron(); - shape.setAppearance(app); - - // add it to the scene graph. - spinTg.addChild(shape); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into - // the scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 5000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, spinTg, yAxis, - 0.0f, (float) Math.PI*2.0f); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - rotator.setSchedulingBounds(bounds); - - // Add the behavior and the transform group to the object - objTrans.addChild(rotator); - objTrans.addChild(spinTg); - - return objTrans; - } - - - public AppearanceTest() { - } - - public AppearanceTest(java.net.URL bgurl, java.net.URL texurl) { - bgImage = bgurl; - texImage = texurl; - } - - public void init() { - if (bgImage == null) { - // the path to the image for an applet - try { - bgImage = new java.net.URL(getCodeBase().toString() + - "../images/bg.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - - if (texImage == null) { - // the path to the image for an applet - try { - texImage = new java.net.URL(getCodeBase().toString() + - "../images/apimage.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - - // - // The following allows AppearanceTest to be run as an application - // as well as an applet - // - public static void main(String[] args) { - // the path to the image file for an application - java.net.URL bgurl = null; - java.net.URL texurl = null; - try { - bgurl = new java.net.URL("file:../images/bg.jpg"); - texurl = new java.net.URL("file:../images/apimage.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - new MainFrame(new AppearanceTest(bgurl, texurl), 700, 700); - } -} diff --git a/src/Appearance/AppearanceTest_plugin.html b/src/Appearance/AppearanceTest_plugin.html deleted file mode 100644 index e74b29c..0000000 --- a/src/Appearance/AppearanceTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>AppearanceTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 700 HEIGHT = 700 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "AppearanceTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "AppearanceTest.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "AppearanceTest.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/Appearance/Tetrahedron.java b/src/Appearance/Tetrahedron.java deleted file mode 100644 index 5dfdee7..0000000 --- a/src/Appearance/Tetrahedron.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -public class Tetrahedron extends Shape3D { - private static final float sqrt3 = (float) Math.sqrt(3.0); - private static final float sqrt3_3 = sqrt3 / 3.0f; - private static final float sqrt24_3 = (float) Math.sqrt(24.0) / 3.0f; - - private static final float ycenter = 0.5f * sqrt24_3; - private static final float zcenter = -sqrt3_3; - - private static final Point3f p1 = new Point3f(-1.0f, -ycenter, -zcenter); - private static final Point3f p2 = new Point3f(1.0f, -ycenter, -zcenter); - private static final Point3f p3 = - new Point3f(0.0f, -ycenter, -sqrt3 - zcenter); - private static final Point3f p4 = - new Point3f(0.0f, sqrt24_3 - ycenter, 0.0f); - - private static final Point3f[] verts = { - p1, p2, p4, // front face - p1, p4, p3, // left, back face - p2, p3, p4, // right, back face - p1, p3, p2, // bottom face - }; - - private TexCoord2f texCoord[] = { - new TexCoord2f(0.0f, 0.0f), - new TexCoord2f(1.0f, 0.0f), - new TexCoord2f(0.5f, sqrt3 / 2.0f), - }; - - public Tetrahedron() { - int i; - - TriangleArray tetra = new TriangleArray(12, TriangleArray.COORDINATES | - TriangleArray.NORMALS | TriangleArray.TEXTURE_COORDINATE_2); - - tetra.setCoordinates(0, verts); - for (i = 0; i < 12; i++) { - tetra.setTextureCoordinate(0, i, texCoord[i%3]); - } - - int face; - Vector3f normal = new Vector3f(); - Vector3f v1 = new Vector3f(); - Vector3f v2 = new Vector3f(); - Point3f [] pts = new Point3f[3]; - for (i = 0; i < 3; i++) pts[i] = new Point3f(); - - for (face = 0; face < 4; face++) { - tetra.getCoordinates(face*3, pts); - v1.sub(pts[1], pts[0]); - v2.sub(pts[2], pts[0]); - normal.cross(v1, v2); - normal.normalize(); - for (i = 0; i < 3; i++) { - tetra.setNormal((face * 3 + i), normal); - } - } - this.setGeometry(tetra); - this.setAppearance(new Appearance()); - } -} diff --git a/src/Appearance/build.xml b/src/Appearance/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/Appearance/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/AppearanceMixed/AppearanceMixed.html b/src/AppearanceMixed/AppearanceMixed.html deleted file mode 100644 index 349cd5d..0000000 --- a/src/AppearanceMixed/AppearanceMixed.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>AppearanceMixed</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="AppearanceMixed.class" width=700 height=700> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/AppearanceMixed/AppearanceMixed.java b/src/AppearanceMixed/AppearanceMixed.java deleted file mode 100644 index cc2cad4..0000000 --- a/src/AppearanceMixed/AppearanceMixed.java +++ /dev/null @@ -1,506 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import java.awt.GraphicsConfiguration; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import com.sun.j3d.utils.image.TextureLoader; -import com.sun.j3d.utils.geometry.ColorCube; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class AppearanceMixed extends Applet { - - private java.net.URL bgImage; - private java.net.URL texImage; - - private SimpleUniverse u = null; - - static class MyCanvas3D extends Canvas3D { - private GraphicsContext3D gc; - - private static final int vertIndices[] = { 0, 1, 2, 0, 2, 3 }; - private static final int normalIndices[] = { 0, 0, 0, 1, 1, 1 }; - private IndexedTriangleArray tri = - new IndexedTriangleArray(4, IndexedTriangleArray.COORDINATES | - IndexedTriangleArray.NORMALS, 6); - - private Point3f vert[] = { - new Point3f(-0.12f, -0.12f, 0.0f), - new Point3f( 0.12f, -0.12f, 0.0f), - new Point3f( 0.12f, 0.12f, 0.0f), - new Point3f(-0.12f, 0.12f, 0.0f), - }; - - private Point3f min[] = { - new Point3f(-0.24f, -0.24f, -0.20f), - new Point3f( 0.04f, -0.28f, -0.24f), - new Point3f( 0.00f, 0.00f, -0.24f), - new Point3f(-0.32f, 0.08f, -0.20f), - }; - - private Point3f max[] = { - new Point3f(-0.04f, -0.04f, 0.12f), - new Point3f( 0.32f, -0.04f, 0.16f), - new Point3f( 0.36f, 0.28f, 0.20f), - new Point3f(-0.04f, 0.24f, 0.16f), - }; - - private Point3f delta[] = { - new Point3f(-0.0021f, -0.0017f, 0.0014f), - new Point3f( 0.0025f, -0.0013f, -0.0018f), - new Point3f( 0.0021f, 0.0017f, 0.0018f), - new Point3f(-0.0025f, 0.0013f, -0.0014f), - }; - - private Vector3f normals[]; - private Vector3f v01 = new Vector3f(); - private Vector3f v02 = new Vector3f(); - private Vector3f v03 = new Vector3f(); - - public void renderField(int fieldDesc) { - computeVert(); - computeNormals(); - gc.draw(tri); - } - - private void computeVert() { - for (int i = 0; i < 4; i++) { - vert[i].add(delta[i]); - if (vert[i].x > max[i].x) { - vert[i].x = max[i].x; - delta[i].x *= -1.0f; - } - if (vert[i].x < min[i].x) { - vert[i].x = min[i].x; - delta[i].x *= -1.0f; - } - if (vert[i].y > max[i].y) { - vert[i].y = max[i].y; - delta[i].y *= -1.0f; - } - if (vert[i].y < min[i].y) { - vert[i].y = min[i].y; - delta[i].y *= -1.0f; - } - if (vert[i].z > max[i].z) { - vert[i].z = max[i].z; - delta[i].z *= -1.0f; - } - if (vert[i].z < min[i].z) { - vert[i].z = min[i].z; - delta[i].z *= -1.0f; - } - } - tri.setCoordinates(0, vert); - } - - private void computeNormals() { - v01.sub(vert[1], vert[0]); - v02.sub(vert[2], vert[0]); - v03.sub(vert[3], vert[0]); - normals[0].cross(v01, v02); - normals[0].normalize(); - normals[1].cross(v02, v03); - normals[1].normalize(); - tri.setNormals(0, normals); - } - - public MyCanvas3D(GraphicsConfiguration gcfg) { - super(gcfg); - - // Allocate memory for normals - normals = new Vector3f[2]; - normals[0] = new Vector3f(); - normals[1] = new Vector3f(); - - // Set up the indices - tri.setCoordinateIndices(0, vertIndices); - tri.setNormalIndices(0, normalIndices); - - // Set up the graphics context - gc = getGraphicsContext3D(); - - // Create the appearance for the triangle fan - Appearance app = new Appearance(); - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - Color3f objColor = new Color3f(0.0f, 0.0f, 0.8f); - app.setMaterial(new Material(objColor, black, objColor, - white, 80.0f)); - gc.setAppearance(app); - - // Set up the global lights - Color3f lColor1 = new Color3f(0.7f, 0.7f, 0.7f); - Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, -1.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - gc.addLight(new AmbientLight(alColor)); - gc.addLight(new DirectionalLight(lColor1, lDir1)); - } - } - - - private BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a bounds for the background and lights - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - TextureLoader bgTexture = new TextureLoader(bgImage, this); - Background bg = new Background(bgTexture.getImage()); - bg.setApplicationBounds(bounds); - objRoot.addChild(bg); - - // Set up the global lights - Color3f lColor1 = new Color3f(0.7f, 0.7f, 0.7f); - Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, -1.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - - AmbientLight aLgt = new AmbientLight(alColor); - aLgt.setInfluencingBounds(bounds); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - lgt1.setInfluencingBounds(bounds); - objRoot.addChild(aLgt); - objRoot.addChild(lgt1); - - // Create a bunch of objects with a behavior and add them - // into the scene graph. - - int row, col; - Appearance[][] app = new Appearance[3][3]; - - for (row = 0; row < 3; row++) - for (col = 0; col < 3; col++) - app[row][col] = createAppearance(row * 3 + col); - - for (int i = 0; i < 3; i++) { - double ypos = (double)(i - 1) * 0.6; - for (int j = 0; j < 3; j++) { - double xpos = (double)(j - 1) * 0.6; - objRoot.addChild(createObject(app[i][j], 0.12, xpos, ypos)); - } - } - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - - private Appearance createAppearance(int idx) { - Appearance app = new Appearance(); - - // Globally used colors - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - - switch (idx) { - // Unlit solid - case 0: - { - // Set up the coloring properties - Color3f objColor = new Color3f(1.0f, 0.2f, 0.4f); - ColoringAttributes ca = new ColoringAttributes(); - ca.setColor(objColor); - app.setColoringAttributes(ca); - break; - } - - - // Unlit wire frame - case 1: - { - // Set up the coloring properties - Color3f objColor = new Color3f(0.5f, 0.0f, 0.2f); - ColoringAttributes ca = new ColoringAttributes(); - ca.setColor(objColor); - app.setColoringAttributes(ca); - - // Set up the polygon attributes - PolygonAttributes pa = new PolygonAttributes(); - pa.setPolygonMode(pa.POLYGON_LINE); - pa.setCullFace(pa.CULL_NONE); - app.setPolygonAttributes(pa); - break; - } - - // Unlit points - case 2: - { - // Set up the coloring properties - Color3f objColor = new Color3f(0.2f, 0.2f, 1.0f); - ColoringAttributes ca = new ColoringAttributes(); - ca.setColor(objColor); - app.setColoringAttributes(ca); - - // Set up the polygon attributes - PolygonAttributes pa = new PolygonAttributes(); - pa.setPolygonMode(pa.POLYGON_POINT); - pa.setCullFace(pa.CULL_NONE); - app.setPolygonAttributes(pa); - - // Set up point attributes - PointAttributes pta = new PointAttributes(); - pta.setPointSize(5.0f); - app.setPointAttributes(pta); - break; - } - - // Lit solid - case 3: - { - // Set up the material properties - Color3f objColor = new Color3f(0.8f, 0.0f, 0.0f); - app.setMaterial(new Material(objColor, black, objColor, - white, 80.0f)); - break; - } - - // Texture mapped, lit solid - case 4: - { - // Set up the texture map - TextureLoader tex = new TextureLoader(texImage, this); - app.setTexture(tex.getTexture()); - - TextureAttributes texAttr = new TextureAttributes(); - texAttr.setTextureMode(TextureAttributes.MODULATE); - app.setTextureAttributes(texAttr); - - - // Set up the material properties - app.setMaterial(new Material(white, black, white, black, 1.0f)); - break; - } - - // Transparent, lit solid - case 5: - { - // Set up the transparency properties - TransparencyAttributes ta = new TransparencyAttributes(); - ta.setTransparencyMode(ta.BLENDED); - ta.setTransparency(0.6f); - app.setTransparencyAttributes(ta); - - // Set up the polygon attributes - PolygonAttributes pa = new PolygonAttributes(); - pa.setCullFace(pa.CULL_NONE); - app.setPolygonAttributes(pa); - - // Set up the material properties - Color3f objColor = new Color3f(0.7f, 0.8f, 1.0f); - app.setMaterial(new Material(objColor, black, objColor, - black, 1.0f)); - break; - } - - // Lit solid, no specular - case 6: - { - // Set up the material properties - Color3f objColor = new Color3f(0.8f, 0.0f, 0.0f); - app.setMaterial(new Material(objColor, black, objColor, - black, 80.0f)); - break; - } - - // Lit solid, specular only - case 7: - { - // Set up the material properties - Color3f objColor = new Color3f(0.8f, 0.0f, 0.0f); - app.setMaterial(new Material(black, black, black, - white, 80.0f)); - break; - } - - // Another lit solid with a different color - case 8: - { - // Set up the material properties - Color3f objColor = new Color3f(0.8f, 0.8f, 0.0f); - app.setMaterial(new Material(objColor, black, objColor, - white, 80.0f)); - break; - } - - default: - { - ColoringAttributes ca = new ColoringAttributes(); - ca.setColor(new Color3f(0.0f, 1.0f, 0.0f)); - app.setColoringAttributes(ca); - } - } - - return app; - } - - - private Group createObject(Appearance app, double scale, - double xpos, double ypos) { - - // Create a transform group node to scale and position the object. - Transform3D t = new Transform3D(); - t.set(scale, new Vector3d(xpos, ypos, 0.0)); - TransformGroup objTrans = new TransformGroup(t); - - // Create a second transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. - TransformGroup spinTg = new TransformGroup(); - spinTg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - - // Create a simple shape leaf node and set the appearance - Shape3D shape = new Tetrahedron(); - shape.setAppearance(app); - - // add it to the scene graph. - spinTg.addChild(shape); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into - // the scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 5000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, spinTg, yAxis, - 0.0f, (float) Math.PI*2.0f); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - rotator.setSchedulingBounds(bounds); - - // Add the behavior and the transform group to the object - objTrans.addChild(rotator); - objTrans.addChild(spinTg); - - return objTrans; - } - - - public AppearanceMixed() { - } - - public AppearanceMixed(java.net.URL bgurl, java.net.URL texurl) { - bgImage = bgurl; - texImage = texurl; - } - public void init() { - if (bgImage == null) { - // the path to the image for an applet - try { - bgImage = new java.net.URL(getCodeBase().toString() + - "../images/bg.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - - if (texImage == null) { - // the path to the image for an applet - try { - texImage = new java.net.URL(getCodeBase().toString() + - "../images/apimage.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - MyCanvas3D c = new MyCanvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - - // - // The following allows AppearanceMixed to be run as an application - // as well as an applet - // - public static void main(String[] args) { - // the path to the image file for an application - java.net.URL bgurl = null; - java.net.URL texurl = null; - try { - bgurl = new java.net.URL("file:../images/bg.jpg"); - texurl = new java.net.URL("file:../images/apimage.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - new MainFrame(new AppearanceMixed(bgurl, texurl), 700, 700); - } -} diff --git a/src/AppearanceMixed/AppearanceMixed_plugin.html b/src/AppearanceMixed/AppearanceMixed_plugin.html deleted file mode 100644 index 2fe3ef8..0000000 --- a/src/AppearanceMixed/AppearanceMixed_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>AppearanceMixed</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 700 HEIGHT = 700 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "AppearanceMixed.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "AppearanceMixed.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "AppearanceMixed.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/AppearanceMixed/Tetrahedron.java b/src/AppearanceMixed/Tetrahedron.java deleted file mode 100644 index 5dfdee7..0000000 --- a/src/AppearanceMixed/Tetrahedron.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -public class Tetrahedron extends Shape3D { - private static final float sqrt3 = (float) Math.sqrt(3.0); - private static final float sqrt3_3 = sqrt3 / 3.0f; - private static final float sqrt24_3 = (float) Math.sqrt(24.0) / 3.0f; - - private static final float ycenter = 0.5f * sqrt24_3; - private static final float zcenter = -sqrt3_3; - - private static final Point3f p1 = new Point3f(-1.0f, -ycenter, -zcenter); - private static final Point3f p2 = new Point3f(1.0f, -ycenter, -zcenter); - private static final Point3f p3 = - new Point3f(0.0f, -ycenter, -sqrt3 - zcenter); - private static final Point3f p4 = - new Point3f(0.0f, sqrt24_3 - ycenter, 0.0f); - - private static final Point3f[] verts = { - p1, p2, p4, // front face - p1, p4, p3, // left, back face - p2, p3, p4, // right, back face - p1, p3, p2, // bottom face - }; - - private TexCoord2f texCoord[] = { - new TexCoord2f(0.0f, 0.0f), - new TexCoord2f(1.0f, 0.0f), - new TexCoord2f(0.5f, sqrt3 / 2.0f), - }; - - public Tetrahedron() { - int i; - - TriangleArray tetra = new TriangleArray(12, TriangleArray.COORDINATES | - TriangleArray.NORMALS | TriangleArray.TEXTURE_COORDINATE_2); - - tetra.setCoordinates(0, verts); - for (i = 0; i < 12; i++) { - tetra.setTextureCoordinate(0, i, texCoord[i%3]); - } - - int face; - Vector3f normal = new Vector3f(); - Vector3f v1 = new Vector3f(); - Vector3f v2 = new Vector3f(); - Point3f [] pts = new Point3f[3]; - for (i = 0; i < 3; i++) pts[i] = new Point3f(); - - for (face = 0; face < 4; face++) { - tetra.getCoordinates(face*3, pts); - v1.sub(pts[1], pts[0]); - v2.sub(pts[2], pts[0]); - normal.cross(v1, v2); - normal.normalize(); - for (i = 0; i < 3; i++) { - tetra.setNormal((face * 3 + i), normal); - } - } - this.setGeometry(tetra); - this.setAppearance(new Appearance()); - } -} diff --git a/src/AppearanceMixed/build.xml b/src/AppearanceMixed/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/AppearanceMixed/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/Applet3D/HelloUniverse.html b/src/Applet3D/HelloUniverse.html deleted file mode 100644 index 93b044c..0000000 --- a/src/Applet3D/HelloUniverse.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Hello, Universe!</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="HelloUniverse.class" width=256 height=256> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/Applet3D/HelloUniverse.java b/src/Applet3D/HelloUniverse.java deleted file mode 100644 index 3ecd922..0000000 --- a/src/Applet3D/HelloUniverse.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.BorderLayout; -import java.awt.event.*; -import java.awt.GraphicsConfiguration; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.ColorCube; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class HelloUniverse extends Applet { - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create the TransformGroup node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at run time. Add it to - // the root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objRoot.addChild(objTrans); - - // Create a simple Shape3D node; add it to the scene graph. - objTrans.addChild(new ColorCube(0.4)); - - // Create a new Behavior object that will perform the - // desired operation on the specified transform and add - // it into the scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, 4000); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotator.setSchedulingBounds(bounds); - objRoot.addChild(rotator); - - // Have Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public HelloUniverse() { - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows HelloUniverse to be run as an application - // as well as an applet - // - public static void main(String[] args) { - new MainFrame(new HelloUniverse(), 256, 256); - } -} diff --git a/src/Applet3D/HelloUniverse_plugin.html b/src/Applet3D/HelloUniverse_plugin.html deleted file mode 100644 index 947a59b..0000000 --- a/src/Applet3D/HelloUniverse_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Hello, Universe!</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 256 HEIGHT = 256 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "HelloUniverse.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "HelloUniverse.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "HelloUniverse.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/Applet3D/build.xml b/src/Applet3D/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/Applet3D/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/Background/BackgroundGeometry.html b/src/Background/BackgroundGeometry.html deleted file mode 100644 index ca5b914..0000000 --- a/src/Background/BackgroundGeometry.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>BackgroundGeometry</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="BackgroundGeometry.class" width=750 height=750> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/Background/BackgroundGeometry.java b/src/Background/BackgroundGeometry.java deleted file mode 100644 index 95b1649..0000000 --- a/src/Background/BackgroundGeometry.java +++ /dev/null @@ -1,236 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.image.TextureLoader; -import com.sun.j3d.utils.behaviors.mouse.*; -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.*; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class BackgroundGeometry extends Applet { - - BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - private java.net.URL bgImage = null; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph() { - - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. - TransformGroup objTrans = new TransformGroup(); - objScale.addChild(objTrans); - - Background bg = new Background(); - bg.setApplicationBounds(bounds); - BranchGroup backGeoBranch = new BranchGroup(); - Sphere sphereObj = new Sphere(1.0f, Sphere.GENERATE_NORMALS | - Sphere.GENERATE_NORMALS_INWARD | - Sphere.GENERATE_TEXTURE_COORDS, 45); - Appearance backgroundApp = sphereObj.getAppearance(); - backGeoBranch.addChild(sphereObj); - bg.setGeometry(backGeoBranch); - objTrans.addChild(bg); - - TextureLoader tex = new TextureLoader(bgImage, - new String("RGB"), this); - if (tex != null) - backgroundApp.setTexture(tex.getTexture()); - - Vector3f tranlation = new Vector3f(2.0f, 0.0f, 0.0f); - Transform3D modelTransform = new Transform3D(); - Transform3D tmpTransform = new Transform3D(); - double angleInc = Math.PI/8.0; - double angle = 0.0; - int numBoxes = 16; - - float scaleX[] = {0.1f, 0.2f, 0.2f, 0.3f, - 0.2f, 0.1f, 0.2f, 0.3f, - 0.1f, 0.3f, 0.2f, 0.3f, - 0.1f, 0.3f, 0.2f, 0.3f}; - - float scaleY[] = {0.3f, 0.4f, 0.3f, 0.4f, - 0.3f, 0.4f, 0.3f, 0.4f, - 0.3f, 0.3f, 0.3f, 0.3f, - 0.3f, 0.3f, 0.3f, 0.4f}; - - float scaleZ[] = {0.3f, 0.2f, 0.1f, 0.1f, - 0.3f, 0.2f, 0.1f, 0.3f, - 0.3f, 0.2f, 0.1f, 0.3f, - 0.3f, 0.2f, 0.1f, 0.2f}; - - Appearance a1 = new Appearance(); - Color3f eColor = new Color3f(0.0f, 0.0f, 0.0f); - Color3f sColor = new Color3f(0.5f, 0.5f, 1.0f); - Color3f oColor = new Color3f(0.5f, 0.5f, 0.3f); - - Material m = new Material(oColor, eColor, oColor, sColor, 100.0f); - m.setLightingEnable(true); - a1.setMaterial(m); - - for (int i=0; i<numBoxes; i++, angle += angleInc) { - modelTransform.rotY(angle); - tmpTransform.set(tranlation); - modelTransform.mul(tmpTransform); - - TransformGroup tgroup = new TransformGroup(modelTransform); - objTrans.addChild(tgroup); - - tgroup.addChild( new Box(scaleX[i],scaleY[i],scaleZ[i], - Box.GENERATE_NORMALS,a1)); - } - - - // Shine it with two lights. - Color3f lColor1 = new Color3f(0.7f, 0.7f, 0.7f); - Color3f lColor2 = new Color3f(0.2f, 0.2f, 0.1f); - Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, -1.0f); - Vector3f lDir2 = new Vector3f(0.0f, 0.0f, -1.0f); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - DirectionalLight lgt2 = new DirectionalLight(lColor2, lDir2); - lgt1.setInfluencingBounds(bounds); - lgt2.setInfluencingBounds(bounds); - objScale.addChild(lgt1); - objScale.addChild(lgt2); - - - return objRoot; - } - - public BackgroundGeometry (){ - } - - public BackgroundGeometry(java.net.URL bgurl) { - bgImage = bgurl; - } - - public void init() { - - if (bgImage == null) { - // the path to the image for an applet - try { - bgImage = new java.net.URL(getCodeBase().toString() + - "../images/bg.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - TransformGroup viewTrans = - u.getViewingPlatform().getViewPlatformTransform(); - - // Create the rotate behavior node - MouseRotate behavior1 = new MouseRotate(viewTrans); - scene.addChild(behavior1); - behavior1.setSchedulingBounds(bounds); - - // Create the zoom behavior node - MouseZoom behavior2 = new MouseZoom(viewTrans); - scene.addChild(behavior2); - behavior2.setSchedulingBounds(bounds); - - // Create the translate behavior node - MouseTranslate behavior3 = new MouseTranslate(viewTrans); - scene.addChild(behavior3); - behavior3.setSchedulingBounds(bounds); - - // Let Java 3D perform optimizations on this scene graph. - scene.compile(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - public static void main(String argv[]) { - System.out.println("Usage: mouse buttons to rotate, zoom or translate the view platform transform"); - System.out.println(" Note that the background geometry only changes with rotation"); - // the path to the image file for an application - java.net.URL bgurl = null; - try { - bgurl = new java.net.URL("file:../images/bg.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - new MainFrame(new BackgroundGeometry(bgurl), 750, 750); - } -} - diff --git a/src/Background/BackgroundGeometry_plugin.html b/src/Background/BackgroundGeometry_plugin.html deleted file mode 100644 index 6caa206..0000000 --- a/src/Background/BackgroundGeometry_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>BackgroundGeometry</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 750 HEIGHT = 750 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "BackgroundGeometry.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "BackgroundGeometry.class" WIDTH = 750 HEIGHT = 750 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "BackgroundGeometry.class" WIDTH = 750 HEIGHT = 750 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/Background/build.xml b/src/Background/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/Background/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/CgShaderTest/ObjLoadCg.java b/src/CgShaderTest/ObjLoadCg.java deleted file mode 100644 index 7711075..0000000 --- a/src/CgShaderTest/ObjLoadCg.java +++ /dev/null @@ -1,343 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.loaders.objectfile.ObjectFile; -import com.sun.j3d.loaders.ParsingErrorException; -import com.sun.j3d.loaders.IncorrectFormatException; -import com.sun.j3d.loaders.Scene; -import com.sun.j3d.utils.shader.StringIO; -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.util.Enumeration; -import java.io.*; -import com.sun.j3d.utils.behaviors.vp.*; -import java.net.URL; -import java.net.MalformedURLException; - -public class ObjLoadCg extends Applet { - - private boolean spin = false; - private boolean noTriangulate = false; - private boolean noStripify = false; - private double creaseAngle = 60.0; - private URL filename = null; - private SimpleUniverse u; - private BoundingSphere bounds; - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.7); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - objScale.addChild(objTrans); - - int flags = ObjectFile.RESIZE; - if (!noTriangulate) flags |= ObjectFile.TRIANGULATE; - if (!noStripify) flags |= ObjectFile.STRIPIFY; - ObjectFile f = new ObjectFile(flags, - (float)(creaseAngle * Math.PI / 180.0)); - Scene s = null; - try { - s = f.load(filename); - } - catch (FileNotFoundException e) { - e.printStackTrace(); - System.exit(1); - } - catch (ParsingErrorException e) { - e.printStackTrace(); - System.exit(1); - } - catch (IncorrectFormatException e) { - e.printStackTrace(); - System.exit(1); - } - - // Set vertex and fragment shader program for all Shape3D nodes in scene - String vertexProgram = null; - String fragmentProgram = null; - try { - vertexProgram = StringIO.readFully("./simple_vp.cg"); - fragmentProgram = StringIO.readFully("./simple_fp.cg"); - } - catch (IOException e) { - e.printStackTrace(); - System.exit(1); - } - Shader[] shaders = new Shader[2]; - shaders[0] = new SourceCodeShader(Shader.SHADING_LANGUAGE_CG, - Shader.SHADER_TYPE_VERTEX, - vertexProgram); - shaders[1] = new SourceCodeShader(Shader.SHADING_LANGUAGE_CG, - Shader.SHADER_TYPE_FRAGMENT, - fragmentProgram); - ShaderProgram shaderProgram = new CgShaderProgram(); - shaderProgram.setShaders(shaders); - setShaderProgram(s.getSceneGroup(), shaderProgram); - - objTrans.addChild(s.getSceneGroup()); - - bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - if (spin) { - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - } - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.5f); - Background bgNode = new Background(bgColor); - bgNode.setApplicationBounds(bounds); - objRoot.addChild(bgNode); - - return objRoot; - } - - private void usage() - { - System.out.println( - "Usage: java ObjLoadCg [-s] [-n] [-t] [-c degrees] <.obj file>"); - System.out.println(" -s Spin (no user interaction)"); - System.out.println(" -n No triangulation"); - System.out.println(" -t No stripification"); - System.out.println( - " -c Set crease angle for normal generation (default is 60 without"); - System.out.println( - " smoothing group info, otherwise 180 within smoothing groups)"); - System.exit(0); - } // End of usage - - - - public void init() { - if (filename == null) { - // Applet - try { - URL path = getCodeBase(); - filename = new URL(path.toString() + "./galleon.obj"); - } - catch (MalformedURLException e) { - System.err.println(e); - System.exit(1); - } - } - - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // add mouse behaviors to the ViewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - PlatformGeometry pg = new PlatformGeometry(); - - // Set up the ambient light - Color3f ambientColor = new Color3f(0.1f, 0.1f, 0.1f); - AmbientLight ambientLightNode = new AmbientLight(ambientColor); - ambientLightNode.setInfluencingBounds(bounds); - pg.addChild(ambientLightNode); - - // Set up the directional lights - Color3f light1Color = new Color3f(1.0f, 0.2f, 0.4f); - Vector3f light1Direction = new Vector3f(-1.0f, -1.0f, -1.0f); - Color3f light2Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light2Direction = new Vector3f(1.0f, 1.0f, 1.0f); - - DirectionalLight light1 - = new DirectionalLight(light1Color, light1Direction); - light1.setInfluencingBounds(bounds); - pg.addChild(light1); - - DirectionalLight light2 - = new DirectionalLight(light2Color, light2Direction); - light2.setInfluencingBounds(bounds); - pg.addChild(light2); - - viewingPlatform.setPlatformGeometry( pg ); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - viewingPlatform.setNominalViewingTransform(); - - if (!spin) { - OrbitBehavior orbit = new OrbitBehavior(c, - OrbitBehavior.REVERSE_ALL); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - } - - /* - // Limit the frame rate to 100 Hz - u.getViewer().getView().setMinimumFrameCycleTime(10); - */ - - u.addBranchGraph(scene); - } - - // Set shader program for all nodes in specified branch graph - private void setShaderProgram(BranchGroup g, ShaderProgram shaderProgram) { - ShaderAppearance myApp = new ShaderAppearance(); - Material mat = new Material(); - Texture2D tex2d = new Texture2D(); - myApp.setCapability(Appearance.ALLOW_TEXTURE_WRITE); - myApp.setShaderProgram(shaderProgram); - myApp.setMaterial(mat); - myApp.setTexture(tex2d); - setShaderProgram(g, myApp); - } - - // Recursively set shader program for all children of specified group - private void setShaderProgram(Group g, - ShaderAppearance myApp) { - - Enumeration e = g.getAllChildren(); - while (e.hasMoreElements()) { - Node n = (Node)(e.nextElement()); - if (n instanceof Group) { - setShaderProgram((Group)n, myApp); - } - else if (n instanceof Shape3D) { - Shape3D s = (Shape3D)n; - s.setAppearance(myApp); - } - } - } - - // Caled if running as a program - public ObjLoadCg(String[] args) { - if (args.length != 0) { - for (int i = 0 ; i < args.length ; i++) { - if (args[i].startsWith("-")) { - if (args[i].equals("-s")) { - spin = true; - } else if (args[i].equals("-n")) { - noTriangulate = true; - } else if (args[i].equals("-t")) { - noStripify = true; - } else if (args[i].equals("-c")) { - if (i < args.length - 1) { - creaseAngle = (new Double(args[++i])).doubleValue(); - } else usage(); - } else { - usage(); - } - } else { - try { - if ((args[i].indexOf("file:") == 0) || - (args[i].indexOf("http") == 0)) { - filename = new URL(args[i]); - } - else if (args[i].charAt(0) != '/') { - filename = new URL("file:./" + args[i]); - } - else { - filename = new URL("file:" + args[i]); - } - } - catch (MalformedURLException e) { - System.err.println(e); - System.exit(1); - } - } - } - } - } - - - - // Running as an applet - public ObjLoadCg() { - } - - public void destroy() { - u.cleanup(); - } - - - - // - // The following allows ObjLoadCg to be run as an application - // as well as an applet - // - public static void main(String[] args) { - new MainFrame(new ObjLoadCg(args), 700, 700); - } -} diff --git a/src/CgShaderTest/SphereCg.java b/src/CgShaderTest/SphereCg.java deleted file mode 100644 index 495036e..0000000 --- a/src/CgShaderTest/SphereCg.java +++ /dev/null @@ -1,346 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.io.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.Sphere; -import com.sun.j3d.utils.shader.StringIO; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.util.Enumeration; -import java.net.URL; -import java.net.MalformedURLException; - -/** - * Simple CG Shader test program - */ -public class SphereCg extends Applet { - - // Constants for type of light to use - private static final int DIRECTIONAL_LIGHT = 0; - private static final int POINT_LIGHT = 1; - private static final int SPOT_LIGHT = 2; - - // Flag indicates type of lights: directional, point, or spot - // lights. This flag is set based on command line argument - private static int lightType = DIRECTIONAL_LIGHT; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph(SimpleUniverse u) { - Color3f eColor = new Color3f(0.0f, 0.0f, 0.0f); - Color3f sColor = new Color3f(1.0f, 1.0f, 1.0f); - Color3f objColor = new Color3f(0.6f, 0.6f, 0.6f); - Color3f lColor1 = new Color3f(1.0f, 0.0f, 0.0f); - Color3f lColor2 = new Color3f(0.0f, 1.0f, 0.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.2f); - - Transform3D t; - - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create a bounds for the background and lights - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - Background bg = new Background(bgColor); - bg.setApplicationBounds(bounds); - objScale.addChild(bg); - - // Create a Sphere object, generate one copy of the sphere, - // and add it into the scene graph. - ShaderAppearance a = new ShaderAppearance(); - Material m = new Material(objColor, eColor, objColor, sColor, 100.0f); - m.setLightingEnable(true); - Texture t2d = new Texture2D(); - a.setTexture(t2d); - a.setCapability(Appearance.ALLOW_TEXTURE_WRITE); - - String vertexProgram = null; - String fragmentProgram = null; - try { - vertexProgram = StringIO.readFully("./simple_vp.cg"); - fragmentProgram = StringIO.readFully("./simple_fp.cg"); - } - catch (IOException e) { - e.printStackTrace(); - System.exit(1); - } - Shader[] shaders = new Shader[2]; - shaders[0] = new SourceCodeShader(Shader.SHADING_LANGUAGE_CG, - Shader.SHADER_TYPE_VERTEX, - vertexProgram); - shaders[1] = new SourceCodeShader(Shader.SHADING_LANGUAGE_CG, - Shader.SHADER_TYPE_FRAGMENT, - fragmentProgram); - ShaderProgram shaderProgram = new CgShaderProgram(); - shaderProgram.setShaders(shaders); - - a.setShaderProgram(shaderProgram); - a.setMaterial(m); - Sphere sph = new Sphere(1.0f, Sphere.GENERATE_NORMALS, 200, a); - objScale.addChild(sph); - - // Create the transform group node for the each light and initialize - // it to the identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add them to the root - // of the subgraph. - TransformGroup l1RotTrans = new TransformGroup(); - l1RotTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objScale.addChild(l1RotTrans); - - TransformGroup l2RotTrans = new TransformGroup(); - l2RotTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objScale.addChild(l2RotTrans); - - // Create transformations for the positional lights - t = new Transform3D(); - Vector3d lPos1 = new Vector3d(0.0, 0.0, 2.0); - t.set(lPos1); - TransformGroup l1Trans = new TransformGroup(t); - l1RotTrans.addChild(l1Trans); - - t = new Transform3D(); - Vector3d lPos2 = new Vector3d(0.5, 0.8, 2.0); - t.set(lPos2); - TransformGroup l2Trans = new TransformGroup(t); - l2RotTrans.addChild(l2Trans); - - /* - // Create Geometry for point lights - ColoringAttributes caL1 = new ColoringAttributes(); - ColoringAttributes caL2 = new ColoringAttributes(); - caL1.setColor(lColor1); - caL2.setColor(lColor2); - Appearance appL1 = new Appearance(); - Appearance appL2 = new Appearance(); - appL1.setColoringAttributes(caL1); - appL2.setColoringAttributes(caL2); - l1Trans.addChild(new Sphere(0.05f, appL1)); - l2Trans.addChild(new Sphere(0.05f, appL2)); - */ - - // Create lights - AmbientLight aLgt = new AmbientLight(alColor); - - Light lgt1 = null; - Light lgt2 = null; - - Point3f lPoint = new Point3f(0.0f, 0.0f, 0.0f); - Point3f atten = new Point3f(1.0f, 0.0f, 0.0f); - Vector3f lDirect1 = new Vector3f(lPos1); - Vector3f lDirect2 = new Vector3f(lPos2); - lDirect1.negate(); - lDirect2.negate(); - - switch (lightType) { - case DIRECTIONAL_LIGHT: - lgt1 = new DirectionalLight(lColor1, lDirect1); - lgt2 = new DirectionalLight(lColor2, lDirect2); - break; - case POINT_LIGHT: - lgt1 = new PointLight(lColor1, lPoint, atten); - lgt2 = new PointLight(lColor2, lPoint, atten); - break; - case SPOT_LIGHT: - lgt1 = new SpotLight(lColor1, lPoint, atten, lDirect1, - 25.0f * (float)Math.PI / 180.0f, 10.0f); - lgt2 = new SpotLight(lColor2, lPoint, atten, lDirect2, - 25.0f * (float)Math.PI / 180.0f, 10.0f); - break; - } - - // Set the influencing bounds - aLgt.setInfluencingBounds(bounds); - lgt1.setInfluencingBounds(bounds); - lgt2.setInfluencingBounds(bounds); - - // Add the lights into the scene graph - objScale.addChild(aLgt); - l1Trans.addChild(lgt1); - l2Trans.addChild(lgt2); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into the - // scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotor1Alpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - RotationInterpolator rotator1 = - new RotationInterpolator(rotor1Alpha, - l1RotTrans, - yAxis, - 0.0f, (float) Math.PI*2.0f); - rotator1.setSchedulingBounds(bounds); - l1RotTrans.addChild(rotator1); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into the - // scene graph. - Alpha rotor2Alpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 1000, 0, 0, - 0, 0, 0); - RotationInterpolator rotator2 = - new RotationInterpolator(rotor2Alpha, - l2RotTrans, - yAxis, - 0.0f, 0.0f); - bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotator2.setSchedulingBounds(bounds); - l2RotTrans.addChild(rotator2); - - // Create a position interpolator and attach it to the view - // platform - TransformGroup vpTrans = - u.getViewingPlatform().getViewPlatformTransform(); - Transform3D axisOfTranslation = new Transform3D(); - Alpha transAlpha = new Alpha(-1, - Alpha.INCREASING_ENABLE | - Alpha.DECREASING_ENABLE, - 0, 0, - 5000, 0, 0, - 5000, 0, 0); - axisOfTranslation.rotY(-Math.PI/2.0); - PositionInterpolator translator = - new PositionInterpolator(transAlpha, - vpTrans, - axisOfTranslation, - 2.0f, 3.5f); - translator.setSchedulingBounds(bounds); - objScale.addChild(translator); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public SphereCg() { - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - u = new SimpleUniverse(c); - BranchGroup scene = createSceneGraph(u); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - /* - // Limit the frame rate to 100 Hz - u.getViewer().getView().setMinimumFrameCycleTime(10); - */ - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows SphereCg to be run as an application - // as well as an applet - // - public static void main(String[] args) { - // Parse the Input Arguments - String usage = "Usage: java SphereCg [-point | -spot | -dir]"; - for (int i = 0; i < args.length; i++) { - if (args[i].startsWith("-")) { - if (args[i].equals("-point")) { - /* - System.out.println("Using point lights"); - lightType = POINT_LIGHT; - */ - System.out.println("Point lights not yet implemented, option ignored"); - } - else if (args[i].equals("-spot")) { - /* - System.out.println("Using spot lights"); - lightType = SPOT_LIGHT; - */ - System.out.println("Spot lights not yet implemented, option ignored"); - } - else if (args[i].equals("-dir")) { - System.out.println("Using directional lights"); - lightType = DIRECTIONAL_LIGHT; - } - else { - System.out.println(usage); - System.exit(0); - } - } - else { - System.out.println(usage); - System.exit(0); - } - } - - new MainFrame(new SphereCg(), 700, 700); - } -} diff --git a/src/CgShaderTest/build.xml b/src/CgShaderTest/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/CgShaderTest/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/CgShaderTest/simple_fp.cg b/src/CgShaderTest/simple_fp.cg deleted file mode 100644 index e9cd44b..0000000 --- a/src/CgShaderTest/simple_fp.cg +++ /dev/null @@ -1,68 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -// Simple fragment program to attenuate the input fragment color as a -// function of the distance of the fragment position from the center -// of the window - -// define inputs from vertex shader to fragment shader -struct vertin -{ - float4 HPosition : POSITION; - float4 FragPos : TEXCOORD0; - float4 Color0 : COLOR0; -}; - -float4 main(vertin IN) : COLOR -{ - // Compute distance from center in range [0.0, 1.0] - float2 dist = min(abs(IN.FragPos.xy), 1.0f); - float2 invDist = 1.0f - dist; - - // Compute attenuation - float atten = invDist.x * invDist.y; - float4 outcolor = float4(IN.Color0 * atten); - - return outcolor; -} diff --git a/src/CgShaderTest/simple_vp.cg b/src/CgShaderTest/simple_vp.cg deleted file mode 100644 index d030818..0000000 --- a/src/CgShaderTest/simple_vp.cg +++ /dev/null @@ -1,167 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/*********************************************************************NVMH3**** -Path: NVSDK\Common\media\programs -File: simple.cg - -Copyright NVIDIA Corporation 2002 -TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED -*AS IS* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS -BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES -WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, -BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) -ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF NVIDIA HAS -BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - - -Comments: - -******************************************************************************/ - -// Simple vertex shader, derived from NVIDIA's simple.cg sample -// shader, that modulates the lit color with a noise pattern based on -// vertex position. - -// define inputs from application -struct appin -{ - float4 Position : POSITION; - float4 Normal : NORMAL; -}; - -// define outputs from vertex shader -struct vertout -{ - float4 HPosition : POSITION; - float4 FragPos : TEXCOORD0; - float4 Color0 : COLOR0; -}; - -vertout main(appin IN, - uniform float4x4 ModelViewProj, - uniform float4x4 ModelViewIT, - uniform float4 LightVec, - uniform float4 LightColor, - uniform float4 DiffuseMaterial, - uniform float4 SpecularMaterial) -{ - vertout OUT; - -// Assume that the profile is PROFILE_ARBVP1... -// #ifdef PROFILE_ARBVP1 - ModelViewProj = glstate.matrix.mvp; - ModelViewIT = glstate.matrix.invtrans.modelview[0]; - LightVec = glstate.light[0].position; - LightColor = glstate.light[0].diffuse; - DiffuseMaterial = glstate.material.front.diffuse; - SpecularMaterial = glstate.material.front.specular; -// #endif - - // transform vertex position into homogenous clip-space - OUT.HPosition = mul(ModelViewProj, IN.Position); - - // Output the post-perspective-divide position as FragPos - float invW = 1.0f / OUT.HPosition.w; - OUT.FragPos = OUT.HPosition * invW; - - // transform normal from model-space to view-space - float3 normalVec = normalize(mul(ModelViewIT, IN.Normal).xyz); - - // store normalized light vector - float3 lightVec = normalize(LightVec.xyz); - - // calculate half angle vector - float3 eyeVec = float3(0.0, 0.0, 1.0); - float3 halfVec = normalize(lightVec + eyeVec); - - // calculate diffuse component - float diffuse = dot(normalVec, lightVec); - - // calculate specular component - float specular = dot(normalVec, halfVec); - - // The lit() function is a handy function in the standard library that - // can be used to accelerate your lighting calculations. - // - // This function return a vector containing these values: - // result.x = 1.0; - // result.y = max(diffuse, 0); - // result.z = if (result.y > 0.0) then pow(specular, 32) else 0.0 - // result.w = 1.0; - - // Use the lit function to compute lighting vector from diffuse and - // specular values - float4 lighting = lit(diffuse, specular, 32); - - // combine diffuse and specular contributions - float3 color0 = (lighting.y * DiffuseMaterial.xyz * LightColor.xyz) + - (lighting.z * SpecularMaterial.xyz); - - // Generate a pseudo-random noise pattern -// float3 xyz = clamp((normalVec.xyz + 1.0) * 0.5, 0.0, 1.0); - float3 xyz = clamp((OUT.HPosition.xyz + 1.0) * 0.5, 0.0, 1.0); - - xyz = frac(xyz * 262144.0); - float randSeed = frac(3.0 * xyz.x + 5.0 * xyz.y + 7.0 * xyz.z); - - float3 altColor; - - randSeed = frac(37.0 * randSeed); - altColor.x = randSeed * 0.5 + 0.5; - randSeed = frac(37.0 * randSeed); - altColor.y = randSeed * 0.5 + 0.5; - randSeed = frac(37.0 * randSeed); - altColor.z = randSeed * 0.5 + 0.5; - randSeed = frac(37.0 * randSeed); - float altAlpha = randSeed * 0.5; - - // Apply noise and output final vertex color - OUT.Color0.rgb = lerp(color0, altColor, altAlpha); - OUT.Color0.a = 1.0; - - return OUT; -} diff --git a/src/ConfiguredUniverse/ConfigObjLoad.java b/src/ConfiguredUniverse/ConfigObjLoad.java deleted file mode 100644 index 7cd5019..0000000 --- a/src/ConfiguredUniverse/ConfigObjLoad.java +++ /dev/null @@ -1,309 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.loaders.objectfile.ObjectFile; -import com.sun.j3d.loaders.ParsingErrorException; -import com.sun.j3d.loaders.IncorrectFormatException; -import com.sun.j3d.loaders.Scene; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.io.*; -import com.sun.j3d.utils.behaviors.vp.*; -import com.sun.j3d.utils.behaviors.sensor.Mouse6DPointerBehavior; -import java.net.URL; -import java.net.MalformedURLException; -import java.util.Map; - -public class ConfigObjLoad { - - private boolean spin = false; - private boolean noTriangulate = false; - private boolean noStripify = false; - private double creaseAngle = 60.0; - private URL filename = null; - - private ConfiguredUniverse u; - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.7); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - objScale.addChild(objTrans); - - int flags = ObjectFile.RESIZE; - if (!noTriangulate) flags |= ObjectFile.TRIANGULATE; - if (!noStripify) flags |= ObjectFile.STRIPIFY; - ObjectFile f = new ObjectFile(flags, - (float)(creaseAngle * Math.PI / 180.0)); - Scene s = null; - try { - s = f.load(filename); - } - catch (FileNotFoundException e) { - System.err.println(e); - System.exit(1); - } - catch (ParsingErrorException e) { - System.err.println(e); - System.exit(1); - } - catch (IncorrectFormatException e) { - System.err.println(e); - System.exit(1); - } - - objTrans.addChild(s.getSceneGroup()); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - if (spin) { - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - } - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.5f); - Background bgNode = new Background(bgColor); - bgNode.setApplicationBounds(bounds); - objRoot.addChild(bgNode); - - // Set up the ambient light - Color3f ambientColor = new Color3f(0.1f, 0.1f, 0.1f); - AmbientLight ambientLightNode = new AmbientLight(ambientColor); - ambientLightNode.setInfluencingBounds(bounds); - objRoot.addChild(ambientLightNode); - - // Set up the directional lights - Color3f light1Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light1Direction = new Vector3f(1.0f, 1.0f, 1.0f); - Color3f light2Color = new Color3f(1.0f, 1.0f, 1.0f); - Vector3f light2Direction = new Vector3f(-1.0f, -1.0f, -1.0f); - - DirectionalLight light1 - = new DirectionalLight(light1Color, light1Direction); - light1.setInfluencingBounds(bounds); - objRoot.addChild(light1); - - DirectionalLight light2 - = new DirectionalLight(light2Color, light2Direction); - light2.setInfluencingBounds(bounds); - objRoot.addChild(light2); - - return objRoot; - } - - private void usage() - { - System.out.println( - "Usage: java ObjLoad [-s] [-n] [-t] [-c degrees] <.obj file>"); - System.out.println(" -s Spin (no user interaction)"); - System.out.println(" -n No triangulation"); - System.out.println(" -t No stripification"); - System.out.println( - " -c Set crease angle for normal generation (default is 60 without"); - System.out.println( - " smoothing group info, otherwise 180 within smoothing groups)"); - System.exit(0); - } // End of usage - - - public void init() { - if (filename == null) { - try { - filename = new URL("file:../geometry/galleon.obj"); - } - catch (MalformedURLException e) { - System.err.println(e); - System.exit(1); - } - } - - // Get the config file URL from the j3d.configURL property or use the - // default config file "j3d1x1-window" in the current directory. - URL configURL = ConfiguredUniverse.getConfigURL("file:j3d1x1-window"); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new ConfiguredUniverse(configURL); - - // Get the ViewingPlatform. - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - // This will move the ViewPlatform back a bit so the objects in the - // scene can be viewed. This will only have an effect if the config - // file sets the window eyepoint policy to something other than - // RELATIVE_TO_COEXISTENCE, which is the default eyepoint policy - // applied by ConfiguredUniverse. - // - // The default view attach policy for ConfiguredUniverse applications - // is NOMINAL_SCREEN. This sets the view platform origin in the - // physical world to the center of coexistence, which allows eye - // positions expressed relative to coexistence to see the appropriate - // field of view automatically. - viewingPlatform.setNominalViewingTransform(); - - // Add a ViewPlatformBehavior if not specified in the config file. - if (!spin && viewingPlatform.getViewPlatformBehavior() == null) { - OrbitBehavior orbit = new OrbitBehavior(u.getCanvas(), - OrbitBehavior.REVERSE_ALL); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - } - - // See if there's a 6 degree of freedom mouse in the environment. - // We look for one named "mouse6d". - Map sensorMap = null; - sensorMap = u.getNamedSensors(); - if (sensorMap != null) { - Sensor mouse6d = (Sensor)sensorMap.get("mouse6d"); - if (mouse6d != null) { - Mouse6DPointerBehavior behavior = - new Mouse6DPointerBehavior(mouse6d, 1.0, true); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - behavior.setSchedulingBounds(bounds); - - scene.addChild(behavior); - scene.addChild(behavior.getEcho()); - } - } - - // Listen for a typed "q", "Q", or "Escape" key on each canvas to - // allow a convenient exit from full screen configurations. - Canvas3D[] canvases; - canvases = u.getViewer().getCanvas3Ds(); - - class QuitListener extends KeyAdapter { - public void keyTyped(KeyEvent e) { - char c = e.getKeyChar(); - if (c == 'q' || c == 'Q' || c == 27) - System.exit(0); - } - } - - QuitListener quitListener = new QuitListener(); - for (int i = 0; i < canvases.length; i++) - canvases[i].addKeyListener(quitListener); - - // Make the scenegraph live. - u.addBranchGraph(scene); - } - - public ConfigObjLoad(String[] args) { - if (args.length != 0) { - for (int i = 0; i < args.length; i++) { - if (args[i].startsWith("-")) { - if (args[i].equals("-s")) { - spin = true; - } else if (args[i].equals("-n")) { - noTriangulate = true; - } else if (args[i].equals("-t")) { - noStripify = true; - } else if (args[i].equals("-c")) { - if (i < args.length - 1) { - creaseAngle = (new Double(args[++i])).doubleValue(); - } else usage(); - } else { - usage(); - } - } else { - try { - if ((args[i].indexOf("file:") == 0) || - (args[i].indexOf("http") == 0)) { - filename = new URL(args[i]); - } - else if (args[i].charAt(0) != '/') { - filename = new URL("file:./" + args[i]); - } - else { - filename = new URL("file:" + args[i]); - } - } - catch (MalformedURLException e) { - System.err.println(e); - System.exit(1); - } - } - } - } - init(); - } - - public static void main(String[] args) { - new ConfigObjLoad(args); - } -} diff --git a/src/ConfiguredUniverse/README.txt b/src/ConfiguredUniverse/README.txt deleted file mode 100644 index fd2af8e..0000000 --- a/src/ConfiguredUniverse/README.txt +++ /dev/null @@ -1,142 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -This directory contains a simple example application that demonstrates the -ConfiguredUniverse utility class available in the com.sun.j3d.utils.universe -package. J3DFly, available separately, is a fully featured application that -also uses ConfiguredUniverse. - -ConfiguredUniverse is an extension of SimpleUniverse that can set up an -interactive viewing environment based upon the contents of a site-specific -configuration file. This is useful when an application needs to run without -change across a broad range of viewing configurations and locally available -input and audio devices. InputDevice implementations can be instantiated by -ConfiguredUniverse and their Sensors can be retrieved by applications along -with the names bound to them in the configuration file. - -Supported viewing configurations include windows on conventional desktops, -stereo-enabled views, fullscreen immersive displays on single or multiple -screens, and virtual reality installations such as cave and head-mounted -displays incorporating 6-degree-of-freedom sensor devices. - -The ConfigObjLoad application is a modified version of the ObjLoad example -program which uses the ConfiguredUniverse utility instead of SimpleUniverse. -It also differs in the following other respects: - - It is an application and cannot be run in a browser. ConfiguredUniverse - creates a JFrame, JPanel, and Canvas3D itself for each screen and is - oriented towards multiple fullscreen viewing environments, although - conventional windowed displays are also supported. The components - created are easily accessable so applications can still incorporate them - into their own user interfaces. - - The configuration file to load is specified by the j3d.configURL - property. If one is not specified, it will load the file j3d1x1-window - in this directory. - - Alternative custom view platform behaviors other than OrbitBehavior can - be used by specifying the behavior in the configuration file. - - It can retrieve a 6DOF Sensor specified in the configuration file and - use it to demonstrate the Mouse6DPointerBehavior class. - - Typing a "q" or the Escape key will terminate the example program. This - is useful for fullscreen configurations. - -To load a specific configuration file, set the j3d.configURL property on the -command line: - - java -Dj3d.configURL=<URL string> ConfigObjLoad <args> <obj file> - -For example, to load j3d1x2-rot30 in the current directory, run - - java -Dj3d.configURL=file:j3d1x2-rot30 ConfigObjLoad <args> <obj file> - -This directory includes the following sample configuration files. Normally -a configuration file is site-specific but many of these can used as-is. -Others may need customization for screen sizes, available input devices, and -PhysicalBody parameters. - - j3d1x1: single fullscreen desktop configuration. - - j3d1x1-behavior: single fullscreen desktop configuration with a - configurable view platform behavior. - - j3d1x1-stereo: single fullscreen desktop configuration with stereo - viewing. - - j3d1x1-vr: single fullscreen desktop configuration with stereo viewing, - head tracker, and 6DOF mouse. - - j3d1x1-window: single screen windowed desktop configuration. - - j3d1x2-flat: dual-screen flat desktop configuration. - - j3d1x2-rot30: dual-screen desktop configuration with each screen rotated - toward the other by 30 degrees about Y. - - j3d1x3-cave: 3-projector configuration with screens to the left, front, - and right of the user. - - j3d1x3-cave-vr: 3-projector configuration with screens to the left, - front, and right of the user. Includes head tracking and stereo - viewing. - - j3d1x3-rot45: 3-screen desktop configuration with left and right screens - angled by 45 degrees from the center screen. - - j3d2x2-flat: 4-screen projector configuration arranged in a 2x2 power - wall. - -Note: JDK 1.4 or newer is required when configuring multiple screens if the -X11 Xinerama extension is being used to create a single virtual screen. -This is due to a limitation of the getScreenDevices() method in the JDK 1.3 -version of GraphicsConfiguration which returns only a single GraphicsDevice -from a virtual screen. ConfiguredUniverse will report this condition as an -error in specifying more screens than are available. - -Also: Graphics performance may be degraded in some environments when using a -virtual screen device. See the description of the j3d.disableXinerama -property for possible performance improvements when using Xinerama. - diff --git a/src/ConfiguredUniverse/build.xml b/src/ConfiguredUniverse/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/ConfiguredUniverse/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/ConfiguredUniverse/j3d1x1 b/src/ConfiguredUniverse/j3d1x1 deleted file mode 100644 index 41173e3..0000000 --- a/src/ConfiguredUniverse/j3d1x1 +++ /dev/null @@ -1,98 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/* - ************************************************************************ - * - * Java 3D configuration file for a single fullscreen desktop configuration. - * - ************************************************************************ - */ - -// Create a new screen object and associate it with a logical name and a -// number. This number is used as an index to retrieve the AWT GraphicsDevice -// from the array that GraphicsEnvironment.getScreenDevices() returns. -// -// NOTE: The GraphicsDevice order in the array is specific to the local -// site and display system. -// -(NewScreen center 0) - -// Create a fullscreen window -// -(ScreenAttribute center WindowSize NoBorderFullScreen) - -// Set the available image area for the full screen. This is important when an -// explicit ScreenScale view attribute is defined for precise scaling between -// objects in the virtual world and their projections into the physical world. -// The defaults are 0.365 meters for width and 0.292 meters for height. -// -(ScreenAttribute center PhysicalScreenWidth 0.360) -(ScreenAttribute center PhysicalScreenHeight 0.288) - -// Set the TrackerBaseToImagePlate transform for this screen. The coexistence -// to tracker base transform is identity by default, so the tracker base origin -// and orientation will also set the origin and orientation of coexistence -// coordinates in the physical world. This is the primary purpose of setting -// this transform when neither head tracking nor multiple screens are being -// used. -// -// The tracker base and center of coexistence are set here to the middle of the -// screen's image plate. Their basis vectors are aligned with the image plate -// basis vectors. The physical eyepoint position will be set relative to -// coexistence coordinates below. -// -(ScreenAttribute center TrackerBaseToImagePlate - (Translate 0.180 0.144 0.000)) - -// Create a view using the defined screen. -// -(NewView view0) -(ViewAttribute view0 Screen center) - -// Set the eyepoint relative to coexistence coordinates. Here it is set 45cm -// toward the user along +Z. Skewed projections can be created by offsetting -// the eyepoint along X and/or Y. -// -(ViewAttribute view0 CenterEyeInCoexistence (0.0 0.0 0.45)) diff --git a/src/ConfiguredUniverse/j3d1x1-behavior b/src/ConfiguredUniverse/j3d1x1-behavior deleted file mode 100644 index d291913..0000000 --- a/src/ConfiguredUniverse/j3d1x1-behavior +++ /dev/null @@ -1,149 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/* - ************************************************************************ - * - * Java 3D configuration file for single fullscreen desktop configuration. - * A view platform behavior is created and configured here as well. - * - ************************************************************************ - */ - -// Create a new screen object and associate it with a logical name and a -// number. This number is used as an index to retrieve the AWT GraphicsDevice -// from the array that GraphicsEnvironment.getScreenDevices() returns. -// -// NOTE: The GraphicsDevice order in the array is specific to the local -// site and display system. -// -(NewScreen center 0) - -// Create a fullscreen window -// -(ScreenAttribute center WindowSize NoBorderFullScreen) - -// Set the available image area for the full screen. -// -(ScreenAttribute center PhysicalScreenWidth 0.360) -(ScreenAttribute center PhysicalScreenHeight 0.288) - -// Set the TrackerBaseToImagePlate transform for this screen. The coexistence -// to tracker base transform is identity by default, so the tracker base origin -// and orientation will also set the origin and orientation of coexistence -// coordinates in the physical world. This is the primary purpose of setting -// this transform when neither head tracking nor multiple screens are being -// used. -// -// The tracker base and center of coexistence are set here to the middle of the -// screen's image plate. Their basis vectors are aligned with the image plate -// basis vectors. The physical eyepoint position will be set relative to -// coexistence coordinates below. -// -(ScreenAttribute center TrackerBaseToImagePlate - (Translate 0.180 0.144 0.000)) - -// Create a view using the defined screen. -// -(NewView view0) -(ViewAttribute view0 Screen center) - -// Set the eyepoint relative to coexistence coordinates. Here it is set 45cm -// toward the user along +Z. Skewed projections can be set by by offsetting -// the eyepoint along X and Y. -// -(ViewAttribute view0 CenterEyeInCoexistence (0.0 0.0 0.45)) - -// Create a view platform behavior. Here we use OrbitBehavior, although any -// concrete subclass of the abstract ViewPlatformBehavior with a parameterless -// constructor could be used. The logical name to assign to this behavior is -// specified by the 2nd argument to the NewViewPlatformBehavior command, while -// the 3rd argument is the name of the ViewPlatformBehavior subclass. It is -// instantiated through introspection. -// -// Attributes defined by the abstract ViewPlatformBehavior superclass itself -// can be set directly with the ViewPlatformBehaviorAttribute command. The -// details of the subclass implementation are not known to ConfiguredUniverse, -// so any configuration information needed by such a subclass is set by the -// ViewPlatformBehaviorProperty command. The property name specified by that -// command is taken to be a method name of the subclass and invoked through -// introspection. -// -// View platform behaviors often need sensors or canvases as event sources to -// drive the behavior action. An implementation of ViewPlatformBehavior always -// gets the current ViewingPlatform through the setViewingPlatform() method. -// The canvases used by the ViewingPlatform can be retrieved by calling its -// getViewers() method and then calling each Viewer's getCanvas3Ds() -// method. Sensors can be retrived by calling the ViewingPlatform method -// getUniverse(), checking to see if the returned SimpleUniverse is a -// ConfiguredUniverse, and then calling its getNamedSensors() method. -// -(NewViewPlatformBehavior vpb com.sun.j3d.utils.behaviors.vp.OrbitBehavior) - -// Set the scheduling bounds to be a BoundingSphere with its center at -// (0.0 0.0 0.0) and a radius of 100 meters. -// -(ViewPlatformBehaviorAttribute vpb SchedulingBounds - (BoundingSphere (0.0 0.0 0.0) 100.0)) - -// Set properties specific to OrbitBehavior. All arguments following the -// method name are wrapped and passed to the specified method as an array of -// Objects. Strings "true" and "false" get turned into Boolean, and number -// strings get turned into Double. Constructs such as (0.0 1.0 2.0) and -// ((0.0 1.0 2.0 0.5) (3.0 4.0 5.0 1.0) (6.0 7.0 8.0 0.0)) get converted to -// Point3d and Matrix4d respectively. Note that last row of a Matrix4d doesn't -// need to be specified; it is implicitly (0.0 0.0 0.0 1.0). -// -// The REVERSE_ALL flags are usually passed to the OrbitBehavior constructor. -// Since it is being instantiated with its parameterless constructor the -// reverse flags are set here explicitly. -// -(ViewPlatformBehaviorProperty vpb ReverseTranslate true) -(ViewPlatformBehaviorProperty vpb ReverseRotate true) -(ViewPlatformBehaviorProperty vpb ReverseZoom true) - -// Create a new view platform and set the view platform behavior. -// -(NewViewPlatform vp) -(ViewPlatformAttribute vp ViewPlatformBehavior vpb) diff --git a/src/ConfiguredUniverse/j3d1x1-stereo b/src/ConfiguredUniverse/j3d1x1-stereo deleted file mode 100644 index 3db4070..0000000 --- a/src/ConfiguredUniverse/j3d1x1-stereo +++ /dev/null @@ -1,113 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/* - ************************************************************************ - * - * Java 3D configuration file for single fullscreen stereo desktop - * configuration with no head tracking. - * - ************************************************************************ - */ - -// Create a new screen object and associate it with a logical name and a -// number. This number is used as an index to retrieve the AWT GraphicsDevice -// from the array that GraphicsEnvironment.getScreenDevices() returns. -// -// NOTE: The GraphicsDevice order in the array is specific to the local -// site and display system. -// -(NewScreen center 0) - -// Create a fullscreen window -// -(ScreenAttribute center WindowSize NoBorderFullScreen) - -// Set the available image area for the full screen. -// -(ScreenAttribute center PhysicalScreenWidth 0.360) -(ScreenAttribute center PhysicalScreenHeight 0.288) - -// Set the TrackerBaseToImagePlate transform for this screen. The coexistence -// to tracker base transform is identity by default, so the tracker base origin -// and orientation will also set the origin and orientation of coexistence -// coordinates in the physical world. This is the primary purpose of setting -// this transform when neither head tracking nor multiple screens are being -// used. -// -// The tracker base and center of coexistence are set here to the middle of the -// screen's image plate. Their basis vectors are aligned with the image plate -// basis vectors. The physical eyepoint position will be set relative to -// coexistence coordinates below. -// -(ScreenAttribute center TrackerBaseToImagePlate - (Translate 0.180 0.144 0.000)) - -// Define the physical body. -// -// The head origin is halfway between the eyes, with X extending to the right, -// Y up, and positive Z extending into the skull. -// -(NewPhysicalBody SiteUser) - -// Set the interpupilary distance. This sets the LeftEyePosition and -// RightEyePosition to offsets of half this distance along both directions of -// the X axis. -// -(PhysicalBodyAttribute SiteUser StereoEyeSeparation 0.066) - -// Create a view using the defined screen and physical body. -// -(NewView view0) -(ViewAttribute view0 Screen center) -(ViewAttribute view0 PhysicalBody SiteUser) - -// Set the eyepoint relative to coexistence coordinates. Here it is set 45cm -// toward the user along +Z. -// -(ViewAttribute view0 CenterEyeInCoexistence (0.0 0.0 0.45)) - -// Enable stereo viewing. -// -(ViewAttribute view0 StereoEnable true) diff --git a/src/ConfiguredUniverse/j3d1x1-vr b/src/ConfiguredUniverse/j3d1x1-vr deleted file mode 100644 index 587f481..0000000 --- a/src/ConfiguredUniverse/j3d1x1-vr +++ /dev/null @@ -1,212 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/* - ************************************************************************ - * - * Java 3D configuration file for a single screen stereo desktop display - * using a head tracker and 6DOF mouse. - * - ************************************************************************ - */ - -// Configure the head tracker. The NewDevice command binds a logical name -// (the 2nd argument) to an InputDevice implementation whose class name is -// specified in the 3rd argument. The InputDevice implementation for a head -// tracker must generate position and orientation data relative to a fixed -// frame of reference in the physical world, the "tracker base" of the Java -// 3D view model. -// -// The InputDevice is instantiated through introspection of the class name. -// Available InputDevice implementations are site-specific, so substitute -// the class name in a NewDevice command below with one that is available at -// the local site. -// -// Note that properties are used to configure an InputDevice instead of -// attributes. The details of an InputDevice implementation are not known to -// ConfiguredUniverse, so the property name is invoked as a method through -// introspection. The example properties below must be replaced with the ones -// needed, if any, by specific InputDevice implementations. -// -// All property arguments following the method name are wrapped and passed to -// the specified method as an array of Objects. Strings "true" and "false" -// get wrapped into Boolean, and number strings get wrapped into Double. -// Construct such as (0.0 1.0 2.0) and ((0.0 1.0 2.0 0.5) (3.0 4.0 5.0 1.0) -// (6.0 7.0 8.0 0.0)) get converted to Point3d and Matrix4d respectively. -// Note that last row of a Matrix4d doesn't need to be specified; it is -// implicitly (0.0 0.0 0.0 1.0). -// -(NewDevice glasses LogitechRedBarron) -(DeviceProperty glasses SerialPort "/dev/ttya") // Unix paths need quoting. -(DeviceProperty glasses ReceiverBaseline 0.1450) -(DeviceProperty glasses ReceiverLeftLeg 0.0875) -(DeviceProperty glasses ReceiverHeight 0.0470) -(DeviceProperty glasses ReceiverTopOffset 0.0000) - -// Configure an InputDevice to use for a 6 degree of freedom mouse if -// required. In some implementations the same InputDevice instance can be -// used both for head tracking and multiple peripheral sensing devices. -// This example assumes an implementation that requires multiple instances, -// one for each sensor, sharing the same physical hardware used for the -// tracker base. In either case all the sensors must generate position and -// orientation relative to the same fixed tracker base frame of reference. -// -(NewDevice wand LogitechRedBarron) -(DeviceProperty wand SerialPort "/dev/ttyb") -(DeviceProperty wand ReceiverBaseline 0.0700) -(DeviceProperty wand ReceiverLeftLeg 0.0625) -(DeviceProperty wand ReceiverHeight 0.0510) -(DeviceProperty wand ReceiverTopOffset 0.0000) - -// Create logical names for the available sensors in the specified input -// devices. The last argument is the sensor's index in the input device. -// -(NewSensor head glasses 0) -(NewSensor mouse6d wand 0) - -// Set the 6DOF mouse sensor hotspot in the local sensor coordinate system. -// The hotspot is simply the "active" point relative to the sensor origin -// which interacts with the virtual world, such as the point used for picking -// or grabbing an object. Its interpretation is up to the sensor behavior. -// -// It is set here to 10 centimeters from the base to allow reaching into the -// screen without bumping the device into the glass, and to prevent the device -// itself from obscuring the pointer echo. -// -(SensorAttribute mouse6d Hotspot (0.0 0.0 -0.10)) - - -// Create a new screen object and associate it with a logical name and a -// number. This number is used as an index to retrieve the AWT GraphicsDevice -// from the array that GraphicsEnvironment.getScreenDevices() returns. -// -// NOTE: The GraphicsDevice order in the array is specific to the local -// site and display system. -// -(NewScreen center 0) - -// Set the actual available image area. This measured as 0.350 meters in -// width and 0.245 meters in height for the monitor in the sample setup when -// running in stereo resolution. -// -(ScreenAttribute center PhysicalScreenWidth 0.350) -(ScreenAttribute center PhysicalScreenHeight 0.245) -(ScreenAttribute center WindowSize NoBorderFullScreen) - -// Set the TrackerBaseToImagePlate transform for this screen. This transforms -// points in tracker base coordinates to image plate coordinates. -// -// For this sample setup the tracker base is leaning at 50 degrees about its -// X-axis over the top edge of the monitor. The middle of the tracker base -// (its origin) is offset by (0.175, 0.345, 0.020) from the lower left -// corner of the screen (origin of the image plate). -// -(ScreenAttribute center TrackerBaseToImagePlate - (RotateTranslate (Rotate 50.000 0.000 0.000) - (Translate 0.175 0.345 0.020))) - - -// Create a physical environment. This contains the available input devices, -// audio devices, and sensors, and defines the coexistence coordinate system. -// -(NewPhysicalEnvironment SampleSite) - -// Register the input devices defined in this file. -// -(PhysicalEnvironmentAttribute SampleSite InputDevice glasses) -(PhysicalEnvironmentAttribute SampleSite InputDevice wand) - -// Register the sensor which will drive head tracking. -// -(PhysicalEnvironmentAttribute SampleSite HeadTracker head) - -// Define coexistence coordinates. -// -// Coexistence coordinates are defined relative to the tracker base to simplify -// calibration measurements, just as the tracker base is used as the common -// reference frame for the TrackerBaseToImagePlate calibration. -// -// Here the coexistence origin is set to the middle of the center screen, using -// the same basis vectors as its image plate. This will put the tracker base -// origin at (0.0 0.220 0.020) relative to the coexistence origin along its -// basis vectors. -// -(PhysicalEnvironmentAttribute SampleSite CoexistenceToTrackerBase - (TranslateRotate (Translate 0.0 -0.220 -0.020) - (Rotate -50.0 0.0 0.0))) - -// Define the physical body. -// -// The head origin is halfway between the eyes, with X extending to the right, -// Y up, and positive Z extending into the skull. -// -(NewPhysicalBody SiteUser) - -// Set the interpupilary distance. This sets the LeftEyePosition and -// RightEyePosition to offsets of half this distance along both directions of -// the X axis. -// -(PhysicalBodyAttribute SiteUser StereoEyeSeparation 0.066) - -// Define the position and orientation of the head relative to the tracker -// mounted on the head. -// -(PhysicalBodyAttribute SiteUser HeadToHeadTracker ((1.0 0.0 0.0 0.000) - (0.0 1.0 0.0 0.020) - (0.0 0.0 1.0 0.018))) - - -// Create a view using the defined screens, PhysicalEnvironment, and -// PhysicalBody. -// -(NewView view0) -(ViewAttribute view0 Screen center) -(ViewAttribute view0 PhysicalEnvironment SampleSite) -(ViewAttribute view0 PhysicalBody SiteUser) - -// Enable stereo viewing. Enable head tracking to get the position of the eyes -// with respect to coexistence. -// -(ViewAttribute view0 StereoEnable true) -(ViewAttribute view0 TrackingEnable True) diff --git a/src/ConfiguredUniverse/j3d1x1-window b/src/ConfiguredUniverse/j3d1x1-window deleted file mode 100644 index eec0e31..0000000 --- a/src/ConfiguredUniverse/j3d1x1-window +++ /dev/null @@ -1,89 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/* - ************************************************************************ - * - * Java 3D configuration file for a conventional single screen, windowed - * desktop configuration. - * - ************************************************************************ - */ - -// Create a new screen object and associate it with a logical name and a -// number. This number is used as an index to retrieve the AWT GraphicsDevice -// from the array that GraphicsEnvironment.getScreenDevices() returns. -// -// NOTE: The GraphicsDevice order in the array is specific to the local -// site and display system. -// -(NewScreen center 0) - -// Create a 700x700 pixel window on the screen. -// -(ScreenAttribute center WindowSize (700.0 700.0)) - -// Create a view using the defined screen. -// -(NewView view0) -(ViewAttribute view0 Screen center) - -// ConfiguredUniverse is oriented toward multi-screen viewing environments, so -// it sets the following attributes to those listed. For a conventional window -// on a single screen desktop configuration we need to set them back to their -// normal defaults. -// -// View.windowEyePointPolicy RELATIVE_TO_COEXISTENCE -// View.windowMovementPolicy VIRTUAL_WORLD -// View.windowResizePolicy VIRTUAL_WORLD -// View.coexistenceCenteringEnable false -// ViewPlatform.viewAttachPolicy NOMINAL_SCREEN -// -(ViewAttribute view0 WindowEyepointPolicy RELATIVE_TO_FIELD_OF_VIEW) -(ViewAttribute view0 WindowMovementPolicy PHYSICAL_WORLD) -(ViewAttribute view0 WindowResizePolicy PHYSICAL_WORLD) -(ViewAttribute view0 CoexistenceCenteringEnable true) - -(NewViewPlatform vp) -(ViewPlatformAttribute vp ViewAttachPolicy NOMINAL_HEAD) diff --git a/src/ConfiguredUniverse/j3d1x2-flat b/src/ConfiguredUniverse/j3d1x2-flat deleted file mode 100644 index 667ea52..0000000 --- a/src/ConfiguredUniverse/j3d1x2-flat +++ /dev/null @@ -1,134 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/* - ************************************************************************ - * - * Java 3D configuration file for dual-screen (flat) desktop configuration - * with no head tracking. - * - ************************************************************************ - */ - -// Create new screen objects and associate them with logical names and numbers. -// These numbers are used as indices to retrieve the AWT GraphicsDevice from -// the array that GraphicsEnvironment.getScreenDevices() returns. -// -// NOTE: The GraphicsDevice order in the array is specific to the local -// site and display system. -// -(NewScreen left 0) -(NewScreen right 1) - -// Set the screen dimensions. -// -(ScreenAttribute left PhysicalScreenWidth 0.360) -(ScreenAttribute left PhysicalScreenHeight 0.288) - -(ScreenAttribute right PhysicalScreenWidth 0.360) -(ScreenAttribute right PhysicalScreenHeight 0.288) - -// Specify full screen windows. -// -(ScreenAttribute left WindowSize NoBorderFullScreen) -(ScreenAttribute right WindowSize NoBorderFullScreen) - -// Set the TrackerBaseToImagePlate transforms for these screens. This -// transforms points in tracker base coordinates to each screen's image plate -// coordinates, where the origin of the image plate is defined to be the lower -// left corner of the screen with X increasing to the right, Y increasing to -// the top, and Z increasing away from the screen. -// -// Without head or sensor tracking the tracker base is still needed as a fixed -// frame of reference for describing the orientation and position of each -// screen to the others. The coexistence to tracker base transform is set to -// identity by default, so the tracker base origin and orientation will also -// set the origin and orientation of coexistence coordinates in the physical -// world. -// -// The tracker base and center of coexistence is set here to the middle of the -// edge shared by the two screens. -// -(ScreenAttribute left TrackerBaseToImagePlate - (Translate 0.360 0.144 0.0)) -(ScreenAttribute right TrackerBaseToImagePlate - (Translate 0.000 0.144 0.0)) - -// Sometimes it is desirable to include the bevels in between the monitors in -// the TrackerBaseToImagePlate transforms, so that the abutting bevels obscure -// the view of the virtual world instead of stretching it out between the -// monitors. For a bevel width of 4.5 cm on each monitor, the above commands -// would become the following: -// -// (ScreenAttribute left TrackerBaseToImagePlate -// (Translate 0.405 0.144 0.0)) -// (ScreenAttribute right TrackerBaseToImagePlate -// (Translate -0.045 0.144 0.0)) -// -// Conversely, a similar technique may be used to include overlap between the -// screens. This is useful for projection systems which use edge blending -// to provide seamless integration between screens. - - -// Create a view using the defined screens. -// -(NewView view0) -(ViewAttribute view0 Screen left) -(ViewAttribute view0 Screen right) - -// Set the eyepoint relative to coexistence coordinates. Here it is set 45cm -// toward the user along Z, extending out from the midpoint of the edge shared -// by the two screens. This will create the appropriate skewed projection -// frustums for each image plate. -// -// If a planar display surface is all that is required, the same effect could -// be achieved in a virtual screen enviroment such as Xinerama by simply -// creating a canvas that spans both screens. In some display environments the -// use of a canvas that spans multiple physical screens may cause significant -// performance degradation, however. -// -// See j3d1x2-rot30 for an example of a non-planar configuration that cannot be -// achieved through a single canvas spanning both screens. -// -(ViewAttribute view0 CenterEyeInCoexistence (0.0 0.0 0.45)) diff --git a/src/ConfiguredUniverse/j3d1x2-rot30 b/src/ConfiguredUniverse/j3d1x2-rot30 deleted file mode 100644 index 68f4a6e..0000000 --- a/src/ConfiguredUniverse/j3d1x2-rot30 +++ /dev/null @@ -1,99 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/* - ************************************************************************ - * - * Java 3D configuration file for a dual-screen desktop configuration - * with each screen rotated toward the other by 30 degrees about Y from - * planar. The inside angle between them is 120 degrees. - * - ************************************************************************ - */ - -// Create new screen objects and associate them with logical names and numbers. -// These numbers are used as indices to retrieve the AWT GraphicsDevice from -// the array that GraphicsEnvironment.getScreenDevices() returns. -// -// NOTE: The GraphicsDevice order in the array is specific to the local -// site and display system. -// -(NewScreen left 0) -(NewScreen right 1) - -// Set the available image areas for full screens. -// -(ScreenAttribute left PhysicalScreenWidth 0.360) -(ScreenAttribute left PhysicalScreenHeight 0.288) - -(ScreenAttribute right PhysicalScreenWidth 0.360) -(ScreenAttribute right PhysicalScreenHeight 0.288) - -// Specify full screen windows. -// -(ScreenAttribute left WindowSize NoBorderFullScreen) -(ScreenAttribute right WindowSize NoBorderFullScreen) - -// Set the TrackerBaseToImagePlate transforms for these screens. -// -// The tracker base is set here to the middle of the edge shared by the two -// screens. Each screen is rotated 30 degrees toward the other about the -// tracker base +Y axis, so that the tracker base +Z is centered between the -// two screens. -// -(ScreenAttribute left TrackerBaseToImagePlate - (RotateTranslate (Rotate 0.000 -30.000 0.0) - (Translate 0.360 0.144 0.0))) - -(ScreenAttribute right TrackerBaseToImagePlate - (RotateTranslate (Rotate 0.000 30.000 0.0) - (Translate 0.000 0.144 0.0))) - - -// Create a view using the defined screens. -// -(NewView view0) -(ViewAttribute view0 Screen left) -(ViewAttribute view0 Screen right) -(ViewAttribute view0 CenterEyeInCoexistence (0.0 0.0 0.45)) diff --git a/src/ConfiguredUniverse/j3d1x3-cave b/src/ConfiguredUniverse/j3d1x3-cave deleted file mode 100644 index afc532c..0000000 --- a/src/ConfiguredUniverse/j3d1x3-cave +++ /dev/null @@ -1,171 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/* - ************************************************************************ - * - * Java 3D configuration file for a cave environment. This cave - * consists of 3 projectors with 3 screens to the left, front, and right - * of the user, all at 90 degrees to each other. - * - * The projectors in the VirtualPortal sample site are actually turned - * on their sides to get more height. Screen 0 is rotated 90 degrees - * counter-clockwise, while screens 1 and 2 are rotated 90 degrees - * clockwise. - * - ************************************************************************ - */ - -// Create new screen objects and associate them with logical names and numbers. -// These numbers are used as indices to retrieve the AWT GraphicsDevice from -// the array that GraphicsEnvironment.getScreenDevices() returns. -// -// NOTE: The GraphicsDevice order in the array is specific to the local -// site and display system. -// -(NewScreen left 0) -(NewScreen center 1) -(NewScreen right 2) - - -// Set the available image areas as well as their positition and orientation -// relative to the tracker base. Although this config file doesn't enable -// head tracking, the tracker base is still needed as a point of reference to -// describe the position and orientation of the screens relative to the -// environment. -// -// From the orientation of a user standing within this VirtualPortal site and -// facing the center screen, the tracker base is along the vertical midline of -// the screen, 0.248 meters down from the top edge, and 1.340 meters in front -// of it. The tracker base is oriented so that its +X axis points to the left, -// its +Y axis points toward the screen, and its +Z axis points toward the -// floor. -// -(ScreenAttribute left PhysicalScreenWidth 2.480) -(ScreenAttribute left PhysicalScreenHeight 1.705) -(ScreenAttribute left WindowSize NoBorderFullScreen) -(ScreenAttribute left TrackerBaseToImagePlate - (( 0.0 0.0 -1.0 2.230) - ( 0.0 -1.0 0.0 1.340) - (-1.0 0.0 0.0 0.885))) - -(ScreenAttribute center PhysicalScreenWidth 2.485) -(ScreenAttribute center PhysicalScreenHeight 1.745) -(ScreenAttribute center WindowSize NoBorderFullScreen) -(ScreenAttribute center TrackerBaseToImagePlate - (( 0.0 0.0 1.0 0.248) - (-1.0 0.0 0.0 0.885) - ( 0.0 -1.0 0.0 1.340))) - -(ScreenAttribute right PhysicalScreenWidth 2.480) -(ScreenAttribute right PhysicalScreenHeight 1.775) -(ScreenAttribute right WindowSize NoBorderFullScreen) -(ScreenAttribute right TrackerBaseToImagePlate - (( 0.0 0.0 1.0 0.2488) - ( 0.0 -1.0 0.0 1.340) - ( 1.0 0.0 0.0 0.860))) - -// Set the location of the center of coexistence relative to the tracker base. -// Here it set to the center of the center screen. This config file will set -// the location of the user's eyes relative to this point. The default view -// attach policy of NOMINAL_SCREEN used by ConfiguredUniverse will place the -// origin of the view platform in coexistence coordinates at the center of -// coexistence. -// -(NewPhysicalEnvironment VirtualPortal) -(PhysicalEnvironmentAttribute VirtualPortal - CoexistenceToTrackerBase - ((-1.0 0.0 0.0 0.000) - ( 0.0 0.0 -1.0 1.340) - ( 0.0 -1.0 0.0 0.994))) - -// The above center of coexistence is appropriate for the sample geometry -// files available in the programs/examples directory. Often a more -// immersive point of view is required for larger virtual worlds. This can be -// achieved by placing the center of coexistence closer to the nominal position -// of the user's head, so that the view platform origin in coexistence -// coordinates will map there as well. -// -// Here we set the location of the center of coexistence 0.5 meters along the -// tracker base +Z axis, 1.737 meters from the floor (about 5 ft 8.4 inches). -// -// (PhysicalEnvironmentAttribute VirtualPortal -// CoexistenceToTrackerBase -// ((-1.0 0.0 0.0 0.0) -// ( 0.0 0.0 -1.0 0.0) -// ( 0.0 -1.0 0.0 0.5))) - - -// Now define the view. -// -(NewView view0) -(ViewAttribute view0 Screen left) -(ViewAttribute view0 Screen center) -(ViewAttribute view0 Screen right) -(ViewAttribute view0 PhysicalEnvironment VirtualPortal) - -// Set the user eye position in the display environment. It is set here to -// 1.340 meters back from the center screen (directly under the tracker), and -// 1.737 meters from the floor (about 5 ft 8.4 inches). -// -(ViewAttribute view0 CenterEyeInCoexistence (0.0 0.494 1.340)) - -// Here is an alternative center eye position to use with the immersive -// coexistence coordinate system defined in comments above. -// -// (ViewAttribute view0 CenterEyeInCoexistence (0.0 0.0 0.0)) - -// Set the screen scale. This is scale factor from virtual to physical -// coordinates. -// -(ViewAttribute view0 ScreenScalePolicy SCALE_SCREEN_SIZE) - -// Alternative for explict scaling. -// -// (ViewAttribute view0 ScreenScalePolicy SCALE_EXPLICIT) -// (ViewAttribute view0 ScreenScale 5.00) - -// No stereo viewing for this configuration. -// -(ViewAttribute view0 StereoEnable False) diff --git a/src/ConfiguredUniverse/j3d1x3-cave-vr b/src/ConfiguredUniverse/j3d1x3-cave-vr deleted file mode 100644 index 029decf..0000000 --- a/src/ConfiguredUniverse/j3d1x3-cave-vr +++ /dev/null @@ -1,222 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/* - ************************************************************************ - * - * Java 3D configuration file for a cave environment with head tracking and - * stereo viewing. This cave consists of 3 projectors with 3 screens to the - * left, front, and right of the user, all at 90 degrees to each other. - * - * The projectors in the VirtualPortal sample site are actually turned - * on their sides to get more height. Screen 0 is rotated 90 degrees - * counter-clockwise, while screens 1 and 2 are rotated 90 degrees - * clockwise. - * - ************************************************************************ - */ - -// Configure the head tracker. The NewDevice command binds a logical name -// (the 2nd argument) to an InputDevice implementation whose class name is -// specified in the 3rd argument. The InputDevice implementation for a head -// tracker must generate position and orientation data relative to a fixed -// frame of reference in the physical world, the "tracker base" of the Java -// 3D view model. -// -// The InputDevice is instantiated through introspection of the class name. -// Available InputDevice implementations are site-specific, so substitute -// the class name in a NewDevice command below with one that is available at -// the local site. -// -// Note that properties are used to configure an InputDevice instead of -// attributes. The details of an InputDevice implementation are not known to -// ConfiguredUniverse, so the property name is invoked as a method through -// introspection. The example properties below must be replaced with the ones -// needed, if any, by specific InputDevice implementations. All arguments -// following the method name are wrapped and passed to the specified method as -// an array of Objects. -// -// All property arguments following the method name are wrapped and passed to -// the specified method as an array of Objects. Strings "true" and "false" -// get wrapped into Boolean, and number strings get wrapped into Double. -// Construct such as (0.0 1.0 2.0) and ((0.0 1.0 2.0 0.5) (3.0 4.0 5.0 1.0) -// (6.0 7.0 8.0 0.0)) get converted to Point3d and Matrix4d respectively. -// Note that last row of a Matrix4d doesn't need to be specified; it is -// implicitly (0.0 0.0 0.0 1.0). -// -(NewDevice glasses LogitechRedBarron) -(DeviceProperty glasses SerialPort "/dev/ttya") // Unix paths need quoting. -(DeviceProperty glasses TransmitterBaseline 0.4600) -(DeviceProperty glasses TransmitterLeftLeg 0.4400) -(DeviceProperty glasses TransmitterCalibrationDistance 0.4120) - -// Create a logical name for the head tracker sensor. The last argument is -// the sensor's index in the input device. -// -(NewSensor head glasses 0) - -// Create new screen objects and associate them with logical names and numbers. -// These numbers are used as indices to retrieve the AWT GraphicsDevice from -// the array that GraphicsEnvironment.getScreenDevices() returns. -// -// NOTE: The GraphicsDevice order in the array is specific to the local -// site and display system. -// -(NewScreen left 0) -(NewScreen center 1) -(NewScreen right 2) - - -// Set the available image areas as well as their positition and orientation -// relative to the tracker base. From the orientation of a user standing -// within this VirtualPortal site and facing the center screen, the tracker -// base is along the vertical midline of the screen, 0.248 meters down from -// the top edge, and 1.340 meters in front of it. The tracker base is -// oriented so that its +X axis points to the left, its +Y axis points toward -// the screen, and its +Z axis points toward the floor. -// -(ScreenAttribute left PhysicalScreenWidth 2.480) -(ScreenAttribute left PhysicalScreenHeight 1.705) -(ScreenAttribute left WindowSize NoBorderFullScreen) -(ScreenAttribute left TrackerBaseToImagePlate - (( 0.0 0.0 -1.0 2.230) - ( 0.0 -1.0 0.0 1.340) - (-1.0 0.0 0.0 0.885))) - -(ScreenAttribute center PhysicalScreenWidth 2.485) -(ScreenAttribute center PhysicalScreenHeight 1.745) -(ScreenAttribute center WindowSize NoBorderFullScreen) -(ScreenAttribute center TrackerBaseToImagePlate - (( 0.0 0.0 1.0 0.248) - (-1.0 0.0 0.0 0.885) - ( 0.0 -1.0 0.0 1.340))) - -(ScreenAttribute right PhysicalScreenWidth 2.480) -(ScreenAttribute right PhysicalScreenHeight 1.775) -(ScreenAttribute right WindowSize NoBorderFullScreen) -(ScreenAttribute right TrackerBaseToImagePlate - (( 0.0 0.0 1.0 0.2488) - ( 0.0 -1.0 0.0 1.340) - ( 1.0 0.0 0.0 0.860))) - -// Create a physical environment. This contains the available input devices, -// audio devices, and sensors, and defines the coexistence coordinate system -// for mapping between the virtual and physical worlds. -// -(NewPhysicalEnvironment VirtualPortal) - -// Register the input device defined in this file and the sensor which will -// drive head tracking. -// -(PhysicalEnvironmentAttribute VirtualPortal InputDevice glasses) -(PhysicalEnvironmentAttribute VirtualPortal HeadTracker head) - -// Set the location of the center of coexistence relative to the tracker base. -// Here it set to the center of the center screen. The default view attach -// policy of NOMINAL_SCREEN used by ConfiguredUniverse will place the origin of -// the view platform in coexistence coordinates at the center of coexistence. -// -(PhysicalEnvironmentAttribute VirtualPortal - CoexistenceToTrackerBase - ((-1.0 0.0 0.0 0.000) - ( 0.0 0.0 -1.0 1.340) - ( 0.0 -1.0 0.0 0.994))) - -// The above center of coexistence is appropriate for the sample geometry -// files available in the programs/examples directory. Often a more -// immersive point of view is required for larger virtual worlds. This can be -// achieved by placing the center of coexistence closer to the nominal position -// of the user's head, so that the view platform origin in coexistence -// coordinates will map there as well. -// -// Here we set the location of the center of coexistence 0.5 meters along the -// tracker base +Z axis, 1.737 meters from the floor (about 5 ft 8.4 inches). -// -// (PhysicalEnvironmentAttribute VirtualPortal -// CoexistenceToTrackerBase -// ((-1.0 0.0 0.0 0.0) -// ( 0.0 0.0 -1.0 0.0) -// ( 0.0 -1.0 0.0 0.5))) - - -// Define the physical body. -// -// The head origin is halfway between the eyes, with X extending to the right, -// Y up, and positive Z extending into the skull. -// -(NewPhysicalBody LabRat) -(PhysicalBodyAttribute LabRat StereoEyeSeparation .07) - -// Define the position and orientation of the head relative to the tracker -// mounted on the head. -// -(PhysicalBodyAttribute LabRat HeadToHeadTracker - ((-1.0 0.0 0.0 0.00) - ( 0.0 0.0 -1.0 0.05) - ( 0.0 -1.0 0.0 0.11))) -// Now define the view. -// -(NewView view0) -(ViewAttribute view0 Screen left) -(ViewAttribute view0 Screen center) -(ViewAttribute view0 Screen right) -(ViewAttribute view0 PhysicalBody LabRat) -(ViewAttribute view0 PhysicalEnvironment VirtualPortal) - -// Set the screen scale. This is scale factor from virtual to physical -// coordinates. -// -(ViewAttribute view0 ScreenScalePolicy SCALE_SCREEN_SIZE) - -// Alternative for explict scaling. -// -//(ViewAttribute view0 ScreenScalePolicy SCALE_EXPLICIT) -//(ViewAttribute view0 ScreenScale 5.00) - -// Enable stereo viewing. Enable head tracking to get the position of the eyes -// with respect to coexistence. Boolean values may be specified as either -// true, True, false, or False. -// -(ViewAttribute view0 StereoEnable true) -(ViewAttribute view0 TrackingEnable True) diff --git a/src/ConfiguredUniverse/j3d1x3-rot45 b/src/ConfiguredUniverse/j3d1x3-rot45 deleted file mode 100644 index d221e74..0000000 --- a/src/ConfiguredUniverse/j3d1x3-rot45 +++ /dev/null @@ -1,110 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/* - ************************************************************************ - * - * Java 3D configuration file for 3 screens. Left and right screens are - * rotated 45 degrees from the center screen. - * - ************************************************************************ - */ - -// Create new screen objects and associate them with logical names and numbers. -// These numbers are used as indices to retrieve the AWT GraphicsDevice from -// the array that GraphicsEnvironment.getScreenDevices() returns. -// -// NOTE: The GraphicsDevice order in the array is specific to the local -// site and display system. -// -(NewScreen left 0) -(NewScreen center 1) -(NewScreen right 2) - -// Set the available image areas for full screens. -// -(ScreenAttribute left PhysicalScreenWidth 0.360) -(ScreenAttribute left PhysicalScreenHeight 0.288) - -(ScreenAttribute center PhysicalScreenWidth 0.360) -(ScreenAttribute center PhysicalScreenHeight 0.288) - -(ScreenAttribute right PhysicalScreenWidth 0.360) -(ScreenAttribute right PhysicalScreenHeight 0.288) - -// Specify full screen windows. -// -(ScreenAttribute left WindowSize NoBorderFullScreen) -(ScreenAttribute center WindowSize NoBorderFullScreen) -(ScreenAttribute right WindowSize NoBorderFullScreen) - -// Set the TrackerBaseToImagePlate transforms for these screens. -// -// The tracker base and center of coexistence are set here to the middle of the -// center screen. The basis vectors are aligned with the center screen image -// plate. The left and right screens are rotated 45 degrees toward each other -// about their shared edges with the center screen. -// -(ScreenAttribute center TrackerBaseToImagePlate - (Translate 0.180000 0.144000 0.000000)) - -// cos(45) * 0.360 * 0.5 = 0.127279; 0.360 + 0.127279 = 0.487279 -(ScreenAttribute left TrackerBaseToImagePlate - (RotateTranslate - (Rotate 0.000000 -45.000000 0.000000) - (Translate 0.487279 0.144000 0.127279))) - -// cos(45) * 0.360 * 0.5 = 0.127279 -(ScreenAttribute right TrackerBaseToImagePlate - (RotateTranslate - (Rotate 0.000000 45.000000 0.000000) - (Translate -0.127279 0.144000 0.127279))) - -// Create a view using the defined screens. -// -(NewView view0) -(ViewAttribute view0 Screen left) -(ViewAttribute view0 Screen center) -(ViewAttribute view0 Screen right) -(ViewAttribute view0 CenterEyeInCoexistence (0.0 0.0 0.5)) diff --git a/src/ConfiguredUniverse/j3d2x2-flat b/src/ConfiguredUniverse/j3d2x2-flat deleted file mode 100644 index 46df9a3..0000000 --- a/src/ConfiguredUniverse/j3d2x2-flat +++ /dev/null @@ -1,135 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/* - ************************************************************************ - * - * Java 3D configuration file for 4 screen projection configuration - * arranged in a 2x2 power wall. - * - ************************************************************************ - */ - -// Create new screen objects and associate them with logical names and numbers. -// These numbers are used as indices to retrieve the AWT GraphicsDevice from -// the array that GraphicsEnvironment.getScreenDevices() returns. -// -// NOTE: The GraphicsDevice order in the array is specific to the local -// site and display system. -// -(NewScreen topleft 0) -(NewScreen topright 1) -(NewScreen bottomleft 3) -(NewScreen bottomright 2) - -// Set the available image areas for full screens. This is important when -// precise scaling between objects in the virtual world and their projections -// into the physical world is desired through use of explicit ScreenScale view -// attributes. The defaults are 0.365 meters for width and 0.292 meters for -// height. -// -(ScreenAttribute topleft PhysicalScreenWidth 0.912) -(ScreenAttribute topleft PhysicalScreenHeight 0.680) - -(ScreenAttribute topright PhysicalScreenWidth 0.912) -(ScreenAttribute topright PhysicalScreenHeight 0.680) - -(ScreenAttribute bottomleft PhysicalScreenWidth 0.912) -(ScreenAttribute bottomleft PhysicalScreenHeight 0.685) - -(ScreenAttribute bottomright PhysicalScreenWidth 0.912) -(ScreenAttribute bottomright PhysicalScreenHeight 0.685) - - -// Specify full screen windows. -// -(ScreenAttribute topleft WindowSize NoBorderFullScreen) -(ScreenAttribute topright WindowSize NoBorderFullScreen) -(ScreenAttribute bottomleft WindowSize NoBorderFullScreen) -(ScreenAttribute bottomright WindowSize NoBorderFullScreen) - -// Set the TrackerBaseToImagePlate transforms for these screens. This -// transforms points in tracker base coordinates to each screen's image plate -// coordinates, where the origin of the image plate is defined to be the lower -// left corner of the screen with X increasing to the right, Y increasing to -// the top, and Z increasing away from the screen. -// -// Without head or sensor tracking the tracker base is still needed as a point -// of reference for describing the orientation and position of each screen to -// the others. The coexistence to tracker base transform is set to identity by -// default, so the tracker base origin and orientation will also set the origin -// and orientation of coexistence coordinates in the physical world. -// -// The tracker base and center of coexistence are set here to the center of the -// 2x2 array with its basis vectors aligned to image plate coordinates. -// -(ScreenAttribute topleft TrackerBaseToImagePlate - (Translate 0.912 0.000 0.0)) -(ScreenAttribute topright TrackerBaseToImagePlate - (Translate 0.000 0.000 0.0)) -(ScreenAttribute bottomleft TrackerBaseToImagePlate - (Translate 0.912 0.685 0.0)) -(ScreenAttribute bottomright TrackerBaseToImagePlate - (Translate 0.000 0.685 0.0)) - -// Create a view using the defined screens. -// -(NewView view0) -(ViewAttribute view0 Screen topleft) -(ViewAttribute view0 Screen topright) -(ViewAttribute view0 Screen bottomleft) -(ViewAttribute view0 Screen bottomright) - -// Set the screen scale. This is scale factor from virtual to physical -// coordinates. The default policy of SCALE_SCREEN_SIZE doesn't work well here -// since in the 2x2 arrangement the individual screens are too small. The -// explicit scale factor below assumes a normalized range of object coordinates -// of [-1.0 .. +1.0]. -// -(ViewAttribute view0 ScreenScalePolicy SCALE_EXPLICIT) -(ViewAttribute view0 ScreenScale 0.912) - -// Set the user eye position in the display environment. -// -(ViewAttribute view0 CenterEyeInCoexistence (0.0 0.0 1.0)) diff --git a/src/ConicWorld/ConicWorld.html b/src/ConicWorld/ConicWorld.html deleted file mode 100644 index a12905e..0000000 --- a/src/ConicWorld/ConicWorld.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>ConicWorld</TITLE> -</HEAD> -<BODY BGCOLOR="#0C0C33"> -<applet align=middle code="ConicWorld.class" width=750 height=750> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see "ConicWorld" instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/ConicWorld/ConicWorld.java b/src/ConicWorld/ConicWorld.java deleted file mode 100644 index 2af4b3d..0000000 --- a/src/ConicWorld/ConicWorld.java +++ /dev/null @@ -1,328 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.*; -import com.sun.j3d.utils.universe.*; -import com.sun.j3d.utils.image.TextureLoader; -import javax.media.j3d.*; -import javax.vecmath.*; - -/** - * ConicWorld creates spheres, cylinders, and cones of different resolutions - * and colors. Demonstrates the use of the various geometry creation - * constructors found in the com.sun.j3d.utils.geometry package. - */ -public class ConicWorld extends Applet { - - private java.net.URL texImage = null; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph(Canvas3D c) { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a bounds for the background and behaviors - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.2f); - Background bg = new Background(bgColor); - bg.setApplicationBounds(bounds); - objRoot.addChild(bg); - - // Set up the global lights - Color3f lColor1 = new Color3f(0.7f, 0.7f, 0.7f); - Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, -1.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - - AmbientLight aLgt = new AmbientLight(alColor); - aLgt.setInfluencingBounds(bounds); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - lgt1.setInfluencingBounds(bounds); - objRoot.addChild(aLgt); - objRoot.addChild(lgt1); - - // Create a bunch of objects with a behavior and add them - // into the scene graph. - - int row, col; - int numRows = 3, numCols = 5; - Appearance[][] app = new Appearance[numRows][numCols]; - - for (row = 0; row < numRows; row++) - for (col = 0; col < numCols; col++) - app[row][col] = createAppearance(row * numCols + col); - - // Space between each row/column - double xspace = 2.0 / ((double)numCols - 1.0); - double yspace = 2.0 / ((double)numRows - 1.0); - - for (int i = 0; i < numRows; i++) { - double ypos = ((double)i * yspace - 1.0) * 0.6; - for (int j = 0; j < numCols; j++) { - double xpos = xpos = ((double)j * xspace - 1.0) * 0.6; - objRoot.addChild(createObject(i, j, app[i][j], - 0.1, xpos, ypos)); - } - } - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - - private Appearance createAppearance(int idx) { - Appearance app = new Appearance(); - - // Globally used colors - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - - idx = idx % 5; - - switch (idx) { - // Lit solid - case 0: - { - // Set up the material properties - Color3f objColor = new Color3f(0.8f, 0.0f, 0.0f); - app.setMaterial(new Material(objColor, black, objColor, - white, 80.0f)); - break; - } - // Lit solid, no specular - case 1: - { - // Set up the material properties - Color3f objColor = new Color3f(0.0f, 0.8f, 0.0f); - app.setMaterial(new Material(objColor, black, objColor, - white, 80.0f)); - break; - } - - // Lit solid, specular only - case 2: - { - // Set up the material properties - Color3f objColor = new Color3f(0.0f, 0.8f, 0.8f); - app.setMaterial(new Material(black, black, objColor, - white, 80.0f)); - break; - } - - // Texture mapped, lit solid - case 3: - { - // Set up the texture map - TextureLoader tex = new TextureLoader(texImage, this); - app.setTexture(tex.getTexture()); - - // Set up the material properties - app.setMaterial(new Material(white, black, white, black, 1.0f)); - TextureAttributes texAttr = new TextureAttributes(); - texAttr.setTextureMode(TextureAttributes.MODULATE); - app.setTextureAttributes(texAttr); - - break; - } - - - // Another lit solid with a different color - case 4: - { - // Set up the material properties - Color3f objColor = new Color3f(1.0f, 1.0f, 0.0f); - app.setMaterial(new Material(objColor, black, objColor, - white, 80.0f)); - break; - } - - default: - { - ColoringAttributes ca = new ColoringAttributes(); - ca.setColor(new Color3f(0.0f, 1.0f, 0.0f)); - app.setColoringAttributes(ca); - } - } - - return app; - } - - - private Group createObject(int i, int j, Appearance app, double scale, - double xpos, double ypos) { - - // Create a transform group node to scale and position the object. - Transform3D t = new Transform3D(); - t.set(scale, new Vector3d(xpos, ypos, 0.0)); - TransformGroup objTrans = new TransformGroup(t); - - // Create a second transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. - TransformGroup spinTg = new TransformGroup(); - spinTg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - spinTg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - Primitive obj = null; - - if (i % 3 == 2){ - obj = (Primitive) new Sphere(1.0f, - Sphere.GENERATE_NORMALS | - Sphere.GENERATE_TEXTURE_COORDS, - j*8 + 4, app); - } - else - if (i % 3 == 1){ - obj = (Primitive) new Cylinder(1.0f, 2.0f, - Cylinder.GENERATE_TEXTURE_COORDS | - Cylinder.GENERATE_NORMALS, - j*8+4,j*8+4, - app); - } - else - if (i % 3 == 0){ - obj = (Primitive) new Cone(1.0f, 2.0f, - Cone.GENERATE_NORMALS | - Cone.GENERATE_TEXTURE_COORDS, - j*8+4,j*8+4, - app); - } - - // add it to the scene graph. - spinTg.addChild(obj); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into - // the scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 5000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, spinTg, yAxis, - 0.0f, (float) Math.PI*2.0f); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - rotator.setSchedulingBounds(bounds); - - // Add the behavior and the transform group to the object - objTrans.addChild(rotator); - objTrans.addChild(spinTg); - - return objTrans; - } - - - public ConicWorld() { - } - - public ConicWorld(java.net.URL url) { - texImage = url; - } - - public void init() { - if (texImage == null) { - // the path to the image for an applet - try { - texImage = new java.net.URL(getCodeBase().toString() + - "../images/earth.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(c); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows ConicWorld to be run as an application - // as well as an applet - // - public static void main(String[] args) { - // the path to the image file for an application - java.net.URL url = null; - try { - url = new java.net.URL("file:../images/earth.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - new MainFrame(new ConicWorld(url), 700, 700); - } -} - - diff --git a/src/ConicWorld/ConicWorld_plugin.html b/src/ConicWorld/ConicWorld_plugin.html deleted file mode 100644 index ca16f88..0000000 --- a/src/ConicWorld/ConicWorld_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>ConicWorld</TITLE> -</HEAD> -<BODY BGCOLOR="#0C0C33"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 750 HEIGHT = 750 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "ConicWorld.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "ConicWorld.class" WIDTH = 750 HEIGHT = 750 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see "ConicWorld" instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "ConicWorld.class" WIDTH = 750 HEIGHT = 750 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see "ConicWorld" instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/ConicWorld/build.xml b/src/ConicWorld/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/ConicWorld/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/DepthFuncTest/DepthFuncTest.form b/src/DepthFuncTest/DepthFuncTest.form deleted file mode 100644 index b7d1376..0000000 --- a/src/DepthFuncTest/DepthFuncTest.form +++ /dev/null @@ -1,217 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> - -<Form version="1.2" type="org.netbeans.modules.form.forminfo.JFrameFormInfo"> - <Properties> - <Property name="defaultCloseOperation" type="int" value="3"/> - </Properties> - <SyntheticProperties> - <SyntheticProperty name="formSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,0,-16,0,0,1,-109"/> - <SyntheticProperty name="formPosition" type="java.awt.Point" value="-84,-19,0,5,115,114,0,14,106,97,118,97,46,97,119,116,46,80,111,105,110,116,-74,-60,-118,114,52,126,-56,38,2,0,2,73,0,1,120,73,0,1,121,120,112,0,0,0,0,0,0,0,0"/> - <SyntheticProperty name="formSizePolicy" type="int" value="0"/> - <SyntheticProperty name="generatePosition" type="boolean" value="true"/> - <SyntheticProperty name="generateSize" type="boolean" value="true"/> - <SyntheticProperty name="generateCenter" type="boolean" value="false"/> - </SyntheticProperties> - <AuxValues> - <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> - <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> - <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,0,-40,0,0,1,-117"/> - </AuxValues> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="jPanel1"> - <Properties> - <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> - <TitledBorder title="WireFrame Object"/> - </Border> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/> - <SubComponents> - <Component class="javax.swing.JLabel" name="jLabel1"> - <Properties> - <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Dialog" size="12" style="0"/> - </Property> - <Property name="text" type="java.lang.String" value="Depth function"/> - <Property name="toolTipText" type="java.lang.String" value="Mode for normal object"/> - </Properties> - <AccessibilityProperties> - <Property name="AccessibleContext.accessibleParent" type="javax.accessibility.Accessible" editor="org.netbeans.modules.form.RADVisualComponent$AccessibleParentEditor"> - <ComponentRef name="shadedComboBox"/> - </Property> - </AccessibilityProperties> - </Component> - <Component class="javax.swing.JComboBox" name="normalComboBox"> - <Properties> - <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Dialog" size="12" style="0"/> - </Property> - <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor"> - <StringArray count="8"> - <StringItem index="0" value="ALWAYS"/> - <StringItem index="1" value="NEVER"/> - <StringItem index="2" value="EQUAL"/> - <StringItem index="3" value="NOT_EQUAL"/> - <StringItem index="4" value="LESS"/> - <StringItem index="5" value="LESS_OR_EQUAL"/> - <StringItem index="6" value="GREATER"/> - <StringItem index="7" value="GREATER_OR_EQUAL"/> - </StringArray> - </Property> - <Property name="selectedIndex" type="int" value="6"/> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[150, 22]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="normalComboBoxActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JCheckBox" name="wfCheckBox"> - <Properties> - <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Dialog" size="12" style="0"/> - </Property> - <Property name="text" type="java.lang.String" value="Write Depth Buffer"/> - <Property name="toolTipText" type="java.lang.String" value="Depth will be written for the object, if selected"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="wfCheckBoxActionPerformed"/> - </Events> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="jPanel2"> - <Properties> - <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> - <TitledBorder title="Shaded Object"/> - </Border> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/> - <SubComponents> - <Component class="javax.swing.JLabel" name="jLabel3"> - <Properties> - <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Dialog" size="12" style="0"/> - </Property> - <Property name="text" type="java.lang.String" value="Depth Function"/> - <Property name="toolTipText" type="java.lang.String" value="Mode of shaded object"/> - </Properties> - </Component> - <Component class="javax.swing.JComboBox" name="shadedComboBox"> - <Properties> - <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Dialog" size="12" style="0"/> - </Property> - <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor"> - <StringArray count="8"> - <StringItem index="0" value="ALWAYS"/> - <StringItem index="1" value="NEVER"/> - <StringItem index="2" value="EQUAL"/> - <StringItem index="3" value="NOT_EQUAL"/> - <StringItem index="4" value="LESS"/> - <StringItem index="5" value="LESS_OR_EQUAL"/> - <StringItem index="6" value="GREATER"/> - <StringItem index="7" value="GREATER_OR_EQUAL"/> - </StringArray> - </Property> - <Property name="selectedIndex" type="int" value="4"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="shadedComboBoxActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JCheckBox" name="shadedCheckBox"> - <Properties> - <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Dialog" size="12" style="0"/> - </Property> - <Property name="selected" type="boolean" value="true"/> - <Property name="text" type="java.lang.String" value="Write Depth Buffer"/> - <Property name="toolTipText" type="java.lang.String" value="Depth will be written for the object, if selected"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="shadedCheckBoxActionPerformed"/> - </Events> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="jPanel3"> - <Properties> - <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> - <TitledBorder title="Rotating Cube"/> - </Border> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/> - <SubComponents> - <Component class="javax.swing.JLabel" name="jLabel4"> - <Properties> - <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Dialog" size="12" style="0"/> - </Property> - <Property name="text" type="java.lang.String" value="Raster Operator"/> - <Property name="toolTipText" type="java.lang.String" value="Raster mode of rotating object (try NOOP)"/> - </Properties> - </Component> - <Component class="javax.swing.JComboBox" name="rotatingComboBox"> - <Properties> - <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Dialog" size="12" style="0"/> - </Property> - <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor"> - <StringArray count="16"> - <StringItem index="0" value="CLEAR"/> - <StringItem index="1" value="AND"/> - <StringItem index="2" value="AND_REVERSE"/> - <StringItem index="3" value="COPY"/> - <StringItem index="4" value="AND_INVERTED"/> - <StringItem index="5" value="NOOP"/> - <StringItem index="6" value="XOR"/> - <StringItem index="7" value="OR"/> - <StringItem index="8" value="NOR"/> - <StringItem index="9" value="EQUIV"/> - <StringItem index="10" value="INVERT"/> - <StringItem index="11" value="OR_REVERSE"/> - <StringItem index="12" value="COPY_INVERTED"/> - <StringItem index="13" value="OR_INVERTED"/> - <StringItem index="14" value="NAND"/> - <StringItem index="15" value="SET"/> - </StringArray> - </Property> - <Property name="selectedIndex" type="int" value="3"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rotatingComboBoxActionPerformed"/> - </Events> - </Component> - </SubComponents> - </Container> - </SubComponents> -</Form> diff --git a/src/DepthFuncTest/DepthFuncTest.java b/src/DepthFuncTest/DepthFuncTest.java deleted file mode 100644 index 1589754..0000000 --- a/src/DepthFuncTest/DepthFuncTest.java +++ /dev/null @@ -1,357 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; - - -/** - *The goal of that example is to show the use of different ZBuffer comparison modes. - */ -public class DepthFuncTest extends javax.swing.JFrame -{ - - RenderFrame rf; - - /** - * Creates new form DepthFuncTest - */ - public DepthFuncTest(){ - initComponents(); - } - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents - private void initComponents() - { - java.awt.GridBagConstraints gridBagConstraints; - - jPanel1 = new javax.swing.JPanel(); - jLabel1 = new javax.swing.JLabel(); - normalComboBox = new javax.swing.JComboBox(); - wfCheckBox = new javax.swing.JCheckBox(); - jPanel2 = new javax.swing.JPanel(); - jLabel3 = new javax.swing.JLabel(); - shadedComboBox = new javax.swing.JComboBox(); - shadedCheckBox = new javax.swing.JCheckBox(); - jPanel3 = new javax.swing.JPanel(); - jLabel4 = new javax.swing.JLabel(); - rotatingComboBox = new javax.swing.JComboBox(); - - getContentPane().setLayout(new java.awt.GridBagLayout()); - - setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); - jPanel1.setBorder(new javax.swing.border.TitledBorder("WireFrame Object")); - jLabel1.setFont(new java.awt.Font("Dialog", 0, 12)); - jLabel1.setText("Depth function"); - jLabel1.setToolTipText("Mode for normal object"); - jPanel1.add(jLabel1); - jLabel1.getAccessibleContext().setAccessibleParent(shadedComboBox); - - normalComboBox.setFont(new java.awt.Font("Dialog", 0, 12)); - normalComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "ALWAYS", "NEVER", "EQUAL", "NOT_EQUAL", "LESS", "LESS_OR_EQUAL", "GREATER", "GREATER_OR_EQUAL" })); - normalComboBox.setSelectedIndex(6); - normalComboBox.setPreferredSize(new java.awt.Dimension(150, 22)); - normalComboBox.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(java.awt.event.ActionEvent evt) - { - normalComboBoxActionPerformed(evt); - } - }); - - jPanel1.add(normalComboBox); - - wfCheckBox.setFont(new java.awt.Font("Dialog", 0, 12)); - wfCheckBox.setText("Write Depth Buffer"); - wfCheckBox.setToolTipText("Depth will be written for the object, if selected"); - wfCheckBox.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(java.awt.event.ActionEvent evt) - { - wfCheckBoxActionPerformed(evt); - } - }); - - jPanel1.add(wfCheckBox); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 0; - gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; - getContentPane().add(jPanel1, gridBagConstraints); - - jPanel2.setBorder(new javax.swing.border.TitledBorder("Shaded Object")); - jLabel3.setFont(new java.awt.Font("Dialog", 0, 12)); - jLabel3.setText("Depth Function"); - jLabel3.setToolTipText("Mode of shaded object"); - jPanel2.add(jLabel3); - - shadedComboBox.setFont(new java.awt.Font("Dialog", 0, 12)); - shadedComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "ALWAYS", "NEVER", "EQUAL", "NOT_EQUAL", "LESS", "LESS_OR_EQUAL", "GREATER", "GREATER_OR_EQUAL" })); - shadedComboBox.setSelectedIndex(4); - shadedComboBox.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(java.awt.event.ActionEvent evt) - { - shadedComboBoxActionPerformed(evt); - } - }); - - jPanel2.add(shadedComboBox); - - shadedCheckBox.setFont(new java.awt.Font("Dialog", 0, 12)); - shadedCheckBox.setSelected(true); - shadedCheckBox.setText("Write Depth Buffer"); - shadedCheckBox.setToolTipText("Depth will be written for the object, if selected"); - shadedCheckBox.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(java.awt.event.ActionEvent evt) - { - shadedCheckBoxActionPerformed(evt); - } - }); - - jPanel2.add(shadedCheckBox); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; - getContentPane().add(jPanel2, gridBagConstraints); - - jPanel3.setBorder(new javax.swing.border.TitledBorder("Rotating Cube")); - jLabel4.setFont(new java.awt.Font("Dialog", 0, 12)); - jLabel4.setText("Raster Operator"); - jLabel4.setToolTipText("Raster mode of rotating object (try NOOP)"); - jPanel3.add(jLabel4); - - rotatingComboBox.setFont(new java.awt.Font("Dialog", 0, 12)); - rotatingComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "CLEAR", "AND", "AND_REVERSE", "COPY", "AND_INVERTED", "NOOP", "XOR", "OR", "NOR", "EQUIV", "INVERT", "OR_REVERSE", "COPY_INVERTED", "OR_INVERTED", "NAND", "SET" })); - rotatingComboBox.setSelectedIndex(3); - rotatingComboBox.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(java.awt.event.ActionEvent evt) - { - rotatingComboBoxActionPerformed(evt); - } - }); - - jPanel3.add(rotatingComboBox); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; - getContentPane().add(jPanel3, gridBagConstraints); - - setBounds(0, 0, 403, 240); - } - // </editor-fold>//GEN-END:initComponents - - private void rotatingComboBoxActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_rotatingComboBoxActionPerformed - {//GEN-HEADEREND:event_rotatingComboBoxActionPerformed - String selectedItem = rotatingComboBox.getSelectedItem().toString(); // how to avoid a cast and all that goes with it. (lazyness) - int mode = RenderingAttributes.ROP_COPY; - if ( "CLEAR".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_CLEAR; - } - else if ( "AND".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_AND; - } - else if ( "AND_REVERSE".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_AND_REVERSE; - } - else if ( "COPY".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_COPY; - } - else if ( "AND_INVERTED".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_AND_INVERTED; - } - else if ( "NOOP".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_NOOP; - } - else if ( "XOR".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_XOR; - } - else if ( "OR".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_OR; - } - else if ( "NOR".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_NOR; - } - else if ( "EQUIV".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_EQUIV; - } - else if ( "INVERT".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_INVERT; - } - else if ( "OR_REVERSE".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_OR_REVERSE; - } - else if ( "COPY_INVERTED".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_COPY_INVERTED; - } - else if ( "OR_INVERTED".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_OR_INVERTED; - } - else if ( "NAND".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_NAND; - } - else if ( "SET".equals(selectedItem) ) - { - mode = RenderingAttributes.ROP_SET; - } - else - { - System.out.println("oops. wrong mode in ROP combo: "+selectedItem); - } - rf.setRotatingObjectROPMode( mode ); - }//GEN-LAST:event_rotatingComboBoxActionPerformed - - private void shadedCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_shadedCheckBoxActionPerformed - rf.setStaticObjectDBWriteStatus( shadedCheckBox.isSelected() ); - }//GEN-LAST:event_shadedCheckBoxActionPerformed - - private void wfCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_wfCheckBoxActionPerformed - rf.setStaticWFObjectDBWriteStatus( wfCheckBox.isSelected() ); - }//GEN-LAST:event_wfCheckBoxActionPerformed - - private void shadedComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_shadedComboBoxActionPerformed - int func = RenderingAttributes.LESS_OR_EQUAL; - String selectedItem = shadedComboBox.getSelectedItem().toString(); // how to avoid a cast and all that goes with it. (lazyness) - rf.setStaticObjectTestFunc( getID( selectedItem ) ); - }//GEN-LAST:event_shadedComboBoxActionPerformed - - private void normalComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_normalComboBoxActionPerformed - int func = RenderingAttributes.LESS_OR_EQUAL; - String selectedItem = normalComboBox.getSelectedItem().toString(); // how to avoid a cast and all that goes with it. (lazyness) - rf.setStaticWFObjectTestFunc( getID( selectedItem ) ); - }//GEN-LAST:event_normalComboBoxActionPerformed - - int getID( String selectedItem ) - { - int func = RenderingAttributes.LESS_OR_EQUAL; - if ( "LESS_OR_EQUAL".equals(selectedItem) ) - { - func = RenderingAttributes.LESS_OR_EQUAL; - } - else if ( "NEVER".equals(selectedItem) ) - { - func = RenderingAttributes.NEVER; - } - else if ( "ALWAYS".equals(selectedItem) ) - { - func = RenderingAttributes.ALWAYS; - } - else if ( "GREATER".equals(selectedItem) ) - { - func = RenderingAttributes.GREATER; - } - else if ( "GREATER_OR_EQUAL".equals(selectedItem) ) - { - func = RenderingAttributes.GREATER_OR_EQUAL; - } - else if ( "LESS".equals(selectedItem) ) - { - func = RenderingAttributes.LESS; - } - else if ( "EQUAL".equals(selectedItem) ) - { - func = RenderingAttributes.EQUAL; - } - else if ( "NOT_EQUAL".equals(selectedItem) ) - { - func = RenderingAttributes.NOT_EQUAL; - } - return func; - } - - /** - * @param args the command line arguments - */ - public static void main(String args[]) { - java.awt.EventQueue.invokeLater(new Runnable() { - public void run() { - DepthFuncTest dpt = new DepthFuncTest(); - dpt.rf = new RenderFrame( dpt ); - dpt.setVisible(true); - dpt.rf.setVisible(true); - } - }); - } - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel jLabel1; - private javax.swing.JLabel jLabel3; - private javax.swing.JLabel jLabel4; - private javax.swing.JPanel jPanel1; - private javax.swing.JPanel jPanel2; - private javax.swing.JPanel jPanel3; - private javax.swing.JComboBox normalComboBox; - private javax.swing.JComboBox rotatingComboBox; - private javax.swing.JCheckBox shadedCheckBox; - private javax.swing.JComboBox shadedComboBox; - private javax.swing.JCheckBox wfCheckBox; - // End of variables declaration//GEN-END:variables - -} diff --git a/src/DepthFuncTest/RenderFrame.form b/src/DepthFuncTest/RenderFrame.form deleted file mode 100644 index 2edc4bb..0000000 --- a/src/DepthFuncTest/RenderFrame.form +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> - -<Form version="1.0" type="org.netbeans.modules.form.forminfo.JFrameFormInfo"> - <Properties> - <Property name="defaultCloseOperation" type="int" value="3"/> - <Property name="title" type="java.lang.String" value="J3D frame"/> - </Properties> - <SyntheticProperties> - <SyntheticProperty name="formSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-32,0,0,2,-128"/> - <SyntheticProperty name="formPosition" type="java.awt.Point" value="-84,-19,0,5,115,114,0,14,106,97,118,97,46,97,119,116,46,80,111,105,110,116,-74,-60,-118,114,52,126,-56,38,2,0,2,73,0,1,120,73,0,1,121,120,112,0,0,1,-112,0,0,0,0"/> - <SyntheticProperty name="formSizePolicy" type="int" value="0"/> - <SyntheticProperty name="generatePosition" type="boolean" value="true"/> - <SyntheticProperty name="generateSize" type="boolean" value="true"/> - <SyntheticProperty name="generateCenter" type="boolean" value="false"/> - </SyntheticProperties> - <AuxValues> - <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> - <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> - <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-56,0,0,2,120"/> - </AuxValues> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> -</Form> diff --git a/src/DepthFuncTest/RenderFrame.java b/src/DepthFuncTest/RenderFrame.java deleted file mode 100644 index 70945eb..0000000 --- a/src/DepthFuncTest/RenderFrame.java +++ /dev/null @@ -1,290 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.behaviors.mouse.*; -import com.sun.j3d.utils.behaviors.vp.OrbitBehavior; -import java.awt.GraphicsConfiguration; -import javax.media.j3d.*; -import com.sun.j3d.utils.universe.*; -import com.sun.j3d.utils.geometry.*; -import javax.vecmath.*; - - -public class RenderFrame extends javax.swing.JFrame { - - DepthFuncTest dpt; - - SimpleUniverse su; - - RenderingAttributes staticWFBoxRA; - RenderingAttributes staticBoxRA; - - RenderingAttributes rotatingBoxRA; - - /** Creates new form RenderFrame */ - public RenderFrame( DepthFuncTest _dpt) { - dpt = _dpt; - initComponents(); - initUniverse(); - } - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents - private void initComponents() - { - - setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); - setTitle("J3D frame"); - setBounds(400, 0, 640, 480); - } - // </editor-fold>//GEN-END:initComponents - - void initUniverse() { - GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - su = new SimpleUniverse(c); - su.addBranchGraph( createScene() ); - c.getView().setMinimumFrameCycleTime( 10 ); - } - - // Variables declaration - do not modify//GEN-BEGIN:variables - // End of variables declaration//GEN-END:variables - - BranchGroup createScene() { - BoundingSphere bounds = new BoundingSphere( new Point3d( 0.0, 0.0, 0.0 ), 100.0 ); - - BranchGroup globalBG = new BranchGroup(); - BranchGroup rotObjectBG = new BranchGroup(); - OrderedGroup staticObjectOG = new OrderedGroup(); - BranchGroup lampsBG = new BranchGroup(); - OrderedGroup oGroup = new OrderedGroup(); - TransformGroup staticBoxRotTG = new TransformGroup(); - staticBoxRotTG.addChild( staticObjectOG ); - TransformGroup objectsTGRot = new TransformGroup(); - TransformGroup objectsTGTrans = new TransformGroup(); - Transform3D objectsTGTransT3d = new Transform3D(); - objectsTGTransT3d.setTranslation( new Vector3f( 0.0f, 0.0f, -10.0f ) ); - objectsTGTrans.setTransform( objectsTGTransT3d ); - objectsTGRot.addChild( oGroup ); - objectsTGTrans.addChild( objectsTGRot ); - lampsBG.addChild( objectsTGTrans ); - - //adding a sphere as backgroung so there is something else than flat black, and cut cube removal as an other implication. (seeing through) - Appearance globalSphereAppearance = new Appearance(); - PolygonAttributes globalSpherePA = new PolygonAttributes(); - globalSpherePA.setCullFace( globalSpherePA.CULL_FRONT );// so that interior of the sphere is visible. - Material globalSphereMaterial = new Material(); - globalSphereMaterial.setEmissiveColor( .25f ,.3f ,.35f ); - globalSphereAppearance.setMaterial( globalSphereMaterial ); - globalSphereAppearance.setPolygonAttributes( globalSpherePA ); - Sphere globalSphere = new Sphere( 6.0f ); - globalSphere.setAppearance( globalSphereAppearance ); - globalSphere.setBounds( bounds ); - oGroup.addChild( globalSphere ); - - globalBG.addChild( lampsBG ); - - // adding lamps. - PointLight frontLamp = new PointLight( new Color3f( 1.0f, 1.0f, 1.0f ), new Point3f( 20, 20, 20 ), new Point3f( 0.0f, .0f, 0.f ) ); - lampsBG.addChild( frontLamp ); - frontLamp.setBounds( bounds ); - frontLamp.setInfluencingBounds( bounds ); - PointLight backLamp = new PointLight( new Color3f( 1.0f, .0f, .0f ), new Point3f( -20, -20, -20 ), new Point3f( 0.0f, .0f, 0.f ) ); - lampsBG.addChild( backLamp ); - backLamp.setBounds( bounds ); - backLamp.setInfluencingBounds( bounds ); - - //adding shapes. - { - //adding rotating and scaling cube - //doing the rotation - TransformGroup rotBoxTGRot = new TransformGroup(); - rotBoxTGRot.setCapability( rotBoxTGRot.ALLOW_TRANSFORM_WRITE ); - RotationInterpolator rotBoxRotInt = new RotationInterpolator( new Alpha( -1, 20000 ) , rotBoxTGRot ); - rotBoxRotInt.setSchedulingBounds( bounds ); - rotBoxRotInt.setBounds( bounds ); - - //doing the scaling - Transform3D scaleBoxt3d = new Transform3D(); - TransformGroup rotBoxTGScale = new TransformGroup(); - rotBoxTGScale.setCapability( rotBoxTGScale.ALLOW_TRANSFORM_WRITE ); - ScaleInterpolator rotBoxScaleInt = new ScaleInterpolator( new Alpha( -1, Alpha.INCREASING_ENABLE|Alpha.DECREASING_ENABLE, 0, 0, 3000, 1500, 0, 3000, 1500, 0 ) , rotBoxTGScale, new Transform3D(), 0.7f, 1.6f ); - rotBoxScaleInt.setSchedulingBounds( bounds ); - rotBoxScaleInt.setBounds( bounds ); - - Appearance rotBoxApp = new Appearance(); - Material rotBoxMat = new Material(); - rotBoxMat.setDiffuseColor( .4f, .4f, .4f ); - rotBoxApp.setMaterial( rotBoxMat ); - Box rotBox = new Box( 1.1f, 1.1f, 1.1f, rotBoxApp ); - rotBoxTGScale.addChild( rotBox ); - rotBoxTGRot.addChild( rotBoxTGScale ); - TransformGroup rotBoxTG = new TransformGroup(); - rotBoxTG.addChild( rotBoxTGRot ); - rotObjectBG.addChild( rotBoxTG ); - rotObjectBG.addChild( rotBoxScaleInt ); - rotObjectBG.addChild( rotBoxRotInt ); - rotBox.setBounds( bounds ); - - rotatingBoxRA = new RenderingAttributes(); - rotatingBoxRA.setRasterOpEnable( true ); - rotatingBoxRA.setCapability( staticBoxRA.ALLOW_RASTER_OP_WRITE ); -// rotatingBoxRA.setRasterOp( rotatingBoxRA.ROP_XOR ); - rotBoxApp.setRenderingAttributes( rotatingBoxRA ); - - - rotBox.setAppearance( rotBoxApp ); - } - - //adding static back face wireframe cube - { - Box staticWFBoxBack = new Box( ); - Appearance staticWFBoxApp = new Appearance(); - Material staticWFBoxMat = new Material(); - staticWFBoxMat.setDiffuseColor( 0.f, 0.f, 0.f ); - staticWFBoxMat.setEmissiveColor( 0.f, .4f, 0.f ); - staticWFBoxApp.setMaterial( staticWFBoxMat ); - PolygonAttributes staticWFBoxPABack = new PolygonAttributes( PolygonAttributes.POLYGON_LINE, PolygonAttributes.CULL_FRONT, 0.0f ); - staticWFBoxApp.setPolygonAttributes( staticWFBoxPABack ); - staticWFBoxRA = new RenderingAttributes(); - staticWFBoxRA.setCapability( staticWFBoxRA.ALLOW_DEPTH_TEST_FUNCTION_WRITE ); - staticWFBoxRA.setCapability( staticWFBoxRA.ALLOW_DEPTH_ENABLE_WRITE ); - staticWFBoxRA.setDepthTestFunction( staticWFBoxRA.GREATER ); - staticWFBoxRA.setDepthBufferWriteEnable( false ); - staticWFBoxApp.setRenderingAttributes( staticWFBoxRA ); - staticWFBoxBack.setAppearance( staticWFBoxApp ); - staticWFBoxBack.setBounds( bounds ); - staticObjectOG.addChild( staticWFBoxBack ); - } - - //adding static front face wireframe cube - { - Box staticWFBox = new Box( ); - Appearance staticWFBoxApp = new Appearance(); - Material staticWFBoxMat = new Material(); - staticWFBoxMat.setDiffuseColor( 0.f, 0.f, 0.f ); - staticWFBoxMat.setEmissiveColor( 0.f, 1.f, 0.f ); - staticWFBoxApp.setMaterial( staticWFBoxMat ); - PolygonAttributes staticWFBoxPA = new PolygonAttributes( PolygonAttributes.POLYGON_LINE, PolygonAttributes.CULL_BACK, 0.0f ); - staticWFBoxApp.setPolygonAttributes( staticWFBoxPA ); - staticWFBoxApp.setRenderingAttributes( staticWFBoxRA ); - staticWFBox.setAppearance( staticWFBoxApp ); - staticWFBox.setBounds( bounds ); - staticObjectOG.addChild( staticWFBox ); - } - - - {// rotating the static cubes - Transform3D boxt3d = new Transform3D(); - Transform3D tempt3d = new Transform3D(); - boxt3d.rotZ( Math.PI/4.0f ); - tempt3d.rotX( Math.PI/4.0f ); - boxt3d.mul( tempt3d ); - tempt3d.rotY( Math.PI/4.0f ); - boxt3d.mul( tempt3d ); - staticBoxRotTG.setTransform( boxt3d ); - } - - // adding static flat cube - { - Box staticBox = new Box( ); - staticBox.setBounds( bounds ); - Appearance boxApp = new Appearance(); - Material boxMat = new Material(); - boxMat.setDiffuseColor( .7f, .7f, .7f ); - boxApp.setMaterial( boxMat ); - staticBoxRA = new RenderingAttributes(); - staticBoxRA.setCapability( staticBoxRA.ALLOW_DEPTH_TEST_FUNCTION_WRITE ); - staticBoxRA.setCapability( staticBoxRA.ALLOW_DEPTH_ENABLE_WRITE ); - staticBoxRA.setDepthTestFunction( staticBoxRA.LESS ); - staticBoxRA.setDepthBufferWriteEnable( false ); - boxApp.setRenderingAttributes( staticBoxRA ); - staticBox.setAppearance( boxApp ); - staticObjectOG.addChild( staticBox ); - } - oGroup.addChild( rotObjectBG ); - oGroup.addChild( staticBoxRotTG ); - - //adding the mouse rotate behavior to the group of cubes. - MouseRotate behavior = new MouseRotate(); - behavior.setTransformGroup( objectsTGRot ); - objectsTGRot.addChild( behavior ); - objectsTGRot.setCapability( objectsTGRot.ALLOW_TRANSFORM_READ ); - objectsTGRot.setCapability( objectsTGRot.ALLOW_TRANSFORM_WRITE ); - behavior.setSchedulingBounds(bounds); - return globalBG; - } - - public void setStaticWFObjectTestFunc( int func ) - { - staticWFBoxRA.setDepthTestFunction( func ); - } - - public void setStaticObjectTestFunc( int func ) - { - staticBoxRA.setDepthTestFunction( func ); - } - - public void setStaticWFObjectDBWriteStatus( boolean status ) - { - staticWFBoxRA.setDepthBufferWriteEnable( status ); - } - - public void setStaticObjectDBWriteStatus( boolean status ) - { - staticBoxRA.setDepthBufferWriteEnable( status ); - } - - public void setRotatingObjectROPMode( int mode ) - { - rotatingBoxRA.setRasterOp( mode ); - } - -} diff --git a/src/DepthFuncTest/build.xml b/src/DepthFuncTest/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/DepthFuncTest/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/DistortGlyph/DistortBehavior.java b/src/DistortGlyph/DistortBehavior.java deleted file mode 100644 index e4f0d59..0000000 --- a/src/DistortGlyph/DistortBehavior.java +++ /dev/null @@ -1,192 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.util.Enumeration; - -import javax.media.j3d.Appearance; -import javax.media.j3d.Behavior; -import javax.media.j3d.GeometryArray; -import javax.media.j3d.Shape3D; -import javax.media.j3d.Transform3D; -import javax.media.j3d.WakeupCondition; -import javax.media.j3d.WakeupCriterion; -import javax.media.j3d.WakeupOnElapsedFrames; -import javax.media.j3d.WakeupOnElapsedTime; - -import javax.vecmath.Vector3f; - -public class DistortBehavior extends Behavior { - // the wake up condition for the behavior - protected WakeupCondition m_InitialWakeupCondition = null; - protected WakeupCondition m_FrameWakeupCondition = null; - - // the GeometryArray for the Shape3D that we are modifying - protected Shape3D m_Shape3D = null; - protected GeometryArray m_GeometryArray = null; - - protected float[] m_CoordinateArray = null; - protected float[] m_OriginalCoordinateArray = null; - protected Appearance m_Appearance = null; - - protected int m_nElapsedTime = 0; - protected int m_nNumFrames = 0; - protected int m_nFrameNumber = 0; - - private int frame = 0; - protected Vector3f m_Vector = null; - - public DistortBehavior(Shape3D shape3D, int nElapsedTime, int nNumFrames) { - // allocate a temporary vector - m_Vector = new Vector3f(); - - m_FrameWakeupCondition = new WakeupOnElapsedFrames(0); - - restart(shape3D, nElapsedTime, nNumFrames); - } - - public WakeupCondition restart(Shape3D shape3D, int nElapsedTime, int nNumFrames) { - m_Shape3D = shape3D; - m_nElapsedTime = nElapsedTime; - m_nNumFrames = nNumFrames; - m_nFrameNumber = 0; - - // create the WakeupCriterion for the behavior - m_InitialWakeupCondition = new WakeupOnElapsedTime(m_nElapsedTime); - - // save the GeometryArray that we are modifying - m_GeometryArray = (GeometryArray) m_Shape3D.getGeometry(); - - if (m_Shape3D.isLive() == false && m_Shape3D.isCompiled() == false) { - // set the capability bits that the behavior requires - m_Shape3D.setCapability(Shape3D.ALLOW_APPEARANCE_READ); - m_Shape3D.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); - - m_Shape3D.getAppearance().setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_WRITE); - m_Shape3D.getAppearance().setCapability(Appearance.ALLOW_POLYGON_ATTRIBUTES_WRITE); - m_Shape3D.getAppearance().setCapability(Appearance.ALLOW_TRANSPARENCY_ATTRIBUTES_WRITE); - m_Shape3D.getAppearance().setCapability(Appearance.ALLOW_TEXTURE_WRITE); - - m_GeometryArray.setCapability(GeometryArray.ALLOW_COORDINATE_READ); - m_GeometryArray.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); - m_GeometryArray.setCapability(GeometryArray.ALLOW_COUNT_READ); - } - - // make a copy of the object's original appearance - m_Appearance = new Appearance(); - m_Appearance = (Appearance) m_Shape3D.getAppearance().cloneNodeComponent(true); - - // allocate an array for the model coordinates - m_CoordinateArray = new float[3 * m_GeometryArray.getVertexCount()]; - - // make a copy of the models original coordinates - m_OriginalCoordinateArray = new float[3 * m_GeometryArray.getVertexCount()]; - m_GeometryArray.getCoordinates(0, m_OriginalCoordinateArray); - - // start (or restart) the behavior - setEnable(true); - - return m_InitialWakeupCondition; - } - - public void initialize() { - // apply the initial WakeupCriterion - wakeupOn(m_InitialWakeupCondition); - } - - public void processStimulus(Enumeration criteria) { - while (criteria.hasMoreElements()) { - WakeupCriterion wakeUp = (WakeupCriterion) criteria.nextElement(); - - if (wakeUp instanceof WakeupOnElapsedTime) { - } else { - // we are mid explosion, modify the GeometryArray - m_nFrameNumber++; - frame++; - m_GeometryArray.getCoordinates(0, m_CoordinateArray); - - Transform3D t3 = new Transform3D(); - for (int n = 0; n < m_CoordinateArray.length; n += 3) { - m_Vector.x = m_OriginalCoordinateArray[n]; - m_Vector.y = m_OriginalCoordinateArray[n + 1]; - m_Vector.z = m_OriginalCoordinateArray[n + 2]; - - float spx = (float) (Math.sin(frame *3f / 500)); - float spy = (float) (Math.cos(frame *5f / 500)); - Vector3f v = new Vector3f(spx, spy, 0); - - float px = (m_Vector.x - v.x); - float py = (m_Vector.y - v.y); - float pz = (m_Vector.z - v.z); - float d = (float) Math.sqrt(px * px + py * py + pz * pz); - - - m_Vector.add(new Vector3f(-.25f, -.25f, -.25f)); - //m_Vector.scale(d); - - t3.rotZ(d); - t3.rotX(d*2); - t3.rotY(d); - t3.transform(m_Vector); - - m_CoordinateArray[n] = m_Vector.x; - m_CoordinateArray[n + 1] = m_Vector.y; - m_CoordinateArray[n + 2] = m_Vector.z; - - } - - // assign the new coordinates - m_GeometryArray.setCoordinates(0, m_CoordinateArray); - } - } - - if (m_nFrameNumber < m_nNumFrames) { - // assign the next WakeUpCondition, so we are notified again - wakeupOn(m_FrameWakeupCondition); - } else { - // restart - m_nFrameNumber = 0; - wakeupOn(m_FrameWakeupCondition); - } - } -} diff --git a/src/DistortGlyph/DistortGlyphTest.java b/src/DistortGlyph/DistortGlyphTest.java deleted file mode 100644 index fd9c590..0000000 --- a/src/DistortGlyph/DistortGlyphTest.java +++ /dev/null @@ -1,208 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.Font; -import java.awt.Frame; -import java.awt.GraphicsConfiguration; -import java.awt.GraphicsEnvironment; - -import javax.media.j3d.AmbientLight; -import javax.media.j3d.Appearance; -import javax.media.j3d.BoundingSphere; -import javax.media.j3d.BranchGroup; -import javax.media.j3d.Canvas3D; -import javax.media.j3d.DirectionalLight; -import javax.media.j3d.Font3D; -import javax.media.j3d.FontExtrusion; -import javax.media.j3d.GeometryArray; -import javax.media.j3d.GraphicsConfigTemplate3D; -import javax.media.j3d.Light; -import javax.media.j3d.Material; -import javax.media.j3d.PointLight; -import javax.media.j3d.Shape3D; -import javax.media.j3d.TexCoordGeneration; -import javax.media.j3d.Texture; -import javax.media.j3d.TransformGroup; - -import javax.vecmath.Color3f; -import javax.vecmath.Point3d; -import javax.vecmath.Point3f; -import javax.vecmath.Vector3f; - -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.behaviors.mouse.MouseRotate; -import com.sun.j3d.utils.behaviors.mouse.MouseTranslate; -import com.sun.j3d.utils.behaviors.mouse.MouseZoom; -import com.sun.j3d.utils.image.TextureLoader; -import com.sun.j3d.utils.universe.SimpleUniverse; - -public class DistortGlyphTest extends Applet { - // get a nice graphics config - private static GraphicsConfiguration getGraphicsConfig() { - GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D(); - template.setSceneAntialiasing(GraphicsConfigTemplate3D.PREFERRED); - GraphicsConfiguration gcfg = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getBestConfiguration(template); - return gcfg; - } - - private void setupLights(BranchGroup root) { - // set up the BoundingSphere for all the lights - BoundingSphere bounds = new BoundingSphere(new Point3d(), 100.0); - - // Set up the ambient light - AmbientLight lightAmbient = new AmbientLight(new Color3f(0.37f, 0.37f, 0.37f)); - lightAmbient.setInfluencingBounds(bounds); - root.addChild(lightAmbient); - - // Set up the directional light - Vector3f lightDirection1 = new Vector3f(0.0f, 0.0f, -1.0f); - DirectionalLight lightDirectional1 = new DirectionalLight(new Color3f(1.00f, 0.10f, 0.00f), lightDirection1); - lightDirectional1.setInfluencingBounds(bounds); - lightDirectional1.setCapability(Light.ALLOW_STATE_WRITE); - root.addChild(lightDirectional1); - - Point3f lightPos1 = new Point3f(-4.0f, 8.0f, 16.0f); - Point3f lightAttenuation1 = new Point3f(1.0f, 0.0f, 0.0f); - PointLight pointLight1 = new PointLight(new Color3f(0.37f, 1.00f, 0.37f), lightPos1, lightAttenuation1); - pointLight1.setInfluencingBounds(bounds); - root.addChild(pointLight1); - - Point3f lightPos2 = new Point3f(-16.0f, 8.0f, 4.0f); - Point3f lightAttenuation2 = new Point3f(1.0f, 0.0f, 0.0f); - PointLight pointLight2 = new PointLight(new Color3f(0.37f, 0.37f, 1.00f), lightPos2, lightAttenuation2); - pointLight2.setInfluencingBounds(bounds); - root.addChild(pointLight2); - } - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - setupLights(objRoot); - - TransformGroup objTransform = new TransformGroup(); - objTransform.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTransform.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - - objRoot.addChild(objTransform); - - // setup a nice textured appearance - Appearance app = new Appearance(); - Color3f objColor = new Color3f(1.0f, 0.7f, 0.8f); - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - app.setMaterial(new Material(objColor, black, objColor, black, 80.0f)); - Texture txtr = new TextureLoader("gold.jpg",this).getTexture(); - app.setTexture(txtr); - TexCoordGeneration tcg = new TexCoordGeneration(TexCoordGeneration.SPHERE_MAP,TexCoordGeneration.TEXTURE_COORDINATE_2); - app.setTexCoordGeneration(tcg); - - // use a customized FontExtrusion object to control the depth of the text - java.awt.geom.GeneralPath gp = new java.awt.geom.GeneralPath(); - gp.moveTo(0, 0); - gp.lineTo(.01f, .01f); - gp.lineTo(.2f, .01f); - gp.lineTo(.21f, 0f); - FontExtrusion fontEx = new FontExtrusion(gp); - - // our glyph - Font fnt = new Font("dialog", Font.BOLD, 1); - Font3D f3d = new Font3D(fnt, .001, fontEx); - GeometryArray geom = f3d.getGlyphGeometry('A'); - Shape3D shape = new Shape3D(geom, app); - objTransform.addChild(shape); - - // the DistortBehavior - DistortBehavior eb = new DistortBehavior(shape, 1000, 1000); - eb.setSchedulingBounds(new BoundingSphere()); - objTransform.addChild(eb); - - MouseRotate myMouseRotate = new MouseRotate(); - myMouseRotate.setTransformGroup(objTransform); - myMouseRotate.setSchedulingBounds(new BoundingSphere()); - objRoot.addChild(myMouseRotate); - - MouseTranslate myMouseTranslate = new MouseTranslate(); - myMouseTranslate.setTransformGroup(objTransform); - myMouseTranslate.setSchedulingBounds(new BoundingSphere()); - objRoot.addChild(myMouseTranslate); - - MouseZoom myMouseZoom = new MouseZoom(); - myMouseZoom.setTransformGroup(objTransform); - myMouseZoom.setSchedulingBounds(new BoundingSphere()); - objRoot.addChild(myMouseZoom); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - // Create a simple scene and attach it to the virtual universe - public DistortGlyphTest() { - //setLayout(new BorderLayout()); - GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); - - Canvas3D canvas3D = new Canvas3D(getGraphicsConfig()); - canvas3D.setBounds(0, 0, 800, 600); - add("Center", canvas3D); - - BranchGroup scene = createSceneGraph(); - - // SimpleUniverse is a Convenience Utility class - SimpleUniverse simpleU = new SimpleUniverse(canvas3D); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - simpleU.getViewingPlatform().setNominalViewingTransform(); - - simpleU.addBranchGraph(scene); - } - - // The following allows this to be run as an application - // as well as an applet - public static void main(String[] args) { - Frame frame = new MainFrame(new DistortGlyphTest(), 800, 600); - } -} diff --git a/src/DistortGlyph/build.xml b/src/DistortGlyph/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/DistortGlyph/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/DistortGlyph/gold.jpg b/src/DistortGlyph/gold.jpg Binary files differdeleted file mode 100644 index 40e8786..0000000 --- a/src/DistortGlyph/gold.jpg +++ /dev/null diff --git a/src/FPSCounter/FPSCounter.java b/src/FPSCounter/FPSCounter.java deleted file mode 100644 index 17e7f35..0000000 --- a/src/FPSCounter/FPSCounter.java +++ /dev/null @@ -1,279 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; -import java.text.*; - -/** This behavior calculates the frame rate and average frame rate of a - * Java3D application. - * The behavior sets itself up to wakeup every time a new frame is rendered. - * - * <p> The HotSpot(tm) compiler performs some initial optimizations before - * running at optimal speed. Frame rates measured during this warmup period - * will be inaccurate and not indicative of the true performance of the the - * application. Therefore, before beginning the frame rate computation, - * the frame counter waits for a fixed time period to allow the HotSpot(tm) - * compiler to stablilize. - * - * <p> To avoid computing the frame rate too frequently (which would also - * hamper rendering performance), the frame counter only computes the frame - * rate at fixed time intervals. The default sampling duration is 10 seconds. - * After waiting for the warmup period, the frame counter needs to calibrate - * itself. It computes the number of frames rendered during the sampling - * period. After doing this calibration, the frame counter reports the frame - * rate after these many frames are rendered. It also reports the average - * frame rate after a fixed number of sampling intervals (the default is 5). - * - * <p>The frame counter can be set up to run for a fixed number of sampling - * intervals or to run indefinitely. The defaultis to run indefinitely. - */ - -public class FPSCounter extends Behavior { - // Wakeup condition - framecount = 0 -> wakeup on every frame - WakeupOnElapsedFrames FPSwakeup = new WakeupOnElapsedFrames(0); - - // Do calibration for these many millisec - private static final long testduration = 1000; - - // Report frame rate after every sampleduration milliseconds - private static final long sampleduration = 10000; - - // Flag to indicate that it is time to (re)calibrate - private boolean doCalibration = true; - - // Flag to indicate the counter has started - private boolean startup = true; - - // Wait for HotSpot compiler to perform optimizations - private boolean warmup = true; - - // Time to wait for HotSpot compiler to stabilize (in milliseconds) - private long warmupTime = 20000; - - // Counter for number of frames rendered - private int numframes = 0; - - // Report frame rate after maxframe number of frames have been rendered - private int maxframes = 1; - - // Variables to keep track of elapsed time - private long startuptime = 0; - private long currtime = 0; - private long lasttime = 0; - private long deltatime; - - // Run indefinitely or for a fixed duration - private boolean finiteLoop = false; - - // No. of sampling intervals to run for if not running indefinitely - private long maxLoops; - - // No. of sampling intervals run for so far - private long numLoops = 0; - - // Total number of frames rendered so far - private int sumFrames = 0; - - // Total time since last reporting of average frame rate - private long sumTimes = 0; - - // Counts no. of sampling intervals - private int loop = 0; - - // Average frame rate is reported after loopCount number of - // sampling intervals - private int loopCount = 5; - private double sumFps = 0.0; - - private String symbol[] = {"\\", "|", "|", "/", "-", "|", "-"}; - int index = 0; - private NumberFormat nf = null; - - public FPSCounter() { - setEnable(true); - nf = NumberFormat.getNumberInstance(); - } - - /** - * Called to init the behavior - */ - public void initialize() { - // Set the trigger for the behavior to wakeup on every frame rendered - wakeupOn(FPSwakeup); - } - - /** - * Called every time the behavior is activated - */ - public void processStimulus(java.util.Enumeration critera) { - // Apply calibration algorithm to determine number of frames to - // wait before computing frames per second. - // sampleduration = 10000 -> to run test, pass for 10 seconds. - - if (doCalibration) { // start calibration - if (startup) { - // Record time at which the behavior was first invoked - startuptime = System.currentTimeMillis(); - startup = false; - } - else if(warmup) { // Wait for the system to stabilize. - System.out.print("\rFPSCounter warming up..." + - symbol[(index++)%symbol.length]); - currtime = System.currentTimeMillis(); - deltatime = currtime - startuptime; - if(deltatime > warmupTime) { - // Done waiting for warmup - warmup = false; - lasttime = System.currentTimeMillis(); - System.out.println("\rFPSCounter warming up...Done"); - } - } - else { - numframes += 1; - // Wait till at least maxframe no. of frames have been rendered - if (numframes >= maxframes) { - currtime = System.currentTimeMillis(); - deltatime = currtime - lasttime; - // Do the calibration for testduration no. of millisecs - if (deltatime > testduration) { - // Compute total no. of frames rendered so far in the - // current sampling duration - maxframes = (int)Math.ceil((double)numframes * - ((double)sampleduration / - (double)deltatime)); - - // Done with calibration - doCalibration = false; - // reset the value for the measurement - numframes = 0; - lasttime = System.currentTimeMillis(); - } - else { - // Need to run the calibration routine for some more - // time. Increase the no. of frames to be rendered - maxframes *= 2; - } - } - } - } - else { // do the measurement - numframes += 1; - if (numframes >= maxframes) { - currtime = System.currentTimeMillis(); - deltatime = currtime - lasttime; - // time is in millisec, so multiply by 1000 to get frames/sec - double fps = (double)numframes / ((double)deltatime / 1000.0); - - System.out.println("Frame Rate : \n\tNo. of frames : " + - numframes + "\n\tTime : " + - ((double)deltatime / 1000.0) + - " sec." + "\n\tFrames/sec : " + nf.format(fps)); - - // Calculate average frame rate - sumFrames += numframes; - sumTimes += deltatime; - sumFps += fps; - loop++; - if (loop >= loopCount) { - double avgFps = (double)sumFrames*1000.0/(double)sumTimes; - double ravgFps = sumFps/(double)loopCount; - System.out.println("Aggregate frame rate " + - nf.format(avgFps) + " frames/sec"); - System.out.println("Average frame rate " + - nf.format(ravgFps) + " frames/sec"); - numLoops++; - if (finiteLoop && numLoops >= maxLoops) { - System.out.println("************** The End **************\n"); - setEnable(false); - } - loop = 0; - sumFps = 0; - } - numframes = 0; - lasttime = System.currentTimeMillis();; - } - } - // Set the trigger for the behavior - wakeupOn(FPSwakeup); - } - - /** - * The frame counter waits for some time before computing the - * frame rate. This allows the HotSpot compiler to perform - * initial optimizations. The amount of time to wait for is set - * by this method. The default is 20000 (20 sec) - * - * @param amount of time to wait for before computing frame rate - * (specified in milliseconds) - */ - public void setWarmupTime(long wt) { - warmupTime = wt; - } - - /** - * Sets the number of sampling intervals to wait for before computing - * the average frame rate. - * The default is 5. - * - * @param number of sampling intervals over which to compute frame rate. - * A value of 0 implies the average frame rate is computed over one - * sampling interval - */ - public void setLoopCount(int lc) { - loopCount = lc; - } - - /** - * This method sets the number of sampling intervals for which - * the frame counter should run. - * - * @param number of sampling intervals to run for - */ - public void setMaxLoops(int ml) { - maxLoops = ml; - finiteLoop = true; - } - -} diff --git a/src/FPSCounter/FPSCounterDemo.html b/src/FPSCounter/FPSCounterDemo.html deleted file mode 100644 index 9ebe39e..0000000 --- a/src/FPSCounter/FPSCounterDemo.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>FPS Counter</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="FPSCounterDemo.class" width=256 height=256> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a FPS Counter instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/FPSCounter/FPSCounterDemo.java b/src/FPSCounter/FPSCounterDemo.java deleted file mode 100644 index 6967741..0000000 --- a/src/FPSCounter/FPSCounterDemo.java +++ /dev/null @@ -1,219 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.BorderLayout; -import java.awt.event.*; -import java.awt.GraphicsConfiguration; -import com.sun.j3d.utils.applet.JMainFrame; -import com.sun.j3d.utils.geometry.ColorCube; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import javax.swing.JOptionPane; - -/** This program demonstrates the use of the frames per second counter. - * The program displays a rotating cube and sets up the FPSCounter to compute - * the frame rate. The FPSCounter is set up with default values: - * - run indefinitely - * - 2 sec. warmup time - * - display average frame rate every fifth sampling interval. - * The default values can be changed through the command line - * arguments. Use FPSCounterDemo -h for help on the various arguments. - */ - -public class FPSCounterDemo extends Applet { - private SimpleUniverse u = null; - private FPSCounter fpsCounter = new FPSCounter(); - - BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create the TransformGroup node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at run time. Add it to - // the root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objRoot.addChild(objTrans); - - // Create a simple Shape3D node; add it to the scene graph. - objTrans.addChild(new ColorCube(0.4)); - - // Create a new Behavior object that will perform the - // desired operation on the specified transform and add - // it into the scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, 4000); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), - 100.0); - rotator.setSchedulingBounds(bounds); - objRoot.addChild(rotator); - - // Create the Framecounter behavior - fpsCounter.setSchedulingBounds(bounds); - objRoot.addChild(fpsCounter); - - return objRoot; - } - - - public FPSCounterDemo(String args[]) { - } - - public FPSCounterDemo() { - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - - // Parse the command line to set the various parameters - - // Have Java 3D perform optimizations on this scene graph. - scene.compile(); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - - JOptionPane.showMessageDialog(this, - ("This program measures the number of frames rendered per second.\n" + - "Note that the frame rate is limited by the refresh rate of the monitor.\n" + - "To get the true frame rate you need to disable vertical retrace.\n\n" + - "On Windows(tm) you do this through the Control Panel.\n\n" + - "On Solaris set the environment variable OGL_NO_VBLANK"), - "Frame Counter", - JOptionPane.INFORMATION_MESSAGE); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows FPSCounterDemo to be run as an application - // as well as an applet - // - public static void main(String[] args) { - FPSCounterDemo fp = new FPSCounterDemo(); - fp.parseArgs(args); - JMainFrame frame = new JMainFrame(fp, 256, 256); - } - - /** Parses the commandline for the various switches to set the FPSCounter - * variables. - * All arguments are of the form <i>-name value</i>. - * All -name arguments can be shortened to one character. All the value - * arguments take a number. The arguments accepted are : - * <ul> - * <li>warmupTime : Specifies amount of time the FPSCounter should wait - * for the HotSpot<sup><font size="-2">TM</font></sup> VM to perform - * initial optimizations. Specified in milliseconds<br> - * <li>loopCount : Specifies the number of sampling intervals over which - * the FPSCounter should calculate the aggregate and average frame rate. - * Specified as a count. <br> - * <li>maxLoops : Specifies that the FPSCounter should run for only - * these many sampling intervals. Specified as number. If this argument - * is not specified, the FPSCounter runs indefinitely. <br> - * <li>help : Prints the accepted arguments. <br> - * </ul> - */ - private void parseArgs(String args[]) { - for(int i = 0; i < args.length; i++) { - if(args[i].startsWith("-")) { - if(args[i].startsWith("w", 1)) { - i++; - System.out.println("Warmup time : " + args[i]); - int w = new Integer(args[i]).intValue(); - fpsCounter.setWarmupTime(w); - } - else if(args[i].startsWith("l", 1)) { - i++; - System.out.println("Loop count : " + args[i]); - int l = new Integer(args[i]).intValue(); - fpsCounter.setLoopCount(l); - } - else if(args[i].startsWith("m", 1)) { - i++; - System.out.println("Max Loop Count : " + args[i]); - int m = new Integer(args[i]).intValue(); - fpsCounter.setMaxLoops(m); - } - else if(args[i].startsWith("h", 1)) { - System.out.println("Usage : FPSCounterDemo [-name value]\n" + - "All arguments are of the form: -name value. All -name arguments can be\n" + - "shortened to one character. All the value arguments take a number. The\n" + - "arguments accepted are:\n\n" + - " -warmupTime : Specifies amount of time the FPSCounter should wait\n" + - " for the HotSpot(tm) VM to perform initial\n" + - " optimizations. Specified in milliseconds\n\n" + - " -loopCount : Specifies the number of sampling intervals over which\n" + - " the FPSCounter should calculate the aggregate and average\n" + - " frame rate. Specified as a count\n\n" + - " -maxLoops : Specifies that the FPSCounter should run for only these\n" + - " many sampling intervals. Specified as number. If this argument\n" + - " is not specified, the FPSCounter runs indefinitely.\n\n" + - " -help : Prints this message."); - } - } - } - } - -} diff --git a/src/FPSCounter/FPSCounterDemo_plugin.html b/src/FPSCounter/FPSCounterDemo_plugin.html deleted file mode 100644 index e16ec6e..0000000 --- a/src/FPSCounter/FPSCounterDemo_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>FPS Counter</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 256 HEIGHT = 256 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "FPSCounterDemo.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "FPSCounterDemo.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a FPS Counter instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "FPSCounterDemo.class" WIDTH = 500 HEIGHT = 256 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a FPS Counter instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/FPSCounter/build.xml b/src/FPSCounter/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/FPSCounter/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/FourByFour/BigCube.java b/src/FourByFour/BigCube.java deleted file mode 100644 index dbd304e..0000000 --- a/src/FourByFour/BigCube.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.event.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -/** - * Class BigCube - * - * Description: Creates the "big" cube used to mark the computer's - * position. - * - * Version: 1.0 - */ -public class BigCube extends Object { - - private Shape3D shape3D; - - private static final float[] verts = { - // Front Face - 5.0f, -5.0f, 5.0f, 5.0f, 5.0f, 5.0f, - -5.0f, 5.0f, 5.0f, -5.0f, -5.0f, 5.0f, - // Back Face - -5.0f, -5.0f, -5.0f, -5.0f, 5.0f, -5.0f, - 5.0f, 5.0f, -5.0f, 5.0f, -5.0f, -5.0f, - // Right Face - 5.0f, -5.0f, -5.0f, 5.0f, 5.0f, -5.0f, - 5.0f, 5.0f, 5.0f, 5.0f, -5.0f, 5.0f, - // Left Face - -5.0f, -5.0f, 5.0f, -5.0f, 5.0f, 5.0f, - -5.0f, 5.0f, -5.0f, -5.0f, -5.0f, -5.0f, - // Top Face - 5.0f, 5.0f, 5.0f, 5.0f, 5.0f, -5.0f, - -5.0f, 5.0f, -5.0f, -5.0f, 5.0f, 5.0f, - // Bottom Face - -5.0f, -5.0f, 5.0f, -5.0f, -5.0f, -5.0f, - 5.0f, -5.0f, -5.0f, 5.0f, -5.0f, 5.0f, - }; - - private static final float[] normals = { - // Front Face - 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, - // Back Face - 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f, - 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f, - // Right Face - 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, - // Left Face - -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, - -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, - // Top Face - 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - // Bottom Face - 0.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, - 0.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, - }; - - public BigCube(Appearance appearance) { - - QuadArray quadArray = new QuadArray(24, QuadArray.COORDINATES | - QuadArray.NORMALS ); - quadArray.setCoordinates(0, verts); - quadArray.setNormals(0, normals); - - shape3D = new Shape3D(quadArray, appearance); - shape3D.setCapability(Shape3D.ALLOW_GEOMETRY_READ); - shape3D.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); - shape3D.setCapability(Shape3D.ALLOW_APPEARANCE_READ); - shape3D.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); - } - - public BigCube(Appearance appearance, float size) { - - QuadArray quadArray = new QuadArray(24, QuadArray.COORDINATES | - QuadArray.NORMALS ); - - for (int i=0; i<72; i++) verts[i] *= size; - - quadArray.setCoordinates(0, verts); - quadArray.setNormals(0, normals); - - shape3D = new Shape3D(quadArray, appearance); - shape3D.setCapability(Shape3D.ALLOW_GEOMETRY_READ); - shape3D.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); - shape3D.setCapability(Shape3D.ALLOW_APPEARANCE_READ); - shape3D.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); - } - - public Shape3D getChild() { - return shape3D; - } -} diff --git a/src/FourByFour/Board.java b/src/FourByFour/Board.java deleted file mode 100644 index b4d29c9..0000000 --- a/src/FourByFour/Board.java +++ /dev/null @@ -1,2310 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.*; - -/** - * Class: Board - * - * Description: Handles all logic with respect to play. Also renders - * the 2D window. - * - * Version: 1.1 - * - */ -class Board { - - final static int UNOCCUPIED = 0; - final static int HUMAN = 1; - final static int MACHINE = 2; - final static int END = 3; - - private int[] moves; - private int[] occupied; - private int[][] combinations; - private int[][] outside_four; - private int[][] inside_four; - private int[][] faces; - private int[][] pos_to_comb; - private int[][] best_picks; - private int num_points; - private int num_balls; - private int num_polygons; - private int num_pt_indexes; - private int num_normal_indexes; - private int pt_start; - private int color_index; - private int width; - private int height; - private int center_x; - private int center_y; - private int player; - private int skill_level; - private int outside_four_index; - private int inside_four_index; - private int face_index; - private int nmoves; - private int current_face; - private int min = 1000; - private int max = 0; - private long[] sort_array; - private long time; - private long beg_time; - private long end_time; - private Color[] color_ramp; - private Color background; - private Color label_color; - private Color red; - private Color blue; - private Color white; - private Color gray; - private Color yellow; - private double max_dist; - private FourByFour panel; - private boolean debug; - private boolean outside_four_flag; - private boolean inside_four_flag; - private boolean face_flag; - private boolean label_flag; - private boolean block_chair_flag; - private boolean undoFlag; - private boolean[] highlight; - private int block_chair_next_move; - private int block_chair_face; - private Positions positions; - private Canvas2D canvas; - - Board (FourByFour panel, Positions positions, int width, int height) { - - // Set the debug state. - debug = false; - - // Store arguments - this.width = width; - this.height = height; - this.panel = panel; - this.positions = positions; - - // Initialize flags - label_flag = false; - outside_four_flag = false; - inside_four_flag = false; - block_chair_flag = false; - undoFlag = false; - - // Total number of board positions. - num_points = 64; - - // Allocate the logic arrays. - moves = new int[64]; - occupied = new int[64]; - combinations = new int[76][7]; - outside_four = new int[18][6]; - inside_four = new int[18][6]; - faces = new int[18][18]; - pos_to_comb = new int[64][8]; - best_picks = new int[64][8]; - highlight = new boolean[18]; - - // Initialize the logic arrays. - init_combinations(); - init_faces(); - init_outside_four(); - init_inside_four(); - - // Set the player with the first move. - player = HUMAN; - - // Set the default skill level. - skill_level = 4; - - // Initialize the number of moves. - nmoves = 0; - - // Define colors - background = new Color(13, 13, 51); - red = new Color(230, 26, 51); - blue = new Color(51, 51, 230); - white = new Color(255, 255, 255); - gray = new Color(240, 240, 240); - yellow = new Color(240, 240, 0); - - // Record the start time - beg_time = System.currentTimeMillis(); - } - - public void setCanvas(Canvas2D canvas) { - this.canvas = canvas; - } - - public void init_combinations () { - - // The combination array contains all possible winning combinations. - // - // Each combination has the following format: - // - // combinations[x][0] = status: 0 = no player has selected positons in this row - // -1 = both players have men in this row - // 1 to 4 = number of positions occupied by player - // - // combinations[x][1] = player who owns this row (valid only if status = 1-4) - // combinations[x][2] = postion that define the row - // combinations[x][3] = postion that define the row - // combinations[x][4] = postion that define the row - // combinations[x][5] = postion that define the row - - // Horizontal, Z - - combinations[ 0][0] = 0; combinations[ 1][0] = 0; combinations[ 2][0] = 0; combinations[ 3][0] = 0; - combinations[ 0][1] = 0; combinations[ 1][1] = 0; combinations[ 2][1] = 0; combinations[ 3][1] = 0; - combinations[ 0][2] = 0; combinations[ 1][2] = 4; combinations[ 2][2] = 8; combinations[ 3][2] = 12; - combinations[ 0][3] = 1; combinations[ 1][3] = 5; combinations[ 2][3] = 9; combinations[ 3][3] = 13; - combinations[ 0][4] = 2; combinations[ 1][4] = 6; combinations[ 2][4] = 10; combinations[ 3][4] = 14; - combinations[ 0][5] = 3; combinations[ 1][5] = 7; combinations[ 2][5] = 11; combinations[ 3][5] = 15; - - combinations[ 4][0] = 0; combinations[ 5][0] = 0; combinations[ 6][0] = 0; combinations[ 7][0] = 0; - combinations[ 4][1] = 0; combinations[ 5][1] = 0; combinations[ 6][1] = 0; combinations[ 7][1] = 0; - combinations[ 4][2] = 16; combinations[ 5][2] = 20; combinations[ 6][2] = 24; combinations[ 7][2] = 28; - combinations[ 4][3] = 17; combinations[ 5][3] = 21; combinations[ 6][3] = 25; combinations[ 7][3] = 29; - combinations[ 4][4] = 18; combinations[ 5][4] = 22; combinations[ 6][4] = 26; combinations[ 7][4] = 30; - combinations[ 4][5] = 19; combinations[ 5][5] = 23; combinations[ 6][5] = 27; combinations[ 7][5] = 31; - - combinations[ 8][0] = 0; combinations[ 9][0] = 0; combinations[10][0] = 0; combinations[11][0] = 0; - combinations[ 8][1] = 0; combinations[ 9][1] = 0; combinations[10][1] = 0; combinations[11][1] = 0; - combinations[ 8][2] = 32; combinations[ 9][2] = 36; combinations[10][2] = 40; combinations[11][2] = 44; - combinations[ 8][3] = 33; combinations[ 9][3] = 37; combinations[10][3] = 41; combinations[11][3] = 45; - combinations[ 8][4] = 34; combinations[ 9][4] = 38; combinations[10][4] = 42; combinations[11][4] = 46; - combinations[ 8][5] = 35; combinations[ 9][5] = 39; combinations[10][5] = 43; combinations[11][5] = 47; - - combinations[12][0] = 0; combinations[13][0] = 0; combinations[14][0] = 0; combinations[15][0] = 0; - combinations[12][1] = 0; combinations[13][1] = 0; combinations[14][1] = 0; combinations[15][1] = 0; - combinations[12][2] = 48; combinations[13][2] = 52; combinations[14][2] = 56; combinations[15][2] = 60; - combinations[12][3] = 49; combinations[13][3] = 53; combinations[14][3] = 57; combinations[15][3] = 61; - combinations[12][4] = 50; combinations[13][4] = 54; combinations[14][4] = 58; combinations[15][4] = 62; - combinations[12][5] = 51; combinations[13][5] = 55; combinations[14][5] = 59; combinations[15][5] = 63; - - // Vertical, Z - - combinations[16][0] = 0; combinations[17][0] = 0; combinations[18][0] = 0; combinations[19][0] = 0; - combinations[16][1] = 0; combinations[17][1] = 0; combinations[18][1] = 0; combinations[19][1] = 0; - combinations[16][2] = 0; combinations[17][2] = 1; combinations[18][2] = 2; combinations[19][2] = 3; - combinations[16][3] = 4; combinations[17][3] = 5; combinations[18][3] = 6; combinations[19][3] = 7; - combinations[16][4] = 8; combinations[17][4] = 9; combinations[18][4] = 10; combinations[19][4] = 11; - combinations[16][5] = 12; combinations[17][5] = 13; combinations[18][5] = 14; combinations[19][5] = 15; - - combinations[20][0] = 0; combinations[21][0] = 0; combinations[22][0] = 0; combinations[23][0] = 0; - combinations[20][1] = 0; combinations[21][1] = 0; combinations[22][1] = 0; combinations[23][1] = 0; - combinations[20][2] = 16; combinations[21][2] = 17; combinations[22][2] = 18; combinations[23][2] = 19; - combinations[20][3] = 20; combinations[21][3] = 21; combinations[22][3] = 22; combinations[23][3] = 23; - combinations[20][4] = 24; combinations[21][4] = 25; combinations[22][4] = 26; combinations[23][4] = 27; - combinations[20][5] = 28; combinations[21][5] = 29; combinations[22][5] = 30; combinations[23][5] = 31; - - combinations[24][0] = 0; combinations[25][0] = 0; combinations[26][0] = 0; combinations[27][0] = 0; - combinations[24][1] = 0; combinations[25][1] = 0; combinations[26][1] = 0; combinations[27][1] = 0; - combinations[24][2] = 32; combinations[25][2] = 33; combinations[26][2] = 34; combinations[27][2] = 35; - combinations[24][3] = 36; combinations[25][3] = 37; combinations[26][3] = 38; combinations[27][3] = 39; - combinations[24][4] = 40; combinations[25][4] = 41; combinations[26][4] = 42; combinations[27][4] = 43; - combinations[24][5] = 44; combinations[25][5] = 45; combinations[26][5] = 46; combinations[27][5] = 47; - - combinations[28][0] = 0; combinations[29][0] = 0; combinations[30][0] = 0; combinations[31][0] = 0; - combinations[28][1] = 0; combinations[29][1] = 0; combinations[30][1] = 0; combinations[31][1] = 0; - combinations[28][2] = 48; combinations[29][2] = 49; combinations[30][2] = 50; combinations[31][2] = 51; - combinations[28][3] = 52; combinations[29][3] = 53; combinations[30][3] = 54; combinations[31][3] = 55; - combinations[28][4] = 56; combinations[29][4] = 57; combinations[30][4] = 58; combinations[31][4] = 59; - combinations[28][5] = 60; combinations[29][5] = 61; combinations[30][5] = 62; combinations[31][5] = 63; - - // Diagonal, Z - - combinations[32][0] = 0; combinations[33][0] = 0; combinations[34][0] = 0; combinations[35][0] = 0; - combinations[32][1] = 0; combinations[33][1] = 0; combinations[34][1] = 0; combinations[35][1] = 0; - combinations[32][2] = 0; combinations[33][2] = 16; combinations[34][2] = 32; combinations[35][2] = 48; - combinations[32][3] = 5; combinations[33][3] = 21; combinations[34][3] = 37; combinations[35][3] = 53; - combinations[32][4] = 10; combinations[33][4] = 26; combinations[34][4] = 42; combinations[35][4] = 58; - combinations[32][5] = 15; combinations[33][5] = 31; combinations[34][5] = 47; combinations[35][5] = 63; - - combinations[36][0] = 0; combinations[37][0] = 0; combinations[38][0] = 0; combinations[39][0] = 0; - combinations[36][1] = 0; combinations[37][1] = 0; combinations[38][1] = 0; combinations[39][1] = 0; - combinations[36][2] = 3; combinations[37][2] = 19; combinations[38][2] = 35; combinations[39][2] = 51; - combinations[36][3] = 6; combinations[37][3] = 22; combinations[38][3] = 38; combinations[39][3] = 54; - combinations[36][4] = 9; combinations[37][4] = 25; combinations[38][4] = 41; combinations[39][4] = 57; - combinations[36][5] = 12; combinations[37][5] = 28; combinations[38][5] = 44; combinations[39][5] = 60; - - // Horizontal, X - - combinations[40][0] = 0; combinations[41][0] = 0; combinations[42][0] = 0; combinations[43][0] = 0; - combinations[40][1] = 0; combinations[41][1] = 0; combinations[42][1] = 0; combinations[43][1] = 0; - combinations[40][2] = 51; combinations[41][2] = 55; combinations[42][2] = 59; combinations[43][2] = 63; - combinations[40][3] = 35; combinations[41][3] = 39; combinations[42][3] = 43; combinations[43][3] = 47; - combinations[40][4] = 19; combinations[41][4] = 23; combinations[42][4] = 27; combinations[43][4] = 31; - combinations[40][5] = 3; combinations[41][5] = 7; combinations[42][5] = 11; combinations[43][5] = 15; - - combinations[44][0] = 0; combinations[45][0] = 0; combinations[46][0] = 0; combinations[47][0] = 0; - combinations[44][1] = 0; combinations[45][1] = 0; combinations[46][1] = 0; combinations[47][1] = 0; - combinations[44][2] = 50; combinations[45][2] = 54; combinations[46][2] = 58; combinations[47][2] = 62; - combinations[44][3] = 34; combinations[45][3] = 38; combinations[46][3] = 42; combinations[47][3] = 46; - combinations[44][4] = 18; combinations[45][4] = 22; combinations[46][4] = 26; combinations[47][4] = 30; - combinations[44][5] = 2; combinations[45][5] = 6; combinations[46][5] = 10; combinations[47][5] = 14; - - combinations[48][0] = 0; combinations[49][0] = 0; combinations[50][0] = 0; combinations[51][0] = 0; - combinations[48][1] = 0; combinations[49][1] = 0; combinations[50][1] = 0; combinations[51][1] = 0; - combinations[48][2] = 49; combinations[49][2] = 53; combinations[50][2] = 57; combinations[51][2] = 61; - combinations[48][3] = 33; combinations[49][3] = 37; combinations[50][3] = 41; combinations[51][3] = 45; - combinations[48][4] = 17; combinations[49][4] = 21; combinations[50][4] = 25; combinations[51][4] = 29; - combinations[48][5] = 1; combinations[49][5] = 5; combinations[50][5] = 9; combinations[51][5] = 13; - - combinations[52][0] = 0; combinations[53][0] = 0; combinations[54][0] = 0; combinations[55][0] = 0; - combinations[52][1] = 0; combinations[53][1] = 0; combinations[54][1] = 0; combinations[55][1] = 0; - combinations[52][2] = 48; combinations[53][2] = 52; combinations[54][2] = 56; combinations[55][2] = 60; - combinations[52][3] = 32; combinations[53][3] = 36; combinations[54][3] = 40; combinations[55][3] = 44; - combinations[52][4] = 16; combinations[53][4] = 20; combinations[54][4] = 24; combinations[55][4] = 28; - combinations[52][5] = 0; combinations[53][5] = 4; combinations[54][5] = 8; combinations[55][5] = 12; - - // Diagonal, X - - combinations[56][0] = 0; combinations[57][0] = 0; combinations[58][0] = 0; combinations[59][0] = 0; - combinations[56][1] = 0; combinations[57][1] = 0; combinations[58][1] = 0; combinations[59][1] = 0; - combinations[56][2] = 51; combinations[57][2] = 50; combinations[58][2] = 49; combinations[59][2] = 48; - combinations[56][3] = 39; combinations[57][3] = 38; combinations[58][3] = 37; combinations[59][3] = 36; - combinations[56][4] = 27; combinations[57][4] = 26; combinations[58][4] = 25; combinations[59][4] = 24; - combinations[56][5] = 15; combinations[57][5] = 14; combinations[58][5] = 13; combinations[59][5] = 12; - - combinations[60][0] = 0; combinations[61][0] = 0; combinations[62][0] = 0; combinations[63][0] = 0; - combinations[60][1] = 0; combinations[61][1] = 0; combinations[62][1] = 0; combinations[63][1] = 0; - combinations[60][2] = 3; combinations[61][2] = 2; combinations[62][2] = 1; combinations[63][2] = 0; - combinations[60][3] = 23; combinations[61][3] = 22; combinations[62][3] = 21; combinations[63][3] = 20; - combinations[60][4] = 43; combinations[61][4] = 42; combinations[62][4] = 41; combinations[63][4] = 40; - combinations[60][5] = 63; combinations[61][5] = 62; combinations[62][5] = 61; combinations[63][5] = 60; - - // Diagonal, Y - - combinations[64][0] = 0; combinations[65][0] = 0; combinations[66][0] = 0; combinations[67][0] = 0; - combinations[64][1] = 0; combinations[65][1] = 0; combinations[66][1] = 0; combinations[67][1] = 0; - combinations[64][2] = 63; combinations[65][2] = 59; combinations[66][2] = 55; combinations[67][2] = 51; - combinations[64][3] = 46; combinations[65][3] = 42; combinations[66][3] = 38; combinations[67][3] = 34; - combinations[64][4] = 29; combinations[65][4] = 25; combinations[66][4] = 21; combinations[67][4] = 17; - combinations[64][5] = 12; combinations[65][5] = 8; combinations[66][5] = 4; combinations[67][5] = 0; - - combinations[68][0] = 0; combinations[69][0] = 0; combinations[70][0] = 0; combinations[71][0] = 0; - combinations[68][1] = 0; combinations[69][1] = 0; combinations[70][1] = 0; combinations[71][1] = 0; - combinations[68][2] = 15; combinations[69][2] = 11; combinations[70][2] = 7; combinations[71][2] = 3; - combinations[68][3] = 30; combinations[69][3] = 26; combinations[70][3] = 22; combinations[71][3] = 18; - combinations[68][4] = 45; combinations[69][4] = 41; combinations[70][4] = 37; combinations[71][4] = 33; - combinations[68][5] = 60; combinations[69][5] = 56; combinations[70][5] = 52; combinations[71][5] = 48; - - // Corner to Corner - - combinations[72][0] = 0; combinations[73][0] = 0; combinations[74][0] = 0; combinations[75][0] = 0; - combinations[72][1] = 0; combinations[73][1] = 0; combinations[74][1] = 0; combinations[75][1] = 0; - combinations[72][2] = 0; combinations[73][2] = 3; combinations[74][2] = 12; combinations[75][2] = 15; - combinations[72][3] = 21; combinations[73][3] = 22; combinations[74][3] = 25; combinations[75][3] = 26; - combinations[72][4] = 42; combinations[73][4] = 41; combinations[74][4] = 38; combinations[75][4] = 37; - combinations[72][5] = 63; combinations[73][5] = 60; combinations[74][5] = 51; combinations[75][5] = 48; - - // Initialize the combination flags to zero. - for (int i=0; i<76; i++) - combinations[i][6] = 0; - - // Set up the pos_to_comb array to point to every winning combination that a given - // position may have. - setup_pos_to_comb(); - - // Set up the best_picks array. - update_best_picks(); - } - - - /** - * Initialize the "outside four" array. - */ - public void init_outside_four() { - for (int i=0; i<18; i++) { - outside_four[i][0] = 0; - outside_four[i][1] = 0; - outside_four[i][2] = faces[i][ 2]; - outside_four[i][3] = faces[i][ 5]; - outside_four[i][4] = faces[i][14]; - outside_four[i][5] = faces[i][17]; - } - } - - - /** - * Initialize the "inside four" array. - */ - public void init_inside_four() { - for (int i=0; i<18; i++) { - inside_four[i][0] = 0; - inside_four[i][1] = 0; - inside_four[i][2] = faces[i][ 7]; - inside_four[i][3] = faces[i][ 8]; - inside_four[i][4] = faces[i][11]; - inside_four[i][5] = faces[i][12]; - } - } - - /** - * Initialize the "faces" array. - */ - public void init_faces () { - - faces[ 0][ 0] = 0; - faces[ 0][ 1] = 0; - faces[ 0][ 2] = 12; faces[ 0][ 6] = 13; faces[ 0][10] = 14; faces[ 0][14] = 15; - faces[ 0][ 3] = 8; faces[ 0][ 7] = 9; faces[ 0][11] = 10; faces[ 0][15] = 11; - faces[ 0][ 4] = 4; faces[ 0][ 8] = 5; faces[ 0][12] = 6; faces[ 0][16] = 7; - faces[ 0][ 5] = 0; faces[ 0][ 9] = 1; faces[ 0][13] = 2; faces[ 0][17] = 3; - - faces[ 1][ 0] = 0; - faces[ 1][ 1] = 0; - faces[ 1][ 2] = 28; faces[ 1][ 6] = 29; faces[ 1][10] = 30; faces[ 1][14] = 31; - faces[ 1][ 3] = 24; faces[ 1][ 7] = 25; faces[ 1][11] = 26; faces[ 1][15] = 27; - faces[ 1][ 4] = 20; faces[ 1][ 8] = 21; faces[ 1][12] = 22; faces[ 1][16] = 23; - faces[ 1][ 5] = 16; faces[ 1][ 9] = 17; faces[ 1][13] = 18; faces[ 1][17] = 19; - - faces[ 2][ 0] = 0; - faces[ 2][ 1] = 0; - faces[ 2][ 2] = 44; faces[ 2][ 6] = 45; faces[ 2][10] = 46; faces[ 2][14] = 47; - faces[ 2][ 3] = 40; faces[ 2][ 7] = 41; faces[ 2][11] = 42; faces[ 2][15] = 43; - faces[ 2][ 4] = 36; faces[ 2][ 8] = 37; faces[ 2][12] = 38; faces[ 2][16] = 39; - faces[ 2][ 5] = 32; faces[ 2][ 9] = 33; faces[ 2][13] = 34; faces[ 2][17] = 35; - - faces[ 3][ 0] = 0; - faces[ 3][ 1] = 0; - faces[ 3][ 2] = 60; faces[ 3][ 6] = 61; faces[ 3][10] = 62; faces[ 3][14] = 63; - faces[ 3][ 3] = 56; faces[ 3][ 7] = 57; faces[ 3][11] = 58; faces[ 3][15] = 59; - faces[ 3][ 4] = 52; faces[ 3][ 8] = 53; faces[ 3][12] = 54; faces[ 3][16] = 55; - faces[ 3][ 5] = 48; faces[ 3][ 9] = 49; faces[ 3][13] = 50; faces[ 3][17] = 51; - - faces[ 4][ 0] = 0; - faces[ 4][ 1] = 0; - faces[ 4][ 2] = 12; faces[ 4][ 6] = 28; faces[ 4][10] = 44; faces[ 4][14] = 60; - faces[ 4][ 3] = 8; faces[ 4][ 7] = 24; faces[ 4][11] = 40; faces[ 4][15] = 56; - faces[ 4][ 4] = 4; faces[ 4][ 8] = 20; faces[ 4][12] = 36; faces[ 4][16] = 52; - faces[ 4][ 5] = 0; faces[ 4][ 9] = 16; faces[ 4][13] = 32; faces[ 4][17] = 48; - - faces[ 5][ 0] = 0; - faces[ 5][ 1] = 0; - faces[ 5][ 2] = 13; faces[ 5][ 6] = 29; faces[ 5][10] = 45; faces[ 5][14] = 61; - faces[ 5][ 3] = 9; faces[ 5][ 7] = 25; faces[ 5][11] = 41; faces[ 5][15] = 57; - faces[ 5][ 4] = 5; faces[ 5][ 8] = 21; faces[ 5][12] = 37; faces[ 5][16] = 53; - faces[ 5][ 5] = 1; faces[ 5][ 9] = 17; faces[ 5][13] = 33; faces[ 5][17] = 49; - - faces[ 6][ 0] = 0; - faces[ 6][ 1] = 0; - faces[ 6][ 2] = 14; faces[ 6][ 6] = 30; faces[ 6][10] = 46; faces[ 6][14] = 62; - faces[ 6][ 3] = 10; faces[ 6][ 7] = 26; faces[ 6][11] = 42; faces[ 6][15] = 58; - faces[ 6][ 4] = 6; faces[ 6][ 8] = 22; faces[ 6][12] = 38; faces[ 6][16] = 54; - faces[ 6][ 5] = 2; faces[ 6][ 9] = 18; faces[ 6][13] = 34; faces[ 6][17] = 50; - - faces[ 7][ 0] = 0; - faces[ 7][ 1] = 0; - faces[ 7][ 2] = 15; faces[ 7][ 6] = 31; faces[ 7][10] = 47; faces[ 7][14] = 63; - faces[ 7][ 3] = 11; faces[ 7][ 7] = 27; faces[ 7][11] = 43; faces[ 7][15] = 59; - faces[ 7][ 4] = 7; faces[ 7][ 8] = 23; faces[ 7][12] = 39; faces[ 7][16] = 55; - faces[ 7][ 5] = 3; faces[ 7][ 9] = 19; faces[ 7][13] = 35; faces[ 7][17] = 51; - - faces[ 8][ 0] = 0; - faces[ 8][ 1] = 0; - faces[ 8][ 2] = 12; faces[ 8][ 6] = 28; faces[ 8][10] = 44; faces[ 8][14] = 60; - faces[ 8][ 3] = 13; faces[ 8][ 7] = 29; faces[ 8][11] = 45; faces[ 8][15] = 61; - faces[ 8][ 4] = 14; faces[ 8][ 8] = 30; faces[ 8][12] = 46; faces[ 8][16] = 62; - faces[ 8][ 5] = 15; faces[ 8][ 9] = 31; faces[ 8][13] = 47; faces[ 8][17] = 63; - - faces[ 9][ 0] = 0; - faces[ 9][ 1] = 0; - faces[ 9][ 2] = 8; faces[ 9][ 6] = 24; faces[ 9][10] = 40; faces[ 9][14] = 56; - faces[ 9][ 3] = 9; faces[ 9][ 7] = 25; faces[ 9][11] = 41; faces[ 9][15] = 57; - faces[ 9][ 4] = 10; faces[ 9][ 8] = 26; faces[ 9][12] = 42; faces[ 9][16] = 58; - faces[ 9][ 5] = 11; faces[ 9][ 9] = 27; faces[ 9][13] = 43; faces[ 9][17] = 59; - - faces[10][ 0] = 0; - faces[10][ 1] = 0; - faces[10][ 2] = 4; faces[10][ 6] = 20; faces[10][10] = 36; faces[10][14] = 52; - faces[10][ 3] = 5; faces[10][ 7] = 21; faces[10][11] = 37; faces[10][15] = 53; - faces[10][ 4] = 6; faces[10][ 8] = 22; faces[10][12] = 38; faces[10][16] = 54; - faces[10][ 5] = 7; faces[10][ 9] = 23; faces[10][13] = 39; faces[10][17] = 55; - - faces[11][ 0] = 0; - faces[11][ 1] = 0; - faces[11][ 2] = 0; faces[11][ 6] = 16; faces[11][10] = 32; faces[11][14] = 48; - faces[11][ 3] = 1; faces[11][ 7] = 17; faces[11][11] = 33; faces[11][15] = 49; - faces[11][ 4] = 2; faces[11][ 8] = 18; faces[11][12] = 34; faces[11][16] = 50; - faces[11][ 5] = 3; faces[11][ 9] = 19; faces[11][13] = 35; faces[11][17] = 51; - - faces[12][ 0] = 0; - faces[12][ 1] = 0; - faces[12][ 2] = 12; faces[12][ 6] = 13; faces[12][10] = 14; faces[12][14] = 15; - faces[12][ 3] = 24; faces[12][ 7] = 25; faces[12][11] = 26; faces[12][15] = 27; - faces[12][ 4] = 36; faces[12][ 8] = 37; faces[12][12] = 38; faces[12][16] = 39; - faces[12][ 5] = 48; faces[12][ 9] = 49; faces[12][13] = 50; faces[12][17] = 51; - - faces[13][ 0] = 0; - faces[13][ 1] = 0; - faces[13][ 2] = 0; faces[13][ 6] = 1; faces[13][10] = 2; faces[13][14] = 3; - faces[13][ 3] = 20; faces[13][ 7] = 21; faces[13][11] = 22; faces[13][15] = 23; - faces[13][ 4] = 40; faces[13][ 8] = 41; faces[13][12] = 42; faces[13][16] = 43; - faces[13][ 5] = 60; faces[13][ 9] = 61; faces[13][13] = 62; faces[13][17] = 63; - - faces[14][ 0] = 0; - faces[14][ 1] = 0; - faces[14][ 2] = 12; faces[14][ 6] = 28; faces[14][10] = 44; faces[14][14] = 60; - faces[14][ 3] = 9; faces[14][ 7] = 25; faces[14][11] = 41; faces[14][15] = 57; - faces[14][ 4] = 6; faces[14][ 8] = 22; faces[14][12] = 38; faces[14][16] = 54; - faces[14][ 5] = 3; faces[14][ 9] = 19; faces[14][13] = 35; faces[14][17] = 51; - - faces[15][ 0] = 0; - faces[15][ 1] = 0; - faces[15][ 2] = 15; faces[15][ 6] = 31; faces[15][10] = 47; faces[15][14] = 63; - faces[15][ 3] = 10; faces[15][ 7] = 26; faces[15][11] = 42; faces[15][15] = 58; - faces[15][ 4] = 5; faces[15][ 8] = 21; faces[15][12] = 37; faces[15][16] = 53; - faces[15][ 5] = 0; faces[15][ 9] = 16; faces[15][13] = 32; faces[15][17] = 48; - - faces[16][ 0] = 0; - faces[16][ 1] = 0; - faces[16][ 2] = 12; faces[16][ 6] = 29; faces[16][10] = 46; faces[16][14] = 63; - faces[16][ 3] = 8; faces[16][ 7] = 25; faces[16][11] = 42; faces[16][15] = 59; - faces[16][ 4] = 4; faces[16][ 8] = 21; faces[16][12] = 38; faces[16][16] = 55; - faces[16][ 5] = 0; faces[16][ 9] = 17; faces[16][13] = 34; faces[16][17] = 51; - - faces[17][ 0] = 0; - faces[17][ 1] = 0; - faces[17][ 2] = 15; faces[17][ 6] = 30; faces[17][10] = 45; faces[17][14] = 60; - faces[17][ 3] = 11; faces[17][ 7] = 26; faces[17][11] = 41; faces[17][15] = 56; - faces[17][ 4] = 7; faces[17][ 8] = 22; faces[17][12] = 37; faces[17][16] = 52; - faces[17][ 5] = 3; faces[17][ 9] = 18; faces[17][13] = 33; faces[17][17] = 48; - } - - /** - * Render the current face set in the 2D window. - */ - public void render2D(Graphics gc) { - - gc.setColor(background); - gc.fillRect(0, 0, width, height); - - int id; - int x, y; - - float begX; - float begY; - - for (int l=0; l<3; l++) { - begY = 28.0f + l*(5.f*23.3f); - for (int k=0; k<6; k++) { - begX = 11.65f + k*(5.f*11.65f); - int count = 0; - int face = l*6+k; - for (int i=0; i<4; i++) { - for (int j=0; j<4; j++) { - x = (int)begX + i*12; - y = (int)begY + j*12; - id = faces[face][count+2]; - if (occupied[id] == HUMAN) { - x -= 2; - y -= 2; - gc.setColor(red); - gc.fillRect(x, y, 5, 5); - } - else if (occupied[id] == MACHINE) { - x -= 2; - y -= 2; - gc.setColor(blue); - gc.fillRect(x, y, 5, 5); - } - else { - x -= 1; - y -= 1; - gc.setColor(gray); - gc.fillRect(x, y, 2, 2); - } - if (highlight[face]) { - gc.setColor(yellow); - positions.setHighlight(faces[face][count+2]); - } - count++; - } - } - if (highlight[face]) - gc.setColor(yellow); - else - gc.setColor(white); - if ((face+1)<10) - gc.drawString("Face "+(face+1), (int)begX-2, (int)begY+60); - else - gc.drawString("Face "+(face+1), (int)begX-4, (int)begY+60); - } - } - } - - /** - * Determine what position has been selected in the 2D window. - */ - public void checkSelection2D(int x, int y, int player) { - - int id; - int posX, posY; - - float begX; - float begY; - - for (int l=0; l<3; l++) { - begY = 28.0f + l*(5.f*23.3f); - for (int k=0; k<6; k++) { - begX = 11.65f + k*(5.f*11.65f); - int count = 0; - int face = l*6+k; - for (int i=0; i<4; i++) { - for (int j=0; j<4; j++) { - posX = (int)begX + i*12; - posY = (int)begY + j*12; - if (x > posX-4 && x < posX+4 && - y > posY-4 && y < posY+4) { - - id = faces[face][count+2]; - - if (occupied[id] == UNOCCUPIED) { - positions.set(id, player); - selection(id, player); - canvas.repaint(); - } - return; - } - count++; - } - } - if ((x > begX-4 && x < begX+40) && - (y > begY+45 && y < begY+60) ) { - - count = 0; - for (int i=0; i<4; i++) { - for (int j=0; j<4; j++) { - if (highlight[face]) - positions.clearHighlight(faces[face][count+2]); - count++; - } - } - if (highlight[face]) - highlight[face] = false; - else - highlight[face] = true; - canvas.repaint(); - } - } - } - - } - - - /** - * Record the player's move. - */ - public void selection(int pos, int player) { - - int num_combinations; - int comb; - - this.player = player; - - if (player == HUMAN) { - - // If position is already occupied, return. - if (occupied[pos] != 0) return; - - // Mark the position as HUMAN. - occupied[pos] = HUMAN; - - // Update the logic arrays. - this.player = update_logic_arrays(pos); - - // Have the computer determine its move. - choose_move(); - } - } - - - /** - * Determine the computer's move. - */ - public void choose_move () { - - if (player == MACHINE) { - - // Babe in the woods. - if (skill_level == 0) { - if (!block_winning_move()) { - if (!pick_7()) { - if (!check_outside_four()) { - pick_best_position(); - } - } - } - } - - // Walk and chew gum. - else if (skill_level == 1) { - if (!block_winning_move()) { - if (!block_intersecting_rows()) { - if (!block_inside_four()) { - if (!block_outside_four()) { - pick_best_position(); - } - } - } - } - } - - // Jeopordy contestant. - else if (skill_level == 2) { - if (!block_winning_move()) { - if (!block_intersecting_rows()) { - if (!block_inside_four()) { - if (!block_outside_four()) { - if (!pick_7()) { - pick_best_position(); - } - } - } - } - } - } - - // Rocket scientist. - else if (skill_level == 3) { - if (!block_winning_move()) { - if (!block_intersecting_rows()) { - if (!block_chair_move()) { - if (!check_face_three()) { - if (!block_central_four()) { - if (!block_inside_four()) { - if (!block_outside_four()) { - if (!take_inside_four()) { - if (!take_outside_four()) { - if (!pick_7()) { - if (!check_outside_four()) { - pick_best_position(); - } - } - } - } - } - } - } - } - } - } - } - } - - // Be afraid, be very afraid. - else if (skill_level == 4) { - if (!block_winning_move()) { - if (!block_intersecting_rows()) { - if (!block_chair_move()) { - if (!block_walk_move()) { - if (!block_central_four()) { - if (!block_inside_four()) { - if (!block_outside_four()) { - if (!check_face_three()) { - if (!check_intersecting_rows2()) { - if (!take_inside_four()) { - if (!take_outside_four()) { - if (!pick_7()) { - if (!check_outside_four()) { - pick_best_position(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - - - /** - * Check for a winning move. - */ - public boolean block_winning_move() { - - // Loop through each combination and see if any player occupies - // three positions. If so, take the last remaining position. - int pos; - for (int i=0; i<76; i++) { - if (combinations[i][0] == 3) { - for (int j=2; j<6; j++) { - pos = combinations[i][j]; - if (occupied[pos] == 0) { - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_winning_move: true"); - return true; - } - } - } - } - if (debug) System.out.println("check_winning_move: false"); - return false; - } - - - /** - * Block outside four - */ - public boolean block_outside_four() { - - int pos; - int index = 0; - int max = 0; - - // Block the opponent, if necessary. - for (int i=0; i<18; i++) { - if (outside_four[i][0] > 0 && - outside_four[i][1] == HUMAN) { - if(outside_four[i][0] > max) { - index = i; - max = outside_four[i][0]; - } - } - } - - if (max > 0) { - for (int j=2; j<6; j++) { - pos = outside_four[index][j]; - if (occupied[pos] == 0) { - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_outside_four: true"); - return true; - } - } - } - - if (debug) System.out.println("block_outside_four: false"); - return false; - } - - - /** - * Block central four - */ - public boolean block_central_four() { - - int pos; - int index = 0; - int max = 0; - - // Block the opponent, if necessary. - for (int i=1; i<3; i++) { - if (inside_four[i][0] > 0 && - inside_four[i][1] == HUMAN) { - if(inside_four[i][0] > max) { - index = i; - max = inside_four[i][0]; - } - } - } - - if (max > 0) { - for (int j=2; j<6; j++) { - pos = inside_four[index][j]; - if (occupied[pos] == 0) { - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_central_four: true"); - return true; - } - } - } - - if (debug) System.out.println("block_central_four: false"); - return false; - } - - /** - * Check each face for a forced win. - */ - public boolean check_face_three() { - - int pos; - int index = 0; - int human = 0; - int machine = 0; - - // Block the opponent from a forced win. - for (int i=0; i<18; i++) { - if (outside_four[i][0] == -1) { - human = 0; - machine = 0; - for (int j=2; j<6; j++) { - if (occupied[outside_four[i][j]] == MACHINE) - machine++; - else if (occupied[outside_four[i][j]] == HUMAN) - human++; - } - if (debug) System.out.println("machine = " + machine); - if (debug) System.out.println("human = " + human); - if (human == 3 && machine == 1) { - if (debug) System.out.println("human == 3 && machine == 1"); - for (int j=2; j<18; j++) { - pos = faces[i][j]; - if (occupied[pos] == 0) { - for (int k=0; k<76; k++) { - if (combinations[i][0] == 2 & - combinations[i][1] == HUMAN) { - for (int l=0; l<4; l++) { - if (combinations[i][l] == pos) { - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("check_face_three: true"); - return true; - } - } - } - } - } - } - } - } - } - - if (debug) System.out.println("check_face_three: false"); - return false; - } - - - - /** - * Block inside four - */ - public boolean block_inside_four() { - - int pos; - int index = 0; - int max = 0; - - // Block the opponent, if necessary. - for (int i=0; i<18; i++) { - if (inside_four[i][0] > 0 && - inside_four[i][1] == HUMAN) { - if(inside_four[i][0] > max) { - index = i; - max = inside_four[i][0]; - } - } - } - - if (max > 0) { - for (int j=2; j<6; j++) { - pos = inside_four[index][j]; - if (occupied[pos] == 0) { - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_inside_four: true"); - return true; - } - } - } - - if (debug) System.out.println("block_inside_four: false"); - return false; - } - - - public boolean block_chair_move() { - - int pos; - - int ncorners = 0; // Number of corners owned by human - int corner = 0; // Corner owned by machine - - if (debug) System.out.println("inside block_chair_move"); - - // Loop through all of the faces. - for(int i=0; i<18; i++) { - - // Determine which corners the human owns. - if (occupied[faces[i][2]] == HUMAN) - ncorners++; - else if (occupied[faces[i][2]] == MACHINE) - corner = 2; - if (occupied[faces[i][5]] == HUMAN) - ncorners++; - else if (occupied[faces[i][5]] == MACHINE) - corner = 5; - if (occupied[faces[i][14]] == HUMAN) - ncorners++; - else if (occupied[faces[i][14]] == MACHINE) - corner = 14; - if (occupied[faces[i][17]] == HUMAN) - ncorners++; - else if (occupied[faces[i][17]] == MACHINE) - corner = 17; - - // If the human owns three corners, continue with the search. - if (ncorners == 3) { - if (corner == 2) { - if (occupied[faces[i][ 3]] == HUMAN && occupied[faces[i][ 7]] == 0 && - occupied[faces[i][ 8]] == 0 && occupied[faces[i][11]] == 0 && - occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { - pos = faces[i][11]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][ 4]] == HUMAN && occupied[faces[i][ 8]] == 0 && - occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0 && - occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { - pos = faces[i][12]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][ 6]] == HUMAN && occupied[faces[i][ 7]] == 0 && - occupied[faces[i][ 8]] == 0 && occupied[faces[i][ 9]] == 0 && - occupied[faces[i][11]] == 0 && occupied[faces[i][13]] == 0) { - pos = faces[i][8]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][10]] == HUMAN && occupied[faces[i][ 8]] == 0 && - occupied[faces[i][ 9]] == 0 && occupied[faces[i][11]] == 0 && - occupied[faces[i][12]] == 0 && occupied[faces[i][13]] == 0) { - pos = faces[i][11]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][ 7]] == HUMAN && occupied[faces[i][ 3]] == 0 && - occupied[faces[i][ 8]] == 0 && occupied[faces[i][11]] == 0 && - occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { - pos = faces[i][11]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][12]] == HUMAN && occupied[faces[i][ 4]] == 0 && - occupied[faces[i][ 8]] == 0 && occupied[faces[i][11]] == 0 && - occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { - pos = faces[i][16]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - } - else if (corner == 5) { - if (occupied[faces[i][ 9]] == HUMAN && occupied[faces[i][ 6]] == 0 && - occupied[faces[i][ 7]] == 0 && occupied[faces[i][ 8]] == 0 && - occupied[faces[i][10]] == 0 && occupied[faces[i][12]] == 0) { - pos = faces[i][7]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][13]] == HUMAN && occupied[faces[i][ 7]] == 0 && - occupied[faces[i][ 7]] == 0 && occupied[faces[i][10]] == 0 && - occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0) { - pos = faces[i][12]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][ 4]] == HUMAN && occupied[faces[i][ 8]] == 0 && - occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0 && - occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { - pos = faces[i][12]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][ 3]] == HUMAN && occupied[faces[i][ 7]] == 0 && - occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0 && - occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { - pos = faces[i][7]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][ 8]] == HUMAN && occupied[faces[i][ 4]] == 0 && - occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0 && - occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { - pos = faces[i][12]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][11]] == HUMAN && occupied[faces[i][ 3]] == 0 && - occupied[faces[i][ 7]] == 0 && occupied[faces[i][12]] == 0 && - occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { - pos = faces[i][ 7]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - } - else if (corner == 14) { - if (occupied[faces[i][ 6]] == HUMAN && occupied[faces[i][ 7]] == 0 && - occupied[faces[i][ 8]] == 0 && occupied[faces[i][ 9]] == 0 && - occupied[faces[i][11]] == 0 && occupied[faces[i][13]] == 0) { - pos = faces[i][7]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][10]] == HUMAN && occupied[faces[i][ 8]] == 0 && - occupied[faces[i][ 9]] == 0 && occupied[faces[i][11]] == 0 && - occupied[faces[i][12]] == 0 && occupied[faces[i][13]] == 0) { - pos = faces[i][12]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][15]] == HUMAN && occupied[faces[i][ 3]] == 0 && - occupied[faces[i][ 4]] == 0 && occupied[faces[i][ 7]] == 0 && - occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0) { - pos = faces[i][3]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][16]] == HUMAN && occupied[faces[i][ 3]] == 0 && - occupied[faces[i][ 4]] == 0 && occupied[faces[i][ 7]] == 0 && - occupied[faces[i][ 8]] == 0 && occupied[faces[i][12]] == 0) { - pos = faces[i][12]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][11]] == HUMAN && occupied[faces[i][ 3]] == 0 && - occupied[faces[i][ 4]] == 0 && occupied[faces[i][ 7]] == 0 && - occupied[faces[i][12]] == 0 && occupied[faces[i][15]] == 0) { - pos = faces[i][7]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][ 8]] == HUMAN && occupied[faces[i][ 6]] == 0 && - occupied[faces[i][ 7]] == 0 && occupied[faces[i][ 9]] == 0 && - occupied[faces[i][12]] == 0 && occupied[faces[i][13]] == 0) { - pos = faces[i][7]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - } - else if (corner == 17) { - if (occupied[faces[i][ 9]] == HUMAN && occupied[faces[i][ 6]] == 0 && - occupied[faces[i][ 7]] == 0 && occupied[faces[i][ 8]] == 0 && - occupied[faces[i][10]] == 0 && occupied[faces[i][11]] == 0) { - pos = faces[i][8]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][13]] == HUMAN && occupied[faces[i][ 6]] == 0 && - occupied[faces[i][ 8]] == 0 && occupied[faces[i][10]] == 0 && - occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0) { - pos = faces[i][11]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][15]] == HUMAN && occupied[faces[i][ 3]] == 0 && - occupied[faces[i][ 4]] == 0 && occupied[faces[i][ 7]] == 0 && - occupied[faces[i][ 8]] == 0 && occupied[faces[i][11]] == 0) { - pos = faces[i][11]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][16]] == HUMAN && occupied[faces[i][ 3]] == 0 && - occupied[faces[i][ 4]] == 0 && occupied[faces[i][ 8]] == 0 && - occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0) { - pos = faces[i][8]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][12]] == HUMAN && occupied[faces[i][ 3]] == 0 && - occupied[faces[i][ 4]] == 0 && occupied[faces[i][ 8]] == 0 && - occupied[faces[i][11]] == 0 && occupied[faces[i][16]] == 0) { - pos = faces[i][8]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (occupied[faces[i][ 7]] == HUMAN && occupied[faces[i][ 3]] == 0 && - occupied[faces[i][ 4]] == 0 && occupied[faces[i][ 8]] == 0 && - occupied[faces[i][11]] == 0 && occupied[faces[i][15]] == 0) { - pos = faces[i][11]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - } - } - ncorners = 0; - corner = -1; - } - if (debug) System.out.println("block_chair_move: false"); - return false; - } - - public boolean block_walk_move() { - - int pos; - - if (debug) System.out.println("inside block_walk_move"); - - // Loop through all of the faces. - for(int i=0; i<18; i++) { - - // Look for a matching pattern. - if (occupied[faces[i][ 2]] == HUMAN && occupied[faces[i][14]] == HUMAN && - occupied[faces[i][ 3]] == HUMAN && occupied[faces[i][15]] == HUMAN && - occupied[faces[i][ 6]] == 0 && occupied[faces[i][10]] == 0 && - occupied[faces[i][ 7]] == 0 && occupied[faces[i][11]] == 0) { - - if (occupied[faces[i][ 8]] == HUMAN && occupied[faces[i][ 9]] == 0) { - pos = faces[i][6]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - else if (occupied[faces[i][12]] == HUMAN && occupied[faces[i][13]] == 0) { - pos = faces[i][10]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - } - - // Look for a matching pattern. - if (occupied[faces[i][14]] == HUMAN && occupied[faces[i][17]] == HUMAN && - occupied[faces[i][10]] == HUMAN && occupied[faces[i][13]] == HUMAN && - occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0 && - occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0) { - - if (occupied[faces[i][7]] == HUMAN && occupied[faces[i][3]] == 0) { - pos = faces[i][15]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - else if (occupied[faces[i][8]] == HUMAN && occupied[faces[i][4]] == 0) { - pos = faces[i][16]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - } - - // Look for a matching pattern. - if (occupied[faces[i][ 4]] == HUMAN && occupied[faces[i][16]] == HUMAN && - occupied[faces[i][ 5]] == HUMAN && occupied[faces[i][17]] == HUMAN && - occupied[faces[i][ 8]] == 0 && occupied[faces[i][12]] == 0 && - occupied[faces[i][ 9]] == 0 && occupied[faces[i][13]] == 0) { - - if (occupied[faces[i][11]] == HUMAN && occupied[faces[i][10]] == 0) { - pos = faces[i][18]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - else if (occupied[faces[i][7]] == HUMAN && occupied[faces[i][6]] == 0) { - pos = faces[i][9]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - } - - // Look for a matching pattern. - if (occupied[faces[i][ 6]] == HUMAN && occupied[faces[i][ 9]] == HUMAN && - occupied[faces[i][ 2]] == HUMAN && occupied[faces[i][ 5]] == HUMAN && - occupied[faces[i][ 7]] == 0 && occupied[faces[i][ 8]] == 0 && - occupied[faces[i][ 3]] == 0 && occupied[faces[i][ 4]] == 0) { - - if (occupied[faces[i][11]] == HUMAN && occupied[faces[i][15]] == 0) { - pos = faces[i][3]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - else if (occupied[faces[i][12]] == HUMAN && occupied[faces[i][16]] == 0) { - pos = faces[i][4]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - } - - // Look for a matching pattern. - if (occupied[faces[i][ 2]] == HUMAN && occupied[faces[i][14]] == HUMAN && - occupied[faces[i][ 4]] == HUMAN && occupied[faces[i][16]] == HUMAN && - occupied[faces[i][ 6]] == 0 && occupied[faces[i][10]] == 0 && - occupied[faces[i][ 8]] == 0 && occupied[faces[i][12]] == 0) { - - if ((occupied[faces[i][7]] == HUMAN && occupied[faces[i][9]] == 0) || - (occupied[faces[i][9]] == HUMAN && occupied[faces[i][7]] == 0) ) { - pos = faces[i][6]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - else if ((occupied[faces[i][11]] == HUMAN && occupied[faces[i][13]] == 0) || - (occupied[faces[i][13]] == HUMAN && occupied[faces[i][11]] == 0) ) { - pos = faces[i][10]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - } - - // Look for a matching pattern. - if (occupied[faces[i][14]] == HUMAN && occupied[faces[i][17]] == HUMAN && - occupied[faces[i][ 6]] == HUMAN && occupied[faces[i][ 9]] == HUMAN && - occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0 && - occupied[faces[i][ 7]] == 0 && occupied[faces[i][ 8]] == 0) { - - if ((occupied[faces[i][11]] == HUMAN && occupied[faces[i][ 3]] == 0) || - (occupied[faces[i][ 3]] == HUMAN && occupied[faces[i][11]] == 0) ) { - pos = faces[i][15]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - else if ((occupied[faces[i][12]] == HUMAN && occupied[faces[i][ 4]] == 0) || - (occupied[faces[i][ 4]] == HUMAN && occupied[faces[i][12]] == 0) ) { - pos = faces[i][16]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - } - - // Look for a matching pattern. - if (occupied[faces[i][ 3]] == HUMAN && occupied[faces[i][15]] == HUMAN && - occupied[faces[i][ 5]] == HUMAN && occupied[faces[i][17]] == HUMAN && - occupied[faces[i][ 7]] == 0 && occupied[faces[i][11]] == 0 && - occupied[faces[i][ 9]] == 0 && occupied[faces[i][13]] == 0) { - - if ((occupied[faces[i][ 6]] == HUMAN && occupied[faces[i][ 8]] == 0) || - (occupied[faces[i][ 8]] == HUMAN && occupied[faces[i][ 6]] == 0) ) { - pos = faces[i][9]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - else if ((occupied[faces[i][10]] == HUMAN && occupied[faces[i][12]] == 0) || - (occupied[faces[i][12]] == HUMAN && occupied[faces[i][10]] == 0) ) { - pos = faces[i][13]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - } - - // Look for a matching pattern. - if (occupied[faces[i][10]] == HUMAN && occupied[faces[i][13]] == HUMAN && - occupied[faces[i][ 2]] == HUMAN && occupied[faces[i][ 5]] == HUMAN && - occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0 && - occupied[faces[i][ 3]] == 0 && occupied[faces[i][ 4]] == 0) { - - if ((occupied[faces[i][ 7]] == HUMAN && occupied[faces[i][15]] == 0) || - (occupied[faces[i][15]] == HUMAN && occupied[faces[i][ 7]] == 0) ) { - pos = faces[i][3]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - else if ((occupied[faces[i][ 8]] == HUMAN && occupied[faces[i][16]] == 0) || - (occupied[faces[i][16]] == HUMAN && occupied[faces[i][ 8]] == 0) ) { - pos = faces[i][4]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - } - - } - - if (debug) System.out.println("block_walk_move: false"); - return false; - } - - public boolean check_chair_move() { - - int pos; - - // If the "block chair flag" is set, all we need to do is - // block the winning path... - if (block_chair_flag) { - pos = faces[block_chair_face][block_chair_next_move]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: march"); - return true; - } - - int ncorners = 0; // Number of corners owned by human - int corner = 0; // Corner owned by machine - - // Loop through all of the faces. - for(int i=0; i<18; i++) { - - // Determine which corners the human owns. - if (faces[i][ 2] == HUMAN) - ncorners++; - else - corner = 2; - if (faces[i][ 5] == HUMAN) - ncorners++; - else - corner = 5; - if (faces[i][14] == HUMAN) - ncorners++; - else - corner = 14; - if (faces[i][17] == HUMAN) - ncorners++; - else - corner = 17; - - // If the human owns three corners, continue with the search. - if (ncorners == 3) { - if (corner == 2) { - if (faces[i][ 3] == HUMAN && faces[i][ 7] == 0 && - faces[i][ 8] == 0 && faces[i][11] == 0 && - faces[i][15] == 0 && faces[i][16] == 0) { - block_chair_flag = true; - block_chair_next_move = 11; - block_chair_face = i; - pos = faces[i][15]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - if (faces[i][ 4] == HUMAN && faces[i][ 8] == 0 && - faces[i][11] == 0 && faces[i][12] == 0 && - faces[i][15] == 0 && faces[i][16] == 0) { - block_chair_flag = true; - block_chair_next_move = 16; - block_chair_face = i; - pos = faces[i][8]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_chair_move: found"); - return true; - } - } - else if (corner == 5) { - block_chair_flag = true; - block_chair_next_move = 11; - block_chair_face = i; - pos = faces[i][15]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("check_face_three: true"); - return true; - } - else if (corner == 14) { - block_chair_flag = true; - block_chair_next_move = 11; - block_chair_face = i; - pos = faces[i][15]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("check_face_three: true"); - return true; - } - else if (corner == 17) { - block_chair_flag = true; - block_chair_next_move = 11; - block_chair_face = i; - pos = faces[i][15]; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("check_face_three: true"); - return true; - } - } - } - return false; - } - - /** - * Take inside four - */ - public boolean take_inside_four() { - - int pos = 0; - boolean found = false; - - if (occupied[21] == 0) { - found = true; - pos = 21; - } - else if (occupied[22] == 0) { - found = true; - pos = 22; - } - else if (occupied[25] == 0) { - found = true; - pos = 25; - } - else if (occupied[26] == 0) { - found = true; - pos = 26; - } - else if (occupied[37] == 0) { - found = true; - pos = 37; - } - else if (occupied[38] == 0) { - found = true; - pos = 38; - } - else if (occupied[41] == 0) { - found = true; - pos = 41; - } - else if (occupied[42] == 0) { - found = true; - pos = 42; - } - - if (found) { - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("take_inside_four: true"); - return true; - } - - if (debug) System.out.println("take_inside_four: false"); - return false; - } - - - /** - * Check occupancy of outside four. - */ - public boolean check_outside_four() { - - int pos = 0; - - // Finish off the four corner combination. - if (outside_four_flag) { - if (occupied[faces[face_index][7]] == 0) { - pos = faces[face_index][7]; - } - else if (occupied[faces[face_index][6]] == 0) { - pos = faces[face_index][6]; - } - - if (occupied[pos] == 0) { - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - return true; - } - } - - // Look for a four corner combination. - for (int i=0; i<18; i++) { - if (outside_four[i][0] == 4 && - outside_four[i][1] == MACHINE) { - if (faces[i][0] > 0 && - faces[i][1] == MACHINE) { - if (occupied[faces[i][8]] == 0) { - pos = faces[i][8]; - outside_four_flag = true; - face_index = i; - } - if (occupied[pos] == 0) { - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("check_outside_four: true"); - return true; - } - } - } - } - - // Take the corners, if available. - for (int i=0; i<18; i++) { - if (outside_four[i][0] > 0 && - outside_four[i][1] == MACHINE) { - if (faces[i][0] > 0 && - faces[i][1] == MACHINE) { - for (int j=2; j<6; j++) { - pos = outside_four[i][j]; - if (occupied[pos] == 0) { - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("check_outside_four: true"); - return true; - } - } - } - } - } - - // Look for an "outside four" combination in a face in which the - // opponent holds no positions. - for (int i=0; i<18; i++) { - if (outside_four[i][0] == 0 || (outside_four[i][0] > 0 && - outside_four[i][1] == MACHINE)) { - - if (outside_four[i][1] == MACHINE) - outside_four_flag = true; - for (int j=2; j<6; j++) { - pos = outside_four[i][j]; - if (occupied[pos] == 0) { - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("check_outside_four: true"); - return true; - } - } - } - } - - if (debug) System.out.println("check_outside_four: false"); - return false; - } - - - /** - * Take outside four - */ - public boolean take_outside_four() { - - int pos = 0; - boolean found = false; - - if (occupied[0] == 0) { - found = true; - pos = 0; - } - else if (occupied[3] == 0) { - found = true; - pos = 3; - } - else if (occupied[12] == 0) { - found = true; - pos = 12; - } - else if (occupied[15] == 0) { - found = true; - pos = 15; - } - else if (occupied[48] == 0) { - found = true; - pos = 48; - } - else if (occupied[51] == 0) { - found = true; - pos = 51; - } - else if (occupied[60] == 0) { - found = true; - pos = 60; - } - else if (occupied[63] == 0) { - found = true; - pos = 63; - } - - if (found) { - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("take_outside_four: true"); - return true; - } - - if (debug) System.out.println("take_outside_four: false"); - return false; - } - - - /** - * Check for a forced win by intersecting rows. Block - * if necessary. - */ - public boolean block_intersecting_rows() { - - int pos; - - // Loop through each row and check for rows that have two - // positions occupied by the human and two positions which are empty. - // Make sure that none of the empty positions in this row intersect - // with another row that also contains two positions held by the human. - // If so, block the row by taking the position at the intersection - // of these two row. - - // Loop through each row. - for (int i=0; i<76; i++) { - - // Look for a row that has two positions held by the human. - if (combinations[i][0] == 2 && combinations[i][1] == HUMAN) { - - if (debug) - System.out.println(" row " + i + "has 2 positions occupied by the human"); - - // Mark this row with a flag. - combinations[i][6] = 1; - - // Check each position in the row. - for (int j=2; j<6; j++) { - - // Look for the empty positions in the row. - pos = combinations[i][j]; - if (occupied[pos] == 0) { - - // Loop through the rows again. - for (int k=0; k<76; k++) { - - if (debug) System.out.println(" row " + k); - - // Look for another row that has two positions held - // by the human (and which is unmarked.) modified - if (combinations[k][0] == 2 && - combinations[k][1] == HUMAN && - combinations[k][6] == 0) { - - if (debug) - System.out.println("found an intersecting row: row " + k); - - // Check the positions in this row and see if - // any match the position we're looking for. If - // we find a match, grab the position and return. - for (int l=2; l<6; l++) { - if (pos == combinations[k][l]) { - combinations[i][6] = 0; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("block_intersecting_rows: true"); - return true; - } - } - } - } - } - } - - // Unmark the combination before moving on. - combinations[i][6] = 0; - } - - } - if (debug) System.out.println("block_intersecting_rows: false"); - return false; - } - - /** - * Check for a forced win by intersecting rows. Block - * if necessary. - */ - public boolean check_intersecting_rows2() { - - int pos; - - // Loop through each row and check for rows that have two - // positions occupied by the human and two positions which are empty. - // Make sure that none of the empty positions in this row intersect - // with another row that also contains two positions held by the human. - // If so, block the row by taking the position at the intersection - // of these two row. - - // Loop through each row. - for (int i=0; i<76; i++) { - - // Look for a row that has two positions held by the human. - if (combinations[i][0] == 2 && combinations[i][1] == HUMAN) { - - if (debug) { - System.out.println(" row " + i + "has 2 positions occupied by the human"); - } - - // Mark this row with a flag. - combinations[i][6] = 1; - - // Check each position in the row. - for (int j=2; j<6; j++) { - - // Look for the empty positions in the row. - pos = combinations[i][j]; - if (occupied[pos] == 0) { - - // Loop through the rows again. - for (int k=0; k<76; k++) { - - if (debug) System.out.println(" row " + k); - - // Look for another row that has two positions held - // by the human (and which is unmarked.) modified - if (combinations[k][0] == 1 && - combinations[k][1] == HUMAN && - combinations[k][6] == 0) { - - if (debug) - System.out.println("found an intersecting row: row " + k); - - // Check the positions in this row and see if - // any match the position we're looking for. If - // we find a match, grab the position and return. - for (int l=2; l<6; l++) { - if (pos == combinations[k][l]) { - combinations[i][6] = 0; - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("check_intersecting_rows: true"); - return true; - } - } - } - } - } - } - - // Unmark the combination before moving on. - combinations[i][6] = 0; - } - - } - if (debug) System.out.println("check_intersecting_rows: false"); - return false; - } - - - /** - * Check for a forced win by intersecting rows. Block - * if necessary. - */ - public boolean check_for_two() { - - int pos; - - // Loop through the rows. - for (int i=0; i<76; i++) { - - // Look for a row that has two positions held - // by the human (and which is unmarked.) - if (combinations[i][0] == 2 && - combinations[i][1] == HUMAN && - combinations[i][6] == 0) { - - // Take the first available spot. - for (int j=2; j<6; j++) { - pos = combinations[i][j]; - if (occupied[pos] == 0) { - occupied[pos] = MACHINE; - positions.set(pos, MACHINE); - player = update_logic_arrays(pos); - if (debug) System.out.println("check_for_two: true"); - return true; - } - } - - } - } - if (debug) System.out.println("check_for_two: false"); - return false; - } - - public void undo_move() { - - // Return if no moves are recorded - if (nmoves == 0) return; - - // Set the undo flag - undoFlag = true; - - // Undo the last two moves - positions.clear(moves[--nmoves]); - positions.clear(moves[--nmoves]); - - // Undo the winner flag in the positions object - positions.noWinner(); - - // Repaint the 2D canvas. - canvas.repaint(); - - // Reset the inside/outside flags - inside_four_flag = false; - outside_four_flag = false; - block_chair_flag = false; - - // Reset the board - for (int i=0; i<64; i++) { - occupied[i] = 0; - } - - // Reset the inside/outside arrays - for (int i=0; i<18; i++) { - inside_four[i][0] = 0; - inside_four[i][1] = 0; - outside_four[i][0] = 0; - outside_four[i][1] = 0; - } - - // Reset the faces array - for (int i=0; i<18; i++) { - faces[i][0] = 0; - faces[i][1] = 0; - } - - // Reset the combinations array - for (int i=0; i<76; i++) { - combinations[i][0] = 0; - combinations[i][1] = 0; - } - - if (nmoves == 0) { - undoFlag = false; - player = HUMAN; - return; - } - - // Update the logic arrays - int pos; - player = HUMAN; - for (int i=0; i<nmoves; i++) { - pos = moves[i]; - occupied[pos] = player; - player = update_logic_arrays(pos); - } - - // Reset the "best picks" array - update_best_picks(); - - // Reset the player and undo flag - player = HUMAN; - undoFlag = false; - } - - /** - * Update the logic arrays that keep track of positions and status. - * If we have a winner, stop the game. - */ - public int update_logic_arrays(int pos) { - - // Record the move. - if (!undoFlag) { - moves[nmoves++] = pos; - } - - // Get the number of combinations that this position has. - int num_combinations = pos_to_comb[pos][0]; - - // Go through each combination associated with this position - // and update the status. If we have a winner, stop the game. - int comb; - for (int j=0; j<num_combinations; j++) { - comb = pos_to_comb[pos][j+1]; - if (combinations[comb][1] != player && - combinations[comb][1] != 0) { - combinations[comb][0] = -1; - } - else { - combinations[comb][0]++; - if (combinations[comb][0] == 4) { - end_time = System.currentTimeMillis(); - time = (end_time - beg_time)/1000; - panel.winner(player, skill_level, nmoves, time); - panel.repaint(); - canvas.repaint(); - positions.winner(); - return END; - } - else { - combinations[comb][1] = player; - } - } - } - - // Update the best_picks array. - update_best_picks(); - - // Update the inside_four array. - for (int i=0; i<18; i++) { - for (int j=2; j<6; j++) { - if (pos == inside_four[i][j]) { - if (inside_four[i][0] == 0) { - inside_four[i][0] = 1; - inside_four[i][1] = player; - } - else if (inside_four[i][1] == player) { - inside_four[i][0]++; - inside_four[i][1] = player; - } - else { - inside_four[i][0] = -1; - } - } - } - } - - // Update the outside_four array. - for (int i=0; i<18; i++) { - for (int j=2; j<6; j++) { - if (pos == outside_four[i][j]) { - if (outside_four[i][0] == 0) { - outside_four[i][0] = 1; - outside_four[i][1] = player; - } - else if (outside_four[i][1] == player) { - outside_four[i][0]++; - outside_four[i][1] = player; - } - else { - outside_four[i][0] = -1; - } - } - } - } - - // Update the faces array. - for (int i=0; i<18; i++) { - for (int j=2; j<18; j++) { - if (pos == faces[i][j]) { - if (faces[i][0] == 0) { - faces[i][0] = 1; - faces[i][1] = player; - } - else if (faces[i][1] == player) { - faces[i][0]++; - } - else { - faces[i][0] = -1; - } - } - } - - } - - // Switch players. - if (player == HUMAN) - return MACHINE; - else - return HUMAN; - } - - - /** - * Start a new game. - */ - public void newGame() { - - // Initialize the inside/outside flags. - inside_four_flag = false; - outside_four_flag = false; - block_chair_flag = false; - - // Initialize the inside/outside arrays. - for (int i=0; i<18; i++) { - inside_four[i][0] = 0; - inside_four[i][1] = 0; - outside_four[i][0] = 0; - outside_four[i][1] = 0; - } - - // Initialize the faces array. - for (int i=0; i<18; i++) { - faces[i][0] = 0; - faces[i][1] = 0; - } - - // Initialize the board. - for (int i=0; i<64; i++) { - occupied[i] = 0; - } - for (int i=0; i<76; i++) { - combinations[i][0] = 0; - combinations[i][1] = 0; - } - - // Reset the best_picks array. - update_best_picks(); - - // Set the player with the first move. - player = HUMAN; - - // Initialize the number of moves. - nmoves = 0; - - // Reset the playing positions. - positions.newGame(); - } - - - /** - * Set the skill level. - */ - public void set_skill_level(int level) { - skill_level = level; - } - - - /** - * Set up the pos_to_comb array. - */ - public void setup_pos_to_comb() { - - // Set up the pos_to_comb array to point to every winning - // combination a given position may have. - int count; - for (int i=0; i<64; i++) { - count = 1; - pos_to_comb[i][0] = 0; - for (int j=0; j<76; j++) { - for (int k=2; k<6; k++) { - if (combinations[j][k] == i) { - pos_to_comb[i][0]++; - pos_to_comb[i][count++] = j; - } - } - } - } - - if (debug) { - for (int i=0; i<64; i++) { - System.out.println(""); - for (int j=0; j<8; j++) { - System.out.println("pos_to_comb[" + i + "][" + j + "] = " + pos_to_comb[i][j]); - } - } - } - - } - - - /** - * Update the best_picks array. - */ - public void update_best_picks() { - - // Re-calculate the best_picks array to point to every (current) winning - // combination a given position may have. - int count; - for (int i=0; i<64; i++) { - - count = 1; - best_picks[i][0] = 0; - if (occupied[i] == 0) { - for (int j=0; j<76; j++) { - - if (combinations[j][0] == 0 || - combinations[j][1] == MACHINE) { - - for (int k=2; k<6; k++) { - if (combinations[j][k] == i) { - best_picks[i][0]++; - best_picks[i][count++] = j; - } - } - } - } - } - } - - if (debug) { - for (int i=0; i<64; i++) { - System.out.println(""); - for (int j=0; j<8; j++) { - System.out.println("best_picks[" + i + "][" + j + "] = " + best_picks[i][j]); - } - } - } - } - - - /** - * Pick the computer's best possible move based on the number - * of combinations per position. Choose the position with the - * most combinations. - */ - public void pick_best_position() { - - int pos = 0; - int max_num = 0; - for (int i=0; i<64; i++) { - if (best_picks[i][0] > max_num && - occupied[i] == 0) { - pos = i; - max_num = best_picks[i][0]; - } - } - - // Mark the position as MACHINE. - occupied[pos] = MACHINE; - - positions.set(pos, MACHINE); - - // Udate the logic arrays and reset the player. - player = update_logic_arrays(pos); - } - - - public boolean pick_7() { - - for (int i=0; i<64; i++) { - if (best_picks[i][0] == 7) { - occupied[i] = MACHINE; - positions.set(i, MACHINE); - player = update_logic_arrays(i); - return true; - } - } - return false; - - } - - public void change_face() { - current_face = ++current_face%18; - } - - public void label() { - label_flag ^= true; - } - - public boolean unoccupied(int pos) { - if (occupied[pos] == UNOCCUPIED) - return true; - else - return false; - } -} diff --git a/src/FourByFour/Canvas2D.java b/src/FourByFour/Canvas2D.java deleted file mode 100644 index 033be15..0000000 --- a/src/FourByFour/Canvas2D.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.*; -import java.awt.event.*; -import java.awt.image.*; - -/** - * Class: Canvas2D - * - * Description: Used to respond to mouse events in the 2D window. - * - * Version: 1.0 - * - */ -class Canvas2D extends Canvas implements MouseListener { - - Image backbuffer; // Backbuffer image - Graphics gc; // Graphics context of backbuffer - Board board; // Game board - - Canvas2D(Board board) { - this.board = board; - } - - public void setBuffer(Image backbuffer) { - this.backbuffer = backbuffer; - gc = backbuffer.getGraphics(); - } - - public void update(Graphics g) { - paint(g); - } - - public void paint(Graphics g) { - if (board != null) { - board.render2D(gc); - g.drawImage(backbuffer, 0, 0, this); - } - } - - public void mousePressed(MouseEvent e) { - board.checkSelection2D(e.getX(), e.getY(), 1); - repaint(); - } - - public void mouseClicked(MouseEvent e) {} - public void mouseReleased(MouseEvent e) {} - public void mouseEntered(MouseEvent e) {} - public void mouseExited(MouseEvent e) {} -} diff --git a/src/FourByFour/Cube.java b/src/FourByFour/Cube.java deleted file mode 100644 index b12ec46..0000000 --- a/src/FourByFour/Cube.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.event.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class Cube extends Object { - - private Shape3D shape3D; - - private static final float[] verts = { - // Front Face - 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, - // Back Face - -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, - 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, -1.0f, - // Right Face - 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, - 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, - // Left Face - -1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, - // Top Face - 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, - -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, - // Bottom Face - -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, - 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, 1.0f, - }; - - private static final float[] normals = { - // Front Face - 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, - // Back Face - 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f, - 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f, - // Right Face - 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, - // Left Face - -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, - -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, - // Top Face - 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - // Bottom Face - 0.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, - 0.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, - }; - - public Cube(Appearance appearance) { - - QuadArray quadArray = new QuadArray(24, QuadArray.COORDINATES | - QuadArray.NORMALS | - QuadArray.TEXTURE_COORDINATE_2); - quadArray.setCoordinates(0, verts); - quadArray.setNormals(0, normals); - - shape3D = new Shape3D(quadArray, appearance); - shape3D.setCapability(Shape3D.ALLOW_GEOMETRY_READ); - shape3D.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); - shape3D.setCapability(Shape3D.ALLOW_APPEARANCE_READ); - shape3D.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); - } - - public Cube(Appearance appearance, float size) { - - QuadArray quadArray = new QuadArray(24, QuadArray.COORDINATES | - QuadArray.NORMALS); - for (int i=0; i<72; i++) - verts[i] *= size; - - quadArray.setCoordinates(0, verts); - quadArray.setNormals(0, normals); - - shape3D = new Shape3D(quadArray, appearance); - shape3D.setCapability(Shape3D.ALLOW_GEOMETRY_READ); - shape3D.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); - shape3D.setCapability(Shape3D.ALLOW_APPEARANCE_READ); - shape3D.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); - } - - public Shape3D getChild() { - return shape3D; - } -} diff --git a/src/FourByFour/Cylinder.java b/src/FourByFour/Cylinder.java deleted file mode 100644 index c647087..0000000 --- a/src/FourByFour/Cylinder.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -public class Cylinder { - - float verts[]; - float normals[]; - QuadArray quad = null; - float div = 3.0f; - Shape3D shape; - - public Cylinder(float x, float z, float radius, float length, int quality, Appearance a) { - - if (quality < 3) quality = 3; - - div = (float) quality; - - verts = new float[quality*12]; - normals = new float[quality*12]; - - double inc = 2.0*Math.PI/(double)div; - for (int i=0; i< quality; i++){ - float z1 = radius * (float)Math.sin((double)i*inc) + z; - float x1 = radius * (float)Math.cos((double)i*inc) + x; - float z2 = radius * (float)Math.sin((double)(i+1)*inc) + z; - float x2 = radius * (float)Math.cos((double)(i+1)*inc) + x; - - verts[12*i] = x1; - verts[12*i+1] = -length/2.f; - verts[12*i+2] = z1; - verts[12*i+3] = x1; - verts[12*i+4] = length/2.f; - verts[12*i+5] = z1; - verts[12*i+6] = x2; - verts[12*i+7] = length/2.f; - verts[12*i+8] = z2; - verts[12*i+9] = x2; - verts[12*i+10] = -length/2.f; - verts[12*i+11] = z2; - - float nz1 = (float)Math.sin((double)i*inc); - float nx1 = (float)Math.cos((double)i*inc); - float nz2 = (float)Math.sin((double)(i+1)*inc); - float nx2 = (float)Math.cos((double)(i+1)*inc); - - normals[12*i] = nx1; - normals[12*i+1] = 0.0f; - normals[12*i+2] = nz1; - normals[12*i+3] = nx1; - normals[12*i+4] = 0.0f; - normals[12*i+5] = nz1; - normals[12*i+6] = nx2; - normals[12*i+7] = 0.0f; - normals[12*i+8] = nz2; - normals[12*i+9] = nx2; - normals[12*i+10] = 0.0f; - normals[12*i+11] = nz2; - } - - quad = new QuadArray(quality*4, QuadArray.COORDINATES | - QuadArray.NORMALS ); - quad.setCoordinates(0, verts); - quad.setNormals(0, normals); - shape = new Shape3D(quad, a); - } - - Shape3D getShape(){ - return shape; - } -} diff --git a/src/FourByFour/FourByFour.html b/src/FourByFour/FourByFour.html deleted file mode 100644 index 8adb168..0000000 --- a/src/FourByFour/FourByFour.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Drag the mouse in the window</TITLE> -</HEAD> -<BODY BGCOLOR="#0C0C33"> -<applet align=middle code="FourByFour.class" width=716 height=410> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see "FourByFour" instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/FourByFour/FourByFour.java b/src/FourByFour/FourByFour.java deleted file mode 100644 index 4e368cd..0000000 --- a/src/FourByFour/FourByFour.java +++ /dev/null @@ -1,884 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import java.io.*; -import java.net.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import com.sun.j3d.utils.universe.SimpleUniverse; -import com.sun.j3d.utils.applet.MainFrame; - -/** - * Class FourByFour - * - * Description: High level class for the game FourByFour - * - * Version: 1.2 - * - */ -public class FourByFour extends Applet implements ActionListener { - - String host; // Host from which this applet came from - int port; // Port number for writing high scores - Image backbuffer2D; // Backbuffer image used for 2D double buffering - int width, height; // Size of the graphics window in pixels - int score; // Final game score - int level_weight; // Weighting factor for skill level - int move_weight; // Weighting factor for number of moves to win - int time_weight; // Weighting factor for amount of time it took to win - int skill_level; // Skill level, 0 - 4 - Canvas2D canvas2D; // 2D rendering canvas - Canvas3D canvas3D; // 3D rendering canvas - Board board; // Game board object - Panel b_container; // Container to hold the buttons - Panel c_container; // Container to hold the canvas - Panel l_container; // Container to hold the labels - Panel skill_panel; // Panel to hold skill levels - Panel instruct_panel; // Panel to hold instructions - Panel winner_panel; // Panel to hold winner announcement - Panel high_panel; // Panel to hold high scores - Button instruct_button; // Instructions button - Button new_button; // New Game button - Button skill_button; // Skill Level button - Button high_button; // High Scores button - Button undo_button; // Undo Move button - Label skill_label; // Label on skill panel - Label winner_label; // Label on winner panel - Label winner_score_label; // Score label on winner panel - Label winner_name_label; // Name label on winner panel - Label winner_top_label; // Top 20 label on winner panel - Label high_label; // High score label - Label high_places[]; // Labels to hold places - Label high_names[]; // Labels to hold names - Label high_scores[]; // Labels to hold scores - TextArea instruct_text; // TextArea object that holds instructions - TextArea high_text; // TextArea object that holds top 20 scores - TextField winner_name; // TextField object that holds winner's name - Button instruct_return_button; // Return button for instruction panel - Button skill_return_button; // Return button for skill level panel - Button winner_return_button; // Return button for winner panel - Button high_return_button; // Return button for high scores panel - CheckboxGroup group; // CheckboxGroup object for skill level panel - InputStream inStream; // Input stream for reading instructions and high scores - OutputStream outStream; // Output stream for writing high scores - static boolean appletFlag = true; // Applet flag - boolean winner_flag = false; // Winner flag - byte text[]; // Temporary storage area for reading instructions file - byte outText[]; // Temporary storage area for writing high scores file - String textString; // Storage area for instructions - String scoresString; // String used for writing high scores file - int places[]; // Storage area for high score places - int scores[]; // Storage area for high score scores - String names[]; // Storage area for high score names - Positions positions; // Positions object, used to render player positions - - private SimpleUniverse universe = null; - - /** - * Initialization - */ - public void init() { - - // Set the port number. - port = 4111; - - // Set the graphics window size. - width = 350; - height = 350; - - // Set the weighting factors used for scoring. - level_weight = 1311; - move_weight = 111; - time_weight = 1000; - - // Create the "base" color for the AWT components. - setBackground(new Color(200, 200, 200)); - - // Read the instructions file. - if (appletFlag) { - - // Get the host from which this applet came. - host = getCodeBase().getHost(); - - try { - inStream = new BufferedInputStream - (new URL(getCodeBase(), "instructions.txt").openStream(), 8192); - text = new byte[5000]; - int character = inStream.read(); - int count = 0; - while (character != -1) { - text[count++] = (byte) character; - character = inStream.read(); - } - textString = new String(text); - inStream.close(); - } - catch(Exception e) { - System.out.println("Error: " + e.toString()); - } - } - else { - - try { - inStream = new BufferedInputStream - (new FileInputStream("instructions.txt")); - text = new byte[5000]; - int character = inStream.read(); - int count = 0; - while (character != -1) { - text[count++] = (byte) character; - character = inStream.read(); - } - textString = new String(text); - inStream.close(); - } - catch(Exception e) { - System.out.println("Error: " + e.toString()); - } - } - - // Read the high-scores file. - places = new int[20]; - scores = new int[20]; - names = new String[20]; - if (appletFlag) { - try { - inStream = new BufferedInputStream - (new URL(getCodeBase(), "scores.txt").openStream(), 8192); - Reader read = new BufferedReader(new InputStreamReader(inStream)); - StreamTokenizer st = new StreamTokenizer(read); - st.whitespaceChars(32,44); - st.eolIsSignificant(false); - - int count = 0; - int token = st.nextToken(); - boolean scoreFlag = true; - String string; - while (count<20) { - places[count] = (int) st.nval; - string = new String(""); - token = st.nextToken(); - while (token == StreamTokenizer.TT_WORD) { - string += st.sval; - string += " "; - token = st.nextToken(); - } - names[count] = string; - scores[count] = (int) st.nval; - token = st.nextToken(); - count++; - } - inStream.close(); - } - catch(Exception e) { - System.out.println("Error: " + e.toString()); - } - } - else { - try { - inStream = new BufferedInputStream - (new FileInputStream("scores.txt")); - Reader read = new BufferedReader(new InputStreamReader(inStream)); - StreamTokenizer st = new StreamTokenizer(read); - st.whitespaceChars(32,44); - st.eolIsSignificant(false); - - int count = 0; - int token = st.nextToken(); - boolean scoreFlag = true; - String string; - while (count<20) { - places[count] = (int) st.nval; - string = new String(""); - token = st.nextToken(); - while (token == StreamTokenizer.TT_WORD) { - string += st.sval; - string += " "; - token = st.nextToken(); - } - names[count] = string; - scores[count] = (int) st.nval; - token = st.nextToken(); - count++; - } - inStream.close(); - } - catch(Exception e) { - System.out.println("Error: " + e.toString()); - } - } - - // The positions object sets up the switch nodes which - // control the rendering of the player's positions. - positions = new Positions(); - - // Create the game board object which is responsible - // for keeping track of the moves on the game board - // and determining what move the computer should make. - board = new Board(this, positions, width, height); - positions.setBoard(board); - - // Create a 2D graphics canvas. - canvas2D = new Canvas2D(board); - canvas2D.setSize(width, height); - canvas2D.setLocation(width+10, 5); - canvas2D.addMouseListener(canvas2D); - board.setCanvas(canvas2D); - - // Create the 2D backbuffer - backbuffer2D = createImage(width, height); - canvas2D.setBuffer(backbuffer2D); - - // Create a 3D graphics canvas. - canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); - canvas3D.setSize(width, height); - canvas3D.setLocation(5, 5); - - // Create the scene branchgroup. - BranchGroup scene3D = createScene3D(); - - // Create a universe with the Java3D universe utility. - universe = new SimpleUniverse(canvas3D); - universe.addBranchGraph(scene3D); - - // Use parallel projection. - View view = universe.getViewer().getView(); - view.setProjectionPolicy(View.PARALLEL_PROJECTION); - - // Set the universe Transform3D object. - TransformGroup tg = - universe.getViewingPlatform().getViewPlatformTransform(); - Transform3D transform = new Transform3D(); - transform.set(65.f, new Vector3f(0.0f, 0.0f, 400.0f)); - tg.setTransform(transform); - - // Create the canvas container. - c_container = new Panel(); - c_container.setSize(720, 360); - c_container.setLocation(0, 0); - c_container.setVisible(true); - c_container.setLayout(null); - add(c_container); - - // Add the 2D and 3D canvases to the container. - c_container.add(canvas2D); - c_container.add(canvas3D); - - // Turn off the layout manager, widgets will be sized - // and positioned explicitly. - setLayout(null); - - // Create the button container. - b_container = new Panel(); - b_container.setSize(720, 70); - b_container.setLocation(0, 360); - b_container.setVisible(true); - b_container.setLayout(null); - - // Create the buttons. - instruct_button = new Button("Instructions"); - instruct_button.setSize(135, 25); - instruct_button.setLocation(10, 10); - instruct_button.setVisible(true); - instruct_button.addActionListener(this); - - new_button = new Button("New Game"); - new_button.setSize(135, 25); - new_button.setLocation(150, 10); - new_button.setVisible(true); - new_button.addActionListener(this); - - undo_button = new Button("Undo Move"); - undo_button.setSize(135, 25); - undo_button.setLocation(290, 10); - undo_button.setVisible(true); - undo_button.addActionListener(this); - - skill_button = new Button("Skill Level"); - skill_button.setSize(135, 25); - skill_button.setLocation(430, 10); - skill_button.setVisible(true); - skill_button.addActionListener(this); - - high_button = new Button("High Scores"); - high_button.setSize(135, 25); - high_button.setLocation(570, 10); - high_button.setVisible(true); - high_button.addActionListener(this); - - b_container.add(new_button); - b_container.add(undo_button); - b_container.add(skill_button); - b_container.add(high_button); - b_container.add(instruct_button); - - // Add the button container to the applet. - add(b_container); - - // Create the "Skill Level" dialog box. - skill_panel = new Panel(); - skill_panel.setSize(400, 300); - skill_panel.setLocation(200, 20); - skill_panel.setLayout(null); - - skill_label = new Label("Pick your skill level:"); - skill_label.setSize(200, 25); - skill_label.setLocation(25, 20); - skill_label.setVisible(true); - skill_panel.add(skill_label); - - group = new CheckboxGroup(); - Checkbox skill_1 = new Checkbox("Babe in the Woods ", group, false); - Checkbox skill_2 = new Checkbox("Walk and Chew Gum ", group, false); - Checkbox skill_3 = new Checkbox("Jeopardy Contestant ", group, false); - Checkbox skill_4 = new Checkbox("Rocket Scientist ", group, false); - Checkbox skill_5 = new Checkbox("Be afraid, be very afraid", group, true); - skill_1.setSize(170, 25); - skill_1.setLocation(80, 60); - skill_1.setVisible(true); - skill_2.setSize(170, 25); - skill_2.setLocation(80, 100); - skill_2.setVisible(true); - skill_3.setSize(170, 25); - skill_3.setLocation(80, 140); - skill_3.setVisible(true); - skill_4.setSize(170, 25); - skill_4.setLocation(80, 180); - skill_4.setVisible(true); - skill_5.setSize(170, 25); - skill_5.setLocation(80, 220); - skill_5.setVisible(true); - skill_return_button = new Button("Return"); - skill_return_button.setSize(120, 25); - skill_return_button.setLocation(300, 370); - skill_return_button.setVisible(false); - skill_return_button.addActionListener(this); - skill_panel.add(skill_1); - skill_panel.add(skill_2); - skill_panel.add(skill_3); - skill_panel.add(skill_4); - skill_panel.add(skill_5); - skill_panel.setVisible(false); - add(skill_return_button); - add(skill_panel); - - // Create the "Instructions" panel. - instruct_return_button = new Button("Return"); - instruct_return_button.setLocation(300, 370); - instruct_return_button.setSize(120, 25); - instruct_return_button.setVisible(false); - instruct_return_button.addActionListener(this); - instruct_text = - new TextArea(textString, 100, 200, TextArea.SCROLLBARS_VERTICAL_ONLY); - instruct_text.setSize(715, 350); - instruct_text.setLocation(0, 0); - instruct_text.setVisible(false); - add(instruct_text); - - add(instruct_return_button); - - high_panel = new Panel(); - high_panel.setSize(715, 350); - high_panel.setLocation(0, 0); - high_panel.setVisible(false); - high_panel.setLayout(null); - - high_label = new Label("High Scores"); - high_label.setLocation(330, 5); - high_label.setSize(200, 30); - high_label.setVisible(true); - high_panel.add(high_label); - - high_places = new Label[20]; - high_names = new Label[20]; - high_scores = new Label[20]; - for (int i=0; i<20; i++) { - high_places[i] = new Label(Integer.toString(i+1)); - high_places[i].setSize(20, 30); - high_places[i].setVisible(true); - high_names[i] = new Label(names[i]); - high_names[i].setSize(150, 30); - high_names[i].setVisible(true); - high_scores[i] = new Label(Integer.toString(scores[i])); - high_scores[i].setSize(150, 30); - high_scores[i].setVisible(true); - if (i<10) { - high_places[i].setLocation(70, i*30+40); - high_names[i].setLocation(100, i*30+40); - high_scores[i].setLocation(260, i*30+40); - } - else { - high_places[i].setLocation(425, (i-10)*30+40); - high_names[i].setLocation(455, (i-10)*30+40); - high_scores[i].setLocation(615, (i-10)*30+40); - } - high_panel.add(high_places[i]); - high_panel.add(high_names[i]); - high_panel.add(high_scores[i]); - } - high_return_button = new Button("Return"); - high_return_button.setSize(120, 25); - high_return_button.setLocation(300, 370); - high_return_button.setVisible(false); - high_return_button.addActionListener(this); - add(high_return_button); - add(high_panel); - - // Create the "Winner" dialog box - winner_panel = new Panel(); - winner_panel.setLayout(null); - winner_panel.setSize(600, 500); - winner_panel.setLocation(0, 0); - winner_return_button = new Button("Return"); - winner_return_button.setSize(120, 25); - winner_return_button.setLocation(300, 360); - winner_return_button.addActionListener(this); - winner_panel.add(winner_return_button); - winner_label = new Label(""); - winner_label.setSize(200, 30); - winner_label.setLocation(270, 110); - winner_score_label = new Label(""); - winner_score_label.setSize(200, 30); - winner_top_label = new Label("You have a score in the top 20."); - winner_top_label.setSize(200, 25); - winner_top_label.setLocation(260, 185); - winner_top_label.setVisible(false); winner_name_label = new Label("Enter your name here:"); - winner_name_label.setSize(150, 25); - winner_name_label.setLocation(260, 210); - winner_name_label.setVisible(false); - winner_name = new TextField(""); - winner_name.setSize(200, 30); - winner_name.setLocation(260, 240); - winner_name.setVisible(false); - winner_panel.add(winner_label); - winner_panel.add(winner_score_label); - winner_panel.add(winner_top_label); - winner_panel.add(winner_name_label); - winner_panel.add(winner_name); - winner_panel.setVisible(false); - add(winner_panel); - } - - public void destroy() { - universe.cleanup(); - } - - /** - * Create the scenegraph for the 3D view. - */ - public BranchGroup createScene3D() { - - // Define colors - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - Color3f red = new Color3f(0.80f, 0.20f, 0.2f); - Color3f ambient = new Color3f(0.25f, 0.25f, 0.25f); - Color3f diffuse = new Color3f(0.7f, 0.7f, 0.7f); - Color3f specular = new Color3f(0.9f, 0.9f, 0.9f); - Color3f ambientRed = new Color3f(0.2f, 0.05f, 0.0f); - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.2f); - - // Create the branch group - BranchGroup branchGroup = new BranchGroup(); - - // Create the bounding leaf node - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 1000.0); - BoundingLeaf boundingLeaf = new BoundingLeaf(bounds); - branchGroup.addChild(boundingLeaf); - - // Create the background - Background bg = new Background(bgColor); - bg.setApplicationBounds(bounds); - branchGroup.addChild(bg); - - // Create the ambient light - AmbientLight ambLight = new AmbientLight(white); - ambLight.setInfluencingBounds(bounds); - branchGroup.addChild(ambLight); - - // Create the directional light - Vector3f dir = new Vector3f(-1.0f, -1.0f, -1.0f); - DirectionalLight dirLight = new DirectionalLight(white, dir); - dirLight.setInfluencingBounds(bounds); - branchGroup.addChild(dirLight); - - // Create the pole appearance - Material poleMaterial = - new Material(ambient, black, diffuse, specular, 110.f); - poleMaterial.setLightingEnable(true); - Appearance poleAppearance = new Appearance(); - poleAppearance.setMaterial(poleMaterial); - - // Create the transform group node - TransformGroup transformGroup = new TransformGroup(); - transformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - transformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - branchGroup.addChild(transformGroup); - - // Create the poles - Poles poles = new Poles(poleAppearance); - transformGroup.addChild(poles.getChild()); - - // Add the position markers to the transform group - transformGroup.addChild(positions.getChild()); - - // Let the positions object know about the transform group - positions.setTransformGroup(transformGroup); - - // Create the mouse pick and drag behavior node - PickDragBehavior behavior = new PickDragBehavior(canvas2D, canvas3D, positions, - branchGroup, transformGroup); - behavior.setSchedulingBounds(bounds); - transformGroup.addChild(behavior); - - return branchGroup; - } - - public void actionPerformed (ActionEvent event) { - - Object target = event.getSource(); - - // Process the button events. - if (target == skill_return_button) { - skill_panel.setVisible(false); - skill_return_button.setVisible(false); - c_container.setVisible(true); - b_container.setVisible(true); - newGame(); - } - else if (target == winner_return_button) { - if (winner_flag) { - String name = winner_name.getText(); - String tmp_name = new String(""); - int tmp_score = 0; - boolean insert_flag = false; - winner_flag = false; - for (int i=0; i<20; i++) { - if (insert_flag) { - name = names[i]; - score = scores[i]; - names[i] = tmp_name; - scores[i] = tmp_score; - tmp_name = name; - tmp_score = score; - } - if (!insert_flag && score > scores[i]) { - tmp_name = names[i]; - tmp_score = scores[i]; - scores[i] = score; - names[i] = name; - insert_flag = true; - } - high_names[i].setText(names[i]); - high_scores[i].setText(Integer.toString(scores[i])); - } - scoresString = new String(""); - int place; - for (int i=0; i<20; i++) { - place = (int) places[i]; - scoresString += Integer.toString(place); - scoresString += "\t"; - scoresString += names[i]; - scoresString += " "; - scoresString += Integer.toString(scores[i]); - scoresString += "\n"; - } - - if (appletFlag) { - // Use this section of code when writing the high - // scores file back to a server. Requires the use - // of a deamon on the server to receive the socket - // connection. - // - // Create the output stream. - // try { - // Socket socket = new Socket(host, port); - // outStream = new BufferedOutputStream - // (socket.getOutputStream(), 8192); - // } - // catch(IOException ioe) { - // System.out.println("Error: " + ioe.toString()); - // } - // System.out.println("Output stream opened"); - // - // Write the scores to the file back on the server. - // outText = scoresString.getBytes(); - // try { - // outStream.write(outText); - // outStream.flush(); - // outStream.close(); - // outStream = null; - // } - // catch (IOException ioe) { - // System.out.println("Error: " + ioe.toString()); - // } - // System.out.println("Output stream written"); - - try { - OutputStreamWriter outFile = - new OutputStreamWriter(new FileOutputStream("scores.txt")); - outFile.write(scoresString); - outFile.flush(); - outFile.close(); - outFile = null; - } - catch (IOException ioe) { - System.out.println("Error: " + ioe.toString()); - } - catch (Exception e) { - System.out.println("Error: " + e.toString()); - } - } - else { - - try { - OutputStreamWriter outFile = - new OutputStreamWriter(new FileOutputStream("scores.txt")); - outFile.write(scoresString); - outFile.flush(); - outFile.close(); - outFile = null; - } - catch (IOException ioe) { - System.out.println("Error: " + ioe.toString()); - } - } - } - winner_panel.setVisible(false); - winner_return_button.setVisible(false); - winner_label.setVisible(false); - winner_score_label.setVisible(false); - winner_name_label.setVisible(false); - winner_top_label.setVisible(false); - winner_name.setVisible(false); - c_container.setVisible(true); - b_container.setVisible(true); - } - else if (target == high_return_button) { - high_return_button.setVisible(false); - high_panel.setVisible(false); - c_container.setVisible(true); - b_container.setVisible(true); - } - else if (target == instruct_return_button) { - instruct_text.setVisible(false); - instruct_return_button.setVisible(false); - instruct_text.repaint(); - c_container.setVisible(true); - b_container.setVisible(true); - } - else if (target == undo_button) { - board.undo_move(); - canvas2D.repaint(); - } - else if (target == instruct_button) { - c_container.setVisible(false); - b_container.setVisible(false); - instruct_text.setVisible(true); - instruct_return_button.setVisible(true); - } - else if (target == new_button) { - newGame(); - } - else if (target == skill_button) { - c_container.setVisible(false); - b_container.setVisible(false); - skill_panel.setVisible(true); - skill_return_button.setVisible(true); - } - else if (target == high_button) { - // Read the high scores file. - if (appletFlag) { - try { - inStream = new BufferedInputStream - (new URL(getCodeBase(), "scores.txt").openStream(), 8192); - Reader read = new BufferedReader(new InputStreamReader(inStream)); - StreamTokenizer st = new StreamTokenizer(read); - st.whitespaceChars(32,44); - st.eolIsSignificant(false); - - int count = 0; - int token = st.nextToken(); - boolean scoreFlag = true; - String string; - while (count<20) { - places[count] = (int) st.nval; - string = new String(""); - token = st.nextToken(); - while (token == StreamTokenizer.TT_WORD) { - string += st.sval; - string += " "; - token = st.nextToken(); - } - names[count] = string; - scores[count] = (int) st.nval; - token = st.nextToken(); - count++; - } - inStream.close(); - } - catch(Exception ioe) { - System.out.println("Error: " + ioe.toString()); - } - } - else { - try { - inStream = new BufferedInputStream - (new FileInputStream("scores.txt")); - Reader read = new BufferedReader(new InputStreamReader(inStream)); - StreamTokenizer st = new StreamTokenizer(read); - st.whitespaceChars(32,44); - st.eolIsSignificant(false); - - int count = 0; - int token = st.nextToken(); - boolean scoreFlag = true; - String string; - while (count<20) { - places[count] = (int) st.nval; - string = new String(""); - token = st.nextToken(); - while (token == StreamTokenizer.TT_WORD) { - string += st.sval; - string += " "; - token = st.nextToken(); - } - names[count] = string; - scores[count] = (int) st.nval; - token = st.nextToken(); - count++; - } - inStream.close(); - } - catch(Exception ioe) { - System.out.println("Error: " + ioe.toString()); - } - } - c_container.setVisible(false); - b_container.setVisible(false); - high_panel.setVisible(true); - high_return_button.setVisible(true); - } - - Checkbox box = group.getSelectedCheckbox(); - String label = box.getLabel(); - if (label.equals("Babe in the Woods ")) { - board.set_skill_level(0); - } - else if (label.equals("Walk and Chew Gum ")) { - board.set_skill_level(1); - } - else if (label.equals("Jeopardy Contestant ")) { - board.set_skill_level(2); - } - else if (label.equals("Rocket Scientist ")) { - board.set_skill_level(3); - } - else if (label.equals("Be afraid, be very afraid")) { - board.set_skill_level(4); - } - } - - public void newGame() { - board.newGame(); - canvas2D.repaint(); - } - - public void start() { - if (appletFlag) showStatus("FourByFour"); - } - - public void winner(int player, int level, int nmoves, long time) { - - if (player == 1) { - score = level * level_weight + - (66 - nmoves) * move_weight - - (int) Math.min(time * time_weight, 5000); - winner_label.setText("Game over, you win!"); - winner_label.setLocation(290, 90); - winner_score_label.setText("Score = " + score); - winner_score_label.setVisible(true); - winner_score_label.setLocation(315, 120); - if (score > scores[19]) { - winner_name_label.setVisible(true); - winner_top_label.setVisible(true); - winner_name.setVisible(true); - winner_flag = true; - } - } - else { - winner_label.setText("Game over, the computer wins!"); - winner_label.setLocation(250, 150); - } - c_container.setVisible(false); - b_container.setVisible(false); - winner_panel.setVisible(true); - winner_label.setVisible(true); - winner_return_button.setVisible(true); - repaint(); - } - - /** - * Inner class used to "kill" the window when running as - * an application. - */ - static class killAdapter extends WindowAdapter { - public void windowClosing(WindowEvent event) { - System.exit(0); - } - } - - /** - * Main method, only used when running as an application. - */ - public static void main(String[] args) { - FourByFour.appletFlag = false; - new MainFrame(new FourByFour(), 730, 450); - } - -} diff --git a/src/FourByFour/FourByFour_plugin.html b/src/FourByFour/FourByFour_plugin.html deleted file mode 100644 index 55e1cf4..0000000 --- a/src/FourByFour/FourByFour_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Drag the mouse in the window</TITLE> -</HEAD> -<BODY BGCOLOR="#0C0C33"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 716 HEIGHT = 410 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "FourByFour.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "FourByFour.class" WIDTH = 716 HEIGHT = 410 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see "FourByFour" instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "FourByFour.class" WIDTH = 716 HEIGHT = 410 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see "FourByFour" instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/FourByFour/ID.java b/src/FourByFour/ID.java deleted file mode 100644 index 0ca8cf9..0000000 --- a/src/FourByFour/ID.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -class ID { - int id; - - public ID(int id) { - this.id = id; - } - - public int get() { - return id; - } - - public void set(int id) { - this.id = id; - } -} diff --git a/src/FourByFour/PickDragBehavior.java b/src/FourByFour/PickDragBehavior.java deleted file mode 100644 index 7645af9..0000000 --- a/src/FourByFour/PickDragBehavior.java +++ /dev/null @@ -1,216 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.*; -import java.awt.event.*; -import java.util.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import com.sun.j3d.utils.geometry.Sphere; - -/** - * Class: PickDragBehavior - * - * Description: Used to respond to mouse pick and drag events - * in the 3D window. - * - * Version: 1.0 - * - */ -public class PickDragBehavior extends Behavior { - - WakeupCriterion[] mouseEvents; - WakeupOr mouseCriterion; - int x, y; - int x_last, y_last; - double x_angle, y_angle; - double x_factor, y_factor; - Transform3D modelTrans; - Transform3D transformX; - Transform3D transformY; - TransformGroup transformGroup; - BranchGroup branchGroup; - Canvas2D canvas2D; - Canvas3D canvas3D; - Positions positions; - PickRay pickRay = new PickRay(); - SceneGraphPath sceneGraphPath[]; - Appearance highlight; - boolean parallel; - - PickDragBehavior(Canvas2D canvas2D, Canvas3D canvas3D, Positions positions, - BranchGroup branchGroup, TransformGroup transformGroup) { - - this.canvas2D = canvas2D; - this.canvas3D = canvas3D; - this.positions = positions; - this.branchGroup = branchGroup; - this.transformGroup = transformGroup; - - modelTrans = new Transform3D(); - transformX = new Transform3D(); - transformY = new Transform3D(); - - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - Color3f green = new Color3f(0.0f, 1.0f, 0.0f); - - highlight = new Appearance(); - highlight.setMaterial(new Material(green, black, green, white, 80.f)); - - parallel = true; - } - - public void initialize() { - x = 0; - y = 0; - x_last = 0; - y_last = 0; - x_angle = 0; - y_angle = 0; - x_factor = .02; - y_factor = .02; - - mouseEvents = new WakeupCriterion[2]; - mouseEvents[0] = new WakeupOnAWTEvent(MouseEvent.MOUSE_DRAGGED); - mouseEvents[1] = new WakeupOnAWTEvent(MouseEvent.MOUSE_PRESSED); - mouseCriterion = new WakeupOr(mouseEvents); - wakeupOn (mouseCriterion); - } - - public void processStimulus (Enumeration criteria) { - WakeupCriterion wakeup; - AWTEvent[] event; - int id; - int dx, dy; - - while (criteria.hasMoreElements()) { - wakeup = (WakeupCriterion) criteria.nextElement(); - if (wakeup instanceof WakeupOnAWTEvent) { - event = ((WakeupOnAWTEvent)wakeup).getAWTEvent(); - for (int i=0; i<event.length; i++) { - id = event[i].getID(); - if (id == MouseEvent.MOUSE_DRAGGED) { - - x = ((MouseEvent)event[i]).getX(); - y = ((MouseEvent)event[i]).getY(); - - dx = x - x_last; - dy = y - y_last; - - x_angle = dy * y_factor; - y_angle = dx * x_factor; - - transformX.rotX(x_angle); - transformY.rotY(y_angle); - - modelTrans.mul(transformX, modelTrans); - modelTrans.mul(transformY, modelTrans); - - transformGroup.setTransform(modelTrans); - - x_last = x; - y_last = y; - } - else if (id == MouseEvent.MOUSE_PRESSED) { - - x = x_last = ((MouseEvent)event[i]).getX(); - y = y_last = ((MouseEvent)event[i]).getY(); - - Point3d eyePos = new Point3d(); - canvas3D.getCenterEyeInImagePlate(eyePos); - - Point3d mousePos = new Point3d(); - canvas3D.getPixelLocationInImagePlate(x, y, mousePos); - - Transform3D transform3D = new Transform3D(); - canvas3D.getImagePlateToVworld(transform3D); - - transform3D.transform(eyePos); - transform3D.transform(mousePos); - - Vector3d mouseVec; - if (parallel) { - mouseVec = new Vector3d(0.f, 0.f, -1.f); - } - else { - mouseVec = new Vector3d(); - mouseVec.sub(mousePos, eyePos); - mouseVec.normalize(); - } - - pickRay.set(mousePos, mouseVec); - sceneGraphPath = branchGroup.pickAllSorted(pickRay); - - if (sceneGraphPath != null) { - for (int j=0; j<sceneGraphPath.length; j++) { - if (sceneGraphPath[j] != null) { - Node node = sceneGraphPath[j].getObject(); - if (node instanceof Shape3D) { - try { - ID posID = (ID) node.getUserData(); - if (posID != null) { - int pos = posID.get(); - positions.set(pos, Positions.HUMAN); - canvas2D.repaint(); - break; - } - } - catch (CapabilityNotSetException e) { - // Catch all CapabilityNotSet exceptions and - // throw them away, prevents renderer from - // locking up when encountering "non-selectable" - // objects. - } - } - } - } - } - } - } - } - } - wakeupOn (mouseCriterion); - } -} diff --git a/src/FourByFour/Poles.java b/src/FourByFour/Poles.java deleted file mode 100644 index b875b4b..0000000 --- a/src/FourByFour/Poles.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.event.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -/** - * Class: Poles - * - * Description: Creates the "poles" in the 3D window. - * - * Version: 1.0 - * - */ -public class Poles extends Object { - - private Group group; - - public Poles(Appearance appearance) { - float x = -30.0f; - float z = -30.0f; - group = new Group(); - for(int i=0; i<4; i++) { - for(int j=0; j<4; j++) { - Cylinder c = new Cylinder(x, z, 1.0f, 60.0f, 10, appearance); - group.addChild(c.getShape()); - x += 20.0f; - } - x = -30.0f; - z += 20.0f; - } - } - - public Group getChild() { - return group; - } -} diff --git a/src/FourByFour/Positions.java b/src/FourByFour/Positions.java deleted file mode 100644 index 5a61b93..0000000 --- a/src/FourByFour/Positions.java +++ /dev/null @@ -1,311 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.event.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.util.BitSet; -import com.sun.j3d.utils.geometry.Sphere; - -/** - * Class: Positions - * - * Description: Creates the position markers. - * - * Version: 1.0 - * - */ -public class Positions extends Object { - - final static int UNOCCUPIED = 0; - final static int HUMAN = 1; - final static int MACHINE = 2; - final static int END = 3; - - private Vector3f point[]; - private Switch posSwitch; - private Switch humanSwitch; - private Switch machineSwitch; - private BitSet posMask; - private BitSet humanMask; - private BitSet machineMask; - private Group group; - private Material redMat; - private Material blueMat; - private Material yellowMat; - private Material whiteMat; - private Appearance redApp; - private Appearance blueApp; - private Appearance yellowApp; - private Appearance whiteApp; - private Board board; - private Sphere posSphere[]; - private BigCube cube[]; - private TransformGroup tgroup; - private boolean winnerFlag = false; - - public Positions() { - - // Define colors for lighting - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - Color3f red = new Color3f(0.9f, 0.1f, 0.2f); - Color3f blue = new Color3f(0.3f, 0.3f, 0.8f); - Color3f yellow = new Color3f(1.0f, 1.0f, 0.0f); - Color3f ambRed = new Color3f(0.3f, 0.03f, 0.03f); - Color3f ambBlue = new Color3f(0.03f, 0.03f, 0.3f); - Color3f ambYellow = new Color3f(0.3f, 0.3f, 0.03f); - Color3f ambWhite = new Color3f(0.3f, 0.3f, 0.3f); - Color3f specular = new Color3f(1.0f, 1.0f, 1.0f); - - // Create the red appearance node - redMat= new Material(ambRed, black, red, specular, 100.f); - redMat.setLightingEnable(true); - redApp = new Appearance(); - redApp.setMaterial(redMat); - - // Create the blue appearance node - blueMat= new Material(ambBlue, black, blue, specular, 100.f); - blueMat.setLightingEnable(true); - blueApp = new Appearance(); - blueApp.setMaterial(blueMat); - - // Create the yellow appearance node - yellowMat= new Material(ambYellow, black, yellow, specular, 100.f); - yellowMat.setLightingEnable(true); - yellowApp = new Appearance(); - yellowApp.setMaterial(yellowMat); - - // Create the white appearance node - whiteMat= new Material(ambWhite, black, white, specular, 100.f); - whiteMat.setLightingEnable(true); - whiteApp = new Appearance(); - whiteApp.setMaterial(whiteMat); - - // Load the point array with the offset (coordinates) for each of - // the 64 positions. - point = new Vector3f[64]; - int count = 0; - for (int i=-30; i<40; i+=20) { - for (int j=-30; j<40; j+=20) { - for (int k=-30; k<40; k+=20) { - point[count] = new Vector3f((float) k, (float) j, (float) i); - count++; - } - } - } - - // Create the switch nodes - posSwitch = new Switch(Switch.CHILD_MASK); - humanSwitch = new Switch(Switch.CHILD_MASK); - machineSwitch = new Switch(Switch.CHILD_MASK); - - // Set the capability bits - posSwitch.setCapability(Switch.ALLOW_SWITCH_READ); - posSwitch.setCapability(Switch.ALLOW_SWITCH_WRITE); - - humanSwitch.setCapability(Switch.ALLOW_SWITCH_READ); - humanSwitch.setCapability(Switch.ALLOW_SWITCH_WRITE); - - machineSwitch.setCapability(Switch.ALLOW_SWITCH_READ); - machineSwitch.setCapability(Switch.ALLOW_SWITCH_WRITE); - - // Create the bit masks - posMask = new BitSet(); - humanMask = new BitSet(); - machineMask = new BitSet(); - - // Create the small white spheres that mark unoccupied - // positions. - posSphere = new Sphere[64]; - for (int i=0; i<64; i++) { - Transform3D transform3D = new Transform3D(); - transform3D.set(point[i]); - TransformGroup transformGroup = new TransformGroup(transform3D); - posSphere[i] = new Sphere(2.0f, Sphere.GENERATE_NORMALS | - Sphere.ENABLE_APPEARANCE_MODIFY, - 12, whiteApp); - Shape3D shape = posSphere[i].getShape(); - ID id = new ID(i); - shape.setUserData(id); - transformGroup.addChild(posSphere[i]); - posSwitch.addChild(transformGroup); - posMask.set(i); - } - - // Create the red spheres that mark the user's positions. - for (int i=0; i<64; i++) { - Transform3D transform3D = new Transform3D(); - transform3D.set(point[i]); - TransformGroup transformGroup = new TransformGroup(transform3D); - transformGroup.addChild(new Sphere(7.0f, redApp)); - humanSwitch.addChild(transformGroup); - humanMask.clear(i); - } - - // Create the blue cubes that mark the computer's positions. - for (int i=0; i<64; i++) { - Transform3D transform3D = new Transform3D(); - transform3D.set(point[i]); - TransformGroup transformGroup = new TransformGroup(transform3D); - BigCube cube = new BigCube(blueApp); - transformGroup.addChild(cube.getChild()); - machineSwitch.addChild(transformGroup); - machineMask.clear(i); - } - - // Set the positions mask - posSwitch.setChildMask(posMask); - humanSwitch.setChildMask(humanMask); - machineSwitch.setChildMask(machineMask); - - // Throw everything into a single group - group = new Group(); - group.addChild(posSwitch); - group.addChild(humanSwitch); - group.addChild(machineSwitch); - } - - public void setTransformGroup(TransformGroup transformGroup) { - tgroup = transformGroup; - } - - public Group getChild() { - return group; - } - - public void setBoard(Board board) { - this.board = board; - } - - public void winner() { - winnerFlag = true; - } - - public void noWinner() { - winnerFlag = false; - } - - public void setHighlight(int pos) { - posSphere[pos].setAppearance(yellowApp); - } - - public void clearHighlight(int pos) { - posSphere[pos].setAppearance(whiteApp); - } - - public void newGame() { - - // Clear the board - for (int i=0; i<64; i++) { - posMask.set(i); - humanMask.clear(i); - machineMask.clear(i); - } - posSwitch.setChildMask(posMask); - humanSwitch.setChildMask(humanMask); - machineSwitch.setChildMask(machineMask); - - // The following three lines fix a bug in J3D - Transform3D t = new Transform3D(); - tgroup.getTransform(t); - tgroup.setTransform(t); - - // Reset the winner flag - winnerFlag = false; - } - - public void set(int pos, int player) { - - // Stop accepting selections when the game - // is over. - if (winnerFlag) return; - - // Make sure the position is not occupied. - if (player == HUMAN) - if (!board.unoccupied(pos)) return; - - // Turn off the position marker for the given position - posMask.clear(pos); - posSwitch.setChildMask(posMask); - - // Turn on the player marker - if (player == Positions.HUMAN) { - humanMask.set(pos); - humanSwitch.setChildMask(humanMask); - board.selection(pos, Positions.HUMAN); - } - else { - machineMask.set(pos); - machineSwitch.setChildMask(machineMask); - } - - // The following three lines fix a bug in J3D - Transform3D t = new Transform3D(); - tgroup.getTransform(t); - tgroup.setTransform(t); - } - - public void clear(int pos) { - - // Turn on the position marker - posMask.set(pos); - posSwitch.setChildMask(posMask); - - // Turn off the player marker - humanMask.clear(pos); - humanSwitch.setChildMask(humanMask); - machineMask.clear(pos); - machineSwitch.setChildMask(machineMask); - - // The following three lines are a workaround for a bug - // in dev09 in which the transform3D of certain items are - // not updated properly. Scheduled to be fixed in dev10 - Transform3D t = new Transform3D(); - tgroup.getTransform(t); - tgroup.setTransform(t); - } - -} diff --git a/src/FourByFour/README b/src/FourByFour/README deleted file mode 100644 index 6d0e046..0000000 --- a/src/FourByFour/README +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -FourByFour - -To run: - - appletviewer FourByFour.html - -Press the "Instructions" button to get instructions on -how to play FourByFour. diff --git a/src/FourByFour/build.xml b/src/FourByFour/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/FourByFour/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/FourByFour/instructions.txt b/src/FourByFour/instructions.txt deleted file mode 100644 index 36ded73..0000000 --- a/src/FourByFour/instructions.txt +++ /dev/null @@ -1,98 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - - Four By Four - -Description: - - A three dimensional game of tic-tac-toe on a 4x4x4 cube. - -Object: - - Be the first to score four in a row. - -Instructions: - - 1. It's you versus the computer. - - 2. There are five skill levels. Press the "Skill Level" button to select your level - of play. The program defaults to the hardest level. Changing the skill level in - the middle of a game will force the start of a new game. - - 3. The screen on the left is a 3D window. A mouse drag in this window will rotate the - view to any desired position. - - 4. The screen on the right is a 2D window which displays all 18 faces that exist in the - 4x4x4 array. - - 5. Click on any of the small gray spheres (in either the 2D or 3D window) to select a position. - - 6. Positions owned by you will be marked in red. Positions owned by the computer will be - marked in blue. - - 7. Click the "Undo Move" button to take back a move. - - 8. Clicking on any of words "Face X" in the 2D window will cause that particular face to highlight - in the 3D window. Clicking the word again will un-highlight the face. - - 9. The final score is based on skill level, number of moves, and time. Select the button - "High Scores" to see a list of the top 20 scores. There is no penalty for using the - undo button. - - 10. Good luck. - -General Strategy: - - 1. There are a 64 positions from which to choose. In total, there are 72 possible winning - combinations. - - 2. The outer four corners and the inner "core" of eight have the most winning combinations, - 7 each, and should perhaps be chosen first. - - 3. Use the 2D window to keep an eye on all the faces. - - 4. The computer plays well at the highest skill level (the default). There are, however, - faults in it's logic that can be exploited. Thus the human player can win even at the - highest skill level. In the beginning, however, you may want to start at the lower skill - levels and work your way up. diff --git a/src/FourByFour/scores.txt b/src/FourByFour/scores.txt deleted file mode 100644 index 0ebc31a..0000000 --- a/src/FourByFour/scores.txt +++ /dev/null @@ -1,20 +0,0 @@ -1 Bart Simpson 5283 -2 Dwight Eisenhower 5105 -3 Ken 5061 -4 Barbie 2883 -5 DoubleMint Twins 2195 -6 Robin Hood 1772 -7 Jack Benny 1604 -8 Anonymous 1550 -9 Duke 1501 -10 Jack Paar 1499 -11 Barney 1488 -12 Mick Jagger 1472 -13 Howard Hughes 1329 -14 Bugs Bunny 1328 -15 Suzi Chapstick 1302 -16 Forest Gump 1244 -17 Alfred Hitchcock 1231 -18 Roman Polaski 1168 -19 Missy Giovi 1106 -20 Bill Joy 1002 diff --git a/src/GLSLShaderTest/ObjLoadGLSL.java b/src/GLSLShaderTest/ObjLoadGLSL.java deleted file mode 100644 index 3c67b98..0000000 --- a/src/GLSLShaderTest/ObjLoadGLSL.java +++ /dev/null @@ -1,340 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.loaders.objectfile.ObjectFile; -import com.sun.j3d.loaders.ParsingErrorException; -import com.sun.j3d.loaders.IncorrectFormatException; -import com.sun.j3d.loaders.Scene; -import com.sun.j3d.utils.shader.StringIO; -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.util.Enumeration; -import java.io.*; -import com.sun.j3d.utils.behaviors.vp.*; -import java.net.URL; -import java.net.MalformedURLException; - -public class ObjLoadGLSL extends Applet { - - private String shaderName = "polkadot3d"; - private boolean spin = false; - private boolean noTriangulate = false; - private boolean noStripify = false; - private double creaseAngle = 60.0; - private URL filename = null; - private SimpleUniverse u; - private BoundingSphere bounds; - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.7); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - objScale.addChild(objTrans); - - int flags = ObjectFile.RESIZE; - if (!noTriangulate) flags |= ObjectFile.TRIANGULATE; - if (!noStripify) flags |= ObjectFile.STRIPIFY; - ObjectFile f = new ObjectFile(flags, - (float)(creaseAngle * Math.PI / 180.0)); - Scene s = null; - try { - s = f.load(filename); - } - catch (FileNotFoundException e) { - throw new RuntimeException(e); - } - catch (ParsingErrorException e) { - throw new RuntimeException(e); - } - catch (IncorrectFormatException e) { - throw new RuntimeException(e); - } - - // Set vertex and fragment shader program for all Shape3D nodes in scene - String vertexProgram = null; - String fragmentProgram = null; - try { - vertexProgram = StringIO.readFully(shaderName + ".vert"); - fragmentProgram = StringIO.readFully(shaderName + ".frag"); - } - catch (IOException e) { - throw new RuntimeException(e); - } - Shader[] shaders = new Shader[2]; - shaders[0] = new SourceCodeShader(Shader.SHADING_LANGUAGE_GLSL, - Shader.SHADER_TYPE_VERTEX, - vertexProgram); - shaders[1] = new SourceCodeShader(Shader.SHADING_LANGUAGE_GLSL, - Shader.SHADER_TYPE_FRAGMENT, - fragmentProgram); - ShaderProgram shaderProgram = new GLSLShaderProgram(); - shaderProgram.setShaders(shaders); - setShaderProgram(s.getSceneGroup(), shaderProgram); - - objTrans.addChild(s.getSceneGroup()); - - bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - if (spin) { - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - } - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.5f); - Background bgNode = new Background(bgColor); - bgNode.setApplicationBounds(bounds); - objRoot.addChild(bgNode); - - return objRoot; - } - - private void usage() - { - System.out.println( - "Usage: java ObjLoadGLSL [-s] [-S shaderName] [-n] [-t] [-c degrees] <.obj file>"); - System.out.println(" -s Spin (no user interaction)"); - System.out.println(" -S Set shader name (default is 'simple')"); - System.out.println(" -n No triangulation"); - System.out.println(" -t No stripification"); - System.out.println( - " -c Set crease angle for normal generation (default is 60 without"); - System.out.println( - " smoothing group info, otherwise 180 within smoothing groups)"); - System.exit(0); - } // End of usage - - - - public void init() { - if (filename == null) { - // Applet - try { - URL path = getCodeBase(); - filename = new URL(path.toString() + "./galleon.obj"); - } - catch (MalformedURLException e) { - throw new RuntimeException(e); - } - } - - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // add mouse behaviors to the ViewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - PlatformGeometry pg = new PlatformGeometry(); - - // Set up the ambient light - Color3f ambientColor = new Color3f(0.1f, 0.1f, 0.1f); - AmbientLight ambientLightNode = new AmbientLight(ambientColor); - ambientLightNode.setInfluencingBounds(bounds); - pg.addChild(ambientLightNode); - - // Set up the directional lights - Color3f light1Color = new Color3f(1.0f, 0.2f, 0.4f); - Vector3f light1Direction = new Vector3f(-1.0f, -1.0f, -1.0f); - Color3f light2Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light2Direction = new Vector3f(1.0f, 1.0f, 1.0f); - - DirectionalLight light1 - = new DirectionalLight(light1Color, light1Direction); - light1.setInfluencingBounds(bounds); - pg.addChild(light1); - - DirectionalLight light2 - = new DirectionalLight(light2Color, light2Direction); - light2.setInfluencingBounds(bounds); - pg.addChild(light2); - - viewingPlatform.setPlatformGeometry( pg ); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - viewingPlatform.setNominalViewingTransform(); - - if (!spin) { - OrbitBehavior orbit = new OrbitBehavior(c, - OrbitBehavior.REVERSE_ALL); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - } - - /* - // Limit the frame rate to 100 Hz - u.getViewer().getView().setMinimumFrameCycleTime(10); - */ - - u.addBranchGraph(scene); - } - - // Set shader program for all nodes in specified branch graph - private void setShaderProgram(BranchGroup g, ShaderProgram shaderProgram) { - ShaderAppearance myApp = new ShaderAppearance(); - Material mat = new Material(); - myApp.setShaderProgram(shaderProgram); - myApp.setMaterial(mat); - setShaderProgram(g, myApp); - } - - // Recursively set shader program for all children of specified group - private void setShaderProgram(Group g, - ShaderAppearance myApp) { - - Enumeration e = g.getAllChildren(); - while (e.hasMoreElements()) { - Node n = (Node)(e.nextElement()); - if (n instanceof Group) { - setShaderProgram((Group)n, myApp); - } - else if (n instanceof Shape3D) { - Shape3D s = (Shape3D)n; - s.setAppearance(myApp); - } - } - } - - // Caled if running as a program - public ObjLoadGLSL(String[] args) { - if (args.length != 0) { - for (int i = 0 ; i < args.length ; i++) { - if (args[i].startsWith("-")) { - if (args[i].equals("-s")) { - spin = true; - } else if (args[i].equals("-n")) { - noTriangulate = true; - } else if (args[i].equals("-t")) { - noStripify = true; - } else if (args[i].equals("-c")) { - if (i < args.length - 1) { - creaseAngle = (new Double(args[++i])).doubleValue(); - } else usage(); - } else if (args[i].equals("-S")) { - if (i < args.length - 1) { - shaderName = args[++i]; - } else usage(); - } else { - usage(); - } - } else { - try { - if ((args[i].indexOf("file:") == 0) || - (args[i].indexOf("http") == 0)) { - filename = new URL(args[i]); - } - else if (args[i].charAt(0) != '/') { - filename = new URL("file:./" + args[i]); - } - else { - filename = new URL("file:" + args[i]); - } - } - catch (MalformedURLException e) { - throw new RuntimeException(e); - } - } - } - } - } - - - - // Running as an applet - public ObjLoadGLSL() { - } - - public void destroy() { - u.cleanup(); - } - - - - // - // The following allows ObjLoadGLSL to be run as an application - // as well as an applet - // - public static void main(String[] args) { - new MainFrame(new ObjLoadGLSL(args), 700, 700); - } -} diff --git a/src/GLSLShaderTest/PhongShadingGLSL.form b/src/GLSLShaderTest/PhongShadingGLSL.form deleted file mode 100644 index dcccf73..0000000 --- a/src/GLSLShaderTest/PhongShadingGLSL.form +++ /dev/null @@ -1,138 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> - -<Form version="1.0" type="org.netbeans.modules.form.forminfo.JFrameFormInfo"> - <NonVisualComponents> - <Component class="javax.swing.ButtonGroup" name="shaderButtonGroup"> - </Component> - <Menu class="javax.swing.JMenuBar" name="jMenuBar1"> - <SubComponents> - <Menu class="javax.swing.JMenu" name="fileMenu"> - <Properties> - <Property name="text" type="java.lang.String" value="File"/> - </Properties> - <SubComponents> - <MenuItem class="javax.swing.JMenuItem" name="exitMenuItem"> - <Properties> - <Property name="text" type="java.lang.String" value="Exit"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="exitMenuItemActionPerformed"/> - </Events> - </MenuItem> - </SubComponents> - </Menu> - </SubComponents> - </Menu> - </NonVisualComponents> - <Properties> - <Property name="defaultCloseOperation" type="int" value="3"/> - <Property name="title" type="java.lang.String" value="Phong Shading Test"/> - </Properties> - <SyntheticProperties> - <SyntheticProperty name="menuBar" type="java.lang.String" value="jMenuBar1"/> - <SyntheticProperty name="formSizePolicy" type="int" value="1"/> - </SyntheticProperties> - <AuxValues> - <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> - <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> - <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,44,0,0,1,-112"/> - </AuxValues> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="guiPanel"> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> - <BorderConstraints direction="North"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="jPanel1"> - <Properties> - <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> - <TitledBorder title="Shader"/> - </Border> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Component class="javax.swing.JRadioButton" name="gouraudButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="shaderButtonGroup"/> - </Property> - <Property name="selected" type="boolean" value="true"/> - <Property name="text" type="java.lang.String" value="Per-Vertex Lighting (Gouraud)"/> - <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo"> - <EmptyBorder bottom="0" left="0" right="0" top="0"/> - </Border> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[0, 0, 0, 0]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="gouraudButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JRadioButton" name="phongButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="shaderButtonGroup"/> - </Property> - <Property name="text" type="java.lang.String" value="Per-Pixel Lighting (Phong)"/> - <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo"> - <EmptyBorder bottom="0" left="0" right="0" top="0"/> - </Border> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[0, 0, 0, 0]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="phongButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - </SubComponents> - </Container> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="drawingPanel"> - <Properties> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[500, 500]"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> - <BorderConstraints direction="Center"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> - </Container> - </SubComponents> -</Form> diff --git a/src/GLSLShaderTest/PhongShadingGLSL.java b/src/GLSLShaderTest/PhongShadingGLSL.java deleted file mode 100644 index 5711ff8..0000000 --- a/src/GLSLShaderTest/PhongShadingGLSL.java +++ /dev/null @@ -1,448 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.geometry.Sphere; -import com.sun.j3d.utils.shader.StringIO; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.awt.GraphicsConfiguration; -import java.io.IOException; - -/** - * - * @author kcr - */ -public class PhongShadingGLSL extends javax.swing.JFrame { - - // Constants for type of light to use - private static final int DIRECTIONAL_LIGHT = 0; - private static final int POINT_LIGHT = 1; - private static final int SPOT_LIGHT = 2; - - // Flag indicates type of lights: directional, point, or spot lights. - private static int lightType = DIRECTIONAL_LIGHT; - - private SimpleUniverse u = null; - - private ShaderAppearance sApp = null; - private ShaderProgram gouraudSP = null; - private ShaderProgram phongSP = null; - - public BranchGroup createSceneGraph() { - Color3f eColor = new Color3f(0.0f, 0.0f, 0.0f); - Color3f sColor = new Color3f(1.0f, 1.0f, 1.0f); - Color3f objColor = new Color3f(0.6f, 0.6f, 0.6f); -// Color3f lColor1 = new Color3f(1.0f, 0.0f, 0.0f); -// Color3f lColor2 = new Color3f(0.0f, 1.0f, 0.0f); - Color3f lColor1 = new Color3f(1.0f, 1.0f, 0.5f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.2f); - - Transform3D t; - - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.5); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create a bounds for the background and lights - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - Background bg = new Background(bgColor); - bg.setApplicationBounds(bounds); - objRoot.addChild(bg); - - // Create the TransformGroup node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at run time. Add it to - // the root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objScale.addChild(objTrans); - - // Create a Sphere object, generate one copy of the sphere, - // and add it into the scene graph. - sApp = new ShaderAppearance(); - sApp.setCapability(ShaderAppearance.ALLOW_SHADER_PROGRAM_WRITE); - Material m = new Material(objColor, eColor, objColor, sColor, 100.0f); - sApp.setMaterial(m); - - // Create Gouraud and Phong shader programs - String vertexProgram = null; - String fragmentProgram = null; - Shader[] shaders = new Shader[2]; - String[] attrNames = { "numLights" }; - - try { - vertexProgram = StringIO.readFully("./gouraud.vert"); - fragmentProgram = StringIO.readFully("./gouraud.frag"); - } - catch (IOException e) { - throw new RuntimeException(e); - } - shaders[0] = new SourceCodeShader(Shader.SHADING_LANGUAGE_GLSL, - Shader.SHADER_TYPE_VERTEX, - vertexProgram); - shaders[1] = new SourceCodeShader(Shader.SHADING_LANGUAGE_GLSL, - Shader.SHADER_TYPE_FRAGMENT, - fragmentProgram); - gouraudSP = new GLSLShaderProgram(); - gouraudSP.setShaders(shaders); - - try { - vertexProgram = StringIO.readFully("./phong.vert"); - fragmentProgram = StringIO.readFully("./phong.frag"); - } - catch (IOException e) { - throw new RuntimeException(e); - } - shaders[0] = new SourceCodeShader(Shader.SHADING_LANGUAGE_GLSL, - Shader.SHADER_TYPE_VERTEX, - vertexProgram); - shaders[1] = new SourceCodeShader(Shader.SHADING_LANGUAGE_GLSL, - Shader.SHADER_TYPE_FRAGMENT, - fragmentProgram); - phongSP = new GLSLShaderProgram(); - phongSP.setShaders(shaders); - - if (gouraudButton.isSelected()) { - sApp.setShaderProgram(gouraudSP); - } else if (phongButton.isSelected()) { - sApp.setShaderProgram(phongSP); - } - Sphere sph = new Sphere(1.0f, Sphere.GENERATE_NORMALS, 30, sApp); - objTrans.addChild(sph); - - // Create a new Behavior object that will perform the - // desired operation on the specified transform and add - // it into the scene graph. - Transform3D yAxis = new Transform3D(); - yAxis.rotZ(Math.PI); - Alpha rotationAlpha = new Alpha(-1, 10000); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - rotator.setSchedulingBounds(bounds); - objRoot.addChild(rotator); - - // Create the transform group node for the each light and initialize - // it to the identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add them to the root - // of the subgraph. - TransformGroup l1RotTrans = new TransformGroup(); - l1RotTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objScale.addChild(l1RotTrans); - - TransformGroup l2RotTrans = new TransformGroup(); - l2RotTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objScale.addChild(l2RotTrans); - - // Create transformations for the positional lights - t = new Transform3D(); - Vector3d lPos1 = new Vector3d(0.0, 0.0, 2.0); - t.set(lPos1); - TransformGroup l1Trans = new TransformGroup(t); - l1RotTrans.addChild(l1Trans); - -// t = new Transform3D(); -// Vector3d lPos2 = new Vector3d(0.5, 0.8, 2.0); -// t.set(lPos2); -// TransformGroup l2Trans = new TransformGroup(t); -// l2RotTrans.addChild(l2Trans); - - // Create Geometry for point lights - ColoringAttributes caL1 = new ColoringAttributes(); -// ColoringAttributes caL2 = new ColoringAttributes(); - caL1.setColor(lColor1); -// caL2.setColor(lColor2); - Appearance appL1 = new Appearance(); -// Appearance appL2 = new Appearance(); - appL1.setColoringAttributes(caL1); -// appL2.setColoringAttributes(caL2); - l1Trans.addChild(new Sphere(0.05f, appL1)); -// l2Trans.addChild(new Sphere(0.05f, appL2)); - - // Create lights - AmbientLight aLgt = new AmbientLight(alColor); - - Light lgt1 = null; -// Light lgt2 = null; - - Point3f lPoint = new Point3f(0.0f, 0.0f, 0.0f); - Point3f atten = new Point3f(1.0f, 0.0f, 0.0f); - Vector3f lDirect1 = new Vector3f(lPos1); -// Vector3f lDirect2 = new Vector3f(lPos2); - lDirect1.negate(); -// lDirect2.negate(); - - switch (lightType) { - case DIRECTIONAL_LIGHT: - lgt1 = new DirectionalLight(lColor1, lDirect1); -// lgt2 = new DirectionalLight(lColor2, lDirect2); - break; - case POINT_LIGHT: - assert false : "can't get here"; - lgt1 = new PointLight(lColor1, lPoint, atten); -// lgt2 = new PointLight(lColor2, lPoint, atten); - break; - case SPOT_LIGHT: - assert false : "can't get here"; - lgt1 = new SpotLight(lColor1, lPoint, atten, lDirect1, - 25.0f * (float)Math.PI / 180.0f, 10.0f); -// lgt2 = new SpotLight(lColor2, lPoint, atten, lDirect2, -// 25.0f * (float)Math.PI / 180.0f, 10.0f); - break; - } - - // Set the influencing bounds - aLgt.setInfluencingBounds(bounds); - lgt1.setInfluencingBounds(bounds); -// lgt2.setInfluencingBounds(bounds); - - // Add the lights into the scene graph - objScale.addChild(aLgt); - l1Trans.addChild(lgt1); -// l2Trans.addChild(lgt2); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into the - // scene graph. - yAxis = new Transform3D(); - Alpha rotor1Alpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - RotationInterpolator rotator1 = - new RotationInterpolator(rotor1Alpha, - l1RotTrans, - yAxis, - 0.0f, (float) Math.PI*2.0f); - rotator1.setSchedulingBounds(bounds); - l1RotTrans.addChild(rotator1); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into the - // scene graph. - Alpha rotor2Alpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 1000, 0, 0, - 0, 0, 0); - RotationInterpolator rotator2 = - new RotationInterpolator(rotor2Alpha, - l2RotTrans, - yAxis, - 0.0f, 0.0f); - bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotator2.setSchedulingBounds(bounds); - l2RotTrans.addChild(rotator2); - - return objRoot; - } - - private Canvas3D initScene() { - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - BranchGroup scene = createSceneGraph(); - u.addBranchGraph(scene); - - return c; - } - - /** - * Creates new form PhongShadingGLSL - */ - public PhongShadingGLSL() { - // Initialize the GUI components - initComponents(); - - // Create the scene and add the Canvas3D to the drawing panel - Canvas3D c = initScene(); - drawingPanel.add(c, java.awt.BorderLayout.CENTER); - } - - // ---------------------------------------------------------------- - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents - private void initComponents() { - java.awt.GridBagConstraints gridBagConstraints; - - shaderButtonGroup = new javax.swing.ButtonGroup(); - guiPanel = new javax.swing.JPanel(); - jPanel1 = new javax.swing.JPanel(); - gouraudButton = new javax.swing.JRadioButton(); - phongButton = new javax.swing.JRadioButton(); - drawingPanel = new javax.swing.JPanel(); - jMenuBar1 = new javax.swing.JMenuBar(); - fileMenu = new javax.swing.JMenu(); - exitMenuItem = new javax.swing.JMenuItem(); - - setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); - setTitle("Phong Shading Test"); - guiPanel.setLayout(new java.awt.GridBagLayout()); - - jPanel1.setLayout(new java.awt.GridBagLayout()); - - jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Shader")); - shaderButtonGroup.add(gouraudButton); - gouraudButton.setSelected(true); - gouraudButton.setText("Per-Vertex Lighting (Gouraud)"); - gouraudButton.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); - gouraudButton.setMargin(new java.awt.Insets(0, 0, 0, 0)); - gouraudButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - gouraudButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); - jPanel1.add(gouraudButton, gridBagConstraints); - - shaderButtonGroup.add(phongButton); - phongButton.setText("Per-Pixel Lighting (Phong)"); - phongButton.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); - phongButton.setMargin(new java.awt.Insets(0, 0, 0, 0)); - phongButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - phongButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); - jPanel1.add(phongButton, gridBagConstraints); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); - guiPanel.add(jPanel1, gridBagConstraints); - - getContentPane().add(guiPanel, java.awt.BorderLayout.NORTH); - - drawingPanel.setLayout(new java.awt.BorderLayout()); - - drawingPanel.setPreferredSize(new java.awt.Dimension(500, 500)); - getContentPane().add(drawingPanel, java.awt.BorderLayout.CENTER); - - fileMenu.setText("File"); - exitMenuItem.setText("Exit"); - exitMenuItem.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - exitMenuItemActionPerformed(evt); - } - }); - - fileMenu.add(exitMenuItem); - - jMenuBar1.add(fileMenu); - - setJMenuBar(jMenuBar1); - - pack(); - }// </editor-fold>//GEN-END:initComponents - - private void phongButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_phongButtonActionPerformed - sApp.setShaderProgram(phongSP); - }//GEN-LAST:event_phongButtonActionPerformed - - private void gouraudButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_gouraudButtonActionPerformed - sApp.setShaderProgram(gouraudSP); - }//GEN-LAST:event_gouraudButtonActionPerformed - - private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitMenuItemActionPerformed - System.exit(0); - }//GEN-LAST:event_exitMenuItemActionPerformed - - /** - * @param args the command line arguments - */ - public static void main(String args[]) { - java.awt.EventQueue.invokeLater(new Runnable() { - public void run() { - new PhongShadingGLSL().setVisible(true); - } - }); - } - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JPanel drawingPanel; - private javax.swing.JMenuItem exitMenuItem; - private javax.swing.JMenu fileMenu; - private javax.swing.JRadioButton gouraudButton; - private javax.swing.JPanel guiPanel; - private javax.swing.JMenuBar jMenuBar1; - private javax.swing.JPanel jPanel1; - private javax.swing.JRadioButton phongButton; - private javax.swing.ButtonGroup shaderButtonGroup; - // End of variables declaration//GEN-END:variables - -} diff --git a/src/GLSLShaderTest/ShaderTestGLSL.form b/src/GLSLShaderTest/ShaderTestGLSL.form deleted file mode 100644 index 714273d..0000000 --- a/src/GLSLShaderTest/ShaderTestGLSL.form +++ /dev/null @@ -1,266 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> - -<Form version="1.2" type="org.netbeans.modules.form.forminfo.JFrameFormInfo"> - <NonVisualComponents> - <Component class="javax.swing.ButtonGroup" name="densityButtonGroup"> - </Component> - <Component class="javax.swing.ButtonGroup" name="colorButtonGroup"> - </Component> - <Component class="javax.swing.ButtonGroup" name="sceneGraphButtonGroup"> - </Component> - <Menu class="javax.swing.JMenuBar" name="jMenuBar1"> - <SubComponents> - <Menu class="javax.swing.JMenu" name="fileMenu"> - <Properties> - <Property name="text" type="java.lang.String" value="File"/> - </Properties> - <SubComponents> - <MenuItem class="javax.swing.JMenuItem" name="exitMenuItem"> - <Properties> - <Property name="text" type="java.lang.String" value="Exit"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="exitMenuItemActionPerformed"/> - </Events> - </MenuItem> - </SubComponents> - </Menu> - </SubComponents> - </Menu> - </NonVisualComponents> - <Properties> - <Property name="title" type="java.lang.String" value="Window Title"/> - </Properties> - <SyntheticProperties> - <SyntheticProperty name="menuBar" type="java.lang.String" value="jMenuBar1"/> - <SyntheticProperty name="formSizePolicy" type="int" value="1"/> - </SyntheticProperties> - <Events> - <EventHandler event="windowClosing" listener="java.awt.event.WindowListener" parameters="java.awt.event.WindowEvent" handler="exitForm"/> - </Events> - <AuxValues> - <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> - <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> - <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-85,0,0,2,0"/> - </AuxValues> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="mainPanel"> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> - <BorderConstraints direction="Center"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="guiPanel"> - <Properties> - <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo"> - <LineBorder/> - </Border> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> - <BorderConstraints direction="North"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="densityPanel"> - <Properties> - <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> - <TitledBorder title="Density"/> - </Border> - </Property> - </Properties> - <AccessibilityProperties> - <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="ShaderAttributeValue 
"/> - </AccessibilityProperties> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Component class="javax.swing.JRadioButton" name="zeroButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="densityButtonGroup"/> - </Property> - <Property name="text" type="java.lang.String" value="Zero"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="zeroButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JRadioButton" name="halfButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="densityButtonGroup"/> - </Property> - <Property name="text" type="java.lang.String" value="Half"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="halfButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JRadioButton" name="fullButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="densityButtonGroup"/> - </Property> - <Property name="selected" type="boolean" value="true"/> - <Property name="text" type="java.lang.String" value="Full"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="fullButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="colorPanel"> - <Properties> - <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> - <TitledBorder title="Color"/> - </Border> - </Property> - </Properties> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Component class="javax.swing.JRadioButton" name="goldButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="colorButtonGroup"/> - </Property> - <Property name="selected" type="boolean" value="true"/> - <Property name="text" type="java.lang.String" value="Gold"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="goldButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JRadioButton" name="silverButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="colorButtonGroup"/> - </Property> - <Property name="text" type="java.lang.String" value="Silver"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="silverButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="sceneGraphPanel"> - <Properties> - <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> - <TitledBorder title="Scene Graph"/> - </Border> - </Property> - </Properties> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Component class="javax.swing.JToggleButton" name="DetachButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="sceneGraphButtonGroup"/> - </Property> - <Property name="selected" type="boolean" value="true"/> - <Property name="text" type="java.lang.String" value="Detach"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="DetachButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JToggleButton" name="AttachButton"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="sceneGraphButtonGroup"/> - </Property> - <Property name="text" type="java.lang.String" value="Create"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="AttachButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JButton" name="replaceSPButton"> - <Properties> - <Property name="text" type="java.lang.String" value="Replace Shader"/> - <Property name="enabled" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="replaceSPButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - </SubComponents> - </Container> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="drawingPanel"> - <Properties> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[500, 500]"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> - <BorderConstraints direction="Center"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> - </Container> - </SubComponents> - </Container> - </SubComponents> -</Form> diff --git a/src/GLSLShaderTest/ShaderTestGLSL.java b/src/GLSLShaderTest/ShaderTestGLSL.java deleted file mode 100644 index b96ea42..0000000 --- a/src/GLSLShaderTest/ShaderTestGLSL.java +++ /dev/null @@ -1,666 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.geometry.Sphere; -import com.sun.j3d.utils.shader.StringIO; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.awt.GraphicsConfiguration; -import java.io.IOException; - -public class ShaderTestGLSL extends javax.swing.JFrame { - - static final int GOLD = 1; - static final int SILVER = 2; - - static final int DIMPLE_SHADER = 1; - static final int BRICK_SHADER = 2; - static final int WOOD_SHADER = 3; - static final int POLKADOT3D_SHADER = 4; - - static final String[] shaderAttrNames1 = { - "Density", "Size", "LightPosition", "Color" - }; - - static final String[] shaderAttrNames2 = { - "BrickColor", "LightPosition" - }; - - private SimpleUniverse u = null; - private View view; - private BranchGroup transpObj; - private BranchGroup scene = null; - private int shaderSelected = DIMPLE_SHADER; - private float density = 16.0f; - private int color = GOLD; - - private Color3f eColor = new Color3f(0.2f, 0.2f, 0.2f); - private Color3f sColor = new Color3f(0.8f, 0.8f, 0.8f); - private Color3f objColor = new Color3f(0.6f, 0.6f, 0.6f); - private Color3f bgColor = new Color3f(0.05f, 0.05f, 0.2f); - private Color3f gold = new Color3f(0.7f, 0.6f, 0.18f); - private Color3f silver = new Color3f(0.75f, 0.75f, 0.75f); - - // Handlers for doing update - private ShaderAppearance sApp1 = null; - private ShaderAppearance sApp2 = null; - private ShaderAppearance sApp3 = null; - private ShaderAppearance sApp4 = null; - private ShaderProgram sp1 = null; - private ShaderProgram sp2 = null; - private ShaderProgram sp3 = null; - private ShaderProgram sp4 = null; - private ShaderAttributeSet sas1 = null; - private ShaderAttributeSet sas2 = null; - private ShaderAttributeObject sao1 = null; - private ShaderAttributeObject sao2 = null; - private Sphere sphere = null; - private Shape3D s3d = null; - - private Material createMaterial() { - Material m; - m = new Material(objColor, eColor, objColor, sColor, 100.0f); - m.setLightingEnable(true); - return m; - } - - private ShaderProgram createGLSLShaderProgram(int index) { - String vertexProgram = null; - String fragmentProgram = null; - try { - switch (index) { - case DIMPLE_SHADER: - vertexProgram = StringIO.readFully("./dimple.vert"); - fragmentProgram = StringIO.readFully("./dimple.frag"); - break; - case BRICK_SHADER: - vertexProgram = StringIO.readFully("./aabrick.vert"); - fragmentProgram = StringIO.readFully("./aabrick.frag"); - break; - case WOOD_SHADER: - vertexProgram = StringIO.readFully("./wood.vert"); - fragmentProgram = StringIO.readFully("./wood.frag"); - break; - case POLKADOT3D_SHADER: - vertexProgram = StringIO.readFully("./polkadot3d.vert"); - fragmentProgram = StringIO.readFully("./polkadot3d.frag"); - break; - default: - } - } - catch (IOException e) { - throw new RuntimeException(e); - } - Shader[] shaders = new Shader[2]; - shaders[0] = new SourceCodeShader(Shader.SHADING_LANGUAGE_GLSL, - Shader.SHADER_TYPE_VERTEX, - vertexProgram); - shaders[1] = new SourceCodeShader(Shader.SHADING_LANGUAGE_GLSL, - Shader.SHADER_TYPE_FRAGMENT, - fragmentProgram); - ShaderProgram shaderProgram = new GLSLShaderProgram(); - shaderProgram.setShaders(shaders); - return shaderProgram; - } - - private ShaderAttributeSet createShaderAttributeSet(int index) { - ShaderAttributeSet shaderAttributeSet = new ShaderAttributeSet(); - ShaderAttributeObject shaderAttribute = null; - - switch (index) { - case DIMPLE_SHADER: - // "Density", "Size", "Scale", "Color", "LightPosition" - shaderAttribute = new ShaderAttributeValue("Size", new Float(0.25)); - shaderAttributeSet.put(shaderAttribute); - shaderAttribute = new ShaderAttributeValue("LightPosition", - new Point3f(0.0f, 0.0f, 0.5f)); - shaderAttributeSet.put(shaderAttribute); - - sao1 = new ShaderAttributeValue("Density", new Float(density)); - sao1.setCapability(ShaderAttributeObject.ALLOW_VALUE_READ); - sao1.setCapability(ShaderAttributeObject.ALLOW_VALUE_WRITE); - shaderAttributeSet.put(sao1); - - if(color == GOLD) { - sao2 = new ShaderAttributeValue("Color", gold); - } - else if (color == SILVER) { - sao2 = new ShaderAttributeValue("Color", silver); - } - sao2.setCapability(ShaderAttributeObject.ALLOW_VALUE_READ); - sao2.setCapability(ShaderAttributeObject.ALLOW_VALUE_WRITE); - shaderAttributeSet.put(sao2); - break; - - case BRICK_SHADER: - // "BrickColor", "LightPosition" - shaderAttribute = new ShaderAttributeValue("BrickColor", - new Color3f(1.0f, 0.3f, 0.2f)); - shaderAttributeSet.put(shaderAttribute); - shaderAttribute = new ShaderAttributeValue("LightPosition", - new Point3f(0.0f, 0.0f, 0.5f)); - shaderAttributeSet.put(shaderAttribute); - break; - default: - assert false; - } - return shaderAttributeSet; - } - - private ShaderAppearance createShaderAppearance() { - ShaderAppearance sApp = new ShaderAppearance(); - sApp.setMaterial(createMaterial()); - return sApp; - } - - - private BranchGroup createSubSceneGraph() { - // Create the sub-root of the branch graph - BranchGroup subRoot = new BranchGroup(); - - // - // Create 1 spheres with a GLSLShader and add it into the scene graph. - // - sApp1 = createShaderAppearance(); - sApp1.setCapability(ShaderAppearance.ALLOW_SHADER_PROGRAM_READ); - sApp1.setCapability(ShaderAppearance.ALLOW_SHADER_PROGRAM_WRITE); - sApp1.setCapability(ShaderAppearance.ALLOW_SHADER_ATTRIBUTE_SET_READ); - sApp1.setCapability(ShaderAppearance.ALLOW_SHADER_ATTRIBUTE_SET_WRITE); - - sp1 = createGLSLShaderProgram(1); - sp1.setShaderAttrNames(shaderAttrNames1); - sas1 = createShaderAttributeSet(1); - sas1.setCapability(ShaderAttributeSet.ALLOW_ATTRIBUTES_READ); - sas1.setCapability(ShaderAttributeSet.ALLOW_ATTRIBUTES_WRITE); - sApp1.setShaderProgram(sp1); - sApp1.setShaderAttributeSet(sas1); - - // Setup Brick shader - sp2 = createGLSLShaderProgram(2); - sp2.setShaderAttrNames(shaderAttrNames2); - sas2 = createShaderAttributeSet(2); - sApp2 = createShaderAppearance(); - sApp2.setShaderProgram(sp2); - sApp2.setShaderAttributeSet(sas2); - - // Setup Wood shader - sp3 = createGLSLShaderProgram(3); - sApp3 = createShaderAppearance(); - sApp3.setShaderProgram(sp3); - - // Setup Polkadot3d shader - sp4 = createGLSLShaderProgram(4); - sApp4 = createShaderAppearance(); - sApp4.setShaderProgram(sp4); - - sphere = new Sphere(1.5f, Sphere.GENERATE_NORMALS, 200, null); - s3d = (Shape3D)sphere.getShape(); - s3d.setCapability(Shape3D.ALLOW_APPEARANCE_READ); - s3d.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); - s3d.setAppearance(sApp1); - - TransformGroup objTG; - Transform3D t = new Transform3D(); - t.set(new Vector3d(0.0, 0.0, 0.0)); - objTG = new TransformGroup(t); - objTG.addChild(sphere); - subRoot.addChild(objTG); - - return subRoot; - } - - private BranchGroup createSceneGraph(int selectedScene) { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - objRoot.setCapability(BranchGroup.ALLOW_DETACH); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create a bounds for the background and lights - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - Background bg = new Background(bgColor); - bg.setApplicationBounds(bounds); - objScale.addChild(bg); - - objScale.addChild(createSubSceneGraph()); - - // Create a position interpolator and attach it to the view - // platform - TransformGroup vpTrans = - u.getViewingPlatform().getViewPlatformTransform(); - Transform3D axisOfTranslation = new Transform3D(); - Alpha transAlpha = new Alpha(-1, - Alpha.INCREASING_ENABLE | - Alpha.DECREASING_ENABLE, - 0, 0, - 5000, 0, 0, - 5000, 0, 0); - axisOfTranslation.rotY(-Math.PI/2.0); - PositionInterpolator translator = - new PositionInterpolator(transAlpha, - vpTrans, - axisOfTranslation, - 2.0f, 3.5f); - translator.setSchedulingBounds(bounds); - objScale.addChild(translator); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - private Canvas3D initScene() { - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - - u = new SimpleUniverse(c); - - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - viewingPlatform.setNominalViewingTransform(); - - view = u.getViewer().getView(); - - return c; - } - - /** - * Creates new form ShaderTestGLSL - */ - public ShaderTestGLSL() { - // Initialize the GUI components - initComponents(); - - // Create the scene and add the Canvas3D to the drawing panel - Canvas3D c = initScene(); - drawingPanel.add(c, java.awt.BorderLayout.CENTER); - } - - - // ---------------------------------------------------------------- - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents - private void initComponents() { - java.awt.GridBagConstraints gridBagConstraints; - - densityButtonGroup = new javax.swing.ButtonGroup(); - colorButtonGroup = new javax.swing.ButtonGroup(); - sceneGraphButtonGroup = new javax.swing.ButtonGroup(); - mainPanel = new javax.swing.JPanel(); - guiPanel = new javax.swing.JPanel(); - densityPanel = new javax.swing.JPanel(); - zeroButton = new javax.swing.JRadioButton(); - halfButton = new javax.swing.JRadioButton(); - fullButton = new javax.swing.JRadioButton(); - colorPanel = new javax.swing.JPanel(); - goldButton = new javax.swing.JRadioButton(); - silverButton = new javax.swing.JRadioButton(); - sceneGraphPanel = new javax.swing.JPanel(); - DetachButton = new javax.swing.JToggleButton(); - AttachButton = new javax.swing.JToggleButton(); - replaceSPButton = new javax.swing.JButton(); - drawingPanel = new javax.swing.JPanel(); - jMenuBar1 = new javax.swing.JMenuBar(); - fileMenu = new javax.swing.JMenu(); - exitMenuItem = new javax.swing.JMenuItem(); - - setTitle("Window Title"); - addWindowListener(new java.awt.event.WindowAdapter() { - public void windowClosing(java.awt.event.WindowEvent evt) { - exitForm(evt); - } - }); - - mainPanel.setLayout(new java.awt.BorderLayout()); - - guiPanel.setLayout(new javax.swing.BoxLayout(guiPanel, javax.swing.BoxLayout.X_AXIS)); - - guiPanel.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0))); - densityPanel.setLayout(new java.awt.GridBagLayout()); - - densityPanel.setBorder(new javax.swing.border.TitledBorder("Density")); - densityButtonGroup.add(zeroButton); - zeroButton.setText("Zero"); - zeroButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - zeroButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - densityPanel.add(zeroButton, gridBagConstraints); - - densityButtonGroup.add(halfButton); - halfButton.setText("Half"); - halfButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - halfButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - densityPanel.add(halfButton, gridBagConstraints); - - densityButtonGroup.add(fullButton); - fullButton.setSelected(true); - fullButton.setText("Full"); - fullButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - fullButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - densityPanel.add(fullButton, gridBagConstraints); - - guiPanel.add(densityPanel); - densityPanel.getAccessibleContext().setAccessibleName("ShaderAttributeValue \n"); - - colorPanel.setLayout(new java.awt.GridBagLayout()); - - colorPanel.setBorder(new javax.swing.border.TitledBorder("Color")); - colorButtonGroup.add(goldButton); - goldButton.setSelected(true); - goldButton.setText("Gold"); - goldButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - goldButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - colorPanel.add(goldButton, gridBagConstraints); - - colorButtonGroup.add(silverButton); - silverButton.setText("Silver"); - silverButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - silverButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - colorPanel.add(silverButton, gridBagConstraints); - - guiPanel.add(colorPanel); - - sceneGraphPanel.setLayout(new java.awt.GridBagLayout()); - - sceneGraphPanel.setBorder(new javax.swing.border.TitledBorder("Scene Graph")); - sceneGraphButtonGroup.add(DetachButton); - DetachButton.setSelected(true); - DetachButton.setText("Detach"); - DetachButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - DetachButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - sceneGraphPanel.add(DetachButton, gridBagConstraints); - - sceneGraphButtonGroup.add(AttachButton); - AttachButton.setText("Create"); - AttachButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - AttachButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - sceneGraphPanel.add(AttachButton, gridBagConstraints); - - replaceSPButton.setText("Replace Shader"); - replaceSPButton.setEnabled(false); - replaceSPButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - replaceSPButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - sceneGraphPanel.add(replaceSPButton, gridBagConstraints); - - guiPanel.add(sceneGraphPanel); - - mainPanel.add(guiPanel, java.awt.BorderLayout.NORTH); - - drawingPanel.setLayout(new java.awt.BorderLayout()); - - drawingPanel.setPreferredSize(new java.awt.Dimension(500, 500)); - mainPanel.add(drawingPanel, java.awt.BorderLayout.CENTER); - - getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER); - - fileMenu.setText("File"); - exitMenuItem.setText("Exit"); - exitMenuItem.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - exitMenuItemActionPerformed(evt); - } - }); - - fileMenu.add(exitMenuItem); - - jMenuBar1.add(fileMenu); - - setJMenuBar(jMenuBar1); - - pack(); - } - // </editor-fold>//GEN-END:initComponents - - private void silverButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_silverButtonActionPerformed - color = SILVER; - if(scene != null) { - sao2.setValue(silver); - } - }//GEN-LAST:event_silverButtonActionPerformed - - private void goldButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_goldButtonActionPerformed - color = GOLD; - if(scene != null) { - sao2.setValue(gold); - } - }//GEN-LAST:event_goldButtonActionPerformed - - private void replaceSPButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_replaceSPButtonActionPerformed - if (shaderSelected != DIMPLE_SHADER) { - goldButton.setEnabled(false); - silverButton.setEnabled(false); - zeroButton.setEnabled(false); - halfButton.setEnabled(false); - fullButton.setEnabled(false); - } - - switch(shaderSelected) { - case DIMPLE_SHADER: - s3d.setAppearance(sApp1); - goldButton.setEnabled(true); - silverButton.setEnabled(true); - zeroButton.setEnabled(true); - halfButton.setEnabled(true); - fullButton.setEnabled(true); - shaderSelected = BRICK_SHADER; - break; - case BRICK_SHADER: - s3d.setAppearance(sApp2); - shaderSelected = WOOD_SHADER; - break; - case WOOD_SHADER: - s3d.setAppearance(sApp3); - shaderSelected = POLKADOT3D_SHADER; - break; - case POLKADOT3D_SHADER: - s3d.setAppearance(sApp4); - shaderSelected = DIMPLE_SHADER; - break; - default: - assert false; - } - - }//GEN-LAST:event_replaceSPButtonActionPerformed - - private void fullButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fullButtonActionPerformed - density = 16.0f; - if (scene != null) { - sao1.setValue(new Float(density)); - } - }//GEN-LAST:event_fullButtonActionPerformed - - private void DetachButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_DetachButtonActionPerformed - if (scene != null) { - scene.detach(); - scene = null; - replaceSPButton.setEnabled(false); - goldButton.setEnabled(true); - silverButton.setEnabled(true); - zeroButton.setEnabled(true); - halfButton.setEnabled(true); - fullButton.setEnabled(true); - shaderSelected = DIMPLE_SHADER; - } - }//GEN-LAST:event_DetachButtonActionPerformed - - private void AttachButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AttachButtonActionPerformed - if (scene == null) { - scene = createSceneGraph(1); - u.addBranchGraph(scene); - replaceSPButton.setEnabled(true); - shaderSelected = BRICK_SHADER; - } - }//GEN-LAST:event_AttachButtonActionPerformed - - private void halfButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_halfButtonActionPerformed - density = 8.0f; - if(scene != null) { - sao1.setValue(new Float(density)); - } - }//GEN-LAST:event_halfButtonActionPerformed - - private void zeroButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zeroButtonActionPerformed - density = 0.0f; - if(scene != null) { - sao1.setValue(new Float(density)); - } - - }//GEN-LAST:event_zeroButtonActionPerformed - - private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitMenuItemActionPerformed - System.exit(0); - }//GEN-LAST:event_exitMenuItemActionPerformed - - /** Exit the Application */ - private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm - System.exit(0); - }//GEN-LAST:event_exitForm - - /** - * @param args the command line arguments - */ - public static void main(String args[]) { - new ShaderTestGLSL().setVisible(true); - } - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JToggleButton AttachButton; - private javax.swing.JToggleButton DetachButton; - private javax.swing.ButtonGroup colorButtonGroup; - private javax.swing.JPanel colorPanel; - private javax.swing.ButtonGroup densityButtonGroup; - private javax.swing.JPanel densityPanel; - private javax.swing.JPanel drawingPanel; - private javax.swing.JMenuItem exitMenuItem; - private javax.swing.JMenu fileMenu; - private javax.swing.JRadioButton fullButton; - private javax.swing.JRadioButton goldButton; - private javax.swing.JPanel guiPanel; - private javax.swing.JRadioButton halfButton; - private javax.swing.JMenuBar jMenuBar1; - private javax.swing.JPanel mainPanel; - private javax.swing.JButton replaceSPButton; - private javax.swing.ButtonGroup sceneGraphButtonGroup; - private javax.swing.JPanel sceneGraphPanel; - private javax.swing.JRadioButton silverButton; - private javax.swing.JRadioButton zeroButton; - // End of variables declaration//GEN-END:variables - -} diff --git a/src/GLSLShaderTest/SphereGLSL.java b/src/GLSLShaderTest/SphereGLSL.java deleted file mode 100644 index a9f6447..0000000 --- a/src/GLSLShaderTest/SphereGLSL.java +++ /dev/null @@ -1,339 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.io.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.Sphere; -import com.sun.j3d.utils.shader.StringIO; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.util.Enumeration; -import java.net.URL; -import java.net.MalformedURLException; - -/** - * Simple GLSL Shader test program - */ -public class SphereGLSL extends Applet { - - // Constants for type of light to use - private static final int DIRECTIONAL_LIGHT = 0; - private static final int POINT_LIGHT = 1; - private static final int SPOT_LIGHT = 2; - - // Flag indicates type of lights: directional, point, or spot - // lights. This flag is set based on command line argument - private static int lightType = DIRECTIONAL_LIGHT; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph(SimpleUniverse u) { - Color3f eColor = new Color3f(0.0f, 0.0f, 0.0f); - Color3f sColor = new Color3f(1.0f, 1.0f, 1.0f); - Color3f objColor = new Color3f(0.6f, 0.6f, 0.6f); - Color3f lColor1 = new Color3f(1.0f, 0.0f, 0.0f); - Color3f lColor2 = new Color3f(0.0f, 1.0f, 0.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.2f); - - Transform3D t; - - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create a bounds for the background and lights - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - Background bg = new Background(bgColor); - bg.setApplicationBounds(bounds); - objScale.addChild(bg); - - // Create a Sphere object, generate one copy of the sphere, - // and add it into the scene graph. - ShaderAppearance a = new ShaderAppearance(); - Material m = new Material(objColor, eColor, objColor, sColor, 100.0f); - m.setLightingEnable(true); - String vertexProgram = null; - String fragmentProgram = null; - try { - vertexProgram = StringIO.readFully("./simple.vert"); - fragmentProgram = StringIO.readFully("./simple.frag"); - } - catch (IOException e) { - throw new RuntimeException(e); - } - Shader[] shaders = new Shader[2]; - shaders[0] = new SourceCodeShader(Shader.SHADING_LANGUAGE_GLSL, - Shader.SHADER_TYPE_VERTEX, - vertexProgram); - shaders[1] = new SourceCodeShader(Shader.SHADING_LANGUAGE_GLSL, - Shader.SHADER_TYPE_FRAGMENT, - fragmentProgram); - ShaderProgram shaderProgram = new GLSLShaderProgram(); - shaderProgram.setShaders(shaders); - - a.setShaderProgram(shaderProgram); - a.setMaterial(m); - Sphere sph = new Sphere(1.0f, Sphere.GENERATE_NORMALS, 200, a); - objScale.addChild(sph); - - // Create the transform group node for the each light and initialize - // it to the identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add them to the root - // of the subgraph. - TransformGroup l1RotTrans = new TransformGroup(); - l1RotTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objScale.addChild(l1RotTrans); - - TransformGroup l2RotTrans = new TransformGroup(); - l2RotTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objScale.addChild(l2RotTrans); - - // Create transformations for the positional lights - t = new Transform3D(); - Vector3d lPos1 = new Vector3d(0.0, 0.0, 2.0); - t.set(lPos1); - TransformGroup l1Trans = new TransformGroup(t); - l1RotTrans.addChild(l1Trans); - - t = new Transform3D(); - Vector3d lPos2 = new Vector3d(0.5, 0.8, 2.0); - t.set(lPos2); - TransformGroup l2Trans = new TransformGroup(t); - l2RotTrans.addChild(l2Trans); - - // Create Geometry for point lights - ColoringAttributes caL1 = new ColoringAttributes(); - ColoringAttributes caL2 = new ColoringAttributes(); - caL1.setColor(lColor1); - caL2.setColor(lColor2); - Appearance appL1 = new Appearance(); - Appearance appL2 = new Appearance(); - appL1.setColoringAttributes(caL1); - appL2.setColoringAttributes(caL2); - l1Trans.addChild(new Sphere(0.05f, appL1)); - l2Trans.addChild(new Sphere(0.05f, appL2)); - - // Create lights - AmbientLight aLgt = new AmbientLight(alColor); - - Light lgt1 = null; - Light lgt2 = null; - - Point3f lPoint = new Point3f(0.0f, 0.0f, 0.0f); - Point3f atten = new Point3f(1.0f, 0.0f, 0.0f); - Vector3f lDirect1 = new Vector3f(lPos1); - Vector3f lDirect2 = new Vector3f(lPos2); - lDirect1.negate(); - lDirect2.negate(); - - switch (lightType) { - case DIRECTIONAL_LIGHT: - lgt1 = new DirectionalLight(lColor1, lDirect1); - lgt2 = new DirectionalLight(lColor2, lDirect2); - break; - case POINT_LIGHT: - lgt1 = new PointLight(lColor1, lPoint, atten); - lgt2 = new PointLight(lColor2, lPoint, atten); - break; - case SPOT_LIGHT: - lgt1 = new SpotLight(lColor1, lPoint, atten, lDirect1, - 25.0f * (float)Math.PI / 180.0f, 10.0f); - lgt2 = new SpotLight(lColor2, lPoint, atten, lDirect2, - 25.0f * (float)Math.PI / 180.0f, 10.0f); - break; - } - - // Set the influencing bounds - aLgt.setInfluencingBounds(bounds); - lgt1.setInfluencingBounds(bounds); - lgt2.setInfluencingBounds(bounds); - - // Add the lights into the scene graph - objScale.addChild(aLgt); - l1Trans.addChild(lgt1); - l2Trans.addChild(lgt2); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into the - // scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotor1Alpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - RotationInterpolator rotator1 = - new RotationInterpolator(rotor1Alpha, - l1RotTrans, - yAxis, - 0.0f, (float) Math.PI*2.0f); - rotator1.setSchedulingBounds(bounds); - l1RotTrans.addChild(rotator1); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into the - // scene graph. - Alpha rotor2Alpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 1000, 0, 0, - 0, 0, 0); - RotationInterpolator rotator2 = - new RotationInterpolator(rotor2Alpha, - l2RotTrans, - yAxis, - 0.0f, 0.0f); - bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotator2.setSchedulingBounds(bounds); - l2RotTrans.addChild(rotator2); - - // Create a position interpolator and attach it to the view - // platform - TransformGroup vpTrans = - u.getViewingPlatform().getViewPlatformTransform(); - Transform3D axisOfTranslation = new Transform3D(); - Alpha transAlpha = new Alpha(-1, - Alpha.INCREASING_ENABLE | - Alpha.DECREASING_ENABLE, - 0, 0, - 5000, 0, 0, - 5000, 0, 0); - axisOfTranslation.rotY(-Math.PI/2.0); - PositionInterpolator translator = - new PositionInterpolator(transAlpha, - vpTrans, - axisOfTranslation, - 2.0f, 3.5f); - translator.setSchedulingBounds(bounds); - objScale.addChild(translator); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public SphereGLSL() { - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - u = new SimpleUniverse(c); - BranchGroup scene = createSceneGraph(u); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - /* - // Limit the frame rate to 100 Hz - u.getViewer().getView().setMinimumFrameCycleTime(10); - */ - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows SphereGLSL to be run as an application - // as well as an applet - // - public static void main(String[] args) { - // Parse the Input Arguments - String usage = "Usage: java SphereGLSL [-point | -spot | -dir]"; - for (int i = 0; i < args.length; i++) { - if (args[i].startsWith("-")) { - if (args[i].equals("-point")) { - /* - System.out.println("Using point lights"); - lightType = POINT_LIGHT; - */ - System.out.println("Point lights not yet implemented, option ignored"); - } - else if (args[i].equals("-spot")) { - /* - System.out.println("Using spot lights"); - lightType = SPOT_LIGHT; - */ - System.out.println("Spot lights not yet implemented, option ignored"); - } - else if (args[i].equals("-dir")) { - System.out.println("Using directional lights"); - lightType = DIRECTIONAL_LIGHT; - } - else { - System.out.println(usage); - System.exit(0); - } - } - else { - System.out.println(usage); - System.exit(0); - } - } - - new MainFrame(new SphereGLSL(), 700, 700); - } -} diff --git a/src/GLSLShaderTest/aabrick.frag b/src/GLSLShaderTest/aabrick.frag deleted file mode 100644 index 7c9aab8..0000000 --- a/src/GLSLShaderTest/aabrick.frag +++ /dev/null @@ -1,55 +0,0 @@ -// -// Fragment shader for antialiased procedural bricks -// -// Authors: Dave Baldwin, Randi Rost -// based on a shader by Darwyn Peachey -// -// Copyright (c) 2002-2004 3Dlabs Inc. Ltd. -// -// See 3Dlabs-License.txt for license information -// - -uniform vec3 BrickColor; -//uniform vec3 MortarColor; -//uniform vec2 BrickSize; -//uniform vec2 BrickPct; -//uniform vec2 MortarPct; - -//const vec3 BrickColor = vec3 (1, 0.3, 0.2); -const vec3 MortarColor = vec3 (0.85, 0.86, 0.84); -const vec2 BrickSize = vec2 (0.3, 0.15); -const vec2 BrickPct = vec2 (0.9, 0.85); -const vec2 MortarPct = vec2 (0.1, 0.15); - -varying vec2 MCposition; -varying float LightIntensity; - -#define Integral(x, p, notp) ((floor(x)*(p)) + max(fract(x)-(notp), 0.0)) - -void main(void) -{ - vec2 position, fw, useBrick; - vec3 color; - - // Determine position within the brick pattern - position = MCposition / BrickSize; - - // Adjust every other row by an offset of half a brick - if (fract(position.y * 0.5) > 0.5) - position.x += 0.5; - - // Calculate filter size - //fw = fwidth(position); //fwidth not implemented on WildcatVP - fw = (abs(dFdx(MCposition)) + abs(dFdy(MCposition))) / BrickSize; - - // Perform filtering by integrating the 2D pulse made by the - // brick pattern over the filter width and height - useBrick = (Integral(position + fw, BrickPct, MortarPct) - - Integral(position, BrickPct, MortarPct)) / fw; - - // Determine final color - color = mix(MortarColor, BrickColor, useBrick.x * useBrick.y); - color *= LightIntensity; - - gl_FragColor = vec4 (color, 1.0); -} diff --git a/src/GLSLShaderTest/aabrick.vert b/src/GLSLShaderTest/aabrick.vert deleted file mode 100644 index 226dbe4..0000000 --- a/src/GLSLShaderTest/aabrick.vert +++ /dev/null @@ -1,42 +0,0 @@ -// -// Vertex shader for antialiased procedural bricks -// -// Authors: Dave Baldwin, Steve Koren, Randi Rost -// based on a shader by Darwyn Peachey -// -// Copyright (c) 2002-2004 3Dlabs Inc. Ltd. -// -// See 3Dlabs-License.txt for license information -// - -uniform vec3 LightPosition; -//const vec3 LightPosition = vec3 (0, 4, 4); - -const float SpecularContribution = 0.3; -const float DiffuseContribution = 1.0 - SpecularContribution; - -varying float LightIntensity; -varying vec2 MCposition; - -void main(void) -{ - vec3 ecPosition = vec3 (gl_ModelViewMatrix * gl_Vertex); - vec3 tnorm = normalize(gl_NormalMatrix * gl_Normal); - vec3 lightVec = normalize(LightPosition - ecPosition); - vec3 reflectVec = reflect(-lightVec, tnorm); - vec3 viewVec = normalize(-ecPosition); - float diffuse = max(dot(lightVec, tnorm), 0.0); - float spec = 0.0; - - if (diffuse > 0.0) - { - spec = max(dot(reflectVec, viewVec), 0.0); - spec = pow(spec, 16.0); - } - - LightIntensity = DiffuseContribution * diffuse + - SpecularContribution * spec; - - MCposition = gl_Vertex.xy; - gl_Position = ftransform(); -} diff --git a/src/GLSLShaderTest/build.xml b/src/GLSLShaderTest/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/GLSLShaderTest/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/GLSLShaderTest/dimple.frag b/src/GLSLShaderTest/dimple.frag deleted file mode 100644 index 282add7..0000000 --- a/src/GLSLShaderTest/dimple.frag +++ /dev/null @@ -1,61 +0,0 @@ - -// -// dimple.frag: Fragment shader for bump mapping dimples (bumps) -// -// author: John Kessenich -// -// Copyright (c) 2002: 3Dlabs, Inc. -// -// -varying vec3 LightDir; -varying vec3 EyeDir; -varying vec3 Normal; - -//const vec3 Color = vec3(0.7, 0.6, 0.18); - -//const float Density = 16.0; -//const float Size = 0.25; - -uniform vec3 Color; -uniform float Density; -uniform float Size; -// uniform float SpecularFactor; - -//float Density = 27.6; -//float Size = 0.13025; - - -//uniform float Scale; - -const float SpecularFactor = 0.4; - -void main (void) -{ - vec3 litColor; - - vec2 c = Density * (gl_TexCoord[0].xy); - vec2 p = fract(c) - vec2(0.5); - float d = (p.x * p.x) + (p.y * p.y); - if (d >= Size) - p = vec2(0.0); - - vec3 normDelta = vec3(-p.x, -p.y, 1.0); - - litColor = Color * max(0.0, dot(normDelta, LightDir)); - - float t = 2.0 * dot(LightDir, normDelta); - vec3 reflectDir = t * normDelta; - reflectDir = LightDir - reflectDir; - -// vec3 reflectDir = LightDir - 2.0 * dot(LightDir, normDelta) * normDelta; - - float spec = max(dot(EyeDir, reflectDir), 0.0); - spec = spec * spec; - spec = spec * spec; - spec *= SpecularFactor; - - litColor = min(litColor + spec, vec3(1.0)); - gl_FragColor = vec4(litColor, gl_Color.a); -// gl_FragColor = vec4(litColor, 1.0); -// gl_FragColor = vec4(Scale); -} diff --git a/src/GLSLShaderTest/dimple.vert b/src/GLSLShaderTest/dimple.vert deleted file mode 100644 index e45796b..0000000 --- a/src/GLSLShaderTest/dimple.vert +++ /dev/null @@ -1,42 +0,0 @@ - -// -// dimple.vert: Vertex shader for bump mapping dimples (bumps) -// -// author: John Kessenich -// -// Copyright (c) 2002: 3Dlabs, Inc. -// - -varying vec3 LightDir; -varying vec3 EyeDir; -varying vec3 Normal; - -uniform vec3 LightPosition; -// uniform float Scale; -// vec3 LightPosition = vec3(0.0, 0.0, 5.0); -float Scale = 1.0; - -void main(void) -{ - vec4 pos = gl_ModelViewMatrix * gl_Vertex; - gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; - vec3 eyeDir = vec3(pos); -// gl_TexCoord[0] = gl_MultiTexCoord0; - gl_TexCoord[0] = gl_Vertex; - gl_FrontColor = gl_Color; - - vec3 n = normalize(gl_NormalMatrix * gl_Normal); - vec3 t = normalize(cross(vec3(1.141, 2.78, 3.14), n)); - vec3 b = cross(n, t); - - vec3 v; - v.x = dot(LightPosition, t); - v.y = dot(LightPosition, b); - v.z = dot(LightPosition, n); - LightDir = normalize(v); - - v.x = dot(eyeDir, t); - v.y = dot(eyeDir, b); - v.z = dot(eyeDir, n); - EyeDir = normalize(v); -} diff --git a/src/GLSLShaderTest/gouraud.frag b/src/GLSLShaderTest/gouraud.frag deleted file mode 100644 index 951ee8e..0000000 --- a/src/GLSLShaderTest/gouraud.frag +++ /dev/null @@ -1,50 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -// Simple GLSL fragment program to add the primary and secondary (specular) colors - -void main() -{ - gl_FragColor = gl_Color + gl_SecondaryColor; -} diff --git a/src/GLSLShaderTest/gouraud.vert b/src/GLSLShaderTest/gouraud.vert deleted file mode 100644 index fd49c18..0000000 --- a/src/GLSLShaderTest/gouraud.vert +++ /dev/null @@ -1,100 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -// A GLSL vertex program for handling 1 directional light with specular. -// This implements per-vertex lighting (Gouraud shading). - -void directionalLight0( - in vec3 normal, - inout vec4 ambient, - inout vec4 diffuse, - inout vec4 specular) -{ - // Normalized light direction and half vector - vec3 lightDirection = normalize(vec3(gl_LightSource[0].position)); - vec3 halfVector = normalize(vec3(gl_LightSource[0].halfVector)); - - float nDotVP; // normal . light_direction - float nDotHV; // normal . light_half_vector - float pf; // power factor - - nDotVP = max(0.0, dot(normal, lightDirection)); - nDotHV = max(0.0, dot(normal, halfVector)); - - if (nDotVP == 0.0) { - pf = 0.0; - } - else { - pf = pow(nDotHV, gl_FrontMaterial.shininess); - } - - ambient += gl_LightSource[0].ambient; - diffuse += gl_LightSource[0].diffuse * nDotVP; - specular += gl_LightSource[0].specular * pf; -} - - -void main() -{ - vec3 tnorm = normalize(vec3(gl_NormalMatrix * gl_Normal)); - vec4 amb = vec4(0.0); - vec4 diff = vec4(0.0); - vec4 spec = vec4(0.0); - int i; - - // Transform the vertex - vec4 outPosition = gl_ModelViewProjectionMatrix * gl_Vertex; - - directionalLight0(tnorm, amb, diff, spec); - - // Apply the result of the lighting equation - vec4 outSecondaryColor = vec4(vec3(spec * gl_FrontMaterial.specular), 1.0); - vec4 outColor = vec4(vec3(gl_FrontLightModelProduct.sceneColor + - amb * gl_FrontMaterial.ambient + - diff * gl_FrontMaterial.diffuse), 1.0); - - gl_FrontColor = outColor; - gl_FrontSecondaryColor = outSecondaryColor; - gl_Position = outPosition; -} diff --git a/src/GLSLShaderTest/phong.frag b/src/GLSLShaderTest/phong.frag deleted file mode 100644 index 41de179..0000000 --- a/src/GLSLShaderTest/phong.frag +++ /dev/null @@ -1,98 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -// A GLSL fragment program for handling 1 directional light with specular. -// This implements per-pixel lighting (Phong shading) - -void directionalLight0( - in vec3 normal, - inout vec4 ambient, - inout vec4 diffuse, - inout vec4 specular) -{ - // Normalized light direction and half vector - vec3 lightDirection = normalize(vec3(gl_LightSource[0].position)); - vec3 halfVector = normalize(vec3(gl_LightSource[0].halfVector)); - - float nDotVP; // normal . light_direction - float nDotHV; // normal . light_half_vector - float pf; // power factor - - nDotVP = max(0.0, dot(normal, lightDirection)); - nDotHV = max(0.0, dot(normal, halfVector)); - - if (nDotVP == 0.0) { - pf = 0.0; - } - else { - pf = pow(nDotHV, gl_FrontMaterial.shininess); - } - - ambient += gl_LightSource[0].ambient; - diffuse += gl_LightSource[0].diffuse * nDotVP; - specular += gl_LightSource[0].specular * pf; -} - - -// Per-pixel normal (input from vertex shader) -varying vec3 Normal; - -void main() -{ - vec3 unitNorm = normalize(Normal); - vec4 amb = vec4(0.0); - vec4 diff = vec4(0.0); - vec4 spec = vec4(0.0); - int i; - - directionalLight0(unitNorm, amb, diff, spec); - - // Apply the result of the lighting equation - vec4 secondaryColor = vec4(vec3(spec * gl_FrontMaterial.specular), 1.0); - vec4 color = vec4(vec3(gl_FrontLightModelProduct.sceneColor + - amb * gl_FrontMaterial.ambient + - diff * gl_FrontMaterial.diffuse), 1.0); - - gl_FragColor = color + secondaryColor; -} diff --git a/src/GLSLShaderTest/phong.vert b/src/GLSLShaderTest/phong.vert deleted file mode 100644 index 9a67c8b..0000000 --- a/src/GLSLShaderTest/phong.vert +++ /dev/null @@ -1,56 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -// A GLSL vertex program for doing Phone shading (per-fragment lighting) - -// Per-pixel normal (output to fragment shader) -varying vec3 Normal; - -void main() -{ - Normal = normalize(vec3(gl_NormalMatrix * gl_Normal)); - - // Transform the vertex - gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; -} diff --git a/src/GLSLShaderTest/polkadot3d.frag b/src/GLSLShaderTest/polkadot3d.frag deleted file mode 100644 index b341454..0000000 --- a/src/GLSLShaderTest/polkadot3d.frag +++ /dev/null @@ -1,48 +0,0 @@ -// -// Fragment shader for 3 dimensional polka dot shader. -// -// Author: Joshua Doss -// -// Copyright (C) 2002-2004 3Dlabs Inc. Ltd. -// -// See 3Dlabs-License.txt for license information -// -varying float LightIntensity; -varying vec3 MCPosition; - -//Create uniform variables so dots can be spaced and scaled by user -//uniform vec3 Spacing; -//uniform float DotSize; -const vec3 Spacing = vec3 (0.314, 0.36, 0.261); -const float DotSize = 0.123; - -//Create colors as uniform variables so they can be easily changed -//uniform vec3 ModelColor, PolkaDotColor; -const vec3 ModelColor = vec3 (0.75, 0.2, 0.1); -const vec3 PolkaDotColor = vec3 (1, 1, 1); - -void main(void) -{ - float insidesphere, sphereradius, scaledpointlength; - vec3 scaledpoint, finalcolor; - - // Scale the coordinate system - // The following line of code is not yet implemented in current drivers: - // mcpos = mod(Spacing, MCposition); - // We will use a workaround found below for now - scaledpoint = MCPosition - (Spacing * floor(MCPosition/Spacing)); - - // Bring the scaledpoint vector into the center of the scaled coordinate system - scaledpoint = scaledpoint - Spacing/2.0; - - // Find the length of the scaledpoint vector and compare it to the dotsize - scaledpointlength = length(scaledpoint); - insidesphere = step(scaledpointlength,DotSize); - - // Determine final output color before lighting - finalcolor = vec3(mix(ModelColor, PolkaDotColor, insidesphere)); - - // Output final color and factor in lighting - gl_FragColor = clamp((vec4( finalcolor, 1.0 ) * LightIntensity), vec4(0.0), vec4(1.0)); -} - diff --git a/src/GLSLShaderTest/polkadot3d.vert b/src/GLSLShaderTest/polkadot3d.vert deleted file mode 100644 index 86f432f..0000000 --- a/src/GLSLShaderTest/polkadot3d.vert +++ /dev/null @@ -1,58 +0,0 @@ -// This is the Vertex Shader for three dimensional polka dots. -// -// author(s): Joshua Doss -// -// Copyright (C) 2002-2004 3Dlabs Inc. Ltd. - -//Create uniform variables for lighting to allow user interaction -//uniform float SpecularContribution; -//uniform vec3 LightPosition; - -const float SpecularContribution = 0.36; -const vec3 LightPosition = vec3 (0, 4, 5); - -varying vec3 MCPosition; -varying float LightIntensity; - -void main(void) -{ - float diffusecontribution = 1.0 - SpecularContribution; - - // compute the vertex position in eye coordinates - vec3 ecPosition = vec3(gl_ModelViewMatrix * gl_Vertex); - - // compute the transformed normal - vec3 tnorm = normalize(gl_NormalMatrix * gl_Normal); - - // compute a vector from the model to the light position - vec3 lightVec = normalize(LightPosition - ecPosition); - - // compute the reflection vector - vec3 reflectVec = reflect(-lightVec, tnorm); - - // compute a unit vector in direction of viewing position - vec3 viewVec = normalize(-ecPosition); - - // calculate amount of diffuse light based on normal and light angle - float diffuse = max(dot(lightVec, tnorm), 0.0); - float spec = 0.0; - - // if there is diffuse lighting, calculate specular - if(diffuse > 0.0) - { - spec = max(dot(reflectVec, viewVec), 0.0); - spec = pow(spec, 16.0); - } - - // add up the light sources, since this is a varying (global) it will pass to frag shader - LightIntensity = diffusecontribution * diffuse * 1.5 + - SpecularContribution * spec; - - // the varying variable MCPosition will be used by the fragment shader to determine where - // in model space the current pixel is - MCPosition = vec3 (gl_Vertex); - - // send vertex information - gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; -} - diff --git a/src/GLSLShaderTest/simple.frag b/src/GLSLShaderTest/simple.frag deleted file mode 100644 index 6542b34..0000000 --- a/src/GLSLShaderTest/simple.frag +++ /dev/null @@ -1,62 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -// Simple GLSL fragment program to attenuate the input fragment color as a -// function of the distance of the fragment position from the center -// of the window - -const float windowSize = 700.0; // TODO: this should be a built-in parameter! - -void main() -{ - // Compute distance from center in range [0.0, 1.0] - vec2 dist = min(abs((gl_FragCoord.xy - (windowSize)/2.0) / windowSize), 1.0); - vec2 invDist = 1.0 - dist; - - // Compute attenuation - float atten = invDist.x * invDist.y; - vec4 outcolor = (gl_Color + gl_SecondaryColor) * atten; - - gl_FragColor = outcolor; -} diff --git a/src/GLSLShaderTest/simple.vert b/src/GLSLShaderTest/simple.vert deleted file mode 100644 index 7d3e152..0000000 --- a/src/GLSLShaderTest/simple.vert +++ /dev/null @@ -1,129 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -// A simple GLSL vertex program for handling 2 directional lights with -// separate specular - -void directionalLight( - in int i, - in vec3 normal, - inout vec4 ambient, - inout vec4 diffuse, - inout vec4 specular) -{ - // Normalized light direction and half vector - // (shouldn't they be pre-normalized?!) - vec3 lightDirection = normalize(vec3(gl_LightSource[i].position)); - vec3 halfVector = normalize(vec3(gl_LightSource[i].halfVector)); - - float nDotVP; // normal . light_direction - float nDotHV; // normal . light_half_vector - float pf; // power factor - - nDotVP = max(0.0, dot(normal, lightDirection)); - nDotHV = max(0.0, dot(normal, halfVector)); - - if (nDotVP == 0.0) { - pf = 0.0; - } - else { - pf = pow(nDotHV, gl_FrontMaterial.shininess); - } - - ambient += gl_LightSource[i].ambient; - diffuse += gl_LightSource[i].diffuse * nDotVP; - specular += gl_LightSource[i].specular * pf; -} - - -const int numEnabledLights = 2; // TODO: this should be a built-in parameter! - -void main() -{ - //vec4 ecPosition = gl_ModelViewMatrix * gl_Vertex; - //vec3 ecPosition3 = ecPosition.xyz / ecPosition.w; - vec3 tnorm = normalize(vec3(gl_NormalMatrix * gl_Normal)); - vec4 amb = vec4(0.0); - vec4 diff = vec4(0.0); - vec4 spec = vec4(0.0); - int i; - - // Transform the vertex - vec4 outPosition = gl_ModelViewProjectionMatrix * gl_Vertex; - - for (i = 0; i < numEnabledLights; i++) { - directionalLight(i, tnorm, amb, diff, spec); - } - - // Apply the result of the lighting equation - vec4 outSecondaryColor = vec4(vec3(spec * gl_FrontMaterial.specular), 1.0); - vec3 color0 = vec3(gl_FrontLightModelProduct.sceneColor + - amb * gl_FrontMaterial.ambient + - diff * gl_FrontMaterial.diffuse); - - // Generate a pseudo-random noise pattern - vec3 xyz = clamp((outPosition.xyz + 1.0) * 0.5, 0.0, 1.0); - - xyz = fract(xyz * 262144.0); - float randSeed = fract(3.0 * xyz.x + 5.0 * xyz.y + 7.0 * xyz.z); - - vec3 altColor; - - randSeed = fract(37.0 * randSeed); - altColor.x = randSeed * 0.5 + 0.5; - randSeed = fract(37.0 * randSeed); - altColor.y = randSeed * 0.5 + 0.5; - randSeed = fract(37.0 * randSeed); - altColor.z = randSeed * 0.5 + 0.5; - randSeed = fract(37.0 * randSeed); - float altAlpha = randSeed * 0.5; - - // Apply noise and output final vertex color - vec4 outColor; - outColor = vec4(mix(color0, altColor, altAlpha), 1.0); - - gl_FrontColor = outColor; - gl_FrontSecondaryColor = outSecondaryColor; - gl_Position = outPosition; -} diff --git a/src/GLSLShaderTest/toon.frag b/src/GLSLShaderTest/toon.frag deleted file mode 100644 index fa50453..0000000 --- a/src/GLSLShaderTest/toon.frag +++ /dev/null @@ -1,34 +0,0 @@ -// -// Fragment shader for cartoon-style shading -// -// Author: Philip Rideout -// -// Copyright (c) 2004 3Dlabs Inc. Ltd. -// -// See 3Dlabs-License.txt for license information -// - -//uniform vec3 DiffuseColor; -//uniform vec3 PhongColor; -//uniform float Edge; -//uniform float Phong; - -vec3 DiffuseColor = vec3(0.5,0.5,1.0); -vec3 PhongColor = vec3(0.75,0.75,1.0); -float Edge = 0.64; -float Phong = 0.90; - -varying vec3 Normal; -varying vec3 LightDir; - -void main (void) -{ - vec3 color = DiffuseColor; - float f = max( 0.0, dot(LightDir,Normal)); - if (abs(f) < Edge) - color = DiffuseColor * 0.2; - if (f > Phong) - color = PhongColor; - - gl_FragColor = vec4(color, 1); -} diff --git a/src/GLSLShaderTest/toon.vert b/src/GLSLShaderTest/toon.vert deleted file mode 100644 index d044af7..0000000 --- a/src/GLSLShaderTest/toon.vert +++ /dev/null @@ -1,19 +0,0 @@ -// -// Vertex shader for cartoon-style shading -// -// Author: Philip Rideout -// -// Copyright (c) 2004 3Dlabs Inc. Ltd. -// -// See 3Dlabs-License.txt for license information -// - -varying vec3 Normal; -varying vec3 LightDir; - -void main(void) -{ - Normal = normalize(gl_NormalMatrix * gl_Normal); - gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; - LightDir = vec3(normalize(gl_LightSource[0].position)); -} diff --git a/src/GLSLShaderTest/wood.frag b/src/GLSLShaderTest/wood.frag deleted file mode 100644 index eecf91f..0000000 --- a/src/GLSLShaderTest/wood.frag +++ /dev/null @@ -1,66 +0,0 @@ -// -// Simple fragment shader for wood -// -// Author: John Kessenich -// -// Copyright (c) 2002-2004 3Dlabs Inc. Ltd. -// -// See 3Dlabs-License.txt for license information -// - -//uniform float GrainSizeRecip; -//uniform vec3 DarkColor; -//uniform vec3 spread; -const float GrainSizeRecip = 1.0; -const vec3 DarkColor = vec3 (0.6, 0.3, 0.1); -const vec3 spread = vec3 (0.15, 0.075, 0.0); - -varying float lightIntensity; -varying vec3 Position; - -void main (void) -{ - // - // cheap noise - // - vec3 location = Position; - vec3 floorvec = vec3(floor(10.0 * Position.x), 0.0, floor(10.0 * Position.z)); - vec3 noise = Position * 10.0 - floorvec - 0.5; - noise *= noise; - location += noise * 0.12; - - // - // distance from axis - // - float dist = location.x * location.x + location.z * location.z; - float grain = dist * GrainSizeRecip; - - // - // grain effects as function of distance - // - float brightness = fract(grain); - if (brightness > 0.5) - brightness = (1.0 - brightness); - vec3 color = DarkColor + brightness * spread; - - brightness = fract(grain * 7.0); - if (brightness > 0.5) - brightness = 1.0 - brightness; - color -= brightness * spread; - - // - // also as a function of lines parallel to the axis - // - brightness = fract(grain * 47.0) * 0.60; - float line = fract(Position.z + Position.x); - float snap = floor(line * 20.0) * (1.0/20.0); - if (line < snap + 0.006) - color -= brightness * spread; - - // - // apply lighting effects from vertex processor - // - color = clamp(color * lightIntensity, 0.0, 1.0); - - gl_FragColor = vec4(color, 1.0); -} diff --git a/src/GLSLShaderTest/wood.vert b/src/GLSLShaderTest/wood.vert deleted file mode 100644 index 84651aa..0000000 --- a/src/GLSLShaderTest/wood.vert +++ /dev/null @@ -1,25 +0,0 @@ -// -// Simple vertex shader for wood -// -// Author: John Kessenich -// -// Copyright (c) 2002-2004 3Dlabs Inc. Ltd. -// -// See 3Dlabs-License.txt for license information -// - -varying float lightIntensity; -varying vec3 Position; -//uniform vec3 LightPosition; -//uniform float Scale; -const vec3 LightPosition = vec3 (0.0,0.0,0.4); -const float Scale = 1.0; - -void main(void) -{ - vec4 pos = gl_ModelViewMatrix * gl_Vertex; - Position = vec3(gl_Vertex) * Scale; - vec3 tnorm = normalize(gl_NormalMatrix * gl_Normal); - lightIntensity = max(dot(normalize(LightPosition - vec3(pos)), tnorm), 0.0) * 1.5; - gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; -} diff --git a/src/GearTest/Gear.java b/src/GearTest/Gear.java deleted file mode 100644 index 3a96325..0000000 --- a/src/GearTest/Gear.java +++ /dev/null @@ -1,397 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.lang.Math.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class Gear extends javax.media.j3d.TransformGroup { - - // Specifiers determining whether to generate outward facing normals or - // inward facing normals. - static final int OutwardNormals = 1; - static final int InwardNormals = -1; - - // The number of teeth in the gear - int toothCount; - - // Gear start differential angle. All gears are constructed with the - // center of a tooth at Z-axis angle = 0. - double gearStartAngle; - // The Z-rotation angle to place the tooth center at theta = 0 - float toothTopCenterAngle; - // The Z-rotation angle to place the valley center at theta = 0 - float valleyCenterAngle; - // The angle about Z subtended by one tooth and its associated valley - float circularPitchAngle; - - // Increment angles - float toothValleyAngleIncrement; - - // Front and rear facing normals for the gear's body - final Vector3f frontNormal = new Vector3f(0.0f, 0.0f, -1.0f); - final Vector3f rearNormal = new Vector3f(0.0f, 0.0f, 1.0f); - - - Gear(int toothCount) { - this.toothCount = toothCount; - } - - void addBodyDisks(float shaftRadius, float bodyOuterRadius, - float thickness, Appearance look) { - int gearBodySegmentVertexCount; // #(segments) per tooth-unit - int gearBodyTotalVertexCount; // #(vertices) in a gear face - int gearBodyStripCount[] = new int[1]; // per strip (1) vertex count - - // A ray from the gear center, used in normal calculations - float xDirection, yDirection; - - // The x and y coordinates at each point of a facet and at each - // point on the gear: at the shaft, the root of the teeth, and - // the outer point of the teeth - float xRoot0, yRoot0, xShaft0, yShaft0; - float xRoot3, yRoot3, xShaft3, yShaft3; - float xRoot4, yRoot4, xShaft4, yShaft4; - - // Temporary variables for storing coordinates and vectors - Point3f coordinate = new Point3f(0.0f, 0.0f, 0.0f); - - // Gear start differential angle. All gears are constructed with the - // center of a tooth at Z-axis angle = 0. - double gearStartAngle = -1.0 * toothTopCenterAngle; - - // Temporaries that store start angle for each portion of tooth facet - double toothStartAngle, toothTopStartAngle, - toothDeclineStartAngle, toothValleyStartAngle, - nextToothStartAngle; - - Shape3D newShape; - int index; - - // The z coordinates for the body disks - final float frontZ = -0.5f * thickness; - final float rearZ = 0.5f * thickness; - - /* Construct the gear's front body (front facing torus disk) - * __2__ - * - | - 4 - * - /| /- - * / / | /| \ - * 0\ / | / / > - * \ / | / | > - * \ / | / / | - * \ / ____|/ | > - * \-- --__/ | - * 1 3 5 - * - */ - gearBodySegmentVertexCount = 4; - gearBodyTotalVertexCount = 2 + gearBodySegmentVertexCount * toothCount; - gearBodyStripCount[0] = gearBodyTotalVertexCount; - - TriangleStripArray frontGearBody - = new TriangleStripArray(gearBodyTotalVertexCount, - GeometryArray.COORDINATES - | GeometryArray.NORMALS, - gearBodyStripCount); - - xDirection = (float)Math.cos(gearStartAngle); - yDirection = (float)Math.sin(gearStartAngle); - xShaft0 = shaftRadius * xDirection; - yShaft0 = shaftRadius * yDirection; - xRoot0 = bodyOuterRadius * xDirection; - yRoot0 = bodyOuterRadius * yDirection; - - coordinate.set(xRoot0, yRoot0, frontZ); - frontGearBody.setCoordinate(0, coordinate); - frontGearBody.setNormal(0, frontNormal); - - coordinate.set(xShaft0, yShaft0, frontZ); - frontGearBody.setCoordinate(1, coordinate); - frontGearBody.setNormal(1, frontNormal); - - for(int count = 0; count < toothCount; count++) { - index = 2 + count * 4; - toothStartAngle - = gearStartAngle + circularPitchAngle * (double)count; - toothValleyStartAngle - = toothStartAngle + toothValleyAngleIncrement; - nextToothStartAngle = toothStartAngle + circularPitchAngle; - - xDirection = (float)Math.cos(toothValleyStartAngle); - yDirection = (float)Math.sin(toothValleyStartAngle); - xShaft3 = shaftRadius * xDirection; - yShaft3 = shaftRadius * yDirection; - xRoot3 = bodyOuterRadius * xDirection; - yRoot3 = bodyOuterRadius * yDirection; - - xDirection = (float)Math.cos(nextToothStartAngle); - yDirection = (float)Math.sin(nextToothStartAngle); - xShaft4 = shaftRadius * xDirection; - yShaft4 = shaftRadius * yDirection; - xRoot4 = bodyOuterRadius * xDirection; - yRoot4 = bodyOuterRadius * yDirection; - - coordinate.set(xRoot3, yRoot3, frontZ); - frontGearBody.setCoordinate(index, coordinate); - frontGearBody.setNormal(index, frontNormal); - - coordinate.set(xShaft3, yShaft3, frontZ); - frontGearBody.setCoordinate(index + 1, coordinate); - frontGearBody.setNormal(index + 1, frontNormal); - - coordinate.set(xRoot4, yRoot4, frontZ); - frontGearBody.setCoordinate(index + 2, coordinate); - frontGearBody.setNormal(index + 2, frontNormal); - - coordinate.set(xShaft4, yShaft4, frontZ); - frontGearBody.setCoordinate(index + 3, coordinate); - frontGearBody.setNormal(index + 3, frontNormal); - } - newShape = new Shape3D(frontGearBody, look); - this.addChild(newShape); - - // Construct the gear's rear body (rear facing torus disc) - TriangleStripArray rearGearBody - = new TriangleStripArray(gearBodyTotalVertexCount, - GeometryArray.COORDINATES - | GeometryArray.NORMALS, - gearBodyStripCount); - xDirection = (float)Math.cos(gearStartAngle); - yDirection = (float)Math.sin(gearStartAngle); - xShaft0 = shaftRadius * xDirection; - yShaft0 = shaftRadius * yDirection; - xRoot0 = bodyOuterRadius * xDirection; - yRoot0 = bodyOuterRadius * yDirection; - - coordinate.set(xShaft0, yShaft0, rearZ); - rearGearBody.setCoordinate(0, coordinate); - rearGearBody.setNormal(0, rearNormal); - - coordinate.set(xRoot0, yRoot0, rearZ); - rearGearBody.setCoordinate(1, coordinate); - rearGearBody.setNormal(1, rearNormal); - - for(int count = 0; count < toothCount; count++) { - index = 2 + count * 4; - toothStartAngle - = gearStartAngle + circularPitchAngle * (double)count; - toothValleyStartAngle - = toothStartAngle + toothValleyAngleIncrement; - nextToothStartAngle = toothStartAngle + circularPitchAngle; - - xDirection = (float)Math.cos(toothValleyStartAngle); - yDirection = (float)Math.sin(toothValleyStartAngle); - xShaft3 = shaftRadius * xDirection; - yShaft3 = shaftRadius * yDirection; - xRoot3 = bodyOuterRadius * xDirection; - yRoot3 = bodyOuterRadius * yDirection; - - xDirection = (float)Math.cos(nextToothStartAngle); - yDirection = (float)Math.sin(nextToothStartAngle); - xShaft4 = shaftRadius * xDirection; - yShaft4 = shaftRadius * yDirection; - xRoot4 = bodyOuterRadius * xDirection; - yRoot4 = bodyOuterRadius * yDirection; - - coordinate.set(xShaft3, yShaft3, rearZ); - rearGearBody.setCoordinate(index, coordinate); - rearGearBody.setNormal(index, rearNormal); - - coordinate.set(xRoot3, yRoot3, rearZ); - rearGearBody.setCoordinate(index + 1, coordinate); - rearGearBody.setNormal(index + 1, rearNormal); - - coordinate.set(xShaft4, yShaft4, rearZ); - rearGearBody.setCoordinate(index + 2, coordinate); - rearGearBody.setNormal(index + 2, rearNormal); - - coordinate.set(xRoot4, yRoot4, rearZ); - rearGearBody.setCoordinate(index + 3, coordinate); - rearGearBody.setNormal(index + 3, rearNormal); - - } - newShape = new Shape3D(rearGearBody, look); - this.addChild(newShape); - } - - void addCylinderSkins(float shaftRadius, float length, - int normalDirection, Appearance look) { - int insideShaftVertexCount; // #(vertices) for shaft - int insideShaftStripCount[] = new int[1]; // #(vertices) in strip/strip - double toothStartAngle, nextToothStartAngle, toothValleyStartAngle; - - // A ray from the gear center, used in normal calculations - float xDirection, yDirection; - - // The z coordinates for the body disks - final float frontZ = -0.5f * length; - final float rearZ = 0.5f * length; - - // Temporary variables for storing coordinates, points, and vectors - float xShaft3, yShaft3, xShaft4, yShaft4; - Point3f coordinate = new Point3f(0.0f, 0.0f, 0.0f); - Vector3f surfaceNormal = new Vector3f(); - - Shape3D newShape; - int index; - int firstIndex; - int secondIndex; - - - /* - * Construct gear's inside shaft cylinder - * First the tooth's up, flat outer, and down distances - * Second the tooth's flat inner distance - * - * Outward facing vertex order: - * 0_______2____4 - * | /| /| - * | / | / | - * | / | / | - * |/______|/___| - * 1 3 5 - * - * Inward facing vertex order: - * 1_______3____5 - * |\ |\ | - * | \ | \ | - * | \ | \ | - * |______\|___\| - * 0 2 4 - */ - insideShaftVertexCount = 4 * toothCount + 2; - insideShaftStripCount[0] = insideShaftVertexCount; - - TriangleStripArray insideShaft - = new TriangleStripArray(insideShaftVertexCount, - GeometryArray.COORDINATES - | GeometryArray.NORMALS, - insideShaftStripCount); - xShaft3 = shaftRadius * (float)Math.cos(gearStartAngle); - yShaft3 = shaftRadius * (float)Math.sin(gearStartAngle); - - if (normalDirection == OutwardNormals) { - surfaceNormal.set(1.0f, 0.0f, 0.0f); - firstIndex = 1; - secondIndex = 0; - } else { - surfaceNormal.set(-1.0f, 0.0f, 0.0f); - firstIndex = 0; - secondIndex = 1; - } - - // Coordinate labeled 0 in the strip - coordinate.set(shaftRadius, 0.0f, frontZ); - insideShaft.setCoordinate(firstIndex, coordinate); - insideShaft.setNormal(firstIndex, surfaceNormal); - - // Coordinate labeled 1 in the strip - coordinate.set(shaftRadius, 0.0f, rearZ); - insideShaft.setCoordinate(secondIndex, coordinate); - insideShaft.setNormal(secondIndex, surfaceNormal); - - for(int count = 0; count < toothCount; count++) { - index = 2 + count * 4; - - toothStartAngle = circularPitchAngle * (double)count; - toothValleyStartAngle - = toothStartAngle + toothValleyAngleIncrement; - nextToothStartAngle = toothStartAngle + circularPitchAngle; - - xDirection = (float)Math.cos(toothValleyStartAngle); - yDirection = (float)Math.sin(toothValleyStartAngle); - xShaft3 = shaftRadius * xDirection; - yShaft3 = shaftRadius * yDirection; - if (normalDirection == OutwardNormals) - surfaceNormal.set(xDirection, yDirection, 0.0f); - else - surfaceNormal.set(-xDirection, -yDirection, 0.0f); - - // Coordinate labeled 2 in the strip - coordinate.set(xShaft3, yShaft3, frontZ); - insideShaft.setCoordinate(index + firstIndex, coordinate); - insideShaft.setNormal(index + firstIndex, surfaceNormal); - - // Coordinate labeled 3 in the strip - coordinate.set(xShaft3, yShaft3, rearZ); - insideShaft.setCoordinate(index + secondIndex, coordinate); - insideShaft.setNormal(index + secondIndex, surfaceNormal); - - xDirection = (float)Math.cos(nextToothStartAngle); - yDirection = (float)Math.sin(nextToothStartAngle); - xShaft4 = shaftRadius * xDirection; - yShaft4 = shaftRadius * yDirection; - if (normalDirection == OutwardNormals) - surfaceNormal.set(xDirection, yDirection, 0.0f); - else - surfaceNormal.set(-xDirection, -yDirection, 0.0f); - - // Coordinate labeled 4 in the strip - coordinate.set(xShaft4, yShaft4, frontZ); - insideShaft.setCoordinate(index + 2 + firstIndex, coordinate); - insideShaft.setNormal(index + 2 + firstIndex, surfaceNormal); - - // Coordinate labeled 5 in the strip - coordinate.set(xShaft4, yShaft4, rearZ); - insideShaft.setCoordinate(index + 2 + secondIndex, coordinate); - insideShaft.setNormal(index + 2 + secondIndex, surfaceNormal); - - } - newShape = new Shape3D(insideShaft, look); - this.addChild(newShape); - } - - public float getToothTopCenterAngle() { - return toothTopCenterAngle; - } - - public float getValleyCenterAngle() { - return valleyCenterAngle; - } - - public float getCircularPitchAngle() { - return circularPitchAngle; - } -} diff --git a/src/GearTest/GearBox.html b/src/GearTest/GearBox.html deleted file mode 100644 index 0137867..0000000 --- a/src/GearTest/GearBox.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>GearBox</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="GearBox.class" width=700 height=700> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/GearTest/GearBox.java b/src/GearTest/GearBox.java deleted file mode 100644 index ab946e6..0000000 --- a/src/GearTest/GearBox.java +++ /dev/null @@ -1,354 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.behaviors.mouse.*; -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.lang.Integer; -import com.sun.j3d.utils.behaviors.vp.*; - -public class GearBox extends Applet { - - static final int defaultToothCount = 48; - private int toothCount; - private SimpleUniverse u = null; - - public BranchGroup createGearBox(int toothCount) { - Transform3D tempTransform = new Transform3D(); - - // Create the root of the branch graph - BranchGroup branchRoot = createBranchEnvironment(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - branchRoot.addChild(objScale); - - // Create an Appearance. - Appearance look = new Appearance(); - Color3f objColor = new Color3f(0.5f, 0.5f, 0.6f); - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - look.setMaterial(new Material(objColor, black, - objColor, white, 100.0f)); - - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup gearboxTrans = new TransformGroup(); - gearboxTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - gearboxTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - objScale.addChild(gearboxTrans); - - // Create a bounds for the mouse behavior methods - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Define the shaft base information - int shaftCount = 4; - int secondsPerRevolution = 8000; - - // Create the Shaft(s) - Shaft shafts[] = new Shaft[shaftCount]; - TransformGroup shaftTGs[] = new TransformGroup[shaftCount]; - Alpha shaftAlphas[] = new Alpha[shaftCount]; - RotationInterpolator shaftRotors[] - = new RotationInterpolator[shaftCount]; - Transform3D shaftAxis[] = new Transform3D[shaftCount]; - - // Note: the following arrays we're incorporated to make changing - // the gearbox easier. - float shaftRatios[] = new float[shaftCount]; - shaftRatios[0] = 1.0f; - shaftRatios[1] = 0.5f; - shaftRatios[2] = 0.75f; - shaftRatios[3] = 5.0f; - - float shaftRadius[] = new float[shaftCount]; - shaftRadius[0] = 0.2f; - shaftRadius[1] = 0.2f; - shaftRadius[2] = 0.2f; - shaftRadius[3] = 0.2f; - - float shaftLength[] = new float[shaftCount]; - shaftLength[0] = 1.8f; - shaftLength[1] = 0.8f; - shaftLength[2] = 0.8f; - shaftLength[3] = 0.8f; - - float shaftDirection[] = new float[shaftCount]; - shaftDirection[0] = 1.0f; - shaftDirection[1] = -1.0f; - shaftDirection[2] = 1.0f; - shaftDirection[3] = -1.0f; - - Vector3d shaftPlacement[] = new Vector3d[shaftCount]; - shaftPlacement[0] = new Vector3d(-0.75, -0.9, 0.0); - shaftPlacement[1] = new Vector3d(0.75, -0.9, 0.0); - shaftPlacement[2] = new Vector3d(0.75, 0.35, 0.0); - shaftPlacement[3] = new Vector3d(-0.75, 0.60, -0.7); - - // Create the shafts. - for(int i = 0; i < shaftCount; i++) { - shafts[i] = new Shaft(shaftRadius[i], shaftLength[i], 25, look); - } - - // Create a transform group node for placing each shaft - for(int i = 0; i < shaftCount; i++) { - shaftTGs[i] = new TransformGroup(); - gearboxTrans.addChild(shaftTGs[i]); - shaftTGs[i].getTransform(tempTransform); - tempTransform.setTranslation(shaftPlacement[i]); - shaftTGs[i].setTransform(tempTransform); - shaftTGs[i].addChild(shafts[i]); - } - - // Add rotation interpolators to rotate the shaft in the appropriate - // direction and at the appropriate rate - for(int i = 0; i < shaftCount; i++) { - shaftAlphas[i] = new Alpha(-1, Alpha.INCREASING_ENABLE, 0, 0, - (long)(secondsPerRevolution - * shaftRatios[i]), - 0, 0, - 0, 0, 0); - shaftAxis[i] = new Transform3D(); - shaftAxis[i].rotX(Math.PI/2.0); - shaftRotors[i] - = new RotationInterpolator(shaftAlphas[i], shafts[i], - shaftAxis[i], - 0.0f, - shaftDirection[i] * - (float) Math.PI * 2.0f); - shaftRotors[i].setSchedulingBounds(bounds); - shaftTGs[i].addChild(shaftRotors[i]); - } - - // Define the gear base information. Again, these arrays exist to - // make the process of changing the GearBox via an editor faster - int gearCount = 5; - float valleyToCircularPitchRatio = .15f; - float pitchCircleRadius = 1.0f; - float addendum = 0.05f; - float dedendum = 0.05f; - float gearThickness = 0.3f; - float toothTipThickness = 0.27f; - - // Create an array of gears and their associated information - SpurGear gears[] = new SpurGear[gearCount]; - TransformGroup gearTGs[] = new TransformGroup[gearCount]; - - int gearShaft[] = new int[gearCount]; - gearShaft[0] = 0; - gearShaft[1] = 1; - gearShaft[2] = 2; - gearShaft[3] = 0; - gearShaft[4] = 3; - - float ratio[] = new float[gearCount]; - ratio[0] = 1.0f; - ratio[1] = 0.5f; - ratio[2] = 0.75f; - ratio[3] = 0.25f; - ratio[4] = 1.25f; - - Vector3d placement[] = new Vector3d[gearCount]; - placement[0] = new Vector3d(0.0, 0.0, 0.0); - placement[1] = new Vector3d(0.0, 0.0, 0.0); - placement[2] = new Vector3d(0.0, 0.0, 0.0); - placement[3] = new Vector3d(0.0, 0.0, -0.7); - placement[4] = new Vector3d(0.0, 0.0, 0.0); - - // Create the gears. - for(int i = 0; i < gearCount; i++) { - gears[i] - = new SpurGearThinBody(((int)((float)toothCount * ratio[i])), - pitchCircleRadius * ratio[i], - shaftRadius[0], - addendum, dedendum, - gearThickness, - toothTipThickness, - valleyToCircularPitchRatio, look); - } - - // Create a transform group node for arranging the gears on a shaft - // and attach the gear to its associated shaft - for(int i = 0; i < gearCount; i++) { - gearTGs[i] = new TransformGroup(); - gearTGs[i].getTransform(tempTransform); - tempTransform.rotZ((shaftDirection[gearShaft[i]] == -1.0) ? - gears[i].getCircularPitchAngle()/-2.0f : - 0.0f); - tempTransform.setTranslation(placement[i]); - gearTGs[i].setTransform(tempTransform); - gearTGs[i].addChild(gears[i]); - shafts[gearShaft[i]].addChild(gearTGs[i]); - } - - // Have Java 3D perform optimizations on this scene graph. - branchRoot.compile(); - - return branchRoot; - } - - BranchGroup createBranchEnvironment(){ - // Create the root of the branch graph - BranchGroup branchRoot = new BranchGroup(); - - // Create a bounds for the background and lights - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.5f); - Background bgNode = new Background(bgColor); - bgNode.setApplicationBounds(bounds); - branchRoot.addChild(bgNode); - - // Set up the ambient light - Color3f ambientColor = new Color3f(0.1f, 0.1f, 0.1f); - AmbientLight ambientLightNode = new AmbientLight(ambientColor); - ambientLightNode.setInfluencingBounds(bounds); - branchRoot.addChild(ambientLightNode); - - // Set up the directional lights - Color3f light1Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light1Direction = new Vector3f(1.0f, 1.0f, 1.0f); - Color3f light2Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light2Direction = new Vector3f(-1.0f, -1.0f, -1.0f); - - DirectionalLight light1 - = new DirectionalLight(light1Color, light1Direction); - light1.setInfluencingBounds(bounds); - branchRoot.addChild(light1); - - DirectionalLight light2 - = new DirectionalLight(light2Color, light2Direction); - light2.setInfluencingBounds(bounds); - branchRoot.addChild(light2); - - return branchRoot; - } - - public GearBox() { - this(defaultToothCount); - } - - public GearBox(int toothCount) { - this.toothCount = toothCount; - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create the gearbox and attach it to the virtual universe - BranchGroup scene = createGearBox(toothCount); - u = new SimpleUniverse(c); - - // add mouse behaviors to the ViewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - viewingPlatform.setNominalViewingTransform(); - - // add orbit behavior to the ViewingPlatform - OrbitBehavior orbit = new OrbitBehavior(c, OrbitBehavior.REVERSE_ALL); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows GearBox to be run as an application - // as well as an applet - // - public static void main(String[] args) { - int value; - - if (args.length > 1) { - System.out.println("Usage: java GearBox #teeth (LCD 4)"); - System.exit(0); - } else if (args.length == 0) { - new MainFrame(new GearBox(), 700, 700); - } else - { - try{ - value = Integer.parseInt(args[0]); - } catch (NumberFormatException e) { - System.out.println("Illegal integer specified"); - System.out.println("Usage: java GearBox #teeth (LCD 4)"); - value = 0; - System.exit(0); - } - if (value <= 0 | (value % 4) != 0) { - System.out.println("Integer not a positive multiple of 4"); - System.out.println("Usage: java GearBox #teeth (LCD 4)"); - System.exit(0); - } - new MainFrame(new GearBox(value), 700, 700); - } - } -} diff --git a/src/GearTest/GearBox_plugin.html b/src/GearTest/GearBox_plugin.html deleted file mode 100644 index 1c6f737..0000000 --- a/src/GearTest/GearBox_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>GearBox</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 700 HEIGHT = 700 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "GearBox.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "GearBox.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "GearBox.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/GearTest/GearTest.html b/src/GearTest/GearTest.html deleted file mode 100644 index 5416cf8..0000000 --- a/src/GearTest/GearTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>GearTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="GearTest.class" width=700 height=700> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/GearTest/GearTest.java b/src/GearTest/GearTest.java deleted file mode 100644 index 9fd46fe..0000000 --- a/src/GearTest/GearTest.java +++ /dev/null @@ -1,206 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class GearTest extends Applet { - - static final int defaultToothCount = 24; - - private int toothCount; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph(int toothCount) { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create a bounds for the background and lights - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.2f); - Background bgNode = new Background(bgColor); - bgNode.setApplicationBounds(bounds); - objScale.addChild(bgNode); - - // Set up the global lights - Color3f light1Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light1Direction = new Vector3f(4.0f, -7.0f, -12.0f); - Color3f light2Color = new Color3f(0.3f, 0.3f, 0.4f); - Vector3f light2Direction = new Vector3f(-6.0f, -2.0f, -1.0f); - Color3f ambientColor = new Color3f(0.1f, 0.1f, 0.1f); - - AmbientLight ambientLightNode = new AmbientLight(ambientColor); - ambientLightNode.setInfluencingBounds(bounds); - objScale.addChild(ambientLightNode); - - DirectionalLight light1 - = new DirectionalLight(light1Color, light1Direction); - light1.setInfluencingBounds(bounds); - objScale.addChild(light1); - - DirectionalLight light2 - = new DirectionalLight(light2Color, light2Direction); - light2.setInfluencingBounds(bounds); - objScale.addChild(light2); - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objScale.addChild(objTrans); - - // Create an Appearance. - Appearance look = new Appearance(); - Color3f objColor = new Color3f(0.5f, 0.5f, 0.6f); - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - look.setMaterial(new Material(objColor, black, objColor, white, 100.0f)); - - // Create a gear, add it to the scene graph. - // SpurGear gear = new SpurGear(toothCount, 1.0f, 0.2f, - SpurGear gear = new SpurGearThinBody(toothCount, 1.0f, 0.2f, - 0.05f, 0.05f, 0.3f, 0.28f, look); - objTrans.addChild(gear); - - // Create a new Behavior object that will rotate the object and - // add it into the scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 8000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - - // Have Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public GearTest() { - this(defaultToothCount); - } - - public GearTest(int toothCount) { - this.toothCount = toothCount; - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(toothCount); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows GearTest to be run as an application - // as well as an applet - // - public static void main(String[] args) { - int value; - - if (args.length > 1) { - System.out.println("Usage: java GearTest [#teeth]"); - System.exit(0); - } else if (args.length == 0) { - new MainFrame(new GearTest(), 700, 700); - } else - { - try { - value = Integer.parseInt(args[0]); - } catch (NumberFormatException e) { - System.out.println("Illegal integer specified"); - System.out.println("Usage: java GearTest [#teeth]"); - value = 0; - System.exit(0); - } - if (value <= 0) { - System.out.println("Integer must be positive (> 0)"); - System.out.println("Usage: java GearBox [#teeth]"); - System.exit(0); - } - new MainFrame(new GearTest(value), 700, 700); - } - } -} diff --git a/src/GearTest/GearTest_plugin.html b/src/GearTest/GearTest_plugin.html deleted file mode 100644 index a2f7b06..0000000 --- a/src/GearTest/GearTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>GearTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 700 HEIGHT = 700 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "GearTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "GearTest.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "GearTest.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/GearTest/Shaft.java b/src/GearTest/Shaft.java deleted file mode 100644 index f596d2a..0000000 --- a/src/GearTest/Shaft.java +++ /dev/null @@ -1,196 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.lang.Math.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class Shaft extends javax.media.j3d.TransformGroup { - - /** - * Construct a Shaft; - * @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); - } -} - diff --git a/src/GearTest/SpurGear.java b/src/GearTest/SpurGear.java deleted file mode 100644 index 943d1e5..0000000 --- a/src/GearTest/SpurGear.java +++ /dev/null @@ -1,556 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.lang.Math.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class SpurGear extends Gear { - - float toothTopAngleIncrement; - float toothDeclineAngleIncrement; - - float rootRadius; - float outsideRadius; - - //The angle subtended by the ascending or descending portion of a tooth - float circularToothEdgeAngle; - // The angle subtended by a flat (either a tooth top or a valley - // between teeth - float circularToothFlatAngle; - - /** - * internal constructor for SpurGear, used by subclasses to establish - * SpurGear's required state - * @return a new spur gear that contains sufficient information to - * continue building - * @param toothCount number of teeth - * @param pitchCircleRadius radius at center of teeth - * @param addendum distance from pitch circle to top of teeth - * @param dedendum distance from pitch circle to root of teeth - * @param toothToValleyAngleRatio the ratio of the angle subtended by the - * tooth to the angle subtended by the valley (must be <= .25) - */ - SpurGear(int toothCount, float pitchCircleRadius, - float addendum, float dedendum, float toothToValleyAngleRatio) { - - super(toothCount); - - // The angle about Z subtended by one tooth and its associated valley - circularPitchAngle = (float)(2.0 * Math.PI / (double)toothCount); - - // The angle subtended by a flat (either a tooth top or a valley - // between teeth - circularToothFlatAngle = circularPitchAngle * toothToValleyAngleRatio; - - //The angle subtended by the ascending or descending portion of a tooth - circularToothEdgeAngle = circularPitchAngle/2.0f - - circularToothFlatAngle; - - // Increment angles - toothTopAngleIncrement = circularToothEdgeAngle; - toothDeclineAngleIncrement - = toothTopAngleIncrement + circularToothFlatAngle; - toothValleyAngleIncrement - = toothDeclineAngleIncrement + circularToothEdgeAngle; - - // Differential angles for offsetting to the center of tooth's top - // and valley - toothTopCenterAngle - = toothTopAngleIncrement + circularToothFlatAngle/2.0f; - valleyCenterAngle - = toothValleyAngleIncrement + circularToothFlatAngle/2.0f; - - // Gear start differential angle. All gears are constructed with the - // center of a tooth at Z-axis angle = 0. - gearStartAngle = -1.0 * toothTopCenterAngle; - - // The radial distance to the root and top of the teeth, respectively - rootRadius = pitchCircleRadius - dedendum; - outsideRadius = pitchCircleRadius + addendum; - - // Allow this object to spin. etc. - this.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - } - - /** - * Construct a SpurGear; - * @return a new spur gear that conforms to the input paramters - * @param toothCount number of teeth - * @param pitchCircleRadius radius at center of teeth - * @param shaftRadius radius of hole at center - * @param addendum distance from pitch circle to top of teeth - * @param dedendum distance from pitch circle to root of teeth - * @param gearThickness thickness of the gear - */ - public SpurGear(int toothCount, float pitchCircleRadius, float shaftRadius, - float addendum, float dedendum, float gearThickness) { - this(toothCount, pitchCircleRadius, shaftRadius, addendum, dedendum, - gearThickness, gearThickness, 0.25f, null); - } - - /** - * Construct a SpurGear; - * @return a new spur gear that conforms to the input paramters - * @param toothCount number of teeth - * @param pitchCircleRadius radius at center of teeth - * @param shaftRadius radius of hole at center - * @param addendum distance from pitch circle to top of teeth - * @param dedendum distance from pitch circle to root of teeth - * @param gearThickness thickness of the gear - * @param look the gear's appearance - */ - public SpurGear(int toothCount, float pitchCircleRadius, float shaftRadius, - float addendum, float dedendum, float gearThickness, - Appearance look) { - this(toothCount, pitchCircleRadius, shaftRadius, addendum, dedendum, - gearThickness, gearThickness, 0.25f, look); - } - - /** - * Construct a SpurGear; - * @return a new spur gear that conforms to the input paramters - * @param toothCount number of teeth - * @param pitchCircleRadius radius at center of teeth - * @param shaftRadius radius of hole at center - * @param addendum distance from pitch circle to top of teeth - * @param dedendum distance from pitch circle to root of teeth - * @param gearThickness thickness of the gear - * @param toothTipThickness thickness of the tip of the tooth - * @param look the gear's appearance - */ - public SpurGear(int toothCount, float pitchCircleRadius, float shaftRadius, - float addendum, float dedendum, float gearThickness, - float toothTipThickness, Appearance look) { - this(toothCount, pitchCircleRadius, shaftRadius, addendum, dedendum, - gearThickness, toothTipThickness, 0.25f, look); - } - - /** - * Construct a SpurGear; - * @return a new spur gear that conforms to the input paramters - * @param toothCount number of teeth - * @param pitchCircleRadius radius at center of teeth - * @param shaftRadius radius of hole at center - * @param addendum distance from pitch circle to top of teeth - * @param dedendum distance from pitch circle to root of teeth - * @param gearThickness thickness of the gear - * @param toothTipThickness thickness of the tip of the tooth - * @param toothToValleyAngleRatio the ratio of the angle subtended by the - * tooth to the angle subtended by the valley (must be <= .25) - * @param look the gear's appearance object - */ - public SpurGear(int toothCount, float pitchCircleRadius, float shaftRadius, - float addendum, float dedendum, float gearThickness, - float toothTipThickness, float toothToValleyAngleRatio, - Appearance look) { - - this(toothCount, pitchCircleRadius, addendum, dedendum, - toothToValleyAngleRatio); - - // Generate the gear's body disks - addBodyDisks(shaftRadius, rootRadius, gearThickness, look); - - // Generate the gear's interior shaft - addCylinderSkins(shaftRadius, gearThickness, InwardNormals, look); - - // Generate the gear's teeth - addTeeth(pitchCircleRadius, rootRadius, - outsideRadius, gearThickness, toothTipThickness, - toothToValleyAngleRatio, look); - } - - /** - * Construct a SpurGear's teeth by adding the teeth shape nodes - * @param pitchCircleRadius radius at center of teeth - * @param rootRadius distance from pitch circle to top of teeth - * @param outsideRadius distance from pitch circle to root of teeth - * @param gearThickness thickness of the gear - * @param toothTipThickness thickness of the tip of the tooth - * @param toothToValleyAngleRatio the ratio of the angle subtended by the - * tooth to the angle subtended by the valley (must be <= .25) - * @param look the gear's appearance object - */ - void addTeeth(float pitchCircleRadius, float rootRadius, - float outsideRadius, float gearThickness, - float toothTipThickness, float toothToValleyAngleRatio, - Appearance look) { - int index; - Shape3D newShape; - - // Temporaries that store start angle for each portion of tooth facet - double toothStartAngle, toothTopStartAngle, - toothDeclineStartAngle, toothValleyStartAngle, - nextToothStartAngle; - - // The x and y coordinates at each point of a facet and at each - // point on the gear: at the shaft, the root of the teeth, and - // the outer point of the teeth - float xRoot0, yRoot0; - float xOuter1, yOuter1; - float xOuter2, yOuter2; - float xRoot3, yRoot3; - float xRoot4, yRoot4; - - // The z coordinates for the gear - final float frontZ = -0.5f * gearThickness; - final float rearZ = 0.5f * gearThickness; - - // The z coordinates for the tooth tip of the gear - final float toothTipFrontZ = -0.5f * toothTipThickness; - final float toothTipRearZ = 0.5f * toothTipThickness; - - int toothFacetVertexCount; // #(vertices) per tooth facet - int toothFacetCount; // #(facets) per tooth - int toothFaceTotalVertexCount; // #(vertices) in all teeth - int toothFaceStripCount[] = new int[toothCount]; - // per tooth vertex count - int topVertexCount; // #(vertices) for teeth tops - int topStripCount[] = new int[1]; // #(vertices) in strip/strip - - // Front and rear facing normals for the teeth faces - Vector3f frontToothNormal = new Vector3f(0.0f, 0.0f, -1.0f); - Vector3f rearToothNormal = new Vector3f(0.0f, 0.0f, 1.0f); - - // Normals for teeth tops up incline, tooth top, and down incline - Vector3f leftNormal = new Vector3f(-1.0f, 0.0f, 0.0f); - Vector3f rightNormal = new Vector3f(1.0f, 0.0f, 0.0f); - Vector3f outNormal = new Vector3f(1.0f, 0.0f, 0.0f); - Vector3f inNormal = 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); - Point3f tempCoordinate1 = new Point3f(0.0f, 0.0f, 0.0f); - Point3f tempCoordinate2 = new Point3f(0.0f, 0.0f, 0.0f); - Point3f tempCoordinate3 = new Point3f(0.0f, 0.0f, 0.0f); - Vector3f tempVector1 = new Vector3f(0.0f, 0.0f, 0.0f); - Vector3f tempVector2 = new Vector3f(0.0f, 0.0f, 0.0f); - - /* Construct the gear's front facing teeth facets - * 0______2 - * / /\ - * / / \ - * / / \ - * //___________\ - * 1 3 - */ - toothFacetVertexCount = 4; - toothFaceTotalVertexCount = toothFacetVertexCount * toothCount; - for(int i = 0; i < toothCount; i++) - toothFaceStripCount[i] = toothFacetVertexCount; - - TriangleStripArray frontGearTeeth - = new TriangleStripArray(toothFaceTotalVertexCount, - GeometryArray.COORDINATES - | GeometryArray.NORMALS, - toothFaceStripCount); - - for(int count = 0; count < toothCount; count++) { - index = count * toothFacetVertexCount; - - toothStartAngle - = gearStartAngle + circularPitchAngle * (double)count; - toothTopStartAngle = toothStartAngle + toothTopAngleIncrement; - toothDeclineStartAngle - = toothStartAngle + toothDeclineAngleIncrement; - toothValleyStartAngle - = toothStartAngle + toothValleyAngleIncrement; - - xRoot0 = rootRadius * (float)Math.cos(toothStartAngle); - yRoot0 = rootRadius * (float)Math.sin(toothStartAngle); - xOuter1 = outsideRadius * (float)Math.cos(toothTopStartAngle); - yOuter1 = outsideRadius * (float)Math.sin(toothTopStartAngle); - xOuter2 = outsideRadius * (float)Math.cos(toothDeclineStartAngle); - yOuter2 = outsideRadius * (float)Math.sin(toothDeclineStartAngle); - xRoot3 = rootRadius * (float)Math.cos(toothValleyStartAngle); - yRoot3 = rootRadius * (float)Math.sin(toothValleyStartAngle); - - tempCoordinate1.set(xRoot0, yRoot0, frontZ); - tempCoordinate2.set(xRoot3, yRoot3, frontZ); - tempVector1.sub(tempCoordinate2, tempCoordinate1); - - tempCoordinate2.set(xOuter1, yOuter1, toothTipFrontZ); - tempVector2.sub(tempCoordinate2, tempCoordinate1); - - frontToothNormal.cross(tempVector1, tempVector2); - frontToothNormal.normalize(); - - coordinate.set(xOuter1, yOuter1, toothTipFrontZ); - frontGearTeeth.setCoordinate(index, coordinate); - frontGearTeeth.setNormal(index, frontToothNormal); - - coordinate.set(xRoot0, yRoot0, frontZ); - frontGearTeeth.setCoordinate(index + 1, coordinate); - frontGearTeeth.setNormal(index + 1, frontToothNormal); - - coordinate.set(xOuter2, yOuter2, toothTipFrontZ); - frontGearTeeth.setCoordinate(index + 2, coordinate); - frontGearTeeth.setNormal(index + 2, frontToothNormal); - - coordinate.set(xRoot3, yRoot3, frontZ); - frontGearTeeth.setCoordinate(index + 3, coordinate); - frontGearTeeth.setNormal(index + 3, frontToothNormal); - } - newShape = new Shape3D(frontGearTeeth, look); - this.addChild(newShape); - - /* Construct the gear's rear facing teeth facets (Using Quads) - * 1______2 - * / \ - * / \ - * / \ - * /____________\ - * 0 3 - */ - toothFacetVertexCount = 4; - toothFaceTotalVertexCount = toothFacetVertexCount * toothCount; - - QuadArray rearGearTeeth - = new QuadArray(toothCount * toothFacetVertexCount, - GeometryArray.COORDINATES - | GeometryArray.NORMALS); - - for(int count = 0; count < toothCount; count++) { - - index = count * toothFacetVertexCount; - toothStartAngle = - gearStartAngle + circularPitchAngle * (double)count; - toothTopStartAngle = toothStartAngle + toothTopAngleIncrement; - toothDeclineStartAngle - = toothStartAngle + toothDeclineAngleIncrement; - toothValleyStartAngle = toothStartAngle + toothValleyAngleIncrement; - - xRoot0 = rootRadius * (float)Math.cos(toothStartAngle); - yRoot0 = rootRadius * (float)Math.sin(toothStartAngle); - xOuter1 = outsideRadius * (float)Math.cos(toothTopStartAngle); - yOuter1 = outsideRadius * (float)Math.sin(toothTopStartAngle); - xOuter2 = outsideRadius * (float)Math.cos(toothDeclineStartAngle); - yOuter2 = outsideRadius * (float)Math.sin(toothDeclineStartAngle); - xRoot3 = rootRadius * (float)Math.cos(toothValleyStartAngle); - yRoot3 = rootRadius * (float)Math.sin(toothValleyStartAngle); - - tempCoordinate1.set(xRoot0, yRoot0, rearZ); - tempCoordinate2.set(xRoot3, yRoot3, rearZ); - tempVector1.sub(tempCoordinate2, tempCoordinate1); - tempCoordinate2.set(xOuter1, yOuter1, toothTipRearZ); - tempVector2.sub(tempCoordinate2, tempCoordinate1); - rearToothNormal.cross(tempVector2, tempVector1); - rearToothNormal.normalize(); - - coordinate.set(xRoot0, yRoot0, rearZ); - rearGearTeeth.setCoordinate(index, coordinate); - rearGearTeeth.setNormal(index, rearToothNormal); - - coordinate.set(xOuter1, yOuter1, toothTipRearZ); - rearGearTeeth.setCoordinate(index + 1, coordinate); - rearGearTeeth.setNormal(index + 1, rearToothNormal); - - coordinate.set(xOuter2, yOuter2, toothTipRearZ); - rearGearTeeth.setCoordinate(index + 2, coordinate); - rearGearTeeth.setNormal(index + 2, rearToothNormal); - - coordinate.set(xRoot3, yRoot3, rearZ); - rearGearTeeth.setCoordinate(index + 3, coordinate); - rearGearTeeth.setNormal(index + 3, rearToothNormal); - - } - newShape = new Shape3D(rearGearTeeth, look); - this.addChild(newShape); - - /* - * Construct the gear's top teeth faces (As seen from above) - * Root0 Outer1 Outer2 Root3 Root4 (RearZ) - * 0_______3 2_______5 4_______7 6_______9 - * |0 3| |4 7| |8 11| |12 15| - * | | | | | | | | - * | | | | | | | | - * |1_____2| |5_____6| |9____10| |13___14| - * 1 2 3 4 5 6 7 8 - * Root0 Outer1 Outer2 Root3 Root4 (FrontZ) - * - * Quad 0123 uses a left normal - * Quad 2345 uses an out normal - * Quad 4567 uses a right normal - * Quad 6789 uses an out normal - */ - topVertexCount = 8 * toothCount + 2; - topStripCount[0] = topVertexCount; - - toothFacetVertexCount = 4; - toothFacetCount = 4; - - QuadArray topGearTeeth - = new QuadArray(toothCount * toothFacetVertexCount - * toothFacetCount, - GeometryArray.COORDINATES - | GeometryArray.NORMALS); - - for(int count = 0; count < toothCount; count++) { - index = count * toothFacetCount * toothFacetVertexCount; - toothStartAngle = gearStartAngle + - circularPitchAngle * (double)count; - toothTopStartAngle = toothStartAngle + toothTopAngleIncrement; - toothDeclineStartAngle - = toothStartAngle + toothDeclineAngleIncrement; - toothValleyStartAngle - = toothStartAngle + toothValleyAngleIncrement; - nextToothStartAngle = toothStartAngle + circularPitchAngle; - - xRoot0 = rootRadius * (float)Math.cos(toothStartAngle); - yRoot0 = rootRadius * (float)Math.sin(toothStartAngle); - xOuter1 = outsideRadius * (float)Math.cos(toothTopStartAngle); - yOuter1 = outsideRadius * (float)Math.sin(toothTopStartAngle); - xOuter2 = outsideRadius * (float)Math.cos(toothDeclineStartAngle); - yOuter2 = outsideRadius * (float)Math.sin(toothDeclineStartAngle); - xRoot3 = rootRadius * (float)Math.cos(toothValleyStartAngle); - yRoot3 = rootRadius * (float)Math.sin(toothValleyStartAngle); - xRoot4 = rootRadius * (float)Math.cos(nextToothStartAngle); - yRoot4 = rootRadius * (float)Math.sin(nextToothStartAngle); - - // Compute normal for quad 1 - tempCoordinate1.set(xRoot0, yRoot0, frontZ); - tempCoordinate2.set(xOuter1, yOuter1, toothTipFrontZ); - tempVector1.sub(tempCoordinate2, tempCoordinate1); - leftNormal.cross(frontNormal, tempVector1); - leftNormal.normalize(); - - // Coordinate labeled 0 in the quad - coordinate.set(xRoot0, yRoot0, rearZ); - topGearTeeth.setCoordinate(index, coordinate); - topGearTeeth.setNormal(index, leftNormal); - - // Coordinate labeled 1 in the quad - coordinate.set(tempCoordinate1); - topGearTeeth.setCoordinate(index + 1, coordinate); - topGearTeeth.setNormal(index + 1, leftNormal); - - // Coordinate labeled 2 in the quad - topGearTeeth.setCoordinate(index + 2, tempCoordinate2); - topGearTeeth.setNormal(index + 2, leftNormal); - topGearTeeth.setCoordinate(index + 5, tempCoordinate2); - - // Coordinate labeled 3 in the quad - coordinate.set(xOuter1, yOuter1, toothTipRearZ); - topGearTeeth.setCoordinate(index + 3, coordinate); - topGearTeeth.setNormal(index + 3, leftNormal); - topGearTeeth.setCoordinate(index + 4, coordinate); - - // Compute normal for quad 2 - tempCoordinate1.set(xOuter1, yOuter1, toothTipFrontZ); - tempCoordinate2.set(xOuter2, yOuter2, toothTipFrontZ); - tempVector1.sub(tempCoordinate2, tempCoordinate1); - outNormal.cross(frontNormal, tempVector1); - outNormal.normalize(); - - topGearTeeth.setNormal(index + 4, outNormal); - topGearTeeth.setNormal(index + 5, outNormal); - - // Coordinate labeled 4 in the quad - topGearTeeth.setCoordinate(index + 6, tempCoordinate2); - topGearTeeth.setNormal(index + 6, outNormal); - topGearTeeth.setCoordinate(index + 9, tempCoordinate2); - - // Coordinate labeled 5 in the quad - coordinate.set(xOuter2, yOuter2, toothTipRearZ); - topGearTeeth.setCoordinate(index + 7, coordinate); - topGearTeeth.setNormal(index + 7, outNormal); - topGearTeeth.setCoordinate(index + 8, coordinate); - - // Compute normal for quad 3 - tempCoordinate1.set(xOuter2, yOuter2, toothTipFrontZ); - tempCoordinate2.set(xRoot3, yRoot3, frontZ); - tempVector1.sub(tempCoordinate2, tempCoordinate1); - rightNormal.cross(frontNormal, tempVector1); - rightNormal.normalize(); - - topGearTeeth.setNormal(index + 8, rightNormal); - topGearTeeth.setNormal(index + 9, rightNormal); - - // Coordinate labeled 7 in the quad - topGearTeeth.setCoordinate(index + 10, tempCoordinate2); - topGearTeeth.setNormal(index + 10, rightNormal); - topGearTeeth.setCoordinate(index + 13, tempCoordinate2); - - // Coordinate labeled 6 in the quad - coordinate.set(xRoot3, yRoot3, rearZ); - topGearTeeth.setCoordinate(index + 11, coordinate); - topGearTeeth.setNormal(index + 11, rightNormal); - topGearTeeth.setCoordinate(index + 12, coordinate); - - // Compute normal for quad 4 - tempCoordinate1.set(xRoot3, yRoot3, frontZ); - tempCoordinate2.set(xRoot4, yRoot4, frontZ); - tempVector1.sub(tempCoordinate2, tempCoordinate1); - outNormal.cross(frontNormal, tempVector1); - outNormal.normalize(); - - topGearTeeth.setNormal(index + 12, outNormal); - topGearTeeth.setNormal(index + 13, outNormal); - - // Coordinate labeled 9 in the quad - topGearTeeth.setCoordinate(index + 14, tempCoordinate2); - topGearTeeth.setNormal(index + 14, outNormal); - - // Coordinate labeled 8 in the quad - coordinate.set(xRoot4, yRoot4, rearZ); - topGearTeeth.setCoordinate(index + 15, coordinate); - topGearTeeth.setNormal(index + 15, outNormal); - - // Prepare for the loop by computing the new normal - toothTopStartAngle - = nextToothStartAngle + toothTopAngleIncrement; - xOuter1 = outsideRadius * (float)Math.cos(toothTopStartAngle); - yOuter1 = outsideRadius * (float)Math.sin(toothTopStartAngle); - - tempCoordinate1.set(xRoot4, yRoot4, toothTipFrontZ); - tempCoordinate2.set(xOuter1, yOuter1, toothTipFrontZ); - tempVector1.sub(tempCoordinate2, tempCoordinate1); - leftNormal.cross(frontNormal, tempVector1); - leftNormal.normalize(); - } - newShape = new Shape3D(topGearTeeth, look); - this.addChild(newShape); - } - -} diff --git a/src/GearTest/SpurGearThinBody.java b/src/GearTest/SpurGearThinBody.java deleted file mode 100644 index d2ead3d..0000000 --- a/src/GearTest/SpurGearThinBody.java +++ /dev/null @@ -1,185 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.lang.Math.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class SpurGearThinBody extends SpurGear { - - /** - * Construct a SpurGearThinBody; - * @return a new spur gear that conforms to the input paramters - * @param toothCount number of teeth - * @param pitchCircleRadius radius at center of teeth - * @param shaftRadius radius of hole at center - * @param addendum distance from pitch circle to top of teeth - * @param dedendum distance from pitch circle to root of teeth - * @param gearThickness thickness of the gear - */ - public SpurGearThinBody(int toothCount, float pitchCircleRadius, - float shaftRadius, float addendum, float dedendum, - float gearThickness) { - this(toothCount, pitchCircleRadius, shaftRadius, - addendum, dedendum, gearThickness, gearThickness, 0.25f, null); - } - - /** - * Construct a SpurGearThinBody; - * @return a new spur gear that conforms to the input paramters - * @param toothCount number of teeth - * @param pitchCircleRadius radius at center of teeth - * @param shaftRadius radius of hole at center - * @param addendum distance from pitch circle to top of teeth - * @param dedendum distance from pitch circle to root of teeth - * @param gearThickness thickness of the gear - * @param look the gear's appearance - */ - public SpurGearThinBody(int toothCount, float pitchCircleRadius, - float shaftRadius, float addendum, float dedendum, - float gearThickness, - Appearance look) { - this(toothCount, pitchCircleRadius, shaftRadius, - addendum, dedendum, gearThickness, gearThickness, 0.25f, look); - } - - /** - * Construct a SpurGearThinBody; - * @return a new spur gear that conforms to the input paramters - * @param toothCount number of teeth - * @param pitchCircleRadius radius at center of teeth - * @param shaftRadius radius of hole at center - * @param addendum distance from pitch circle to top of teeth - * @param dedendum distance from pitch circle to root of teeth - * @param gearThickness thickness of the gear - * @param toothTipThickness thickness of the tip of the tooth - * @param look the gear's appearance - */ - public SpurGearThinBody(int toothCount, float pitchCircleRadius, - float shaftRadius, float addendum, float dedendum, - float gearThickness, float toothTipThickness, - Appearance look) { - this(toothCount, pitchCircleRadius, shaftRadius, addendum, - dedendum, gearThickness, toothTipThickness, 0.25f, look); - } - - /** - * Construct a SpurGearThinBody; - * @return a new spur gear that conforms to the input paramters - * @param toothCount number of teeth - * @param pitchCircleRadius radius at center of teeth - * @param shaftRadius radius of hole at center - * @param addendum distance from pitch circle to top of teeth - * @param dedendum distance from pitch circle to root of teeth - * @param gearThickness thickness of the gear - * @param toothTipThickness thickness of the tip of the tooth - * @param toothToValleyRatio ratio of tooth valley to circular pitch - * (must be <= .25) - * @param look the gear's appearance object - */ - public SpurGearThinBody(int toothCount, float pitchCircleRadius, - float shaftRadius, float addendum, float dedendum, - float gearThickness, float toothTipThickness, - float toothToValleyAngleRatio, Appearance look) { - - this(toothCount, pitchCircleRadius, shaftRadius, addendum, - dedendum, gearThickness, toothTipThickness, 0.25f, look, - 0.6f * gearThickness, 0.75f * (pitchCircleRadius - shaftRadius)); - } - - /** - * Construct a SpurGearThinBody; - * @return a new spur gear that conforms to the input paramters - * @param toothCount number of teeth - * @param pitchCircleRadius radius at center of teeth - * @param shaftRadius radius of hole at center - * @param addendum distance from pitch circle to top of teeth - * @param dedendum distance from pitch circle to root of teeth - * @param gearThickness thickness of the gear - * @param toothTipThickness thickness of the tip of the tooth - * @param toothToValleyRatio ratio of tooth valley to circular pitch - * (must be <= .25) - * @param look the gear's appearance object - * @param bodyThickness the thickness of the gear body - * @param crossSectionWidth the width of the depressed portion of the - * gear's body - */ - public SpurGearThinBody(int toothCount, float pitchCircleRadius, - float shaftRadius, float addendum, float dedendum, - float gearThickness, float toothTipThickness, - float toothToValleyAngleRatio, Appearance look, - float bodyThickness, float crossSectionWidth) { - - super(toothCount, pitchCircleRadius, addendum, dedendum, - toothToValleyAngleRatio); - - float diskCrossSectionWidth = - (rootRadius - shaftRadius - crossSectionWidth)/ 2.0f; - float outerShaftRadius = shaftRadius + diskCrossSectionWidth; - float innerToothRadius = rootRadius - diskCrossSectionWidth; - - // Generate the gear's body disks, first by the shaft, then in - // the body and, lastly, by the teeth - addBodyDisks(shaftRadius, outerShaftRadius, - gearThickness, look); - addBodyDisks(innerToothRadius, rootRadius, - gearThickness, look); - addBodyDisks(outerShaftRadius, innerToothRadius, - bodyThickness, look); - - // Generate the gear's "shaft" equivalents the two at the teeth - // and the two at the shaft - addCylinderSkins(innerToothRadius, gearThickness, InwardNormals, look); - addCylinderSkins(outerShaftRadius, gearThickness, OutwardNormals, look); - - // Generate the gear's interior shaft - addCylinderSkins(shaftRadius, gearThickness, InwardNormals, look); - - // Generate the gear's teeth - addTeeth(pitchCircleRadius, rootRadius, - outsideRadius, gearThickness, toothTipThickness, - toothToValleyAngleRatio, look); - } - -} diff --git a/src/GearTest/build.xml b/src/GearTest/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/GearTest/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/GeometryByReference/GeometryByReferenceNIOBuffer.java b/src/GeometryByReference/GeometryByReferenceNIOBuffer.java deleted file mode 100644 index b3a9274..0000000 --- a/src/GeometryByReference/GeometryByReferenceNIOBuffer.java +++ /dev/null @@ -1,517 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.*; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.border.*; -import com.sun.j3d.utils.behaviors.vp.*; -import java.nio.*; - -public class GeometryByReferenceNIOBuffer extends JApplet implements ActionListener, -GeometryUpdater { - - RenderingAttributes ra; - ColoringAttributes ca; - Material mat; - Appearance app; - JComboBox geomType; - JComboBox vertexType; - JComboBox colorType; - JCheckBox transparency; - JComboBox updates; - Shape3D shape; - TransparencyAttributes transp; - int updateIndex = 0; - int colorCount = 0, vertexCount = 0; - int vertexIndex = 0, colorIndex = 0; - - GeometryArray tetraRegular, tetraStrip, tetraIndexed, tetraIndexedStrip; - GeometryArray[] geoArrays = new GeometryArray[4]; - - private static final float sqrt3 = (float) Math.sqrt(3.0); - private static final float sqrt3_3 = sqrt3 / 3.0f; - private static final float sqrt24_3 = (float) Math.sqrt(24.0) / 3.0f; - - private static final float ycenter = 0.5f * sqrt24_3; - private static final float zcenter = -sqrt3_3; - - private static final Point3f p1 = - new Point3f(-1.0f, -ycenter, -zcenter); - private static final Point3f p2 = - new Point3f(1.0f, -ycenter, -zcenter); - private static final Point3f p3 = - new Point3f(0.0f, -ycenter, -sqrt3 - zcenter); - private static final Point3f p4 = - new Point3f(0.0f, sqrt24_3 - ycenter, 0.0f); - - private static final float[] floatVerts = { - p1.x, p1.y, p1.z, // front face - p2.x, p2.y, p2.z, - p4.x, p4.y, p4.z, - - p1.x, p1.y, p1.z,// left, back face - p4.x, p4.y, p4.z, - p3.x, p3.y, p3.z, - - p2.x, p2.y, p2.z,// right, back face - p3.x, p3.y, p3.z, - p4.x, p4.y, p4.z, - - p1.x, p1.y, p1.z,// bottom face - p3.x, p3.y, p3.z, - p2.x, p2.y, p2.z, - }; - - private static final Color3f c1 = new Color3f(0.6f, 0.0f, 0.0f); - private static final Color3f c2 = new Color3f(0.0f, 0.6f, 0.0f); - private static final Color3f c3 = new Color3f(0.0f, 0.6f, 0.6f); - private static final Color3f c4 = new Color3f(0.6f, 0.6f, 0.0f); - - - - private static final float[] floatClrs = { - c1.x, c1.y, c1.z, // front face - c2.x, c2.y, c2.z, - c4.x, c4.y, c4.z, - - c1.x, c1.y, c1.z,// left, back face - c4.x, c4.y, c4.z, - c3.x, c3.y, c3.z, - - c2.x, c2.y, c2.z,// right, back face - c3.x, c3.y, c3.z, - c4.x, c4.y, c4.z, - - c1.x, c1.y, c1.z,// bottom face - c3.x, c3.y, c3.z, - c2.x, c2.y, c2.z, - }; - - private static final float[] indexedFloatVerts = { - p1.x,p1.y,p1.z, - p2.x,p2.y,p2.z, - p3.x,p3.y,p3.z, - p4.x,p4.y,p4.z, - - }; - - - private static final float[] indexedFloatClrs = { - c1.x,c1.y,c1.z, - c2.x,c2.y,c2.z, - c3.x,c3.y,c3.z, - c4.x,c4.y,c4.z, - }; - - private static final int[] indices = {0,1,3,0,3,2,1,2,3,0,2,1}; - private int[] stripVertexCounts = {3,3,3,3}; - - private SimpleUniverse u; - - private J3DBuffer floatBufferCoord; - private J3DBuffer floatBufferColor; - private J3DBuffer indexedFloatBufferCoord; - private J3DBuffer indexedFloatBufferColor; - - void createJ3DBuffers() { - int i; - ByteOrder order = ByteOrder.nativeOrder(); - - FloatBuffer coord = ByteBuffer.allocateDirect(36 * 4).order(order).asFloatBuffer(); - coord.put(floatVerts, 0, 36); - floatBufferCoord = new J3DBuffer(coord); - - FloatBuffer color = ByteBuffer.allocateDirect(36 * 4).order(order).asFloatBuffer(); - color.put(floatClrs, 0, 36); - floatBufferColor = new J3DBuffer(color); - - FloatBuffer indexedCoord = ByteBuffer.allocateDirect(12 * 4).order(order).asFloatBuffer(); - indexedCoord.put(indexedFloatVerts, 0, 12); - indexedFloatBufferCoord = new J3DBuffer(indexedCoord); - - FloatBuffer indexedColor = ByteBuffer.allocateDirect(12 * 4).order(order).asFloatBuffer(); - indexedColor.put(indexedFloatClrs, 0, 12); - indexedFloatBufferColor = new J3DBuffer(indexedColor); - } - - BranchGroup createSceneGraph() { - BranchGroup objRoot = new BranchGroup(); - - // Set up attributes to render lines - app = new Appearance(); - - transp = new TransparencyAttributes(); - transp.setTransparency(0.5f); - transp.setCapability(TransparencyAttributes.ALLOW_MODE_WRITE); - transp.setTransparencyMode(TransparencyAttributes.NONE); - app.setTransparencyAttributes(transp); - - //create the direct nio buffer - createJ3DBuffers(); - - tetraRegular = createGeometry(1); - tetraStrip =createGeometry(2); - tetraIndexed = createGeometry(3); - tetraIndexedStrip = createGeometry(4); - - geoArrays[0] = tetraRegular; - geoArrays[1] = tetraStrip; - geoArrays[2] = tetraIndexed; - geoArrays[3] = tetraIndexedStrip; - - shape = new Shape3D(tetraRegular, app); - shape.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); - shape.setCapability(Shape3D.ALLOW_GEOMETRY_READ); - - Transform3D t = new Transform3D(); - // move the object upwards - t.set(new Vector3f(0.0f, 0.3f, 0.0f)); - - // rotate the shape - Transform3D temp = new Transform3D(); - temp.rotX(Math.PI/4.0d); - t.mul(temp); - temp.rotY(Math.PI/4.0d); - t.mul(temp); - - // Shrink the object - t.setScale(0.6); - - TransformGroup trans = new TransformGroup(t); - trans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - trans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - - objRoot.addChild(trans); - trans.addChild(shape); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the global lights - Color3f lColor1 = new Color3f(0.7f, 0.7f, 0.7f); - Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, -1.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - - AmbientLight aLgt = new AmbientLight(alColor); - aLgt.setInfluencingBounds(bounds); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - lgt1.setInfluencingBounds(bounds); - objRoot.addChild(aLgt); - objRoot.addChild(lgt1); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - JPanel createGeometryByReferencePanel() { - JPanel panel = new JPanel(); - panel.setBorder(new TitledBorder("Geometry Type")); - - String values[] = {"Array", "Strip", "Indexed", "IndexedStrip"}; - geomType = new JComboBox(values); - geomType.setLightWeightPopupEnabled(false); - geomType.addActionListener(this); - geomType.setSelectedIndex(0); - panel.add(new JLabel("Geometry Type")); - panel.add(geomType); - - return panel; - } - - JPanel createUpdatePanel() { - - JPanel panel = new JPanel(); - panel.setBorder(new TitledBorder("Other Attributes")); - - String updateComp[] = { "None","Geometry", "Color"}; - - transparency = new JCheckBox("EnableTransparency", - false); - transparency.addActionListener(this); - panel.add(transparency); - - - updates = new JComboBox(updateComp); - updates.setLightWeightPopupEnabled(false); - updates.addActionListener(this); - updates.setSelectedIndex(0); - panel.add(new JLabel("UpdateData")); - panel.add(updates); - - return panel; - } - - - - public GeometryByReferenceNIOBuffer() { - } - - public void init() { - Container contentPane = getContentPane(); - - Canvas3D c = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); - contentPane.add("Center", c); - - BranchGroup scene = createSceneGraph(); - // SimpleUniverse is a Convenience Utility class - u = new SimpleUniverse(c); - - // add mouse behaviors to the viewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - viewingPlatform.setNominalViewingTransform(); - u.addBranchGraph(scene); - - // add Orbit behavior to the ViewingPlatform - OrbitBehavior orbit = new OrbitBehavior(c, OrbitBehavior.REVERSE_ALL); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - - // Create GUI - JPanel p = new JPanel(); - BoxLayout boxlayout = new BoxLayout(p, - BoxLayout.Y_AXIS); - p.add(createGeometryByReferencePanel()); - p.add(createUpdatePanel()); - p.setLayout(boxlayout); - - contentPane.add("South", p); - } - - public void destroy() { - u.cleanup(); - } - - public void actionPerformed(ActionEvent e) { - Object target = e.getSource(); - GeometryArray geo; - boolean setColor = false, setVertex = false; - if (target == geomType) { - geo = geoArrays[geomType.getSelectedIndex()]; - // Set everything to null, and set it later .. - geo.setColorRefBuffer(null); - geo.setCoordRefBuffer(null); - shape.setGeometry(geoArrays[geomType.getSelectedIndex()]); - - setColor = true; - setVertex= true; - - - } - else if (target == transparency) { - if (transparency.isSelected()) { - transp.setTransparencyMode(TransparencyAttributes.BLENDED); - } - else { - transp.setTransparencyMode(TransparencyAttributes.NONE); - } - - } - else if (target == updates) { - updateIndex = updates.getSelectedIndex(); - if (updateIndex == 1) { - System.out.println("Doing coordinate update"); - ((GeometryArray)(shape.getGeometry())).updateData(this); - } - else if (updateIndex == 2) { - System.out.println("Doing color update"); - ((GeometryArray)(shape.getGeometry())).updateData(this); - } - - } - - if (setVertex) { - geo = (GeometryArray) shape.getGeometry(); - if (geo instanceof IndexedGeometryArray) - geo.setCoordRefBuffer(indexedFloatBufferCoord); - else - geo.setCoordRefBuffer(floatBufferCoord); - - } - if (setColor) { - geo = (GeometryArray) shape.getGeometry(); - if (geo instanceof IndexedGeometryArray) - geo.setColorRefBuffer(indexedFloatBufferColor); - else - geo.setColorRefBuffer(floatBufferColor); - } - } - - - - public static void main(String[] args) { - Frame frame = new MainFrame(new GeometryByReferenceNIOBuffer(), 800, 800); - } - - public GeometryArray createGeometry (int type) { - GeometryArray tetra = null; - if (type == 1) { - tetra =new TriangleArray(12, - TriangleArray.COORDINATES| - TriangleArray.COLOR_3| - TriangleArray.BY_REFERENCE| - TriangleArray.USE_NIO_BUFFER); - - tetra.setCoordRefBuffer(floatBufferCoord); - tetra.setColorRefBuffer(floatBufferColor); - - } - else if (type == 2) { - tetra = new TriangleStripArray(12, - TriangleStripArray.COORDINATES| - TriangleStripArray.COLOR_3| - TriangleStripArray.BY_REFERENCE| - TriangleStripArray.USE_NIO_BUFFER, - stripVertexCounts); - tetra.setCoordRefBuffer(floatBufferCoord); - tetra.setColorRefBuffer(floatBufferColor); - - } - else if (type == 3) { // Indexed Geometry - tetra = new IndexedTriangleArray(4, - IndexedTriangleArray.COORDINATES| - IndexedTriangleArray.COLOR_3| - IndexedTriangleArray.BY_REFERENCE| - IndexedTriangleArray.USE_NIO_BUFFER, - //IndexedTriangleStripArray.USE_COORD_INDEX_ONLY, - 12); - tetra.setCoordRefBuffer(indexedFloatBufferCoord); - tetra.setColorRefBuffer(indexedFloatBufferColor); - ((IndexedTriangleArray)tetra).setCoordinateIndices(0, indices); - ((IndexedTriangleArray)tetra).setColorIndices(0, indices); - } - else if (type == 4) { // Indexed strip geometry - tetra = new IndexedTriangleStripArray(4, - IndexedTriangleStripArray.COORDINATES| - IndexedTriangleStripArray.COLOR_3| - IndexedTriangleStripArray.BY_REFERENCE| - IndexedTriangleStripArray.USE_NIO_BUFFER| - IndexedTriangleStripArray.USE_COORD_INDEX_ONLY, - 12, - stripVertexCounts); - tetra.setCoordRefBuffer(indexedFloatBufferCoord); - tetra.setColorRefBuffer(indexedFloatBufferColor); - ((IndexedTriangleStripArray)tetra).setCoordinateIndices(0, indices); - /* - // Do not set color indices in UCIO mode - ((IndexedTriangleStripArray)tetra).setColorIndices(0, indices); - */ - } - - if (tetra != null) - tetra.setCapability(GeometryArray.ALLOW_REF_DATA_WRITE); - return tetra; - } - - public void updateData(Geometry geometry) { - int i; - float val; - float val1; - if (updateIndex == 1) { // geometry - // Translate the geometry by a small amount in x - vertexCount++; - if ((vertexCount &1) == 1) - val = 0.2f; - else - val = -0.2f; - - FloatBuffer indexedCoord = (FloatBuffer)indexedFloatBufferCoord.getBuffer(); - indexedCoord.rewind(); - FloatBuffer coord = (FloatBuffer)floatBufferCoord.getBuffer(); - coord.rewind(); - - if (vertexIndex == 0) { - // Do Indexed geometry - for (i = 0; i < indexedCoord.limit(); i+=3) { - val1 = indexedCoord.get(i); - indexedCoord.put(i, val1 + val); - } - // Do non-indexed float geometry - for (i = 0; i < coord.limit(); i+=3) { - val1 = coord.get(i); - coord.put(i, val1 + val); - } - } - } - else if (updateIndex == 2) { // colors - colorCount++; - if ((colorCount & 1) == 1) - val = 0.4f; - else - val = -0.4f; - - FloatBuffer indexedColors = (FloatBuffer)indexedFloatBufferColor.getBuffer(); - indexedColors.rewind(); - FloatBuffer colors = (FloatBuffer)floatBufferColor.getBuffer(); - colors.rewind(); - - if (colorIndex == 0) { - // Do Indexed geometry - for (i = 0; i < indexedColors.limit(); i+=3) { - indexedColors.put(i, indexedColors.get(i) + val); - } - // Do non-indexed float geometry - for (i = 0; i < colors.limit(); i+=3) { - colors.put(i, colors.get(i) + val); - } - } - - } - - } -} diff --git a/src/GeometryByReference/GeometryByReferenceTest.html b/src/GeometryByReference/GeometryByReferenceTest.html deleted file mode 100644 index 8bc7c8a..0000000 --- a/src/GeometryByReference/GeometryByReferenceTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>GeometryByReferenceTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="GeometryByReferenceTest.class" width=800 height=800> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/GeometryByReference/GeometryByReferenceTest.java b/src/GeometryByReference/GeometryByReferenceTest.java deleted file mode 100644 index 430aedb..0000000 --- a/src/GeometryByReference/GeometryByReferenceTest.java +++ /dev/null @@ -1,552 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.*; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.border.*; -import com.sun.j3d.utils.behaviors.vp.*; - -public class GeometryByReferenceTest extends JApplet implements ActionListener, -GeometryUpdater { - - RenderingAttributes ra; - ColoringAttributes ca; - Material mat; - Appearance app; - JComboBox geomType; - JComboBox vertexType; - JComboBox colorType; - JCheckBox transparency; - JComboBox updates; - Shape3D shape; - TransparencyAttributes transp; - int updateIndex = 0; - int colorCount = 0, vertexCount = 0; - int vertexIndex = 0, colorIndex = 0; - - GeometryArray tetraRegular, tetraStrip, tetraIndexed, tetraIndexedStrip; - GeometryArray[] geoArrays = new GeometryArray[4]; - - private static final float sqrt3 = (float) Math.sqrt(3.0); - private static final float sqrt3_3 = sqrt3 / 3.0f; - private static final float sqrt24_3 = (float) Math.sqrt(24.0) / 3.0f; - - private static final float ycenter = 0.5f * sqrt24_3; - private static final float zcenter = -sqrt3_3; - - private static final Point3f p1 = - new Point3f(-1.0f, -ycenter, -zcenter); - private static final Point3f p2 = - new Point3f(1.0f, -ycenter, -zcenter); - private static final Point3f p3 = - new Point3f(0.0f, -ycenter, -sqrt3 - zcenter); - private static final Point3f p4 = - new Point3f(0.0f, sqrt24_3 - ycenter, 0.0f); - - - private static final float[] floatVerts = { - p1.x, p1.y, p1.z, // front face - p2.x, p2.y, p2.z, - p4.x, p4.y, p4.z, - - p1.x, p1.y, p1.z,// left, back face - p4.x, p4.y, p4.z, - p3.x, p3.y, p3.z, - - p2.x, p2.y, p2.z,// right, back face - p3.x, p3.y, p3.z, - p4.x, p4.y, p4.z, - - p1.x, p1.y, p1.z,// bottom face - p3.x, p3.y, p3.z, - p2.x, p2.y, p2.z, - }; - - private static final Color3f c1 = new Color3f(0.6f, 0.0f, 0.0f); - private static final Color3f c2 = new Color3f(0.0f, 0.6f, 0.0f); - private static final Color3f c3 = new Color3f(0.0f, 0.6f, 0.6f); - private static final Color3f c4 = new Color3f(0.6f, 0.6f, 0.0f); - - - private static final float[] floatClrs = { - c1.x, c1.y, c1.z, // front face - c2.x, c2.y, c2.z, - c4.x, c4.y, c4.z, - - c1.x, c1.y, c1.z,// left, back face - c4.x, c4.y, c4.z, - c3.x, c3.y, c3.z, - - c2.x, c2.y, c2.z,// right, back face - c3.x, c3.y, c3.z, - c4.x, c4.y, c4.z, - - c1.x, c1.y, c1.z,// bottom face - c3.x, c3.y, c3.z, - c2.x, c2.y, c2.z, - } ; - - private static final float[] indexedFloatVerts = { - p1.x,p1.y,p1.z, - p2.x,p2.y,p2.z, - p3.x,p3.y,p3.z, - p4.x,p4.y,p4.z, - - }; - private static final float[] indexedFloatClrs = { - c1.x,c1.y,c1.z, - c2.x,c2.y,c2.z, - c3.x,c3.y,c3.z, - c4.x,c4.y,c4.z, - }; - private static final Point3f[] p3fVerts = { - p1, p2, p4, p1, p4, p3, p2, p3, p4, p1, p3, p2}; - - private static final Point3f[] indexedP3fVerts = {p1, p2, p3, p4}; - - private static final Color3f[] c3fClrs = { - c1, c2, c4, c1, c4, c3, c2, c3, c4, c1, c3, c2}; - - private static final Color3f[] indexedC3fClrs = {c1, c2, c3, c4}; - - - private static final int[] indices = {0,1,3,0,3,2,1,2,3,0,2,1}; - private int[] stripVertexCounts = {3,3,3,3}; - - private SimpleUniverse u; - - BranchGroup createSceneGraph() { - BranchGroup objRoot = new BranchGroup(); - - // Set up attributes to render lines - app = new Appearance(); - - transp = new TransparencyAttributes(); - transp.setTransparency(0.5f); - transp.setCapability(TransparencyAttributes.ALLOW_MODE_WRITE); - transp.setTransparencyMode(TransparencyAttributes.NONE); - app.setTransparencyAttributes(transp); - - tetraRegular = createGeometry(1); - tetraStrip =createGeometry(2); - tetraIndexed = createGeometry(3); - tetraIndexedStrip = createGeometry(4); - - geoArrays[0] = tetraRegular; - geoArrays[1] = tetraStrip; - geoArrays[2] = tetraIndexed; - geoArrays[3] = tetraIndexedStrip; - - shape = new Shape3D(tetraRegular, app); - shape.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); - shape.setCapability(Shape3D.ALLOW_GEOMETRY_READ); - - Transform3D t = new Transform3D(); - // move the object upwards - t.set(new Vector3f(0.0f, 0.3f, 0.0f)); - - // rotate the shape - Transform3D temp = new Transform3D(); - temp.rotX(Math.PI/4.0d); - t.mul(temp); - temp.rotY(Math.PI/4.0d); - t.mul(temp); - - // Shrink the object - t.setScale(0.6); - - TransformGroup trans = new TransformGroup(t); - trans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - trans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - - objRoot.addChild(trans); - trans.addChild(shape); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the global lights - Color3f lColor1 = new Color3f(0.7f, 0.7f, 0.7f); - Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, -1.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - - AmbientLight aLgt = new AmbientLight(alColor); - aLgt.setInfluencingBounds(bounds); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - lgt1.setInfluencingBounds(bounds); - objRoot.addChild(aLgt); - objRoot.addChild(lgt1); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - JPanel createGeometryByReferencePanel() { - JPanel panel = new JPanel(); - panel.setBorder(new TitledBorder("Geometry Type")); - - String values[] = {"Array", "Strip", "Indexed", "IndexedStrip"}; - geomType = new JComboBox(values); - geomType.setLightWeightPopupEnabled(false); - geomType.addActionListener(this); - geomType.setSelectedIndex(0); - panel.add(new JLabel("Geometry Type")); - panel.add(geomType); - - - String vertex_types[] = { "Float","P3F"}; - - vertexType = new JComboBox(vertex_types); - vertexType.setLightWeightPopupEnabled(false); - vertexType.addActionListener(this); - vertexType.setSelectedIndex(0); - panel.add(new JLabel("VertexType")); - panel.add(vertexType); - - - String color_types[] = { "Float","C3F"}; - - colorType = new JComboBox(color_types); - colorType.setLightWeightPopupEnabled(false); - colorType.addActionListener(this); - colorType.setSelectedIndex(0); - panel.add(new JLabel("ColorType")); - panel.add(colorType); - - - - - return panel; - } - - JPanel createUpdatePanel() { - - JPanel panel = new JPanel(); - panel.setBorder(new TitledBorder("Other Attributes")); - - String updateComp[] = { "None","Geometry", "Color"}; - - transparency = new JCheckBox("EnableTransparency", - false); - transparency.addActionListener(this); - panel.add(transparency); - - - updates = new JComboBox(updateComp); - updates.setLightWeightPopupEnabled(false); - updates.addActionListener(this); - updates.setSelectedIndex(0); - panel.add(new JLabel("UpdateData")); - panel.add(updates); - - return panel; - } - - - - public GeometryByReferenceTest() { - } - - public void init() { - Container contentPane = getContentPane(); - - Canvas3D c = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); - contentPane.add("Center", c); - - BranchGroup scene = createSceneGraph(); - // SimpleUniverse is a Convenience Utility class - u = new SimpleUniverse(c); - - // add mouse behaviors to the viewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - viewingPlatform.setNominalViewingTransform(); - u.addBranchGraph(scene); - - // add Orbit behavior to the ViewingPlatform - OrbitBehavior orbit = new OrbitBehavior(c, OrbitBehavior.REVERSE_ALL); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - - // Create GUI - JPanel p = new JPanel(); - BoxLayout boxlayout = new BoxLayout(p, - BoxLayout.Y_AXIS); - p.add(createGeometryByReferencePanel()); - p.add(createUpdatePanel()); - p.setLayout(boxlayout); - - contentPane.add("South", p); - } - - public void destroy() { - u.cleanup(); - } - - public void actionPerformed(ActionEvent e) { - Object target = e.getSource(); - GeometryArray geo; - boolean setColor = false, setVertex = false; - if (target == geomType) { - geo = geoArrays[geomType.getSelectedIndex()]; - // Set everything to null, and set it later .. - geo.setColorRefFloat(null); - geo.setColorRef3f(null); - geo.setCoordRefFloat(null); - geo.setCoordRef3f(null); - shape.setGeometry(geoArrays[geomType.getSelectedIndex()]); - - setColor = true; - setVertex= true; - - - } - else if (target == transparency) { - if (transparency.isSelected()) { - transp.setTransparencyMode(TransparencyAttributes.BLENDED); - } - else { - transp.setTransparencyMode(TransparencyAttributes.NONE); - } - - - } - else if (target == updates) { - updateIndex = updates.getSelectedIndex(); - if (updateIndex == 1) { - System.out.println("Doing coordinate update"); - ((GeometryArray)(shape.getGeometry())).updateData(this); - } - else if (updateIndex == 2) { - System.out.println("Doing color update"); - ((GeometryArray)(shape.getGeometry())).updateData(this); - } - - } - else if (target == vertexType) { - geo = ((GeometryArray)shape.getGeometry()); - if (vertexIndex == 0) { - geo.setCoordRefFloat(null); - } - else if (vertexIndex == 1) { - geo.setCoordRef3f(null); - } - vertexIndex = vertexType.getSelectedIndex(); - setVertex = true; - } - else if (target == colorType) { - geo = (GeometryArray) shape.getGeometry(); - if (colorIndex == 0) { - geo.setColorRefFloat(null); - } - else if (colorIndex == 1) { - geo.setColorRef3f(null); - } - colorIndex = colorType.getSelectedIndex(); - setColor = true; - } - - if (setVertex) { - geo = (GeometryArray) shape.getGeometry(); - if (vertexIndex == 0) { - if (geo instanceof IndexedGeometryArray) - geo.setCoordRefFloat(indexedFloatVerts); - else - geo.setCoordRefFloat(floatVerts); - } - else if (vertexIndex == 1) { - if (geo instanceof IndexedGeometryArray) - geo.setCoordRef3f(indexedP3fVerts); - else - geo.setCoordRef3f(p3fVerts); - } - - } - if (setColor) { - geo = (GeometryArray) shape.getGeometry(); - if (colorIndex == 0) { - if (geo instanceof IndexedGeometryArray) - geo.setColorRefFloat(indexedFloatClrs); - else - geo.setColorRefFloat(floatClrs); - } - else if (colorIndex == 1) { - if (geo instanceof IndexedGeometryArray) - geo.setColorRef3f(indexedC3fClrs); - else - geo.setColorRef3f(c3fClrs); - } - } - - } - - - - public static void main(String[] args) { - Frame frame = new MainFrame(new GeometryByReferenceTest(), 800, 800); - } - - public GeometryArray createGeometry (int type) { - GeometryArray tetra = null; - if (type == 1) { - tetra =new TriangleArray(12, - TriangleArray.COORDINATES| - TriangleArray.COLOR_3| - TriangleArray.BY_REFERENCE); - - tetra.setCoordRefFloat(floatVerts); - tetra.setColorRefFloat(floatClrs); - - } - else if (type == 2) { - tetra = new TriangleStripArray(12, - TriangleStripArray.COORDINATES| - TriangleStripArray.COLOR_3| - TriangleStripArray.BY_REFERENCE, - stripVertexCounts); - tetra.setCoordRefFloat(floatVerts); - tetra.setColorRefFloat(floatClrs); - - } - else if (type == 3) { // Indexed Geometry - tetra = new IndexedTriangleArray(4, - IndexedTriangleArray.COORDINATES| - IndexedTriangleArray.COLOR_3| - IndexedTriangleArray.BY_REFERENCE, - 12); - tetra.setCoordRefFloat(indexedFloatVerts); - tetra.setColorRefFloat(indexedFloatClrs); - ((IndexedTriangleArray)tetra).setCoordinateIndices(0, indices); - ((IndexedTriangleArray)tetra).setColorIndices(0, indices); - } - else if (type == 4) { // Indexed strip geometry - tetra = new IndexedTriangleStripArray(4, - IndexedTriangleStripArray.COORDINATES| - IndexedTriangleStripArray.COLOR_3| - IndexedTriangleStripArray.BY_REFERENCE, - 12, - stripVertexCounts); - tetra.setCoordRefFloat(indexedFloatVerts); - tetra.setColorRefFloat(indexedFloatClrs); - ((IndexedTriangleStripArray)tetra).setCoordinateIndices(0, indices); - ((IndexedTriangleStripArray)tetra).setColorIndices(0, indices); - } - - if (tetra != null) - tetra.setCapability(GeometryArray.ALLOW_REF_DATA_WRITE); - return tetra; - } - - public void updateData(Geometry geometry) { - int i; - float val; - - - if (updateIndex == 1) { // geometry - // Translate the geometry by a small amount in x - vertexCount++; - if ((vertexCount &1) == 1) - val = 0.2f; - else - val = -0.2f; - - if (vertexIndex == 0) { - // Do Indexed geometry - for (i = 0; i < indexedFloatVerts.length; i+=3) { - indexedFloatVerts[i] += val; - } - // Do non-indexed float geometry - for (i = 0; i < floatVerts.length; i+=3) { - floatVerts[i] += val; - } - } - else { - // If p3f do each point only once - for (i = 0; i < indexedP3fVerts.length; i++) { - indexedP3fVerts[i].x += val; - } - } - - } - else if (updateIndex == 2) { // colors - colorCount++; - if ((colorCount & 1) == 1) - val = 0.4f; - else - val = -0.4f; - if (colorIndex == 0) { - // Do Indexed geometry - for (i = 0; i < indexedFloatClrs.length; i+=3) { - indexedFloatClrs[i] += val; - } - // Do non-indexed float geometry - for (i = 0; i < floatClrs.length; i+=3) { - floatClrs[i] += val; - } - } - else { - // If c3f do each point only once - for (i = 0; i < indexedC3fClrs.length; i++) { - indexedC3fClrs[i].x += val; - } - } - - } - - } -} diff --git a/src/GeometryByReference/GeometryByReferenceTest_plugin.html b/src/GeometryByReference/GeometryByReferenceTest_plugin.html deleted file mode 100644 index 2e3b979..0000000 --- a/src/GeometryByReference/GeometryByReferenceTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>GeometryByReferenceTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 800 HEIGHT = 800 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "GeometryByReferenceTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "GeometryByReferenceTest.class" WIDTH = 800 HEIGHT = 800 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "GeometryByReferenceTest.class" WIDTH = 800 HEIGHT = 800 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/GeometryByReference/ImageComponentByReferenceTest.html b/src/GeometryByReference/ImageComponentByReferenceTest.html deleted file mode 100644 index a9b0d60..0000000 --- a/src/GeometryByReference/ImageComponentByReferenceTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>ImageComponentByReferenceTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="ImageComponentByReferenceTest.class" width=800 height=800> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/GeometryByReference/ImageComponentByReferenceTest.java b/src/GeometryByReference/ImageComponentByReferenceTest.java deleted file mode 100644 index 56ba367..0000000 --- a/src/GeometryByReference/ImageComponentByReferenceTest.java +++ /dev/null @@ -1,328 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.*; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.border.*; -import com.sun.j3d.utils.behaviors.mouse.*; -import com.sun.j3d.utils.image.TextureLoader; -import com.sun.j3d.utils.geometry.Sphere; -import com.sun.j3d.utils.geometry.Box; -import com.sun.j3d.utils.geometry.ColorCube; -import java.awt.image.*; -import java.awt.color.ColorSpace; -import com.sun.j3d.utils.geometry.*; - -public class ImageComponentByReferenceTest extends JApplet implements ActionListener { - - Shape3D s1,s2; - TextureLoader t0, t1, t2; - int count = 0; - - Appearance app = new Appearance(); - BranchGroup objRoot = new BranchGroup(); - TransformGroup objTrans = new TransformGroup(); - BufferedImage bImage1; - TiledImage checkBoard; - boolean yUp = false; - boolean byRef = true; - JComboBox rasterType, texType; - ImageComponent2D[] image = new ImageComponent2D[8]; - Appearance dummyApp = new Appearance(); - Texture2D texOne, texCheckBoard; - javax.media.j3d.Raster raster; - Box textureCube; - Shape3D boxShape; - int w1 = 64, h1 = 32, checkw = 16 , checkh = 16; - - private java.net.URL texImage = null; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph() { - objRoot = new BranchGroup(); - - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans.setCapability(Group.ALLOW_CHILDREN_WRITE); - - objRoot.addChild(objTrans); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - app.setCapability(Appearance.ALLOW_TEXTURE_WRITE); - - - textureCube = new Box(0.4f, 0.4f, 0.4f, - Box.GENERATE_TEXTURE_COORDS| - Box.GENERATE_NORMALS, app); - boxShape = textureCube.getShape(Box.FRONT); - boxShape.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); - objTrans.addChild(textureCube); - - checkBoard = new TiledImage(); - TextureLoader texLoader = new TextureLoader( texImage, this); - ImageComponent2D oneImage = texLoader.getImage(); - bImage1 = oneImage.getImage(); - - int index = 0; - image[index++] = new ImageComponent2D(oneImage.getFormat(), - (RenderedImage)bImage1, - false, - true); - - image[index++] = new ImageComponent2D(oneImage.getFormat(), - (RenderedImage)bImage1, - true, - true); - - - image[index++] = new ImageComponent2D(oneImage.getFormat(), - (RenderedImage)bImage1, - false, - false); - - - image[index++] = new ImageComponent2D(oneImage.getFormat(), - (RenderedImage)bImage1, - true, - false); - - createRaster(objRoot); - - image[index++] = new ImageComponent2D(ImageComponent.FORMAT_RGBA, - checkBoard, - false, - true); - - image[index++] = new ImageComponent2D(ImageComponent.FORMAT_RGBA, - checkBoard, - true, - true); - - - image[index++] = new ImageComponent2D(ImageComponent.FORMAT_RGBA, - checkBoard, - false, - false); - - - image[index++] = new ImageComponent2D(ImageComponent.FORMAT_RGBA, - checkBoard, - true, - false); - - - - texOne = new Texture2D(Texture.BASE_LEVEL, - Texture.RGBA, - image[2].getWidth(), image[2].getHeight()); - - texOne.setCapability(Texture.ALLOW_IMAGE_WRITE); - texOne.setImage(0, image[2]); - - app.setTexture(texOne); - - texCheckBoard = new Texture2D(Texture.BASE_LEVEL, - Texture.RGBA, - image[4].getWidth(), image[4].getHeight()); - - texCheckBoard.setCapability(Texture.ALLOW_IMAGE_WRITE); - objRoot.compile(); - return objRoot; - } - - public void actionPerformed(ActionEvent e ) { - Object target = e.getSource(); - - if (target == rasterType) { - if (rasterType.getSelectedIndex() < 4) { - raster.setSize(w1, h1); - } - else { - raster.setSize(checkw, checkh); - } - raster.setImage(image[rasterType.getSelectedIndex()]); - } - else if (target == texType) { - boxShape.setAppearance(dummyApp); - if (texType.getSelectedIndex() < 4) { - texOne.setImage(0, image[texType.getSelectedIndex()]); - app.setTexture(texOne); - } - else { - texCheckBoard.setImage(0, image[texType.getSelectedIndex()]); - app.setTexture(texCheckBoard); - } - - boxShape.setAppearance(app); - } - - - } - - JPanel createImagePanel() { - JPanel panel = new JPanel(); - String texVals[] = { "One_Yup_ByCopy", - "One_Yup_ByReference", - "One_Ydown_ByCopy", - "One_Ydown_ByReference", - "Checkered_Yup_ByCopy", - "Checkered_Yup_ByReference", - "Checkered_Ydown_ByCopy", - "Checkered_Ydown_ByReference"}; - - rasterType = new JComboBox(texVals); - rasterType.setLightWeightPopupEnabled(false); - rasterType.addActionListener(this); - rasterType.setSelectedIndex(2); - panel.add(new JLabel("Raster Image")); - panel.add(rasterType); - - texType = new JComboBox(texVals); - texType.setLightWeightPopupEnabled(false); - texType.addActionListener(this); - texType.setSelectedIndex(2); - panel.add(new JLabel("Texture Image")); - panel.add(texType); - return panel; - - } - - - - public ImageComponentByReferenceTest() - { - } - - public ImageComponentByReferenceTest(java.net.URL url) { - texImage = url; - } - - public void init() { - if (texImage == null) { - // the path to the image for an applet - try { - texImage = new java.net.URL(getCodeBase().toString() + - "../images/one.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - - Canvas3D c = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); - BranchGroup scene = createSceneGraph();u = new SimpleUniverse(c); - u.getViewingPlatform().setNominalViewingTransform(); - u.addBranchGraph(scene); - Container contentPane = getContentPane(); - JPanel p = new JPanel(); - BoxLayout boxlayout = new BoxLayout(p, - BoxLayout.Y_AXIS); - p.setLayout(boxlayout); - contentPane.add("Center", c); - - contentPane.add("South", p); - - p.add(createImagePanel()); - - } - - public void destroy() { - u.cleanup(); - } - - public static void main(String[] args) { - java.net.URL url = null; - // the path to the image file for an application - try { - url = new java.net.URL("file:../images/one.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - - new MainFrame(new ImageComponentByReferenceTest(url), 800, 700); - } - - void createRaster( BranchGroup scene) { - - - - // Create raster geometries and shapes - Vector3f trans = new Vector3f( ); - Transform3D tr = new Transform3D( ); - TransformGroup tg; - - // Left - raster = new javax.media.j3d.Raster( ); - raster.setCapability(javax.media.j3d.Raster.ALLOW_IMAGE_WRITE); - raster.setCapability(javax.media.j3d.Raster.ALLOW_SIZE_WRITE); - raster.setPosition( new Point3f( -0.9f, 0.75f, 0.0f ) ); - raster.setType( javax.media.j3d.Raster.RASTER_COLOR ); - raster.setOffset( 0, 0 ); - - raster.setSize( image[2].getWidth(), image[2].getHeight() ); - raster.setImage( image[2] ); - Shape3D sh = new Shape3D( raster, new Appearance( ) ); - scene.addChild( sh ); - - - - } -} - - - - diff --git a/src/GeometryByReference/ImageComponentByReferenceTest_plugin.html b/src/GeometryByReference/ImageComponentByReferenceTest_plugin.html deleted file mode 100644 index 6bf3689..0000000 --- a/src/GeometryByReference/ImageComponentByReferenceTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>ImageComponentByReferenceTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 800 HEIGHT = 800 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "ImageComponentByReferenceTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "ImageComponentByReferenceTest.class" WIDTH = 800 HEIGHT = 800 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "ImageComponentByReferenceTest.class" WIDTH = 800 HEIGHT = 800 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/GeometryByReference/InterleavedNIOBuffer.java b/src/GeometryByReference/InterleavedNIOBuffer.java deleted file mode 100644 index 816f8ae..0000000 --- a/src/GeometryByReference/InterleavedNIOBuffer.java +++ /dev/null @@ -1,534 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.*; -import com.sun.j3d.utils.universe.*; -import com.sun.j3d.utils.image.TextureLoader; -import javax.media.j3d.*; -import javax.vecmath.*; -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.border.*; -import com.sun.j3d.utils.behaviors.vp.*; -import java.nio.*; - -public class InterleavedNIOBuffer extends JApplet implements ActionListener { - - RenderingAttributes ra; - ColoringAttributes ca; - Material mat; - Appearance app; - JComboBox geomType; - JCheckBox transparency; - JCheckBox textureBox; - Shape3D shape; - TransparencyAttributes transp; - - GeometryArray tetraRegular, tetraStrip, tetraIndexed, tetraIndexedStrip; - GeometryArray[] geoArrays = new GeometryArray[4]; - - // Globally used colors - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - Color3f red = new Color3f(1.0f, 0.0f, 0.0f); - Color3f green = new Color3f(0.0f, 1.0f, 0.0f); - Color3f blue = new Color3f(0.0f, 0.0f, 1.0f); - Color3f[] colors = {white, red, green, blue}; - - private static final float sqrt3 = (float) Math.sqrt(3.0); - private static final float sqrt3_3 = sqrt3 / 3.0f; - private static final float sqrt24_3 = (float) Math.sqrt(24.0) / 3.0f; - - private static final float ycenter = 0.5f * sqrt24_3; - private static final float zcenter = -sqrt3_3; - - private static final Point3f p1 = - new Point3f(-1.0f, -ycenter, -zcenter); - private static final Point3f p2 = - new Point3f(1.0f, -ycenter, -zcenter); - private static final Point3f p3 = - new Point3f(0.0f, -ycenter, -sqrt3 - zcenter); - private static final Point3f p4 = - new Point3f(0.0f, sqrt24_3 - ycenter, 0.0f); - - private static final Point2f t1 = new Point2f(0.0f, 0.0f); - private static final Point2f t2 = new Point2f(0.5f, 1.0f); - private static final Point2f t3 = new Point2f(1.0f, 0.0f); - private static final Point2f t4 = new Point2f(1.0f, 1.0f); - - private static final Color3f c1 = new Color3f(1.0f, 0.0f, 0.0f); - private static final Color3f c2 = new Color3f(0.0f, 1.0f, 0.0f); - private static final Color3f c3 = new Color3f(0.0f, 1.0f, 1.0f); - private static final Color3f c4 = new Color3f(1.0f, 1.0f, 0.0f); - - - private static final float[] interleaved = { - t1.x, t1.y, - t1.x, t1.y, - c1.x, c1.y, c1.z, // front face - p1.x, p1.y, p1.z, // front face - t2.x, t2.y, - t2.x, t2.y, - c2.x, c2.y, c2.z, - p2.x, p2.y, p2.z, - t4.x, t4.y, - t4.x, t4.y, - c4.x, c4.y, c4.z, - p4.x, p4.y, p4.z, - - t1.x, t1.y, - t1.x, t1.y, - c1.x, c1.y, c1.z,// left, back face - p1.x, p1.y, p1.z,// left, back face - t4.x, t4.y, - t4.x, t4.y, - c4.x, c4.y, c4.z, - p4.x, p4.y, p4.z, - t3.x, t3.y, - t3.x, t3.y, - c3.x, c3.y, c3.z, - p3.x, p3.y, p3.z, - - t2.x, t2.y, - t2.x, t2.y, - c2.x, c2.y, c2.z,// right, back face - p2.x, p2.y, p2.z,// right, back face - t3.x, t3.y, - t3.x, t3.y, - c3.x, c3.y, c3.z, - p3.x, p3.y, p3.z, - t4.x, t4.y, - t4.x, t4.y, - c4.x, c4.y, c4.z, - p4.x, p4.y, p4.z, - - t1.x, t1.y, - t1.x, t1.y, - c1.x, c1.y, c1.z,// bottom face - p1.x, p1.y, p1.z,// bottom face - t3.x, t3.y, - t3.x, t3.y, - c3.x, c3.y, c3.z, - p3.x, p3.y, p3.z, - t2.x, t2.y, - t2.x, t2.y, - c2.x, c2.y, c2.z, - p2.x, p2.y, p2.z, - }; - - private static final float[] indexedInterleaved = { - t1.x,t1.y, - t1.x,t1.y, - c1.x,c1.y,c1.z, - p1.x,p1.y,p1.z, - t2.x,t2.y, - t2.x,t2.y, - c2.x,c2.y,c2.z, - p2.x,p2.y,p2.z, - t3.x,t3.y, - t3.x,t3.y, - c3.x,c3.y,c3.z, - p3.x,p3.y,p3.z, - t4.x,t4.y, - t4.x,t4.y, - c4.x,c4.y,c4.z, - p4.x,p4.y,p4.z, - }; - - - private static final int[] indices = {0,1,3,0,3,2,1,2,3,0,2,1}; - private int[] stripVertexCounts = {3,3,3,3}; - - TextureUnitState textureUnitState[] = new TextureUnitState[2]; - Texture tex1; - Texture tex2; - - private java.net.URL texImage1 = null; - private java.net.URL texImage2 = null; - - private SimpleUniverse u; - - private J3DBuffer interleavedBuffer; - private J3DBuffer indexedInterleavedBuffer; - - void createInterleavedBuffers() { - int size; - ByteOrder order = ByteOrder.nativeOrder(); - - size = (2 + 2 + 3 + 3 ) * 3 * 4; - FloatBuffer vertex = ByteBuffer.allocateDirect(size * 4).order(order).asFloatBuffer(); - vertex.put(interleaved, 0, size); - interleavedBuffer = new J3DBuffer(vertex); - - size = ( 2 + 2 + 3 + 3) * 4; - FloatBuffer indexedVertex = ByteBuffer.allocateDirect(size * 4).order(order).asFloatBuffer(); - indexedVertex.put(indexedInterleaved, 0, size); - indexedInterleavedBuffer = new J3DBuffer(indexedVertex); - } - - BranchGroup createSceneGraph() { - BranchGroup objRoot = new BranchGroup(); - - // Set up attributes to render lines - app = new Appearance(); - app.setCapability(Appearance.ALLOW_TEXTURE_UNIT_STATE_WRITE); - - transp = new TransparencyAttributes(); - transp.setTransparency(0.5f); - transp.setCapability(TransparencyAttributes.ALLOW_MODE_WRITE); - transp.setTransparencyMode(TransparencyAttributes.NONE); - app.setTransparencyAttributes(transp); - - // load textures - TextureAttributes texAttr1 = new TextureAttributes(); - texAttr1.setTextureMode(TextureAttributes.DECAL); - TextureAttributes texAttr2 = new TextureAttributes(); - texAttr2.setTextureMode(TextureAttributes.MODULATE); - - TextureLoader tex = new TextureLoader(texImage1, new String("RGB"), this); - if (tex == null) - return null; - tex1 = tex.getTexture(); - - tex = new TextureLoader(texImage2, new String("RGB"), this); - if (tex == null) - return null; - tex2 = tex.getTexture(); - - textureUnitState[0] = new TextureUnitState(tex1, texAttr1, null); - textureUnitState[1] = new TextureUnitState(tex2, texAttr2, null); - - createInterleavedBuffers(); - - tetraRegular = createGeometry(1); - tetraStrip =createGeometry(2); - tetraIndexed = createGeometry(3); - tetraIndexedStrip = createGeometry(4); - - geoArrays[0] = tetraRegular; - geoArrays[1] = tetraStrip; - geoArrays[2] = tetraIndexed; - geoArrays[3] = tetraIndexedStrip; - - shape = new Shape3D(tetraRegular, app); - shape.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); - - Transform3D t = new Transform3D(); - // move the object upwards - t.set(new Vector3f(0.0f, 0.3f, 0.0f)); - - // rotate the shape - Transform3D temp = new Transform3D(); - temp.rotX(Math.PI/4.0d); - t.mul(temp); - temp.rotY(Math.PI/4.0d); - t.mul(temp); - - // Shrink the object - t.setScale(0.6); - - TransformGroup trans = new TransformGroup(t); - trans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - trans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - - objRoot.addChild(trans); - trans.addChild(shape); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the global lights - Color3f lColor1 = new Color3f(0.7f, 0.7f, 0.7f); - Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, -1.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - - AmbientLight aLgt = new AmbientLight(alColor); - aLgt.setInfluencingBounds(bounds); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - lgt1.setInfluencingBounds(bounds); - objRoot.addChild(aLgt); - objRoot.addChild(lgt1); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - JPanel createGeometryByReferencePanel() { - JPanel panel = new JPanel(); - panel.setBorder(new TitledBorder("Geometry Type")); - - String values[] = {"Array", "Strip", "Indexed", "IndexedStrip"}; - geomType = new JComboBox(values); - geomType.setLightWeightPopupEnabled(false); - geomType.addActionListener(this); - geomType.setSelectedIndex(0); - panel.add(new JLabel("Geometry Type")); - panel.add(geomType); - - transparency = new JCheckBox("EnableTransparency", - false); - transparency.addActionListener(this); - panel.add(transparency); - - textureBox = new JCheckBox("EnableTexture", false); - textureBox.addActionListener(this); - panel.add(textureBox); - - return panel; - } - - public InterleavedNIOBuffer() { - } - - public InterleavedNIOBuffer(java.net.URL texURL1, java.net.URL texURL2) { - texImage1 = texURL1; - texImage2 = texURL2; - } - - public void init() { - - // create textures - - if (texImage1 == null) { - // the path to the image for an applet - try { - texImage1 = new java.net.URL(getCodeBase().toString() + - "../images/bg.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - - if (texImage2 == null) { - // the path to the image for an applet - try { - texImage2 = new java.net.URL(getCodeBase().toString() + - "../images/one.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - - Container contentPane = getContentPane(); - - Canvas3D c = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); - contentPane.add("Center", c); - - BranchGroup scene = createSceneGraph(); - // SimpleUniverse is a Convenience Utility class - u = new SimpleUniverse(c); - - // add mouse behaviors to the viewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - viewingPlatform.setNominalViewingTransform(); - - // add Orbit behavior to the viewing platform - OrbitBehavior orbit = new OrbitBehavior(c, OrbitBehavior.REVERSE_ALL); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - - u.addBranchGraph(scene); - - - // Create GUI - JPanel p = new JPanel(); - BoxLayout boxlayout = new BoxLayout(p, - BoxLayout.Y_AXIS); - p.add(createGeometryByReferencePanel()); - p.setLayout(boxlayout); - - contentPane.add("South", p); - } - - public void destroy() { - u.cleanup(); - } - - public void actionPerformed(ActionEvent e) { - Object target = e.getSource(); - if (target == geomType) { - shape.setGeometry(geoArrays[geomType.getSelectedIndex()]); - - } - else if (target == transparency) { - if (transparency.isSelected()) { - transp.setTransparencyMode(TransparencyAttributes.BLENDED); - } - else { - transp.setTransparencyMode(TransparencyAttributes.NONE); - } - } - else if (target == textureBox) { - if (textureBox.isSelected()) { - app.setTextureUnitState(textureUnitState); - } - else { - app.setTextureUnitState(null); - } - } - } - - - - public static void main(String[] args) { - java.net.URL texURL1 = null; - java.net.URL texURL2 = null; - // the path to the image for an application - try { - texURL1 = new java.net.URL("file:../images/bg.jpg"); - texURL2 = new java.net.URL("file:../images/one.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - - Frame frame = new MainFrame(new InterleavedNIOBuffer(texURL1, texURL2), - 800, 800); - } - - public GeometryArray createGeometry (int type) { - GeometryArray tetra = null; - int texCoordSetMap[] = {0, 0}; - - if (type == 1) { - tetra =new TriangleArray(12, - TriangleArray.COORDINATES| - TriangleArray.COLOR_3| - /* - TriangleArray.NORMAL_3| - */ - TriangleArray.TEXTURE_COORDINATE_2 | - TriangleArray.INTERLEAVED| - TriangleArray.BY_REFERENCE| - TriangleArray.USE_NIO_BUFFER, - 2, texCoordSetMap); - - tetra.setInterleavedVertexBuffer(interleavedBuffer); - - } - else if (type == 2) { - tetra = new TriangleStripArray(12, - TriangleStripArray.COORDINATES| - TriangleStripArray.COLOR_3| - /* - TriangleArray.NORMAL_3| - */ - TriangleArray.TEXTURE_COORDINATE_2 | - TriangleStripArray.INTERLEAVED| - TriangleStripArray.BY_REFERENCE| - TriangleStripArray.USE_NIO_BUFFER, - 2, texCoordSetMap, - stripVertexCounts); - tetra.setInterleavedVertexBuffer(interleavedBuffer); - - - } - else if (type == 3) { // Indexed Geometry - tetra = new IndexedTriangleArray(4, - IndexedTriangleArray.COORDINATES| - IndexedTriangleArray.COLOR_3| - /* - IndexedTriangleArray.NORMAL_3| - */ - IndexedTriangleArray.TEXTURE_COORDINATE_2 | - IndexedTriangleArray.INTERLEAVED| - IndexedTriangleArray.BY_REFERENCE| - IndexedTriangleArray.USE_NIO_BUFFER| - IndexedTriangleArray.USE_COORD_INDEX_ONLY, - 2, texCoordSetMap, - 12); - tetra.setInterleavedVertexBuffer(indexedInterleavedBuffer); - ((IndexedTriangleArray)tetra).setCoordinateIndices(0, indices); - /* - // Do not set color or texcoord indices in UCIO mode - ((IndexedTriangleArray)tetra).setColorIndices(0, indices); - ((IndexedTriangleArray)tetra).setTextureCoordinateIndices( - 0, 0, indices); - ((IndexedTriangleArray)tetra).setTextureCoordinateIndices( - 1, 0, indices); - */ - } - else if (type == 4) { // Indexed strip geometry - tetra = new IndexedTriangleStripArray(4, - IndexedTriangleStripArray.COORDINATES| - IndexedTriangleStripArray.COLOR_3| - /* - IndexedTriangleArray.NORMAL_3| - */ - IndexedTriangleArray.TEXTURE_COORDINATE_2 | - IndexedTriangleStripArray.INTERLEAVED| - IndexedTriangleStripArray.BY_REFERENCE| - IndexedTriangleStripArray.USE_NIO_BUFFER, - //IndexedTriangleStripArray.USE_COORD_INDEX_ONLY, - 2, texCoordSetMap, - 12, - stripVertexCounts); - tetra.setInterleavedVertexBuffer(indexedInterleavedBuffer); - ((IndexedTriangleStripArray)tetra).setCoordinateIndices(0, indices); - ((IndexedTriangleStripArray)tetra).setColorIndices(0, indices); - ((IndexedTriangleStripArray)tetra).setTextureCoordinateIndices( - 0, 0, indices); - ((IndexedTriangleStripArray)tetra).setTextureCoordinateIndices( - 1, 0, indices); - } - else if (type == 5) { // Interleaved array - } - return tetra; - } -} diff --git a/src/GeometryByReference/InterleavedTest.html b/src/GeometryByReference/InterleavedTest.html deleted file mode 100644 index 7aa9e10..0000000 --- a/src/GeometryByReference/InterleavedTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>InterleavedTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="InterleavedTest.class" width=800 height=800> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/GeometryByReference/InterleavedTest.java b/src/GeometryByReference/InterleavedTest.java deleted file mode 100644 index 29ec5ee..0000000 --- a/src/GeometryByReference/InterleavedTest.java +++ /dev/null @@ -1,504 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.*; -import com.sun.j3d.utils.universe.*; -import com.sun.j3d.utils.image.TextureLoader; -import javax.media.j3d.*; -import javax.vecmath.*; -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.border.*; -import com.sun.j3d.utils.behaviors.vp.*; - -public class InterleavedTest extends JApplet implements ActionListener { - - RenderingAttributes ra; - ColoringAttributes ca; - Material mat; - Appearance app; - JComboBox geomType; - JCheckBox transparency; - JCheckBox textureBox; - Shape3D shape; - TransparencyAttributes transp; - - GeometryArray tetraRegular, tetraStrip, tetraIndexed, tetraIndexedStrip; - GeometryArray[] geoArrays = new GeometryArray[4]; - - // Globally used colors - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - Color3f red = new Color3f(1.0f, 0.0f, 0.0f); - Color3f green = new Color3f(0.0f, 1.0f, 0.0f); - Color3f blue = new Color3f(0.0f, 0.0f, 1.0f); - Color3f[] colors = {white, red, green, blue}; - - private static final float sqrt3 = (float) Math.sqrt(3.0); - private static final float sqrt3_3 = sqrt3 / 3.0f; - private static final float sqrt24_3 = (float) Math.sqrt(24.0) / 3.0f; - - private static final float ycenter = 0.5f * sqrt24_3; - private static final float zcenter = -sqrt3_3; - - private static final Point3f p1 = - new Point3f(-1.0f, -ycenter, -zcenter); - private static final Point3f p2 = - new Point3f(1.0f, -ycenter, -zcenter); - private static final Point3f p3 = - new Point3f(0.0f, -ycenter, -sqrt3 - zcenter); - private static final Point3f p4 = - new Point3f(0.0f, sqrt24_3 - ycenter, 0.0f); - - private static final Point2f t1 = new Point2f(0.0f, 0.0f); - private static final Point2f t2 = new Point2f(0.5f, 1.0f); - private static final Point2f t3 = new Point2f(1.0f, 0.0f); - private static final Point2f t4 = new Point2f(1.0f, 1.0f); - - private static final Color3f c1 = new Color3f(1.0f, 0.0f, 0.0f); - private static final Color3f c2 = new Color3f(0.0f, 1.0f, 0.0f); - private static final Color3f c3 = new Color3f(0.0f, 1.0f, 1.0f); - private static final Color3f c4 = new Color3f(1.0f, 1.0f, 0.0f); - - - private static final float[] interleaved = { - t1.x, t1.y, - t1.x, t1.y, - c1.x, c1.y, c1.z, // front face - p1.x, p1.y, p1.z, // front face - t2.x, t2.y, - t2.x, t2.y, - c2.x, c2.y, c2.z, - p2.x, p2.y, p2.z, - t4.x, t4.y, - t4.x, t4.y, - c4.x, c4.y, c4.z, - p4.x, p4.y, p4.z, - - t1.x, t1.y, - t1.x, t1.y, - c1.x, c1.y, c1.z,// left, back face - p1.x, p1.y, p1.z,// left, back face - t4.x, t4.y, - t4.x, t4.y, - c4.x, c4.y, c4.z, - p4.x, p4.y, p4.z, - t3.x, t3.y, - t3.x, t3.y, - c3.x, c3.y, c3.z, - p3.x, p3.y, p3.z, - - t2.x, t2.y, - t2.x, t2.y, - c2.x, c2.y, c2.z,// right, back face - p2.x, p2.y, p2.z,// right, back face - t3.x, t3.y, - t3.x, t3.y, - c3.x, c3.y, c3.z, - p3.x, p3.y, p3.z, - t4.x, t4.y, - t4.x, t4.y, - c4.x, c4.y, c4.z, - p4.x, p4.y, p4.z, - - t1.x, t1.y, - t1.x, t1.y, - c1.x, c1.y, c1.z,// bottom face - p1.x, p1.y, p1.z,// bottom face - t3.x, t3.y, - t3.x, t3.y, - c3.x, c3.y, c3.z, - p3.x, p3.y, p3.z, - t2.x, t2.y, - t2.x, t2.y, - c2.x, c2.y, c2.z, - p2.x, p2.y, p2.z, - }; - - private static final float[] indexedInterleaved = { - t1.x,t1.y, - t1.x,t1.y, - c1.x,c1.y,c1.z, - p1.x,p1.y,p1.z, - t2.x,t2.y, - t2.x,t2.y, - c2.x,c2.y,c2.z, - p2.x,p2.y,p2.z, - t3.x,t3.y, - t3.x,t3.y, - c3.x,c3.y,c3.z, - p3.x,p3.y,p3.z, - t4.x,t4.y, - t4.x,t4.y, - c4.x,c4.y,c4.z, - p4.x,p4.y,p4.z, - }; - - - private static final int[] indices = {0,1,3,0,3,2,1,2,3,0,2,1}; - private int[] stripVertexCounts = {3,3,3,3}; - - TextureUnitState textureUnitState[] = new TextureUnitState[2]; - Texture tex1; - Texture tex2; - - private java.net.URL texImage1 = null; - private java.net.URL texImage2 = null; - - private SimpleUniverse u; - - BranchGroup createSceneGraph() { - BranchGroup objRoot = new BranchGroup(); - - // Set up attributes to render lines - app = new Appearance(); - app.setCapability(Appearance.ALLOW_TEXTURE_UNIT_STATE_WRITE); - - transp = new TransparencyAttributes(); - transp.setTransparency(0.5f); - transp.setCapability(TransparencyAttributes.ALLOW_MODE_WRITE); - transp.setTransparencyMode(TransparencyAttributes.NONE); - app.setTransparencyAttributes(transp); - - // load textures - TextureAttributes texAttr1 = new TextureAttributes(); - texAttr1.setTextureMode(TextureAttributes.DECAL); - TextureAttributes texAttr2 = new TextureAttributes(); - texAttr2.setTextureMode(TextureAttributes.MODULATE); - - TextureLoader tex = new TextureLoader(texImage1, new String("RGB"), this); - if (tex == null) - return null; - tex1 = tex.getTexture(); - - tex = new TextureLoader(texImage2, new String("RGB"), this); - if (tex == null) - return null; - tex2 = tex.getTexture(); - - textureUnitState[0] = new TextureUnitState(tex1, texAttr1, null); - textureUnitState[1] = new TextureUnitState(tex2, texAttr2, null); - - tetraRegular = createGeometry(1); - tetraStrip =createGeometry(2); - tetraIndexed = createGeometry(3); - tetraIndexedStrip = createGeometry(4); - - geoArrays[0] = tetraRegular; - geoArrays[1] = tetraStrip; - geoArrays[2] = tetraIndexed; - geoArrays[3] = tetraIndexedStrip; - - shape = new Shape3D(tetraRegular, app); - shape.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); - - Transform3D t = new Transform3D(); - // move the object upwards - t.set(new Vector3f(0.0f, 0.3f, 0.0f)); - - // rotate the shape - Transform3D temp = new Transform3D(); - temp.rotX(Math.PI/4.0d); - t.mul(temp); - temp.rotY(Math.PI/4.0d); - t.mul(temp); - - // Shrink the object - t.setScale(0.6); - - TransformGroup trans = new TransformGroup(t); - trans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - trans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - - objRoot.addChild(trans); - trans.addChild(shape); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the global lights - Color3f lColor1 = new Color3f(0.7f, 0.7f, 0.7f); - Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, -1.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - - AmbientLight aLgt = new AmbientLight(alColor); - aLgt.setInfluencingBounds(bounds); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - lgt1.setInfluencingBounds(bounds); - objRoot.addChild(aLgt); - objRoot.addChild(lgt1); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - JPanel createGeometryByReferencePanel() { - JPanel panel = new JPanel(); - panel.setBorder(new TitledBorder("Geometry Type")); - - String values[] = {"Array", "Strip", "Indexed", "IndexedStrip"}; - geomType = new JComboBox(values); - geomType.setLightWeightPopupEnabled(false); - geomType.addActionListener(this); - geomType.setSelectedIndex(0); - panel.add(new JLabel("Geometry Type")); - panel.add(geomType); - - transparency = new JCheckBox("EnableTransparency", - false); - transparency.addActionListener(this); - panel.add(transparency); - - textureBox = new JCheckBox("EnableTexture", false); - textureBox.addActionListener(this); - panel.add(textureBox); - - return panel; - } - - public InterleavedTest() { - } - - public InterleavedTest(java.net.URL texURL1, java.net.URL texURL2) { - texImage1 = texURL1; - texImage2 = texURL2; - } - - public void init() { - - // create textures - - if (texImage1 == null) { - // the path to the image for an applet - try { - texImage1 = new java.net.URL(getCodeBase().toString() + - "../images/bg.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - - if (texImage2 == null) { - // the path to the image for an applet - try { - texImage2 = new java.net.URL(getCodeBase().toString() + - "../images/one.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - - Container contentPane = getContentPane(); - - Canvas3D c = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); - contentPane.add("Center", c); - - BranchGroup scene = createSceneGraph(); - // SimpleUniverse is a Convenience Utility class - u = new SimpleUniverse(c); - - // add mouse behaviors to the viewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - viewingPlatform.setNominalViewingTransform(); - - // add Orbit behavior to the viewing platform - OrbitBehavior orbit = new OrbitBehavior(c, OrbitBehavior.REVERSE_ALL); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - - u.addBranchGraph(scene); - - - // Create GUI - JPanel p = new JPanel(); - BoxLayout boxlayout = new BoxLayout(p, - BoxLayout.Y_AXIS); - p.add(createGeometryByReferencePanel()); - p.setLayout(boxlayout); - - contentPane.add("South", p); - } - - public void destroy() { - u.cleanup(); - } - - public void actionPerformed(ActionEvent e) { - Object target = e.getSource(); - if (target == geomType) { - shape.setGeometry(geoArrays[geomType.getSelectedIndex()]); - - } - else if (target == transparency) { - if (transparency.isSelected()) { - transp.setTransparencyMode(TransparencyAttributes.BLENDED); - } - else { - transp.setTransparencyMode(TransparencyAttributes.NONE); - } - } - else if (target == textureBox) { - if (textureBox.isSelected()) { - app.setTextureUnitState(textureUnitState); - } - else { - app.setTextureUnitState(null); - } - } - } - - - - public static void main(String[] args) { - java.net.URL texURL1 = null; - java.net.URL texURL2 = null; - // the path to the image for an application - try { - texURL1 = new java.net.URL("file:../images/bg.jpg"); - texURL2 = new java.net.URL("file:../images/one.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - - Frame frame = new MainFrame(new InterleavedTest(texURL1, texURL2), - 800, 800); - } - - public GeometryArray createGeometry (int type) { - GeometryArray tetra = null; - int texCoordSetMap[] = {0, 0}; - - if (type == 1) { - tetra =new TriangleArray(12, - TriangleArray.COORDINATES| - TriangleArray.COLOR_3| - /* - TriangleArray.NORMAL_3| - */ - TriangleArray.TEXTURE_COORDINATE_2 | - TriangleArray.INTERLEAVED| - TriangleArray.BY_REFERENCE, - 2, texCoordSetMap); - - tetra.setInterleavedVertices(interleaved); - - } - else if (type == 2) { - tetra = new TriangleStripArray(12, - TriangleStripArray.COORDINATES| - TriangleStripArray.COLOR_3| - /* - TriangleArray.NORMAL_3| - */ - TriangleArray.TEXTURE_COORDINATE_2 | - TriangleStripArray.INTERLEAVED| - TriangleStripArray.BY_REFERENCE, - 2, texCoordSetMap, - stripVertexCounts); - tetra.setInterleavedVertices(interleaved); - - - } - else if (type == 3) { // Indexed Geometry - tetra = new IndexedTriangleArray(4, - IndexedTriangleArray.COORDINATES| - IndexedTriangleArray.COLOR_3| - /* - IndexedTriangleArray.NORMAL_3| - */ - IndexedTriangleArray.TEXTURE_COORDINATE_2 | - IndexedTriangleArray.INTERLEAVED| - IndexedTriangleArray.BY_REFERENCE, - 2, texCoordSetMap, - 12); - tetra.setInterleavedVertices(indexedInterleaved); - ((IndexedTriangleArray)tetra).setCoordinateIndices(0, indices); - ((IndexedTriangleArray)tetra).setColorIndices(0, indices); - ((IndexedTriangleArray)tetra).setTextureCoordinateIndices( - 0, 0, indices); - ((IndexedTriangleArray)tetra).setTextureCoordinateIndices( - 1, 0, indices); - } - else if (type == 4) { // Indexed strip geometry - tetra = new IndexedTriangleStripArray(4, - IndexedTriangleStripArray.COORDINATES| - IndexedTriangleStripArray.COLOR_3| - /* - IndexedTriangleArray.NORMAL_3| - */ - IndexedTriangleArray.TEXTURE_COORDINATE_2 | - IndexedTriangleStripArray.INTERLEAVED| - IndexedTriangleStripArray.BY_REFERENCE, - 2, texCoordSetMap, - 12, - stripVertexCounts); - tetra.setInterleavedVertices(indexedInterleaved); - ((IndexedTriangleStripArray)tetra).setCoordinateIndices(0, indices); - ((IndexedTriangleStripArray)tetra).setColorIndices(0, indices); - ((IndexedTriangleStripArray)tetra).setTextureCoordinateIndices( - 0, 0, indices); - ((IndexedTriangleStripArray)tetra).setTextureCoordinateIndices( - 1, 0, indices); - } - else if (type == 5) { // Interleaved array - } - return tetra; - } -} diff --git a/src/GeometryByReference/InterleavedTest_plugin.html b/src/GeometryByReference/InterleavedTest_plugin.html deleted file mode 100644 index 87af1cb..0000000 --- a/src/GeometryByReference/InterleavedTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>InterleavedTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 800 HEIGHT = 800 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "InterleavedTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "InterleavedTest.class" WIDTH = 800 HEIGHT = 800 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "InterleavedTest.class" WIDTH = 800 HEIGHT = 800 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/GeometryByReference/TiledImage.java b/src/GeometryByReference/TiledImage.java deleted file mode 100644 index 9294997..0000000 --- a/src/GeometryByReference/TiledImage.java +++ /dev/null @@ -1,356 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.*; -import java.awt.image.*; -import java.util.Vector; -import java.awt.color.ColorSpace; - -public class TiledImage extends Object implements RenderedImage { - - - WritableRaster[][] tile = new WritableRaster[3][3]; - - WritableRaster bigTile; - ComponentColorModel colorModel; - BufferedImage checkBoard; - int minX = -2; - int minY = -1; - - TiledImage() { - ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB); - int[] nBits = {8, 8, 8, 8}; - int i, j, k, cc = 255; - int[] bandOffset = new int[4]; - colorModel = - new ComponentColorModel(cs, nBits, true, false, Transparency.OPAQUE, 0); - // Create 9 tiles - bandOffset[0] = 3; - bandOffset[1] = 2; - bandOffset[2] = 1; - bandOffset[3] = 0; - for (i = 0; i < 3; i++) { - for (j = 0; j < 3; j++) { - tile[i][j] = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, 8, 8 , 32, 4, bandOffset, null); - } - } - - // tile {-2, -1} - byte[] byteData = ((DataBufferByte)tile[0][0].getDataBuffer()).getData(); - for (i=4, k = 8 * 4 * 4+4 * 4;i < 8;i++, k+= 16){ - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)cc; - byteData[k+2] = (byte)0; - byteData[k+3] = (byte)cc ; - } - } - - // tile {-1, -1} - byteData = ((DataBufferByte)tile[1][0].getDataBuffer()).getData(); - for (i=4, k = 8 * 4 * 4;i < 8;i++){ - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)cc; - byteData[k+2] = (byte)0; - byteData[k+3] = (byte)cc ; - } - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)0; - byteData[k+3] = (byte)cc ; - } - } - - // tile {1, -1} - byteData = ((DataBufferByte)tile[2][0].getDataBuffer()).getData(); - for (i=4, k = 8 * 4 * 4;i < 8;i++, k+= 16){ - for (j=0;j < 4;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)0; - byteData[k+3] = (byte)cc ; - } - } - - // tile {-2, 0} - byteData = ((DataBufferByte)tile[0][1].getDataBuffer()).getData(); - for (i=0, k = 16;i < 4;i++, k+=16){ - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)cc; - byteData[k+2] = (byte)0; - byteData[k+3] = (byte)cc ; - } - } - for (i=4, k = 8*4*4+16;i < 8;i++, k+=16){ - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)cc; - byteData[k+3] = (byte)0 ; - } - } - // tile {-1, 0} - byteData = ((DataBufferByte)tile[1][1].getDataBuffer()).getData(); - for (i=0, k = 0;i < 4;i++){ - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)cc; - byteData[k+2] = (byte)0; - byteData[k+3] = (byte)cc ; - } - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)0; - byteData[k+3] = (byte)cc ; - } - } - for (i=0, k = 8 * 4 * 4;i < 4;i++){ - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)cc; - byteData[k+3] = (byte)0 ; - } - - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)cc; - byteData[k+3] = (byte)cc ; - } - - } - - - // tile {0, 0} - byteData = ((DataBufferByte)tile[2][1].getDataBuffer()).getData(); - for (i=0, k = 0;i < 4;i++, k+= 16) { - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)0; - byteData[k+3] = (byte)cc ; - } - } - for (i=4, k = 8 * 4* 4;i < 8;i++, k+= 16) { - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)cc; - byteData[k+3] = (byte)cc ; - } - } - - - // tile {-2, 1} - byteData = ((DataBufferByte)tile[0][2].getDataBuffer()).getData(); - for (i=4, k = 16;i < 8;i++, k+= 16) { - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)cc; - byteData[k+3] = (byte)0 ; - } - } - - - // tile {-1, 1} - byteData = ((DataBufferByte)tile[1][2].getDataBuffer()).getData(); - for (i=0, k = 0;i < 8;i++) { - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)cc; - byteData[k+3] = (byte)0 ; - } - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)cc; - byteData[k+3] = (byte)cc ; - } - } - - - - // tile {0, 1} - byteData = ((DataBufferByte)tile[2][2].getDataBuffer()).getData(); - for (i=4, k = 0;i < 8;i++, k+= 16) { - for (j=4;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)cc; - byteData[k+3] = (byte)cc ; - } - } - - bigTile = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, 16, 16 , 64, 4, bandOffset, null);; - byteData = ((DataBufferByte)bigTile.getDataBuffer()).getData(); - for (i=0, k = 0;i < 8;i++){ - for (j=0;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)cc; - byteData[k+2] = (byte)0; - byteData[k+3] = (byte)cc ; - } - for (;j < 16;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)0; - byteData[k+3] = (byte)cc ; - } - } - for (;i < 16;i++){ - for (j=0;j < 8;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)cc; - byteData[k+3] = (byte)0; - } - for (;j < 16;j++, k+=4){ - byteData[k] = (byte)0; - byteData[k+1] = (byte)0; - byteData[k+2] = (byte)cc; - byteData[k+3] = (byte)cc ; - } - } - checkBoard = new BufferedImage(colorModel, bigTile, false, null); - } - - - - // create four tiles {r, g, b, y} - public WritableRaster copyData(WritableRaster raster) { - return checkBoard.copyData(raster); - } - - public ColorModel getColorModel() { - return checkBoard.getColorModel(); - } - - public Raster getData() { - return checkBoard.getData(); - } - - public Raster getData(Rectangle rect) { - return checkBoard.getData(rect); - } - - public int getHeight() { - return 16; - } - - public int getMinTileX() { - return minX; - } - - public int getMinTileY() { - return minY; - } - - public int getMinX () { - return -8; - } - - public int getMinY () { - return -8; - } - - public int getNumXTiles() { - return 3; - } - - public int getNumYTiles() { - return 3; - } - - public Object getProperty(String name) { - return checkBoard.getProperty(name); - } - - public String[] getPropertyNames() { - return checkBoard.getPropertyNames(); - } - - - public SampleModel getSampleModel() { - return checkBoard.getSampleModel(); - } - - public Vector getSources() { - return null; - } - - public Raster getTile(int tileX, int tileY) { - return tile[tileX- minX][tileY - minY]; - } - - public int getTileGridXOffset() { - return 4; - } - - public int getTileGridYOffset() { - return -4; - } - - - public int getTileHeight() { - return 8; - } - - - public int getTileWidth() { - return 8; - } - - public int getWidth() { - return 16; - } -} - - diff --git a/src/GeometryByReference/build.xml b/src/GeometryByReference/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/GeometryByReference/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/GeometryCompression/ObjectFileCompressor.html b/src/GeometryCompression/ObjectFileCompressor.html deleted file mode 100644 index 7540a8f..0000000 --- a/src/GeometryCompression/ObjectFileCompressor.html +++ /dev/null @@ -1,437 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd"> -<!--NewPage--> -<HTML> -<HEAD> -<!-- Generated by javadoc on Sat May 22 22:02:52 PDT 1999 --> -<TITLE> -: Class ObjectFileCompressor -</TITLE> -<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style"> -</HEAD> -<BODY BGCOLOR="white"> - -<!-- ========== START OF NAVBAR ========== --> -<A NAME="navbar_top"><!-- --></A> -<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0"> -<TR> -<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> -<A NAME="navbar_top_firstrow"><!-- --></A> -<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3"> - <TR ALIGN="center" VALIGN="top"> - <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> - <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT ID="NavBarFont1"><B>Tree</B></FONT></A> </TD> - <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT ID="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> - <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT ID="NavBarFont1"><B>Index</B></FONT></A> </TD> - <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT ID="NavBarFont1"><B>Help</B></FONT></A> </TD> - </TR> -</TABLE> -</TD> -<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> -</EM> -</TD> -</TR> - -<TR> -<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> - PREV CLASS - NEXT CLASS</FONT></TD> -<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> - <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A> - <A HREF="ObjectFileCompressor.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD> -</TR> -<TR> -<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> - SUMMARY: INNER | <A HREF="#fields_inherited_from_class_com.sun.j3d.loaders.objectfile.ObjectFile">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> -<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> -DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD> -</TR> -</TABLE> -<!-- =========== END OF NAVBAR =========== --> - -<HR> -<!-- ======== START OF CLASS DATA ======== --> -<H2> -Class ObjectFileCompressor</H2> -<PRE> -java.lang.Object - | - +--com.sun.j3d.loaders.objectfile.ObjectFile - | - +--<B>ObjectFileCompressor</B> -</PRE> -<HR> -<DL> -<DT>public class <B>ObjectFileCompressor</B><DT>extends com.sun.j3d.loaders.objectfile.ObjectFile</DL> - -<P> -This extension of ObjectFile provides the methods setQuantization() and - compress() to compress Wavefront .obj files into the format described by - appendix B of the Java 3D specification. -<P> -<HR> - -<P> -<!-- ======== INNER CLASS SUMMARY ======== --> - - -<!-- =========== FIELD SUMMARY =========== --> - -<A NAME="fields_inherited_from_class_com.sun.j3d.loaders.objectfile.ObjectFile"><!-- --></A> -<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> -<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> -<TD><B>Fields inherited from class com.sun.j3d.loaders.objectfile.ObjectFile</B></TD> -</TR> -<TR BGCOLOR="white" CLASS="TableRowColor"> -<TD><CODE>RESIZE, -REVERSE, -STRIPIFY, -TRIANGULATE</CODE></TD> -</TR> -</TABLE> - -<!-- ======== CONSTRUCTOR SUMMARY ======== --> - -<A NAME="constructor_summary"><!-- --></A> -<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<TD COLSPAN=2><FONT SIZE="+2"> -<B>Constructor Summary</B></FONT></TD> -</TR> -<TR BGCOLOR="white" CLASS="TableRowColor"> -<TD><CODE><B><A HREF="ObjectFileCompressor.html#ObjectFileCompressor()">ObjectFileCompressor</A></B>()</CODE> - -<BR> - </TD> -</TR> -<TR BGCOLOR="white" CLASS="TableRowColor"> -<TD><CODE><B><A HREF="ObjectFileCompressor.html#ObjectFileCompressor(int)">ObjectFileCompressor</A></B>(int flags)</CODE> - -<BR> - </TD> -</TR> -<TR BGCOLOR="white" CLASS="TableRowColor"> -<TD><CODE><B><A HREF="ObjectFileCompressor.html#ObjectFileCompressor(int, float)">ObjectFileCompressor</A></B>(int flags, - float radians)</CODE> - -<BR> - </TD> -</TR> -</TABLE> - -<!-- ========== METHOD SUMMARY =========== --> - -<A NAME="method_summary"><!-- --></A> -<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<TD COLSPAN=2><FONT SIZE="+2"> -<B>Method Summary</B></FONT></TD> -</TR> -<TR BGCOLOR="white" CLASS="TableRowColor"> -<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> -<CODE> javax.media.j3d.CompressedGeometry</CODE></FONT></TD> -<TD><CODE><B><A HREF="ObjectFileCompressor.html#compress(java.io.Reader)">compress</A></B>(java.io.Reader reader)</CODE> - -<BR> - Compress the specified .obj file into a CompressedGeometry node - component.</TD> -</TR> -<TR BGCOLOR="white" CLASS="TableRowColor"> -<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> -<CODE> void</CODE></FONT></TD> -<TD><CODE><B><A HREF="ObjectFileCompressor.html#compress(java.io.Reader, com.sun.j3d.utils.compression.CompressedGeometryFile)">compress</A></B>(java.io.Reader reader, - com.sun.j3d.utils.compression.CompressedGeometryFile file)</CODE> - -<BR> - Compress the specified .obj file and add it to the end of an open - compressed geometry file.</TD> -</TR> -<TR BGCOLOR="white" CLASS="TableRowColor"> -<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> -<CODE> javax.media.j3d.CompressedGeometry</CODE></FONT></TD> -<TD><CODE><B><A HREF="ObjectFileCompressor.html#compress(java.lang.String)">compress</A></B>(java.lang.String objFileName)</CODE> - -<BR> - Compress the specified .obj file into a CompressedGeometry node - component.</TD> -</TR> -<TR BGCOLOR="white" CLASS="TableRowColor"> -<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> -<CODE> void</CODE></FONT></TD> -<TD><CODE><B><A HREF="ObjectFileCompressor.html#compress(java.lang.String, com.sun.j3d.utils.compression.CompressedGeometryFile)">compress</A></B>(java.lang.String objFileName, - com.sun.j3d.utils.compression.CompressedGeometryFile file)</CODE> - -<BR> - Compress the specified .obj file and add it to the end of an open - compressed geometry file.</TD> -</TR> -<TR BGCOLOR="white" CLASS="TableRowColor"> -<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> -<CODE> javax.media.j3d.CompressedGeometry</CODE></FONT></TD> -<TD><CODE><B><A HREF="ObjectFileCompressor.html#compress(java.net.URL)">compress</A></B>(java.net.URL url)</CODE> - -<BR> - Compress the specified .obj file into a CompressedGeometry node - component.</TD> -</TR> -<TR BGCOLOR="white" CLASS="TableRowColor"> -<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> -<CODE> void</CODE></FONT></TD> -<TD><CODE><B><A HREF="ObjectFileCompressor.html#compress(java.net.URL, com.sun.j3d.utils.compression.CompressedGeometryFile)">compress</A></B>(java.net.URL url, - com.sun.j3d.utils.compression.CompressedGeometryFile file)</CODE> - -<BR> - Compress the specified .obj file and add it to the end of an open - compressed geometry file.</TD> -</TR> -<TR BGCOLOR="white" CLASS="TableRowColor"> -<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> -<CODE> void</CODE></FONT></TD> -<TD><CODE><B><A HREF="ObjectFileCompressor.html#setFlags(int)">setFlags</A></B>(int flags)</CODE> - -<BR> - </TD> -</TR> -<TR BGCOLOR="white" CLASS="TableRowColor"> -<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> -<CODE> void</CODE></FONT></TD> -<TD><CODE><B><A HREF="ObjectFileCompressor.html#setQuantization(int, int, int)">setQuantization</A></B>(int positionQuant, - int colorQuant, - int normalQuant)</CODE> - -<BR> - Set the position, normal, and color quantization values for compression.</TD> -</TR> -</TABLE> - <A NAME="methods_inherited_from_class_com.sun.j3d.loaders.objectfile.ObjectFile"><!-- --></A> -<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> -<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> -<TD><B>Methods inherited from class com.sun.j3d.loaders.objectfile.ObjectFile</B></TD> -</TR> -<TR BGCOLOR="white" CLASS="TableRowColor"> -<TD><CODE>getBasePath, -getBaseUrl, -getFlags, -load, -load, -load, -setBasePath, -setBaseUrl</CODE></TD> -</TR> -</TABLE> - <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A> -<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> -<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> -<TD><B>Methods inherited from class java.lang.Object</B></TD> -</TR> -<TR BGCOLOR="white" CLASS="TableRowColor"> -<TD><CODE>clone, -equals, -finalize, -getClass, -hashCode, -notify, -notifyAll, -toString, -wait, -wait, -wait</CODE></TD> -</TR> -</TABLE> - -<P> - -<!-- ============ FIELD DETAIL =========== --> - - -<!-- ========= CONSTRUCTOR DETAIL ======== --> - -<A NAME="constructor_detail"><!-- --></A> -<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<TD COLSPAN=1><FONT SIZE="+2"> -<B>Constructor Detail</B></FONT></TD> -</TR> -</TABLE> - -<A NAME="ObjectFileCompressor()"><!-- --></A><H3> -ObjectFileCompressor</H3> -<PRE> -public <B>ObjectFileCompressor</B>()</PRE> -<DL> -</DL> -<HR> - -<A NAME="ObjectFileCompressor(int)"><!-- --></A><H3> -ObjectFileCompressor</H3> -<PRE> -public <B>ObjectFileCompressor</B>(int flags)</PRE> -<DL> -</DL> -<HR> - -<A NAME="ObjectFileCompressor(int, float)"><!-- --></A><H3> -ObjectFileCompressor</H3> -<PRE> -public <B>ObjectFileCompressor</B>(int flags, - float radians)</PRE> -<DL> -</DL> - -<!-- ============ METHOD DETAIL ========== --> - -<A NAME="method_detail"><!-- --></A> -<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<TD COLSPAN=1><FONT SIZE="+2"> -<B>Method Detail</B></FONT></TD> -</TR> -</TABLE> - -<A NAME="setFlags(int)"><!-- --></A><H3> -setFlags</H3> -<PRE> -public void <B>setFlags</B>(int flags)</PRE> -<DL> -<DD><DL> -<DT><B>Overrides:</B><DD>setFlags in class com.sun.j3d.loaders.objectfile.ObjectFile</DL> -</DD> -</DL> -<HR> - -<A NAME="setQuantization(int, int, int)"><!-- --></A><H3> -setQuantization</H3> -<PRE> -public void <B>setQuantization</B>(int positionQuant, - int colorQuant, - int normalQuant)</PRE> -<DL> -<DD>Set the position, normal, and color quantization values for compression.<DD><DL> -<DT><B>Parameters:</B><DD><CODE>positionQuant</CODE> - number of bits to quantize each position's X, Y, - and Z components, ranging from 1 to 16 with a default of 10<DD><CODE>colorQuant</CODE> - number of bits to quantize each color's R, G, B, and - alpha components, ranging from 2 to 16 with a default of 8<DD><CODE>normalQuant</CODE> - number of bits for quantizing each normal's U and V - components, ranging from 0 to 6 with a default of 3</DL> -</DD> -</DL> -<HR> - -<A NAME="compress(java.lang.String)"><!-- --></A><H3> -compress</H3> -<PRE> -public javax.media.j3d.CompressedGeometry <B>compress</B>(java.lang.String objFileName)</PRE> -<DL> -<DD>Compress the specified .obj file into a CompressedGeometry node - component.<DD><DL> -<DT><B>Parameters:</B><DD><CODE>objFileName</CODE> - String object representing the path to a .obj file<DT><B>Returns:</B><DD>a CompressedGeometry node component</DL> -</DD> -</DL> -<HR> - -<A NAME="compress(java.lang.String, com.sun.j3d.utils.compression.CompressedGeometryFile)"><!-- --></A><H3> -compress</H3> -<PRE> -public void <B>compress</B>(java.lang.String objFileName, - com.sun.j3d.utils.compression.CompressedGeometryFile file) - throws java.io.IOException</PRE> -<DL> -<DD>Compress the specified .obj file and add it to the end of an open - compressed geometry file.<DD><DL> -<DT><B>Parameters:</B><DD><CODE>objFileName</CODE> - String object representing the path to a .obj file<DD><CODE>file</CODE> - a currently open CompressedGeometryFile object<DT><B>Throws:</B><DD>java.io.IOException - - if write fails</DL> -</DD> -</DL> -<HR> - -<A NAME="compress(java.io.Reader)"><!-- --></A><H3> -compress</H3> -<PRE> -public javax.media.j3d.CompressedGeometry <B>compress</B>(java.io.Reader reader)</PRE> -<DL> -<DD>Compress the specified .obj file into a CompressedGeometry node - component.<DD><DL> -<DT><B>Parameters:</B><DD><CODE>reader</CODE> - an open .obj file<DT><B>Returns:</B><DD>a CompressedGeometry node component</DL> -</DD> -</DL> -<HR> - -<A NAME="compress(java.io.Reader, com.sun.j3d.utils.compression.CompressedGeometryFile)"><!-- --></A><H3> -compress</H3> -<PRE> -public void <B>compress</B>(java.io.Reader reader, - com.sun.j3d.utils.compression.CompressedGeometryFile file) - throws java.io.IOException</PRE> -<DL> -<DD>Compress the specified .obj file and add it to the end of an open - compressed geometry file.<DD><DL> -<DT><B>Parameters:</B><DD><CODE>reader</CODE> - an open .obj file<DD><CODE>file</CODE> - an open CompressedGeometryFile object<DT><B>Throws:</B><DD>java.io.IOException - - if write fails</DL> -</DD> -</DL> -<HR> - -<A NAME="compress(java.net.URL)"><!-- --></A><H3> -compress</H3> -<PRE> -public javax.media.j3d.CompressedGeometry <B>compress</B>(java.net.URL url)</PRE> -<DL> -<DD>Compress the specified .obj file into a CompressedGeometry node - component.<DD><DL> -<DT><B>Parameters:</B><DD><CODE>url</CODE> - Uniform Resource Locator for the .obj file<DT><B>Returns:</B><DD>a CompressedGeometry node component</DL> -</DD> -</DL> -<HR> - -<A NAME="compress(java.net.URL, com.sun.j3d.utils.compression.CompressedGeometryFile)"><!-- --></A><H3> -compress</H3> -<PRE> -public void <B>compress</B>(java.net.URL url, - com.sun.j3d.utils.compression.CompressedGeometryFile file) - throws java.io.IOException</PRE> -<DL> -<DD>Compress the specified .obj file and add it to the end of an open - compressed geometry file.<DD><DL> -<DT><B>Parameters:</B><DD><CODE>url</CODE> - Uniform Resource Locator for the .obj file<DD><CODE>file</CODE> - a currently open CompressedGeometryFile object<DT><B>Throws:</B><DD>java.io.IOException - - if write fails</DL> -</DD> -</DL> -<!-- ========= END OF CLASS DATA ========= --> -<HR> - -<!-- ========== START OF NAVBAR ========== --> -<A NAME="navbar_bottom"><!-- --></A> -<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0"> -<TR> -<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> -<A NAME="navbar_bottom_firstrow"><!-- --></A> -<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3"> - <TR ALIGN="center" VALIGN="top"> - <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> - <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT ID="NavBarFont1"><B>Tree</B></FONT></A> </TD> - <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT ID="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> - <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT ID="NavBarFont1"><B>Index</B></FONT></A> </TD> - <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT ID="NavBarFont1"><B>Help</B></FONT></A> </TD> - </TR> -</TABLE> -</TD> -<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> -</EM> -</TD> -</TR> - -<TR> -<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> - PREV CLASS - NEXT CLASS</FONT></TD> -<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> - <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A> - <A HREF="ObjectFileCompressor.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD> -</TR> -<TR> -<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> - SUMMARY: INNER | <A HREF="#fields_inherited_from_class_com.sun.j3d.loaders.objectfile.ObjectFile">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> -<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> -DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD> -</TR> -</TABLE> -<!-- =========== END OF NAVBAR =========== --> - -<HR> - -</BODY> -</HTML> diff --git a/src/GeometryCompression/ObjectFileCompressor.java b/src/GeometryCompression/ObjectFileCompressor.java deleted file mode 100644 index 9b99d24..0000000 --- a/src/GeometryCompression/ObjectFileCompressor.java +++ /dev/null @@ -1,247 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.compression.* ; -import com.sun.j3d.loaders.objectfile.ObjectFile ; -import com.sun.j3d.loaders.ParsingErrorException ; -import com.sun.j3d.loaders.IncorrectFormatException ; -import com.sun.j3d.loaders.Scene ; -import javax.media.j3d.* ; -import java.util.* ; -import java.net.* ; -import java.io.* ; - -/** - * This extension of ObjectFile provides the methods setQuantization() and - * compress() to compress Wavefront .obj files into the format described by - * appendix B of the Java 3D specification. - */ -public class ObjectFileCompressor extends ObjectFile { - private GeometryCompressor compressor = null ; - - public ObjectFileCompressor() { - super(STRIPIFY | TRIANGULATE) ; - compressor = new GeometryCompressor() ; - } - - public ObjectFileCompressor(int flags) { - super(flags | STRIPIFY | TRIANGULATE) ; - compressor = new GeometryCompressor() ; - } - - public ObjectFileCompressor(int flags, float radians) { - super(flags | STRIPIFY | TRIANGULATE, radians) ; - compressor = new GeometryCompressor() ; - } - - public void setFlags(int flags) { - super.setFlags(flags | STRIPIFY | TRIANGULATE) ; - } - - private int positionQuant = 10 ; - private int colorQuant = 8 ; - private int normalQuant = 3 ; - - /** - * Set the position, normal, and color quantization values for compression. - * @param positionQuant number of bits to quantize each position's X, Y, - * and Z components, ranging from 1 to 16 with a default of 10 - * @param colorQuant number of bits to quantize each color's R, G, B, and - * alpha components, ranging from 2 to 16 with a default of 8 - * @param normalQuant number of bits for quantizing each normal's U and V - * components, ranging from 0 to 6 with a default of 3 - */ - public void setQuantization(int positionQuant, - int colorQuant, - int normalQuant) { - - this.positionQuant = positionQuant ; - this.colorQuant = colorQuant ; - this.normalQuant = normalQuant ; - } - - /** - * Compress the specified .obj file into a CompressedGeometry node - * component. - * @param objFileName String object representing the path to a .obj file - * @return a CompressedGeometry node component - */ - public CompressedGeometry compress(String objFileName) { - return compressScene(getScene(objFileName)) ; - } - - /** - * Compress the specified .obj file and add it to the end of an open - * compressed geometry file. - * @param objFileName String object representing the path to a .obj file - * @param file a currently open CompressedGeometryFile object - * @exception IOException - if write fails - */ - public void compress(String objFileName, CompressedGeometryFile file) - throws IOException { - compressScene(getScene(objFileName), file) ; - } - - /** - * Compress the specified .obj file into a CompressedGeometry node - * component. - * @param reader an open .obj file - * @return a CompressedGeometry node component - */ - public CompressedGeometry compress(Reader reader) { - return compressScene(getScene(reader)) ; - } - - /** - * Compress the specified .obj file and add it to the end of an open - * compressed geometry file. - * @param reader an open .obj file - * @param file an open CompressedGeometryFile object - * @exception IOException - if write fails - */ - public void compress(Reader reader, CompressedGeometryFile file) - throws IOException { - compressScene(getScene(reader), file) ; - } - - /** - * Compress the specified .obj file into a CompressedGeometry node - * component. - * @param url Uniform Resource Locator for the .obj file - * @return a CompressedGeometry node component - */ - public CompressedGeometry compress(URL url) { - return compressScene(getScene(url)) ; - } - - /** - * Compress the specified .obj file and add it to the end of an open - * compressed geometry file. - * @param url Uniform Resource Locator for the .obj file - * @param file a currently open CompressedGeometryFile object - * @exception IOException - if write fails - */ - public void compress(URL url, CompressedGeometryFile file) - throws IOException { - compressScene(getScene(url), file) ; - } - - private CompressedGeometry compressScene(Scene scene) { - return compressor.compress(getStream(scene)) ; - } - - private void compressScene(Scene scene, CompressedGeometryFile file) - throws IOException { - compressor.compress(getStream(scene), file) ; - } - - private CompressionStream getStream(Scene scene) { - Hashtable objs = scene.getNamedObjects() ; - Shape3D shapes[] = new Shape3D[objs.size()] ; - - objs.values().toArray(shapes) ; - return new CompressionStream(positionQuant, colorQuant, normalQuant, - shapes) ; - } - - private Scene getScene(String objFileName) { - Scene scene = null ; - try { - scene = load(objFileName) ; - } - catch (FileNotFoundException e) { - System.err.println(e) ; - System.exit(1) ; - } - catch (ParsingErrorException e) { - System.err.println(e) ; - System.exit(1) ; - } - catch (IncorrectFormatException e) { - System.err.println(e) ; - System.exit(1) ; - } - return scene ; - } - - private Scene getScene(Reader reader) { - Scene scene = null ; - try { - scene = load(reader) ; - } - catch (FileNotFoundException e) { - System.err.println(e) ; - System.exit(1) ; - } - catch (ParsingErrorException e) { - System.err.println(e) ; - System.exit(1) ; - } - catch (IncorrectFormatException e) { - System.err.println(e) ; - System.exit(1) ; - } - return scene ; - } - - private Scene getScene(URL url) { - Scene scene = null ; - try { - scene = load(url) ; - } - catch (FileNotFoundException e) { - System.err.println(e) ; - System.exit(1) ; - } - catch (ParsingErrorException e) { - System.err.println(e) ; - System.exit(1) ; - } - catch (IncorrectFormatException e) { - System.err.println(e) ; - System.exit(1) ; - } - return scene ; - } -} diff --git a/src/GeometryCompression/README b/src/GeometryCompression/README deleted file mode 100644 index 45a20c6..0000000 --- a/src/GeometryCompression/README +++ /dev/null @@ -1,67 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -This directory contains example code for using compressed geometry in -Java 3D through the com.sun.j3d.utils.compression package. - -Applications: - - obj2cg -- takes the names of .obj files to compress followed by the name - of a .cg compressed geometry resource file. If the .cg file - doesn't exist, then an attempt is made to create it; otherwise, - new compressed geometry objects are appended to the end. - - The .obj files are compressed and stored into the .cg file in - the order in which they appear in the command line, and can be - accessed through indices [0 .. fileCount-1] - - cgview -- takes the name of a .cg file and the index of the object to - display, which can range from [0 .. objectCount-1]. The object - may rotated, scaled, and translated in response to mouse drags. - - -Utility classes: - - ObjectFileCompressor.java -- - Extends ObjectFile with compression methods. diff --git a/src/GeometryCompression/build.xml b/src/GeometryCompression/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/GeometryCompression/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/GeometryCompression/cgview.java b/src/GeometryCompression/cgview.java deleted file mode 100644 index b3840a8..0000000 --- a/src/GeometryCompression/cgview.java +++ /dev/null @@ -1,212 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.compression.* ; -import com.sun.j3d.utils.behaviors.vp.* ; -import com.sun.j3d.utils.applet.MainFrame ; -import com.sun.j3d.utils.universe.* ; -import javax.media.j3d.* ; -import javax.vecmath.* ; -import java.applet.Applet ; -import java.awt.BorderLayout ; -import java.awt.event.* ; -import java.io.* ; - -public class cgview extends Applet { - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph(CompressedGeometry cg) { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup() ; - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup() ; - Transform3D t3d = new Transform3D() ; - t3d.setScale(0.7) ; - objScale.setTransform(t3d) ; - objRoot.addChild(objScale) ; - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup() ; - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE) ; - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ) ; - objScale.addChild(objTrans) ; - - // Add compressed geometry to the scene graph. - CompressedGeometryHeader hdr = new CompressedGeometryHeader() ; - cg.getCompressedGeometryHeader(hdr) ; - - // There isn't really enough information in the compressed geometry - // header to unamiguously determine the proper rendering attributes. - // The bufferDataPresent field specifies whether or not normals are - // bundled with vertices, but the compressed buffer can still contain - // normals that should be lit. Assume that any surface geometry - // should be lit and that lines and points should not unless the - // header contains the NORMAL_IN_BUFFER bit. - Material m = new Material() ; - if ((hdr.bufferType == hdr.TRIANGLE_BUFFER) || - ((hdr.bufferDataPresent & hdr.NORMAL_IN_BUFFER) == 1)) - m.setLightingEnable(true) ; - else - m.setLightingEnable(false) ; - - Appearance a = new Appearance() ; - a.setMaterial(m) ; - - objTrans.addChild(new Shape3D(cg, a)) ; - - // Create mouse behavior scheduling bounds. - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0) ; - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.5f); - Background bgNode = new Background(bgColor) ; - bgNode.setApplicationBounds(bounds) ; - objRoot.addChild(bgNode) ; - - // Set up the ambient light - Color3f ambientColor = new Color3f(0.1f, 0.1f, 0.1f) ; - AmbientLight ambientLightNode = new AmbientLight(ambientColor) ; - ambientLightNode.setInfluencingBounds(bounds) ; - objRoot.addChild(ambientLightNode) ; - - // Set up the directional lights - Color3f light1Color = new Color3f(1.0f, 1.0f, 0.9f) ; - Vector3f light1Direction = new Vector3f(1.0f, 1.0f, 1.0f) ; - Color3f light2Color = new Color3f(1.0f, 1.0f, 0.9f) ; - Vector3f light2Direction = new Vector3f(-1.0f, -1.0f, -0.9f) ; - - DirectionalLight light1 - = new DirectionalLight(light1Color, light1Direction) ; - light1.setInfluencingBounds(bounds) ; - objRoot.addChild(light1) ; - - DirectionalLight light2 - = new DirectionalLight(light2Color, light2Direction) ; - light2.setInfluencingBounds(bounds) ; - objRoot.addChild(light2) ; - - return objRoot ; - } - - private void usage() { - System.out.println("Usage: cgview <.cg file> <object index>") ; - System.exit(0) ; - } - - public cgview(String args[]) { - if (args.length < 1) - usage() ; - - int index ; - if (args.length < 2) - index = 0 ; - else - index = Integer.parseInt(args[1]) ; - - String filename = args[0] ; - if (filename == null) - usage() ; - - // Read the compressed geometry. - CompressedGeometry cg = null ; - try { - CompressedGeometryFile cgf ; - cgf = new CompressedGeometryFile(filename, false) ; - - if (cgf.getObjectCount() == 0) { - System.out.println("no objects were found in " + filename) ; - System.exit(0) ; - } - - cg = cgf.read(index) ; - cgf.close() ; - - } catch (IOException e) { - System.out.println(e) ; - System.exit(0) ; - } - - setLayout(new BorderLayout()) ; - Canvas3D c = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); - add("Center", c) ; - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(cg) ; - u = new SimpleUniverse(c) ; - - // add mouse behaviors to the ViewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - viewingPlatform.setNominalViewingTransform(); - - OrbitBehavior orbit = new OrbitBehavior(c, OrbitBehavior.REVERSE_ALL); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - - u.addBranchGraph(scene) ; - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows cgview to be run as an application - // as well as an applet. - // - public static void main(String[] args) { - new MainFrame(new cgview(args), 700, 700) ; - } -} diff --git a/src/GeometryCompression/obj2cg.java b/src/GeometryCompression/obj2cg.java deleted file mode 100644 index 45ab1c6..0000000 --- a/src/GeometryCompression/obj2cg.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.compression.* ; -import javax.media.j3d.* ; -import java.io.* ; - -class obj2cg { - - public static void main(String args[]) throws IOException { - if (args.length < 2) { - System.out.println - ("obj2cg wants the names of .obj files to compress,\n" + - "followed by the name of a .cg file to create or to\n" + - "which to append.") ; - System.exit(0) ; - } - - CompressedGeometryFile file ; - file = new CompressedGeometryFile(args[args.length-1], true) ; - - ObjectFileCompressor compressor ; - compressor = new ObjectFileCompressor() ; - - for (int i = 0 ; i < args.length-1 ; i++) - compressor.compress(args[i], file) ; - - file.close() ; - } -} diff --git a/src/HelloUniverse/HelloUniverse.form b/src/HelloUniverse/HelloUniverse.form deleted file mode 100644 index 48fadea..0000000 --- a/src/HelloUniverse/HelloUniverse.form +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> - -<Form version="1.0" type="org.netbeans.modules.form.forminfo.JFrameFormInfo"> - <Properties> - <Property name="defaultCloseOperation" type="int" value="3"/> - <Property name="title" type="java.lang.String" value="HelloUniverse"/> - </Properties> - <SyntheticProperties> - <SyntheticProperty name="formSizePolicy" type="int" value="1"/> - </SyntheticProperties> - <AuxValues> - <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> - <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> - <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,44,0,0,1,-112"/> - </AuxValues> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="drawingPanel"> - <Properties> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[250, 250]"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> - <BorderConstraints direction="Center"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> - </Container> - </SubComponents> -</Form> diff --git a/src/HelloUniverse/HelloUniverse.java b/src/HelloUniverse/HelloUniverse.java deleted file mode 100644 index de8f783..0000000 --- a/src/HelloUniverse/HelloUniverse.java +++ /dev/null @@ -1,167 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.universe.*; -import com.sun.j3d.utils.geometry.ColorCube; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.awt.GraphicsConfiguration; - -/** - * Simple Java 3D example program to display a spinning cube. - */ -public class HelloUniverse extends javax.swing.JFrame { - - private SimpleUniverse univ = null; - private BranchGroup scene = null; - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create the TransformGroup node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at run time. Add it to - // the root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objRoot.addChild(objTrans); - - // Create a simple Shape3D node; add it to the scene graph. - objTrans.addChild(new ColorCube(0.4)); - - // Create a new Behavior object that will perform the - // desired operation on the specified transform and add - // it into the scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, 4000); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotator.setSchedulingBounds(bounds); - objRoot.addChild(rotator); - - // Have Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - private Canvas3D createUniverse() { - // Get the preferred graphics configuration for the default screen - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - // Create a Canvas3D using the preferred configuration - Canvas3D c = new Canvas3D(config); - - // Create simple universe with view branch - univ = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - univ.getViewingPlatform().setNominalViewingTransform(); - - // Ensure at least 5 msec per frame (i.e., < 200Hz) - univ.getViewer().getView().setMinimumFrameCycleTime(5); - - return c; - } - - /** - * Creates new form HelloUniverse - */ - public HelloUniverse() { - // Initialize the GUI components - initComponents(); - - // Create Canvas3D and SimpleUniverse; add canvas to drawing panel - Canvas3D c = createUniverse(); - drawingPanel.add(c, java.awt.BorderLayout.CENTER); - - // Create the content branch and add it to the universe - scene = createSceneGraph(); - univ.addBranchGraph(scene); - } - - // ---------------------------------------------------------------- - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents - private void initComponents() { - drawingPanel = new javax.swing.JPanel(); - - setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); - setTitle("HelloUniverse"); - drawingPanel.setLayout(new java.awt.BorderLayout()); - - drawingPanel.setPreferredSize(new java.awt.Dimension(250, 250)); - getContentPane().add(drawingPanel, java.awt.BorderLayout.CENTER); - - pack(); - }// </editor-fold>//GEN-END:initComponents - - /** - * @param args the command line arguments - */ - public static void main(String args[]) { - java.awt.EventQueue.invokeLater(new Runnable() { - public void run() { - new HelloUniverse().setVisible(true); - } - }); - } - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JPanel drawingPanel; - // End of variables declaration//GEN-END:variables - -} diff --git a/src/HelloUniverse/build.xml b/src/HelloUniverse/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/HelloUniverse/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/LOD/LOD.html b/src/LOD/LOD.html deleted file mode 100644 index 91fc95b..0000000 --- a/src/LOD/LOD.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>LOD</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="LOD.class" width=512 height=512> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/LOD/LOD.java b/src/LOD/LOD.java deleted file mode 100644 index dcceac4..0000000 --- a/src/LOD/LOD.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.*; -import com.sun.j3d.utils.behaviors.vp.*; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class LOD extends Applet { - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - createLights(objRoot); - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - objRoot.addChild(objTrans); - - // Create a switch to hold the different levels of detail - Switch sw = new Switch(0); - sw.setCapability(javax.media.j3d.Switch.ALLOW_SWITCH_READ); - sw.setCapability(javax.media.j3d.Switch.ALLOW_SWITCH_WRITE); - - - // Create several levels for the switch, with less detailed - // spheres for the ones which will be used when the sphere is - // further away - sw.addChild(new Sphere(0.4f, Sphere.GENERATE_NORMALS, 40)); - sw.addChild(new Sphere(0.4f, Sphere.GENERATE_NORMALS, 20)); - sw.addChild(new Sphere(0.4f, Sphere.GENERATE_NORMALS, 10)); - sw.addChild(new Sphere(0.4f, Sphere.GENERATE_NORMALS, 3)); - - // Add the switch to the main group - objTrans.addChild(sw); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // set up the DistanceLOD behavior - float[] distances = new float[3]; - distances[0] = 5.0f; - distances[1] = 10.0f; - distances[2] = 25.0f; - DistanceLOD lod = new DistanceLOD(distances); - lod.addSwitch(sw); - lod.setSchedulingBounds(bounds); - objTrans.addChild(lod); - - // Have Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - private void createLights(BranchGroup graphRoot) { - - // Create a bounds for the light source influence - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the global, ambient light - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - AmbientLight aLgt = new AmbientLight(alColor); - aLgt.setInfluencingBounds(bounds); - graphRoot.addChild(aLgt); - - // Set up the directional (infinite) light source - Color3f lColor1 = new Color3f(0.9f, 0.9f, 0.9f); - Vector3f lDir1 = new Vector3f(1.0f, 1.0f, -1.0f); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - lgt1.setInfluencingBounds(bounds); - graphRoot.addChild(lgt1); - } - - - public LOD() { - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // only add zoom mouse behavior to viewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - viewingPlatform.setNominalViewingTransform(); - - // add orbit behavior to the ViewingPlatform, but disable rotate - // and translate - OrbitBehavior orbit = new OrbitBehavior(c, - OrbitBehavior.REVERSE_ZOOM | - OrbitBehavior.DISABLE_ROTATE | - OrbitBehavior.DISABLE_TRANSLATE); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows LOD to be run as an application - // as well as an applet - // - public static void main(String[] args) { - new MainFrame(new LOD(), 512, 512); - } -} diff --git a/src/LOD/LOD_plugin.html b/src/LOD/LOD_plugin.html deleted file mode 100644 index b286450..0000000 --- a/src/LOD/LOD_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>LOD</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 512 HEIGHT = 512 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "LOD.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "LOD.class" WIDTH = 512 HEIGHT = 512 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "LOD.class" WIDTH = 512 HEIGHT = 512 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/LOD/build.xml b/src/LOD/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/LOD/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/Lightwave/README.txt b/src/Lightwave/README.txt deleted file mode 100644 index c37f4d9..0000000 --- a/src/Lightwave/README.txt +++ /dev/null @@ -1,321 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - - Release Notes for the Lightwave 3D Java3D Loader - ------------------------------------------------ - Updated May 13, 1998 - - - -These release notes are intended to document the known working and -non-working features of the loader. This is important because the loader -implements an important subset of Lightwave functionality, but it definitely -skips many major features of Lightwave files. Please read these notes -to make sure that the features you need are actually implemented. Or -if you see differences between Lightwave display of your file and -the Java3D version of that file, take a look at these notes to see -what might not be working properly. - - -Testing the Loader ------------------- -The application in this directory (Viewer) is intended to be a very -basic test application for loading/viewing Lightwave 3D models. To -use the program, type: - java Viewer <filename> -where <filename> is the name of a valid Lightwave 3D scene file that is -reachable from the current directory. There is a very basic test file -included in this directory called ballcone.lws. To load/view that file, -type: - java Viewer ballcone.lws -Note that Lightwave scene files (*.lws) embed the pathnames to object -files (*.lwo) within them, and that object files have pathnames -to image files (for textures) embedded in them. Whatever those -pathnames are in those files must be valid for the directory in which -you are running the application that loads the scene file. For example, -if I was loading in a scene file that referred to an object file -called "data/object.lwo", then the file "object.lwo" should be located in -a subdirectory of this current directory called "data". - - -Summary of Loader ------------------ -The Lw3d loader was intended to implement a major subset of the features in -Lightwave 3D that would be used for realtime 3D animations. That is, any -features (such as Bones and other high-end rendering -options) which would require significant rendering time were simply -not doable. These more advanced features are intended to be rendered -off-line, saving each frame separately and later compositing them -together into an animation. But Java3D is a realtime 3D rendering -system, so these type of animations just do not map into a Java3D viewer -very well. - -Another category of non-implemented items are those that we simply have not -yet gotten to. There are a few known features of Lightwave files that -would work well through Java3D but just haven't been implemented in the -loader yet. - -Although there are a lot of features that are not yet implemented, -the basics of Lightwave 3D functionality (scene creation, animating -objects/lights/cameras, different surface properties) all work pretty -much as expected. So try it out and let us know non-documented items -that didn't work properly. - - -Details of Non-Implemented Features ------------------------------------ -This list is probably not comprehensive, but hopefully points out most of -the features or areas where the implementation is incomplete (or not -there at all). - - -Limitations of Scene Files (*.lws) ----------------------------------- -1) Bones/Skeleton -Bones functionality is not implemented at all. Unfortunately, this -great feature of Lightwave 3D is not currently implementable in the -loader because the processing time that it would take to compute -frames based on Bones data would be far more than a real-time rendering -system can afford. - -The loader may, at some future point, provide a mechanism to read -in frames of geometry that were saved from Lightwave Bones descriptions. -That is, there are plug-ins available for Lightwave 3D that allow you -to save out files with Bones information as a series of files with -pre-calculated geometry for each frame; eventually we would like the -Lightwave 3D loader to support those files. - -Workaround: None; the best and only workaround is to find a different -method of animating your objects. - - -2) Spline paths -Spline paths will be interpreted as linear piecewise paths instead, -traveling between each control point specified for the spline. - -Workaround: Specify linear paths. If your path looks too hard-jointed -through the loader, specify more keyframes for the path to smooth it out. - - -3) Object Scaling -Scaling objects in the scene (versus the object files) is currently -ignored. - -Workaround: scale the objects in their individual object files. - - -4) Shadows -Shadows options are ignored in the loader. - -Workaround: None. - - -5) Envelopes -Most envelopes are ignored. There are a couple of exceptions to this, -such as light intensity envelopes, but even those features have not been -completely implemented and tested. - -Workaround: None. - - -6) Camera effects -All advanced-rendering camera effects are ignored in the loader. This -includes the following items in Lightwave 3D files: - - Lens Flare - - F-stop - - Focal Distance - - Blur Length - - Dissolves - - Glow - - Zoom - - Intensity Falloff - - Antialiasing - -Workaround: None. - - -7) Inverse Kinematics -IK options such as Goal Objects and Anchors are ignored. - -Workaround: Animate objects directly instead of indirectly via IK. - - -8) Morphs -All morph options are ignored. - -Workaround: None. - - -9) Display properties -Lightwave allows you to specify surface properties for different rendering -modes (e.g., wireframe color). All of these parameters are ignored and -the full properties of any item are used at all times. - -Workaround: None. - - -10) Various Surface Properties -Various minor surface properties are currently ignored, including: - - Polygon size - - Dissolves - - Clip map - - Unaffected by fog - - Edge parameters - -Workaround: None. - - -11) Lights -The following items are currently ignored for Light objects: - - Target objects - - Flare parameters - - Shadow options - -Workaround: None for flares or shadows. For targeting problems, animate the -light directly (versus indirectly through using Target). - - -12) Camera Targeting -The Target option for Camera objects is currently ignored by the loader. - -Workaround: Animate the camera directly (versus indirectly through using -Target). - - -13) Effects -Most effects (from the Effects dialog box in the layout program) are -ignored, save for fog (which should accept all parameters) and -backdrop colors (solid backdrops only - gradient backdrops are -ignored). - -Workaround: None. - - -14) Render Options -Most options from the Render dialog box are ignored - most of these pertain -to saving the animation in any case (something that doesn't happen through -the Loader). - -Workaround: None. - - - -Limitations of Object Files (*.lwo) ------------------------------------ -1) MetaNURBS -Geometry stored in MetaNURBS format will be ignored by the loader. - -Workaround: pre-tessellate your MetaNURBS surfaces and save your -geometry (object) files in that format. - - -2) Layered Object Files -There is currently no support for the "Layered Object File Format" -of Lightwave 3D. - -Workaround: None. - - -3) Reflectivity -There is no way to reproduce the reflective properties of surfaces -through Java3D, so any reflectivity settings in Lightwave object files -will be ignored. - -Workaround: None. - - -4) Refraction -Refractive properties of surfaces are ignored. - -Workaround: None. - - -5) Edge Transparency -Edge transparency properties are ignored. - -Workaround. None. - - -6) Texture types -Texture mapping is currently somewhat limited in the loader. The following -types of texture mapping effects should work: - - Diffuse (the texture modifies the Diffuse aspects of the surface) - - Color (the texture modifies the Color properties of the surface). -Textures that attempt to modify other parameters of the surface will -be ignored. - -Also, the following texture types should work: - - Planar Image Map - - Spherical Image Map - - Cylindrical Image Map -Other kinds of mappings will not work (including Marble, Grid, Dots, etc.) - -Some Texture parameters will not work. The following should work correctly: - - size - - center -Advanced texture parameters such as falloff and velocity will be ignored. - -Summary: There are so many texture mapping parameters in Lightwave 3D that -it's difficult to produce a list of all of the items that won't work -properly. In a nutshell, basic decal-type (color modifying) or brightness -(diffuse modifying) textures that are mapped as planes, spheres, or -cylinders should work correctly. Anything else will probably not work. - -Workaround: Use the basics. - - -7) Plug-ins -There is currently no support for any plug-in capabilities. For example, -if there are plug-in shaders specified for your file, those shaders will be -ignored. - -Workaround: None. - - -8) Image Sequences -There is no support for image sequences - textures must be static files. - -Workaround: None. - - diff --git a/src/Lightwave/Viewer.html b/src/Lightwave/Viewer.html deleted file mode 100644 index 27b6d1e..0000000 --- a/src/Lightwave/Viewer.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Lightwave Viewer Demo</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="Viewer.class" width=256 height=256> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/Lightwave/Viewer.java b/src/Lightwave/Viewer.java deleted file mode 100644 index 25a6c56..0000000 --- a/src/Lightwave/Viewer.java +++ /dev/null @@ -1,207 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; - -import javax.media.j3d.BranchGroup; -import javax.media.j3d.Canvas3D; -import javax.media.j3d.Transform3D; -import javax.media.j3d.TransformGroup; -import javax.media.j3d.View; -import javax.vecmath.Matrix4d; - -import com.sun.j3d.loaders.lw3d.Lw3dLoader; -import com.sun.j3d.loaders.Loader; -import com.sun.j3d.loaders.Scene; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.SimpleUniverse; - - -/** - * This class loads in a Lightwave3D file and displays it in an applet - * window. The application is fairly basic; a more complete version - * of a Lightwave 3D loader might incorporate features such as - * settable clip plane distances and animated views (these are both - * possible with the current Lightwave 3D loader, they just need to - * be implemented in the application). - */ -public class Viewer extends Applet { - - private java.net.URL filename; - private SimpleUniverse u; - - public Viewer(java.net.URL url) { - filename = url; - } - - public Viewer() {} - - public void init() { - if (filename == null) { - // the path to the file for an applet - try { - java.net.URL path = getCodeBase(); - filename = new java.net.URL(path.toString() + - "./ballcone.lws"); - } - catch (java.net.MalformedURLException ex) { - System.err.println(ex.getMessage()); - ex.printStackTrace(); - System.exit(1); - } - } - - // Construct the Lw3d loader and load the file - Loader lw3dLoader = new Lw3dLoader(Loader.LOAD_ALL); - Scene loaderScene = null; - try { - loaderScene = lw3dLoader.load(filename); - } - catch (Exception e) { - e.printStackTrace(); - System.exit(1); - } - - // Construct the applet canvas - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a basic universe setup and the root of our scene - u = new SimpleUniverse(c); - BranchGroup sceneRoot = new BranchGroup(); - - // Change the back clip distance; the default is small for - // some lw3d worlds - View theView = u.getViewer().getView(); - theView.setBackClipDistance(50000f); - - // Now add the scene graph defined in the lw3d file - if (loaderScene.getSceneGroup() != null) { - // Instead of using the default view location (which may be - // completely bogus for the particular file you're loading), - // let's use the initial view from the file. We can get - // this by getting the view groups from the scene (there's - // only one for Lightwave 3D), then using the inverse of the - // transform on that view as the transform for the entire scene. - - // First, get the view groups (shouldn't be null unless there - // was something wrong in the load - TransformGroup viewGroups[] = loaderScene.getViewGroups(); - - // Get the Transform3D from the view and invert it - Transform3D t = new Transform3D(); - viewGroups[0].getTransform(t); - Matrix4d m = new Matrix4d(); - t.get(m); - m.invert(); - t.set(m); - - // Now we've got the transform we want. Create an - // appropriate TransformGroup and parent the scene to it. - // Then insert the new group into the main BranchGroup. - TransformGroup sceneTransform = new TransformGroup(t); - sceneTransform.addChild(loaderScene.getSceneGroup()); - sceneRoot.addChild(sceneTransform); - } - - // Make the scene graph live by inserting the root into the universe - u.addBranchGraph(sceneRoot); - } - - - public void destroy() { - u.cleanup(); - } - - /** - * The main method of the application takes one argument in the - * args array; the filname that you want to load. Note that the - * file must be reachable from the directory in which you're running - * this application. - */ - public static void main(String args[]) { - java.net.URL url = null; - java.net.URL pathUrl = null; - if (args.length > 0) { - try { - if ((args[0].indexOf("file:") == 0) || - (args[0].indexOf("http") == 0)) { - url = new java.net.URL(args[0]); - } - else if (args[0].charAt(0) != '/') { - url = new java.net.URL("file:./" + args[0]); - } - else { - url = new java.net.URL("file:" + args[0]); - } - } - catch (java.net.MalformedURLException ex) { - System.err.println(ex.getMessage()); - ex.printStackTrace(); - System.exit(1); - } - } - else { - // the path to the image for an application - try { - url = new java.net.URL("file:./ballcone.lws"); - } - catch (java.net.MalformedURLException ex) { - System.err.println(ex.getMessage()); - ex.printStackTrace(); - System.exit(1); - } - } - new MainFrame(new Viewer(url), 500, 500); - } -} - - - - diff --git a/src/Lightwave/Viewer_plugin.html b/src/Lightwave/Viewer_plugin.html deleted file mode 100644 index c26ff14..0000000 --- a/src/Lightwave/Viewer_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Lightwave Viewer Demo</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 256 HEIGHT = 256 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "Viewer.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "Viewer.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "Viewer.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/Lightwave/ballcone.lws b/src/Lightwave/ballcone.lws deleted file mode 100644 index 43979d0..0000000 --- a/src/Lightwave/ballcone.lws +++ /dev/null @@ -1,102 +0,0 @@ -LWSC -1 - -FirstFrame 1 -LastFrame 60 -FrameStep 1 -PreviewFirstFrame 1 -PreviewLastFrame 60 -PreviewFrameStep 1 -FramesPerSecond 30.000000 - -LoadObject greenball.lwo -ShowObject 8 7 -ObjectMotion (unnamed) - 9 - 1 - 0 0 0 -0 -0 -0 1 1 1 - 0 0 0 0 0 -EndBehavior 1 -ShadowOptions 7 - -LoadObject redcone.lwo -ShowObject 8 7 -ObjectMotion (unnamed) - 9 - 3 - 87.0955 0 16.23071 -0 -0 -0 1 1 1 - 0 0 0 0 0 - 18.11593 72.5 15.02915 -8.899995 78.10001 -52.8 1 1 1 - 30 0 0 0 0 - -95.00599 33 20.31446 5.900002 34.99998 9.699986 1 1 1 - 59 0 0 0 0 -EndBehavior 1 -ShadowOptions 7 - -AmbientColor 255 255 255 -AmbIntensity 0.250000 - -AddLight -LightName Light -ShowLight 1 7 -LightMotion (unnamed) - 9 - 1 - -163.7345 2 44.50352 45 35 -0 1 1 1 - 0 0 0 0 0 -EndBehavior 1 -LightColor 255 255 255 -LgtIntensity 1.000000 -LightType 0 -ShadowType 1 - -ShowCamera 1 7 -CameraMotion (unnamed) - 9 - 3 - -35.53939 20 -285.3626 -0 -0 -0 1 1 1 - 0 0 0 0 0 - 138.9237 20 -218.272 -48 -2.9 -0 1 1 1 - 30 0 0 0 0 - 187.5021 20 -33.65044 -75.70002 -3.4 -0 1 1 1 - 60 0 0 0 0 -EndBehavior 1 -ZoomFactor 3.200000 -Resolution 1 -PixelAspectRatio -1 -CustomPixelRatio 1.000000 -SegmentMemory 2200000 -Antialiasing 0 -AdaptiveSampling 1 -AdaptiveThreshold 16 -FilmSize 2 -FieldRendering 0 -MotionBlur 0 -DepthOfField 0 - -SolidBackdrop 1 -BackdropColor 0 0 0 -ZenithColor 0 40 80 -SkyColor 120 180 240 -GroundColor 50 40 30 -NadirColor 100 80 60 -FogType 0 -DitherIntensity 1 -AnimatedDither 0 - -RenderMode 2 -RayTraceEffects 0 -DataOverlayLabel - -ViewMode 5 -ViewAimpoint 0.000000 0.000000 0.000000 -ViewDirection 0.300197 -0.314159 0.000000 -ViewZoomFactor 4.000000 -GridNumber 40 -GridSize 50.000000 -ShowMotionPath 1 -ShowBGImage 0 -ShowFogRadius 0 -ShowRedraw 0 -ShowSafeAreas 0 -ShowFieldChart 0 diff --git a/src/Lightwave/build.xml b/src/Lightwave/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/Lightwave/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/Lightwave/greenball.lwo b/src/Lightwave/greenball.lwo Binary files differdeleted file mode 100644 index 62cd08d..0000000 --- a/src/Lightwave/greenball.lwo +++ /dev/null diff --git a/src/Lightwave/redcone.lwo b/src/Lightwave/redcone.lwo Binary files differdeleted file mode 100644 index 214a15d..0000000 --- a/src/Lightwave/redcone.lwo +++ /dev/null diff --git a/src/ModelClip/ModelClipTest.html b/src/ModelClip/ModelClipTest.html deleted file mode 100644 index 0fa3b78..0000000 --- a/src/ModelClip/ModelClipTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>ModelClipTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="ModelClipTest.class" width=500 height=500> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/ModelClip/ModelClipTest.java b/src/ModelClip/ModelClipTest.java deleted file mode 100644 index fda0380..0000000 --- a/src/ModelClip/ModelClipTest.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.behaviors.mouse.*; -import com.sun.j3d.utils.geometry.Cylinder; -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -/** - * ModelClipTest draws a cylinder and creates two clip planes - * to see the interior of the cylinder. - */ -public class ModelClipTest extends Applet { - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph() - { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // This Transformgroup is used by the mouse manipulators to - // move the CYlinder. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - objScale.addChild(objTrans); - - //Create Model Clip - ModelClip mc = new ModelClip(); - boolean enables[] = {false, false, false, false, false, false}; - Vector4d eqn1 = new Vector4d(0.0, 1.0, 0.0, 0.0); - Vector4d eqn2 = new Vector4d(1.0, 1.0, 0.0, 0.0); - mc.setEnables(enables); - mc.setPlane(1, eqn1); - mc.setPlane(2, eqn2); - mc.setEnable(1, true); - mc.setEnable(2, true); - mc.setInfluencingBounds(bounds); - objTrans.addChild(mc); - - //Create a cylinder - PolygonAttributes attr = new PolygonAttributes(); - attr.setCullFace(PolygonAttributes.CULL_NONE); - Appearance ap = new Appearance(); - Material mat = new Material(); - mat.setLightingEnable(true); - ap.setMaterial(mat); - ap.setPolygonAttributes(attr); - - Cylinder CylinderObj = new Cylinder(1.0f, 2.0f, ap); - objTrans.addChild(CylinderObj); - - // Create the rotate behavior node - MouseRotate behavior = new MouseRotate(objTrans); - objTrans.addChild(behavior); - behavior.setSchedulingBounds(bounds); - - // Create the zoom behavior node - MouseZoom behavior2 = new MouseZoom(objTrans); - objTrans.addChild(behavior2); - behavior2.setSchedulingBounds(bounds); - - //Shine it with two colored lights. - Color3f lColor1 = new Color3f(0.5f, 0.0f, 0.5f); - Color3f lColor2 = new Color3f(0.7f, 0.7f, 0.0f); - Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, 1.0f); - Vector3f lDir2 = new Vector3f(0.0f, 0.0f, -1.0f); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - DirectionalLight lgt2 = new DirectionalLight(lColor2, lDir2); - lgt1.setInfluencingBounds(bounds); - lgt2.setInfluencingBounds(bounds); - objScale.addChild(lgt1); - objScale.addChild(lgt2); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public ModelClipTest (){ - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - - public static void main(String argv[]) - { - - BranchGroup group; - - new MainFrame(new ModelClipTest(), 500, 500); - } -} - diff --git a/src/ModelClip/ModelClipTest2.html b/src/ModelClip/ModelClipTest2.html deleted file mode 100644 index 1c4f676..0000000 --- a/src/ModelClip/ModelClipTest2.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>ModelClipTest2</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="ModelClipTest2.class" width=500 height=500> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/ModelClip/ModelClipTest2.java b/src/ModelClip/ModelClipTest2.java deleted file mode 100644 index 7ba177f..0000000 --- a/src/ModelClip/ModelClipTest2.java +++ /dev/null @@ -1,195 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.behaviors.mouse.*; -import com.sun.j3d.utils.geometry.Cylinder; -import com.sun.j3d.utils.geometry.Box; -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -/** - * ModelClipTest2 draws a cylinder and creates two clip planes - * to see the interior of the cylinder. It also has a behavior to - * move the clip planes. - */ -public class ModelClipTest2 extends Applet { - - private SimpleUniverse u; - - public BranchGroup createSceneGraph() - { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create lights - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - //Shine it with two colored lights. - Color3f lColor0 = new Color3f(1.0f, 1.0f, 1.0f); - Color3f lColor1 = new Color3f(0.5f, 0.0f, 0.5f); - Color3f lColor2 = new Color3f(0.7f, 0.7f, 0.0f); - Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, 1.0f); - Vector3f lDir2 = new Vector3f(0.0f, 0.0f, -1.0f); - - AmbientLight lgt0 = new AmbientLight(true, lColor2); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - DirectionalLight lgt2 = new DirectionalLight(lColor2, lDir2); - lgt0.setInfluencingBounds(bounds); - lgt1.setInfluencingBounds(bounds); - lgt2.setInfluencingBounds(bounds); - objScale.addChild(lgt0); - objScale.addChild(lgt1); - objScale.addChild(lgt2); - - // Create a Transformgroup for the geometry - TransformGroup objRot = new TransformGroup(); - Transform3D t3d1 = new Transform3D(); - AxisAngle4f rot1 = new AxisAngle4f(0.0f, 1.0f, 0.0f, 45.0f); - t3d1.setRotation(rot1); - objRot.setTransform(t3d1); - objScale.addChild(objRot); - - - //Create a cylinder - PolygonAttributes attr = new PolygonAttributes(); - attr.setCullFace(PolygonAttributes.CULL_NONE); - Appearance ap = new Appearance(); - Material mat = new Material(); - mat.setLightingEnable(true); - ap.setMaterial(mat); - ap.setPolygonAttributes(attr); - - Cylinder CylinderObj = new Cylinder(0.5f, 2.2f, ap); - objRot.addChild(CylinderObj); - - //Create a box - Box BoxObj = new Box(0.8f, 0.8f, 0.8f, ap); - objRot.addChild(BoxObj); - - - // This Transformgroup is used by the mouse manipulators to - // move the model clip planes. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - objRot.addChild(objTrans); - - // Create the rotate behavior node - MouseRotate behavior = new MouseRotate(objTrans); - objTrans.addChild(behavior); - behavior.setSchedulingBounds(bounds); - - // Create the zoom behavior node - MouseZoom behavior2 = new MouseZoom(objTrans); - objTrans.addChild(behavior2); - behavior2.setSchedulingBounds(bounds); - - //Create Model Clip - ModelClip mc = new ModelClip(); - boolean enables[] = {false, false, false, false, false, false}; - Vector4d eqn = new Vector4d(0.0, 1.0, 1.0, 0.0); - mc.setEnables(enables); - mc.setPlane(1, eqn); - mc.setEnable(1, true); - mc.setInfluencingBounds(bounds); - objTrans.addChild(mc); - - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public ModelClipTest2 (){ - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - - - public static void main(String argv[]) - { - - BranchGroup group; - - new MainFrame(new ModelClipTest2(), 500, 500); - } -} - diff --git a/src/ModelClip/ModelClipTest2_plugin.html b/src/ModelClip/ModelClipTest2_plugin.html deleted file mode 100644 index c0a4e55..0000000 --- a/src/ModelClip/ModelClipTest2_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>ModelClipTest2</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 500 HEIGHT = 500 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "ModelClipTest2.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "ModelClipTest2.class" WIDTH = 500 HEIGHT = 500 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "ModelClipTest2.class" WIDTH = 500 HEIGHT = 500 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/ModelClip/ModelClipTest_plugin.html b/src/ModelClip/ModelClipTest_plugin.html deleted file mode 100644 index b67c83e..0000000 --- a/src/ModelClip/ModelClipTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>ModelClipTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 500 HEIGHT = 500 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "ModelClipTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "ModelClipTest.class" WIDTH = 500 HEIGHT = 500 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "ModelClipTest.class" WIDTH = 500 HEIGHT = 500 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/ModelClip/build.xml b/src/ModelClip/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/ModelClip/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/Morphing/ColorCube.java b/src/Morphing/ColorCube.java deleted file mode 100644 index ff52c48..0000000 --- a/src/Morphing/ColorCube.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class ColorCube extends QuadArray { - private static final float[] verts = { - // front face - 1.0f, -1.0f, 1.0f, - 1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, 1.0f, - -1.0f, -1.0f, 1.0f, - // back face - -1.0f, -1.0f, -1.0f, - -1.0f, 1.0f, -1.0f, - 1.0f, 1.0f, -1.0f, - 1.0f, -1.0f, -1.0f, - // right face - 1.0f, -1.0f, -1.0f, - 1.0f, 1.0f, -1.0f, - 1.0f, 1.0f, 1.0f, - 1.0f, -1.0f, 1.0f, - // left face - -1.0f, -1.0f, 1.0f, - -1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, -1.0f, - -1.0f, -1.0f, -1.0f, - // top face - 1.0f, 1.0f, 1.0f, - 1.0f, 1.0f, -1.0f, - -1.0f, 1.0f, -1.0f, - -1.0f, 1.0f, 1.0f, - // bottom face - -1.0f, -1.0f, 1.0f, - -1.0f, -1.0f, -1.0f, - 1.0f, -1.0f, -1.0f, - 1.0f, -1.0f, 1.0f, - }; - - private static final float[] colors = { - // front face (red) - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - // back face (green) - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - // right face (blue) - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - // left face (yellow) - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - // top face (magenta) - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - // bottom face (cyan) - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - }; - - ColorCube() { - super(24, QuadArray.COORDINATES | QuadArray.COLOR_3); - - setCoordinates(0, verts); - setColors(0, colors); - } -} diff --git a/src/Morphing/ColorPyramidDown.java b/src/Morphing/ColorPyramidDown.java deleted file mode 100644 index 80a572d..0000000 --- a/src/Morphing/ColorPyramidDown.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class ColorPyramidDown extends QuadArray { - private static final float[] verts = { - // front face - 0.0f, -1.0f, 0.0f, - 1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, 1.0f, - 0.0f, -1.0f, 0.0f, - // back face - 0.0f, -1.0f, 0.0f, - -1.0f, 1.0f, -1.0f, - 1.0f, 1.0f, -1.0f, - 0.0f, -1.0f, 0.0f, - // right face - 0.0f, -1.0f, 0.0f, - 1.0f, 1.0f, -1.0f, - 1.0f, 1.0f, 1.0f, - 0.0f, -1.0f, 0.0f, - // left face - 0.0f, -1.0f, 0.0f, - -1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, -1.0f, - 0.0f, -1.0f, 0.0f, - // top face - 1.0f, 1.0f, 1.0f, - 1.0f, 1.0f, -1.0f, - -1.0f, 1.0f, -1.0f, - -1.0f, 1.0f, 1.0f, - // bottom face - 0.0f, -1.0f, 0.0f, - 0.0f, -1.0f, 0.0f, - 0.0f, -1.0f, 0.0f, - 0.0f, -1.0f, 0.0f, - }; - - private static final float[] colors = { - // front face (green) - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - // back face (red) - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - // right face (yellow) - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - // left face (magenta) - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - // top face (blue) - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - // bottom face (cyan) - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - }; - - ColorPyramidDown() { - super(24, QuadArray.COORDINATES | QuadArray.COLOR_3); - - setCoordinates(0, verts); - setColors(0, colors); - } -} diff --git a/src/Morphing/ColorPyramidUp.java b/src/Morphing/ColorPyramidUp.java deleted file mode 100644 index e952fe2..0000000 --- a/src/Morphing/ColorPyramidUp.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class ColorPyramidUp extends QuadArray { - private static final float[] verts = { - // front face - 1.0f, -1.0f, 1.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - -1.0f, -1.0f, 1.0f, - // back face - -1.0f, -1.0f, -1.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 1.0f, -1.0f, -1.0f, - // right face - 1.0f, -1.0f, -1.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 1.0f, -1.0f, 1.0f, - // left face - -1.0f, -1.0f, 1.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - -1.0f, -1.0f, -1.0f, - // top face - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - // bottom face - -1.0f, -1.0f, 1.0f, - -1.0f, -1.0f, -1.0f, - 1.0f, -1.0f, -1.0f, - 1.0f, -1.0f, 1.0f, - }; - - private static final float[] colors = { - - // front face (cyan) - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - // back face (magenta) - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - // right face (yellow) - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - // left face (blue) - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - // top face (green) - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - // bottom face (red) - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - - }; - - ColorPyramidUp() { - super(24, QuadArray.COORDINATES | QuadArray.COLOR_3); - - setCoordinates(0, verts); - setColors(0, colors); - } -} diff --git a/src/Morphing/Morphing.html b/src/Morphing/Morphing.html deleted file mode 100644 index 1d17203..0000000 --- a/src/Morphing/Morphing.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Morphing</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="Morphing.class" width=700 height=700> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/Morphing/Morphing.java b/src/Morphing/Morphing.java deleted file mode 100644 index 3811b07..0000000 --- a/src/Morphing/Morphing.java +++ /dev/null @@ -1,260 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.io.*; -import com.sun.j3d.loaders.objectfile.ObjectFile; -import com.sun.j3d.loaders.Scene; -import com.sun.j3d.loaders.ParsingErrorException; -import com.sun.j3d.loaders.IncorrectFormatException; - -public class Morphing extends Applet { - - private java.net.URL[] objFiles = null; - - private SimpleUniverse u = null; - - private BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create a bounds for the background and lights - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.2f); - Background bg = new Background(bgColor); - bg.setApplicationBounds(bounds); - objScale.addChild(bg); - - // Set up the global lights - Color3f lColor1 = new Color3f(0.7f, 0.7f, 0.7f); - Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, -1.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - - AmbientLight aLgt = new AmbientLight(alColor); - aLgt.setInfluencingBounds(bounds); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - lgt1.setInfluencingBounds(bounds); - objScale.addChild(aLgt); - objScale.addChild(lgt1); - - // - // Create the transform group nodes for the 3 original objects - // and the morphed object. Add them to the root of the - // branch graph. - // - TransformGroup objTrans[] = new TransformGroup[4]; - - for(int i=0; i<4; i++) { - objTrans[i] = new TransformGroup(); - objScale.addChild(objTrans[i]); - } - - Transform3D tr = new Transform3D(); - Transform3D rotX90 = new Transform3D(); - rotX90.rotX(90.0 * Math.PI / 180.0); - - objTrans[0].getTransform(tr); - tr.setTranslation(new Vector3d(-2.0, 1.5, -2.0)); - tr.mul(rotX90); - objTrans[0].setTransform(tr); - - objTrans[1].getTransform(tr); - tr.setTranslation(new Vector3d(0.0, 1.5, -2.0)); - tr.mul(rotX90); - objTrans[1].setTransform(tr); - - objTrans[2].getTransform(tr); - tr.setTranslation(new Vector3d(2.0, 1.5, -2.0)); - tr.mul(rotX90); - objTrans[2].setTransform(tr); - - objTrans[3].getTransform(tr); - tr.setTranslation(new Vector3d(0.0, -2.0, -2.0)); - tr.mul(rotX90); - objTrans[3].setTransform(tr); - - - // Now load the object files - Scene s[] = new Scene[3]; - GeometryArray g[] = new GeometryArray[3]; - Shape3D shape[] = new Shape3D[3]; - ObjectFile loader = new ObjectFile(ObjectFile.RESIZE); - for(int i=0; i<3; i++) { - s[i] = null; - g[i] = null; - shape[i] = null; - } - - for(int i=0; i<3;i++) { - try { - s[i] = loader.load(objFiles[i]); - } - catch (FileNotFoundException e) { - System.err.println(e); - System.exit(1); - } - catch (ParsingErrorException e) { - System.err.println(e); - System.exit(1); - } - catch (IncorrectFormatException e) { - System.err.println(e); - System.exit(1); - } - - BranchGroup b = s[i].getSceneGroup(); - shape[i] = (Shape3D) b.getChild(0); - g[i] = (GeometryArray) shape[i].getGeometry(); - - shape[i].setGeometry(g[i]); - objTrans[i].addChild(b); - } - - // - // Create a Morph node, and set the appearance and input geometry - // arrays. Set the Morph node's capability bits to allow the weights - // to be modified at runtime. - // - Appearance app = new Appearance(); - Color3f objColor = new Color3f(1.0f, 0.7f, 0.8f); - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - app.setMaterial(new Material(objColor, black, objColor, black, 80.0f)); - Morph morph = new Morph(g, app); - morph.setCapability(Morph.ALLOW_WEIGHTS_READ); - morph.setCapability(Morph.ALLOW_WEIGHTS_WRITE); - - objTrans[3].addChild(morph); - - // Now create the Alpha object that controls the speed of the - // morphing operation. - Alpha morphAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE | - Alpha.DECREASING_ENABLE, - 0, 0, - 2000, 1000, 200, - 2000, 1000, 200); - - // Finally, create the morphing behavior - MorphingBehavior mBeh = new MorphingBehavior(morphAlpha, morph); - mBeh.setSchedulingBounds(bounds); - objScale.addChild(mBeh); - - return objRoot; - } - - public Morphing() {} - - public Morphing(java.net.URL[] urls) { - objFiles = urls; - } - - public void init() { - if (objFiles == null) { - objFiles = new java.net.URL[3]; - // the path to the image for an applet - String path = getCodeBase().toString(); - try { - objFiles[0] = new java.net.URL(path + "hand1.obj"); - objFiles[1] = new java.net.URL(path + "hand2.obj"); - objFiles[2] = new java.net.URL(path + "hand3.obj"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - public static void main(String[] args) { - java.net.URL[] urls = new java.net.URL[3]; - // the path to the image file for an application - try { - urls[0] = new java.net.URL("file:./hand1.obj"); - urls[1] = new java.net.URL("file:./hand2.obj"); - urls[2] = new java.net.URL("file:./hand3.obj"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - new MainFrame(new Morphing(urls), 700, 700); - } -} diff --git a/src/Morphing/MorphingBehavior.java b/src/Morphing/MorphingBehavior.java deleted file mode 100644 index 5da6eeb..0000000 --- a/src/Morphing/MorphingBehavior.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.util.Enumeration; -import javax.media.j3d.*; -import javax.vecmath.*; - -// User-defined morphing behavior class -public class MorphingBehavior extends Behavior { - - Alpha alpha; - Morph morph; - double weights[]; - - WakeupOnElapsedFrames w = new WakeupOnElapsedFrames(0); - - // Override Behavior's initialize method to setup wakeup criteria - public void initialize() { - alpha.setStartTime(System.currentTimeMillis()); - - // Establish initial wakeup criteria - wakeupOn(w); - } - - // Override Behavior's stimulus method to handle the event - public void processStimulus(Enumeration criteria) { - - // NOTE: This assumes 3 objects. It should be generalized to - // "n" objects. - - double val = alpha.value(); - if (val < 0.5) { - double a = val * 2.0; - weights[0] = 1.0 - a; - weights[1] = a; - weights[2] = 0.0; - } - else { - double a = (val - 0.5) * 2.0; - weights[0] = 0.0; - weights[1] = 1.0f - a; - weights[2] = a; - } - - morph.setWeights(weights); - - // Set wakeup criteria for next time - wakeupOn(w); - } - - public MorphingBehavior(Alpha a, Morph m) { - alpha = a; - morph = m; - weights = morph.getWeights(); - } -} diff --git a/src/Morphing/Morphing_plugin.html b/src/Morphing/Morphing_plugin.html deleted file mode 100644 index 59c370a..0000000 --- a/src/Morphing/Morphing_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Morphing</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 700 HEIGHT = 700 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "Morphing.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "Morphing.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "Morphing.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/Morphing/Pyramid2Cube.html b/src/Morphing/Pyramid2Cube.html deleted file mode 100644 index 1a83e9f..0000000 --- a/src/Morphing/Pyramid2Cube.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Pyramid2Cube</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="Pyramid2Cube.class" width=700 height=700> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/Morphing/Pyramid2Cube.java b/src/Morphing/Pyramid2Cube.java deleted file mode 100644 index 904d1dd..0000000 --- a/src/Morphing/Pyramid2Cube.java +++ /dev/null @@ -1,192 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class Pyramid2Cube extends Applet { - - private SimpleUniverse u = null; - - private BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - - // Create a bounds for the background and behavior - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.2f); - Background bg = new Background(bgColor); - bg.setApplicationBounds(bounds); - objScale.addChild(bg); - - // - // Create the transform group nodes for the 3 original objects - // and the morphed object. Add them to the root of the - // branch graph. - // - TransformGroup objTrans[] = new TransformGroup[4]; - - for(int i=0; i<4; i++) { - objTrans[i] = new TransformGroup(); - objScale.addChild(objTrans[i]); - } - - Transform3D tr = new Transform3D(); - Transform3D rotY15 = new Transform3D(); - rotY15.rotY(15.0 * Math.PI / 180.0); - - objTrans[0].getTransform(tr); - tr.setTranslation(new Vector3d(-3.0, 1.5, -6.5)); - tr.mul(rotY15); - objTrans[0].setTransform(tr); - - objTrans[1].getTransform(tr); - tr.setTranslation(new Vector3d(0.0, 1.5, -6.5)); - tr.mul(rotY15); - objTrans[1].setTransform(tr); - - objTrans[2].getTransform(tr); - tr.setTranslation(new Vector3d(3.0, 1.5, -6.5)); - tr.mul(rotY15); - objTrans[2].setTransform(tr); - - objTrans[3].getTransform(tr); - tr.setTranslation(new Vector3d(0.0, -2.0, -5.0)); - tr.mul(rotY15); - objTrans[3].setTransform(tr); - - // Now create simple geometries. - - QuadArray g[] = new QuadArray[3]; - Shape3D shape[] = new Shape3D[3]; - for(int i=0; i<3; i++) { - g[i] = null; - shape[i] = null; - } - - g[0] = new ColorPyramidUp(); - g[1] = new ColorCube(); - g[2] = new ColorPyramidDown(); - - Appearance a = new Appearance(); - - for(int i=0; i<3;i++) { - shape[i] = new Shape3D(g[i],a); - objTrans[i].addChild(shape[i]); - } - - // - // Create a Morph node, and set the appearance and input geometry - // arrays. Set the Morph node's capability bits to allow the weights - // to be modified at runtime. - // - Morph morph = new Morph((GeometryArray[]) g, a); - morph.setCapability(Morph.ALLOW_WEIGHTS_READ); - morph.setCapability(Morph.ALLOW_WEIGHTS_WRITE); - - objTrans[3].addChild(morph); - - // Now create the Alpha object that controls the speed of the - // morphing operation. - Alpha morphAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE | - Alpha.DECREASING_ENABLE, - 0, 0, - 4000, 1000, 500, - 4000, 1000, 500); - - // Finally, create the morphing behavior - MorphingBehavior mBeh = new MorphingBehavior(morphAlpha, morph); - mBeh.setSchedulingBounds(bounds); - objScale.addChild(mBeh); - - return objRoot; - } - - public Pyramid2Cube() { - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - public static void main(String[] args) { - new MainFrame(new Pyramid2Cube(), 700, 700); - } -} diff --git a/src/Morphing/Pyramid2Cube_plugin.html b/src/Morphing/Pyramid2Cube_plugin.html deleted file mode 100644 index 10cab7b..0000000 --- a/src/Morphing/Pyramid2Cube_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Pyramid2Cube</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 700 HEIGHT = 700 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "Pyramid2Cube.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "Pyramid2Cube.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "Pyramid2Cube.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/Morphing/build.xml b/src/Morphing/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/Morphing/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/Morphing/hand1.obj b/src/Morphing/hand1.obj deleted file mode 100644 index 3cfcd5c..0000000 --- a/src/Morphing/hand1.obj +++ /dev/null @@ -1,846 +0,0 @@ -# Mon Jun 02 17:09:33 1997 -# -# - -g hand1 -v -0.551223 0.307562 -3.946050 -v -0.215465 0.030475 -3.703516 -v -0.059140 0.068255 -1.551531 -v -0.487235 0.455792 -4.006029 -v -0.168743 0.090975 -3.755638 -v -0.338689 0.569450 -4.244848 -v -0.639211 0.502297 -4.165243 -v -0.760687 0.647871 -4.482797 -v -0.529792 0.073768 -3.945949 -v -0.707612 0.258064 -4.192451 -v -0.866004 0.446161 -4.511733 -v -0.367733 -0.147323 -4.191223 -v -0.717413 0.071719 -4.433171 -v -0.893823 0.253971 -4.589350 -v -0.172976 -0.188212 -3.754734 -v -0.089148 -0.103984 -1.450071 -v -0.234491 -0.100206 -3.756646 -v -0.131305 -0.032994 -1.531782 -v -0.589492 0.641054 -4.376035 -v -0.050594 -0.257375 -4.417058 -v 0.208857 -0.205637 -4.768191 -v 0.007882 -0.231806 -4.028160 -v 0.230232 -0.186379 -4.335583 -v 0.390435 -0.043258 -4.060836 -v 0.002626 -0.129308 -1.430840 -v -0.058465 -0.217994 -3.717670 -v 0.087189 -0.100005 -1.425612 -v 0.044163 -0.171797 -3.707954 -v 0.044240 0.657156 -4.536777 -v -0.137070 0.604272 -4.344090 -v 0.041139 0.604901 -4.118776 -v -0.080844 0.531805 -3.993031 -v 0.165095 0.484110 -3.906230 -v -0.081629 0.087632 -3.782753 -v -0.013872 0.088823 -1.554481 -v 0.008630 0.041677 -3.708195 -v 0.070162 0.059225 -1.467241 -v 0.349126 0.784380 -4.327246 -v 0.192656 0.707311 -4.316467 -v 0.240026 0.669896 -4.092967 -v 0.614077 0.770599 -4.245997 -v 0.448901 0.789330 -4.242595 -v 0.390683 0.635870 -4.050064 -v 0.823568 1.030378 -5.230011 -v 0.583262 0.935220 -4.789198 -v 0.936485 1.075914 -5.144932 -v 0.708930 0.972489 -4.713959 -v 1.079595 1.050653 -5.079602 -v 0.863290 0.942616 -4.657226 -v 0.731356 0.950572 -5.335061 -v 0.698927 0.816156 -5.569689 -v 0.452954 0.862935 -4.860037 -v 0.354245 0.777679 -5.103039 -v 0.109515 -0.020305 -1.439012 -v 0.321579 0.190660 -3.847763 -v 0.056950 -0.068344 -3.678991 -v 0.551677 0.397382 -4.027330 -v 0.748943 0.261978 -4.201552 -v 0.797463 0.611225 -4.241810 -v 0.934536 0.472987 -4.298673 -v 0.919641 0.370477 -5.597496 -v 1.079582 0.375487 -5.341094 -v 1.225601 0.456396 -5.207421 -v 0.593068 0.043314 -5.202118 -v 0.711852 0.101000 -4.865152 -v 0.871615 0.211454 -4.690717 -v 1.063296 0.399320 -4.647913 -v 1.342637 0.585582 -5.122607 -v 1.150690 0.608137 -4.641154 -v 1.366648 0.748651 -5.071675 -v 0.745367 0.246406 -5.988852 -v 0.494019 -0.022198 -5.740361 -v 0.141480 -0.193021 -5.470416 -v 0.693354 0.148862 -6.455598 -v 0.458179 -0.058425 -6.342125 -v 0.092861 -0.121753 -6.334044 -v 0.001903 0.615014 -5.359071 -v 0.310613 0.694999 -5.659912 -v 0.602326 0.700149 -5.960638 -v 0.014377 0.478587 -6.304075 -v 0.335968 0.619833 -6.312831 -v 0.600780 0.612337 -6.446789 -v -0.303419 0.594566 -6.098518 -v -0.599974 0.655996 -6.132385 -v -0.241202 0.626083 -5.200386 -v -0.457099 0.677790 -5.161324 -v -0.259616 -0.163854 -6.116562 -v -0.183392 -0.223625 -5.241480 -v -0.635209 0.061396 -6.121774 -v -0.504788 -0.103060 -5.122423 -v -0.950019 0.234128 -5.837874 -v -0.810067 0.092804 -5.080121 -v -1.144829 0.478824 -5.746136 -v -0.998398 0.334709 -5.084644 -v -0.994164 0.856674 -5.773610 -v -0.863354 0.756330 -5.102725 -v -0.801998 0.842826 -5.870856 -v -0.671650 0.764754 -5.123487 -v 1.045049 0.802118 -4.632644 -v 1.252493 0.924338 -5.055513 -v -0.995449 0.583125 -5.083862 -v -1.137996 0.713069 -5.735577 -v 1.598002 0.816988 -5.564189 -v 1.599381 0.700758 -5.624741 -v 1.532017 0.614642 -5.716787 -v 1.715526 0.933794 -5.717422 -v 1.699604 0.816034 -5.787023 -v 1.629737 0.731598 -5.898082 -v 1.883043 1.059492 -5.899169 -v 1.855109 0.932664 -5.998640 -v 1.774384 0.842472 -6.140775 -v 1.424351 0.559021 -5.523375 -v 1.505227 0.658051 -5.434678 -v 1.502338 0.787710 -5.373565 -v 1.297397 0.577850 -5.903827 -v 1.425129 0.560695 -5.822476 -v 1.155962 0.509306 -5.718982 -v 1.300644 0.494656 -5.623770 -v 1.509245 0.835318 -6.384689 -v 1.646807 0.801147 -6.286009 -v 1.406474 0.713747 -6.133959 -v 1.525574 0.687385 -6.031679 -v 1.380351 1.065119 -5.565239 -v 1.564172 1.172023 -5.714888 -v 1.780605 1.304970 -5.893034 -v 1.255719 1.087198 -5.619839 -v 1.438416 1.182678 -5.766468 -v 1.652418 1.312790 -5.952035 -v 1.154437 1.043031 -5.702960 -v 1.320461 1.134701 -5.855917 -v 1.512782 1.262635 -6.051604 -v 1.003945 1.036752 -5.521133 -v 1.104476 1.081637 -5.435655 -v 1.236055 1.056913 -5.374795 -v 1.089111 0.843044 -5.888583 -v 1.089661 0.962064 -5.803318 -v 1.230625 0.966122 -6.097103 -v 1.242952 1.066407 -5.981094 -v 1.362597 1.098246 -6.323909 -v 1.405432 1.196541 -6.191591 -v 0.929064 0.824679 -5.709339 -v 0.934340 0.953520 -5.615597 -v 1.859089 1.203879 -5.868989 -v 1.664971 1.072200 -5.695913 -v 1.510868 0.957577 -5.544997 -v 1.391678 0.940769 -5.352942 -v 1.170557 0.692380 -5.926214 -v 1.027666 0.653090 -5.757548 -v 0.869972 0.619560 -5.748698 -v 1.295478 0.827279 -6.155195 -v 1.403801 0.956111 -6.395917 -v 1.981874 0.878914 -6.465936 -v 1.802272 0.826665 -6.577847 -v 1.615752 0.851027 -6.620514 -v 2.128560 0.944598 -6.721747 -v 1.907593 0.869058 -6.790360 -v 1.708489 0.849226 -6.769275 -v 2.238363 1.116521 -6.349912 -v 2.094190 1.105140 -6.141595 -v 2.237261 1.035889 -6.535950 -v 2.075505 0.976585 -6.291769 -v 1.727506 1.346013 -6.328338 -v 1.936762 1.311864 -6.600124 -v 1.576315 1.256378 -6.447272 -v 1.741231 1.205721 -6.680005 -v 1.483882 1.132384 -6.546886 -v 1.595348 1.106596 -6.700094 -v 2.143625 1.363027 -6.343407 -v 2.083770 1.364678 -6.472173 -v 1.997907 1.370713 -6.136065 -v 1.880283 1.392692 -6.219747 -v 2.220069 1.245977 -6.358671 -v 2.223785 1.204368 -6.587201 -v 2.097329 1.131385 -6.757537 -v 1.644286 0.966614 -6.763514 -v 1.867680 1.032451 -6.812611 -v 0.883363 0.124343 -7.228944 -v 0.646839 -0.024425 -7.259110 -v 0.390212 -0.005959 -7.292361 -v 1.070393 0.135169 -7.703971 -v 0.802047 0.006235 -7.763816 -v 0.511476 0.026061 -7.813804 -v 1.163011 0.161832 -8.064369 -v 0.918797 0.093289 -8.161346 -v 0.636154 0.076768 -8.160398 -v 0.269275 -0.049054 -6.787587 -v 0.524823 -0.050661 -6.806285 -v 0.744409 0.117607 -6.839493 -v 0.827585 0.571806 -7.238711 -v 1.016438 0.562215 -7.711038 -v 1.115469 0.520019 -8.067395 -v 0.573132 0.588769 -7.270417 -v 0.731449 0.578986 -7.772986 -v 0.865027 0.502425 -8.164807 -v 0.338782 0.438496 -7.299040 -v 0.460865 0.446711 -7.820236 -v 0.590458 0.430524 -8.163703 -v 0.208617 0.434283 -6.784674 -v 0.437333 0.591011 -6.807528 -v 0.678646 0.577267 -6.844694 -v 0.947532 0.372788 -7.222228 -v 0.797216 0.376391 -6.856188 -v 0.734974 0.417910 -6.504792 -v 1.142651 0.368565 -7.694477 -v 1.195867 0.347815 -8.107895 -v 0.272439 0.191555 -7.307303 -v 0.163854 0.163934 -6.807784 -v 0.050485 0.143298 -6.551455 -v 0.390845 0.216656 -7.842326 -v 0.587957 0.247899 -8.218260 -v -0.187159 -0.021301 -8.489817 -v -0.144520 -0.066015 -8.115219 -v -0.135056 -0.086523 -7.519433 -v -0.455856 -0.036286 -8.505733 -v -0.424768 -0.127085 -8.081474 -v -0.379623 -0.149656 -7.480232 -v -0.721089 0.002465 -8.418228 -v -0.711949 -0.032964 -8.033904 -v -0.633023 -0.036474 -7.439595 -v -0.083764 -0.101907 -6.888419 -v -0.321252 -0.155635 -6.827525 -v -0.570598 -0.013135 -6.792706 -v -0.205536 0.346922 -8.488331 -v -0.478068 0.389386 -8.503635 -v -0.741261 0.375015 -8.416031 -v -0.166164 0.372104 -8.112885 -v -0.454556 0.470532 -8.077909 -v -0.734413 0.413380 -8.030973 -v -0.161420 0.377122 -7.515023 -v -0.412007 0.496828 -7.474960 -v -0.653762 0.440220 -7.436335 -v -0.124968 0.400042 -6.878002 -v -0.359615 0.536135 -6.818819 -v -0.582637 0.502600 -6.791322 -v -0.736234 0.212481 -7.423101 -v -0.655151 0.259193 -6.812274 -v -0.663333 0.364684 -6.389957 -v -0.775997 0.191334 -8.463245 -v -0.822719 0.196893 -8.024588 -v -0.031942 0.130966 -6.924860 -v -0.055396 0.134692 -7.532089 -v -0.056604 0.146553 -8.134798 -v -0.157928 0.161766 -8.546125 -v -1.836226 1.016590 -7.410828 -v -1.627684 0.872918 -7.538481 -v -1.370280 0.758218 -7.595252 -v -1.747767 0.932613 -7.142950 -v -1.528535 0.732919 -7.246038 -v -1.256016 0.658972 -7.340291 -v -1.538345 0.794709 -6.746178 -v -1.346968 0.594312 -6.836720 -v -1.106538 0.540492 -6.926594 -v -1.327304 0.638226 -6.296957 -v -1.144801 0.423090 -6.386161 -v -0.907648 0.349198 -6.500935 -v -1.381548 1.162123 -6.749738 -v -1.167106 1.131764 -6.834267 -v -1.001718 0.954827 -6.919466 -v -1.579033 1.276060 -7.151250 -v -1.336962 1.223187 -7.246882 -v -1.140912 1.040889 -7.333368 -v -1.682336 1.295016 -7.423892 -v -1.479018 1.212733 -7.544489 -v -1.266431 1.072053 -7.592119 -v -1.173291 1.003628 -6.309747 -v -0.980917 0.984092 -6.395974 -v -0.826961 0.810684 -6.501183 -v -0.978037 0.704393 -6.955856 -v -1.119137 0.806439 -7.374477 -v -1.298471 0.903687 -7.643332 -v -0.811802 0.542748 -6.562383 -v -1.320080 0.864534 -6.271852 -v -1.536038 1.021683 -6.715133 -v -1.746360 1.149667 -7.118443 -v -1.808232 1.181964 -7.439637 -v 2.071132 1.255908 -6.105393 -v 1.505985 0.975476 -6.611821 -v 0.931009 0.299286 -8.285854 -v -0.474965 0.178488 -8.633644 -v -1.589683 1.061216 -7.631387 -v 0.763920 0.520049 -6.078023 -# 281 vertices - -# 0 texture vertices - -# 0 normals - -usemtl hand -f 2 4 1 -f 5 4 2 -f 3 5 2 -f 5 6 4 -f 1 10 9 -f 1 7 10 -f 7 11 10 -f 7 8 11 -f 10 12 9 -f 12 10 13 -f 10 14 13 -f 10 11 14 -f 12 17 9 -f 12 15 17 -f 18 15 16 -f 15 18 17 -f 9 2 1 -f 9 17 2 -f 18 2 17 -f 2 18 3 -f 19 4 6 -f 7 4 19 -f 8 7 19 -f 7 1 4 -f 20 22 12 -f 23 22 20 -f 21 23 20 -f 23 24 22 -f 16 26 25 -f 16 15 26 -f 15 22 26 -f 15 12 22 -f 25 28 27 -f 25 26 28 -f 22 28 26 -f 28 22 24 -f 30 31 29 -f 32 31 30 -f 6 32 30 -f 32 33 31 -f 5 32 6 -f 32 5 34 -f 5 35 34 -f 5 3 35 -f 34 33 32 -f 33 34 36 -f 35 36 34 -f 36 35 37 -f 39 40 38 -f 31 40 39 -f 29 31 39 -f 31 33 40 -f 42 43 41 -f 40 43 42 -f 38 40 42 -f 40 33 43 -f 45 46 44 -f 46 45 47 -f 38 47 45 -f 47 38 42 -f 46 49 48 -f 46 47 49 -f 47 41 49 -f 47 42 41 -f 44 52 45 -f 44 50 52 -f 50 53 52 -f 50 51 53 -f 52 38 45 -f 38 52 39 -f 52 29 39 -f 52 53 29 -f 36 55 33 -f 55 36 56 -f 37 56 36 -f 56 37 54 -f 56 24 55 -f 24 56 28 -f 27 56 54 -f 56 27 28 -f 33 57 43 -f 33 55 57 -f 55 58 57 -f 55 24 58 -f 57 41 43 -f 41 57 59 -f 58 59 57 -f 59 58 60 -f 62 64 61 -f 64 62 65 -f 63 65 62 -f 65 63 66 -f 65 21 64 -f 21 65 23 -f 66 23 65 -f 23 66 24 -f 66 58 24 -f 58 66 67 -f 63 67 66 -f 67 63 68 -f 67 60 58 -f 60 67 69 -f 68 69 67 -f 69 68 70 -f 61 72 71 -f 61 64 72 -f 64 73 72 -f 64 21 73 -f 71 75 74 -f 71 72 75 -f 72 76 75 -f 72 73 76 -f 53 77 29 -f 77 53 78 -f 51 78 53 -f 78 51 79 -f 78 80 77 -f 80 78 81 -f 79 81 78 -f 81 79 82 -f 83 77 80 -f 77 83 85 -f 83 86 85 -f 83 84 86 -f 85 29 77 -f 29 85 30 -f 86 30 85 -f 30 86 6 -f 73 87 76 -f 87 73 88 -f 21 88 73 -f 88 21 20 -f 88 89 87 -f 89 88 90 -f 20 90 88 -f 90 20 12 -f 90 91 89 -f 91 90 92 -f 90 13 92 -f 90 12 13 -f 91 94 93 -f 91 92 94 -f 92 14 94 -f 92 13 14 -f 95 98 97 -f 95 96 98 -f 8 98 96 -f 98 8 19 -f 97 86 84 -f 97 98 86 -f 19 86 98 -f 86 19 6 -f 59 49 41 -f 49 59 99 -f 59 69 99 -f 59 60 69 -f 99 48 49 -f 48 99 100 -f 99 70 100 -f 99 69 70 -f 8 101 11 -f 8 96 101 -f 96 102 101 -f 96 95 102 -f 101 14 11 -f 14 101 94 -f 101 93 94 -f 101 102 93 -f 103 107 106 -f 103 104 107 -f 105 107 104 -f 107 105 108 -f 107 109 106 -f 109 107 110 -f 108 110 107 -f 110 108 111 -f 63 113 68 -f 63 112 113 -f 112 104 113 -f 112 105 104 -f 68 114 70 -f 68 113 114 -f 113 103 114 -f 113 104 103 -f 115 118 117 -f 115 116 118 -f 105 118 116 -f 118 105 112 -f 117 62 61 -f 117 118 62 -f 112 62 118 -f 62 112 63 -f 120 121 119 -f 121 120 122 -f 111 122 120 -f 122 111 108 -f 122 115 121 -f 115 122 116 -f 108 116 122 -f 116 108 105 -f 123 127 126 -f 123 124 127 -f 124 128 127 -f 124 125 128 -f 126 130 129 -f 126 127 130 -f 127 131 130 -f 127 128 131 -f 44 133 132 -f 44 46 133 -f 48 133 46 -f 133 48 134 -f 132 126 129 -f 132 133 126 -f 134 126 133 -f 126 134 123 -f 135 138 137 -f 135 136 138 -f 136 130 138 -f 136 129 130 -f 137 140 139 -f 137 138 140 -f 138 131 140 -f 138 130 131 -f 51 142 141 -f 51 50 142 -f 50 132 142 -f 50 44 132 -f 141 136 135 -f 141 142 136 -f 142 129 136 -f 142 132 129 -f 109 144 106 -f 109 143 144 -f 125 144 143 -f 144 125 124 -f 106 145 103 -f 106 144 145 -f 124 145 144 -f 145 124 123 -f 100 134 48 -f 134 100 146 -f 70 146 100 -f 146 70 114 -f 146 123 134 -f 123 146 145 -f 114 145 146 -f 145 114 103 -f 135 148 141 -f 135 147 148 -f 147 117 148 -f 147 115 117 -f 141 149 51 -f 141 148 149 -f 148 61 149 -f 148 117 61 -f 115 150 121 -f 115 147 150 -f 135 150 147 -f 150 135 137 -f 121 151 119 -f 121 150 151 -f 137 151 150 -f 151 137 139 -f 120 152 111 -f 152 120 153 -f 119 153 120 -f 153 119 154 -f 152 156 155 -f 152 153 156 -f 153 157 156 -f 153 154 157 -f 158 161 160 -f 158 159 161 -f 159 110 161 -f 159 109 110 -f 160 152 155 -f 160 161 152 -f 161 111 152 -f 161 110 111 -f 162 140 131 -f 140 162 164 -f 162 165 164 -f 162 163 165 -f 164 139 140 -f 139 164 166 -f 164 167 166 -f 164 165 167 -f 168 171 170 -f 168 169 171 -f 163 171 169 -f 171 163 162 -f 171 125 170 -f 125 171 128 -f 162 128 171 -f 128 162 131 -f 172 169 168 -f 169 172 173 -f 158 173 172 -f 173 158 160 -f 169 174 163 -f 169 173 174 -f 160 174 173 -f 174 160 155 -f 157 176 156 -f 157 175 176 -f 167 176 175 -f 176 167 165 -f 176 155 156 -f 155 176 174 -f 176 163 174 -f 176 165 163 -f 177 181 180 -f 177 178 181 -f 178 182 181 -f 178 179 182 -f 181 183 180 -f 183 181 184 -f 181 185 184 -f 181 182 185 -f 186 75 76 -f 75 186 187 -f 179 187 186 -f 187 179 178 -f 187 74 75 -f 74 187 188 -f 178 188 187 -f 188 178 177 -f 189 193 192 -f 189 190 193 -f 191 193 190 -f 193 191 194 -f 192 196 195 -f 192 193 196 -f 193 197 196 -f 193 194 197 -f 81 198 80 -f 198 81 199 -f 82 199 81 -f 199 82 200 -f 199 195 198 -f 195 199 192 -f 200 192 199 -f 192 200 189 -f 200 201 189 -f 201 200 202 -f 200 203 202 -f 200 82 203 -f 202 177 201 -f 177 202 188 -f 202 74 188 -f 202 203 74 -f 177 204 201 -f 177 180 204 -f 183 204 180 -f 204 183 205 -f 204 189 201 -f 189 204 190 -f 204 191 190 -f 204 205 191 -f 195 207 198 -f 195 206 207 -f 179 207 206 -f 207 179 186 -f 198 208 80 -f 198 207 208 -f 186 208 207 -f 208 186 76 -f 206 182 179 -f 182 206 209 -f 206 196 209 -f 206 195 196 -f 209 185 182 -f 185 209 210 -f 209 197 210 -f 209 196 197 -f 211 215 214 -f 211 212 215 -f 213 215 212 -f 215 213 216 -f 215 217 214 -f 217 215 218 -f 216 218 215 -f 218 216 219 -f 220 216 213 -f 216 220 221 -f 76 221 220 -f 221 76 87 -f 221 219 216 -f 219 221 222 -f 87 222 221 -f 222 87 89 -f 223 227 226 -f 223 224 227 -f 225 227 224 -f 227 225 228 -f 227 229 226 -f 229 227 230 -f 228 230 227 -f 230 228 231 -f 230 232 229 -f 232 230 233 -f 231 233 230 -f 233 231 234 -f 233 80 232 -f 80 233 83 -f 233 84 83 -f 233 234 84 -f 222 235 219 -f 235 222 236 -f 222 237 236 -f 222 89 237 -f 236 231 235 -f 231 236 234 -f 237 234 236 -f 234 237 84 -f 217 239 238 -f 217 218 239 -f 219 239 218 -f 239 219 235 -f 239 225 238 -f 225 239 228 -f 239 231 228 -f 239 235 231 -f 220 208 76 -f 208 220 240 -f 213 240 220 -f 240 213 241 -f 208 232 80 -f 208 240 232 -f 240 229 232 -f 240 241 229 -f 241 226 229 -f 226 241 242 -f 241 212 242 -f 241 213 212 -f 242 223 226 -f 223 242 243 -f 242 211 243 -f 242 212 211 -f 244 248 247 -f 244 245 248 -f 246 248 245 -f 248 246 249 -f 248 250 247 -f 250 248 251 -f 249 251 248 -f 251 249 252 -f 250 254 253 -f 250 251 254 -f 252 254 251 -f 254 252 255 -f 253 91 93 -f 253 254 91 -f 254 89 91 -f 254 255 89 -f 256 260 259 -f 256 257 260 -f 258 260 257 -f 260 258 261 -f 260 262 259 -f 262 260 263 -f 260 264 263 -f 260 261 264 -f 97 265 95 -f 265 97 266 -f 84 266 97 -f 266 84 267 -f 265 257 256 -f 265 266 257 -f 267 257 266 -f 257 267 258 -f 249 268 252 -f 268 249 269 -f 249 270 269 -f 249 246 270 -f 269 258 268 -f 258 269 261 -f 269 264 261 -f 269 270 264 -f 255 237 89 -f 237 255 271 -f 252 271 255 -f 271 252 268 -f 271 84 237 -f 84 271 267 -f 268 267 271 -f 267 268 258 -f 102 253 93 -f 253 102 272 -f 102 265 272 -f 102 95 265 -f 272 250 253 -f 250 272 273 -f 272 256 273 -f 272 265 256 -f 259 273 256 -f 273 259 274 -f 262 274 259 -f 274 262 275 -f 273 247 250 -f 273 274 247 -f 274 244 247 -f 274 275 244 -f 172 159 158 -f 159 172 276 -f 172 170 276 -f 172 168 170 -f 276 109 159 -f 109 276 143 -f 170 143 276 -f 143 170 125 -f 151 154 119 -f 154 151 277 -f 151 166 277 -f 151 139 166 -f 154 175 157 -f 154 277 175 -f 277 167 175 -f 277 166 167 -f 197 278 210 -f 197 194 278 -f 191 278 194 -f 278 191 205 -f 278 185 210 -f 185 278 184 -f 278 183 184 -f 278 205 183 -f 223 279 224 -f 223 243 279 -f 211 279 243 -f 279 211 214 -f 279 225 224 -f 225 279 238 -f 279 217 238 -f 279 214 217 -f 262 280 275 -f 262 263 280 -f 264 280 263 -f 280 264 270 -f 280 244 275 -f 244 280 245 -f 270 245 280 -f 245 270 246 -f 74 281 71 -f 74 203 281 -f 82 281 203 -f 281 82 79 -f 71 149 61 -f 71 281 149 -f 79 149 281 -f 149 79 51 -# 552 elements diff --git a/src/Morphing/hand2.obj b/src/Morphing/hand2.obj deleted file mode 100644 index e7321c1..0000000 --- a/src/Morphing/hand2.obj +++ /dev/null @@ -1,846 +0,0 @@ -# Mon Jun 02 17:09:49 1997 -# -# - -g hand2 -v -0.545629 0.226597 -3.972744 -v -0.215053 0.028788 -3.704237 -v -0.048631 -0.141870 -1.731539 -v -0.486661 0.360120 -4.035744 -v -0.168475 0.089529 -3.756256 -v -0.340613 0.471505 -4.270064 -v -0.635471 0.403031 -4.188368 -v -0.756139 0.537011 -4.495984 -v -0.519863 0.020651 -3.964786 -v -0.700655 0.190824 -4.211964 -v -0.861473 0.372102 -4.526962 -v -0.356499 -0.174538 -4.199869 -v -0.714045 0.044261 -4.445632 -v -0.890476 0.203518 -4.607591 -v -0.170313 -0.192685 -3.756315 -v -0.069766 -0.312358 -1.638721 -v -0.232940 -0.103910 -3.758020 -v -0.115092 -0.245076 -1.715384 -v -0.586581 0.541254 -4.390105 -v -0.035952 -0.274007 -4.418982 -v 0.255124 -0.249237 -4.776807 -v 0.018833 -0.240104 -4.027362 -v 0.284973 -0.207728 -4.316310 -v 0.434752 -0.000032 -4.022241 -v 0.022704 -0.329702 -1.621020 -v -0.055377 -0.221593 -3.718934 -v 0.105371 -0.295391 -1.615597 -v 0.046896 -0.174033 -3.708722 -v 0.033445 0.525248 -4.572588 -v -0.146022 0.491685 -4.378734 -v -0.008484 0.509017 -4.183765 -v -0.109786 0.450335 -4.040698 -v 0.106167 0.452120 -3.961211 -v -0.081537 0.087205 -3.782939 -v -0.004783 -0.118520 -1.734107 -v 0.008732 0.041375 -3.708363 -v 0.080374 -0.144013 -1.651651 -v 0.267743 0.688582 -4.403843 -v 0.134602 0.595547 -4.385927 -v 0.155445 0.603098 -4.172839 -v 0.510348 0.750695 -4.322186 -v 0.351763 0.725704 -4.323452 -v 0.293357 0.616488 -4.126201 -v 0.644985 0.911535 -5.278749 -v 0.476753 0.808807 -4.843080 -v 0.729327 1.001220 -5.209341 -v 0.576282 0.887766 -4.779078 -v 0.861206 1.041806 -5.155231 -v 0.720826 0.920527 -4.727794 -v 0.591358 0.800004 -5.365947 -v 0.601106 0.662395 -5.579942 -v 0.385222 0.705498 -4.899085 -v 0.327338 0.605102 -5.113508 -v 0.123562 -0.217362 -1.626587 -v 0.301415 0.221510 -3.856624 -v 0.057648 -0.069121 -3.679395 -v 0.481419 0.465636 -4.058800 -v 0.733329 0.364516 -4.192796 -v 0.715407 0.668961 -4.293678 -v 0.891503 0.576285 -4.325380 -v 0.925616 0.325221 -5.607038 -v 1.087404 0.428685 -5.355153 -v 1.192964 0.581656 -5.247297 -v 0.655301 -0.002104 -5.205223 -v 0.826001 0.093037 -4.822896 -v 0.936937 0.282795 -4.650935 -v 1.071822 0.521897 -4.652002 -v 1.253768 0.746632 -5.184807 -v 1.087957 0.735338 -4.683784 -v 1.216838 0.899384 -5.149589 -v 0.711147 0.230918 -6.030735 -v 0.476647 -0.030016 -5.767413 -v 0.142223 -0.215576 -5.512595 -v 0.589280 0.158661 -6.504986 -v 0.382367 -0.041679 -6.374435 -v 0.052545 -0.020831 -6.416378 -v 0.004866 0.539221 -5.338164 -v 0.294897 0.599163 -5.651150 -v 0.547241 0.615171 -5.966590 -v -0.001080 0.527218 -6.226285 -v 0.274900 0.607360 -6.287489 -v 0.507029 0.599694 -6.459079 -v -0.304989 0.605648 -6.026434 -v -0.588412 0.775369 -6.061018 -v -0.235417 0.550011 -5.181865 -v -0.450388 0.614566 -5.143874 -v -0.283040 -0.067515 -6.255307 -v -0.179973 -0.263960 -5.306118 -v -0.665295 0.178195 -6.225147 -v -0.506975 -0.143513 -5.176296 -v -0.975091 0.334957 -5.897993 -v -0.814140 0.069075 -5.111338 -v -1.151849 0.543036 -5.754441 -v -1.001447 0.285489 -5.111672 -v -0.965973 0.855410 -5.679462 -v -0.853225 0.658026 -5.081767 -v -0.768725 0.885422 -5.758699 -v -0.661677 0.680318 -5.098948 -v 0.926772 0.868255 -4.695576 -v 1.052723 1.006416 -5.135924 -v -0.991553 0.504328 -5.086818 -v -1.125149 0.731518 -5.686989 -v 1.303689 1.033657 -5.689645 -v 1.349170 0.926230 -5.744081 -v 1.316995 0.810848 -5.819848 -v 1.335402 1.170071 -5.865595 -v 1.362673 1.055005 -5.926610 -v 1.324385 0.938256 -6.020778 -v 1.410471 1.327249 -6.076220 -v 1.420585 1.201262 -6.166119 -v 1.368728 1.073079 -6.289456 -v 1.275447 0.732420 -5.607525 -v 1.315548 0.861839 -5.536830 -v 1.265631 0.978431 -5.481887 -v 1.109960 0.647515 -5.964428 -v 1.236318 0.701507 -5.903873 -v 1.045745 0.541486 -5.756546 -v 1.185145 0.607547 -5.683672 -v 1.126042 0.911004 -6.484125 -v 1.260541 0.959921 -6.409129 -v 1.116033 0.789199 -6.215408 -v 1.238526 0.835123 -6.132965 -v 1.008562 1.150313 -5.667244 -v 1.106643 1.305370 -5.848235 -v 1.233100 1.484675 -6.059801 -v 0.888559 1.106689 -5.702088 -v 0.985226 1.254602 -5.879530 -v 1.105698 1.433834 -6.098895 -v 0.812199 1.014149 -5.765767 -v 0.891119 1.151850 -5.946655 -v 0.987588 1.322413 -6.173646 -v 0.736157 0.957482 -5.567209 -v 0.810319 1.047137 -5.499653 -v 0.932046 1.090406 -5.456793 -v 0.822744 0.790022 -5.929116 -v 0.782579 0.903754 -5.850531 -v 0.867396 0.936043 -6.161350 -v 0.843523 1.042929 -6.053780 -v 0.911772 1.081739 -6.408180 -v 0.912443 1.201594 -6.290159 -v 0.737027 0.724935 -5.731150 -v 0.703318 0.847734 -5.646091 -v 1.341226 1.437246 -6.046185 -v 1.236369 1.267617 -5.841922 -v 1.167446 1.119645 -5.663458 -v 1.107867 1.064412 -5.452231 -v 0.948806 0.689125 -5.971970 -v 0.872849 0.609231 -5.783209 -v 0.781035 0.526092 -5.762100 -v 0.973032 0.836092 -6.223403 -v 0.994805 0.967427 -6.481477 -v 1.495197 1.158527 -6.645423 -v 1.354724 1.014236 -6.722411 -v 1.195778 0.940855 -6.732456 -v 1.565488 1.249424 -6.923759 -v 1.406339 1.071370 -6.949717 -v 1.265445 0.960990 -6.892314 -v 1.638914 1.485047 -6.580676 -v 1.546930 1.431636 -6.350698 -v 1.642671 1.399706 -6.762676 -v 1.557898 1.303849 -6.492972 -v 1.099399 1.460928 -6.484489 -v 1.242754 1.502103 -6.790419 -v 0.999544 1.301628 -6.571692 -v 1.118751 1.308856 -6.829766 -v 0.979609 1.139385 -6.646541 -v 1.060424 1.149347 -6.815580 -v 1.455248 1.654590 -6.566786 -v 1.372638 1.624035 -6.688066 -v 1.365156 1.609915 -6.335397 -v 1.234614 1.575107 -6.401853 -v 1.565822 1.588197 -6.591331 -v 1.547752 1.535880 -6.818796 -v 1.445347 1.397323 -6.963596 -v 1.158417 1.039164 -6.880589 -v 1.288292 1.198123 -6.973975 -v 0.664087 0.148083 -7.294943 -v 0.435748 0.025040 -7.292446 -v 0.212877 0.160088 -7.281471 -v 0.785373 0.173634 -7.783887 -v 0.518575 0.067897 -7.800985 -v 0.271345 0.242325 -7.758057 -v 0.826827 0.208746 -8.147941 -v 0.572939 0.148727 -8.206624 -v 0.325508 0.231584 -8.119010 -v 0.164075 0.075407 -6.818721 -v 0.380953 -0.013843 -6.839242 -v 0.580180 0.132467 -6.892866 -v 0.608535 0.593486 -7.282530 -v 0.726502 0.591761 -7.775616 -v 0.772896 0.554086 -8.142780 -v 0.360286 0.622050 -7.265000 -v 0.437249 0.612740 -7.792085 -v 0.509853 0.535394 -8.204787 -v 0.160224 0.549868 -7.218602 -v 0.209808 0.590107 -7.721076 -v 0.267898 0.534017 -8.108936 -v 0.111090 0.516500 -6.720913 -v 0.298230 0.611278 -6.790854 -v 0.518079 0.589180 -6.874673 -v 0.726888 0.393165 -7.292970 -v 0.628159 0.389210 -6.913399 -v 0.624790 0.421710 -6.550771 -v 0.855781 0.401525 -7.780616 -v 0.850483 0.389631 -8.193182 -v 0.126257 0.432018 -7.223687 -v 0.081097 0.333542 -6.781929 -v 0.024773 0.331692 -6.543201 -v 0.179967 0.513803 -7.691848 -v 0.270466 0.398086 -8.149796 -v -0.085803 2.071088 -7.365792 -v -0.089283 1.657050 -7.409026 -v -0.132752 1.024134 -7.355868 -v -0.339231 2.178852 -7.313980 -v -0.362585 1.717826 -7.403921 -v -0.376816 1.020220 -7.374946 -v -0.609086 2.098261 -7.268658 -v -0.644951 1.683101 -7.308946 -v -0.620699 1.049622 -7.252518 -v -0.115696 0.389618 -6.975528 -v -0.348229 0.364394 -6.960135 -v -0.589678 0.477314 -6.850625 -v -0.063362 2.126922 -6.994926 -v -0.317776 2.207434 -6.893541 -v -0.592443 2.122036 -6.922650 -v -0.060384 1.753711 -6.967503 -v -0.330655 1.784850 -6.821116 -v -0.622382 1.744780 -6.913632 -v -0.111831 1.216582 -6.951138 -v -0.351669 1.253255 -6.832911 -v -0.599234 1.235825 -6.874247 -v -0.113630 0.786347 -6.638087 -v -0.343041 0.846074 -6.551879 -v -0.571143 0.863954 -6.597034 -v -0.702952 1.143454 -7.043127 -v -0.659979 0.708124 -6.719869 -v -0.688492 0.602267 -6.399982 -v -0.640513 2.158446 -7.091597 -v -0.733751 1.708568 -7.108687 -v -0.042639 0.608451 -6.846946 -v -0.033981 1.117844 -7.181334 -v 0.014576 1.681971 -7.232140 -v -0.034099 2.140646 -7.197904 -v -1.427884 2.125531 -6.104109 -v -1.232856 2.217431 -6.261067 -v -1.030471 2.172613 -6.454438 -v -1.433002 1.846260 -6.128913 -v -1.256178 1.899456 -6.333560 -v -1.021006 1.878065 -6.513752 -v -1.382181 1.396092 -6.219269 -v -1.241525 1.399828 -6.428739 -v -1.025330 1.377688 -6.574033 -v -1.304705 0.946481 -6.184714 -v -1.170819 0.841650 -6.394479 -v -0.946587 0.786927 -6.537124 -v -1.133362 1.480745 -5.995321 -v -0.908216 1.491027 -6.055746 -v -0.781984 1.482366 -6.234836 -v -1.166789 1.889461 -5.900780 -v -0.912111 1.929120 -5.973505 -v -0.773154 1.928164 -6.197147 -v -1.192128 2.159473 -5.918907 -v -0.979939 2.235226 -6.018824 -v -0.820842 2.203268 -6.203417 -v -1.073035 1.127979 -6.002315 -v -0.883316 1.138491 -6.095742 -v -0.766101 1.081268 -6.289536 -v -0.842475 1.437964 -6.469625 -v -0.835837 1.902370 -6.431089 -v -0.901630 2.225091 -6.358479 -v -0.809658 0.951527 -6.487935 -v -1.248762 1.053319 -6.037439 -v -1.326974 1.438433 -6.057952 -v -1.378537 1.859137 -5.972835 -v -1.347264 2.171041 -5.994931 -v 1.476370 1.548335 -6.314360 -v 1.060616 1.003273 -6.708851 -v 0.566455 0.353316 -8.324208 -v -0.326088 2.309241 -7.118046 -v -1.118212 2.311149 -6.146525 -v 0.706268 0.472086 -6.106736 -# 281 vertices - -# 0 texture vertices - -# 0 normals - -usemtl hand -f 2 4 1 -f 5 4 2 -f 3 5 2 -f 5 6 4 -f 1 10 9 -f 1 7 10 -f 7 11 10 -f 7 8 11 -f 10 12 9 -f 12 10 13 -f 10 14 13 -f 10 11 14 -f 12 17 9 -f 12 15 17 -f 18 15 16 -f 15 18 17 -f 9 2 1 -f 9 17 2 -f 18 2 17 -f 2 18 3 -f 19 4 6 -f 7 4 19 -f 8 7 19 -f 7 1 4 -f 20 22 12 -f 23 22 20 -f 21 23 20 -f 23 24 22 -f 16 26 25 -f 16 15 26 -f 15 22 26 -f 15 12 22 -f 25 28 27 -f 25 26 28 -f 22 28 26 -f 28 22 24 -f 30 31 29 -f 32 31 30 -f 6 32 30 -f 32 33 31 -f 5 32 6 -f 32 5 34 -f 5 35 34 -f 5 3 35 -f 34 33 32 -f 33 34 36 -f 35 36 34 -f 36 35 37 -f 39 40 38 -f 31 40 39 -f 29 31 39 -f 31 33 40 -f 42 43 41 -f 40 43 42 -f 38 40 42 -f 40 33 43 -f 45 46 44 -f 46 45 47 -f 38 47 45 -f 47 38 42 -f 46 49 48 -f 46 47 49 -f 47 41 49 -f 47 42 41 -f 44 52 45 -f 44 50 52 -f 50 53 52 -f 50 51 53 -f 52 38 45 -f 38 52 39 -f 52 29 39 -f 52 53 29 -f 36 55 33 -f 55 36 56 -f 37 56 36 -f 56 37 54 -f 56 24 55 -f 24 56 28 -f 27 56 54 -f 56 27 28 -f 33 57 43 -f 33 55 57 -f 55 58 57 -f 55 24 58 -f 57 41 43 -f 41 57 59 -f 58 59 57 -f 59 58 60 -f 62 64 61 -f 64 62 65 -f 63 65 62 -f 65 63 66 -f 65 21 64 -f 21 65 23 -f 66 23 65 -f 23 66 24 -f 66 58 24 -f 58 66 67 -f 63 67 66 -f 67 63 68 -f 67 60 58 -f 60 67 69 -f 68 69 67 -f 69 68 70 -f 61 72 71 -f 61 64 72 -f 64 73 72 -f 64 21 73 -f 71 75 74 -f 71 72 75 -f 72 76 75 -f 72 73 76 -f 53 77 29 -f 77 53 78 -f 51 78 53 -f 78 51 79 -f 78 80 77 -f 80 78 81 -f 79 81 78 -f 81 79 82 -f 83 77 80 -f 77 83 85 -f 83 86 85 -f 83 84 86 -f 85 29 77 -f 29 85 30 -f 86 30 85 -f 30 86 6 -f 73 87 76 -f 87 73 88 -f 21 88 73 -f 88 21 20 -f 88 89 87 -f 89 88 90 -f 20 90 88 -f 90 20 12 -f 90 91 89 -f 91 90 92 -f 90 13 92 -f 90 12 13 -f 91 94 93 -f 91 92 94 -f 92 14 94 -f 92 13 14 -f 95 98 97 -f 95 96 98 -f 8 98 96 -f 98 8 19 -f 97 86 84 -f 97 98 86 -f 19 86 98 -f 86 19 6 -f 59 49 41 -f 49 59 99 -f 59 69 99 -f 59 60 69 -f 99 48 49 -f 48 99 100 -f 99 70 100 -f 99 69 70 -f 8 101 11 -f 8 96 101 -f 96 102 101 -f 96 95 102 -f 101 14 11 -f 14 101 94 -f 101 93 94 -f 101 102 93 -f 103 107 106 -f 103 104 107 -f 105 107 104 -f 107 105 108 -f 107 109 106 -f 109 107 110 -f 108 110 107 -f 110 108 111 -f 63 113 68 -f 63 112 113 -f 112 104 113 -f 112 105 104 -f 68 114 70 -f 68 113 114 -f 113 103 114 -f 113 104 103 -f 115 118 117 -f 115 116 118 -f 105 118 116 -f 118 105 112 -f 117 62 61 -f 117 118 62 -f 112 62 118 -f 62 112 63 -f 120 121 119 -f 121 120 122 -f 111 122 120 -f 122 111 108 -f 122 115 121 -f 115 122 116 -f 108 116 122 -f 116 108 105 -f 123 127 126 -f 123 124 127 -f 124 128 127 -f 124 125 128 -f 126 130 129 -f 126 127 130 -f 127 131 130 -f 127 128 131 -f 44 133 132 -f 44 46 133 -f 48 133 46 -f 133 48 134 -f 132 126 129 -f 132 133 126 -f 134 126 133 -f 126 134 123 -f 135 138 137 -f 135 136 138 -f 136 130 138 -f 136 129 130 -f 137 140 139 -f 137 138 140 -f 138 131 140 -f 138 130 131 -f 51 142 141 -f 51 50 142 -f 50 132 142 -f 50 44 132 -f 141 136 135 -f 141 142 136 -f 142 129 136 -f 142 132 129 -f 109 144 106 -f 109 143 144 -f 125 144 143 -f 144 125 124 -f 106 145 103 -f 106 144 145 -f 124 145 144 -f 145 124 123 -f 100 134 48 -f 134 100 146 -f 70 146 100 -f 146 70 114 -f 146 123 134 -f 123 146 145 -f 114 145 146 -f 145 114 103 -f 135 148 141 -f 135 147 148 -f 147 117 148 -f 147 115 117 -f 141 149 51 -f 141 148 149 -f 148 61 149 -f 148 117 61 -f 115 150 121 -f 115 147 150 -f 135 150 147 -f 150 135 137 -f 121 151 119 -f 121 150 151 -f 137 151 150 -f 151 137 139 -f 120 152 111 -f 152 120 153 -f 119 153 120 -f 153 119 154 -f 152 156 155 -f 152 153 156 -f 153 157 156 -f 153 154 157 -f 158 161 160 -f 158 159 161 -f 159 110 161 -f 159 109 110 -f 160 152 155 -f 160 161 152 -f 161 111 152 -f 161 110 111 -f 162 140 131 -f 140 162 164 -f 162 165 164 -f 162 163 165 -f 164 139 140 -f 139 164 166 -f 164 167 166 -f 164 165 167 -f 168 171 170 -f 168 169 171 -f 163 171 169 -f 171 163 162 -f 171 125 170 -f 125 171 128 -f 162 128 171 -f 128 162 131 -f 172 169 168 -f 169 172 173 -f 158 173 172 -f 173 158 160 -f 169 174 163 -f 169 173 174 -f 160 174 173 -f 174 160 155 -f 157 176 156 -f 157 175 176 -f 167 176 175 -f 176 167 165 -f 176 155 156 -f 155 176 174 -f 176 163 174 -f 176 165 163 -f 177 181 180 -f 177 178 181 -f 178 182 181 -f 178 179 182 -f 181 183 180 -f 183 181 184 -f 181 185 184 -f 181 182 185 -f 186 75 76 -f 75 186 187 -f 179 187 186 -f 187 179 178 -f 187 74 75 -f 74 187 188 -f 178 188 187 -f 188 178 177 -f 189 193 192 -f 189 190 193 -f 191 193 190 -f 193 191 194 -f 192 196 195 -f 192 193 196 -f 193 197 196 -f 193 194 197 -f 81 198 80 -f 198 81 199 -f 82 199 81 -f 199 82 200 -f 199 195 198 -f 195 199 192 -f 200 192 199 -f 192 200 189 -f 200 201 189 -f 201 200 202 -f 200 203 202 -f 200 82 203 -f 202 177 201 -f 177 202 188 -f 202 74 188 -f 202 203 74 -f 177 204 201 -f 177 180 204 -f 183 204 180 -f 204 183 205 -f 204 189 201 -f 189 204 190 -f 204 191 190 -f 204 205 191 -f 195 207 198 -f 195 206 207 -f 179 207 206 -f 207 179 186 -f 198 208 80 -f 198 207 208 -f 186 208 207 -f 208 186 76 -f 206 182 179 -f 182 206 209 -f 206 196 209 -f 206 195 196 -f 209 185 182 -f 185 209 210 -f 209 197 210 -f 209 196 197 -f 211 215 214 -f 211 212 215 -f 213 215 212 -f 215 213 216 -f 215 217 214 -f 217 215 218 -f 216 218 215 -f 218 216 219 -f 220 216 213 -f 216 220 221 -f 76 221 220 -f 221 76 87 -f 221 219 216 -f 219 221 222 -f 87 222 221 -f 222 87 89 -f 223 227 226 -f 223 224 227 -f 225 227 224 -f 227 225 228 -f 227 229 226 -f 229 227 230 -f 228 230 227 -f 230 228 231 -f 230 232 229 -f 232 230 233 -f 231 233 230 -f 233 231 234 -f 233 80 232 -f 80 233 83 -f 233 84 83 -f 233 234 84 -f 222 235 219 -f 235 222 236 -f 222 237 236 -f 222 89 237 -f 236 231 235 -f 231 236 234 -f 237 234 236 -f 234 237 84 -f 217 239 238 -f 217 218 239 -f 219 239 218 -f 239 219 235 -f 239 225 238 -f 225 239 228 -f 239 231 228 -f 239 235 231 -f 220 208 76 -f 208 220 240 -f 213 240 220 -f 240 213 241 -f 208 232 80 -f 208 240 232 -f 240 229 232 -f 240 241 229 -f 241 226 229 -f 226 241 242 -f 241 212 242 -f 241 213 212 -f 242 223 226 -f 223 242 243 -f 242 211 243 -f 242 212 211 -f 244 248 247 -f 244 245 248 -f 246 248 245 -f 248 246 249 -f 248 250 247 -f 250 248 251 -f 249 251 248 -f 251 249 252 -f 250 254 253 -f 250 251 254 -f 252 254 251 -f 254 252 255 -f 253 91 93 -f 253 254 91 -f 254 89 91 -f 254 255 89 -f 256 260 259 -f 256 257 260 -f 258 260 257 -f 260 258 261 -f 260 262 259 -f 262 260 263 -f 260 264 263 -f 260 261 264 -f 97 265 95 -f 265 97 266 -f 84 266 97 -f 266 84 267 -f 265 257 256 -f 265 266 257 -f 267 257 266 -f 257 267 258 -f 249 268 252 -f 268 249 269 -f 249 270 269 -f 249 246 270 -f 269 258 268 -f 258 269 261 -f 269 264 261 -f 269 270 264 -f 255 237 89 -f 237 255 271 -f 252 271 255 -f 271 252 268 -f 271 84 237 -f 84 271 267 -f 268 267 271 -f 267 268 258 -f 102 253 93 -f 253 102 272 -f 102 265 272 -f 102 95 265 -f 272 250 253 -f 250 272 273 -f 272 256 273 -f 272 265 256 -f 259 273 256 -f 273 259 274 -f 262 274 259 -f 274 262 275 -f 273 247 250 -f 273 274 247 -f 274 244 247 -f 274 275 244 -f 172 159 158 -f 159 172 276 -f 172 170 276 -f 172 168 170 -f 276 109 159 -f 109 276 143 -f 170 143 276 -f 143 170 125 -f 151 154 119 -f 154 151 277 -f 151 166 277 -f 151 139 166 -f 154 175 157 -f 154 277 175 -f 277 167 175 -f 277 166 167 -f 197 278 210 -f 197 194 278 -f 191 278 194 -f 278 191 205 -f 278 185 210 -f 185 278 184 -f 278 183 184 -f 278 205 183 -f 223 279 224 -f 223 243 279 -f 211 279 243 -f 279 211 214 -f 279 225 224 -f 225 279 238 -f 279 217 238 -f 279 214 217 -f 262 280 275 -f 262 263 280 -f 264 280 263 -f 280 264 270 -f 280 244 275 -f 244 280 245 -f 270 245 280 -f 245 270 246 -f 74 281 71 -f 74 203 281 -f 82 281 203 -f 281 82 79 -f 71 149 61 -f 71 281 149 -f 79 149 281 -f 149 79 51 -# 552 elements diff --git a/src/Morphing/hand3.obj b/src/Morphing/hand3.obj deleted file mode 100644 index 865b440..0000000 --- a/src/Morphing/hand3.obj +++ /dev/null @@ -1,846 +0,0 @@ -# Mon Jun 02 17:10:02 1997 -# -# - -g hand3 -v -0.532397 0.197223 -3.999972 -v -0.214601 0.028608 -3.704992 -v -0.062767 -0.039672 -1.969593 -v -0.474970 0.318713 -4.067389 -v -0.168129 0.089251 -3.756891 -v -0.328587 0.420355 -4.296443 -v -0.623073 0.363357 -4.216684 -v -0.746171 0.497060 -4.524076 -v -0.506368 0.006295 -3.982003 -v -0.689049 0.168417 -4.231982 -v -0.853662 0.351475 -4.548802 -v -0.344509 -0.179734 -4.206146 -v -0.709169 0.037344 -4.456913 -v -0.884746 0.194925 -4.627260 -v -0.168024 -0.191951 -3.757912 -v -0.076841 -0.196481 -1.877360 -v -0.231457 -0.103955 -3.759368 -v -0.123436 -0.138285 -1.951048 -v -0.575776 0.499057 -4.413718 -v -0.022556 -0.274054 -4.419171 -v 0.295391 -0.244860 -4.781412 -v 0.027764 -0.237028 -4.026483 -v 0.328292 -0.191608 -4.297441 -v 0.452126 0.065151 -3.999771 -v 0.014266 -0.206977 -1.861471 -v -0.053052 -0.219763 -3.720458 -v 0.093672 -0.170271 -1.858756 -v 0.048687 -0.171678 -3.710009 -v 0.050155 0.444476 -4.604692 -v -0.133492 0.423989 -4.410464 -v -0.027107 0.434472 -4.242275 -v -0.117598 0.396084 -4.085021 -v 0.065233 0.421440 -4.017992 -v -0.081428 0.087141 -3.783137 -v -0.020959 -0.015459 -1.973519 -v 0.008804 0.041460 -3.708582 -v 0.062893 -0.032292 -1.896764 -v 0.225177 0.615409 -4.482480 -v 0.113530 0.511149 -4.450598 -v 0.102865 0.542478 -4.253375 -v 0.431656 0.735739 -4.416512 -v 0.288424 0.675882 -4.413925 -v 0.218974 0.589731 -4.211629 -v 0.541405 0.777453 -5.314148 -v 0.432074 0.710021 -4.892318 -v 0.593949 0.890727 -5.268293 -v 0.501790 0.814034 -4.847951 -v 0.700343 0.972337 -5.234181 -v 0.623032 0.889368 -4.811626 -v 0.521872 0.654464 -5.378404 -v 0.555062 0.525950 -5.571719 -v 0.375075 0.594255 -4.928543 -v 0.345045 0.495994 -5.115907 -v 0.108176 -0.097133 -1.871658 -v 0.273705 0.252739 -3.878058 -v 0.058055 -0.068344 -3.680041 -v 0.405284 0.512264 -4.112417 -v 0.687825 0.464139 -4.216795 -v 0.632930 0.719769 -4.375288 -v 0.825419 0.677113 -4.390901 -v 0.917800 0.280915 -5.602854 -v 1.056579 0.438767 -5.371966 -v 1.116715 0.631123 -5.302998 -v 0.705199 0.003471 -5.203117 -v 0.907904 0.141760 -4.788020 -v 0.962510 0.376613 -4.635034 -v 1.041596 0.636992 -4.691114 -v 1.130266 0.811997 -5.270994 -v 1.005013 0.831826 -4.762492 -v 1.055534 0.946727 -5.251543 -v 0.677585 0.233496 -6.061008 -v 0.460633 -0.018720 -5.787735 -v 0.144938 -0.190839 -5.542907 -v 0.494372 0.173628 -6.534559 -v 0.317081 -0.008497 -6.384122 -v 0.027201 0.131783 -6.428380 -v 0.013685 0.508910 -5.331713 -v 0.293216 0.555930 -5.655271 -v 0.510499 0.560260 -5.972243 -v -0.013202 0.565924 -6.175734 -v 0.224494 0.612542 -6.271984 -v 0.426059 0.599110 -6.464377 -v -0.306255 0.646060 -5.996577 -v -0.569808 0.913747 -5.981158 -v -0.228316 0.516391 -5.181461 -v -0.445620 0.586733 -5.146332 -v -0.293245 0.113327 -6.323775 -v -0.173597 -0.243629 -5.356423 -v -0.670974 0.376359 -6.246881 -v -0.505876 -0.129238 -5.220592 -v -0.981059 0.486591 -5.904088 -v -0.816316 0.081391 -5.139109 -v -1.148463 0.669179 -5.736072 -v -1.003358 0.292548 -5.142035 -v -0.951535 0.915719 -5.633423 -v -0.848045 0.626223 -5.094282 -v -0.743315 0.948671 -5.677959 -v -0.655824 0.645151 -5.103795 -v 0.822461 0.905362 -4.784215 -v 0.878885 0.998810 -5.230596 -v -0.989810 0.492494 -5.109306 -v -1.116492 0.823014 -5.656571 -v 0.996042 1.008486 -5.820419 -v 1.064506 0.912915 -5.870014 -v 1.060480 0.782157 -5.923663 -v 0.953680 1.113737 -6.014114 -v 1.005018 1.004616 -6.065710 -v 0.992276 0.867260 -6.135736 -v 0.944026 1.244268 -6.251624 -v 0.973965 1.115774 -6.327374 -v 0.945827 0.958451 -6.421946 -v 1.083427 0.733990 -5.698505 -v 1.090716 0.878610 -5.652200 -v 1.016854 0.980850 -5.602205 -v 0.904979 0.542860 -6.003450 -v 1.010214 0.640802 -5.976042 -v 0.918015 0.464134 -5.777233 -v 1.030665 0.577144 -5.740035 -v 0.758712 0.703562 -6.541620 -v 0.866703 0.798472 -6.502394 -v 0.825719 0.632441 -6.264884 -v 0.930940 0.724822 -6.214890 -v 0.693610 1.030609 -5.753376 -v 0.707614 1.171851 -5.966817 -v 0.745009 1.336440 -6.216925 -v 0.595931 0.948287 -5.758795 -v 0.607525 1.083062 -5.967039 -v 0.635682 1.245807 -6.223903 -v 0.548429 0.829721 -5.795010 -v 0.543563 0.948272 -6.001235 -v 0.548405 1.095687 -6.260015 -v 0.548777 0.793549 -5.588580 -v 0.593876 0.906330 -5.546043 -v 0.689842 0.988075 -5.529473 -v 0.608749 0.600589 -5.930038 -v 0.547295 0.706322 -5.859049 -v 0.567538 0.708497 -6.180083 -v 0.523106 0.816241 -6.083089 -v 0.535313 0.817538 -6.443928 -v 0.506392 0.943775 -6.343649 -v 0.600681 0.560351 -5.721073 -v 0.545933 0.674730 -5.647308 -v 0.856788 1.328405 -6.220259 -v 0.836996 1.177698 -5.982326 -v 0.846715 1.051347 -5.777648 -v 0.851110 1.017751 -5.553206 -v 0.745225 0.534151 -5.983995 -v 0.739831 0.476319 -5.779583 -v 0.715754 0.412378 -5.751285 -v 0.683826 0.635181 -6.249702 -v 0.633316 0.723667 -6.518804 -v 0.980715 1.013307 -6.803527 -v 0.892386 0.823377 -6.831568 -v 0.786718 0.714033 -6.798828 -v 0.975463 1.069959 -7.098132 -v 0.890573 0.852994 -7.068334 -v 0.825719 0.727882 -6.968780 -v 1.025155 1.371318 -6.805808 -v 0.995242 1.333836 -6.557353 -v 1.022430 1.262102 -6.975050 -v 1.017056 1.195056 -6.684767 -v 0.555587 1.202589 -6.599424 -v 0.612038 1.229948 -6.932652 -v 0.508225 1.012148 -6.644658 -v 0.562058 1.006498 -6.921506 -v 0.546766 0.850772 -6.693409 -v 0.585298 0.851819 -6.874451 -v 0.808246 1.473531 -6.773156 -v 0.714197 1.400582 -6.872624 -v 0.784961 1.443287 -6.523914 -v 0.661185 1.361980 -6.558956 -v 0.923633 1.442370 -6.812841 -v 0.880870 1.349604 -7.026019 -v 0.806732 1.163577 -7.130162 -v 0.703304 0.769882 -6.944597 -v 0.730493 0.929054 -7.083601 -v 0.467013 0.166173 -7.322286 -v 0.252376 0.062331 -7.273434 -v 0.071629 0.273589 -7.155980 -v 0.529329 0.193273 -7.810286 -v 0.270539 0.096977 -7.776154 -v 0.075855 0.318280 -7.578300 -v 0.525577 0.226801 -8.169828 -v 0.268313 0.167598 -8.189743 -v 0.062406 0.262263 -7.985266 -v 0.085250 0.215999 -6.753068 -v 0.257265 0.029724 -6.830193 -v 0.432281 0.147121 -6.919346 -v 0.412813 0.603853 -7.296127 -v 0.466553 0.601779 -7.797064 -v 0.466023 0.565097 -8.166368 -v 0.174599 0.635304 -7.236838 -v 0.178594 0.622429 -7.773725 -v 0.196329 0.546003 -8.196803 -v 0.010991 0.597067 -7.106261 -v -0.002380 0.607430 -7.576752 -v -0.009555 0.537996 -8.004534 -v 0.032977 0.584260 -6.637498 -v 0.178619 0.629919 -6.764370 -v 0.375331 0.599437 -6.884651 -v 0.527273 0.406770 -7.327760 -v 0.475094 0.400761 -6.944777 -v 0.524815 0.430983 -6.577858 -v 0.596379 0.415394 -7.817393 -v 0.540282 0.403398 -8.220389 -v 0.014701 0.567519 -7.027500 -v 0.022146 0.486002 -6.671004 -v 0.012141 0.498590 -6.467365 -v 0.012762 0.578347 -7.426854 -v 0.000619 0.410973 -8.007980 -v 0.092196 1.869408 -5.545787 -v 0.047882 1.788186 -5.963855 -v -0.060104 1.571916 -6.553101 -v -0.143875 1.937950 -5.383014 -v -0.207255 1.899992 -5.860848 -v -0.295062 1.638036 -6.546325 -v -0.421009 1.885218 -5.447442 -v -0.494485 1.814856 -5.875438 -v -0.539028 1.586470 -6.471877 -v -0.106805 0.842813 -6.743448 -v -0.330308 0.861681 -6.742823 -v -0.563357 0.915028 -6.614289 -v 0.092672 1.563475 -5.409472 -v -0.152484 1.549881 -5.266574 -v -0.427491 1.564068 -5.366186 -v 0.055291 1.459964 -5.769153 -v -0.213200 1.392345 -5.673015 -v -0.489819 1.484210 -5.757663 -v -0.047655 1.402047 -6.272863 -v -0.286444 1.362850 -6.194754 -v -0.519624 1.405953 -6.217000 -v -0.089194 0.975227 -6.316360 -v -0.314427 0.991839 -6.268511 -v -0.524734 1.082759 -6.324799 -v -0.620360 1.490346 -6.331055 -v -0.618762 1.036157 -6.434135 -v -0.671873 0.861513 -6.294051 -v -0.458822 1.733320 -5.357014 -v -0.588193 1.649792 -5.825307 -v -0.026324 0.948276 -6.554249 -v 0.032057 1.491511 -6.432297 -v 0.133877 1.609963 -5.922091 -v 0.135806 1.725175 -5.451552 -v -1.006792 1.503643 -5.022816 -v -0.746747 1.667615 -5.005004 -v -0.544041 1.766946 -5.171136 -v -1.101978 1.447230 -5.268406 -v -0.865298 1.642242 -5.298347 -v -0.629541 1.716881 -5.454040 -v -1.200089 1.376122 -5.716522 -v -1.019358 1.528275 -5.796288 -v -0.804275 1.567503 -5.929291 -v -1.252437 1.200355 -6.000518 -v -1.113296 1.218534 -6.177490 -v -0.889340 1.184153 -6.312213 -v -0.996484 1.194600 -5.651621 -v -0.760670 1.184919 -5.687916 -v -0.601537 1.292810 -5.762637 -v -0.889795 1.206167 -5.227293 -v -0.606970 1.236079 -5.234110 -v -0.434302 1.401078 -5.343227 -v -0.814929 1.299698 -4.991332 -v -0.554814 1.384489 -4.970828 -v -0.382345 1.502313 -5.098981 -v -1.034163 1.181285 -5.881442 -v -0.840806 1.210840 -5.961395 -v -0.711468 1.257639 -6.107090 -v -0.631209 1.479578 -5.875779 -v -0.464679 1.605436 -5.447018 -v -0.423460 1.665314 -5.121157 -v -0.743932 1.268292 -6.251357 -v -1.204943 1.178799 -5.894271 -v -1.175692 1.262678 -5.660164 -v -1.087312 1.296968 -5.240851 -v -0.942971 1.397147 -4.977907 -v 0.905754 1.424581 -6.519624 -v 0.658060 0.741935 -6.754919 -v 0.245147 0.365997 -8.304296 -v -0.134337 1.769119 -5.224316 -v -0.634812 1.552140 -4.922270 -v 0.657481 0.439112 -6.123274 -# 281 vertices - -# 0 texture vertices - -# 0 normals - -usemtl hand -f 2 4 1 -f 5 4 2 -f 3 5 2 -f 5 6 4 -f 1 10 9 -f 1 7 10 -f 7 11 10 -f 7 8 11 -f 10 12 9 -f 12 10 13 -f 10 14 13 -f 10 11 14 -f 12 17 9 -f 12 15 17 -f 18 15 16 -f 15 18 17 -f 9 2 1 -f 9 17 2 -f 18 2 17 -f 2 18 3 -f 19 4 6 -f 7 4 19 -f 8 7 19 -f 7 1 4 -f 20 22 12 -f 23 22 20 -f 21 23 20 -f 23 24 22 -f 16 26 25 -f 16 15 26 -f 15 22 26 -f 15 12 22 -f 25 28 27 -f 25 26 28 -f 22 28 26 -f 28 22 24 -f 30 31 29 -f 32 31 30 -f 6 32 30 -f 32 33 31 -f 5 32 6 -f 32 5 34 -f 5 35 34 -f 5 3 35 -f 34 33 32 -f 33 34 36 -f 35 36 34 -f 36 35 37 -f 39 40 38 -f 31 40 39 -f 29 31 39 -f 31 33 40 -f 42 43 41 -f 40 43 42 -f 38 40 42 -f 40 33 43 -f 45 46 44 -f 46 45 47 -f 38 47 45 -f 47 38 42 -f 46 49 48 -f 46 47 49 -f 47 41 49 -f 47 42 41 -f 44 52 45 -f 44 50 52 -f 50 53 52 -f 50 51 53 -f 52 38 45 -f 38 52 39 -f 52 29 39 -f 52 53 29 -f 36 55 33 -f 55 36 56 -f 37 56 36 -f 56 37 54 -f 56 24 55 -f 24 56 28 -f 27 56 54 -f 56 27 28 -f 33 57 43 -f 33 55 57 -f 55 58 57 -f 55 24 58 -f 57 41 43 -f 41 57 59 -f 58 59 57 -f 59 58 60 -f 62 64 61 -f 64 62 65 -f 63 65 62 -f 65 63 66 -f 65 21 64 -f 21 65 23 -f 66 23 65 -f 23 66 24 -f 66 58 24 -f 58 66 67 -f 63 67 66 -f 67 63 68 -f 67 60 58 -f 60 67 69 -f 68 69 67 -f 69 68 70 -f 61 72 71 -f 61 64 72 -f 64 73 72 -f 64 21 73 -f 71 75 74 -f 71 72 75 -f 72 76 75 -f 72 73 76 -f 53 77 29 -f 77 53 78 -f 51 78 53 -f 78 51 79 -f 78 80 77 -f 80 78 81 -f 79 81 78 -f 81 79 82 -f 83 77 80 -f 77 83 85 -f 83 86 85 -f 83 84 86 -f 85 29 77 -f 29 85 30 -f 86 30 85 -f 30 86 6 -f 73 87 76 -f 87 73 88 -f 21 88 73 -f 88 21 20 -f 88 89 87 -f 89 88 90 -f 20 90 88 -f 90 20 12 -f 90 91 89 -f 91 90 92 -f 90 13 92 -f 90 12 13 -f 91 94 93 -f 91 92 94 -f 92 14 94 -f 92 13 14 -f 95 98 97 -f 95 96 98 -f 8 98 96 -f 98 8 19 -f 97 86 84 -f 97 98 86 -f 19 86 98 -f 86 19 6 -f 59 49 41 -f 49 59 99 -f 59 69 99 -f 59 60 69 -f 99 48 49 -f 48 99 100 -f 99 70 100 -f 99 69 70 -f 8 101 11 -f 8 96 101 -f 96 102 101 -f 96 95 102 -f 101 14 11 -f 14 101 94 -f 101 93 94 -f 101 102 93 -f 103 107 106 -f 103 104 107 -f 105 107 104 -f 107 105 108 -f 107 109 106 -f 109 107 110 -f 108 110 107 -f 110 108 111 -f 63 113 68 -f 63 112 113 -f 112 104 113 -f 112 105 104 -f 68 114 70 -f 68 113 114 -f 113 103 114 -f 113 104 103 -f 115 118 117 -f 115 116 118 -f 105 118 116 -f 118 105 112 -f 117 62 61 -f 117 118 62 -f 112 62 118 -f 62 112 63 -f 120 121 119 -f 121 120 122 -f 111 122 120 -f 122 111 108 -f 122 115 121 -f 115 122 116 -f 108 116 122 -f 116 108 105 -f 123 127 126 -f 123 124 127 -f 124 128 127 -f 124 125 128 -f 126 130 129 -f 126 127 130 -f 127 131 130 -f 127 128 131 -f 44 133 132 -f 44 46 133 -f 48 133 46 -f 133 48 134 -f 132 126 129 -f 132 133 126 -f 134 126 133 -f 126 134 123 -f 135 138 137 -f 135 136 138 -f 136 130 138 -f 136 129 130 -f 137 140 139 -f 137 138 140 -f 138 131 140 -f 138 130 131 -f 51 142 141 -f 51 50 142 -f 50 132 142 -f 50 44 132 -f 141 136 135 -f 141 142 136 -f 142 129 136 -f 142 132 129 -f 109 144 106 -f 109 143 144 -f 125 144 143 -f 144 125 124 -f 106 145 103 -f 106 144 145 -f 124 145 144 -f 145 124 123 -f 100 134 48 -f 134 100 146 -f 70 146 100 -f 146 70 114 -f 146 123 134 -f 123 146 145 -f 114 145 146 -f 145 114 103 -f 135 148 141 -f 135 147 148 -f 147 117 148 -f 147 115 117 -f 141 149 51 -f 141 148 149 -f 148 61 149 -f 148 117 61 -f 115 150 121 -f 115 147 150 -f 135 150 147 -f 150 135 137 -f 121 151 119 -f 121 150 151 -f 137 151 150 -f 151 137 139 -f 120 152 111 -f 152 120 153 -f 119 153 120 -f 153 119 154 -f 152 156 155 -f 152 153 156 -f 153 157 156 -f 153 154 157 -f 158 161 160 -f 158 159 161 -f 159 110 161 -f 159 109 110 -f 160 152 155 -f 160 161 152 -f 161 111 152 -f 161 110 111 -f 162 140 131 -f 140 162 164 -f 162 165 164 -f 162 163 165 -f 164 139 140 -f 139 164 166 -f 164 167 166 -f 164 165 167 -f 168 171 170 -f 168 169 171 -f 163 171 169 -f 171 163 162 -f 171 125 170 -f 125 171 128 -f 162 128 171 -f 128 162 131 -f 172 169 168 -f 169 172 173 -f 158 173 172 -f 173 158 160 -f 169 174 163 -f 169 173 174 -f 160 174 173 -f 174 160 155 -f 157 176 156 -f 157 175 176 -f 167 176 175 -f 176 167 165 -f 176 155 156 -f 155 176 174 -f 176 163 174 -f 176 165 163 -f 177 181 180 -f 177 178 181 -f 178 182 181 -f 178 179 182 -f 181 183 180 -f 183 181 184 -f 181 185 184 -f 181 182 185 -f 186 75 76 -f 75 186 187 -f 179 187 186 -f 187 179 178 -f 187 74 75 -f 74 187 188 -f 178 188 187 -f 188 178 177 -f 189 193 192 -f 189 190 193 -f 191 193 190 -f 193 191 194 -f 192 196 195 -f 192 193 196 -f 193 197 196 -f 193 194 197 -f 81 198 80 -f 198 81 199 -f 82 199 81 -f 199 82 200 -f 199 195 198 -f 195 199 192 -f 200 192 199 -f 192 200 189 -f 200 201 189 -f 201 200 202 -f 200 203 202 -f 200 82 203 -f 202 177 201 -f 177 202 188 -f 202 74 188 -f 202 203 74 -f 177 204 201 -f 177 180 204 -f 183 204 180 -f 204 183 205 -f 204 189 201 -f 189 204 190 -f 204 191 190 -f 204 205 191 -f 195 207 198 -f 195 206 207 -f 179 207 206 -f 207 179 186 -f 198 208 80 -f 198 207 208 -f 186 208 207 -f 208 186 76 -f 206 182 179 -f 182 206 209 -f 206 196 209 -f 206 195 196 -f 209 185 182 -f 185 209 210 -f 209 197 210 -f 209 196 197 -f 211 215 214 -f 211 212 215 -f 213 215 212 -f 215 213 216 -f 215 217 214 -f 217 215 218 -f 216 218 215 -f 218 216 219 -f 220 216 213 -f 216 220 221 -f 76 221 220 -f 221 76 87 -f 221 219 216 -f 219 221 222 -f 87 222 221 -f 222 87 89 -f 223 227 226 -f 223 224 227 -f 225 227 224 -f 227 225 228 -f 227 229 226 -f 229 227 230 -f 228 230 227 -f 230 228 231 -f 230 232 229 -f 232 230 233 -f 231 233 230 -f 233 231 234 -f 233 80 232 -f 80 233 83 -f 233 84 83 -f 233 234 84 -f 222 235 219 -f 235 222 236 -f 222 237 236 -f 222 89 237 -f 236 231 235 -f 231 236 234 -f 237 234 236 -f 234 237 84 -f 217 239 238 -f 217 218 239 -f 219 239 218 -f 239 219 235 -f 239 225 238 -f 225 239 228 -f 239 231 228 -f 239 235 231 -f 220 208 76 -f 208 220 240 -f 213 240 220 -f 240 213 241 -f 208 232 80 -f 208 240 232 -f 240 229 232 -f 240 241 229 -f 241 226 229 -f 226 241 242 -f 241 212 242 -f 241 213 212 -f 242 223 226 -f 223 242 243 -f 242 211 243 -f 242 212 211 -f 244 248 247 -f 244 245 248 -f 246 248 245 -f 248 246 249 -f 248 250 247 -f 250 248 251 -f 249 251 248 -f 251 249 252 -f 250 254 253 -f 250 251 254 -f 252 254 251 -f 254 252 255 -f 253 91 93 -f 253 254 91 -f 254 89 91 -f 254 255 89 -f 256 260 259 -f 256 257 260 -f 258 260 257 -f 260 258 261 -f 260 262 259 -f 262 260 263 -f 260 264 263 -f 260 261 264 -f 97 265 95 -f 265 97 266 -f 84 266 97 -f 266 84 267 -f 265 257 256 -f 265 266 257 -f 267 257 266 -f 257 267 258 -f 249 268 252 -f 268 249 269 -f 249 270 269 -f 249 246 270 -f 269 258 268 -f 258 269 261 -f 269 264 261 -f 269 270 264 -f 255 237 89 -f 237 255 271 -f 252 271 255 -f 271 252 268 -f 271 84 237 -f 84 271 267 -f 268 267 271 -f 267 268 258 -f 102 253 93 -f 253 102 272 -f 102 265 272 -f 102 95 265 -f 272 250 253 -f 250 272 273 -f 272 256 273 -f 272 265 256 -f 259 273 256 -f 273 259 274 -f 262 274 259 -f 274 262 275 -f 273 247 250 -f 273 274 247 -f 274 244 247 -f 274 275 244 -f 172 159 158 -f 159 172 276 -f 172 170 276 -f 172 168 170 -f 276 109 159 -f 109 276 143 -f 170 143 276 -f 143 170 125 -f 151 154 119 -f 154 151 277 -f 151 166 277 -f 151 139 166 -f 154 175 157 -f 154 277 175 -f 277 167 175 -f 277 166 167 -f 197 278 210 -f 197 194 278 -f 191 278 194 -f 278 191 205 -f 278 185 210 -f 185 278 184 -f 278 183 184 -f 278 205 183 -f 223 279 224 -f 223 243 279 -f 211 279 243 -f 279 211 214 -f 279 225 224 -f 225 279 238 -f 279 217 238 -f 279 214 217 -f 262 280 275 -f 262 263 280 -f 264 280 263 -f 280 264 270 -f 280 244 275 -f 244 280 245 -f 270 245 280 -f 245 270 246 -f 74 281 71 -f 74 203 281 -f 82 281 203 -f 281 82 79 -f 71 149 61 -f 71 281 149 -f 79 149 281 -f 149 79 51 -# 552 elements diff --git a/src/ObjLoad/ObjLoad.html b/src/ObjLoad/ObjLoad.html deleted file mode 100644 index 09978f5..0000000 --- a/src/ObjLoad/ObjLoad.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Hello, Universe!</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="ObjLoad.class" width=256 height=256> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/ObjLoad/ObjLoad.java b/src/ObjLoad/ObjLoad.java deleted file mode 100644 index 3619be5..0000000 --- a/src/ObjLoad/ObjLoad.java +++ /dev/null @@ -1,285 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.loaders.objectfile.ObjectFile; -import com.sun.j3d.loaders.ParsingErrorException; -import com.sun.j3d.loaders.IncorrectFormatException; -import com.sun.j3d.loaders.Scene; -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.io.*; -import com.sun.j3d.utils.behaviors.vp.*; -import java.net.URL; -import java.net.MalformedURLException; - -public class ObjLoad extends Applet { - - private boolean spin = false; - private boolean noTriangulate = false; - private boolean noStripify = false; - private double creaseAngle = 60.0; - private URL filename = null; - private SimpleUniverse u; - private BoundingSphere bounds; - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.7); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - objScale.addChild(objTrans); - - int flags = ObjectFile.RESIZE; - if (!noTriangulate) flags |= ObjectFile.TRIANGULATE; - if (!noStripify) flags |= ObjectFile.STRIPIFY; - ObjectFile f = new ObjectFile(flags, - (float)(creaseAngle * Math.PI / 180.0)); - Scene s = null; - try { - s = f.load(filename); - } - catch (FileNotFoundException e) { - System.err.println(e); - System.exit(1); - } - catch (ParsingErrorException e) { - System.err.println(e); - System.exit(1); - } - catch (IncorrectFormatException e) { - System.err.println(e); - System.exit(1); - } - - objTrans.addChild(s.getSceneGroup()); - - bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - if (spin) { - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - } - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.5f); - Background bgNode = new Background(bgColor); - bgNode.setApplicationBounds(bounds); - objRoot.addChild(bgNode); - - return objRoot; - } - - private void usage() - { - System.out.println( - "Usage: java ObjLoad [-s] [-n] [-t] [-c degrees] <.obj file>"); - System.out.println(" -s Spin (no user interaction)"); - System.out.println(" -n No triangulation"); - System.out.println(" -t No stripification"); - System.out.println( - " -c Set crease angle for normal generation (default is 60 without"); - System.out.println( - " smoothing group info, otherwise 180 within smoothing groups)"); - System.exit(0); - } // End of usage - - - - public void init() { - if (filename == null) { - // Applet - try { - URL path = getCodeBase(); - filename = new URL(path.toString() + "./galleon.obj"); - } - catch (MalformedURLException e) { - System.err.println(e); - System.exit(1); - } - } - - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // add mouse behaviors to the ViewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - PlatformGeometry pg = new PlatformGeometry(); - - // Set up the ambient light - Color3f ambientColor = new Color3f(0.1f, 0.1f, 0.1f); - AmbientLight ambientLightNode = new AmbientLight(ambientColor); - ambientLightNode.setInfluencingBounds(bounds); - pg.addChild(ambientLightNode); - - // Set up the directional lights - Color3f light1Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light1Direction = new Vector3f(1.0f, 1.0f, 1.0f); - Color3f light2Color = new Color3f(1.0f, 1.0f, 1.0f); - Vector3f light2Direction = new Vector3f(-1.0f, -1.0f, -1.0f); - - DirectionalLight light1 - = new DirectionalLight(light1Color, light1Direction); - light1.setInfluencingBounds(bounds); - pg.addChild(light1); - - DirectionalLight light2 - = new DirectionalLight(light2Color, light2Direction); - light2.setInfluencingBounds(bounds); - pg.addChild(light2); - - viewingPlatform.setPlatformGeometry( pg ); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - viewingPlatform.setNominalViewingTransform(); - - if (!spin) { - OrbitBehavior orbit = new OrbitBehavior(c, - OrbitBehavior.REVERSE_ALL); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - } - - u.addBranchGraph(scene); - } - - // Caled if running as a program - public ObjLoad(String[] args) { - if (args.length != 0) { - for (int i = 0 ; i < args.length ; i++) { - if (args[i].startsWith("-")) { - if (args[i].equals("-s")) { - spin = true; - } else if (args[i].equals("-n")) { - noTriangulate = true; - } else if (args[i].equals("-t")) { - noStripify = true; - } else if (args[i].equals("-c")) { - if (i < args.length - 1) { - creaseAngle = (new Double(args[++i])).doubleValue(); - } else usage(); - } else { - usage(); - } - } else { - try { - if ((args[i].indexOf("file:") == 0) || - (args[i].indexOf("http") == 0)) { - filename = new URL(args[i]); - } - else if (args[i].charAt(0) != '/') { - filename = new URL("file:./" + args[i]); - } - else { - filename = new URL("file:" + args[i]); - } - } - catch (MalformedURLException e) { - System.err.println(e); - System.exit(1); - } - } - } - } - } - - - - // Running as an applet - public ObjLoad() { - } - - public void destroy() { - u.cleanup(); - } - - - - // - // The following allows ObjLoad to be run as an application - // as well as an applet - // - public static void main(String[] args) { - new MainFrame(new ObjLoad(args), 700, 700); - } -} diff --git a/src/ObjLoad/ObjLoad_plugin.html b/src/ObjLoad/ObjLoad_plugin.html deleted file mode 100644 index 8ec013f..0000000 --- a/src/ObjLoad/ObjLoad_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Hello, Universe!</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 700 HEIGHT = 700 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "ObjLoad.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "ObjLoad.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "ObjLoad.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/ObjLoad/build.xml b/src/ObjLoad/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/ObjLoad/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/ObjLoad/galleon.obj b/src/ObjLoad/galleon.obj deleted file mode 100644 index 0ed58af..0000000 --- a/src/ObjLoad/galleon.obj +++ /dev/null @@ -1,8901 +0,0 @@ -# Tue Oct 27 19:26:52 1992 -# -# Spanish Galleon -# -# Courtesy of: -# -# Viewpoint Animation Engineering -# 870 West Center -# Orem, Utah 84057 -# (801)224-2222 -# 1-800-DATASET -# -# (c) Copyright 1992 Viewpoint Animation Engineering Inc. -# Sun Microsystems has been authorized to freely distribute -# these Datasets. They are provided for unlimited use in -# existing or modified form. The actual Dataset (ie, geometry) -# may not, however, be resold in existing or modified form. -# - -g -v -0.471519 0.607158 0.742476 -v -0.471519 2.835144 0.742476 -v 0.235709 2.835144 1.035419 -v 0.235709 3.340722 1.035419 -v -1.250291 3.340722 0.419898 -v -1.435455 28.440485 0.343200 -v -0.525114 29.392422 0.720276 -v -0.339949 31.134907 0.796974 -v -0.009594 31.301920 0.933812 -v -0.009594 31.705118 0.933812 -v -0.813112 31.538105 0.600984 -v -0.998277 30.035196 0.524286 -v -1.638847 30.068596 0.258952 -v -1.981079 54.333931 0.117197 -v -0.471518 0.607158 -0.742476 -v -0.471518 2.835144 -0.742476 -v 0.235709 2.835144 -1.035419 -v 0.235709 3.340722 -1.035419 -v -1.250291 3.340722 -0.419898 -v -1.435455 28.440485 -0.343200 -v -0.525114 29.392422 -0.720276 -v -0.339949 31.134907 -0.796974 -v -0.009594 31.301920 -0.933812 -v -0.009594 31.705118 -0.933812 -v -0.813112 31.538105 -0.600984 -v -0.998277 30.035196 -0.524286 -v -1.638847 30.068596 -0.258952 -v -1.981079 54.333931 -0.117197 -v -1.521538 0.607158 -1.792495 -v -2.146818 54.333931 -0.282936 -v -3.006491 0.607158 -1.792497 -v -2.381211 54.333931 -0.282936 -v -4.056510 0.607158 -0.742476 -v -4.056510 2.835144 -0.742476 -v -4.763738 2.835144 -1.035419 -v -4.763738 3.340722 -1.035419 -v -3.277740 3.340722 -0.419898 -v -3.092574 28.440485 -0.343200 -v -4.002915 29.392422 -0.720276 -v -4.188079 31.134907 -0.796974 -v -4.518436 31.301920 -0.933812 -v -4.518436 31.705118 -0.933812 -v -3.714916 31.538105 -0.600984 -v -3.529752 30.035196 -0.524286 -v -2.889182 30.068596 -0.258952 -v -2.546952 54.333931 -0.117197 -v -4.056511 0.607158 0.742476 -v -4.056511 2.835144 0.742476 -v -4.763738 2.835144 1.035419 -v -4.763738 3.340722 1.035419 -v -3.277740 3.340722 0.419898 -v -3.092574 28.440485 0.343200 -v -4.002915 29.392422 0.720276 -v -4.188079 31.134907 0.796974 -v -4.518435 31.301920 0.933812 -v -4.518435 31.705118 0.933812 -v -3.714916 31.538105 0.600984 -v -3.529752 30.035196 0.524286 -v -2.889182 30.068596 0.258952 -v -2.546952 54.333931 0.117197 -v -3.006491 0.607158 1.792495 -v -3.006491 2.835144 1.792495 -v -3.299435 2.835144 2.499723 -v -3.299435 3.340722 2.499723 -v -2.683913 3.340722 1.013724 -v -2.607214 28.440485 0.828560 -v -2.984291 29.392422 1.738900 -v -3.060988 31.134907 1.924065 -v -3.197826 31.301920 2.254421 -v -3.197826 31.705118 2.254421 -v -2.864999 31.538105 1.450902 -v -2.788301 30.035196 1.265738 -v -2.522967 30.068596 0.625167 -v -2.381211 54.333931 0.282936 -v -1.521538 0.607158 1.792497 -v -1.521538 2.835144 1.792497 -v -1.228595 2.835144 2.499723 -v -1.228595 3.340722 2.499723 -v -1.844116 3.340722 1.013724 -v -1.920815 28.440485 0.828560 -v -1.543738 29.392422 1.738900 -v -1.467041 31.134907 1.924065 -v -1.330203 31.301920 2.254421 -v -1.330203 31.705118 2.254421 -v -1.663031 31.538105 1.450902 -v -1.739728 30.035196 1.265738 -v -2.005062 30.068596 0.625167 -v -2.146818 54.333931 0.282936 -v -1.732276 28.916454 1.283730 -v -2.795753 28.916454 1.283730 -v -2.378415 28.440485 0.828560 -v -2.149614 28.440485 0.828560 -v -2.086768 28.916454 1.283730 -v -2.441260 28.916454 1.283730 -v -10.859753 1.409189 15.317495 -v -10.505260 1.409189 15.317495 -v -10.442413 0.933218 14.862325 -v -10.671214 0.933218 14.862325 -v -3.396813 0.933175 14.862257 -v -3.625614 0.933175 14.862261 -v -3.562768 1.409142 15.317429 -v -3.208276 1.409142 15.317429 -v -7.081613 0.933123 14.862221 -v -7.310413 0.933123 14.862221 -v -7.373259 1.409093 15.317392 -v -7.018765 1.409093 15.317392 -v -32.243050 -19.185102 0.000000 -v -38.131035 -19.181059 0.000000 -v -38.073593 -19.202291 1.238075 -v -32.189545 -19.209759 1.238075 -v -24.875282 -19.207870 1.238075 -v -24.875282 -19.187256 0.000000 -v -21.158424 -19.201153 1.238075 -v -21.158424 -19.188753 0.000000 -v -17.426210 -19.199236 1.238075 -v -17.426210 -19.186226 0.000000 -v -10.703051 -19.188595 1.238075 -v -10.703051 -19.187540 0.000000 -v -6.862593 -19.192287 1.238075 -v -6.862593 -19.191231 0.000000 -v -2.943282 -19.197210 1.238075 -v -2.943282 -19.188084 0.000000 -v 2.420745 -19.188913 1.238075 -v 2.420745 -19.183977 0.000000 -v 7.603565 -19.183283 0.000000 -v 7.603565 -19.195683 1.238075 -v 12.967180 -18.306032 1.259959 -v 12.980299 -18.290831 0.000000 -v 16.730053 -16.014843 1.259959 -v 16.797665 -16.055038 0.000000 -v 19.381454 -13.269838 1.259959 -v 19.872108 -13.242973 0.000000 -v 22.486511 -8.349066 1.259959 -v 22.851847 -8.316385 0.000000 -v 24.247856 -5.150546 1.259967 -v 24.431244 -5.094540 0.000000 -v 26.552673 -2.858097 1.259976 -v 26.431309 -2.898813 0.000000 -v 29.468712 -0.579000 1.259978 -v 29.475975 -0.580864 0.000000 -v 30.889355 1.488847 1.259971 -v 30.886574 1.483778 0.000000 -v 30.887581 4.224448 1.259971 -v 30.886909 4.257463 0.000000 -v 29.521240 5.140058 1.259971 -v 29.460693 5.099638 0.000000 -v 27.605324 4.464114 1.605842 -v 27.489288 4.497021 0.000000 -v 27.217043 2.526036 1.605860 -v 27.104233 2.554623 0.000000 -v -32.122738 -17.475546 1.238075 -v -24.875282 -17.469940 1.238075 -v -21.158424 -17.471130 1.238075 -v -17.426210 -17.464722 1.238075 -v -10.703051 -17.446625 1.238075 -v -6.862593 -17.454201 1.238075 -v -2.943282 -17.458817 1.238075 -v 2.420745 -17.454708 1.238075 -v 7.603565 -17.449827 1.238075 -v 12.879044 -16.473442 1.238075 -v 16.405544 -14.094017 1.238075 -v 18.244587 -11.779632 1.238075 -v 20.710901 -7.529170 1.281522 -v 22.502172 -2.387520 1.780734 -v 26.162926 -1.127839 1.911312 -v 28.999243 0.125412 1.881888 -v -32.122726 -16.693306 4.355949 -v -24.875282 -16.438957 5.023836 -v -21.158424 -16.432545 5.456006 -v -17.426210 -16.414181 5.591547 -v -10.703051 -16.404001 5.960669 -v -6.862593 -16.404274 6.041844 -v -2.943282 -16.405006 6.357064 -v 2.420745 -16.404470 6.357064 -v 7.603565 -16.380497 6.357064 -v 12.832268 -15.500710 6.259944 -v 16.321648 -13.597433 5.927067 -v 18.157881 -11.652975 5.318019 -v 20.729614 -7.361181 4.084560 -v -32.122711 -15.201252 8.479453 -v -24.875282 -15.191301 8.889921 -v -21.158424 -15.188612 9.238050 -v -17.426210 -15.185617 9.648746 -v -10.703051 -15.151535 9.959948 -v -6.862593 -15.148084 10.122597 -v -2.943282 -15.161076 10.404315 -v 2.420745 -15.136637 10.490346 -v 7.603565 -15.139988 10.384273 -v 12.742552 -13.635256 10.271313 -v 16.052504 -12.004322 9.672956 -v 17.738865 -10.274949 8.849628 -v 20.423779 -6.674508 7.563237 -v 22.927841 -2.079975 5.293032 -v -32.122692 -13.101498 12.252906 -v -24.875282 -13.559512 12.869038 -v -21.158424 -13.563975 12.793823 -v -17.426210 -13.564394 13.015837 -v -10.703051 -13.542574 13.359402 -v -6.862593 -13.538811 13.468325 -v -2.943282 -13.548689 13.506525 -v 2.420745 -13.559494 13.319569 -v 7.603565 -13.121067 12.955379 -v 12.651917 -11.750661 12.163342 -v 15.776398 -10.370003 11.428668 -v 17.823387 -8.626553 10.201316 -v 20.243277 -5.812185 8.599287 -v 22.642578 -2.021900 6.338686 -v -32.122688 -10.525450 13.978191 -v -24.875282 -10.610699 14.971485 -v -21.158424 -10.603826 15.170494 -v -17.426210 -10.616206 15.433119 -v -10.703051 -10.590498 15.556311 -v -6.862593 -10.586885 15.660851 -v -2.943282 -10.611682 15.249158 -v 2.420745 -10.615954 14.819395 -v 7.603565 -10.423251 14.270162 -v 12.555428 -9.744363 13.830376 -v 15.481684 -8.625530 13.248377 -v 17.762831 -6.967863 11.940372 -v 19.731392 -4.773400 10.782165 -v 22.192654 -1.778881 8.919837 -v -38.881935 -16.109306 1.238075 -v -38.942127 -13.100367 1.238075 -v -32.122734 -13.101784 1.238075 -v -38.612694 -10.520290 1.238075 -v -32.122734 -10.529110 1.238075 -v -35.691887 -7.364658 1.238075 -v -32.122734 -7.294571 1.238075 -v -34.094254 -2.453040 1.238075 -v -32.122734 -2.380687 1.238075 -v -32.122818 3.000987 1.238075 -v -32.122829 0.590391 1.238075 -v -32.122726 -13.101580 3.815750 -v -32.122711 -13.101223 8.479156 -v -32.122711 -10.525373 8.478323 -v -32.122726 -10.527499 3.815633 -v -32.122726 -7.294347 3.815463 -v -32.122707 -7.294013 8.480250 -v -32.122684 -7.293530 14.206009 -v -32.122730 -2.380611 2.860078 -v -32.122726 -2.380491 4.517693 -v -32.122711 -3.604395 7.527471 -v -32.122704 -3.604366 9.285585 -v -32.122688 -3.604459 12.926102 -v -34.151215 -2.453028 0.000000 -v -35.631935 -7.364541 0.000000 -v -38.571144 -10.520123 0.000000 -v -38.914642 -13.100622 0.000000 -v -38.943748 -16.087477 0.000000 -v 26.141859 -0.943860 5.148655 -v 29.132690 0.554667 5.435258 -v 26.222294 -0.414192 7.186513 -v 23.797483 -0.793227 9.466203 -v 21.442825 -1.464471 9.712464 -v 22.778015 -0.755679 10.499197 -v 29.379856 3.334527 1.774282 -v 28.136330 2.362632 4.761501 -v 26.016197 1.315401 7.589925 -v 24.328785 1.265883 9.340617 -v 20.806227 -0.763545 10.438858 -v 21.705126 -0.275237 11.014637 -v 20.500061 0.752725 10.784106 -v 21.436293 0.883347 11.366537 -v 21.135654 1.550061 10.690931 -v 22.121262 1.561577 11.206270 -v 21.007219 3.249419 9.869397 -v 23.650299 1.840257 8.010921 -v 25.636337 1.698787 6.579282 -v 27.706768 2.015127 4.583124 -v 17.983040 6.662837 11.152293 -v 17.005033 6.662837 9.681633 -v 20.477345 3.637633 7.988389 -v 22.595039 2.320421 6.663224 -v 24.421982 1.686574 5.242180 -v 26.100426 1.864140 3.405339 -v 28.646168 2.885117 3.198632 -v 27.660387 1.772689 0.000000 -v 27.427397 1.142091 0.000000 -v 26.333582 1.027800 1.582581 -v 25.659239 1.174690 0.000000 -v 23.720354 0.966969 4.569222 -v 23.102367 0.608405 0.000000 -v 21.179319 1.176081 0.000000 -v 21.278627 1.400611 1.803334 -v 16.906103 5.316076 1.586848 -v 16.906103 5.316102 0.000000 -v 18.888571 1.302237 1.623599 -v 21.060875 1.981712 6.729387 -v 19.376360 2.471233 7.869488 -v 16.906103 5.316122 8.994491 -v 6.683901 5.316105 9.844049 -v 6.683901 5.315889 1.586848 -v 6.675109 5.316054 0.000000 -v 19.400375 -3.691560 11.374310 -v 18.681934 -1.983630 11.338428 -v 17.373505 -5.228647 12.646860 -v 16.633705 -3.074314 12.192126 -v 15.075657 -6.222204 13.865580 -v 14.621896 -3.523885 13.566364 -v 12.255808 -3.514410 13.771845 -v 12.411800 -6.757924 14.212804 -v 7.603565 -7.188782 14.846800 -v 7.603565 -3.490891 14.606509 -v 2.420745 -7.173941 15.276383 -v 2.420745 -3.480093 14.919241 -v -2.943282 -7.166555 15.589163 -v -2.961988 -3.473636 15.106121 -v -4.439586 -3.475051 15.065130 -v -6.862593 -7.149532 15.766785 -v -6.464514 -3.472743 15.131924 -v -8.018665 -3.474161 15.090826 -v -10.703051 -7.164166 15.766442 -v -9.989845 -3.475893 15.040714 -v -11.494260 -3.481347 14.882881 -v -17.426210 -7.163010 15.619746 -v -17.426210 -3.476307 15.028784 -v -21.158424 -7.158087 15.411015 -v -21.158424 -3.491715 14.582708 -v -24.875282 -7.172729 15.149325 -v -24.875282 -3.502623 14.266861 -v 18.104813 -0.132791 11.438385 -v 17.807384 1.818409 11.514686 -v 16.016308 -0.209789 12.214762 -v 15.502045 1.959264 11.977353 -v 15.252133 4.364689 12.089524 -v 17.344368 4.240352 11.840204 -v 13.062292 4.818222 12.265154 -v 13.673447 2.077692 12.471821 -v 14.041731 -0.091286 13.220635 -v 11.917332 -0.092658 13.622351 -v 11.917332 3.738120 12.682102 -v 13.062292 3.738120 12.646502 -v 13.062292 3.738120 13.693560 -v 13.062292 4.882016 13.297487 -v 6.935244 4.838787 12.860477 -v 6.935244 4.877757 13.657490 -v 11.917332 3.738120 13.693560 -v 10.851164 3.738120 13.693560 -v 9.059711 3.738120 13.693560 -v 7.942212 3.738120 13.693560 -v 6.935244 3.738120 13.693585 -v 10.851164 -0.092025 13.680202 -v 10.851164 3.738120 13.099374 -v 9.059711 -0.082416 13.958302 -v 9.059711 3.738120 13.247311 -v 7.942212 -0.088027 13.795906 -v 7.942212 3.738120 12.994835 -v 6.935244 3.738120 12.932455 -v 2.420745 -0.081102 13.996309 -v 2.420745 1.569107 13.480452 -v 2.420745 3.221424 12.616695 -v -1.886394 3.221424 12.694532 -v -1.898796 1.579293 13.775311 -v -1.898796 -0.093726 14.123177 -v -2.961988 -0.093726 14.123177 -v -2.961988 -0.093726 15.846119 -v -4.439586 -0.093726 15.846119 -v -6.464514 -0.093726 15.846119 -v -8.018665 -0.093726 15.846119 -v -9.989845 -0.093726 15.846119 -v -11.494260 -0.093726 15.846119 -v -6.464514 -0.093726 14.123177 -v -4.439586 -0.093726 14.123177 -v -9.989845 -0.093726 14.123177 -v -8.018665 -0.093726 14.123177 -v -12.515305 -0.093726 14.123177 -v -11.494260 -0.093726 14.123177 -v -12.515305 1.643136 15.278696 -v -1.898796 1.623528 15.278696 -v -1.898796 -0.093726 15.846119 -v -12.515305 -0.093726 15.846119 -v -12.515305 1.580878 13.821227 -v -8.522958 3.221424 12.703880 -v -10.136595 4.386232 12.483255 -v -12.771408 4.612774 12.141369 -v -13.215079 9.087099 12.333536 -v -17.426210 -0.085238 13.876673 -v -17.327192 1.568238 13.455286 -v -18.602346 1.558287 13.167220 -v -21.158424 -0.093337 13.642082 -v -20.301380 1.560132 13.220694 -v -21.564625 1.545988 12.811226 -v -24.875282 -0.115279 13.006975 -v -24.875282 1.535080 12.495492 -v -18.602346 5.420457 13.195373 -v -17.327192 5.420457 13.195373 -v -20.301380 5.420457 13.195373 -v -21.564625 5.420457 13.195373 -v -22.943232 5.420457 13.195373 -v -22.943232 6.953562 13.019781 -v -16.144386 6.964816 13.345592 -v -16.144386 5.420457 13.195373 -v -17.327192 5.420457 11.781666 -v -16.144386 5.420457 11.781666 -v -16.144386 6.916856 11.957180 -v -20.301380 5.420457 11.781666 -v -18.602346 5.420457 11.781666 -v -22.943232 6.914290 11.882894 -v -19.419006 9.058252 11.675020 -v -20.785156 10.432585 11.266025 -v -22.943232 5.420457 11.781666 -v -21.564625 5.420457 11.781666 -v -24.875282 11.097299 11.310978 -v -22.073826 12.809116 11.031629 -v -30.663502 11.097299 10.697601 -v -30.324631 13.255548 10.468728 -v -30.036606 14.678006 10.958575 -v -22.617615 13.859209 11.521384 -v -32.024277 15.183992 8.240927 -v -22.549631 13.892679 9.395622 -v -33.987694 15.764829 10.182573 -v -33.718784 15.003299 10.658934 -v -33.772961 13.609431 10.011785 -v -33.887344 11.097299 10.130578 -v -34.301479 16.149021 7.782318 -v -32.866196 16.196304 7.754097 -v -35.090012 19.437290 4.864941 -v -33.522549 19.528704 4.747104 -v -35.784195 21.577259 2.965577 -v -34.027481 21.557823 2.963631 -v -36.012775 22.438992 1.238075 -v -34.225647 22.404272 1.238075 -v -36.034115 22.694397 0.000000 -v -34.290081 22.667803 0.000000 -v -35.982044 20.292164 0.000000 -v -35.525314 19.202272 2.929065 -v -35.834301 18.574884 0.000000 -v -34.960712 15.855540 2.964757 -v -35.472115 15.759262 0.000000 -v -35.266460 13.591896 0.000000 -v -34.620663 13.597372 2.965675 -v -34.500881 12.321301 2.967943 -v -35.115417 12.681304 0.000000 -v -33.745373 13.603200 7.767865 -v -33.643600 11.097299 7.760621 -v -29.725348 1.534853 12.693987 -v -29.951672 -0.553082 12.838999 -v -29.089066 -2.256183 13.223326 -v -29.440445 -3.531864 13.420376 -v -26.469778 9.078413 12.638399 -v -30.376698 9.078413 12.195282 -v -34.513470 9.078413 11.671916 -v -35.326443 9.078413 8.519265 -v -36.337158 10.302411 4.204359 -v -32.288364 14.311578 0.000000 -v -38.840782 8.738811 0.000000 -v -36.824764 10.662413 0.000000 -v -38.226944 8.378810 4.931240 -v -37.265987 7.154811 10.030826 -v -36.054546 7.154811 15.249533 -v -31.044762 7.154811 15.397676 -v -28.175797 7.154811 15.624508 -v -26.515152 1.792719 14.466270 -v -28.182747 3.357670 15.498522 -v -30.193434 1.779966 14.420488 -v -31.038305 3.357670 15.387860 -v -35.530365 3.357670 15.019470 -v -36.705807 3.357670 10.029904 -v -37.666824 4.581672 4.931256 -v -38.222157 4.941670 0.000000 -v -36.700283 3.003968 2.860110 -v -37.202202 3.363967 0.000000 -v -36.408623 3.003968 4.518372 -v -35.959934 1.779966 7.527570 -v -35.191723 1.779966 9.285604 -v -34.204334 1.779966 14.226349 -v -30.329147 -0.633617 13.908249 -v -32.748100 -0.633628 13.436047 -v -29.538437 -2.280977 14.046997 -v -29.785950 -3.192493 13.980194 -v -30.527657 -3.185613 13.899263 -v -32.122818 1.776985 9.285594 -v -32.122818 1.776985 11.058003 -v -32.122688 -0.633649 11.458102 -v -32.122746 -0.633664 9.285579 -v -34.194592 -0.633673 9.285544 -v -34.248096 -0.633676 7.527580 -v -32.122818 3.000987 4.518517 -v -32.122818 1.776985 7.526671 -v -32.122761 -0.633678 7.527228 -v -32.122795 0.590334 4.518468 -v -33.900768 0.590325 4.518118 -v -34.417446 0.590306 2.860096 -v -34.639442 1.779966 11.836490 -v -33.089638 -0.885639 12.303194 -v -33.722881 3.003968 0.000000 -v -32.122818 3.000965 2.859260 -v -32.122826 0.590387 2.859397 -v -33.910358 21.114786 0.000000 -v -33.503494 19.450775 0.000000 -v -32.879219 16.897564 0.000000 -v -32.471931 15.231831 0.000000 -v -31.481258 12.189013 0.000000 -v -31.478973 12.189011 7.300096 -v -23.230810 12.189157 8.507561 -v -23.230810 12.188995 0.000000 -v -23.230810 12.189054 5.906754 -v -19.385841 7.391382 6.580861 -v -19.385841 7.391684 8.968118 -v -21.167429 7.390899 6.153070 -v -21.167429 7.390496 0.000000 -v -13.892597 7.391925 9.847868 -v -14.133162 7.391512 7.171891 -v -14.133162 7.391360 0.000000 -v -21.997017 12.885773 9.282518 -v -20.622669 10.264604 9.549243 -v -19.292164 9.097214 9.702837 -v -13.192261 9.087229 10.726978 -v -10.064362 4.446222 10.991236 -v -8.351521 3.221424 11.058840 -v -1.598226 3.221424 11.134462 -v 2.452951 3.221424 10.998412 -v 4.365315 4.001073 10.953445 -v 4.422665 4.063653 12.498808 -v 5.530656 6.149844 10.682220 -v 5.533552 6.171984 12.384296 -v 7.360672 6.662837 12.189878 -v 7.977384 6.662837 10.348160 -v 15.594139 6.662837 11.461397 -v 12.972380 6.662837 11.684002 -v -9.777788 1.447089 10.415768 -v -9.777788 1.447089 7.505733 -v -12.005382 1.447089 7.353243 -v -12.005382 1.447089 0.000000 -v -9.777788 1.447089 0.000000 -v -1.954006 1.447089 0.000000 -v -1.881737 1.447089 10.419345 -v 3.275857 1.447089 0.000000 -v 3.275857 1.447089 1.586848 -v 3.275857 1.447089 10.142793 -v 5.568399 1.447089 1.586848 -v 5.568399 1.447089 10.053401 -v 21.363655 1.139118 5.173973 -v -33.722420 3.002194 1.266791 -v -30.977203 -3.573457 13.137188 -v 21.934351 1.656698 10.462739 -v 24.074268 1.416270 8.771894 -v 25.925503 1.399094 7.091439 -v -8.976471 1.636600 15.278696 -v -5.437628 1.630064 15.278696 -v 15.260481 3.703158 0.742476 -v 15.260481 5.931142 0.742476 -v 15.967709 5.931142 1.035419 -v 15.967709 6.436721 1.035419 -v 14.481710 6.436721 0.419898 -v 14.296546 24.624481 0.343200 -v 15.206884 25.576418 0.720276 -v 15.392049 27.318907 0.796974 -v 15.722405 27.485916 0.933812 -v 15.722405 27.889114 0.933812 -v 14.918887 27.722105 0.600984 -v 14.733723 26.219193 0.524286 -v 14.093153 26.252592 0.258952 -v 13.750921 46.881989 0.117197 -v 15.260481 3.703158 -0.742476 -v 15.260481 5.931142 -0.742476 -v 15.967709 5.931142 -1.035419 -v 15.967709 6.436721 -1.035419 -v 14.481710 6.436721 -0.419898 -v 14.296546 24.624481 -0.343200 -v 15.206884 25.576418 -0.720276 -v 15.392050 27.318907 -0.796974 -v 15.722405 27.485916 -0.933812 -v 15.722405 27.889114 -0.933812 -v 14.918887 27.722105 -0.600984 -v 14.733723 26.219193 -0.524286 -v 14.093153 26.252592 -0.258952 -v 13.750921 46.881989 -0.117197 -v 14.210463 3.703158 -1.792495 -v 13.585180 46.881989 -0.282936 -v 12.725510 3.703158 -1.792497 -v 13.350788 46.881989 -0.282936 -v 11.675488 3.703158 -0.742476 -v 11.675488 5.931142 -0.742476 -v 10.968261 5.931142 -1.035419 -v 10.968261 6.436721 -1.035419 -v 12.454259 6.436721 -0.419898 -v 12.639424 24.624481 -0.343200 -v 11.729083 25.576418 -0.720276 -v 11.543920 27.318907 -0.796974 -v 11.213565 27.485916 -0.933812 -v 11.213565 27.889114 -0.933812 -v 12.017083 27.722105 -0.600984 -v 12.202246 26.219193 -0.524286 -v 12.842817 26.252592 -0.258952 -v 13.185047 46.881989 -0.117197 -v 11.675488 3.703158 0.742476 -v 11.675488 5.931142 0.742476 -v 10.968261 5.931142 1.035419 -v 10.968261 6.436721 1.035419 -v 12.454259 6.436721 0.419898 -v 12.639424 24.624481 0.343200 -v 11.729083 25.576418 0.720276 -v 11.543920 27.318907 0.796974 -v 11.213565 27.485916 0.933812 -v 11.213565 27.889114 0.933812 -v 12.017083 27.722105 0.600984 -v 12.202246 26.219193 0.524286 -v 12.842817 26.252592 0.258952 -v 13.185047 46.881989 0.117197 -v 12.725510 3.703158 1.792495 -v 12.725510 5.931142 1.792495 -v 12.432567 5.931142 2.499723 -v 12.432567 6.436721 2.499723 -v 13.048086 6.436721 1.013724 -v 13.124784 24.624481 0.828560 -v 12.747708 25.576418 1.738900 -v 12.671010 27.318907 1.924065 -v 12.534173 27.485916 2.254421 -v 12.534173 27.889114 2.254421 -v 12.867002 27.722105 1.450902 -v 12.943699 26.219193 1.265738 -v 13.209031 26.252592 0.625167 -v 13.350788 46.881989 0.282936 -v 14.210463 3.703158 1.792497 -v 14.210463 5.931142 1.792497 -v 14.503405 5.931142 2.499723 -v 14.503405 6.436721 2.499723 -v 13.887884 6.436721 1.013724 -v 13.811186 24.624481 0.828560 -v 14.188262 25.576418 1.738900 -v 14.264960 27.318907 1.924065 -v 14.401797 27.485916 2.254421 -v 14.401797 27.889114 2.254421 -v 14.068970 27.722105 1.450902 -v 13.992271 26.219193 1.265738 -v 13.726938 26.252592 0.625167 -v 13.585180 46.881989 0.282936 -v 13.999723 25.100452 1.283730 -v 12.936247 25.100452 1.283730 -v 13.467985 25.100452 1.283730 -v 13.467985 24.624481 0.828560 -v 11.795187 4.078778 12.650445 -v 11.451985 4.078778 12.650445 -v 11.451985 4.554746 13.105617 -v 11.983724 4.554746 13.105617 -v 8.480783 4.078758 12.650431 -v 8.292243 4.554726 13.105604 -v 8.823982 4.554726 13.105604 -v 8.823982 4.078758 12.650431 -v -16.707516 6.115158 0.742476 -v -16.707516 8.343143 0.742476 -v -16.000288 8.343143 1.035419 -v -16.000288 8.848721 1.035419 -v -17.486286 8.848721 0.419898 -v -17.671450 27.036480 0.343200 -v -16.761112 27.988419 0.720276 -v -16.575949 29.730904 0.796974 -v -16.245590 29.897915 0.933812 -v -16.245590 30.301113 0.933812 -v -17.049109 30.134102 0.600984 -v -17.234274 28.631191 0.524286 -v -17.874844 28.664593 0.258952 -v -18.217075 49.293991 0.117197 -v -16.707516 6.115158 -0.742476 -v -16.707516 8.343143 -0.742476 -v -16.000288 8.343143 -1.035419 -v -16.000288 8.848721 -1.035419 -v -17.486286 8.848721 -0.419898 -v -17.671450 27.036480 -0.343200 -v -16.761112 27.988419 -0.720276 -v -16.575947 29.730904 -0.796974 -v -16.245590 29.897915 -0.933812 -v -16.245590 30.301113 -0.933812 -v -17.049109 30.134102 -0.600984 -v -17.234274 28.631191 -0.524286 -v -17.874844 28.664593 -0.258952 -v -18.217075 49.293991 -0.117197 -v -17.757534 6.115158 -1.792495 -v -18.382814 49.293991 -0.282936 -v -19.242489 6.115158 -1.792497 -v -18.617208 49.293991 -0.282936 -v -20.292507 6.115158 -0.742476 -v -20.292507 8.343143 -0.742476 -v -20.999735 8.343143 -1.035419 -v -20.999735 8.848721 -1.035419 -v -19.513737 8.848721 -0.419898 -v -19.328571 27.036480 -0.343200 -v -20.238913 27.988419 -0.720276 -v -20.424078 29.730904 -0.796974 -v -20.754433 29.897915 -0.933812 -v -20.754433 30.301113 -0.933812 -v -19.950914 30.134102 -0.600984 -v -19.765751 28.631191 -0.524286 -v -19.125179 28.664593 -0.258952 -v -18.782949 49.293991 -0.117197 -v -20.292509 6.115158 0.742476 -v -20.292509 8.343143 0.742476 -v -20.999735 8.343143 1.035419 -v -20.999735 8.848721 1.035419 -v -19.513737 8.848721 0.419898 -v -19.328571 27.036480 0.343200 -v -20.238913 27.988419 0.720276 -v -20.424078 29.730904 0.796974 -v -20.754433 29.897915 0.933812 -v -20.754433 30.301113 0.933812 -v -19.950914 30.134102 0.600984 -v -19.765751 28.631191 0.524286 -v -19.125179 28.664593 0.258952 -v -18.782949 49.293991 0.117197 -v -19.242489 6.115158 1.792495 -v -19.242489 8.343143 1.792495 -v -19.535431 8.343143 2.499723 -v -19.535431 8.848721 2.499723 -v -18.919910 8.848721 1.013724 -v -18.843212 27.036480 0.828560 -v -19.220287 27.988419 1.738900 -v -19.296986 29.730904 1.924065 -v -19.433825 29.897915 2.254421 -v -19.433825 30.301113 2.254421 -v -19.100996 30.134102 1.450902 -v -19.024298 28.631191 1.265738 -v -18.758965 28.664593 0.625167 -v -18.617208 49.293991 0.282936 -v -17.757534 6.115158 1.792497 -v -17.757534 8.343143 1.792497 -v -17.464592 8.343143 2.499723 -v -17.464592 8.848721 2.499723 -v -18.080112 8.848721 1.013724 -v -18.156811 27.036480 0.828560 -v -17.779734 27.988419 1.738900 -v -17.703035 29.730904 1.924065 -v -17.566198 29.897915 2.254421 -v -17.566198 30.301113 2.254421 -v -17.899027 30.134102 1.450902 -v -17.975723 28.631191 1.265738 -v -18.241058 28.664593 0.625167 -v -18.382814 49.293991 0.282936 -v -17.968273 27.512449 1.283730 -v -19.031750 27.512449 1.283730 -v -18.500011 27.512449 1.283730 -v -18.500011 27.036480 0.828560 -v -17.796808 6.058776 12.650445 -v -18.140011 6.058776 12.650445 -v -18.140011 6.534745 13.105617 -v -17.608273 6.534745 13.105617 -v -21.111214 6.058758 12.650431 -v -21.299751 6.534726 13.105604 -v -20.768013 6.534726 13.105604 -v -20.768013 6.058758 12.650431 -v -35.773300 31.489208 0.000000 -v -34.736378 21.021118 0.000000 -v -34.903202 23.332542 0.000000 -v -34.561050 23.357229 0.000000 -v -34.583500 23.668274 0.000000 -v -34.171692 24.893951 0.000000 -v -33.985054 24.907419 0.000000 -v -34.005249 25.187370 0.000000 -v -35.056408 25.455433 0.000000 -v -34.738964 25.822281 0.000000 -v -35.099068 26.046429 0.000000 -v -34.818378 21.015203 -0.198465 -v -34.985210 23.326622 -0.198465 -v -34.743275 23.344069 -0.441034 -v -34.765717 23.655121 -0.441034 -v -34.499660 24.870266 -0.793862 -v -34.367695 24.879795 -0.926172 -v -34.387901 25.159744 -0.926172 -v -35.138412 25.449520 -0.198465 -v -34.921173 25.809122 -0.441034 -v -35.181068 26.040510 -0.198465 -v -35.016331 21.000908 -0.280672 -v -35.183147 23.312332 -0.280672 -v -35.183147 23.312332 -0.623716 -v -35.205605 23.623371 -0.623716 -v -35.291466 24.813129 -1.122690 -v -35.291466 24.813129 -1.309804 -v -35.311668 25.093071 -1.309804 -v -35.336365 25.435234 -0.280672 -v -35.361061 25.777367 -0.623716 -v -35.379028 26.026230 -0.280672 -v -35.214291 20.986626 -0.198465 -v -35.381107 23.298044 -0.198465 -v -35.623047 23.280582 -0.441034 -v -35.645496 23.591629 -0.441034 -v -36.083260 24.755985 -0.793862 -v -36.215240 24.746449 -0.926172 -v -36.235443 25.026409 -0.926172 -v -35.534321 25.420948 -0.198465 -v -35.800957 25.745636 -0.441034 -v -35.576973 26.011936 -0.198465 -v -35.296280 20.980709 0.000000 -v -35.463108 23.292116 0.000000 -v -35.805252 23.267427 0.000000 -v -35.827702 23.578472 0.000000 -v -36.411251 24.732311 0.000000 -v -36.597878 24.718842 0.000000 -v -36.618084 24.998800 0.000000 -v -35.616310 25.415024 0.000000 -v -35.983170 25.732475 0.000000 -v -35.658962 26.006020 0.000000 -v -35.214291 20.986626 0.198465 -v -35.381107 23.298044 0.198465 -v -35.623047 23.280582 0.441034 -v -35.645496 23.591629 0.441034 -v -36.083260 24.755985 0.793862 -v -36.215240 24.746449 0.926172 -v -36.235443 25.026409 0.926172 -v -35.534321 25.420948 0.198465 -v -35.800957 25.745636 0.441034 -v -35.576973 26.011936 0.198465 -v -35.016331 21.000908 0.280672 -v -35.183147 23.312332 0.280672 -v -35.183147 23.312332 0.623716 -v -35.205605 23.623371 0.623716 -v -35.291466 24.813129 1.122690 -v -35.291466 24.813129 1.309804 -v -35.311668 25.093071 1.309804 -v -35.336365 25.435234 0.280672 -v -35.361061 25.777367 0.623716 -v -35.379028 26.026230 0.280672 -v -34.818378 21.015203 0.198465 -v -34.985210 23.326622 0.198465 -v -34.743275 23.344069 0.441034 -v -34.765717 23.655121 0.441034 -v -34.499660 24.870266 0.793862 -v -34.367695 24.879795 0.926172 -v -34.387901 25.159744 0.926172 -v -35.138412 25.449520 0.198465 -v -34.921173 25.809122 0.441034 -v -35.181068 26.040510 0.198465 -v 41.515854 14.389792 0.409083 -v 19.986862 -0.162336 0.821899 -v 41.677841 14.150139 0.289265 -v 20.312319 -0.643831 0.581170 -v 41.744942 14.050873 0.000000 -v 20.447128 -0.843273 0.000000 -v 41.677841 14.150139 -0.289265 -v 20.312319 -0.643831 -0.581170 -v 41.515854 14.389792 -0.409081 -v 19.986862 -0.162336 -0.821899 -v 41.353859 14.629446 -0.289265 -v 19.661402 0.319160 -0.581170 -v 41.286762 14.728712 0.000000 -v 19.526598 0.518598 0.000000 -v 41.353859 14.629446 0.289265 -v 19.661402 0.319160 0.581170 -v -32.189545 -19.209759 -1.238075 -v -38.073593 -19.202291 -1.238075 -v -24.875282 -19.207870 -1.238075 -v -21.158424 -19.201153 -1.238075 -v -17.426210 -19.199236 -1.238075 -v -10.703051 -19.188595 -1.238075 -v -6.862593 -19.192287 -1.238075 -v -2.943282 -19.197210 -1.238075 -v 2.420745 -19.188913 -1.238075 -v 12.967180 -18.306032 -1.259959 -v 7.603565 -19.195683 -1.238075 -v 16.730053 -16.014843 -1.259959 -v 19.381454 -13.269838 -1.259959 -v 22.486511 -8.349066 -1.259959 -v 24.247856 -5.150546 -1.259967 -v 26.552673 -2.858097 -1.259976 -v 29.468712 -0.579000 -1.259978 -v 30.889355 1.488847 -1.259971 -v 30.887581 4.224448 -1.259971 -v 29.521240 5.140058 -1.259971 -v 27.605324 4.464114 -1.605842 -v 27.217043 2.526036 -1.605860 -v -32.122738 -17.475546 -1.238075 -v -24.875282 -17.469940 -1.238075 -v -21.158424 -17.471130 -1.238075 -v -17.426210 -17.464722 -1.238075 -v -10.703051 -17.446625 -1.238075 -v -6.862593 -17.454201 -1.238075 -v -2.943282 -17.458817 -1.238075 -v 2.420745 -17.454708 -1.238075 -v 7.603565 -17.449827 -1.238075 -v 12.879044 -16.473442 -1.238075 -v 16.405544 -14.094017 -1.238075 -v 18.244587 -11.779632 -1.238075 -v 20.710901 -7.529170 -1.281522 -v 22.502172 -2.387520 -1.780734 -v 26.162926 -1.127839 -1.911312 -v 28.999243 0.125412 -1.881888 -v -38.881935 -16.109306 -1.238075 -v -32.122734 -13.101784 -1.238075 -v -38.942127 -13.100367 -1.238075 -v -32.122734 -10.529110 -1.238075 -v -38.612694 -10.520290 -1.238075 -v -32.122734 -7.294571 -1.238075 -v -35.691887 -7.364658 -1.238075 -v -32.122734 -2.380687 -1.238075 -v -34.094254 -2.453040 -1.238075 -v -33.722420 3.002194 -1.266791 -v -32.122829 0.590391 -1.238075 -v -32.122818 3.000987 -1.238075 -v -32.122726 -16.693306 -4.355949 -v -32.122726 -13.101580 -3.815750 -v -32.122711 -15.201252 -8.479453 -v -32.122711 -13.101223 -8.479156 -v -32.122692 -13.101498 -12.252906 -v -32.122688 -10.525450 -13.978191 -v -32.122711 -10.525373 -8.478323 -v -32.122726 -10.527499 -3.815633 -v -32.122726 -7.294347 -3.815463 -v -32.122707 -7.294013 -8.480250 -v -32.122684 -7.293530 -14.206009 -v -32.122730 -2.380611 -2.860078 -v -32.122726 -2.380491 -4.517693 -v -32.122711 -3.604395 -7.527471 -v -32.122704 -3.604366 -9.285585 -v -32.122688 -3.604459 -12.926102 -v 22.927841 -2.079975 -5.293032 -v 26.141859 -0.943860 -5.148655 -v 29.132690 0.554667 -5.435258 -v 26.222294 -0.414192 -7.186513 -v 22.642578 -2.021900 -6.338686 -v 22.192654 -1.778881 -8.919837 -v 23.797483 -0.793227 -9.466203 -v 22.778015 -0.755679 -10.499197 -v 21.442825 -1.464471 -9.712464 -v 29.379856 3.334527 -1.774282 -v 28.136330 2.362632 -4.761501 -v 26.016197 1.315401 -7.589925 -v 24.328785 1.265883 -9.340617 -v 21.705126 -0.275237 -11.014637 -v 20.806227 -0.763545 -10.438858 -v 21.436293 0.883347 -11.366537 -v 20.500061 0.752725 -10.784106 -v 22.121262 1.561577 -11.206270 -v 21.135654 1.550061 -10.690931 -v 21.934351 1.656698 -10.462739 -v 24.074268 1.416270 -8.771894 -v 25.925503 1.399094 -7.091439 -v 17.005033 6.662837 -9.681633 -v 17.983040 6.662837 -11.152293 -v 21.007219 3.249419 -9.869397 -v 20.477345 3.637633 -7.988389 -v 23.650299 1.840257 -8.010921 -v 22.595039 2.320421 -6.663224 -v 25.636337 1.698787 -6.579282 -v 24.421982 1.686574 -5.242180 -v 27.706768 2.015127 -4.583124 -v 26.100426 1.864140 -3.405339 -v 28.646168 2.885117 -3.198632 -v 26.333582 1.027800 -1.582581 -v 23.720354 0.966969 -4.569222 -v 21.278627 1.400611 -1.803334 -v 16.906103 5.316076 -1.586848 -v 18.888571 1.302237 -1.623599 -v 19.376360 2.471233 -7.869488 -v 21.060875 1.981712 -6.729387 -v 16.906103 5.316122 -8.994491 -v 6.683901 5.316105 -9.844049 -v 6.683901 5.315889 -1.586848 -v 18.681934 -1.983630 -11.338428 -v 19.400375 -3.691560 -11.374310 -v 16.633705 -3.074314 -12.192126 -v 17.373505 -5.228647 -12.646860 -v 14.621896 -3.523885 -13.566364 -v 15.075657 -6.222204 -13.865580 -v 12.411800 -6.757924 -14.212804 -v 12.255808 -3.514410 -13.771845 -v 7.603565 -3.490891 -14.606509 -v 7.603565 -7.188782 -14.846800 -v 2.420745 -3.480093 -14.919241 -v 2.420745 -7.173941 -15.276383 -v -2.961988 -3.473636 -15.106121 -v -2.943282 -7.166555 -15.589163 -v -4.439586 -3.475051 -15.065130 -v -6.464514 -3.472743 -15.131924 -v -6.862593 -7.149532 -15.766785 -v -8.018665 -3.474161 -15.090826 -v -9.989845 -3.475893 -15.040714 -v -10.703051 -7.164166 -15.766442 -v -11.494260 -3.481347 -14.882881 -v -17.426210 -3.476307 -15.028784 -v -17.426210 -7.163010 -15.619746 -v -21.158424 -3.491715 -14.582708 -v -21.158424 -7.158087 -15.411015 -v -24.875282 -3.502623 -14.266861 -v -24.875282 -7.172729 -15.149325 -v 18.104813 -0.132791 -11.438385 -v 17.807384 1.818409 -11.514686 -v 16.016308 -0.209789 -12.214762 -v 15.502045 1.959264 -11.977353 -v 17.344368 4.240352 -11.840204 -v 15.252133 4.364689 -12.089524 -v 13.673447 2.077692 -12.471821 -v 14.041731 -0.091286 -13.220635 -v 11.917332 -0.092658 -13.622351 -v 11.917332 3.738120 -12.682102 -v 13.062292 3.738120 -12.646502 -v 13.062292 4.818222 -12.265154 -v 13.062292 4.882016 -13.297487 -v 13.062292 3.738120 -13.693560 -v 6.935244 4.838787 -12.860477 -v 6.935244 4.877757 -13.657490 -v 11.917332 3.738120 -13.693560 -v 10.851164 3.738120 -13.693560 -v 10.851164 -0.092025 -13.680202 -v 10.851164 3.738120 -13.099374 -v 9.059711 3.738120 -13.247311 -v 9.059711 -0.082416 -13.958302 -v 9.059711 3.738120 -13.693560 -v 7.942212 -0.088027 -13.795906 -v 7.942212 3.738120 -13.693560 -v 7.942212 3.738120 -12.994835 -v 6.935244 3.738120 -12.932455 -v 6.935244 3.738120 -13.693585 -v 2.420745 1.569107 -13.480452 -v 2.420745 -0.081102 -13.996309 -v 2.420745 3.221424 -12.616695 -v -1.886394 3.221424 -12.694532 -v -1.898796 1.579293 -13.775311 -v -1.898796 -0.093726 -14.123177 -v -2.961988 -0.093726 -14.123177 -v -2.961988 -0.093726 -15.846119 -v -4.439586 -0.093726 -15.846119 -v -6.464514 -0.093726 -15.846119 -v -8.018665 -0.093726 -15.846119 -v -9.989845 -0.093726 -15.846119 -v -11.494260 -0.093726 -15.846119 -v -6.464514 -0.093726 -14.123177 -v -4.439586 -0.093726 -14.123177 -v -8.018665 -0.093726 -14.123177 -v -9.989845 -0.093726 -14.123177 -v -11.494260 -0.093726 -14.123177 -v -12.515305 -0.093726 -14.123177 -v -12.515305 1.643136 -15.278696 -v -12.515305 -0.093726 -15.846119 -v -8.522958 3.221424 -12.703880 -v -12.515305 1.580878 -13.821227 -v -10.136595 4.386232 -12.483255 -v -12.771408 4.612774 -12.141369 -v -13.215079 9.087099 -12.333536 -v -1.898796 1.623528 -15.278696 -v -1.898796 -0.093726 -15.846119 -v -8.976471 1.636600 -15.278696 -v -5.437628 1.630064 -15.278696 -v -17.426210 -0.085238 -13.876673 -v -17.327192 1.568238 -13.455286 -v -18.602346 1.558287 -13.167220 -v -20.301380 1.560132 -13.220694 -v -21.158424 -0.093337 -13.642082 -v -21.564625 1.545988 -12.811226 -v -24.875282 1.535080 -12.495492 -v -24.875282 -0.115279 -13.006975 -v -17.327192 5.420457 -13.195373 -v -18.602346 5.420457 -13.195373 -v -16.144386 5.420457 -13.195373 -v -16.144386 6.964816 -13.345592 -v -20.301380 5.420457 -13.195373 -v -21.564625 5.420457 -13.195373 -v -16.144386 5.420457 -11.781666 -v -17.327192 5.420457 -11.781666 -v -16.144386 6.916856 -11.957180 -v -18.602346 5.420457 -11.781666 -v -20.301380 5.420457 -11.781666 -v -19.419006 9.058252 -11.675020 -v -22.943232 6.914290 -11.882894 -v -20.785156 10.432585 -11.266025 -v -22.943232 6.953562 -13.019781 -v -22.943232 5.420457 -11.781666 -v -22.943232 5.420457 -13.195373 -v -21.564625 5.420457 -11.781666 -v -24.875282 11.097299 -11.310978 -v -22.073826 12.809116 -11.031629 -v -30.324631 13.255548 -10.468728 -v -30.663502 11.097299 -10.697601 -v -22.617615 13.859209 -11.521384 -v -30.036606 14.678006 -10.958575 -v -22.549631 13.892679 -9.395622 -v -32.024277 15.183992 -8.240927 -v -33.987694 15.764829 -10.182573 -v -33.718784 15.003299 -10.658934 -v -33.772961 13.609431 -10.011785 -v -33.887344 11.097299 -10.130578 -v -32.866196 16.196304 -7.754097 -v -34.301479 16.149021 -7.782318 -v -33.522549 19.528704 -4.747104 -v -35.090012 19.437290 -4.864941 -v -34.027481 21.557823 -2.963631 -v -35.784195 21.577259 -2.965577 -v -34.225647 22.404272 -1.238075 -v -36.012775 22.438992 -1.238075 -v -35.525314 19.202272 -2.929065 -v -34.960712 15.855540 -2.964757 -v -34.620663 13.597372 -2.965675 -v -34.500881 12.321301 -2.967943 -v -33.643600 11.097299 -7.760621 -v -33.745373 13.603200 -7.767865 -v -29.725348 1.534853 -12.693987 -v -29.951672 -0.553082 -12.838999 -v -29.089066 -2.256183 -13.223326 -v -29.440445 -3.531864 -13.420376 -v -30.977203 -3.573457 -13.137188 -v -26.469778 9.078413 -12.638399 -v -30.376698 9.078413 -12.195282 -v -34.513470 9.078413 -11.671916 -v -35.326443 9.078413 -8.519265 -v -36.337158 10.302411 -4.204359 -v -38.226944 8.378810 -4.931240 -v -37.265987 7.154811 -10.030826 -v -36.054546 7.154811 -15.249533 -v -31.044762 7.154811 -15.397676 -v -28.175797 7.154811 -15.624508 -v -28.182747 3.357670 -15.498522 -v -26.515152 1.792719 -14.466270 -v -30.193434 1.779966 -14.420488 -v -31.038305 3.357670 -15.387860 -v -35.530365 3.357670 -15.019470 -v -36.705807 3.357670 -10.029904 -v -37.666824 4.581672 -4.931256 -v -36.700283 3.003968 -2.860110 -v -36.408623 3.003968 -4.518372 -v -35.959934 1.779966 -7.527570 -v -35.191723 1.779966 -9.285604 -v -34.204334 1.779966 -14.226349 -v -30.329147 -0.633617 -13.908249 -v -32.748100 -0.633628 -13.436047 -v -29.538437 -2.280977 -14.046997 -v -30.527657 -3.185613 -13.899263 -v -29.785950 -3.192493 -13.980194 -v -33.089638 -0.885639 -12.303194 -v -32.122818 1.776985 -11.058003 -v -32.122818 1.776985 -9.285594 -v -32.122746 -0.633664 -9.285579 -v -32.122688 -0.633649 -11.458102 -v -34.248096 -0.633676 -7.527580 -v -34.194592 -0.633673 -9.285544 -v -32.122818 1.776985 -7.526671 -v -32.122818 3.000987 -4.518517 -v -32.122795 0.590334 -4.518468 -v -32.122761 -0.633678 -7.527228 -v -34.417446 0.590306 -2.860096 -v -33.900768 0.590325 -4.518118 -v -34.639442 1.779966 -11.836490 -v -32.122818 3.000965 -2.859260 -v -32.122826 0.590387 -2.859397 -v -31.478973 12.189011 -7.300096 -v -23.230810 12.189157 -8.507561 -v -23.230810 12.189054 -5.906754 -v -19.385841 7.391684 -8.968118 -v -19.385841 7.391382 -6.580861 -v -21.167429 7.390899 -6.153070 -v -13.892597 7.391925 -9.847868 -v -14.133162 7.391512 -7.171891 -v -21.997017 12.885773 -9.282518 -v -20.622669 10.264604 -9.549243 -v -19.292164 9.097214 -9.702837 -v -13.192261 9.087229 -10.726978 -v -10.064362 4.446222 -10.991236 -v -8.351521 3.221424 -11.058840 -v -1.598226 3.221424 -11.134462 -v 2.452951 3.221424 -10.998412 -v 4.422665 4.063653 -12.498808 -v 4.365315 4.001073 -10.953445 -v 5.533552 6.171984 -12.384296 -v 5.530656 6.149844 -10.682220 -v 7.977384 6.662837 -10.348160 -v 7.360672 6.662837 -12.189878 -v 12.972380 6.662837 -11.684002 -v 15.594139 6.662837 -11.461397 -v -9.777788 1.447089 -10.415768 -v -9.777788 1.447089 -7.505733 -v -12.005382 1.447089 -7.353243 -v -1.881737 1.447089 -10.419345 -v 3.275857 1.447089 -10.142793 -v 3.275857 1.447089 -1.586848 -v 5.568399 1.447089 -10.053401 -v 5.568399 1.447089 -1.586848 -v 21.363655 1.139118 -5.173973 -v -24.875282 -16.438957 -5.023836 -v -21.158424 -16.432545 -5.456006 -v -17.426210 -16.414181 -5.591547 -v -10.703051 -16.404001 -5.960669 -v -6.862593 -16.404274 -6.041844 -v -2.943282 -16.405006 -6.357064 -v 2.420745 -16.404470 -6.357064 -v 7.603565 -16.380497 -6.357064 -v 12.832268 -15.500710 -6.259944 -v 16.321648 -13.597433 -5.927067 -v 18.157881 -11.652975 -5.318019 -v 20.729614 -7.361181 -4.084560 -v -24.875282 -15.191301 -8.889921 -v -21.158424 -15.188612 -9.238050 -v -17.426210 -15.185617 -9.648746 -v -10.703051 -15.151535 -9.959948 -v -6.862593 -15.148084 -10.122597 -v -2.943282 -15.161076 -10.404315 -v 2.420745 -15.136637 -10.490346 -v 7.603565 -15.139988 -10.384273 -v 12.742552 -13.635256 -10.271313 -v 16.052504 -12.004322 -9.672956 -v 17.738865 -10.274949 -8.849628 -v 20.423779 -6.674508 -7.563237 -v -24.875282 -13.559512 -12.869038 -v -21.158424 -13.563975 -12.793823 -v -17.426210 -13.564394 -13.015837 -v -10.703051 -13.542574 -13.359402 -v -6.862593 -13.538811 -13.468325 -v -2.943282 -13.548689 -13.506525 -v 2.420745 -13.559494 -13.319569 -v 7.603565 -13.121067 -12.955379 -v 12.651917 -11.750661 -12.163342 -v 15.776398 -10.370003 -11.428668 -v 17.823387 -8.626553 -10.201316 -v 20.243277 -5.812185 -8.599287 -v -24.875282 -10.610699 -14.971485 -v -21.158424 -10.603826 -15.170494 -v -17.426210 -10.616206 -15.433119 -v -10.703051 -10.590498 -15.556311 -v -6.862593 -10.586885 -15.660851 -v -2.943282 -10.611682 -15.249158 -v 2.420745 -10.615954 -14.819395 -v 7.603565 -10.423251 -14.270162 -v 12.555428 -9.744363 -13.830376 -v 15.481684 -8.625530 -13.248377 -v 17.762831 -6.967863 -11.940372 -v 19.731392 -4.773400 -10.782165 -v -0.566015 27.749599 22.499998 -v -0.341015 27.749599 18.749996 -v 0.033985 27.749599 0.000000 -v -0.609948 27.840916 22.499998 -v -0.450849 27.977892 18.749996 -v -0.185685 28.206188 0.000000 -v -0.716015 27.878740 22.499998 -v -0.716015 28.072454 18.749996 -v -0.716015 28.395309 0.000000 -v -0.822080 27.840916 22.499998 -v -0.981179 27.977892 18.749996 -v -1.246344 28.206188 0.000000 -v -0.866014 27.749599 22.499998 -v -1.091015 27.749599 18.749996 -v -1.466015 27.749599 0.000000 -v -0.822080 27.658281 22.499998 -v -0.981179 27.521307 18.749996 -v -1.246344 27.293011 0.000000 -v -0.716015 27.620457 22.499998 -v -0.716015 27.426743 18.749996 -v -0.629040 27.103886 0.000000 -v -0.609948 27.658281 22.499998 -v -0.450849 27.521307 18.749996 -v -0.185685 27.293011 0.000000 -v -0.028515 27.749599 3.124998 -v -0.091014 27.749599 6.249998 -v -0.153515 27.749599 9.374997 -v -0.216015 27.749599 12.499996 -v -0.278514 27.749599 15.624996 -v -0.229878 27.331060 3.124998 -v -0.274072 27.369110 6.249998 -v -0.318267 27.407154 9.374997 -v -0.362462 27.445206 12.499996 -v -0.406654 27.483257 15.624996 -v 0.774985 25.158726 18.494785 -v 2.349486 25.376209 15.522077 -v 2.411985 25.523190 12.499996 -v 2.474485 25.523190 9.374997 -v 2.536986 25.523190 6.249998 -v 2.599485 25.523190 3.124998 -v 2.661985 25.523190 0.000000 -v 4.919668 22.289122 12.150613 -v 4.982167 22.515976 9.184464 -v 5.044668 22.800421 6.258644 -v 5.107168 22.800417 3.133644 -v 5.169741 22.800392 0.000000 -v 6.853204 19.809378 6.116760 -v 7.224073 20.021494 3.140291 -v 7.286703 20.021448 0.000000 -v 1.446666 21.829916 18.079060 -v 3.021168 22.067556 15.120463 -v 1.779205 18.367237 17.606915 -v 4.073708 18.633253 14.668193 -v 5.324208 18.882090 11.717439 -v 6.173600 19.237459 8.841279 -v 1.779205 14.151859 16.952080 -v 4.073708 14.472324 14.051481 -v 6.008208 14.914806 11.236322 -v 7.006708 15.599648 8.590876 -v 7.753209 16.206085 5.890527 -v 8.093493 16.741280 3.140291 -v 7.878340 16.741234 0.000000 -v 0.519207 9.711632 16.052975 -v 2.813706 9.944913 13.395174 -v 4.532208 11.295698 10.912201 -v 5.638709 12.572056 8.312004 -v 5.953207 13.221888 5.642037 -v 6.293493 13.555683 2.924403 -v 6.510341 13.584993 0.000000 -v -1.712795 4.539915 14.229296 -v 0.005706 6.721300 12.935635 -v 1.796206 8.238514 10.569201 -v 3.514707 9.596653 8.026267 -v 4.153206 10.297425 5.391975 -v 4.215707 10.666860 2.699292 -v 4.278336 10.920532 -0.034037 -v 4.317936 22.048738 12.150613 -v 4.380435 22.275593 9.184464 -v 1.810253 25.282806 12.499996 -v 4.442935 22.560038 6.258644 -v 1.935254 25.282806 6.249998 -v 1.872753 25.282806 9.374997 -v 4.505436 22.560034 3.133644 -v 1.997753 25.282806 3.124998 -v 4.568008 22.560009 0.000000 -v 2.060253 25.282806 0.000000 -v 6.251471 19.568995 6.116760 -v 6.622341 19.781109 3.140291 -v 6.684969 19.781065 0.000000 -v 1.747754 25.135826 15.522077 -v 2.419436 21.827173 15.120463 -v 3.471975 18.392870 14.668193 -v 4.722476 18.641706 11.717439 -v 5.571867 18.997076 8.841279 -v 3.471975 14.231941 14.051481 -v 5.406476 14.674421 11.236322 -v 6.404974 15.359264 8.590876 -v 7.151477 15.965701 5.890527 -v 7.491759 16.500896 3.140291 -v 7.276607 16.500849 0.000000 -v 2.211973 9.704529 13.395174 -v 3.930475 11.055314 10.912201 -v 5.036976 12.331673 8.312004 -v 5.351475 12.981504 5.642037 -v 5.691761 13.315300 2.924403 -v 5.908608 13.344610 0.000000 -v -0.450849 27.977892 -18.749996 -v -0.609948 27.840916 -22.499998 -v -0.566015 27.749599 -22.499998 -v -0.341015 27.749599 -18.749996 -v -0.216015 27.749599 -12.499996 -v -0.153515 27.749599 -9.374997 -v -0.091014 27.749599 -6.249998 -v -0.028515 27.749599 -3.124998 -v -0.278514 27.749599 -15.624996 -v -0.716015 28.072454 -18.749996 -v -0.716015 27.878740 -22.499998 -v -0.981179 27.977892 -18.749996 -v -0.822080 27.840916 -22.499998 -v -1.091015 27.749599 -18.749996 -v -0.866014 27.749599 -22.499998 -v -0.981179 27.521307 -18.749996 -v -0.822080 27.658281 -22.499998 -v -0.716015 27.426743 -18.749996 -v -0.716015 27.620457 -22.499998 -v -0.450849 27.521307 -18.749996 -v -0.609948 27.658281 -22.499998 -v -0.229878 27.331060 -3.124998 -v -0.274072 27.369110 -6.249998 -v -0.318267 27.407154 -9.374997 -v -0.362462 27.445206 -12.499996 -v -0.406654 27.483257 -15.624996 -v 2.349486 25.376209 -15.522077 -v 2.411985 25.523190 -12.499996 -v 2.474485 25.523190 -9.374997 -v 2.536986 25.523190 -6.249998 -v 2.599485 25.523190 -3.124998 -v 4.919668 22.289122 -12.150613 -v 4.982167 22.515976 -9.184464 -v 5.044668 22.800421 -6.258644 -v 5.107168 22.800417 -3.133644 -v 6.853204 19.809378 -6.116760 -v 7.224073 20.021494 -3.140291 -v 0.774985 25.158726 -18.494785 -v 1.446666 21.829916 -18.079060 -v 3.021168 22.067556 -15.120463 -v 1.779205 18.367237 -17.606915 -v 4.073708 18.633253 -14.668193 -v 5.324208 18.882090 -11.717439 -v 6.173600 19.237459 -8.841279 -v 1.779205 14.151859 -16.952080 -v 4.073708 14.472324 -14.051481 -v 6.008208 14.914806 -11.236322 -v 7.006708 15.599648 -8.590876 -v 7.753209 16.206085 -5.890527 -v 8.093493 16.741280 -3.140291 -v 0.519207 9.711632 -16.052975 -v 2.813706 9.944913 -13.395174 -v 4.532208 11.295698 -10.912201 -v 5.638709 12.572056 -8.312004 -v 5.953207 13.221888 -5.642037 -v 6.293493 13.555683 -2.924403 -v -1.712795 4.539915 -14.229296 -v 0.005706 6.721300 -12.935635 -v 1.796206 8.238514 -10.569201 -v 3.514707 9.596653 -8.026267 -v 4.153206 10.297425 -5.391975 -v 4.215707 10.666860 -2.699292 -v 1.810253 25.282806 -12.499996 -v 4.380435 22.275593 -9.184464 -v 4.317936 22.048738 -12.150613 -v 1.872753 25.282806 -9.374997 -v 1.935254 25.282806 -6.249998 -v 4.442935 22.560038 -6.258644 -v 1.997753 25.282806 -3.124998 -v 4.505436 22.560034 -3.133644 -v 6.622341 19.781109 -3.140291 -v 6.251471 19.568995 -6.116760 -v 1.747754 25.135826 -15.522077 -v 2.419436 21.827173 -15.120463 -v 3.471975 18.392870 -14.668193 -v 4.722476 18.641706 -11.717439 -v 5.571867 18.997076 -8.841279 -v 3.471975 14.231941 -14.051481 -v 5.406476 14.674421 -11.236322 -v 6.404974 15.359264 -8.590876 -v 7.151477 15.965701 -5.890527 -v 7.491759 16.500896 -3.140291 -v 2.211973 9.704529 -13.395174 -v 3.930475 11.055314 -10.912201 -v 5.036976 12.331673 -8.312004 -v 5.351475 12.981504 -5.642037 -v 5.691761 13.315300 -2.924403 -v -0.441215 47.520119 0.000000 -v -0.816215 47.520119 -14.015965 -v -1.041214 47.520119 -16.818804 -v -0.660885 47.900337 0.000000 -v -0.926051 47.710224 -14.015965 -v -1.085148 47.596161 -16.818804 -v -1.191215 48.057846 0.000000 -v -1.191215 47.788982 -14.015965 -v -1.191215 47.627666 -16.818804 -v -1.721544 47.900337 0.000000 -v -1.456378 47.710224 -14.015965 -v -1.297281 47.596161 -16.818804 -v -1.941214 47.520119 0.000000 -v -1.566214 47.520119 -14.015965 -v -1.341214 47.520119 -16.818804 -v -1.721544 47.139870 0.000000 -v -1.456378 47.330002 -14.015965 -v -1.297281 47.444061 -16.818804 -v -1.147212 46.982380 0.000000 -v -1.147212 47.251244 -14.015965 -v -1.191215 47.412563 -16.818804 -v -0.660885 47.139870 0.000000 -v -0.926051 47.330002 -14.015965 -v -1.085148 47.444061 -16.818804 -v -0.881855 47.298306 -11.680260 -v -0.837662 47.266632 -9.344559 -v -0.793467 47.234909 -7.008858 -v -0.749272 47.203262 -4.673156 -v -0.705079 47.171555 -2.337453 -v -0.753716 47.520119 -11.680260 -v -0.691215 47.520119 -9.344559 -v -0.628715 47.520119 -7.008858 -v -0.566216 47.520119 -4.673156 -v -0.503715 47.520119 -2.337453 -v 2.186784 45.666019 0.000000 -v 2.124283 45.666019 -2.337453 -v 2.061785 45.666019 -4.673156 -v 1.999284 45.666019 -7.008858 -v 1.936783 45.666019 -9.344559 -v 1.874285 45.580280 -11.580549 -v 0.299784 45.386532 -13.903419 -v 4.694541 43.398529 0.000000 -v 4.631968 43.398544 -2.343915 -v 4.569468 43.403488 -4.796154 -v 4.506968 43.190250 -7.144563 -v 3.544468 42.994743 -9.666407 -v 2.545968 42.799408 -11.660814 -v 0.971465 42.588673 -13.968838 -v 6.503135 41.087234 0.000000 -v 6.440504 41.095375 -2.609166 -v 6.378005 40.956799 -5.189175 -v 5.650746 40.443047 -7.502493 -v 4.926439 40.128944 -9.945014 -v 3.598507 39.908993 -11.913838 -v 1.304004 39.676033 -14.292400 -v 7.403139 38.374527 0.000000 -v 7.340509 38.387520 -3.171366 -v 7.278009 37.949181 -5.513334 -v 6.531507 37.409622 -7.948401 -v 5.533008 36.794739 -10.264465 -v 3.598507 36.403469 -12.462982 -v 1.304004 36.126175 -14.981808 -v 6.035139 35.763321 0.000000 -v 5.972509 35.771698 -3.283163 -v 5.910010 35.459286 -5.936440 -v 5.847510 34.875942 -8.256088 -v 4.057008 33.780102 -10.944506 -v 2.338505 32.605881 -13.808851 -v 0.044005 32.376560 -16.380838 -v 3.803136 33.562889 0.000000 -v 3.740506 33.359436 -3.333341 -v 3.678006 33.020260 -6.361779 -v 3.039505 32.401882 -8.960025 -v 1.321005 31.238838 -11.792484 -v -0.181494 29.931759 -14.732271 -v -2.187994 28.006685 -18.449085 -v 4.086603 43.218376 0.000000 -v 4.024032 43.218391 -2.343915 -v 1.516346 45.485867 -2.337453 -v 1.578847 45.485867 0.000000 -v 3.961532 43.223335 -4.796154 -v 1.453848 45.485867 -4.673156 -v 3.899031 43.010098 -7.144563 -v 1.391347 45.485867 -7.008858 -v 1.328846 45.485867 -9.344559 -v 2.936531 42.814590 -9.666407 -v 1.266348 45.400127 -11.580549 -v 1.938032 42.619255 -11.660814 -v 5.895196 40.907082 0.000000 -v 5.832567 40.915222 -2.609166 -v 5.770068 40.776646 -5.189175 -v 5.042808 40.262894 -7.502493 -v 4.318501 39.948792 -9.945014 -v 2.990570 39.728840 -11.913838 -v 6.795203 38.194374 0.000000 -v 6.732572 38.207367 -3.171366 -v 6.670071 37.769028 -5.513334 -v 5.923571 37.229469 -7.948401 -v 4.925072 36.614586 -10.264465 -v 2.990570 36.223316 -12.462982 -v 5.427201 35.583168 0.000000 -v 5.364572 35.591545 -3.283163 -v 5.302073 35.279133 -5.936440 -v 5.239572 34.695789 -8.256088 -v 3.449071 33.599949 -10.944506 -v 1.730568 32.425728 -13.808851 -v -0.566216 47.520119 4.673156 -v -0.628715 47.520119 7.008858 -v -0.691215 47.520119 9.344559 -v -0.753716 47.520119 11.680260 -v -0.816215 47.520119 14.015965 -v -0.926051 47.710224 14.015965 -v -0.503715 47.520119 2.337453 -v -1.085148 47.596161 16.818804 -v -1.041214 47.520119 16.818804 -v -1.191215 47.788982 14.015965 -v -1.191215 47.627666 16.818804 -v -1.456378 47.710224 14.015965 -v -1.297281 47.596161 16.818804 -v -1.566214 47.520119 14.015965 -v -1.341214 47.520119 16.818804 -v -1.456378 47.330002 14.015965 -v -1.297281 47.444061 16.818804 -v -1.147212 47.251244 14.015965 -v -1.191215 47.412563 16.818804 -v -0.926051 47.330002 14.015965 -v -0.881855 47.298306 11.680260 -v -0.837662 47.266632 9.344559 -v -0.793467 47.234909 7.008858 -v -0.749272 47.203262 4.673156 -v -0.705079 47.171555 2.337453 -v -1.085148 47.444061 16.818804 -v 2.124283 45.666019 2.337453 -v 2.061785 45.666019 4.673156 -v 1.999284 45.666019 7.008858 -v 1.936783 45.666019 9.344559 -v 1.874285 45.580280 11.580549 -v 0.299784 45.386532 13.903419 -v 4.631968 43.398544 2.343915 -v 4.569468 43.403488 4.796154 -v 4.506968 43.190250 7.144563 -v 3.544468 42.994743 9.666407 -v 2.545968 42.799408 11.660814 -v 0.971465 42.588673 13.968838 -v 6.440504 41.095375 2.609166 -v 6.378005 40.956799 5.189175 -v 5.650746 40.443047 7.502493 -v 4.926439 40.128944 9.945014 -v 3.598507 39.908993 11.913838 -v 1.304004 39.676033 14.292400 -v 7.340509 38.387520 3.171366 -v 7.278009 37.949181 5.513334 -v 6.531507 37.409622 7.948401 -v 5.533008 36.794739 10.264465 -v 3.598507 36.403469 12.462982 -v 1.304004 36.126175 14.981808 -v 5.972509 35.771698 3.283163 -v 5.910010 35.459286 5.936440 -v 5.847510 34.875942 8.256088 -v 4.057008 33.780102 10.944506 -v 2.338505 32.605881 13.808851 -v 0.044005 32.376560 16.380838 -v 3.740506 33.359436 3.333341 -v 3.678006 33.020260 6.361779 -v 3.039505 32.401882 8.960025 -v 1.321005 31.238838 11.792484 -v -0.181494 29.931759 14.732271 -v -2.187994 28.006685 18.449085 -v 1.516346 45.485867 2.337453 -v 4.024032 43.218391 2.343915 -v 1.453848 45.485867 4.673156 -v 3.961532 43.223335 4.796154 -v 1.391347 45.485867 7.008858 -v 3.899031 43.010098 7.144563 -v 1.328846 45.485867 9.344559 -v 1.266348 45.400127 11.580549 -v 2.936531 42.814590 9.666407 -v 1.938032 42.619255 11.660814 -v 5.832567 40.915222 2.609166 -v 5.770068 40.776646 5.189175 -v 5.042808 40.262894 7.502493 -v 2.990570 39.728840 11.913838 -v 4.318501 39.948792 9.945014 -v 6.732572 38.207367 3.171366 -v 6.670071 37.769028 5.513334 -v 5.923571 37.229469 7.948401 -v 4.925072 36.614586 10.264465 -v 2.990570 36.223316 12.462982 -v 5.364572 35.591545 3.283163 -v 5.302073 35.279133 5.936440 -v 5.239572 34.695789 8.256088 -v 3.449071 33.599949 10.944506 -v 1.730568 32.425728 13.808851 -v 15.199894 24.244293 20.208620 -v 15.396472 24.244293 16.840515 -v 15.724104 24.244293 0.000000 -v 15.161510 24.324074 20.208620 -v 15.300512 24.443750 16.840515 -v 15.532181 24.643208 0.000000 -v 15.068842 24.357121 20.208620 -v 15.068842 24.526367 16.840515 -v 15.068842 24.808439 0.000000 -v 14.976175 24.324074 20.208620 -v 14.837173 24.443750 16.840515 -v 14.605503 24.643208 0.000000 -v 14.937790 24.244293 20.208620 -v 14.741212 24.244293 16.840515 -v 14.413582 24.244293 0.000000 -v 14.976175 24.164513 20.208620 -v 14.837173 24.044842 16.840515 -v 14.605503 23.845383 0.000000 -v 15.068842 24.131464 20.208620 -v 15.068842 23.962219 16.840515 -v 15.144831 23.680147 0.000000 -v 15.161510 24.164513 20.208620 -v 15.300512 24.044842 16.840515 -v 15.532181 23.845383 0.000000 -v 15.669498 24.244293 2.806750 -v 15.614893 24.244293 5.613504 -v 15.560287 24.244293 8.420256 -v 15.505682 24.244293 11.227010 -v 15.451077 24.244293 14.033761 -v 15.493570 23.878626 2.806750 -v 15.454958 23.911867 5.613504 -v 15.416346 23.945107 8.420256 -v 15.377735 23.978352 11.227010 -v 15.339125 24.011599 14.033761 -v 16.371500 21.980698 16.611292 -v 17.747112 22.170710 13.941322 -v 17.801716 22.299122 11.227010 -v 17.856321 22.299122 8.420256 -v 17.910927 22.299122 5.613504 -v 17.965530 22.299122 2.806750 -v 18.020136 22.299122 0.000000 -v 19.992630 19.473579 10.913207 -v 20.047235 19.671778 8.249126 -v 20.101841 19.920292 5.621270 -v 20.156446 19.920288 2.814516 -v 20.211115 19.920267 0.000000 -v 21.681923 17.307076 5.493834 -v 22.005945 17.492397 2.820486 -v 22.060665 17.492359 0.000000 -v 16.958334 19.072380 16.237904 -v 18.333946 19.280003 13.580609 -v 17.248869 16.047104 15.813843 -v 19.253532 16.279516 13.174398 -v 20.346069 16.496920 10.524145 -v 21.088167 16.807402 7.940892 -v 17.248869 12.364210 15.225695 -v 19.253532 12.644194 12.620491 -v 20.943666 13.030781 10.092027 -v 21.816038 13.629114 7.715988 -v 22.468241 14.158947 5.290641 -v 22.765541 14.626535 2.820486 -v 22.577564 14.626495 0.000000 -v 16.148031 8.484867 14.418156 -v 18.152691 8.688681 12.031022 -v 19.654114 9.868836 9.800913 -v 20.620842 10.983964 7.465518 -v 20.895615 11.551710 5.067457 -v 21.192915 11.843342 2.626584 -v 21.382370 11.868950 0.000000 -v 14.197975 3.966436 12.780198 -v 15.699396 5.872272 11.618281 -v 17.263721 7.197832 9.492843 -v 18.765144 8.384414 7.208880 -v 19.322987 8.996664 4.842861 -v 19.377592 9.319432 2.424399 -v 19.432312 9.541060 -0.030570 -v 19.466908 19.263561 10.913207 -v 19.521511 19.461760 8.249126 -v 17.275993 22.089104 11.227010 -v 19.576118 19.710272 5.621270 -v 17.385204 22.089104 5.613504 -v 17.330599 22.089104 8.420256 -v 19.630722 19.710270 2.814516 -v 17.439808 22.089104 2.806750 -v 19.685390 19.710247 0.000000 -v 17.494415 22.089104 0.000000 -v 21.156200 17.097057 5.493834 -v 21.480223 17.282379 2.820486 -v 21.534941 17.282339 0.000000 -v 17.221392 21.960691 13.941322 -v 17.808226 19.069984 13.580609 -v 18.727808 16.069500 13.174398 -v 19.820347 16.286903 10.524145 -v 20.562443 16.597382 7.940892 -v 18.727808 12.434175 12.620491 -v 20.417946 12.820762 10.092027 -v 21.290312 13.419096 7.715988 -v 21.942516 13.948927 5.290641 -v 22.239817 14.416519 2.820486 -v 22.051842 14.416475 0.000000 -v 17.626970 8.478662 12.031022 -v 19.128391 9.658816 9.800913 -v 20.095119 10.773947 7.465518 -v 20.369892 11.341692 5.067457 -v 20.667192 11.633322 2.626584 -v 20.856647 11.658932 0.000000 -v 15.300512 24.443750 -16.840515 -v 15.161510 24.324074 -20.208620 -v 15.199894 24.244293 -20.208620 -v 15.396472 24.244293 -16.840515 -v 15.505682 24.244293 -11.227010 -v 15.560287 24.244293 -8.420256 -v 15.614893 24.244293 -5.613504 -v 15.669498 24.244293 -2.806750 -v 15.451077 24.244293 -14.033761 -v 15.068842 24.526367 -16.840515 -v 15.068842 24.357121 -20.208620 -v 14.837173 24.443750 -16.840515 -v 14.976175 24.324074 -20.208620 -v 14.741212 24.244293 -16.840515 -v 14.937790 24.244293 -20.208620 -v 14.837173 24.044842 -16.840515 -v 14.976175 24.164513 -20.208620 -v 15.068842 23.962219 -16.840515 -v 15.068842 24.131464 -20.208620 -v 15.300512 24.044842 -16.840515 -v 15.161510 24.164513 -20.208620 -v 15.493570 23.878626 -2.806750 -v 15.454958 23.911867 -5.613504 -v 15.416346 23.945107 -8.420256 -v 15.377735 23.978352 -11.227010 -v 15.339125 24.011599 -14.033761 -v 17.747112 22.170710 -13.941322 -v 17.801716 22.299122 -11.227010 -v 17.856321 22.299122 -8.420256 -v 17.910927 22.299122 -5.613504 -v 17.965530 22.299122 -2.806750 -v 19.992630 19.473579 -10.913207 -v 20.047235 19.671778 -8.249126 -v 20.101841 19.920292 -5.621270 -v 20.156446 19.920288 -2.814516 -v 21.681923 17.307076 -5.493834 -v 22.005945 17.492397 -2.820486 -v 16.371500 21.980698 -16.611292 -v 16.958334 19.072380 -16.237904 -v 18.333946 19.280003 -13.580609 -v 17.248869 16.047104 -15.813843 -v 19.253532 16.279516 -13.174398 -v 20.346069 16.496920 -10.524145 -v 21.088167 16.807402 -7.940892 -v 17.248869 12.364210 -15.225695 -v 19.253532 12.644194 -12.620491 -v 20.943666 13.030781 -10.092027 -v 21.816038 13.629114 -7.715988 -v 22.468241 14.158947 -5.290641 -v 22.765541 14.626535 -2.820486 -v 16.148031 8.484867 -14.418156 -v 18.152691 8.688681 -12.031022 -v 19.654114 9.868836 -9.800913 -v 20.620842 10.983964 -7.465518 -v 20.895615 11.551710 -5.067457 -v 21.192915 11.843342 -2.626584 -v 14.197975 3.966436 -12.780198 -v 15.699396 5.872272 -11.618281 -v 17.263721 7.197832 -9.492843 -v 18.765144 8.384414 -7.208880 -v 19.322987 8.996664 -4.842861 -v 19.377592 9.319432 -2.424399 -v 17.275993 22.089104 -11.227010 -v 19.521511 19.461760 -8.249126 -v 19.466908 19.263561 -10.913207 -v 17.330599 22.089104 -8.420256 -v 17.385204 22.089104 -5.613504 -v 19.576118 19.710272 -5.621270 -v 17.439808 22.089104 -2.806750 -v 19.630722 19.710270 -2.814516 -v 21.480223 17.282379 -2.820486 -v 21.156200 17.097057 -5.493834 -v 17.221392 21.960691 -13.941322 -v 17.808226 19.069984 -13.580609 -v 18.727808 16.069500 -13.174398 -v 19.820347 16.286903 -10.524145 -v 20.562443 16.597382 -7.940892 -v 18.727808 12.434175 -12.620491 -v 20.417946 12.820762 -10.092027 -v 21.290312 13.419096 -7.715988 -v 21.942516 13.948927 -5.290641 -v 22.239817 14.416519 -2.820486 -v 17.626970 8.478662 -12.031022 -v 19.128391 9.658816 -9.800913 -v 20.095119 10.773947 -7.465518 -v 20.369892 11.341692 -5.067457 -v 20.667192 11.633322 -2.626584 -v 15.308929 41.517422 0.000000 -v 14.981298 41.517422 -12.588591 -v 14.784721 41.517422 -15.105992 -v 15.117007 41.849609 0.000000 -v 14.885338 41.683510 -12.588591 -v 14.746338 41.583855 -15.105992 -v 14.653669 41.987221 0.000000 -v 14.653669 41.752319 -12.588591 -v 14.653669 41.611382 -15.105992 -v 14.190331 41.849609 0.000000 -v 14.422001 41.683510 -12.588591 -v 14.561001 41.583855 -15.105992 -v 13.998409 41.517422 0.000000 -v 14.326038 41.517422 -12.588591 -v 14.522617 41.517422 -15.105992 -v 14.190331 41.185200 0.000000 -v 14.422001 41.351318 -12.588591 -v 14.561001 41.450974 -15.105992 -v 14.692114 41.047607 0.000000 -v 14.692114 41.282509 -12.588591 -v 14.653669 41.423450 -15.105992 -v 15.117007 41.185200 0.000000 -v 14.885338 41.351318 -12.588591 -v 14.746338 41.450974 -15.105992 -v 14.923951 41.323624 -10.490752 -v 14.962563 41.295952 -8.392917 -v 15.001173 41.268238 -6.295083 -v 15.039785 41.240585 -4.197246 -v 15.078396 41.212887 -2.099409 -v 15.035903 41.517422 -10.490752 -v 15.090508 41.517422 -8.392917 -v 15.145114 41.517422 -6.295083 -v 15.199718 41.517422 -4.197246 -v 15.254324 41.517422 -2.099409 -v 17.604961 39.897530 0.000000 -v 17.550356 39.897530 -2.099409 -v 17.495752 39.897530 -4.197246 -v 17.441147 39.897530 -6.295083 -v 17.386541 39.897530 -8.392917 -v 17.331936 39.822620 -10.401196 -v 15.956326 39.653347 -12.487507 -v 19.795940 37.916466 0.000000 -v 19.741272 37.916477 -2.105213 -v 19.686668 37.920795 -4.307718 -v 19.632061 37.734497 -6.416967 -v 18.791145 37.563686 -8.681988 -v 17.918774 37.393028 -10.473288 -v 16.543159 37.208908 -12.546264 -v 21.376074 35.897133 0.000000 -v 21.321356 35.904243 -2.343451 -v 21.266750 35.783173 -4.660714 -v 20.631359 35.334316 -6.738446 -v 19.998547 35.059895 -8.932222 -v 18.838356 34.867725 -10.700544 -v 16.833694 34.664192 -12.836876 -v 22.162392 33.527092 0.000000 -v 22.107674 33.538445 -2.848397 -v 22.053068 33.155472 -4.951861 -v 21.400864 32.684071 -7.138943 -v 20.528494 32.146858 -9.219141 -v 18.838356 31.805016 -11.193764 -v 16.833694 31.562752 -13.456076 -v 20.967196 31.245729 0.000000 -v 20.912479 31.253052 -2.948808 -v 20.857872 30.980101 -5.331879 -v 20.803268 30.470444 -7.415297 -v 19.238941 29.513027 -9.829927 -v 17.737516 28.487133 -12.402572 -v 15.732857 28.286781 -14.712629 -v 19.017138 29.323254 0.000000 -v 18.962420 29.145500 -2.993877 -v 18.907814 28.849167 -5.713902 -v 18.349968 28.308907 -8.047544 -v 16.848547 27.292774 -10.591549 -v 15.535843 26.150806 -13.231953 -v 13.782801 24.468904 -16.570248 -v 19.264797 37.759071 0.000000 -v 19.210129 37.759079 -2.105213 -v 17.019213 39.740131 -2.099409 -v 17.073820 39.740131 0.000000 -v 19.155525 37.763401 -4.307718 -v 16.964611 39.740131 -4.197246 -v 19.100918 37.577103 -6.416967 -v 16.910004 39.740131 -6.295083 -v 16.855398 39.740131 -8.392917 -v 18.260002 37.406288 -8.681988 -v 16.800793 39.665226 -10.401196 -v 17.387630 37.235630 -10.473288 -v 20.844931 35.739735 0.000000 -v 20.790213 35.746845 -2.343451 -v 20.735609 35.625778 -4.660714 -v 20.100216 35.176926 -6.738446 -v 19.467403 34.902496 -8.932222 -v 18.307213 34.710327 -10.700544 -v 21.631248 33.369698 0.000000 -v 21.576529 33.381050 -2.848397 -v 21.521923 32.998077 -4.951861 -v 20.869720 32.526680 -7.138943 -v 19.997353 31.989464 -9.219141 -v 18.307213 31.647621 -11.193764 -v 20.436052 31.088337 0.000000 -v 20.381334 31.095654 -2.948808 -v 20.326729 30.822704 -5.331879 -v 20.272125 30.313047 -7.415297 -v 18.707798 29.355633 -9.829927 -v 17.206375 28.329739 -12.402572 -v 15.199718 41.517422 4.197246 -v 15.145114 41.517422 6.295083 -v 15.090508 41.517422 8.392917 -v 15.035903 41.517422 10.490752 -v 14.981298 41.517422 12.588591 -v 14.885338 41.683510 12.588591 -v 15.254324 41.517422 2.099409 -v 14.746338 41.583855 15.105992 -v 14.784721 41.517422 15.105992 -v 14.653669 41.752319 12.588591 -v 14.653669 41.611382 15.105992 -v 14.422001 41.683510 12.588591 -v 14.561001 41.583855 15.105992 -v 14.326038 41.517422 12.588591 -v 14.522617 41.517422 15.105992 -v 14.422001 41.351318 12.588591 -v 14.561001 41.450974 15.105992 -v 14.692114 41.282509 12.588591 -v 14.653669 41.423450 15.105992 -v 14.885338 41.351318 12.588591 -v 14.923951 41.323624 10.490752 -v 14.962563 41.295952 8.392917 -v 15.001173 41.268238 6.295083 -v 15.039785 41.240585 4.197246 -v 15.078396 41.212887 2.099409 -v 14.746338 41.450974 15.105992 -v 17.550356 39.897530 2.099409 -v 17.495752 39.897530 4.197246 -v 17.441147 39.897530 6.295083 -v 17.386541 39.897530 8.392917 -v 17.331936 39.822620 10.401196 -v 15.956326 39.653347 12.487507 -v 19.741272 37.916477 2.105213 -v 19.686668 37.920795 4.307718 -v 19.632061 37.734497 6.416967 -v 18.791145 37.563686 8.681988 -v 17.918774 37.393028 10.473288 -v 16.543159 37.208908 12.546264 -v 21.321356 35.904243 2.343451 -v 21.266750 35.783173 4.660714 -v 20.631359 35.334316 6.738446 -v 19.998547 35.059895 8.932222 -v 18.838356 34.867725 10.700544 -v 16.833694 34.664192 12.836876 -v 22.107674 33.538445 2.848397 -v 22.053068 33.155472 4.951861 -v 21.400864 32.684071 7.138943 -v 20.528494 32.146858 9.219141 -v 18.838356 31.805016 11.193764 -v 16.833694 31.562752 13.456076 -v 20.912479 31.253052 2.948808 -v 20.857872 30.980101 5.331879 -v 20.803268 30.470444 7.415297 -v 19.238941 29.513027 9.829927 -v 17.737516 28.487133 12.402572 -v 15.732857 28.286781 14.712629 -v 18.962420 29.145500 2.993877 -v 18.907814 28.849167 5.713902 -v 18.349968 28.308907 8.047544 -v 16.848547 27.292774 10.591549 -v 15.535843 26.150806 13.231953 -v 13.782801 24.468904 16.570248 -v 17.019213 39.740131 2.099409 -v 19.210129 37.759079 2.105213 -v 16.964611 39.740131 4.197246 -v 19.155525 37.763401 4.307718 -v 16.910004 39.740131 6.295083 -v 19.100918 37.577103 6.416967 -v 16.855398 39.740131 8.392917 -v 16.800793 39.665226 10.401196 -v 18.260002 37.406288 8.681988 -v 17.387630 37.235630 10.473288 -v 20.790213 35.746845 2.343451 -v 20.735609 35.625778 4.660714 -v 20.100216 35.176926 6.738446 -v 18.307213 34.710327 10.700544 -v 19.467403 34.902496 8.932222 -v 21.576529 33.381050 2.848397 -v 21.521923 32.998077 4.951861 -v 20.869720 32.526680 7.138943 -v 19.997353 31.989464 9.219141 -v 18.307213 31.647621 11.193764 -v 20.381334 31.095654 2.948808 -v 20.326729 30.822704 5.331879 -v 20.272125 30.313047 7.415297 -v 18.707798 29.355633 9.829927 -v 17.206375 28.329739 12.402572 -v 37.183197 9.436539 12.125172 -v 36.948586 9.445372 14.550205 -v 36.915100 9.337111 14.550205 -v 37.099464 9.165879 12.125172 -v 37.201889 9.070754 8.083447 -v 37.253113 9.023188 6.062584 -v 37.304321 8.975623 4.041723 -v 37.355537 8.928061 2.020860 -v 37.406761 8.880497 0.000000 -v 37.574219 9.421815 0.000000 -v 37.150681 9.118316 10.104307 -v 37.037880 9.715820 12.125172 -v 36.890457 9.557086 14.550205 -v 37.283577 9.980377 0.000000 -v 36.748634 9.840131 12.125172 -v 36.774757 9.606809 14.550205 -v 36.705086 10.229001 0.000000 -v 36.484894 9.736646 12.125172 -v 36.669266 9.565416 14.550205 -v 36.177612 10.022031 0.000000 -v 36.401161 9.465988 12.125172 -v 36.635773 9.457152 14.550205 -v 36.010139 9.480717 0.000000 -v 36.546486 9.186706 12.125172 -v 36.693893 9.345439 14.550205 -v 36.372047 8.855958 0.000000 -v 36.835732 9.062397 12.125172 -v 36.809601 9.295714 14.550205 -v 36.879280 8.673531 0.000000 -v 36.872025 8.738340 2.020860 -v 36.864754 8.803152 4.041723 -v 36.857498 8.867962 6.062584 -v 36.850243 8.932775 8.083447 -v 36.842987 8.997587 10.104307 -v 37.233280 7.108510 10.037751 -v 37.335197 7.154058 8.083447 -v 37.367207 7.124331 6.062584 -v 37.399216 7.094601 4.041723 -v 37.431225 7.064876 2.020860 -v 37.463234 7.035147 0.000000 -v 37.081245 4.304998 7.857507 -v 37.221157 4.391452 5.939371 -v 37.388454 4.507402 4.047314 -v 37.420464 4.477671 2.026452 -v 37.452499 4.447899 0.000000 -v 36.892029 2.115348 3.955562 -v 37.182858 2.047582 2.030749 -v 37.214912 2.017770 0.000000 -v 36.323467 7.746022 11.960131 -v 35.084148 5.721714 11.691292 -v 36.003555 5.094525 9.778038 -v 33.607471 3.790157 11.385965 -v 34.909115 2.835039 9.485566 -v 35.667908 2.367693 7.577384 -v 36.271950 2.145690 5.717442 -v 31.602478 1.631277 10.962500 -v 32.930016 0.704046 9.086754 -v 34.131218 0.010538 7.266258 -v 34.968334 -0.113652 5.555511 -v 35.639095 -0.158133 3.809260 -v 36.067928 -0.045890 2.030749 -v 35.957718 0.056421 0.000000 -v 28.845230 -0.043453 10.381071 -v 30.131302 -1.015334 8.662334 -v 31.653908 -1.140924 7.056657 -v 32.827682 -1.013539 5.375172 -v 33.297836 -0.830322 3.648569 -v 33.630875 -0.821223 1.891142 -v 33.755875 -0.909353 0.000000 -v 25.242256 -1.630489 9.201742 -v 27.159927 -1.330692 8.365163 -v 28.798569 -1.405293 6.834847 -v 30.324669 -1.527117 5.190393 -v 30.984987 -1.471915 3.486860 -v 31.192715 -1.312438 1.745566 -v 31.345444 -1.212310 -0.022011 -v 36.912689 7.317153 8.083447 -v 36.798645 4.554550 5.939371 -v 36.658737 4.468093 7.857507 -v 36.944698 7.287426 6.062584 -v 36.976711 7.257699 4.041723 -v 36.965946 4.670499 4.047314 -v 37.008717 7.227970 2.020860 -v 36.997955 4.640769 2.026452 -v 37.040730 7.198245 0.000000 -v 37.029991 4.610995 0.000000 -v 36.760353 2.210679 2.030749 -v 36.469521 2.278445 3.955562 -v 36.792404 2.180868 0.000000 -v 36.810776 7.271606 10.037751 -v 35.581047 5.257621 9.778038 -v 34.486607 2.998137 9.485566 -v 35.245403 2.530790 7.577384 -v 35.849438 2.308786 5.717442 -v 32.507507 0.867143 9.086754 -v 33.708714 0.173633 7.266258 -v 34.545826 0.049446 5.555511 -v 35.216587 0.004963 3.809260 -v 35.645420 0.117208 2.030749 -v 35.535206 0.219519 0.000000 -v 29.708790 -0.852237 8.662334 -v 31.231400 -0.977827 7.056657 -v 32.405174 -0.850443 5.375172 -v 32.875324 -0.667224 3.648569 -v 33.208366 -0.658127 1.891142 -v 33.333366 -0.746256 0.000000 -v 37.099464 9.165879 -12.125172 -v 36.915100 9.337111 -14.550205 -v 36.948586 9.445372 -14.550205 -v 37.183197 9.436539 -12.125172 -v 37.150681 9.118316 -10.104307 -v 37.355537 8.928061 -2.020860 -v 37.304321 8.975623 -4.041723 -v 37.253113 9.023188 -6.062584 -v 37.201889 9.070754 -8.083447 -v 36.890457 9.557086 -14.550205 -v 37.037880 9.715820 -12.125172 -v 36.774757 9.606809 -14.550205 -v 36.748634 9.840131 -12.125172 -v 36.669266 9.565416 -14.550205 -v 36.484894 9.736646 -12.125172 -v 36.635773 9.457152 -14.550205 -v 36.401161 9.465988 -12.125172 -v 36.693893 9.345439 -14.550205 -v 36.546486 9.186706 -12.125172 -v 36.809601 9.295714 -14.550205 -v 36.835732 9.062397 -12.125172 -v 36.842987 8.997587 -10.104307 -v 36.850243 8.932775 -8.083447 -v 36.857498 8.867962 -6.062584 -v 36.864754 8.803152 -4.041723 -v 36.872025 8.738340 -2.020860 -v 37.233280 7.108510 -10.037751 -v 37.335197 7.154058 -8.083447 -v 37.367207 7.124331 -6.062584 -v 37.399216 7.094601 -4.041723 -v 37.431225 7.064876 -2.020860 -v 37.221157 4.391452 -5.939371 -v 37.081245 4.304998 -7.857507 -v 37.388454 4.507402 -4.047314 -v 37.420464 4.477671 -2.026452 -v 37.182858 2.047582 -2.030749 -v 36.892029 2.115348 -3.955562 -v 36.323467 7.746022 -11.960131 -v 36.003555 5.094525 -9.778038 -v 35.084148 5.721714 -11.691292 -v 34.909115 2.835039 -9.485566 -v 33.607471 3.790157 -11.385965 -v 35.667908 2.367693 -7.577384 -v 36.271950 2.145690 -5.717442 -v 32.930016 0.704046 -9.086754 -v 31.602478 1.631277 -10.962500 -v 34.131218 0.010538 -7.266258 -v 34.968334 -0.113652 -5.555511 -v 35.639095 -0.158133 -3.809260 -v 36.067928 -0.045890 -2.030749 -v 30.131302 -1.015334 -8.662334 -v 28.845230 -0.043453 -10.381071 -v 31.653908 -1.140924 -7.056657 -v 32.827682 -1.013539 -5.375172 -v 33.297836 -0.830322 -3.648569 -v 33.630875 -0.821223 -1.891142 -v 27.159927 -1.330692 -8.365163 -v 25.242256 -1.630489 -9.201742 -v 28.798569 -1.405293 -6.834847 -v 30.324669 -1.527117 -5.190393 -v 30.984987 -1.471915 -3.486860 -v 31.192715 -1.312438 -1.745566 -v 36.658737 4.468093 -7.857507 -v 36.798645 4.554550 -5.939371 -v 36.912689 7.317153 -8.083447 -v 36.965946 4.670499 -4.047314 -v 36.976711 7.257699 -4.041723 -v 36.944698 7.287426 -6.062584 -v 36.997955 4.640769 -2.026452 -v 37.008717 7.227970 -2.020860 -v 36.469521 2.278445 -3.955562 -v 36.760353 2.210679 -2.030749 -v 36.810776 7.271606 -10.037751 -v 35.581047 5.257621 -9.778038 -v 34.486607 2.998137 -9.485566 -v 35.245403 2.530790 -7.577384 -v 35.849438 2.308786 -5.717442 -v 32.507507 0.867143 -9.086754 -v 33.708714 0.173633 -7.266258 -v 34.545826 0.049446 -5.555511 -v 35.216587 0.004963 -3.809260 -v 35.645420 0.117208 -2.030749 -v 29.708790 -0.852237 -8.662334 -v 31.231400 -0.977827 -7.056657 -v 32.405174 -0.850443 -5.375172 -v 32.875324 -0.667224 -3.648569 -v 33.208366 -0.658127 -1.891142 -v -25.342682 39.050133 12.631252 -v -26.800455 41.402733 15.170297 -v -26.837248 41.324783 15.223574 -v -25.434660 38.855247 12.764452 -v -17.744377 26.753054 0.677289 -v -17.560419 27.142822 0.410891 -v -9.376750 14.896337 -11.201438 -v -9.284773 15.091215 -11.334633 -v -7.530965 12.652036 -13.588774 -v -7.567755 12.574083 -13.535497 -v -25.106192 39.202751 12.637131 -v -26.705860 41.463783 15.172644 -v -17.087444 27.448063 0.422648 -v -9.048284 15.243841 -11.328759 -v -7.436370 12.713083 -13.586423 -v -24.863726 39.223705 12.778642 -v -26.608875 41.472164 15.229251 -v -16.602512 27.489975 0.705667 -v -8.805818 15.264791 -11.187246 -v -7.339383 12.721467 -13.529819 -v -24.757313 39.100723 12.972888 -v -26.566311 41.422974 15.306951 -v -16.389688 27.244003 1.094167 -v -8.699405 15.141807 -10.992999 -v -7.296819 12.672277 -13.452118 -v -24.849295 38.905838 13.106089 -v -26.603102 41.345016 15.360229 -v -16.573647 26.854233 1.360564 -v -8.791386 14.946925 -10.859798 -v -7.333611 12.594320 -13.398837 -v -25.085781 38.753212 13.100214 -v -26.697697 41.283970 15.357880 -v -17.125172 26.520523 1.324638 -v -9.106422 14.765837 -10.889849 -v -7.428205 12.533272 -13.401189 -v -25.328247 38.732258 12.958700 -v -26.794685 41.275585 15.301274 -v -17.531553 26.507080 1.065789 -v -9.270339 14.773350 -11.007191 -v -7.525191 12.524889 -13.457792 -v -14.838583 7.725491 16.392136 -v -13.115796 20.643181 -4.782604 -v -11.111109 17.704510 -7.836226 -v -15.120483 23.581854 -1.728984 -v -21.105474 32.636868 7.212426 -v -19.115322 29.578697 4.268532 -v -23.095627 35.695042 10.156319 -v -17.850927 23.415936 11.145543 -v -15.971910 15.023872 13.064692 -v -20.878242 31.325497 10.889566 -v -22.710337 35.141632 11.368248 -v -19.020594 27.498768 10.741400 -v -16.675705 19.308691 11.771263 -v -15.242205 10.728598 14.661383 -v -11.429826 11.979118 4.484833 -v -12.855085 9.611444 10.086077 -v -10.146607 13.783422 -3.108587 -v -11.113446 17.269522 -0.589503 -v -12.173586 19.546953 1.645432 -v -14.496117 22.736921 3.615596 -v -16.618717 25.814238 5.499027 -v -18.831337 28.858936 7.356281 -v -20.830013 31.984983 9.160530 -v -13.958706 13.246996 10.484770 -v -15.075603 15.880554 10.990260 -v -12.059523 15.670089 5.786165 -v -13.219246 18.188381 6.546744 -v -14.729614 21.266827 7.743087 -v -16.833500 24.401178 9.291769 -v -12.997808 13.246996 10.484770 -v -14.114704 15.880554 10.990260 -v -13.768716 21.266827 7.743087 -v -15.872602 24.401178 9.291769 -v -12.258348 18.188381 6.546744 -v -11.098623 15.670089 5.786165 -v -10.152548 17.269522 -0.589503 -v -11.212686 19.546953 1.645432 -v -13.535219 22.736921 3.615596 -v -15.657820 25.814238 5.499027 -v -19.869114 31.984983 9.160530 -v -17.870438 28.858936 7.356281 -v -3.006491 2.835144 -1.792495 -v -3.299435 2.835144 -2.499723 -v -3.299435 3.340722 -2.499723 -v -2.683913 3.340722 -1.013724 -v -2.607214 28.440485 -0.828560 -v -2.795753 28.916454 -1.283730 -v -2.984291 29.392422 -1.738900 -v -3.060988 31.134907 -1.924065 -v -3.197826 31.301920 -2.254421 -v -3.197826 31.705118 -2.254421 -v -2.864999 31.538105 -1.450902 -v -2.788301 30.035196 -1.265738 -v -2.522967 30.068596 -0.625167 -v -1.521538 2.835144 -1.792497 -v -1.228595 2.835144 -2.499723 -v -1.228595 3.340722 -2.499723 -v -1.844116 3.340722 -1.013724 -v -1.920815 28.440485 -0.828560 -v -2.149614 28.440485 -0.828560 -v -2.378415 28.440485 -0.828560 -v -3.625614 0.933175 -14.862261 -v -3.396813 0.933175 -14.862257 -v -3.208276 1.409142 -15.317429 -v -3.562768 1.409142 -15.317429 -v -1.543738 29.392422 -1.738900 -v -1.467041 31.134907 -1.924065 -v -1.330203 31.301920 -2.254421 -v -1.330203 31.705118 -2.254421 -v -1.663031 31.538105 -1.450902 -v -1.739728 30.035196 -1.265738 -v -2.005062 30.068596 -0.625167 -v -1.732276 28.916454 -1.283730 -v -2.441260 28.916454 -1.283730 -v -2.086768 28.916454 -1.283730 -v -10.505260 1.409189 -15.317495 -v -10.859753 1.409189 -15.317495 -v -10.671214 0.933218 -14.862325 -v -10.442413 0.933218 -14.862325 -v -7.310413 0.933123 -14.862221 -v -7.081613 0.933123 -14.862221 -v -7.018765 1.409093 -15.317392 -v -7.373259 1.409093 -15.317392 -v 12.725510 5.931142 -1.792495 -v 12.432567 5.931142 -2.499723 -v 12.432567 6.436721 -2.499723 -v 13.048086 6.436721 -1.013724 -v 13.124784 24.624481 -0.828560 -v 12.936247 25.100452 -1.283730 -v 12.747708 25.576418 -1.738900 -v 12.671010 27.318907 -1.924065 -v 12.534173 27.485916 -2.254421 -v 12.534173 27.889114 -2.254421 -v 12.867002 27.722105 -1.450902 -v 12.943699 26.219193 -1.265738 -v 13.209031 26.252592 -0.625167 -v 14.210463 5.931142 -1.792497 -v 14.503405 5.931142 -2.499723 -v 14.503405 6.436721 -2.499723 -v 13.887884 6.436721 -1.013724 -v 13.811186 24.624481 -0.828560 -v 13.467985 24.624481 -0.828560 -v 13.999723 25.100452 -1.283730 -v 14.188262 25.576418 -1.738900 -v 13.467985 25.100452 -1.283730 -v 14.264960 27.318907 -1.924065 -v 14.401797 27.485916 -2.254421 -v 14.401797 27.889114 -2.254421 -v 14.068970 27.722105 -1.450902 -v 13.992271 26.219193 -1.265738 -v 13.726938 26.252592 -0.625167 -v 8.292243 4.554726 -13.105604 -v 8.480783 4.078758 -12.650431 -v 8.823982 4.078758 -12.650431 -v 8.823982 4.554726 -13.105604 -v 11.451985 4.078778 -12.650445 -v 11.795187 4.078778 -12.650445 -v 11.983724 4.554746 -13.105617 -v 11.451985 4.554746 -13.105617 -v -19.242489 8.343143 -1.792495 -v -19.535431 8.343143 -2.499723 -v -19.535431 8.848721 -2.499723 -v -18.919910 8.848721 -1.013724 -v -18.843212 27.036480 -0.828560 -v -19.031750 27.512449 -1.283730 -v -19.220287 27.988419 -1.738900 -v -19.296986 29.730904 -1.924065 -v -19.433825 29.897915 -2.254421 -v -19.433825 30.301113 -2.254421 -v -19.100996 30.134102 -1.450902 -v -19.024298 28.631191 -1.265738 -v -18.758965 28.664593 -0.625167 -v -17.757534 8.343143 -1.792497 -v -17.464592 8.343143 -2.499723 -v -17.464592 8.848721 -2.499723 -v -18.080112 8.848721 -1.013724 -v -18.156811 27.036480 -0.828560 -v -18.500011 27.036480 -0.828560 -v -17.968273 27.512449 -1.283730 -v -17.779734 27.988419 -1.738900 -v -18.500011 27.512449 -1.283730 -v -17.703035 29.730904 -1.924065 -v -17.566198 29.897915 -2.254421 -v -17.566198 30.301113 -2.254421 -v -17.899027 30.134102 -1.450902 -v -17.975723 28.631191 -1.265738 -v -18.241058 28.664593 -0.625167 -v -21.299751 6.534726 -13.105604 -v -21.111214 6.058758 -12.650431 -v -20.768013 6.058758 -12.650431 -v -20.768013 6.534726 -13.105604 -v -18.140011 6.058776 -12.650445 -v -17.796808 6.058776 -12.650445 -v -17.608273 6.534745 -13.105617 -v -18.140011 6.534745 -13.105617 -vn 0.000000 -0.691141 0.722719 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -0.691139 0.722722 -vn 0.000000 -0.691141 0.722721 -vn 0.000000 0.454456 0.890769 -vn 0.951234 -0.138151 0.275803 -vn 0.000000 -0.454457 -0.890769 -vn -0.903964 0.048238 -0.424879 -vn 0.000000 -0.454453 -0.890771 -vn -0.995330 0.080548 0.053198 -vn 0.000000 0.454454 0.890770 -vn 0.960300 -0.165937 -0.224251 -vn 0.000000 -0.454452 -0.890771 -vn -0.975849 0.069272 -0.207173 -vn 0.000000 0.454452 0.890771 -vn 0.986498 -0.160658 0.031790 -vn 0.796052 -0.294117 0.528958 -vn -0.073842 -0.027344 0.996895 -vn 1.000000 0.000000 0.000000 -vn -0.003044 0.998421 -0.056087 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000920 0.999353 -0.035944 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.999404 -0.034523 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.000715 -0.926299 -0.376788 -vn 0.780323 0.625377 -0.000051 -vn 0.233171 0.050419 -0.971128 -vn 0.815205 0.578105 -0.035150 -vn 0.068294 -0.005991 -0.997647 -vn 0.000000 0.000000 1.000000 -vn -0.960859 0.277039 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -0.691143 0.722718 -vn 0.000000 -0.691141 0.722720 -vn 0.000000 -0.498728 -0.866759 -vn -0.996095 0.061022 -0.063811 -vn 0.000000 0.498728 0.866759 -vn 0.961371 -0.201950 -0.187033 -vn -0.926465 -0.007117 -0.376314 -vn 0.000000 0.498727 0.866759 -vn 0.979784 -0.138269 0.144587 -vn 0.000000 -0.498727 -0.866759 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -0.691144 0.722717 -vn 0.000000 -0.691141 0.722720 -vn 0.000000 -0.490952 -0.871187 -vn -0.999878 -0.010796 0.011290 -vn 0.000000 0.490953 0.871186 -vn 0.956749 -0.130192 -0.260156 -vn -0.946483 -0.074628 -0.314007 -vn 0.000000 0.490953 0.871186 -vn 0.995191 -0.067699 0.070793 -vn 0.000000 -0.490953 -0.871186 -vn 0.071989 -0.997405 0.000000 -vn 0.828488 0.560007 0.000000 -vn -0.828491 -0.560002 0.000000 -vn 0.796052 -0.294117 -0.528958 -vn -0.073842 -0.027344 -0.996895 -vn 1.000000 0.000000 0.000000 -vn -0.003044 0.998421 0.056087 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000920 0.999353 0.035944 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.999404 0.034523 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.000715 -0.926299 0.376788 -vn 0.780323 0.625377 0.000051 -vn 0.233171 0.050419 0.971128 -vn 0.815205 0.578105 0.035150 -vn 0.068294 -0.005991 0.997647 -vn 0.000000 0.000000 -1.000000 -vn -0.960859 0.277039 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.107249 -0.051603 0.992892 -vn 0.000000 0.000000 -1.000000 -vn 0.107249 -0.051603 -0.992892 -vn 0.000000 0.000000 -1.000000 -vn 0.047847 -0.027643 -0.998472 -vn 0.000000 0.000000 1.000000 -vn 0.047847 -0.027643 0.998472 -vn 0.000000 0.000000 1.000000 -vn 0.110211 -0.053028 0.992493 -vn 0.000000 0.000000 -1.000000 -vn 0.110211 -0.053028 -0.992493 -vn 0.000000 0.000000 -1.000000 -vn 0.049190 -0.028414 -0.998385 -vn 0.000000 0.000000 1.000000 -vn 0.049190 -0.028414 0.998385 -vn 0.000000 0.000000 1.000000 -vn 0.057338 -0.146135 0.987602 -vn 0.000000 0.000000 -1.000000 -vn 0.057338 -0.146135 -0.987602 -vn -0.428213 0.638920 0.639073 -vn 0.428218 -0.638908 -0.639082 -vn 0.000000 -0.691141 -0.722720 -vn 0.000000 -0.691139 -0.722722 -vn 0.000000 -0.691141 -0.722720 -vn 0.000000 0.454456 -0.890769 -vn 0.951234 -0.138151 -0.275803 -vn 0.000000 -0.454457 0.890769 -vn -0.903964 0.048238 0.424879 -vn 0.000000 -0.454453 0.890770 -vn -0.995330 0.080548 -0.053198 -vn 0.000000 0.454454 -0.890770 -vn 0.960300 -0.165937 0.224251 -vn 0.000000 -0.454452 0.890771 -vn -0.975849 0.069272 0.207173 -vn 0.000000 0.454452 -0.890771 -vn 0.986498 -0.160658 -0.031790 -vn 0.000000 -0.691143 -0.722718 -vn 0.000000 -0.691141 -0.722720 -vn 0.000000 -0.498728 0.866759 -vn -0.996095 0.061022 0.063811 -vn 0.000000 0.498728 -0.866759 -vn 0.961371 -0.201950 0.187033 -vn -0.926465 -0.007117 0.376314 -vn 0.000000 0.498727 -0.866759 -vn 0.979784 -0.138270 -0.144587 -vn 0.000000 -0.498727 0.866759 -vn 0.000000 -0.691144 -0.722717 -vn 0.000000 -0.691141 -0.722720 -vn 0.000000 -0.490952 0.871187 -vn -0.999878 -0.010796 -0.011290 -vn 0.000000 0.490953 -0.871186 -vn 0.956749 -0.130192 0.260156 -vn -0.946483 -0.074629 0.314007 -vn 0.000000 0.490952 -0.871186 -vn 0.995191 -0.067699 -0.070793 -vn 0.000000 -0.490953 0.871186 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.382683 0.000000 -0.923880 -vn -0.382684 0.000000 -0.923879 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923879 0.000000 0.382684 -vn -0.923879 0.000000 0.382684 -vn -0.382683 0.000000 0.923880 -vn -0.382683 0.000000 0.923880 -vn 0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn -0.382684 0.000000 -0.923879 -vn 0.382683 0.000000 -0.923880 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.923879 0.000000 0.382684 -vn 0.923879 0.000000 0.382684 -vn 0.923879 0.000000 -0.382684 -vn 0.923879 0.000000 -0.382684 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.382684 0.000000 0.923880 -vn -0.382684 0.000000 0.923880 -vn 0.382683 0.000000 0.923880 -vn 0.382683 0.000000 0.923880 -vn -0.382684 0.000000 -0.923880 -vn -0.382684 0.000000 -0.923880 -vn 0.382683 0.000000 -0.923880 -vn 0.382683 0.000000 -0.923880 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.923850 0.007985 0.382671 -vn 0.848857 -0.394732 0.351608 -vn 0.825591 -0.448837 0.341971 -vn 0.917828 -0.114267 0.380177 -vn 0.923850 0.007985 -0.382671 -vn 0.848857 -0.394732 -0.351608 -vn 0.825591 -0.448837 -0.341971 -vn 0.917828 -0.114267 -0.380177 -vn -0.923850 0.007985 -0.382671 -vn -0.848857 -0.394732 -0.351608 -vn -0.825592 -0.448837 -0.341971 -vn -0.917828 -0.114266 -0.380177 -vn -0.923850 0.007985 0.382671 -vn -0.848857 -0.394732 0.351608 -vn -0.825592 -0.448837 0.341971 -vn -0.917828 -0.114266 0.380177 -vn -0.382671 0.007985 0.923850 -vn -0.465039 -0.258222 0.846794 -vn -0.341971 -0.448837 0.825591 -vn -0.380177 -0.114267 0.917828 -vn 0.382671 0.007985 0.923850 -vn 0.465039 -0.258221 0.846794 -vn 0.341971 -0.448837 0.825591 -vn 0.380177 -0.114267 0.917828 -vn 0.265892 -0.719195 0.641920 -vn -0.265892 -0.719195 0.641919 -vn 0.000000 0.007377 0.999973 -vn 0.000000 0.007377 0.999973 -vn 0.000000 -0.691141 0.722720 -vn 0.000000 -0.691141 0.722720 -vn -0.382671 0.007985 -0.923850 -vn -0.465039 -0.258221 -0.846794 -vn -0.265892 -0.719195 -0.641920 -vn -0.341971 -0.448837 -0.825591 -vn -0.380177 -0.114267 -0.917828 -vn 0.382671 0.007985 -0.923850 -vn 0.465039 -0.258221 -0.846794 -vn 0.000000 0.007377 -0.999973 -vn 0.000000 0.007377 -0.999973 -vn 0.341971 -0.448837 -0.825592 -vn 0.380177 -0.114267 -0.917828 -vn 0.265892 -0.719194 -0.641920 -vn 0.000000 -0.691141 -0.722720 -vn 0.000000 -0.691141 -0.722720 -vn 0.390974 -0.906042 0.161947 -vn 0.390974 -0.906042 0.161947 -vn 0.390974 -0.906042 -0.161950 -vn 0.390974 -0.906042 -0.161950 -vn -0.390973 -0.906042 -0.161949 -vn -0.390973 -0.906042 -0.161949 -vn -0.390973 -0.906042 0.161949 -vn -0.390973 -0.906042 0.161949 -vn -0.161946 -0.906042 0.390975 -vn -0.161946 -0.906042 0.390975 -vn 0.161947 -0.906043 0.390973 -vn 0.161947 -0.906043 0.390973 -vn -0.161946 -0.906042 -0.390975 -vn -0.161946 -0.906042 -0.390975 -vn 0.161946 -0.906042 -0.390976 -vn 0.161946 -0.906042 -0.390976 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.382684 0.000000 0.923879 -vn -0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn -0.382684 0.000000 -0.923879 -vn -0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn -0.174230 0.982057 -0.072168 -vn -0.174230 0.982057 -0.072168 -vn -0.174230 0.982057 0.072169 -vn -0.174230 0.982057 0.072169 -vn 0.174230 0.982057 0.072169 -vn 0.174230 0.982057 0.072169 -vn 0.174230 0.982057 -0.072169 -vn 0.174230 0.982057 -0.072169 -vn 0.072168 0.982057 -0.174231 -vn 0.072168 0.982057 -0.174231 -vn -0.072168 0.982057 -0.174229 -vn -0.072168 0.982057 -0.174229 -vn 0.072168 0.982057 0.174231 -vn 0.072168 0.982057 0.174231 -vn -0.072168 0.982057 0.174231 -vn -0.072168 0.982057 0.174231 -vn -0.915772 0.132185 -0.379326 -vn -0.915772 0.132185 -0.379326 -vn -0.915772 0.132185 0.379326 -vn -0.915772 0.132185 0.379326 -vn 0.915773 0.132185 0.379325 -vn 0.915773 0.132185 0.379325 -vn 0.915773 0.132185 -0.379325 -vn 0.915773 0.132185 -0.379325 -vn 0.379326 0.132185 -0.915772 -vn 0.379326 0.132185 -0.915772 -vn -0.379325 0.132185 -0.915773 -vn -0.379325 0.132185 -0.915773 -vn 0.379326 0.132185 0.915772 -vn 0.379326 0.132185 0.915772 -vn -0.379325 0.132185 0.915773 -vn -0.379325 0.132185 0.915773 -vn 0.044453 0.998842 0.018413 -vn 0.044453 0.998842 0.018413 -vn 0.044453 0.998842 -0.018413 -vn 0.044453 0.998842 -0.018413 -vn -0.044453 0.998842 -0.018413 -vn -0.044453 0.998842 -0.018413 -vn -0.044453 0.998842 0.018413 -vn -0.044453 0.998842 0.018413 -vn -0.018413 0.998842 0.044452 -vn -0.018413 0.998842 0.044452 -vn 0.018413 0.998842 0.044452 -vn 0.018413 0.998842 0.044452 -vn -0.018413 0.998842 -0.044452 -vn -0.018413 0.998842 -0.044452 -vn 0.018413 0.998842 -0.044452 -vn 0.018413 0.998842 -0.044452 -vn 0.923772 0.015264 0.382639 -vn 0.923772 0.015264 0.382639 -vn 0.923772 0.015264 -0.382639 -vn 0.923772 0.015264 -0.382639 -vn 0.382639 0.015264 -0.923772 -vn -0.382638 0.015264 -0.923772 -vn -0.923772 0.015264 -0.382640 -vn -0.923772 0.015264 -0.382640 -vn -0.923772 0.015264 0.382640 -vn -0.923772 0.015264 0.382640 -vn -0.382638 0.015264 0.923772 -vn -0.382638 0.015264 0.923772 -vn 0.382639 0.015264 0.923772 -vn 0.382639 0.015264 0.923772 -vn -0.382638 0.015264 -0.923772 -vn 0.382639 0.015264 -0.923772 -vn -0.000498 -1.000000 0.000000 -vn -0.000978 -1.000000 0.000000 -vn -0.000978 -0.999829 -0.018484 -vn -0.000498 -0.999831 -0.018381 -vn 0.000342 -0.999875 -0.015805 -vn 0.000342 -1.000000 0.000000 -vn 0.000649 -0.999930 -0.011797 -vn 0.000649 -1.000000 0.000000 -vn 0.000644 -0.999968 -0.007972 -vn 0.000645 -1.000000 0.000000 -vn -0.000134 -0.999995 -0.003267 -vn -0.000134 -1.000000 0.000000 -vn -0.000594 -0.999997 -0.002483 -vn -0.000594 -1.000000 0.000000 -vn 0.000465 -0.999988 -0.004895 -vn 0.000465 -1.000000 0.000000 -vn 0.000285 -0.999980 -0.006340 -vn 0.000285 -1.000000 0.000000 -vn 0.081838 -0.996646 0.000000 -vn 0.081835 -0.996609 -0.008551 -vn 0.344185 -0.938871 0.007579 -vn 0.344195 -0.938898 0.000000 -vn 0.605586 -0.790519 0.091348 -vn 0.608129 -0.793838 0.000000 -vn 0.760646 -0.613146 0.213235 -vn 0.778552 -0.627580 0.000000 -vn 0.848223 -0.481433 0.220772 -vn 0.869682 -0.493613 0.000000 -vn 0.808292 -0.581043 0.095151 -vn 0.811976 -0.583691 0.000000 -vn 0.668057 -0.744110 -0.000355 -vn 0.668057 -0.744110 0.000000 -vn 0.726716 -0.686915 -0.005694 -vn 0.726727 -0.686926 0.000000 -vn 0.955276 -0.295714 0.000866 -vn 0.955276 -0.295714 0.000000 -vn 0.999999 0.000260 -0.001367 -vn 1.000000 0.000260 0.000000 -vn -0.000498 -0.999831 0.018381 -vn -0.000978 -0.999829 0.018484 -vn 0.000342 -0.999875 0.015805 -vn 0.000649 -0.999930 0.011797 -vn 0.000644 -0.999968 0.007972 -vn -0.000134 -0.999995 0.003267 -vn -0.000594 -0.999997 0.002483 -vn 0.000465 -0.999988 0.004895 -vn 0.000285 -0.999980 0.006340 -vn 0.344185 -0.938871 -0.007579 -vn 0.081835 -0.996609 0.008551 -vn 0.605586 -0.790519 -0.091348 -vn 0.760646 -0.613146 -0.213235 -vn 0.848223 -0.481433 -0.220772 -vn 0.808292 -0.581043 -0.095151 -vn 0.668057 -0.744110 0.000355 -vn 0.726716 -0.686915 0.005694 -vn 0.955276 -0.295714 -0.000866 -vn 0.999999 0.000260 0.001367 -vn 0.532643 0.846199 -0.015426 -vn 0.532707 0.846300 0.000000 -vn 0.532643 0.846199 -0.015426 -vn 0.532707 0.846300 0.000000 -vn 0.532643 0.846199 0.015426 -vn 0.532643 0.846199 0.015426 -vn -0.311057 0.950245 0.016675 -vn -0.311100 0.950377 0.000000 -vn -0.311057 0.950245 0.016675 -vn -0.311100 0.950377 0.000000 -vn -0.311057 0.950245 -0.016675 -vn -0.311057 0.950245 -0.016675 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn -0.001558 0.003019 0.999994 -vn -0.005048 0.008466 0.999951 -vn -0.008364 0.009773 0.999917 -vn -0.006180 0.002751 0.999977 -vn 0.031027 -0.045147 0.998498 -vn 0.083067 -0.146694 0.985688 -vn 0.171496 -0.296152 0.939618 -vn 0.379549 -0.370895 0.847573 -vn 0.612488 -0.633300 0.473064 -vn -0.908937 0.181562 0.375326 -vn -0.980714 0.195447 0.000000 -vn -0.926840 0.365132 0.087447 -vn -0.999916 -0.012961 0.000000 -vn 0.001662 -0.284907 0.958554 -vn -0.002601 -0.611459 0.791272 -vn -0.004739 -0.614960 0.788544 -vn -0.001656 -0.620166 0.784469 -vn -0.002364 -0.624637 0.780912 -vn -0.003943 -0.628088 0.778132 -vn -0.002765 -0.630722 0.776004 -vn 0.001016 -0.631656 0.775248 -vn 0.055700 -0.627733 0.776433 -vn 0.226451 -0.593755 0.772124 -vn 0.431596 -0.502047 0.749449 -vn 0.559688 -0.398391 0.726660 -vn 0.640943 -0.317266 0.698952 -vn 0.637526 -0.529415 0.559715 -vn 0.328249 -0.731406 0.597743 -vn 0.503599 -0.691202 0.518294 -vn -0.000622 -0.957209 0.289396 -vn -0.011620 -0.958525 0.284770 -vn -0.016400 -0.961439 0.274527 -vn -0.009060 -0.964396 0.264307 -vn -0.007042 -0.966195 0.257717 -vn -0.011348 -0.967312 0.253337 -vn -0.008201 -0.968389 0.249311 -vn 0.001985 -0.968728 0.248118 -vn 0.099841 -0.959526 0.263329 -vn 0.350932 -0.896456 0.270578 -vn 0.637211 -0.736703 0.226343 -vn 0.810509 -0.563456 0.159977 -vn 0.898578 -0.431621 0.079123 -vn -0.032745 -0.924632 0.379451 -vn -0.027915 -0.929989 0.366525 -vn -0.025304 -0.933217 0.358421 -vn -0.021026 -0.931393 0.363408 -vn -0.013125 -0.931310 0.363990 -vn -0.017126 -0.929639 0.368073 -vn -0.009906 -0.925524 0.378560 -vn 0.017727 -0.913313 0.406872 -vn 0.138306 -0.872253 0.469091 -vn 0.350660 -0.781718 0.515709 -vn 0.604752 -0.636012 0.479337 -vn 0.779066 -0.492478 0.387970 -vn 0.869206 -0.411663 0.273889 -vn 0.682096 -0.710441 0.173255 -vn -0.088118 -0.757908 0.646383 -vn -0.051298 -0.773044 0.632274 -vn -0.029597 -0.786952 0.616304 -vn -0.033228 -0.783410 0.620617 -vn -0.020186 -0.775990 0.630422 -vn -0.005117 -0.761370 0.648297 -vn 0.018569 -0.730812 0.682326 -vn 0.057344 -0.685707 0.725615 -vn 0.162821 -0.645857 0.745894 -vn 0.327546 -0.624718 0.708831 -vn 0.568254 -0.552002 0.610230 -vn 0.745434 -0.452974 0.489023 -vn 0.828394 -0.409274 0.382436 -vn 0.665243 -0.692669 0.278679 -vn -0.126585 -0.324874 0.937248 -vn -0.083031 -0.336373 0.938061 -vn -0.049527 -0.354987 0.933559 -vn -0.041844 -0.357783 0.932867 -vn -0.021024 -0.344348 0.938607 -vn 0.019876 -0.328586 0.944265 -vn 0.058985 -0.312457 0.948099 -vn 0.081012 -0.303002 0.949540 -vn 0.135971 -0.321898 0.936960 -vn 0.243140 -0.369569 0.896829 -vn 0.485396 -0.368969 0.792624 -vn 0.682836 -0.329533 0.652030 -vn 0.768168 -0.313531 0.558226 -vn 0.619534 -0.642008 0.451667 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.004050 -0.001464 0.999991 -vn 0.004050 -0.001464 0.999991 -vn 0.008099 -0.002928 0.999963 -vn 0.008099 -0.002928 0.999963 -vn -0.155548 0.179096 0.971457 -vn -0.182194 0.240699 0.953346 -vn 0.382114 -0.914355 0.133959 -vn 0.484499 -0.866370 0.121091 -vn 0.387995 -0.898366 0.205909 -vn 0.343405 -0.880083 0.327913 -vn 0.423232 -0.483997 0.765912 -vn 0.138085 -0.809093 0.571228 -vn -0.443965 0.883319 0.150473 -vn -0.278326 0.947710 0.156141 -vn -0.028994 0.982343 0.184829 -vn 0.180907 0.973766 0.138031 -vn 0.112474 -0.299001 0.947601 -vn -0.234810 -0.551473 0.800463 -vn 0.058509 -0.134104 0.989239 -vn -0.429138 -0.313067 0.847248 -vn 0.285194 0.197417 0.937918 -vn 0.210505 0.971282 0.110905 -vn 0.554932 0.600983 0.575212 -vn 0.408425 0.890099 0.202271 -vn 0.061938 0.990093 0.126015 -vn -0.268469 0.954312 0.131197 -vn 0.429959 0.714252 0.552250 -vn 0.143742 0.770267 -0.621311 -vn 0.232969 0.763400 -0.602449 -vn 0.061981 0.909120 -0.411898 -vn -0.156425 0.952959 -0.259617 -vn -0.471350 0.868971 -0.150731 -vn -0.576295 0.726086 0.375077 -vn -0.865920 0.500183 0.000000 -vn -0.989994 0.141112 0.000000 -vn -0.460187 0.872346 -0.165047 -vn -0.205437 0.978670 0.000000 -vn -0.138800 0.934428 -0.327991 -vn 0.048613 0.998818 0.000000 -vn 0.467845 0.883810 0.000000 -vn 0.384094 0.920149 -0.076134 -vn 0.551719 0.832347 -0.052967 -vn 0.366455 0.930436 0.000000 -vn 0.428842 0.893311 -0.134496 -vn -0.037439 0.880778 -0.472048 -vn 0.189683 0.750419 -0.633160 -vn 0.214020 0.756073 -0.618506 -vn -0.226937 0.607334 -0.761344 -vn -0.411998 0.911184 0.001160 -vn -0.411998 0.911185 0.000000 -vn 0.556969 -0.013670 0.830421 -vn 0.382048 0.076277 0.920989 -vn 0.500121 0.035416 0.865231 -vn 0.405430 0.172047 0.897790 -vn 0.333241 0.015263 0.942718 -vn 0.297561 0.153827 0.942229 -vn 0.123103 0.109724 0.986309 -vn 0.145216 -0.018635 0.989224 -vn 0.110890 -0.030335 0.993370 -vn 0.095854 0.135837 0.986083 -vn 0.070909 -0.018533 0.997311 -vn 0.049046 0.176580 0.983064 -vn 0.040821 0.045228 0.998142 -vn 0.007370 0.115608 0.993268 -vn 0.004079 0.088693 0.996051 -vn 0.013448 0.082595 0.996492 -vn 0.004596 0.101518 0.994823 -vn -0.015378 0.105704 0.994279 -vn -0.029288 0.098868 0.994669 -vn -0.044604 0.105798 0.993387 -vn -0.032949 0.131347 0.990789 -vn -0.042621 0.067021 0.996841 -vn -0.045682 0.237634 0.970280 -vn -0.072399 0.073942 0.994631 -vn -0.093170 0.254066 0.962689 -vn -0.105730 0.094396 0.989904 -vn -0.125141 0.258127 0.957972 -vn 0.304162 0.023810 0.952323 -vn 0.270011 0.041486 0.961963 -vn 0.374880 0.143776 0.915857 -vn 0.265584 0.072621 0.961349 -vn 0.159298 0.154959 0.974993 -vn 0.298003 0.116049 0.947484 -vn 0.112454 0.305711 0.945460 -vn 0.234602 0.113939 0.965391 -vn 0.320457 0.197980 0.926343 -vn 0.136348 0.119007 0.983487 -vn 0.151168 0.093855 0.984042 -vn 0.146094 0.075611 0.986377 -vn 0.000000 0.327190 0.944959 -vn 0.017516 0.256234 0.966456 -vn -0.027045 0.261613 0.964794 -vn 0.017531 0.108058 0.993990 -vn 0.020891 0.168337 0.985508 -vn 0.031172 0.086795 0.995738 -vn -0.018860 0.116248 0.993041 -vn -0.012559 0.088054 0.996037 -vn 0.000025 0.031657 0.999499 -vn 0.086871 0.090782 0.992075 -vn 0.116889 0.165352 0.979283 -vn 0.053620 0.110638 0.992413 -vn 0.116889 0.165352 0.979283 -vn 0.009729 0.173236 0.984832 -vn -0.060523 0.204549 0.976984 -vn -0.083714 0.255371 0.963212 -vn 0.035971 0.252341 0.966969 -vn -0.002250 0.365469 0.930821 -vn -0.135289 0.847974 0.512481 -vn 0.011574 0.875069 0.483860 -vn 0.029526 0.442508 0.896279 -vn 0.026044 0.265581 0.963737 -vn 0.000000 0.279250 0.960218 -vn -0.006966 0.048920 0.998778 -vn -0.004497 0.140224 0.990110 -vn -0.004148 0.141952 0.989865 -vn -0.004147 0.141439 0.989938 -vn -0.017246 0.127797 0.991650 -vn -0.026184 0.030281 0.999198 -vn 0.016002 0.277204 0.960678 -vn 0.016002 0.277204 0.960678 -vn -0.012361 0.268507 0.963198 -vn -0.012361 0.268507 0.963198 -vn -0.023383 0.234430 0.971852 -vn 0.000000 0.218824 0.975764 -vn 0.000185 0.310974 0.950418 -vn 0.000184 0.313300 0.949654 -vn 0.000000 0.313741 0.949509 -vn 0.000000 0.310542 0.950560 -vn -0.009659 0.410519 0.911801 -vn 0.209958 0.810995 0.546081 -vn 0.345868 0.556792 0.755221 -vn -0.089097 0.206623 0.974355 -vn 0.174510 0.153230 0.972660 -vn -0.081234 0.271336 0.959051 -vn -0.086316 0.271239 0.958634 -vn -0.087111 0.239852 0.966893 -vn -0.132231 0.332916 0.933639 -vn -0.119249 0.254206 0.959770 -vn -0.163495 0.235513 0.958020 -vn -0.088396 0.283924 0.954763 -vn 0.109747 0.210021 0.971518 -vn -0.070976 0.018118 0.997313 -vn -0.047399 -0.020257 0.998671 -vn -0.094775 -0.019741 0.995303 -vn -0.063320 0.024917 0.997682 -vn 0.000000 0.113789 0.993505 -vn -0.014780 0.060170 0.998079 -vn -0.014779 -0.045290 0.998865 -vn 0.000000 -0.096813 0.995303 -vn 0.000000 0.398474 0.917180 -vn -0.047249 0.264787 0.963149 -vn -0.078847 -0.011689 0.996818 -vn 0.014963 0.343466 0.939046 -vn 0.014963 0.343466 0.939046 -vn -0.013305 0.124636 0.992113 -vn -0.065431 0.131200 0.989194 -vn -0.020415 0.177472 0.983914 -vn -0.010960 0.166519 0.985977 -vn -0.065852 0.234307 0.969930 -vn 0.125538 0.244740 0.961428 -vn -0.048087 -0.016246 0.998711 -vn -0.110254 0.380000 0.918392 -vn -0.116765 -0.117675 0.986163 -vn -0.114352 -0.366303 0.923442 -vn -0.096526 -0.375230 0.921892 -vn 0.148874 0.354954 -0.922954 -vn 0.264827 0.332418 -0.905188 -vn -0.984186 -0.159692 0.076660 -vn -0.703782 -0.325892 0.631257 -vn -0.753180 -0.142612 0.642169 -vn -0.694786 0.403993 0.595031 -vn -0.978547 -0.155407 0.135256 -vn -0.972902 -0.116808 0.199544 -vn -0.986642 -0.086804 0.137848 -vn -0.996582 -0.051510 0.064582 -vn -0.998667 -0.051618 0.000000 -vn -0.997128 -0.075732 0.000000 -vn -0.978534 -0.119823 0.167670 -vn -0.992300 -0.123854 0.000000 -vn -0.975218 -0.143091 0.168747 -vn -0.990826 -0.135146 0.000000 -vn -0.992466 -0.122522 0.000000 -vn -0.976178 -0.120030 0.180747 -vn -0.911609 0.334059 0.239530 -vn -0.949057 0.315103 0.000000 -vn -0.991092 -0.100151 0.087782 -vn -0.936786 0.320495 0.140413 -vn -0.004617 0.173236 0.984869 -vn -0.051868 0.232639 0.971179 -vn -0.139632 0.244987 0.959419 -vn -0.169449 0.263015 0.949795 -vn 0.378050 0.488514 0.786404 -vn -0.074203 0.746661 0.661053 -vn -0.456333 0.781419 0.425611 -vn -0.678291 0.700497 0.221868 -vn -0.652774 0.718758 0.239318 -vn -0.688381 0.725349 0.000000 -vn -0.706036 0.708176 0.000000 -vn -0.631292 0.740974 0.228972 -vn -0.601784 0.763373 0.234772 -vn -0.351728 0.872825 0.338325 -vn -0.043159 0.865597 0.498878 -vn 0.426695 0.574370 0.698592 -vn 0.716915 0.112171 0.688078 -vn 0.758164 0.095473 0.645037 -vn -0.183085 0.157225 0.970443 -vn 0.148874 0.354954 -0.922954 -vn 0.359364 0.324809 -0.874846 -vn 0.367321 0.351698 -0.861037 -vn 0.297364 0.317491 -0.900430 -vn 0.458623 0.303871 -0.835061 -vn 0.469618 0.323039 -0.821647 -vn 0.276933 0.372860 -0.885598 -vn 0.559261 0.465460 -0.685984 -vn 0.630410 0.558969 -0.538644 -vn 0.247626 0.765912 -0.593347 -vn -0.010843 0.830001 -0.557657 -vn -0.157013 0.808137 -0.567680 -vn -0.578608 0.580866 -0.572545 -vn -0.499662 0.628040 0.596577 -vn -0.557389 0.636957 -0.532544 -vn -0.433436 0.642411 0.632014 -vn -0.042672 0.818865 0.572398 -vn -0.152161 0.845866 -0.511232 -vn 0.094274 0.616930 0.781351 -vn 0.078118 0.638832 0.765370 -vn 0.186343 0.533377 -0.825097 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn -0.010843 0.830001 -0.557657 -vn -0.411993 0.911187 0.000000 -vn -0.271595 0.962411 0.000765 -vn -0.040347 0.827309 -0.560297 -vn 0.000000 1.000000 0.000000 -vn -0.239914 0.607394 -0.757307 -vn 0.128620 0.967244 -0.218851 -vn 0.008099 -0.002928 0.999963 -vn -0.182194 0.240699 0.953346 -vn 0.357690 0.769708 0.528778 -vn 0.319524 0.907313 0.273288 -vn 0.019270 0.977705 0.209097 -vn 0.000385 0.311767 0.950159 -vn 0.000384 0.312493 0.949920 -vn -0.908937 0.181562 -0.375326 -vn -0.926840 0.365132 -0.087447 -vn 0.343550 0.932835 0.108595 -vn 0.343550 0.932835 0.108595 -vn 0.572438 0.813026 0.106320 -vn 0.572438 0.813026 0.106320 -vn 0.350916 0.936401 0.003314 -vn 0.180208 0.957843 0.223747 -vn 0.054837 0.998292 -0.020148 -vn -0.156425 0.952959 0.259617 -vn -0.223117 0.966373 -0.127839 -vn -0.471350 0.868970 0.150731 -vn -0.627989 0.606445 -0.487703 -vn -0.460187 0.872346 0.165048 -vn -0.138800 0.934428 0.327991 -vn 0.384095 0.920149 0.076134 -vn 0.551719 0.832347 0.052967 -vn 0.428842 0.893311 0.134496 -vn 0.536322 0.831008 0.147594 -vn 0.027253 0.932118 0.361127 -vn 0.471549 0.880758 0.043652 -vn -0.000011 1.000000 0.000000 -vn -0.411998 0.911184 -0.001160 -vn -0.020820 0.226240 -0.973849 -vn -0.060523 0.204549 -0.976984 -vn -0.051837 0.299894 -0.952563 -vn -0.002250 0.365469 -0.930821 -vn 0.033028 0.249392 -0.967839 -vn -0.135289 0.847974 -0.512481 -vn 0.011574 0.875069 -0.483860 -vn 0.029526 0.442508 -0.896279 -vn 0.047123 0.251268 -0.966770 -vn 0.209958 0.810995 -0.546081 -vn 0.003451 0.457095 -0.889411 -vn 0.345868 0.556792 -0.755221 -vn -0.089097 0.206623 -0.974355 -vn 0.174510 0.153230 -0.972660 -vn -0.018298 0.420237 -0.907230 -vn -0.047249 0.264787 -0.963149 -vn 0.000000 0.398474 -0.917180 -vn -0.078847 -0.011689 -0.996818 -vn -0.065431 0.131200 -0.989194 -vn -0.032469 0.133629 -0.990499 -vn -0.020415 0.177472 -0.983914 -vn -0.044526 0.314179 -0.948319 -vn -0.048086 -0.016246 -0.998711 -vn -0.116765 -0.117675 -0.986163 -vn -0.110254 0.380000 -0.918392 -vn -0.096526 -0.375230 -0.921892 -vn -0.114352 -0.366303 -0.923442 -vn -0.984186 -0.159691 -0.076660 -vn -0.703782 -0.325892 -0.631257 -vn -0.753180 -0.142612 -0.642169 -vn -0.694786 0.403993 -0.595031 -vn -0.978547 -0.155406 -0.135256 -vn -0.972902 -0.116808 -0.199544 -vn -0.986642 -0.086804 -0.137848 -vn -0.996582 -0.051510 -0.064582 -vn -0.978534 -0.119823 -0.167670 -vn -0.975218 -0.143091 -0.168747 -vn -0.976178 -0.120030 -0.180747 -vn -0.911609 0.334059 -0.239530 -vn -0.936786 0.320494 -0.140413 -vn -0.991092 -0.100151 -0.087782 -vn -0.070496 0.737933 -0.671182 -vn -0.074203 0.746661 -0.661053 -vn -0.456333 0.781418 -0.425611 -vn -0.678291 0.700497 -0.221868 -vn -0.652774 0.718758 -0.239318 -vn -0.631292 0.740974 -0.228972 -vn -0.601784 0.763373 -0.234772 -vn -0.351728 0.872825 -0.338325 -vn -0.043159 0.865597 -0.498878 -vn -0.050739 0.856785 -0.513172 -vn 0.831646 0.554121 -0.036263 -vn 0.717163 0.695166 -0.049205 -vn 0.303995 0.952143 -0.031778 -vn 0.000000 1.000000 0.000000 -vn -0.195416 0.980690 0.007761 -vn -0.560456 0.746959 -0.357690 -vn -0.671650 0.740845 0.005932 -vn -0.611471 0.790924 0.023310 -vn -0.611471 0.790924 0.023310 -vn -0.117785 0.992762 0.023457 -vn -0.117785 0.992762 0.023457 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn -0.271595 0.962411 -0.000765 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.128620 0.967244 0.218851 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 -0.000015 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 -0.000015 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.988845 -0.145242 0.033023 -vn -0.988845 -0.145239 0.033023 -vn -0.988761 -0.149470 0.003221 -vn -0.988762 -0.149465 0.003225 -vn -1.000000 0.000000 0.000006 -vn -0.064201 -0.872217 0.484887 -vn -0.988168 -0.153378 0.000000 -vn -0.980657 -0.148457 0.127562 -vn -0.971555 -0.144479 0.187635 -vn -0.963527 -0.144431 0.225290 -vn -0.825920 -0.534641 0.178926 -vn -0.863285 -0.476281 0.167021 -vn -0.904585 -0.416699 0.089932 -vn -0.930451 -0.366417 0.000000 -vn -0.764102 -0.633483 0.121850 -vn -0.827879 -0.560907 0.000000 -vn -0.774383 -0.625081 0.098007 -vn -0.791643 -0.590519 0.156806 -vn -0.586142 -0.792046 0.170589 -vn -0.783917 -0.595080 0.177072 -vn -0.790636 -0.503094 0.348985 -vn -0.064201 -0.872217 0.484887 -vn -0.432186 -0.737990 0.518253 -vn -0.707464 -0.706750 0.000105 -vn -0.707464 -0.706750 0.000105 -vn -1.000000 -0.000020 0.000013 -vn -1.000000 -0.000020 0.000013 -vn -0.840440 -0.531300 0.106684 -vn -0.840440 -0.531300 0.106684 -vn -1.000000 -0.000016 0.000000 -vn -1.000000 -0.000016 0.000000 -vn -1.000000 -0.000018 0.000000 -vn -1.000000 -0.000018 0.000000 -vn -0.761963 -0.630098 0.149627 -vn -0.761963 -0.630098 0.149627 -vn -0.606091 -0.783425 0.137475 -vn -0.790636 -0.503094 0.348985 -vn -1.000000 0.000000 0.000000 -vn -1.000000 -0.000015 0.000000 -vn -0.432186 -0.737990 0.518253 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 -0.000015 0.000000 -vn -1.000000 -0.000015 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.988845 -0.145242 -0.033023 -vn -0.988845 -0.145239 -0.033023 -vn -0.988761 -0.149470 -0.003221 -vn -0.988762 -0.149465 -0.003225 -vn -1.000000 0.000000 -0.000006 -vn -0.064201 -0.872217 -0.484887 -vn -0.432186 -0.737989 -0.518254 -vn -0.980657 -0.148457 -0.127562 -vn -0.971555 -0.144479 -0.187635 -vn -0.963527 -0.144431 -0.225290 -vn -0.825920 -0.534641 -0.178926 -vn -0.863285 -0.476281 -0.167021 -vn -0.904585 -0.416699 -0.089932 -vn -0.764102 -0.633483 -0.121850 -vn -0.774383 -0.625081 -0.098007 -vn -0.791643 -0.590519 -0.156806 -vn -0.586142 -0.792046 -0.170589 -vn -0.783917 -0.595079 -0.177072 -vn -0.790636 -0.503094 -0.348985 -vn -0.432186 -0.737989 -0.518254 -vn -0.064201 -0.872217 -0.484887 -vn -0.790636 -0.503094 -0.348985 -vn -0.707464 -0.706750 -0.000105 -vn -0.707464 -0.706750 -0.000105 -vn -1.000000 -0.000020 -0.000013 -vn -1.000000 -0.000020 -0.000013 -vn -0.840440 -0.531300 -0.106684 -vn -0.840440 -0.531300 -0.106684 -vn -1.000000 -0.000016 0.000000 -vn -1.000000 -0.000016 0.000000 -vn -1.000000 -0.000018 0.000000 -vn -1.000000 -0.000018 0.000000 -vn -0.761963 -0.630098 -0.149627 -vn -0.761963 -0.630098 -0.149627 -vn -0.606091 -0.783425 -0.137475 -vn -1.000000 0.000000 0.000000 -vn -1.000000 -0.000015 0.000000 -vn -0.967343 -0.253471 0.000000 -vn -0.966484 -0.253246 0.042143 -vn -0.991080 -0.130252 0.028205 -vn -0.998040 0.062190 -0.006929 -vn -0.904766 0.424835 -0.030227 -vn -0.864731 0.501983 -0.015936 -vn -0.982241 0.187302 0.010960 -vn -0.982300 0.187313 0.000000 -vn -0.864841 0.502047 0.000000 -vn -0.905179 0.425030 0.000000 -vn -0.998064 0.062191 0.000000 -vn -0.991474 -0.130304 0.000000 -vn -0.997327 0.073072 0.000000 -vn -0.997065 0.073052 0.022909 -vn -0.966484 -0.253246 -0.042143 -vn -0.991080 -0.130252 -0.028205 -vn -0.998040 0.062190 0.006929 -vn -0.904766 0.424835 0.030227 -vn -0.864731 0.501983 0.015936 -vn -0.982241 0.187302 -0.010960 -vn -0.997065 0.073052 -0.022909 -vn 0.578350 0.285793 0.764090 -vn 0.250386 0.130226 0.959348 -vn 0.231372 0.415637 0.879609 -vn 0.282524 0.559971 0.778853 -vn 0.676715 0.399167 0.618646 -vn 0.659150 0.075212 0.748241 -vn 0.647834 -0.110155 0.753775 -vn 0.590692 -0.107892 0.799651 -vn 0.405847 0.360061 0.840026 -vn 0.676715 0.399167 0.618646 -vn 0.659150 0.075212 0.748241 -vn 0.647834 -0.110155 0.753775 -vn 0.590692 -0.107892 0.799651 -vn 0.590692 -0.107892 0.799651 -vn 0.590692 -0.107892 0.799651 -vn 0.282524 0.559971 0.778853 -vn -0.450579 0.527013 0.720580 -vn -0.450579 0.527013 0.720580 -vn -0.295642 0.828243 0.476035 -vn -0.295642 0.828243 0.476035 -vn -0.089100 0.984906 0.148399 -vn 0.097191 0.990632 0.095925 -vn 0.117291 0.991040 0.063893 -vn 0.580264 0.794796 0.177748 -vn 0.117291 0.991040 0.063893 -vn 0.509041 0.750619 0.421246 -vn 0.406328 0.844909 0.347889 -vn 0.169327 0.818091 0.549595 -vn 0.663610 0.680521 0.310666 -vn 0.008975 0.665756 0.746116 -vn 0.642753 0.585407 0.494133 -vn 0.013507 0.795289 0.606080 -vn 0.640657 0.662571 0.388018 -vn 0.015595 0.945301 0.325826 -vn 0.629337 0.749031 0.207091 -vn 0.017361 0.999849 0.000000 -vn 0.630667 0.776053 0.000000 -vn 0.932045 0.362343 0.000000 -vn 0.971533 0.236903 0.000000 -vn 0.971320 0.237777 0.000000 -vn 0.973444 0.228927 0.000000 -vn 0.939724 0.341935 0.000000 -vn 0.965379 0.260852 0.000000 -vn 0.964909 0.260725 -0.031175 -vn 0.117291 0.991040 -0.063893 -vn 0.097191 0.990632 -0.095925 -vn 0.117291 0.991040 -0.063893 -vn 0.580264 0.794795 -0.177748 -vn 0.509041 0.750619 -0.421246 -vn 0.406328 0.844909 -0.347889 -vn 0.663610 0.680520 -0.310666 -vn 0.169328 0.818091 -0.549596 -vn 0.642753 0.585407 -0.494133 -vn 0.008975 0.665756 -0.746116 -vn 0.640658 0.662570 -0.388018 -vn 0.013507 0.795289 -0.606081 -vn 0.629337 0.749031 -0.207092 -vn 0.015595 0.945301 -0.325827 -vn 0.964909 0.260725 0.031175 -vn 0.003960 -0.990569 0.136954 -vn 0.003960 -0.990569 0.136954 -vn -0.054248 -0.035311 0.997903 -vn -0.056548 -0.026579 0.998046 -vn -0.058844 -0.017845 0.998108 -vn -0.008242 -0.844924 0.534823 -vn -0.040494 -0.294223 0.954878 -vn -0.046832 -0.642706 0.764680 -vn -0.048895 -0.289439 0.955947 -vn -0.057227 -0.284663 0.956918 -vn -0.078329 -0.403392 0.911669 -vn -0.139225 -0.140428 0.980253 -vn -0.139225 -0.140428 0.980253 -vn -0.176416 0.006735 0.984293 -vn -0.176416 0.006735 0.984293 -vn -0.176416 0.006735 0.984293 -vn 0.950690 -0.100397 0.293442 -vn 0.917871 0.186096 0.350544 -vn 0.868002 0.138068 0.476981 -vn 0.830271 -0.196277 0.521657 -vn 0.950690 -0.100397 0.293442 -vn 0.917871 0.186096 0.350544 -vn 0.868002 0.138068 0.476981 -vn 0.830271 -0.196277 0.521657 -vn -0.000197 -0.000261 1.000000 -vn -0.000082 -0.000105 1.000000 -vn -0.000082 -0.000105 1.000000 -vn -0.000140 -0.000183 1.000000 -vn -0.000140 -0.000183 1.000000 -vn -0.000166 -0.000082 -1.000000 -vn -0.000210 -0.000192 -1.000000 -vn -0.000188 -0.000137 -1.000000 -vn -0.000210 -0.000192 -1.000000 -vn -0.000188 -0.000137 -1.000000 -vn -0.000017 0.000000 1.000000 -vn 0.000000 -0.000016 1.000000 -vn 0.000000 -0.000016 1.000000 -vn -0.000008 -0.000008 1.000000 -vn -0.000008 -0.000008 1.000000 -vn -0.555518 -0.368362 -0.745459 -vn -0.390893 -0.269628 -0.880059 -vn -0.476491 -0.321209 -0.818402 -vn -0.390893 -0.269628 -0.880059 -vn -0.476491 -0.321209 -0.818402 -vn -0.032244 -0.998929 -0.033195 -vn -0.032244 -0.998929 -0.033195 -vn -0.063905 -0.997956 0.000000 -vn -0.063905 -0.997956 0.000000 -vn -0.000656 -1.000000 -0.000013 -vn -0.063765 -0.995760 -0.066306 -vn -0.063765 -0.995760 0.066306 -vn -0.032244 -0.998929 0.033195 -vn -0.032244 -0.998929 0.033195 -vn -0.000656 -1.000000 0.000013 -vn -0.000305 -0.000229 -1.000000 -vn -0.000225 -0.000132 -1.000000 -vn -0.000265 -0.000181 -1.000000 -vn -0.000225 -0.000132 -1.000000 -vn -0.000265 -0.000181 -1.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 -0.000010 -vn 0.000000 1.000000 -0.000010 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 -0.000010 -vn 0.000000 1.000000 0.000010 -vn 0.000000 1.000000 0.000010 -vn 0.000000 1.000000 0.000010 -vn 0.918662 0.395043 0.000000 -vn 0.918662 0.395043 -0.000015 -vn 0.918662 0.395043 -0.000015 -vn 0.918662 0.395043 0.000000 -vn 0.918662 0.395043 0.000015 -vn 0.918662 0.395043 0.000015 -vn -0.000057 1.000000 -0.000103 -vn -0.000015 1.000000 -0.000141 -vn -0.000098 1.000000 -0.000066 -vn -0.000098 1.000000 0.000000 -vn -0.000015 1.000000 -0.000141 -vn -0.000057 1.000000 -0.000103 -vn -0.000098 1.000000 0.000000 -vn -0.000015 1.000000 0.000141 -vn -0.000057 1.000000 0.000103 -vn -0.000098 1.000000 0.000066 -vn -0.000015 1.000000 0.000141 -vn -0.000057 1.000000 0.000103 -vn -0.003009 0.999937 0.010797 -vn 0.365466 0.930591 0.020860 -vn 0.791482 0.609971 0.038629 -vn 0.883316 0.466393 0.047225 -vn 0.887087 0.459285 0.046201 -vn 0.887087 0.459285 0.046201 -vn 0.883316 0.466393 0.047225 -vn 0.791482 0.609971 0.038629 -vn 0.365466 0.930591 0.020860 -vn -0.003009 0.999937 0.010797 -vn 0.941501 0.337010 0.000000 -vn 0.941501 0.337010 0.000000 -vn 0.941501 0.337010 0.000000 -vn 0.941501 0.337010 0.000000 -vn 0.941501 0.337010 0.000000 -vn 0.941501 0.337010 0.000000 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.382684 0.000000 -0.923879 -vn -0.382683 0.000000 -0.923880 -vn -0.923879 0.000000 -0.382684 -vn -0.923879 0.000000 -0.382684 -vn -0.923879 0.000000 0.382684 -vn -0.923879 0.000000 0.382684 -vn -0.382683 0.000000 0.923880 -vn -0.382683 0.000000 0.923880 -vn 0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn -0.382683 0.000000 -0.923880 -vn 0.382684 0.000000 -0.923879 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn -0.923879 0.000000 -0.382684 -vn -0.923879 0.000000 -0.382684 -vn -0.923879 0.000000 0.382684 -vn -0.923879 0.000000 0.382684 -vn -0.382683 0.000000 0.923880 -vn -0.382683 0.000000 0.923880 -vn 0.382683 0.000000 0.923880 -vn 0.382683 0.000000 0.923880 -vn -0.382683 0.000000 -0.923880 -vn -0.382683 0.000000 -0.923880 -vn 0.382683 0.000000 -0.923880 -vn 0.382683 0.000000 -0.923880 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.923823 0.011019 0.382660 -vn 0.849397 -0.393369 0.351832 -vn 0.825592 -0.448836 0.341971 -vn 0.917828 -0.114267 0.380176 -vn 0.923823 0.011019 -0.382660 -vn 0.849397 -0.393369 -0.351832 -vn 0.825592 -0.448836 -0.341971 -vn 0.917828 -0.114267 -0.380177 -vn -0.923823 0.011019 -0.382661 -vn -0.849397 -0.393369 -0.351832 -vn -0.825591 -0.448836 -0.341972 -vn -0.917828 -0.114266 -0.380177 -vn -0.923823 0.011019 0.382660 -vn -0.849397 -0.393369 0.351832 -vn -0.825591 -0.448837 0.341972 -vn -0.917828 -0.114266 0.380177 -vn -0.382660 0.011019 0.923824 -vn -0.465296 -0.256226 0.847259 -vn -0.341971 -0.448837 0.825592 -vn -0.380177 -0.114267 0.917828 -vn 0.382660 0.011019 0.923823 -vn 0.465296 -0.256226 0.847259 -vn 0.341971 -0.448837 0.825591 -vn 0.380177 -0.114267 0.917828 -vn 0.265892 -0.719194 0.641920 -vn -0.265891 -0.719194 0.641920 -vn 0.000000 -0.691140 0.722721 -vn 0.000000 0.010180 0.999948 -vn -0.382660 0.011019 -0.923824 -vn -0.465296 -0.256226 -0.847259 -vn -0.265891 -0.719194 -0.641920 -vn -0.341971 -0.448837 -0.825592 -vn -0.380177 -0.114267 -0.917828 -vn 0.382660 0.011019 -0.923823 -vn 0.465296 -0.256226 -0.847259 -vn 0.000000 0.010180 -0.999948 -vn 0.265892 -0.719195 -0.641920 -vn 0.341971 -0.448837 -0.825591 -vn 0.000000 -0.691141 -0.722720 -vn 0.380177 -0.114267 -0.917828 -vn 0.390967 -0.906045 0.161946 -vn 0.390967 -0.906045 0.161946 -vn 0.390967 -0.906046 -0.161945 -vn 0.390967 -0.906046 -0.161945 -vn -0.390967 -0.906045 -0.161946 -vn -0.390967 -0.906045 -0.161946 -vn -0.390967 -0.906045 0.161946 -vn -0.390967 -0.906045 0.161946 -vn -0.161944 -0.906046 0.390967 -vn -0.161944 -0.906046 0.390967 -vn 0.161944 -0.906046 0.390967 -vn 0.161944 -0.906046 0.390967 -vn -0.161944 -0.906046 -0.390967 -vn -0.161944 -0.906046 -0.390967 -vn 0.161944 -0.906046 -0.390966 -vn 0.161944 -0.906046 -0.390966 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.382684 0.000000 0.923879 -vn -0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn -0.382684 0.000000 -0.923879 -vn -0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn -0.174226 0.982058 -0.072168 -vn -0.174226 0.982058 -0.072168 -vn -0.174226 0.982058 0.072166 -vn -0.174226 0.982058 0.072166 -vn 0.174226 0.982058 0.072168 -vn 0.174226 0.982058 0.072168 -vn 0.174226 0.982058 -0.072168 -vn 0.174226 0.982058 -0.072168 -vn 0.072167 0.982058 -0.174226 -vn 0.072167 0.982058 -0.174226 -vn -0.072167 0.982058 -0.174227 -vn -0.072167 0.982058 -0.174227 -vn 0.072167 0.982058 0.174226 -vn 0.072167 0.982058 0.174226 -vn -0.072167 0.982058 0.174225 -vn -0.072167 0.982058 0.174225 -vn -0.915773 0.132185 -0.379325 -vn -0.915773 0.132185 -0.379325 -vn -0.915773 0.132185 0.379325 -vn -0.915773 0.132185 0.379325 -vn 0.915773 0.132184 0.379325 -vn 0.915773 0.132184 0.379325 -vn 0.915773 0.132184 -0.379325 -vn 0.915773 0.132184 -0.379325 -vn 0.379326 0.132184 -0.915773 -vn 0.379326 0.132184 -0.915773 -vn -0.379325 0.132185 -0.915773 -vn -0.379325 0.132185 -0.915773 -vn 0.379326 0.132184 0.915773 -vn 0.379326 0.132184 0.915773 -vn -0.379325 0.132185 0.915773 -vn -0.379325 0.132185 0.915773 -vn 0.044453 0.998842 0.018413 -vn 0.044453 0.998842 0.018413 -vn 0.044453 0.998842 -0.018413 -vn 0.044453 0.998842 -0.018413 -vn -0.044453 0.998842 -0.018413 -vn -0.044453 0.998842 -0.018413 -vn -0.044453 0.998842 0.018413 -vn -0.044453 0.998842 0.018413 -vn -0.018413 0.998842 0.044452 -vn -0.018413 0.998842 0.044452 -vn 0.018413 0.998842 0.044452 -vn 0.018413 0.998842 0.044452 -vn -0.018413 0.998842 -0.044452 -vn -0.018413 0.998842 -0.044452 -vn 0.018413 0.998842 -0.044452 -vn 0.018413 0.998842 -0.044452 -vn 0.923730 0.017953 0.382623 -vn 0.923730 0.017953 0.382623 -vn 0.923730 0.017953 -0.382623 -vn 0.923730 0.017953 -0.382623 -vn 0.382621 0.017953 -0.923731 -vn -0.382621 0.017953 -0.923731 -vn -0.923730 0.017953 -0.382622 -vn -0.923730 0.017953 -0.382622 -vn -0.923730 0.017953 0.382622 -vn -0.923730 0.017953 0.382622 -vn -0.382621 0.017953 0.923731 -vn -0.382621 0.017953 0.923731 -vn 0.382621 0.017953 0.923731 -vn 0.382621 0.017953 0.923731 -vn -0.382621 0.017953 -0.923731 -vn 0.382621 0.017953 -0.923731 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.382684 0.000000 -0.923879 -vn -0.382684 0.000000 -0.923879 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923879 0.000000 0.382684 -vn -0.923879 0.000000 0.382684 -vn -0.382683 0.000000 0.923880 -vn -0.382683 0.000000 0.923880 -vn 0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn -0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.382684 0.000000 0.923879 -vn -0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn -0.382684 0.000000 -0.923879 -vn -0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.923823 0.011019 0.382660 -vn 0.849397 -0.393368 0.351832 -vn 0.825592 -0.448836 0.341971 -vn 0.917828 -0.114267 0.380176 -vn 0.923823 0.011019 -0.382660 -vn 0.849397 -0.393368 -0.351832 -vn 0.825592 -0.448835 -0.341971 -vn 0.917828 -0.114267 -0.380176 -vn -0.923823 0.011019 -0.382660 -vn -0.849397 -0.393369 -0.351832 -vn -0.825591 -0.448837 -0.341972 -vn -0.917828 -0.114267 -0.380177 -vn -0.923823 0.011019 0.382660 -vn -0.849397 -0.393368 0.351832 -vn -0.825592 -0.448836 0.341972 -vn -0.917828 -0.114267 0.380177 -vn -0.382660 0.011019 0.923823 -vn -0.465297 -0.256225 0.847259 -vn -0.341971 -0.448836 0.825592 -vn -0.380177 -0.114267 0.917828 -vn 0.382660 0.011019 0.923824 -vn 0.465296 -0.256225 0.847259 -vn 0.341972 -0.448836 0.825592 -vn 0.380178 -0.114267 0.917828 -vn 0.265892 -0.719193 0.641921 -vn -0.265892 -0.719193 0.641921 -vn 0.000000 -0.691139 0.722722 -vn 0.000000 0.010180 0.999948 -vn -0.382660 0.011019 -0.923823 -vn -0.465297 -0.256226 -0.847259 -vn -0.265892 -0.719194 -0.641920 -vn -0.341971 -0.448837 -0.825592 -vn -0.380176 -0.114267 -0.917828 -vn 0.382660 0.011019 -0.923824 -vn 0.465296 -0.256225 -0.847259 -vn 0.000000 0.010180 -0.999948 -vn 0.265892 -0.719194 -0.641920 -vn 0.341972 -0.448837 -0.825591 -vn 0.000000 -0.691141 -0.722720 -vn 0.380178 -0.114267 -0.917828 -vn 0.390970 -0.906045 0.161944 -vn 0.390970 -0.906045 0.161944 -vn 0.390970 -0.906045 -0.161944 -vn 0.390970 -0.906045 -0.161944 -vn -0.390972 -0.906044 -0.161944 -vn -0.390972 -0.906044 -0.161944 -vn -0.390972 -0.906044 0.161944 -vn -0.390972 -0.906044 0.161944 -vn -0.161945 -0.906046 0.390965 -vn -0.161945 -0.906046 0.390965 -vn 0.161945 -0.906046 0.390965 -vn 0.161945 -0.906046 0.390965 -vn -0.161945 -0.906046 -0.390965 -vn -0.161945 -0.906046 -0.390965 -vn 0.161945 -0.906046 -0.390965 -vn 0.161945 -0.906046 -0.390965 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.382684 0.000000 0.923879 -vn -0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn -0.382684 0.000000 -0.923879 -vn -0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn -0.174228 0.982057 -0.072166 -vn -0.174228 0.982057 -0.072166 -vn -0.174228 0.982057 0.072166 -vn -0.174228 0.982057 0.072166 -vn 0.174228 0.982057 0.072166 -vn 0.174228 0.982057 0.072166 -vn 0.174228 0.982057 -0.072166 -vn 0.174228 0.982057 -0.072166 -vn 0.072168 0.982058 -0.174226 -vn 0.072168 0.982058 -0.174226 -vn -0.072168 0.982058 -0.174226 -vn -0.072168 0.982058 -0.174226 -vn 0.072168 0.982058 0.174226 -vn 0.072168 0.982058 0.174226 -vn -0.072168 0.982058 0.174226 -vn -0.072168 0.982058 0.174226 -vn -0.915773 0.132186 -0.379325 -vn -0.915773 0.132186 -0.379325 -vn -0.915773 0.132186 0.379325 -vn -0.915773 0.132186 0.379325 -vn 0.915772 0.132185 0.379326 -vn 0.915772 0.132185 0.379326 -vn 0.915772 0.132185 -0.379326 -vn 0.915772 0.132185 -0.379326 -vn 0.379325 0.132185 -0.915773 -vn 0.379325 0.132185 -0.915773 -vn -0.379326 0.132185 -0.915772 -vn -0.379326 0.132185 -0.915772 -vn 0.379325 0.132185 0.915773 -vn 0.379325 0.132185 0.915773 -vn -0.379326 0.132185 0.915772 -vn -0.379326 0.132185 0.915772 -vn 0.044456 0.998842 0.018415 -vn 0.044456 0.998842 0.018415 -vn 0.044456 0.998842 -0.018415 -vn 0.044456 0.998842 -0.018415 -vn -0.044456 0.998842 -0.018415 -vn -0.044456 0.998842 -0.018415 -vn -0.044456 0.998842 0.018415 -vn -0.044456 0.998842 0.018415 -vn -0.018414 0.998842 0.044456 -vn -0.018414 0.998842 0.044456 -vn 0.018414 0.998842 0.044456 -vn 0.018414 0.998842 0.044456 -vn -0.018414 0.998842 -0.044454 -vn -0.018414 0.998842 -0.044454 -vn 0.018414 0.998842 -0.044454 -vn 0.018414 0.998842 -0.044454 -vn 0.923731 0.017953 0.382622 -vn 0.923731 0.017953 0.382622 -vn 0.923731 0.017953 -0.382622 -vn 0.923731 0.017953 -0.382622 -vn 0.382622 0.017953 -0.923731 -vn -0.382621 0.017953 -0.923731 -vn -0.923730 0.017953 -0.382623 -vn -0.923730 0.017953 -0.382623 -vn -0.923730 0.017953 0.382623 -vn -0.923730 0.017953 0.382623 -vn -0.382621 0.017953 0.923731 -vn -0.382621 0.017953 0.923731 -vn 0.382622 0.017953 0.923731 -vn 0.382622 0.017953 0.923731 -vn -0.382621 0.017953 -0.923731 -vn 0.382622 0.017953 -0.923731 -vn 0.997405 0.071989 0.000000 -vn 0.997405 0.071989 0.000000 -vn 0.705259 0.050902 -0.707120 -vn 0.705259 0.050902 -0.707120 -vn 0.000013 0.000002 -1.000000 -vn 0.000013 0.000002 -1.000000 -vn -0.705264 -0.050900 -0.707115 -vn -0.705264 -0.050900 -0.707115 -vn -0.997406 -0.071986 0.000000 -vn -0.997406 -0.071986 0.000000 -vn -0.705264 -0.050900 0.707115 -vn -0.705264 -0.050900 0.707115 -vn 0.000013 0.000002 1.000000 -vn 0.000013 0.000002 1.000000 -vn 0.705259 0.050902 0.707120 -vn 0.705259 0.050902 0.707120 -vn 0.071959 -0.997408 0.000000 -vn 0.071959 -0.997408 0.000000 -vn 0.071964 -0.997407 0.000019 -vn 0.071964 -0.997407 0.000019 -vn 0.071978 -0.997406 0.000007 -vn 0.071978 -0.997406 0.000007 -vn 0.071987 -0.997406 -0.000012 -vn 0.071987 -0.997406 -0.000012 -vn 0.071987 -0.997406 0.000000 -vn 0.071987 -0.997406 0.000000 -vn 0.071987 -0.997406 0.000012 -vn 0.071987 -0.997406 0.000012 -vn 0.071978 -0.997406 -0.000007 -vn 0.071978 -0.997406 -0.000007 -vn 0.071964 -0.997407 -0.000019 -vn 0.071964 -0.997407 -0.000019 -vn 0.997407 0.071973 0.000000 -vn 0.991926 -0.126817 0.000000 -vn 0.947926 -0.318492 0.000000 -vn 0.705268 0.050894 -0.707112 -vn 0.705568 -0.147480 -0.693126 -vn 0.678421 -0.337945 -0.652333 -vn 0.000007 -0.000003 -1.000000 -vn 0.014247 -0.197373 -0.980225 -vn 0.027776 -0.384902 -0.922539 -vn -0.705273 -0.050905 -0.707106 -vn -0.677081 -0.247265 -0.693125 -vn -0.622862 -0.431854 -0.652338 -vn -0.997406 -0.071987 0.000000 -vn -0.963438 -0.267930 0.000000 -vn -0.892370 -0.451304 0.000000 -vn -0.705273 -0.050905 0.707106 -vn -0.677081 -0.247265 0.693125 -vn -0.622862 -0.431854 0.652338 -vn 0.000008 -0.000003 1.000000 -vn 0.014247 -0.197373 0.980225 -vn 0.027776 -0.384901 0.922540 -vn 0.705269 0.050894 0.707111 -vn 0.705568 -0.147480 0.693125 -vn 0.678421 -0.337945 0.652333 -vn 0.071997 -0.997405 0.000000 -vn 0.071997 -0.997405 0.000000 -vn 0.071990 -0.997405 -0.000006 -vn 0.071990 -0.997405 -0.000006 -vn 0.071993 -0.997405 0.000006 -vn 0.071993 -0.997405 0.000006 -vn 0.072009 -0.997404 0.000018 -vn 0.072009 -0.997404 0.000018 -vn 0.072015 -0.997404 0.000000 -vn 0.072015 -0.997404 0.000000 -vn 0.072009 -0.997404 -0.000018 -vn 0.072009 -0.997404 -0.000018 -vn 0.071993 -0.997405 -0.000006 -vn 0.071993 -0.997405 -0.000006 -vn 0.071990 -0.997405 0.000006 -vn 0.071990 -0.997405 0.000006 -vn 0.997407 0.071963 0.000000 -vn 0.997407 0.071963 0.000000 -vn 0.705270 0.050889 -0.707110 -vn 0.705270 0.050889 -0.707110 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn -0.705272 -0.050902 -0.707107 -vn -0.705272 -0.050902 -0.707107 -vn -0.997405 -0.071990 0.000000 -vn -0.997405 -0.071990 0.000000 -vn -0.705272 -0.050902 0.707107 -vn -0.705272 -0.050902 0.707107 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.705270 0.050889 0.707110 -vn 0.705270 0.050889 0.707110 -vn 0.247111 0.968987 0.000000 -vn 0.247111 0.968987 0.000000 -vn 0.154734 0.962317 -0.223616 -vn 0.154734 0.962317 -0.223616 -vn -0.068287 0.946220 -0.316235 -vn -0.068287 0.946220 -0.316235 -vn -0.291311 0.930127 -0.223610 -vn -0.291311 0.930127 -0.223610 -vn -0.383692 0.923461 0.000000 -vn -0.383692 0.923461 0.000000 -vn -0.291311 0.930128 0.223609 -vn -0.291311 0.930128 0.223609 -vn -0.068287 0.946220 0.316234 -vn -0.068287 0.946220 0.316234 -vn 0.154733 0.962317 0.223616 -vn 0.154733 0.962317 0.223616 -vn 0.756180 -0.654363 0.000000 -vn 0.756180 -0.654363 0.000000 -vn 0.549605 -0.669284 -0.499993 -vn 0.549605 -0.669284 -0.499993 -vn 0.050899 -0.705292 -0.707087 -vn 0.050899 -0.705292 -0.707087 -vn -0.447793 -0.741274 -0.499995 -vn -0.447793 -0.741274 -0.499995 -vn -0.654355 -0.756188 -0.000001 -vn -0.654355 -0.756188 -0.000001 -vn -0.447793 -0.741274 0.499994 -vn -0.447793 -0.741274 0.499994 -vn 0.050899 -0.705292 0.707087 -vn 0.050899 -0.705292 0.707087 -vn 0.549605 -0.669284 0.499994 -vn 0.549605 -0.669284 0.499994 -vn -0.072213 0.997389 0.000000 -vn 0.528444 0.848968 -0.000002 -vn 0.836129 0.548533 0.000000 -vn 0.356614 0.836559 -0.415928 -vn 0.580956 0.530107 -0.617638 -vn -0.058211 0.806620 -0.588197 -vn -0.035055 0.485649 -0.873451 -vn -0.473038 0.776694 -0.415910 -vn -0.651071 0.441199 -0.617616 -vn -0.644864 0.764297 0.000000 -vn -0.906230 0.422786 0.000000 -vn -0.473038 0.776694 0.415910 -vn -0.651071 0.441199 0.617616 -vn -0.058211 0.806620 0.588197 -vn -0.035055 0.485649 0.873451 -vn 0.356614 0.836560 0.415926 -vn 0.580956 0.530107 0.617637 -vn 0.013161 0.008894 0.999874 -vn 0.013161 0.008894 0.999874 -vn 0.409092 -0.576862 0.707017 -vn 0.409092 -0.576862 0.707017 -vn 0.573092 -0.819491 0.000000 -vn 0.573092 -0.819491 0.000000 -vn 0.409092 -0.576862 -0.707018 -vn 0.409092 -0.576862 -0.707018 -vn 0.013161 0.008894 -0.999874 -vn 0.013161 0.008894 -0.999874 -vn -0.382773 0.594654 -0.707016 -vn -0.382773 0.594654 -0.707016 -vn -0.546773 0.837281 0.000000 -vn -0.546773 0.837281 0.000000 -vn -0.382773 0.594654 0.707016 -vn -0.382773 0.594654 0.707016 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn -0.005048 0.008466 -0.999951 -vn -0.001558 0.003019 -0.999994 -vn -0.008365 0.009773 -0.999917 -vn -0.006180 0.002751 -0.999977 -vn 0.031027 -0.045147 -0.998498 -vn 0.083067 -0.146694 -0.985688 -vn 0.171496 -0.296152 -0.939618 -vn 0.379549 -0.370895 -0.847573 -vn 0.612488 -0.633300 -0.473064 -vn 0.001662 -0.284907 -0.958554 -vn -0.002601 -0.611459 -0.791272 -vn -0.004739 -0.614960 -0.788544 -vn -0.001656 -0.620166 -0.784469 -vn -0.002364 -0.624637 -0.780912 -vn -0.003943 -0.628088 -0.778132 -vn -0.002765 -0.630722 -0.776004 -vn 0.001016 -0.631656 -0.775248 -vn 0.055700 -0.627733 -0.776433 -vn 0.226451 -0.593755 -0.772124 -vn 0.431595 -0.502047 -0.749449 -vn 0.559688 -0.398391 -0.726660 -vn 0.640943 -0.317266 -0.698952 -vn 0.637526 -0.529415 -0.559715 -vn 0.328249 -0.731406 -0.597743 -vn 0.503599 -0.691202 -0.518294 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.004050 -0.001464 -0.999991 -vn 0.004050 -0.001464 -0.999991 -vn 0.008099 -0.002928 -0.999963 -vn 0.008099 -0.002928 -0.999963 -vn 0.008099 -0.002928 -0.999963 -vn -0.000622 -0.957209 -0.289396 -vn -0.032745 -0.924632 -0.379451 -vn -0.088118 -0.757908 -0.646383 -vn -0.126585 -0.324875 -0.937248 -vn -0.155548 0.179096 -0.971457 -vn -0.182194 0.240699 -0.953346 -vn 0.682096 -0.710442 -0.173255 -vn 0.382114 -0.914355 -0.133959 -vn 0.484499 -0.866370 -0.121091 -vn 0.387995 -0.898366 -0.205909 -vn 0.665242 -0.692669 -0.278679 -vn 0.619534 -0.642008 -0.451667 -vn 0.343405 -0.880083 -0.327913 -vn 0.138085 -0.809093 -0.571228 -vn 0.423232 -0.483997 -0.765912 -vn -0.443970 0.883317 -0.150474 -vn -0.278328 0.947710 -0.156141 -vn -0.028994 0.982343 -0.184829 -vn 0.180907 0.973766 -0.138031 -vn -0.234810 -0.551473 -0.800463 -vn 0.112474 -0.299001 -0.947601 -vn -0.429138 -0.313068 -0.847248 -vn 0.058509 -0.134104 -0.989239 -vn 0.210505 0.971281 -0.110905 -vn 0.285194 0.197417 -0.937918 -vn 0.357690 0.769708 -0.528778 -vn 0.319524 0.907313 -0.273288 -vn 0.019270 0.977705 -0.209097 -vn -0.085357 0.390766 0.916524 -vn 0.317031 0.181809 -0.930826 -vn 0.436582 0.371589 -0.819340 -vn -0.191248 0.436032 0.879375 -vn 0.446545 0.800932 -0.398881 -vn -0.279063 0.516941 0.809256 -vn 0.068499 0.970003 -0.233244 -vn -0.313107 0.940180 -0.134258 -vn -0.443970 0.883317 -0.150474 -vn -0.191248 0.436032 0.879375 -vn -0.279063 0.516941 0.809256 -vn -0.085357 0.390766 0.916524 -vn -0.265697 0.367191 0.891390 -vn 0.382048 0.076277 -0.920989 -vn 0.556969 -0.013670 -0.830421 -vn 0.405430 0.172048 -0.897790 -vn 0.500121 0.035416 -0.865231 -vn 0.297561 0.153827 -0.942229 -vn 0.333241 0.015263 -0.942718 -vn 0.145215 -0.018635 -0.989225 -vn 0.123103 0.109724 -0.986309 -vn 0.095854 0.135837 -0.986083 -vn 0.110890 -0.030335 -0.993370 -vn 0.049046 0.176580 -0.983064 -vn 0.070909 -0.018533 -0.997311 -vn 0.007370 0.115608 -0.993268 -vn 0.040821 0.045228 -0.998142 -vn 0.004079 0.088693 -0.996051 -vn 0.004596 0.101518 -0.994823 -vn 0.013448 0.082595 -0.996492 -vn -0.015378 0.105704 -0.994279 -vn -0.044604 0.105798 -0.993387 -vn -0.029288 0.098868 -0.994669 -vn -0.032949 0.131347 -0.990789 -vn -0.045682 0.237634 -0.970280 -vn -0.042621 0.067021 -0.996841 -vn -0.093170 0.254066 -0.962689 -vn -0.072399 0.073942 -0.994631 -vn -0.125141 0.258126 -0.957972 -vn -0.105730 0.094396 -0.989904 -vn 0.304162 0.023810 -0.952323 -vn 0.270011 0.041486 -0.961963 -vn 0.374880 0.143776 -0.915857 -vn 0.265584 0.072621 -0.961349 -vn 0.298003 0.116049 -0.947484 -vn 0.159298 0.154959 -0.974993 -vn 0.234602 0.113939 -0.965391 -vn 0.320457 0.197980 -0.926343 -vn 0.136348 0.119007 -0.983487 -vn 0.151169 0.093855 -0.984042 -vn 0.146094 0.075611 -0.986377 -vn 0.112454 0.305711 -0.945460 -vn 0.017516 0.256234 -0.966456 -vn 0.000000 0.327190 -0.944959 -vn -0.027045 0.261613 -0.964794 -vn 0.017531 0.108058 -0.993990 -vn 0.020891 0.168337 -0.985508 -vn 0.031172 0.086795 -0.995738 -vn 0.086871 0.090782 -0.992075 -vn 0.116889 0.165352 -0.979283 -vn 0.116889 0.165352 -0.979283 -vn 0.053620 0.110638 -0.992413 -vn -0.018860 0.116248 -0.993041 -vn 0.030185 0.137334 -0.990065 -vn -0.012559 0.088054 -0.996037 -vn -0.177074 0.118082 -0.977088 -vn 0.000025 0.031657 -0.999499 -vn 0.038914 0.255286 -0.966082 -vn 0.015496 0.272673 -0.961982 -vn 0.000000 0.279250 -0.960218 -vn -0.006966 0.048920 -0.998778 -vn -0.004497 0.140224 -0.990110 -vn -0.004148 0.141952 -0.989865 -vn -0.004147 0.141439 -0.989938 -vn -0.017246 0.127797 -0.991650 -vn -0.026184 0.030281 -0.999198 -vn 0.016002 0.277204 -0.960678 -vn 0.016002 0.277204 -0.960678 -vn -0.012361 0.268507 -0.963198 -vn -0.012361 0.268507 -0.963198 -vn 0.000000 0.218824 -0.975764 -vn -0.023383 0.234430 -0.971852 -vn 0.000185 0.310974 -0.950418 -vn 0.000000 0.310542 -0.950560 -vn -0.061505 0.213730 -0.974955 -vn 0.000184 0.313300 -0.949654 -vn 0.000000 0.313741 -0.949509 -vn 0.000385 0.311767 -0.950159 -vn 0.000384 0.312493 -0.949920 -vn -0.081234 0.271336 -0.959051 -vn -0.130536 0.166777 -0.977316 -vn -0.087111 0.239852 -0.966893 -vn -0.119249 0.254206 -0.959770 -vn -0.132231 0.332916 -0.933639 -vn -0.163495 0.235513 -0.958020 -vn 0.109746 0.210021 -0.971518 -vn -0.088396 0.283924 -0.954763 -vn -0.047399 -0.020257 -0.998671 -vn -0.070976 0.018118 -0.997313 -vn 0.000000 -0.096813 -0.995303 -vn -0.014779 -0.045290 -0.998865 -vn -0.094775 -0.019741 -0.995303 -vn -0.063320 0.024917 -0.997682 -vn 0.014963 0.343466 -0.939046 -vn 0.014963 0.343466 -0.939046 -vn 0.044018 0.097420 -0.994269 -vn -0.014780 0.060170 -0.998079 -vn -0.010960 0.166519 -0.985977 -vn 0.000000 0.113789 -0.993505 -vn -0.065852 0.234308 -0.969930 -vn 0.381431 0.120164 -0.916554 -vn 0.264827 0.332418 0.905188 -vn 0.148874 0.354954 0.922954 -vn -0.004617 0.173236 -0.984869 -vn -0.051868 0.232639 -0.971179 -vn -0.139632 0.244987 -0.959419 -vn -0.169449 0.263015 -0.949795 -vn -0.182194 0.240699 -0.953346 -vn 0.716915 0.112171 -0.688078 -vn 0.758164 0.095473 -0.645037 -vn 0.758164 0.095473 -0.645037 -vn 0.716915 0.112171 -0.688078 -vn -0.183085 0.157225 -0.970443 -vn 0.148874 0.354954 0.922954 -vn 0.359364 0.324809 0.874846 -vn 0.367321 0.351698 0.861037 -vn 0.297364 0.317491 0.900430 -vn 0.458623 0.303871 0.835061 -vn 0.469618 0.323039 0.821647 -vn 0.276933 0.372860 0.885598 -vn 0.297364 0.317491 0.900430 -vn 0.312759 0.218473 0.924365 -vn 0.094421 0.280653 0.955154 -vn -0.018003 0.377460 0.925851 -vn -0.066775 0.368329 0.927294 -vn -0.177074 0.118082 -0.977088 -vn -0.293864 0.230645 0.927603 -vn -0.085639 0.233313 -0.968623 -vn -0.361786 0.326763 0.873119 -vn -0.146949 0.479817 0.864975 -vn 0.048479 0.329208 -0.943012 -vn 0.097063 0.293624 -0.950980 -vn 0.115750 0.257383 -0.959352 -vn 0.212250 0.267783 0.939809 -vn -0.018003 0.377460 0.925851 -vn -0.066775 0.368329 0.927294 -vn -0.293864 0.230645 0.927603 -vn -0.011620 -0.958525 -0.284770 -vn -0.016400 -0.961439 -0.274527 -vn -0.009060 -0.964396 -0.264307 -vn -0.007042 -0.966195 -0.257717 -vn -0.011348 -0.967312 -0.253337 -vn -0.008201 -0.968389 -0.249311 -vn 0.001985 -0.968728 -0.248118 -vn 0.099841 -0.959526 -0.263329 -vn 0.350932 -0.896456 -0.270578 -vn 0.637211 -0.736703 -0.226343 -vn 0.810509 -0.563456 -0.159977 -vn 0.898578 -0.431620 -0.079123 -vn -0.027915 -0.929989 -0.366525 -vn -0.025304 -0.933217 -0.358422 -vn -0.021026 -0.931393 -0.363408 -vn -0.013125 -0.931310 -0.363990 -vn -0.017126 -0.929639 -0.368073 -vn -0.009906 -0.925524 -0.378560 -vn 0.017727 -0.913313 -0.406872 -vn 0.138306 -0.872253 -0.469091 -vn 0.350660 -0.781717 -0.515709 -vn 0.604752 -0.636012 -0.479337 -vn 0.779066 -0.492478 -0.387970 -vn 0.869206 -0.411663 -0.273889 -vn -0.051298 -0.773044 -0.632274 -vn -0.029597 -0.786952 -0.616304 -vn -0.033228 -0.783409 -0.620617 -vn -0.020186 -0.775990 -0.630422 -vn -0.005117 -0.761370 -0.648297 -vn 0.018569 -0.730812 -0.682326 -vn 0.057344 -0.685707 -0.725615 -vn 0.162821 -0.645857 -0.745894 -vn 0.327546 -0.624718 -0.708831 -vn 0.568254 -0.552002 -0.610231 -vn 0.745434 -0.452974 -0.489023 -vn 0.828394 -0.409274 -0.382436 -vn -0.083031 -0.336373 -0.938061 -vn -0.049527 -0.354987 -0.933559 -vn -0.041844 -0.357783 -0.932867 -vn -0.021024 -0.344348 -0.938607 -vn 0.019876 -0.328586 -0.944265 -vn 0.058985 -0.312457 -0.948099 -vn 0.081012 -0.303002 -0.949540 -vn 0.135971 -0.321898 -0.936960 -vn 0.243140 -0.369569 -0.896829 -vn 0.485396 -0.368969 -0.792624 -vn 0.682836 -0.329533 -0.652029 -vn 0.768168 -0.313531 -0.558226 -vn 0.578350 0.285793 -0.764090 -vn 0.250386 0.130226 -0.959348 -vn 0.231372 0.415637 -0.879609 -vn 0.282524 0.559972 -0.778853 -vn 0.676715 0.399167 -0.618646 -vn 0.659150 0.075212 -0.748241 -vn 0.647834 -0.110155 -0.753775 -vn 0.590692 -0.107892 -0.799651 -vn 0.405847 0.360061 -0.840026 -vn 0.676715 0.399167 -0.618646 -vn 0.659150 0.075212 -0.748241 -vn 0.647834 -0.110155 -0.753775 -vn 0.590692 -0.107892 -0.799651 -vn 0.590692 -0.107892 -0.799651 -vn 0.590692 -0.107892 -0.799651 -vn 0.282524 0.559972 -0.778853 -vn -0.450579 0.527013 -0.720580 -vn -0.450579 0.527013 -0.720580 -vn -0.295642 0.828243 -0.476035 -vn -0.295642 0.828243 -0.476035 -vn -0.089100 0.984906 -0.148399 -vn 0.003960 -0.990569 -0.136954 -vn 0.003960 -0.990569 -0.136954 -vn -0.054248 -0.035311 -0.997903 -vn -0.056548 -0.026579 -0.998046 -vn -0.058844 -0.017845 -0.998108 -vn -0.040494 -0.294223 -0.954878 -vn -0.008242 -0.844924 -0.534823 -vn -0.046832 -0.642706 -0.764680 -vn -0.048895 -0.289439 -0.955947 -vn -0.057227 -0.284663 -0.956918 -vn -0.078329 -0.403392 -0.911668 -vn -0.139225 -0.140428 -0.980253 -vn -0.139225 -0.140428 -0.980253 -vn -0.176416 0.006735 -0.984293 -vn -0.176416 0.006735 -0.984293 -vn -0.176416 0.006735 -0.984293 -vn 0.950690 -0.100397 -0.293442 -vn 0.917871 0.186096 -0.350544 -vn 0.868001 0.138068 -0.476981 -vn 0.830271 -0.196277 -0.521657 -vn 0.950690 -0.100397 -0.293442 -vn 0.917871 0.186096 -0.350544 -vn 0.868001 0.138068 -0.476981 -vn 0.830271 -0.196277 -0.521657 -vn -0.000197 -0.000261 -1.000000 -vn -0.000082 -0.000105 -1.000000 -vn -0.000082 -0.000105 -1.000000 -vn -0.000140 -0.000183 -1.000000 -vn -0.000140 -0.000183 -1.000000 -vn -0.000166 -0.000082 1.000000 -vn -0.000210 -0.000192 1.000000 -vn -0.000188 -0.000137 1.000000 -vn -0.000210 -0.000192 1.000000 -vn -0.000188 -0.000137 1.000000 -vn -0.000017 0.000000 -1.000000 -vn 0.000000 -0.000016 -1.000000 -vn 0.000000 -0.000016 -1.000000 -vn -0.000008 -0.000008 -1.000000 -vn -0.000008 -0.000008 -1.000000 -vn -0.555518 -0.368362 0.745459 -vn -0.476491 -0.321209 0.818402 -vn -0.390893 -0.269628 0.880059 -vn -0.476491 -0.321209 0.818402 -vn -0.390893 -0.269628 0.880059 -vn -0.000305 -0.000229 1.000000 -vn -0.000225 -0.000132 1.000000 -vn -0.000265 -0.000181 1.000000 -vn -0.000225 -0.000132 1.000000 -vn -0.000265 -0.000181 1.000000 -vn -0.003009 0.999937 -0.010797 -vn 0.365466 0.930591 -0.020860 -vn 0.791482 0.609971 -0.038629 -vn 0.883316 0.466393 -0.047226 -vn 0.887087 0.459285 -0.046201 -vn 0.887087 0.459285 -0.046201 -vn 0.883316 0.466393 -0.047226 -vn 0.791482 0.609971 -0.038629 -vn 0.365466 0.930591 -0.020860 -vn -0.003009 0.999937 -0.010797 -vn 0.899818 0.432912 0.053989 -vn 0.855654 0.497688 0.141994 -vn 0.791101 0.611685 0.000000 -vn 0.667633 0.742423 0.055444 -vn 0.668223 0.743041 0.036983 -vn 0.668698 0.743534 0.000000 -vn -0.000002 0.998668 0.051588 -vn -0.000001 0.999408 0.034409 -vn 0.000000 1.000000 0.000000 -vn -0.667632 0.742424 0.055444 -vn -0.668222 0.743042 0.036983 -vn -0.668698 0.743534 0.000000 -vn -0.899815 0.432919 0.053989 -vn -0.900545 0.433268 0.036010 -vn -0.901130 0.433548 0.000000 -vn 0.745737 0.666074 0.014915 -vn 0.745737 0.666074 0.014915 -vn 0.745737 0.666074 0.014915 -vn 0.749358 0.661826 0.021169 -vn 0.756453 0.653702 0.021301 -vn 0.855819 0.216306 0.469878 -vn 0.835209 0.472749 0.280953 -vn 0.734879 0.677350 0.033918 -vn 0.705775 0.708095 0.021988 -vn 0.696867 0.716869 0.021803 -vn 0.692228 0.721546 0.013841 -vn 0.692296 0.721613 0.000000 -vn 0.909932 0.326044 0.256358 -vn 0.840054 0.537837 0.070998 -vn 0.808999 0.582269 0.080523 -vn 0.774704 0.631568 0.030906 -vn 0.766343 0.642432 0.000000 -vn 0.916005 0.359898 0.177223 -vn 0.908113 0.414910 0.056399 -vn 0.906833 0.421491 0.000000 -vn 0.852002 0.105637 0.512771 -vn 0.852948 0.109895 0.510297 -vn 0.812134 -0.000004 0.583472 -vn 0.845581 0.033342 0.532805 -vn 0.912297 0.090853 0.399324 -vn 0.942579 0.239933 0.232329 -vn 0.772410 -0.203442 0.601659 -vn 0.820110 -0.184602 0.541610 -vn 0.910916 -0.148014 0.385129 -vn 0.961603 -0.135715 0.238542 -vn 0.979385 -0.142420 0.143254 -vn 0.990364 -0.132350 0.040778 -vn 0.992556 -0.121791 0.000000 -vn 0.747426 -0.435266 0.501894 -vn 0.779154 -0.476694 0.407041 -vn 0.823362 -0.518545 0.230620 -vn 0.850162 -0.517719 0.095870 -vn 0.852938 -0.521533 0.022390 -vn 0.847102 -0.531397 0.005863 -vn 0.846332 -0.532656 -0.000027 -vn 0.730419 -0.548998 0.406312 -vn 0.740092 -0.613764 0.274877 -vn 0.752137 -0.648224 0.118726 -vn 0.802817 -0.593755 0.054228 -vn 0.832290 -0.554339 -0.000851 -vn 0.811583 -0.584236 -0.000878 -vn 0.789837 -0.613316 -0.000054 -vn 0.668223 0.743041 -0.036983 -vn 0.667633 0.742423 -0.055444 -vn 0.899818 0.432912 -0.053989 -vn 0.855654 0.497688 -0.141994 -vn 0.749358 0.661826 -0.021169 -vn 0.745737 0.666074 -0.014915 -vn 0.745737 0.666074 -0.014915 -vn 0.745737 0.666074 -0.014915 -vn 0.756453 0.653702 -0.021301 -vn -0.000001 0.999408 -0.034409 -vn -0.000002 0.998668 -0.051588 -vn -0.668222 0.743042 -0.036983 -vn -0.667632 0.742424 -0.055444 -vn -0.900545 0.433268 -0.036010 -vn -0.899815 0.432919 -0.053989 -vn 0.835209 0.472749 -0.280953 -vn 0.734879 0.677350 -0.033918 -vn 0.705775 0.708095 -0.021988 -vn 0.696867 0.716869 -0.021803 -vn 0.692228 0.721546 -0.013841 -vn 0.909932 0.326044 -0.256358 -vn 0.840054 0.537838 -0.070998 -vn 0.808999 0.582269 -0.080523 -vn 0.774704 0.631568 -0.030906 -vn 0.916005 0.359898 -0.177223 -vn 0.908113 0.414910 -0.056399 -vn 0.855819 0.216306 -0.469878 -vn 0.852002 0.105637 -0.512771 -vn 0.852948 0.109895 -0.510297 -vn 0.812134 -0.000004 -0.583472 -vn 0.845581 0.033342 -0.532805 -vn 0.912297 0.090853 -0.399324 -vn 0.942579 0.239933 -0.232329 -vn 0.772410 -0.203442 -0.601659 -vn 0.820110 -0.184602 -0.541610 -vn 0.910916 -0.148014 -0.385129 -vn 0.961603 -0.135715 -0.238542 -vn 0.979385 -0.142420 -0.143254 -vn 0.990364 -0.132350 -0.040778 -vn 0.747426 -0.435266 -0.501894 -vn 0.779154 -0.476694 -0.407041 -vn 0.823362 -0.518545 -0.230620 -vn 0.850162 -0.517719 -0.095870 -vn 0.852937 -0.521533 -0.022390 -vn 0.847112 -0.531381 -0.005890 -vn 0.730419 -0.548997 -0.406312 -vn 0.740092 -0.613764 -0.274877 -vn 0.752137 -0.648224 -0.118726 -vn 0.802817 -0.593755 -0.054228 -vn 0.832290 -0.554339 0.000851 -vn 0.811606 -0.584205 0.000825 -vn 0.899819 -0.432909 0.053989 -vn 0.899819 -0.432909 0.053989 -vn -0.899816 -0.432916 0.053989 -vn -0.900546 -0.433267 0.036010 -vn -0.901130 -0.433548 0.000000 -vn -0.667634 -0.742422 0.055444 -vn -0.662365 -0.748272 0.036898 -vn -0.656896 -0.753981 0.000000 -vn -0.000002 -0.998668 0.051588 -vn 0.017436 -0.999254 0.034473 -vn 0.034891 -0.999391 0.000000 -vn 0.667636 -0.742420 0.055444 -vn 0.571899 -0.819217 0.042606 -vn 0.371705 -0.928351 0.000000 -vn 0.371651 -0.928215 0.017132 -vn 0.371651 -0.928215 0.017132 -vn 0.371651 -0.928215 0.017132 -vn 0.371651 -0.928215 0.017132 -vn 0.371651 -0.928215 0.017132 -vn 0.899819 -0.432909 -0.053989 -vn 0.899819 -0.432909 -0.053989 -vn -0.900546 -0.433267 -0.036010 -vn -0.899816 -0.432916 -0.053989 -vn -0.662365 -0.748272 -0.036898 -vn -0.667635 -0.742422 -0.055444 -vn 0.017436 -0.999254 -0.034473 -vn -0.000002 -0.998668 -0.051588 -vn 0.571899 -0.819217 -0.042606 -vn 0.667636 -0.742420 -0.055444 -vn 0.371651 -0.928214 -0.017132 -vn 0.371651 -0.928214 -0.017132 -vn 0.371651 -0.928214 -0.017132 -vn 0.371651 -0.928214 -0.017132 -vn 0.371651 -0.928214 -0.017132 -vn -0.810233 -0.571641 -0.129415 -vn -0.671909 -0.740634 0.000000 -vn -0.676821 -0.736114 -0.007072 -vn -0.686546 -0.727050 -0.007295 -vn -0.696069 -0.717935 -0.007512 -vn -0.711305 -0.702696 -0.016204 -vn -0.769136 -0.634378 -0.077422 -vn -0.900372 -0.372538 -0.224823 -vn -0.922923 -0.139675 -0.358754 -vn -0.889126 -0.025617 -0.456944 -vn -0.844278 0.196119 -0.498731 -vn -0.795508 0.420875 -0.435926 -vn -0.766404 0.521943 -0.374433 -vn -0.772261 0.565928 -0.288684 -vn -0.793697 0.580479 -0.181904 -vn -0.856434 0.505553 -0.104576 -vn -0.892435 0.450389 -0.026622 -vn -0.873734 0.486253 -0.012079 -vn -0.852481 0.522757 0.000103 -vn -0.909932 -0.326044 -0.256358 -vn -0.840054 -0.537837 -0.070998 -vn -0.756313 -0.653454 -0.031438 -vn -0.808999 -0.582269 -0.080522 -vn -0.715976 -0.697868 -0.018952 -vn -0.729169 -0.684063 -0.019231 -vn -0.774704 -0.631568 -0.030905 -vn -0.706757 -0.707373 -0.010897 -vn -0.766343 -0.642431 0.000000 -vn -0.704435 -0.709768 0.000000 -vn -0.916005 -0.359898 -0.177223 -vn -0.908113 -0.414910 -0.056398 -vn -0.906833 -0.421491 0.000000 -vn -0.865371 -0.449519 -0.221508 -vn -0.891470 -0.127348 -0.434814 -vn -0.882252 -0.046081 -0.468518 -vn -0.912297 -0.090853 -0.399324 -vn -0.942579 -0.239933 -0.232329 -vn -0.853820 0.180375 -0.488320 -vn -0.910916 0.148014 -0.385129 -vn -0.961603 0.135715 -0.238542 -vn -0.979385 0.142420 -0.143254 -vn -0.990364 0.132350 -0.040778 -vn -0.992556 0.121791 0.000000 -vn -0.805482 0.449555 -0.386134 -vn -0.837657 0.479937 -0.260749 -vn -0.873595 0.471447 -0.120704 -vn -0.882382 0.469145 -0.036116 -vn -0.876455 0.481325 -0.012330 -vn -0.874376 0.485250 0.000052 -vn -0.810233 -0.571641 0.129415 -vn -0.676821 -0.736114 0.007072 -vn -0.686546 -0.727050 0.007295 -vn -0.696069 -0.717935 0.007512 -vn -0.711305 -0.702696 0.016205 -vn -0.769136 -0.634378 0.077422 -vn -0.900372 -0.372538 0.224823 -vn -0.922923 -0.139675 0.358754 -vn -0.889126 -0.025617 0.456944 -vn -0.844278 0.196119 0.498731 -vn -0.795508 0.420875 0.435926 -vn -0.766404 0.521943 0.374433 -vn -0.772261 0.565928 0.288684 -vn -0.793697 0.580480 0.181903 -vn -0.856434 0.505553 0.104576 -vn -0.892435 0.450389 0.026622 -vn -0.873776 0.486176 0.012183 -vn -0.756313 -0.653454 0.031438 -vn -0.840054 -0.537837 0.070998 -vn -0.909932 -0.326044 0.256358 -vn -0.729169 -0.684063 0.019231 -vn -0.715976 -0.697868 0.018952 -vn -0.808999 -0.582269 0.080523 -vn -0.706757 -0.707373 0.010897 -vn -0.774704 -0.631568 0.030905 -vn -0.908113 -0.414910 0.056398 -vn -0.916005 -0.359898 0.177223 -vn -0.865371 -0.449519 0.221508 -vn -0.891470 -0.127348 0.434814 -vn -0.882252 -0.046081 0.468518 -vn -0.912297 -0.090853 0.399324 -vn -0.942579 -0.239933 0.232329 -vn -0.853820 0.180375 0.488320 -vn -0.910916 0.148014 0.385128 -vn -0.961603 0.135715 0.238542 -vn -0.979385 0.142420 0.143254 -vn -0.990364 0.132350 0.040778 -vn -0.805482 0.449555 0.386134 -vn -0.837657 0.479937 0.260749 -vn -0.873595 0.471447 0.120704 -vn -0.882382 0.469145 0.036116 -vn -0.876476 0.481286 0.012381 -vn 0.738347 0.674421 0.000000 -vn 0.805468 0.567633 -0.170335 -vn 0.863787 0.499063 -0.069343 -vn 0.619227 0.785212 0.000000 -vn 0.618558 0.784468 -0.044670 -vn 0.617736 0.783530 -0.066952 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.999265 -0.038328 -vn 0.000000 0.998348 -0.057460 -vn -0.619247 0.785197 0.000000 -vn -0.618569 0.784460 -0.044669 -vn -0.617738 0.783529 -0.066951 -vn -0.865875 0.500261 0.000000 -vn -0.864947 0.499727 -0.046263 -vn -0.863789 0.499060 -0.069341 -vn 0.695032 0.718582 -0.023876 -vn 0.689708 0.723699 -0.023740 -vn 0.687015 0.726411 -0.018382 -vn 0.687015 0.726411 -0.018382 -vn 0.687015 0.726411 -0.018379 -vn 0.624714 0.780854 0.000000 -vn 0.624466 0.780880 -0.016398 -vn 0.628227 0.777635 -0.024792 -vn 0.636735 0.770667 -0.025327 -vn 0.717441 0.690516 -0.092012 -vn 0.798070 0.525003 -0.295730 -vn 0.780741 0.288022 -0.554514 -vn 0.731224 0.682138 0.000000 -vn 0.732744 0.680135 -0.022425 -vn 0.753104 0.652786 -0.081886 -vn 0.786793 0.583571 -0.201000 -vn 0.843100 0.418041 -0.338267 -vn 0.800048 0.262514 -0.539453 -vn 0.769962 0.223391 -0.597708 -vn 0.880395 0.474241 0.000000 -vn 0.882146 0.469741 -0.034090 -vn 0.882090 0.440111 -0.167985 -vn 0.866349 0.382375 -0.321293 -vn 0.834359 0.308219 -0.456996 -vn 0.757131 0.222409 -0.614237 -vn 0.729457 0.179958 -0.659930 -vn 0.996828 -0.079589 0.000000 -vn 0.996258 -0.085400 -0.013287 -vn 0.991315 -0.062658 -0.115625 -vn 0.949413 -0.021307 -0.313306 -vn 0.866787 -0.010319 -0.498572 -vn 0.771048 0.023567 -0.636341 -vn 0.732066 0.057951 -0.678764 -vn 0.810683 -0.585485 0.000000 -vn 0.811337 -0.584039 0.025115 -vn 0.820110 -0.571400 0.030345 -vn 0.829057 -0.541638 -0.138900 -vn 0.817000 -0.484846 -0.312147 -vn 0.824654 -0.352067 -0.442713 -vn 0.745632 -0.036899 -0.665336 -vn 0.718556 -0.695469 0.000000 -vn 0.725301 -0.687574 0.034360 -vn 0.709476 -0.701217 0.070270 -vn 0.690551 -0.722539 -0.032824 -vn 0.702154 -0.701121 -0.124136 -vn 0.726806 -0.682700 -0.075323 -vn 0.821862 -0.413404 -0.391969 -vn 0.687015 0.726411 0.018382 -vn 0.687015 0.726411 0.018382 -vn 0.689708 0.723699 0.023740 -vn 0.695032 0.718582 0.023876 -vn 0.805468 0.567634 0.170335 -vn 0.618558 0.784468 0.044669 -vn 0.687015 0.726411 0.018379 -vn 0.617736 0.783530 0.066951 -vn 0.863787 0.499063 0.069342 -vn 0.000000 0.999265 0.038328 -vn -0.000001 0.998348 0.057460 -vn -0.618569 0.784460 0.044669 -vn -0.617738 0.783529 0.066950 -vn -0.864947 0.499727 0.046262 -vn -0.863789 0.499060 0.069340 -vn 0.624466 0.780880 0.016398 -vn 0.628227 0.777635 0.024792 -vn 0.636735 0.770667 0.025327 -vn 0.717441 0.690516 0.092012 -vn 0.798070 0.525003 0.295730 -vn 0.780741 0.288022 0.554514 -vn 0.732744 0.680135 0.022425 -vn 0.753104 0.652786 0.081886 -vn 0.786793 0.583571 0.201000 -vn 0.843100 0.418041 0.338267 -vn 0.800048 0.262514 0.539453 -vn 0.769962 0.223391 0.597709 -vn 0.882146 0.469741 0.034090 -vn 0.882090 0.440111 0.167985 -vn 0.866349 0.382375 0.321293 -vn 0.834359 0.308219 0.456996 -vn 0.757131 0.222409 0.614237 -vn 0.729457 0.179958 0.659930 -vn 0.996258 -0.085400 0.013287 -vn 0.991315 -0.062658 0.115625 -vn 0.949413 -0.021307 0.313306 -vn 0.866786 -0.010319 0.498573 -vn 0.771048 0.023567 0.636341 -vn 0.732066 0.057951 0.678764 -vn 0.811337 -0.584039 -0.025115 -vn 0.820110 -0.571400 -0.030345 -vn 0.829057 -0.541638 0.138900 -vn 0.817000 -0.484846 0.312147 -vn 0.824654 -0.352067 0.442713 -vn 0.745632 -0.036899 0.665336 -vn 0.725301 -0.687574 -0.034360 -vn 0.709476 -0.701217 -0.070270 -vn 0.690551 -0.722539 0.032824 -vn 0.702154 -0.701121 0.124137 -vn 0.726806 -0.682700 0.075323 -vn 0.821862 -0.413404 0.391969 -vn 0.863809 -0.499025 -0.069340 -vn 0.863809 -0.499025 -0.069340 -vn -0.865891 -0.500233 0.000000 -vn -0.864965 -0.499694 -0.046264 -vn -0.863810 -0.499022 -0.069341 -vn -0.608435 -0.793604 0.000000 -vn -0.607419 -0.793149 -0.044239 -vn -0.606266 -0.792515 -0.066043 -vn 0.030470 -0.999536 0.000000 -vn 0.031549 -0.998760 -0.038505 -vn 0.032621 -0.997795 -0.057794 -vn 0.316691 -0.948529 0.000000 -vn 0.530133 -0.846344 -0.051588 -vn 0.631845 -0.772102 -0.068051 -vn 0.316637 -0.948366 -0.018523 -vn 0.316637 -0.948366 -0.018523 -vn 0.316637 -0.948366 -0.018523 -vn 0.316637 -0.948366 -0.018523 -vn 0.316637 -0.948366 -0.018523 -vn 0.863809 -0.499025 0.069340 -vn 0.863809 -0.499025 0.069340 -vn -0.864965 -0.499694 0.046264 -vn -0.863810 -0.499022 0.069341 -vn -0.607419 -0.793149 0.044240 -vn -0.606266 -0.792515 0.066044 -vn 0.031549 -0.998760 0.038505 -vn 0.032621 -0.997795 0.057794 -vn 0.530133 -0.846344 0.051587 -vn 0.316637 -0.948366 0.018523 -vn 0.316637 -0.948366 0.018523 -vn 0.316637 -0.948366 0.018523 -vn 0.316637 -0.948366 0.018523 -vn 0.316637 -0.948366 0.018523 -vn 0.631845 -0.772102 0.068051 -vn -0.599290 -0.800532 0.000000 -vn -0.746101 -0.646479 0.159366 -vn -0.701104 -0.707070 0.092223 -vn -0.639524 -0.768591 0.016628 -vn -0.624929 -0.780630 0.008978 -vn -0.614770 -0.788659 0.008694 -vn -0.604469 -0.796585 0.008397 -vn -0.848774 -0.450443 0.276919 -vn -0.871169 -0.237734 0.429590 -vn -0.832683 -0.174623 0.525496 -vn -0.828398 -0.010699 0.560038 -vn -0.829863 0.122709 0.544307 -vn -0.794675 0.607035 0.000000 -vn -0.800988 0.598102 -0.026321 -vn -0.783234 0.619693 -0.050241 -vn -0.761361 0.642562 0.086279 -vn -0.769103 0.605752 0.203825 -vn -0.799205 0.578094 0.164555 -vn -0.852670 0.383166 0.355157 -vn -0.731224 -0.682137 0.000000 -vn -0.732744 -0.680135 0.022424 -vn -0.637954 -0.769966 0.012870 -vn -0.635658 -0.771970 0.000000 -vn -0.753104 -0.652786 0.081886 -vn -0.646651 -0.762486 0.021393 -vn -0.786793 -0.583571 0.201001 -vn -0.659868 -0.751057 0.022055 -vn -0.737981 -0.668945 0.088861 -vn -0.843100 -0.418041 0.338266 -vn -0.839173 -0.496739 0.221446 -vn -0.849263 -0.269218 0.454175 -vn -0.880395 -0.474241 0.000000 -vn -0.882146 -0.469741 0.034089 -vn -0.882090 -0.440111 0.167985 -vn -0.866349 -0.382375 0.321293 -vn -0.834360 -0.308219 0.456996 -vn -0.808351 -0.219583 0.546216 -vn -0.996828 0.079589 0.000000 -vn -0.996258 0.085400 0.013287 -vn -0.991315 0.062658 0.115625 -vn -0.949413 0.021307 0.313306 -vn -0.866786 0.010319 0.498573 -vn -0.817925 0.000263 0.575325 -vn -0.843462 0.537189 0.000000 -vn -0.844250 0.535541 -0.020928 -vn -0.850533 0.525541 -0.019988 -vn -0.854246 0.493154 0.164505 -vn -0.835439 0.426097 0.347106 -vn -0.851671 0.327905 0.408821 -vn -0.746101 -0.646479 -0.159366 -vn -0.701104 -0.707070 -0.092223 -vn -0.639524 -0.768591 -0.016628 -vn -0.624929 -0.780630 -0.008978 -vn -0.614770 -0.788659 -0.008694 -vn -0.604469 -0.796585 -0.008397 -vn -0.848774 -0.450443 -0.276919 -vn -0.871169 -0.237734 -0.429590 -vn -0.832683 -0.174623 -0.525496 -vn -0.828398 -0.010700 -0.560038 -vn -0.829863 0.122709 -0.544306 -vn -0.800988 0.598102 0.026321 -vn -0.783234 0.619693 0.050241 -vn -0.761361 0.642562 -0.086279 -vn -0.769103 0.605752 -0.203824 -vn -0.799205 0.578094 -0.164555 -vn -0.852670 0.383166 -0.355157 -vn -0.637954 -0.769966 -0.012870 -vn -0.732744 -0.680135 -0.022424 -vn -0.646651 -0.762486 -0.021393 -vn -0.753104 -0.652786 -0.081886 -vn -0.659868 -0.751057 -0.022055 -vn -0.786793 -0.583571 -0.201001 -vn -0.737981 -0.668945 -0.088861 -vn -0.839173 -0.496739 -0.221446 -vn -0.843100 -0.418041 -0.338266 -vn -0.849263 -0.269218 -0.454175 -vn -0.882146 -0.469741 -0.034089 -vn -0.882090 -0.440111 -0.167985 -vn -0.866349 -0.382375 -0.321294 -vn -0.808351 -0.219583 -0.546216 -vn -0.834360 -0.308219 -0.456996 -vn -0.996258 0.085400 -0.013287 -vn -0.991315 0.062658 -0.115625 -vn -0.949413 0.021307 -0.313306 -vn -0.866786 0.010319 -0.498573 -vn -0.817925 0.000263 -0.575325 -vn -0.844250 0.535541 0.020928 -vn -0.850533 0.525541 0.019988 -vn -0.854246 0.493154 -0.164505 -vn -0.835439 0.426097 -0.347106 -vn -0.851671 0.327905 -0.408821 -vn 0.899889 0.432945 0.052521 -vn 0.856173 0.497731 0.138680 -vn 0.791103 0.611683 0.000000 -vn 0.667691 0.742482 0.053937 -vn 0.668249 0.743067 0.035977 -vn 0.668699 0.743533 0.000000 -vn -0.000002 0.998740 0.050186 -vn -0.000001 0.999440 0.033472 -vn 0.000000 1.000000 0.000000 -vn -0.667687 0.742485 0.053937 -vn -0.668247 0.743069 0.035977 -vn -0.668699 0.743534 0.000000 -vn -0.899883 0.432957 0.052521 -vn -0.900576 0.433284 0.035030 -vn -0.901132 0.433546 0.000000 -vn 0.745742 0.666076 0.014508 -vn 0.745742 0.666077 0.014508 -vn 0.745742 0.666077 0.014508 -vn 0.749368 0.661834 0.020592 -vn 0.756462 0.653710 0.020721 -vn 0.860948 0.217589 0.459809 -vn 0.837252 0.472812 0.274696 -vn 0.734903 0.677369 0.032995 -vn 0.705784 0.708104 0.021390 -vn 0.696876 0.716878 0.021209 -vn 0.692231 0.721550 0.013464 -vn 0.692296 0.721613 0.000000 -vn 0.911564 0.326059 0.250473 -vn 0.840178 0.537891 0.069091 -vn 0.809162 0.582337 0.078363 -vn 0.774726 0.631582 0.030066 -vn 0.766343 0.642432 0.000000 -vn 0.916801 0.360119 0.172597 -vn 0.908199 0.414926 0.054881 -vn 0.906833 0.421490 0.000000 -vn 0.858065 0.106377 0.502402 -vn 0.858963 0.110660 0.499938 -vn 0.819652 -0.000090 0.572862 -vn 0.852057 0.033503 0.522376 -vn 0.916174 0.091207 0.390264 -vn 0.943951 0.240171 0.226437 -vn 0.780046 -0.205409 0.591045 -vn 0.826581 -0.186060 0.531173 -vn 0.914503 -0.148473 0.376352 -vn 0.963096 -0.135585 0.232514 -vn 0.979949 -0.142243 0.139520 -vn 0.990415 -0.132297 0.039686 -vn 0.992556 -0.121789 0.000000 -vn 0.752566 -0.437952 0.491775 -vn 0.782666 -0.478388 0.398221 -vn 0.824610 -0.519048 0.224962 -vn 0.850384 -0.517822 0.093312 -vn 0.852950 -0.521538 0.021781 -vn 0.847103 -0.531398 0.005703 -vn 0.846332 -0.532656 -0.000026 -vn 0.733683 -0.551450 0.397004 -vn 0.741600 -0.614900 0.268192 -vn 0.752420 -0.648472 0.115536 -vn 0.802876 -0.593807 0.052761 -vn 0.832290 -0.554339 -0.000828 -vn 0.811583 -0.584236 -0.000855 -vn 0.789837 -0.613316 -0.000052 -vn 0.668249 0.743067 -0.035977 -vn 0.667691 0.742482 -0.053937 -vn 0.899889 0.432945 -0.052521 -vn 0.856173 0.497731 -0.138680 -vn 0.749368 0.661834 -0.020592 -vn 0.745742 0.666077 -0.014508 -vn 0.745742 0.666077 -0.014508 -vn 0.745742 0.666076 -0.014508 -vn 0.756462 0.653709 -0.020721 -vn -0.000002 0.999440 -0.033472 -vn -0.000002 0.998740 -0.050186 -vn -0.668247 0.743069 -0.035977 -vn -0.667688 0.742485 -0.053937 -vn -0.900576 0.433284 -0.035030 -vn -0.899883 0.432957 -0.052521 -vn 0.837252 0.472812 -0.274696 -vn 0.734903 0.677369 -0.032995 -vn 0.705784 0.708104 -0.021390 -vn 0.696876 0.716878 -0.021209 -vn 0.692231 0.721550 -0.013464 -vn 0.911564 0.326058 -0.250473 -vn 0.840178 0.537891 -0.069091 -vn 0.809162 0.582337 -0.078363 -vn 0.774726 0.631582 -0.030066 -vn 0.916801 0.360119 -0.172597 -vn 0.908199 0.414926 -0.054881 -vn 0.860948 0.217589 -0.459809 -vn 0.858065 0.106377 -0.502402 -vn 0.858963 0.110660 -0.499938 -vn 0.819652 -0.000090 -0.572862 -vn 0.852057 0.033503 -0.522376 -vn 0.916174 0.091206 -0.390264 -vn 0.943951 0.240171 -0.226436 -vn 0.780046 -0.205409 -0.591045 -vn 0.826581 -0.186060 -0.531173 -vn 0.914503 -0.148473 -0.376352 -vn 0.963096 -0.135585 -0.232514 -vn 0.979949 -0.142243 -0.139521 -vn 0.990415 -0.132297 -0.039686 -vn 0.752566 -0.437952 -0.491775 -vn 0.782666 -0.478388 -0.398221 -vn 0.824610 -0.519048 -0.224962 -vn 0.850384 -0.517822 -0.093312 -vn 0.852950 -0.521538 -0.021781 -vn 0.847113 -0.531381 -0.005729 -vn 0.733683 -0.551450 -0.397004 -vn 0.741600 -0.614900 -0.268192 -vn 0.752420 -0.648472 -0.115536 -vn 0.802876 -0.593807 -0.052761 -vn 0.832290 -0.554339 0.000828 -vn 0.811606 -0.584205 0.000803 -vn 0.899885 -0.432952 0.052522 -vn 0.899885 -0.432952 0.052522 -vn -0.899880 -0.432964 0.052522 -vn -0.900573 -0.433291 0.035031 -vn -0.901129 -0.433551 0.000000 -vn -0.667692 -0.742481 0.053937 -vn -0.662391 -0.748298 0.035894 -vn -0.656897 -0.753980 0.000000 -vn -0.000002 -0.998740 0.050186 -vn 0.017435 -0.999285 0.033535 -vn 0.034891 -0.999391 0.000000 -vn 0.667695 -0.742478 0.053937 -vn 0.571935 -0.819251 0.041448 -vn 0.371709 -0.928349 0.000000 -vn 0.371656 -0.928221 0.016665 -vn 0.371656 -0.928221 0.016665 -vn 0.371656 -0.928221 0.016665 -vn 0.371656 -0.928221 0.016665 -vn 0.371656 -0.928221 0.016665 -vn 0.899886 -0.432952 -0.052522 -vn 0.899886 -0.432952 -0.052522 -vn -0.900573 -0.433291 -0.035030 -vn -0.899880 -0.432964 -0.052521 -vn -0.662391 -0.748298 -0.035894 -vn -0.667692 -0.742481 -0.053937 -vn 0.017436 -0.999285 -0.033535 -vn -0.000002 -0.998740 -0.050186 -vn 0.571936 -0.819251 -0.041448 -vn 0.667696 -0.742478 -0.053937 -vn 0.371658 -0.928220 -0.016666 -vn 0.371658 -0.928220 -0.016666 -vn 0.371658 -0.928220 -0.016666 -vn 0.371658 -0.928220 -0.016666 -vn 0.371658 -0.928220 -0.016666 -vn -0.810598 -0.571899 -0.125946 -vn -0.671909 -0.740634 0.000000 -vn -0.676822 -0.736115 -0.006880 -vn -0.686547 -0.727051 -0.007096 -vn -0.696070 -0.717936 -0.007308 -vn -0.711311 -0.702701 -0.015763 -vn -0.769270 -0.634467 -0.075335 -vn -0.901669 -0.372819 -0.219088 -vn -0.926116 -0.140148 -0.350239 -vn -0.894138 -0.025648 -0.447056 -vn -0.849984 0.197430 -0.488415 -vn -0.799637 0.422898 -0.426307 -vn -0.769309 0.523922 -0.365608 -vn -0.773996 0.567145 -0.281562 -vn -0.794400 0.581001 -0.177106 -vn -0.856674 0.505719 -0.101775 -vn -0.892452 0.450398 -0.025896 -vn -0.873738 0.486256 -0.011750 -vn -0.852481 0.522758 0.000100 -vn -0.911564 -0.326059 -0.250473 -vn -0.840179 -0.537891 -0.069091 -vn -0.756334 -0.653470 -0.030582 -vn -0.809162 -0.582336 -0.078362 -vn -0.715983 -0.697874 -0.018436 -vn -0.729177 -0.684069 -0.018707 -vn -0.774726 -0.631581 -0.030066 -vn -0.706759 -0.707375 -0.010600 -vn -0.766343 -0.642432 0.000000 -vn -0.704436 -0.709768 0.000000 -vn -0.916801 -0.360119 -0.172597 -vn -0.908199 -0.414926 -0.054881 -vn -0.906833 -0.421490 0.000000 -vn -0.866689 -0.449486 -0.216360 -vn -0.895961 -0.127966 -0.425297 -vn -0.887493 -0.046300 -0.458490 -vn -0.916174 -0.091207 -0.390264 -vn -0.943952 -0.240171 -0.226436 -vn -0.859350 0.181510 -0.478092 -vn -0.914503 0.148472 -0.376352 -vn -0.963096 0.135585 -0.232513 -vn -0.979949 0.142243 -0.139521 -vn -0.990415 0.132297 -0.039686 -vn -0.992556 0.121789 0.000000 -vn -0.808768 0.451110 -0.377352 -vn -0.839214 0.480655 -0.254345 -vn -0.873936 0.471628 -0.117490 -vn -0.882413 0.469161 -0.035134 -vn -0.876459 0.481327 -0.011994 -vn -0.874376 0.485250 0.000050 -vn -0.810598 -0.571899 0.125945 -vn -0.676822 -0.736115 0.006880 -vn -0.686547 -0.727051 0.007096 -vn -0.696070 -0.717936 0.007308 -vn -0.711311 -0.702701 0.015763 -vn -0.769270 -0.634467 0.075335 -vn -0.901669 -0.372819 0.219088 -vn -0.926116 -0.140148 0.350239 -vn -0.894138 -0.025648 0.447056 -vn -0.849984 0.197430 0.488415 -vn -0.799637 0.422898 0.426307 -vn -0.769309 0.523922 0.365608 -vn -0.773996 0.567145 0.281563 -vn -0.794400 0.581001 0.177106 -vn -0.856674 0.505720 0.101775 -vn -0.892452 0.450398 0.025897 -vn -0.873779 0.486178 0.011850 -vn -0.756334 -0.653470 0.030582 -vn -0.840179 -0.537891 0.069091 -vn -0.911564 -0.326059 0.250473 -vn -0.729177 -0.684069 0.018707 -vn -0.715983 -0.697874 0.018436 -vn -0.809162 -0.582336 0.078362 -vn -0.706759 -0.707375 0.010600 -vn -0.774726 -0.631581 0.030066 -vn -0.908199 -0.414926 0.054881 -vn -0.916801 -0.360119 0.172597 -vn -0.866689 -0.449486 0.216360 -vn -0.895961 -0.127966 0.425297 -vn -0.887493 -0.046300 0.458490 -vn -0.916174 -0.091207 0.390264 -vn -0.943952 -0.240171 0.226436 -vn -0.859350 0.181510 0.478092 -vn -0.914503 0.148472 0.376352 -vn -0.963096 0.135585 0.232513 -vn -0.979949 0.142243 0.139521 -vn -0.990415 0.132297 0.039686 -vn -0.808768 0.451110 0.377352 -vn -0.839213 0.480655 0.254345 -vn -0.873936 0.471628 0.117490 -vn -0.882413 0.469161 0.035134 -vn -0.876480 0.481288 0.012044 -vn 0.738347 0.674421 0.000000 -vn 0.806153 0.567767 -0.166608 -vn 0.863896 0.499132 -0.067458 -vn 0.619226 0.785213 0.000000 -vn 0.618594 0.784508 -0.043454 -vn 0.617817 0.783620 -0.065133 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.999305 -0.037285 -vn -0.000001 0.998436 -0.055898 -vn -0.619244 0.785198 0.000000 -vn -0.618602 0.784502 -0.043455 -vn -0.617815 0.783622 -0.065133 -vn -0.865872 0.500266 0.000000 -vn -0.864990 0.499766 -0.045006 -vn -0.863892 0.499140 -0.067459 -vn 0.695043 0.718593 -0.023226 -vn 0.689718 0.723710 -0.023093 -vn 0.687022 0.726417 -0.017881 -vn 0.687022 0.726417 -0.017881 -vn 0.687022 0.726417 -0.017878 -vn 0.624714 0.780853 0.000000 -vn 0.624471 0.780885 -0.015951 -vn 0.628239 0.777647 -0.024117 -vn 0.636747 0.770679 -0.024639 -vn 0.717673 0.690581 -0.089681 -vn 0.800177 0.525367 -0.289320 -vn 0.787284 0.290410 -0.543917 -vn 0.731224 0.682137 0.000000 -vn 0.732755 0.680143 -0.021814 -vn 0.753271 0.652862 -0.079712 -vn 0.787727 0.584035 -0.195933 -vn 0.845671 0.419171 -0.330358 -vn 0.806306 0.264556 -0.529037 -vn 0.777431 0.225586 -0.587122 -vn 0.880395 0.474242 0.000000 -vn 0.882174 0.469754 -0.033162 -vn 0.882771 0.440367 -0.163686 -vn 0.868778 0.383372 -0.313451 -vn 0.838973 0.309714 -0.447438 -vn 0.764875 0.224491 -0.603796 -vn 0.738142 0.182045 -0.649620 -vn 0.996828 -0.079588 0.000000 -vn 0.996263 -0.085397 -0.012925 -vn 0.991668 -0.062376 -0.112711 -vn 0.951868 -0.021112 -0.305780 -vn 0.872481 -0.010318 -0.488540 -vn 0.779498 0.023999 -0.625944 -vn 0.741302 0.058701 -0.668599 -vn 0.810684 -0.585484 0.000000 -vn 0.811350 -0.584049 0.024432 -vn 0.820129 -0.571417 0.029518 -vn 0.829589 -0.541693 -0.135462 -vn 0.819375 -0.485373 -0.305022 -vn 0.829011 -0.352148 -0.434433 -vn 0.754667 -0.037342 -0.655044 -vn 0.718556 -0.695469 0.000000 -vn 0.725325 -0.687595 0.033425 -vn 0.709570 -0.701311 0.068364 -vn 0.690571 -0.722559 -0.031951 -vn 0.702443 -0.701413 -0.120804 -vn 0.726916 -0.682805 -0.073285 -vn 0.825351 -0.413141 -0.384851 -vn 0.687022 0.726417 0.017881 -vn 0.687022 0.726417 0.017881 -vn 0.689718 0.723710 0.023093 -vn 0.695043 0.718593 0.023226 -vn 0.806153 0.567767 0.166608 -vn 0.618594 0.784508 0.043455 -vn 0.687022 0.726417 0.017878 -vn 0.617817 0.783619 0.065133 -vn 0.863896 0.499131 0.067460 -vn 0.000000 0.999305 0.037285 -vn -0.000001 0.998436 0.055898 -vn -0.618602 0.784502 0.043455 -vn -0.617814 0.783622 0.065134 -vn -0.864990 0.499766 0.045007 -vn -0.863891 0.499140 0.067461 -vn 0.624471 0.780885 0.015952 -vn 0.628239 0.777647 0.024117 -vn 0.636747 0.770679 0.024639 -vn 0.717673 0.690581 0.089681 -vn 0.800177 0.525367 0.289320 -vn 0.787284 0.290410 0.543917 -vn 0.732755 0.680143 0.021814 -vn 0.753271 0.652862 0.079712 -vn 0.787727 0.584035 0.195933 -vn 0.845671 0.419171 0.330358 -vn 0.806306 0.264556 0.529037 -vn 0.777431 0.225586 0.587122 -vn 0.882174 0.469754 0.033162 -vn 0.882771 0.440367 0.163686 -vn 0.868778 0.383372 0.313451 -vn 0.838973 0.309714 0.447438 -vn 0.764875 0.224490 0.603796 -vn 0.738142 0.182045 0.649620 -vn 0.996263 -0.085397 0.012925 -vn 0.991668 -0.062376 0.112711 -vn 0.951868 -0.021112 0.305780 -vn 0.872481 -0.010318 0.488540 -vn 0.779498 0.023999 0.625944 -vn 0.741302 0.058701 0.668600 -vn 0.811351 -0.584049 -0.024432 -vn 0.820129 -0.571417 -0.029518 -vn 0.829589 -0.541693 0.135462 -vn 0.819375 -0.485373 0.305022 -vn 0.829011 -0.352148 0.434434 -vn 0.754667 -0.037342 0.655044 -vn 0.725325 -0.687595 -0.033425 -vn 0.709570 -0.701311 -0.068364 -vn 0.690571 -0.722559 0.031951 -vn 0.702443 -0.701413 0.120804 -vn 0.726916 -0.682805 0.073285 -vn 0.825351 -0.413141 0.384851 -vn 0.863925 -0.499082 -0.067460 -vn 0.863925 -0.499082 -0.067460 -vn -0.865893 -0.500229 0.000000 -vn -0.865015 -0.499723 -0.045006 -vn -0.863920 -0.499091 -0.067460 -vn -0.608436 -0.793603 0.000000 -vn -0.607457 -0.793186 -0.043037 -vn -0.606349 -0.792599 -0.064251 -vn 0.030471 -0.999536 0.000000 -vn 0.031551 -0.998800 -0.037458 -vn 0.032627 -0.997885 -0.056223 -vn 0.316688 -0.948530 0.000000 -vn 0.530187 -0.846394 -0.050186 -vn 0.631936 -0.772187 -0.066204 -vn 0.316636 -0.948376 -0.018019 -vn 0.316636 -0.948376 -0.018019 -vn 0.316636 -0.948376 -0.018019 -vn 0.316636 -0.948376 -0.018019 -vn 0.316636 -0.948376 -0.018019 -vn 0.863925 -0.499082 0.067460 -vn 0.863925 -0.499082 0.067460 -vn -0.865015 -0.499723 0.045006 -vn -0.863920 -0.499091 0.067460 -vn -0.607457 -0.793186 0.043037 -vn -0.606349 -0.792599 0.064251 -vn 0.031551 -0.998800 0.037458 -vn 0.032626 -0.997885 0.056224 -vn 0.530187 -0.846394 0.050187 -vn 0.316636 -0.948376 0.018019 -vn 0.316636 -0.948376 0.018019 -vn 0.316636 -0.948376 0.018019 -vn 0.316636 -0.948376 0.018019 -vn 0.316636 -0.948376 0.018019 -vn 0.631936 -0.772187 0.066205 -vn -0.599290 -0.800532 0.000000 -vn -0.746611 -0.646922 0.155129 -vn -0.701281 -0.707213 0.089752 -vn -0.639529 -0.768597 0.016175 -vn -0.624930 -0.780632 0.008733 -vn -0.614771 -0.788661 0.008457 -vn -0.604470 -0.796586 0.008169 -vn -0.850655 -0.451033 0.270102 -vn -0.875490 -0.238936 0.420031 -vn -0.838922 -0.175843 0.515063 -vn -0.835471 -0.010815 0.549428 -vn -0.836553 0.123691 0.533741 -vn -0.794675 0.607035 0.000000 -vn -0.801003 0.598112 -0.025605 -vn -0.783288 0.619735 -0.048875 -vn -0.761511 0.642683 0.084027 -vn -0.769960 0.606434 0.198493 -vn -0.799785 0.578517 0.160191 -vn -0.855618 0.383711 0.347394 -vn -0.731224 -0.682137 0.000000 -vn -0.732754 -0.680143 0.021814 -vn -0.637957 -0.769970 0.012520 -vn -0.635659 -0.771970 0.000000 -vn -0.753271 -0.652862 0.079711 -vn -0.646659 -0.762495 0.020811 -vn -0.787727 -0.584035 0.195932 -vn -0.659878 -0.751067 0.021455 -vn -0.738191 -0.669008 0.086614 -vn -0.845671 -0.419171 0.330358 -vn -0.840448 -0.496941 0.216096 -vn -0.853971 -0.270770 0.444317 -vn -0.880395 -0.474242 0.000000 -vn -0.882174 -0.469754 0.033162 -vn -0.882771 -0.440367 0.163685 -vn -0.868777 -0.383372 0.313452 -vn -0.838973 -0.309714 0.447439 -vn -0.814886 -0.221235 0.535739 -vn -0.996828 0.079588 0.000000 -vn -0.996263 0.085397 0.012925 -vn -0.991668 0.062376 0.112711 -vn -0.951868 0.021111 0.305780 -vn -0.872481 0.010318 0.488540 -vn -0.825279 0.000153 0.564726 -vn -0.843462 0.537189 0.000000 -vn -0.844260 0.535547 -0.020359 -vn -0.850544 0.525544 -0.019441 -vn -0.854915 0.493345 0.160407 -vn -0.838262 0.426955 0.339156 -vn -0.855533 0.328568 0.400132 -vn -0.746611 -0.646922 -0.155129 -vn -0.701281 -0.707213 -0.089752 -vn -0.639529 -0.768597 -0.016175 -vn -0.624930 -0.780632 -0.008733 -vn -0.614771 -0.788661 -0.008457 -vn -0.604470 -0.796586 -0.008169 -vn -0.850655 -0.451033 -0.270102 -vn -0.875490 -0.238936 -0.420031 -vn -0.838922 -0.175843 -0.515063 -vn -0.835471 -0.010815 -0.549428 -vn -0.836553 0.123691 -0.533741 -vn -0.801003 0.598112 0.025605 -vn -0.783288 0.619735 0.048875 -vn -0.761511 0.642683 -0.084027 -vn -0.769960 0.606434 -0.198493 -vn -0.799786 0.578517 -0.160191 -vn -0.855618 0.383711 -0.347394 -vn -0.637957 -0.769970 -0.012520 -vn -0.732754 -0.680143 -0.021814 -vn -0.646659 -0.762495 -0.020811 -vn -0.753271 -0.652862 -0.079711 -vn -0.659878 -0.751067 -0.021455 -vn -0.787727 -0.584035 -0.195932 -vn -0.738191 -0.669008 -0.086614 -vn -0.840448 -0.496941 -0.216096 -vn -0.845671 -0.419171 -0.330358 -vn -0.853971 -0.270770 -0.444317 -vn -0.882174 -0.469754 -0.033162 -vn -0.882771 -0.440367 -0.163685 -vn -0.868777 -0.383372 -0.313452 -vn -0.814886 -0.221235 -0.535739 -vn -0.838973 -0.309714 -0.447439 -vn -0.996263 0.085397 -0.012925 -vn -0.991668 0.062376 -0.112711 -vn -0.951868 0.021111 -0.305780 -vn -0.872481 0.010318 -0.488540 -vn -0.825279 0.000153 -0.564726 -vn -0.844260 0.535547 0.020359 -vn -0.850544 0.525544 0.019441 -vn -0.854915 0.493345 -0.160407 -vn -0.838262 0.426955 -0.339156 -vn -0.855533 0.328568 -0.400132 -vn 0.993924 0.089671 0.063831 -vn 0.991388 0.089520 0.095585 -vn 0.951185 -0.294245 0.093093 -vn 0.949761 -0.263276 0.169235 -vn 0.997765 -0.059685 0.030054 -vn 0.997956 -0.059356 0.023660 -vn 0.997550 -0.065796 0.023773 -vn 0.997092 -0.072360 0.023888 -vn 0.991277 -0.131793 0.000000 -vn 0.995962 0.089777 0.000000 -vn 0.997188 -0.067887 0.031734 -vn 0.679311 0.731442 0.059403 -vn 0.677813 0.729831 0.088978 -vn 0.680514 0.732736 0.000000 -vn 0.016056 0.997832 0.063832 -vn 0.016088 0.995291 0.095587 -vn 0.016015 0.999872 0.000000 -vn -0.364558 0.929104 0.062153 -vn -0.363677 0.926862 0.093094 -vn -0.365266 0.930903 0.000000 -vn 0.917270 -0.258315 0.303131 -vn 0.998959 -0.024410 0.038551 -vn 0.999612 0.008824 0.026436 -vn 0.999517 0.016521 0.026336 -vn 0.999675 0.018217 0.017848 -vn 0.999876 0.015741 0.000000 -vn 0.884956 -0.376979 0.273386 -vn 0.981145 -0.177428 0.076642 -vn 0.988508 -0.123689 0.086911 -vn 0.997365 -0.064404 0.033395 -vn 0.998710 -0.050770 0.000000 -vn 0.913828 -0.358465 0.190845 -vn 0.947530 -0.313813 0.060889 -vn 0.951301 -0.308263 0.000000 -vn 0.720988 -0.478886 0.500845 -vn 0.681368 -0.491661 0.542224 -vn 0.685009 -0.489335 0.539734 -vn 0.578949 -0.537358 0.613241 -vn 0.627789 -0.538212 0.562324 -vn 0.720934 -0.547029 0.425456 -vn 0.850335 -0.463283 0.249600 -vn 0.414986 -0.655129 0.631342 -vn 0.464139 -0.677064 0.571104 -vn 0.559696 -0.719904 0.410461 -vn 0.608602 -0.750976 0.256201 -vn 0.619061 -0.770047 0.154245 -vn 0.635383 -0.770942 0.044007 -vn 0.644398 -0.764690 0.000000 -vn 0.245694 -0.811195 0.530657 -vn 0.242252 -0.868554 0.432352 -vn 0.248688 -0.936525 0.247135 -vn 0.270344 -0.957192 0.103429 -vn 0.270056 -0.962541 0.024195 -vn 0.259082 -0.965835 0.006336 -vn 0.257662 -0.966235 -0.000029 -vn 0.159410 -0.887098 0.433181 -vn 0.123609 -0.947670 0.294352 -vn 0.109876 -0.985648 0.128163 -vn 0.184173 -0.981147 0.058577 -vn 0.232618 -0.972568 -0.000920 -vn 0.197099 -0.980383 -0.000950 -vn 0.161376 -0.986893 -0.000058 -vn 0.949760 -0.263276 -0.169235 -vn 0.951185 -0.294245 -0.093093 -vn 0.991388 0.089520 -0.095585 -vn 0.993924 0.089670 -0.063831 -vn 0.997188 -0.067888 -0.031734 -vn 0.997092 -0.072361 -0.023889 -vn 0.997550 -0.065797 -0.023773 -vn 0.997956 -0.059357 -0.023660 -vn 0.997765 -0.059686 -0.030054 -vn 0.677813 0.729831 -0.088978 -vn 0.679311 0.731442 -0.059403 -vn 0.016088 0.995291 -0.095586 -vn 0.016056 0.997832 -0.063831 -vn -0.363677 0.926862 -0.093094 -vn -0.364558 0.929104 -0.062153 -vn 0.917270 -0.258315 -0.303131 -vn 0.998959 -0.024410 -0.038551 -vn 0.999612 0.008824 -0.026436 -vn 0.999517 0.016521 -0.026336 -vn 0.999675 0.018217 -0.017848 -vn 0.981145 -0.177428 -0.076642 -vn 0.884956 -0.376979 -0.273386 -vn 0.988508 -0.123689 -0.086911 -vn 0.997365 -0.064404 -0.033395 -vn 0.947530 -0.313813 -0.060889 -vn 0.913828 -0.358465 -0.190845 -vn 0.720988 -0.478886 -0.500845 -vn 0.685009 -0.489335 -0.539734 -vn 0.681368 -0.491661 -0.542224 -vn 0.627789 -0.538212 -0.562324 -vn 0.578949 -0.537358 -0.613241 -vn 0.720935 -0.547029 -0.425456 -vn 0.850335 -0.463283 -0.249600 -vn 0.464139 -0.677064 -0.571104 -vn 0.414986 -0.655130 -0.631342 -vn 0.559696 -0.719904 -0.410461 -vn 0.608602 -0.750976 -0.256201 -vn 0.619061 -0.770047 -0.154245 -vn 0.635383 -0.770942 -0.044007 -vn 0.242252 -0.868554 -0.432352 -vn 0.245694 -0.811195 -0.530657 -vn 0.248688 -0.936525 -0.247135 -vn 0.270344 -0.957192 -0.103429 -vn 0.270056 -0.962541 -0.024195 -vn 0.259101 -0.965829 -0.006365 -vn 0.123609 -0.947670 -0.294352 -vn 0.159410 -0.887098 -0.433181 -vn 0.109876 -0.985648 -0.128163 -vn 0.184173 -0.981147 -0.058577 -vn 0.232618 -0.972568 0.000920 -vn 0.197137 -0.980376 0.000892 -vn 0.363681 -0.926860 0.093095 -vn 0.363681 -0.926860 0.093095 -vn -0.953481 0.294977 0.062153 -vn -0.951181 0.294258 0.093095 -vn -0.955326 0.295555 0.000000 -vn -0.993197 -0.097487 0.063683 -vn -0.991388 -0.089513 0.095585 -vn -0.994423 -0.105465 0.000000 -vn -0.666429 -0.743190 0.059512 -vn -0.677811 -0.729833 0.088975 -vn -0.654535 -0.756032 0.000000 -vn -0.138441 -0.987639 0.073510 -vn -0.016083 -0.995291 0.095585 -vn -0.359388 -0.933188 0.000000 -vn -0.359231 -0.932778 0.029619 -vn -0.359231 -0.932778 0.029619 -vn -0.359231 -0.932778 0.029619 -vn -0.359231 -0.932778 0.029619 -vn -0.359231 -0.932778 0.029619 -vn 0.363681 -0.926860 -0.093095 -vn 0.363681 -0.926860 -0.093095 -vn -0.951181 0.294258 -0.093095 -vn -0.953481 0.294977 -0.062153 -vn -0.991388 -0.089513 -0.095585 -vn -0.993197 -0.097487 -0.063683 -vn -0.677811 -0.729833 -0.088975 -vn -0.666428 -0.743190 -0.059512 -vn -0.016083 -0.995291 -0.095586 -vn -0.138440 -0.987639 -0.073511 -vn -0.359230 -0.932779 -0.029618 -vn -0.359230 -0.932779 -0.029618 -vn -0.359230 -0.932779 -0.029618 -vn -0.359230 -0.932779 -0.029618 -vn -0.359230 -0.932779 -0.029618 -vn -0.971639 0.185090 -0.147174 -vn -0.995051 -0.099362 0.000000 -vn -0.995892 -0.090233 -0.007566 -vn -0.997348 -0.072341 -0.007999 -vn -0.998441 -0.055175 -0.008410 -vn -0.999456 -0.027640 -0.018014 -vn -0.992159 0.088881 -0.087872 -vn -0.899393 0.362665 -0.244061 -vn -0.763166 0.520128 -0.383463 -vn -0.657767 0.576066 -0.485274 -vn -0.475302 0.703698 -0.528107 -vn -0.291509 0.836741 -0.463559 -vn -0.203996 0.893520 -0.400009 -vn -0.179387 0.933836 -0.309470 -vn -0.186052 0.962782 -0.196051 -vn -0.283313 0.952364 -0.112859 -vn -0.347407 0.937273 -0.028770 -vn -0.309315 0.950870 -0.013055 -vn -0.268903 0.963167 0.000112 -vn -0.998726 0.037141 -0.034171 -vn -0.981145 0.177428 -0.076642 -vn -0.884956 0.376980 -0.273385 -vn -0.999760 -0.006435 -0.020930 -vn -0.999410 -0.027537 -0.020543 -vn -0.988508 0.123690 -0.086912 -vn -0.999002 -0.043098 -0.011742 -vn -0.997365 0.064404 -0.033395 -vn -0.998863 -0.047679 0.000000 -vn -0.998710 0.050770 0.000000 -vn -0.947530 0.313814 -0.060889 -vn -0.913828 0.358464 -0.190846 -vn -0.951301 0.308264 0.000000 -vn -0.933355 0.268960 -0.237716 -vn -0.728648 0.505474 -0.462134 -vn -0.665783 0.556349 -0.497201 -vn -0.720935 0.547028 -0.425456 -vn -0.850335 0.463283 -0.249599 -vn -0.493020 0.699378 -0.517495 -vn -0.559696 0.719904 -0.410461 -vn -0.608602 0.750976 -0.256200 -vn -0.619061 0.770046 -0.154246 -vn -0.635382 0.770943 -0.044006 -vn -0.644397 0.764691 0.000000 -vn -0.280194 0.867283 -0.411476 -vn -0.285188 0.916831 -0.279443 -vn -0.318897 0.938804 -0.130196 -vn -0.327262 0.944127 -0.039028 -vn -0.314663 0.949110 -0.013326 -vn -0.310471 0.950583 0.000056 -vn -0.971639 0.185090 0.147174 -vn -0.992159 0.088881 0.087872 -vn -0.999456 -0.027640 0.018014 -vn -0.998441 -0.055175 0.008410 -vn -0.997348 -0.072341 0.007999 -vn -0.995892 -0.090233 0.007566 -vn -0.899393 0.362665 0.244061 -vn -0.763166 0.520128 0.383463 -vn -0.657767 0.576065 0.485274 -vn -0.475302 0.703698 0.528107 -vn -0.291509 0.836741 0.463559 -vn -0.179386 0.933836 0.309470 -vn -0.203995 0.893520 0.400009 -vn -0.186052 0.962782 0.196051 -vn -0.283313 0.952364 0.112859 -vn -0.347407 0.937273 0.028770 -vn -0.309398 0.950842 0.013167 -vn -0.884956 0.376980 0.273385 -vn -0.981145 0.177428 0.076642 -vn -0.998726 0.037141 0.034171 -vn -0.988508 0.123690 0.086912 -vn -0.999410 -0.027537 0.020543 -vn -0.999760 -0.006435 0.020930 -vn -0.997365 0.064404 0.033395 -vn -0.999002 -0.043098 0.011742 -vn -0.913828 0.358464 0.190846 -vn -0.947530 0.313814 0.060889 -vn -0.933355 0.268960 0.237715 -vn -0.728648 0.505474 0.462134 -vn -0.665783 0.556349 0.497201 -vn -0.720935 0.547028 0.425456 -vn -0.850335 0.463283 0.249599 -vn -0.493020 0.699378 0.517495 -vn -0.559696 0.719904 0.410461 -vn -0.608602 0.750976 0.256200 -vn -0.619061 0.770046 0.154246 -vn -0.635382 0.770943 0.044006 -vn -0.280194 0.867283 0.411476 -vn -0.285188 0.916831 0.279443 -vn -0.318897 0.938804 0.130196 -vn -0.327262 0.944127 0.039028 -vn -0.314704 0.949095 0.013381 -vn -0.642812 0.322219 -0.694958 -vn -0.650165 0.333777 -0.682552 -vn -0.849450 0.041378 -0.526043 -vn -0.842422 0.029896 -0.537988 -vn -0.827539 0.006894 -0.561366 -vn -0.627422 0.298775 -0.719079 -vn -0.811581 -0.016117 -0.584017 -vn -0.611142 0.274958 -0.742229 -vn -0.602686 0.262924 -0.753419 -vn -0.803213 -0.027610 -0.595052 -vn -0.046321 0.717759 -0.694749 -vn -0.053653 0.728221 -0.683239 -vn -0.031609 0.696187 -0.717165 -vn -0.016858 0.673791 -0.738729 -vn -0.009478 0.662301 -0.749178 -vn 0.564162 0.759634 -0.323539 -vn 0.555743 0.770805 -0.311463 -vn 0.580414 0.736503 -0.347393 -vn 0.595837 0.712377 -0.370807 -vn 0.603229 0.699959 -0.382325 -vn 0.784184 0.619398 -0.037437 -vn 0.775833 0.630406 -0.025904 -vn 0.800127 0.596773 -0.060487 -vn 0.815026 0.573381 -0.083465 -vn 0.822075 0.561413 -0.094908 -vn -0.822085 -0.561403 0.094886 -vn -0.815033 -0.573374 0.083450 -vn -0.800130 -0.596770 0.060483 -vn -0.784191 -0.619390 0.037429 -vn -0.775845 -0.630393 0.025889 -vn 0.811581 0.016120 0.584018 -vn 0.803210 0.027611 0.595056 -vn 0.827538 -0.006892 0.561367 -vn 0.842421 -0.029896 0.537989 -vn 0.849450 -0.041377 0.526044 -vn 0.709679 -0.058148 0.702122 -vn 0.602687 -0.262921 0.753420 -vn 0.889941 0.415456 0.188151 -vn 0.892509 -0.223533 0.391742 -vn 0.629453 -0.354577 0.691422 -vn -0.223873 -0.683965 0.694315 -vn 0.009484 -0.662297 0.749182 -vn -0.625676 -0.722287 0.294671 -vn -0.207820 -0.882913 0.421040 -vn -0.015531 -0.752037 0.658938 -vn -0.602513 -0.710136 0.364260 -vn -0.603235 -0.699957 0.382319 -vn -0.601723 -0.729113 0.326073 -vn -0.594215 -0.749427 0.292008 -vn -0.586599 -0.760692 0.277938 -vn 0.102923 -0.952597 0.286295 -vn -0.718606 -0.668081 0.193064 -vn -0.783697 -0.600587 0.158477 -vn -0.701348 -0.686166 0.193102 -vn -0.736019 -0.651153 0.185138 -vn -0.724907 -0.663690 0.184459 -vn -0.722846 -0.660000 0.204680 -vn -0.617182 -0.211719 0.757800 -vn -0.616660 0.061761 0.784803 -vn -0.260879 -0.304354 0.916139 -vn -0.442996 -0.518355 0.731480 -vn -0.447647 -0.175289 0.876861 -vn -0.629808 0.045048 0.775443 -vn -0.402821 -0.459036 0.791847 -vn 0.095227 -0.947330 -0.305775 -vn 0.140687 -0.977049 -0.159942 -vn 0.338509 -0.940657 -0.023994 -vn -0.938729 -0.318623 -0.131408 -vn -0.883564 -0.452435 -0.120904 -vn -0.851603 -0.511546 -0.114423 -vn -0.845397 -0.521171 -0.116980 -vn -0.857481 -0.498418 -0.127696 -vn -0.875425 -0.469677 -0.114172 -vn -0.873974 -0.241441 -0.421754 -vn -0.837168 -0.269334 -0.476035 -vn -0.926765 -0.199398 -0.318352 -vn -0.878921 -0.300919 -0.370061 -vn -0.851871 -0.357230 -0.383017 -vn -0.832390 -0.384968 -0.398656 -vn 0.873111 0.157976 0.461216 -vn 0.744340 0.292281 0.600441 -vn 0.819560 0.359560 0.446136 -vn 0.764305 0.374954 0.524641 -vn 0.864151 0.315618 0.391954 -vn 0.954311 0.086140 0.286130 -vn 0.978318 0.164080 0.126383 -vn 0.891798 0.426135 0.152003 -vn 0.853511 0.511445 0.099717 -vn 0.828453 0.545351 0.127506 -vn 0.835750 0.409742 0.365560 -vn 0.833345 0.511746 0.208932 -# 2372 vertices - -# 0 vertex parms - -# 0 texture vertices - -# 3377 normals - -g mast2 -s 1 -f 15//188 16//189 2//187 1//186 -s 2 -f 16//204 17//205 3//203 2//202 -s 3 -f 17//220 18//221 4//219 3//218 -s 4 -f 18//236 19//237 5//235 4//234 -s 5 -f 19//254 20//255 6//251 5//250 -f 20//255 21//256 7//252 6//251 -f 21//256 22//257 8//253 7//252 -s 6 -f 22//296 23//297 9//295 8//294 -s 7 -f 23//312 24//313 10//311 9//310 -s 8 -f 24//328 25//329 11//327 10//326 -s 9 -f 25//344 26//345 12//343 11//342 -s 10 -f 26//360 27//361 13//359 12//358 -s 11 -f 27//376 28//377 14//375 13//374 -s 1 -f 47//194 48//195 34//193 33//192 -s 2 -f 48//208 49//209 35//207 34//206 -s 3 -f 49//224 50//225 36//223 35//222 -s 4 -f 50//240 51//241 37//239 36//238 -s 5 -f 51//262 52//263 38//259 37//258 -f 52//263 53//264 39//260 38//259 -f 53//264 54//265 40//261 39//260 -s 6 -f 54//300 55//301 41//299 40//298 -s 7 -f 55//316 56//317 42//315 41//314 -s 8 -f 56//332 57//333 43//331 42//330 -s 9 -f 57//348 58//349 44//347 43//346 -s 10 -f 58//364 59//365 45//363 44//362 -s 11 -f 59//382 60//383 46//381 45//380 -s 1 -f 61//196 62//197 48//195 47//194 -s 2 -f 62//210 63//211 49//209 48//208 -s 3 -f 63//226 64//227 50//225 49//224 -s 4 -f 64//242 65//243 51//241 50//240 -s 5 -f 65//266 66//267 52//263 51//262 -f 66//267 90//275 67//268 53//264 52//263 -f 67//268 68//269 54//265 53//264 -s 6 -f 68//302 69//303 55//301 54//300 -s 7 -f 69//318 70//319 56//317 55//316 -s 8 -f 70//334 71//335 57//333 56//332 -s 9 -f 71//350 72//351 58//349 57//348 -s 10 -f 72//366 73//367 59//365 58//364 -s 11 -f 73//384 74//385 60//383 59//382 -s 1 -f 75//198 76//199 62//197 61//196 -s 2 -f 76//212 77//213 63//211 62//210 -s 3 -f 77//228 78//229 64//227 63//226 -s 4 -f 78//244 79//245 65//243 64//242 -s 5 -f 79//270 80//271 92//277 91//276 66//267 65//266 -s off -f 100//1 99//1 102//1 101//1 -s 5 -f 81//272 82//273 68//269 67//268 -s 6 -f 82//304 83//305 69//303 68//302 -s 7 -f 83//320 84//321 70//319 69//318 -s 8 -f 84//336 85//337 71//335 70//334 -s 9 -f 85//352 86//353 72//351 71//350 -s 10 -f 86//368 87//369 73//367 72//366 -s 11 -f 87//386 88//387 74//385 73//384 -s 1 -f 1//186 2//187 76//199 75//198 -s 2 -f 2//202 3//203 77//213 76//212 -s 3 -f 3//218 4//219 78//229 77//228 -s 4 -f 4//234 5//235 79//245 78//244 -s 5 -f 5//250 6//251 80//271 79//270 -f 6//251 7//252 81//272 89//274 80//271 -f 7//252 8//253 82//273 81//272 -s 6 -f 8//294 9//295 83//305 82//304 -s 7 -f 9//310 10//311 84//321 83//320 -s 8 -f 10//326 11//327 85//337 84//336 -s 9 -f 11//342 12//343 86//353 85//352 -s 10 -f 12//358 13//359 87//369 86//368 -s 11 -f 13//374 14//375 88//387 87//386 -s off -f 61//2 47//2 33//2 31//2 29//2 15//2 1//2 75//2 -f 30//3 32//3 46//3 60//3 74//3 88//3 14//3 28//3 -s 5 -f 89//274 81//272 67//268 90//275 94//279 93//278 -s off -f 96//4 95//4 98//4 97//4 -f 104//5 103//5 106//5 105//5 -f 95//6 96//6 94//6 90//6 -f 96//7 97//7 91//7 94//7 -f 97//8 98//8 66//8 91//8 -f 98//9 95//9 90//9 66//9 -f 99//10 100//10 92//10 80//10 -f 100//11 101//11 93//11 92//11 -f 101//12 102//12 89//12 93//12 -f 102//13 99//13 80//13 89//13 -f 103//14 104//14 91//14 92//14 -f 104//15 105//15 94//15 91//15 -f 105//16 106//16 93//16 94//16 -f 106//17 103//17 92//17 93//17 -g keel -s 21 -f 108//391 107//390 110//393 109//392 -f 110//393 107//390 112//395 111//394 -f 111//394 112//395 114//397 113//396 -f 113//396 114//397 116//399 115//398 -f 115//398 116//399 118//401 117//400 -f 117//400 118//401 120//403 119//402 -f 119//402 120//403 122//405 121//404 -f 121//404 122//405 124//407 123//406 -f 127//410 126//409 125//408 128//411 -f 127//410 128//411 130//413 129//412 -f 129//412 130//413 132//415 131//414 -f 131//414 132//415 134//417 133//416 -f 133//416 134//417 136//419 135//418 -f 135//418 136//419 138//421 137//420 -f 137//420 138//421 140//423 139//422 -f 139//422 140//423 142//425 141//424 -g hull -f 141//424 142//425 144//427 143//426 -s 25 -f 143//447 144//448 146//450 145//449 -s 26 -f 145//453 146//454 148//456 147//455 -s 23 -f 147//477 148//478 150//480 149//479 -g keel -f 151//481 110//460 111//461 152//482 -f 152//482 111//461 113//462 153//483 -f 153//483 113//462 115//463 154//484 -f 154//484 115//463 117//464 155//485 -f 155//485 117//464 119//465 156//486 -f 156//486 119//465 121//466 157//487 -f 157//487 121//466 123//467 158//488 -f 158//488 123//467 126//468 159//489 -f 159//489 126//468 127//469 160//490 -f 160//490 127//469 129//470 161//491 -f 161//491 129//470 131//471 162//492 -f 162//492 131//471 133//472 163//493 -f 163//493 133//472 135//473 164//494 -f 164//494 135//473 137//474 165//495 -f 165//495 137//474 139//475 166//496 -f 139//475 141//476 166//496 -f 151//481 222//552 109//459 110//460 -f 222//552 151//481 224//554 223//553 -f 223//553 224//554 226//556 225//555 -f 225//555 226//556 228//558 227//557 -f 227//557 228//558 230//560 229//559 -f 534//798 229//559 230//560 232//562 231//561 -g hull -s 30 -f 224//906 151//901 167//902 233//912 -f 233//912 167//902 180//903 234//913 -f 180//903 194//904 234//913 -f 194//904 208//905 235//914 234//913 -f 234//913 235//914 236//915 233//912 -f 233//912 236//915 226//907 224//906 -f 228//908 226//907 236//915 237//916 -f 237//916 236//915 235//914 238//917 -f 238//917 235//914 208//905 239//918 -f 230//909 228//908 237//916 240//919 -f 237//916 241//920 240//919 -f 242//921 241//920 237//916 238//917 -f 238//917 243//922 242//921 -f 244//923 243//922 238//917 239//918 -g keel -s 22 -f 229//1020 245//1021 246//1022 227//1019 -f 225//1018 247//1023 248//1024 223//1017 -f 223//1017 248//1024 249//1025 222//1016 -f 222//1016 249//1025 108//1014 109//1015 -f 227//1019 246//1022 247//1023 225//1018 -g hull -s 23 -f 193//523 164//494 165//495 250//565 -f 250//565 165//495 166//496 251//566 -f 166//496 141//476 251//566 -f 251//566 252//567 250//565 -f 250//565 252//567 207//537 193//523 -f 221//551 207//537 252//567 253//568 -f 221//551 253//568 255//570 254//569 -s 24 -f 141//1035 256//1043 257//1044 251//1039 -f 251//1039 257//1044 258//1045 252//1040 -f 252//1040 258//1045 259//1046 253//1041 -f 141//1035 143//1036 256//1043 -f 143//1036 145//1037 256//1043 -s 23 -f 254//569 255//570 261//576 260//575 -f 260//575 261//576 263//578 262//577 -s 33 -f 262//1051 263//1052 265//1054 264//1053 -s 23 -f 536//800 265//580 259//574 537//801 -s 24 -f 263//1048 261//1047 255//1042 253//1041 259//1046 265//1049 -s 23 -f 537//801 259//574 258//573 538//802 -f 258//573 257//572 538//802 -f 271//586 270//585 266//581 272//587 -f 272//587 266//581 267//582 273//588 -f 273//588 267//582 268//583 274//589 -f 274//589 268//583 269//584 275//590 -f 276//591 147//477 149//479 -s 24 -f 145//1037 147//1038 276//1050 256//1043 -s 23 -f 256//571 276//591 269//584 257//572 -f 269//584 276//591 149//479 275//590 -g deck -s off -f 278//18 277//18 279//18 -s 23 -f 279//594 280//595 282//597 281//596 -f 284//599 283//598 286//601 285//600 -s off -f 285//19 287//19 284//19 -s 23 -f 287//602 289//604 288//603 -f 290//605 289//604 287//602 285//600 -f 291//606 290//605 285//600 286//601 293//608 292//607 -g hull -f 275//590 279//594 281//596 274//589 -f 288//603 273//588 274//589 281//596 -f 254//569 260//575 295//610 294//609 -f 294//609 295//610 297//612 296//611 -f 296//611 297//612 299//614 298//613 -f 301//616 300//615 303//618 302//617 -f 302//617 303//618 305//620 304//619 -f 304//619 305//620 307//622 306//621 -f 307//622 308//623 306//621 -f 306//621 308//623 310//625 309//624 -f 310//625 311//626 309//624 -f 309//624 311//626 313//628 312//627 -f 313//628 314//629 312//627 -f 312//627 314//629 316//631 315//630 -f 315//630 316//631 318//633 317//632 -f 317//632 318//633 320//635 319//634 -f 301//616 298//613 299//614 300//615 -f 260//575 262//577 321//636 295//610 -f 322//637 321//636 262//577 264//579 -f 297//612 295//610 321//636 323//638 -f 323//638 321//636 322//637 324//639 -f 324//639 322//637 326//641 325//640 -f 324//639 328//643 329//644 323//638 -f 323//638 329//644 299//614 297//612 -f 300//615 299//614 329//644 330//645 -f 330//645 329//644 328//643 331//646 -f 328//643 332//647 331//646 -f 328//643 324//639 325//640 332//647 -f 325//640 327//642 332//647 -g rig -s off -f 332//20 327//20 334//20 333//20 -f 334//21 327//21 335//21 336//21 -s 23 -f 337//652 333//648 334//649 -f 337//652 338//653 342//657 330//645 -s off -f 342//22 338//22 343//22 -g hull -s 23 -f 342//657 343//658 345//660 344//659 -g rig -s off -f 339//23 345//23 343//23 338//23 -f 339//24 344//24 345//24 -s 23 -f 346//661 344//659 339//654 340//655 -s off -f 340//25 347//25 346//25 -f 348//26 347//26 340//26 341//26 -g hull -s 23 -f 348//663 346//661 347//662 -f 346//661 348//663 350//665 349//664 -g rig -s off -f 330//27 331//27 337//27 -f 332//28 333//28 337//28 331//28 -f 336//29 335//29 348//29 341//29 -g hull -s 23 -f 330//645 342//657 344//659 346//661 303//618 300//615 -f 349//664 305//620 303//618 346//661 -f 351//666 352//667 353//668 350//665 -f 350//665 353//668 354//669 349//664 -f 349//664 354//669 307//622 305//620 -f 307//622 354//669 355//670 -g rig -f 307//622 356//671 357//672 308//623 -f 310//625 358//673 359//674 311//626 -f 313//628 360//675 361//676 314//629 -g hull -f 362//677 310//625 308//623 363//678 -f 313//628 311//626 365//680 364//679 -f 314//629 367//682 366//681 -g rig -f 360//675 368//683 371//686 361//676 -g hull -f 353//668 352//667 373//688 372//687 -f 373//688 374//689 372//687 -f 374//689 375//690 372//687 -f 374//689 376//691 375//690 -g rig -s off -f 355//30 356//30 307//30 -f 353//31 369//31 370//31 354//31 -f 308//32 357//32 363//32 -f 358//33 362//33 363//33 357//33 -f 310//34 362//34 358//34 -f 360//35 313//35 364//35 -f 539//36 540//36 369//36 353//36 372//36 368//36 -f 367//37 314//37 361//37 -f 371//38 366//38 367//38 361//38 -f 368//39 372//39 366//39 371//39 -f 311//40 359//40 365//40 -f 360//41 364//41 365//41 359//41 -g hull -s 23 -f 314//629 366//681 377//692 316//631 -f 378//693 377//692 366//681 372//687 -f 377//692 378//693 379//694 -f 377//692 379//694 381//696 380//695 -f 381//696 382//697 380//695 -f 380//695 382//697 384//699 383//698 -f 380//695 383//698 320//635 318//633 -f 380//695 318//633 316//631 377//692 -g rig -f 379//694 378//693 386//701 385//700 -f 386//701 392//707 391//706 -f 387//702 388//703 382//697 381//696 -g hull -f 378//693 394//709 393//708 -f 375//690 376//691 395//710 394//709 -f 397//712 396//711 381//696 379//694 -f 395//710 376//691 399//714 398//713 -f 399//714 400//715 398//713 -g rig -s off -f 386//42 378//42 393//42 -f 381//43 396//43 387//43 -f 385//44 397//44 379//44 -f 397//45 385//45 387//45 396//45 -f 394//46 392//46 386//46 393//46 -f 395//47 391//47 392//47 394//47 -f 391//48 395//48 398//48 390//48 -f 401//49 389//49 390//49 398//49 -f 388//50 389//50 401//50 402//50 -f 388//51 402//51 382//51 -g hull -s 23 -f 394//709 378//693 372//687 375//690 -f 402//717 401//716 384//699 382//697 -f 398//713 403//718 384//699 401//716 -f 403//718 398//713 400//715 404//719 -f 403//718 404//719 406//721 405//720 -f 406//721 404//719 408//723 407//722 -s 45 -f 407//1056 408//1057 410//1059 409//1058 -f 411//1060 412//1061 409//1058 -s 23 -f 407//722 412//727 413//728 406//721 -f 406//721 413//728 414//729 405//720 -s 45 -f 411//1060 409//1058 416//1063 415//1062 -f 415//1062 416//1063 418//1065 417//1064 -f 417//1064 418//1065 420//1067 419//1066 -f 419//1066 420//1067 422//1069 421//1068 -f 421//1068 422//1069 424//1071 423//1070 -s 23 -f 421//733 423//734 425//735 419//732 -f 419//732 425//735 427//737 426//736 -f 426//736 427//737 429//739 428//738 -f 431//741 430//740 433//743 432//742 -f 431//741 432//742 435//745 434//744 -f 434//744 435//745 414//729 413//728 -f 415//730 434//744 413//728 412//727 411//726 -f 428//738 415//730 417//731 426//736 -f 417//731 419//732 426//736 -f 384//699 436//746 437//747 383//698 -f 383//698 437//747 438//748 320//635 -f 438//748 439//749 320//635 -f 428//738 429//739 430//740 431//741 -f 431//741 434//744 415//730 428//738 -f 535//799 244//564 239//563 439//749 -f 319//634 320//635 439//749 239//563 -g aft -f 440//750 403//718 405//720 441//751 -f 441//751 405//720 414//729 442//752 -f 442//752 414//729 435//745 443//753 -f 443//753 435//745 432//742 444//754 -f 447//756 446//755 448//757 444//754 -f 444//754 448//757 449//758 443//753 -f 443//753 449//758 450//759 442//752 -f 442//752 450//759 451//760 441//751 -f 441//751 451//760 452//761 440//750 -f 440//750 452//761 454//763 453//762 -f 440//750 453//762 384//699 403//718 -s 51 -f 384//1094 453//1099 455//1101 436//1095 -f 456//1102 455//1101 453//1099 454//1100 -g windows -f 456//1102 454//1100 452//1098 451//1097 -f 456//1102 451//1097 450//1096 457//1103 -s 30 -f 457//929 450//928 449//927 458//930 -f 458//930 449//927 448//926 459//931 -f 459//931 448//926 446//925 460//932 -g aft -f 459//931 460//932 462//934 461//933 -f 461//933 463//935 459//931 -f 459//931 463//935 464//936 458//930 -f 464//936 465//937 458//930 -s 51 -f 466//1104 455//1101 456//1102 457//1103 -s 49 -f 436//1110 455//1114 467//1115 437//1111 -s 51 -f 467//1105 455//1101 466//1104 468//1106 -f 469//1107 467//1105 468//1106 471//1109 470//1108 -s 49 -f 437//1111 467//1115 469//1116 438//1112 -f 469//1116 470//1117 439//1113 438//1112 -g hull -s 23 -f 244//564 535//799 485//764 -s 30 -f 473//943 472//942 475//945 474//944 -g aft -f 465//937 464//936 477//947 476//946 -f 476//946 477//947 242//921 243//922 -g hull -f 479//949 478//948 481//951 480//950 -g aft -f 463//935 461//933 483//953 482//952 -f 466//938 484//954 485//955 468//939 -f 457//929 484//954 466//938 -f 457//929 458//930 465//937 484//954 -f 482//952 483//953 240//919 241//920 -s off -f 464//52 463//52 478//52 479//52 -s 56 -f 463//1119 482//1122 481//1121 478//1120 -f 241//1118 481//1121 482//1122 -g hull -s 30 -f 481//951 241//920 242//921 480//950 -g aft -s 55 -f 477//1125 464//1124 479//1126 480//1127 -s 54 -f 476//1132 243//1128 475//1131 -f 472//1130 465//1129 476//1132 475//1131 -s 30 -f 484//954 465//937 472//942 473//943 -g hull -f 475//945 243//922 244//923 474//944 -s 53 -f 244//1133 485//1137 474//1135 -g aft -f 485//1137 484//1136 473//1134 474//1135 -g keel -s 22 -f 486//1026 245//1021 229//1020 534//1027 -g aft -s 31 -f 486//1141 534//1143 231//1138 461//1139 462//1140 -f 487//1142 461//1139 231//1138 -g hull -s 30 -f 231//910 232//911 488//957 487//956 -g aft -s 57 -f 483//1150 488//1152 240//1148 -g hull -s 30 -f 488//957 232//911 230//909 240//919 -s 45 -f 422//1069 489//1073 424//1071 -f 489//1073 422//1069 420//1067 490//1074 -f 490//1074 420//1067 418//1065 491//1075 -f 491//1075 418//1065 416//1063 492//1076 -f 492//1076 416//1063 409//1058 445//1072 -f 445//1072 409//1058 494//1078 493//1077 -g deck -s 58 -f 493//1153 494//1154 495//1155 497//1157 496//1156 -s off -f 497//53 495//53 499//53 498//53 -f 498//54 500//54 497//54 -s 59 -f 497//1162 500//1163 501//1164 496//1161 -s 60 -f 499//1168 502//1171 503//1172 498//1167 -f 500//1169 498//1167 503//1172 504//1173 501//1170 -g hull -s 44 -f 408//1183 404//1182 505//1185 410//1184 -f 505//1185 404//1182 400//1181 506//1186 -f 506//1186 400//1181 399//1180 507//1187 -f 507//1187 399//1180 376//1179 508//1188 -s 23 -f 508//772 376//691 374//689 509//773 -f 509//773 374//689 373//688 510//774 -f 511//775 352//667 351//666 512//776 -f 512//776 351//666 514//778 513//777 -f 513//777 514//778 516//780 515//779 -f 270//585 271//586 518//782 517//781 520//784 519//783 -g deck -s off -f 502//55 521//55 522//55 503//55 -f 522//56 523//56 503//56 -s 23 -f 525//789 524//788 523//787 522//786 -f 525//789 522//786 521//785 527//791 526//790 -f 528//792 526//790 527//791 530//794 529//793 -f 529//793 530//794 532//796 531//795 -s off -f 292//57 529//57 531//57 -s 23 -f 528//792 529//793 292//607 293//608 -f 287//602 288//603 533//797 284//599 -f 283//598 284//599 533//797 281//596 282//597 -g hull -f 352//667 511//775 510//774 373//688 -f 495//766 410//725 505//769 -f 505//769 506//770 499//767 495//766 -f 507//771 499//767 506//770 -f 508//772 502//768 499//767 507//771 -f 502//768 508//772 509//773 521//785 -f 510//774 521//785 509//773 -f 410//725 495//766 494//765 409//724 -g deck -s 61 -f 523//1191 524//1192 504//1190 503//1189 -g hull -s 23 -f 527//791 511//775 512//776 530//794 -f 521//785 510//774 511//775 527//791 -f 512//776 513//777 532//796 530//794 -f 517//781 518//782 515//779 516//780 -f 532//796 513//777 515//779 291//606 -g deck -s off -f 292//58 531//58 532//58 291//58 -g hull -s 23 -f 518//782 291//606 515//779 -f 290//605 291//606 518//782 271//586 -f 167//497 151//481 152//482 168//498 -f 168//498 152//482 153//483 169//499 -f 169//499 153//483 154//484 170//500 -f 170//500 154//484 155//485 171//501 -f 171//501 155//485 156//486 172//502 -f 172//502 156//486 157//487 173//503 -f 173//503 157//487 158//488 174//504 -f 174//504 158//488 159//489 175//505 -f 175//505 159//489 160//490 176//506 -f 176//506 160//490 161//491 177//507 -f 177//507 161//491 162//492 178//508 -f 178//508 162//492 163//493 179//509 -f 163//493 164//494 179//509 -f 180//510 167//497 168//498 181//511 -f 181//511 168//498 169//499 182//512 -f 182//512 169//499 170//500 183//513 -f 183//513 170//500 171//501 184//514 -f 184//514 171//501 172//502 185//515 -f 185//515 172//502 173//503 186//516 -f 186//516 173//503 174//504 187//517 -f 187//517 174//504 175//505 188//518 -f 188//518 175//505 176//506 189//519 -f 189//519 176//506 177//507 190//520 -f 190//520 177//507 178//508 191//521 -f 191//521 178//508 179//509 192//522 -f 192//522 179//509 164//494 193//523 -f 194//524 180//510 181//511 195//525 -f 195//525 181//511 182//512 196//526 -f 196//526 182//512 183//513 197//527 -f 197//527 183//513 184//514 198//528 -f 198//528 184//514 185//515 199//529 -f 199//529 185//515 186//516 200//530 -f 200//530 186//516 187//517 201//531 -f 201//531 187//517 188//518 202//532 -f 202//532 188//518 189//519 203//533 -f 203//533 189//519 190//520 204//534 -f 204//534 190//520 191//521 205//535 -f 205//535 191//521 192//522 206//536 -f 206//536 192//522 193//523 207//537 -f 208//538 194//524 195//525 209//539 -f 209//539 195//525 196//526 210//540 -f 210//540 196//526 197//527 211//541 -f 211//541 197//527 198//528 212//542 -f 212//542 198//528 199//529 213//543 -f 213//543 199//529 200//530 214//544 -f 214//544 200//530 201//531 215//545 -f 215//545 201//531 202//532 216//546 -f 216//546 202//532 203//533 217//547 -f 217//547 203//533 204//534 218//548 -f 218//548 204//534 205//535 219//549 -f 219//549 205//535 206//536 220//550 -f 220//550 206//536 207//537 221//551 -f 239//563 208//538 209//539 319//634 -f 319//634 209//539 210//540 317//632 -f 317//632 210//540 211//541 315//630 -f 315//630 211//541 212//542 312//627 -f 312//627 212//542 213//543 309//624 -f 309//624 213//543 214//544 306//621 -f 306//621 214//544 215//545 304//619 -f 304//619 215//545 216//546 302//617 -f 302//617 216//546 217//547 301//616 -f 301//616 217//547 218//548 298//613 -f 298//613 218//548 219//549 296//611 -f 296//611 219//549 220//550 294//609 -f 294//609 220//550 221//551 254//569 -f 348//663 335//650 516//780 514//778 -f 519//783 520//784 327//642 325//640 -f 326//641 266//581 270//585 -f 517//781 335//650 327//642 520//784 -f 266//581 326//641 322//637 264//579 -f 279//594 275//590 149//479 278//593 -f 277//592 278//593 149//479 150//480 -g aft -f 432//742 433//743 447//756 444//754 -g hull -s 33 -f 265//1054 536//1055 264//1053 -s 23 -f 514//778 351//666 350//665 348//663 -g keel -s 21 -f 123//406 124//407 125//408 126//409 -g aft -s 55 -f 477//1125 480//1127 242//1123 -g hull -s 23 -f 519//783 325//640 326//641 270//585 -f 289//604 272//587 273//588 288//603 -f 271//586 272//587 289//604 290//605 -g deck -f 288//603 281//596 533//797 -g hull -f 517//781 516//780 335//650 -g rig -f 370//685 369//684 357//672 356//671 -f 357//672 369//684 540//804 358//673 -s off -f 356//59 355//59 354//59 370//59 -g aft -s 57 -f 487//1151 488//1152 483//1150 461//1149 -s 30 -f 439//924 470//940 471//941 535//958 -f 471//941 468//939 485//955 535//958 -g hull -s 23 -f 267//582 266//581 536//800 537//801 -f 268//583 267//582 537//801 538//802 -f 269//584 268//583 538//802 257//572 -f 266//581 264//579 536//800 -s 45 -f 407//1056 409//1058 412//1061 -g rig -s 23 -f 368//683 360//675 359//674 539//803 -f 539//803 359//674 358//673 540//804 -f 341//656 340//655 336//651 -f 336//651 340//655 339//654 338//653 337//652 334//649 -f 390//705 388//703 387//702 385//700 386//701 391//706 -f 389//704 388//703 390//705 -g mast1 -s 63 -f 555//1197 556//1198 542//1196 541//1195 -s 64 -f 556//1213 557//1214 543//1212 542//1211 -s 65 -f 557//1229 558//1230 544//1228 543//1227 -s 66 -f 558//1245 559//1246 545//1244 544//1243 -s 67 -f 559//1263 560//1264 546//1260 545//1259 -f 560//1264 561//1265 547//1261 546//1260 -f 561//1265 562//1266 548//1262 547//1261 -s 68 -f 562//1301 563//1302 549//1300 548//1299 -s 69 -f 563//1317 564//1318 550//1316 549//1315 -s 70 -f 564//1333 565//1334 551//1332 550//1331 -s 71 -f 565//1349 566//1350 552//1348 551//1347 -s 72 -f 566//1365 567//1366 553//1364 552//1363 -s 73 -f 567//1381 568//1382 554//1380 553//1379 -s 63 -f 587//1203 588//1204 574//1202 573//1201 -s 64 -f 588//1217 589//1218 575//1216 574//1215 -s 65 -f 589//1233 590//1234 576//1232 575//1231 -s 66 -f 590//1249 591//1250 577//1248 576//1247 -s 67 -f 591//1271 592//1272 578//1268 577//1267 -f 592//1272 593//1273 579//1269 578//1268 -f 593//1273 594//1274 580//1270 579//1269 -s 68 -f 594//1305 595//1306 581//1304 580//1303 -s 69 -f 595//1321 596//1322 582//1320 581//1319 -s 70 -f 596//1337 597//1338 583//1336 582//1335 -s 71 -f 597//1353 598//1354 584//1352 583//1351 -s 72 -f 598//1369 599//1370 585//1368 584//1367 -s 73 -f 599//1387 600//1388 586//1386 585//1385 -s 63 -f 601//1205 602//1206 588//1204 587//1203 -s 64 -f 602//1219 603//1220 589//1218 588//1217 -s 65 -f 603//1235 604//1236 590//1234 589//1233 -s 66 -f 604//1251 605//1252 591//1250 590//1249 -s 67 -f 605//1275 606//1276 592//1272 591//1271 -f 606//1276 630//1284 607//1277 593//1273 592//1272 -f 607//1277 608//1278 594//1274 593//1273 -s 68 -f 608//1307 609//1308 595//1306 594//1305 -s 69 -f 609//1323 610//1324 596//1322 595//1321 -s 70 -f 610//1339 611//1340 597//1338 596//1337 -s 71 -f 611//1355 612//1356 598//1354 597//1353 -s 72 -f 612//1371 613//1372 599//1370 598//1369 -s 73 -f 613//1389 614//1390 600//1388 599//1387 -s 63 -f 615//1207 616//1208 602//1206 601//1205 -s 64 -f 616//1221 617//1222 603//1220 602//1219 -s 65 -f 617//1237 618//1238 604//1236 603//1235 -s 66 -f 618//1253 619//1254 605//1252 604//1251 -s 67 -f 619//1279 620//1280 632//1286 606//1276 605//1275 -f 629//1283 621//1281 607//1277 630//1284 631//1285 -f 621//1281 622//1282 608//1278 607//1277 -s 68 -f 622//1309 623//1310 609//1308 608//1307 -s 69 -f 623//1325 624//1326 610//1324 609//1323 -s 70 -f 624//1341 625//1342 611//1340 610//1339 -s 71 -f 625//1357 626//1358 612//1356 611//1355 -s 72 -f 626//1373 627//1374 613//1372 612//1371 -s 73 -f 627//1391 628//1392 614//1390 613//1389 -s 63 -f 541//1195 542//1196 616//1208 615//1207 -s 64 -f 542//1211 543//1212 617//1222 616//1221 -s 65 -f 543//1227 544//1228 618//1238 617//1237 -s 66 -f 544//1243 545//1244 619//1254 618//1253 -s 67 -f 545//1259 546//1260 620//1280 619//1279 -f 546//1260 547//1261 621//1281 629//1283 620//1280 -f 547//1261 548//1262 622//1282 621//1281 -s 68 -f 548//1299 549//1300 623//1310 622//1309 -s 69 -f 549//1315 550//1316 624//1326 623//1325 -s 70 -f 550//1331 551//1332 625//1342 624//1341 -s 71 -f 551//1347 552//1348 626//1358 625//1357 -s 72 -f 552//1363 553//1364 627//1374 626//1373 -s 73 -f 553//1379 554//1380 628//1392 627//1391 -s off -f 601//60 587//60 573//60 571//60 569//60 555//60 541//60 615//60 -f 570//61 572//61 586//61 600//61 614//61 628//61 554//61 568//61 -f 638//62 637//62 640//62 639//62 -f 634//63 633//63 636//63 635//63 -f 633//64 634//64 632//64 620//64 -f 634//65 635//65 631//65 632//65 -f 635//66 636//66 629//66 631//66 -f 636//67 633//67 620//67 629//67 -f 637//68 638//68 630//68 606//68 -f 638//69 639//69 631//69 630//69 -f 639//70 640//70 632//70 631//70 -f 640//71 637//71 606//71 632//71 -g mast3 -s 83 -f 655//1397 656//1398 642//1396 641//1395 -s 84 -f 656//1413 657//1414 643//1412 642//1411 -s 85 -f 657//1429 658//1430 644//1428 643//1427 -s 86 -f 658//1445 659//1446 645//1444 644//1443 -s 87 -f 659//1463 660//1464 646//1460 645//1459 -f 660//1464 661//1465 647//1461 646//1460 -f 661//1465 662//1466 648//1462 647//1461 -s 88 -f 662//1501 663//1502 649//1500 648//1499 -s 89 -f 663//1517 664//1518 650//1516 649//1515 -s 90 -f 664//1533 665//1534 651//1532 650//1531 -s 91 -f 665//1549 666//1550 652//1548 651//1547 -s 92 -f 666//1565 667//1566 653//1564 652//1563 -s 93 -f 667//1581 668//1582 654//1580 653//1579 -s 83 -f 687//1403 688//1404 674//1402 673//1401 -s 84 -f 688//1417 689//1418 675//1416 674//1415 -s 85 -f 689//1433 690//1434 676//1432 675//1431 -s 86 -f 690//1449 691//1450 677//1448 676//1447 -s 87 -f 691//1471 692//1472 678//1468 677//1467 -f 692//1472 693//1473 679//1469 678//1468 -f 693//1473 694//1474 680//1470 679//1469 -s 88 -f 694//1505 695//1506 681//1504 680//1503 -s 89 -f 695//1521 696//1522 682//1520 681//1519 -s 90 -f 696//1537 697//1538 683//1536 682//1535 -s 91 -f 697//1553 698//1554 684//1552 683//1551 -s 92 -f 698//1569 699//1570 685//1568 684//1567 -s 93 -f 699//1587 700//1588 686//1586 685//1585 -s 83 -f 701//1405 702//1406 688//1404 687//1403 -s 84 -f 702//1419 703//1420 689//1418 688//1417 -s 85 -f 703//1435 704//1436 690//1434 689//1433 -s 86 -f 704//1451 705//1452 691//1450 690//1449 -s 87 -f 705//1475 706//1476 692//1472 691//1471 -f 706//1476 730//1484 707//1477 693//1473 692//1472 -f 707//1477 708//1478 694//1474 693//1473 -s 88 -f 708//1507 709//1508 695//1506 694//1505 -s 89 -f 709//1523 710//1524 696//1522 695//1521 -s 90 -f 710//1539 711//1540 697//1538 696//1537 -s 91 -f 711//1555 712//1556 698//1554 697//1553 -s 92 -f 712//1571 713//1572 699//1570 698//1569 -s 93 -f 713//1589 714//1590 700//1588 699//1587 -s 83 -f 715//1407 716//1408 702//1406 701//1405 -s 84 -f 716//1421 717//1422 703//1420 702//1419 -s 85 -f 717//1437 718//1438 704//1436 703//1435 -s 86 -f 718//1453 719//1454 705//1452 704//1451 -s 87 -f 719//1479 720//1480 732//1486 706//1476 705//1475 -f 729//1483 721//1481 707//1477 730//1484 731//1485 -f 721//1481 722//1482 708//1478 707//1477 -s 88 -f 722//1509 723//1510 709//1508 708//1507 -s 89 -f 723//1525 724//1526 710//1524 709//1523 -s 90 -f 724//1541 725//1542 711//1540 710//1539 -s 91 -f 725//1557 726//1558 712//1556 711//1555 -s 92 -f 726//1573 727//1574 713//1572 712//1571 -s 93 -f 727//1591 728//1592 714//1590 713//1589 -s 83 -f 641//1395 642//1396 716//1408 715//1407 -s 84 -f 642//1411 643//1412 717//1422 716//1421 -s 85 -f 643//1427 644//1428 718//1438 717//1437 -s 86 -f 644//1443 645//1444 719//1454 718//1453 -s 87 -f 645//1459 646//1460 720//1480 719//1479 -f 646//1460 647//1461 721//1481 729//1483 720//1480 -f 647//1461 648//1462 722//1482 721//1481 -s 88 -f 648//1499 649//1500 723//1510 722//1509 -s 89 -f 649//1515 650//1516 724//1526 723//1525 -s 90 -f 650//1531 651//1532 725//1542 724//1541 -s 91 -f 651//1547 652//1548 726//1558 725//1557 -s 92 -f 652//1563 653//1564 727//1574 726//1573 -s 93 -f 653//1579 654//1580 728//1592 727//1591 -s off -f 701//72 687//72 673//72 671//72 669//72 655//72 641//72 715//72 -f 670//73 672//73 686//73 700//73 714//73 728//73 654//73 668//73 -f 738//74 737//74 740//74 739//74 -f 734//75 733//75 736//75 735//75 -f 733//76 734//76 732//76 720//76 -f 734//77 735//77 731//77 732//77 -f 735//78 736//78 729//78 731//78 -f 736//79 733//79 720//79 729//79 -f 737//80 738//80 730//80 706//80 -f 738//81 739//81 731//81 730//81 -f 739//82 740//82 732//82 731//82 -f 740//83 737//83 706//83 732//83 -g lamp -s 104 -f 752//1597 753//1598 743//1596 742//1595 -s 105 -f 753//1613 754//1614 744//1612 743//1611 -s 106 -f 754//1630 755//1631 745//1628 744//1627 -f 755//1631 756//1632 746//1629 745//1628 -s 107 -f 756//1653 757//1654 747//1652 746//1651 -s 108 -f 757//1669 758//1670 748//1668 747//1667 -s 109 -f 758//1685 759//1686 749//1684 748//1683 -s 110 -f 759//1701 760//1702 750//1700 749//1699 -s 103 -f 760//1718 761//1719 751//1717 750//1716 -f 761//1719 741//1715 751//1717 -s 104 -f 762//1599 763//1600 753//1598 752//1597 -s 105 -f 763//1615 764//1616 754//1614 753//1613 -s 106 -f 764//1633 765//1634 755//1631 754//1630 -f 765//1634 766//1635 756//1632 755//1631 -s 107 -f 766//1655 767//1656 757//1654 756//1653 -s 108 -f 767//1671 768//1672 758//1670 757//1669 -s 109 -f 768//1687 769//1688 759//1686 758//1685 -s 110 -f 769//1703 770//1704 760//1702 759//1701 -s 103 -f 770//1720 771//1721 761//1719 760//1718 -f 771//1721 741//1715 761//1719 -s 104 -f 772//1601 773//1602 763//1600 762//1599 -s 105 -f 773//1617 774//1618 764//1616 763//1615 -s 106 -f 774//1636 775//1637 765//1634 764//1633 -f 775//1637 776//1638 766//1635 765//1634 -s 107 -f 776//1657 777//1658 767//1656 766//1655 -s 108 -f 777//1673 778//1674 768//1672 767//1671 -s 109 -f 778//1689 779//1690 769//1688 768//1687 -s 110 -f 779//1705 780//1706 770//1704 769//1703 -s 103 -f 780//1722 781//1723 771//1721 770//1720 -f 781//1723 741//1715 771//1721 -s 104 -f 782//1603 783//1604 773//1602 772//1601 -s 105 -f 783//1619 784//1620 774//1618 773//1617 -s 106 -f 784//1639 785//1640 775//1637 774//1636 -f 785//1640 786//1641 776//1638 775//1637 -s 107 -f 786//1659 787//1660 777//1658 776//1657 -s 108 -f 787//1675 788//1676 778//1674 777//1673 -s 109 -f 788//1691 789//1692 779//1690 778//1689 -s 110 -f 789//1707 790//1708 780//1706 779//1705 -s 103 -f 790//1724 791//1725 781//1723 780//1722 -f 791//1725 741//1715 781//1723 -s 104 -f 792//1605 793//1606 783//1604 782//1603 -s 105 -f 793//1621 794//1622 784//1620 783//1619 -s 106 -f 794//1642 795//1643 785//1640 784//1639 -f 795//1643 796//1644 786//1641 785//1640 -s 107 -f 796//1661 797//1662 787//1660 786//1659 -s 108 -f 797//1677 798//1678 788//1676 787//1675 -s 109 -f 798//1693 799//1694 789//1692 788//1691 -s 110 -f 799//1709 800//1710 790//1708 789//1707 -s 103 -f 800//1726 801//1727 791//1725 790//1724 -f 801//1727 741//1715 791//1725 -s 104 -f 802//1607 803//1608 793//1606 792//1605 -s 105 -f 803//1623 804//1624 794//1622 793//1621 -s 106 -f 804//1645 805//1646 795//1643 794//1642 -f 805//1646 806//1647 796//1644 795//1643 -s 107 -f 806//1663 807//1664 797//1662 796//1661 -s 108 -f 807//1679 808//1680 798//1678 797//1677 -s 109 -f 808//1695 809//1696 799//1694 798//1693 -s 110 -f 809//1711 810//1712 800//1710 799//1709 -s 103 -f 810//1728 811//1729 801//1727 800//1726 -f 811//1729 741//1715 801//1727 -s 104 -f 812//1609 813//1610 803//1608 802//1607 -s 105 -f 813//1625 814//1626 804//1624 803//1623 -s 106 -f 814//1648 815//1649 805//1646 804//1645 -f 815//1649 816//1650 806//1647 805//1646 -s 107 -f 816//1665 817//1666 807//1664 806//1663 -s 108 -f 817//1681 818//1682 808//1680 807//1679 -s 109 -f 818//1697 819//1698 809//1696 808//1695 -s 110 -f 819//1713 820//1714 810//1712 809//1711 -s 103 -f 820//1730 821//1731 811//1729 810//1728 -f 821//1731 741//1715 811//1729 -s 104 -f 742//1595 743//1596 813//1610 812//1609 -s 105 -f 743//1611 744//1612 814//1626 813//1625 -s 106 -f 744//1627 745//1628 815//1649 814//1648 -f 745//1628 746//1629 816//1650 815//1649 -s 107 -f 746//1651 747//1652 817//1666 816//1665 -s 108 -f 747//1667 748//1668 818//1682 817//1681 -s 109 -f 748//1683 749//1684 819//1698 818//1697 -s 110 -f 749//1699 750//1700 820//1714 819//1713 -s 103 -f 750//1716 751//1717 821//1731 820//1730 -f 751//1717 741//1715 821//1731 -s off -f 802//84 792//84 782//84 772//84 762//84 752//84 742//84 812//84 -g foremast -s 112 -f 825//1735 824//1734 822//1732 823//1733 -f 827//1737 826//1736 824//1734 825//1735 -f 829//1739 828//1738 826//1736 827//1737 -f 831//1741 830//1740 828//1738 829//1739 -f 833//1743 832//1742 830//1740 831//1741 -f 835//1745 834//1744 832//1742 833//1743 -f 837//1747 836//1746 834//1744 835//1745 -f 823//1733 822//1732 836//1746 837//1747 -s off -f 824//85 826//85 828//85 830//85 832//85 834//85 836//85 822//85 -f 837//86 835//86 833//86 831//86 829//86 827//86 825//86 823//86 -g keel -s 21 -f 839//429 838//428 107//390 108//391 -f 840//430 112//395 107//390 838//428 -f 841//431 114//397 112//395 840//430 -f 842//432 116//399 114//397 841//431 -f 843//433 118//401 116//399 842//432 -f 844//434 120//403 118//401 843//433 -f 845//435 122//405 120//403 844//434 -f 846//436 124//407 122//405 845//435 -f 128//411 125//408 848//438 847//437 -f 849//439 130//413 128//411 847//437 -f 850//440 132//415 130//413 849//439 -f 851//441 134//417 132//415 850//440 -f 852//442 136//419 134//417 851//441 -f 853//443 138//421 136//419 852//442 -f 854//444 140//423 138//421 853//443 -f 855//445 142//425 140//423 854//444 -g hull -f 856//446 144//427 142//425 855//445 -s 25 -f 857//452 146//450 144//448 856//451 -s 26 -f 858//458 148//456 146//454 857//457 -s 23 -f 859//806 150//480 148//478 858//805 -g keel -s 113 -f 861//1767 840//1750 838//1748 860//1766 -f 862//1768 841//1751 840//1750 861//1767 -f 863//1769 842//1752 841//1751 862//1768 -f 864//1770 843//1753 842//1752 863//1769 -f 865//1771 844//1754 843//1753 864//1770 -f 866//1772 845//1755 844//1754 865//1771 -f 867//1773 846//1756 845//1755 866//1772 -f 868//1774 848//1758 846//1756 867//1773 -f 869//1775 847//1757 848//1758 868//1774 -f 870//1776 849//1759 847//1757 869//1775 -f 871//1777 850//1760 849//1759 870//1776 -f 872//1778 851//1761 850//1760 871//1777 -f 873//1779 852//1762 851//1761 872//1778 -f 874//1780 853//1763 852//1762 873//1779 -f 875//1781 854//1764 853//1763 874//1780 -f 875//1781 855//1765 854//1764 -f 838//1748 839//1749 876//1782 860//1766 -f 878//1784 877//1783 860//1766 876//1782 -f 880//1786 879//1785 877//1783 878//1784 -f 882//1788 881//1787 879//1785 880//1786 -f 884//1790 883//1789 881//1787 882//1788 -f 887//1793 886//1792 883//1789 884//1790 885//1791 -g hull -s 30 -f 889//967 888//966 860//959 877//960 -f 891//969 890//968 888//966 889//967 -f 891//969 892//970 890//968 -f 891//969 894//972 893//971 892//970 -f 889//967 895//973 894//972 891//969 -f 877//960 879//961 895//973 889//967 -f 896//974 895//973 879//961 881//962 -f 897//975 894//972 895//973 896//974 -f 898//976 893//971 894//972 897//975 -f 899//977 896//974 881//962 883//963 -f 899//977 900//978 896//974 -f 897//975 896//974 900//978 901//979 -f 901//979 902//980 897//975 -f 898//976 897//975 902//980 903//981 -g keel -s 22 -f 882//1032 246//1022 245//1021 884//1033 -f 878//1030 248//1024 247//1023 880//1031 -f 876//1029 249//1025 248//1024 878//1030 -f 839//1028 108//1014 249//1025 876//1029 -f 880//1031 247//1023 246//1022 882//1032 -g hull -s 113 -f 905//1801 874//1780 873//1779 904//1800 -f 906//1802 875//1781 874//1780 905//1801 -f 906//1802 855//1765 875//1781 -f 905//1801 907//1803 906//1802 -f 904//1800 908//1804 907//1803 905//1801 -f 910//1806 907//1803 908//1804 909//1805 -f 912//1808 911//1807 910//1806 909//1805 -s 115 -f 906//2021 914//2026 913//2025 855//2017 -f 907//2022 915//2027 914//2026 906//2021 -f 910//2023 916//2028 915//2027 907//2022 -f 913//2025 856//2018 855//2017 -f 913//2025 857//2019 856//2018 -s 113 -f 918//1814 917//1813 911//1807 912//1808 -f 920//1816 919//1815 917//1813 918//1814 -s 120 -f 922//2036 921//2035 919//2033 920//2034 -s 113 -f 924//1820 916//1812 921//1817 923//1819 -s 115 -f 921//2031 916//2028 910//2023 911//2024 917//2029 919//2030 -s 113 -f 925//1821 915//1811 916//1812 924//1820 -f 925//1821 914//1810 915//1811 -s 23 -f 929//810 928//809 927//808 926//807 -f 931//812 930//811 928//809 929//810 -f 933//814 932//813 930//811 931//812 -f 935//816 934//815 932//813 933//814 -f 859//806 858//805 936//817 -s 115 -f 913//2025 936//2032 858//2020 857//2019 -s 113 -f 914//1810 934//1829 936//1830 913//1809 -s 23 -f 935//816 859//806 936//817 934//815 -g deck -s off -f 937//87 277//87 278//87 -s 23 -f 938//819 282//597 280//595 937//818 -f 940//821 286//601 283//598 939//820 -s off -f 939//88 941//88 940//88 -s 23 -f 943//824 942//823 941//822 -f 940//821 941//822 942//823 944//825 -f 946//827 293//608 286//601 940//821 944//825 945//826 -g hull -f 933//814 938//819 937//818 935//816 -f 938//819 933//814 931//812 943//824 -s 113 -f 948//1836 947//1835 918//1814 912//1808 -f 950//1838 949//1837 947//1835 948//1836 -f 952//1840 951//1839 949//1837 950//1838 -f 956//1844 955//1843 954//1842 953//1841 -f 958//1846 957//1845 955//1843 956//1844 -f 960//1848 959//1847 957//1845 958//1846 -f 960//1848 961//1849 959//1847 -f 963//1851 962//1850 961//1849 960//1848 -f 963//1851 964//1852 962//1850 -f 966//1854 965//1853 964//1852 963//1851 -f 966//1854 967//1855 965//1853 -f 969//1857 968//1856 967//1855 966//1854 -f 971//1859 970//1858 968//1856 969//1857 -f 973//1861 972//1860 970//1858 971//1859 -f 954//1842 951//1839 952//1840 953//1841 -f 947//1835 974//1862 920//1816 918//1814 -f 922//1818 920//1816 974//1862 975//1863 -f 976//1864 974//1862 947//1835 949//1837 -f 977//1865 975//1863 974//1862 976//1864 -f 979//1867 978//1866 975//1863 977//1865 -f 976//1864 981//1869 980//1868 977//1865 -f 949//1837 951//1839 981//1869 976//1864 -f 982//1870 981//1869 951//1839 954//1842 -f 983//1871 980//1868 981//1869 982//1870 -f 983//1871 984//1872 980//1868 -f 984//1872 979//1867 977//1865 980//1868 -f 984//1872 985//1873 979//1867 -g rig -s off -f 987//89 986//89 985//89 984//89 -f 989//90 988//90 985//90 986//90 -s 113 -f 986//1874 987//1875 990//1878 -f 982//1870 992//1880 991//1879 990//1878 -s off -f 993//91 991//91 992//91 -g hull -s 113 -f 995//1883 994//1882 993//1881 992//1880 -g rig -s off -f 991//92 993//92 994//92 996//92 -f 994//93 995//93 996//93 -s 113 -f 998//1886 996//1884 995//1883 997//1885 -s off -f 997//94 999//94 998//94 -f 1001//95 998//95 999//95 1000//95 -g hull -s 23 -f 999//829 997//828 1000//830 -f 1003//832 1002//831 1000//830 997//828 -g rig -s off -f 990//96 983//96 982//96 -f 983//97 990//97 987//97 984//97 -f 1001//98 1000//98 988//98 989//98 -g hull -s 113 -f 954//1842 955//1843 997//1885 995//1883 992//1880 982//1870 -f 997//1885 955//1843 957//1845 1003//1889 -s 23 -f 1002//831 1006//835 1005//834 1004//833 -f 1003//832 1007//836 1006//835 1002//831 -s 113 -f 957//1845 959//1847 1007//1890 1003//1889 -f 1008//1891 1007//1890 959//1847 -g rig -f 961//1849 1010//1893 1009//1892 959//1847 -f 964//1852 1012//1895 1011//1894 962//1850 -f 967//1855 1014//1897 1013//1896 965//1853 -g hull -f 1016//1899 961//1849 962//1850 1015//1898 -f 1018//1901 1017//1900 964//1852 965//1853 -f 1020//1903 1019//1902 967//1855 -g rig -f 1014//1897 1022//1905 1021//1904 1013//1896 -g hull -s 23 -f 1024//838 1023//837 1005//834 1006//835 -f 1024//838 1025//839 1023//837 -f 1024//838 1026//840 1025//839 -f 1026//840 1027//841 1025//839 -g rig -s off -f 959//99 1009//99 1008//99 -f 1007//100 1029//100 1028//100 1006//100 -f 1016//101 1010//101 961//101 -f 1010//102 1016//102 1015//102 1011//102 -f 1011//103 1015//103 962//103 -f 1018//104 965//104 1013//104 -f 1021//105 1024//105 1006//105 1028//105 1031//105 1030//105 -f 1014//106 967//106 1019//106 -f 1014//107 1019//107 1020//107 1022//107 -f 1022//108 1020//108 1024//108 1021//108 -f 1017//109 1012//109 964//109 -f 1012//110 1017//110 1018//110 1013//110 -g hull -s 113 -f 968//1856 1032//1911 1020//1903 967//1855 -f 1024//1906 1020//1903 1032//1911 1033//1912 -f 1034//1913 1033//1912 1032//1911 -f 1036//1915 1035//1914 1034//1913 1032//1911 -f 1036//1915 1037//1916 1035//1914 -f 1039//1918 1038//1917 1037//1916 1036//1915 -f 970//1858 972//1860 1039//1918 1036//1915 -f 1032//1911 968//1856 970//1858 1036//1915 -g rig -f 1041//1920 1040//1919 1033//1912 1034//1913 -f 1043//1922 1042//1921 1040//1919 -f 1035//1914 1037//1916 1045//1924 1044//1923 -g hull -s 23 -f 1047//844 1046//843 1033//842 -f 1046//843 1048//845 1027//841 1026//840 -s 113 -f 1034//1913 1035//1914 1050//1926 1049//1925 -s 23 -f 1052//847 1051//846 1027//841 1048//845 -f 1052//847 1053//848 1051//846 -g rig -s off -f 1047//111 1033//111 1040//111 -f 1044//112 1050//112 1035//112 -f 1034//113 1049//113 1041//113 -f 1050//114 1044//114 1041//114 1049//114 -f 1047//115 1040//115 1042//115 1046//115 -f 1046//116 1042//116 1043//116 1048//116 -f 1054//117 1052//117 1048//117 1043//117 -f 1052//118 1054//118 1056//118 1055//118 -f 1057//119 1055//119 1056//119 1045//119 -f 1037//120 1057//120 1045//120 -g hull -s 23 -f 1026//840 1024//838 1033//842 1046//843 -s 113 -f 1037//1916 1038//1917 1055//1929 1057//1931 -f 1055//1929 1038//1917 1058//1932 1052//1927 -s 23 -f 1059//850 1053//848 1052//847 1058//849 -f 1061//852 1060//851 1059//850 1058//849 -f 1063//854 1062//853 1059//850 1060//851 -s 45 -f 1065//1082 1064//1081 1062//1079 1063//1080 -f 1065//1082 1067//1084 1066//1083 -s 23 -f 1060//851 1068//857 1067//856 1063//854 -f 1061//852 1069//858 1068//857 1060//851 -s 45 -f 1071//1086 1070//1085 1065//1082 1066//1083 -f 1073//1088 1072//1087 1070//1085 1071//1086 -f 1075//1090 1074//1089 1072//1087 1073//1088 -f 1077//1092 1076//1091 1074//1089 1075//1090 -f 423//1070 424//1071 1076//1091 1077//1092 -s 23 -f 1075//861 425//735 423//734 1077//862 -f 1078//863 427//737 425//735 1075//861 -f 1079//864 429//739 427//737 1078//863 -f 1081//866 433//743 430//740 1080//865 -f 1083//868 1082//867 1081//866 1080//865 -f 1068//857 1069//858 1082//867 1083//868 -f 1066//855 1067//856 1068//857 1083//868 1071//859 -f 1078//863 1073//860 1071//859 1079//864 -f 1078//863 1075//861 1073//860 -s 113 -f 1039//1918 1085//1936 1084//1935 1038//1917 -f 972//1860 1086//1937 1085//1936 1039//1918 -f 972//1860 1087//1938 1086//1937 -s 23 -f 1080//865 430//740 429//739 1079//864 -f 1079//864 1071//859 1083//868 1080//865 -s 113 -f 1087//1938 898//1798 903//1799 1088//1939 -f 898//1798 1087//1938 972//1860 973//1861 -g aft -s 23 -f 1090//870 1061//852 1058//849 1089//869 -f 1091//871 1069//858 1061//852 1090//870 -f 1092//872 1082//867 1069//858 1091//871 -f 1093//873 1081//866 1082//867 1092//872 -f 1093//873 1094//874 446//755 447//756 -f 1092//872 1095//875 1094//874 1093//873 -f 1091//871 1096//876 1095//875 1092//872 -f 1090//870 1097//877 1096//876 1091//871 -f 1089//869 1098//878 1097//877 1090//870 -s 113 -f 1100//1943 1099//1942 1098//1941 1089//1940 -f 1058//1932 1038//1917 1100//1943 1089//1940 -s 137 -f 1084//2039 1101//2045 1100//2044 1038//2038 -f 1099//2043 1100//2044 1101//2045 1102//2046 -g windows -f 1097//2041 1098//2042 1099//2043 1102//2046 -f 1103//2047 1096//2040 1097//2041 1102//2046 -s 30 -f 1104//988 1095//985 1096//986 1103//987 -f 1105//989 1094//984 1095//985 1104//988 -f 460//932 446//925 1094//984 1105//989 -g aft -f 1106//990 462//934 460//932 1105//989 -f 1105//989 1107//991 1106//990 -f 1104//988 1108//992 1107//991 1105//989 -f 1104//988 1109//993 1108//992 -s 137 -f 1103//2047 1102//2046 1101//2045 1110//2048 -s 135 -f 1085//2055 1111//2059 1101//2058 1084//2054 -s 137 -f 1112//2050 1110//2048 1101//2045 1111//2049 -f 1115//2053 1114//2052 1112//2050 1111//2049 1113//2051 -s 135 -f 1086//2056 1113//2060 1111//2059 1085//2055 -f 1086//2056 1087//2057 1115//2061 1113//2060 -g hull -s 113 -f 1116//1944 1088//1939 903//1799 -s 30 -f 1120//1002 1119//1001 1118//1000 1117//999 -g aft -f 1122//1004 1121//1003 1108//992 1109//993 -f 902//980 901//979 1121//1003 1122//1004 -g hull -f 1126//1008 1125//1007 1124//1006 1123//1005 -g aft -f 1128//1010 1127//1009 1106//990 1107//991 -f 1112//995 1116//998 1129//1011 1110//994 -f 1110//994 1129//1011 1103//987 -f 1129//1011 1109//993 1104//988 1103//987 -f 900//978 899//977 1127//1009 1128//1010 -s off -f 1123//121 1124//121 1107//121 1108//121 -s 141 -f 1124//2064 1125//2065 1128//2066 1107//2063 -f 1128//2066 1125//2065 900//2062 -g hull -s 30 -f 1126//1008 901//979 900//978 1125//1007 -g aft -s 140 -f 1126//2071 1123//2070 1108//2068 1121//2069 -s 139 -f 1119//2075 902//2072 1122//2076 -f 1119//2075 1122//2076 1109//2073 1118//2074 -s 30 -f 1117//999 1118//1000 1109//993 1129//1011 -g hull -f 1120//1002 903//981 902//980 1119//1001 -s 138 -f 1120//2080 1116//2078 903//2077 -g aft -f 1120//2080 1117//2079 1129//2081 1116//2078 -g keel -s 22 -f 885//1034 884//1033 245//1021 486//1026 -g aft -s 31 -f 462//1140 1106//1146 887//1145 885//1144 486//1141 -f 887//1145 1106//1146 1130//1147 -g hull -s 30 -f 1130//1012 1131//1013 886//964 887//965 -g aft -s 142 -f 899//2082 1131//2086 1127//2084 -g hull -s 30 -f 899//977 883//963 886//964 1131//1013 -s 45 -f 424//1071 489//1073 1076//1091 -f 490//1074 1074//1089 1076//1091 489//1073 -f 491//1075 1072//1087 1074//1089 490//1074 -f 492//1076 1070//1085 1072//1087 491//1075 -f 445//1072 1065//1082 1070//1085 492//1076 -f 493//1077 1132//1093 1065//1082 445//1072 -g deck -s 58 -f 496//1156 1134//1160 1133//1159 1132//1158 493//1153 -s off -f 1136//122 1135//122 1133//122 1134//122 -f 1134//123 1137//123 1136//123 -s 59 -f 496//1161 501//1164 1137//1166 1134//1165 -s 60 -f 1136//1175 1139//1178 1138//1177 1135//1174 -f 501//1170 504//1173 1139//1178 1136//1175 1137//1176 -g hull -s 131 -f 1064//2092 1140//2093 1059//2090 1062//2091 -f 1141//2094 1053//2089 1059//2090 1140//2093 -f 1142//2095 1051//2088 1053//2089 1141//2094 -f 1143//2096 1027//2087 1051//2088 1142//2095 -s 23 -f 1144//880 1025//839 1027//841 1143//879 -f 1145//881 1023//837 1025//839 1144//880 -f 1147//883 1004//833 1005//834 1146//882 -f 1149//885 1148//884 1004//833 1147//883 -f 1151//887 1150//886 1148//884 1149//885 -f 1155//891 1154//890 1153//889 1152//888 926//807 927//808 -g deck -s off -f 1139//124 1157//124 1156//124 1138//124 -f 1139//125 1158//125 1157//125 -s 23 -f 1157//893 1158//894 524//788 525//789 -f 526//790 1159//895 1156//892 1157//893 525//789 -f 1161//897 1160//896 1159//895 526//790 528//792 -f 1163//899 1162//898 1160//896 1161//897 -s off -f 1163//126 1161//126 946//126 -s 23 -f 293//608 946//827 1161//897 528//792 -f 939//820 1164//900 943//824 941//822 -f 282//597 938//819 1164//900 939//820 283//598 -g hull -f 1023//837 1145//881 1146//882 1005//834 -s 113 -f 1140//1949 1064//1933 1133//1946 -f 1133//1946 1135//1947 1141//1950 1140//1949 -f 1141//1950 1135//1947 1142//1951 -f 1142//1951 1135//1947 1138//1948 1143//1952 -f 1156//1965 1144//1953 1143//1952 1138//1948 -f 1144//1953 1156//1965 1145//1954 -f 1065//1934 1132//1945 1133//1946 1064//1933 -g deck -s 61 -f 1139//1193 504//1190 524//1192 1158//1194 -g hull -s 113 -f 1160//1967 1147//1956 1146//1955 1159//1966 -f 1159//1966 1146//1955 1145//1954 1156//1965 -f 1160//1967 1162//1968 1149//1958 1147//1956 -s 23 -f 1150//886 1151//887 1152//888 1153//889 -s 113 -f 945//1834 1151//1960 1149//1958 1162//1968 -g deck -s off -f 945//127 1162//127 1163//127 946//127 -g hull -s 113 -f 1151//1960 945//1834 1152//1961 -f 926//1822 1152//1961 945//1834 944//1833 -f 1165//1969 861//1767 860//1766 888//1794 -f 1166//1970 862//1768 861//1767 1165//1969 -f 1167//1971 863//1769 862//1768 1166//1970 -f 1168//1972 864//1770 863//1769 1167//1971 -f 1169//1973 865//1771 864//1770 1168//1972 -f 1170//1974 866//1772 865//1771 1169//1973 -f 1171//1975 867//1773 866//1772 1170//1974 -f 1172//1976 868//1774 867//1773 1171//1975 -f 1173//1977 869//1775 868//1774 1172//1976 -f 1174//1978 870//1776 869//1775 1173//1977 -f 1175//1979 871//1777 870//1776 1174//1978 -f 1176//1980 872//1778 871//1777 1175//1979 -f 1176//1980 873//1779 872//1778 -f 1177//1981 1165//1969 888//1794 890//1795 -f 1178//1982 1166//1970 1165//1969 1177//1981 -f 1179//1983 1167//1971 1166//1970 1178//1982 -f 1180//1984 1168//1972 1167//1971 1179//1983 -f 1181//1985 1169//1973 1168//1972 1180//1984 -f 1182//1986 1170//1974 1169//1973 1181//1985 -f 1183//1987 1171//1975 1170//1974 1182//1986 -f 1184//1988 1172//1976 1171//1975 1183//1987 -f 1185//1989 1173//1977 1172//1976 1184//1988 -f 1186//1990 1174//1978 1173//1977 1185//1989 -f 1187//1991 1175//1979 1174//1978 1186//1990 -f 1188//1992 1176//1980 1175//1979 1187//1991 -f 904//1800 873//1779 1176//1980 1188//1992 -f 1189//1993 1177//1981 890//1795 892//1796 -f 1190//1994 1178//1982 1177//1981 1189//1993 -f 1191//1995 1179//1983 1178//1982 1190//1994 -f 1192//1996 1180//1984 1179//1983 1191//1995 -f 1193//1997 1181//1985 1180//1984 1192//1996 -f 1194//1998 1182//1986 1181//1985 1193//1997 -f 1195//1999 1183//1987 1182//1986 1194//1998 -f 1196//2000 1184//1988 1183//1987 1195//1999 -f 1197//2001 1185//1989 1184//1988 1196//2000 -f 1198//2002 1186//1990 1185//1989 1197//2001 -f 1199//2003 1187//1991 1186//1990 1198//2002 -f 1200//2004 1188//1992 1187//1991 1199//2003 -f 908//1804 904//1800 1188//1992 1200//2004 -f 1201//2005 1189//1993 892//1796 893//1797 -f 1202//2006 1190//1994 1189//1993 1201//2005 -f 1203//2007 1191//1995 1190//1994 1202//2006 -f 1204//2008 1192//1996 1191//1995 1203//2007 -f 1205//2009 1193//1997 1192//1996 1204//2008 -f 1206//2010 1194//1998 1193//1997 1205//2009 -f 1207//2011 1195//1999 1194//1998 1206//2010 -f 1208//2012 1196//2000 1195//1999 1207//2011 -f 1209//2013 1197//2001 1196//2000 1208//2012 -f 1210//2014 1198//2002 1197//2001 1209//2013 -f 1211//2015 1199//2003 1198//2002 1210//2014 -f 1212//2016 1200//2004 1199//2003 1211//2015 -f 909//1805 908//1804 1200//2004 1212//2016 -f 973//1861 1201//2005 893//1797 898//1798 -f 971//1859 1202//2006 1201//2005 973//1861 -f 969//1857 1203//2007 1202//2006 971//1859 -f 966//1854 1204//2008 1203//2007 969//1857 -f 963//1851 1205//2009 1204//2008 966//1854 -f 960//1848 1206//2010 1205//2009 963//1851 -f 958//1846 1207//2011 1206//2010 960//1848 -f 956//1844 1208//2012 1207//2011 958//1846 -f 953//1841 1209//2013 1208//2012 956//1844 -f 952//1840 1210//2014 1209//2013 953//1841 -f 950//1838 1211//2015 1210//2014 952//1840 -f 948//1836 1212//2016 1211//2015 950//1838 -f 912//1808 909//1805 1212//2016 948//1836 -f 1148//1957 1150//1959 988//1876 1000//1887 -f 979//1867 985//1873 1154//1963 1155//1964 -f 927//1823 928//1824 978//1866 -f 1154//1963 985//1873 988//1876 1153//1962 -f 922//1818 975//1863 978//1866 928//1824 -s 23 -f 278//593 859//806 935//816 937//818 -f 150//480 859//806 278//593 277//592 -g aft -f 1093//873 447//756 433//743 1081//866 -g hull -s 120 -f 922//2036 923//2037 921//2035 -s 23 -f 1000//830 1002//831 1004//833 1148//884 -g keel -s 21 -f 848//438 125//408 124//407 846//436 -g aft -s 140 -f 901//2067 1126//2071 1121//2069 -g hull -s 113 -f 927//1823 978//1866 979//1867 1155//1964 -f 943//1832 931//1827 929//1825 942//1831 -f 944//1833 942//1831 929//1825 926//1822 -g deck -s 23 -f 1164//900 938//819 943//824 -g hull -s 113 -f 988//1876 1150//1959 1153//1962 -g rig -f 1009//1892 1010//1893 1028//1907 1029//1908 -f 1011//1894 1031//1910 1028//1907 1010//1893 -s off -f 1029//128 1007//128 1008//128 1009//128 -g aft -s 142 -f 1106//2083 1127//2084 1131//2086 1130//2085 -s 30 -f 1088//983 1114//996 1115//997 1087//982 -f 1088//983 1116//998 1112//995 1114//996 -g hull -s 113 -f 924//1820 923//1819 928//1824 930//1826 -f 925//1821 924//1820 930//1826 932//1828 -f 914//1810 925//1821 932//1828 934//1829 -f 923//1819 922//1818 928//1824 -s 45 -f 1067//1084 1065//1082 1063//1080 -g rig -s 113 -f 1030//1909 1012//1895 1013//1896 1021//1904 -f 1031//1910 1011//1894 1012//1895 1030//1909 -f 989//1877 998//1886 1001//1888 -f 986//1874 990//1878 991//1879 996//1884 998//1886 989//1877 -f 1043//1922 1040//1919 1041//1920 1044//1923 1045//1924 1054//1928 -f 1054//1928 1045//1924 1056//1930 -g sail2 -s 143 -f 1217//2101 1216//2100 1213//2097 1214//2098 -f 1240//2115 1239//2114 1238//2113 1237//2112 1215//2099 1218//2102 1217//2101 1214//2098 1241//2116 -f 1220//2104 1219//2103 1216//2100 1217//2101 -f 1221//2105 1220//2104 1217//2101 1218//2102 -f 1223//2107 1222//2106 1219//2103 1220//2104 -f 1224//2108 1223//2107 1220//2104 1221//2105 -f 1226//2110 1225//2109 1222//2106 1223//2107 -f 1227//2111 1226//2110 1223//2107 1224//2108 -s 144 -f 1229//2216 1228//2215 1225//2212 1226//2213 -f 1230//2217 1229//2216 1226//2213 1227//2214 -f 1232//2219 1231//2218 1228//2215 1229//2216 -f 1233//2220 1232//2219 1229//2216 1230//2217 -f 1235//2222 1234//2221 1231//2218 1232//2219 -f 1236//2223 1242//2224 1243//2225 1244//2226 1245//2227 1246//2228 1235//2222 1232//2219 1233//2220 -f 1214//2211 1213//2210 1234//2221 1235//2222 -s off -f 1216//129 1219//129 1222//129 1225//129 1228//129 1231//129 1234//129 1213//129 -s 143 -f 1248//2118 1241//2116 1214//2098 -f 1248//2118 1249//2119 1240//2115 1241//2116 -f 1249//2119 1250//2120 1239//2114 1240//2115 -f 1250//2120 1251//2121 1238//2113 1239//2114 -f 1251//2121 1252//2122 1237//2112 1238//2113 -f 1252//2122 1253//2123 1215//2099 1237//2112 -f 1254//2124 1255//2125 1249//2119 -f 1255//2125 1256//2126 1251//2121 1250//2120 -f 1256//2126 1257//2127 1252//2122 1251//2121 -f 1257//2127 1258//2128 1253//2123 1252//2122 -f 1259//2129 1260//2130 1257//2127 1256//2126 -f 1260//2130 1261//2131 1258//2128 1257//2127 -f 1247//2117 1248//2118 1214//2098 -f 1249//2119 1248//2118 1254//2124 -f 1250//2120 1249//2119 1255//2125 -f 1262//2132 1263//2133 1248//2118 1247//2117 -f 1263//2133 1254//2124 1248//2118 -f 1264//2134 1265//2135 1263//2133 1262//2132 -f 1265//2135 1266//2136 1254//2124 1263//2133 -f 1266//2136 1267//2137 1254//2124 -f 1267//2137 1259//2129 1256//2126 1255//2125 -f 1268//2138 1269//2139 1265//2135 1264//2134 -f 1269//2139 1270//2140 1266//2136 1265//2135 -f 1270//2140 1271//2141 1267//2137 1266//2136 -f 1271//2141 1272//2142 1259//2129 1267//2137 -f 1272//2142 1273//2143 1260//2130 1259//2129 -f 1273//2143 1274//2144 1261//2131 1260//2130 -f 1275//2145 1276//2146 1269//2139 1268//2138 -f 1276//2146 1277//2147 1270//2140 1269//2139 -f 1277//2147 1278//2148 1271//2141 1270//2140 -f 1278//2148 1279//2149 1272//2142 1271//2141 -f 1279//2149 1280//2150 1273//2143 1272//2142 -f 1280//2150 1281//2151 1274//2144 1273//2143 -f 1282//2152 1283//2153 1276//2146 1275//2145 -f 1283//2153 1284//2154 1277//2147 1276//2146 -f 1284//2154 1285//2155 1278//2148 1277//2147 -f 1285//2155 1286//2156 1279//2149 1278//2148 -f 1286//2156 1287//2157 1280//2150 1279//2149 -f 1287//2157 1288//2158 1281//2151 1280//2150 -f 1255//2125 1254//2124 1267//2137 -s 145 -f 1291//2265 1290//2264 1289//2263 -f 1294//2268 1293//2267 1292//2266 1290//2264 -f 1293//2267 1296//2270 1295//2269 1292//2266 -f 1296//2270 1298//2272 1297//2271 1295//2269 -f 1292//2266 1295//2269 1300//2274 1299//2273 -f 1295//2269 1297//2271 1301//2275 1300//2274 -f 1289//2263 1302//2276 1291//2265 -f 1290//2264 1291//2265 1294//2268 -f 1247//2251 1302//2276 1303//2277 1262//2252 -f 1302//2276 1289//2263 1303//2277 -f 1262//2252 1303//2277 1304//2278 1264//2253 -f 1303//2277 1289//2263 1305//2279 1304//2278 -f 1289//2263 1306//2280 1305//2279 -f 1290//2264 1292//2266 1299//2273 1306//2280 -f 1264//2253 1304//2278 1307//2281 1268//2254 -f 1304//2278 1305//2279 1308//2282 1307//2281 -f 1305//2279 1306//2280 1309//2283 1308//2282 -f 1306//2280 1299//2273 1310//2284 1309//2283 -f 1299//2273 1300//2274 1311//2285 1310//2284 -f 1300//2274 1301//2275 1312//2286 1311//2285 -f 1268//2254 1307//2281 1313//2287 1275//2255 -f 1307//2281 1308//2282 1314//2288 1313//2287 -f 1308//2282 1309//2283 1315//2289 1314//2288 -f 1309//2283 1310//2284 1316//2290 1315//2289 -f 1310//2284 1311//2285 1317//2291 1316//2290 -f 1311//2285 1312//2286 1318//2292 1317//2291 -f 1275//2255 1313//2287 1283//2257 1282//2256 -f 1313//2287 1314//2288 1284//2258 1283//2257 -f 1314//2288 1315//2289 1285//2259 1284//2258 -f 1315//2289 1316//2290 1286//2260 1285//2259 -f 1316//2290 1317//2291 1287//2261 1286//2260 -f 1317//2291 1318//2292 1288//2262 1287//2261 -f 1306//2280 1289//2263 1290//2264 -f 1298//2272 1296//2270 1242//2246 1236//2245 -s off -f 1247//130 1214//130 1235//130 -s 145 -f 1302//2276 1247//2251 1235//2244 1246//2250 -f 1291//2265 1302//2276 1246//2250 1245//2249 -f 1294//2268 1291//2265 1245//2249 1244//2248 -f 1293//2267 1294//2268 1244//2248 1243//2247 -f 1296//2270 1293//2267 1243//2247 1242//2246 -s 143 -f 1322//2162 1321//2161 1320//2160 1319//2159 -f 1327//2167 1322//2162 1319//2159 1218//2102 1215//2099 1326//2166 1325//2165 1324//2164 1323//2163 -f 1319//2159 1320//2160 1329//2169 1328//2168 -f 1218//2102 1319//2159 1328//2168 1221//2105 -f 1328//2168 1329//2169 1331//2171 1330//2170 -f 1221//2105 1328//2168 1330//2170 1224//2108 -f 1330//2170 1331//2171 1333//2173 1332//2172 -f 1224//2108 1330//2170 1332//2172 1227//2111 -s 144 -f 1332//2231 1333//2232 1335//2234 1334//2233 -f 1227//2214 1332//2231 1334//2233 1230//2217 -f 1334//2233 1335//2234 1337//2236 1336//2235 -f 1230//2217 1334//2233 1336//2235 1233//2220 -f 1336//2235 1337//2236 1339//2238 1338//2237 -f 1233//2220 1336//2235 1338//2237 1344//2243 1343//2242 1342//2241 1341//2240 1340//2239 1236//2223 -f 1338//2237 1339//2238 1321//2229 1322//2230 -s off -f 1321//131 1339//131 1337//131 1335//131 1333//131 1331//131 1329//131 1320//131 -s 143 -f 1322//2162 1327//2167 1345//2174 -f 1327//2167 1323//2163 1346//2175 1345//2174 -f 1323//2163 1324//2164 1347//2176 1346//2175 -f 1324//2164 1325//2165 1348//2177 1347//2176 -f 1325//2165 1326//2166 1349//2178 1348//2177 -f 1326//2166 1215//2099 1253//2123 1349//2178 -f 1346//2175 1351//2180 1350//2179 -f 1347//2176 1348//2177 1352//2181 1351//2180 -f 1348//2177 1349//2178 1353//2182 1352//2181 -f 1349//2178 1253//2123 1258//2128 1353//2182 -f 1352//2181 1353//2182 1355//2184 1354//2183 -f 1353//2182 1258//2128 1261//2131 1355//2184 -f 1322//2162 1345//2174 1356//2185 -f 1350//2179 1345//2174 1346//2175 -f 1351//2180 1346//2175 1347//2176 -f 1356//2185 1345//2174 1358//2187 1357//2186 -f 1345//2174 1350//2179 1358//2187 -f 1357//2186 1358//2187 1360//2189 1359//2188 -f 1358//2187 1350//2179 1361//2190 1360//2189 -f 1350//2179 1362//2191 1361//2190 -f 1351//2180 1352//2181 1354//2183 1362//2191 -f 1359//2188 1360//2189 1364//2193 1363//2192 -f 1360//2189 1361//2190 1365//2194 1364//2193 -f 1361//2190 1362//2191 1366//2195 1365//2194 -f 1362//2191 1354//2183 1367//2196 1366//2195 -f 1354//2183 1355//2184 1368//2197 1367//2196 -f 1355//2184 1261//2131 1274//2144 1368//2197 -f 1363//2192 1364//2193 1370//2199 1369//2198 -f 1364//2193 1365//2194 1371//2200 1370//2199 -f 1365//2194 1366//2195 1372//2201 1371//2200 -f 1366//2195 1367//2196 1373//2202 1372//2201 -f 1367//2196 1368//2197 1374//2203 1373//2202 -f 1368//2197 1274//2144 1281//2151 1374//2203 -f 1369//2198 1370//2199 1376//2205 1375//2204 -f 1370//2199 1371//2200 1377//2206 1376//2205 -f 1371//2200 1372//2201 1378//2207 1377//2206 -f 1372//2201 1373//2202 1379//2208 1378//2207 -f 1373//2202 1374//2203 1380//2209 1379//2208 -f 1374//2203 1281//2151 1288//2158 1380//2209 -f 1362//2191 1350//2179 1351//2180 -s 145 -f 1383//2312 1382//2311 1381//2310 -f 1382//2311 1386//2315 1385//2314 1384//2313 -f 1386//2315 1388//2317 1387//2316 1385//2314 -f 1388//2317 1297//2271 1298//2272 1387//2316 -f 1390//2319 1389//2318 1388//2317 1386//2315 -f 1389//2318 1301//2275 1297//2271 1388//2317 -f 1381//2310 1391//2320 1383//2312 -f 1384//2313 1381//2310 1382//2311 -f 1357//2300 1392//2321 1391//2320 1356//2299 -f 1392//2321 1383//2312 1391//2320 -f 1359//2301 1393//2322 1392//2321 1357//2300 -f 1393//2322 1394//2323 1383//2312 1392//2321 -f 1394//2323 1395//2324 1383//2312 -f 1395//2324 1390//2319 1386//2315 1382//2311 -f 1363//2302 1396//2325 1393//2322 1359//2301 -f 1396//2325 1397//2326 1394//2323 1393//2322 -f 1397//2326 1398//2327 1395//2324 1394//2323 -f 1398//2327 1399//2328 1390//2319 1395//2324 -f 1399//2328 1400//2329 1389//2318 1390//2319 -f 1400//2329 1312//2286 1301//2275 1389//2318 -f 1369//2303 1401//2330 1396//2325 1363//2302 -f 1401//2330 1402//2331 1397//2326 1396//2325 -f 1402//2331 1403//2332 1398//2327 1397//2326 -f 1403//2332 1404//2333 1399//2328 1398//2327 -f 1404//2333 1405//2334 1400//2329 1399//2328 -f 1405//2334 1318//2292 1312//2286 1400//2329 -f 1375//2304 1376//2305 1401//2330 1369//2303 -f 1376//2305 1377//2306 1402//2331 1401//2330 -f 1377//2306 1378//2307 1403//2332 1402//2331 -f 1378//2307 1379//2308 1404//2333 1403//2332 -f 1379//2308 1380//2309 1405//2334 1404//2333 -f 1380//2309 1288//2262 1318//2292 1405//2334 -f 1382//2311 1383//2312 1395//2324 -f 1236//2245 1340//2294 1387//2316 1298//2272 -s off -f 1338//132 1322//132 1356//132 -s 145 -f 1344//2298 1338//2293 1356//2299 1391//2320 -f 1343//2297 1344//2298 1391//2320 1381//2310 -f 1342//2296 1343//2297 1381//2310 1384//2313 -f 1341//2295 1342//2296 1384//2313 1385//2314 -f 1340//2294 1341//2295 1385//2314 1387//2316 -g sail1 -s 151 -f 1438//2353 1437//2352 1436//2351 1435//2350 1407//2336 1410//2339 1409//2338 1406//2335 1439//2354 -f 1411//2340 1410//2339 1407//2336 1408//2337 -f 1413//2342 1412//2341 1409//2338 1410//2339 -f 1414//2343 1413//2342 1410//2339 1411//2340 -f 1416//2345 1415//2344 1412//2341 1413//2342 -f 1417//2346 1416//2345 1413//2342 1414//2343 -f 1419//2348 1418//2347 1415//2344 1416//2345 -f 1420//2349 1419//2348 1416//2345 1417//2346 -s 152 -f 1422//2454 1421//2453 1418//2450 1419//2451 -f 1423//2455 1422//2454 1419//2451 1420//2452 -f 1425//2457 1424//2456 1421//2453 1422//2454 -f 1426//2458 1425//2457 1422//2454 1423//2455 -f 1428//2460 1430//2462 1431//2463 1432//2464 1433//2465 1434//2466 1427//2459 1424//2456 1425//2457 -f 1429//2461 1428//2460 1425//2457 1426//2458 -f 1408//2449 1407//2448 1428//2460 1429//2461 -s off -f 1429//133 1426//133 1423//133 1420//133 1417//133 1414//133 1411//133 1408//133 -s 151 -f 1440//2355 1441//2356 1439//2354 1406//2335 -f 1441//2356 1442//2357 1438//2353 1439//2354 -f 1442//2357 1443//2358 1437//2352 1438//2353 -f 1443//2358 1444//2359 1436//2351 1437//2352 -f 1444//2359 1445//2360 1435//2350 1436//2351 -f 1446//2361 1407//2336 1445//2360 -f 1447//2362 1448//2363 1441//2356 1440//2355 -f 1448//2363 1449//2364 1442//2357 1441//2356 -f 1449//2364 1450//2365 1443//2358 1442//2357 -f 1450//2365 1444//2359 1443//2358 -f 1451//2366 1445//2360 1444//2359 -f 1452//2367 1453//2368 1446//2361 1445//2360 -f 1454//2369 1455//2370 1448//2363 1447//2362 -f 1455//2370 1456//2371 1449//2364 1448//2363 -f 1456//2371 1457//2372 1450//2365 1449//2364 -f 1457//2372 1451//2366 1450//2365 -f 1458//2373 1459//2374 1452//2367 1451//2366 -f 1459//2374 1460//2375 1453//2368 1452//2367 -f 1461//2376 1462//2377 1455//2370 1454//2369 -f 1462//2377 1463//2378 1456//2371 1455//2370 -f 1463//2378 1464//2379 1457//2372 1456//2371 -f 1464//2379 1465//2380 1458//2373 1457//2372 -f 1465//2380 1466//2381 1459//2374 1458//2373 -f 1466//2381 1467//2382 1460//2375 1459//2374 -f 1468//2383 1469//2384 1462//2377 1461//2376 -f 1469//2384 1470//2385 1463//2378 1462//2377 -f 1470//2385 1471//2386 1464//2379 1463//2378 -f 1471//2386 1472//2387 1465//2380 1464//2379 -f 1472//2387 1473//2388 1466//2381 1465//2380 -f 1473//2388 1474//2389 1467//2382 1466//2381 -f 1475//2390 1476//2391 1469//2384 1468//2383 -f 1476//2391 1477//2392 1470//2385 1469//2384 -f 1477//2392 1478//2393 1471//2386 1470//2385 -f 1478//2393 1479//2394 1472//2387 1471//2386 -f 1479//2394 1480//2395 1473//2388 1472//2387 -f 1480//2395 1481//2396 1473//2388 -f 1435//2350 1445//2360 1407//2336 -f 1452//2367 1445//2360 1451//2366 -f 1451//2366 1444//2359 1450//2365 -f 1458//2373 1451//2366 1457//2372 -f 1481//2396 1474//2389 1473//2388 -s 153 -f 1485//2504 1484//2503 1483//2502 1482//2501 -f 1484//2503 1487//2506 1486//2505 1483//2502 -f 1487//2506 1489//2508 1488//2507 1486//2505 -f 1489//2508 1490//2509 1488//2507 -f 1490//2509 1492//2511 1491//2510 -f 1492//2511 1446//2489 1453//2490 1493//2512 -f 1482//2501 1483//2502 1495//2514 1494//2513 -f 1483//2502 1486//2505 1496//2515 1495//2514 -f 1486//2505 1488//2507 1497//2516 1496//2515 -f 1488//2507 1491//2510 1497//2516 -f 1491//2510 1493//2512 1499//2518 1498//2517 -f 1493//2512 1453//2490 1460//2491 1499//2518 -f 1494//2513 1495//2514 1501//2520 1500//2519 -f 1495//2514 1496//2515 1502//2521 1501//2520 -f 1496//2515 1497//2516 1503//2522 1502//2521 -f 1497//2516 1498//2517 1504//2523 1503//2522 -f 1498//2517 1499//2518 1505//2524 1504//2523 -f 1499//2518 1460//2491 1467//2492 1505//2524 -f 1500//2519 1501//2520 1507//2526 1506//2525 -f 1501//2520 1502//2521 1508//2527 1507//2526 -f 1502//2521 1503//2522 1509//2528 1508//2527 -f 1503//2522 1504//2523 1510//2529 1509//2528 -f 1504//2523 1505//2524 1511//2530 1510//2529 -f 1505//2524 1467//2492 1474//2493 1511//2530 -f 1506//2525 1507//2526 1476//2495 1475//2494 -f 1507//2526 1508//2527 1477//2496 1476//2495 -f 1508//2527 1509//2528 1478//2497 1477//2496 -f 1509//2528 1510//2529 1479//2498 1478//2497 -f 1510//2529 1511//2530 1480//2499 1479//2498 -f 1511//2530 1481//2500 1480//2499 -f 1491//2510 1492//2511 1493//2512 -f 1488//2507 1490//2509 1491//2510 -f 1497//2516 1491//2510 1498//2517 -f 1511//2530 1474//2493 1481//2500 -f 1428//2483 1446//2489 1492//2511 1430//2484 -f 1484//2503 1485//2504 1427//2482 1434//2488 -f 1487//2506 1484//2503 1434//2488 1433//2487 -f 1489//2508 1487//2506 1433//2487 1432//2486 -f 1490//2509 1489//2508 1432//2486 1431//2485 -f 1492//2511 1490//2509 1431//2485 1430//2484 -s off -f 1428//134 1407//134 1446//134 -s 151 -f 1518//2403 1406//2335 1409//2338 1517//2402 1516//2401 1515//2400 1514//2399 1513//2398 1512//2397 -f 1520//2405 1516//2401 1517//2402 1519//2404 -f 1517//2402 1409//2338 1412//2341 1521//2406 -f 1519//2404 1517//2402 1521//2406 1522//2407 -f 1521//2406 1412//2341 1415//2344 1523//2408 -f 1522//2407 1521//2406 1523//2408 1524//2409 -f 1523//2408 1415//2344 1418//2347 1525//2410 -f 1524//2409 1523//2408 1525//2410 1526//2411 -s 152 -f 1525//2469 1418//2450 1421//2453 1527//2471 -f 1526//2470 1525//2469 1527//2471 1528//2472 -f 1527//2471 1421//2453 1424//2456 1529//2473 -f 1528//2472 1527//2471 1529//2473 1530//2474 -f 1529//2473 1424//2456 1427//2459 1536//2480 1535//2479 1534//2478 1533//2477 1532//2476 1531//2475 -f 1530//2474 1529//2473 1531//2475 1537//2481 -f 1537//2481 1531//2475 1516//2467 1520//2468 -s off -f 1520//135 1519//135 1522//135 1524//135 1526//135 1528//135 1530//135 1537//135 -s 151 -f 1406//2335 1518//2403 1538//2412 1440//2355 -f 1518//2403 1512//2397 1539//2413 1538//2412 -f 1512//2397 1513//2398 1540//2414 1539//2413 -f 1513//2398 1514//2399 1541//2415 1540//2414 -f 1514//2399 1515//2400 1542//2416 1541//2415 -f 1542//2416 1516//2401 1543//2417 -f 1440//2355 1538//2412 1544//2418 1447//2362 -f 1538//2412 1539//2413 1545//2419 1544//2418 -f 1539//2413 1540//2414 1546//2420 1545//2419 -f 1540//2414 1541//2415 1546//2420 -f 1541//2415 1542//2416 1547//2421 -f 1542//2416 1543//2417 1549//2423 1548//2422 -f 1447//2362 1544//2418 1550//2424 1454//2369 -f 1544//2418 1545//2419 1551//2425 1550//2424 -f 1545//2419 1546//2420 1552//2426 1551//2425 -f 1546//2420 1547//2421 1552//2426 -f 1547//2421 1548//2422 1554//2428 1553//2427 -f 1548//2422 1549//2423 1555//2429 1554//2428 -f 1454//2369 1550//2424 1556//2430 1461//2376 -f 1550//2424 1551//2425 1557//2431 1556//2430 -f 1551//2425 1552//2426 1558//2432 1557//2431 -f 1552//2426 1553//2427 1559//2433 1558//2432 -f 1553//2427 1554//2428 1560//2434 1559//2433 -f 1554//2428 1555//2429 1561//2435 1560//2434 -f 1461//2376 1556//2430 1562//2436 1468//2383 -f 1556//2430 1557//2431 1563//2437 1562//2436 -f 1557//2431 1558//2432 1564//2438 1563//2437 -f 1558//2432 1559//2433 1565//2439 1564//2438 -f 1559//2433 1560//2434 1566//2440 1565//2439 -f 1560//2434 1561//2435 1567//2441 1566//2440 -f 1468//2383 1562//2436 1568//2442 1475//2390 -f 1562//2436 1563//2437 1569//2443 1568//2442 -f 1563//2437 1564//2438 1570//2444 1569//2443 -f 1564//2438 1565//2439 1571//2445 1570//2444 -f 1565//2439 1566//2440 1572//2446 1571//2445 -f 1566//2440 1573//2447 1572//2446 -f 1516//2401 1542//2416 1515//2400 -f 1547//2421 1542//2416 1548//2422 -f 1546//2420 1541//2415 1547//2421 -f 1552//2426 1547//2421 1553//2427 -f 1566//2440 1567//2441 1573//2447 -s 153 -f 1482//2501 1575//2549 1574//2548 1485//2504 -f 1575//2549 1577//2551 1576//2550 1574//2548 -f 1577//2551 1579//2553 1578//2552 1576//2550 -f 1579//2553 1580//2554 1578//2552 -f 1582//2556 1581//2555 1580//2554 -f 1583//2557 1549//2538 1543//2537 1581//2555 -f 1494//2513 1584//2558 1575//2549 1482//2501 -f 1584//2558 1585//2559 1577//2551 1575//2549 -f 1585//2559 1586//2560 1579//2553 1577//2551 -f 1586//2560 1582//2556 1579//2553 -f 1588//2562 1587//2561 1583//2557 1582//2556 -f 1587//2561 1555//2539 1549//2538 1583//2557 -f 1500//2519 1589//2563 1584//2558 1494//2513 -f 1589//2563 1590//2564 1585//2559 1584//2558 -f 1590//2564 1591//2565 1586//2560 1585//2559 -f 1591//2565 1592//2566 1588//2562 1586//2560 -f 1592//2566 1593//2567 1587//2561 1588//2562 -f 1593//2567 1561//2540 1555//2539 1587//2561 -f 1506//2525 1594//2568 1589//2563 1500//2519 -f 1594//2568 1595//2569 1590//2564 1589//2563 -f 1595//2569 1596//2570 1591//2565 1590//2564 -f 1596//2570 1597//2571 1592//2566 1591//2565 -f 1597//2571 1598//2572 1593//2567 1592//2566 -f 1598//2572 1567//2541 1561//2540 1593//2567 -f 1475//2494 1568//2542 1594//2568 1506//2525 -f 1568//2542 1569//2543 1595//2569 1594//2568 -f 1569//2543 1570//2544 1596//2570 1595//2569 -f 1570//2544 1571//2545 1597//2571 1596//2570 -f 1571//2545 1572//2546 1598//2572 1597//2571 -f 1572//2546 1573//2547 1598//2572 -f 1583//2557 1581//2555 1582//2556 -f 1582//2556 1580//2554 1579//2553 -f 1588//2562 1582//2556 1586//2560 -f 1573//2547 1567//2541 1598//2572 -f 1532//2532 1581//2555 1543//2537 1531//2531 -f 1536//2536 1427//2482 1485//2504 1574//2548 -f 1535//2535 1536//2536 1574//2548 1576//2550 -f 1534//2534 1535//2535 1576//2550 1578//2552 -f 1533//2533 1534//2534 1578//2552 1580//2554 -f 1532//2532 1533//2533 1580//2554 1581//2555 -s off -f 1543//136 1516//136 1531//136 -g sail5 -s 158 -f 1603//2577 1602//2576 1599//2573 1600//2574 -f 1626//2591 1625//2590 1624//2589 1623//2588 1601//2575 1604//2578 1603//2577 1600//2574 1627//2592 -f 1606//2580 1605//2579 1602//2576 1603//2577 -f 1607//2581 1606//2580 1603//2577 1604//2578 -f 1609//2583 1608//2582 1605//2579 1606//2580 -f 1610//2584 1609//2583 1606//2580 1607//2581 -f 1612//2586 1611//2585 1608//2582 1609//2583 -f 1613//2587 1612//2586 1609//2583 1610//2584 -s 159 -f 1615//2692 1614//2691 1611//2688 1612//2689 -f 1616//2693 1615//2692 1612//2689 1613//2690 -f 1618//2695 1617//2694 1614//2691 1615//2692 -f 1619//2696 1618//2695 1615//2692 1616//2693 -f 1621//2698 1620//2697 1617//2694 1618//2695 -f 1622//2699 1628//2700 1629//2701 1630//2702 1631//2703 1632//2704 1621//2698 1618//2695 1619//2696 -f 1600//2687 1599//2686 1620//2697 1621//2698 -s off -f 1602//137 1605//137 1608//137 1611//137 1614//137 1617//137 1620//137 1599//137 -s 158 -f 1634//2594 1627//2592 1600//2574 -f 1634//2594 1635//2595 1626//2591 1627//2592 -f 1635//2595 1636//2596 1625//2590 1626//2591 -f 1636//2596 1637//2597 1624//2589 1625//2590 -f 1637//2597 1638//2598 1623//2588 1624//2589 -f 1638//2598 1639//2599 1601//2575 1623//2588 -f 1640//2600 1641//2601 1635//2595 -f 1641//2601 1642//2602 1637//2597 1636//2596 -f 1642//2602 1643//2603 1638//2598 1637//2597 -f 1643//2603 1644//2604 1639//2599 1638//2598 -f 1645//2605 1646//2606 1643//2603 1642//2602 -f 1646//2606 1647//2607 1644//2604 1643//2603 -f 1633//2593 1634//2594 1600//2574 -f 1635//2595 1634//2594 1640//2600 -f 1636//2596 1635//2595 1641//2601 -f 1648//2608 1649//2609 1634//2594 1633//2593 -f 1649//2609 1640//2600 1634//2594 -f 1650//2610 1651//2611 1649//2609 1648//2608 -f 1651//2611 1652//2612 1640//2600 1649//2609 -f 1652//2612 1653//2613 1640//2600 -f 1653//2613 1645//2605 1642//2602 1641//2601 -f 1654//2614 1655//2615 1651//2611 1650//2610 -f 1655//2615 1656//2616 1652//2612 1651//2611 -f 1656//2616 1657//2617 1653//2613 1652//2612 -f 1657//2617 1658//2618 1645//2605 1653//2613 -f 1658//2618 1659//2619 1646//2606 1645//2605 -f 1659//2619 1660//2620 1647//2607 1646//2606 -f 1661//2621 1662//2622 1655//2615 1654//2614 -f 1662//2622 1663//2623 1656//2616 1655//2615 -f 1663//2623 1664//2624 1657//2617 1656//2616 -f 1664//2624 1665//2625 1658//2618 1657//2617 -f 1665//2625 1666//2626 1659//2619 1658//2618 -f 1666//2626 1667//2627 1660//2620 1659//2619 -f 1668//2628 1669//2629 1662//2622 1661//2621 -f 1669//2629 1670//2630 1663//2623 1662//2622 -f 1670//2630 1671//2631 1664//2624 1663//2623 -f 1671//2631 1672//2632 1665//2625 1664//2624 -f 1672//2632 1673//2633 1666//2626 1665//2625 -f 1673//2633 1674//2634 1667//2627 1666//2626 -f 1641//2601 1640//2600 1653//2613 -s 160 -f 1677//2741 1676//2740 1675//2739 -f 1680//2744 1679//2743 1678//2742 1676//2740 -f 1679//2743 1682//2746 1681//2745 1678//2742 -f 1682//2746 1684//2748 1683//2747 1681//2745 -f 1678//2742 1681//2745 1686//2750 1685//2749 -f 1681//2745 1683//2747 1687//2751 1686//2750 -f 1675//2739 1688//2752 1677//2741 -f 1676//2740 1677//2741 1680//2744 -f 1633//2727 1688//2752 1689//2753 1648//2728 -f 1688//2752 1675//2739 1689//2753 -f 1648//2728 1689//2753 1690//2754 1650//2729 -f 1689//2753 1675//2739 1691//2755 1690//2754 -f 1675//2739 1692//2756 1691//2755 -f 1676//2740 1678//2742 1685//2749 1692//2756 -f 1650//2729 1690//2754 1693//2757 1654//2730 -f 1690//2754 1691//2755 1694//2758 1693//2757 -f 1691//2755 1692//2756 1695//2759 1694//2758 -f 1692//2756 1685//2749 1696//2760 1695//2759 -f 1685//2749 1686//2750 1697//2761 1696//2760 -f 1686//2750 1687//2751 1698//2762 1697//2761 -f 1654//2730 1693//2757 1699//2763 1661//2731 -f 1693//2757 1694//2758 1700//2764 1699//2763 -f 1694//2758 1695//2759 1701//2765 1700//2764 -f 1695//2759 1696//2760 1702//2766 1701//2765 -f 1696//2760 1697//2761 1703//2767 1702//2766 -f 1697//2761 1698//2762 1704//2768 1703//2767 -f 1661//2731 1699//2763 1669//2733 1668//2732 -f 1699//2763 1700//2764 1670//2734 1669//2733 -f 1700//2764 1701//2765 1671//2735 1670//2734 -f 1701//2765 1702//2766 1672//2736 1671//2735 -f 1702//2766 1703//2767 1673//2737 1672//2736 -f 1703//2767 1704//2768 1674//2738 1673//2737 -f 1692//2756 1675//2739 1676//2740 -f 1684//2748 1682//2746 1628//2722 1622//2721 -s off -f 1633//138 1600//138 1621//138 -s 160 -f 1688//2752 1633//2727 1621//2720 1632//2726 -f 1677//2741 1688//2752 1632//2726 1631//2725 -f 1680//2744 1677//2741 1631//2725 1630//2724 -f 1679//2743 1680//2744 1630//2724 1629//2723 -f 1682//2746 1679//2743 1629//2723 1628//2722 -s 158 -f 1708//2638 1707//2637 1706//2636 1705//2635 -f 1713//2643 1708//2638 1705//2635 1604//2578 1601//2575 1712//2642 1711//2641 1710//2640 1709//2639 -f 1705//2635 1706//2636 1715//2645 1714//2644 -f 1604//2578 1705//2635 1714//2644 1607//2581 -f 1714//2644 1715//2645 1717//2647 1716//2646 -f 1607//2581 1714//2644 1716//2646 1610//2584 -f 1716//2646 1717//2647 1719//2649 1718//2648 -f 1610//2584 1716//2646 1718//2648 1613//2587 -s 159 -f 1718//2707 1719//2708 1721//2710 1720//2709 -f 1613//2690 1718//2707 1720//2709 1616//2693 -f 1720//2709 1721//2710 1723//2712 1722//2711 -f 1616//2693 1720//2709 1722//2711 1619//2696 -f 1722//2711 1723//2712 1725//2714 1724//2713 -f 1619//2696 1722//2711 1724//2713 1730//2719 1729//2718 1728//2717 1727//2716 1726//2715 1622//2699 -f 1724//2713 1725//2714 1707//2705 1708//2706 -s off -f 1707//139 1725//139 1723//139 1721//139 1719//139 1717//139 1715//139 1706//139 -s 158 -f 1708//2638 1713//2643 1731//2650 -f 1713//2643 1709//2639 1732//2651 1731//2650 -f 1709//2639 1710//2640 1733//2652 1732//2651 -f 1710//2640 1711//2641 1734//2653 1733//2652 -f 1711//2641 1712//2642 1735//2654 1734//2653 -f 1712//2642 1601//2575 1639//2599 1735//2654 -f 1732//2651 1737//2656 1736//2655 -f 1733//2652 1734//2653 1738//2657 1737//2656 -f 1734//2653 1735//2654 1739//2658 1738//2657 -f 1735//2654 1639//2599 1644//2604 1739//2658 -f 1738//2657 1739//2658 1741//2660 1740//2659 -f 1739//2658 1644//2604 1647//2607 1741//2660 -f 1708//2638 1731//2650 1742//2661 -f 1736//2655 1731//2650 1732//2651 -f 1737//2656 1732//2651 1733//2652 -f 1742//2661 1731//2650 1744//2663 1743//2662 -f 1731//2650 1736//2655 1744//2663 -f 1743//2662 1744//2663 1746//2665 1745//2664 -f 1744//2663 1736//2655 1747//2666 1746//2665 -f 1736//2655 1748//2667 1747//2666 -f 1737//2656 1738//2657 1740//2659 1748//2667 -f 1745//2664 1746//2665 1750//2669 1749//2668 -f 1746//2665 1747//2666 1751//2670 1750//2669 -f 1747//2666 1748//2667 1752//2671 1751//2670 -f 1748//2667 1740//2659 1753//2672 1752//2671 -f 1740//2659 1741//2660 1754//2673 1753//2672 -f 1741//2660 1647//2607 1660//2620 1754//2673 -f 1749//2668 1750//2669 1756//2675 1755//2674 -f 1750//2669 1751//2670 1757//2676 1756//2675 -f 1751//2670 1752//2671 1758//2677 1757//2676 -f 1752//2671 1753//2672 1759//2678 1758//2677 -f 1753//2672 1754//2673 1760//2679 1759//2678 -f 1754//2673 1660//2620 1667//2627 1760//2679 -f 1755//2674 1756//2675 1762//2681 1761//2680 -f 1756//2675 1757//2676 1763//2682 1762//2681 -f 1757//2676 1758//2677 1764//2683 1763//2682 -f 1758//2677 1759//2678 1765//2684 1764//2683 -f 1759//2678 1760//2679 1766//2685 1765//2684 -f 1760//2679 1667//2627 1674//2634 1766//2685 -f 1748//2667 1736//2655 1737//2656 -s 160 -f 1769//2788 1768//2787 1767//2786 -f 1768//2787 1772//2791 1771//2790 1770//2789 -f 1772//2791 1774//2793 1773//2792 1771//2790 -f 1774//2793 1683//2747 1684//2748 1773//2792 -f 1776//2795 1775//2794 1774//2793 1772//2791 -f 1775//2794 1687//2751 1683//2747 1774//2793 -f 1767//2786 1777//2796 1769//2788 -f 1770//2789 1767//2786 1768//2787 -f 1743//2776 1778//2797 1777//2796 1742//2775 -f 1778//2797 1769//2788 1777//2796 -f 1745//2777 1779//2798 1778//2797 1743//2776 -f 1779//2798 1780//2799 1769//2788 1778//2797 -f 1780//2799 1781//2800 1769//2788 -f 1781//2800 1776//2795 1772//2791 1768//2787 -f 1749//2778 1782//2801 1779//2798 1745//2777 -f 1782//2801 1783//2802 1780//2799 1779//2798 -f 1783//2802 1784//2803 1781//2800 1780//2799 -f 1784//2803 1785//2804 1776//2795 1781//2800 -f 1785//2804 1786//2805 1775//2794 1776//2795 -f 1786//2805 1698//2762 1687//2751 1775//2794 -f 1755//2779 1787//2806 1782//2801 1749//2778 -f 1787//2806 1788//2807 1783//2802 1782//2801 -f 1788//2807 1789//2808 1784//2803 1783//2802 -f 1789//2808 1790//2809 1785//2804 1784//2803 -f 1790//2809 1791//2810 1786//2805 1785//2804 -f 1791//2810 1704//2768 1698//2762 1786//2805 -f 1761//2780 1762//2781 1787//2806 1755//2779 -f 1762//2781 1763//2782 1788//2807 1787//2806 -f 1763//2782 1764//2783 1789//2808 1788//2807 -f 1764//2783 1765//2784 1790//2809 1789//2808 -f 1765//2784 1766//2785 1791//2810 1790//2809 -f 1766//2785 1674//2738 1704//2768 1791//2810 -f 1768//2787 1769//2788 1781//2800 -f 1622//2721 1726//2770 1773//2792 1684//2748 -s off -f 1724//140 1708//140 1742//140 -s 160 -f 1730//2774 1724//2769 1742//2775 1777//2796 -f 1729//2773 1730//2774 1777//2796 1767//2786 -f 1728//2772 1729//2773 1767//2786 1770//2789 -f 1727//2771 1728//2772 1770//2789 1771//2790 -f 1726//2770 1727//2771 1771//2790 1773//2792 -g sail4 -s 166 -f 1824//2829 1823//2828 1822//2827 1821//2826 1793//2812 1796//2815 1795//2814 1792//2811 1825//2830 -f 1797//2816 1796//2815 1793//2812 1794//2813 -f 1799//2818 1798//2817 1795//2814 1796//2815 -f 1800//2819 1799//2818 1796//2815 1797//2816 -f 1802//2821 1801//2820 1798//2817 1799//2818 -f 1803//2822 1802//2821 1799//2818 1800//2819 -f 1805//2824 1804//2823 1801//2820 1802//2821 -f 1806//2825 1805//2824 1802//2821 1803//2822 -s 167 -f 1808//2930 1807//2929 1804//2926 1805//2927 -f 1809//2931 1808//2930 1805//2927 1806//2928 -f 1811//2933 1810//2932 1807//2929 1808//2930 -f 1812//2934 1811//2933 1808//2930 1809//2931 -f 1814//2936 1816//2938 1817//2939 1818//2940 1819//2941 1820//2942 1813//2935 1810//2932 1811//2933 -f 1815//2937 1814//2936 1811//2933 1812//2934 -f 1794//2925 1793//2924 1814//2936 1815//2937 -s off -f 1815//141 1812//141 1809//141 1806//141 1803//141 1800//141 1797//141 1794//141 -s 166 -f 1826//2831 1827//2832 1825//2830 1792//2811 -f 1827//2832 1828//2833 1824//2829 1825//2830 -f 1828//2833 1829//2834 1823//2828 1824//2829 -f 1829//2834 1830//2835 1822//2827 1823//2828 -f 1830//2835 1831//2836 1821//2826 1822//2827 -f 1832//2837 1793//2812 1831//2836 -f 1833//2838 1834//2839 1827//2832 1826//2831 -f 1834//2839 1835//2840 1828//2833 1827//2832 -f 1835//2840 1836//2841 1829//2834 1828//2833 -f 1836//2841 1830//2835 1829//2834 -f 1837//2842 1831//2836 1830//2835 -f 1838//2843 1839//2844 1832//2837 1831//2836 -f 1840//2845 1841//2846 1834//2839 1833//2838 -f 1841//2846 1842//2847 1835//2840 1834//2839 -f 1842//2847 1843//2848 1836//2841 1835//2840 -f 1843//2848 1837//2842 1836//2841 -f 1844//2849 1845//2850 1838//2843 1837//2842 -f 1845//2850 1846//2851 1839//2844 1838//2843 -f 1847//2852 1848//2853 1841//2846 1840//2845 -f 1848//2853 1849//2854 1842//2847 1841//2846 -f 1849//2854 1850//2855 1843//2848 1842//2847 -f 1850//2855 1851//2856 1844//2849 1843//2848 -f 1851//2856 1852//2857 1845//2850 1844//2849 -f 1852//2857 1853//2858 1846//2851 1845//2850 -f 1854//2859 1855//2860 1848//2853 1847//2852 -f 1855//2860 1856//2861 1849//2854 1848//2853 -f 1856//2861 1857//2862 1850//2855 1849//2854 -f 1857//2862 1858//2863 1851//2856 1850//2855 -f 1858//2863 1859//2864 1852//2857 1851//2856 -f 1859//2864 1860//2865 1853//2858 1852//2857 -f 1861//2866 1862//2867 1855//2860 1854//2859 -f 1862//2867 1863//2868 1856//2861 1855//2860 -f 1863//2868 1864//2869 1857//2862 1856//2861 -f 1864//2869 1865//2870 1858//2863 1857//2862 -f 1865//2870 1866//2871 1859//2864 1858//2863 -f 1866//2871 1867//2872 1859//2864 -f 1821//2826 1831//2836 1793//2812 -f 1838//2843 1831//2836 1837//2842 -f 1837//2842 1830//2835 1836//2841 -f 1844//2849 1837//2842 1843//2848 -f 1867//2872 1860//2865 1859//2864 -s 168 -f 1871//2980 1870//2979 1869//2978 1868//2977 -f 1870//2979 1873//2982 1872//2981 1869//2978 -f 1873//2982 1875//2984 1874//2983 1872//2981 -f 1875//2984 1876//2985 1874//2983 -f 1876//2985 1878//2987 1877//2986 -f 1878//2987 1832//2965 1839//2966 1879//2988 -f 1868//2977 1869//2978 1881//2990 1880//2989 -f 1869//2978 1872//2981 1882//2991 1881//2990 -f 1872//2981 1874//2983 1883//2992 1882//2991 -f 1874//2983 1877//2986 1883//2992 -f 1877//2986 1879//2988 1885//2994 1884//2993 -f 1879//2988 1839//2966 1846//2967 1885//2994 -f 1880//2989 1881//2990 1887//2996 1886//2995 -f 1881//2990 1882//2991 1888//2997 1887//2996 -f 1882//2991 1883//2992 1889//2998 1888//2997 -f 1883//2992 1884//2993 1890//2999 1889//2998 -f 1884//2993 1885//2994 1891//3000 1890//2999 -f 1885//2994 1846//2967 1853//2968 1891//3000 -f 1886//2995 1887//2996 1893//3002 1892//3001 -f 1887//2996 1888//2997 1894//3003 1893//3002 -f 1888//2997 1889//2998 1895//3004 1894//3003 -f 1889//2998 1890//2999 1896//3005 1895//3004 -f 1890//2999 1891//3000 1897//3006 1896//3005 -f 1891//3000 1853//2968 1860//2969 1897//3006 -f 1892//3001 1893//3002 1862//2971 1861//2970 -f 1893//3002 1894//3003 1863//2972 1862//2971 -f 1894//3003 1895//3004 1864//2973 1863//2972 -f 1895//3004 1896//3005 1865//2974 1864//2973 -f 1896//3005 1897//3006 1866//2975 1865//2974 -f 1897//3006 1867//2976 1866//2975 -f 1877//2986 1878//2987 1879//2988 -f 1874//2983 1876//2985 1877//2986 -f 1883//2992 1877//2986 1884//2993 -f 1897//3006 1860//2969 1867//2976 -f 1814//2959 1832//2965 1878//2987 1816//2960 -f 1870//2979 1871//2980 1813//2958 1820//2964 -f 1873//2982 1870//2979 1820//2964 1819//2963 -f 1875//2984 1873//2982 1819//2963 1818//2962 -f 1876//2985 1875//2984 1818//2962 1817//2961 -f 1878//2987 1876//2985 1817//2961 1816//2960 -s off -f 1814//142 1793//142 1832//142 -s 166 -f 1904//2879 1792//2811 1795//2814 1903//2878 1902//2877 1901//2876 1900//2875 1899//2874 1898//2873 -f 1906//2881 1902//2877 1903//2878 1905//2880 -f 1903//2878 1795//2814 1798//2817 1907//2882 -f 1905//2880 1903//2878 1907//2882 1908//2883 -f 1907//2882 1798//2817 1801//2820 1909//2884 -f 1908//2883 1907//2882 1909//2884 1910//2885 -f 1909//2884 1801//2820 1804//2823 1911//2886 -f 1910//2885 1909//2884 1911//2886 1912//2887 -s 167 -f 1911//2945 1804//2926 1807//2929 1913//2947 -f 1912//2946 1911//2945 1913//2947 1914//2948 -f 1913//2947 1807//2929 1810//2932 1915//2949 -f 1914//2948 1913//2947 1915//2949 1916//2950 -f 1915//2949 1810//2932 1813//2935 1922//2956 1921//2955 1920//2954 1919//2953 1918//2952 1917//2951 -f 1916//2950 1915//2949 1917//2951 1923//2957 -f 1923//2957 1917//2951 1902//2943 1906//2944 -s off -f 1906//143 1905//143 1908//143 1910//143 1912//143 1914//143 1916//143 1923//143 -s 166 -f 1792//2811 1904//2879 1924//2888 1826//2831 -f 1904//2879 1898//2873 1925//2889 1924//2888 -f 1898//2873 1899//2874 1926//2890 1925//2889 -f 1899//2874 1900//2875 1927//2891 1926//2890 -f 1900//2875 1901//2876 1928//2892 1927//2891 -f 1928//2892 1902//2877 1929//2893 -f 1826//2831 1924//2888 1930//2894 1833//2838 -f 1924//2888 1925//2889 1931//2895 1930//2894 -f 1925//2889 1926//2890 1932//2896 1931//2895 -f 1926//2890 1927//2891 1932//2896 -f 1927//2891 1928//2892 1933//2897 -f 1928//2892 1929//2893 1935//2899 1934//2898 -f 1833//2838 1930//2894 1936//2900 1840//2845 -f 1930//2894 1931//2895 1937//2901 1936//2900 -f 1931//2895 1932//2896 1938//2902 1937//2901 -f 1932//2896 1933//2897 1938//2902 -f 1933//2897 1934//2898 1940//2904 1939//2903 -f 1934//2898 1935//2899 1941//2905 1940//2904 -f 1840//2845 1936//2900 1942//2906 1847//2852 -f 1936//2900 1937//2901 1943//2907 1942//2906 -f 1937//2901 1938//2902 1944//2908 1943//2907 -f 1938//2902 1939//2903 1945//2909 1944//2908 -f 1939//2903 1940//2904 1946//2910 1945//2909 -f 1940//2904 1941//2905 1947//2911 1946//2910 -f 1847//2852 1942//2906 1948//2912 1854//2859 -f 1942//2906 1943//2907 1949//2913 1948//2912 -f 1943//2907 1944//2908 1950//2914 1949//2913 -f 1944//2908 1945//2909 1951//2915 1950//2914 -f 1945//2909 1946//2910 1952//2916 1951//2915 -f 1946//2910 1947//2911 1953//2917 1952//2916 -f 1854//2859 1948//2912 1954//2918 1861//2866 -f 1948//2912 1949//2913 1955//2919 1954//2918 -f 1949//2913 1950//2914 1956//2920 1955//2919 -f 1950//2914 1951//2915 1957//2921 1956//2920 -f 1951//2915 1952//2916 1958//2922 1957//2921 -f 1952//2916 1959//2923 1958//2922 -f 1902//2877 1928//2892 1901//2876 -f 1933//2897 1928//2892 1934//2898 -f 1932//2896 1927//2891 1933//2897 -f 1938//2902 1933//2897 1939//2903 -f 1952//2916 1953//2917 1959//2923 -s 168 -f 1868//2977 1961//3025 1960//3024 1871//2980 -f 1961//3025 1963//3027 1962//3026 1960//3024 -f 1963//3027 1965//3029 1964//3028 1962//3026 -f 1965//3029 1966//3030 1964//3028 -f 1968//3032 1967//3031 1966//3030 -f 1969//3033 1935//3014 1929//3013 1967//3031 -f 1880//2989 1970//3034 1961//3025 1868//2977 -f 1970//3034 1971//3035 1963//3027 1961//3025 -f 1971//3035 1972//3036 1965//3029 1963//3027 -f 1972//3036 1968//3032 1965//3029 -f 1974//3038 1973//3037 1969//3033 1968//3032 -f 1973//3037 1941//3015 1935//3014 1969//3033 -f 1886//2995 1975//3039 1970//3034 1880//2989 -f 1975//3039 1976//3040 1971//3035 1970//3034 -f 1976//3040 1977//3041 1972//3036 1971//3035 -f 1977//3041 1978//3042 1974//3038 1972//3036 -f 1978//3042 1979//3043 1973//3037 1974//3038 -f 1979//3043 1947//3016 1941//3015 1973//3037 -f 1892//3001 1980//3044 1975//3039 1886//2995 -f 1980//3044 1981//3045 1976//3040 1975//3039 -f 1981//3045 1982//3046 1977//3041 1976//3040 -f 1982//3046 1983//3047 1978//3042 1977//3041 -f 1983//3047 1984//3048 1979//3043 1978//3042 -f 1984//3048 1953//3017 1947//3016 1979//3043 -f 1861//2970 1954//3018 1980//3044 1892//3001 -f 1954//3018 1955//3019 1981//3045 1980//3044 -f 1955//3019 1956//3020 1982//3046 1981//3045 -f 1956//3020 1957//3021 1983//3047 1982//3046 -f 1957//3021 1958//3022 1984//3048 1983//3047 -f 1958//3022 1959//3023 1984//3048 -f 1969//3033 1967//3031 1968//3032 -f 1968//3032 1966//3030 1965//3029 -f 1974//3038 1968//3032 1972//3036 -f 1959//3023 1953//3017 1984//3048 -f 1918//3008 1967//3031 1929//3013 1917//3007 -f 1922//3012 1813//2958 1871//2980 1960//3024 -f 1921//3011 1922//3012 1960//3024 1962//3026 -f 1920//3010 1921//3011 1962//3026 1964//3028 -f 1919//3009 1920//3010 1964//3028 1966//3030 -f 1918//3008 1919//3009 1966//3030 1967//3031 -s off -f 1929//144 1902//144 1917//144 -g sail6 -s 173 -f 1985//3049 1986//3050 1987//3051 1988//3052 -f 1989//3053 1990//3054 1991//3055 1992//3056 1993//3057 1994//3058 1985//3049 1988//3052 1995//3059 -f 1996//3060 1997//3061 1986//3050 1985//3049 -f 1998//3062 1996//3060 1985//3049 1994//3058 -f 1999//3063 2000//3064 1997//3061 1996//3060 -f 2001//3065 1999//3063 1996//3060 1998//3062 -f 2002//3066 2003//3067 2000//3064 1999//3063 -f 2004//3068 2002//3066 1999//3063 2001//3065 -s 174 -f 2005//3167 2006//3168 2003//3165 2002//3164 -f 2007//3169 2005//3167 2002//3164 2004//3166 -f 2008//3170 2009//3171 2006//3168 2005//3167 -f 2010//3172 2008//3170 2005//3167 2007//3169 -f 2011//3173 2012//3174 2009//3171 2008//3170 -f 2013//3175 2014//3176 2015//3177 2016//3178 2017//3179 2018//3180 2011//3173 2008//3170 2010//3172 -f 1988//3163 1987//3162 2012//3174 2011//3173 -s off -f 1986//145 1997//145 2000//145 2003//145 2006//145 2009//145 2012//145 1987//145 -s 173 -f 2019//3069 1995//3059 1988//3052 -f 2019//3069 2020//3070 1989//3053 1995//3059 -f 2020//3070 2021//3071 1990//3054 1989//3053 -f 2021//3071 2022//3072 1991//3055 1990//3054 -f 2022//3072 2023//3073 1992//3056 1991//3055 -f 2023//3073 2024//3074 1993//3057 1992//3056 -f 2025//3075 2026//3076 2020//3070 -f 2026//3076 2027//3077 2022//3072 2021//3071 -f 2027//3077 2028//3078 2023//3073 2022//3072 -f 2028//3078 2029//3079 2024//3074 2023//3073 -f 2030//3080 2031//3081 2028//3078 2027//3077 -f 2031//3081 2032//3082 2029//3079 2028//3078 -f 2033//3083 2019//3069 1988//3052 -f 2020//3070 2019//3069 2025//3075 -f 2021//3071 2020//3070 2026//3076 -f 2034//3084 2035//3085 2019//3069 2033//3083 -f 2035//3085 2025//3075 2019//3069 -f 2036//3086 2037//3087 2035//3085 2034//3084 -f 2037//3087 2038//3088 2025//3075 2035//3085 -f 2038//3088 2039//3089 2025//3075 -f 2039//3089 2030//3080 2027//3077 2026//3076 -f 2040//3090 2041//3091 2037//3087 2036//3086 -f 2041//3091 2042//3092 2038//3088 2037//3087 -f 2042//3092 2043//3093 2039//3089 2038//3088 -f 2043//3093 2044//3094 2030//3080 2039//3089 -f 2044//3094 2045//3095 2031//3081 2030//3080 -f 2045//3095 2046//3096 2032//3082 2031//3081 -f 2047//3097 2048//3098 2041//3091 2040//3090 -f 2048//3098 2049//3099 2042//3092 2041//3091 -f 2049//3099 2050//3100 2043//3093 2042//3092 -f 2050//3100 2051//3101 2044//3094 2043//3093 -f 2051//3101 2052//3102 2045//3095 2044//3094 -f 2052//3102 2053//3103 2046//3096 2045//3095 -f 2054//3104 2055//3105 2048//3098 2047//3097 -f 2055//3105 2056//3106 2049//3099 2048//3098 -f 2056//3106 2057//3107 2050//3100 2049//3099 -f 2057//3107 2058//3108 2051//3101 2050//3100 -f 2058//3108 2059//3109 2052//3102 2051//3101 -f 2059//3109 2060//3110 2053//3103 2052//3102 -f 2026//3076 2025//3075 2039//3089 -s 175 -f 2061//3215 2062//3216 2063//3217 -f 2064//3218 2065//3219 2066//3220 2062//3216 -f 2065//3219 2067//3221 2068//3222 2066//3220 -f 2067//3221 2069//3223 2070//3224 2068//3222 -f 2066//3220 2068//3222 2071//3225 2072//3226 -f 2068//3222 2070//3224 2073//3227 2071//3225 -f 2063//3217 2074//3228 2061//3215 -f 2062//3216 2061//3215 2064//3218 -f 2033//3203 2074//3228 2075//3229 2034//3204 -f 2074//3228 2063//3217 2075//3229 -f 2034//3204 2075//3229 2076//3230 2036//3205 -f 2075//3229 2063//3217 2077//3231 2076//3230 -f 2063//3217 2078//3232 2077//3231 -f 2062//3216 2066//3220 2072//3226 2078//3232 -f 2036//3205 2076//3230 2079//3233 2040//3206 -f 2076//3230 2077//3231 2080//3234 2079//3233 -f 2077//3231 2078//3232 2081//3235 2080//3234 -f 2078//3232 2072//3226 2082//3236 2081//3235 -f 2072//3226 2071//3225 2083//3237 2082//3236 -f 2071//3225 2073//3227 2084//3238 2083//3237 -f 2040//3206 2079//3233 2085//3239 2047//3207 -f 2079//3233 2080//3234 2086//3240 2085//3239 -f 2080//3234 2081//3235 2087//3241 2086//3240 -f 2081//3235 2082//3236 2088//3242 2087//3241 -f 2082//3236 2083//3237 2089//3243 2088//3242 -f 2083//3237 2084//3238 2090//3244 2089//3243 -f 2047//3207 2085//3239 2055//3209 2054//3208 -f 2085//3239 2086//3240 2056//3210 2055//3209 -f 2086//3240 2087//3241 2057//3211 2056//3210 -f 2087//3241 2088//3242 2058//3212 2057//3211 -f 2088//3242 2089//3243 2059//3213 2058//3212 -f 2089//3243 2090//3244 2060//3214 2059//3213 -f 2078//3232 2063//3217 2062//3216 -f 2069//3223 2067//3221 2014//3198 2013//3197 -s off -f 2033//146 1988//146 2011//146 -s 175 -f 2074//3228 2033//3203 2011//3196 2018//3202 -f 2061//3215 2074//3228 2018//3202 2017//3201 -f 2064//3218 2061//3215 2017//3201 2016//3200 -f 2065//3219 2064//3218 2016//3200 2015//3199 -f 2067//3221 2065//3219 2015//3199 2014//3198 -s 173 -f 2091//3111 2092//3112 2093//3113 2094//3114 -f 2095//3115 2091//3111 2094//3114 1994//3058 1993//3057 2096//3116 2097//3117 2098//3118 2099//3119 -f 2094//3114 2093//3113 2100//3120 2101//3121 -f 1994//3058 2094//3114 2101//3121 1998//3062 -f 2101//3121 2100//3120 2102//3122 2103//3123 -f 1998//3062 2101//3121 2103//3123 2001//3065 -f 2103//3123 2102//3122 2104//3124 2105//3125 -f 2001//3065 2103//3123 2105//3125 2004//3068 -s 174 -f 2105//3184 2104//3183 2106//3185 2107//3186 -f 2004//3166 2105//3184 2107//3186 2007//3169 -f 2107//3186 2106//3185 2108//3187 2109//3188 -f 2007//3169 2107//3186 2109//3188 2010//3172 -f 2109//3188 2108//3187 2110//3189 2111//3190 -f 2010//3172 2109//3188 2111//3190 2112//3191 2113//3192 2114//3193 2115//3194 2116//3195 2013//3175 -f 2111//3190 2110//3189 2092//3182 2091//3181 -s off -f 2092//147 2110//147 2108//147 2106//147 2104//147 2102//147 2100//147 2093//147 -s 173 -f 2091//3111 2095//3115 2117//3126 -f 2095//3115 2099//3119 2118//3127 2117//3126 -f 2099//3119 2098//3118 2119//3128 2118//3127 -f 2098//3118 2097//3117 2120//3129 2119//3128 -f 2097//3117 2096//3116 2121//3130 2120//3129 -f 2096//3116 1993//3057 2024//3074 2121//3130 -f 2118//3127 2122//3131 2123//3132 -f 2119//3128 2120//3129 2124//3133 2122//3131 -f 2120//3129 2121//3130 2125//3134 2124//3133 -f 2121//3130 2024//3074 2029//3079 2125//3134 -f 2124//3133 2125//3134 2126//3135 2127//3136 -f 2125//3134 2029//3079 2032//3082 2126//3135 -f 2091//3111 2117//3126 2128//3137 -f 2123//3132 2117//3126 2118//3127 -f 2122//3131 2118//3127 2119//3128 -f 2128//3137 2117//3126 2129//3138 2130//3139 -f 2117//3126 2123//3132 2129//3138 -f 2130//3139 2129//3138 2131//3140 2132//3141 -f 2129//3138 2123//3132 2133//3142 2131//3140 -f 2123//3132 2134//3143 2133//3142 -f 2122//3131 2124//3133 2127//3136 2134//3143 -f 2132//3141 2131//3140 2135//3144 2136//3145 -f 2131//3140 2133//3142 2137//3146 2135//3144 -f 2133//3142 2134//3143 2138//3147 2137//3146 -f 2134//3143 2127//3136 2139//3148 2138//3147 -f 2127//3136 2126//3135 2140//3149 2139//3148 -f 2126//3135 2032//3082 2046//3096 2140//3149 -f 2136//3145 2135//3144 2141//3150 2142//3151 -f 2135//3144 2137//3146 2143//3152 2141//3150 -f 2137//3146 2138//3147 2144//3153 2143//3152 -f 2138//3147 2139//3148 2145//3154 2144//3153 -f 2139//3148 2140//3149 2146//3155 2145//3154 -f 2140//3149 2046//3096 2053//3103 2146//3155 -f 2142//3151 2141//3150 2147//3156 2148//3157 -f 2141//3150 2143//3152 2149//3158 2147//3156 -f 2143//3152 2144//3153 2150//3159 2149//3158 -f 2144//3153 2145//3154 2151//3160 2150//3159 -f 2145//3154 2146//3155 2152//3161 2151//3160 -f 2146//3155 2053//3103 2060//3110 2152//3161 -f 2134//3143 2123//3132 2122//3131 -s 175 -f 2153//3262 2154//3263 2155//3264 -f 2154//3263 2156//3265 2157//3266 2158//3267 -f 2156//3265 2159//3268 2160//3269 2157//3266 -f 2159//3268 2070//3224 2069//3223 2160//3269 -f 2161//3270 2162//3271 2159//3268 2156//3265 -f 2162//3271 2073//3227 2070//3224 2159//3268 -f 2155//3264 2163//3272 2153//3262 -f 2158//3267 2155//3264 2154//3263 -f 2130//3252 2164//3273 2163//3272 2128//3251 -f 2164//3273 2153//3262 2163//3272 -f 2132//3253 2165//3274 2164//3273 2130//3252 -f 2165//3274 2166//3275 2153//3262 2164//3273 -f 2166//3275 2167//3276 2153//3262 -f 2167//3276 2161//3270 2156//3265 2154//3263 -f 2136//3254 2168//3277 2165//3274 2132//3253 -f 2168//3277 2169//3278 2166//3275 2165//3274 -f 2169//3278 2170//3279 2167//3276 2166//3275 -f 2170//3279 2171//3280 2161//3270 2167//3276 -f 2171//3280 2172//3281 2162//3271 2161//3270 -f 2172//3281 2084//3238 2073//3227 2162//3271 -f 2142//3255 2173//3282 2168//3277 2136//3254 -f 2173//3282 2174//3283 2169//3278 2168//3277 -f 2174//3283 2175//3284 2170//3279 2169//3278 -f 2175//3284 2176//3285 2171//3280 2170//3279 -f 2176//3285 2177//3286 2172//3281 2171//3280 -f 2177//3286 2090//3244 2084//3238 2172//3281 -f 2148//3257 2147//3256 2173//3282 2142//3255 -f 2147//3256 2149//3258 2174//3283 2173//3282 -f 2149//3258 2150//3259 2175//3284 2174//3283 -f 2150//3259 2151//3260 2176//3285 2175//3284 -f 2151//3260 2152//3261 2177//3286 2176//3285 -f 2152//3261 2060//3214 2090//3244 2177//3286 -f 2154//3263 2153//3262 2167//3276 -f 2013//3197 2116//3250 2160//3269 2069//3223 -s off -f 2111//148 2091//148 2128//148 -s 175 -f 2112//3246 2111//3245 2128//3251 2163//3272 -f 2113//3247 2112//3246 2163//3272 2155//3264 -f 2114//3248 2113//3247 2155//3264 2158//3267 -f 2115//3249 2114//3248 2158//3267 2157//3266 -f 2116//3250 2115//3249 2157//3266 2160//3269 -g sail3 -s 181 -f 2181//3290 2180//3289 2179//3288 2178//3287 -f 2187//3296 2184//3293 2185//3294 2186//3295 -f 2178//3287 2179//3288 2189//3298 2188//3297 -f 2183//3292 2178//3287 2188//3297 2190//3299 -f 2185//3294 2183//3292 2190//3299 2191//3300 -f 2186//3295 2185//3294 2191//3300 2192//3301 -f 2188//3297 2189//3298 2194//3303 2193//3302 -f 2190//3299 2188//3297 2193//3302 2195//3304 -f 2191//3300 2190//3299 2195//3304 2196//3305 -f 2192//3301 2191//3300 2196//3305 2197//3306 -f 2193//3302 2194//3303 2199//3308 2198//3307 -f 2195//3304 2193//3302 2198//3307 2200//3309 -f 2196//3305 2195//3304 2200//3309 2201//3310 -f 2197//3306 2196//3305 2201//3310 2202//3311 -s 182 -f 2198//3317 2199//3318 2204//3323 2203//3322 -f 2200//3319 2198//3317 2203//3322 2205//3324 -f 2201//3320 2200//3319 2205//3324 2206//3325 -f 2202//3321 2201//3320 2206//3325 2207//3326 -f 2203//3322 2204//3323 2209//3328 2208//3327 -f 2207//3326 2206//3325 2211//3330 2212//3331 -f 2208//3327 2209//3328 2214//3333 2213//3332 -f 2212//3331 2211//3330 2216//3335 2217//3336 -f 2213//3332 2214//3333 2180//3312 2181//3313 -f 2217//3336 2216//3335 2184//3315 2187//3316 -s off -f 2180//149 2214//149 2209//149 2204//149 2199//149 2194//149 2189//149 2179//149 -f 2187//150 2186//150 2192//150 2197//150 2202//150 2207//150 2212//150 2217//150 -s 182 -f 2213//3332 2181//3313 2182//3314 2215//3334 -f 2182//3314 2184//3315 2216//3335 2215//3334 -f 2231//3350 2241//3360 2233//3352 2218//3337 -f 2231//3350 2226//3345 2242//3361 2241//3360 -f 2242//3361 2226//3345 2230//3349 -f 2230//3349 2225//3344 2246//3365 2245//3364 -f 2245//3364 2244//3363 2242//3361 2230//3349 -f 2242//3361 2244//3363 2243//3362 2241//3360 -f 2233//3352 2241//3360 2243//3362 2232//3351 -f 2232//3351 2243//3362 2235//3354 2234//3353 -f 2235//3354 2243//3362 2244//3363 2236//3355 -f 2236//3355 2244//3363 2245//3364 2237//3356 -f 2237//3356 2245//3364 2246//3365 2238//3357 -f 2239//3358 2229//3348 2227//3346 2240//3359 -f 2240//3359 2227//3346 2228//3347 -f 2228//3347 2208//3327 2224//3343 -f 2224//3343 2222//3341 2240//3359 2228//3347 -f 2222//3341 2223//3342 2239//3358 2240//3359 -f 2239//3358 2223//3342 2210//3329 2238//3357 -f 2238//3357 2210//3329 2221//3340 2237//3356 -f 2237//3356 2221//3340 2219//3338 2236//3355 -f 2236//3355 2219//3338 2220//3339 2235//3354 -f 2235//3354 2220//3339 2211//3330 2234//3353 -f 2246//3365 2225//3344 2229//3348 -f 2229//3348 2239//3358 2238//3357 2246//3365 -f 2218//3337 2233//3352 2247//3366 2231//3350 -f 2247//3366 2248//3367 2226//3345 2231//3350 -f 2230//3349 2226//3345 2248//3367 -f 2249//3368 2250//3369 2225//3344 2230//3349 -f 2230//3349 2248//3367 2251//3370 2249//3368 -f 2247//3366 2252//3371 2251//3370 2248//3367 -f 2232//3351 2252//3371 2247//3366 2233//3352 -f 2234//3353 2253//3372 2252//3371 2232//3351 -f 2254//3373 2251//3370 2252//3371 2253//3372 -f 2255//3374 2249//3368 2251//3370 2254//3373 -f 2256//3375 2250//3369 2249//3368 2255//3374 -f 2257//3376 2227//3346 2229//3348 2258//3377 -f 2228//3347 2227//3346 2257//3376 -f 2229//3348 2225//3344 2250//3369 -f 2250//3369 2256//3375 2258//3377 2229//3348 -f 2228//3347 2257//3376 2258//3377 2205//3324 2203//3322 -f 2253//3372 2234//3353 2206//3325 -f 2255//3374 2254//3373 2253//3372 2206//3325 2205//3324 -f 2256//3375 2255//3374 2205//3324 -f 2258//3377 2256//3375 2205//3324 -f 2234//3353 2211//3330 2206//3325 -f 2228//3347 2203//3322 2208//3327 -s 181 -f 2182//3291 2181//3290 2178//3287 2183//3292 -f 2185//3294 2184//3293 2182//3291 2183//3292 -s 182 -f 2210//3329 2223//3342 2222//3341 2224//3343 2208//3327 2213//3332 2215//3334 -f 2210//3329 2215//3334 2216//3335 2211//3330 2220//3339 2219//3338 2221//3340 -g mast2 -s 1 -f 33//192 34//193 2259//200 31//191 -s 2 -f 34//206 35//207 2260//215 2259//214 -s 3 -f 35//222 36//223 2261//231 2260//230 -s 4 -f 36//238 37//239 2262//247 2261//246 -s 5 -f 37//258 38//259 2263//281 2262//280 -f 38//259 39//260 2265//283 2264//282 2263//281 -f 39//260 40//261 2266//284 2265//283 -s 6 -f 40//298 41//299 2267//307 2266//306 -s 7 -f 41//314 42//315 2268//323 2267//322 -s 8 -f 42//330 43//331 2269//339 2268//338 -s 9 -f 43//346 44//347 2270//355 2269//354 -s 10 -f 44//362 45//363 2271//371 2270//370 -s 11 -f 45//380 46//381 32//379 2271//388 -s 1 -f 31//191 2259//200 2272//201 29//190 -s 2 -f 2259//214 2260//215 2273//217 2272//216 -s 3 -f 2260//230 2261//231 2274//233 2273//232 -s 4 -f 2261//246 2262//247 2275//249 2274//248 -s 5 -f 2262//280 2263//281 2278//288 2277//287 2276//286 2275//285 -s off -f 2282//151 2281//151 2280//151 2279//151 -s 5 -f 2265//283 2266//284 2284//290 2283//289 -s 6 -f 2266//306 2267//307 2285//309 2284//308 -s 7 -f 2267//322 2268//323 2286//325 2285//324 -s 8 -f 2268//338 2269//339 2287//341 2286//340 -s 9 -f 2269//354 2270//355 2288//357 2287//356 -s 10 -f 2270//370 2271//371 2289//373 2288//372 -s 11 -f 2271//388 32//379 30//378 2289//389 -s 1 -f 29//190 2272//201 16//189 15//188 -s 2 -f 2272//216 2273//217 17//205 16//204 -s 3 -f 2273//232 2274//233 18//221 17//220 -s 4 -f 2274//248 2275//249 19//237 18//236 -s 5 -f 2275//285 2276//286 20//255 19//254 -f 2276//286 2290//291 2283//289 21//256 20//255 -f 2283//289 2284//290 22//257 21//256 -s 6 -f 2284//308 2285//309 23//297 22//296 -s 7 -f 2285//324 2286//325 24//313 23//312 -s 8 -f 2286//340 2287//341 25//329 24//328 -s 9 -f 2287//356 2288//357 26//345 25//344 -s 10 -f 2288//372 2289//373 27//361 26//360 -s 11 -f 2289//389 30//378 28//377 27//376 -s 5 -f 2292//293 2291//292 2264//282 2265//283 2283//289 2290//291 -s off -f 2296//152 2295//152 2294//152 2293//152 -f 2300//153 2299//153 2298//153 2297//153 -f 2264//154 2291//154 2293//154 2294//154 -f 2291//155 2278//155 2296//155 2293//155 -f 2278//156 2263//156 2295//156 2296//156 -f 2263//157 2264//157 2294//157 2295//157 -f 2276//158 2277//158 2279//158 2280//158 -f 2277//159 2292//159 2282//159 2279//159 -f 2292//160 2290//160 2281//160 2282//160 -f 2290//161 2276//161 2280//161 2281//161 -f 2277//162 2278//162 2297//162 2298//162 -f 2278//163 2291//163 2300//163 2297//163 -f 2291//164 2292//164 2299//164 2300//164 -f 2292//165 2277//165 2298//165 2299//165 -g mast1 -s 63 -f 573//1201 574//1202 2301//1209 571//1200 -s 64 -f 574//1215 575//1216 2302//1224 2301//1223 -s 65 -f 575//1231 576//1232 2303//1240 2302//1239 -s 66 -f 576//1247 577//1248 2304//1256 2303//1255 -s 67 -f 577//1267 578//1268 2305//1288 2304//1287 -f 578//1268 579//1269 2307//1290 2306//1289 2305//1288 -f 579//1269 580//1270 2308//1291 2307//1290 -s 68 -f 580//1303 581//1304 2309//1312 2308//1311 -s 69 -f 581//1319 582//1320 2310//1328 2309//1327 -s 70 -f 582//1335 583//1336 2311//1344 2310//1343 -s 71 -f 583//1351 584//1352 2312//1360 2311//1359 -s 72 -f 584//1367 585//1368 2313//1376 2312//1375 -s 73 -f 585//1385 586//1386 572//1384 2313//1393 -s 63 -f 571//1200 2301//1209 2314//1210 569//1199 -s 64 -f 2301//1223 2302//1224 2315//1226 2314//1225 -s 65 -f 2302//1239 2303//1240 2316//1242 2315//1241 -s 66 -f 2303//1255 2304//1256 2317//1258 2316//1257 -s 67 -f 2304//1287 2305//1288 2319//1294 2318//1293 2317//1292 -f 2322//1297 2306//1289 2307//1290 2321//1296 2320//1295 -f 2307//1290 2308//1291 2323//1298 2321//1296 -s 68 -f 2308//1311 2309//1312 2324//1314 2323//1313 -s 69 -f 2309//1327 2310//1328 2325//1330 2324//1329 -s 70 -f 2310//1343 2311//1344 2326//1346 2325//1345 -s 71 -f 2311//1359 2312//1360 2327//1362 2326//1361 -s 72 -f 2312//1375 2313//1376 2328//1378 2327//1377 -s 73 -f 2313//1393 572//1384 570//1383 2328//1394 -s 63 -f 569//1199 2314//1210 556//1198 555//1197 -s 64 -f 2314//1225 2315//1226 557//1214 556//1213 -s 65 -f 2315//1241 2316//1242 558//1230 557//1229 -s 66 -f 2316//1257 2317//1258 559//1246 558//1245 -s 67 -f 2317//1292 2318//1293 560//1264 559//1263 -f 2318//1293 2320//1295 2321//1296 561//1265 560//1264 -f 2321//1296 2323//1298 562//1266 561//1265 -s 68 -f 2323//1313 2324//1314 563//1302 562//1301 -s 69 -f 2324//1329 2325//1330 564//1318 563//1317 -s 70 -f 2325//1345 2326//1346 565//1334 564//1333 -s 71 -f 2326//1361 2327//1362 566//1350 565//1349 -s 72 -f 2327//1377 2328//1378 567//1366 566//1365 -s 73 -f 2328//1394 570//1383 568//1382 567//1381 -s off -f 2332//166 2331//166 2330//166 2329//166 -f 2336//167 2335//167 2334//167 2333//167 -f 2318//168 2319//168 2333//168 2334//168 -f 2319//169 2322//169 2336//169 2333//169 -f 2322//170 2320//170 2335//170 2336//170 -f 2320//171 2318//171 2334//171 2335//171 -f 2305//172 2306//172 2329//172 2330//172 -f 2306//173 2322//173 2332//173 2329//173 -f 2322//174 2319//174 2331//174 2332//174 -f 2319//175 2305//175 2330//175 2331//175 -g mast3 -s 83 -f 673//1401 674//1402 2337//1409 671//1400 -s 84 -f 674//1415 675//1416 2338//1424 2337//1423 -s 85 -f 675//1431 676//1432 2339//1440 2338//1439 -s 86 -f 676//1447 677//1448 2340//1456 2339//1455 -s 87 -f 677//1467 678//1468 2341//1488 2340//1487 -f 678//1468 679//1469 2343//1490 2342//1489 2341//1488 -f 679//1469 680//1470 2344//1491 2343//1490 -s 88 -f 680//1503 681//1504 2345//1512 2344//1511 -s 89 -f 681//1519 682//1520 2346//1528 2345//1527 -s 90 -f 682//1535 683//1536 2347//1544 2346//1543 -s 91 -f 683//1551 684//1552 2348//1560 2347//1559 -s 92 -f 684//1567 685//1568 2349//1576 2348//1575 -s 93 -f 685//1585 686//1586 672//1584 2349//1593 -s 83 -f 671//1400 2337//1409 2350//1410 669//1399 -s 84 -f 2337//1423 2338//1424 2351//1426 2350//1425 -s 85 -f 2338//1439 2339//1440 2352//1442 2351//1441 -s 86 -f 2339//1455 2340//1456 2353//1458 2352//1457 -s 87 -f 2340//1487 2341//1488 2355//1494 2354//1493 2353//1492 -f 2358//1497 2342//1489 2343//1490 2357//1496 2356//1495 -f 2343//1490 2344//1491 2359//1498 2357//1496 -s 88 -f 2344//1511 2345//1512 2360//1514 2359//1513 -s 89 -f 2345//1527 2346//1528 2361//1530 2360//1529 -s 90 -f 2346//1543 2347//1544 2362//1546 2361//1545 -s 91 -f 2347//1559 2348//1560 2363//1562 2362//1561 -s 92 -f 2348//1575 2349//1576 2364//1578 2363//1577 -s 93 -f 2349//1593 672//1584 670//1583 2364//1594 -s 83 -f 669//1399 2350//1410 656//1398 655//1397 -s 84 -f 2350//1425 2351//1426 657//1414 656//1413 -s 85 -f 2351//1441 2352//1442 658//1430 657//1429 -s 86 -f 2352//1457 2353//1458 659//1446 658//1445 -s 87 -f 2353//1492 2354//1493 660//1464 659//1463 -f 2354//1493 2356//1495 2357//1496 661//1465 660//1464 -f 2357//1496 2359//1498 662//1466 661//1465 -s 88 -f 2359//1513 2360//1514 663//1502 662//1501 -s 89 -f 2360//1529 2361//1530 664//1518 663//1517 -s 90 -f 2361//1545 2362//1546 665//1534 664//1533 -s 91 -f 2362//1561 2363//1562 666//1550 665//1549 -s 92 -f 2363//1577 2364//1578 667//1566 666//1565 -s 93 -f 2364//1594 670//1583 668//1582 667//1581 -s off -f 2368//176 2367//176 2366//176 2365//176 -f 2372//177 2371//177 2370//177 2369//177 -f 2354//178 2355//178 2369//178 2370//178 -f 2355//179 2358//179 2372//179 2369//179 -f 2358//180 2356//180 2371//180 2372//180 -f 2356//181 2354//181 2370//181 2371//181 -f 2341//182 2342//182 2365//182 2366//182 -f 2342//183 2358//183 2368//183 2365//183 -f 2358//184 2355//184 2367//184 2368//184 -f 2355//185 2341//185 2366//185 2367//185 -g deck -s 23 -f 937//818 280//595 277//592 -f 277//592 280//595 279//594 -# 2384 elements diff --git a/src/OffScreenCanvas3D/OffScreenCanvas3D.java b/src/OffScreenCanvas3D/OffScreenCanvas3D.java deleted file mode 100644 index 733efa0..0000000 --- a/src/OffScreenCanvas3D/OffScreenCanvas3D.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.*; -import java.awt.image.BufferedImage; -import java.awt.event.*; -import javax.media.j3d.*; -import javax.vecmath.*; - - -class OffScreenCanvas3D extends Canvas3D { - - Raster drawRaster; - boolean printing = false; - - public OffScreenCanvas3D(GraphicsConfiguration gconfig, boolean offscreenflag, - Raster drawRaster) { - - super(gconfig, offscreenflag); - this.drawRaster = drawRaster; - } - - public void print(boolean toWait) { - - if (!toWait) - printing = true; - - BufferedImage bImage = new BufferedImage( - 200, 200 , BufferedImage.TYPE_INT_ARGB); - - ImageComponent2D buffer = new ImageComponent2D( - ImageComponent.FORMAT_RGBA, bImage); - buffer.setCapability(ImageComponent2D.ALLOW_IMAGE_READ); - - this.setOffScreenBuffer(buffer); - this.renderOffScreenBuffer(); - - if (toWait) { - this.waitForOffScreenRendering(); - drawOffScreenBuffer(); - } - } - - public void postSwap() { - - if (printing) { - super.postSwap(); - drawOffScreenBuffer(); - printing = false; - } - } - - void drawOffScreenBuffer() { - - BufferedImage bImage = this.getOffScreenBuffer().getImage(); - ImageComponent2D newImageComponent = new ImageComponent2D( - ImageComponent.FORMAT_RGBA, bImage); - - drawRaster.setImage(newImageComponent); - } -} - diff --git a/src/OffScreenCanvas3D/OffScreenTest.html b/src/OffScreenCanvas3D/OffScreenTest.html deleted file mode 100644 index 85739cf..0000000 --- a/src/OffScreenCanvas3D/OffScreenTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>OffScreenTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="OffScreenTest.class" width=500 height=500> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/OffScreenCanvas3D/OffScreenTest.java b/src/OffScreenCanvas3D/OffScreenTest.java deleted file mode 100644 index f4070d8..0000000 --- a/src/OffScreenCanvas3D/OffScreenTest.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.geometry.ColorCube; -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import java.awt.image.BufferedImage; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -/** - * OffScreenTest issues renderOffScreenBuffer from the postSwap callback - * of the OnScreen canvas. - */ -public class OffScreenTest extends Applet { - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph(Raster drawRaster) - { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // spin object has composited transformation matrix - Transform3D spin = new Transform3D(); - Transform3D tempspin = new Transform3D(); - - spin.rotX(Math.PI/4.0d); - tempspin.rotY(Math.PI/5.0d); - spin.mul(tempspin); - spin.setScale(0.7); - spin.setTranslation(new Vector3d(-0.4, 0.3, 0.0)); - - TransformGroup objTrans = new TransformGroup(spin); - objRoot.addChild(objTrans); - - // Create a simple shape leaf node, add it to the scene graph. - // ColorCube is a Convenience Utility class - objTrans.addChild(new ColorCube(0.4)); - - //Create a raster - Shape3D shape = new Shape3D(drawRaster); - objRoot.addChild(shape); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public OffScreenTest () - { - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - BufferedImage bImage = new BufferedImage(200, 200 , - BufferedImage.TYPE_INT_ARGB); - - ImageComponent2D buffer = - new ImageComponent2D(ImageComponent.FORMAT_RGBA, bImage); - buffer.setCapability(ImageComponent2D.ALLOW_IMAGE_READ); - - Raster drawRaster = new Raster(new Point3f(0.0f, 0.0f, 0.0f), - Raster.RASTER_COLOR, - 0, 0, 200, 200, buffer, null); - - drawRaster.setCapability(Raster.ALLOW_IMAGE_WRITE); - - // create the main scene graph - BranchGroup scene = createSceneGraph(drawRaster); - - // create the on-screen canvas - OnScreenCanvas3D d = new OnScreenCanvas3D(config, false); - add("Center", d); - - // create a simple universe - u = new SimpleUniverse(d); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - // create an off Screen Canvas - - OffScreenCanvas3D c = new OffScreenCanvas3D(config, true, drawRaster); - - // set the offscreen to match the onscreen - Screen3D sOn = d.getScreen3D(); - Screen3D sOff = c.getScreen3D(); - sOff.setSize(sOn.getSize()); - sOff.setPhysicalScreenWidth(sOn.getPhysicalScreenWidth()); - sOff.setPhysicalScreenHeight(sOn.getPhysicalScreenHeight()); - - // attach the same view to the offscreen canvas - View v = u.getViewer().getView(); - v.addCanvas3D(c); - - // tell onscreen about the offscreen so it knows to - // render to the offscreen at postswap - d.setOffScreenCanvas(c); - - u.addBranchGraph(scene); - v.stopView(); - // Make sure that image are render completely - // before grab it in postSwap(). - d.setImageReady(); - v.startView(); - - } - - public void destroy() { - u.cleanup(); - } - - - public static void main(String argv[]) - { - new MainFrame(new OffScreenTest(), 500, 500); - } -} diff --git a/src/OffScreenCanvas3D/OffScreenTest_plugin.html b/src/OffScreenCanvas3D/OffScreenTest_plugin.html deleted file mode 100644 index afcee8e..0000000 --- a/src/OffScreenCanvas3D/OffScreenTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>OffScreenTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 500 HEIGHT = 500 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "OffScreenTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "OffScreenTest.class" WIDTH = 500 HEIGHT = 500 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "OffScreenTest.class" WIDTH = 500 HEIGHT = 500 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/OffScreenCanvas3D/OnScreenCanvas3D.java b/src/OffScreenCanvas3D/OnScreenCanvas3D.java deleted file mode 100644 index 92c9171..0000000 --- a/src/OffScreenCanvas3D/OnScreenCanvas3D.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.geometry.ColorCube; -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import java.awt.image.BufferedImage; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; - - -class OnScreenCanvas3D extends Canvas3D { - - OffScreenCanvas3D c; - boolean print = false; - boolean imageReady = false; - - public OnScreenCanvas3D(GraphicsConfiguration gconfig, boolean offscreenflag) - { - super(gconfig, offscreenflag); - } - - public void setOffScreenCanvas(OffScreenCanvas3D c) - { - this.c = c; - } - - public void setImageReady() { - imageReady = true; - } - - public void postSwap() - { - if (imageReady && !print) { - c.print(false); - print = true; - } - } -} diff --git a/src/OffScreenCanvas3D/PrintFromButton.html b/src/OffScreenCanvas3D/PrintFromButton.html deleted file mode 100644 index f612f5c..0000000 --- a/src/OffScreenCanvas3D/PrintFromButton.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>PrintFromButton</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="PrintFromButton.class" width=500 height=500> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/OffScreenCanvas3D/PrintFromButton.java b/src/OffScreenCanvas3D/PrintFromButton.java deleted file mode 100644 index 7bf0207..0000000 --- a/src/OffScreenCanvas3D/PrintFromButton.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.geometry.ColorCube; -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import java.awt.image.BufferedImage; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -/** - * PrintFromButton tests renderOffScreenBuffer from a button - */ -public class PrintFromButton extends Applet implements ActionListener { - - OffScreenCanvas3D c; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph(Raster drawRaster) - { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // spin object has composited transformation matrix - Transform3D spin = new Transform3D(); - Transform3D tempspin = new Transform3D(); - - spin.rotX(Math.PI/4.0d); - tempspin.rotY(Math.PI/5.0d); - spin.mul(tempspin); - spin.setScale(0.7); - spin.setTranslation(new Vector3d(-0.4, 0.3, 0.0)); - - TransformGroup objTrans = new TransformGroup(spin); - objRoot.addChild(objTrans); - - // Create a simple shape leaf node, add it to the scene graph. - // ColorCube is a Convenience Utility class - objTrans.addChild(new ColorCube(0.4)); - - //Create a raster obj - Shape3D shape = new Shape3D(drawRaster); - objRoot.addChild(shape); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public PrintFromButton () - { - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - BufferedImage bImage = new BufferedImage(200, 200 , - BufferedImage.TYPE_INT_ARGB); - - ImageComponent2D buffer = - new ImageComponent2D(ImageComponent.FORMAT_RGBA, bImage); - buffer.setCapability(ImageComponent2D.ALLOW_IMAGE_READ); - - Raster drawRaster = new Raster(new Point3f(0.0f, 0.0f, 0.0f), - Raster.RASTER_COLOR, - 0, 0, 200, 200, buffer, null); - - drawRaster.setCapability(Raster.ALLOW_IMAGE_WRITE); - - // create the main scene graph - BranchGroup scene = createSceneGraph(drawRaster); - - // create the on-screen canvas - Canvas3D d = new Canvas3D(config, false); - add("Center", d); - - // create a simple universe - u = new SimpleUniverse(d); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - - // create an off Screen Buffer - - c = new OffScreenCanvas3D(config, true, drawRaster); - - // set the offscreen to match the onscreen - Screen3D sOn = d.getScreen3D(); - Screen3D sOff = c.getScreen3D(); - sOff.setSize(sOn.getSize()); - sOff.setPhysicalScreenWidth(sOn.getPhysicalScreenWidth()); - sOff.setPhysicalScreenHeight(sOn.getPhysicalScreenHeight()); - - // attach the same view to the offscreen canvas - u.getViewer().getView().addCanvas3D(c); - - // create the gui - Button b = new Button ("Print"); - b.addActionListener(this); - Panel p = new Panel(); - p.add(b); - add("North", p); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - public void actionPerformed(ActionEvent e) - { - // perform the print action - c.print(false); - } - - public static void main(String argv[]) - { - new MainFrame(new PrintFromButton(), 500, 500); - } -} diff --git a/src/OffScreenCanvas3D/PrintFromButton_plugin.html b/src/OffScreenCanvas3D/PrintFromButton_plugin.html deleted file mode 100644 index ed0fe9e..0000000 --- a/src/OffScreenCanvas3D/PrintFromButton_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>PrintFromButton</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 500 HEIGHT = 500 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "PrintFromButton.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "PrintFromButton.class" WIDTH = 500 HEIGHT = 500 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "PrintFromButton.class" WIDTH = 500 HEIGHT = 500 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/OffScreenCanvas3D/build.xml b/src/OffScreenCanvas3D/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/OffScreenCanvas3D/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/OrientedShape3D/MouseRotateY.java b/src/OrientedShape3D/MouseRotateY.java deleted file mode 100644 index d02b345..0000000 --- a/src/OrientedShape3D/MouseRotateY.java +++ /dev/null @@ -1,194 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.*; -import java.awt.event.*; -import java.util.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import com.sun.j3d.utils.behaviors.mouse.*; - -/** - * MouseRotateY is a Java3D behavior object that lets users control the - * rotation of an object via a mouse. - * <p> - * To use this utility, first create a transform group that this - * rotate behavior will operate on. Then, - *<blockquote><pre> - * - * MouseRotateY behavior = new MouseRotateY(); - * behavior.setTransformGroup(objTrans); - * objTrans.addChild(behavior); - * behavior.setSchedulingBounds(bounds); - * - *</pre></blockquote> - * The above code will add the rotate behavior to the transform - * group. The user can rotate any object attached to the objTrans. - */ - -public class MouseRotateY extends MouseBehavior { - double y_angle; - double y_factor; - - /** - * Creates a rotate behavior given the transform group. - * @param transformGroup The transformGroup to operate on. - */ - public MouseRotateY(TransformGroup transformGroup) { - super(transformGroup); - } - - /** - * Creates a default mouse rotate behavior. - **/ - public MouseRotateY() { - super(0); - } - - /** - * Creates a rotate behavior. - * Note that this behavior still needs a transform - * group to work on (use setTransformGroup(tg)) and - * the transform group must add this behavior. - * @param flags interesting flags (wakeup conditions). - */ - public MouseRotateY(int flags) { - super(flags); - } - - public void initialize() { - super.initialize(); - y_angle = 0; - y_factor = .03; - if ((flags & INVERT_INPUT) == INVERT_INPUT) { - invert = true; - y_factor *= -1; - } - } - - public double getYFactor() { - return y_factor; - } - - public void setFactor( double factor) { - y_factor = factor; - - } - - - public void processStimulus (Enumeration criteria) { - WakeupCriterion wakeup; - AWTEvent[] event; - int id; - int dx; - - while (criteria.hasMoreElements()) { - wakeup = (WakeupCriterion) criteria.nextElement(); - if (wakeup instanceof WakeupOnAWTEvent) { - event = ((WakeupOnAWTEvent)wakeup).getAWTEvent(); - for (int i=0; i<event.length; i++) { - processMouseEvent((MouseEvent) event[i]); - - if (((buttonPress)&&((flags & MANUAL_WAKEUP) == 0)) || - ((wakeUp)&&((flags & MANUAL_WAKEUP) != 0))){ - - id = event[i].getID(); - if ((id == MouseEvent.MOUSE_DRAGGED) && - !((MouseEvent)event[i]).isMetaDown() && - !((MouseEvent)event[i]).isAltDown()){ - - x = ((MouseEvent)event[i]).getX(); - - dx = x - x_last; - - if (!reset){ - y_angle = dx * y_factor; - - transformY.rotY(y_angle); - - transformGroup.getTransform(currXform); - - //Vector3d translation = new Vector3d(); - //Matrix3f rotation = new Matrix3f(); - Matrix4d mat = new Matrix4d(); - - // Remember old matrix - currXform.get(mat); - - // Translate to origin - currXform.setTranslation(new Vector3d(0.0,0.0,0.0)); - if (invert) { - currXform.mul(currXform, transformX); - currXform.mul(currXform, transformY); - } else { - currXform.mul(transformX, currXform); - currXform.mul(transformY, currXform); - } - - // Set old translation back - Vector3d translation = new - Vector3d(mat.m03, mat.m13, mat.m23); - currXform.setTranslation(translation); - - // Update xform - transformGroup.setTransform(currXform); - } - else { - reset = false; - } - - x_last = x; - } - else if (id == MouseEvent.MOUSE_PRESSED) { - x_last = ((MouseEvent)event[i]).getX(); - } - } - } - } - } - - wakeupOn (mouseCriterion); - - } -} diff --git a/src/OrientedShape3D/OrientedPtTest.html b/src/OrientedShape3D/OrientedPtTest.html deleted file mode 100644 index c685fd3..0000000 --- a/src/OrientedShape3D/OrientedPtTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>OrientedShape3D Example</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="OrientedPtTest.class" width=400 height=400> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see OrientedShape3D Example! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/OrientedShape3D/OrientedPtTest.java b/src/OrientedShape3D/OrientedPtTest.java deleted file mode 100644 index f753a04..0000000 --- a/src/OrientedShape3D/OrientedPtTest.java +++ /dev/null @@ -1,295 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.BorderLayout; -import java.awt.event.*; -import com.sun.j3d.utils.image.TextureLoader; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.ColorCube; -import com.sun.j3d.utils.geometry.Cone; -import com.sun.j3d.utils.geometry.Cylinder; -import com.sun.j3d.utils.geometry.Sphere; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.io.*; -import java.awt.*; -import com.sun.j3d.utils.behaviors.vp.*; - -public class OrientedPtTest extends Applet { - - // setup font stuff - private String fontName = "TestFont"; - private String textString = "OrientedShape3D"; - float sl = textString.length(); - - // paths to texture image files - private java.net.URL earthImage = null; - private java.net.URL stoneImage = null; - - private SimpleUniverse u; - - public BranchGroup createSceneGraph() { - - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - TransformGroup objScale = new TransformGroup(); - Transform3D textMat = new Transform3D(); - // Assuming uniform size chars, set scale to fit string in view - textMat.setScale(1.2/sl); - objScale.setTransform(textMat); - - - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - objRoot.addChild(objTrans); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - Appearance apText = new Appearance(); - Material m = new Material(); - m.setLightingEnable(true); - apText.setMaterial(m); - - - Appearance apEarth= new Appearance(); - Material mm = new Material(); - mm.setLightingEnable(true); - apEarth.setMaterial(mm); - - Appearance apStone = new Appearance(); - apStone.setMaterial(mm); - -// create 3D text - Font3D f3d = new Font3D(new Font(fontName, Font.PLAIN, 2), - new FontExtrusion()); - Point3f textPt = new Point3f( -sl/2.0f, 3.0f, 0.0f); - Text3D txt = new Text3D(f3d, textString, textPt); - OrientedShape3D textShape = new OrientedShape3D(); - textShape.setGeometry(txt); - textShape.setAppearance(apText); - - textShape.setAlignmentMode(OrientedShape3D.ROTATE_ABOUT_POINT); - // text is centered around 0, 3, 0. Make it rotate around 0,5,0 - Point3f rotationPt = new Point3f(0.0f, 5.0f, 0.0f); - textShape.setRotationPoint(rotationPt); - objScale.addChild( textShape ); - - // also add a small Sphere at the rotation point to - // show that we are rotating around the right point - Sphere sphere = new Sphere(0.2f); - TransformGroup sphereGroup = new TransformGroup(); - Transform3D sphereXform = new Transform3D(); - sphereXform.set(new Vector3f(rotationPt)); - sphereGroup.setTransform(sphereXform); - sphereGroup.addChild(sphere); - objScale.addChild(sphereGroup); - - - // Create a simple shape leaf node, add it to the scene graph. - - Transform3D cubeMat = new Transform3D(); - TransformGroup cubeTrans = new TransformGroup(cubeMat); - cubeMat.set(new Vector3d(0.9, 0.0, -1.0)); - cubeTrans.setTransform(cubeMat); - cubeTrans.addChild(new ColorCube(0.3)); - objTrans.addChild(cubeTrans); - - TextureLoader stoneTex = new TextureLoader(stoneImage, new String("RGB"), this); - if (stoneTex != null) apStone.setTexture(stoneTex.getTexture()); - - TextureAttributes texAttr = new TextureAttributes(); - texAttr.setTextureMode(TextureAttributes.REPLACE); - apStone.setTextureAttributes(texAttr); - - Transform3D coneMat = new Transform3D(); - TransformGroup coneTrans = new TransformGroup(coneMat); - coneMat.set(new Vector3d(0.0, 0.0, 0.0)); - coneTrans.setTransform(coneMat); - coneTrans.addChild(new Cone(.2f, 0.8f,Cone.GENERATE_NORMALS | - Cone.GENERATE_TEXTURE_COORDS, apStone)); - objTrans.addChild(coneTrans); - - TextureLoader earthTex = new TextureLoader(earthImage, new String("RGB"), this); - if (earthTex != null) apEarth.setTexture(earthTex.getTexture()); - apEarth.setTextureAttributes(texAttr); - - Transform3D cylinderMat = new Transform3D(); - TransformGroup cylinderTrans = new TransformGroup(cylinderMat); - cylinderMat.set(new Vector3d(-0.9, 0.5, -1.0)); - cylinderTrans.setTransform(cylinderMat); - cylinderTrans.addChild(new Cylinder(.35f, 2.0f,Cylinder.GENERATE_NORMALS | - Cylinder.GENERATE_TEXTURE_COORDS, apEarth)); - objTrans.addChild(cylinderTrans); - - objTrans.addChild(objScale); - - - - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.5f); - Background bgNode = new Background(bgColor); - bgNode.setApplicationBounds(bounds); - objRoot.addChild(bgNode); - - // Set up the ambient light - Color3f ambientColor = new Color3f(0.1f, 0.1f, 0.1f); - AmbientLight ambientLightNode = new AmbientLight(ambientColor); - ambientLightNode.setInfluencingBounds(bounds); - objRoot.addChild(ambientLightNode); - - // Set up the directional lights - Color3f light1Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light1Direction = new Vector3f(1.0f, 1.0f, 1.0f); - Color3f light2Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light2Direction = new Vector3f(-1.0f, -1.0f, -1.0f); - - DirectionalLight light1 - = new DirectionalLight(light1Color, light1Direction); - light1.setInfluencingBounds(bounds); - objRoot.addChild(light1); - - DirectionalLight light2 - = new DirectionalLight(light2Color, light2Direction); - light2.setInfluencingBounds(bounds); - objRoot.addChild(light2); - - apText.setMaterial(mm); - - // Have Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public OrientedPtTest() { - } - - public OrientedPtTest(java.net.URL earthURL, java.net.URL stoneURL) { - earthImage = earthURL; - stoneImage = stoneURL; - } - - public void init() { - // the paths to the image files for an applet - if (earthImage == null) { - try { - earthImage = new java.net.URL(getCodeBase().toString() + - "../images/earth.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - if (stoneImage == null) { - try { - stoneImage = new java.net.URL(getCodeBase().toString() + - "../images/stone.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - - setLayout(new BorderLayout()); - Canvas3D c = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // add mouse behaviors to the ViewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - // add orbit behavior to the viewing platform - OrbitBehavior orbit = new OrbitBehavior(c, OrbitBehavior.REVERSE_ALL); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows OrientedPtTest to be run as an application - // as well as an applet - // - public static void main(String[] args) { - java.net.URL earthURL = null; - java.net.URL stoneURL = null; - try { - // the paths to the image files for an application - earthURL = new java.net.URL("file:../images/earth.jpg"); - stoneURL = new java.net.URL("file:../images/stone.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - - new MainFrame(new OrientedPtTest(earthURL, stoneURL), 400, 400); - } -} diff --git a/src/OrientedShape3D/OrientedPtTest_plugin.html b/src/OrientedShape3D/OrientedPtTest_plugin.html deleted file mode 100644 index e836d6c..0000000 --- a/src/OrientedShape3D/OrientedPtTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>OrientedShape3D Example</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 400 HEIGHT = 400 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "OrientedPtTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "OrientedPtTest.class" WIDTH = 400 HEIGHT = 400 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see OrientedShape3D Example! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "OrientedPtTest.class" WIDTH = 400 HEIGHT = 400 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see OrientedShape3D Example! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/OrientedShape3D/OrientedTest.html b/src/OrientedShape3D/OrientedTest.html deleted file mode 100644 index d5725eb..0000000 --- a/src/OrientedShape3D/OrientedTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>OrientedShape3D Example</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="OrientedTest.class" width=400 height=400> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see OrientedShape3D Example! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/OrientedShape3D/OrientedTest.java b/src/OrientedShape3D/OrientedTest.java deleted file mode 100644 index 446cfcf..0000000 --- a/src/OrientedShape3D/OrientedTest.java +++ /dev/null @@ -1,303 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.image.TextureLoader; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.*; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import com.sun.j3d.utils.behaviors.mouse.*; - -public class OrientedTest extends Applet { - - // setup font stuff - private String fontName = "TestFont"; - private String textString = "OrientedShape3D"; - float sl = textString.length(); - - // paths to texture image files - private java.net.URL earthImage = null; - private java.net.URL stoneImage = null; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph() { - - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - TransformGroup objScale = new TransformGroup(); - Transform3D textMat = new Transform3D(); - // Assuming uniform size chars, set scale to fit string in view - textMat.setScale(1.2/sl); - objScale.setTransform(textMat); - - - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - objRoot.addChild(objTrans); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - Appearance apText = new Appearance(); - Material m = new Material(); - m.setLightingEnable(true); - apText.setMaterial(m); - - - Appearance apEarth= new Appearance(); - Material mm = new Material(); - mm.setLightingEnable(true); - apEarth.setMaterial(mm); - - Appearance apStone = new Appearance(); - apStone.setMaterial(mm); - -// create 3D text - Font3D f3d = new Font3D(new Font(fontName, Font.PLAIN, 2), - new FontExtrusion()); - Text3D txt = new Text3D(f3d, textString, - new Point3f( -sl/2.0f, 3.0f, 0.0f)); - OrientedShape3D textShape = new OrientedShape3D(); - textShape.setGeometry(txt); - textShape.setAppearance(apText); - textShape.setAlignmentAxis( 0.0f, 1.0f, 0.0f); - objScale.addChild( textShape ); - - - // Create a simple shape leaf node, add it to the scene graph. - - Transform3D cubeMat = new Transform3D(); - TransformGroup cubeTrans = new TransformGroup(cubeMat); - cubeMat.set(new Vector3d(0.9, 0.0, -1.0)); - cubeTrans.setTransform(cubeMat); - cubeTrans.addChild(new ColorCube(0.3)); - objTrans.addChild(cubeTrans); - - TextureLoader stoneTex = new TextureLoader(stoneImage, new String("RGB"), this); - if (stoneTex != null) apStone.setTexture(stoneTex.getTexture()); - - TextureAttributes texAttr = new TextureAttributes(); - texAttr.setTextureMode(TextureAttributes.MODULATE); - apStone.setTextureAttributes(texAttr); - - - Transform3D coneMat = new Transform3D(); - TransformGroup coneTrans = new TransformGroup(coneMat); - coneMat.set(new Vector3d(0.0, 0.0, 0.0)); - coneTrans.setTransform(coneMat); - coneTrans.addChild(new Cone(.2f, 0.8f,Cone.GENERATE_NORMALS | - Cone.GENERATE_TEXTURE_COORDS, apStone)); - objTrans.addChild(coneTrans); - - TextureLoader earthTex = new TextureLoader(earthImage, new String("RGB"), this); - if (earthTex != null) apEarth.setTexture(earthTex.getTexture()); - - apEarth.setTextureAttributes(texAttr); - - Transform3D cylinderMat = new Transform3D(); - TransformGroup cylinderTrans = new TransformGroup(cylinderMat); - cylinderMat.set(new Vector3d(-0.9, 0.5, -1.0)); - cylinderTrans.setTransform(cylinderMat); - cylinderTrans.addChild(new Cylinder(.35f, 2.0f,Cylinder.GENERATE_NORMALS | - Cylinder.GENERATE_TEXTURE_COORDS, apEarth)); - objTrans.addChild(cylinderTrans); - - objTrans.addChild(objScale); - - - - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.5f); - Background bgNode = new Background(bgColor); - bgNode.setApplicationBounds(bounds); - objRoot.addChild(bgNode); - - // Set up the ambient light - Color3f ambientColor = new Color3f(0.1f, 0.1f, 0.1f); - AmbientLight ambientLightNode = new AmbientLight(ambientColor); - ambientLightNode.setInfluencingBounds(bounds); - objRoot.addChild(ambientLightNode); - - // Set up the directional lights - Color3f light1Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light1Direction = new Vector3f(1.0f, 1.0f, 1.0f); - Color3f light2Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light2Direction = new Vector3f(-1.0f, -1.0f, -1.0f); - - DirectionalLight light1 - = new DirectionalLight(light1Color, light1Direction); - light1.setInfluencingBounds(bounds); - objRoot.addChild(light1); - - DirectionalLight light2 - = new DirectionalLight(light2Color, light2Direction); - light2.setInfluencingBounds(bounds); - objRoot.addChild(light2); - - apText.setMaterial(mm); - - // Have Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public OrientedTest() { - } - - public OrientedTest(java.net.URL earthURL, java.net.URL stoneURL) { - earthImage = earthURL; - stoneImage = stoneURL; - } - - public void init() { - // the paths to the image files for an applet - if (earthImage == null) { - try { - earthImage = new java.net.URL(getCodeBase().toString() + - "../images/earth.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - if (stoneImage == null) { - try { - stoneImage = new java.net.URL(getCodeBase().toString() + - "../images/stone.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c, 4); - - // add mouse behaviors to ViewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - // there is a special rotate behavior, so can't use the utility - // method - MouseRotateY rotate = new MouseRotateY(MouseRotateY.INVERT_INPUT); - rotate.setTransformGroup(viewingPlatform.getMultiTransformGroup(). - getTransformGroup(0)); - BranchGroup rotateBG = new BranchGroup(); - rotateBG.addChild(rotate); - viewingPlatform.addChild(rotateBG); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotate.setSchedulingBounds(bounds); - - MouseZoom zoom = - new MouseZoom(c, MouseZoom.INVERT_INPUT); - zoom.setTransformGroup(viewingPlatform.getMultiTransformGroup(). - getTransformGroup(1)); - zoom.setSchedulingBounds(bounds); - BranchGroup zoomBG = new BranchGroup(); - zoomBG.addChild(zoom); - viewingPlatform.addChild(zoomBG); - - MouseTranslate translate = - new MouseTranslate(c, MouseTranslate.INVERT_INPUT); - translate.setTransformGroup(viewingPlatform.getMultiTransformGroup(). - getTransformGroup(2)); - translate.setSchedulingBounds(bounds); - BranchGroup translateBG = new BranchGroup(); - translateBG.addChild(translate); - viewingPlatform.addChild(translateBG); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows OrientedTest to be run as an application - // as well as an applet - // - public static void main(String[] args) { - java.net.URL earthURL = null; - java.net.URL stoneURL = null; - try { - // the paths to the image files for an application - earthURL = new java.net.URL("file:../images/earth.jpg"); - stoneURL = new java.net.URL("file:../images/stone.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - - new MainFrame(new OrientedTest(earthURL, stoneURL), 400, 400); - } -} diff --git a/src/OrientedShape3D/OrientedTest_plugin.html b/src/OrientedShape3D/OrientedTest_plugin.html deleted file mode 100644 index fb6dcca..0000000 --- a/src/OrientedShape3D/OrientedTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>OrientedShape3D Example</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 400 HEIGHT = 400 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "OrientedTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "OrientedTest.class" WIDTH = 400 HEIGHT = 400 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see OrientedShape3D Example! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "OrientedTest.class" WIDTH = 400 HEIGHT = 400 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see OrientedShape3D Example! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/OrientedShape3D/build.xml b/src/OrientedShape3D/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/OrientedShape3D/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/PackageInfo/PackageInfo.java b/src/PackageInfo/PackageInfo.java deleted file mode 100644 index 1fda583..0000000 --- a/src/PackageInfo/PackageInfo.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -public class PackageInfo { - public PackageInfo() { - ClassLoader classLoader = getClass().getClassLoader(); - - pkgInfo(classLoader, "javax.vecmath", "Point3d"); - pkgInfo(classLoader, "javax.media.j3d", "SceneGraphObject"); - pkgInfo(classLoader, "com.sun.j3d.utils.universe", "SimpleUniverse"); - //pkgInfo(classLoader, "com.sun.j3d.loaders.vrml97", "VrmlLoader"); - } - - static void pkgInfo(ClassLoader classLoader, - String pkgName, - String className) { - - try { - classLoader.loadClass(pkgName + "." + className); - - Package p = Package.getPackage(pkgName); - if (p == null) { - System.out.println("WARNING: Package.getPackage(" + - pkgName + - ") is null"); - } - else { - System.out.println(p); - System.out.println("Specification Title = " + - p.getSpecificationTitle()); - System.out.println("Specification Vendor = " + - p.getSpecificationVendor()); - System.out.println("Specification Version = " + - p.getSpecificationVersion()); - - System.out.println("Implementation Vendor = " + - p.getImplementationVendor()); - System.out.println("Implementation Version = " + - p.getImplementationVersion()); - } - } - catch (ClassNotFoundException e) { - System.out.println("Unable to load " + pkgName); - } - - System.out.println(); - } - - public static void main(String[] args) { - new PackageInfo(); - } -} diff --git a/src/PackageInfo/QueryProperties.java b/src/PackageInfo/QueryProperties.java deleted file mode 100644 index 0b39c3a..0000000 --- a/src/PackageInfo/QueryProperties.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.util.*; -import javax.media.j3d.*; -import java.awt.GraphicsEnvironment; -import java.awt.GraphicsConfiguration; -import com.sun.j3d.utils.universe.*; - -public class QueryProperties { - public static void printProps(Map map, String[] propList) { - // Create an alphabetical list of keys - List keyList = new ArrayList(map.keySet()); - Collections.sort(keyList); - Iterator it; - - // Collection used to remember the properties we've already - // printed, so we don't print them twice - HashSet hs = new HashSet(); - - // Print out the values for the caller-specified properties - String key; - for (int i = 0; i < propList.length; i++) { - int len = propList[i].length(); - int idxWild = propList[i].indexOf('*'); - if (idxWild < 0) { - key = propList[i]; - if (!hs.contains(key)) { - System.out.println(key + " = " + map.get(key)); - hs.add(key); - } - } - else if (idxWild == len-1) { - String pattern = propList[i].substring(0, len-1); - it = keyList.iterator(); - while (it.hasNext()) { - key = (String)it.next(); - if (key.startsWith(pattern) && !hs.contains(key)) { - System.out.println(key + " = " + map.get(key)); - hs.add(key); - } - } - } - else { - System.out.println(propList[i] + - " = ERROR: KEY WITH EMBEDDED WILD CARD IGNORED"); - } - } - - // Print out the values for those properties not already printed - it = keyList.iterator(); - while (it.hasNext()) { - key = (String)it.next(); - if (!hs.contains(key)) { - System.out.println(key + " = " + map.get(key)); - } - } - - } - - public static void main(String[] args) { - VirtualUniverse vu = new VirtualUniverse(); - Map vuMap = vu.getProperties(); - final String[] vuPropList = { - "j3d.version", - "j3d.vendor", - "j3d.specification.version", - "j3d.specification.vendor", - "j3d.*" - // Just print all other properties in alphabetical order - }; - - printProps(vuMap, vuPropList); - System.out.println(); - - GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D(); - - /* We need to set this to force choosing a pixel format - that support the canvas. - */ - template.setStereo(template.PREFERRED); - template.setSceneAntialiasing(template.PREFERRED); - - GraphicsConfiguration config = - GraphicsEnvironment.getLocalGraphicsEnvironment(). - getDefaultScreenDevice().getBestConfiguration(template); - - Map c3dMap = new Canvas3D(config).queryProperties(); - final String[] c3dPropList = { - "native.*", - "doubleBufferAvailable", - "stereoAvailable", - "sceneAntialiasing*", - "compressedGeometry.majorVersionNumber", - "compressedGeometry.minorVersionNumber", - "compressedGeometry.*", - "textureUnitStateMax", - "textureWidthMax", - "textureHeightMax", - // Just print all other properties in alphabetical order - }; - - printProps(c3dMap, c3dPropList); - - System.exit(0); - } -} diff --git a/src/PackageInfo/build.xml b/src/PackageInfo/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/PackageInfo/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/PickTest/BoltCG.java b/src/PickTest/BoltCG.java deleted file mode 100644 index 78255ac..0000000 --- a/src/PickTest/BoltCG.java +++ /dev/null @@ -1,357 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class BoltCG extends CompressedGeometry { - - BoltCG() { - super(cgHeader, cgData) ; - } - - private static final byte cgData[] = { - 25, 0, -120, 16, -124, 64, 33, -35, - 0, 67, 60, 48, -121, 90, 1, 3, - 116, -62, 25, 105, -60, 60, -32, 8, - 5, -58, 16, -9, -114, 32, -1, -104, - 67, 16, 0, -117, -128, 97, 40, 62, - -62, -128, -122, 5, 67, 48, 10, -76, - -32, 21, 1, 6, 40, 10, -128, 86, - -123, 24, -96, 76, 65, 74, 88, 2, - -117, -80, -59, 21, 113, -118, -40, -28, - 21, 110, 6, 40, 27, 64, 81, 23, - -124, -7, 47, 54, 13, -3, -4, 69, - 40, 25, -69, -99, -123, 64, 8, 48, - 3, 64, 16, 23, 16, 97, -39, 8, - -20, -125, 0, 36, 2, 1, -123, 2, - 8, -120, 48, 27, 122, 91, 65, -67, - 108, 18, 26, 13, -12, -35, 95, -48, - 107, 63, -5, 91, -46, 12, 84, -44, - -53, -120, 54, -45, -98, 115, 64, -69, - 92, 126, -55, 1, 6, -80, 34, -49, - -24, 53, -30, 61, -19, 9, 6, -76, - 10, -115, -24, 53, 87, -54, -2, -127, - 113, 68, -15, -33, 16, 97, -9, 113, - -54, -30, 12, 75, 34, -48, -48, 107, - 86, -32, -10, -125, 97, -42, 19, -78, - 12, 0, -48, 4, 4, 68, 8, 12, - -67, -69, 32, -64, 9, 0, 0, 92, - 65, -121, 116, 42, 10, 13, 98, -52, - -97, 16, 34, 104, 114, 75, 66, 12, - -45, 11, -82, 32, -34, -74, -127, -15, - 6, 74, 51, 70, -81, 32, -42, 27, - 105, 13, 6, -97, 13, 111, -24, 22, - -12, 22, -19, -95, 6, -49, -85, -48, - 16, 107, 2, 44, -8, -125, 6, 73, - -123, -97, 16, 37, 40, 68, -22, -30, - 12, 58, 97, 80, -112, 104, -16, -104, - -72, -125, 122, -38, 22, -12, 25, -114, - -39, 124, 64, -111, -115, -112, -49, -24, - 53, -34, 85, -23, 5, 6, -82, -26, - 15, 104, 54, 1, -31, 62, 32, 68, - -17, 100, -58, 84, 27, 33, -54, -66, - -125, 55, -2, -89, 32, -119, 122, -73, - -25, -36, 105, -128, 8, 53, -128, 2, - 76, -71, 9, -56, -128, 30, 112, -59, - -48, 96, -37, 0, 0, 0, 9, -112, - 28, -117, 100, 64, 127, 58, 113, -58, - 13, 96, 0, -109, 46, 70, 50, 80, - 103, -88, 56, -86, 13, 96, 0, -109, - 46, 67, 114, -112, 95, -74, 49, 84, - 49, -74, -72, 15, 96, 2, 80, 6, - 55, 80, 0, -36, 82, 0, 40, 3, - 108, 1, -58, -95, -63, -84, 0, 18, - 101, -56, -74, 87, 10, 56, 39, 31, - -32, -43, -32, 9, 50, -28, 87, 46, - -125, 28, -61, -117, -48, 107, 0, 4, - -103, 114, 19, -105, -65, -98, 117, -60, - 32, -63, -84, 0, 18, 101, -116, -74, - 45, 1, -15, 1, -57, 0, -29, -116, - 26, -64, 1, 38, 92, -116, 101, 111, - 79, 124, 113, 83, -6, -68, 8, 37, - -36, -83, -4, -93, -4, 109, 46, 55, - 6, -81, 0, 73, -105, 33, -71, 63, - -57, -40, -36, 82, 28, 26, -64, 1, - 38, 92, -117, 100, -113, 71, 71, 113, - -2, 13, 96, 0, -109, 46, 69, 114, - 47, -41, -99, -72, -67, 6, -80, 0, - 73, -107, -63, 72, -64, -113, -83, 99, - 72, 53, 97, -6, 65, 57, -67, 60, - -38, -26, -63, -78, 105, 11, 112, 85, - 110, 101, -95, 58, -128, 16, 107, -125, - 90, -60, 3, 0, 0, 1, 0, 32, - 64, 67, -32, -54, -41, -103, 113, 6, - -55, -92, 45, -63, 85, -71, -106, -34, - -22, 0, 55, -79, -36, -28, 62, -95, - -68, 97, -73, -41, -70, -122, -13, 117, - -50, 94, -22, 32, 80, 21, 77, -39, - 6, 0, 48, 6, 2, 10, 13, 61, - 106, -104, 80, 32, -68, -125, 64, -75, - 100, 17, 91, -78, 90, -67, -42, 24, - 55, 27, -39, 61, 0, -56, 63, -40, - -71, -95, -124, 49, 74, 37, 3, 7, - -83, 118, -18, 13, -79, 30, -96, -126, - 80, 77, 53, 19, -32, -47, -121, -103, - 104, -122, 82, 89, -19, 56, 92, 45, - -96, -73, 42, -128, 16, 109, -120, -11, - 4, 18, -126, 105, -88, 126, 70, -127, - -56, -24, 48, -43, -36, 20, -25, -48, - -60, -115, -4, -98, -42, -31, -84, 8, - -35, -13, 59, -96, -36, 11, 1, 64, - 69, 65, -126, 80, -85, 10, 4, 22, - -48, 97, 109, -42, -114, 71, 112, -106, - -58, -51, 6, 104, 48, 82, 8, -19, - -74, -36, -81, -100, -56, -122, 85, 34, - -111, -37, 125, -83, 103, 65, -89, 125, - -30, -15, 36, -20, -5, 81, -63, 68, - 27, -17, -89, -83, 3, -63, -89, 33, - -24, 66, 0, 7, 50, 45, 2, -56, - 17, 6, -99, -9, -117, -60, -109, -77, - -19, 122, 5, 14, 96, 110, 114, 71, - -92, 117, 39, 107, 93, -50, 105, 49, - 110, -75, 80, 46, -125, -68, -18, -125, - 80, 60, 10, 1, -111, 6, -76, 10, - 48, -96, 65, 105, 6, -120, 27, 8, - 68, -77, -109, -59, 90, -64, 16, 106, - -61, -12, -26, 17, 26, 10, 54, -53, - 40, -88, 1, 6, -14, 124, 52, 32, - -39, 13, -117, 66, 13, 63, -111, -80, - -96, 65, 117, 6, 103, -11, -120, 104, - 54, -49, 116, 92, 65, -102, -84, -125, - 50, 12, 87, -109, 67, 64, -124, 106, - -22, -22, 12, 28, -24, -48, -48, 109, - 94, -22, -48, -125, 10, -96, 75, -120, - 17, 39, -119, 104, 65, -92, -110, 68, - 36, 27, 99, -87, -73, -96, -56, -42, - -85, 18, 12, 8, 3, -22, 0, 28, - 1, 120, 34, -112, -6, -81, 52, -64, - 4, 24, -88, 0, 0, 14, 0, -104, - 39, 32, 44, 23, -98, -125, 6, 44, - 0, 0, 3, -128, 38, 22, -56, 95, - 13, -25, 24, 49, 80, 0, 0, 28, - 1, 48, -58, -28, -38, -113, 42, -125, - 21, 0, 0, 1, -80, 19, 70, -24, - 73, -46, -13, 80, -32, -59, 64, 0, - 0, 108, 7, -94, -37, -127, -1, 30, - 127, -125, 21, 0, 0, 1, -64, 30, - -118, -18, -124, -124, 121, 122, 12, 84, - 0, 0, 7, 0, 78, 19, -81, -32, - 99, -56, 65, -125, 22, 0, 0, 1, - -64, 30, 11, 110, 64, 117, 0, 0, - 2, -106, 48, 106, 2, 56, -102, 99, - 126, 15, 53, 37, 65, -81, -8, -30, - 104, -36, -75, -8, -98, 82, 28, 24, - -88, 0, 0, 13, -128, -104, 91, 93, - -20, -41, -97, -32, -59, 64, 0, 0, - 112, 7, -94, -69, 31, 56, -98, 94, - -125, 21, 0, 0, 1, -64, 24, 77, - -96, -39, -12, 65, -125, 41, 86, -79, - 58, 14, -56, 87, 102, -112, 105, -50, - 18, -42, 11, 91, 10, -54, -9, 6, - 61, -1, -87, 3, 51, 55, -14, 86, - 108, 80, 111, -5, -18, -110, 55, 34, - 112, -43, 114, -123, 6, 1, 63, 9, - 32, -11, 21, 28, 87, 36, 4, 32, - -56, 83, -3, 36, -82, -1, -60, -86, - -31, -63, -88, -40, 98, 73, -99, -72, - 71, 27, 59, 6, 3, 38, -110, 12, - 111, -92, 4, -39, -8, 49, -111, 74, - -112, 51, 28, -18, -90, -64, 37, 6, - 80, -54, -38, -51, 106, -93, 73, -80, - 5, 8, 50, 119, 84, -116, 47, 110, - 123, -10, -60, 45, 6, 45, 104, 81, - -116, 106, 15, 126, -40, -40, 48, 101, - 42, -30, 109, 90, -16, 69, 123, -81, - -47, 6, 112, 0, 0, 9, 1, 4, - 78, 1, 17, -114, -67, 6, 12, -32, - 0, 0, 18, 2, 9, 108, -111, -28, - 29, 113, -125, 56, 0, 0, 4, -128, - -124, 99, 119, 92, 87, 85, 65, -100, - 0, 0, 2, 64, 106, 53, -112, 31, - 101, -80, 30, 13, -35, -80, 85, -86, - -95, -63, -109, -1, 117, -46, -38, 46, - -94, -70, 127, 6, -112, 0, 0, 119, - 1, 124, -82, 39, 15, 46, -113, 65, - -92, 0, 0, 29, -128, 127, 19, -67, - -4, -112, -82, -127, 6, 13, 40, 0, - 0, -18, 2, -15, 108, -81, -40, 29, - 49, -125, 72, 0, 0, 59, 0, -70, - 99, 9, -61, -106, -91, 65, -112, 31, - 102, -44, 27, 62, -118, 116, 65, -92, - 0, 0, 29, -64, 117, 65, -100, 0, - 0, 2, 64, 122, 27, -111, -127, -35, - -75, 33, -63, -80, 8, -92, 34, -40, - -52, 86, -70, -1, 6, 108, 0, 0, - 10, 1, 4, -82, 122, 114, -114, -81, - 65, -100, 0, 0, 2, 64, 115, 26, - -113, -107, -98, -115, -46, -95, -63, -71, - 0, 0, 28, -128, 87, 65, -123, -57, - -69, -22, 12, 4, 9, -32, 118, 65, - -128, 24, 7, -128, -96, -127, 27, -128, - 101, -12, 27, 36, 13, -93, -96, -50, - -29, 89, -31, 6, -114, 0, 0, 29, - -96, 48, -96, 65, -7, 6, -4, 72, - 30, -79, 32, -56, 32, 59, -32, 60, - 96, 23, -48, 110, -124, 50, -80, -127, - 116, -126, -89, 100, 25, -128, 0, 120, - 15, 72, 51, 119, -74, 52, 32, -38, - -8, -94, -70, 5, 65, -123, 30, 16, - 104, -96, 0, 1, -36, 3, 42, 13, - -1, 127, 124, 26, -122, -64, 5, -22, - -4, 74, 12, 0, 68, -102, -48, 99, - 117, 1, 73, 6, -72, -55, -17, -120, - 54, 115, -83, -3, 73, 6, -46, 15, - -85, -88, 50, 112, -91, 104, 65, -110, - 43, 22, -12, 27, 27, 83, 104, 65, - -114, -126, -105, -64, -119, -33, 105, -120, - -71, 76, 0, 65, -81, -99, -54, 82, - 13, 3, 78, 81, 80, 107, -25, 76, - -122, -125, 0, -60, 23, -28, 10, -17, - -97, 42, -24, -125, 112, 0, 0, 56, - -128, -76, -125, 32, -43, -89, -92, 27, - -65, 50, -99, -112, 96, 1, 0, -32, - 40, -96, 72, 49, -107, 57, 6, -34, - -109, 104, 40, 51, 12, 68, 67, 64, - -128, 98, 11, -78, 12, -64, 16, 24, - 7, -108, 25, -64, 0, 0, 9, -128, - -16, 109, 72, 0, 0, 14, -48, 30, - -20, 56, 55, -23, 7, 43, -96, -54, - -29, -35, 97, 6, -88, 69, 13, 8, - 49, 69, -46, -6, -127, 14, 68, -125, - -34, 80, 103, 0, 0, 0, 36, 2, - 58, 12, 110, 53, -44, 80, 110, -112, - 112, -54, -125, 127, -33, -40, 80, 32, - -68, -125, 59, -18, -74, 36, 25, 0, - 0, 0, 7, -66, 3, -14, 13, -1, - -12, 31, 104, 64, -118, 46, -105, 100, - 24, 1, 32, 104, 14, -120, 55, 32, - 0, 3, -112, 15, -29, 85, 84, -127, - 5, -120, 9, 65, -112, 0, 0, 0, - 123, -32, 63, 32, -38, -57, 127, 55, - -44, 24, -97, 40, 18, -4, -125, 105, - 56, -15, 95, 80, 96, -68, 16, -93, - 122, 5, 110, -88, 40, 32, -64, 20, - 113, -11, 6, 11, -59, 8, -69, 32, - -64, 12, 0, -64, 111, 64, -83, -43, - 7, 100, 24, -128, -96, 88, 12, 104, - 53, -4, 0, 0, 0, -124, 7, -64, - -118, -33, -106, -102, -13, -84, 0, 65, - -100, 0, 0, 0, -104, 9, 72, 50, - 13, 56, 126, 65, -70, -4, -6, -49, - -88, 50, 112, -39, -59, -115, 6, -83, - 1, -13, 1, -53, 0, -8, -125, 37, - 13, 34, -41, 16, 107, -25, 116, -122, - -125, 0, -60, 7, -16, -118, 102, 102, - -36, -66, -118, 0, 65, -67, -1, -30, - 10, 12, -99, 74, 94, -48, 110, -31, - 108, 104, 65, -102, -87, 103, -60, 8, - 34, -100, 36, -2, -125, 124, -84, -5, - -97, 16, 98, 43, -46, 27, 34, 12, - 127, -101, 127, 64, -80, -47, -16, -19, - 8, 53, -33, 88, -8, -125, 20, 109, - 19, 95, -48, 111, -111, -1, -117, 66, - 13, -57, 92, 63, -96, 93, -104, -99, - 119, -60, 24, 84, -16, 82, -8, -125, - 3, 80, 2, -38, 16, 103, -116, 101, - -19, 2, -18, 110, -26, 68, 24, -117, - -98, -56, -125, 5, -64, -35, -112, 96, - 4, 0, 32, 63, -102, 89, 15, 119, - -122, 112, 12, 32, -38, -68, 70, -110, - 91, -114, -68, 111, 2, 16, 96, -65, - -23, -123, 2, 13, 7, 118, -36, 104, - -127, 46, -26, -117, -92, -19, 36, 102, - 0, -128, -64, 61, -61, 84, 87, -73, - 74, 32, -24, 50, 11, 10, 111, 57, - -79, -36, -28, 10, 93, 24, 4, 22, - 106, -32, -42, 17, -42, -29, -104, -37, - 74, 105, -73, -9, -48, 112, -35, -82, - 107, 119, 73, 10, -33, 78, -4, -79, - -97, 96, -54, -14, 54, -128, 58, 97, - 8, 111, 4, 3, -50, -37, -53, 64, - -124, 0, 14, -103, 65, -41, -127, 8, - 53, 6, -14, 65, 65, -97, -48, 115, - 113, -51, -74, 42, 50, 82, 57, 40, - -86, -53, -100, -41, -66, -74, 106, -125, - 82, 116, -39, -48, 38, 51, 107, 121, - 44, 88, -28, 34, 96, 4, -78, 4, - 75, 118, -64, 16, 96, 4, -127, -96, - 45, -110, 88, 14, -31, 3, 0, 65, - -65, -128, 10, 25, 44, -61, 81, -40, - -16, 3, -85, -100, 0, 20, 6, -12, - 3, 49, -63, -107, 14, 15, 71, -16, - 99, 19, -81, -37, -102, -15, -37, 32, - -21, -7, 6, -91, -81, 91, -119, -4, - 88, -77, -20, 26, -49, -96, -54, 23, - 112, -72, -41, -35, 64, 8, 53, 11, - 14, 102, 65, -123, -35, -52, -94, 55, - 24, -7, -45, -72, -75, -123, 0, 0, - 22, -64, 111, -16, 2, 13, 97, -46, - 48, -96, 65, 0, 86, 40, 32, -120, - 21, -124, -115, 46, 54, 29, -69, 11, - 88, 0, -96, 96, 11, -32, 60, 20, - -94, 25, 99, 53, 97, -125, 8, 91, - -48, 2, 101, 113, -54, -128, -20, 0, - 10, -85, -70, -117, 50, 32, 1, 6, - 75, 84, 46, -99, -38, -53, -51, 9, - -59, -59, 52, 25, 121, 16, 0, 119, - 27, -114, -108, 39, 21, 4, -111, -26, - 116, 64, 2, 13, 121, -104, 105, 63, - -115, 58, -42, 122, -125, 106, -15, 25, - -112, 99, 35, -32, 8, 5, -96, 0 - } ; - - private static final CompressedGeometryHeader cgHeader ; - - static { - cgHeader = new CompressedGeometryHeader() ; - cgHeader.majorVersionNumber = 1 ; - cgHeader.minorVersionNumber = 0 ; - cgHeader.minorMinorVersionNumber = 1 ; - cgHeader.bufferType = CompressedGeometryHeader.TRIANGLE_BUFFER ; - cgHeader.bufferDataPresent = CompressedGeometryHeader.NORMAL_IN_BUFFER ; - cgHeader.start = 0 ; - cgHeader.size = cgData.length ; - } -} diff --git a/src/PickTest/ColorCube.java b/src/PickTest/ColorCube.java deleted file mode 100644 index ff52c48..0000000 --- a/src/PickTest/ColorCube.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class ColorCube extends QuadArray { - private static final float[] verts = { - // front face - 1.0f, -1.0f, 1.0f, - 1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, 1.0f, - -1.0f, -1.0f, 1.0f, - // back face - -1.0f, -1.0f, -1.0f, - -1.0f, 1.0f, -1.0f, - 1.0f, 1.0f, -1.0f, - 1.0f, -1.0f, -1.0f, - // right face - 1.0f, -1.0f, -1.0f, - 1.0f, 1.0f, -1.0f, - 1.0f, 1.0f, 1.0f, - 1.0f, -1.0f, 1.0f, - // left face - -1.0f, -1.0f, 1.0f, - -1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, -1.0f, - -1.0f, -1.0f, -1.0f, - // top face - 1.0f, 1.0f, 1.0f, - 1.0f, 1.0f, -1.0f, - -1.0f, 1.0f, -1.0f, - -1.0f, 1.0f, 1.0f, - // bottom face - -1.0f, -1.0f, 1.0f, - -1.0f, -1.0f, -1.0f, - 1.0f, -1.0f, -1.0f, - 1.0f, -1.0f, 1.0f, - }; - - private static final float[] colors = { - // front face (red) - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - // back face (green) - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - // right face (blue) - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - // left face (yellow) - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - // top face (magenta) - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - // bottom face (cyan) - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - }; - - ColorCube() { - super(24, QuadArray.COORDINATES | QuadArray.COLOR_3); - - setCoordinates(0, verts); - setColors(0, colors); - } -} diff --git a/src/PickTest/ColorPyramidDown.java b/src/PickTest/ColorPyramidDown.java deleted file mode 100644 index 80a572d..0000000 --- a/src/PickTest/ColorPyramidDown.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class ColorPyramidDown extends QuadArray { - private static final float[] verts = { - // front face - 0.0f, -1.0f, 0.0f, - 1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, 1.0f, - 0.0f, -1.0f, 0.0f, - // back face - 0.0f, -1.0f, 0.0f, - -1.0f, 1.0f, -1.0f, - 1.0f, 1.0f, -1.0f, - 0.0f, -1.0f, 0.0f, - // right face - 0.0f, -1.0f, 0.0f, - 1.0f, 1.0f, -1.0f, - 1.0f, 1.0f, 1.0f, - 0.0f, -1.0f, 0.0f, - // left face - 0.0f, -1.0f, 0.0f, - -1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, -1.0f, - 0.0f, -1.0f, 0.0f, - // top face - 1.0f, 1.0f, 1.0f, - 1.0f, 1.0f, -1.0f, - -1.0f, 1.0f, -1.0f, - -1.0f, 1.0f, 1.0f, - // bottom face - 0.0f, -1.0f, 0.0f, - 0.0f, -1.0f, 0.0f, - 0.0f, -1.0f, 0.0f, - 0.0f, -1.0f, 0.0f, - }; - - private static final float[] colors = { - // front face (green) - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - // back face (red) - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - // right face (yellow) - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - // left face (magenta) - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - // top face (blue) - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - // bottom face (cyan) - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - }; - - ColorPyramidDown() { - super(24, QuadArray.COORDINATES | QuadArray.COLOR_3); - - setCoordinates(0, verts); - setColors(0, colors); - } -} diff --git a/src/PickTest/ColorPyramidUp.java b/src/PickTest/ColorPyramidUp.java deleted file mode 100644 index e952fe2..0000000 --- a/src/PickTest/ColorPyramidUp.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class ColorPyramidUp extends QuadArray { - private static final float[] verts = { - // front face - 1.0f, -1.0f, 1.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - -1.0f, -1.0f, 1.0f, - // back face - -1.0f, -1.0f, -1.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 1.0f, -1.0f, -1.0f, - // right face - 1.0f, -1.0f, -1.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 1.0f, -1.0f, 1.0f, - // left face - -1.0f, -1.0f, 1.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - -1.0f, -1.0f, -1.0f, - // top face - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - // bottom face - -1.0f, -1.0f, 1.0f, - -1.0f, -1.0f, -1.0f, - 1.0f, -1.0f, -1.0f, - 1.0f, -1.0f, 1.0f, - }; - - private static final float[] colors = { - - // front face (cyan) - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f, 1.0f, - // back face (magenta) - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - 1.0f, 0.0f, 1.0f, - // right face (yellow) - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, - // left face (blue) - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - 0.0f, 0.0f, 1.0f, - // top face (green) - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - 0.0f, 1.0f, 0.0f, - // bottom face (red) - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, - - }; - - ColorPyramidUp() { - super(24, QuadArray.COORDINATES | QuadArray.COLOR_3); - - setCoordinates(0, verts); - setColors(0, colors); - } -} diff --git a/src/PickTest/CubeIQA.java b/src/PickTest/CubeIQA.java deleted file mode 100644 index cbeadc5..0000000 --- a/src/PickTest/CubeIQA.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class CubeIQA extends IndexedQuadArray { - 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; - 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); - } -} diff --git a/src/PickTest/CubeQA.java b/src/PickTest/CubeQA.java deleted file mode 100644 index 5e1f78f..0000000 --- a/src/PickTest/CubeQA.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class CubeQA extends QuadArray { - CubeQA() { - super(24, GeometryArray.COORDINATES | GeometryArray.COLOR_3); - - - Point3f verts[] = new Point3f[8]; - Color3f colors[] = new Color3f[6]; - - 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); - - Point3f pnts[] = new Point3f[24]; - Color3f clrs[] = new Color3f[24]; - - pnts[0] = verts[0]; - clrs[0] = colors[0]; - pnts[1] = verts[3]; - clrs[1] = colors[0]; - pnts[2] = verts[7]; - clrs[2] = colors[0]; - pnts[3] = verts[4]; - clrs[3] = colors[0]; - - pnts[4] = verts[1]; - clrs[4] = colors[1]; - pnts[5] = verts[5]; - clrs[5] = colors[1]; - pnts[6] = verts[6]; - clrs[6] = colors[1]; - pnts[7] = verts[2]; - clrs[7] = colors[1]; - - pnts[8] = verts[0]; - clrs[8] = colors[2]; - pnts[9] = verts[4]; - clrs[9] = colors[2]; - pnts[10] = verts[5]; - clrs[10] = colors[2]; - pnts[11] = verts[1]; - clrs[11] = colors[2]; - - pnts[12] = verts[3]; - clrs[12] = colors[3]; - pnts[13] = verts[2]; - clrs[13] = colors[3]; - pnts[14] = verts[6]; - clrs[14] = colors[3]; - pnts[15] = verts[7]; - clrs[15] = colors[3]; - - pnts[16] = verts[0]; - clrs[16] = colors[4]; - pnts[17] = verts[1]; - clrs[17] = colors[4]; - pnts[18] = verts[2]; - clrs[18] = colors[4]; - pnts[19] = verts[3]; - clrs[19] = colors[4]; - - pnts[20] = verts[7]; - clrs[20] = colors[5]; - pnts[21] = verts[6]; - clrs[21] = colors[5]; - pnts[22] = verts[5]; - clrs[22] = colors[5]; - pnts[23] = verts[4]; - clrs[23] = colors[5]; - - - setCoordinates(0, pnts); - setColors(0, clrs); - } -} diff --git a/src/PickTest/GullCG.java b/src/PickTest/GullCG.java deleted file mode 100644 index c53283a..0000000 --- a/src/PickTest/GullCG.java +++ /dev/null @@ -1,576 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class GullCG extends CompressedGeometry { - - GullCG() { - super(cgHeader, cgData) ; - } - - private static final byte cgData[] = { - 25, 0, -120, 16, -58, -52, 33, -35, - -128, 67, -36, 0, -127, -72, 97, 14, - 64, 2, 29, 104, 4, 2, -45, 8, - 125, -89, 16, 51, -116, 33, -1, -104, - 71, -64, 48, -106, 31, 1, 32, -52, - 2, -127, 6, 5, 5, 32, 10, -78, - -128, 20, 14, 6, 40, 74, -128, 81, - -43, 24, -94, 44, 1, 86, -104, 98, - -96, 49, 5, 34, 112, 10, -68, -29, - 21, -115, -56, 40, 8, -64, 81, -74, - -128, -90, 13, 49, 71, 30, 2, -81, - -68, -30, -62, 122, 56, 37, -107, 60, - -109, 120, 0, 0, 26, -32, 18, 85, - -128, 14, -16, 71, -13, 66, -33, 103, - 127, -81, 78, -61, -106, -112, 0, 1, - -32, 13, -86, -96, 4, -103, -36, 59, - -23, 25, 39, 18, 11, 122, -80, 1, - -34, -22, -112, -109, -80, -71, -7, -39, - -40, 0, -127, 0, 0, 0, 0, 43, - 97, -102, 118, 16, 83, -32, -121, -87, - -32, -86, -4, 32, 121, 8, 33, -48, - -100, -39, 64, 0, 0, 50, 0, -47, - -9, -97, -118, 53, 75, -122, 89, -54, - -10, 8, 0, 69, -98, 0, 0, 54, - 3, -67, 0, 29, -17, 2, 64, 0, - 5, 126, -93, -56, -31, 15, 74, -95, - -128, 5, -64, 0, 3, -46, 8, 0, - 36, 0, 0, 58, 93, -92, 0, 0, - 30, 0, 87, 4, 0, 23, 4, 68, - 36, 64, 30, -17, -25, -121, -40, 22, - 13, 48, 78, -43, 73, -64, -10, 48, - 51, -25, -1, -82, -65, 3, 55, -71, - 41, 124, -50, -118, -64, 4, -102, 112, - 0, 1, -20, 5, 98, 59, -58, -95, - -87, 42, -9, -112, -99, -107, -91, -11, - 127, 5, 36, -46, -112, 121, 9, -39, - -17, -1, -41, 0, 0, 0, 112, 4, - -121, -19, -124, -16, -44, 66, -40, 36, - 116, -83, -96, -128, 7, -37, 100, -37, - 121, 11, 123, -81, -106, 43, 82, 14, - -85, -8, 41, -95, 67, 81, 18, 125, - 15, 39, -114, -88, 63, -10, 0, -11, - 5, 4, 73, -38, 13, 80, -64, 7, - 64, 56, 14, -56, 108, 3, -64, 96, - 5, -33, 81, 24, 11, -115, 26, -95, - -104, 95, -69, -95, -112, 15, 0, -128, - 40, 30, 67, -27, 1, 107, -55, 102, - -39, 97, 67, 103, 66, 79, 67, 37, - -60, 62, -95, -88, -32, 105, 72, 106, - -113, -59, -108, 54, -64, 43, 50, 9, - 86, 30, 45, 72, 101, 31, -51, -120, - 106, -8, 75, -24, 98, 111, -106, -12, - 54, 104, 54, 47, 87, -115, -61, -106, - 64, -47, 13, -80, 10, -116, -122, 39, - -3, 118, -7, 0, 0, 0, 0, 42, - -13, -118, 27, 96, 9, 27, -20, 71, - -8, -96, -50, 61, 111, 87, 102, -83, - -93, -54, 47, -37, 51, -113, 27, 122, - 98, -52, -91, -75, 1, 53, -96, 8, - 97, -120, 54, -44, 55, -1, -10, 105, - -108, -84, -4, -101, -64, 67, 41, -4, - 105, 67, 117, -60, 92, 67, 115, -4, - -65, 124, -125, 90, 64, 118, -85, 97, - 67, 39, 126, 96, 67, 78, 80, 65, - -15, 12, -57, 61, 94, 67, 50, 3, - -93, 33, -107, -2, -44, 16, 91, -34, - -115, -88, 109, 24, 75, -120, 109, -113, - -108, 20, 49, 52, 59, 122, 25, 51, - -29, 23, -85, -39, 33, -50, -28, 104, - -122, -16, 2, 0, -128, 90, 67, 20, - 1, -93, 124, -122, 31, 91, 113, -59, - 13, -55, -7, 121, 12, -57, 10, -10, - -122, 120, 0, 1, -8, 8, -56, 33, - -49, -59, 94, -78, -45, -85, 6, -33, - 105, -55, -121, -77, 99, -113, 91, 105, - -2, 77, -37, 70, -118, -2, 52, 102, - -122, -45, -120, -66, -122, 25, -7, 65, - 65, 19, 67, -69, 33, -92, 1, 0, - 0, 23, 16, -37, 31, 40, 113, -90, - 120, 118, -84, -48, -55, -17, -37, 16, - -59, 62, -88, 28, -126, 21, 70, 1, - -108, 3, 80, 1, -96, 45, 107, -115, - 124, 58, -60, 102, -128, 0, 7, 64, - 27, -60, 125, -107, 127, 42, -40, -83, - 57, -15, -71, 1, -32, -50, -60, 42, - 123, 106, 60, -16, -32, -66, 85, 26, - -14, -31, 82, -20, -49, -128, -120, 94, - -64, 0, -25, 50, 85, 26, -52, -80, - 23, -21, 7, -120, 1, 118, 53, -55, - 75, -83, -96, 2, 24, -16, 0, 0, - 0, 4, 18, -77, 92, -101, -64, 8, - 84, 72, -22, -33, 85, -126, -42, -69, - -41, -79, -49, -69, 126, -128, 5, 0, - -1, -128, 125, 54, 0, -53, 47, 110, - 91, -59, 64, 13, 119, 115, -59, 63, - 93, -28, -6, -23, -61, -128, 1, 40, - 0, 0, 80, 75, 64, -18, -33, -123, - -2, -117, -74, -116, 26, -106, -80, 6, - 91, -70, 21, -23, -44, 0, -121, 12, - 7, 64, 0, 5, 38, -73, 118, -79, - -114, 104, 118, 0, -5, 87, 2, 85, - -46, 94, 115, -112, -117, 72, 124, 100, - -32, 106, 106, 81, -98, -121, -100, 116, - 76, -121, -23, -112, 40, 43, 40, -92, - 57, -96, 4, 121, 47, -29, -65, 81, - -26, 2, -128, 16, 6, 62, -85, 86, - -67, -8, 74, -35, -77, -62, -5, -81, - -106, 56, 0, 0, 31, 1, -91, -48, - 0, 67, 27, -62, 100, 43, 80, 68, - 61, -48, 1, 24, 0, 45, 1, -16, - 7, 18, 1, -23, -88, -84, 127, -6, - 11, 37, -98, 14, 57, 107, -61, -52, - -114, -128, 1, 91, -92, -95, -82, -128, - 16, -64, 1, 108, 0, -128, 55, 111, - -101, 96, -80, 61, -90, -94, 122, 49, - -21, 14, -2, -73, 99, 115, 81, 11, - 90, -118, 74, -99, 30, -9, -9, 67, - -57, 80, 42, 79, -14, 3, -86, -91, - -94, 51, -1, 83, 64, -118, 50, 53, - -59, 74, -89, 126, -23, 32, 13, 57, - 40, -123, 76, 97, -41, 91, -115, -23, - 107, -83, -37, 81, 67, 27, -73, -113, - 58, 22, -80, 4, 88, 64, 109, -10, - -64, 14, -80, -19, -43, 15, 62, -80, - -116, -14, -121, -11, 110, -25, 38, -109, - 3, 55, -103, 85, -65, -79, -117, -37, - 66, -102, 97, -70, -123, 43, 104, -128, - 21, 100, 40, 71, -55, -125, 104, 33, - -43, 82, 84, -102, 7, -3, -32, -114, - 20, -37, -27, -4, -107, 116, 67, 3, - -7, -91, -9, -99, -25, -44, -71, -57, - 4, 5, -75, 74, 0, 1, 107, -120, - -19, -92, 21, -66, 100, 8, -124, -6, - -79, 18, -44, -27, 12, 12, -112, -32, - -108, -68, 99, 123, -89, -39, 98, -53, - 51, -10, -128, 10, 42, -48, -9, -108, - -34, -100, -7, -52, -123, -39, 100, -46, - 85, 45, 16, 0, 12, 97, -58, -25, - 32, 111, -32, 0, -48, 0, -48, 10, - -73, 86, -18, 104, 114, -102, -80, 32, - 0, 88, 0, 64, 7, -25, -127, 66, - -6, -75, 74, 73, 78, -51, -125, 4, - -103, -88, 1, 78, -62, 54, 84, 90, - -14, 32, 35, -18, -40, -67, -44, 106, - -102, -128, 2, 107, -24, -124, -64, 66, - -51, 15, 100, -87, 44, 0, 70, 125, - -120, 95, 33, 50, 123, 70, 83, 0, - -115, 122, 22, -102, 35, 92, -112, 94, - -87, -121, -66, -64, -105, -65, -15, 17, - -22, 122, -80, 33, 94, -5, 5, 75, - -35, 114, 65, 99, 99, 94, 28, -52, - -3, -77, 42, -16, -24, -87, 84, 12, - -76, 76, 90, 110, -120, 0, 86, -36, - -95, 85, 0, -122, -62, -125, 97, 67, - 13, 0, -127, -78, -19, 63, -3, -46, - 80, 0, -84, 0, 10, -128, 46, 3, - 40, 4, 55, 114, -8, -38, 16, -59, - -12, 84, -90, -35, -83, 111, 64, 21, - -128, 3, 96, 30, 3, -112, 12, -111, - -120, 13, -24, 14, -32, 5, 29, 16, - 1, 12, 123, -6, -60, 86, 82, 25, - 59, -56, 11, -74, -16, 4, 0, -104, - -91, 0, 16, -53, 59, 29, 101, 43, - 119, -41, -23, -100, 6, 74, 81, 56, - 10, -6, 32, 1, 91, -27, -31, -124, - 5, -40, -22, -90, 46, -78, -128, 5, - 99, -64, 0, 0, 0, 19, -128, 33, - -106, 5, -44, -26, -57, -97, -113, -64, - 20, -93, 72, 2, 55, 48, 8, 111, - 80, 31, -32, 31, -16, 12, -30, -26, - -88, 9, -69, -128, 8, 98, 3, 64, - 120, 5, -67, 118, -12, 59, -118, -122, - -115, 122, -6, -122, -125, -95, -77, -95, - -105, 73, -28, -6, -122, -86, -127, 51, - -95, -105, 125, -22, -6, -122, -38, -31, - -65, 84, -86, -14, 95, 71, -97, 67, - 111, -66, -81, -47, -124, 92, 22, 1, - -43, 16, 1, 13, 97, -18, -63, -82, - -46, -120, 106, -110, -122, -17, 120, 97, - -87, 82, 67, -99, 75, -48, -33, 95, - 79, 2, -32, -32, -104, 13, 41, 0, - 8, 103, 79, -105, -115, 112, 112, 70, - 3, 21, 84, 51, -101, -53, 18, 8, - 14, -62, -83, 72, 100, 72, 72, -24, - 102, 71, -73, -117, 17, 30, -65, -32, - -40, 36, 4, 46, -51, 76, 44, 96, - -44, 0, -57, 102, 54, -31, -2, 80, - 0, -71, 98, -72, 80, 46, 82, -64, - 8, 96, -80, 0, 32, 0, 16, 8, - 55, 106, -98, -121, -19, 64, 11, -108, - 36, 103, 8, -88, 8, 0, 46, -116, - -101, 104, -128, 50, -54, 112, 93, 73, - 64, 0, 115, -128, 0, 3, -32, 14, - -100, 25, 96, 0, -66, 0, 0, 22, - 49, -64, 12, -76, -124, 35, -95, 56, - 1, -10, 0, 11, -32, 122, 1, 98, - 20, 114, -38, 16, -18, -124, -32, 7, - -40, 0, 47, -128, 0, 5, 104, 97, - -53, 8, 127, -70, 35, -128, 29, -32, - 0, -66, 0, 0, 20, 7, -17, 104, - 124, -70, 47, -34, 0, 11, -32, 0, - 1, 93, 124, -78, -121, -29, -93, 56, - 0, 22, 0, 11, -32, 0, 1, 82, - -58, 122, -38, 31, 110, -101, 125, -128, - 2, -8, 0, 0, 86, -26, 28, -74, - -121, -29, -92, 56, 1, -106, 0, 11, - -32, 0, 1, -2, -104, 0, 35, 53, - -127, 65, -82, 34, 38, -51, -74, -34, - 0, -71, 123, 66, 111, -63, -24, 16, - 1, 12, 0, 17, 0, 0, 21, 5, - -48, -125, 109, 48, 7, -118, -125, 83, - -68, 10, 115, -112, 1, 0, -128, 18, - -47, -89, 61, 121, -86, 77, 58, 16, - 109, 92, 65, 86, 127, -82, -100, 31, - 96, 0, 64, 0, 0, 30, -7, 68, - -116, 32, 0, 3, -32, 28, 72, 13, - -110, -125, 43, 0, 17, 107, -64, 23, - -92, 0, 46, -64, 1, -96, 13, 1, - 91, -112, 1, 12, 5, -2, -66, -122, - -110, -104, 81, 19, 30, -2, 60, 2, - 18, 96, 48, -112, 20, 51, 16, 38, - -51, 126, 67, 56, 33, -82, -78, -87, - -117, -10, 10, -52, -86, -18, -97, 120, - 62, -47, 67, -9, -86, 81, -17, 0, - 8, 0, 24, 5, -127, -5, -38, 0, - 47, 67, -9, -128, 4, 0, 0, 2, - -80, -1, 97, 7, -9, -82, 81, -53, - 0, 8, 0, 0, 5, 4, 112, 3, - -19, -96, -14, -11, -56, 57, 96, 1, - 0, 0, 0, -82, -116, 0, 125, -108, - 31, 30, -71, 71, -68, 0, 32, 0, - 0, 21, 7, -53, 104, 61, -67, 35, - 0, 5, 96, 1, 0, 0, 0, -84, - 3, 45, -96, -8, -11, 12, 0, 21, - -128, 4, 0, 0, 3, -8, 15, -77, - -64, -108, 16, -30, 14, 61, 105, -40, - -81, 27, 124, -75, 64, 40, 6, -11, - -54, 32, -32, 1, 0, 0, 0, -111, - -63, -106, -116, -125, 115, 5, 0, 33, - 76, 0, 1, -64, 61, -96, 25, 26, - -116, 24, 37, 66, -113, -55, 42, 77, - 19, -35, -4, -73, -111, -110, -14, 12, - -23, 12, 0, 101, -91, 0, 0, 1, - 0, 104, 70, 0, 43, -39, -99, -46, - 78, 45, -5, 58, -30, 2, -127, 27, - 44, -22, 80, -118, 53, -24, 58, -3, - -17, -76, -90, 95, 18, 55, -16, -39, - -4, -121, -55, -25, -11, -38, 85, 68, - 60, -76, 15, -5, 124, 40, 0, 86, - -14, 12, -2, 3, 124, -16, 63, 0, - -69, -91, 102, 2, -128, 16, 6, 48, - 31, 43, 94, -4, 50, 42, 14, 90, - -126, -95, 107, -18, -96, 0, -102, 71, - -11, -68, 16, -37, 11, -59, 122, -2, - 64, 1, -64, 59, 1, -38, 24, 80, - -48, 5, 64, 0, 15, -46, 104, -82, - -57, -19, -4, -115, 115, 112, 92, 20, - -28, -3, -127, 64, 125, -64, 127, -64, - 56, -125, -113, 74, 118, 43, 78, -35, - 107, 47, -18, 91, -121, -111, 0, 0, - 0, 126, -128, 63, -23, 31, 102, -65, - 32, 53, -30, -104, 102, 86, -16, -16, - 8, 86, 2, -20, 31, 24, -11, -56, - 1, 78, 0, 16, -127, -104, 10, 18, - 102, -51, 8, 122, 0, 86, 0, 19, - 1, -120, 10, -32, 34, -55, 65, 111, - 64, 16, 119, -128, 5, -128, 98, 3, - -82, -103, 100, -64, 0, 7, -80, 31, - -111, -128, 11, -108, 89, 16, 106, -107, - -56, 1, 118, -75, -10, 121, -92, 0, - -69, 121, 5, 32, -79, 43, -104, 2, - -20, 123, -2, -51, 72, 1, 118, -6, - 40, -5, -105, 48, 2, 24, 56, 0, - 4, 0, 4, 2, -15, 90, 90, 93, - -4, 1, -117, 86, -87, -89, 67, 0, - 86, -98, -94, 121, 1, -66, -34, 0, - -64, 18, 10, 86, -40, 21, 115, 0, - 70, -28, 1, -22, 1, -14, 0, -126, - 33, 12, -87, 38, -3, -30, -104, -28, - 124, 89, -63, -58, 77, -76, -79, -89, - 98, 8, -64, 7, 0, 56, 11, -62, - 59, -45, 18, 46, -62, -51, -128, 14, - 0, 96, 25, -128, -33, 93, 64, 45, - -35, -101, 120, 31, 0, -96, 58, -128, - -122, -120, 7, 0, 0, 1, -39, 12, - 0, 124, 2, 0, -80, 70, -36, -127, - 119, 16, -122, -16, 62, 0, -128, 126, - -19, 54, 70, 121, 108, 26, 17, -117, - 107, -52, -30, 35, -36, 19, 93, -128, - 28, 102, -39, -122, -61, 118, 1, 12, - 0, 28, 10, -128, -13, 114, -33, 14, - 66, -109, 7, 48, 2, 24, -24, 3, - -52, -92, 110, 123, 124, -96, 8, 67, - 40, 8, -87, -111, -117, -71, -98, -124, - 73, -128, 3, 96, 30, 2, 105, 8, - 32, 64, -74, 41, 48, -6, -67, -105, - -56, 43, 106, -53, -75, 0, 67, 113, - 2, 121, -89, 114, 4, -128, 57, -60, - 80, -50, 56, -107, 16, -46, -64, 45, - 72, 96, 88, 107, 8, 105, -64, 55, - -31, -112, 108, -89, -76, -59, 0, 107, - -124, 42, 26, -53, -21, -116, 92, 14, - -100, -107, -109, -62, 94, 64, 33, -75, - -128, -121, -12, -102, -122, 17, -119, 101, - 67, 88, 27, -27, 41, 13, -76, 22, - -20, -126, 0, 0, 0, 0, 71, 67, - 113, -66, 51, -95, -92, -122, 12, -94, - -126, 33, -13, 103, 35, 46, -1, -47, - 40, 68, -101, 48, 41, -100, -119, -79, - 47, 60, 83, 64, 67, 101, -122, 51, - -103, -119, 107, -62, -102, 1, 12, 8, - 22, -2, 42, -73, 77, 6, 91, 32, - 2, 49, -73, -89, -63, 8, 98, -45, - -21, -16, 10, 50, 41, -87, 74, -76, - 53, 91, 75, -43, -40, 0, 42, 1, - -96, 36, -46, 0, 111, -85, 57, 94, - 93, 119, -104, 116, 17, -104, -65, 84, - 97, 100, -102, 37, 15, -68, 126, 73, - 47, -111, 115, -53, -46, -72, 0, 102, - -60, -123, 119, 1, -54, 64, 4, 2, - 0, 118, 71, 92, 0, 12, 12, -128, - -34, -55, -65, 74, -85, -111, 78, -125, - -3, 127, -100, -111, -80, -128, 10, -108, - -56, 16, 1, -109, -24, 21, -44, -115, - -9, -32, -16, 35, 37, 14, -22, -69, - -106, -15, 64, 3, 45, -22, 33, 86, - -64, 32, -41, 32, 117, 52, 62, -27, - -101, -118, -74, -125, -66, 56, -13, 93, - 113, -56, 21, 79, -76, -128, 0, -103, - 122, 126, -48, 20, 93, -90, 47, 42, - -40, 8, 17, -83, -94, -33, 8, 93, - -113, 10, 79, 62, -128, 23, 109, -25, - -8, 1, 33, 90, 0, 33, -118, 5, - -44, -54, -64, 127, -113, 64, 16, -64, - 2, 80, 15, 1, -5, -27, -38, -16, - -83, 41, -118, 15, -37, -57, -79, -94, - -51, 50, -59, -47, 20, -59, 64, 15, - -75, 107, -53, -91, -96, -9, -128, 1, - 48, 0, 0, 80, 94, -19, 92, -10, - -127, -20, 0, 14, 82, 125, 83, -24, - -121, 56, -124, 61, -67, -88, -73, 64, - 120, 0, 0, 84, 0, -61, -19, 99, - 32, -33, -26, -76, -26, -17, -51, -122, - 38, -111, -84, -36, 12, 93, -77, -66, - -85, -86, 0, 107, -68, 6, -36, 92, - -74, 30, 102, 71, 64, 3, 93, 78, - -80, -75, -7, 5, 93, -6, -57, -74, - -79, 79, -109, 78, 22, 117, 108, -111, - 122, 52, 96, -49, 38, -117, -125, 123, - 10, 114, 121, 85, 96, -48, 0, -96, - 31, 16, 13, 39, -42, 113, 50, -109, - -9, 90, 59, 93, 15, -8, -79, 116, - -14, 77, -128, 29, 104, -19, -42, -97, - -94, -62, 6, -33, 44, 0, -5, 108, - -3, 91, -19, 7, -83, -27, 81, 49, - 24, -12, -109, 123, -51, 60, 39, 111, - -50, 23, -78, 53, -10, 14, -80, -93, - 122, -87, 33, -78, -30, 59, -95, -96, - 10, -128, 0, 30, 61, 92, -112, -53, - -25, 104, -76, 24, -79, 9, 37, 32, - 22, 4, -57, 1, 109, 65, 7, 26, - -98, 59, 106, -101, 103, -64, -116, -52, - 11, 29, 23, 106, 107, 106, -51, -15, - 120, -5, -20, 1, 54, -16, -47, -77, - 0, 38, -81, -54, 18, -8, 32, -122, - 69, 70, 117, 23, 44, 0, 0, 30, - 0, -68, 0, 109, -128, -45, -37, 80, - 48, 5, 118, -25, -85, 50, 110, 108, - -111, 51, -47, 23, 16, -96, 45, 99, - -51, -110, -12, 96, -63, -42, 20, 120, - 89, 86, 41, 120, 32, 5, 41, -5, - 0, 13, -99, 104, -100, -128, 10, -80, - 16, 0, 104, 15, -104, 5, 106, -85, - 125, 9, 57, -1, 91, -16, 0, 44, - 7, -32, 3, -10, 55, 40, -1, 80, - 65, -126, -64, 66, -20, -37, 66, -59, - 95, 64, 4, 55, -20, 26, 13, -37, - -126, 125, -106, -48, 1, 13, -48, -65, - -90, -126, -79, -123, 21, 32, 8, 108, - 95, -91, -111, 115, 44, -101, -112, 1, - 82, 16, 0, 103, 1, -51, 0, -112, - -14, 103, -112, -122, 98, 46, -43, -71, - 41, 126, -76, 0, -71, 79, 2, 127, - 108, -2, -128, 23, 109, 93, -111, -74, - 90, 0, 33, -96, 63, -94, -107, -86, - 70, 92, -64, 21, -67, 64, 0, -128, - 127, -64, 51, 0, 23, 126, -40, 69, - 68, 0, -101, 71, -5, -84, -127, -82, - 104, -123, 85, 80, -55, -81, 47, -88, - 109, -46, 27, -11, 74, -83, 49, -35, - 116, 113, 112, 0, 86, 0, -72, 15, - 32, 4, -37, 124, 11, 126, -116, -32, - 11, -113, 126, 40, -92, 0, 33, -110, - -2, 87, 53, -51, 64, -81, -51, 74, - -36, 121, -4, 102, -15, 117, -19, 4, - 93, -32, 4, 49, 0, 96, 60, 3, - -23, 26, 19, -124, -92, 33, 13, -94, - -16, -6, -122, -83, -127, 54, 33, -118, - -99, -79, 32, -107, 112, 30, -8, -122, - -125, -66, -77, -95, -91, 122, 16, -114, - -122, 92, 123, 113, 65, 69, 125, 125, - 67, 66, 48, -43, 80, -53, 78, -49, - 29, 37, 10, 121, -59, 36, -61, -114, - -109, -28, 103, -92, 0, 46, -57, -115, - 72, 127, -12, 0, -55, 101, -48, -119, - -117, 22, -64, 1, 25, -110, 21, -60, - 66, 26, 43, -21, -59, -55, -62, -58, - -21, 46, -96, -128, 25, 101, 0, 0, - 1, -64, 31, 9, 64, 1, -75, -73, - -55, 82, 0, -89, 94, 13, -76, -56, - 74, -1, 83, 115, 72, -21, -104, 43, - 56, -75, -32, -10, 74, -11, -66, 126, - 11, 72, 113, -40, 29, -51, -12, -127, - 6, -85, -116, -85, 78, 30, -65, -44, - -111, -1, -95, -111, 62, -33, 68, -55, - -29, -91, 112, -93, 37, 1, 72, -111, - -114, 0, 125, -96, -32, -38, 9, 70, - 76, -102, 5, -28, -116, -109, -53, -58, - -7, -37, -7, 0, 10, 114, 100, -105, - -47, -53, 59, 46, -37, -23, 64, 2, - -73, 112, 103, -16, 4, 102, -18, 104, - 21, -40, 70, -70, 0, 88, 0, 1, - -113, -123, 88, -89, -55, -112, -84, -45, - -107, -82, 28, -128, 40, 105, 24, 55, - 61, -73, -40, 15, -72, 0, 8, 4, - 47, -27, 88, -18, -3, 74, 50, 104, - -111, 31, -27, -4, -115, 115, 111, -92, - 22, -12, -10, -128, 3, -128, 10, 3, - 78, -56, 97, 127, 104, 8, 105, 24, - 53, -2, -43, 119, -21, -12, -13, 104, - -95, 71, -19, -4, 13, -13, -57, -20, - 16, -16, -36, -84, 95, 88, 52, -5, - 8, 1, 78, 97, -68, -67, 120, -40, - 0, 66, 1, -96, 40, 64, 2, -20, - -2, -57, -88, 2, -84, 0, 38, 0, - -16, 21, -2, 60, -102, -38, -12, -115, - 88, 0, 88, 1, -32, 43, 95, 57, - -9, -115, 32, -3, 113, -28, -45, 31, - -62, 57, 7, -5, -30, -105, 106, 102, - 59, -44, 32, 7, 56, 0, 52, 6, - 96, 61, 3, 54, -24, 0, 1, -56, - 11, 0, 92, -70, 40, 85, 113, 0, - 16, -42, -79, 73, -73, 106, 66, 21, - 104, 64, 11, -79, -20, 11, 14, 32, - 1, 88, 119, -60, 14, 96, 16, -34, - 64, 0, 32, 63, -32, 23, -48, -35, - 82, -20, -92, 110, -102, -15, 52, 8, - 67, 24, 17, 83, 35, 2, 58, -84, - -120, -41, 50, -55, -65, 123, 39, -42, - 6, -71, 71, 19, 1, 126, 60, 2, - 4, 98, 87, 124, 19, 60, -112, -41, - 111, 63, -96, 9, -119, -109, 47, 24, - 113, -108, -126, 55, 2, -66, 88, -60, - 120, -127, -24, 18, -64, 78, 40, 99, - 32, -21, 56, -5, -66, 100, -80, 19, - -116, -37, 77, -75, -18, -64, 33, -128, - 3, -128, -80, 25, -4, 71, -122, 61, - 103, 39, 20, 54, -81, -54, -99, -112, - -64, 7, 0, -56, 11, -63, 106, -71, - -25, 100, -103, 51, 0, 28, 3, 64, - 51, 0, -33, 90, -44, 89, -39, -101, - 8, 31, 3, 96, 44, 0, -122, 101, - 9, 114, 67, 0, 0, -1, -64, -1, - 0, 88, 35, 82, 67, -71, 8, 43, - 0, 64, -1, -64, -1, -128, 126, 1, - -110, 101, 95, -6, -37, 113, 0, 9, - -79, 19, -26, 112, 41, -51, -83, 18, - 113, -108, 52, -113, -25, -44, 54, 33, - 13, -59, 13, 5, -11, 97, 12, -58, - 8, -50, -122, 90, -17, -102, -46, 26, - -82, 9, -80, -116, 83, -23, -56, 69, - 73, 84, 0, -28, 7, -12, 3, 47, - 17, -68, 43, -26, -62, 32, 92, 25, - -15, -43, 24, 1, 13, -98, -18, -64, - -122, -51, 120, 98, -102, 24, 71, -35, - -127, 5, 90, 48, -42, -92, 49, -36, - 36, 116, 52, -29, -21, -11, 72, -59, - 21, -22, 106, -14, -73, -16, 36, 16, - 19, 105, 110, -105, -16, 41, 71, 54, - 80, -38, 109, 73, -110, -63, 21, 72, - 35, 38, 59, 49, 8, -109, 24, 88, - 29, 72, -125, 50, 91, -93, 16, 9, - -77, -53, 126, 20, -64, 33, 2, 58, - -90, 8, -109, 102, 61, 41, -112, 70, - 65, -9, 75, 17, 38, 22, -12, 83, - 35, 125, -4, -14, -62, -95, -106, -103, - -66, -82, 70, -60, -16, 115, 17, 30, - -4, 0, 11, 1, -8, 0, -126, -120, - 75, 65, -47, -42, -58, 126, -55, -128, - 0, 15, 96, 52, 115, 14, -37, 79, - -70, 71, 10, 60, -102, 74, 34, 124, - -25, 10, 5, 112, -24, -46, -68, 105, - 23, -34, -3, 4, 95, -20, 69, -37, - 50, -98, 8, 17, -113, 97, 20, 72, - 33, -107, 88, -45, -56, -49, -80, -85, - -30, 36, 85, -77, 9, 68, 33, -94, - -67, -97, 72, -52, 35, -108, -95, 23, - 96, 40, 22, 40, 64, 12, 87, -122, - -9, 27, -23, 2, 8, -73, -6, -26, - -112, 22, 4, -44, 116, 85, 2, -116, - -109, -24, -101, -34, 56, 1, -74, 16, - 0, 1, -16, 14, 61, 89, 56, 51, - -21, -107, -101, -72, -17, 64, 46, -64, - 2, -80, 13, 1, -37, 16, 1, 4, - 0, 0, 0, 0, -63, 118, 101, -103, - 91, -60, 32, 4, -40, 52, 58, 119, - 64, 32, 0, -52, 0, 0, 0, -120 - } ; - - private static final CompressedGeometryHeader cgHeader ; - - static { - cgHeader = new CompressedGeometryHeader() ; - cgHeader.majorVersionNumber = 1 ; - cgHeader.minorVersionNumber = 0 ; - cgHeader.minorMinorVersionNumber = 1 ; - cgHeader.bufferType = CompressedGeometryHeader.TRIANGLE_BUFFER ; - cgHeader.bufferDataPresent = CompressedGeometryHeader.NORMAL_IN_BUFFER ; - cgHeader.start = 0 ; - cgHeader.size = cgData.length ; - } -} diff --git a/src/PickTest/IcosahedronITSA.java b/src/PickTest/IcosahedronITSA.java deleted file mode 100644 index e25178f..0000000 --- a/src/PickTest/IcosahedronITSA.java +++ /dev/null @@ -1,178 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class IcosahedronITSA extends IndexedTriangleStripArray { - - private static final int[] sVertCnt = { - 3, 11, 5, 4, 5, 4 - }; - - IcosahedronITSA() { - super(12, GeometryArray.COORDINATES | GeometryArray.COLOR_3, 32, sVertCnt); - - Point3f verts[] = new Point3f[12]; - Color3f colors[] = new Color3f[12]; - - verts[0] = new Point3f(0.0f, 1.4f, 0.8652f); - verts[1] = new Point3f(0.0f, 1.4f, -0.8652f); - verts[2] = new Point3f(1.4f, 0.8652f, 0.0f); - verts[3] = new Point3f(1.4f, -0.8652f, 0.0f); - verts[4] = new Point3f(0.0f, -1.4f, -0.8652f); - verts[5] = new Point3f(0.0f, -1.4f, 0.8652f); - verts[6] = new Point3f(0.8652f, 0.0f, 1.4f); - verts[7] = new Point3f(-0.8652f, 0.0f, 1.4f); - verts[8] = new Point3f(0.8652f, 0.0f, -1.4f); - verts[9] = new Point3f(-0.8652f, 0.0f, -1.4f); - verts[10] = new Point3f(-1.4f, 0.8652f, 0.0f); - verts[11] = new Point3f(-1.4f, -0.8652f, 0.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(0.0f, 1.0f, 1.0f); - colors[5] = new Color3f(1.0f, 0.0f, 1.0f); - colors[6] = new Color3f(0.0f, 0.5f, 0.0f); - colors[7] = new Color3f(0.0f, 0.0f, 0.5f); - colors[8] = new Color3f(0.5f, 0.5f, 0.0f); - colors[9] = new Color3f(0.0f, 0.5f, 0.5f); - colors[10] = new Color3f(0.5f, 0.0f, 0.5f); - colors[11] = new Color3f(0.5f, 0.5f, 0.5f); - - int pntsIndex[] = new int[32]; - int clrsIndex[] = new int[32]; - - pntsIndex[0] = 4; - clrsIndex[0] = 4; - pntsIndex[1] = 5; - clrsIndex[1] = 5; - pntsIndex[2] = 11; - clrsIndex[2] = 11; - - pntsIndex[3] = 11; - clrsIndex[3] = 11; - pntsIndex[4] = 5; - clrsIndex[4] = 5; - pntsIndex[5] = 7; - clrsIndex[5] = 7; - - pntsIndex[6] = 6; - clrsIndex[6] = 6; - - pntsIndex[7] = 0; - clrsIndex[7] = 0; - - pntsIndex[8] = 2; - clrsIndex[8] = 2; - - pntsIndex[9] = 1; - clrsIndex[9] = 1; - - pntsIndex[10] = 8; - clrsIndex[10] = 8; - - pntsIndex[11] = 9; - clrsIndex[11] = 9; - - pntsIndex[12] = 4; - clrsIndex[12] = 4; - - pntsIndex[13] = 11; - clrsIndex[13] = 11; - - pntsIndex[14] = 2; - clrsIndex[14] = 2; - pntsIndex[15] = 6; - clrsIndex[15] = 6; - pntsIndex[16] = 3; - clrsIndex[16] = 3; - - pntsIndex[17] = 5; - clrsIndex[17] = 5; - - pntsIndex[18] = 4; - clrsIndex[18] = 4; - - pntsIndex[19] = 4; - clrsIndex[19] = 4; - pntsIndex[20] = 8; - clrsIndex[20] = 8; - pntsIndex[21] = 3; - clrsIndex[21] = 3; - - pntsIndex[22] = 2; - clrsIndex[22] = 2; - - pntsIndex[23] = 0; - clrsIndex[23] = 0; - pntsIndex[24] = 1; - clrsIndex[24] = 1; - pntsIndex[25] = 10; - clrsIndex[25] = 10; - - pntsIndex[26] = 9; - clrsIndex[26] = 9; - - pntsIndex[27] = 11; - clrsIndex[27] = 11; - - pntsIndex[28] = 0; - clrsIndex[28] = 0; - pntsIndex[29] = 10; - clrsIndex[29] = 10; - pntsIndex[30] = 7; - clrsIndex[30] = 7; - - pntsIndex[31] = 11; - clrsIndex[31] = 11; - - setCoordinates(0, verts); - setCoordinateIndices(0, pntsIndex); - setColors(0, colors); - setColorIndices(0, clrsIndex); - } -} diff --git a/src/PickTest/IcosahedronTSA.java b/src/PickTest/IcosahedronTSA.java deleted file mode 100644 index 83fb687..0000000 --- a/src/PickTest/IcosahedronTSA.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class IcosahedronTSA extends TriangleStripArray { - private static final int[] sVertCnt = { - 3, 11, 5, 4, 5, 4 - }; - - IcosahedronTSA() { - super(32, GeometryArray.COORDINATES | GeometryArray.COLOR_3, sVertCnt); - - Point3f verts[] = new Point3f[12]; - Color3f colors[] = new Color3f[12]; - - verts[0] = new Point3f(0.0f, 1.4f, 0.8652f); - verts[1] = new Point3f(0.0f, 1.4f, -0.8652f); - verts[2] = new Point3f(1.4f, 0.8652f, 0.0f); - verts[3] = new Point3f(1.4f, -0.8652f, 0.0f); - verts[4] = new Point3f(0.0f, -1.4f, -0.8652f); - verts[5] = new Point3f(0.0f, -1.4f, 0.8652f); - verts[6] = new Point3f(0.8652f, 0.0f, 1.4f); - verts[7] = new Point3f(-0.8652f, 0.0f, 1.4f); - verts[8] = new Point3f(0.8652f, 0.0f, -1.4f); - verts[9] = new Point3f(-0.8652f, 0.0f, -1.4f); - verts[10] = new Point3f(-1.4f, 0.8652f, 0.0f); - verts[11] = new Point3f(-1.4f, -0.8652f, 0.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(0.0f, 1.0f, 1.0f); - colors[5] = new Color3f(1.0f, 0.0f, 1.0f); - colors[6] = new Color3f(0.0f, 0.5f, 0.0f); - colors[7] = new Color3f(0.0f, 0.0f, 0.5f); - colors[8] = new Color3f(0.5f, 0.5f, 0.0f); - colors[9] = new Color3f(0.0f, 0.5f, 0.5f); - colors[10] = new Color3f(0.5f, 0.0f, 0.5f); - colors[11] = new Color3f(0.5f, 0.5f, 0.5f); - - Point3f pnts[] = new Point3f[32]; - Color3f clrs[] = new Color3f[32]; - - pnts[0] = verts[4]; - clrs[0] = colors[4]; - pnts[1] = verts[5]; - clrs[1] = colors[5]; - pnts[2] = verts[11]; - clrs[2] = colors[11]; - - pnts[3] = verts[11]; - clrs[3] = colors[11]; - pnts[4] = verts[5]; - clrs[4] = colors[5]; - pnts[5] = verts[7]; - clrs[5] = colors[7]; - - pnts[6] = verts[6]; - clrs[6] = colors[6]; - - pnts[7] = verts[0]; - clrs[7] = colors[0]; - - pnts[8] = verts[2]; - clrs[8] = colors[2]; - - pnts[9] = verts[1]; - clrs[9] = colors[1]; - - pnts[10] = verts[8]; - clrs[10] = colors[8]; - - pnts[11] = verts[9]; - clrs[11] = colors[9]; - - pnts[12] = verts[4]; - clrs[12] = colors[4]; - - pnts[13] = verts[11]; - clrs[13] = colors[11]; - - pnts[14] = verts[2]; - clrs[14] = colors[2]; - pnts[15] = verts[6]; - clrs[15] = colors[6]; - pnts[16] = verts[3]; - clrs[16] = colors[3]; - - pnts[17] = verts[5]; - clrs[17] = colors[5]; - - pnts[18] = verts[4]; - clrs[18] = colors[4]; - - pnts[19] = verts[4]; - clrs[19] = colors[4]; - pnts[20] = verts[8]; - clrs[20] = colors[8]; - pnts[21] = verts[3]; - clrs[21] = colors[3]; - - pnts[22] = verts[2]; - clrs[22] = colors[2]; - - pnts[23] = verts[0]; - clrs[23] = colors[0]; - pnts[24] = verts[1]; - clrs[24] = colors[1]; - pnts[25] = verts[10]; - clrs[25] = colors[10]; - - pnts[26] = verts[9]; - clrs[26] = colors[9]; - - pnts[27] = verts[11]; - clrs[27] = colors[11]; - - pnts[28] = verts[0]; - clrs[28] = colors[0]; - pnts[29] = verts[10]; - clrs[29] = colors[10]; - pnts[30] = verts[7]; - clrs[30] = colors[7]; - - pnts[31] = verts[11]; - clrs[31] = colors[11]; - - setCoordinates(0, pnts); - setColors(0, clrs); - } -} diff --git a/src/PickTest/IntersectInfoBehavior.java b/src/PickTest/IntersectInfoBehavior.java deleted file mode 100644 index e0cdb2c..0000000 --- a/src/PickTest/IntersectInfoBehavior.java +++ /dev/null @@ -1,251 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.*; -import java.awt.event.*; -import java.util.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import com.sun.j3d.utils.pickfast.*; -import com.sun.j3d.utils.geometry.*; - -/** - * Class: IntersectInfoBehavior - * - * Description: Used to respond to mouse pick and drag events - * in the 3D window. Displays information about the pick. - * - * Version: 1.0 - * - */ -public class IntersectInfoBehavior extends Behavior { - - float size; - PickCanvas pickCanvas; - PickInfo[] pickInfoArr; - Appearance oldlook, redlookwf, redlook, greenlook, bluelook; - Node oldNode = null; - GeometryArray oldGeom = null; - Color3f redColor = new Color3f (1.0f, 0.0f, 0.0f); - TransformGroup[] sphTrans = new TransformGroup [6]; - Sphere[] sph = new Sphere [6]; - Transform3D spht3 = new Transform3D(); - - public IntersectInfoBehavior(Canvas3D canvas3D, BranchGroup branchGroup, - float size) { - pickCanvas = new PickCanvas(canvas3D, branchGroup); - pickCanvas.setTolerance(5.0f); - pickCanvas.setMode(PickInfo.PICK_GEOMETRY); - pickCanvas.setFlags(PickInfo.LOCAL_TO_VWORLD | PickInfo.CLOSEST_GEOM_INFO); - this.size = size; - // Create an Appearance. - redlook = new Appearance(); - Color3f objColor = new Color3f(0.5f, 0.0f, 0.0f); - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - redlook.setMaterial(new Material(objColor, black, objColor, white, 50.0f)); - redlook.setCapability (Appearance.ALLOW_MATERIAL_WRITE); - - redlookwf = new Appearance (); - redlookwf.setMaterial(new Material(objColor, black, objColor, white, 50.0f)); - PolygonAttributes pa = new PolygonAttributes(); - pa.setPolygonMode(pa.POLYGON_LINE); - pa.setCullFace(pa.CULL_NONE); - redlookwf.setPolygonAttributes(pa); - - oldlook = new Appearance(); - objColor = new Color3f(1.0f, 1.0f, 1.0f); - oldlook.setMaterial(new Material(objColor, black, objColor, white, 50.0f)); - - greenlook = new Appearance(); - objColor = new Color3f(0.0f, 0.8f, 0.0f); - greenlook.setMaterial(new Material(objColor, black, objColor, white, 50.0f)); - bluelook = new Appearance(); - objColor = new Color3f(0.0f, 0.0f, 0.8f); - bluelook.setMaterial(new Material(objColor, black, objColor, white, 50.0f)); - for (int i=0;i<6;i++) { - switch (i) { - case 0: - sph[i] = new Sphere(size*1.15f, redlook); - break; - case 1: - sph[i] = new Sphere(size*1.1f, greenlook); - break; - default: - sph[i] = new Sphere(size, bluelook); - break; - } - sph[i].setPickable (false); - sphTrans[i] = new TransformGroup (); - sphTrans[i].setCapability (TransformGroup.ALLOW_TRANSFORM_READ); - sphTrans[i].setCapability (TransformGroup.ALLOW_TRANSFORM_WRITE); - - // Add sphere, transform - branchGroup.addChild (sphTrans[i]); - sphTrans[i].addChild (sph[i]); - } - } - - public void initialize() { - wakeupOn (new WakeupOnAWTEvent(MouseEvent.MOUSE_PRESSED)); - } - - public void processStimulus (Enumeration criteria) { - WakeupCriterion wakeup; - AWTEvent[] event; - int eventId; - - while (criteria.hasMoreElements()) { - wakeup = (WakeupCriterion) criteria.nextElement(); - if (wakeup instanceof WakeupOnAWTEvent) { - event = ((WakeupOnAWTEvent)wakeup).getAWTEvent(); - for (int i=0; i<event.length; i++) { - eventId = event[i].getID(); - if (eventId == MouseEvent.MOUSE_PRESSED) { - int x = ((MouseEvent)event[i]).getX(); - int y = ((MouseEvent)event[i]).getY(); - pickCanvas.setShapeLocation(x, y); - - pickInfoArr = pickCanvas.pickAllSorted(); - // Use this to do picking benchmarks - /* - long start = System.currentTimeMillis(); - for (int l=0;l<2;l++) { - if (l == 0) System.out.print ("BOUNDS: "); - if (l == 1) System.out.print ("GEOMETRY: "); - - for (int k=0;k<1000;k++) { - if (l == 0) { - pickCanvas.setMode(PickTool.BOUNDS); - pickResult = pickCanvas.pickAllSorted(); - } - if (l == 1) { - pickCanvas.setMode(PickTool.GEOMETRY); - pickResult = pickCanvas.pickAllSorted(); - } - } - long delta = System.currentTimeMillis() - start; - System.out.println ("\t"+delta+" ms / 1000 picks"); - } - */ - if (pickInfoArr != null) { - - // Get closest intersection results - Transform3D l2vw = pickInfoArr[0].getLocalToVWorld(); - PickInfo.IntersectionInfo[] iInfoArr = pickInfoArr[0].getIntersectionInfos(); - PickIntersection pi = new PickIntersection(l2vw, iInfoArr[0]); - - // Safe to assume the return geometry is of GeometryArray type. - GeometryArray curGeomArray = (GeometryArray) iInfoArr[0].getGeometry(); - - // Position sphere at intersection point - Vector3d v = new Vector3d(); - Point3d intPt = pi.getPointCoordinatesVW(); - v.set(intPt); - spht3.setTranslation (v); - sphTrans[0].setTransform (spht3); - - // Position sphere at closest vertex - Point3d closestVert = pi.getClosestVertexCoordinatesVW(); - v.set(closestVert); - spht3.setTranslation (v); - sphTrans[1].setTransform (spht3); - - Point3d []ptw = pi.getPrimitiveCoordinatesVW(); - Point3d []pt = pi.getPrimitiveCoordinates(); - int []coordidx = pi.getPrimitiveCoordinateIndices(); - Point3d ptcoord = new Point3d(); - for (int k=0;k<pt.length;k++) { - v.set(ptw[k]); - spht3.setTranslation (v); - sphTrans[k+2].setTransform (spht3); - } - - // Get interpolated color (if available) - Color4f iColor4 = null; - Color3f iColor = null; - Vector3f iNormal = null; - - if (curGeomArray != null) { - int vf = curGeomArray.getVertexFormat(); - - if (((vf & - (GeometryArray.COLOR_3 | - GeometryArray.COLOR_4)) != 0) && - (null != (iColor4 = - pi.getPointColor()))) { - iColor = - new Color3f(iColor4.x, iColor4.y, iColor4.z); - - // Change the point's color - redlook.setMaterial(new Material(iColor, new Color3f (0.0f, 0.0f, 0.0f), iColor, new Color3f(1.0f, 1.0f, 1.0f), 50.0f)); - } - if (((vf & GeometryArray.NORMALS) != 0) && - (null != (iNormal = - pi.getPointNormal()))) { - System.out.println ("Interpolated normal: "+iNormal); - } - } - - System.out.println ("============="); - System.out.println ("Coordinates of intersection pt:"+intPt); - System.out.println ("Coordinates of vertices: "); - for (int k=0;k<pt.length;k++) { - System.out.println (k + ":" + ptw[k].x + " " + ptw[k].y + " " + ptw[k].z); - } - System.out.println ("Closest vertex: "+closestVert); - if (iColor != null) { - System.out.println ("Interpolated color: "+iColor); - } - if (iNormal != null) { - System.out.println ("Interpolated normal: "+iNormal); - } - } - } - } - } - } - wakeupOn (new WakeupOnAWTEvent(MouseEvent.MOUSE_PRESSED)); - } -} diff --git a/src/PickTest/IntersectTest.html b/src/PickTest/IntersectTest.html deleted file mode 100644 index 46752f6..0000000 --- a/src/PickTest/IntersectTest.html +++ /dev/null @@ -1,17 +0,0 @@ -<HTML> - <HEAD> - <TITLE>IntersectTest</TITLE> - </HEAD> - <BODY BGCOLOR="#0C0C33"> - <applet align=middle code="IntersectTest.class" width=500 height=500> - <blockquote> - <hr> - If you were using a Java-capable browser, - you would see "IntersectTest" instead of this paragraph. - <hr> - </blockquote> - </applet> - </BODY> -</HTML> - - diff --git a/src/PickTest/IntersectTest.java b/src/PickTest/IntersectTest.java deleted file mode 100644 index 891b511..0000000 --- a/src/PickTest/IntersectTest.java +++ /dev/null @@ -1,233 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.BorderLayout; -import java.awt.event.*; -import java.awt.GraphicsConfiguration; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import com.sun.j3d.utils.behaviors.keyboard.*; - -public class IntersectTest extends Applet { - - BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 1000.0); - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph () { - - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Set up the ambient light - Color3f ambientColor = new Color3f(0.1f, 0.1f, 0.1f); - AmbientLight ambientLightNode = new AmbientLight(ambientColor); - ambientLightNode.setInfluencingBounds(bounds); - objRoot.addChild(ambientLightNode); - - // Set up the directional lights - Color3f light1Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light1Direction = new Vector3f(4.0f, -7.0f, -12.0f); - Color3f light2Color = new Color3f(0.3f, 0.3f, 0.4f); - Vector3f light2Direction = new Vector3f(-6.0f, -2.0f, -1.0f); - - DirectionalLight light1 - = new DirectionalLight(light1Color, light1Direction); - light1.setInfluencingBounds(bounds); - objRoot.addChild(light1); - - DirectionalLight light2 - = new DirectionalLight(light2Color, light2Direction); - light2.setInfluencingBounds(bounds); - objRoot.addChild(light2); - - Transform3D t3 = new Transform3D (); - - // Shapes - for (int x=0;x<3;x++) { - for (int y=0;y<3;y++) { - for (int z=0;z<3;z++) { - t3.setTranslation (new Vector3d(-4+x*4.0, -4+y*4.0, -20-z*4.0)); - TransformGroup objTrans = new TransformGroup(t3); - - objRoot.addChild(objTrans); - - // Create a simple shape leaf node, add it to the scene graph. - GeometryArray geom = null; - - if (((x+y+z) % 2) == 0) { - geom = new RandomColorCube(); - } - else { - geom = new RandomColorTetrahedron(); - } - - Shape3D shape = new Shape3D(geom); - - objTrans.addChild(shape); - } - } - } - - // Lines - Point3f[] verts = { - new Point3f (-2.0f, 0.0f, 0.0f),new Point3f(2.0f, 0.0f, 0.0f) - }; - Color3f grey = new Color3f (0.7f, 0.7f, 0.7f); - Color3f[] colors = { - grey, grey - }; - - for (int y=0;y<5;y++) { - for (int z=0;z<5;z++) { - t3.setTranslation (new Vector3d(7.0, -4+y*2.0, -20.0-z*2.0)); - TransformGroup objTrans = new TransformGroup(t3); - - objRoot.addChild(objTrans); - - LineArray la = new LineArray (verts.length, - LineArray.COORDINATES | - LineArray.COLOR_3); - la.setCoordinates (0, verts); - la.setColors (0, colors); - - - Shape3D shape = new Shape3D(); - shape.setGeometry (la); - - - objTrans.addChild(shape); - } - } - - // Points - for (double x=-2.0;x<=2.0;x+=1.0) { - for (double y=-2.0;y<=2.0;y+=1.0) { - for (double z=-2.0;z<=2.0;z+=1.0) { - t3.setTranslation (new Vector3d(-10.0+2.0*x, 0.0+2.0*y,-20.0+2.0*z)); - TransformGroup objTrans = new TransformGroup(t3); - - objRoot.addChild(objTrans); - - PointArray pa = new PointArray (1, - PointArray.COORDINATES | - PointArray.COLOR_3); - - pa.setCoordinate (0, new Point3d (0.0, 0.0, 0.0)); - pa.setColor (0, grey); - - Shape3D shape = new Shape3D(); - shape.setGeometry (pa); - - - objTrans.addChild(shape); - } - } - } - - return objRoot; - } - - public IntersectTest () { - } - - public void init() { - setLayout(new BorderLayout()); - - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // Add picking behavior - IntersectInfoBehavior behavior = - new IntersectInfoBehavior (c, scene,0.05f); - behavior.setSchedulingBounds (bounds); - scene.addChild (behavior); - - TransformGroup vpTrans = - u.getViewingPlatform().getViewPlatformTransform(); - - KeyNavigatorBehavior keybehavior = new KeyNavigatorBehavior (vpTrans); - keybehavior.setSchedulingBounds (bounds); - scene.addChild (keybehavior); - scene.setCapability (Group.ALLOW_CHILDREN_EXTEND); - scene.compile(); - u.addBranchGraph(scene); - - View view = u.getViewer().getView(); - view.setBackClipDistance (100000); - - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows IntersectTest to be run as an application - // as well as an applet - // - public static void main(String[] args) { - String s = "\n\nIntersectTest:\n-----------\n"; - s += "Pick with the mouse over the primitives\n"; - s += "- A sphere will be placed to indicate the picked point.\n"; - s += "If color information is available, the sphere will change color to reflect\n"; - s += "the interpolated color.\n"; - s += "- Other spheres will be placed to show the vertices of the selected polygon\n"; - s += "- Information will be displayed about the picking operation\n\n\n"; - - System.out.println (s); - - new MainFrame(new IntersectTest(), 640, 640); - } -} diff --git a/src/PickTest/IntersectTest_plugin.html b/src/PickTest/IntersectTest_plugin.html deleted file mode 100644 index 4a04bef..0000000 --- a/src/PickTest/IntersectTest_plugin.html +++ /dev/null @@ -1,41 +0,0 @@ -<HTML> - <HEAD> - <TITLE>IntersectTest</TITLE> - </HEAD> - <BODY BGCOLOR="#0C0C33"> - <!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 500 HEIGHT = 500 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "IntersectTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "IntersectTest.class" WIDTH = 500 HEIGHT = 500 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> - <hr> - If you were using a Java-capable browser, - you would see "IntersectTest" instead of this paragraph. - <hr> - </blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "IntersectTest.class" WIDTH = 500 HEIGHT = 500 ALIGN = middle> -<blockquote> - <hr> - If you were using a Java-capable browser, - you would see "IntersectTest" instead of this paragraph. - <hr> - </blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - - </BODY> -</HTML> - - diff --git a/src/PickTest/MorphingBehavior.java b/src/PickTest/MorphingBehavior.java deleted file mode 100644 index 5da6eeb..0000000 --- a/src/PickTest/MorphingBehavior.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.util.Enumeration; -import javax.media.j3d.*; -import javax.vecmath.*; - -// User-defined morphing behavior class -public class MorphingBehavior extends Behavior { - - Alpha alpha; - Morph morph; - double weights[]; - - WakeupOnElapsedFrames w = new WakeupOnElapsedFrames(0); - - // Override Behavior's initialize method to setup wakeup criteria - public void initialize() { - alpha.setStartTime(System.currentTimeMillis()); - - // Establish initial wakeup criteria - wakeupOn(w); - } - - // Override Behavior's stimulus method to handle the event - public void processStimulus(Enumeration criteria) { - - // NOTE: This assumes 3 objects. It should be generalized to - // "n" objects. - - double val = alpha.value(); - if (val < 0.5) { - double a = val * 2.0; - weights[0] = 1.0 - a; - weights[1] = a; - weights[2] = 0.0; - } - else { - double a = (val - 0.5) * 2.0; - weights[0] = 0.0; - weights[1] = 1.0f - a; - weights[2] = a; - } - - morph.setWeights(weights); - - // Set wakeup criteria for next time - wakeupOn(w); - } - - public MorphingBehavior(Alpha a, Morph m) { - alpha = a; - morph = m; - weights = morph.getWeights(); - } -} diff --git a/src/PickTest/OctahedronITFA.java b/src/PickTest/OctahedronITFA.java deleted file mode 100644 index cdc4dc5..0000000 --- a/src/PickTest/OctahedronITFA.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class OctahedronITFA extends IndexedTriangleFanArray { - private static final int[] sVertCnt = { - 6, 6 - }; - - OctahedronITFA() { - super(6, GeometryArray.COORDINATES | GeometryArray.COLOR_3, 12, sVertCnt); - - Point3f verts[] = new Point3f[6]; - Color3f colors[] = new Color3f[6]; - - verts[0] = new Point3f(0.0f,0.0f,-1.5f); - verts[1] = new Point3f(0.0f,0.0f,1.5f); - verts[2] = new Point3f(0.0f,-1.5f,0.0f); - verts[3] = new Point3f(0.0f,1.5f,0.0f); - verts[4] = new Point3f(1.5f,0.0f,0.0f); - verts[5] = new Point3f(-1.5f,0.0f,0.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); - - int pntsIndex[] = new int[12]; - int clrsIndex[] = new int[12]; - - pntsIndex[0] = 4; - clrsIndex[0] = 4; - pntsIndex[1] = 2; - clrsIndex[1] = 2; - pntsIndex[2] = 0; - clrsIndex[2] = 0; - - pntsIndex[3] = 3; - clrsIndex[3] = 3; - - pntsIndex[4] = 1; - clrsIndex[4] = 1; - - pntsIndex[5] = 2; - clrsIndex[5] = 2; - - pntsIndex[6] = 5; - clrsIndex[6] = 5; - pntsIndex[7] = 1; - clrsIndex[7] = 1; - pntsIndex[8] = 3; - clrsIndex[8] = 3; - - pntsIndex[9] = 0; - clrsIndex[9] = 0; - - pntsIndex[10] = 2; - clrsIndex[10] = 2; - - pntsIndex[11] = 1; - clrsIndex[11] = 1; - - setCoordinates(0, verts); - setCoordinateIndices(0, pntsIndex); - setColors(0, colors); - setColorIndices(0, clrsIndex); - } -} diff --git a/src/PickTest/OctahedronTFA.java b/src/PickTest/OctahedronTFA.java deleted file mode 100644 index f1b2e0d..0000000 --- a/src/PickTest/OctahedronTFA.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class OctahedronTFA extends TriangleFanArray { - private static final int[] sVertCnt = { - 6, 6 - }; - - OctahedronTFA() { - super(12, GeometryArray.COORDINATES | GeometryArray.COLOR_3, sVertCnt); - - Point3f verts[] = new Point3f[6]; - Color3f colors[] = new Color3f[6]; - - verts[0] = new Point3f(0.0f,0.0f,-1.5f); - verts[1] = new Point3f(0.0f,0.0f,1.5f); - verts[2] = new Point3f(0.0f,-1.5f,0.0f); - verts[3] = new Point3f(0.0f,1.5f,0.0f); - verts[4] = new Point3f(1.5f,0.0f,0.0f); - verts[5] = new Point3f(-1.5f,0.0f,0.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); - - - Point3f pnts[] = new Point3f[12]; - Color3f clrs[] = new Color3f[12]; - - pnts[0] = verts[4]; - clrs[0] = colors[4]; - pnts[1] = verts[2]; - clrs[1] = colors[2]; - pnts[2] = verts[0]; - clrs[2] = colors[0]; - - pnts[3] = verts[3]; - clrs[3] = colors[3]; - - pnts[4] = verts[1]; - clrs[4] = colors[1]; - - pnts[5] = verts[2]; - clrs[5] = colors[2]; - - pnts[6] = verts[5]; - clrs[6] = colors[5]; - pnts[7] = verts[1]; - clrs[7] = colors[1]; - pnts[8] = verts[3]; - clrs[8] = colors[3]; - - pnts[9] = verts[0]; - clrs[9] = colors[0]; - - pnts[10] = verts[2]; - clrs[10] = colors[2]; - - pnts[11] = verts[1]; - clrs[11] = colors[1]; - - setCoordinates(0, pnts); - setColors(0, clrs); - } -} diff --git a/src/PickTest/PickTest.html b/src/PickTest/PickTest.html deleted file mode 100644 index 938125c..0000000 --- a/src/PickTest/PickTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>PickTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> - <applet align=middle code="PickTest.class" width=750 height=550> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/PickTest/PickTest.java b/src/PickTest/PickTest.java deleted file mode 100644 index 5b50d98..0000000 --- a/src/PickTest/PickTest.java +++ /dev/null @@ -1,414 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.pickfast.behaviors.*; -import com.sun.j3d.utils.pickfast.*; - -import java.applet.Applet; -import java.awt.BorderLayout; -import java.awt.event.*; -import java.awt.Component; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.awt.Point; -import javax.swing.*; -import javax.swing.border.BevelBorder; - -/** - * PickTest shows how to use the Picking utilities on various GeometryArray - * subclasses and Morph object. - * Type of Geometry : CompressedGeometry ( GullCG.java ) - * IndexedQuadArray ( CubeIQA.java ) - * TriangleArray ( TetrahedronTA.java ) - * IndexedTriangleArray ( TetrahedronITA.java ) - * TriangleFanArray ( OctahedronTFA.java ) - * IndexedTriangleFanArray ( OctahedronITA.java ) - * TriangleStripArray ( IcosahedronTFA.java ) - * IndexedTriangleStripArray ( IcosahedronITA.java ) - * PointArray( TetrahedronPA.java ) - * LineArray( TetrahedronLA.java ) - * IndexLineArray( TetrahedronILA.java ) - * LineStripArray( TetrahedronLSA.java ) - * IndexLineStripArray( TetrahedronILSA.java ) - * - * Morph Object uses : QuadArray ( ColorCube.java, ColorPyramidDown.java, - * and ColorPyramidUp.java ). - */ - -public class PickTest extends Applet implements ActionListener { - - private View view = null; - private QuadArray geomMorph[] = new QuadArray[3]; - private Morph morph; - - private PickRotateBehavior behavior1; - private PickZoomBehavior behavior2; - private PickTranslateBehavior behavior3; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph(Canvas3D canvas) - { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(1.0); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create a bunch of objects with a behavior and add them - // into the scene graph. - - int row, col; - int numRows = 4, numCols = 4; - - for (int i = 0; i < numRows; i++) { - double ypos = (double)(i - numRows/2) * 0.45 + 0.25; - for (int j = 0; j < numCols; j++) { - double xpos = (double)(j - numCols/2) * 0.45 + 0.25; - objScale.addChild(createObject(i * numCols + j, 0.1, xpos, ypos)); - } - } - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Add a light. - Color3f lColor = new Color3f(1.0f, 1.0f, 1.0f) ; - Vector3f lDir = new Vector3f(0.0f, 0.0f, -1.0f) ; - - DirectionalLight lgt = new DirectionalLight(lColor, lDir) ; - lgt.setInfluencingBounds(bounds) ; - objRoot.addChild(lgt) ; - - - // Now create the Alpha object that controls the speed of the - // morphing operation. - Alpha morphAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE | - Alpha.DECREASING_ENABLE, - 0, 0, - 4000, 1000, 500, - 4000, 1000, 500); - - // Finally, create the morphing behavior - MorphingBehavior mBeh = new MorphingBehavior(morphAlpha, morph); - mBeh.setSchedulingBounds(bounds); - objRoot.addChild(mBeh); - - behavior1 = new PickRotateBehavior(objRoot, canvas, bounds); - objRoot.addChild(behavior1); - - behavior2 = new PickZoomBehavior(objRoot, canvas, bounds); - objRoot.addChild(behavior2); - - behavior3 = new PickTranslateBehavior(objRoot, canvas, bounds); - objRoot.addChild(behavior3); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - - private Group createObject(int index, double scale, double xpos, double ypos){ - - Shape3D shape = null; - Geometry geom = null; - - // Create a transform group node to scale and position the object. - Transform3D t = new Transform3D(); - t.set(scale, new Vector3d(xpos, ypos, 0.0)); - TransformGroup objTrans = new TransformGroup(t); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - objTrans.setCapability(TransformGroup.ENABLE_PICK_REPORTING); - - // Create a second transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. - TransformGroup spinTg = new TransformGroup(); - spinTg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - spinTg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - spinTg.setCapability(TransformGroup.ENABLE_PICK_REPORTING); - - Appearance appearance = new Appearance(); - - switch(index) { - case 0: - geom = new GullCG(); - break; - case 1: - geom = new TetrahedronTA(); - break; - case 2: - geom = new OctahedronTFA(); - break; - case 3: - geom = new IcosahedronTSA(); - break; - case 4: - geom = new CubeIQA(); - break; - case 5: - geom = new TetrahedronITA(); - break; - case 6: - geom = new OctahedronITFA(); - break; - case 7: - geom = new IcosahedronITSA(); - break; - case 8: - geomMorph[0] = new ColorPyramidUp(); - geomMorph[1] = new ColorCube(); - geomMorph[2] = new ColorPyramidDown(); - break; - case 9: - geom = new TetrahedronLA(); - break; - case 10: - geom = new TetrahedronILA(); - break; - case 11: - geom = new TetrahedronLSA(); - break; - case 12: - geom = new TetrahedronILSA(); - break; - case 13: - geom = new TetrahedronPA(); - break; - case 14: - geom = new TetrahedronIPA(); - break; - // TODO: other geo types, Text3D? - case 15: - geom = new TetrahedronTA(); - break; - } - - Material m = new Material() ; - - if(index == 8) { - m.setLightingEnable(false) ; - appearance.setMaterial(m) ; - morph = new Morph((GeometryArray[]) geomMorph, appearance); - morph.setCapability(Morph.ALLOW_WEIGHTS_READ); - morph.setCapability(Morph.ALLOW_WEIGHTS_WRITE); - spinTg.addChild(morph); - } else { - // Geometry picking require this to be set. - if (index == 0) - m.setLightingEnable(true) ; - else - m.setLightingEnable(false) ; - appearance.setMaterial(m) ; - - if ((index == 13) || (index == 14)) { - PointAttributes pa = new PointAttributes(); - pa.setPointSize(4.0f); - appearance.setPointAttributes(pa); - } - - shape = new Shape3D(geom,appearance); - shape.setCapability(Shape3D.ALLOW_APPEARANCE_READ); - shape.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); - shape.setCapability(Shape3D.ENABLE_PICK_REPORTING); - spinTg.addChild(shape); - } - - // add it to the scene graph. - objTrans.addChild(spinTg); - - return objTrans; - } - - private void setPickMode(int mode) { - behavior1.setMode(mode); - behavior2.setMode(mode); - behavior3.setMode(mode); - } - - private void setPickTolerance(float tolerance) { - behavior1.setTolerance(tolerance); - behavior2.setTolerance(tolerance); - behavior3.setTolerance(tolerance); - } - - private void setViewMode(int mode) { - view.setProjectionPolicy(mode); - } - - // GUI stuff - - String pickModeString = new String("Pick Mode"); - String boundsString = new String("BOUNDS"); - String geometryString = new String("GEOMETRY"); - String toleranceString = new String("Pick Tolerance"); - String tolerance0String = new String("0"); - String tolerance2String = new String("2"); - String tolerance4String = new String("4"); - String tolerance8String = new String("8"); - String viewModeString = new String("View Mode"); - String perspectiveString = new String("Perspective"); - String parallelString = new String("Parallel"); - - private void addRadioButton(JPanel panel, ButtonGroup bg, String ownerName, - String buttonName, boolean selected) { - JRadioButton item; - item = new JRadioButton(buttonName); - item.setName(ownerName); - item.addActionListener(this); - if (selected) { - item.setSelected(true); - } - panel.add(item); - bg.add(item); - } - - private void setupGUI(JPanel panel) { - ButtonGroup bg; - - panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); - panel.setBorder(new BevelBorder(BevelBorder.RAISED)); - - panel.add(new JLabel(pickModeString)); - bg = new ButtonGroup(); - addRadioButton(panel, bg, pickModeString, boundsString, true); - addRadioButton(panel, bg, pickModeString, geometryString, false); - - panel.add(new JLabel(toleranceString)); - bg = new ButtonGroup(); - addRadioButton(panel, bg, toleranceString, tolerance0String,false); - addRadioButton(panel, bg, toleranceString, tolerance2String,true); - addRadioButton(panel, bg, toleranceString, tolerance4String,false); - addRadioButton(panel, bg, toleranceString, tolerance8String,false); - - panel.add(new JLabel(viewModeString)); - bg = new ButtonGroup(); - addRadioButton(panel, bg, viewModeString, perspectiveString, true); - addRadioButton(panel, bg, viewModeString, parallelString, false); - - } - - public void actionPerformed(ActionEvent e) { - String name = ((Component)e.getSource()).getName(); - String value = e.getActionCommand(); - //System.out.println("action: name = " + name + " value = " + value); - if (name == pickModeString) { - if (value == boundsString) { - setPickMode(PickInfo.PICK_BOUNDS); - } else if (value == geometryString) { - setPickMode(PickInfo.PICK_GEOMETRY); - } else { - System.out.println("Unknown pick mode: " + value); - } - } else if (name == toleranceString) { - if (value == tolerance0String) { - setPickTolerance(0.0f); - } else if (value == tolerance2String) { - setPickTolerance(2.0f); - } else if (value == tolerance4String) { - setPickTolerance(4.0f); - } else if (value == tolerance8String) { - setPickTolerance(8.0f); - } else { - System.out.println("Unknown tolerance: " + value); - } - } else if (name == viewModeString) { - if (value == perspectiveString) { - setViewMode(View.PERSPECTIVE_PROJECTION); - } else if (value == parallelString) { - setViewMode(View.PARALLEL_PROJECTION); - } - } else { - System.out.println("Unknown action name: " + name); - } - } - - public PickTest (){ - } - - public void init() { - setLayout(new BorderLayout()); - Canvas3D c = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); - add("Center", c); - - JPanel guiPanel = new JPanel(); - setupGUI(guiPanel); - add(guiPanel, BorderLayout.EAST); - - // Create a scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(c); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - view = u.getViewer().getView(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - - public static void main(String argv[]) - { - - BranchGroup group; - - new MainFrame(new PickTest(), 750, 550); - } -} - diff --git a/src/PickTest/PickTest_plugin.html b/src/PickTest/PickTest_plugin.html deleted file mode 100644 index c8e8168..0000000 --- a/src/PickTest/PickTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>PickTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> - <!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 750 HEIGHT = 550 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "PickTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "PickTest.class" WIDTH = 750 HEIGHT = 550 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "PickTest.class" WIDTH = 750 HEIGHT = 550 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/PickTest/RandomColorCube.java b/src/PickTest/RandomColorCube.java deleted file mode 100644 index 12a43b0..0000000 --- a/src/PickTest/RandomColorCube.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class RandomColorCube extends QuadArray { - RandomColorCube() { - super(24, GeometryArray.COORDINATES | GeometryArray.COLOR_3); - - Point3f verts[] = new Point3f[8]; - Color3f colors[] = new Color3f[3]; - - verts[0] = new Point3f(0.5f, 0.5f, 0.5f); - verts[1] = new Point3f(-0.5f, 0.5f, 0.5f); - verts[2] = new Point3f(-0.5f,-0.5f, 0.5f); - verts[3] = new Point3f( 0.5f,-0.5f, 0.5f); - verts[4] = new Point3f( 0.5f, 0.5f,-0.5f); - verts[5] = new Point3f( -0.5f, 0.5f,-0.5f); - verts[6] = new Point3f( -0.5f,-0.5f,-0.5f); - verts[7] = new Point3f( 0.5f,-0.5f,-0.5f); - - 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); - - Point3f pnts[] = new Point3f[24]; - Color3f clrs[] = new Color3f[24]; - - pnts[0] = verts[0]; - clrs[0] = colors[(int)(Math.random()*3.0)]; - pnts[1] = verts[3]; - clrs[1] = colors[(int)(Math.random()*3.0)]; - pnts[2] = verts[7]; - clrs[2] = colors[(int)(Math.random()*3.0)]; - pnts[3] = verts[4]; - clrs[3] = colors[(int)(Math.random()*3.0)]; - - pnts[4] = verts[1]; - clrs[4] = colors[(int)(Math.random()*3.0)]; - pnts[5] = verts[5]; - clrs[5] = colors[(int)(Math.random()*3.0)]; - pnts[6] = verts[6]; - clrs[6] = colors[(int)(Math.random()*3.0)]; - pnts[7] = verts[2]; - clrs[7] = colors[(int)(Math.random()*3.0)]; - - pnts[8] = verts[0]; - clrs[8] = colors[(int)(Math.random()*3.0)]; - pnts[9] = verts[4]; - clrs[9] = colors[(int)(Math.random()*3.0)]; - pnts[10] = verts[5]; - clrs[10] = colors[(int)(Math.random()*3.0)]; - pnts[11] = verts[1]; - clrs[11] = colors[(int)(Math.random()*3.0)]; - - pnts[12] = verts[3]; - clrs[12] = colors[(int)(Math.random()*3.0)]; - pnts[13] = verts[2]; - clrs[13] = colors[(int)(Math.random()*3.0)]; - pnts[14] = verts[6]; - clrs[14] = colors[(int)(Math.random()*3.0)]; - pnts[15] = verts[7]; - clrs[15] = colors[(int)(Math.random()*3.0)]; - - pnts[16] = verts[0]; - clrs[16] = colors[(int)(Math.random()*3.0)]; - pnts[17] = verts[1]; - clrs[17] = colors[(int)(Math.random()*3.0)]; - pnts[18] = verts[2]; - clrs[18] = colors[(int)(Math.random()*3.0)]; - pnts[19] = verts[3]; - clrs[19] = colors[(int)(Math.random()*3.0)]; - - pnts[20] = verts[7]; - clrs[20] = colors[(int)(Math.random()*3.0)]; - pnts[21] = verts[6]; - clrs[21] = colors[(int)(Math.random()*3.0)]; - pnts[22] = verts[5]; - clrs[22] = colors[(int)(Math.random()*3.0)]; - pnts[23] = verts[4]; - clrs[23] = colors[(int)(Math.random()*3.0)]; - - - setCoordinates(0, pnts); - setColors(0, clrs); - } -} diff --git a/src/PickTest/RandomColorTetrahedron.java b/src/PickTest/RandomColorTetrahedron.java deleted file mode 100644 index 3454d24..0000000 --- a/src/PickTest/RandomColorTetrahedron.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class RandomColorTetrahedron extends TriangleArray { - - RandomColorTetrahedron() { - super(12, GeometryArray.COORDINATES | GeometryArray.COLOR_3); - - Point3f verts[] = new Point3f[4]; - Color3f colors[] = new Color3f[4]; - - verts[0] = new Point3f(0.5f,0.5f,0.5f); - verts[1] = new Point3f(0.5f,-0.5f,-0.5f); - verts[2] = new Point3f(-0.5f,-0.5f,0.5f); - verts[3] = new Point3f(-0.5f,0.5f,-0.5f); - - 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); - - Point3f pnts[] = new Point3f[12]; - Color3f clrs[] = new Color3f[12]; - - pnts[0] = verts[2]; - clrs[0] = colors[(int)(Math.random() * 3.0)]; - pnts[1] = verts[1]; - clrs[1] = colors[(int)(Math.random() * 3.0)]; - pnts[2] = verts[0]; - clrs[2] = colors[(int)(Math.random() * 3.0)]; - - pnts[3] = verts[3]; - clrs[3] = colors[(int)(Math.random() * 3.0)]; - pnts[4] = verts[2]; - clrs[4] = colors[(int)(Math.random() * 3.0)]; - pnts[5] = verts[0]; - clrs[5] = colors[(int)(Math.random() * 3.0)]; - - pnts[6] = verts[1]; - clrs[6] = colors[(int)(Math.random() * 3.0)]; - pnts[7] = verts[2]; - clrs[7] = colors[(int)(Math.random() * 3.0)]; - pnts[8] = verts[3]; - clrs[8] = colors[(int)(Math.random() * 3.0)]; - - pnts[9] = verts[1]; - clrs[9] = colors[(int)(Math.random() * 3.0)]; - pnts[10] = verts[3]; - clrs[10] = colors[(int)(Math.random() * 3.0)]; - pnts[11] = verts[0]; - clrs[11] = colors[(int)(Math.random() * 3.0)]; - - setCoordinates(0, pnts); - setColors(0, clrs); - } -} diff --git a/src/PickTest/TetrahedronILA.java b/src/PickTest/TetrahedronILA.java deleted file mode 100644 index 1a6b9bc..0000000 --- a/src/PickTest/TetrahedronILA.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class TetrahedronILA extends IndexedLineArray { - - TetrahedronILA() { - super(4, GeometryArray.COORDINATES | GeometryArray.COLOR_3, 12); - - Point3f verts[] = new Point3f[4]; - Color3f colors[] = new Color3f[4]; - - 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); - - 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); - - int[] pntsIndex = new int[12]; - int[] clrsIndex = new int[12]; - - pntsIndex[0] = 0; - clrsIndex[0] = 0; - pntsIndex[1] = 1; - clrsIndex[1] = 1; - - pntsIndex[2] = 1; - clrsIndex[2] = 1; - pntsIndex[3] = 2; - clrsIndex[3] = 2; - - pntsIndex[4] = 2; - clrsIndex[4] = 2; - pntsIndex[5] = 0; - clrsIndex[5] = 0; - - pntsIndex[6] = 1; - clrsIndex[6] = 1; - pntsIndex[7] = 3; - clrsIndex[7] = 3; - - pntsIndex[8] = 2; - clrsIndex[8] = 2; - pntsIndex[9] = 3; - clrsIndex[9] = 3; - - pntsIndex[10] = 0; - clrsIndex[10] = 0; - pntsIndex[11] = 3; - clrsIndex[11] = 3; - - setCoordinates(0, verts); - setCoordinateIndices(0, pntsIndex); - setColors(0, colors); - setColorIndices(0, clrsIndex); - } -} diff --git a/src/PickTest/TetrahedronILSA.java b/src/PickTest/TetrahedronILSA.java deleted file mode 100644 index b982cdc..0000000 --- a/src/PickTest/TetrahedronILSA.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class TetrahedronILSA extends IndexedLineStripArray { - - private static final int[] lineLengths = { - 4, 4 - }; - TetrahedronILSA() { - super(4, GeometryArray.COORDINATES | GeometryArray.COLOR_3, 8, lineLengths); - - Point3f verts[] = new Point3f[4]; - Color3f colors[] = new Color3f[4]; - - 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); - - 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); - - int pntsIndex[] = new int[8]; - int clrsIndex[] = new int[8]; - - pntsIndex[0] = 0; - clrsIndex[0] = 0; - pntsIndex[1] = 1; - clrsIndex[1] = 1; - pntsIndex[2] = 3; - clrsIndex[2] = 3; - pntsIndex[3] = 2; - clrsIndex[3] = 2; - - pntsIndex[4] = 1; - clrsIndex[4] = 1; - pntsIndex[5] = 2; - clrsIndex[5] = 2; - pntsIndex[6] = 0; - clrsIndex[6] = 0; - pntsIndex[7] = 3; - clrsIndex[7] = 3; - - setCoordinates(0, verts); - setCoordinateIndices(0, pntsIndex); - setColors(0, colors); - setColorIndices(0, clrsIndex); - } -} diff --git a/src/PickTest/TetrahedronIPA.java b/src/PickTest/TetrahedronIPA.java deleted file mode 100644 index 5400b0c..0000000 --- a/src/PickTest/TetrahedronIPA.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class TetrahedronIPA extends IndexedPointArray { - - TetrahedronIPA() { - super(4, GeometryArray.COORDINATES | GeometryArray.COLOR_3, 4); - - Point3f verts[] = new Point3f[4]; - Color3f colors[] = new Color3f[4]; - - 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); - - 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); - - int pntsIndex[] = new int[4]; - int clrsIndex[] = new int[4]; - - pntsIndex[0] = clrsIndex[0] = 0; - pntsIndex[1] = clrsIndex[1] = 1; - pntsIndex[2] = clrsIndex[2] = 2; - pntsIndex[3] = clrsIndex[3] = 3; - - setCoordinates(0, verts); - setCoordinateIndices(0, pntsIndex); - setColors(0, colors); - setColorIndices(0, clrsIndex); - } -} diff --git a/src/PickTest/TetrahedronITA.java b/src/PickTest/TetrahedronITA.java deleted file mode 100644 index 4679ca8..0000000 --- a/src/PickTest/TetrahedronITA.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class TetrahedronITA extends IndexedTriangleArray { - - TetrahedronITA() { - super(4, GeometryArray.COORDINATES | GeometryArray.COLOR_3, 12); - - Point3f verts[] = new Point3f[4]; - Color3f colors[] = new Color3f[4]; - - 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); - - 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); - - int pntsIndex[] = new int[12]; - int clrsIndex[] = new int[12]; - - pntsIndex[0] = 2; - clrsIndex[0] = 0; - pntsIndex[1] = 1; - clrsIndex[1] = 0; - pntsIndex[2] = 0; - clrsIndex[2] = 0; - - pntsIndex[3] = 3; - clrsIndex[3] = 1; - pntsIndex[4] = 2; - clrsIndex[4] = 1; - pntsIndex[5] = 0; - clrsIndex[5] = 1; - - pntsIndex[6] = 1; - clrsIndex[6] = 2; - pntsIndex[7] = 2; - clrsIndex[7] = 2; - pntsIndex[8] = 3; - clrsIndex[8] = 2; - - pntsIndex[9] = 1; - clrsIndex[9] = 3; - pntsIndex[10] = 3; - clrsIndex[10] = 3; - pntsIndex[11] = 0; - clrsIndex[11] = 3; - - setCoordinates(0, verts); - setCoordinateIndices(0, pntsIndex); - setColors(0, colors); - setColorIndices(0, clrsIndex); - } -} diff --git a/src/PickTest/TetrahedronLA.java b/src/PickTest/TetrahedronLA.java deleted file mode 100644 index 3d67009..0000000 --- a/src/PickTest/TetrahedronLA.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class TetrahedronLA extends LineArray { - - TetrahedronLA() { - super(12, GeometryArray.COORDINATES | GeometryArray.COLOR_3); - - Point3f verts[] = new Point3f[4]; - Color3f colors[] = new Color3f[4]; - - 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); - - 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); - - Point3f pnts[] = new Point3f[12]; - Color3f clrs[] = new Color3f[12]; - - pnts[0] = verts[0]; - clrs[0] = colors[0]; - pnts[1] = verts[1]; - clrs[1] = colors[1]; - - pnts[2] = verts[1]; - clrs[2] = colors[1]; - pnts[3] = verts[2]; - clrs[3] = colors[2]; - - pnts[4] = verts[2]; - clrs[4] = colors[2]; - pnts[5] = verts[0]; - clrs[5] = colors[0]; - - pnts[6] = verts[1]; - clrs[6] = colors[1]; - pnts[7] = verts[3]; - clrs[7] = colors[3]; - - pnts[8] = verts[2]; - clrs[8] = colors[2]; - pnts[9] = verts[3]; - clrs[9] = colors[3]; - - pnts[10] = verts[0]; - clrs[10] = colors[0]; - pnts[11] = verts[3]; - clrs[11] = colors[3]; - - setCoordinates(0, pnts); - setColors(0, clrs); - } -} diff --git a/src/PickTest/TetrahedronLSA.java b/src/PickTest/TetrahedronLSA.java deleted file mode 100644 index 3c375ca..0000000 --- a/src/PickTest/TetrahedronLSA.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class TetrahedronLSA extends LineStripArray { - private static final int[] lineLengths = { - 4, 4 - }; - TetrahedronLSA() { - super(8, GeometryArray.COORDINATES | GeometryArray.COLOR_3, lineLengths); - - Point3f verts[] = new Point3f[4]; - Color3f colors[] = new Color3f[4]; - - 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); - - 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); - - Point3f pnts[] = new Point3f[8]; - Color3f clrs[] = new Color3f[8]; - - pnts[0] = verts[0]; - clrs[0] = colors[0]; - pnts[1] = verts[1]; - clrs[1] = colors[1]; - pnts[2] = verts[3]; - clrs[2] = colors[3]; - pnts[3] = verts[2]; - clrs[3] = colors[2]; - - pnts[4] = verts[1]; - clrs[4] = colors[1]; - pnts[5] = verts[2]; - clrs[5] = colors[2]; - pnts[6] = verts[0]; - clrs[6] = colors[0]; - pnts[7] = verts[3]; - clrs[7] = colors[3]; - - setCoordinates(0, pnts); - setColors(0, clrs); - } -} diff --git a/src/PickTest/TetrahedronPA.java b/src/PickTest/TetrahedronPA.java deleted file mode 100644 index 665a886..0000000 --- a/src/PickTest/TetrahedronPA.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class TetrahedronPA extends PointArray { - - TetrahedronPA() { - super(4, GeometryArray.COORDINATES | GeometryArray.COLOR_3); - - Point3f verts[] = new Point3f[4]; - Color3f colors[] = new Color3f[4]; - - 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); - - 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); - - setCoordinates(0, verts); - setColors(0, colors); - } -} diff --git a/src/PickTest/TetrahedronTA.java b/src/PickTest/TetrahedronTA.java deleted file mode 100644 index b981f62..0000000 --- a/src/PickTest/TetrahedronTA.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -class TetrahedronTA extends TriangleArray { - - TetrahedronTA() { - super(12, GeometryArray.COORDINATES | GeometryArray.COLOR_3); - - Point3f verts[] = new Point3f[4]; - Color3f colors[] = new Color3f[4]; - - 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); - - 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); - - Point3f pnts[] = new Point3f[12]; - Color3f clrs[] = new Color3f[12]; - - pnts[0] = verts[2]; - clrs[0] = colors[0]; - pnts[1] = verts[1]; - clrs[1] = colors[0]; - pnts[2] = verts[0]; - clrs[2] = colors[0]; - - pnts[3] = verts[3]; - clrs[3] = colors[1]; - pnts[4] = verts[2]; - clrs[4] = colors[1]; - pnts[5] = verts[0]; - clrs[5] = colors[1]; - - pnts[6] = verts[1]; - clrs[6] = colors[2]; - pnts[7] = verts[2]; - clrs[7] = colors[2]; - pnts[8] = verts[3]; - clrs[8] = colors[2]; - - pnts[9] = verts[1]; - clrs[9] = colors[3]; - pnts[10] = verts[3]; - clrs[10] = colors[3]; - pnts[11] = verts[0]; - clrs[11] = colors[3]; - - setCoordinates(0, pnts); - setColors(0, clrs); - } -} diff --git a/src/PickTest/build.xml b/src/PickTest/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/PickTest/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/PickText3D/PickText3DBounds.html b/src/PickText3D/PickText3DBounds.html deleted file mode 100644 index 63f42e0..0000000 --- a/src/PickText3D/PickText3DBounds.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>PickText3DBounds</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="PickText3DBounds.class" width=700 height=700> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/PickText3D/PickText3DBounds.java b/src/PickText3D/PickText3DBounds.java deleted file mode 100644 index 32c5ba3..0000000 --- a/src/PickText3D/PickText3DBounds.java +++ /dev/null @@ -1,232 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.BorderLayout; -import com.sun.j3d.utils.picking.PickTool; -import com.sun.j3d.utils.picking.behaviors.*; -import com.sun.j3d.utils.geometry.Sphere; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.util.Enumeration; -import java.awt.*; -import java.lang.String; - -public class PickText3DBounds extends Applet { - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph(Canvas3D canvas) { - Color3f eColor = new Color3f(0.0f, 0.0f, 0.0f); - Color3f sColor = new Color3f(1.0f, 1.0f, 1.0f); - Color3f objColor = new Color3f(0.6f, 0.6f, 0.6f); - Color3f lColor1 = new Color3f(1.0f, 0.0f, 0.0f); - Color3f lColor2 = new Color3f(0.0f, 1.0f, 0.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.2f); - - Transform3D t; - - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create a bounds for the background and lights - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - Background bg = new Background(bgColor); - bg.setApplicationBounds(bounds); - objScale.addChild(bg); - - Material m = new Material(objColor, eColor, objColor, sColor, 100.0f); - Appearance a = new Appearance(); - m.setLightingEnable(true); - a.setMaterial(m); - Font3D f3d = new Font3D(new Font("TestFont", Font.PLAIN, 1), - new FontExtrusion()); - Text3D txt = new Text3D(f3d, new String("TEXT3D"), - new Point3f(-2.0f, 0.0f, 0.0f)); - // txt.setCapability(Geometry.ALLOW_INTERSECT); - Shape3D s3D = new Shape3D(); - s3D.setGeometry(txt); - s3D.setAppearance(a); - - // Create a transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. - TransformGroup spinTg = new TransformGroup(); - spinTg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - spinTg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - spinTg.setCapability(TransformGroup.ENABLE_PICK_REPORTING); - - spinTg.addChild(s3D); - objScale.addChild(spinTg); - - // Create the transform group node for the each light and initialize - // it to the identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add them to the root - // of the subgraph. - - // Create transformations for the positional lights - t = new Transform3D(); - Vector3d lPos1 = new Vector3d(0.0, 0.0, 2.0); - t.set(lPos1); - TransformGroup l1Trans = new TransformGroup(t); - l1Trans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - l1Trans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - l1Trans.setCapability(TransformGroup.ENABLE_PICK_REPORTING); - objScale.addChild(l1Trans); - - t = new Transform3D(); - Vector3d lPos2 = new Vector3d(0.5, 0.8, 2.0); - t.set(lPos2); - TransformGroup l2Trans = new TransformGroup(t); - l2Trans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - l2Trans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - l2Trans.setCapability(TransformGroup.ENABLE_PICK_REPORTING); - - objScale.addChild(l2Trans); - - // Create Geometry for point lights - ColoringAttributes caL1 = new ColoringAttributes(); - ColoringAttributes caL2 = new ColoringAttributes(); - caL1.setColor(lColor1); - caL2.setColor(lColor2); - Appearance appL1 = new Appearance(); - Appearance appL2 = new Appearance(); - appL1.setColoringAttributes(caL1); - appL2.setColoringAttributes(caL2); - l1Trans.addChild(new Sphere(0.05f, - Sphere.GENERATE_NORMALS, 15, appL1)); - l2Trans.addChild(new Sphere(0.05f, - Sphere.GENERATE_NORMALS, 15, appL2)); - - // Create lights - AmbientLight aLgt = new AmbientLight(alColor); - - Light lgt1; - Light lgt2; - - Point3f lPoint = new Point3f(0.0f, 0.0f, 0.0f); - Point3f atten = new Point3f(1.0f, 0.0f, 0.0f); - lgt1 = new PointLight(lColor1, lPoint, atten); - lgt2 = new PointLight(lColor2, lPoint, atten); - - // Set the influencing bounds - aLgt.setInfluencingBounds(bounds); - lgt1.setInfluencingBounds(bounds); - lgt2.setInfluencingBounds(bounds); - - // Add the lights into the scene graph - objScale.addChild(aLgt); - l1Trans.addChild(lgt1); - l2Trans.addChild(lgt2); - - - PickRotateBehavior behavior1 = - new PickRotateBehavior(objRoot, canvas, bounds); - behavior1.setMode(PickTool.BOUNDS); - objRoot.addChild(behavior1); - - PickZoomBehavior behavior2 = - new PickZoomBehavior(objRoot, canvas, bounds); - behavior2.setMode(PickTool.BOUNDS); - objRoot.addChild(behavior2); - - PickTranslateBehavior behavior3 = - new PickTranslateBehavior(objRoot, canvas, bounds); - behavior3.setMode(PickTool.BOUNDS); - objRoot.addChild(behavior3); - - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public PickText3DBounds() { - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - u = new SimpleUniverse(c); - BranchGroup scene = createSceneGraph(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows Text3DMotion to be run as an application - // as well as an applet - // - public static void main(String[] args) { - new MainFrame(new PickText3DBounds(), 700, 700); - } -} diff --git a/src/PickText3D/PickText3DBounds_plugin.html b/src/PickText3D/PickText3DBounds_plugin.html deleted file mode 100644 index 8da2faf..0000000 --- a/src/PickText3D/PickText3DBounds_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>PickText3DBounds</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 700 HEIGHT = 700 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "PickText3DBounds.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "PickText3DBounds.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "PickText3DBounds.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/PickText3D/PickText3DGeometry.html b/src/PickText3D/PickText3DGeometry.html deleted file mode 100644 index 69ffbc0..0000000 --- a/src/PickText3D/PickText3DGeometry.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>PickText3DGeometry</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="PickText3DGeometry.class" width=700 height=700> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/PickText3D/PickText3DGeometry.java b/src/PickText3D/PickText3DGeometry.java deleted file mode 100644 index d35131d..0000000 --- a/src/PickText3D/PickText3DGeometry.java +++ /dev/null @@ -1,250 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.BorderLayout; -import com.sun.j3d.utils.picking.PickTool; -import com.sun.j3d.utils.picking.behaviors.*; -import com.sun.j3d.utils.geometry.Sphere; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.util.Enumeration; -import java.awt.*; -import java.lang.String; - -public class PickText3DGeometry extends Applet { - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph(Canvas3D canvas) { - Color3f eColor = new Color3f(0.0f, 0.0f, 0.0f); - Color3f sColor = new Color3f(1.0f, 1.0f, 1.0f); - Color3f objColor = new Color3f(0.6f, 0.6f, 0.6f); - Color3f lColor1 = new Color3f(1.0f, 0.0f, 0.0f); - Color3f lColor2 = new Color3f(0.0f, 1.0f, 0.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.2f); - - Transform3D t; - - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create a bounds for the background and lights - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - Background bg = new Background(bgColor); - bg.setApplicationBounds(bounds); - objScale.addChild(bg); - - Material m = new Material(objColor, eColor, objColor, sColor, 100.0f); - Appearance a = new Appearance(); - m.setLightingEnable(true); - a.setMaterial(m); - Font3D f3d = new Font3D(new Font("TestFont", Font.PLAIN, 1), - new FontExtrusion()); - - Text3D text3D = new Text3D(f3d, new String("TEXT3D"), - new Point3f(-2.0f, 0.7f, 0.0f)); - text3D.setCapability(Geometry.ALLOW_INTERSECT); - Shape3D s3D1 = new Shape3D(); - s3D1.setGeometry(text3D); - s3D1.setAppearance(a); - - // Create a transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. - TransformGroup spinTg1 = new TransformGroup(); - spinTg1.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - spinTg1.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - spinTg1.setCapability(TransformGroup.ENABLE_PICK_REPORTING); - - spinTg1.addChild(s3D1); - objScale.addChild(spinTg1); - - Text3D pick = new Text3D(f3d, new String("Pick me"), - new Point3f(-2.0f, -0.7f, 0.0f)); - pick.setCapability(Geometry.ALLOW_INTERSECT); - Shape3D s3D2 = new Shape3D(); - s3D2.setGeometry(pick); - s3D2.setAppearance(a); - - // Create a transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. - TransformGroup spinTg2 = new TransformGroup(); - spinTg2.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - spinTg2.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - spinTg2.setCapability(TransformGroup.ENABLE_PICK_REPORTING); - - spinTg2.addChild(s3D2); - objScale.addChild(spinTg2); - - // Create the transform group node for the each light and initialize - // it to the identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add them to the root - // of the subgraph. - - // Create transformations for the positional lights - t = new Transform3D(); - Vector3d lPos1 = new Vector3d(0.0, 0.0, 2.0); - t.set(lPos1); - TransformGroup l1Trans = new TransformGroup(t); - l1Trans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - l1Trans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - l1Trans.setCapability(TransformGroup.ENABLE_PICK_REPORTING); - objScale.addChild(l1Trans); - - t = new Transform3D(); - Vector3d lPos2 = new Vector3d(0.5, 1.2, 2.0); - t.set(lPos2); - TransformGroup l2Trans = new TransformGroup(t); - l2Trans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - l2Trans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - l2Trans.setCapability(TransformGroup.ENABLE_PICK_REPORTING); - objScale.addChild(l2Trans); - - // Create Geometry for point lights - ColoringAttributes caL1 = new ColoringAttributes(); - ColoringAttributes caL2 = new ColoringAttributes(); - caL1.setColor(lColor1); - caL2.setColor(lColor2); - Appearance appL1 = new Appearance(); - Appearance appL2 = new Appearance(); - appL1.setColoringAttributes(caL1); - appL2.setColoringAttributes(caL2); - l1Trans.addChild(new Sphere(0.05f, - Sphere.GENERATE_NORMALS | Sphere.ENABLE_GEOMETRY_PICKING, 15, appL1)); - l2Trans.addChild(new Sphere(0.05f, - Sphere.GENERATE_NORMALS | Sphere.ENABLE_GEOMETRY_PICKING, 15, appL2)); - - // Create lights - AmbientLight aLgt = new AmbientLight(alColor); - - Light lgt1; - Light lgt2; - - Point3f lPoint = new Point3f(0.0f, 0.0f, 0.0f); - Point3f atten = new Point3f(1.0f, 0.0f, 0.0f); - lgt1 = new PointLight(lColor1, lPoint, atten); - lgt2 = new PointLight(lColor2, lPoint, atten); - - // Set the influencing bounds - aLgt.setInfluencingBounds(bounds); - lgt1.setInfluencingBounds(bounds); - lgt2.setInfluencingBounds(bounds); - - // Add the lights into the scene graph - objScale.addChild(aLgt); - l1Trans.addChild(lgt1); - l2Trans.addChild(lgt2); - - PickRotateBehavior behavior1 = - new PickRotateBehavior(objRoot, canvas, bounds); - behavior1.setMode(PickTool.GEOMETRY); - behavior1.setTolerance(0.0f); - objRoot.addChild(behavior1); - - PickZoomBehavior behavior2 = - new PickZoomBehavior(objRoot, canvas, bounds); - behavior2.setMode(PickTool.GEOMETRY); - behavior2.setTolerance(0.0f); - objRoot.addChild(behavior2); - - PickTranslateBehavior behavior3 = - new PickTranslateBehavior(objRoot, canvas, bounds); - behavior3.setMode(PickTool.GEOMETRY); - behavior3.setTolerance(0.0f); - objRoot.addChild(behavior3); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public PickText3DGeometry() { - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - Canvas3D c = new Canvas3D(config); - add("Center", c); - - u = new SimpleUniverse(c); - BranchGroup scene = createSceneGraph(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows Text3DMotion to be run as an application - // as well as an applet - // - public static void main(String[] args) { - new MainFrame(new PickText3DGeometry(), 700, 700); - } -} diff --git a/src/PickText3D/PickText3DGeometry_plugin.html b/src/PickText3D/PickText3DGeometry_plugin.html deleted file mode 100644 index a54c350..0000000 --- a/src/PickText3D/PickText3DGeometry_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>PickText3DGeometry</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 700 HEIGHT = 700 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "PickText3DGeometry.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "PickText3DGeometry.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "PickText3DGeometry.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/PickText3D/build.xml b/src/PickText3D/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/PickText3D/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/PlatformGeometry/SimpleGeometry.html b/src/PlatformGeometry/SimpleGeometry.html deleted file mode 100644 index 9371405..0000000 --- a/src/PlatformGeometry/SimpleGeometry.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Platform Geometry</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="SimpleGeometry.class" width=256 height=256> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/PlatformGeometry/SimpleGeometry.java b/src/PlatformGeometry/SimpleGeometry.java deleted file mode 100644 index 0f2f562..0000000 --- a/src/PlatformGeometry/SimpleGeometry.java +++ /dev/null @@ -1,198 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.geometry.ColorCube; -import com.sun.j3d.utils.geometry.*; -import com.sun.j3d.utils.behaviors.mouse.MouseTranslate; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.applet.Applet; -import com.sun.j3d.utils.applet.MainFrame; -import java.awt.*; - -/** - * This class demonstrates the use of the Universe builder for stand-alone - * applications along with the use of the PlatformGeometry node that is - * present in the Java 3D Universe Builder utility. The standard - * HelloWorld application is brought up. A transparent cylinder has been - * added to the PlatfromGeometry node of the ViewingPlatform and the - * MouseTranslate utility has been used to allow this sphere to be dragged - * around the canvas. - */ -public class SimpleGeometry extends Applet { - - SimpleUniverse u = null; - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objScale.addChild(objTrans); - - // Create a simple shape leaf node, add it to the scene graph. - objTrans.addChild(new ColorCube()); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into - // the scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - - - // Have Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - /* - * Create the geometry to add to the platform geometry. - */ - PlatformGeometry createAimer() { - - PlatformGeometry pg = new PlatformGeometry(); - - // This TransformGroup will be used by the MouseTranslate - // utiltiy to move the cylinder around the canvas. when the - // the user holds down mouse button 3. - TransformGroup moveTG = new TransformGroup(); - moveTG.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - moveTG.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - MouseTranslate mouseT = new MouseTranslate(moveTG); - moveTG.addChild(mouseT); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - mouseT.setSchedulingBounds(bounds); - pg.addChild(moveTG); - - // This TransformGroup is used to place the cylinder in the scene. - // The cylinder will be rotated 90 degrees so it will appear as - // a circle on the screen (could be made into a nice gun site...). - // The cylinder is also displaced a little in Z so it is in front - // of the viewer. - Transform3D xForm = new Transform3D(); - xForm.rotX(Math.PI/2.0); - xForm.setTranslation(new Vector3d(0.0, 0.0, -0.7)); - TransformGroup placementTG = new TransformGroup(xForm); - moveTG.addChild(placementTG); - - // Create the cylinder - make it thin and transparent. - Appearance cylinderAppearance = new Appearance(); - TransparencyAttributes transAttrs = - new TransparencyAttributes(TransparencyAttributes.FASTEST, 0.5f); - // cylinderAppearance.setTransparencyAttributes(transAttrs); - Cylinder aimer = new Cylinder(0.06f, 0.005f, 0, cylinderAppearance); - placementTG.addChild(aimer); - - return pg; - } - - public void init() { - - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - - u = new SimpleUniverse(c); - - PlatformGeometry pg = createAimer(); - - // Now set the just created PlatformGeometry. - ViewingPlatform vp = u.getViewingPlatform(); - vp.setPlatformGeometry(pg); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - // Add everthing to the scene graph - it will now be displayed. - u.addBranchGraph(scene); - } - - public SimpleGeometry(String[] args) { - } - - public SimpleGeometry() { - } - - public void destroy() { - u.cleanup(); - } - - public static void main(String[] args) { - new MainFrame(new SimpleGeometry(args), 256, 256); - } -} diff --git a/src/PlatformGeometry/SimpleGeometry_plugin.html b/src/PlatformGeometry/SimpleGeometry_plugin.html deleted file mode 100644 index 9255a68..0000000 --- a/src/PlatformGeometry/SimpleGeometry_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Platform Geometry</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 256 HEIGHT = 256 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "SimpleGeometry.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "SimpleGeometry.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "SimpleGeometry.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/PlatformGeometry/build.xml b/src/PlatformGeometry/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/PlatformGeometry/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/PrintCanvas3D/ImageDisplayer.java b/src/PrintCanvas3D/ImageDisplayer.java deleted file mode 100644 index 6a9bb61..0000000 --- a/src/PrintCanvas3D/ImageDisplayer.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.swing.*; -import java.awt.BorderLayout; -import java.awt.Container; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.image.BufferedImage; -import java.awt.event.*; - -class ImageDisplayer extends JFrame implements ActionListener { - BufferedImage bImage; - - private class ImagePanel extends JPanel { - public void paint(Graphics g) { - g.setColor(Color.black); - g.fillRect(0, 0, getSize().width, getSize().height); - g.drawImage(bImage, 0, 0, this); - } - - private ImagePanel() { - setPreferredSize(new Dimension(bImage.getWidth(), - bImage.getHeight())); - } - } - - private JMenuItem printItem; - private JMenuItem closeItem; - - private void freeResources() { - this.removeAll(); - this.setVisible(false); - bImage = null; - } - - public void actionPerformed (ActionEvent event) { - Object target = event.getSource(); - - if (target == printItem) { - new ImagePrinter(bImage).print(); - } - else if (target == closeItem) { - freeResources(); - } - } - - private JMenuBar createMenuBar() { - JMenuBar menuBar = new JMenuBar(); - JMenu fileMenu = new JMenu("File"); - printItem = new JMenuItem("Print..."); - printItem.addActionListener(this); - closeItem = new JMenuItem("Close"); - closeItem.addActionListener(this); - fileMenu.add(printItem); - fileMenu.add(new JSeparator()); - fileMenu.add(closeItem); - menuBar.add(fileMenu); - return menuBar; - } - - ImageDisplayer(BufferedImage bImage) { - this.bImage = bImage; - this.setTitle("Off-screen Canvas3D Snapshot"); - - // Create and initialize menu bar - this.setJMenuBar(createMenuBar()); - - // Create scroll pane, and embedded image panel - ImagePanel imagePanel = new ImagePanel(); - JScrollPane scrollPane = new JScrollPane(imagePanel); - scrollPane.getViewport().setPreferredSize(new Dimension(700, 700)); - - // Handle the close event - this.addWindowListener(new WindowAdapter() { - public void windowClosing(WindowEvent winEvent) { - freeResources(); - } - }); - - // Add scroll pane to the frame and make it visible - this.getContentPane().add(scrollPane); - this.pack(); - this.setVisible(true); - } -} diff --git a/src/PrintCanvas3D/ImagePrinter.java b/src/PrintCanvas3D/ImagePrinter.java deleted file mode 100644 index 211883d..0000000 --- a/src/PrintCanvas3D/ImagePrinter.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.print.*; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Image; -import java.awt.image.BufferedImage; -import java.awt.image.ImageObserver; -import java.awt.geom.AffineTransform; - -class ImagePrinter implements Printable, ImageObserver { - BufferedImage bImage; - - public int print(Graphics g, PageFormat pf, int pi) - throws PrinterException { - - - if (pi >= 1) { - return Printable.NO_SUCH_PAGE; - } - - Graphics2D g2d = (Graphics2D)g; - //g2d.translate(pf.getImageableX(), pf.getImageableY()); - AffineTransform t2d = new AffineTransform(); - t2d.translate(pf.getImageableX(), pf.getImageableY()); - double xscale = pf.getImageableWidth() / (double)bImage.getWidth(); - double yscale = pf.getImageableHeight() / (double)bImage.getHeight(); - double scale = Math.min(xscale, yscale); - t2d.scale(scale, scale); - try { - g2d.drawImage(bImage,t2d, this); - } - catch (Exception ex) { - ex.printStackTrace(); - return Printable.NO_SUCH_PAGE; - } - return Printable.PAGE_EXISTS; - } - - void print() { - PrinterJob printJob = PrinterJob.getPrinterJob(); - PageFormat pageFormat = printJob.defaultPage(); - pageFormat.setOrientation(PageFormat.LANDSCAPE); - pageFormat = printJob.validatePage(pageFormat); - printJob.setPrintable(this, pageFormat); - if (printJob.printDialog()) { - try { - printJob.print(); - } - catch (PrinterException ex) { - ex.printStackTrace(); - } - } - } - - public boolean imageUpdate(Image img, - int infoflags, - int x, - int y, - int width, - int height) { - return false; - } - - ImagePrinter(BufferedImage bImage) { - this.bImage = bImage; - } -} diff --git a/src/PrintCanvas3D/OffScreenCanvas3D.java b/src/PrintCanvas3D/OffScreenCanvas3D.java deleted file mode 100644 index b089e5c..0000000 --- a/src/PrintCanvas3D/OffScreenCanvas3D.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.GraphicsConfiguration; -import java.awt.image.BufferedImage; -import javax.media.j3d.*; -import javax.vecmath.*; - - -class OffScreenCanvas3D extends Canvas3D { - OffScreenCanvas3D(GraphicsConfiguration graphicsConfiguration, - boolean offScreen) { - - super(graphicsConfiguration, offScreen); - } - - BufferedImage doRender(int width, int height) { - - BufferedImage bImage = - new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); - - ImageComponent2D buffer = - new ImageComponent2D(ImageComponent.FORMAT_RGBA, bImage); - - setOffScreenBuffer(buffer); - renderOffScreenBuffer(); - waitForOffScreenRendering(); - bImage = getOffScreenBuffer().getImage(); - - return bImage; - } - - public void postSwap() { - // No-op since we always wait for off-screen rendering to complete - } -} diff --git a/src/PrintCanvas3D/PrintCanvas3D.java b/src/PrintCanvas3D/PrintCanvas3D.java deleted file mode 100644 index 87ff679..0000000 --- a/src/PrintCanvas3D/PrintCanvas3D.java +++ /dev/null @@ -1,362 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.loaders.objectfile.ObjectFile; -import com.sun.j3d.loaders.ParsingErrorException; -import com.sun.j3d.loaders.IncorrectFormatException; -import com.sun.j3d.loaders.Scene; -import javax.swing.*; -import java.awt.BorderLayout; -import java.awt.Container; -import java.awt.Dimension; -import java.awt.GraphicsConfiguration; -import java.awt.Point; -import java.awt.image.BufferedImage; -import java.awt.event.*; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.io.*; -import com.sun.j3d.utils.behaviors.mouse.*; - -public class PrintCanvas3D extends JFrame implements ActionListener { - - private static final boolean spin = false; - private static final boolean noTriangulate = false; - private static final boolean noStripify = false; - private static final double creaseAngle = 60.0; - - private JMenuItem snapshotItem; - private JMenuItem freeBufferItem; - private JMenuItem printItem; - private JMenuItem quitItem; - - private SimpleUniverse u; - private Canvas3D canvas3D; - private OffScreenCanvas3D offScreenCanvas3D; - - private static final int OFF_SCREEN_SCALE = 3; - - private class AppPanel extends JPanel { - - private String filename = null; - - public BranchGroup createSceneGraph(String args[]) { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.7); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - objScale.addChild(objTrans); - - int flags = ObjectFile.RESIZE; - if (!noTriangulate) flags |= ObjectFile.TRIANGULATE; - if (!noStripify) flags |= ObjectFile.STRIPIFY; - ObjectFile f = - new ObjectFile(flags, - (float)(creaseAngle * Math.PI / 180.0)); - Scene s = null; - try { - s = f.load(filename); - } - catch (FileNotFoundException e) { - System.err.println(e); - System.exit(1); - } - catch (ParsingErrorException e) { - System.err.println(e); - System.exit(1); - } - catch (IncorrectFormatException e) { - System.err.println(e); - System.exit(1); - } - - objTrans.addChild(s.getSceneGroup()); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - if (spin) { - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - } else { - // Create the rotate behavior node - MouseRotate behavior = new MouseRotate(); - behavior.setTransformGroup(objTrans); - objTrans.addChild(behavior); - behavior.setSchedulingBounds(bounds); - - // Create the zoom behavior node - MouseZoom behavior2 = new MouseZoom(); - behavior2.setTransformGroup(objTrans); - objTrans.addChild(behavior2); - behavior2.setSchedulingBounds(bounds); - - // Create the translate behavior node - MouseTranslate behavior3 = new MouseTranslate(); - behavior3.setTransformGroup(objTrans); - objTrans.addChild(behavior3); - behavior3.setSchedulingBounds(bounds); - } - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.5f); - Background bgNode = new Background(bgColor); - bgNode.setApplicationBounds(bounds); - objRoot.addChild(bgNode); - - // Set up the ambient light - Color3f ambientColor = new Color3f(0.1f, 0.1f, 0.1f); - AmbientLight ambientLightNode = new AmbientLight(ambientColor); - ambientLightNode.setInfluencingBounds(bounds); - objRoot.addChild(ambientLightNode); - - // Set up the directional lights - Color3f light1Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light1Direction = new Vector3f(4.0f, -7.0f, -12.0f); - Color3f light2Color = new Color3f(0.3f, 0.3f, 0.4f); - Vector3f light2Direction = new Vector3f(-6.0f, -2.0f, -1.0f); - - DirectionalLight light1 - = new DirectionalLight(light1Color, light1Direction); - light1.setInfluencingBounds(bounds); - objRoot.addChild(light1); - - DirectionalLight light2 - = new DirectionalLight(light2Color, light2Direction); - light2.setInfluencingBounds(bounds); - objRoot.addChild(light2); - - return objRoot; - } - - private void usage() { - System.out.println("Usage: java PrintCanvas3D <.obj file>"); - System.exit(0); - } // End of usage - - - // Create the Canvas3D (both on-screen and off-screen) - private void createCanvas3D(String[] args) { - if (args.length == 0) { - usage(); - } else { - for (int i = 0 ; i < args.length ; i++) { - if (args[i].startsWith("-")) { - System.err.println("Argument '" + args[i] + "' ignored."); - } - else { - filename = args[i]; - } - } - } - - if (filename == null) { - usage(); - } - - // Create Canvas3D - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - canvas3D = new Canvas3D(config); - canvas3D.setSize(600, 450); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(args); - u = new SimpleUniverse(canvas3D); - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - u.addBranchGraph(scene); - - // Create the off-screen Canvas3D object - offScreenCanvas3D = new OffScreenCanvas3D(config, true); - // Set the off-screen size based on a scale factor times the - // on-screen size - Screen3D sOn = canvas3D.getScreen3D(); - Screen3D sOff = offScreenCanvas3D.getScreen3D(); - Dimension dim = sOn.getSize(); - dim.width *= OFF_SCREEN_SCALE; - dim.height *= OFF_SCREEN_SCALE; - sOff.setSize(dim); - sOff.setPhysicalScreenWidth(sOn.getPhysicalScreenWidth() * - OFF_SCREEN_SCALE); - sOff.setPhysicalScreenHeight(sOn.getPhysicalScreenHeight() * - OFF_SCREEN_SCALE); - - // attach the offscreen canvas to the view - u.getViewer().getView().addCanvas3D(offScreenCanvas3D); - } - - private AppPanel(String args[]) { - setLayout(new BorderLayout()); - - // Create Canvas3D and scene graph - createCanvas3D(args); - add("Center", canvas3D); - } - } - - private void doExit() { - View view = u.getViewer().getView(); - - // Free offscreen buffer - try { - offScreenCanvas3D.setOffScreenBuffer(null); - } - catch (NullPointerException npe) { - //System.err.println(npe + " while freeing off-screen buffer"); - } - - // clear universe resources - u.removeAllLocales(); - - // remove all canvas3Ds from View - view.removeCanvas3D(offScreenCanvas3D); - view.removeCanvas3D(canvas3D); - - System.exit(0); - } - - public void actionPerformed (ActionEvent event) { - Object target = event.getSource(); - - if ((target == snapshotItem) || - (target == printItem)) { - Point loc = canvas3D.getLocationOnScreen(); - offScreenCanvas3D.setOffScreenLocation(loc); - Dimension dim = canvas3D.getSize(); - dim.width *= OFF_SCREEN_SCALE; - dim.height *= OFF_SCREEN_SCALE; - BufferedImage bImage = - offScreenCanvas3D.doRender(dim.width, dim.height); - - if (target == snapshotItem) { - new ImageDisplayer(bImage); - } - else { // (target == printItem) - new ImagePrinter(bImage).print(); - } - } - else if (target == freeBufferItem) { - try { - offScreenCanvas3D.setOffScreenBuffer(null); - } - catch (NullPointerException npe) { - //System.err.println(npe + " while freeing off-screen buffer"); - } - } - else if (target == quitItem) { - doExit(); - } - } - - private JMenuBar createMenuBar() { - JMenuBar menuBar = new JMenuBar(); - JMenu fileMenu = new JMenu("File"); - snapshotItem = new JMenuItem("Snapshot"); - snapshotItem.addActionListener(this); - freeBufferItem = new JMenuItem("Free OffScreen Buffer"); - freeBufferItem.addActionListener(this); - printItem = new JMenuItem("Print..."); - printItem.addActionListener(this); - quitItem = new JMenuItem("Quit"); - quitItem.addActionListener(this); - fileMenu.add(snapshotItem); - fileMenu.add(freeBufferItem); - fileMenu.add(printItem); - fileMenu.add(new JSeparator()); - fileMenu.add(quitItem); - menuBar.add(fileMenu); - return menuBar; - } - - private PrintCanvas3D(String args[]) { - this.setTitle("Canvas3D Print Test"); - - // Create and initialize menu bar - JPopupMenu.setDefaultLightWeightPopupEnabled(false); - this.setJMenuBar(createMenuBar()); - - // Handle the close event - this.addWindowListener(new WindowAdapter() { - public void windowClosing(WindowEvent winEvent) { - doExit(); - } - }); - - // Add main panel to top-level frame and make it visible - this.getContentPane().add(new AppPanel(args)); - this.pack(); - this.setVisible(true); - } - - public static void main(String[] args) { - new PrintCanvas3D(args); - } -} diff --git a/src/PrintCanvas3D/build.xml b/src/PrintCanvas3D/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/PrintCanvas3D/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/PureImmediate/PureImmediate.html b/src/PureImmediate/PureImmediate.html deleted file mode 100644 index fc66335..0000000 --- a/src/PureImmediate/PureImmediate.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Pure Immediate mode</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="PureImmediate.class" width=256 height=256> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a spinning cube instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/PureImmediate/PureImmediate.java b/src/PureImmediate/PureImmediate.java deleted file mode 100644 index 6f3bb28..0000000 --- a/src/PureImmediate/PureImmediate.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.BorderLayout; -import java.awt.GraphicsConfiguration; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.ColorCube; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -/** - * Pure immediate mode example program. In pure immediate mode, the - * renderer must be stopped on the Canvas being rendered into. In our - * example, this is done immediately after the canvas is created. A - * separate thread is started up to do the immediate mode rendering. - */ -public class PureImmediate extends Applet implements Runnable { - - private Canvas3D canvas; - private GraphicsContext3D gc = null; - private Geometry cube = null; - private Transform3D cmt = new Transform3D(); - - // One rotation (2*PI radians) every 6 seconds - private Alpha rotAlpha = new Alpha(-1, 6000); - - private SimpleUniverse u = null; - - // - // Renders a single frame by clearing the canvas, drawing the - // geometry, and swapping the draw and display buffer. - // - public void render() { - if (gc == null) { - // Set up Graphics context - gc = canvas.getGraphicsContext3D(); - gc.setAppearance(new Appearance()); - - // Set up geometry - cube = new ColorCube(0.4).getGeometry(); - } - - // Compute angle of rotation based on alpha value - double angle = rotAlpha.value() * 2.0*Math.PI; - cmt.rotY(angle); - - // Render the geometry for this frame - gc.clear(); - gc.setModelTransform(cmt); - gc.draw(cube); - canvas.swap(); - } - - - // - // Run method for our immediate mode rendering thread. - // - public void run() { - System.out.println("PureImmediate.run: starting main loop"); - while (true) { - render(); - Thread.yield(); - } - } - - - public PureImmediate() { - } - - // - // init: create the canvas, stop the renderer, - // create the universe, and start the drawing thread. - // - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - canvas = new Canvas3D(config); - canvas.stopRenderer(); - add("Center", canvas); - - // Create the universe and viewing branch - u = new SimpleUniverse(canvas); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - // Start a new thread that will continuously render - new Thread(this).start(); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows PureImmediate to be run as an application - // as well as an applet - // - public static void main(String[] args) { - new MainFrame(new PureImmediate(), 256, 256); - } -} diff --git a/src/PureImmediate/PureImmediateStereo.html b/src/PureImmediate/PureImmediateStereo.html deleted file mode 100644 index 9ea311e..0000000 --- a/src/PureImmediate/PureImmediateStereo.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Pure Immediate Stereo mode</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="PureImmediateStereo.class" width=512 height=256> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a spinning cube instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/PureImmediate/PureImmediateStereo.java b/src/PureImmediate/PureImmediateStereo.java deleted file mode 100644 index a15a7c1..0000000 --- a/src/PureImmediate/PureImmediateStereo.java +++ /dev/null @@ -1,264 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.util.*; -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.*; - -/** - * Pure immediate mode stereo example program for stereo. In pure - * immediate mode, the renderer must be stopped on the Canvas being - * rendered into. In our example, this is done immediately after the - * canvas is created. A separate thread is started up to do the - * immediate mode rendering. - */ -public class PureImmediateStereo extends Applet implements Runnable { - - // Set this to true when the graphics card use shared z buffer - // in stereo mode. - public static String defaultSharedStereoZbuffer = Boolean.TRUE.toString(); - - private boolean sharedStereoZbuffer; - private boolean stereoSupport; - private Canvas3D canvas; - private GraphicsContext3D gc; - private Shape3D leftConeBody, rightConeBody; - private Shape3D leftConeCap, rightConeCap; - private Transform3D cmt = new Transform3D(); - private Vector3f leftTrans, rightTrans; - - // One rotation (2*PI radians) every 6 seconds - private Alpha rotAlpha = new Alpha(-1, 6000); - private SimpleUniverse u = null; - private double angle; - - // Compute data which is common for both - // left and right eye - void computeSharedData() { - // Compute angle of rotation based on alpha value - angle = rotAlpha.value() * 2.0*Math.PI; - cmt.rotY(angle); - } - - // Render the geometry in right eye - void renderLeft() { - cmt.setTranslation(leftTrans); - gc.setModelTransform(cmt); - - if (sharedStereoZbuffer) { - // Graphics card shared same z buffer in stereo mode, - // in this case we have to explicitly clearing both - // frame buffers. - gc.clear(); - } - gc.draw(leftConeBody); - gc.draw(leftConeCap); - } - - // Render the geometry for right eye - void renderRight() { - cmt.setTranslation(rightTrans); - gc.setModelTransform(cmt); - - if (sharedStereoZbuffer) { - // Graphics card shared same z buffer in stereo mode, - // in this case we have to explicitly clearing both - // frame buffers. - gc.clear(); - } - gc.draw(rightConeBody); - gc.draw(rightConeCap); - } - - // - // Run method for our immediate mode rendering thread. - // - public void run() { - // Set up Graphics context - gc = canvas.getGraphicsContext3D(); - - // We always need to set this for PureImmediate - // stereo mode - gc.setBufferOverride(true); - - Color3f lightColor = new Color3f(1, 1, 1); - Vector3f lightDir = new Vector3f(0, 0, -1); - DirectionalLight light = new DirectionalLight(lightColor, - lightDir); - - gc.addLight(light); - - Appearance redApp = new Appearance(); - Appearance greenApp = new Appearance(); - Color3f ambientColor = new Color3f(0, 0, 0); - Color3f emissiveColor = new Color3f(0, 0, 0); - Color3f diffuseColor = new Color3f(1, 0, 0); - Color3f specularColor = new Color3f(1, 1, 1); - redApp.setMaterial(new Material(ambientColor, emissiveColor, - diffuseColor, specularColor, 5)); - diffuseColor = new Color3f(0, 1, 0); - - greenApp.setMaterial(new Material(ambientColor, emissiveColor, - diffuseColor, specularColor, 5)); - - // Set up geometry - Cone leftCone = new Cone(0.4f, 0.6f, - Primitive.GENERATE_NORMALS, redApp); - Cone rightCone = new Cone(0.4f, 0.6f, - Primitive.GENERATE_NORMALS, greenApp); - leftConeBody = leftCone.getShape(Cone.BODY); - leftConeCap = leftCone.getShape(Cone.CAP); - - rightConeBody = rightCone.getShape(Cone.BODY); - rightConeCap = rightCone.getShape(Cone.CAP); - leftTrans = new Vector3f(-0.6f, 0, 0); - rightTrans = new Vector3f(0.6f, 0, 0); - - - while (true) { - // compute data which is can be used - // for both left and right eye - computeSharedData(); - - if (stereoSupport) { - if (!sharedStereoZbuffer) { - gc.setStereoMode(GraphicsContext3D.STEREO_BOTH); - // This clear both left and right buffers, we - // must set STEREO_BOTH before it. Otherwise - // it only clear LEFT or RIGHT buffer unless - // this is invoke twice for each buffer. - gc.clear(); - } - - gc.setStereoMode(GraphicsContext3D.STEREO_LEFT); - renderLeft(); - - gc.setStereoMode(GraphicsContext3D.STEREO_RIGHT); - renderRight(); - } else { - gc.clear(); - renderLeft(); - } - - // This swap both left and right buffers so - // there is no need to set STEREO_BOTH before it - canvas.swap(); - - // Be polite to other threads ! - Thread.yield(); - } - } - - - public PureImmediateStereo() { - } - - // - // init: create the canvas, stop the renderer, - // create the universe, and start the drawing thread. - // - public void init() { - setLayout(new BorderLayout()); - - // Preferred to use Stereo - GraphicsConfigTemplate3D gct = new GraphicsConfigTemplate3D(); - gct.setStereo(GraphicsConfigTemplate3D.PREFERRED); - - GraphicsConfiguration config = - GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getBestConfiguration(gct); - - canvas = new Canvas3D(config); - Map map = canvas.queryProperties(); - - stereoSupport = canvas.getStereoAvailable(); - - if (stereoSupport) { - System.out.println("This machine support stereo, you should see a red cone on the left and green cone on the right."); - // User can overide the above default behavior using - // java3d property. - String str = System.getProperty("j3d.sharedstereozbuffer", - defaultSharedStereoZbuffer); - sharedStereoZbuffer = (new Boolean(str)).booleanValue(); - } else { - System.out.println("Stereo is not support, you should only see the left red cone."); - } - - if (!canvas.getDoubleBufferAvailable()) { - System.out.println("Double buffer is not support !"); - } - - // we must stop the Renderer in PureImmediate mode - canvas.stopRenderer(); - add("Center", canvas); - - // Create the universe and viewing branch - u = new SimpleUniverse(canvas); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - // Start a new thread that will continuously render - (new Thread(this)).start(); - } - - // Cleanup all Java3D threads and memory when this applet exit - public void destroy() { - u.cleanup(); - } - - // - // The following allows PureImmediateStereo to be run as an application - // as well as an applet - // - public static void main(String[] args) { - new MainFrame(new PureImmediateStereo(), 512, 256); - } -} diff --git a/src/PureImmediate/PureImmediateStereo_plugin.html b/src/PureImmediate/PureImmediateStereo_plugin.html deleted file mode 100644 index 52d6286..0000000 --- a/src/PureImmediate/PureImmediateStereo_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Pure Immediate Stereo mode</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 512 HEIGHT = 256 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "PureImmediateStereo.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "PureImmediateStereo.class" WIDTH = 512 HEIGHT = 256 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a spinning cube instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "PureImmediateStereo.class" WIDTH = 512 HEIGHT = 256 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a spinning cube instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/PureImmediate/PureImmediate_plugin.html b/src/PureImmediate/PureImmediate_plugin.html deleted file mode 100644 index e268e78..0000000 --- a/src/PureImmediate/PureImmediate_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Pure Immediate mode</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 256 HEIGHT = 256 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "PureImmediate.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "PureImmediate.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a spinning cube instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "PureImmediate.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a spinning cube instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/PureImmediate/build.xml b/src/PureImmediate/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/PureImmediate/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/ReadRaster/ReadRaster.html b/src/ReadRaster/ReadRaster.html deleted file mode 100644 index e18fa76..0000000 --- a/src/ReadRaster/ReadRaster.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>ReadRaster</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="ReadRaster.class" width=256 height=256> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/ReadRaster/ReadRaster.java b/src/ReadRaster/ReadRaster.java deleted file mode 100644 index 49c73f6..0000000 --- a/src/ReadRaster/ReadRaster.java +++ /dev/null @@ -1,222 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.BorderLayout; -import java.awt.event.*; -import java.awt.image.DataBufferInt; -import java.awt.image.BufferedImage; -import java.awt.GraphicsConfiguration; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.ColorCube; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.util.Enumeration; - -public class ReadRaster extends Applet { - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph(BufferedImage bImage, - Raster readRaster) { - - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Raster shape. Add it to the root of the subgraph - - ImageComponent2D drawImageComponent = new ImageComponent2D( - ImageComponent.FORMAT_RGB, bImage); - - Raster drawRaster= new Raster(new Point3f(0.0f, 0.0f, 0.0f), - Raster.RASTER_COLOR, 0, 0, bImage.getWidth(), - bImage.getHeight(), drawImageComponent, null); - Shape3D shape = new Shape3D(drawRaster); - drawRaster.setCapability(Raster.ALLOW_IMAGE_WRITE); - objRoot.addChild(shape); - - // Ceate the transform greup node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - - TransformGroup cubeScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setTranslation(new Vector3d(-0.5, 0.5, 0.0)); - cubeScale.setTransform(t3d); - - cubeScale.addChild(objTrans); - objRoot.addChild(cubeScale); - - // Create a simple shape leaf node, add it to the scene graph. - objTrans.addChild(new ColorCube(0.3)); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into - // the scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - myRotationInterpolator rotator = - new myRotationInterpolator(drawRaster, readRaster, - rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - - // Have Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public ReadRaster() { - } - - public void init() { - - int width = 128; - int height = 128; - - ImageComponent2D readImageComponent = new ImageComponent2D( - ImageComponent.FORMAT_RGB, width, height); - - Raster readRaster = new Raster(new Point3f(0.0f,0.0f,0.0f), - Raster.RASTER_COLOR, 0, 0, width, - height, readImageComponent, null); - - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new myCanvas3D(config, readRaster); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BufferedImage bImage = new BufferedImage(width, height, - BufferedImage.TYPE_INT_ARGB); - - BranchGroup scene = createSceneGraph(bImage, readRaster); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows ReadRaster to be run as an application - // as well as an applet - // - public static void main(String[] args) { - new MainFrame(new ReadRaster(), 256, 256); - } -} - - -class myCanvas3D extends Canvas3D { - - Raster readRaster; - GraphicsContext3D gc; - - public myCanvas3D(GraphicsConfiguration graphicsConfiguration, - Raster readRaster) { - - super(graphicsConfiguration); - this.readRaster = readRaster; - gc = getGraphicsContext3D(); - } - - public void postSwap() { - super.postSwap(); - synchronized(readRaster) { - gc.readRaster(readRaster); - } - } -} - - -class myRotationInterpolator extends RotationInterpolator { - Point3f wPos = new Point3f(0.025f, -0.025f, 0.0f); - Raster drawRaster; - Raster readRaster; - BufferedImage bImage; - ImageComponent2D newImageComponent; - - public myRotationInterpolator(Raster drawRaster, Raster readRaster, - Alpha alpha, - TransformGroup target, - Transform3D axisOfRotation, - float minimumAngle, - float maximumAngle) { - - super(alpha, target, axisOfRotation, minimumAngle, maximumAngle); - this.drawRaster = drawRaster; - this.readRaster = readRaster; - } - - public void processStimulus(Enumeration criteria) { - - synchronized(readRaster) { - bImage = readRaster.getImage().getImage(); - } - newImageComponent = new ImageComponent2D(ImageComponent.FORMAT_RGB, - bImage); - drawRaster.setImage(newImageComponent); - super.processStimulus(criteria); - } -} diff --git a/src/ReadRaster/ReadRaster_plugin.html b/src/ReadRaster/ReadRaster_plugin.html deleted file mode 100644 index 71a2907..0000000 --- a/src/ReadRaster/ReadRaster_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>ReadRaster</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 256 HEIGHT = 256 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "ReadRaster.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "ReadRaster.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "ReadRaster.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/ReadRaster/build.xml b/src/ReadRaster/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/ReadRaster/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/SgChangerListener/ListenerTest.java b/src/SgChangerListener/ListenerTest.java deleted file mode 100644 index e50d719..0000000 --- a/src/SgChangerListener/ListenerTest.java +++ /dev/null @@ -1,221 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.BorderLayout; -import java.awt.GraphicsConfiguration; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.ColorCube; -import com.sun.j3d.utils.geometry.Sphere; -import com.sun.j3d.utils.universe.*; -import java.util.Enumeration; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class ListenerTest extends Applet { - - private SimpleUniverse u = null; - private ChangeListener changeListener; - private BranchGroup scene; - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - objRoot.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND); - objRoot.setCapability(BranchGroup.ALLOW_CHILDREN_READ); - objRoot.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE); - objRoot.setCapability(BranchGroup.ALLOW_DETACH); - - // Create the TransformGroup node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at run time. Add it to - // the root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objRoot.addChild(objTrans); - - // Create a simple Shape3D node; add it to the scene graph. - objTrans.addChild(new ColorCube(0.1)); - - // Create a new Behavior object that will perform the - // desired operation on the specified transform and add - // it into the scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, 4000); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotator.setSchedulingBounds(bounds); - objRoot.addChild(rotator); - - objRoot.addChild(new TestBehavior(objRoot)); - - return objRoot; - } - - public ListenerTest() { - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - scene = createSceneGraph(); - scene.setName("scene"); - u = new SimpleUniverse(c); - changeListener = new ChangeListener(); - u.addGraphStructureChangeListener(changeListener); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - BranchGroup createShape(Vector3f pos) { - Transform3D t3d = new Transform3D(); - t3d.set(1f,pos); - TransformGroup tg = new TransformGroup(t3d); - - tg.addChild(new Sphere(0.02f)); - - BranchGroup bg = new BranchGroup(); - bg.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND); - bg.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE); - bg.setCapability(BranchGroup.ALLOW_CHILDREN_READ); - bg.setCapability(BranchGroup.ALLOW_DETACH); - bg.addChild(tg); - return bg; - } - - // - // The following allows HelloUniverse to be run as an application - // as well as an applet - // - public static void main(String[] args) { - new MainFrame(new ListenerTest(), 256, 256); - } - - class TestBehavior extends Behavior { - private BranchGroup root; - private WakeupCriterion wakeup = new WakeupOnElapsedFrames(0); - private int count = 0; - private BranchGroup moveTo; - private BranchGroup bg1; - - public TestBehavior(BranchGroup root) { - this.root = root; - this.setSchedulingBounds(new BoundingSphere(new Point3d(), Double.POSITIVE_INFINITY)); - - moveTo = new BranchGroup(); - moveTo.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND); - moveTo.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE); - moveTo.setCapability(BranchGroup.ALLOW_CHILDREN_READ); - root.addChild(moveTo); - } - - public void initialize() { - wakeupOn(wakeup); - } - - public void processStimulus(Enumeration e) { - System.out.println("Wakeup"); - - switch(count) { - case 0: - bg1=createShape(new Vector3f(0.02f,0f,0f)); - bg1.setName("bg1.1"); - root.addChild(bg1); - break; - case 1: - moveTo.moveTo(bg1); - break; - case 2: - bg1=createShape(new Vector3f(0.03f, 0.03f, 0f)); - bg1.setName("bg1.2"); - moveTo.setChild(bg1,0); - break; - case 3: - bg1.detach(); - break; - case 4: - u.getLocale().removeBranchGraph(scene); - break; - } - - count++; - - if(count<5) - wakeupOn(wakeup); - } - } - - class ChangeListener implements GraphStructureChangeListener { - public void branchGroupAdded(Object parent, BranchGroup child) { - System.out.println("Add "+parent+" "+child.getName()+" "+child.isLive()); - } - - public void branchGroupMoved(Object oldParent, Object newParent, BranchGroup child) { - System.out.println("Move "+oldParent+" "+newParent+" "+child.getName()+" "+child.isLive()); - } - - public void branchGroupRemoved(Object parent, BranchGroup child) { - System.out.println("Removed "+parent+" "+child.getName()+" "+child.isLive()); - } - - } -} diff --git a/src/SgChangerListener/build.xml b/src/SgChangerListener/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/SgChangerListener/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/Sound/AudioBehaviorMoveOne.java b/src/Sound/AudioBehaviorMoveOne.java deleted file mode 100644 index b447ee2..0000000 --- a/src/Sound/AudioBehaviorMoveOne.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; -import java.util.Enumeration; - -// User defined audio behavior class -public class AudioBehaviorMoveOne extends Behavior { - WakeupOnElapsedTime wt; - WakeupOnBehaviorPost wp; - PointSound psound = new PointSound(); - static int WAKEUP_SOUND = 0; - long dur; - // long time; - // long lastTime = -1; - boolean first_loop = true; - String fileName; - - // Override Behavior's initialize method to setup wakeup criteria - public void initialize() { - MediaContainer sample = new MediaContainer(); - sample.setCapability(MediaContainer.ALLOW_URL_WRITE); - sample.setCapability(MediaContainer.ALLOW_URL_READ); - sample.setURLString(fileName); - psound.setSoundData(sample); - // exaggerate the sound position now that viewPlatform - // tranform is taken into account - Point3f soundPos = new Point3f(-20.0f, 0.0f, 0.0f); - psound.setPosition(soundPos); - WakeupOnElapsedTime wp = new WakeupOnElapsedTime(5000); - wakeupOn(wp); - } - - // Override Behavior's stimulus method to handle the event - public void processStimulus(Enumeration criteria) { - // time = System.currentTimeMillis(); - if (first_loop) { - first_loop = false; - dur = psound.getDuration(); - if (dur == Sound.DURATION_UNKNOWN) - dur = 2000; // Force iterations every 2 seconds - // System.out.println(" sound duration time " + dur); - wt = new WakeupOnElapsedTime(dur); - } - else { - // System.out.println(" time between setEnables calls "+ - // (time - lastTime)); - psound.setEnable(false) ; - } - psound.setEnable(true); - // lastTime = time; - wakeupOn(wt); - } - - // - // Constructor for rotation behavior. Parameter: front and back Sound nodes - // - public AudioBehaviorMoveOne(PointSound psound, String filename) { - this.psound = psound; - this.fileName = filename; - } -} diff --git a/src/Sound/AudioReverberate.java b/src/Sound/AudioReverberate.java deleted file mode 100644 index 9d599c1..0000000 --- a/src/Sound/AudioReverberate.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; -import java.util.Enumeration; - -/* - * Pick the JavaSound reverb type that matches the input parameters - * as best as possible. - * - * Hae Reverb Types Size Persistance Delay - * ================ ----------- ------------ ----------- - * 1 None (dry) - * 2 "Closet" very small very short <.5 fast smooth - * 3 "Garage" med. large medium 1.0 medium - * 4 "Acoustic Lab" med. small short .5 med. fast - * 5 "Cavern" large long >2.0 very slow - * 6 "Dungeon" medium med. long 1.5 med. slow - * - * - * Order is NOT controllable, nor does it have a natural parallel. - * For this reason Order and Reflection are tied together as to - * affect 'Decay Speed'. This speed paired with the size of the - * space implied by the Delay parameter determine the JavaSound - * Reverb type that is set: - * - * | Short: Long: - * Speed | Coeff <= 0.9 Coeff > 0.9 - * Size | Order <= 8 Order > 8 - * --------------------------------------------------------------- - * small (<100ms) | 2 "Closet" 4 "Acoustic Lab" - * medium (<500ms) | 3 "Garage" 6 "Dungeon" - * large (>500ms) | 6 "Dungeon" 5 "Cavern" - */ -// User defined audio behavior class -public class AudioReverberate extends Behavior { - WakeupOnElapsedTime wt; - WakeupOnBehaviorPost wp; - PointSound psound = new PointSound(); - AuralAttributes sScape = null; - static int WAKEUP_SOUND = 0; - long dur; - long time; - boolean firstTime = true; - String fileName; - int lCount = 0; - int loopCount = 0; - - // Override Behavior's initialize method to setup wakeup criteria - public void initialize() { - MediaContainer sample = new MediaContainer(); - sample.setCacheEnable(true); - sample.setURLString(fileName); - psound.setSoundData(sample); - Point3f soundPos = new Point3f(-23.0f, 0.0f, 0.0f); - psound.setPosition(soundPos); - psound.setLoop(3); - firstTime = true; - System.out.println("Reverb Name Size Reflect Order Delay "); - System.out.println("----------- ---- ------- ----- ----- "); - WakeupOnElapsedTime wp = new WakeupOnElapsedTime(5000); - wakeupOn(wp); - } - - // Override Behavior's stimulus method to handle the event - public void processStimulus(Enumeration criteria) { - // time = System.currentTimeMillis(); - if (firstTime) { - wt = new WakeupOnElapsedTime(10000); - firstTime = false; - } - else - psound.setEnable(false) ; - - if (++lCount > 6) - lCount = 1; - - if (lCount == 1) { - sScape.setReverbDelay(10.0f) ; - sScape.setReflectionCoefficient(0.5f) ; - sScape.setReverbOrder(5) ; - System.out.println("Closet sm 0.5 5 10.0 "); - } - else if (lCount == 2) { - sScape.setReverbDelay(10.0f) ; - sScape.setReflectionCoefficient(0.999f) ; - sScape.setReverbOrder(9) ; - System.out.println("Acoustic Lab sm 0.999 9 10.0 "); - } - else if (lCount == 3) { - sScape.setReverbDelay(200.0f) ; - sScape.setReflectionCoefficient(0.4f) ; - sScape.setReverbOrder(3) ; - System.out.println("Garage med 0.4 3 200.0 "); - } - else if (lCount == 4) { - sScape.setReverbDelay(200.0f) ; - sScape.setReflectionCoefficient(0.99f) ; - sScape.setReverbOrder(10) ; - System.out.println("Dungeon med 0.99 10 200.0 "); - } - else if (lCount == 5) { - sScape.setReverbDelay(600.0f) ; - sScape.setReflectionCoefficient(0.33f) ; - sScape.setReverbOrder(7) ; - System.out.println("Dungeon lrg 0.33 7 600.0 "); - } - else if (lCount == 6) { - sScape.setReverbDelay(600.0f) ; - sScape.setReflectionCoefficient(1.0f) ; - sScape.setReverbOrder(20) ; - System.out.println("Cavern lrg 1.0 20 600.0 "); - } - psound.setEnable(true); - wakeupOn(wt); - } - - // - // Constructor for rotation behavior. Parameter: front and back Sound nodes - // - public AudioReverberate(PointSound psound, String filename, - AuralAttributes sscape) { - this.psound = psound; - this.fileName = filename; - this.sScape = sscape; - } -} diff --git a/src/Sound/MoveAppBoundingLeaf.html b/src/Sound/MoveAppBoundingLeaf.html deleted file mode 100644 index 885cc03..0000000 --- a/src/Sound/MoveAppBoundingLeaf.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>MoveAppBoundingLeaf</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="MoveAppBoundingLeaf.class" width=256 height=256> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/Sound/MoveAppBoundingLeaf.java b/src/Sound/MoveAppBoundingLeaf.java deleted file mode 100644 index 423c956..0000000 --- a/src/Sound/MoveAppBoundingLeaf.java +++ /dev/null @@ -1,387 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/* - * This Java3D program: - * Creates an instance of the JavaSoundMixer AudioDevice, initializing it - * and attaching it to the PhysicalEnvironment with a special version - * of UniverseBuilder (UniverseBuildJS). - * Creates one Point sound sources. - * Creates two Soundscapes with their own aural attributes. Each - * of these Soundscapes defines its own bounding leaf region. - * Creates and executes a custom behavior (AudioBehaviorMoveOne) that - * starts sound playing and transforms the AuralAttribute positions - * by modifying the TransformGroup that contains both soundscape - * nodes. - * Usage: java MoveAppBoundingLeaf [ URLpath [ name ]] - * - * The first optional command line parameter is the URL path to directory - * containing: - * (1) the files that will be named on the command line, or - * (2) the javaone/data/sounds directory that contains the default files - * If not given the default path is: - * file:/net/java3d/export/java3d/javaone/data/sounds - * NOTE: This default path is only valid on Solaris Eng Menlo Park network. - * A path must be supplied if sound files to be used are in a different - * directory location. - * NOTE: When running on Java3D Menlo Park Test WinTel platform path should - * be set to - * file:/java3d/export/java3d/javaone/data/sounds - * - * The second thru fourth optional command line parameters are sound file names - * If not given the default file name is: - * unicycle_close.au - */ - -import java.applet.Applet; -import java.net.URL; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.ColorCube; -import com.sun.j3d.utils.geometry.Sphere; -import com.sun.j3d.utils.universe.*; -import java.io.File; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class MoveAppBoundingLeaf extends Applet { - - // File name of sound sample - private static int filenamesGiven = 0; - private static URL[] url = new URL[1]; - private static String[] filename = new String[1]; - private static String path = null; - private static boolean filenamesSet = false; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph() { - // Create the root of the subgraph - BranchGroup objRoot = new BranchGroup(); - - // Create the transform group node and initialize it to the identity. - // Enable the TRANSFORM_WRITE capability so that our behavior code - // can modify it at runtime. Add it to the root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objRoot.addChild(objTrans); - - // Create a simple shape leaf node and add it into the scene graph. - objTrans.addChild(new ColorCube(0.7)); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into the - // scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotation = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 20000, 0, 0, - 0, 0, 0); - RotationInterpolator rotator = - new RotationInterpolator(rotation, - objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - // - // Create a sound node and add it to the scene graph - // - PointSound sound = new PointSound(); - sound.setCapability(PointSound.ALLOW_ENABLE_WRITE); - sound.setCapability(PointSound.ALLOW_INITIAL_GAIN_WRITE); - sound.setCapability(PointSound.ALLOW_SOUND_DATA_WRITE); - sound.setCapability(PointSound.ALLOW_SCHEDULING_BOUNDS_WRITE); - sound.setCapability(PointSound.ALLOW_CONT_PLAY_WRITE); - sound.setCapability(PointSound.ALLOW_RELEASE_WRITE); - sound.setCapability(PointSound.ALLOW_DURATION_READ); - sound.setCapability(PointSound.ALLOW_IS_PLAYING_READ); - sound.setCapability(PointSound.ALLOW_POSITION_WRITE); - sound.setCapability(PointSound.ALLOW_LOOP_WRITE); - - BoundingSphere soundBounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - sound.setSchedulingBounds(soundBounds); - objTrans.addChild(sound); - - /* - * Spheres denoting aural attribute regions - */ - TransformGroup objTransChild1 = new TransformGroup(); - TransformGroup objTransChild2 = new TransformGroup(); - objTransChild1.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTransChild2.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - Transform3D translate1 = new Transform3D(); - Transform3D translate2 = new Transform3D(); - Vector3f vector1 = new Vector3f( 2.0f, 0.0f, 0.0f); - Vector3f vector2 = new Vector3f(-2.0f, 0.0f, 0.0f); - translate1.setTranslation(vector1); - translate2.setTranslation(vector2); - objTransChild1.setTransform(translate1); - objTransChild2.setTransform(translate2); - Sphere sphere1 = new Sphere(0.42f); - Sphere sphere2 = new Sphere(0.38f); - - Appearance app = new Appearance(); - app.setCapability( Appearance.ALLOW_POLYGON_ATTRIBUTES_WRITE ); - sphere1.setAppearance( app ); - sphere2.setAppearance( app ); - objTransChild1.addChild(sphere1); - objTransChild2.addChild(sphere2); - - objTrans.addChild(objTransChild1); - objTrans.addChild(objTransChild2); - /** - * Define Soundscapes/AuralAttributes - */ - // First Aural Attributes - Point2f[] distanceFilter = new Point2f[2]; - distanceFilter[0] = new Point2f(6.0f, 6000f); - distanceFilter[1] = new Point2f(17.0f, 700f); - AuralAttributes attributes = new AuralAttributes(1.0f, 2.0f, 0.3f, - 4.0f, 5, distanceFilter, 0.8f, 0.0f); - attributes.setReverbDelay(90.0f) ; - attributes.setReflectionCoefficient(0.999f) ; - attributes.setReverbOrder(9) ; - - // SoundScape - BoundingSphere bounds1 = - new BoundingSphere(new Point3d(2.0,0.0,0.0), 3.5); - - BoundingLeaf sScapeBounds1 = new BoundingLeaf(bounds1); - Soundscape soundScape = new Soundscape(null, attributes); - soundScape.setApplicationBoundingLeaf(sScapeBounds1); - /** addChild of BoundingLeaf as well**/ - objTrans.addChild(sScapeBounds1); - - AuralAttributes queryAttribs = new AuralAttributes(); - if (queryAttribs == null) - System.out.println(" new AuralAttributes returned NULL"); - // else - // System.out.println(" new AuralAttributes returned " + queryAttribs); - queryAttribs = soundScape.getAuralAttributes(); - if (queryAttribs == null) - System.out.println("getAuralAttributes returned NULL"); - // else - // System.out.println("AuralAttributes for Soundscape 1:"); - float tmpFloat = queryAttribs.getAttributeGain(); - // System.out.println(" Gain = " + tmpFloat); - tmpFloat = queryAttribs.getRolloff(); - // System.out.println(" Rolloff = " + tmpFloat); - tmpFloat = queryAttribs.getReflectionCoefficient(); - // System.out.println(" Reflection Coeff = " + tmpFloat); - tmpFloat = queryAttribs.getReverbDelay(); - // System.out.println(" Delay = " + tmpFloat); - int tmpInt = queryAttribs.getReverbOrder(); - // System.out.println(" Order = " + tmpInt); - int length = queryAttribs.getDistanceFilterLength(); - // System.out.println(" Filter length = " + length); - Point2f[] tmpPoint = new Point2f[length]; - tmpPoint = new Point2f[length]; - for (int i=0; i< length; i++) - tmpPoint[i] = new Point2f(); - queryAttribs.getDistanceFilter(tmpPoint); - // for (int i=0; i< length; i++) - // System.out.println(" Distance Filter = (" + tmpPoint[i].x + - // ", " + tmpPoint[i].y + ")" ); - tmpFloat = queryAttribs.getFrequencyScaleFactor(); - // System.out.println(" Freq scalefactor = " + tmpFloat); - tmpFloat = queryAttribs.getVelocityScaleFactor(); - // System.out.println(" Velocity scalefactor= " + tmpFloat); - objTrans.addChild(soundScape); - - // System.out.println("SoundScape2**********************************"); - Soundscape soundScape2 = new Soundscape(); - distanceFilter = new Point2f[2]; - distanceFilter[0] = new Point2f(2.0f, 20000.0f); - distanceFilter[1] = new Point2f(20.0f, 2000.0f); - AuralAttributes attributes2 = new AuralAttributes(); - attributes2.setAttributeGain(1.2f); - attributes2.setRolloff(2.2f); - attributes2.setReverbDelay(1313.0f) ; - attributes2.setReflectionCoefficient(1.0f) ; - attributes2.setReverbOrder(15) ; - distanceFilter[0] = new Point2f(5.0f, 15000.0f); - distanceFilter[1] = new Point2f(15.0f, 500.0f); - attributes2.setDistanceFilter(distanceFilter); - attributes2.setFrequencyScaleFactor(0.8f); - attributes2.setVelocityScaleFactor(0.0f); - BoundingSphere bounds2 = - new BoundingSphere(new Point3d(-2.0,0.0,0.0), 0.38); - BoundingLeaf sScapeBounds2 = new BoundingLeaf(bounds2); - soundScape2.setApplicationBoundingLeaf(sScapeBounds2); - // set BoundingLeaf as a child of transform node - objTrans.addChild(sScapeBounds2); - soundScape2.setAuralAttributes(attributes2); - - queryAttribs = soundScape2.getAuralAttributes(); - if (queryAttribs == null) - System.out.println(" new AuralAttributes returned NULL"); - // else - // System.out.println(" new AuralAttributes returned " + queryAttribs); - // System.out.println("AuralAttributes for Soundscape 2:"); - tmpFloat = queryAttribs.getAttributeGain(); - // System.out.println(" Gain = " + tmpFloat); - tmpFloat = queryAttribs.getRolloff(); - // System.out.println(" Rolloff = " + tmpFloat); - tmpFloat = queryAttribs.getReflectionCoefficient(); - // System.out.println(" Reflection Coeff = " + tmpFloat); - tmpFloat = queryAttribs.getReverbDelay(); - // System.out.println(" Delay = " + tmpFloat); - tmpInt = queryAttribs.getReverbOrder(); - // System.out.println(" Order = " + tmpInt); - length = queryAttribs.getDistanceFilterLength(); - // System.out.println(" Filter length = " + length); - tmpPoint = new Point2f[length]; - for (int i=0; i< length; i++) - tmpPoint[i] = new Point2f(); - queryAttribs.getDistanceFilter(tmpPoint); - // for (int i=0; i< length; i++) - // System.out.println(" Distance Filter = (" + tmpPoint[i].x + - // ", " + tmpPoint[i].y + ")" ); - tmpFloat = queryAttribs.getFrequencyScaleFactor(); - // System.out.println(" Freq scalefactor = " + tmpFloat); - tmpFloat = queryAttribs.getVelocityScaleFactor(); - // System.out.println(" Velocity scalefactor= " + tmpFloat); - objTrans.addChild(soundScape2); - - // - // Create a new Behavior object that will play the sound - // - AudioBehaviorMoveOne player = new AudioBehaviorMoveOne(sound, - filename[0]); - player.setSchedulingBounds(soundBounds); - objTrans.addChild(player); - - return objRoot; - } - - public MoveAppBoundingLeaf() { - } - - public void init() { - if (!filenamesSet) { - // path is null if started from applet - if (path == null) { - path = getCodeBase().toString(); - } - - /* - * append given file name to given URL path - */ - if (filenamesGiven > 0) { - filename[0] = new String(path + "/" + filename[0]); - } - else { - // fill in default file names if all three not given - filename[0] = new String(path + "/techno_machine.au"); - } - filenamesSet = true; - } - - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - /* - * Change filenames into URLs - */ - String substr = filename[0].substring(0,4); - try { - url[0] = new URL(filename[0]); - } - catch (Exception e) { - return; - } - /* - * Create a simple scene and attach it to the virtual universe - */ - u = new SimpleUniverse(c); - AudioDevice audioDev = u.getViewer().createAudioDevice(); - BranchGroup scene = createSceneGraph(); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows AuralAttributes to be run as an application - // as well as an applet - // - public static void main(String[] args) { - if (args.length > 0) { - if ( (args[0].startsWith("file"+File.pathSeparator)) || - (args[0].startsWith("http"+File.pathSeparator)) ) { - path = args[0]; - } - else { - path = "file:" + args[0]; - } - } - else { - path = "file:."; - } - - if (args.length > 1) { - filename[0] = args[1]; - if (filename[0] != null) { - filenamesGiven++ ; - } - } - - new MainFrame(new MoveAppBoundingLeaf(), 256, 256); - } -} diff --git a/src/Sound/MoveAppBoundingLeaf_plugin.html b/src/Sound/MoveAppBoundingLeaf_plugin.html deleted file mode 100644 index 0681917..0000000 --- a/src/Sound/MoveAppBoundingLeaf_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>MoveAppBoundingLeaf</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 256 HEIGHT = 256 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "MoveAppBoundingLeaf.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "MoveAppBoundingLeaf.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "MoveAppBoundingLeaf.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/Sound/README.release b/src/Sound/README.release deleted file mode 100644 index bbbc20b..0000000 --- a/src/Sound/README.release +++ /dev/null @@ -1,230 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * $Revision$ - * $Date$ - * $State$ - */ - -========================================================================== -Java 3D(TM) Sound 1.3 Beta 1 -========================================================================== - -Java 3D sound is rendered via the use of a specific implementation -of the AudioDevice3D interface. This release includes two AudioDevice3DL2 -implementations. - -= = = = = = = = = = = = = = = = = = = = = = = -HeadspaceMixer AudioDevice3DL2 Implememtation -= = = = = = = = = = = = = = = = = = = = = = = - - The HeadspaceMixer implementation is part of the Sun Java 3D - com.sun.j3d.audioengines.headspace package. This implementation - uses a version of the Headspace Audio Engine licensed from Beatnik - which does all rendering in software and pipes the stereo audio image - to the platform's audio device. - - The implemention that was called JavaSoundMixer in previous Sun - releases of Java 3D has been renamed to HeadspaceMixer. - It was renamed in enticipation of the release of a new AudioDevice - implementation that uses JavaSound API which will be called JavaSoundMixer - (described below). - - The HeadspaceMixer audio device will be created and initialized when the - utility SimpleUniverse.Viewer.createAudioDevice() method is called. - If your application uses this utility, no change will be required to - use the recommended HeadspaceMixer implementation. - - If your application explicitly used the older JavaSoundMixer audio device - implemention from the package com.sun.j3d.audioengines.javasound, you should - change the reference to JavaSoundMixer, at least for this Beta 1 release, - to HeadspaceMixer: - - import com.sun.j3d.audioengines.headspace.HeadspaceMixer; - : - HeadspaceMixer mixer = new HeadspaceMixer(physicalEnvironment); - - Most of the Java 3D Audio features have been implemented but there are - a few exceptions. Additionally, some Java 3D Audio features are only - only partially implemented. - - Hang under JDK 1.3 on Windows platforms - --------------------------------------- - Occationally, some applications when run under JDK 1.3 on Windows - experienced window manager hangs. This problem could not be produced - under JDK 1.4. It is recommended that if this problem arrises with - your application that JDK 1.4 be used. - - Audio Features Not Supported with this release: - ----------------------------------------------- - - Cross-talk cancellation is not performed when rendered audio output - on speakers. - - Spatialization of positional and directional sound is very rudimentary. - Point and Cone sound will simply be panned (approximating interaural - intensity difference) and left-right output signals delayed - (approximating interaural delay difference) applying gain attenuation. - - The filtering of sound source (that would aid in Elevation or Front/ - Back differentiation cues) is not implemented with this AudioDevice. - - For this release, distance and angular low-pass filtering of sound - sources is implemented with a very simple algorithm (that choose speed - over accuracy). - - For this release, Sound.POSITIVE_INFINITY is mapped to 2^15. - - Supported MediaContainers data - ------------------------------ - This engine supports 8- and 16- bit linear, and u-law and A-law formatted - files in mono and stereo AU, AIFF, WAV, and PCM file formats. - Compressed formats such as DVI, GSM, and MOD are not supported at this - time. Encoded format such as MP3 are not supported. - - MIDI and RMF files are supported but not fully spatialized. - MIDI file playback as BackgroundSound and attenuated Point/ConeSounds - is at least partially supported with the following limitations: - - For this release MIDI data is automatically cached. - - Point/ConeSound nodes that use MIDI MediaContainers can not be - panned or delayed to simulate Interaural Intensity or Time - Differences due to the limitiation of the underlying technology - used in this implementation. - - InputStreams as MediaContainers are not supported for Point or - ConeSounds in this implementation. - - Reverberation - ------------- - The Headspace engine supports these 5 reverberation environments: - "Closet" very small area, very absorptive surfaces - "Acoustic Lab" med. small area, equally absorptive/reflective - "Garage" med. large area, somewhat reflective surfaces - "Dungeon" medium area, reflective surfaces - "Cavern" large area, highly reflective surfaces - - The AuralAttributes parameters dealing with reverb - - early and late reflection coefficient and delay time, reverb decay - time - are compared to choose one of these five software aural - environments offered as part of the Headspace engine. - Decay speed, paired with the explicit or implicit size of the space, - determine the Headspace Reverb type that is set: - - | Short: Long: - Size Delay Time | Decay <= 1500ms Decay > 1500ms - --------------------------------------------------------------- - small (< 100ms) | 2 "Closet" 4 "Acoustic Lab" - medium (<=500ms) | 3 "Garage" 6 "Dungeon" - large (> 500ms) | 6 "Dungeon" 5 "Cavern" - - A "feature" of this engines 'Dungeon' reverb type is that the - reverberation is added to the opposite pan position from the - sound's position. This creates an aural effect that sounds - like the reverberation is bouncing off the opposite wall of - the 'Dungeon'. - -= = = = = = = = = = = = = = = = = = = = = = = -JavaSoundMixer AudioDevice3DL2 Implememtation -= = = = = = = = = = = = = = = = = = = = = = = - - The JavaSoundMixer implementation is part of the Sun Java 3D - com.sun.j3d.audioengines.javasound package. This implementation uses - the Java Sound API. All low-level access to the platforms audio device - are dependent on the Java Sound mixer implementation(s) installed on - the machine you're running on. - - The JavaSoundMixer Java 3D audio device implementation uses Java Sound - SourceDataLine streams for non-cached data and Java Sound Clips for - cached data. Support for specific sound cards, the exact input formats - that can be passed as data to Java 3D MediaContainers, and which feature - are rendered in software verses accelleration hardware is dependent on - the Java Sound implementation installed on your machine. - There is guarenteed to be at least one Java Sound mixer implementation - available with all J2SE releases (such as Sun's JDK 1.3 and above). - - Audio Features Not Supported with this release: - ----------------------------------------------- - The JavaSoundMixer is a brand new implementation as of 1.3 Beta 1 - release. While much of the Java 3D Audio API has been implemented - but there are known problems and limitations. Additionally, some Java - 3D Audio features are only partially implemented. - - - Non-linear file formats (A-law and u-law) are not converted. - - MIDI files for all sound types are not implemented. - - There are several timing and channel synchronization problems - encountered when Point and Cone Sounds are rendered. - - Distance and angular low-pass filtering of sound source is not - implemented. - - Spatialization of positional and directional sound is very rudimentary. - See notes above under HeadspaceMixer. - - Cross-talk cancellation for speaker playback is not performed. - - Until these isues are fixed in next Beta 2 release it is recommended - that you use the the HeadspaceMixer implementation. - - Supported MediaContainers data - ------------------------------ - The intent is that all MediaContainer input data types supported by - Java Sound will also be supported by the JavaSoundMixer implementation. - This implementation will not have the restrictions on InputStreams as - the HeadspaceMixer implementation has. - - Reverberation - ------------- - Java 3D reverberation parameters map to a corresponding set - reverb control parameters available thru JavaSound API for Clips - (cached MediaContainers). The exact auralization rendering based - on these parameters is dependent on the Java Sound mixer implementation - choosen. - -= = = = = = = = = = = = = = = = = = = = = = = -Use -= = = = = = = = = = = = = = = = = = = = = = = -Any Java 3D program that wants to render sounds must create and initialize -an instance of either HeadspaceMixer or JavaSoundMixer directly or indirectly -(using SimpleUniverse utilities). - -All of the sound example programs included in this release use the -com.sun.j3d.utils.universe.SimpleUniverse class to create and initialize -an instance of the HeadspaceMixer with the following code: - - Canvas3D c = new Canvas3D(null); - SimpleUniverse u = new SimpleUniverse(c); - AudioDevice audioDev = u.getViewer().createAudioDevice(); - -As application can initialize the HeadspaceMixer implementation directly -with code like following: - - import com.sun.j3d.audioengines.headspace.HeadspaceMixer; - : - Canvas3D canvas = new Canvas3D(null); - SimpleUniverse univ = new SimpleUniverse(canvas); - univ.getViewingPlatform().setNominalViewingTransform(); - PhysicalEnvironment physicalEnv = - univ.getViewer().getPhysicalEnvironment(); - if (physicalEnv != null) { - HeadspaceMixer mixer = new HeadspaceMixer(physicalEnv); - if (mixer == null) - System.out.println("creation of audio device failed"); - mixer.initialize(); - } - -NOTE: Sun JDK has an implementation of the javax.sound.sampled.Mixer -interface named 'HeadspaceMixer'. If your application also imports the -javax.sound.sampled package you'll need to explicitly differentiate by -specifying the full Java 3D package when referencing HeadspaceMixer: - : - com.sun.j3d.audioengines.headspace.HeadspaceMixer mixer = - new com.sun.j3d.audioengines.headspace.HeadspaceMixer(physicalEnv); - : - - -========================================================================== -General Installation Notes: -========================================================================== - If your Java 3D application has trouble acquiring the AudioDevice - ("Audio Device unavailable" exception occurs) you may need to exit - other applications that use sound. NOTE: If this occurs we would - appreciate being informed as to which sound application Java 3D had - problems running simultaneously with. - - Combining calls to JMF 1.0 methods in your Java 3D sound application - is still dangerous. The engines used by both APIs may not yet be - robust enough to handle supporting both of these concurrently. diff --git a/src/Sound/ReverberateSound.html b/src/Sound/ReverberateSound.html deleted file mode 100644 index 7bdee49..0000000 --- a/src/Sound/ReverberateSound.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>ReverberateSound</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="ReverberateSound.class" width=256 height=256> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/Sound/ReverberateSound.java b/src/Sound/ReverberateSound.java deleted file mode 100644 index dbe1aa5..0000000 --- a/src/Sound/ReverberateSound.java +++ /dev/null @@ -1,220 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/* - * ReverberateSound - * - * Same as MoveSound except this calls UniverseBuilderJS to use the - * JavaSoundMixer AudioDevice rather than the HolosketchMixer device. - * - * NOTE: To run this anywhere but the Solaris Eng Menlo Park network - * the URL path must be set to the java3d/javaone directory. - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.ColorCube; -import com.sun.j3d.utils.universe.*; -import java.io.File; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class ReverberateSound extends Applet { - - // File name of sound sample - private static String[] filename = new String[1]; - private static String path = null; - private static int filenamesGiven = 0; - private static boolean filenamesSet = false; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph() { - // Create the root of the subgraph - BranchGroup objRoot = new BranchGroup(); - - // Create the transform group node and initialize it to the identity. - // Enable the TRANSFORM_WRITE capability so that our behavior code - // can modify it at runtime. Add it to the root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objRoot.addChild(objTrans); - - // Create a simple shape leaf node and add it into the scene graph. - objTrans.addChild(new ColorCube(0.4)); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into the - // scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotation = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 20000, 0, 0, - 0, 0, 0); - RotationInterpolator rotator = - new RotationInterpolator(rotation, - objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - - // - // Create an AuralAttribute with reverb params set - // - Soundscape soundScape2 = new Soundscape(); - AuralAttributes attributes2 = new AuralAttributes(); - attributes2.setReverbOrder(6); - attributes2.setCapability(AuralAttributes.ALLOW_REVERB_ORDER_WRITE); - attributes2.setCapability(AuralAttributes.ALLOW_REVERB_DELAY_WRITE); - attributes2.setCapability(AuralAttributes.ALLOW_REFLECTION_COEFFICIENT_WRITE); - soundScape2.setApplicationBounds(bounds); - soundScape2.setAuralAttributes(attributes2); - objRoot.addChild(soundScape2); - - // - // Create a sound node and add it to the scene graph - // - PointSound sound = new PointSound(); - sound.setCapability(PointSound.ALLOW_ENABLE_WRITE); - sound.setCapability(PointSound.ALLOW_INITIAL_GAIN_WRITE); - sound.setCapability(PointSound.ALLOW_SOUND_DATA_WRITE); - sound.setCapability(PointSound.ALLOW_DURATION_READ); - sound.setCapability(PointSound.ALLOW_POSITION_WRITE); - sound.setCapability(PointSound.ALLOW_LOOP_WRITE); - sound.setSchedulingBounds(bounds); - - objTrans.addChild(sound); - // - // Create a new Behavior object that will play the sound - // - AudioReverberate player = new AudioReverberate(sound, filename[0], - attributes2); - player.setSchedulingBounds(bounds); - objTrans.addChild(player); - - - return objRoot; - } - - public ReverberateSound() { - } - - public void init() { - if (!filenamesSet) { - // path is null if started from applet - if (path == null) { - // the path for an applet - path = getCodeBase().toString(); - } - - /* - * append given file name to given URL path - */ - if (filenamesGiven > 0) { - filename[0] = new String(path + "/" + filename[0]); - } - else { - // fill in default file names if all three not given - filename[0] = new String(path + "/hello_universe.au"); - } - filenamesSet = true; - } - - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - /* - * Create a simple scene and attach it to the virtual universe - */ - u = new SimpleUniverse(c); - AudioDevice audioDev = u.getViewer().createAudioDevice(); - BranchGroup scene = createSceneGraph(); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows ReverberateSound to be run as an application - // as well as an applet - // - public static void main(String[] args) { - if (args.length > 0) { - if ( (args[0].startsWith("file"+File.pathSeparator)) || - (args[0].startsWith("http"+File.pathSeparator)) ) { - path = args[0]; - } - else { - path = "file:" + args[0]; - } - } - else { - path = "file:."; - } - - if (args.length > 1) { - filename[0] = args[1]; - if (filename[0] != null) { - filenamesGiven++ ; - } - } - - new MainFrame(new ReverberateSound(), 256, 256); - } -} diff --git a/src/Sound/ReverberateSound_plugin.html b/src/Sound/ReverberateSound_plugin.html deleted file mode 100644 index a3cd545..0000000 --- a/src/Sound/ReverberateSound_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>ReverberateSound</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 256 HEIGHT = 256 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "ReverberateSound.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "ReverberateSound.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "ReverberateSound.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/Sound/SimpleSounds.html b/src/Sound/SimpleSounds.html deleted file mode 100644 index 1330e5f..0000000 --- a/src/Sound/SimpleSounds.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Simple Sound test</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="SimpleSounds.class" width=256 height=256> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Simple Sound test instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/Sound/SimpleSounds.java b/src/Sound/SimpleSounds.java deleted file mode 100644 index 6113a28..0000000 --- a/src/Sound/SimpleSounds.java +++ /dev/null @@ -1,292 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.net.URL; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.ColorCube; -import com.sun.j3d.utils.universe.*; -import java.io.File; -import java.security.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -/* - * This Java3D program: - * Creates an instance of the JavaSoundMixer AudioDevice, initializing it - * and attaching it to the PhysicalEnvironment by using - * SimpleUniverse. - * Creates one cached Background and two cached Point sound sources. - * Creates and executes a custom behavior (SimpleSoundsBehavior) that - * starts the sound playing and transforms the PointSound source - * by modifying the TransformGroup that contains the Sound nodes. - * - * Usage: - * java SimpleSounds [URLpath [name1 [name2 [name2]]]] - * - * The first optional command line parameter is the URL path to directory - * containing "file:" or "http:" and then directory path string. - * If you are using the suppled default sound files in the same directory - * as this test program then only the URLpath need be supplied on the - * command line. - * If this parameter is not included then the current path to the directory - * this program is running in is used for an application - * and the codebase is used for an applet. - * The second thru fourth optional command line parameters are sound file names - * If not given, the default file names are: - * techno_machine.au - * hello_universe.au - * roar.au - * that correspond to the 3 'voice' quality, 8-bit, u-law, 8-kHz samples - * included in the same directory as this test program. - * - * Java Sound engine has been advertised to support the following 8- and 16- - * bit, linear and u-law, mono and stereo sound sample file formats: AU, - * AIFF, WAV, and PCM. Non-cached MIDI and RMF files are also supported. - * Neither compressed formats (DVI, GSM, MOD) nor A-law formated files are - * supported at this time, but they will be converted. - */ - -public class SimpleSounds extends Applet { - - // File name of sound sample - private static int filenamesGiven = 0; - private static URL[] url = new URL[3]; - private static String[] filename = new String[3]; - private static String path = null; - private static boolean filenamesSet = false; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph() { - // Create the root of the subgraph - BranchGroup objRoot = new BranchGroup(); - - // Create the transform group node and initialize it to the identity. - // Enable the TRANSFORM_WRITE capability so that our behavior code - // can modify it at runtime. Add it to the root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objRoot.addChild(objTrans); - - // Create a simple shape leaf node and add it into the scene graph. - objTrans.addChild(new ColorCube(0.4)); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into the - // scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotation = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 20000, 0, 0, - 0, 0, 0); - RotationInterpolator rotator = - new RotationInterpolator(rotation, - objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - /* - * Create a sound node and add it to the scene graph - */ - BackgroundSound sound1 = new BackgroundSound(); - PointSound sound2 = new PointSound(); - PointSound sound3 = new PointSound(); - sound1.setCapability(PointSound.ALLOW_ENABLE_WRITE); - sound1.setCapability(PointSound.ALLOW_INITIAL_GAIN_WRITE); - sound1.setCapability(PointSound.ALLOW_SOUND_DATA_WRITE); - sound1.setCapability(PointSound.ALLOW_SCHEDULING_BOUNDS_WRITE); - sound1.setCapability(PointSound.ALLOW_CONT_PLAY_WRITE); - sound1.setCapability(PointSound.ALLOW_RELEASE_WRITE); - sound1.setCapability(PointSound.ALLOW_DURATION_READ); - sound1.setCapability(PointSound.ALLOW_IS_PLAYING_READ); - sound1.setCapability(PointSound.ALLOW_LOOP_WRITE); - sound2.setCapability(PointSound.ALLOW_ENABLE_WRITE); - sound2.setCapability(PointSound.ALLOW_INITIAL_GAIN_WRITE); - sound2.setCapability(PointSound.ALLOW_SOUND_DATA_WRITE); - sound2.setCapability(PointSound.ALLOW_SCHEDULING_BOUNDS_WRITE); - sound2.setCapability(PointSound.ALLOW_CONT_PLAY_WRITE); - sound2.setCapability(PointSound.ALLOW_RELEASE_WRITE); - sound2.setCapability(PointSound.ALLOW_DURATION_READ); - sound2.setCapability(PointSound.ALLOW_IS_PLAYING_READ); - sound2.setCapability(PointSound.ALLOW_POSITION_WRITE); - sound2.setCapability(PointSound.ALLOW_LOOP_WRITE); - sound3.setCapability(PointSound.ALLOW_ENABLE_WRITE); - sound3.setCapability(PointSound.ALLOW_INITIAL_GAIN_WRITE); - sound3.setCapability(PointSound.ALLOW_SOUND_DATA_WRITE); - sound3.setCapability(PointSound.ALLOW_SCHEDULING_BOUNDS_WRITE); - sound3.setCapability(PointSound.ALLOW_CONT_PLAY_WRITE); - sound3.setCapability(PointSound.ALLOW_RELEASE_WRITE); - sound3.setCapability(PointSound.ALLOW_DURATION_READ); - sound3.setCapability(PointSound.ALLOW_IS_PLAYING_READ); - sound3.setCapability(PointSound.ALLOW_POSITION_WRITE); - - BoundingSphere soundBounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - sound1.setSchedulingBounds(soundBounds); - sound2.setSchedulingBounds(soundBounds); - sound3.setSchedulingBounds(soundBounds); - objTrans.addChild(sound1); - objTrans.addChild(sound2); - objTrans.addChild(sound3); - - - /* - * Create a new Behavior object that will play the sound - */ - SimpleSoundsBehavior player = new SimpleSoundsBehavior( - sound1, sound2, sound3, - url[0], url[1], url[2], soundBounds); - player.setSchedulingBounds(soundBounds); - objTrans.addChild(player); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public SimpleSounds() { - } - - public void init() { - if (!filenamesSet) { - // path is null if started from appletviewer/browser - if (path == null) { - // the path for an applet - path = getCodeBase().toString(); - } - int j; - /* - * append given file name to given URL path - */ - for (j=0; j<filenamesGiven; j++) - filename[j] = new String(path + "/" + filename[j]); - /* - * fill in default file names if all three not given - */ - for (int i=j; i<3; i++) { - if (i == 0) - filename[0] = new String(path + "/techno_machine.au"); - if (i == 1) - filename[1] = new String(path + "/hello_universe.au"); - if (i == 2) - filename[2] = new String(path + "/roar.au"); - } - filenamesSet = true; - } - - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - /* - * Change filenames into URLs - */ - for (int i=0; i<3; i++) { - try { - url[i] = new URL(filename[i]); - } - catch (Exception e) { - System.out.println(e.getMessage()); - return; - } - } - - /* - * Create a simple scene and attach it to the virtual universe - */ - u = new SimpleUniverse(c); - AudioDevice audioDev = u.getViewer().createAudioDevice(); - BranchGroup scene = createSceneGraph(); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - /* - * The following allows SimpleSounds to be run as an application - * as well as an applet - */ - public static void main(String[] args) { - if (args.length > 0) { - if ( (args[0].startsWith("file"+File.pathSeparator)) || - (args[0].startsWith("http"+File.pathSeparator)) ) { - path = args[0]; - } - else { - path = "file:" + args[0]; - } - } - else { - path = "file:."; - } - - for (int i=0; i<3; i++) { - if (args.length > (i+1)) { - filename[i] = args[i+1]; - if (filename[i] != null) { - filenamesGiven++ ; - } - } - else - break; - } - new MainFrame(new SimpleSounds(), args, 256, 256); - } -} diff --git a/src/Sound/SimpleSoundsBehavior.java b/src/Sound/SimpleSoundsBehavior.java deleted file mode 100644 index 22ff9f5..0000000 --- a/src/Sound/SimpleSoundsBehavior.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; -import java.net.URL; -import java.util.Enumeration; - -// User defined audio behavior class -public class SimpleSoundsBehavior extends Behavior { - WakeupOnElapsedTime wt; - WakeupOnBehaviorPost wp; - BackgroundSound sound1 = new BackgroundSound(); - PointSound sound2 = new PointSound(); - PointSound sound3 = new PointSound(); - static int WAKEUP_SOUND = 0; - int soundIndex = 0; - URL URLName1; - URL URLName2; - URL URLName3; - BoundingSphere bounds; - - // Override Behavior's initialize method to setup wakeup criteria - public void initialize() { - MediaContainer sample1 = new MediaContainer(); - MediaContainer sample2 = new MediaContainer(); - MediaContainer sample3 = new MediaContainer(); - sample1.setCapability(MediaContainer.ALLOW_URL_WRITE); - sample1.setCapability(MediaContainer.ALLOW_URL_READ); - sample1.setURLObject(URLName1); - //sample1.setCacheEnable(false); - sound1.setLoop(0); - sound1.setContinuousEnable(false); - sound1.setReleaseEnable(false); - sound1.setSoundData(sample1); - sound1.setInitialGain(0.7f); - sample2.setCapability(MediaContainer.ALLOW_URL_WRITE); - sample2.setCapability(MediaContainer.ALLOW_URL_READ); - sample2.setURLObject(URLName2); - sound2.setLoop(Sound.INFINITE_LOOPS); - sound2.setContinuousEnable(false); - sound2.setReleaseEnable(false); - sound2.setSoundData(sample2); - sound2.setInitialGain(2.0f); - Point3f sound2Pos = new Point3f(-30.0f, 0.0f, 0.0f); - sound2.setPosition(sound2Pos); - sample3.setCapability(MediaContainer.ALLOW_URL_WRITE); - sample3.setCapability(MediaContainer.ALLOW_URL_READ); - sample3.setURLObject(URLName3); - sound3.setContinuousEnable(false); - sound3.setReleaseEnable(false); - sound3.setSoundData(sample3); - sound3.setInitialGain(4.0f); - Point3f sound3Pos = new Point3f(30.0f, 0.0f, 0.0f); - sound3.setPosition(sound3Pos); - - wt = new WakeupOnElapsedTime(2000); - WakeupOnElapsedTime wp = new WakeupOnElapsedTime(5000); - wakeupOn(wp); - } - - // Override Behavior's stimulus method to handle the event - public void processStimulus(Enumeration criteria) { - - switch (soundIndex) - { - // Active - case 0: - // System.out.println("****Enable First Sound"); - sound1.setEnable(true); - wakeupOn(wt); - break; - case 1: - // System.out.println("********Enable Second Sound"); - sound2.setEnable(true); - wakeupOn(wt); - break; - case 2: - case 4: - case 6: - case 8: - case 10: - // System.out.println("************Enable Third Sound"); - sound3.setEnable(true); - wakeupOn(wt); - break; - case 3: - case 5: - case 7: - case 9: - // System.out.println("************Disable Third Sound"); - sound3.setEnable(false); - wakeupOn(wt); - break; - - case 11: - // System.out.println("********Disable Second Sound"); - sound2.setEnable(false) ; - wakeupOn(wt); - break; - case 12: - // System.out.println("****Disable First Sound"); - sound1.setEnable(false) ; - System.out.println("SimpleSounds: test complete"); - wt = new WakeupOnElapsedTime(400000); - wakeupOn(wt); - break; - - default: - break; - } - soundIndex++; - } - - // - // Constructor for rotation behavior. - // Parameters: sound node - // sample file name - // sound node's bounds - // - public SimpleSoundsBehavior(BackgroundSound sound1, - PointSound sound2, - PointSound sound3, - URL urlName1, - URL urlName2, - URL urlName3, - BoundingSphere soundBounds) { - this.sound1 = sound1; - this.sound2 = sound2; - this.sound3 = sound3; - this.URLName1 = urlName1; - this.URLName2 = urlName2; - this.URLName3 = urlName3; - this.bounds = (BoundingSphere)soundBounds.clone(); - } -} diff --git a/src/Sound/SimpleSounds_plugin.html b/src/Sound/SimpleSounds_plugin.html deleted file mode 100644 index 55d834e..0000000 --- a/src/Sound/SimpleSounds_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Simple Sound test</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 256 HEIGHT = 256 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "SimpleSounds.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "SimpleSounds.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Simple Sound test instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "SimpleSounds.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Simple Sound test instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/Sound/build.xml b/src/Sound/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/Sound/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/Sound/hello_universe.au b/src/Sound/hello_universe.au Binary files differdeleted file mode 100644 index 08d7456..0000000 --- a/src/Sound/hello_universe.au +++ /dev/null diff --git a/src/Sound/roar.au b/src/Sound/roar.au Binary files differdeleted file mode 100644 index 202b628..0000000 --- a/src/Sound/roar.au +++ /dev/null diff --git a/src/Sound/techno_machine.au b/src/Sound/techno_machine.au Binary files differdeleted file mode 100644 index 12e47ea..0000000 --- a/src/Sound/techno_machine.au +++ /dev/null diff --git a/src/SphereMotion/SphereMotion.html b/src/SphereMotion/SphereMotion.html deleted file mode 100644 index 7656224..0000000 --- a/src/SphereMotion/SphereMotion.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Moving lit sphere</TITLE> -</HEAD> -<BODY BGCOLOR="#0C0C33"> -<applet align=middle code="SphereMotion.class" width=700 height=700> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a moving lit sphere instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/SphereMotion/SphereMotion.java b/src/SphereMotion/SphereMotion.java deleted file mode 100644 index a2ac065..0000000 --- a/src/SphereMotion/SphereMotion.java +++ /dev/null @@ -1,301 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.Sphere; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.util.Enumeration; - -public class SphereMotion extends Applet { - - // Constants for type of light to use - private static final int DIRECTIONAL_LIGHT = 0; - private static final int POINT_LIGHT = 1; - private static final int SPOT_LIGHT = 2; - - // Flag indicates type of lights: directional, point, or spot - // lights. This flag is set based on command line argument - private static int lightType = POINT_LIGHT; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph(SimpleUniverse u) { - Color3f eColor = new Color3f(0.0f, 0.0f, 0.0f); - Color3f sColor = new Color3f(1.0f, 1.0f, 1.0f); - Color3f objColor = new Color3f(0.6f, 0.6f, 0.6f); - Color3f lColor1 = new Color3f(1.0f, 0.0f, 0.0f); - Color3f lColor2 = new Color3f(0.0f, 1.0f, 0.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.2f); - - Transform3D t; - - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create a bounds for the background and lights - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - Background bg = new Background(bgColor); - bg.setApplicationBounds(bounds); - objScale.addChild(bg); - - // Create a Sphere object, generate one copy of the sphere, - // and add it into the scene graph. - Material m = new Material(objColor, eColor, objColor, sColor, 100.0f); - Appearance a = new Appearance(); - m.setLightingEnable(true); - a.setMaterial(m); - Sphere sph = new Sphere(1.0f, Sphere.GENERATE_NORMALS, 80, a); - objScale.addChild(sph); - - // Create the transform group node for the each light and initialize - // it to the identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add them to the root - // of the subgraph. - TransformGroup l1RotTrans = new TransformGroup(); - l1RotTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objScale.addChild(l1RotTrans); - - TransformGroup l2RotTrans = new TransformGroup(); - l2RotTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objScale.addChild(l2RotTrans); - - // Create transformations for the positional lights - t = new Transform3D(); - Vector3d lPos1 = new Vector3d(0.0, 0.0, 2.0); - t.set(lPos1); - TransformGroup l1Trans = new TransformGroup(t); - l1RotTrans.addChild(l1Trans); - - t = new Transform3D(); - Vector3d lPos2 = new Vector3d(0.5, 0.8, 2.0); - t.set(lPos2); - TransformGroup l2Trans = new TransformGroup(t); - l2RotTrans.addChild(l2Trans); - - // Create Geometry for point lights - ColoringAttributes caL1 = new ColoringAttributes(); - ColoringAttributes caL2 = new ColoringAttributes(); - caL1.setColor(lColor1); - caL2.setColor(lColor2); - Appearance appL1 = new Appearance(); - Appearance appL2 = new Appearance(); - appL1.setColoringAttributes(caL1); - appL2.setColoringAttributes(caL2); - l1Trans.addChild(new Sphere(0.05f, appL1)); - l2Trans.addChild(new Sphere(0.05f, appL2)); - - // Create lights - AmbientLight aLgt = new AmbientLight(alColor); - - Light lgt1 = null; - Light lgt2 = null; - - Point3f lPoint = new Point3f(0.0f, 0.0f, 0.0f); - Point3f atten = new Point3f(1.0f, 0.0f, 0.0f); - Vector3f lDirect1 = new Vector3f(lPos1); - Vector3f lDirect2 = new Vector3f(lPos2); - lDirect1.negate(); - lDirect2.negate(); - - switch (lightType) { - case DIRECTIONAL_LIGHT: - lgt1 = new DirectionalLight(lColor1, lDirect1); - lgt2 = new DirectionalLight(lColor2, lDirect2); - break; - case POINT_LIGHT: - lgt1 = new PointLight(lColor1, lPoint, atten); - lgt2 = new PointLight(lColor2, lPoint, atten); - break; - case SPOT_LIGHT: - lgt1 = new SpotLight(lColor1, lPoint, atten, lDirect1, - 25.0f * (float)Math.PI / 180.0f, 10.0f); - lgt2 = new SpotLight(lColor2, lPoint, atten, lDirect2, - 25.0f * (float)Math.PI / 180.0f, 10.0f); - break; - } - - // Set the influencing bounds - aLgt.setInfluencingBounds(bounds); - lgt1.setInfluencingBounds(bounds); - lgt2.setInfluencingBounds(bounds); - - // Add the lights into the scene graph - objScale.addChild(aLgt); - l1Trans.addChild(lgt1); - l2Trans.addChild(lgt2); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into the - // scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotor1Alpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - RotationInterpolator rotator1 = - new RotationInterpolator(rotor1Alpha, - l1RotTrans, - yAxis, - 0.0f, (float) Math.PI*2.0f); - rotator1.setSchedulingBounds(bounds); - l1RotTrans.addChild(rotator1); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into the - // scene graph. - Alpha rotor2Alpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 1000, 0, 0, - 0, 0, 0); - RotationInterpolator rotator2 = - new RotationInterpolator(rotor2Alpha, - l2RotTrans, - yAxis, - 0.0f, 0.0f); - bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotator2.setSchedulingBounds(bounds); - l2RotTrans.addChild(rotator2); - - // Create a position interpolator and attach it to the view - // platform - TransformGroup vpTrans = - u.getViewingPlatform().getViewPlatformTransform(); - Transform3D axisOfTranslation = new Transform3D(); - Alpha transAlpha = new Alpha(-1, - Alpha.INCREASING_ENABLE | - Alpha.DECREASING_ENABLE, - 0, 0, - 5000, 0, 0, - 5000, 0, 0); - axisOfTranslation.rotY(-Math.PI/2.0); - PositionInterpolator translator = - new PositionInterpolator(transAlpha, - vpTrans, - axisOfTranslation, - 2.0f, 3.5f); - translator.setSchedulingBounds(bounds); - objScale.addChild(translator); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public SphereMotion() { - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - u = new SimpleUniverse(c); - BranchGroup scene = createSceneGraph(u); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows SphereMotion to be run as an application - // as well as an applet - // - public static void main(String[] args) { - // Parse the Input Arguments - String usage = "Usage: java SphereMotion [-point | -spot | -dir]"; - for (int i = 0; i < args.length; i++) { - if (args[i].startsWith("-")) { - if (args[i].equals("-point")) { - System.out.println("Using point lights"); - lightType = POINT_LIGHT; - } - else if (args[i].equals("-spot")) { - System.out.println("Using spot lights"); - lightType = SPOT_LIGHT; - } - else if (args[i].equals("-dir")) { - System.out.println("Using directional lights"); - lightType = DIRECTIONAL_LIGHT; - } - else { - System.out.println(usage); - System.exit(0); - } - } - else { - System.out.println(usage); - System.exit(0); - } - } - - new MainFrame(new SphereMotion(), 700, 700); - } -} diff --git a/src/SphereMotion/SphereMotion_plugin.html b/src/SphereMotion/SphereMotion_plugin.html deleted file mode 100644 index 7d3a632..0000000 --- a/src/SphereMotion/SphereMotion_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Moving lit sphere</TITLE> -</HEAD> -<BODY BGCOLOR="#0C0C33"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 700 HEIGHT = 700 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "SphereMotion.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "SphereMotion.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a moving lit sphere instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "SphereMotion.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a moving lit sphere instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/SphereMotion/build.xml b/src/SphereMotion/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/SphereMotion/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/SplineAnim/SplineAnim.html b/src/SplineAnim/SplineAnim.html deleted file mode 100644 index 0aa2198..0000000 --- a/src/SplineAnim/SplineAnim.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>SplineAnim</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="SplineAnim.class" width=500 height=600> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/SplineAnim/SplineAnim.java b/src/SplineAnim/SplineAnim.java deleted file mode 100644 index c106903..0000000 --- a/src/SplineAnim/SplineAnim.java +++ /dev/null @@ -1,601 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.io.*; -import java.applet.Applet; -import java.awt.FlowLayout; -import java.awt.*; -import java.awt.event.*; -import java.util.Hashtable; -import javax.media.j3d.*; -import javax.vecmath.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.*; -import com.sun.j3d.utils.universe.*; -import com.sun.j3d.loaders.Scene; -import com.sun.j3d.loaders.objectfile.ObjectFile; -import com.sun.j3d.loaders.ParsingErrorException; -import com.sun.j3d.loaders.IncorrectFormatException; -import com.sun.j3d.utils.behaviors.vp.*; -import com.sun.j3d.utils.behaviors.interpolators.*; - - - -/* - * This program demonstrates the use of KBRotPosScaleSplinePathInterpolator - * in order to to do spline animation paths using Kochanek-Bartels (also - * known as TCB or Tension-Continuity-Bias ) splines. A cone red cone - * is animated along a spline path specified by 5 knot points, which - * are showns as cyan spheres. - * - * Use the left mouse button to changes orientation of scene. - * Use the middle mouse button to zoom in/out - * Use the right mouse button to pan the scene - */ -public class SplineAnim extends Applet implements ActionListener, - AdjustmentListener, - ItemListener { - - // 3D Canvas - Canvas3D canvas; - - // UI Components - Panel controlPanel; - Panel canvasPanel; - Button animateButton; - Choice interpChoice; - Scrollbar speedSlider; - Label speedLabel; - Label interpLabel; - - // Scene Graph - BoundingSphere bounds; - BranchGroup root; - BranchGroup behaviorBranch; - Transform3D sceneTransform; - TransformGroup sceneTransformGroup; - Transform3D objTransform; - TransformGroup objTransformGroup; - Transform3D lightTransform1; - Transform3D lightTransform2; - TransformGroup light1TransformGroup; - TransformGroup light2TransformGroup; - - // Key Frames & Interpolator - int duration = 5000; - Alpha animAlpha; - Transform3D yAxis; - KBKeyFrame[] linearKeyFrames = new KBKeyFrame[6]; - KBKeyFrame[] splineKeyFrames = new KBKeyFrame[6]; - KBRotPosScaleSplinePathInterpolator splineInterpolator; - KBRotPosScaleSplinePathInterpolator linearInterpolator; - - // Data: Knot positions & transform groups - Vector3f pos0 = new Vector3f(-5.0f, -5.0f, 0.0f); - Vector3f pos1 = new Vector3f(-5.0f, 5.0f, 0.0f); - Vector3f pos2 = new Vector3f( 0.0f, 5.0f, 0.0f); - Vector3f pos3 = new Vector3f( 0.0f, -5.0f, 0.0f); - Vector3f pos4 = new Vector3f( 5.0f, -5.0f, 0.0f); - Vector3f pos5 = new Vector3f( 5.0f, 5.0f, 0.0f); - TransformGroup k0TransformGroup; - TransformGroup k1TransformGroup; - TransformGroup k2TransformGroup; - TransformGroup k3TransformGroup; - TransformGroup k4TransformGroup; - TransformGroup k5TransformGroup; - - // Flags - boolean animationOn = true; - boolean linear = false; - - private SimpleUniverse u = null; - - public SplineAnim() { - } - - public void init() { - this.setLayout(new FlowLayout()); - - // Create the canvas and the UI - canvasPanel = new Panel(); - controlPanel = new Panel(); - createCanvasPanel(canvasPanel); - this.add(canvasPanel); - createControlPanel(controlPanel); - this.add(controlPanel); - - // Create the scene. - BranchGroup scene = createSceneGraph(); - - // Setup keyframe data for our animation - setupSplineKeyFrames (); - setupLinearKeyFrames (); - - // Setup alpha, create the interpolators and start them. We - // create both a linear and a spline interpolator and turn on - // one depending on user selection. The default is spline. - setupAnimationData (); - createInterpolators(); - startInterpolator(); - - // Add viewing platform - u = new SimpleUniverse(canvas); - - // add mouse behaviors to ViewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - viewingPlatform.setNominalViewingTransform(); - - // add orbit behavior to the ViewingPlatform - OrbitBehavior orbit = new OrbitBehavior(canvas, - OrbitBehavior.REVERSE_ALL); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - /* - * This creates the control panel which contains a choice menu to - * toggle between spline and linear interpolation, a slider to - * adjust the speed of the animation and a animation start/stop - * button. - */ - private void createControlPanel(Panel p) { - - GridBagLayout gl = new GridBagLayout(); - GridBagConstraints gbc = new GridBagConstraints(); - - p.setLayout (gl); - gbc.weightx = 100; gbc.weighty = 100; - gbc.fill = GridBagConstraints.BOTH; - - gbc.gridx = 0; gbc.gridy = 0; - gbc.gridwidth = 1; gbc.gridheight = 1; - interpLabel = new Label("Interpolation Type", Label.LEFT); - p.add(interpLabel, gbc); - - gbc.gridx = 1; gbc.gridy = 0; - gbc.gridwidth = 1; gbc.gridheight = 1; - interpChoice = new Choice(); - interpChoice.add("Spline"); - interpChoice.add("Linear"); - p.add(interpChoice, gbc); - interpChoice.addItemListener (this); - - gbc.gridx = 0; gbc.gridy = 2; - gbc.gridwidth = 2; gbc.gridheight = 1; - speedSlider = new Scrollbar(Scrollbar.HORIZONTAL, 2, 1, 0, 11); - speedSlider.setUnitIncrement (1); - p.add(speedSlider, gbc); - speedSlider.addAdjustmentListener(this); - - gbc.gridx = 0; gbc.gridy = 3; - gbc.gridwidth = 2; gbc.gridheight = 1; - speedLabel = new Label(" - Animation Speed +", Label.CENTER); - p.add(speedLabel, gbc); - - gbc.gridx = 0; gbc.gridy = 5; - gbc.gridwidth = 2; gbc.gridheight = 1; - animateButton = new Button("Stop Animation"); - p.add(animateButton, gbc); - animateButton.addActionListener (this); - - - } - - /* - * This creates the Java3D canvas - */ - private void createCanvasPanel(Panel p) { - - GridBagLayout gl = new GridBagLayout(); - GridBagConstraints gbc = new GridBagConstraints(); - - p.setLayout(gl); - gbc.gridx = 0; gbc.gridy = 0; - gbc.gridwidth = 5; gbc.gridheight = 5; - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - canvas = new Canvas3D(config); - canvas.setSize(490,490); - p.add(canvas,gbc); - - } - - /* - * This creates the scene with 5 knot points represented by cyan - * spheres, a cone obejct that will be transformed, and two directional - * lights + and ambient light. - */ - public BranchGroup createSceneGraph() { - - // Colors for lights and objects - Color3f aColor = new Color3f(0.2f, 0.2f, 0.2f); - Color3f eColor = new Color3f(0.0f, 0.0f, 0.0f); - Color3f sColor = new Color3f(1.0f, 1.0f, 1.0f); - Color3f coneColor = new Color3f(0.9f, 0.1f, 0.1f); - Color3f sphereColor= new Color3f(0.1f, 0.7f, 0.9f); - Color3f bgColor = new Color3f(0.0f, 0.0f, 0.0f); - Color3f lightColor = new Color3f(1.0f, 1.0f, 1.0f); - - // Root of the branch grsph - BranchGroup root = new BranchGroup(); - - // Create transforms such that all objects appears in the scene - sceneTransform = new Transform3D(); - sceneTransform.setScale(0.14f); - Transform3D yrot = new Transform3D(); - yrot.rotY(-Math.PI/5.0d); - sceneTransform.mul(yrot); - sceneTransformGroup = new TransformGroup(sceneTransform); - sceneTransformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - sceneTransformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - root.addChild(sceneTransformGroup); - - // Create bounds for the background and lights - bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0f); - - // Set up the background - Background bg = new Background(bgColor); - bg.setApplicationBounds(bounds); - sceneTransformGroup.addChild(bg); - - // Create the transform group node for the lights - lightTransform1 = new Transform3D(); - lightTransform2 = new Transform3D(); - Vector3d lightPos1 = new Vector3d(0.0, 0.0, 2.0); - Vector3d lightPos2 = new Vector3d(1.0, 0.0, -2.0); - lightTransform1.set(lightPos1); - lightTransform2.set(lightPos2); - light1TransformGroup = new TransformGroup(lightTransform1); - light2TransformGroup = new TransformGroup(lightTransform2); - sceneTransformGroup.addChild(light1TransformGroup); - sceneTransformGroup.addChild(light2TransformGroup); - - // Create lights - AmbientLight ambLight = new AmbientLight(aColor); - Light dirLight1; - Light dirLight2; - - Vector3f lightDir1 = new Vector3f(lightPos1); - Vector3f lightDir2 = new Vector3f(lightPos2); - lightDir1.negate(); - lightDir2.negate(); - dirLight1 = new DirectionalLight(lightColor, lightDir1); - dirLight2 = new DirectionalLight(lightColor, lightDir2); - - // Set the influencing bounds - ambLight.setInfluencingBounds(bounds); - dirLight1.setInfluencingBounds(bounds); - dirLight2.setInfluencingBounds(bounds); - - // Add the lights into the scene graph - sceneTransformGroup.addChild(ambLight); - sceneTransformGroup.addChild(dirLight1); - sceneTransformGroup.addChild(dirLight2); - - // Create a cone and add it to the scene graph. - objTransform = new Transform3D(); - objTransformGroup = new TransformGroup(objTransform); - objTransformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - sceneTransformGroup.addChild(objTransformGroup); - - Material m = new Material(coneColor, eColor, coneColor, sColor, 100.0f); - Appearance a = new Appearance(); - m.setLightingEnable(true); - a.setMaterial(m); - Cone cone = new Cone(0.4f, 1.0f); - cone.setAppearance(a); - objTransformGroup.addChild(cone); - - // Create transform groups for each knot point - // knot point 0 - Transform3D t3dKnot = new Transform3D(); - t3dKnot.set (pos0); - TransformGroup k0TransformGroup = new TransformGroup(t3dKnot); - sceneTransformGroup.addChild(k0TransformGroup); - - // knot point 1 - t3dKnot = new Transform3D(); - t3dKnot.set (pos1); - TransformGroup k1TransformGroup = new TransformGroup(t3dKnot); - sceneTransformGroup.addChild(k1TransformGroup); - - // knot point 2 - t3dKnot = new Transform3D(); - t3dKnot.set (pos2); - TransformGroup k2TransformGroup = new TransformGroup(t3dKnot); - sceneTransformGroup.addChild(k2TransformGroup); - - // knot point 3 - t3dKnot = new Transform3D(); - t3dKnot.set (pos3); - TransformGroup k3TransformGroup = new TransformGroup(t3dKnot); - sceneTransformGroup.addChild(k3TransformGroup); - - // knot point 4 - t3dKnot = new Transform3D(); - t3dKnot.set (pos4); - TransformGroup k4TransformGroup = new TransformGroup(t3dKnot); - sceneTransformGroup.addChild(k4TransformGroup); - - // knot point 5 - t3dKnot = new Transform3D(); - t3dKnot.set (pos5); - TransformGroup k5TransformGroup = new TransformGroup(t3dKnot); - sceneTransformGroup.addChild(k5TransformGroup); - - // Create spheres for each knot point's transform group - ColoringAttributes sphereColorAttr = new ColoringAttributes(); - sphereColorAttr.setColor(sphereColor); - Appearance sphereAppearance = new Appearance(); - sphereAppearance.setColoringAttributes(sphereColorAttr); - k0TransformGroup.addChild(new Sphere(0.10f, sphereAppearance)); - k1TransformGroup.addChild(new Sphere(0.10f, sphereAppearance)); - k2TransformGroup.addChild(new Sphere(0.10f, sphereAppearance)); - k3TransformGroup.addChild(new Sphere(0.10f, sphereAppearance)); - k4TransformGroup.addChild(new Sphere(0.10f, sphereAppearance)); - k5TransformGroup.addChild(new Sphere(0.10f, sphereAppearance)); - - return root; - } - - /* - * This sets up the key frame data for the spline interpolator. Each knot - * point has a scale and rotation component specified. The second argument - * to KBKeyFrame (in this case 0) tells the interpolator that this is - * to be interpolated using splines. The last three arguments to - * KBKeyFrame are Tension, Continuity, and Bias components for each - * key frame. - */ - private void setupSplineKeyFrames () { - // Prepare spline keyframe data - Point3f p = new Point3f (pos0); // position - float head = (float)Math.PI/2.0f; // heading - float pitch = 0.0f; // pitch - float bank = 0.0f; // bank - Point3f s = new Point3f(1.0f, 1.0f, 1.0f); // uniform scale - splineKeyFrames[0] = - new KBKeyFrame(0.0f, 0, p, head, pitch, bank, s, 0.0f, 0.0f, 0.0f); - - p = new Point3f (pos1); - head = 0.0f; // heading - pitch = 0.0f; // pitch - bank = (float)-Math.PI/2.0f; // bank - s = new Point3f(1.0f, 1.0f, 1.0f); // uniform scale - splineKeyFrames[1] = - new KBKeyFrame(0.2f, 0, p, head, pitch, bank, s, 0.0f, 0.0f, 0.0f); - - p = new Point3f (pos2); - head = 0.0f; // heading - pitch = 0.0f; // pitch - bank = 0.0f; // bank - s = new Point3f(0.7f, 0.7f, 0.7f); // uniform scale - splineKeyFrames[2] = - new KBKeyFrame(0.4f, 0, p, head, pitch, bank, s, 0.0f, 0.0f, 0.0f); - - p = new Point3f (pos3); - head = (float)Math.PI/2.0f; // heading - pitch = 0.0f; // pitch - bank = (float)Math.PI/2.0f; // bank - s = new Point3f(0.5f, 0.5f, 0.5f); // uniform scale - splineKeyFrames[3] = - new KBKeyFrame(0.6f, 0, p, head, pitch, bank, s, 0.0f, 0.0f, 0.0f); - - p = new Point3f (pos4); - head = (float)-Math.PI/2.0f; // heading - pitch = (float)-Math.PI/2.0f; // pitch - bank = (float)Math.PI/2.0f; // bank - s = new Point3f(0.4f, 0.4f, 0.4f); // uniform scale - splineKeyFrames[4] = - new KBKeyFrame(0.8f, 0, p, head, pitch, bank, s, 0.0f, 0.0f, 0.0f); - - p = new Point3f (pos5); - head = 0.0f; // heading - pitch = 0.0f; // pitch - bank = 0.0f; // bank - s = new Point3f(1.0f, 1.0f, 1.0f); // uniform scale - splineKeyFrames[5] = - new KBKeyFrame(1.0f, 0, p, head, pitch, bank, s, 0.0f, 0.0f, 0.0f); - } - - /* - * This sets up the key frame data for the linear interpolator. Each knot - * point has a scale and rotation component specified. The second argument - * to KBKeyFrame (in this case 1) tells the interpolator that this is - * to be interpolated linearly. The last three arguments to TCBKeyFrame - * are Tension, Continuity, and Bias components for each key frame. - */ - private void setupLinearKeyFrames () { - // Prepare linear keyframe data - Point3f p = new Point3f (pos0); - float head = 0.0f; // heading - float pitch = 0.0f; // pitch - float bank = 0.0f; // bank - Point3f s = new Point3f(1.0f, 1.0f, 1.0f); // uniform scale - linearKeyFrames[0] = - new KBKeyFrame(0.0f, 1, p, head, pitch, bank, s, 0.0f, 0.0f, 0.0f); - - p = new Point3f (pos1); - linearKeyFrames[1] = - new KBKeyFrame(0.2f, 1, p, head, pitch, bank, s, 0.0f, 0.0f, 0.0f); - - p = new Point3f (pos2); - linearKeyFrames[2] = - new KBKeyFrame(0.4f, 1, p, head, pitch, bank, s, 0.0f, 0.0f, 0.0f); - - p = new Point3f (pos3); - linearKeyFrames[3] = - new KBKeyFrame(0.6f, 1, p, head, pitch, bank, s, 0.0f, 0.0f, 0.0f); - - p = new Point3f (pos4); - linearKeyFrames[4] = - new KBKeyFrame(0.8f, 1, p, head, pitch, bank, s, 0.0f, 0.0f, 0.0f); - - p = new Point3f (pos5); - linearKeyFrames[5] = - new KBKeyFrame(1.0f, 1, p, head, pitch, bank, s, 0.0f, 0.0f, 0.0f); - } - - - /* - * This sets up alpha for the interpolator - */ - private void setupAnimationData () { - yAxis = new Transform3D(); - animAlpha = new Alpha (-1,Alpha.INCREASING_ENABLE,0,0,duration,0,0,0,0,0); - } - - /* - * create a spline and a linear interpolator, but we will activate only - * one in startInterpolator() - */ - private void createInterpolators () { - - behaviorBranch = new BranchGroup(); - - // create spline interpolator - splineInterpolator = - new KBRotPosScaleSplinePathInterpolator(animAlpha, objTransformGroup, - yAxis, splineKeyFrames); - splineInterpolator.setSchedulingBounds(bounds); - behaviorBranch.addChild(splineInterpolator); - - // create linear interpolator - linearInterpolator = - new KBRotPosScaleSplinePathInterpolator(animAlpha, objTransformGroup, - yAxis, linearKeyFrames); - linearInterpolator.setSchedulingBounds(bounds); - behaviorBranch.addChild(linearInterpolator); - objTransformGroup.addChild(behaviorBranch); - - } - - /* - * This activates one of the interpolators depending on the state of the - * linear boolean flag which may be toggled by the user using the choice - * menu. - */ - public void startInterpolator () { - if (animationOn) { - if (linear) { - splineInterpolator.setEnable(false); - linearInterpolator.setEnable(true); - } else { - linearInterpolator.setEnable(false); - splineInterpolator.setEnable(true); - } - } - } - - - /* - * Toggle animation - */ - public void actionPerformed (ActionEvent event) { - Object source = event.getSource(); - if (source == animateButton) { - try { - // toggle animation - if (animationOn) { - animationOn = false; - splineInterpolator.setEnable(false); - linearInterpolator.setEnable(false); - animateButton.setLabel("Start Animation"); - } else { - animationOn = true; - startInterpolator(); - animateButton.setLabel("Stop Animation"); - } - } catch (Exception e) { - System.err.println ("Exception " + e); - } - } - } - - /* - * Toggle the interpolators - */ - public void itemStateChanged (ItemEvent event) { - Object source = event.getSource(); - ItemSelectable ie = event.getItemSelectable(); - if (source == interpChoice) { - try { - if (ie.getSelectedObjects()[0] == "Spline") { - linear = false; - } - if (ie.getSelectedObjects()[0] == "Linear") { - linear = true; - } - startInterpolator(); - } catch (Exception e) { - System.err.println ("Exception " + e); - } - } - } - - - /* - * Adjust the speed of the animations - */ - public void adjustmentValueChanged (AdjustmentEvent e) { - int value = e.getValue(); - duration = 6000 - (500 * value); - animAlpha.setIncreasingAlphaDuration(duration); - } - - - - public static void main(String[] args) { - Frame frame = new MainFrame(new SplineAnim(), 500, 600); - } -} diff --git a/src/SplineAnim/SplineAnim_plugin.html b/src/SplineAnim/SplineAnim_plugin.html deleted file mode 100644 index d6885c8..0000000 --- a/src/SplineAnim/SplineAnim_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>SplineAnim</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 500 HEIGHT = 600 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "SplineAnim.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "SplineAnim.class" WIDTH = 500 HEIGHT = 600 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "SplineAnim.class" WIDTH = 500 HEIGHT = 600 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/SplineAnim/build.xml b/src/SplineAnim/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/SplineAnim/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/SwingInteraction/SwingInteraction.form b/src/SwingInteraction/SwingInteraction.form deleted file mode 100644 index 591580c..0000000 --- a/src/SwingInteraction/SwingInteraction.form +++ /dev/null @@ -1,82 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> - -<Form version="1.0" type="org.netbeans.modules.form.forminfo.JFrameFormInfo"> - <NonVisualComponents> - <Menu class="javax.swing.JMenuBar" name="jMenuBar1"> - <SubComponents> - <Menu class="javax.swing.JMenu" name="fileMenu"> - <Properties> - <Property name="text" type="java.lang.String" value="File"/> - </Properties> - <SubComponents> - <MenuItem class="javax.swing.JMenuItem" name="exitMenuItem"> - <Properties> - <Property name="text" type="java.lang.String" value="Exit"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="exitMenuItemActionPerformed"/> - </Events> - </MenuItem> - </SubComponents> - </Menu> - </SubComponents> - </Menu> - </NonVisualComponents> - <Properties> - <Property name="defaultCloseOperation" type="int" value="3"/> - <Property name="title" type="java.lang.String" value="Swing Interaction Test"/> - </Properties> - <SyntheticProperties> - <SyntheticProperty name="menuBar" type="java.lang.String" value="jMenuBar1"/> - <SyntheticProperty name="formSizePolicy" type="int" value="1"/> - </SyntheticProperties> - <AuxValues> - <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> - <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> - <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,44,0,0,1,-112"/> - </AuxValues> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> - <SubComponents> - <Container class="javax.swing.JPanel" name="guiPanel"> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> - <BorderConstraints direction="North"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> - <SubComponents> - <Component class="javax.swing.JButton" name="rotateButton"> - <Properties> - <Property name="text" type="java.lang.String" value="Rotate"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rotateButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - </SubComponents> - </Container> - <Container class="javax.swing.JPanel" name="drawingPanel"> - <Properties> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[500, 500]"/> - </Property> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> - <BorderConstraints direction="Center"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> - </Container> - </SubComponents> -</Form> diff --git a/src/SwingInteraction/SwingInteraction.java b/src/SwingInteraction/SwingInteraction.java deleted file mode 100644 index 0d90062..0000000 --- a/src/SwingInteraction/SwingInteraction.java +++ /dev/null @@ -1,250 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.universe.*; -import com.sun.j3d.utils.geometry.ColorCube; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.awt.GraphicsConfiguration; -import java.awt.event.ActionEvent; -import java.awt.event.MouseEvent; -import java.util.Enumeration; -import javax.swing.JPopupMenu; - -/** - * Simple Java 3D test program created in NetBeans to illustrate interacting - * with a Java 3D scene graph from an Swing-based program. - */ -public class SwingInteraction extends javax.swing.JFrame { - - private SimpleUniverse univ = null; - private BranchGroup scene = null; - - private TransformGroup objTrans; - private RotateBehavior awtBehavior; - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objRoot.addChild(objTrans); - - // Create a simple shape leaf node, add it to the scene graph. - objTrans.addChild(new ColorCube(0.4)); - - // create the RotateBehavior - awtBehavior = new RotateBehavior(objTrans); - BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), - 100.0); - awtBehavior.setSchedulingBounds(bounds); - objRoot.addChild(awtBehavior); - - return objRoot; - } - - private Canvas3D createUniverse() { - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - - univ = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - univ.getViewingPlatform().setNominalViewingTransform(); - - // Ensure at least 5 msec per frame (i.e., < 200Hz) - univ.getViewer().getView().setMinimumFrameCycleTime(5); - - return c; - } - - /** - * Creates new form SwingInteraction - */ - public SwingInteraction() { - // Initialize the GUI components - JPopupMenu.setDefaultLightWeightPopupEnabled(false); - initComponents(); - - // Create Canvas3D and SimpleUniverse; add canvas to drawing panel - Canvas3D c = createUniverse(); - drawingPanel.add(c, java.awt.BorderLayout.CENTER); - - // Create the content branch and add it to the universe - scene = createSceneGraph(); - univ.addBranchGraph(scene); - } - - /** - * Behavior class that waits for a behavior post from the AWT event handler - */ - class RotateBehavior extends Behavior { - - private TransformGroup transformGroup; - private Transform3D trans = new Transform3D(); - private WakeupCriterion criterion; - private float angle = 0.0f; - - private final int ROTATE = 1; - - // create a new RotateBehavior - RotateBehavior(TransformGroup tg) { - transformGroup = tg; - } - - // initialize behavior to wakeup on a behavior post with id = ROTATE - public void initialize() { - criterion = new WakeupOnBehaviorPost(this, ROTATE); - wakeupOn(criterion); - } - - // processStimulus to rotate the cube - public void processStimulus(Enumeration criteria) { - angle += Math.toRadians(10.0); - trans.rotY(angle); - transformGroup.setTransform(trans); - wakeupOn(criterion); - } - - // when the mouse is clicked, postId for the behavior - void rotate() { - postId(ROTATE); - } - } - - // ---------------------------------------------------------------- - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents - private void initComponents() { - java.awt.GridBagConstraints gridBagConstraints; - - guiPanel = new javax.swing.JPanel(); - rotateButton = new javax.swing.JButton(); - drawingPanel = new javax.swing.JPanel(); - jMenuBar1 = new javax.swing.JMenuBar(); - fileMenu = new javax.swing.JMenu(); - exitMenuItem = new javax.swing.JMenuItem(); - - setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); - setTitle("Swing Interaction Test"); - guiPanel.setLayout(new java.awt.GridBagLayout()); - - rotateButton.setText("Rotate"); - rotateButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rotateButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); - guiPanel.add(rotateButton, gridBagConstraints); - - getContentPane().add(guiPanel, java.awt.BorderLayout.NORTH); - - drawingPanel.setLayout(new java.awt.BorderLayout()); - - drawingPanel.setPreferredSize(new java.awt.Dimension(500, 500)); - getContentPane().add(drawingPanel, java.awt.BorderLayout.CENTER); - - fileMenu.setText("File"); - exitMenuItem.setText("Exit"); - exitMenuItem.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - exitMenuItemActionPerformed(evt); - } - }); - - fileMenu.add(exitMenuItem); - - jMenuBar1.add(fileMenu); - - setJMenuBar(jMenuBar1); - - pack(); - }// </editor-fold>//GEN-END:initComponents - - private void rotateButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rotateButtonActionPerformed - awtBehavior.rotate(); - }//GEN-LAST:event_rotateButtonActionPerformed - - private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitMenuItemActionPerformed - System.exit(0); - }//GEN-LAST:event_exitMenuItemActionPerformed - - /** - * @param args the command line arguments - */ - public static void main(String args[]) { - java.awt.EventQueue.invokeLater(new Runnable() { - public void run() { - new SwingInteraction().setVisible(true); - } - }); - } - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JPanel drawingPanel; - private javax.swing.JMenuItem exitMenuItem; - private javax.swing.JMenu fileMenu; - private javax.swing.JPanel guiPanel; - private javax.swing.JMenuBar jMenuBar1; - private javax.swing.JButton rotateButton; - // End of variables declaration//GEN-END:variables - -} diff --git a/src/SwingInteraction/build.xml b/src/SwingInteraction/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/SwingInteraction/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/Text2D/MoverBehavior.java b/src/Text2D/MoverBehavior.java deleted file mode 100644 index 752ac9c..0000000 --- a/src/Text2D/MoverBehavior.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.event.*; -import java.awt.AWTEvent; -import javax.media.j3d.*; -import java.util.Enumeration; -import javax.vecmath.*; - -// Mover behavior class - used to allow viewer to move using arrow keys -class MoverBehavior extends Behavior -{ - WakeupOnAWTEvent w1 = new WakeupOnAWTEvent(KeyEvent.KEY_PRESSED); - WakeupCriterion[] w2 = {w1}; - WakeupCondition w = new WakeupOr(w2); - TransformGroup viewTransformGroup; - double rotation = 0.0; // holds current rotation radians - - public void initialize() { - // Establish initial wakeup criteria - wakeupOn(w); - } - - - /** - * Override Behavior's stimulus method to handle the event. - */ - public void processStimulus(Enumeration criteria) { - WakeupOnAWTEvent ev; - WakeupCriterion genericEvt; - AWTEvent[] events; - - while (criteria.hasMoreElements()) { - genericEvt = (WakeupCriterion) criteria.nextElement(); - if (genericEvt instanceof WakeupOnAWTEvent) { - ev = (WakeupOnAWTEvent) genericEvt; - events = ev.getAWTEvent(); - processManualEvent(events); - } - } - // Set wakeup criteria for next time - wakeupOn(w); - } - - - /** - * Process a keyboard event to move or rotate the viewer. - */ - void processManualEvent(AWTEvent[] events) { - - for (int i = 0; i < events.length; ++i) { - if (events[i] instanceof KeyEvent) { - KeyEvent event = (KeyEvent)events[i]; - if (event.getKeyCode() == KeyEvent.VK_EQUALS) { - continue; - } - Transform3D t = new Transform3D(); - viewTransformGroup.getTransform(t); - Vector3f viewDir = new Vector3f(0f, 0f, -1f); - Vector3f translation = new Vector3f(); - t.get(translation); - t.transform(viewDir); - if (event.getKeyCode() == KeyEvent.VK_UP) { - translation.x += viewDir.x; - translation.y += viewDir.y; - translation.z += viewDir.z; - } - else if (event.getKeyCode() == KeyEvent.VK_DOWN) { - translation.x -= viewDir.x; - translation.y -= viewDir.y; - translation.z -= viewDir.z; - } - else if (event.getKeyCode() == KeyEvent.VK_RIGHT) { - rotation += -.1; - } - else if (event.getKeyCode() == KeyEvent.VK_LEFT) { - rotation += .1; - } - t.rotY(rotation); - t.setTranslation(translation); - viewTransformGroup.setTransform(t); - } - } - } - - - /** - * Constructor - */ - public MoverBehavior(TransformGroup trans) { - viewTransformGroup = trans; - Bounds bound = new BoundingSphere(new Point3d(0.0,0.0,0.0),10000.0); - this.setSchedulingBounds(bound); - } -} - - - diff --git a/src/Text2D/Text2DTest.html b/src/Text2D/Text2DTest.html deleted file mode 100644 index 316540b..0000000 --- a/src/Text2D/Text2DTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Text2DTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="Text2DTest.class" width=256 height=256> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/Text2D/Text2DTest.java b/src/Text2D/Text2DTest.java deleted file mode 100644 index 7815df9..0000000 --- a/src/Text2D/Text2DTest.java +++ /dev/null @@ -1,191 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.Font; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.Text2D; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class Text2DTest extends Applet { - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - TransformGroup textTranslationGroup; - Transform3D textTranslation; - float yPos = -.5f; - Shape3D textObject = new Text2D("Rotating Yellow Text", - new Color3f(1f, 1f, 0f), - "Serif", - 60, - Font.BOLD); - Appearance app = textObject.getAppearance(); - - PolygonAttributes pa = app.getPolygonAttributes(); - if (pa == null) - pa = new PolygonAttributes(); - pa.setCullFace(PolygonAttributes.CULL_NONE); - if (app.getPolygonAttributes() == null) - app.setPolygonAttributes(pa); - objTrans.addChild(textObject); - - - textTranslation = new Transform3D(); - textTranslation.setTranslation(new Vector3f(0f, yPos, 0f)); - textTranslationGroup = new TransformGroup(textTranslation); - textTranslationGroup.addChild(objTrans); - objScale.addChild(textTranslationGroup); - yPos += .5f; - - /* Blue 40point text*/ - textObject = new Text2D("Blue 40point Text", - new Color3f(0f, 0f, 1f), - "Serif", - 40, - Font.BOLD); - textTranslation = new Transform3D(); - textTranslation.setTranslation(new Vector3f(0f, yPos, 0f)); - textTranslationGroup = new TransformGroup(textTranslation); - textTranslationGroup.addChild(textObject); - objScale.addChild(textTranslationGroup); - yPos += .5f; - - /* Green italic text*/ - textObject = new Text2D("Green Italic Text", - new Color3f(0f, 1f, 0f), - "Serif", - 70, - Font.ITALIC); - textTranslation = new Transform3D(); - textTranslation.setTranslation(new Vector3f(0f, yPos, 0f)); - textTranslationGroup = new TransformGroup(textTranslation); - textTranslationGroup.addChild(textObject); - objScale.addChild(textTranslationGroup); - yPos += .5f; - - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into - // the scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - - return objRoot; - } - - public Text2DTest() { - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - MoverBehavior navigator = - new MoverBehavior(u.getViewingPlatform().getViewPlatformTransform()); - scene.addChild(navigator); - - // Have Java 3D perform optimizations on this scene graph. - scene.compile(); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows HelloUniverse to be run as an application - // as well as an applet - // - public static void main(String[] args) { - new MainFrame(new Text2DTest(), 256, 256); - } -} diff --git a/src/Text2D/Text2DTest_plugin.html b/src/Text2D/Text2DTest_plugin.html deleted file mode 100644 index c19ec04..0000000 --- a/src/Text2D/Text2DTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Text2DTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 256 HEIGHT = 256 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "Text2DTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "Text2DTest.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "Text2DTest.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/Text2D/build.xml b/src/Text2D/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/Text2D/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/Text3D/Text3DLoad.html b/src/Text3D/Text3DLoad.html deleted file mode 100644 index a2b4d5b..0000000 --- a/src/Text3D/Text3DLoad.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Text3DLoad</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="Text3DLoad.class" width=700 height=700> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/Text3D/Text3DLoad.java b/src/Text3D/Text3DLoad.java deleted file mode 100644 index 453b4ce..0000000 --- a/src/Text3D/Text3DLoad.java +++ /dev/null @@ -1,284 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.loaders.objectfile.*; -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.io.*; -import com.sun.j3d.utils.behaviors.vp.*; -import com.sun.j3d.utils.behaviors.keyboard.*; - -public class Text3DLoad extends Applet implements ActionListener { - - private String fontName = "TestFont"; - private String textString = null; - private double tessellation = 0.0; - - private SimpleUniverse u; - - private Button button; - private boolean behaviorsOn = false; - private OrbitBehavior orbit; - - public BranchGroup createSceneGraph() { - float sl = textString.length(); - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - // Assuming uniform size chars, set scale to fit string in view - t3d.setScale(1.2/sl); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - objScale.addChild(objTrans); - - Font3D f3d; - if (tessellation > 0.0) { - f3d = new Font3D(new Font(fontName, Font.PLAIN, 2), - tessellation, - new FontExtrusion()); - } - else { - f3d = new Font3D(new Font(fontName, Font.PLAIN, 2), - new FontExtrusion()); - } - Text3D txt = new Text3D(f3d, textString, - new Point3f( -sl/2.0f, -1.f, -1.f)); - Shape3D sh = new Shape3D(); - Appearance app = new Appearance(); - Material mm = new Material(); - mm.setLightingEnable(true); - app.setMaterial(mm); - sh.setGeometry(txt); - sh.setAppearance(app); - objTrans.addChild(sh); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - if (false) { - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - } - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.5f); - Background bgNode = new Background(bgColor); - bgNode.setApplicationBounds(bounds); - objRoot.addChild(bgNode); - - // Set up the ambient light - Color3f ambientColor = new Color3f(0.3f, 0.3f, 0.3f); - AmbientLight ambientLightNode = new AmbientLight(ambientColor); - ambientLightNode.setInfluencingBounds(bounds); - objRoot.addChild(ambientLightNode); - - // Set up the directional lights - Color3f light1Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light1Direction = new Vector3f(1.0f, 1.0f, 1.0f); - Color3f light2Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light2Direction = new Vector3f(-1.0f, -1.0f, -1.0f); - - DirectionalLight light1 - = new DirectionalLight(light1Color, light1Direction); - light1.setInfluencingBounds(bounds); - objRoot.addChild(light1); - - DirectionalLight light2 - = new DirectionalLight(light2Color, light2Direction); - light2.setInfluencingBounds(bounds); - objRoot.addChild(light2); - - return objRoot; - } - - private void usage() - { - System.out.println( - "Usage: java Text3DLoad [-f fontname] [-t tessellation] [<text>]"); - System.exit(0); - } // End of usage - - public Text3DLoad() {} - - public Text3DLoad(String args[]) { - - if (args.length == 0) { -// usage(); - textString = "Java3D"; - } - else { - for (int i = 0 ; i < args.length ; i++) { - if (args[i].startsWith("-")) { - if (args[i].equals("-f")) { - if (i < args.length - 1) { - fontName = args[++i]; - } - else { - usage(); - } - } - else if (args[i].equals("-t")) { - if (i < args.length - 1) { - tessellation = Double.parseDouble(args[++i]); - } - else { - usage(); - } - } - else { - System.err.println("Argument '" + args[i] + - "' ignored."); - } - } - else { - textString = args[i]; - } - } - } - - if (textString == null) { - usage(); - } - - } - - public void init() { - - if (textString == null) { - textString = "Java3D"; - } - setLayout(new BorderLayout()); - - button = new Button("remove behaviors"); - button.addActionListener(this); - Panel p = new Panel(); - p.add(button); - add("South", p); - - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - - // create a SimpleUniverse with 4 TransformGroups for the mouse - // behaviors - u = new SimpleUniverse(c); - - // add the behaviors to the ViewingPlatform - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - - viewingPlatform.setNominalViewingTransform(); - - // add orbit behavior to ViewingPlatform - orbit = new OrbitBehavior(c, OrbitBehavior.REVERSE_ALL | - OrbitBehavior.STOP_ZOOM); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - - behaviorsOn = true; - - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - public void actionPerformed(ActionEvent e) { - if (e.getSource() == button) { - ViewingPlatform v = u.getViewingPlatform(); - if (behaviorsOn) { - v.setViewPlatformBehavior(null); - button.setLabel("add behaviors"); - behaviorsOn = false; - } - else { - v.setViewPlatformBehavior(orbit); - button.setLabel("remove behaviors"); - behaviorsOn = true; - } - } - } - - // - // The following allows Text3DLoad to be run as an application - // as well as an applet - // - public static void main(String[] args) { - new MainFrame(new Text3DLoad(args), 700, 700); - } -} diff --git a/src/Text3D/Text3DLoad_plugin.html b/src/Text3D/Text3DLoad_plugin.html deleted file mode 100644 index 65aa63f..0000000 --- a/src/Text3D/Text3DLoad_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Text3DLoad</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 700 HEIGHT = 700 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "Text3DLoad.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "Text3DLoad.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "Text3DLoad.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/Text3D/build.xml b/src/Text3D/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/Text3D/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/TextureByReference/AnimateTexturesBehavior.java b/src/TextureByReference/AnimateTexturesBehavior.java deleted file mode 100644 index a580ba2..0000000 --- a/src/TextureByReference/AnimateTexturesBehavior.java +++ /dev/null @@ -1,315 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import java.awt.image.BufferedImage; -import java.awt.*; -import com.sun.j3d.utils.image.TextureLoader; -import java.util.Enumeration; - -public class AnimateTexturesBehavior extends Behavior { - - - // what image are we on - private int current; - private int max; - - // the images - private ImageComponent2D[] images; - - // the target - private Texture2D texture; - private Appearance appearance; - - // the wakeup criterion - private WakeupCriterion wakeupC; - - // are the images flipped? - private boolean flip; - - // need the current type because by copy changes all images - // to TYPE_INT_ARGB - private int currentType; - - // for custom types - public static final int TYPE_CUSTOM_RGBA = 0x01; - public static final int TYPE_CUSTOM_RGB = 0x02; - - private int customType; - - // create a new AnimateTextureBehavior - // initialize the images - public AnimateTexturesBehavior(Texture2D texP, - java.net.URL[] fnames, - Appearance appP, - TextureByReference applet) { - int size = fnames.length; - images = new ImageComponent2D[size]; - BufferedImage bImage; - TextureLoader loader; - for (int i = 0; i < size; i++) { - loader = new TextureLoader(fnames[i], - TextureLoader.BY_REFERENCE | - TextureLoader.Y_UP, applet); - images[i] = loader.getImage(); - bImage = images[i].getImage(); - - // convert the image to TYPE_4BYTE_ABGR - currentType = BufferedImage.TYPE_4BYTE_ABGR; - bImage = ImageOps.convertImage(bImage, currentType); - // flip the image - flip = true; - ImageOps.flipImage(bImage); - - // set the image on the ImageComponent to the new one - images[i].set(bImage); - - images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ); - images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ); - } - texture = texP; - current = 0; - max = size; - wakeupC = new WakeupOnElapsedFrames(20); - appearance = appP; - } - - // initialize to the first image - public void initialize() { - texture.setImage(0, images[current]); - if (current < max-1) current++; - else current = 0; - wakeupOn(wakeupC); - } - - // procesStimulus changes the ImageComponent of the texture - public void processStimulus(Enumeration criteria) { - // ImageOps.printType(images[current].getImage()); - texture.setImage(0, images[current]); - appearance.setTexture(texture); - if (current < max-1) current++; - else current = 0; - wakeupOn(wakeupC); - } - - // flip the image -- useful depending on yUp - public void setFlipImages(boolean b) { - // double check that flipping is necessary - if (b != flip) { - BufferedImage bImage; - - // these are the same for all images so get info once - int format = images[0].getFormat(); - boolean byRef = images[0].isByReference(); - boolean yUp = images[0].isYUp(); - - // flip all the images - // have to new ImageComponents because can't set the image at runtime - for (int i = 0; i < images.length; i++) { - bImage = images[i].getImage(); - ImageOps.flipImage(bImage); - // if we are byRef and the bImage type does not match currentType - // we need to convert it. If we are not byRef we will - // save converting until it is changed to byRef - if (byRef && bImage.getType() != currentType) { - if (currentType != BufferedImage.TYPE_CUSTOM) { - bImage = ImageOps.convertImage(bImage, currentType); - } - else if (customType == this.TYPE_CUSTOM_RGBA) { - bImage = ImageOps.convertToCustomRGBA(bImage); - } - else { - bImage = ImageOps.convertToCustomRGB(bImage); - } - } - images[i] = new ImageComponent2D(format, bImage, byRef, yUp); - images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ); - images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ); - } - - // set flip to new value - flip = b; - } - } - - // create new ImageComponents with yUp set to the parameter. yUp on - // an ImageComponent cannot be changed at runtim - public void setYUp(boolean b) { - // double check that changing yUp is necessary - if (b != images[0].isYUp()) { - - // these are the same for all images so get info once - int format = images[0].getFormat(); - boolean byRef = images[0].isByReference(); - - // reset yUp on all the images -- have to new ImageComponents because - // cannot change the value at runtime - for (int i = 0; i < images.length; i++) { - // if we are byRef and the bImage type does not match currentType - // we need to convert it. If we are not byRef we will - // save converting until it is changed to byRef - BufferedImage bImage = images[i].getImage(); - if (byRef && bImage.getType() != currentType) { - // bImage = ImageOps.convertImage(bImage, currentType); - if (currentType != BufferedImage.TYPE_CUSTOM) { - bImage = ImageOps.convertImage(bImage, currentType); - } - else if (customType == this.TYPE_CUSTOM_RGBA) { - bImage = ImageOps.convertToCustomRGBA(bImage); - } - else { - bImage = ImageOps.convertToCustomRGB(bImage); - } - } - images[i] = new ImageComponent2D(format, bImage, - byRef, b); - images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ); - images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ); - } - } - } - - // create new ImageComponents with ByReference set by parameter. - // by reference cannot be changed on an image component at runtime - public void setByReference(boolean b) { - // double check that changing is necessary - if (b != images[0].isByReference()) { - - // these are the same for all images so get info once - int format = images[0].getFormat(); - boolean yUp = images[0].isYUp(); - - // reset yUp on all the images - // have to new ImageComponents because cannot set value - for (int i = 0; i < images.length; i++) { - // if the bImage type does not match currentType and we are setting - // to byRef we need to convert it - BufferedImage bImage = images[i].getImage(); - if (bImage.getType() != currentType && b) { - // bImage = ImageOps.convertImage(bImage, currentType); - if (currentType != BufferedImage.TYPE_CUSTOM) { - bImage = ImageOps.convertImage(bImage, currentType); - } - else if (customType == this.TYPE_CUSTOM_RGBA) { - bImage = ImageOps.convertToCustomRGBA(bImage); - } - else { - bImage = ImageOps.convertToCustomRGB(bImage); - } - } - images[i] = new ImageComponent2D(format, bImage, b, yUp); - images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ); - images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ); - } - } - } - - // make a new wakeup criterion object based on the new delay time - public void setFrameDelay(int delay) { - wakeupC = new WakeupOnElapsedFrames(delay); - } - - //change the type of image - public void setImageType(int newType) { - currentType = newType; - - // only need to change the images if we are byRef otherwise will change - // them when we chnage to byRef - if (images[0].isByReference() == true) { - // this information is the same for all - int format = images[0].getFormat(); - boolean yUp = images[0].isYUp(); - boolean byRef = true; - for (int i = 0; i < images.length; i++) { - BufferedImage bImage = images[i].getImage(); - bImage = ImageOps.convertImage(bImage, currentType); - images[i] = new ImageComponent2D(format, bImage, byRef, yUp); - images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ); - images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ); - } - } - } - - public void setImageTypeCustomRGBA() { - currentType = BufferedImage.TYPE_CUSTOM; - customType = this.TYPE_CUSTOM_RGBA; - - // only need to change images if we are byRef otherwise will change - // them when we change to byRef - if (images[0].isByReference()) { - // this information is the same for all - int format = images[0].getFormat(); - boolean yUp = images[0].isYUp(); - boolean byRef = true; - for (int i = 0; i < images.length; i++) { - BufferedImage bImage = images[i].getImage(); - bImage = ImageOps.convertToCustomRGBA(bImage); - images[i] = new ImageComponent2D(format, bImage, byRef, yUp); - images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ); - images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ); - } - } - } - - public void setImageTypeCustomRGB() { - currentType = BufferedImage.TYPE_CUSTOM; - customType = this.TYPE_CUSTOM_RGB; - - // only need to change images if we are byRef otherwise will change - // them when we change to byRef - if (images[0].isByReference()) { - // this information is the same for all - int format = images[0].getFormat(); - boolean yUp = images[0].isYUp(); - boolean byRef = true; - for (int i = 0; i < images.length; i++) { - BufferedImage bImage = images[i].getImage(); - bImage = ImageOps.convertToCustomRGB(bImage); - images[i] = new ImageComponent2D(format, bImage, byRef, yUp); - images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ); - images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ); - } - } - } -} diff --git a/src/TextureByReference/ImageOps.java b/src/TextureByReference/ImageOps.java deleted file mode 100644 index d5a8bec..0000000 --- a/src/TextureByReference/ImageOps.java +++ /dev/null @@ -1,173 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.*; -import java.awt.image.*; -import java.awt.color.*; - -// some useful, static image operations - -public class ImageOps { - - // flip the image - public static void flipImage(BufferedImage bImage) { - int width = bImage.getWidth(); - int height = bImage.getHeight(); - int[] rgbArray = new int[width*height]; - bImage.getRGB(0, 0, width, height, rgbArray, 0, width); - int[] tempArray = new int[width*height]; - int y2 = 0; - for (int y = height-1; y >= 0; y--) { - for (int x = 0; x < width; x++) { - tempArray[y2*width+x] = rgbArray[y*width+x]; - } - y2++; - } - bImage.setRGB(0, 0, width, height, tempArray, 0, width); - } - - - // convert the image to a specified BufferedImage type and return it - public static BufferedImage convertImage(BufferedImage bImage, int type) { - int width = bImage.getWidth(); - int height = bImage.getHeight(); - BufferedImage newImage = new BufferedImage(width, height, type); - int[] rgbArray = new int[width*height]; - bImage.getRGB(0, 0, width, height, rgbArray, 0, width); - newImage.setRGB(0, 0, width, height, rgbArray, 0, width); - return newImage; - } - - // print out some of the types of BufferedImages - static void printType(BufferedImage bImage) { - int type = bImage.getType(); - if (type == BufferedImage.TYPE_4BYTE_ABGR) { - System.out.println("TYPE_4BYTE_ABGR"); - } - else if (type == BufferedImage.TYPE_INT_ARGB) { - System.out.println("TYPE_INT_ARGB"); - } - else if (type == BufferedImage.TYPE_3BYTE_BGR) { - System.out.println("TYPE_3BYTE_BGR"); - } - else if (type == BufferedImage.TYPE_CUSTOM) { - System.out.println("TYPE_CUSTOM"); - } - else System.out.println(type); - } - - public static BufferedImage convertToCustomRGBA(BufferedImage bImage) { - if (bImage.getType() != BufferedImage.TYPE_INT_ARGB) { - ImageOps.convertImage(bImage, BufferedImage.TYPE_INT_ARGB); - } - - int width = bImage.getWidth(); - int height = bImage.getHeight(); - - ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB); - int[] nBits = {8, 8, 8, 8}; - ColorModel cm = new ComponentColorModel(cs, nBits, true, false, - Transparency.OPAQUE, 0); - int[] bandOffset = {0, 1, 2, 3}; - - WritableRaster newRaster = - Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, width, height, - width*4, 4, bandOffset, null); - byte[] byteData = ((DataBufferByte)newRaster.getDataBuffer()).getData(); - Raster origRaster = bImage.getData(); - int[] pixel = new int[4]; - int k = 0; - for (int j = 0; j < height; j++) { - for (int i = 0; i < width; i++) { - pixel = origRaster.getPixel(i, j, pixel); - byteData[k++] = (byte)(pixel[0]); - byteData[k++] = (byte)(pixel[1]); - byteData[k++] = (byte)(pixel[2]); - byteData[k++] = (byte)(pixel[3]); - } - } - BufferedImage newImage = new BufferedImage(cm, newRaster, false, null); -// if (newImage.getType() == BufferedImage.TYPE_CUSTOM) { -// System.out.println("Type is custom"); -// } - return newImage; - } - - public static BufferedImage convertToCustomRGB(BufferedImage bImage) { - if (bImage.getType() != BufferedImage.TYPE_INT_ARGB) { - ImageOps.convertImage(bImage, BufferedImage.TYPE_INT_ARGB); - } - - int width = bImage.getWidth(); - int height = bImage.getHeight(); - - ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB); - int[] nBits = {8, 8, 8}; - ColorModel cm = new ComponentColorModel(cs, nBits, false, false, - Transparency.OPAQUE, 0); - int[] bandOffset = {0, 1, 2}; - - WritableRaster newRaster = - Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, width, height, - width*3, 3, bandOffset, null); - byte[] byteData = ((DataBufferByte)newRaster.getDataBuffer()).getData(); - Raster origRaster = bImage.getData(); - int[] pixel = new int[4]; - int k = 0; - for (int j = 0; j < height; j++) { - for (int i = 0; i < width; i++) { - pixel = origRaster.getPixel(i, j, pixel); - byteData[k++] = (byte)(pixel[0]); - byteData[k++] = (byte)(pixel[1]); - byteData[k++] = (byte)(pixel[2]); - } - } - BufferedImage newImage = new BufferedImage(cm, newRaster, false, null); -// if (newImage.getType() == BufferedImage.TYPE_CUSTOM) { -// System.out.println("Type is custom"); -// } - return newImage; - } -} - diff --git a/src/TextureByReference/Tetrahedron.java b/src/TextureByReference/Tetrahedron.java deleted file mode 100644 index 11d4a89..0000000 --- a/src/TextureByReference/Tetrahedron.java +++ /dev/null @@ -1,221 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - - -public class Tetrahedron extends Shape3D { - - private static final float sqrt3 = (float) Math.sqrt(3.0); - private static final float sqrt3_3 = sqrt3 / 3.0f; - private static final float sqrt24_3 = (float) Math.sqrt(24.0) / 3.0f; - - private static final float ycenter = 0.5f * sqrt24_3; - private static final float zcenter = -sqrt3_3; - - private static final Point3f p1 = new Point3f(-1.0f, -ycenter, -zcenter); - private static final Point3f p2 = new Point3f(1.0f, -ycenter, -zcenter); - private static final Point3f p3 = new Point3f(0.0f, -ycenter, -sqrt3 - zcenter); - private static final Point3f p4 = new Point3f(0.0f, sqrt24_3 - ycenter, 0.0f); - - private static final Point3f[] verts = { - p1, p2, p4, // front face - p1, p4, p3, // left, back face - p2, p3, p4, // right, back face - p1, p3, p2, // bottom face - }; - - private Point2f texCoord[] = { - new Point2f(-0.25f, 0.0f), - new Point2f(1.25f, 0.0f), - new Point2f(0.5f, 2.0f), - }; - - private TriangleArray geometryByRef; - private TriangleArray geometryByCopy; - - // for geometry by reference - private Point3f[] verticesArray = new Point3f[12]; - private TexCoord2f[] textureCoordsArray = new TexCoord2f[12]; - private Vector3f[] normalsArray = new Vector3f[12]; - - // default to geometry by copy - public Tetrahedron() { - this(false); - } - - // creates a tetrahedron with geometry by reference or by copy depending on - // the byRef parameter - public Tetrahedron(boolean byRef) { - if (byRef) { - createGeometryByRef(); - this.setGeometry(geometryByRef); - } - else { - createGeometryByCopy(); - this.setGeometry(geometryByCopy); - } - this.setCapability(Shape3D.ALLOW_GEOMETRY_READ); - this.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); - setAppearance(new Appearance()); - } - - // create the geometry by reference and - // store it in the geometryByRef variable - public void createGeometryByRef() { -// System.out.println("createGeometryByRef"); - geometryByRef = new TriangleArray(12, TriangleArray.COORDINATES | - TriangleArray.NORMALS | - TriangleArray.TEXTURE_COORDINATE_2 | - TriangleArray.BY_REFERENCE); - - int i; - - // the coordinates - for (i = 0; i < 12; i++) { - verticesArray[i] = new Point3f(verts[i]); - } - geometryByRef.setCoordRef3f(verticesArray); -// System.out.println("coordinates set"); -// Point3f[] temp1 = geometryByRef.getCoordRef3f(); -// for (i = 0; i < 12; i++) { -// System.out.println(temp1[i]); -// } - - // the texture coordinates - for (i = 0; i < 12; i++) { - textureCoordsArray[i] = new TexCoord2f(texCoord[i%3]); - } - geometryByRef.setTexCoordRef2f(0, textureCoordsArray); -// System.out.println("texture coords set"); -// TexCoord2f[] temp2 = geometryByRef.getTexCoordRef2f(0); -// for (i = 0; i < 12; i++) { -// System.out.println(temp2[i]); -// } - - // the normals - Vector3f normal = new Vector3f(); - Vector3f v1 = new Vector3f(); - Vector3f v2 = new Vector3f(); - Point3f[] pts = new Point3f[3]; - for (int face = 0; face < 4; face++) { - pts[0] = new Point3f(verts[face*3]); - pts[1] = new Point3f(verts[face*3+1]); - pts[2] = new Point3f(verts[face*3+2]); - v1.sub(pts[1], pts[0]); - v2.sub(pts[2], pts[0]); - normal.cross(v1, v2); - normal.normalize(); - for (i = 0; i < 3; i++) { - normalsArray[face*3+i] = new Vector3f(normal); - } - } - geometryByRef.setNormalRef3f(normalsArray); -// System.out.println("normals set"); -// Vector3f[] temp3 = geometryByRef.getNormalRef3f(); -// for (i = 0; i < 12; i++) { -// System.out.println(temp3[i]); -// } - } - - // create the geometry by copy and store it in the geometryByCopy variable - public void createGeometryByCopy() { - int i; - geometryByCopy = new TriangleArray(12, TriangleArray.COORDINATES | - TriangleArray.NORMALS | - TriangleArray.TEXTURE_COORDINATE_2); - - geometryByCopy.setCoordinates(0, verts); - - for (i = 0; i < 12; i++) { - geometryByCopy.setTextureCoordinate(0, i, - new TexCoord2f(texCoord[i%3])); - } - - int face; - Vector3f normal = new Vector3f(); - Vector3f v1 = new Vector3f(); - Vector3f v2 = new Vector3f(); - Point3f [] pts = new Point3f[3]; - for (i = 0; i < 3; i++) pts[i] = new Point3f(); - - for (face = 0; face < 4; face++) { - geometryByCopy.getCoordinates(face*3, pts); - v1.sub(pts[1], pts[0]); - v2.sub(pts[2], pts[0]); - normal.cross(v1, v2); - normal.normalize(); - for (i = 0; i < 3; i++) { - geometryByCopy.setNormal((face * 3 + i), normal); - } - } - } - - // set the geometry to geometryByRef or geometryByCopy depending on the - // parameter. Create geometryByRef or geometryByCopy if necessary - public void setByReference(boolean b) { -// System.out.println("Tetrahedron.setByReference " + b); - // by reference is true - if (b) { - // if there is no geometryByRef, create it - if (geometryByRef == null) { - createGeometryByRef(); - } - // set the geometry - this.setGeometry(geometryByRef); - } - // by reference is false - else { - // if there is no geometryByCopy, create it - if (geometryByCopy == null) { - createGeometryByCopy(); - } - // set the geometry - this.setGeometry(geometryByCopy); - } - } -} - - diff --git a/src/TextureByReference/TextureByReference.html b/src/TextureByReference/TextureByReference.html deleted file mode 100644 index 7d7be3e..0000000 --- a/src/TextureByReference/TextureByReference.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>TextureByReference</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="TextureByReference.class" width=600 height=750> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see the TextureByReference applet instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML>
\ No newline at end of file diff --git a/src/TextureByReference/TextureByReference.java b/src/TextureByReference/TextureByReference.java deleted file mode 100644 index 8e2507c..0000000 --- a/src/TextureByReference/TextureByReference.java +++ /dev/null @@ -1,530 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.awt.image.*; -import java.awt.color.ColorSpace; -import com.sun.j3d.utils.image.TextureLoader; -import javax.swing.*; -import javax.swing.event.*; - - -public class TextureByReference extends Applet -implements ItemListener, ActionListener, ChangeListener { - - // need reference to animation behavior - private AnimateTexturesBehavior animate; - - // need reference to tetrahedron - private Tetrahedron tetra; - - // the gui buttons - private JCheckBox flipB; - private JRadioButton texByRef; - private JRadioButton texByCopy; - private JRadioButton geomByRef; - private JRadioButton geomByCopy; - private JRadioButton img4ByteABGR; - private JRadioButton img3ByteBGR; - private JRadioButton imgIntARGB; - private JRadioButton imgCustomRGBA; - private JRadioButton imgCustomRGB; - private JRadioButton yUp; - private JRadioButton yDown; - private JButton animationB; - private JSlider frameDelay; - - private SimpleUniverse universe = null; - - // image files used for the Texture animation for the applet, - // or if no parameters are passed in for the application - public static final String[] defaultFiles = { - "../images/animation1.gif", - "../images/animation2.gif", - "../images/animation3.gif", - "../images/animation4.gif", - "../images/animation5.gif", - "../images/animation6.gif", - "../images/animation7.gif", - "../images/animation8.gif", - "../images/animation9.gif", - "../images/animation10.gif"}; - - private java.net.URL[] urls = null; - - - public TextureByReference() { - } - - public TextureByReference(java.net.URL[] fnamesP) { - urls = fnamesP; - } - - public void init() { - if (urls == null) { - urls = new java.net.URL[defaultFiles.length]; - for (int i = 0; i < defaultFiles.length; i++) { - try { - urls[i] = new java.net.URL(getCodeBase().toString() + - defaultFiles[i]); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - } - setLayout(new BorderLayout()); - GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); - - Canvas3D canvas = new Canvas3D(config); - - add("Center", canvas); - - // create a simple scene graph and attach it to a simple universe - BranchGroup scene = createSceneGraph(); - universe = new SimpleUniverse(canvas); - universe.getViewingPlatform().setNominalViewingTransform(); - universe.addBranchGraph(scene); - - // create the gui - JPanel gui = buildGui(); - - this.add("South", gui); - } - - public void destroy() { - universe.cleanup(); - } - - public JPanel buildGui() { - flipB = new JCheckBox("flip image", true); - flipB.addItemListener(this); - javax.swing.Box flipBox = new javax.swing.Box(BoxLayout.Y_AXIS); - flipBox.add(flipB); - Component strut1 = flipBox.createVerticalStrut(flipB.getPreferredSize().height); - Component strut2 = flipBox.createVerticalStrut(flipB.getPreferredSize().height); - Component strut3 = flipBox.createVerticalStrut(flipB.getPreferredSize().height); - Component strut4 = flipBox.createVerticalStrut(flipB.getPreferredSize().height); - Component strut5 = flipBox.createVerticalStrut(flipB.getPreferredSize().height); - flipBox.add(strut1); - flipBox.add(strut2); - flipBox.add(strut3); - flipBox.add(strut4); - flipBox.add(strut5); - - yUp = new JRadioButton("y up"); - yUp.addActionListener(this); - yUp.setSelected(true); - yDown = new JRadioButton("y down"); - yDown.addActionListener(this); - ButtonGroup yGroup = new ButtonGroup(); - yGroup.add(yUp); - yGroup.add(yDown); - JLabel yLabel = new JLabel("Image Orientation:"); - javax.swing.Box yBox = new javax.swing.Box(BoxLayout.Y_AXIS); - yBox.add(yLabel); - yBox.add(yUp); - yBox.add(yDown); - strut1 = yBox.createVerticalStrut(yUp.getPreferredSize().height); - strut2 = yBox.createVerticalStrut(yUp.getPreferredSize().height); - strut3 = yBox.createVerticalStrut(yUp.getPreferredSize().height); - yBox.add(strut1); - yBox.add(strut2); - yBox.add(strut3); - - texByRef = new JRadioButton("by reference"); - texByRef.addActionListener(this); - texByRef.setSelected(true); - texByCopy = new JRadioButton("by copy"); - texByCopy.addActionListener(this); - ButtonGroup texGroup = new ButtonGroup(); - texGroup.add(texByRef); - texGroup.add(texByCopy); - JLabel texLabel = new JLabel("Texture:*"); - javax.swing.Box texBox = new javax.swing.Box(BoxLayout.Y_AXIS); - texBox.add(texLabel); - texBox.add(texByRef); - texBox.add(texByCopy); - strut1 = texBox.createVerticalStrut(texByRef.getPreferredSize().height); - strut2 = texBox.createVerticalStrut(texByRef.getPreferredSize().height); - strut3 = texBox.createVerticalStrut(texByRef.getPreferredSize().height); - texBox.add(strut1); - texBox.add(strut2); - texBox.add(strut3); - - geomByRef = new JRadioButton("by reference"); - geomByRef.addActionListener(this); - geomByRef.setSelected(true); - geomByCopy = new JRadioButton("by copy"); - geomByCopy.addActionListener(this); - ButtonGroup geomGroup = new ButtonGroup(); - geomGroup.add(geomByRef); - geomGroup.add(geomByCopy); - JLabel geomLabel = new JLabel("Geometry:"); - javax.swing.Box geomBox = new javax.swing.Box(BoxLayout.Y_AXIS); - geomBox.add(geomLabel); - geomBox.add(geomByRef); - geomBox.add(geomByCopy); - strut1 = geomBox.createVerticalStrut(geomByRef.getPreferredSize().height); - strut2 = geomBox.createVerticalStrut(geomByRef.getPreferredSize().height); - strut3 = geomBox.createVerticalStrut(geomByRef.getPreferredSize().height); - geomBox.add(strut1); - geomBox.add(strut2); - geomBox.add(strut3); - - img4ByteABGR = new JRadioButton("TYPE_4BYTE_ABGR"); - img4ByteABGR.addActionListener(this); - img4ByteABGR.setSelected(true); - img3ByteBGR = new JRadioButton("TYPE_3BYTE_BGR"); - img3ByteBGR.addActionListener(this); - imgIntARGB = new JRadioButton("TYPE_INT_ARGB"); - imgIntARGB.addActionListener(this); - imgCustomRGBA = new JRadioButton("TYPE_CUSTOM RGBA"); - imgCustomRGBA.addActionListener(this); - imgCustomRGB = new JRadioButton("TYPE_CUSTOM RGB"); - imgCustomRGB.addActionListener(this); - ButtonGroup imgGroup = new ButtonGroup(); - imgGroup.add(img4ByteABGR); - imgGroup.add(img3ByteBGR); - imgGroup.add(imgIntARGB); - imgGroup.add(imgCustomRGBA); - imgGroup.add(imgCustomRGB); - JLabel imgLabel = new JLabel("Image Type:*"); - javax.swing.Box imgBox = new javax.swing.Box(BoxLayout.Y_AXIS); - imgBox.add(imgLabel); - imgBox.add(img4ByteABGR); - imgBox.add(img3ByteBGR); - imgBox.add(imgIntARGB); - imgBox.add(imgCustomRGBA); - imgBox.add(imgCustomRGB); - - javax.swing.Box topBox = new javax.swing.Box(BoxLayout.X_AXIS); - topBox.add(flipBox); - topBox.add(texBox); - topBox.add(geomBox); - topBox.add(yBox); - Component strut = topBox.createRigidArea(new Dimension(10, 10)); - topBox.add(strut); - topBox.add(imgBox); - - frameDelay = new JSlider(0, 50, 0); - frameDelay.addChangeListener(this); - frameDelay.setSnapToTicks(true); - frameDelay.setPaintTicks(true); - frameDelay.setPaintLabels(true); - frameDelay.setMajorTickSpacing(10); - frameDelay.setMinorTickSpacing(1); - frameDelay.setValue(20); - JLabel delayL = new JLabel("frame delay"); - javax.swing.Box delayBox = new javax.swing.Box(BoxLayout.X_AXIS); - delayBox.add(delayL); - delayBox.add(frameDelay); - - animationB = new JButton(" stop animation "); - animationB.addActionListener(this); - - JLabel texInfo1 = new JLabel("*To use ImageComponent by reference feature, use TYPE_4BYTE_ABGR on Solaris"); - JLabel texInfo2 = new JLabel("and TYPE_3BYTE_BGR on Windows"); - - JPanel buttonP = new JPanel(); - GridBagLayout gridbag = new GridBagLayout(); - GridBagConstraints c = new GridBagConstraints(); - buttonP.setLayout(gridbag); - c.anchor = GridBagConstraints.CENTER; - c.gridwidth = GridBagConstraints.REMAINDER; - gridbag.setConstraints(topBox, c); - buttonP.add(topBox); - gridbag.setConstraints(delayBox, c); - buttonP.add(delayBox); - gridbag.setConstraints(animationB, c); - buttonP.add(animationB); - gridbag.setConstraints(texInfo1, c); - buttonP.add(texInfo1); - gridbag.setConstraints(texInfo2, c); - buttonP.add(texInfo2); - - return buttonP; - - } - - public BranchGroup createSceneGraph() { - - // create the root of the branch group - BranchGroup objRoot = new BranchGroup(); - - // create the transform group node and initialize it - // enable the TRANSFORM_WRITE capability so that it can be modified - // at runtime. Add it to the root of the subgraph - Transform3D rotate = new Transform3D(); - TransformGroup objTrans = new TransformGroup(rotate); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objRoot.addChild(objTrans); - - // bounds - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // set up some light - Color3f lColor1 = new Color3f(0.7f, 0.7f, 0.7f); - Vector3f lDir1 = new Vector3f(-1.0f, -0.5f, -1.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - - AmbientLight aLgt = new AmbientLight(alColor); - aLgt.setInfluencingBounds(bounds); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - lgt1.setInfluencingBounds(bounds); - objRoot.addChild(aLgt); - objRoot.addChild(lgt1); - - - Appearance appearance = new Appearance(); - - // enable the TEXTURE_WRITE so we can modify it at runtime - appearance.setCapability(Appearance.ALLOW_TEXTURE_WRITE); - - // load the first texture - TextureLoader loader = new TextureLoader(urls[0], - TextureLoader.BY_REFERENCE | - TextureLoader.Y_UP, - this); - // get the texture from the loader - Texture2D tex = (Texture2D)loader.getTexture(); - - // get the BufferedImage to convert to TYPE_4BYTE_ABGR and flip - // get the ImageComponent because we need it anyway - ImageComponent2D imageComp = (ImageComponent2D)tex.getImage(0); - BufferedImage bImage = imageComp.getImage(); - // convert the image - bImage = ImageOps.convertImage(bImage, BufferedImage.TYPE_4BYTE_ABGR); - // flip the image - ImageOps.flipImage(bImage); - imageComp.set(bImage); - - tex.setCapability(Texture.ALLOW_IMAGE_WRITE); - tex.setBoundaryModeS(Texture.CLAMP); - tex.setBoundaryModeT(Texture.CLAMP); - tex.setBoundaryColor(1.0f, 1.0f, 1.0f, 1.0f); - - // set the image of the texture - tex.setImage(0, imageComp); - - // set the texture on the appearance - appearance.setTexture(tex); - - // set texture attributes - TextureAttributes texAttr = new TextureAttributes(); - texAttr.setTextureMode(TextureAttributes.MODULATE); - appearance.setTextureAttributes(texAttr); - - // set material properties - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - appearance.setMaterial(new Material(white, black, white, black, 1.0f)); - - // create a scale transform - Transform3D scale = new Transform3D(); - scale.set(.6); - TransformGroup objScale = new TransformGroup(scale); - objTrans.addChild(objScale); - - tetra = new Tetrahedron(true); - tetra.setAppearance(appearance); - objScale.addChild(tetra); - - // create the behavior - animate = new AnimateTexturesBehavior(tex, - urls, - appearance, - this); - animate.setSchedulingBounds(bounds); - - objTrans.addChild(animate); - - // add a rotation behavior so we can see all sides of the tetrahedron - Transform3D yAxis = new Transform3D(); - Alpha rotorAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - RotationInterpolator rotator = - new RotationInterpolator(rotorAlpha, - objTrans, - yAxis, - 0.0f, (float) Math.PI*2.0f); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - - - // have java3d perform optimizations on this scene graph - objRoot.compile(); - - return objRoot; - } - - // callback for the animation button and delay text field - public void actionPerformed(ActionEvent e) { - Object o = e.getSource(); - - // for the animation button - if (o == animationB) { - if (animate.getEnable()) { - animate.setEnable(false); - animationB.setText("start animation"); - } - else { - animate.setEnable(true); - animationB.setText(" stop animation "); - } - } - - // for the texByRef button - else if (o == texByRef && texByRef.isSelected()) { - animate.setByReference(true); - } - // texByCopy button - else if (o == texByCopy && texByCopy.isSelected()) { - animate.setByReference(false); - } - // yUp button - else if (o == yUp && yUp.isSelected()) { - animate.setYUp(true); - } - // ydown button - else if (o == yDown && yDown.isSelected()) { - animate.setYUp(false); - } - //geomByRef button - else if (o == geomByRef) { - tetra.setByReference(true); - } - // geomByCopy button - else if (o == geomByCopy) { - tetra.setByReference(false); - } - // TYPE_INT_ARGB - else if (o == imgIntARGB) { - animate.setImageType(BufferedImage.TYPE_INT_ARGB); - } - // TYPE_4BYTE_ABGR - else if (o == img4ByteABGR) { - animate.setImageType(BufferedImage.TYPE_4BYTE_ABGR); - } - // TYPE_3BYTE_BGR - else if (o == img3ByteBGR) { - animate.setImageType(BufferedImage.TYPE_3BYTE_BGR); - } - // TYPE_CUSTOM RGBA - else if (o == imgCustomRGBA) { - animate.setImageTypeCustomRGBA(); - } - // TYPE_CUSTOM RGB - else if (o == imgCustomRGB) { - animate.setImageTypeCustomRGB(); - } - } - - // callback for the checkboxes - public void itemStateChanged(ItemEvent e) { - Object o = e.getSource(); - // for the flip checkbox - if (o == flipB) { - if (e.getStateChange() == ItemEvent.DESELECTED) { - animate.setFlipImages(false); - } - else animate.setFlipImages(true); - } - } - - // callback for the slider - public void stateChanged(ChangeEvent e) { - Object o = e.getSource(); - // for the frame delay - if (o == frameDelay) { - animate.setFrameDelay(frameDelay.getValue()); - } - } - - // allows TextureByReference to be run as an application as well as an applet - public static void main(String[] args) { - java.net.URL fnames[] = null; - if (args.length > 1) { - fnames = new java.net.URL[args.length]; - for (int i = 0; i < args.length; i++) { - try { - fnames[i] = new java.net.URL("file:" + args[i]); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - } - } - } - else { - fnames = new java.net.URL[TextureByReference.defaultFiles.length]; - for (int i = 0; i < TextureByReference.defaultFiles.length; i++) { - try { - fnames[i] = new java.net.URL("file:" + - TextureByReference.defaultFiles[i]); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - } - new MainFrame((new TextureByReference(fnames)), 650, 750); - } -} - - - - - - diff --git a/src/TextureByReference/TextureByReference_plugin.html b/src/TextureByReference/TextureByReference_plugin.html deleted file mode 100644 index ef0d161..0000000 --- a/src/TextureByReference/TextureByReference_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>TextureByReference</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 600 HEIGHT = 750 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "TextureByReference.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "TextureByReference.class" WIDTH = 600 HEIGHT = 750 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see the TextureByReference applet instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "TextureByReference.class" WIDTH = 600 HEIGHT = 750 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see the TextureByReference applet instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/TextureByReference/build.xml b/src/TextureByReference/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/TextureByReference/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/TextureTest/MultiTextureTest.html b/src/TextureTest/MultiTextureTest.html deleted file mode 100644 index bc60c6c..0000000 --- a/src/TextureTest/MultiTextureTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>MultiTextureTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="MultiTextureTest.class" width=750 height=750> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/TextureTest/MultiTextureTest.java b/src/TextureTest/MultiTextureTest.java deleted file mode 100644 index e38eb71..0000000 --- a/src/TextureTest/MultiTextureTest.java +++ /dev/null @@ -1,318 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import com.sun.j3d.utils.image.TextureLoader; -import com.sun.j3d.utils.geometry.Box; -import com.sun.j3d.utils.behaviors.vp.*; -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; -import java.awt.image.BufferedImage; - -public class MultiTextureTest extends Applet implements ItemListener{ - - Choice choice; - TextureUnitState textureUnitState[] = new TextureUnitState[2]; - Texture stoneTex; - Texture skyTex; - Texture lightTex; - - private java.net.URL stoneImage = null; - private java.net.URL skyImage = null; - - private SimpleUniverse u = null; - - public Texture createLightMap(){ - - int width = 128; - int height = 128; - BufferedImage bimage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - int [] rgbArray = new int[width * height]; - int index, index2; - int rgbInc = 256 / (width / 2 - 20); - int rgbValue = 0; - int k = width/2 - 5; - int i, j, rgb; - - rgb = 0xff; - rgbValue = rgb | (rgb << 8) | (rgb << 16) | (rgb << 24); - for ( i = width / 2 - 1, j = 0; j < 10; j++, i--) { - rgbArray[i] = rgbValue; - } - - for (; i > 8; i--, rgb -= rgbInc) { - rgbValue = rgb | (rgb << 8) | (rgb << 16) | (rgb << 24); - rgbArray[i] = rgbValue; - } - - for (; i >= 0; i--) { - rgbArray[i] = rgbValue; - } - - for (i = 0; i < width/2; i++) { - rgbValue = rgbArray[i]; - index = i; - index2 = (width - i - 1); - for (j = 0; j < height; j++) { - rgbArray[index] = rgbArray[index2] = rgbValue; - index += width; - index2 += width; - } - } - - bimage.setRGB(0, 0, width, height, rgbArray, 0, width); - - - ImageComponent2D grayImage = new ImageComponent2D(ImageComponent.FORMAT_RGB, bimage); - - lightTex = new Texture2D(Texture.BASE_LEVEL, Texture.RGB, width, height); - lightTex.setImage(0, grayImage); - - return lightTex; - } - - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - TransformGroup objTrans = new TransformGroup(); - //write-enable for behaviors - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans.setCapability( TransformGroup.ALLOW_TRANSFORM_READ ); - objTrans.setCapability(TransformGroup.ENABLE_PICK_REPORTING); - objScale.addChild(objTrans); - - Appearance ap = new Appearance(); - - // load textures - TextureAttributes texAttr1 = new TextureAttributes(); - texAttr1.setTextureMode(TextureAttributes.DECAL); - TextureAttributes texAttr2 = new TextureAttributes(); - texAttr2.setTextureMode(TextureAttributes.MODULATE); - - TextureLoader tex = new TextureLoader(stoneImage, new String("RGB"), this); - if (tex == null) - return null; - stoneTex = tex.getTexture(); - - tex = new TextureLoader(skyImage, new String("RGB"), this); - if (tex == null) - return null; - skyTex = tex.getTexture(); - - lightTex = createLightMap(); - - - textureUnitState[0] = new TextureUnitState(stoneTex, texAttr1, null); - textureUnitState[0].setCapability(TextureUnitState.ALLOW_STATE_WRITE); - - textureUnitState[1] = new TextureUnitState(lightTex, texAttr2, null); - textureUnitState[1].setCapability(TextureUnitState.ALLOW_STATE_WRITE); - - ap.setTextureUnitState(textureUnitState); - - //Create a Box - Box BoxObj = new Box(1.5f, 1.5f, 0.8f, Box.GENERATE_NORMALS | - Box.GENERATE_TEXTURE_COORDS, ap, 2); - // add it to the scene graph. - objTrans.addChild(BoxObj); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - //Shine it with two lights. - Color3f lColor1 = new Color3f(0.7f, 0.7f, 0.7f); - Color3f lColor2 = new Color3f(0.2f, 0.2f, 0.1f); - Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, -1.0f); - Vector3f lDir2 = new Vector3f(0.0f, 0.0f, -1.0f); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - DirectionalLight lgt2 = new DirectionalLight(lColor2, lDir2); - lgt1.setInfluencingBounds(bounds); - lgt2.setInfluencingBounds(bounds); - objScale.addChild(lgt1); - objScale.addChild(lgt2); - - // Let Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public MultiTextureTest (){ - } - - public MultiTextureTest(java.net.URL stoneURL, java.net.URL skyURL) { - stoneImage = stoneURL; - skyImage = skyURL; - } - - public void init() { - if (stoneImage == null) { - // the path to the image for an applet - try { - stoneImage = new java.net.URL(getCodeBase().toString() + - "../images/stone.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - - if (skyImage == null) { - // the path to the image for an applet - try { - skyImage = new java.net.URL(getCodeBase().toString() + - "../images/bg.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - ViewingPlatform viewingPlatform = u.getViewingPlatform(); - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - viewingPlatform.setNominalViewingTransform(); - - // add orbit behavior but disable translate - OrbitBehavior orbit = - new OrbitBehavior(c, OrbitBehavior.REVERSE_ALL | - OrbitBehavior.DISABLE_TRANSLATE); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0); - orbit.setSchedulingBounds(bounds); - viewingPlatform.setViewPlatformBehavior(orbit); - - u.addBranchGraph(scene); - - // create the gui - choice = new Choice(); - choice.addItem("stone + light"); - choice.addItem("stone"); - choice.addItem("lightMap"); - choice.addItem("sky"); - choice.addItem("stone + sky"); - choice.addItemListener(this); - add("North", choice); - - } - - public void destroy() { - // Cleanup reference to Java3D - textureUnitState = new TextureUnitState[2]; - u.cleanup(); - } - - public void itemStateChanged(ItemEvent e) - { - int index = choice.getSelectedIndex(); - - switch (index) { - case 0 : /* stone + light */ - textureUnitState[0].setTexture(stoneTex); - textureUnitState[1].setTexture(lightTex); - break; - case 1 : /* stone */ - textureUnitState[0].setTexture(stoneTex); - textureUnitState[1].setTexture(null); - break; - case 2 : /* light */ - textureUnitState[0].setTexture(null); - textureUnitState[1].setTexture(lightTex); - break; - case 3 : /* sky */ - textureUnitState[0].setTexture(null); - textureUnitState[1].setTexture(skyTex); - break; - case 4 : /* stone + sky */ - textureUnitState[0].setTexture(stoneTex); - textureUnitState[1].setTexture(skyTex); - break; - default: /* both */ - break; - } - } - - public static void main(String argv[]) - { - java.net.URL stoneURL = null; - java.net.URL skyURL = null; - // the path to the image for an application - try { - stoneURL = new java.net.URL("file:../images/stone.jpg"); - skyURL = new java.net.URL("file:../images/bg.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - new MainFrame(new MultiTextureTest(stoneURL, skyURL), 750, 750); - } -} - diff --git a/src/TextureTest/MultiTextureTest_plugin.html b/src/TextureTest/MultiTextureTest_plugin.html deleted file mode 100644 index 92ef05c..0000000 --- a/src/TextureTest/MultiTextureTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>MultiTextureTest</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 750 HEIGHT = 750 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "MultiTextureTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "MultiTextureTest.class" WIDTH = 750 HEIGHT = 750 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "MultiTextureTest.class" WIDTH = 750 HEIGHT = 750 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/TextureTest/TextureImage.html b/src/TextureTest/TextureImage.html deleted file mode 100644 index 5fd0a2c..0000000 --- a/src/TextureTest/TextureImage.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>TextureImage</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="TextureImage.class" width=256 height=256> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/TextureTest/TextureImage.java b/src/TextureTest/TextureImage.java deleted file mode 100644 index 7516d37..0000000 --- a/src/TextureTest/TextureImage.java +++ /dev/null @@ -1,178 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import com.sun.j3d.utils.image.TextureLoader; -import com.sun.j3d.utils.geometry.Box; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class TextureImage extends Applet { - - private java.net.URL texImage = null; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create the transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. Add it to the - // root of the subgraph. - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objRoot.addChild(objTrans); - - // Create appearance object for textured cube - Appearance app = new Appearance(); - Texture tex = new TextureLoader(texImage, this).getTexture(); - app.setTexture(tex); - TextureAttributes texAttr = new TextureAttributes(); - texAttr.setTextureMode(TextureAttributes.MODULATE); - app.setTextureAttributes(texAttr); - - // Create textured cube and add it to the scene graph. - Box textureCube = new Box(0.4f, 0.4f, 0.4f, - Box.GENERATE_TEXTURE_COORDS, app); - objTrans.addChild(textureCube); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into - // the scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - - // Have Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - public TextureImage() { - } - - public TextureImage(java.net.URL url) { - texImage = url; - } - - public void init() { - if (texImage == null) { - // the path to the image for an applet - try { - texImage = new java.net.URL(getCodeBase().toString() + - "../images/stone.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows TextureImage to be run as an application - // as well as an applet - // - public static void main(String[] args) { - java.net.URL url = null; - if (args.length > 0) { - try { - url = new java.net.URL("file:" + args[0]); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - else { - // the path to the image for an application - try { - url = new java.net.URL("file:../images/stone.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - new MainFrame(new TextureImage(url), 256, 256); - } - -} diff --git a/src/TextureTest/TextureImage_plugin.html b/src/TextureTest/TextureImage_plugin.html deleted file mode 100644 index 0608f44..0000000 --- a/src/TextureTest/TextureImage_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>TextureImage</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 256 HEIGHT = 256 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "TextureImage.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "TextureImage.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "TextureImage.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/TextureTest/build.xml b/src/TextureTest/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/TextureTest/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/TickTockCollision/Box.java b/src/TickTockCollision/Box.java deleted file mode 100644 index cb133a9..0000000 --- a/src/TickTockCollision/Box.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -public class Box extends Shape3D { - - public Box(double xsize, double ysize, double zsize) { - super(); - double xmin = -xsize/2.0; - double xmax = xsize/2.0; - double ymin = -ysize/2.0; - double ymax = ysize/2.0; - double zmin = -zsize/2.0; - double zmax = zsize/2.0; - - QuadArray box = new QuadArray(24, QuadArray.COORDINATES); - - Point3d verts[] = new Point3d[24]; - - // front face - verts[0] = new Point3d(xmax, ymin, zmax); - verts[1] = new Point3d(xmax, ymax, zmax); - verts[2] = new Point3d(xmin, ymax, zmax); - verts[3] = new Point3d(xmin, ymin, zmax); - // back face - verts[4] = new Point3d(xmin, ymin, zmin); - verts[5] = new Point3d(xmin, ymax, zmin); - verts[6] = new Point3d(xmax, ymax, zmin); - verts[7] = new Point3d(xmax, ymin, zmin); - // right face - verts[8] = new Point3d(xmax, ymin, zmin); - verts[9] = new Point3d(xmax, ymax, zmin); - verts[10] = new Point3d(xmax, ymax, zmax); - verts[11] = new Point3d(xmax, ymin, zmax); - // left face - verts[12] = new Point3d(xmin, ymin, zmax); - verts[13] = new Point3d(xmin, ymax, zmax); - verts[14] = new Point3d(xmin, ymax, zmin); - verts[15] = new Point3d(xmin, ymin, zmin); - // top face - verts[16] = new Point3d(xmax, ymax, zmax); - verts[17] = new Point3d(xmax, ymax, zmin); - verts[18] = new Point3d(xmin, ymax, zmin); - verts[19] = new Point3d(xmin, ymax, zmax); - // bottom face - verts[20] = new Point3d(xmin, ymin, zmax); - verts[21] = new Point3d(xmin, ymin, zmin); - verts[22] = new Point3d(xmax, ymin, zmin); - verts[23] = new Point3d(xmax, ymin, zmax); - - box.setCoordinates(0, verts); - setGeometry(box); - setAppearance(new Appearance()); - } -} diff --git a/src/TickTockCollision/CollisionDetector.java b/src/TickTockCollision/CollisionDetector.java deleted file mode 100644 index 77c846f..0000000 --- a/src/TickTockCollision/CollisionDetector.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.util.Enumeration; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class CollisionDetector extends Behavior { - private static final Color3f highlightColor = - new Color3f(0.0f, 1.0f, 0.0f); - private static final ColoringAttributes highlight = - new ColoringAttributes(highlightColor, - ColoringAttributes.SHADE_GOURAUD); - - private boolean inCollision = false; - private Shape3D shape; - private ColoringAttributes shapeColoring; - private Appearance shapeAppearance; - - private WakeupOnCollisionEntry wEnter; - private WakeupOnCollisionExit wExit; - - - public CollisionDetector(Shape3D s) { - shape = s; - shapeAppearance = shape.getAppearance(); - shapeColoring = shapeAppearance.getColoringAttributes(); - inCollision = false; - } - - public void initialize() { - wEnter = new WakeupOnCollisionEntry(shape); - wExit = new WakeupOnCollisionExit(shape); - wakeupOn(wEnter); - } - - public void processStimulus(Enumeration criteria) { - inCollision = !inCollision; - - if (inCollision) { - shapeAppearance.setColoringAttributes(highlight); - wakeupOn(wExit); - } - else { - shapeAppearance.setColoringAttributes(shapeColoring); - wakeupOn(wEnter); - } - } -} diff --git a/src/TickTockCollision/TickTockCollision.html b/src/TickTockCollision/TickTockCollision.html deleted file mode 100644 index bfe7f29..0000000 --- a/src/TickTockCollision/TickTockCollision.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Tick, Tock Collision!</TITLE> -</HEAD> -<BODY BGCOLOR="#0C0C33"> -<applet align=middle code="TickTockCollision.class" width=700 height=700> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a Tick, Tock Collision instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/TickTockCollision/TickTockCollision.java b/src/TickTockCollision/TickTockCollision.java deleted file mode 100644 index 854a2bc..0000000 --- a/src/TickTockCollision/TickTockCollision.java +++ /dev/null @@ -1,217 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.ColorCube; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class TickTockCollision extends Applet { - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph() { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create a bounds for the background and behaviors - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.2f); - Background bg = new Background(bgColor); - bg.setApplicationBounds(bounds); - objScale.addChild(bg); - - // Create a pair of transform group nodes and initialize them to - // identity. Enable the TRANSFORM_WRITE capability so that - // our behaviors can modify them at runtime. Add them to the - // root of the subgraph. - TransformGroup objTrans1 = new TransformGroup(); - objTrans1.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objScale.addChild(objTrans1); - - TransformGroup objTrans2 = new TransformGroup(); - objTrans2.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans1.addChild(objTrans2); - - // Create the positioning and scaling transform group node. - Transform3D t = new Transform3D(); - t.set(0.3, new Vector3d(0.0, -1.5, 0.0)); - TransformGroup objTrans3 = new TransformGroup(t); - objTrans2.addChild(objTrans3); - - // Create a simple shape leaf node, add it to the scene graph. - objTrans3.addChild(new ColorCube()); - - // Create a new Behavior object that will perform the desired - // rotation on the specified transform object and add it into - // the scene graph. - Transform3D yAxis1 = new Transform3D(); - yAxis1.rotX(Math.PI/2.0); - Alpha tickTockAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE | - Alpha.DECREASING_ENABLE, - 0, 0, - 5000, 2500, 200, - 5000, 2500, 200); - - RotationInterpolator tickTock = - new RotationInterpolator(tickTockAlpha, objTrans1, yAxis1, - -(float) Math.PI/2.0f, - (float) Math.PI/2.0f); - tickTock.setSchedulingBounds(bounds); - objTrans2.addChild(tickTock); - - // Create a new Behavior object that will perform the desired - // rotation on the specified transform object and add it into - // the scene graph. - Transform3D yAxis2 = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans2, yAxis2, - 0.0f, (float) Math.PI*2.0f); - rotator.setSchedulingBounds(bounds); - objTrans2.addChild(rotator); - - // Now create a pair of rectangular boxes, each with a collision - // detection behavior attached. The behavior will highlight the - // object when it is in a state of collision. - - Group box1 = createBox(0.3, new Vector3d(-1.3, 0.0, 0.0)); - Group box2 = createBox(0.3, new Vector3d( 1.3, 0.0, 0.0)); - - objScale.addChild(box1); - objScale.addChild(box2); - - // Have Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - - private Group createBox(double scale, Vector3d pos) { - // Create a transform group node to scale and position the object. - Transform3D t = new Transform3D(); - t.set(scale, pos); - TransformGroup objTrans = new TransformGroup(t); - - // Create a simple shape leaf node and add it to the scene graph - Shape3D shape = new Box(0.5, 5.0, 1.0); - objTrans.addChild(shape); - - // Create a new ColoringAttributes object for the shape's - // appearance and make it writable at runtime. - Appearance app = shape.getAppearance(); - ColoringAttributes ca = new ColoringAttributes(); - ca.setColor(0.6f, 0.3f, 0.0f); - app.setCapability(app.ALLOW_COLORING_ATTRIBUTES_WRITE); - app.setColoringAttributes(ca); - - // Create a new Behavior object that will perform the collision - // detection on the specified object, and add it into - // the scene graph. - CollisionDetector cd = new CollisionDetector(shape); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - cd.setSchedulingBounds(bounds); - - // Add the behavior to the scene graph - objTrans.addChild(cd); - - return objTrans; - } - - - public TickTockCollision() { - } - - public void init() { - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows TickTockCollision to be run as an application - // as well as an applet - // - public static void main(String[] args) { - new MainFrame(new TickTockCollision(), 700, 700); - } -} diff --git a/src/TickTockCollision/TickTockCollision_plugin.html b/src/TickTockCollision/TickTockCollision_plugin.html deleted file mode 100644 index 9c93741..0000000 --- a/src/TickTockCollision/TickTockCollision_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Tick, Tock Collision!</TITLE> -</HEAD> -<BODY BGCOLOR="#0C0C33"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 700 HEIGHT = 700 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "TickTockCollision.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "TickTockCollision.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a Tick, Tock Collision instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "TickTockCollision.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a Tick, Tock Collision instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/TickTockCollision/build.xml b/src/TickTockCollision/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/TickTockCollision/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/TickTockPicking/Cube.java b/src/TickTockPicking/Cube.java deleted file mode 100644 index ab0977d..0000000 --- a/src/TickTockPicking/Cube.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -public class Cube extends Shape3D { - private static final float[] verts = { - // front face - 1.0f, -1.0f, 1.0f, - 1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, 1.0f, - -1.0f, -1.0f, 1.0f, - // back face - -1.0f, -1.0f, -1.0f, - -1.0f, 1.0f, -1.0f, - 1.0f, 1.0f, -1.0f, - 1.0f, -1.0f, -1.0f, - // right face - 1.0f, -1.0f, -1.0f, - 1.0f, 1.0f, -1.0f, - 1.0f, 1.0f, 1.0f, - 1.0f, -1.0f, 1.0f, - // left face - -1.0f, -1.0f, 1.0f, - -1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, -1.0f, - -1.0f, -1.0f, -1.0f, - // top face - 1.0f, 1.0f, 1.0f, - 1.0f, 1.0f, -1.0f, - -1.0f, 1.0f, -1.0f, - -1.0f, 1.0f, 1.0f, - // bottom face - -1.0f, -1.0f, 1.0f, - -1.0f, -1.0f, -1.0f, - 1.0f, -1.0f, -1.0f, - 1.0f, -1.0f, 1.0f, - }; - - private static final Vector3f[] normals = { - new Vector3f( 0.0f, 0.0f, 1.0f), // front face - new Vector3f( 0.0f, 0.0f, -1.0f), // back face - new Vector3f( 1.0f, 0.0f, 0.0f), // right face - new Vector3f(-1.0f, 0.0f, 0.0f), // left face - new Vector3f( 0.0f, 1.0f, 0.0f), // top face - new Vector3f( 0.0f, -1.0f, 0.0f), // bottom face - }; - - public Cube() { - super(); - - int i; - - QuadArray cube = new QuadArray(24, QuadArray.COORDINATES | - QuadArray.NORMALS); - - cube.setCoordinates(0, verts); - for (i = 0; i < 24; i++) { - cube.setNormal(i, normals[i/4]); - } - - cube.setCapability(Geometry.ALLOW_INTERSECT); - setGeometry(cube); - setAppearance(new Appearance()); - } -} diff --git a/src/TickTockPicking/PickHighlightBehavior.java b/src/TickTockPicking/PickHighlightBehavior.java deleted file mode 100644 index 3469c73..0000000 --- a/src/TickTockPicking/PickHighlightBehavior.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import com.sun.j3d.utils.picking.PickTool; -import com.sun.j3d.utils.picking.PickResult; -import com.sun.j3d.utils.picking.behaviors.PickMouseBehavior; -import java.util.*; -import java.awt.*; -import java.awt.Event; -import java.awt.AWTEvent; -import java.awt.event.MouseEvent; -import javax.vecmath.*; - -public class PickHighlightBehavior extends PickMouseBehavior { - Appearance savedAppearance = null; - Shape3D oldShape = null; - Appearance highlightAppearance; - - public PickHighlightBehavior(Canvas3D canvas, BranchGroup root, - Bounds bounds) { - super(canvas, root, bounds); - this.setSchedulingBounds(bounds); - root.addChild(this); - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - Color3f highlightColor = new Color3f(0.0f, 1.0f, 0.0f); - Material highlightMaterial = new Material(highlightColor, black, - highlightColor, white, - 80.0f); - highlightAppearance = new Appearance(); - highlightAppearance.setMaterial(new Material(highlightColor, black, - highlightColor, white, - 80.0f)); - - pickCanvas.setMode(PickTool.BOUNDS); - } - - public void updateScene(int xpos, int ypos) { - PickResult pickResult = null; - Shape3D shape = null; - - pickCanvas.setShapeLocation(xpos, ypos); - - pickResult = pickCanvas.pickClosest(); - if (pickResult != null) { - shape = (Shape3D) pickResult.getNode(PickResult.SHAPE3D); - } - - if (oldShape != null){ - oldShape.setAppearance(savedAppearance); - } - if (shape != null) { - savedAppearance = shape.getAppearance(); - oldShape = shape; - shape.setAppearance(highlightAppearance); - } - } -} diff --git a/src/TickTockPicking/Tetrahedron.java b/src/TickTockPicking/Tetrahedron.java deleted file mode 100644 index 5cd2fa8..0000000 --- a/src/TickTockPicking/Tetrahedron.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; - -public class Tetrahedron extends Shape3D { - private static final float sqrt3 = (float) Math.sqrt(3.0); - private static final float sqrt3_3 = sqrt3 / 3.0f; - private static final float sqrt24_3 = (float) Math.sqrt(24.0) / 3.0f; - - private static final float ycenter = 0.5f * sqrt24_3; - private static final float zcenter = -sqrt3_3; - - private static final Point3f p1 = new Point3f(-1.0f, -ycenter, -zcenter); - private static final Point3f p2 = new Point3f(1.0f, -ycenter, -zcenter); - private static final Point3f p3 = - new Point3f(0.0f, -ycenter, -sqrt3 - zcenter); - private static final Point3f p4 = - new Point3f(0.0f, sqrt24_3 - ycenter, 0.0f); - - private static final Point3f[] verts = { - p1, p2, p4, // front face - p1, p4, p3, // left, back face - p2, p3, p4, // right, back face - p1, p3, p2, // bottom face - }; - - private TexCoord2f texCoord[] = { - new TexCoord2f(0.0f, 0.0f), - new TexCoord2f(1.0f, 0.0f), - new TexCoord2f(0.5f, sqrt3 / 2.0f), - }; - - public Tetrahedron() { - int i; - - TriangleArray tetra = new TriangleArray(12, TriangleArray.COORDINATES | - TriangleArray.NORMALS | TriangleArray.TEXTURE_COORDINATE_2); - - tetra.setCoordinates(0, verts); - for (i = 0; i < 12; i++) { - tetra.setTextureCoordinate(0, i, texCoord[i%3]); - } - - int face; - Vector3f normal = new Vector3f(); - Vector3f v1 = new Vector3f(); - Vector3f v2 = new Vector3f(); - Point3f [] pts = new Point3f[3]; - for (i = 0; i < 3; i++) pts[i] = new Point3f(); - - for (face = 0; face < 4; face++) { - tetra.getCoordinates(face*3, pts); - v1.sub(pts[1], pts[0]); - v2.sub(pts[2], pts[0]); - normal.cross(v1, v2); - normal.normalize(); - for (i = 0; i < 3; i++) { - tetra.setNormal((face * 3 + i), normal); - } - } - - tetra.setCapability(Geometry.ALLOW_INTERSECT); - - this.setGeometry(tetra); - this.setAppearance(new Appearance()); - } -} diff --git a/src/TickTockPicking/TickTockPicking.html b/src/TickTockPicking/TickTockPicking.html deleted file mode 100644 index 2a4fc41..0000000 --- a/src/TickTockPicking/TickTockPicking.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Tick, Tock Picking!</TITLE> -</HEAD> -<BODY BGCOLOR="#0C0C33"> -<applet align=middle code="TickTockPicking.class" width=700 height=700> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a Tick, Tock Picking instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/TickTockPicking/TickTockPicking.java b/src/TickTockPicking/TickTockPicking.java deleted file mode 100644 index ee77935..0000000 --- a/src/TickTockPicking/TickTockPicking.java +++ /dev/null @@ -1,446 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.universe.*; -import com.sun.j3d.utils.image.TextureLoader; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class TickTockPicking extends Applet { - - // path the the texture map image - private java.net.URL texImage = null; - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph(Canvas3D c) { - // Create the root of the branch graph - BranchGroup objRoot = new BranchGroup(); - - // Create a Transformgroup to scale all objects so they - // appear in the scene. - TransformGroup objScale = new TransformGroup(); - Transform3D t3d = new Transform3D(); - t3d.setScale(0.4); - objScale.setTransform(t3d); - objRoot.addChild(objScale); - - // Create a bounds for the background and behaviors - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - // Set up the background - Color3f bgColor = new Color3f(0.05f, 0.05f, 0.2f); - Background bg = new Background(bgColor); - bg.setApplicationBounds(bounds); - objScale.addChild(bg); - - // Set up the global lights - Color3f lColor1 = new Color3f(0.7f, 0.7f, 0.7f); - Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, -1.0f); - Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f); - - AmbientLight aLgt = new AmbientLight(alColor); - aLgt.setInfluencingBounds(bounds); - DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1); - lgt1.setInfluencingBounds(bounds); - objScale.addChild(aLgt); - objScale.addChild(lgt1); - - // Create a pair of transform group nodes and initialize them to - // identity. Enable the TRANSFORM_WRITE capability so that - // our behaviors can modify them at runtime. Add them to the - // root of the subgraph. - TransformGroup objTrans1 = new TransformGroup(); - objTrans1.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objScale.addChild(objTrans1); - - TransformGroup objTrans2 = new TransformGroup(); - objTrans2.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objTrans1.addChild(objTrans2); - - // Create the positioning and scaling transform group node. - Transform3D t = new Transform3D(); - t.set(0.3, new Vector3d(0.0, -1.5, 0.0)); - TransformGroup objTrans3 = new TransformGroup(t); - objTrans2.addChild(objTrans3); - - // Create a simple shape leaf node, set it's appearance, and - // add it to the scene graph. - Shape3D shape = new Cube(); - Appearance a = new Appearance(); - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - Color3f objColor = new Color3f(0.8f, 0.0f, 0.0f); - a.setMaterial(new Material(objColor, black, objColor, - white, 80.0f)); - shape.setAppearance(a); - shape.setCapability(shape.ALLOW_APPEARANCE_READ); - shape.setCapability(shape.ALLOW_APPEARANCE_WRITE); - objTrans3.addChild(shape); - - // Create a new Behavior object that will perform the desired - // rotation on the specified transform object and add it into - // the scene graph. - Transform3D yAxis1 = new Transform3D(); - yAxis1.rotX(Math.PI/2.0); - Alpha tickTockAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE | - Alpha.DECREASING_ENABLE, - 0, 0, - 5000, 2500, 200, - 5000, 2500, 200); - - RotationInterpolator tickTock = - new RotationInterpolator(tickTockAlpha, objTrans1, yAxis1, - -(float) Math.PI/2.0f, - (float) Math.PI/2.0f); - tickTock.setSchedulingBounds(bounds); - objTrans2.addChild(tickTock); - - // Create a new Behavior object that will perform the desired - // rotation on the specified transform object and add it into - // the scene graph. - Transform3D yAxis2 = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans2, yAxis2, - 0.0f, (float) Math.PI*2.0f); - rotator.setSchedulingBounds(bounds); - objTrans2.addChild(rotator); - - // Now create the simple picking behavior - PickHighlightBehavior pickBeh = new - PickHighlightBehavior(c, objRoot, bounds); - - // Create a bunch of objects with a behavior and add them - // into the scene graph. - - int row, col; - Appearance[][] app = new Appearance[3][3]; - - for (row = 0; row < 3; row++) - for (col = 0; col < 3; col++) - app[row][col] = createAppearance(row * 3 + col); - - for (int i = 0; i < 3; i++) { - double ypos = (double)(i - 1) * 1.5; - for (int j = 0; j < 3; j++) { - double xpos = (double)(j - 1) * 1.5; - objScale.addChild(createObject(app[i][j], 0.3, xpos, ypos)); - } - } - - // Have Java 3D perform optimizations on this scene graph. - objRoot.compile(); - - return objRoot; - } - - - private Appearance createAppearance(int idx) { - Appearance app = new Appearance(); - - // Globally used colors - Color3f black = new Color3f(0.0f, 0.0f, 0.0f); - Color3f white = new Color3f(1.0f, 1.0f, 1.0f); - - switch (idx) { - // Unlit solid - case 0: - { - // Set up the coloring properties - Color3f objColor = new Color3f(1.0f, 0.2f, 0.4f); - ColoringAttributes ca = new ColoringAttributes(); - ca.setColor(objColor); - app.setColoringAttributes(ca); - break; - } - - - // Unlit wire frame - case 1: - { - // Set up the coloring properties - Color3f objColor = new Color3f(1.0f, 0.4f, 0.0f); - ColoringAttributes ca = new ColoringAttributes(); - ca.setColor(objColor); - app.setColoringAttributes(ca); - - // Set up the polygon attributes - PolygonAttributes pa = new PolygonAttributes(); - pa.setPolygonMode(pa.POLYGON_LINE); - pa.setCullFace(pa.CULL_NONE); - app.setPolygonAttributes(pa); - break; - } - - // Unlit points - case 2: - { - // Set up the coloring properties - Color3f objColor = new Color3f(1.0f, 1.0f, 0.0f); - ColoringAttributes ca = new ColoringAttributes(); - ca.setColor(objColor); - app.setColoringAttributes(ca); - - // Set up the polygon attributes - PolygonAttributes pa = new PolygonAttributes(); - pa.setPolygonMode(pa.POLYGON_POINT); - pa.setCullFace(pa.CULL_NONE); - app.setPolygonAttributes(pa); - - // Set up point attributes - PointAttributes pta = new PointAttributes(); - pta.setPointSize(5.0f); - app.setPointAttributes(pta); - break; - } - - // Lit solid - case 3: - { - // Set up the material properties - Color3f objColor = new Color3f(0.8f, 0.0f, 0.0f); - app.setMaterial(new Material(objColor, black, objColor, - white, 80.0f)); - break; - } - - // Texture mapped, lit solid - case 4: - { - // Set up the texture map - TextureLoader tex = new TextureLoader(texImage, this); - app.setTexture(tex.getTexture()); - - TextureAttributes texAttr = new TextureAttributes(); - texAttr.setTextureMode(TextureAttributes.MODULATE); - app.setTextureAttributes(texAttr); - - // Set up the material properties - app.setMaterial(new Material(white, black, white, black, 1.0f)); - break; - } - - // Transparent, lit solid - case 5: - { - // Set up the transparency properties - TransparencyAttributes ta = new TransparencyAttributes(); - ta.setTransparencyMode(ta.BLENDED); - ta.setTransparency(0.6f); - app.setTransparencyAttributes(ta); - - // Set up the polygon attributes - PolygonAttributes pa = new PolygonAttributes(); - pa.setCullFace(pa.CULL_NONE); - app.setPolygonAttributes(pa); - - // Set up the material properties - Color3f objColor = new Color3f(0.7f, 0.8f, 1.0f); - app.setMaterial(new Material(objColor, black, objColor, - black, 1.0f)); - break; - } - - // Lit solid, no specular - case 6: - { - // Set up the material properties - Color3f objColor = new Color3f(0.8f, 0.0f, 0.0f); - app.setMaterial(new Material(objColor, black, objColor, - black, 80.0f)); - break; - } - - // Lit solid, specular only - case 7: - { - // Set up the material properties - Color3f objColor = new Color3f(0.8f, 0.0f, 0.0f); - app.setMaterial(new Material(black, black, black, - white, 80.0f)); - break; - } - - // Another lit solid with a different color - case 8: - { - // Set up the material properties - Color3f objColor = new Color3f(0.8f, 0.8f, 0.0f); - app.setMaterial(new Material(objColor, black, objColor, - white, 80.0f)); - break; - } - - default: - { - ColoringAttributes ca = new ColoringAttributes(); - ca.setColor(new Color3f(0.0f, 1.0f, 0.0f)); - app.setColoringAttributes(ca); - } - } - - return app; - } - - - private Group createObject(Appearance app, double scale, - double xpos, double ypos) { - - // Create a transform group node to scale and position the object. - Transform3D t = new Transform3D(); - t.set(scale, new Vector3d(xpos, ypos, 0.0)); - TransformGroup objTrans = new TransformGroup(t); - - // Create a second transform group node and initialize it to the - // identity. Enable the TRANSFORM_WRITE capability so that - // our behavior code can modify it at runtime. - TransformGroup spinTg = new TransformGroup(); - spinTg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - spinTg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); - - // Create a simple shape leaf node and set the appearance - Shape3D shape = new Tetrahedron(); - shape.setAppearance(app); - shape.setCapability(shape.ALLOW_APPEARANCE_READ); - shape.setCapability(shape.ALLOW_APPEARANCE_WRITE); - - // add it to the scene graph. - spinTg.addChild(shape); - - // Create a new Behavior object that will perform the desired - // operation on the specified transform object and add it into - // the scene graph. - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 5000, 0, 0, - 0, 0, 0); - - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, spinTg, yAxis, - 0.0f, (float) Math.PI*2.0f); - - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - - rotator.setSchedulingBounds(bounds); - - // Add the behavior and the transform group to the object - objTrans.addChild(rotator); - objTrans.addChild(spinTg); - - return objTrans; - } - - - public TickTockPicking() { - } - - public TickTockPicking(java.net.URL url) { - texImage = url; - } - - public void init() { - if (texImage == null) { - // the path to the image for an applet - try { - texImage = new java.net.URL(getCodeBase().toString() + - "../images/apimage.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - } - - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(c); - u = new SimpleUniverse(c); - - // This will move the ViewPlatform back a bit so the - // objects in the scene can be viewed. - u.getViewingPlatform().setNominalViewingTransform(); - - u.addBranchGraph(scene); - - } - - public void destroy() { - u.cleanup(); - } - - // - // The following allows TickTockPicking to be run as an application - // as well as an applet - // - public static void main(String[] args) { - // the path the the texture map for an application - java.net.URL url = null; - try { - url = new java.net.URL("file:../images/apimage.jpg"); - } - catch (java.net.MalformedURLException ex) { - System.out.println(ex.getMessage()); - System.exit(1); - } - new MainFrame(new TickTockPicking(url), 700, 700); - } -} diff --git a/src/TickTockPicking/TickTockPicking_plugin.html b/src/TickTockPicking/TickTockPicking_plugin.html deleted file mode 100644 index 7030770..0000000 --- a/src/TickTockPicking/TickTockPicking_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Tick, Tock Picking!</TITLE> -</HEAD> -<BODY BGCOLOR="#0C0C33"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 700 HEIGHT = 700 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "TickTockPicking.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "TickTockPicking.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a Tick, Tock Picking instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "TickTockPicking.class" WIDTH = 700 HEIGHT = 700 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see a Tick, Tock Picking instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/TickTockPicking/build.xml b/src/TickTockPicking/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/TickTockPicking/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/Timer/TimerTest.html b/src/Timer/TimerTest.html deleted file mode 100644 index 5da3035..0000000 --- a/src/Timer/TimerTest.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Hello, Universe!</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="TimerTest.class" width=256 height=256> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/Timer/TimerTest.java b/src/Timer/TimerTest.java deleted file mode 100644 index 37f0f7c..0000000 --- a/src/Timer/TimerTest.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.Panel; -import java.awt.TextArea; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.timer.J3DTimer; - -public class TimerTest extends Applet { - - long[] ticks = new long[10]; - long[] sysTime = new long[ticks.length]; - - public TimerTest() { - } - - public void init() { - Panel panel = new Panel(); - String header = new String(" J3D Timer System Timer\n"); - TextArea textArea = new TextArea(header, 12, 35, TextArea.SCROLLBARS_NONE ); - panel.add(textArea); - this.add(panel); - - - for(int i=0; i<ticks.length; i++) { - ticks[i] = J3DTimer.getValue(); - sysTime[i] = System.currentTimeMillis(); - } - - for(int i=0; i<ticks.length; i++) - //System.out.println("tick "+ticks[i]+" "+sysTime[i] ); - textArea.append("tick "+ticks[i]+" "+sysTime[i] + "\n" ); - //System.out.println("Resolution "+J3DTimer.getResolution() ); - textArea.append("Resolution "+J3DTimer.getResolution() + "\n" ); - - } - - public static void main( String args[] ) { - new MainFrame(new TimerTest(), 380, 256); - } - -} diff --git a/src/Timer/TimerTest_plugin.html b/src/Timer/TimerTest_plugin.html deleted file mode 100644 index 56b4cef..0000000 --- a/src/Timer/TimerTest_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Hello, Universe!</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 512 HEIGHT = 256 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "TimerTest.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "TimerTest.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "TimerTest.class" WIDTH = 256 HEIGHT = 256 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/Timer/build.xml b/src/Timer/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/Timer/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/VirtualInputDevice/ButtonPositionControls.java b/src/VirtualInputDevice/ButtonPositionControls.java deleted file mode 100644 index 73fccbe..0000000 --- a/src/VirtualInputDevice/ButtonPositionControls.java +++ /dev/null @@ -1,207 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.*; -import java.awt.event.*; -import javax.vecmath.*; -import javax.media.j3d.*; - -public class ButtonPositionControls extends Panel implements PositionControls, MouseListener { - private final static int STILL=0; - private final static int MOVING_UP=1; - private final static int MOVING_DOWN=2; - private final static int MOVING_LEFT=3; - private final static int MOVING_RIGHT=4; - private final static int MOVING_FORWARD=5; - private final static int MOVING_BACK=6; - - // initial mode - private int mode = STILL; - - Vector3f position = new Vector3f(); - Vector3f orig_position = new Vector3f(); - - private Button leftB = new Button("Move Left"); - private Button rightB = new Button("Move Right"); - private Button upB = new Button("Move Up"); - private Button downB = new Button("Move Down"); - - private Button forwardB = new Button("Move Forward"); - private Button backwardB = new Button("Move Back"); - - private Button reset = new Button("Reset"); - private InputDevice device; - - private float step_rate = 0.0023f; // movement rate per millisecond - private long time_last_state_change = System.currentTimeMillis(); - - // the constructor arguments are the intitial X, Y, and Z positions - public ButtonPositionControls( float x, float y, float z ) { - - // up, down, right, and left movement buttons - Panel panPanel = new Panel(); - panPanel.setLayout( new BorderLayout() ); - panPanel.add("North", upB); - panPanel.add("East", rightB); - panPanel.add("South", downB); - panPanel.add("West", leftB); - - // forward, backward, and reset buttons - Panel p = new Panel(); - p.setLayout( new GridLayout(0,1,0,0) ); - p.add(forwardB); - p.add(backwardB); - p.add(reset); - - // set the initial position - position.x = x; - position.y = y; - position.z = z; - orig_position.set(position); - - // add a mouse listener to each button - upB.addMouseListener(this); - downB.addMouseListener(this); - leftB.addMouseListener(this); - rightB.addMouseListener(this); - forwardB.addMouseListener(this); - backwardB.addMouseListener(this); - reset.addMouseListener(this); - - this.setLayout( new BorderLayout() ); - add("East", p ); - add("West", panPanel ); - } - - public void setDevice ( InputDevice device) { - this.device = device; - } - - public void getPosition(Vector3f pos ) { - calculateMotion(); - pos.set(position); - } - - public void setPosition(Vector3f pos ) { - position.set(pos); - } - - public void setStepRate( float stepRate ) { - step_rate = stepRate; - } - - private void calculateMotion() { - - long current_time = System.currentTimeMillis(); - long elapsed_time = current_time - time_last_state_change; - - switch(mode) { - case STILL: - break; - case MOVING_LEFT: - position.x = orig_position.x - step_rate*elapsed_time; - break; - case MOVING_RIGHT: - position.x = orig_position.x + step_rate*elapsed_time; - break; - case MOVING_UP: - position.y = orig_position.y + step_rate*elapsed_time; - break; - case MOVING_DOWN: - position.y = orig_position.y - step_rate*elapsed_time; - break; - case MOVING_FORWARD: - position.z = orig_position.z - step_rate*elapsed_time; - break; - case MOVING_BACK: - position.z = orig_position.z + step_rate*elapsed_time; - break; - default: - throw( new RuntimeException("Unknown motion")); - } - } - - public void mouseClicked( MouseEvent e ) { - } - - public void mouseEntered( MouseEvent e ) { - } - - public void mouseExited( MouseEvent e ) { - } - - public void mousePressed( MouseEvent e ) { - if (e.getSource()==leftB && mode != MOVING_LEFT) { - time_last_state_change = System.currentTimeMillis(); - mode = MOVING_LEFT; - orig_position.set(position); - } else if (e.getSource()==rightB && mode != MOVING_RIGHT) { - time_last_state_change = System.currentTimeMillis(); - mode = MOVING_RIGHT; - orig_position.set(position); - } else if (e.getSource()==upB && mode != MOVING_UP) { - time_last_state_change = System.currentTimeMillis(); - mode = MOVING_UP; - orig_position.set(position); - } else if (e.getSource()==downB && mode != MOVING_DOWN) { - time_last_state_change = System.currentTimeMillis(); - mode = MOVING_DOWN; - orig_position.set(position); - } else if (e.getSource()==forwardB && mode != MOVING_FORWARD) { - time_last_state_change = System.currentTimeMillis(); - mode = MOVING_FORWARD; - orig_position.set(position); - } else if (e.getSource()==backwardB && mode != MOVING_BACK) { - time_last_state_change = System.currentTimeMillis(); - mode = MOVING_BACK; - orig_position.set(position); - } else if (e.getSource()==reset) { - device.setNominalPositionAndOrientation(); - } - } - - public void mouseReleased( MouseEvent e ) { - mode = STILL; - } -} diff --git a/src/VirtualInputDevice/HelloUniverse.html b/src/VirtualInputDevice/HelloUniverse.html deleted file mode 100644 index cd8d3de..0000000 --- a/src/VirtualInputDevice/HelloUniverse.html +++ /dev/null @@ -1,15 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Hello, Universe!</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<applet align=middle code="HelloUniverse.class" width=350 height=350> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</applet> -</BODY> -</HTML> diff --git a/src/VirtualInputDevice/HelloUniverse.java b/src/VirtualInputDevice/HelloUniverse.java deleted file mode 100644 index 3632727..0000000 --- a/src/VirtualInputDevice/HelloUniverse.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.applet.Applet; -import java.awt.*; -import java.awt.event.*; -import com.sun.j3d.utils.applet.MainFrame; -import com.sun.j3d.utils.geometry.ColorCube; -import com.sun.j3d.utils.universe.*; -import javax.media.j3d.*; -import javax.vecmath.*; - -public class HelloUniverse extends Applet { - - private SimpleUniverse u = null; - - public BranchGroup createSceneGraph() { - - BranchGroup objRoot = new BranchGroup(); - TransformGroup objTrans = new TransformGroup(); - objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - objRoot.addChild(objTrans); - objTrans.addChild(new ColorCube(0.2)); - Transform3D yAxis = new Transform3D(); - Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, - 0, 0, - 4000, 0, 0, - 0, 0, 0); - RotationInterpolator rotator = - new RotationInterpolator(rotationAlpha, objTrans, yAxis, - 0.0f, (float) Math.PI*2.0f); - BoundingSphere bounds = - new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); - rotator.setSchedulingBounds(bounds); - objTrans.addChild(rotator); - return objRoot; - } - - - public HelloUniverse() { - - } - - public void init() { - // These are the string arguments given to the VirtualInputDevice - // constructor. These are settable parameters. Look in the - // VirtualInputDevice constructor for a complete list. - String[] args = new String[10]; - args[0] = "printvalues"; - args[1] = "true"; - args[2] = "yscreeninitloc"; - args[3] = "50"; - args[4] = null; - - InputDevice device = new VirtualInputDevice( args ); - - // now create the HelloUniverse Canvas - setLayout(new BorderLayout()); - GraphicsConfiguration config = - SimpleUniverse.getPreferredConfiguration(); - - Canvas3D c = new Canvas3D(config); - add("Center", c); - - // Create a simple scene and attach it to the virtual universe - BranchGroup scene = createSceneGraph(); - u = new SimpleUniverse(c); - - // The InputDevice must be initialized before registering it - // with the PhysicalEnvironment object. - device.initialize(); - - // Register the VirtualInputDevice with Java 3D - u.getViewer().getPhysicalEnvironment().addInputDevice( device ); - - TransformGroup viewTrans = - u.getViewingPlatform().getViewPlatformTransform(); - SensorBehavior s = new SensorBehavior( viewTrans, device.getSensor(0) ); - s.setSchedulingBounds( new BoundingSphere - ( new Point3d(0.0,0.0,0.0), Float.MAX_VALUE )); - scene.addChild( s ); - u.addBranchGraph(scene); - } - - public void destroy() { - u.cleanup(); - } - - - public static void main(String[] args) { - new MainFrame(new HelloUniverse(), 350, 350); - } -} diff --git a/src/VirtualInputDevice/HelloUniverse_plugin.html b/src/VirtualInputDevice/HelloUniverse_plugin.html deleted file mode 100644 index d3619d9..0000000 --- a/src/VirtualInputDevice/HelloUniverse_plugin.html +++ /dev/null @@ -1,39 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Hello, Universe!</TITLE> -</HEAD> -<BODY BGCOLOR="#000000"> -<!--"CONVERTED_APPLET"--> -<!-- CONVERTER VERSION 1.3 --> -<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" -WIDTH = 350 HEIGHT = 350 ALIGN = middle codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> -<PARAM NAME = CODE VALUE = "HelloUniverse.class" > - -<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2.2"> -<PARAM NAME="scriptable" VALUE="false"> -<COMMENT> -<EMBED type="application/x-java-applet;version=1.2.2" CODE = "HelloUniverse.class" WIDTH = 350 HEIGHT = 350 ALIGN = middle scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> -</NOEMBED></EMBED> -</OBJECT> - -<!-- -<APPLET CODE = "HelloUniverse.class" WIDTH = 350 HEIGHT = 350 ALIGN = middle> -<blockquote> -<hr> -If you were using a Java-capable browser, -you would see Hello Universe! instead of this paragraph. -<hr> -</blockquote> - -</APPLET> ---> -<!--"END_CONVERTED_APPLET"--> - -</BODY> -</HTML> diff --git a/src/VirtualInputDevice/PositionControls.java b/src/VirtualInputDevice/PositionControls.java deleted file mode 100644 index e5ea536..0000000 --- a/src/VirtualInputDevice/PositionControls.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.Component; -import javax.vecmath.Vector3f; - -// Classes that implement this interface must be a -// subclass of java.awt.Component -public interface PositionControls { - - /** - * Get the position - */ - public void getPosition( Vector3f pos); - - /** - * Set the position - */ - public void setPosition( Vector3f pos); - - /** - * Increment added to position each time mouse is pressed - * or if the mouse is held down each time the Sensor is - * read - */ - public void setStepRate( float stepRate ); -} diff --git a/src/VirtualInputDevice/README b/src/VirtualInputDevice/README deleted file mode 100644 index efc4b7b..0000000 --- a/src/VirtualInputDevice/README +++ /dev/null @@ -1,239 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - - Java 3D (TM) Input Device Driver Development Guide - -Topics - - * Write Once, Run Anywhere (TM) - * Overview of the InputDevice and Sensor APIs - * Recipe for an Application Program that Uses Input Devices - * Location for Installation of Device Drivers - * Using a Preexistent Native Driver - * Package Naming Conventions - * Device Driver Constructor - * Driver Scheduling and Blocking Semantics - - -Write Once, Run Anywhere - -Platform independence is the cornerstone of the Java (TM) platform. -This vision now extends to external input devices as well. The -overarching goal of the Java 3D input device architecture is to enable -Java programs that use devices to run in a platform independent -manner. - -We encourage developers to use Java APIs for their drivers. APIs such -as the javax.comm API allow platform independent access to serial and -parallel ports. However, even if a driver is partially written with -native code, the Java 3D InputDevice interface is layered on top of the -driver such that once the native portion of the driver has been -installed into the local JRE, the application code is platform -independent. - -In a future release, the Java 3D team is going to release a registry -mechanism that will reside in the JRE as part of the Java 3D -installation and allow registration of device drivers. The -SimpleUniverse utility will be modified to allow querying of devices by -generic characteristics, and will subsequently look up and instantiate -the appropriate device driver registered with the registry mechanism. -The Java 3D team also expects to release a set of generic mappings for -devices. This will enable applications to count on the same behavior -from different drivers for similar types of devices. There will also -be personalized profiles that enable a user to specify device mappings -for features like dominant hand preference and eye position. - - -Overview of the InputDevice and Sensor APIs - -Java 3D abstracts the concept of a device via the InputDevice -interface. The developer's implementation of the InputDevice interface -is layered on top of the device driver. The device may be a real -device such as a joystick or it may be a virtual device such as a piece -of Java code that does transform calculations. - -A device sends data back to Java 3D by placing values into Sensor -objects which the device code manages and updates. The Sensor class -encapsulates a transform and a timestamp. The transform is specified -in the TrackerBase coordinate system. - -Java 3D schedules calls to the device's pollAndProcessInput routine, -which is a method in the InputDevice interface. This method is -responsible for updating the devices sensor values. The sensors' -values and time stamps are read by a user's behavior code and/or each -frame (by the Java 3D implementation) when head tracking is enabled. -There are several options for scheduling, and they are detailed in the -InputDevice javadoc and in the section below entitled "Driver -Scheduling and Blocking Semantics." - -Please read the javadocs for InputDevice and Sensor for more detailed -information. There is also a sample program in the Java 3D release -called VirtualInputDevice, which implements these concepts in Java code. - - -Recipe for an Application Program that Uses Input Devices - -Please see the Java 3D example program in the examples directory called -VirtualInputDevice for an example of using this code recipe: - 1) Implement the InputDevice interface with a class of your own - 2) Call the device's constructor from your main program - 3) Call initialize() on the device - 4) Call PhysicalEnvironment.addInputDevice(InputDevice) or if you are - using SimpleUniverse, call SimpleUniverse.getViewer(). - getPhysicalEnvironment().addInputDevice(InputDevice) - 5) Assuming you want to modify the viewer's transform with the device: - add a WakeupOnElapsedFrames behavior to your scene graph that wakes - up every frame and in the processStimulus method modify the view - transform with the transform you pull out of Sensor.getRead. - -In a future release, it will be possible to replace steps 2, 3, & 4 with -a single method call to the SimpleUniverse utility. - - -Location for Installation of Device Drivers - -There are two suggested ways to package and distribute drivers. - -If a driver is written entirely in Java and if it is tightly coupled -with a particular application without the expectation of reuse in other -applications, then it should be bundled and distributed with the -application itself. - -If a driver is not associated with any particular application program, -if it contains any native code, or if it is expected to be used by more -than one application program, then it should be installed directly into -the end user's local JRE. It is expected that most drivers for real -devices fall into this category. On the Solaris platform, the Java -portion of the driver should be installed into jre/lib/ext as a -uniquely named jar file and if there is native code it should be -compiled into a shared object and installed into jre/lib/sparc. On the -Win32 platform, the Java portion of the driver should be installed into -jre\lib\ext as a uniquely named jar file and if there is native code it -should be compiled into a standard dynamically linked library (dll) and -installed into jre\bin. - - -Using a Preexistent Native Driver - -It is possible to make a Java 3D driver out of a preexistent native -driver. In order to do this, you need to create an InputDevice -interface that uses JNI to access the associated native driver methods -whenever the corresponding InputDevice interface method is called from -Java 3D. The native portion of the driver must be installed into the -target JRE. - - -Package Naming Conventions - -All device drivers that are installed into the JRE should be part of a -package that follows both standard Java and Java 3D naming -conventions. For instance, an input device driver should be placed -into a package called -com.<company_name>.j3d.drivers.input.<device_name>. The package should -be jarred up into a jar file that has a unique name. - -Any native .so or .dll files installed into the JRE should be uniquely -named. - - -Device Driver Constructor - -The constructor arguments for a device driver must be an array of -strings. So a driver should have a single public constructor that -takes an array of strings. The idea behind this requirement is that -eventually the Java 3D registry will contain an array of string -arguments to be sent to the device constructor at instantiation time. -The SimpleUniverse API will also make a provision for optional String -arguments to be added to the array of String arguments found in the -registry. - - -Driver Scheduling and Blocking Semantics - -When a device is registered with Java 3D via the -PhysicalEnvironment.addInputDevice(InputDevice) method call, -InputDevice.getProcessingMode() is called on the registered device. -This method should return one of the three processing modes defined in -the InputDevice interface: BLOCKING, NON_BLOCKING, and DEMAND_DRIVEN. - - BLOCKING signifies that the driver for a device is a blocking driver - and that it should be scheduled for regular reads by Java 3D. A - blocking driver is defined as a driver that can cause the thread - accessing the driver (the Java 3D implementation thread calling the - pollAndProcessInput method) to block while the data is being accessed - from the driver. - - NON_BLOCKING signifies that the driver for a device is a non-blocking - driver and that it should be scheduled for regular reads by Java 3D. - A non-blocking driver is defined as a driver that does not cause the - calling thread to block while data is being retrieved from the - driver. If no data is available from the device, pollAndProcessInput - should return without updating the sensor read value. - - DEMAND_DRIVEN signifies that the Java 3D implementation should not - schedule regular reads on the sensors of this device; the Java 3D - implementation will only call pollAndProcessInput when one of the - device's sensors' getRead methods is called. A DEMAND_DRIVEN driver - must always provide the current value of the sensor on demand - whenever pollAndProcessInput is called. This means that DEMAND_DRIVEN - drivers are non-blocking by definition. - -It is important that you correctly classify your driver. If it is a -NON_BLOCKING driver, most Java 3D implementations will choose to add -inertia inside the scheduling thread to avoid starvation of the other -Java 3D threads. If it is a BLOCKING driver, most Java 3D -implementations will choose to spawn a separate scheduling thread for -each BLOCKING device. If your driver is a DEMAND_DRIVEN driver, your -driver must always provide the current value upon request along with -the current time stamp. - -When running drivers with the Solaris operating system using the -Solaris reference 1.2 JRE and green threads, you should be aware that -there is a bug that forces all drivers to be BLOCKING. Thus, you -should be careful to always use native threads on the Solaris reference -1.2 JRE in order to get the expected behavior. This is not an issue -with the Solaris 1.2 Performance JRE release, which is native threads -only. - - diff --git a/src/VirtualInputDevice/RotationControls.java b/src/VirtualInputDevice/RotationControls.java deleted file mode 100644 index b95a51a..0000000 --- a/src/VirtualInputDevice/RotationControls.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.Component; - -// Classes that implement this interface must be a subclass -// of java.awt.Component - -public interface RotationControls { - - /** - * Get the angle of Rotation around the X Axis - */ - public abstract float getXAngle(); - - /** - * Get the angle or Rotation around the Y Axis - */ - public abstract float getYAngle(); - - /** - * Get the angle or Rotation around the Z Axis - */ - public abstract float getZAngle(); - - /** - * Reset angles to original angle. - */ - public abstract void reset(); -} diff --git a/src/VirtualInputDevice/SensorBehavior.java b/src/VirtualInputDevice/SensorBehavior.java deleted file mode 100644 index f587a83..0000000 --- a/src/VirtualInputDevice/SensorBehavior.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import java.util.*; - -public class SensorBehavior extends Behavior { - - private WakeupOnElapsedFrames conditions = new WakeupOnElapsedFrames(0); - private TransformGroup transformGroup; - private Sensor sensor; - private Transform3D transform = new Transform3D(); - - public SensorBehavior( TransformGroup tg, Sensor sensor ) { - transformGroup = tg; - this.sensor = sensor; - } - - public void initialize() { - wakeupOn( conditions ); - } - - public void processStimulus( Enumeration criteria ) { - sensor.getRead( transform ); - transformGroup.setTransform( transform ); - wakeupOn( conditions ); - } - -} diff --git a/src/VirtualInputDevice/VirtualInputDevice.java b/src/VirtualInputDevice/VirtualInputDevice.java deleted file mode 100644 index 934c8f8..0000000 --- a/src/VirtualInputDevice/VirtualInputDevice.java +++ /dev/null @@ -1,258 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import javax.media.j3d.*; -import javax.vecmath.*; -import java.awt.*; -import java.awt.event.*; - -public class VirtualInputDevice implements InputDevice { - - private Vector3f position = new Vector3f(); - private Transform3D newTransform = new Transform3D(); - Sensor sensors[] = new Sensor[1]; - - // The wheel controls control the view platform orientation - private RotationControls rotControls; - - // The button position controls control the view platform position - private PositionControls positionControls; - - private Transform3D rotTransX = new Transform3D(); - private Transform3D rotTransY = new Transform3D(); - private Transform3D rotTransZ = new Transform3D(); - - private Vector3f initPos = new Vector3f(); - - private int processingMode; - private SensorRead sensorRead = new SensorRead(); - - // These are the settable parameters. - private boolean printvalues; - private int xscreeninitloc; - private int yscreeninitloc; - private int xscreensize; - private int yscreensize; - private float xobjinitloc; - private float yobjinitloc; - private float zobjinitloc; - private float xaxisrotinit; - private float yaxisrotinit; - private float zaxisrotinit; - - /* - * Create a device, and use the string arguments in args to construct - * the device with user preferences. - */ - public VirtualInputDevice( String[] args ) { - - // default user-definable values - printvalues = false; - xscreeninitloc = 400; - yscreeninitloc = 0; - xscreensize = 400; - yscreensize = 200; - xobjinitloc = 0.0f; - yobjinitloc = 0.0f; - zobjinitloc = 2.2f; - xaxisrotinit = 0.0f; - yaxisrotinit = 0.0f; - zaxisrotinit = 0.0f; - - - for(int i=0 ; i<args.length ; i+=2) { - if(args[i] == null) - break; - else if(args[i] == "printvalues") - printvalues = (Boolean.valueOf(args[i+1])).booleanValue(); - else if(args[i] == "xscreeninitloc") - xscreeninitloc = (Integer.valueOf(args[i+1])).intValue(); - else if(args[i] == "yscreeninitloc") - yscreeninitloc = (Integer.valueOf(args[i+1])).intValue(); - else if(args[i] == "xscreensize") - xscreensize = (Integer.valueOf(args[i+1])).intValue(); - else if(args[i] == "yscreensize") - yscreensize = (Integer.valueOf(args[i+1])).intValue(); - else if(args[i] == "xobjinitloc") - xobjinitloc = (Float.valueOf(args[i+1])).floatValue(); - else if(args[i] == "yobjinitloc") - yobjinitloc = (Float.valueOf(args[i+1])).floatValue(); - else if(args[i] == "zobjinitloc") - zobjinitloc = (Integer.valueOf(args[i+1])).floatValue(); - } - - if(printvalues == true) { - System.out.println("Initial values for VirtualInputDevice:"); - System.out.println("xscreeninitloc = " + xscreeninitloc); - System.out.println("yscreeninitloc = " + yscreeninitloc); - System.out.println("xscreeninitsize = " + xscreensize); - System.out.println("yscreeninitsize = " + yscreensize); - System.out.println("xobjinitloc = " + xobjinitloc); - System.out.println("yobjinitloc = " + yobjinitloc); - System.out.println("zobjinitloc = " + zobjinitloc); - System.out.println("xaxisrotinit = " + xaxisrotinit); - System.out.println("yaxisrotinit = " + yaxisrotinit); - System.out.println("zaxisrotinit = " + zaxisrotinit); - } - - - // initialize the InputDevice GUI - Frame deviceFrame = new Frame(); - deviceFrame.setSize(xscreensize,yscreensize); - deviceFrame.setLocation(xscreeninitloc, yscreeninitloc); - deviceFrame.setTitle("Virtual Input Device"); - ButtonPositionControls positionControls; - // initialize position with initial x, y, and z position - positionControls = new ButtonPositionControls( xobjinitloc, - yobjinitloc, zobjinitloc); - WheelControls rotControls; - // initialize rotations with initial angles in radians) - rotControls = new WheelControls(xaxisrotinit, yaxisrotinit, - zaxisrotinit); - positionControls.setDevice (this); - Panel devicePanel = new Panel(); - devicePanel.setLayout( new BorderLayout() ); - devicePanel.add("East", positionControls ); - devicePanel.add("West", rotControls ); - deviceFrame.add( devicePanel ); - deviceFrame.pack(); - deviceFrame.setVisible(true); - - initPos.set(xobjinitloc, yobjinitloc, zobjinitloc); - - this.positionControls = positionControls; - this.rotControls = rotControls; - - // default processing mode - processingMode = InputDevice.DEMAND_DRIVEN; - - sensors[0] = new Sensor(this); - } - - public void close() { - } - - public int getProcessingMode() { - return processingMode; - } - - public int getSensorCount() { - return sensors.length; - } - - public Sensor getSensor( int sensorIndex ) { - return sensors[sensorIndex]; - } - - public boolean initialize() { - return true; - } - - public void pollAndProcessInput() { - - sensorRead.setTime( System.currentTimeMillis() ); - - rotTransX.rotX(-rotControls.getXAngle()); - rotTransY.rotY(-rotControls.getYAngle()); - rotTransZ.rotZ(-rotControls.getZAngle()); - - positionControls.getPosition(position); - newTransform.set(position); - newTransform.mul( rotTransX ); - - newTransform.mul(rotTransY); - newTransform.mul(rotTransZ); - - sensorRead.set( newTransform ); - sensors[0].setNextSensorRead( sensorRead ); - } - - - public void processStreamInput() { - } - - - public void setNominalPositionAndOrientation() { - - sensorRead.setTime( System.currentTimeMillis() ); - - rotTransX.rotX(xaxisrotinit); - rotTransY.rotY(yaxisrotinit); - rotTransZ.rotZ(zaxisrotinit); - - position.set(initPos); - - newTransform.set( position ); - - newTransform.mul(rotTransX); - newTransform.mul(rotTransY); - newTransform.mul(rotTransZ); - - sensorRead.set( newTransform ); - sensors[0].setNextSensorRead( sensorRead ); - rotControls.reset(); - positionControls.setPosition(initPos); - } - - - - public void setProcessingMode( int mode ) { - - // A typical driver might implement only one of these modes, and - // throw an exception when there is an attempt to switch modes. - // However, this example allows one to use any processing mode. - - switch(mode) { - case InputDevice.DEMAND_DRIVEN: - case InputDevice.NON_BLOCKING: - case InputDevice.BLOCKING: - processingMode = mode; - break; - default: - throw new IllegalArgumentException("Processing mode must " + - "be one of DEMAND_DRIVEN, NON_BLOCKING, or BLOCKING"); - } - } - -} diff --git a/src/VirtualInputDevice/WheelControls.java b/src/VirtualInputDevice/WheelControls.java deleted file mode 100644 index 332bb3e..0000000 --- a/src/VirtualInputDevice/WheelControls.java +++ /dev/null @@ -1,399 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -import java.awt.*; -import java.awt.geom.*; -import java.awt.event.*; - -public class WheelControls extends Canvas implements RotationControls, MouseMotionListener, MouseListener { - - private final static int NONE=0; - private final static int SLIDE_Y=1; - private final static int SLIDE_X=2; - private final static int SLIDE_Z=3; - - private int mode = NONE; - - private Dimension size; - private int thickness; - private int diameter; - private int space; - private int pipSize; - private int pipOffset; // Amount pip is below wheel - private int margin; // Margin between edge of Canvas and - // controls - - private Polygon yPip; - private Rectangle yBackClip; - - private Polygon xPip; - private Rectangle xBackClip; - - private Polygon zPip; - - private Rectangle yArea; - private Rectangle xArea; - private Rectangle zArea; - - private Point oldMousePos = new Point(); - - float yAngle = 0.0f; - float xAngle = 0.0f; - float zAngle = 0.0f; - - float yOrigAngle; - float xOrigAngle; - float zOrigAngle; - - float angleStep = (float)Math.PI/30.0f; - - public WheelControls() { - this(0.0f, 0.0f, 0.0f); - } - - public WheelControls( float rotX, float rotY, float rotZ ) { - size = new Dimension( 200, 200 ); - - xAngle = constrainAngle(rotX); - yAngle = constrainAngle(rotY); - zAngle = constrainAngle(rotZ); - - yOrigAngle = yAngle; - xOrigAngle = xAngle; - zOrigAngle = zAngle; - - setSizes(); - - yPip = new Polygon(); - yPip.addPoint( 0, 0 ); - yPip.addPoint( -pipSize/2, pipSize ); - yPip.addPoint( pipSize/2, pipSize ); - - xPip = new Polygon(); - xPip.addPoint(0,0); - xPip.addPoint( pipSize, -pipSize/2 ); - xPip.addPoint( pipSize, pipSize/2 ); - - zPip = new Polygon(); - zPip.addPoint( diameter/2, pipOffset ); - zPip.addPoint( diameter/2-pipSize/2, pipOffset-pipSize ); - zPip.addPoint( diameter/2+pipSize/2, pipOffset-pipSize ); - - addMouseListener( this ); - addMouseMotionListener( this ); - } - - private void setSizes() { - margin = 10; - int width = size.width - margin*2; - thickness = width * 7 / 100; - diameter = width * 70 / 100; - space = width * 10 / 100; - pipSize = width * 7 / 100; - - pipOffset = thickness/2; - - } - - public void paint( Graphics g ) { - Graphics2D g2 = (Graphics2D)g; - - g.drawOval( margin,margin, diameter, diameter ); - zArea = new Rectangle( margin, margin, diameter, diameter ); - drawZPip( g2, zAngle ); - - g.drawRect( margin, margin+diameter+space, - diameter, thickness ); // Y Wheel - yArea = new Rectangle( margin, margin+diameter+space, margin+diameter, - thickness+pipOffset ); - yBackClip = new Rectangle( margin-thickness, - margin+diameter+space+thickness, - margin+diameter+thickness*2, thickness ); - drawYPip( g2, yAngle ); - - g.drawRect( margin+diameter+space, margin, - thickness, diameter ); // X Wheel - xArea = new Rectangle( margin+diameter+space, margin, - thickness+pipOffset, margin+diameter ); - xBackClip = new Rectangle( margin+diameter+space+thickness, - margin-thickness, - thickness, margin+diameter+thickness*2 ); - drawXPip( g2, xAngle ); - - - } - - public float getXAngle() { - return xAngle; - } - - public float getYAngle() { - return yAngle; - } - - public float getZAngle() { - return zAngle; - } - - - public void reset() { - // Overwrite the old pip - drawYPip( (Graphics2D)(this.getGraphics()), - yAngle ); - yAngle = yOrigAngle; - // Draw the new Pip - drawYPip( (Graphics2D)(this.getGraphics()), - yAngle ); - - // Overwrite the old pip - drawXPip( (Graphics2D)(this.getGraphics()), - xAngle ); - xAngle = xOrigAngle; - // Draw the new Pip - drawXPip( (Graphics2D)(this.getGraphics()), - xAngle ); - - drawZPip( (Graphics2D)(this.getGraphics()), - zAngle ); - - zAngle = zOrigAngle; - - drawZPip( (Graphics2D)(this.getGraphics()), - zAngle ); - oldMousePos.setLocation(0,0); - } - - - private void drawXPip( Graphics2D g2, float angle ) { - AffineTransform trans = new AffineTransform(); - int y; - int xOrig = margin+diameter+space; - int yOrig = margin; - Color origColor = g2.getColor(); - - if (angle <= Math.PI) { - y = yOrig + diameter - (int)((Math.abs( angle-Math.PI/2 )/(Math.PI/2)) * diameter/2); - } else - y = yOrig + (int)((Math.abs( (angle-Math.PI*1.5) )/(Math.PI/2)) * diameter/2); - - if (angle<Math.PI/2 || angle > Math.PI*1.5) - g2.setColor( Color.red ); // Infront of wheel - else { - g2.setColor( Color.black ); // Behind Wheel - g2.setClip( xBackClip ); - } - - g2.setXORMode( getBackground() ); - trans.setToTranslation( xOrig+pipOffset, y ); - g2.setTransform( trans ); - g2.fillPolygon( xPip ); - - // Reset graphics context - trans.setToIdentity(); - g2.setTransform( trans ); - g2.setColor(origColor); - g2.setPaintMode(); - } - - private void drawYPip( Graphics2D g2, float angle ) { - AffineTransform trans = new AffineTransform(); - int x; - int xOrig = margin; - int yOrig = margin+diameter+space; - Color origColor = g2.getColor(); - - if (angle <= Math.PI) { - x = xOrig + diameter - (int)((Math.abs( angle-Math.PI/2 )/(Math.PI/2)) * diameter/2); - } else - x = xOrig + (int)((Math.abs( (angle-Math.PI*1.5) )/(Math.PI/2)) * diameter/2); - - if (angle<Math.PI/2 || angle > Math.PI*1.5) - g2.setColor( Color.red ); // Infront on wheel - else { - g2.setColor( Color.black ); // Behind Wheel - g2.setClip( yBackClip ); - } - - g2.setXORMode( getBackground() ); - trans.setToTranslation( x, yOrig+pipOffset ); - g2.setTransform( trans ); - g2.fillPolygon( yPip ); - - // Reset graphics context - trans.setToIdentity(); - g2.setTransform( trans ); - g2.setColor(origColor); - g2.setPaintMode(); - } - - private void drawZPip( Graphics2D g2, float zAngle ) { - AffineTransform trans = new AffineTransform(); - Color origColor = g2.getColor(); - - trans.translate( margin, margin ); - trans.rotate(zAngle, diameter/2, diameter/2 ); - - g2.setXORMode( getBackground() ); - g2.setTransform(trans); - g2.setColor( Color.red ); - g2.fillPolygon( zPip ); - - // Reset graphics context - trans.setToIdentity(); - g2.setTransform( trans ); - g2.setColor( origColor ); - g2.setPaintMode(); - } - - public Dimension getPreferredSize() { - return size; - } - - public void setSize( Dimension d ) { - // Set size to smallest dimension - if (d.width<d.height) - size.width = size.height = d.width; - else - size.width = size.height = d.height; - setSizes(); - } - - public void mouseClicked( MouseEvent e ) { - } - - public void mouseEntered( MouseEvent e ) { - } - - public void mouseExited( MouseEvent e ) { - } - - public void mousePressed( MouseEvent e ) { - if ( yArea.contains( e.getPoint() )) { - mode = SLIDE_Y; - oldMousePos = e.getPoint(); - } else if (xArea.contains( e.getPoint() )) { - mode = SLIDE_X; - oldMousePos = e.getPoint(); - } else if (zArea.contains( e.getPoint() )) { - mode = SLIDE_Z; - oldMousePos = e.getPoint(); - } - } - - public void mouseReleased( MouseEvent e ) { - mode = NONE; - } - - public void mouseDragged( MouseEvent e ) { - Point pos = e.getPoint(); - - int diffX = pos.x - oldMousePos.x; - int diffY = pos.y - oldMousePos.y; - - switch(mode) { - case NONE: - break; - case SLIDE_Y: - // Overwrite the old pip - drawYPip( (Graphics2D)((Canvas)e.getSource()).getGraphics(), - yAngle ); - if (diffX<0) - yAngle -= angleStep; - else if (diffX>0) - yAngle += angleStep; - - yAngle = constrainAngle(yAngle); - - // Draw the new Pip - drawYPip( (Graphics2D)((Canvas)e.getSource()).getGraphics(), - yAngle ); - oldMousePos = pos; - break; - case SLIDE_X: - // Overwrite the old pip - drawXPip( (Graphics2D)((Canvas)e.getSource()).getGraphics(), - xAngle ); - if (diffY<0) - xAngle -= angleStep; - else if (diffY>0) - xAngle += angleStep; - - xAngle = constrainAngle(xAngle); - - // Draw the new Pip - drawXPip( (Graphics2D)((Canvas)e.getSource()).getGraphics(), - xAngle ); - oldMousePos = pos; - break; - case SLIDE_Z: - drawZPip( (Graphics2D)((Canvas)e.getSource()).getGraphics(), - zAngle ); - - if (diffX<0) - zAngle -= angleStep; - else if (diffX>0) - zAngle += angleStep; - - zAngle = constrainAngle( zAngle ); - drawZPip( (Graphics2D)((Canvas)e.getSource()).getGraphics(), - zAngle ); - oldMousePos = pos; - break; - default: - throw( new RuntimeException("Internal Error")); - } - } - - public void mouseMoved( MouseEvent e ) { - } - - /** - * Constrain angle to be 0<angle<2PI - */ - private float constrainAngle( float angle ) { - if ( angle > (float)Math.PI*2 ) return angle-(float)Math.PI*2; - if ( angle < 0.0f) return angle+(float)Math.PI*2; - return angle; - } -} diff --git a/src/VirtualInputDevice/build.xml b/src/VirtualInputDevice/build.xml deleted file mode 100644 index 4e57328..0000000 --- a/src/VirtualInputDevice/build.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0"?> - -<!-- -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 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 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS 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 THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - --> - -<project basedir="." default="compile"> - <target name="compile"> - <javac - destdir="." srcdir="." - source="1.4" target="1.4" - debug="true" deprecation="true"> - </javac> - </target> - - <target name="all" depends="compile"> - </target> - - <target description="Clean all build products." name="clean"> - <delete> - <fileset dir="."> - <include name="**/*.class"/> - </fileset> - </delete> - </target> - -</project> diff --git a/src/geometry/beethoven.obj b/src/geometry/beethoven.obj deleted file mode 100644 index a64cfd0..0000000 --- a/src/geometry/beethoven.obj +++ /dev/null @@ -1,9278 +0,0 @@ -# Tue Oct 27 19:18:13 1992 -# -# A Bust of Beethoven -# -# Courtesy of: -# -# Viewpoint Animation Engineering -# 870 West Center -# Orem, Utah 84057 -# (801)224-2222 -# 1-800-DATASET -# -# (c) Copyright 1992 Viewpoint Animation Engineering Inc. -# Sun Microsystems has been authorized to freely distribute -# these Datasets. They are provided for unlimited use in -# existing or modified form. The actual Dataset (ie, geometry) -# may not, however, be resold in existing or modified form. -# - -g -v 0.606929 -5.258410 2.044219 -v 0.749451 -5.282475 2.101935 -v 1.104195 -5.305782 1.786403 -v 0.942787 -5.310546 1.944346 -v 1.223796 -5.327607 1.727047 -v 1.387634 -5.352595 1.669870 -v 1.499742 -5.392315 1.631342 -v 1.662819 -5.424446 1.628694 -v 1.705207 -5.429660 1.425738 -v 2.428539 -5.597278 1.106718 -v 2.816964 -5.698190 0.778881 -v 0.000000 -0.629419 0.700115 -v 0.000000 -0.689031 0.749186 -v 0.000000 -0.921285 0.651340 -v 0.000000 -0.768149 0.766285 -v 0.000000 -1.143949 0.667317 -v 0.000000 -0.557739 0.616228 -v 0.000000 -1.170529 0.755149 -v 0.000000 -1.195244 0.832548 -v 0.000000 -1.255585 0.924864 -v 0.000000 -1.386623 1.039014 -v 0.000000 -1.612841 1.117056 -v 0.000000 -1.838287 1.090171 -v 0.000000 -2.000022 0.997148 -v 0.228664 -1.938785 0.914844 -v 0.085459 -1.988895 0.953370 -v 0.302674 -1.925339 0.896202 -v 0.275138 -1.989268 0.980982 -v 0.185271 -2.036472 1.142150 -v 0.159347 -2.077863 1.229946 -v 0.081716 -2.186846 1.384890 -v 0.056561 -2.283902 1.486748 -v 0.068819 -2.419917 1.574930 -v 0.142751 -2.654662 1.791003 -v 0.773483 -3.525448 1.920056 -v 0.919514 -3.599237 1.892229 -v 0.216434 -2.825996 1.883388 -v 0.357668 -3.214574 1.963003 -v 0.582558 -3.428350 1.799299 -v 0.787973 -3.572078 1.805144 -v 0.811570 -3.535260 1.639753 -v 0.654987 -3.823292 1.726999 -v 0.503207 -4.138469 1.786812 -v 0.317156 -4.423326 1.863373 -v 0.508878 -5.273241 1.855637 -v 0.459840 -5.250568 1.768653 -v 0.194708 -5.182790 1.835237 -v 0.087132 -4.772663 1.922207 -v 0.000000 -5.119201 1.917972 -v 2.656234 -5.605168 0.169326 -v 2.500285 -5.523783 -0.077034 -v 0.000000 3.401886 2.677039 -v 0.000000 3.455461 3.197253 -v 0.000000 3.835356 3.347418 -v 0.000000 4.234554 3.301640 -v 0.000000 5.544172 1.141834 -v 0.000000 5.222569 1.996588 -v 0.000000 2.150469 -2.446399 -v 0.000000 1.411211 -2.377300 -v 0.000000 3.007780 -2.138084 -v 0.000000 4.160317 -1.992613 -v 0.000000 4.685857 -1.432630 -v 0.000000 5.232615 -0.488459 -v 0.000000 5.530680 0.336697 -v 2.351196 -5.435412 -0.151886 -v 1.417944 -2.541195 1.493780 -v 1.259329 -2.426003 1.563345 -v 1.236121 -2.711167 1.686120 -v 1.409394 -2.865327 1.613634 -v 1.224993 -2.938594 1.776514 -v 1.399548 -3.105691 1.685054 -v 1.202295 -3.145272 1.833352 -v 1.379981 -3.366113 1.738770 -v 1.106314 -3.590680 1.974236 -v 1.334269 -3.716449 1.839816 -v 1.002768 -4.057680 2.052466 -v 1.232172 -4.121325 1.915639 -v 0.921851 -4.498998 2.102010 -v 1.149484 -4.521899 1.949742 -v 0.821686 -4.948648 2.109915 -v 1.055671 -4.969047 1.934536 -v 0.665033 -4.949267 2.067833 -v 0.790397 -4.471575 2.070390 -v 0.871066 -4.030221 2.020681 -v 1.011326 -3.548462 1.932144 -v 1.155576 -3.109339 1.814467 -v 1.175242 -2.848861 1.705078 -v 1.170322 -2.683542 1.625350 -v 1.649166 -3.153598 1.425104 -v 1.725446 -2.901864 1.298102 -v 1.915900 -3.340909 1.329336 -v 1.974884 -3.126890 1.261171 -v 2.246661 -3.436337 1.323768 -v 2.290493 -3.340302 1.279632 -v 2.534990 -3.502395 1.347507 -v 2.140607 -3.727898 1.472833 -v 2.317251 -3.857045 1.497275 -v 1.835587 -3.589522 1.435310 -v 2.013046 -3.668311 1.428434 -v 1.584067 -3.394486 1.523631 -v 1.682448 -3.490690 1.451628 -v 1.529117 -3.611627 1.612823 -v 1.548203 -3.500728 1.581314 -v 2.122380 -3.823961 1.506380 -v 2.060160 -3.909763 1.538973 -v 2.231689 -4.015099 1.562255 -v 2.010254 -3.717139 1.449443 -v 2.076778 -3.804394 1.495765 -v 1.961209 -3.864456 1.531278 -v 1.986340 -3.832651 1.514372 -v 1.608903 -3.661776 1.551223 -v 1.668334 -3.515077 1.467304 -v 1.597241 -3.534766 1.528002 -v 1.617885 -3.613874 1.534346 -v 1.988031 -3.767161 1.485134 -v 1.655153 -3.556152 1.491457 -v 1.812183 -3.626549 1.434301 -v 1.798499 -3.643519 1.450996 -v 1.790407 -3.668857 1.471051 -v 1.787096 -3.693876 1.484562 -v 1.763082 -3.742047 1.509739 -v 1.873679 -4.202039 1.614515 -v 2.045680 -4.339208 1.644113 -v 1.659365 -4.027687 1.614704 -v 1.502733 -3.882563 1.688551 -v 1.422880 -4.194795 1.751814 -v 1.338830 -4.586100 1.776423 -v 1.219358 -5.001400 1.765408 -v 1.321242 -5.037073 1.701719 -v 1.481364 -4.614100 1.694944 -v 1.586808 -4.326046 1.684303 -v 1.770696 -4.440989 1.659695 -v 1.957850 -4.535209 1.648452 -v 1.652831 -4.684212 1.684831 -v 1.850858 -4.739279 1.666618 -v 1.460594 -5.078399 1.663402 -v 1.631559 -5.124405 1.645831 -v 1.326262 -2.155088 1.413261 -v 1.485772 -2.251122 1.373872 -v 1.880520 -2.569602 1.112499 -v 1.710357 -2.035759 1.113492 -v 1.545319 -1.781823 1.127396 -v 1.362923 -1.931386 1.228796 -v 1.082675 -2.159156 1.209878 -v 1.115181 -2.219535 1.300111 -v 2.050930 -1.831655 0.828760 -v 1.702970 -1.478868 0.875829 -v 1.402433 -1.226174 0.788059 -v 1.535905 -1.298107 0.807226 -v 1.644327 -1.327048 0.804401 -v 1.764862 -1.361831 0.781579 -v 2.288634 -1.645988 0.611225 -v 1.883102 -1.374386 0.712727 -v 2.035308 -1.272274 0.521232 -v 2.395414 -1.414058 0.447712 -v 2.509845 -0.986878 0.206504 -v 2.208626 -0.922418 0.257252 -v 2.639863 -2.438321 0.958418 -v 2.725734 -1.886749 0.497114 -v 2.764515 -1.590138 0.284429 -v 2.831744 -1.098893 0.044976 -v 1.775468 -2.806755 1.258097 -v 1.655526 -2.682360 1.299566 -v 2.033635 -2.703922 1.074109 -v 1.839602 -2.218849 1.044937 -v 2.056288 -3.001260 1.208765 -v 2.384792 -3.212572 1.263918 -v 2.356952 -4.120360 1.544871 -v 2.459801 -3.955877 1.483205 -v 2.178010 -4.430263 1.632940 -v 2.075841 -4.618856 1.646803 -v 1.971436 -4.813312 1.649093 -v 1.782910 -5.179061 1.642088 -v 2.722473 -3.521854 1.297529 -v 2.320522 -0.635532 0.139770 -v 2.572149 -0.716555 0.062678 -v 2.866314 -0.799157 -0.133476 -v 2.292457 -0.145070 -0.109027 -v 2.443170 -0.179462 -0.315260 -v 2.730895 -0.264831 -0.543768 -v 2.458838 0.001204 -0.795894 -v 2.292063 0.126813 -0.573476 -v 2.192149 0.196353 -0.366311 -v 2.321326 0.143332 -0.986568 -v 2.204225 0.285265 -0.793519 -v 2.086512 0.412325 -0.602341 -v 1.979496 0.526511 -1.052944 -v 1.901332 0.677905 -0.887785 -v 2.119281 0.374709 -1.296339 -v 2.404395 0.114204 -1.034763 -v 2.182306 0.325784 -1.359781 -v 2.489319 -0.022626 -0.860502 -v 2.735065 -0.303741 -0.600112 -v 2.972152 -1.121362 -0.018465 -v 2.979924 -0.812304 -0.196070 -v 2.922423 -1.641673 0.257410 -v 2.873500 -1.930568 0.473403 -v 2.375135 0.046336 -1.144438 -v 2.172337 0.226998 -1.422520 -v 2.491158 -0.102854 -1.005916 -v 2.796512 -0.410669 -0.688888 -v 2.990258 -0.891358 -0.298409 -v 3.003446 -1.208466 -0.126238 -v 2.626737 -0.141303 -1.176234 -v 3.305729 -0.660061 -1.106242 -v 3.189751 -0.546391 -1.211410 -v 3.498145 -0.805415 -0.915226 -v 3.598299 -1.111347 -0.580610 -v 3.594934 -1.309430 -0.426668 -v 2.960597 -1.718621 0.127997 -v 2.892831 -2.040189 0.309357 -v 3.561625 -1.803253 -0.127527 -v 3.572524 -2.193293 0.073111 -v 2.723940 -2.593923 0.991446 -v 2.101627 -2.776564 0.955989 -v 1.952771 -2.425001 0.870612 -v 1.810815 -2.786959 1.099059 -v 2.079275 -2.975586 1.069559 -v 2.419624 -3.200458 1.048395 -v 2.758584 -3.526407 1.034976 -v 2.414672 -4.011502 1.178445 -v 2.324448 -4.181604 1.220485 -v 2.173626 -4.477980 1.310844 -v 2.088244 -4.632308 1.348621 -v 1.971255 -4.860397 1.375835 -v 1.807332 -5.201816 1.406577 -v 3.032909 -4.274755 0.871277 -v 3.221893 -3.685248 0.761669 -v 3.384109 -3.157457 0.609178 -v 3.006850 -3.159979 0.786586 -v 2.761079 -3.343132 0.934009 -v 2.989856 -4.359622 0.888982 -v 2.837555 -4.575955 0.958111 -v 2.743621 -4.770766 1.013783 -v 2.647256 -5.006955 1.036057 -v 2.543676 -5.328383 1.063651 -v 2.636712 -2.719342 0.706883 -v 2.675142 -2.784636 0.772986 -v 3.022010 -2.935674 0.717220 -v 3.488740 -2.821402 0.417224 -v 2.408273 -2.931587 0.890975 -v 2.481620 -3.157896 0.992837 -v 2.536210 -2.948206 0.958051 -v 2.663577 -2.834692 0.861852 -v 2.882174 -2.937345 0.843545 -v 2.925337 -3.100878 0.894157 -v 2.756874 -3.229780 1.007085 -v 2.555491 -3.089174 1.022268 -v 2.674389 -2.937617 0.933123 -v 2.780405 -2.972446 0.918971 -v 2.626996 -2.987327 0.979362 -v 2.629518 -3.052213 1.002425 -v 2.750973 -3.111114 0.986978 -v 2.807915 -3.045099 0.930632 -v 2.717701 -3.030117 0.972204 -v 4.313962 -1.233717 -1.113217 -v 4.624830 -1.455210 -1.033928 -v 4.330608 -1.411916 -0.776805 -v 4.324175 -1.485486 -0.686738 -v 4.248341 -1.902899 -0.362860 -v 4.634851 -1.565367 -0.797032 -v 4.566785 -1.925704 -0.443689 -v 4.188893 -2.337274 -0.205079 -v 4.137861 -2.703013 -0.100062 -v 4.022866 -3.369608 0.033900 -v 3.764290 -3.909375 0.369424 -v 4.456349 -2.398925 -0.204624 -v 4.359573 -2.784669 -0.104717 -v 4.125014 -3.394157 -0.000466 -v 3.898481 -4.088530 -0.065554 -v 4.241738 -3.465072 -0.094279 -v 4.479900 -2.866124 -0.178521 -v 4.576882 -2.437436 -0.255504 -v 4.648549 -1.977384 -0.494981 -v 3.513140 -4.435121 0.544512 -v 3.497720 -4.482059 0.557091 -v 3.379102 -4.700961 0.630729 -v 3.324800 -4.792911 0.649540 -v 3.166105 -5.047532 0.719668 -v 2.974409 -5.394820 0.804852 -v 3.670990 -4.569324 0.278001 -v 3.529665 -4.810116 0.407969 -v 3.328219 -5.106425 0.519180 -v 3.048547 -5.432866 0.657509 -v 1.874501 0.840434 -0.825335 -v 1.653189 0.929418 -0.708563 -v 1.789908 0.559574 -0.484963 -v 2.022252 0.544661 -0.586962 -v 1.619546 1.085665 -0.484865 -v 1.709339 0.708810 -0.303075 -v 1.494055 1.265579 -0.284350 -v 1.608594 0.873861 -0.115187 -v 1.679156 0.633915 0.029714 -v 1.778391 0.482136 -0.139324 -v 1.872463 0.346143 -0.310705 -v 2.145294 0.339204 -0.375192 -v 1.915717 0.040941 -0.014837 -v 2.201232 0.000293 -0.064496 -v 1.764515 0.177998 0.117671 -v 1.676031 0.329475 0.229159 -v 1.555784 0.021224 0.505726 -v 1.718960 -0.160742 0.469903 -v 1.270392 -0.147104 0.784968 -v 1.526734 -0.330392 0.664287 -v 1.394744 -0.413036 0.760716 -v 0.965119 -0.260672 0.954350 -v 1.133576 -0.529377 0.876480 -v 0.660852 -0.430087 1.026409 -v 0.890434 -0.667131 1.030138 -v 1.083905 -0.908114 0.962937 -v 1.292102 -0.754556 0.823783 -v 1.497409 -0.724919 0.744497 -v 1.774028 -0.557820 0.533113 -v 1.918869 -0.331560 0.339632 -v 2.293218 -0.484214 0.339257 -v 1.870448 -0.652197 0.450844 -v 2.204633 -0.761890 0.492489 -v 1.920558 -0.911602 0.635633 -v 2.150011 -1.077666 0.738764 -v 1.173329 -0.937966 0.974752 -v 1.359247 -0.802611 0.864891 -v 1.564809 -0.797042 0.792898 -v 1.863340 -0.977168 0.914090 -v 2.107739 -1.143225 0.953456 -v 1.715824 -0.929656 0.966024 -v 1.618376 -0.925175 1.029689 -v 1.369610 -1.015338 1.119676 -v 1.832846 -1.020531 1.185262 -v 1.626036 -1.076742 1.288613 -v 1.714100 -1.093595 1.318990 -v 1.848709 -1.143001 1.341502 -v 1.983526 -1.157101 1.274700 -v 2.045247 -1.153720 1.168849 -v 1.929603 0.766195 -0.868969 -v 2.116741 0.495058 -0.601314 -v 2.255911 0.276612 -0.416612 -v 2.281261 -0.081355 -0.119904 -v 2.360604 -0.599489 0.198334 -v 2.290626 -0.891433 0.390191 -v 2.149541 -1.234854 0.593719 -v 2.050488 -1.366728 0.809457 -v 1.947857 -1.381446 0.959888 -v 1.772848 -1.328383 1.095626 -v 1.564976 -1.261520 1.034313 -v 1.497288 -1.339130 0.841721 -v 1.364580 -1.180787 0.924075 -v 0.979704 -2.071305 1.342422 -v 1.002919 -2.144323 1.415971 -v 1.288682 -1.818864 1.337446 -v 1.184800 -2.360092 1.620601 -v 1.499328 -1.619904 1.259788 -v 1.150655 -2.577878 1.705708 -v 1.138570 -2.355695 1.608074 -v 1.076103 -2.441460 1.640501 -v 0.986579 -2.344266 1.588933 -v 0.946039 -2.139567 1.405321 -v 0.911458 -2.006588 1.293084 -v 1.226792 -1.758778 1.263937 -v 1.430329 -1.605903 1.242139 -v 1.185289 -1.494439 1.039594 -v 1.106210 -1.685248 1.170283 -v 1.003208 -1.853189 1.204180 -v 1.062459 -1.710216 1.147465 -v 0.987919 -1.577734 0.943063 -v 1.011487 -1.466149 0.849459 -v 1.412549 -1.265471 0.846861 -v 1.163166 -1.083631 0.749894 -v 1.215025 -1.139879 0.631844 -v 1.090440 -1.023507 0.678469 -v 1.140061 -1.085619 0.548845 -v 1.322738 -1.282287 0.839324 -v 1.125903 -1.247879 0.726983 -v 0.975960 -1.253640 0.439031 -v 0.951070 -1.490338 0.657946 -v 0.923414 -1.563252 0.752181 -v 0.831620 -1.507736 0.611914 -v 0.772368 -1.363330 0.594727 -v 0.706202 -1.445747 0.661758 -v 1.053160 -0.947260 0.364276 -v 0.899215 -1.079844 0.440476 -v 0.696132 -1.182176 0.597604 -v 0.541634 -1.357723 0.706386 -v 1.031870 -0.910848 0.501241 -v 0.972473 -0.904372 0.702188 -v 0.953346 -0.798897 0.560640 -v 0.945703 -0.793197 0.352311 -v 0.840242 -0.927747 0.424596 -v 0.620113 -1.068009 0.584601 -v 0.406030 -1.181369 0.658817 -v 0.776626 -0.858709 0.397058 -v 0.588595 -1.031782 0.557169 -v 0.552893 -0.992161 0.508997 -v 0.372288 -1.143575 0.620912 -v 0.344751 -1.110140 0.559124 -v 0.223761 -1.185662 0.654281 -v 0.250869 -1.226516 0.715051 -v 0.123685 -1.159181 0.616287 -v 0.306132 -1.328286 0.761379 -v 0.881827 -0.723916 0.435746 -v 0.723647 -0.597074 0.645566 -v 0.757860 -0.781188 0.456694 -v 0.882614 -0.775412 0.755154 -v 0.666779 -0.552895 0.796182 -v 0.611036 -0.525612 0.788876 -v 0.562304 -0.416580 0.969606 -v 0.876471 -0.148345 0.904860 -v 1.138099 -0.091895 0.774442 -v 1.485183 0.079724 0.500447 -v 1.596159 0.379360 0.235293 -v 1.566675 0.634397 0.073622 -v 1.512450 0.897163 -0.076482 -v 1.412367 1.281826 -0.310801 -v 1.237959 0.865933 -0.239116 -v 1.313157 0.598818 -0.121402 -v 1.265388 0.325109 -0.014263 -v 1.172174 0.003799 0.288578 -v 1.038911 -0.054216 0.599331 -v 0.525206 -0.699021 0.685298 -v 0.542374 -0.842300 0.544174 -v 0.503536 -0.631044 0.705220 -v 0.501866 -0.586513 0.662164 -v 0.455321 -0.546323 0.782268 -v 0.379120 -0.507010 0.863837 -v 0.299927 -0.673631 0.765450 -v 0.304694 -0.630063 0.726692 -v 0.325211 -0.748447 0.738581 -v 0.224965 -0.434611 0.626931 -v 0.215350 -0.596543 0.743346 -v 0.127284 -0.764450 0.768490 -v 0.113276 -0.678553 0.767337 -v 0.137651 -0.622930 0.687754 -v 0.096537 -0.571215 0.609019 -v 0.322935 -0.900350 0.611039 -v 0.108917 -0.939211 0.646315 -v 0.016477 -0.926391 0.649357 -v -0.000578 -1.149405 0.652702 -v 0.139737 -1.171606 0.699986 -v -0.004388 -1.174172 0.722007 -v -0.007583 -1.191200 0.792125 -v 0.127929 -1.193892 0.754604 -v 0.241360 -1.278164 0.814638 -v 0.130370 -1.254810 0.861437 -v 0.033090 -1.254034 0.896798 -v 0.274387 -1.437386 0.895555 -v 0.260266 -1.429410 0.950578 -v 0.166855 -1.398997 0.996518 -v 0.490997 -1.452079 1.079063 -v 0.672423 -1.321110 1.058253 -v 0.733092 -1.446843 0.883670 -v 0.777042 -1.374494 1.179787 -v 0.852626 -1.500311 1.052535 -v 0.806198 -1.468259 0.783523 -v 0.957618 -1.550179 0.980468 -v 1.061248 -1.693582 1.249920 -v 0.991865 -1.643754 1.309478 -v 0.918461 -1.559019 1.397034 -v 0.600731 -1.529273 1.201757 -v 1.043674 -1.738987 1.307451 -v 0.961809 -1.793360 1.514807 -v 0.871396 -1.707364 1.600356 -v 0.643279 -1.597424 1.344353 -v 0.616929 -1.647787 1.441685 -v 0.803006 -1.788214 1.656914 -v 0.729624 -1.999230 1.428804 -v 0.923605 -2.047241 1.528758 -v 0.887021 -2.089621 1.740125 -v 0.908608 -2.268117 1.570879 -v 0.804780 -2.017978 1.533626 -v 0.752157 -2.040502 1.662394 -v 0.544718 -2.044484 1.668407 -v 0.628571 -2.050575 1.845255 -v 0.697121 -2.147149 1.901156 -v 0.550252 -1.907047 1.787284 -v 0.487346 -1.724542 1.549441 -v 0.395899 -1.825250 1.640423 -v 0.250850 -1.637978 1.015846 -v 0.244374 -1.658235 0.946017 -v 0.123817 -1.642736 1.107774 -v 0.075363 -1.842817 1.071423 -v 0.245409 -1.810659 0.985872 -v 0.304946 -1.805198 0.974470 -v 0.296986 -1.699174 1.051869 -v 0.439278 -1.770717 1.223794 -v 0.314085 -1.883325 1.371367 -v 0.179735 -1.984468 1.494798 -v 0.324830 -1.841375 1.003657 -v 0.222738 -1.894406 1.155335 -v 0.172525 -1.978736 1.231043 -v 0.114834 -2.162851 1.420513 -v 0.093712 -2.255516 1.488580 -v 0.112533 -2.125553 1.543084 -v 0.124040 -2.383260 1.618812 -v 0.150668 -2.039182 1.681016 -v 0.190912 -2.607809 1.821257 -v 0.240723 -2.602026 1.811898 -v 0.306947 -2.582094 1.862173 -v 0.405686 -2.474868 1.990988 -v 0.226778 -2.090173 1.907548 -v 0.348400 -2.002303 1.884293 -v 0.429880 -2.105294 1.813437 -v 0.510107 -2.120671 1.944439 -v 0.581623 -2.187905 2.008629 -v 0.478191 -2.157100 2.001021 -v 0.940866 -2.328458 1.660947 -v 1.015872 -2.421969 1.749243 -v 1.130258 -2.672200 1.895345 -v 1.133006 -3.056261 1.998462 -v 0.829619 -3.395835 1.961927 -v 0.886282 -2.900060 1.864000 -v 0.973873 -2.665101 1.909583 -v 0.872574 -2.480379 1.729201 -v 0.924078 -2.539847 1.804793 -v 0.850053 -2.399683 1.656877 -v 0.677365 -3.395529 1.913464 -v 0.490297 -3.081067 2.001696 -v 0.442003 -3.181398 2.023786 -v 0.371433 -2.706441 1.897063 -v 0.289637 -2.717131 1.956565 -v 0.833722 -2.319913 1.588685 -v 0.723318 -2.277545 1.887690 -v 0.833002 -2.323450 1.837793 -v 0.692294 -2.371743 1.913054 -v 0.838047 -2.453222 1.883920 -v 0.641657 -2.588223 1.940398 -v 0.835450 -2.392535 1.666195 -v 0.863047 -2.464924 1.733322 -v 0.611144 -2.550968 2.004122 -v 0.586612 -2.676337 1.973955 -v 0.692440 -3.060730 1.993670 -v 0.766932 -3.933840 1.811139 -v 0.735525 -3.893854 1.701079 -v 0.728226 -4.163616 1.817632 -v 0.672600 -4.211015 1.737881 -v 0.642157 -4.510410 1.854692 -v 0.587140 -4.550395 1.720699 -v 0.570267 -4.186787 1.772454 -v 0.442477 -4.489280 1.785019 -v 0.572488 -4.948374 1.875073 -v 0.520362 -4.931837 1.776638 -v 0.271754 -4.840917 1.837813 -v 3.741771 -4.171817 -0.347126 -v 4.043613 -3.575043 -0.555009 -v 4.223952 -3.061474 -0.724218 -v 4.403008 -2.606096 -0.807085 -v 4.509541 -2.165012 -0.978357 -v 4.644337 -1.741958 -1.085475 -v 4.074585 -2.737126 -1.284806 -v 4.247483 -2.277002 -1.454847 -v 3.940585 -3.141079 -1.091841 -v 3.749558 -3.689571 -0.831686 -v 3.503217 -4.203363 -0.577819 -v 3.511727 -4.552409 -0.171128 -v 3.298432 -4.835660 -0.094779 -v 3.069507 -5.126623 -0.010901 -v 2.856514 -5.366696 0.088825 -v 2.682419 -5.306578 -0.162887 -v 2.865412 -5.074536 -0.246702 -v 3.115006 -4.827193 -0.302164 -v 3.337063 -4.542685 -0.391358 -v 1.269260 1.255200 -0.337076 -v 0.808878 -0.108006 0.862693 -v 0.785511 -0.113481 0.744561 -v 1.288147 1.331118 -0.224217 -v 1.428511 1.249858 0.363487 -v 1.360651 1.219843 0.665852 -v 1.426867 1.333607 0.370559 -v 1.450856 1.457047 0.528348 -v 1.384062 1.438226 0.638337 -v 1.470071 1.493236 0.369380 -v 1.594261 1.558343 0.626987 -v 1.484255 1.632078 0.642222 -v 1.620929 1.647771 0.357712 -v 1.650435 1.617243 0.680182 -v 1.545264 1.742151 0.824324 -v 1.389575 1.760656 0.867844 -v 1.383596 1.808758 1.025872 -v 1.655757 1.825900 0.954174 -v 1.597150 1.914643 1.006309 -v 1.392070 1.994927 1.179577 -v 1.762705 1.655988 0.631224 -v 1.762992 1.805720 0.775415 -v 1.949500 1.849836 0.823902 -v 1.760768 1.850647 1.065403 -v 1.743619 1.997952 1.234624 -v 1.497468 2.133743 1.191102 -v 1.400213 2.173737 1.276591 -v 1.756102 2.216640 1.319918 -v 1.420383 2.453469 1.475121 -v 0.681201 -0.189988 0.897274 -v 0.475894 -0.298390 0.931689 -v 0.290747 -0.351774 0.892697 -v 0.276279 -0.316745 0.701162 -v 1.338810 2.729682 1.686965 -v 1.295536 2.975859 1.876092 -v 1.249168 3.130029 2.062850 -v 1.228711 3.220825 2.196595 -v 1.062347 3.349826 2.391934 -v 0.814242 3.416641 2.460567 -v 0.605427 3.436728 2.625397 -v 0.377767 3.416682 2.699480 -v 0.191664 3.352134 2.742179 -v 0.327215 3.617606 3.165959 -v 0.490340 3.727078 3.028905 -v 0.833423 3.579124 2.952278 -v 1.186570 3.537148 2.883776 -v 1.274514 3.429492 2.340806 -v 1.515386 3.462934 2.499302 -v 1.729657 2.985728 2.126961 -v 1.587334 3.273247 2.279883 -v 1.802587 2.673030 2.071795 -v 1.883505 2.421195 1.852780 -v 1.770470 1.547581 0.014896 -v 1.763543 1.690838 0.209278 -v 1.789812 1.745170 0.195716 -v 1.652398 1.635196 0.100315 -v 1.616211 1.631821 0.140151 -v 1.702170 1.691207 0.287679 -v 2.024910 1.684896 0.590685 -v 2.081244 1.739766 0.560523 -v 2.101686 1.841926 0.704701 -v 2.311996 1.667058 0.544330 -v 2.139216 1.493633 0.307465 -v 1.568122 1.452308 -0.160167 -v 1.847430 1.192309 -0.235521 -v 2.039961 1.263559 -0.106670 -v 2.001783 1.178930 -0.538870 -v 2.120274 1.181434 -0.439203 -v 1.955666 1.112051 -0.650840 -v 2.035204 1.058208 -0.740662 -v 2.506671 1.354212 -0.177264 -v 2.556798 1.425842 0.234125 -v 2.625577 1.667848 0.406381 -v 2.572188 1.665942 0.610608 -v 2.313997 1.937125 1.043955 -v 1.347179 1.435083 -0.164662 -v 2.370565 2.188644 1.319938 -v 1.795360 2.312256 1.448602 -v 2.298796 2.378327 1.484097 -v 2.431922 2.420861 1.791865 -v 2.274832 2.708370 1.953293 -v 2.127402 2.763782 2.172931 -v 2.027815 3.057472 2.207687 -v 2.211272 3.151361 2.175526 -v 2.077582 3.593789 2.544059 -v 2.205795 3.053233 1.995680 -v 2.234578 2.853686 1.921466 -v 2.492220 2.763751 1.681460 -v 1.682721 3.872787 2.699838 -v 1.591274 3.687533 2.795306 -v 1.469790 4.226974 3.125912 -v 1.419313 4.085230 3.114769 -v 0.969239 4.032842 3.237621 -v 0.446240 4.025191 3.175913 -v 0.293380 4.202842 3.126171 -v 0.507507 4.749091 2.927829 -v 0.273753 4.902920 2.635112 -v 0.000000 4.879436 2.662164 -v 0.855572 4.443953 3.264785 -v 1.001219 4.433220 3.168902 -v 2.634762 2.917107 1.571458 -v 2.373444 3.230135 1.701438 -v 2.245007 3.762857 1.971262 -v 2.174998 3.974638 1.861146 -v 1.772471 3.917193 2.561741 -v 1.696145 3.988359 2.581486 -v 2.020528 4.126190 2.057333 -v 1.720966 4.401711 2.028207 -v 1.417985 4.554327 2.447087 -v 1.350400 4.347244 2.806280 -v 1.200152 4.613357 3.063192 -v 1.304464 4.997022 2.246442 -v 0.873342 4.709630 3.173557 -v 0.696170 4.784035 2.819126 -v 0.424844 4.978543 2.246064 -v 0.000000 5.085917 2.309147 -v 0.696076 5.193224 2.026187 -v 0.635427 5.515653 1.331738 -v 1.511739 4.938085 1.521488 -v 1.906790 4.422846 1.795979 -v 2.354552 3.705653 1.670219 -v 2.644936 3.814625 1.425739 -v 2.421550 3.779236 0.825727 -v 2.203040 4.216619 1.154116 -v 2.251699 4.269145 0.470671 -v 1.788527 4.809611 0.096426 -v 1.601388 4.895715 0.838140 -v 2.543023 3.228183 1.363687 -v 2.588333 3.236537 1.228543 -v 2.629558 3.164815 0.666688 -v 2.336965 3.754007 -0.076831 -v 2.695441 2.594186 0.979715 -v 2.703436 2.831996 0.591982 -v 2.430008 2.811457 0.125791 -v 2.207136 3.078765 -0.379399 -v 2.904035 2.247210 0.893879 -v 2.666324 2.010223 0.643661 -v 2.569228 2.368971 0.316299 -v 2.560933 2.359419 -0.171605 -v 2.265315 2.576830 -0.675925 -v 2.336648 2.029389 -0.421402 -v 2.284415 2.022634 -0.855935 -v 2.150451 1.476840 -0.584277 -v 2.167788 1.514616 -0.809225 -v 2.643453 1.925415 -0.018950 -v 1.612726 0.873944 -1.296869 -v 2.079375 1.110581 -1.195821 -v 1.716492 0.726429 -1.388435 -v 1.884749 0.517371 -1.562625 -v 1.960825 0.442513 -1.610592 -v 1.942914 0.314387 -1.681620 -v 1.429990 0.889587 -1.614208 -v 1.505516 0.653872 -1.835689 -v 0.931704 0.787899 -2.066129 -v 0.917302 1.019552 -1.951271 -v 0.000000 0.904195 -2.214862 -v 0.000000 1.030543 -2.178484 -v 0.951775 0.729199 -2.150724 -v 0.000000 0.845559 -2.297620 -v 1.555206 0.591727 -1.909888 -v 0.894334 1.458678 -2.053686 -v 1.639151 1.530680 -1.825240 -v 0.916245 0.591191 -2.197576 -v 0.000000 0.707846 -2.344431 -v 1.516843 0.444141 -1.941028 -v 2.894158 -0.293492 -1.693660 -v 2.208730 -0.084916 -2.252010 -v 1.643629 0.058334 -2.438439 -v 0.948287 0.148704 -2.635463 -v 0.000000 0.168425 -2.853323 -v 1.029458 2.243869 -2.273440 -v 1.684247 2.196377 -1.812778 -v 1.695385 2.763007 -1.398141 -v 1.876909 2.728275 -1.166568 -v 0.875196 3.021261 -1.978715 -v 1.782151 3.542078 -0.994194 -v 2.107162 3.384693 -0.769274 -v 0.844364 4.033239 -1.650793 -v 1.796315 4.118073 -0.761666 -v 0.742722 4.663668 -1.204837 -v 0.846059 5.265105 -0.353710 -v 0.689895 5.512417 0.378273 -v 2.173945 1.466511 -1.022513 -v 4.311844 -1.200631 -1.185389 -v 4.281209 -1.236017 -1.866678 -v 4.413421 -1.366023 -1.817253 -v 4.075917 -1.655770 -2.427462 -v 3.189816 -1.098227 -2.690340 -v 2.386931 -0.750937 -2.861997 -v 1.719496 -0.583459 -3.013854 -v 0.992348 -0.495836 -3.177464 -v 0.000000 -0.488963 -3.319090 -v 0.917138 -0.807683 -3.231596 -v 0.000000 -0.804943 -3.302980 -v 1.668542 -0.878633 -3.086971 -v 2.298172 -1.040506 -2.959992 -v 3.115793 -1.320478 -2.781168 -v 4.383541 -1.803513 -1.704460 -v 3.742640 -2.357771 -2.279376 -v 3.677979 -2.906064 -1.683045 -v 3.638811 -3.241707 -1.353842 -v 3.512533 -3.726455 -0.968948 -v 3.287627 -4.201365 -0.669328 -v 3.104445 -4.543452 -0.512972 -v 2.882289 -4.753160 -0.407417 -v 2.636978 -4.999932 -0.302704 -v 2.492217 -5.233891 -0.221049 -v 0.681818 -1.565714 -2.716835 -v 0.000000 -1.514726 -2.809973 -v 1.350166 -1.675141 -2.539728 -v 1.847815 -1.745939 -2.457083 -v 2.756224 -1.990174 -2.296259 -v 0.518024 -2.108149 -2.289217 -v 0.000000 -2.056348 -2.351995 -v 1.086792 -2.191168 -2.149774 -v 1.538274 -2.289064 -2.018205 -v 1.964073 -2.352004 -1.909482 -v 2.640020 -2.518011 -1.714509 -v 0.447870 -2.510344 -2.135957 -v 0.000000 -2.394556 -2.209325 -v 0.983234 -2.583103 -1.999717 -v 1.466647 -2.710105 -1.839738 -v 2.073789 -2.822868 -1.612534 -v 2.705886 -3.010171 -1.356652 -v 0.342392 -3.011335 -2.034681 -v 0.000000 -2.933987 -2.082818 -v 0.865371 -3.113704 -1.900680 -v 1.355650 -3.234251 -1.735384 -v 1.782574 -3.384361 -1.495969 -v 2.213447 -3.537353 -1.179812 -v 2.642006 -3.590153 -0.976034 -v 0.208197 -3.462166 -2.003835 -v 0.000000 -3.389574 -2.041322 -v 0.730909 -3.568524 -1.898096 -v 1.243983 -3.663187 -1.705608 -v 1.658564 -3.768527 -1.451286 -v 2.096884 -3.938877 -1.011877 -v 2.555869 -3.972320 -0.738809 -v 0.090155 -3.819369 -2.045353 -v 0.000000 -3.752511 -2.078401 -v 0.670606 -3.915647 -1.926927 -v 1.159382 -3.987731 -1.720752 -v 1.552317 -4.103237 -1.436285 -v 2.010662 -4.250180 -0.897486 -v 2.468651 -4.337706 -0.565898 -v 0.097358 -4.207095 -2.087483 -v 0.000000 -4.202299 -2.120784 -v 0.635255 -4.234691 -1.945461 -v 1.120766 -4.323770 -1.724594 -v 1.502728 -4.482214 -1.405541 -v 1.882566 -4.595675 -0.852173 -v 2.412344 -4.644467 -0.439763 -v 0.110803 -4.449912 -2.120649 -v 0.000000 -4.442326 -2.166266 -v 0.124695 -4.685015 -2.152756 -v 0.000000 -4.702721 -2.231823 -v 0.115238 -4.992694 -2.207529 -v 0.000000 -4.968038 -2.257743 -v 0.620858 -4.483344 -1.979611 -v 0.611104 -4.723975 -2.018918 -v 0.595195 -5.038123 -2.079089 -v 1.086496 -4.588467 -1.746181 -v 1.064364 -4.823517 -1.765696 -v 1.031392 -5.100853 -1.806217 -v 1.469167 -4.728073 -1.396747 -v 1.415856 -4.954430 -1.408992 -v 1.376496 -5.234863 -1.426483 -v 1.790332 -4.906054 -0.797175 -v 1.686224 -5.163830 -0.782295 -v 1.596255 -5.436766 -0.777835 -v 2.260912 -4.951986 -0.323219 -v 2.121402 -5.166779 -0.272905 -v 2.015332 -5.387508 -0.191249 -v 0.000000 -1.988895 0.953370 -v 0.000000 -2.036472 1.142150 -v 0.000000 -2.077863 1.229946 -v 0.000000 -2.186846 1.384890 -v 0.000000 -2.283902 1.486748 -v 0.000000 -2.419917 1.574930 -v 0.000000 -2.654662 1.791003 -v 0.000000 -2.825996 1.883388 -v 0.000000 -3.214574 1.963003 -v 0.000000 -3.428350 1.799299 -v 0.000000 -3.572078 1.805144 -v 0.000000 -3.823292 1.726999 -v 0.000000 -4.138469 1.786812 -v 0.000000 -4.423326 1.863373 -v 0.000000 -4.772663 1.922207 -v 0.000000 -6.030879 1.934725 -v 0.173271 -6.030879 1.848678 -v 0.409214 -6.030879 1.779429 -v 0.452853 -6.030879 1.869895 -v 0.540109 -6.030879 2.066025 -v 0.666940 -6.030879 2.126052 -v 0.838990 -6.030879 1.962155 -v 0.982628 -6.030879 1.797889 -v 1.089061 -6.030879 1.736157 -v 1.234861 -6.030879 1.676691 -v 1.334627 -6.030879 1.636621 -v 1.479750 -6.030879 1.633867 -v 1.517471 -6.030879 1.422787 -v 2.161167 -6.030879 1.090996 -v 2.506828 -6.030879 0.750036 -v 2.363794 -6.030879 0.116081 -v 2.225014 -6.030879 -0.140141 -v 2.092339 -6.030879 -0.217990 -v 1.793452 -6.030879 -0.258928 -v 1.420514 -6.030879 -0.868995 -v 1.224949 -6.030879 -1.543609 -v 0.917840 -6.030879 -1.938543 -v 0.529666 -6.030879 -2.222338 -v 0.102551 -6.030879 -2.355920 -v 0.000000 -6.030879 -2.408144 -v -0.606929 -5.258410 2.044219 -v -0.749451 -5.282475 2.101935 -v -1.104195 -5.305782 1.786403 -v -0.942787 -5.310546 1.944346 -v -1.223796 -5.327607 1.727047 -v -1.387634 -5.352595 1.669870 -v -1.499742 -5.392315 1.631342 -v -1.662819 -5.424446 1.628694 -v -1.705207 -5.429660 1.425738 -v -2.428539 -5.597278 1.106718 -v -2.816964 -5.698190 0.778881 -v -0.228664 -1.938785 0.914844 -v -0.085459 -1.988895 0.953370 -v -0.302674 -1.925339 0.896202 -v -0.275138 -1.989268 0.980982 -v -0.185271 -2.036472 1.142150 -v -0.159347 -2.077863 1.229946 -v -0.081716 -2.186846 1.384890 -v -0.056561 -2.283902 1.486748 -v -0.068819 -2.419917 1.574930 -v -0.142751 -2.654662 1.791003 -v -0.773483 -3.525448 1.920056 -v -0.919514 -3.599237 1.892229 -v -0.216434 -2.825996 1.883388 -v -0.357668 -3.214574 1.963003 -v -0.582558 -3.428350 1.799299 -v -0.787973 -3.572078 1.805144 -v -0.811570 -3.535260 1.639753 -v -0.654987 -3.823292 1.726999 -v -0.503207 -4.138469 1.786812 -v -0.317156 -4.423326 1.863373 -v -0.508878 -5.273241 1.855637 -v -0.459840 -5.250568 1.768653 -v -0.194708 -5.182790 1.835237 -v -0.087132 -4.772663 1.922207 -v -2.656234 -5.605168 0.169326 -v -2.500285 -5.523783 -0.077034 -v -2.351196 -5.435412 -0.151886 -v -1.417944 -2.541195 1.493780 -v -1.259329 -2.426003 1.563345 -v -1.236121 -2.711167 1.686120 -v -1.409394 -2.865327 1.613634 -v -1.224993 -2.938594 1.776514 -v -1.399548 -3.105691 1.685054 -v -1.202295 -3.145272 1.833352 -v -1.379981 -3.366113 1.738770 -v -1.106314 -3.590680 1.974236 -v -1.334269 -3.716449 1.839816 -v -1.002768 -4.057680 2.052466 -v -1.232172 -4.121325 1.915639 -v -0.921851 -4.498998 2.102010 -v -1.149484 -4.521899 1.949742 -v -0.821686 -4.948648 2.109915 -v -1.055671 -4.969047 1.934536 -v -0.665033 -4.949267 2.067833 -v -0.790397 -4.471575 2.070390 -v -0.871066 -4.030221 2.020681 -v -1.011326 -3.548462 1.932144 -v -1.155576 -3.109339 1.814467 -v -1.175242 -2.848861 1.705078 -v -1.170322 -2.683542 1.625350 -v -1.649166 -3.153598 1.425104 -v -1.725446 -2.901864 1.298102 -v -1.915900 -3.340909 1.329336 -v -1.974884 -3.126890 1.261171 -v -2.246661 -3.436337 1.323768 -v -2.290493 -3.340302 1.279632 -v -2.534990 -3.502395 1.347507 -v -2.140607 -3.727898 1.472833 -v -2.317251 -3.857045 1.497275 -v -1.835587 -3.589522 1.435310 -v -2.013046 -3.668311 1.428434 -v -1.584067 -3.394486 1.523631 -v -1.682448 -3.490690 1.451628 -v -1.529117 -3.611627 1.612823 -v -1.548203 -3.500728 1.581314 -v -2.122380 -3.823961 1.506380 -v -2.060160 -3.909763 1.538973 -v -2.231689 -4.015099 1.562255 -v -2.010254 -3.717139 1.449443 -v -2.076778 -3.804394 1.495765 -v -1.961209 -3.864456 1.531278 -v -1.986340 -3.832651 1.514372 -v -1.608903 -3.661776 1.551223 -v -1.668334 -3.515077 1.467304 -v -1.597241 -3.534766 1.528002 -v -1.617885 -3.613874 1.534346 -v -1.988031 -3.767161 1.485134 -v -1.655153 -3.556152 1.491457 -v -1.812183 -3.626549 1.434301 -v -1.798499 -3.643519 1.450996 -v -1.790407 -3.668857 1.471051 -v -1.787096 -3.693876 1.484562 -v -1.763082 -3.742047 1.509739 -v -1.873679 -4.202039 1.614515 -v -2.045680 -4.339208 1.644113 -v -1.659365 -4.027687 1.614704 -v -1.502733 -3.882563 1.688551 -v -1.422880 -4.194795 1.751814 -v -1.338830 -4.586100 1.776423 -v -1.219358 -5.001400 1.765408 -v -1.321242 -5.037073 1.701719 -v -1.481364 -4.614100 1.694944 -v -1.586808 -4.326046 1.684303 -v -1.770696 -4.440989 1.659695 -v -1.957850 -4.535209 1.648452 -v -1.652831 -4.684212 1.684831 -v -1.850858 -4.739279 1.666618 -v -1.460594 -5.078399 1.663402 -v -1.631559 -5.124405 1.645831 -v -1.326262 -2.155088 1.413261 -v -1.485772 -2.251122 1.373872 -v -1.880520 -2.569602 1.112499 -v -1.710357 -2.035759 1.113492 -v -1.545319 -1.781823 1.127396 -v -1.362923 -1.931386 1.228796 -v -1.082675 -2.159156 1.209878 -v -1.115181 -2.219535 1.300111 -v -2.050930 -1.831655 0.828760 -v -1.702970 -1.478868 0.875829 -v -1.402433 -1.226174 0.788059 -v -1.535905 -1.298107 0.807226 -v -1.644327 -1.327048 0.804401 -v -1.764862 -1.361831 0.781579 -v -2.288634 -1.645988 0.611225 -v -1.883102 -1.374386 0.712727 -v -2.035308 -1.272274 0.521232 -v -2.395414 -1.414058 0.447712 -v -2.509845 -0.986878 0.206504 -v -2.208626 -0.922418 0.257252 -v -2.639863 -2.438321 0.958418 -v -2.725734 -1.886749 0.497114 -v -2.764515 -1.590138 0.284429 -v -2.831744 -1.098893 0.044976 -v -1.775468 -2.806755 1.258097 -v -1.655526 -2.682360 1.299566 -v -2.033635 -2.703922 1.074109 -v -1.839602 -2.218849 1.044937 -v -2.056288 -3.001260 1.208765 -v -2.384792 -3.212572 1.263918 -v -2.356952 -4.120360 1.544871 -v -2.459801 -3.955877 1.483205 -v -2.178010 -4.430263 1.632940 -v -2.075841 -4.618856 1.646803 -v -1.971436 -4.813312 1.649093 -v -1.782910 -5.179061 1.642088 -v -2.722473 -3.521854 1.297529 -v -2.320522 -0.635532 0.139770 -v -2.572149 -0.716555 0.062678 -v -2.866314 -0.799157 -0.133476 -v -2.292457 -0.145070 -0.109027 -v -2.443170 -0.179462 -0.315260 -v -2.730895 -0.264831 -0.543768 -v -2.458838 0.001204 -0.795894 -v -2.292063 0.126813 -0.573476 -v -2.192149 0.196353 -0.366311 -v -2.321326 0.143332 -0.986568 -v -2.204225 0.285265 -0.793519 -v -2.086512 0.412325 -0.602341 -v -1.979496 0.526511 -1.052944 -v -1.901332 0.677905 -0.887785 -v -2.119281 0.374709 -1.296339 -v -2.404395 0.114204 -1.034763 -v -2.182306 0.325784 -1.359781 -v -2.489319 -0.022626 -0.860502 -v -2.735065 -0.303741 -0.600112 -v -2.972152 -1.121362 -0.018465 -v -2.979924 -0.812304 -0.196070 -v -2.922423 -1.641673 0.257410 -v -2.873500 -1.930568 0.473403 -v -2.375135 0.046336 -1.144438 -v -2.172337 0.226998 -1.422520 -v -2.491158 -0.102854 -1.005916 -v -2.796512 -0.410669 -0.688888 -v -2.990258 -0.891358 -0.298409 -v -3.003446 -1.208466 -0.126238 -v -2.626737 -0.141303 -1.176234 -v -3.305729 -0.660061 -1.106242 -v -3.189751 -0.546391 -1.211410 -v -3.498145 -0.805415 -0.915226 -v -3.598299 -1.111347 -0.580610 -v -3.594934 -1.309430 -0.426668 -v -2.960597 -1.718621 0.127997 -v -2.892831 -2.040189 0.309357 -v -3.561625 -1.803253 -0.127527 -v -3.572524 -2.193293 0.073111 -v -2.723940 -2.593923 0.991446 -v -2.101627 -2.776564 0.955989 -v -1.952771 -2.425001 0.870612 -v -1.810815 -2.786959 1.099059 -v -2.079275 -2.975586 1.069559 -v -2.419624 -3.200458 1.048395 -v -2.758584 -3.526407 1.034976 -v -2.414672 -4.011502 1.178445 -v -2.324448 -4.181604 1.220485 -v -2.173626 -4.477980 1.310844 -v -2.088244 -4.632308 1.348621 -v -1.971255 -4.860397 1.375835 -v -1.807332 -5.201816 1.406577 -v -3.032909 -4.274755 0.871277 -v -3.221893 -3.685248 0.761669 -v -3.384109 -3.157457 0.609178 -v -3.006850 -3.159979 0.786586 -v -2.761079 -3.343132 0.934009 -v -2.989856 -4.359622 0.888982 -v -2.837555 -4.575955 0.958111 -v -2.743621 -4.770766 1.013783 -v -2.647256 -5.006955 1.036057 -v -2.543676 -5.328383 1.063651 -v -2.636712 -2.719342 0.706883 -v -2.675142 -2.784636 0.772986 -v -3.022010 -2.935674 0.717220 -v -3.488740 -2.821402 0.417224 -v -2.408273 -2.931587 0.890975 -v -2.481620 -3.157896 0.992837 -v -2.536210 -2.948206 0.958051 -v -2.663577 -2.834692 0.861852 -v -2.882174 -2.937345 0.843545 -v -2.925337 -3.100878 0.894157 -v -2.756874 -3.229780 1.007085 -v -2.555491 -3.089174 1.022268 -v -2.674389 -2.937617 0.933123 -v -2.780405 -2.972446 0.918971 -v -2.626996 -2.987327 0.979362 -v -2.629518 -3.052213 1.002425 -v -2.750973 -3.111114 0.986978 -v -2.807915 -3.045099 0.930632 -v -2.717701 -3.030117 0.972204 -v -4.313962 -1.233717 -1.113217 -v -4.624830 -1.455210 -1.033928 -v -4.330608 -1.411916 -0.776805 -v -4.324175 -1.485486 -0.686738 -v -4.248341 -1.902899 -0.362860 -v -4.634851 -1.565367 -0.797032 -v -4.566785 -1.925704 -0.443689 -v -4.188893 -2.337274 -0.205079 -v -4.137861 -2.703013 -0.100062 -v -4.022866 -3.369608 0.033900 -v -3.764290 -3.909375 0.369424 -v -4.456349 -2.398925 -0.204624 -v -4.359573 -2.784669 -0.104717 -v -4.125014 -3.394157 -0.000466 -v -3.898481 -4.088530 -0.065554 -v -4.241738 -3.465072 -0.094279 -v -4.479900 -2.866124 -0.178521 -v -4.576882 -2.437436 -0.255504 -v -4.648549 -1.977384 -0.494981 -v -3.513140 -4.435121 0.544512 -v -3.497720 -4.482059 0.557091 -v -3.379102 -4.700961 0.630729 -v -3.324800 -4.792911 0.649540 -v -3.166105 -5.047532 0.719668 -v -2.974409 -5.394820 0.804852 -v -3.670990 -4.569324 0.278001 -v -3.529665 -4.810116 0.407969 -v -3.328219 -5.106425 0.519180 -v -3.048547 -5.432866 0.657509 -v -1.874501 0.840434 -0.825335 -v -1.653189 0.929418 -0.708563 -v -1.789908 0.559574 -0.484963 -v -2.022252 0.544661 -0.586962 -v -1.619546 1.085665 -0.484865 -v -1.709339 0.708810 -0.303075 -v -1.494055 1.265579 -0.284350 -v -1.608594 0.873861 -0.115187 -v -1.679156 0.633915 0.029714 -v -1.778391 0.482136 -0.139324 -v -1.872463 0.346143 -0.310705 -v -2.145294 0.339204 -0.375192 -v -1.915717 0.040941 -0.014837 -v -2.201232 0.000293 -0.064496 -v -1.764515 0.177998 0.117671 -v -1.676031 0.329475 0.229159 -v -1.555784 0.021224 0.505726 -v -1.718960 -0.160742 0.469903 -v -1.270392 -0.147104 0.784968 -v -1.526734 -0.330392 0.664287 -v -1.394744 -0.413036 0.760716 -v -0.965119 -0.260672 0.954350 -v -1.133576 -0.529377 0.876480 -v -0.660852 -0.430087 1.026409 -v -0.890434 -0.667131 1.030138 -v -1.083905 -0.908114 0.962937 -v -1.292102 -0.754556 0.823783 -v -1.497409 -0.724919 0.744497 -v -1.774028 -0.557820 0.533113 -v -1.918869 -0.331560 0.339632 -v -2.293218 -0.484214 0.339257 -v -1.870448 -0.652197 0.450844 -v -2.204633 -0.761890 0.492489 -v -1.920558 -0.911602 0.635633 -v -2.150011 -1.077666 0.738764 -v -1.173329 -0.937966 0.974752 -v -1.359247 -0.802611 0.864891 -v -1.564809 -0.797042 0.792898 -v -1.863340 -0.977168 0.914090 -v -2.107739 -1.143225 0.953456 -v -1.715824 -0.929656 0.966024 -v -1.618376 -0.925175 1.029689 -v -1.369610 -1.015338 1.119676 -v -1.832846 -1.020531 1.185262 -v -1.626036 -1.076742 1.288613 -v -1.714100 -1.093595 1.318990 -v -1.848709 -1.143001 1.341502 -v -1.983526 -1.157101 1.274700 -v -2.045247 -1.153720 1.168849 -v -1.929603 0.766195 -0.868969 -v -2.116741 0.495058 -0.601314 -v -2.255911 0.276612 -0.416612 -v -2.281261 -0.081355 -0.119904 -v -2.360604 -0.599489 0.198334 -v -2.290626 -0.891433 0.390191 -v -2.149541 -1.234854 0.593719 -v -2.050488 -1.366728 0.809457 -v -1.947857 -1.381446 0.959888 -v -1.772848 -1.328383 1.095626 -v -1.564976 -1.261520 1.034313 -v -1.497288 -1.339130 0.841721 -v -1.364580 -1.180787 0.924075 -v -0.979704 -2.071305 1.342422 -v -1.002919 -2.144323 1.415971 -v -1.288682 -1.818864 1.337446 -v -1.184800 -2.360092 1.620601 -v -1.499328 -1.619904 1.259788 -v -1.150655 -2.577878 1.705708 -v -1.138570 -2.355695 1.608074 -v -1.076103 -2.441460 1.640501 -v -0.986579 -2.344266 1.588933 -v -0.946039 -2.139567 1.405321 -v -0.911458 -2.006588 1.293084 -v -1.226792 -1.758778 1.263937 -v -1.430329 -1.605903 1.242139 -v -1.185289 -1.494439 1.039594 -v -1.106210 -1.685248 1.170283 -v -1.003208 -1.853189 1.204180 -v -1.062459 -1.710216 1.147465 -v -0.987919 -1.577734 0.943063 -v -1.011487 -1.466149 0.849459 -v -1.412549 -1.265471 0.846861 -v -1.163166 -1.083631 0.749894 -v -1.215025 -1.139879 0.631844 -v -1.090440 -1.023507 0.678469 -v -1.140061 -1.085619 0.548845 -v -1.322738 -1.282287 0.839324 -v -1.125903 -1.247879 0.726983 -v -0.975960 -1.253640 0.439031 -v -0.951070 -1.490338 0.657946 -v -0.923414 -1.563252 0.752181 -v -0.831620 -1.507736 0.611914 -v -0.772368 -1.363330 0.594727 -v -0.706202 -1.445747 0.661758 -v -1.053160 -0.947260 0.364276 -v -0.899215 -1.079844 0.440476 -v -0.696132 -1.182176 0.597604 -v -0.541634 -1.357723 0.706386 -v -1.031870 -0.910848 0.501241 -v -0.972473 -0.904372 0.702188 -v -0.953346 -0.798897 0.560640 -v -0.945703 -0.793197 0.352311 -v -0.840242 -0.927747 0.424596 -v -0.620113 -1.068009 0.584601 -v -0.406030 -1.181369 0.658817 -v -0.776626 -0.858709 0.397058 -v -0.588595 -1.031782 0.557169 -v -0.552893 -0.992161 0.508997 -v -0.372288 -1.143575 0.620912 -v -0.344751 -1.110140 0.559124 -v -0.223761 -1.185662 0.654281 -v -0.250869 -1.226516 0.715051 -v -0.123685 -1.159181 0.616287 -v -0.306132 -1.328286 0.761379 -v -0.881827 -0.723916 0.435746 -v -0.723647 -0.597074 0.645566 -v -0.757860 -0.781188 0.456694 -v -0.882614 -0.775412 0.755154 -v -0.666779 -0.552895 0.796182 -v -0.611036 -0.525612 0.788876 -v -0.562304 -0.416580 0.969606 -v -0.876471 -0.148345 0.904860 -v -1.138099 -0.091895 0.774442 -v -1.485183 0.079724 0.500447 -v -1.596159 0.379360 0.235293 -v -1.566675 0.634397 0.073622 -v -1.512450 0.897163 -0.076482 -v -1.412367 1.281826 -0.310801 -v -1.237959 0.865933 -0.239116 -v -1.313157 0.598818 -0.121402 -v -1.265388 0.325109 -0.014263 -v -1.172174 0.003799 0.288578 -v -1.038911 -0.054216 0.599331 -v -0.525206 -0.699021 0.685298 -v -0.542374 -0.842300 0.544174 -v -0.503536 -0.631044 0.705220 -v -0.501866 -0.586513 0.662164 -v -0.455321 -0.546323 0.782268 -v -0.379120 -0.507010 0.863837 -v -0.299927 -0.673631 0.765450 -v -0.304694 -0.630063 0.726692 -v -0.325211 -0.748447 0.738581 -v -0.224965 -0.434611 0.626931 -v -0.215350 -0.596543 0.743346 -v -0.127284 -0.764450 0.768490 -v -0.113276 -0.678553 0.767337 -v -0.137651 -0.622930 0.687754 -v -0.096537 -0.571215 0.609019 -v -0.322935 -0.900350 0.611039 -v -0.108917 -0.939211 0.646315 -v -0.016477 -0.926391 0.649357 -v 0.000578 -1.149405 0.652702 -v -0.139737 -1.171606 0.699986 -v 0.004388 -1.174172 0.722007 -v 0.007583 -1.191200 0.792125 -v -0.127929 -1.193892 0.754604 -v -0.241360 -1.278164 0.814638 -v -0.130370 -1.254810 0.861437 -v -0.033090 -1.254034 0.896798 -v -0.274387 -1.437386 0.895555 -v -0.260266 -1.429410 0.950578 -v -0.166855 -1.398997 0.996518 -v -0.490997 -1.452079 1.079063 -v -0.672423 -1.321110 1.058253 -v -0.733092 -1.446843 0.883670 -v -0.777042 -1.374494 1.179787 -v -0.852626 -1.500311 1.052535 -v -0.806198 -1.468259 0.783523 -v -0.957618 -1.550179 0.980468 -v -1.061248 -1.693582 1.249920 -v -0.991865 -1.643754 1.309478 -v -0.918461 -1.559019 1.397034 -v -0.600731 -1.529273 1.201757 -v -1.043674 -1.738987 1.307451 -v -0.961809 -1.793360 1.514807 -v -0.871396 -1.707364 1.600356 -v -0.643279 -1.597424 1.344353 -v -0.616929 -1.647787 1.441685 -v -0.803006 -1.788214 1.656914 -v -0.729624 -1.999230 1.428804 -v -0.923605 -2.047241 1.528758 -v -0.887021 -2.089621 1.740125 -v -0.908608 -2.268117 1.570879 -v -0.804780 -2.017978 1.533626 -v -0.752157 -2.040502 1.662394 -v -0.544718 -2.044484 1.668407 -v -0.628571 -2.050575 1.845255 -v -0.697121 -2.147149 1.901156 -v -0.550252 -1.907047 1.787284 -v -0.487346 -1.724542 1.549441 -v -0.395899 -1.825250 1.640423 -v -0.250850 -1.637978 1.015846 -v -0.244374 -1.658235 0.946017 -v -0.123817 -1.642736 1.107774 -v -0.075363 -1.842817 1.071423 -v -0.245409 -1.810659 0.985872 -v -0.304946 -1.805198 0.974470 -v -0.296986 -1.699174 1.051869 -v -0.439278 -1.770717 1.223794 -v -0.314085 -1.883325 1.371367 -v -0.179735 -1.984468 1.494798 -v -0.324830 -1.841375 1.003657 -v -0.222738 -1.894406 1.155335 -v -0.172525 -1.978736 1.231043 -v -0.114834 -2.162851 1.420513 -v -0.093712 -2.255516 1.488580 -v -0.112533 -2.125553 1.543084 -v -0.124040 -2.383260 1.618812 -v -0.150668 -2.039182 1.681016 -v -0.190912 -2.607809 1.821257 -v -0.240723 -2.602026 1.811898 -v -0.306947 -2.582094 1.862173 -v -0.405686 -2.474868 1.990988 -v -0.226778 -2.090173 1.907548 -v -0.348400 -2.002303 1.884293 -v -0.429880 -2.105294 1.813437 -v -0.510107 -2.120671 1.944439 -v -0.581623 -2.187905 2.008629 -v -0.478191 -2.157100 2.001021 -v -0.940866 -2.328458 1.660947 -v -1.015872 -2.421969 1.749243 -v -1.130258 -2.672200 1.895345 -v -1.133006 -3.056261 1.998462 -v -0.829619 -3.395835 1.961927 -v -0.886282 -2.900060 1.864000 -v -0.973873 -2.665101 1.909583 -v -0.872574 -2.480379 1.729201 -v -0.924078 -2.539847 1.804793 -v -0.850053 -2.399683 1.656877 -v -0.677365 -3.395529 1.913464 -v -0.490297 -3.081067 2.001696 -v -0.442003 -3.181398 2.023786 -v -0.371433 -2.706441 1.897063 -v -0.289637 -2.717131 1.956565 -v -0.833722 -2.319913 1.588685 -v -0.723318 -2.277545 1.887690 -v -0.833002 -2.323450 1.837793 -v -0.692294 -2.371743 1.913054 -v -0.838047 -2.453222 1.883920 -v -0.641657 -2.588223 1.940398 -v -0.835450 -2.392535 1.666195 -v -0.863047 -2.464924 1.733322 -v -0.611144 -2.550968 2.004122 -v -0.586612 -2.676337 1.973955 -v -0.692440 -3.060730 1.993670 -v -0.766932 -3.933840 1.811139 -v -0.735525 -3.893854 1.701079 -v -0.728226 -4.163616 1.817632 -v -0.672600 -4.211015 1.737881 -v -0.642157 -4.510410 1.854692 -v -0.587140 -4.550395 1.720699 -v -0.570267 -4.186787 1.772454 -v -0.442477 -4.489280 1.785019 -v -0.572488 -4.948374 1.875073 -v -0.520362 -4.931837 1.776638 -v -0.271754 -4.840917 1.837813 -v -3.741771 -4.171817 -0.347126 -v -4.043613 -3.575043 -0.555009 -v -4.223952 -3.061474 -0.724218 -v -4.403008 -2.606096 -0.807085 -v -4.509541 -2.165012 -0.978357 -v -4.644337 -1.741958 -1.085475 -v -4.074585 -2.737126 -1.284806 -v -4.247483 -2.277002 -1.454847 -v -3.940585 -3.141079 -1.091841 -v -3.749558 -3.689571 -0.831686 -v -3.503217 -4.203363 -0.577819 -v -3.511727 -4.552409 -0.171128 -v -3.298432 -4.835660 -0.094779 -v -3.069507 -5.126623 -0.010901 -v -2.856514 -5.366696 0.088825 -v -2.682419 -5.306578 -0.162887 -v -2.865412 -5.074536 -0.246702 -v -3.115006 -4.827193 -0.302164 -v -3.337063 -4.542685 -0.391358 -v -1.269260 1.255200 -0.337076 -v -0.808878 -0.108006 0.862693 -v -0.785511 -0.113481 0.744561 -v -1.288147 1.331118 -0.224217 -v -1.428511 1.249858 0.363487 -v -1.360651 1.219843 0.665852 -v -1.426867 1.333607 0.370559 -v -1.450856 1.457047 0.528348 -v -1.384062 1.438226 0.638337 -v -1.470071 1.493236 0.369380 -v -1.594261 1.558343 0.626987 -v -1.484255 1.632078 0.642222 -v -1.620929 1.647771 0.357712 -v -1.650435 1.617243 0.680182 -v -1.545264 1.742151 0.824324 -v -1.389575 1.760656 0.867844 -v -1.383596 1.808758 1.025872 -v -1.655757 1.825900 0.954174 -v -1.597150 1.914643 1.006309 -v -1.392070 1.994927 1.179577 -v -1.762705 1.655988 0.631224 -v -1.762992 1.805720 0.775415 -v -1.949500 1.849836 0.823902 -v -1.760768 1.850647 1.065403 -v -1.743619 1.997952 1.234624 -v -1.497468 2.133743 1.191102 -v -1.400213 2.173737 1.276591 -v -1.756102 2.216640 1.319918 -v -1.420383 2.453469 1.475121 -v -0.681201 -0.189988 0.897274 -v -0.475894 -0.298390 0.931689 -v -0.290747 -0.351774 0.892697 -v -0.276279 -0.316745 0.701162 -v -1.338810 2.729682 1.686965 -v -1.295536 2.975859 1.876092 -v -1.249168 3.130029 2.062850 -v -1.228711 3.220825 2.196595 -v -1.062347 3.349826 2.391934 -v -0.814242 3.416641 2.460567 -v -0.605427 3.436728 2.625397 -v -0.377767 3.416682 2.699480 -v -0.191664 3.352134 2.742179 -v -0.327215 3.617606 3.165959 -v -0.490340 3.727078 3.028905 -v -0.833423 3.579124 2.952278 -v -1.186570 3.537148 2.883776 -v -1.274514 3.429492 2.340806 -v -1.515386 3.462934 2.499302 -v -1.729657 2.985728 2.126961 -v -1.587334 3.273247 2.279883 -v -1.802587 2.673030 2.071795 -v -1.883505 2.421195 1.852780 -v -1.770470 1.547581 0.014896 -v -1.763543 1.690838 0.209278 -v -1.789812 1.745170 0.195716 -v -1.652398 1.635196 0.100315 -v -1.616211 1.631821 0.140151 -v -1.702170 1.691207 0.287679 -v -2.024910 1.684896 0.590685 -v -2.081244 1.739766 0.560523 -v -2.101686 1.841926 0.704701 -v -2.311996 1.667058 0.544330 -v -2.139216 1.493633 0.307465 -v -1.568122 1.452308 -0.160167 -v -1.847430 1.192309 -0.235521 -v -2.039961 1.263559 -0.106670 -v -2.001783 1.178930 -0.538870 -v -2.120274 1.181434 -0.439203 -v -1.955666 1.112051 -0.650840 -v -2.035204 1.058208 -0.740662 -v -2.506671 1.354212 -0.177264 -v -2.556798 1.425842 0.234125 -v -2.625577 1.667848 0.406381 -v -2.572188 1.665942 0.610608 -v -2.313997 1.937125 1.043955 -v -1.347179 1.435083 -0.164662 -v -2.370565 2.188644 1.319938 -v -1.795360 2.312256 1.448602 -v -2.298796 2.378327 1.484097 -v -2.431922 2.420861 1.791865 -v -2.274832 2.708370 1.953293 -v -2.127402 2.763782 2.172931 -v -2.027815 3.057472 2.207687 -v -2.211272 3.151361 2.175526 -v -2.077582 3.593789 2.544059 -v -2.205795 3.053233 1.995680 -v -2.234578 2.853686 1.921466 -v -2.492220 2.763751 1.681460 -v -1.682721 3.872787 2.699838 -v -1.591274 3.687533 2.795306 -v -1.469790 4.226974 3.125912 -v -1.419313 4.085230 3.114769 -v -0.969239 4.032842 3.237621 -v -0.446240 4.025191 3.175913 -v -0.293380 4.202842 3.126171 -v -0.507507 4.749091 2.927829 -v -0.273753 4.902920 2.635112 -v -0.855572 4.443953 3.264785 -v -1.001219 4.433220 3.168902 -v -2.634762 2.917107 1.571458 -v -2.373444 3.230135 1.701438 -v -2.245007 3.762857 1.971262 -v -2.174998 3.974638 1.861146 -v -1.772471 3.917193 2.561741 -v -1.696145 3.988359 2.581486 -v -2.020528 4.126190 2.057333 -v -1.720966 4.401711 2.028207 -v -1.417985 4.554327 2.447087 -v -1.350400 4.347244 2.806280 -v -1.200152 4.613357 3.063192 -v -1.304464 4.997022 2.246442 -v -0.873342 4.709630 3.173557 -v -0.696170 4.784035 2.819126 -v -0.424844 4.978543 2.246064 -v -0.696076 5.193224 2.026187 -v -0.635427 5.515653 1.331738 -v -1.511739 4.938085 1.521488 -v -1.906790 4.422846 1.795979 -v -2.354552 3.705653 1.670219 -v -2.644936 3.814625 1.425739 -v -2.421550 3.779236 0.825727 -v -2.203040 4.216619 1.154116 -v -2.251699 4.269145 0.470671 -v -1.788527 4.809611 0.096426 -v -1.601388 4.895715 0.838140 -v -2.543023 3.228183 1.363687 -v -2.588333 3.236537 1.228543 -v -2.629558 3.164815 0.666688 -v -2.336965 3.754007 -0.076831 -v -2.695441 2.594186 0.979715 -v -2.703436 2.831996 0.591982 -v -2.430008 2.811457 0.125791 -v -2.207136 3.078765 -0.379399 -v -2.904035 2.247210 0.893879 -v -2.666324 2.010223 0.643661 -v -2.569228 2.368971 0.316299 -v -2.560933 2.359419 -0.171605 -v -2.265315 2.576830 -0.675925 -v -2.336648 2.029389 -0.421402 -v -2.284415 2.022634 -0.855935 -v -2.150451 1.476840 -0.584277 -v -2.167788 1.514616 -0.809225 -v -2.643453 1.925415 -0.018950 -v -1.612726 0.873944 -1.296869 -v -2.079375 1.110581 -1.195821 -v -1.716492 0.726429 -1.388435 -v -1.884749 0.517371 -1.562625 -v -1.960825 0.442513 -1.610592 -v -1.942914 0.314387 -1.681620 -v -1.429990 0.889587 -1.614208 -v -1.505516 0.653872 -1.835689 -v -0.931704 0.787899 -2.066129 -v -0.917302 1.019552 -1.951271 -v -0.951775 0.729199 -2.150724 -v -1.555206 0.591727 -1.909888 -v -0.894334 1.458678 -2.053686 -v -1.639151 1.530680 -1.825240 -v -0.916245 0.591191 -2.197576 -v -1.516843 0.444141 -1.941028 -v -2.894158 -0.293492 -1.693660 -v -2.208730 -0.084916 -2.252010 -v -1.643629 0.058334 -2.438439 -v -0.948287 0.148704 -2.635463 -v -1.029458 2.243869 -2.273440 -v -1.684247 2.196377 -1.812778 -v -1.695385 2.763007 -1.398141 -v -1.876909 2.728275 -1.166568 -v -0.875196 3.021261 -1.978715 -v -1.782151 3.542078 -0.994194 -v -2.107162 3.384693 -0.769274 -v -0.844364 4.033239 -1.650793 -v -1.796315 4.118073 -0.761666 -v -0.742722 4.663668 -1.204837 -v -0.846059 5.265105 -0.353710 -v -0.689895 5.512417 0.378273 -v -2.173945 1.466511 -1.022513 -v -4.311844 -1.200631 -1.185389 -v -4.281209 -1.236017 -1.866678 -v -4.413421 -1.366023 -1.817253 -v -4.075917 -1.655770 -2.427462 -v -3.189816 -1.098227 -2.690340 -v -2.386931 -0.750937 -2.861997 -v -1.719496 -0.583459 -3.013854 -v -0.992348 -0.495836 -3.177464 -v -0.917138 -0.807683 -3.231596 -v -1.668542 -0.878633 -3.086971 -v -2.298172 -1.040506 -2.959992 -v -3.115793 -1.320478 -2.781168 -v -4.383541 -1.803513 -1.704460 -v -3.742640 -2.357771 -2.279376 -v -3.677979 -2.906064 -1.683045 -v -3.638811 -3.241707 -1.353842 -v -3.512533 -3.726455 -0.968948 -v -3.287627 -4.201365 -0.669328 -v -3.104445 -4.543452 -0.512972 -v -2.882289 -4.753160 -0.407417 -v -2.636978 -4.999932 -0.302704 -v -2.492217 -5.233891 -0.221049 -v -0.681818 -1.565714 -2.716835 -v -1.350166 -1.675141 -2.539728 -v -1.847815 -1.745939 -2.457083 -v -2.756224 -1.990174 -2.296259 -v -0.518024 -2.108149 -2.289217 -v -1.086792 -2.191168 -2.149774 -v -1.538274 -2.289064 -2.018205 -v -1.964073 -2.352004 -1.909482 -v -2.640020 -2.518011 -1.714509 -v -0.447870 -2.510344 -2.135957 -v -0.983234 -2.583103 -1.999717 -v -1.466647 -2.710105 -1.839738 -v -2.073789 -2.822868 -1.612534 -v -2.705886 -3.010171 -1.356652 -v -0.342392 -3.011335 -2.034681 -v -0.865371 -3.113704 -1.900680 -v -1.355650 -3.234251 -1.735384 -v -1.782574 -3.384361 -1.495969 -v -2.213447 -3.537353 -1.179812 -v -2.642006 -3.590153 -0.976034 -v -0.208197 -3.462166 -2.003835 -v -0.730909 -3.568524 -1.898096 -v -1.243983 -3.663187 -1.705608 -v -1.658564 -3.768527 -1.451286 -v -2.096884 -3.938877 -1.011877 -v -2.555869 -3.972320 -0.738809 -v -0.090155 -3.819369 -2.045353 -v -0.670606 -3.915647 -1.926927 -v -1.159382 -3.987731 -1.720752 -v -1.552317 -4.103237 -1.436285 -v -2.010662 -4.250180 -0.897486 -v -2.468651 -4.337706 -0.565898 -v -0.097358 -4.207095 -2.087483 -v -0.635255 -4.234691 -1.945461 -v -1.120766 -4.323770 -1.724594 -v -1.502728 -4.482214 -1.405541 -v -1.882566 -4.595675 -0.852173 -v -2.412344 -4.644467 -0.439763 -v -0.110803 -4.449912 -2.120649 -v -0.124695 -4.685015 -2.152756 -v -0.115238 -4.992694 -2.207529 -v -0.620858 -4.483344 -1.979611 -v -0.611104 -4.723975 -2.018918 -v -0.595195 -5.038123 -2.079089 -v -1.086496 -4.588467 -1.746181 -v -1.064364 -4.823517 -1.765696 -v -1.031392 -5.100853 -1.806217 -v -1.469167 -4.728073 -1.396747 -v -1.415856 -4.954430 -1.408992 -v -1.376496 -5.234863 -1.426483 -v -1.790332 -4.906054 -0.797175 -v -1.686224 -5.163830 -0.782295 -v -1.596255 -5.436766 -0.777835 -v -2.260912 -4.951986 -0.323219 -v -2.121402 -5.166779 -0.272905 -v -2.015332 -5.387508 -0.191249 -v -0.173271 -6.030879 1.848678 -v -0.409214 -6.030879 1.779429 -v -0.452853 -6.030879 1.869895 -v -0.540109 -6.030879 2.066025 -v -0.666940 -6.030879 2.126052 -v -0.838990 -6.030879 1.962155 -v -0.982628 -6.030879 1.797889 -v -1.089061 -6.030879 1.736157 -v -1.234861 -6.030879 1.676691 -v -1.334627 -6.030879 1.636621 -v -1.479750 -6.030879 1.633867 -v -1.517471 -6.030879 1.422787 -v -2.161167 -6.030879 1.090996 -v -2.506828 -6.030879 0.750036 -v -2.363794 -6.030879 0.116081 -v -2.225014 -6.030879 -0.140141 -v -2.092339 -6.030879 -0.217990 -v -1.793452 -6.030879 -0.258928 -v -1.420514 -6.030879 -0.868995 -v -1.224949 -6.030879 -1.543609 -v -0.917840 -6.030879 -1.938543 -v -0.529666 -6.030879 -2.222338 -v -0.102551 -6.030879 -2.355920 -v -1.161072 1.934412 1.775005 -v -0.205103 1.936063 2.501672 -v -0.231208 1.908201 2.470483 -v -0.290521 1.948551 2.542588 -v -0.315073 1.898174 2.508136 -v -0.302358 1.896070 2.416183 -v -0.407271 1.991888 2.515717 -v -0.599913 2.066898 2.561939 -v -0.818046 2.102397 2.491977 -v -1.070202 2.131116 2.231782 -v -1.126455 2.071561 1.968115 -v -0.439859 1.931271 2.550236 -v -0.626491 2.010932 2.565123 -v -0.817392 2.051739 2.467993 -v -1.046103 2.082681 2.201493 -v -1.094903 2.041015 1.980764 -v -0.446881 1.905963 2.506279 -v -0.641413 1.975450 2.479286 -v -0.807406 2.027692 2.422028 -v -1.015578 2.066997 2.215932 -v -0.333298 1.800984 2.196625 -v -0.377943 1.841381 2.221563 -v -0.514841 1.864908 2.234809 -v -0.580052 1.863718 2.233138 -v -0.675458 1.862439 2.223293 -v -0.784839 1.848392 2.147633 -v -0.853135 1.815021 1.987908 -v -0.723749 1.742288 2.068501 -v -0.576331 1.718729 2.132130 -v -0.426383 1.724865 2.150666 -v -0.399649 1.812594 2.196756 -v -0.502009 1.827583 2.212311 -v -0.463364 1.743613 2.168622 -v -0.714552 1.765103 2.129313 -v -0.755854 1.823434 2.135508 -v -0.654012 1.819856 2.204495 -v -0.634942 1.797914 2.197154 -v -0.574174 1.795299 2.193897 -v -0.534733 1.806213 2.186273 -v -0.571565 1.824729 2.221417 -v 1.161072 1.934412 1.775005 -v 0.205103 1.936063 2.501672 -v 0.231208 1.908201 2.470483 -v 0.290521 1.948551 2.542588 -v 0.315073 1.898174 2.508136 -v 0.302358 1.896070 2.416183 -v 0.407271 1.991888 2.515717 -v 0.599913 2.066898 2.561939 -v 0.818046 2.102397 2.491977 -v 1.070202 2.131116 2.231782 -v 1.126455 2.071561 1.968115 -v 0.439859 1.931271 2.550236 -v 0.626491 2.010932 2.565123 -v 0.817392 2.051739 2.467993 -v 1.046103 2.082681 2.201493 -v 1.094903 2.041015 1.980764 -v 0.446881 1.905963 2.506279 -v 0.641413 1.975450 2.479286 -v 0.807406 2.027692 2.422028 -v 1.015578 2.066997 2.215932 -v 0.333298 1.800984 2.196625 -v 0.377943 1.841381 2.221563 -v 0.514841 1.864908 2.234809 -v 0.580052 1.863718 2.233138 -v 0.675458 1.862439 2.223293 -v 0.784839 1.848392 2.147633 -v 0.853135 1.815021 1.987908 -v 0.723749 1.742288 2.068501 -v 0.576331 1.718729 2.132130 -v 0.426383 1.724865 2.150666 -v 0.399649 1.812594 2.196756 -v 0.502009 1.827583 2.212311 -v 0.463364 1.743613 2.168622 -v 0.714552 1.765103 2.129313 -v 0.755854 1.823434 2.135508 -v 0.654012 1.819856 2.204495 -v 0.634942 1.797914 2.197154 -v 0.574174 1.795299 2.193897 -v 0.534733 1.806213 2.186273 -v 0.571565 1.824729 2.221417 -g face -v -0.093362 -0.478222 0.606843 -v -0.096537 -0.571215 0.609019 -v 0.000000 -0.557739 0.616228 -v 0.000000 -0.471817 0.617078 -v -0.224965 -0.434611 0.626931 -v -1.199660 0.612319 -0.114440 -v -1.237960 0.865933 -0.239116 -v -1.313160 0.598818 -0.121402 -v -1.265390 0.325109 -0.014263 -v -1.142100 0.357713 0.080797 -v -1.172170 0.003799 0.288578 -v -0.992640 0.087790 0.368875 -v -1.038910 -0.054216 0.599331 -v -0.958007 0.004663 0.540421 -v -1.269260 1.255200 -0.337076 -v -1.303610 1.165410 -0.035682 -v -1.256730 0.831771 0.001709 -v -1.246660 0.626933 0.095034 -v -1.181300 0.382558 0.276478 -v -0.997234 0.135594 0.524613 -v -0.968603 0.047490 0.672441 -v -1.360370 1.129340 0.147805 -v -1.313170 0.827262 0.178592 -v -1.321880 0.686917 0.300153 -v -1.237000 0.437886 0.578947 -v -1.129690 0.202209 0.825170 -v -1.071810 0.081753 0.940408 -v -0.864304 -0.095589 1.086810 -v -0.808878 -0.108006 0.862693 -v -0.785511 -0.113481 0.744561 -v -1.301330 1.309030 -0.013709 -v -1.288150 1.331120 -0.224217 -v -1.403780 1.253150 0.124680 -v -1.417140 1.199590 0.285955 -v -1.372150 1.077010 0.298650 -v -1.428510 1.249860 0.363487 -v -1.351640 0.730680 0.417285 -v -1.244320 0.569741 0.680281 -v -1.371090 0.959788 0.536405 -v -1.360650 1.219840 0.665852 -v -1.144610 0.348289 0.821948 -v -1.065100 0.150062 0.951618 -v -0.886429 -0.041894 1.134850 -v -0.951259 0.096646 1.220690 -v -1.077680 0.293950 1.020550 -v -1.260920 0.785572 0.842069 -v -1.205980 0.682387 0.998162 -v -1.175680 0.520922 0.896839 -v -1.082510 0.416250 1.082090 -v -1.086010 0.590441 1.157260 -v -0.941793 0.371891 1.296540 -v -0.964148 0.504018 1.389580 -v -0.949137 0.239988 1.242380 -v -1.286810 1.013720 0.965487 -v -1.225430 0.911496 1.117280 -v -1.130180 0.804388 1.263720 -v -0.997671 0.714594 1.469850 -v -1.352830 1.415070 0.762690 -v -1.384060 1.438230 0.638337 -v -1.296410 1.289840 1.082120 -v -1.257880 1.181680 1.267510 -v -1.158700 1.081660 1.421420 -v -1.019550 0.988808 1.650430 -v -1.341190 1.656330 0.806411 -v -1.389580 1.760660 0.867844 -v -1.484250 1.632080 0.642222 -v -1.347490 1.616120 0.871266 -v -1.383600 1.808760 1.025870 -v -1.303420 1.449820 1.148840 -v -1.256240 1.372250 1.340420 -v -1.196870 1.303990 1.524600 -v -1.065900 1.208650 1.713030 -v -0.844796 0.640292 1.682190 -v -1.146210 1.461500 1.746290 -v -1.067970 1.423930 1.772310 -v -1.219040 1.507420 1.661650 -v -1.291480 1.584950 1.514980 -v -1.347950 1.675160 1.340080 -v -1.292020 2.293510 1.742080 -v -1.420380 2.453470 1.475120 -v -1.400210 2.173740 1.276590 -v -1.300410 2.066510 1.595890 -v -1.392070 1.994930 1.179580 -v -1.353710 1.887300 1.475900 -v -1.161070 1.934410 1.775000 -v -1.157430 2.098690 1.982790 -v -1.250400 1.794070 1.692510 -v -1.155300 1.726210 1.778390 -v -1.032680 1.655970 1.835790 -v -1.082280 1.857610 1.861660 -v -0.991261 1.747170 1.862720 -v -0.668830 -0.133086 1.384820 -v -0.605833 -0.237692 1.331600 -v -0.696418 -0.024416 1.423380 -v -0.679076 -0.223769 1.086720 -v -0.681201 -0.189988 0.897274 -v -0.517345 -0.299060 1.422630 -v -0.476360 -0.318326 1.244490 -v -0.472171 -0.319164 1.084520 -v -0.475894 -0.298390 0.931689 -v -0.618100 -0.168267 1.439310 -v -0.532043 -0.188259 1.563740 -v -0.416522 -0.315333 1.583620 -v -0.385661 -0.338703 1.486310 -v -0.297379 -0.368494 1.459970 -v -0.314927 -0.362307 1.352310 -v -0.310459 -0.370836 1.191030 -v -0.325354 -0.370500 1.071870 -v -0.290747 -0.351774 0.892697 -v -0.282196 -0.332769 1.656780 -v -0.259483 -0.362621 1.545810 -v -0.096673 -0.315136 1.717020 -v -0.077760 -0.351505 1.598900 -v 0.000000 -0.307163 1.716780 -v 0.000000 -0.337078 1.603980 -v -0.114170 -0.383655 1.537160 -v 0.000000 -0.375667 1.547440 -v 0.000000 -0.391969 1.438520 -v -0.122677 -0.386415 1.441040 -v 0.000000 -0.391004 1.315190 -v -0.135317 -0.392239 1.310280 -v -0.132397 -0.409716 1.158290 -v 0.000000 -0.407300 1.140260 -v -0.145465 -0.408123 1.028540 -v 0.000000 -0.409347 0.992633 -v -0.152053 -0.370044 0.861140 -v 0.000000 -0.371925 0.821067 -v -0.143397 -0.343689 0.728104 -v 0.000000 -0.357342 0.720637 -v -0.276279 -0.316745 0.701162 -v -0.412154 -0.205409 1.683940 -v -0.291315 -0.209898 1.767570 -v -0.082305 -0.236690 1.770270 -v 0.000000 -0.220695 1.764880 -v -0.133829 -0.186136 1.773570 -v -0.065653 -0.117723 1.807720 -v -0.070935 -0.066474 1.825450 -v 0.000000 -0.045579 1.862470 -v 0.000000 -0.084188 1.832630 -v -0.257796 -0.128864 1.752620 -v -0.238682 -0.059001 1.755530 -v -0.404022 -0.057416 1.674290 -v -0.476644 -0.050701 1.594780 -v -0.552883 -0.047095 1.536380 -v -0.720680 0.102483 1.443240 -v -0.607757 0.091845 1.513090 -v -0.439127 0.053185 1.618930 -v -0.357720 0.057270 1.690590 -v -0.226956 0.072274 1.806520 -v -0.060318 0.073730 1.867360 -v 0.000000 0.080414 1.903300 -v -0.324676 0.127456 1.723340 -v -0.386141 0.220323 1.722300 -v -0.320505 0.141799 1.735790 -v -0.313339 0.209882 1.781010 -v -0.471391 0.225149 1.664460 -v -0.575916 0.238576 1.580050 -v -0.762829 0.246984 1.495240 -v 0.000000 0.170935 1.880760 -v -0.069361 0.164459 1.852260 -v -0.228307 0.154997 1.812360 -v -0.232922 0.168293 1.816180 -v -0.208160 0.220833 1.858250 -v -0.071777 0.180417 1.857890 -v -0.086023 0.243535 1.937800 -v 0.000000 0.186778 1.884070 -v 0.000000 0.248996 1.949030 -v 0.000000 0.284272 2.000520 -v -0.073650 0.277933 1.972740 -v -0.193681 0.263527 1.914400 -v -0.291142 0.266477 1.832640 -v -0.385333 0.280193 1.767300 -v -0.469844 0.312862 1.700040 -v 0.000000 -0.158265 1.773120 -v -0.561159 0.337266 1.690720 -v -0.584340 0.353769 1.689610 -v -0.636702 0.376537 1.671820 -v -0.790274 0.394847 1.584180 -v -0.449321 0.382192 1.738560 -v -0.343124 0.350456 1.820890 -v -0.266822 0.342211 1.911510 -v -0.158775 0.331242 1.974930 -v -0.048600 0.326522 1.987690 -v 0.000000 0.329461 2.020690 -v 0.000000 0.360331 2.013300 -v -0.043045 0.364480 1.993380 -v -0.158212 0.381306 1.951390 -v -0.245268 0.380848 1.900760 -v -0.323899 0.382911 1.813410 -v -0.460064 0.430666 1.719220 -v -0.344289 0.406637 1.838350 -v -0.255007 0.404932 1.888850 -v -0.163628 0.408450 1.947750 -v -0.055541 0.407330 1.965750 -v 0.000000 0.397424 1.979670 -v -0.341215 0.414218 1.842250 -v -0.238620 0.413229 1.880990 -v -0.145206 0.414588 1.947080 -v -0.044394 0.411907 1.967160 -v 0.000000 0.405890 1.975040 -v -0.041735 0.456187 2.014060 -v 0.000000 0.449223 2.046360 -v -0.147160 0.464641 2.001630 -v -0.239029 0.456758 1.916500 -v 0.000000 0.468383 2.078790 -v -0.036770 0.483633 2.077600 -v -0.143092 0.491804 2.049900 -v -0.245183 0.479875 2.009130 -v -0.336416 0.460032 1.919260 -v -0.355035 0.528230 1.975800 -v -0.258464 0.547844 2.041550 -v -0.142186 0.547709 2.091550 -v -0.050051 0.532402 2.144200 -v 0.000000 0.543088 2.148740 -v -0.439771 0.529104 1.876300 -v -0.512286 0.500570 1.830430 -v -0.568693 0.448882 1.789900 -v -0.671436 0.503081 1.745060 -v -0.682462 0.624455 1.810730 -v -0.507632 0.602478 1.874390 -v -0.444401 0.608461 1.914910 -v -0.340154 0.602725 2.000630 -v -0.240880 0.683499 2.070510 -v -0.325949 0.684599 2.026640 -v -0.108692 0.664232 2.098680 -v -0.027575 0.656342 2.150100 -v 0.000000 0.645054 2.156220 -v -0.438461 0.691844 1.983870 -v -0.511163 0.702227 1.932830 -v -0.689729 0.709366 1.860790 -v -0.891639 0.946287 1.846110 -v -0.716621 0.885393 1.914950 -v -0.498711 0.814368 1.963000 -v -0.389916 0.804071 1.971210 -v -0.315485 0.798910 2.040160 -v -0.202297 0.784284 2.081740 -v -0.101304 0.756621 2.102680 -v 0.000000 0.733657 2.141210 -v -0.900515 1.168060 1.855280 -v -0.744744 1.111770 1.937700 -v -0.557360 1.060150 1.999370 -v -0.384455 1.036980 2.017960 -v -0.380896 0.915372 1.960480 -v -0.350573 0.859098 1.972070 -v -0.353165 0.939698 1.987900 -v -0.367133 0.885010 2.009860 -v -0.301454 0.849319 2.016930 -v -0.199972 0.853192 2.031510 -v -0.082569 0.793510 2.122340 -v 0.000000 0.780302 2.164550 -v -0.358499 1.135870 2.037620 -v -0.313961 1.103500 2.124300 -v -0.251755 1.128250 2.250790 -v -0.250109 1.208260 2.229810 -v -0.323421 1.229790 2.152580 -v -0.212153 1.253090 2.310310 -v -0.214941 1.113430 2.316770 -v -0.357993 0.947133 2.009700 -v -0.308167 0.891267 2.099580 -v -0.247574 0.867584 2.074510 -v -0.291854 0.903935 2.126860 -v -0.308845 0.977413 2.145640 -v -0.574497 1.282930 1.940310 -v -0.724999 1.319760 1.889190 -v -0.908878 1.385870 1.836020 -v -0.326531 1.428440 2.164670 -v -0.577303 1.442310 2.013200 -v -0.726249 1.452890 1.930770 -v -0.900317 1.605210 1.870220 -v -0.257015 0.962623 2.219960 -v -0.250845 0.892540 2.227110 -v -0.182226 0.953741 2.371370 -v -0.208692 0.933330 2.285780 -v -0.195555 0.856733 2.343280 -v -0.171110 1.096160 2.405780 -v -0.139966 1.250390 2.417840 -v -0.051121 1.071320 2.469410 -v -0.071682 0.913681 2.486600 -v -0.100151 0.855922 2.444620 -v -0.102183 0.818842 2.433270 -v 0.000000 0.792142 2.449910 -v 0.000000 0.840963 2.492670 -v -0.059178 1.246130 2.463700 -v 0.000000 0.886066 2.498860 -v -0.121931 0.787974 2.314020 -v 0.000000 0.766279 2.367210 -v -0.174241 0.798512 2.303950 -v -0.213937 0.842269 2.215590 -v -0.229106 0.881785 2.146730 -v -0.093307 0.808868 2.228290 -v 0.000000 0.786166 2.264680 -v 0.000000 1.053570 2.468260 -v 0.000000 1.229670 2.477250 -v -0.042104 1.464000 2.473990 -v 0.000000 1.458020 2.487130 -v -0.115906 1.453990 2.403130 -v -0.185694 1.451130 2.339330 -v -0.106878 1.643710 2.419960 -v -0.164299 1.648270 2.357180 -v -0.037208 1.628410 2.478790 -v 0.000000 1.632590 2.493390 -v -0.240430 1.443970 2.255740 -v -0.202382 1.662460 2.251160 -v -0.332835 1.572990 2.174000 -v -0.253130 1.697940 2.196700 -v -0.037269 1.737820 2.438030 -v 0.000000 1.736630 2.457110 -v -0.105125 1.744450 2.385540 -v -0.158929 1.753980 2.331870 -v -0.190782 1.754250 2.261330 -v 0.000000 1.798820 2.481980 -v -0.041248 1.806650 2.452090 -v -0.097157 1.822920 2.416960 -v -0.172705 1.811710 2.356280 -v -0.216690 1.801130 2.302180 -v 0.000000 1.877800 2.552490 -v -0.072641 1.877620 2.537150 -v -0.141212 1.891060 2.463150 -v -0.175663 1.864470 2.419200 -v -0.089632 1.951090 2.575130 -v 0.000000 1.950430 2.577960 -v -0.205103 1.936060 2.501670 -v -0.115729 2.036890 2.610800 -v 0.000000 2.036210 2.622140 -v -0.252663 1.989710 2.539370 -v -0.085173 2.167280 2.647380 -v -0.252006 2.124340 2.626060 -v 0.000000 2.159480 2.640980 -v -0.091552 2.284040 2.652810 -v 0.000000 2.293240 2.639980 -v -0.122377 2.449250 2.671430 -v 0.000000 2.464330 2.680670 -v -0.256576 2.242650 2.659330 -v -0.277904 2.352280 2.638330 -v -0.280946 2.483560 2.690420 -v -1.338810 2.729680 1.686960 -v -1.160740 2.631570 2.028080 -v -1.065750 2.240780 2.276640 -v -1.295540 2.975860 1.876090 -v -1.154180 2.995130 2.188520 -v -1.249170 3.130030 2.062850 -v -1.017870 2.801590 2.307950 -v -1.015220 2.535920 2.280150 -v -0.790139 2.242040 2.551460 -v -0.780496 2.403310 2.560650 -v -0.791082 2.619560 2.551870 -v -0.800991 2.757300 2.609270 -v -1.027720 2.971150 2.358950 -v -1.109560 3.179230 2.324380 -v -1.228710 3.220820 2.196590 -v -1.043430 3.136330 2.441580 -v -0.781910 3.122770 2.650590 -v -0.789318 2.959370 2.657880 -v -0.446992 2.315500 2.667020 -v -0.568644 2.185580 2.607600 -v -0.522196 2.517120 2.682310 -v -0.586157 2.743110 2.692680 -v -0.602808 2.919160 2.693570 -v -0.603620 3.150900 2.688750 -v -0.799644 3.349260 2.564250 -v -0.585669 3.349910 2.649700 -v -1.062350 3.349830 2.391930 -v -0.422407 2.216430 2.612500 -v -0.391108 2.079320 2.559520 -v -0.346132 2.728440 2.675420 -v -0.180790 2.723130 2.728600 -v 0.000000 2.710170 2.727390 -v -0.389971 2.934710 2.670120 -v -0.405038 3.159280 2.711480 -v -0.384682 3.356130 2.689160 -v -0.814242 3.416640 2.460570 -v -0.605427 3.436730 2.625400 -v -0.377767 3.416680 2.699480 -v -0.211126 2.919880 2.740860 -v 0.000000 2.910910 2.767900 -v -0.197682 3.162690 2.774020 -v 0.000000 3.144180 2.752770 -v -0.200928 3.325560 2.708730 -v 0.000000 3.326770 2.713900 -v -0.191664 3.352130 2.742180 -v 0.000000 3.401890 2.677040 -v -0.208998 1.854240 2.366980 -v -0.229374 1.759780 2.204760 -v -0.246421 1.801440 2.229940 -v -0.241221 1.860710 2.361540 -v -0.231208 1.908200 2.470480 -v -0.290521 1.948550 2.542590 -v -0.302358 1.896070 2.416180 -v -0.407271 1.991890 2.515720 -v -0.599913 2.066900 2.561940 -v -0.818046 2.102400 2.491980 -v -1.070200 2.131120 2.231780 -v -1.126450 2.071560 1.968110 -v -0.307572 1.872320 2.361670 -v -0.475958 1.930650 2.426880 -v -0.446881 1.905960 2.506280 -v -0.780522 2.033020 2.339350 -v -0.807406 2.027690 2.422030 -v -1.015580 2.067000 2.215930 -v -0.641413 1.975450 2.479290 -v -0.620493 2.011650 2.394590 -v -0.629815 1.956980 2.395600 -v -0.760623 1.981490 2.329840 -v -0.944004 1.965180 2.203410 -v -1.094900 2.041010 1.980760 -v -1.040670 1.945300 2.026940 -v -0.463554 1.897020 2.396540 -v -0.609915 1.901720 2.358040 -v -0.726872 1.912960 2.337280 -v -0.907400 1.883050 2.198460 -v -1.004430 1.870950 2.022640 -v -1.005850 1.818500 1.898240 -v -0.285824 1.747610 2.214400 -v -0.328278 1.863980 2.301020 -v -0.333298 1.800980 2.196620 -v -0.831780 1.666180 1.958780 -v -0.898667 1.795490 1.943100 -v -0.703251 1.604550 2.013350 -v -0.564198 1.582560 2.064260 -v -0.383179 1.640270 2.168660 -v -0.915714 1.837150 1.968280 -v -0.893380 1.850760 1.991170 -v -0.866850 1.875440 2.160580 -v -0.708905 1.891690 2.276660 -v -0.592987 1.899010 2.291460 -v -0.463218 1.893060 2.312850 -v -0.377943 1.841380 2.221560 -v -0.514841 1.864910 2.234810 -v -0.580052 1.863720 2.233140 -v -0.675458 1.862440 2.223290 -v -0.784839 1.848390 2.147630 -v -0.853135 1.815020 1.987910 -v -0.723749 1.742290 2.068500 -v -0.576331 1.718730 2.132130 -v -0.426383 1.724860 2.150670 -v -1.516680 1.232530 0.172000 -v -1.555220 1.277520 0.221274 -v -1.680120 1.420700 0.135408 -v -1.697720 1.391360 0.061103 -v -1.765080 1.567610 0.096612 -v -1.770470 1.547580 0.014896 -v -1.683400 1.622780 0.120248 -v -1.763540 1.690840 0.209278 -v -1.623390 1.500220 0.141284 -v -1.540010 1.379850 0.211439 -v -1.426870 1.333610 0.370559 -v -1.595580 1.533600 0.190428 -v -1.667350 1.639440 0.175785 -v -1.521430 1.461090 0.243872 -v -1.470070 1.493240 0.369380 -v -1.653510 1.657960 0.269810 -v -1.702170 1.691210 0.287679 -v -1.600080 1.577410 0.262643 -v -1.539740 1.557420 0.265791 -v -1.530220 1.576600 0.297969 -v -1.620930 1.647770 0.357712 -v -1.604820 1.692020 0.267614 -v -1.584260 1.546140 -0.121393 -v -1.568120 1.452310 -0.160167 -v -1.347180 1.435080 -0.164662 -v -1.422740 1.573020 -0.136412 -v -1.408440 1.438590 -0.048195 -v -1.391820 1.301760 0.001039 -v -1.446990 1.306250 0.057701 -v -1.418000 1.564940 -0.075583 -v -0.111949 0.905611 2.245480 -v -0.134010 0.910055 2.241230 -v -0.095349 0.907946 2.164640 -v -0.099877 0.914423 2.209320 -v -0.144862 0.933115 2.126330 -v -0.164937 0.939185 2.144470 -v -0.150751 0.928509 2.203970 -v -0.157148 0.945174 2.174930 -v 0.096537 -0.571215 0.609019 -v 0.093362 -0.478222 0.606843 -v 0.224965 -0.434611 0.626931 -v 1.313160 0.598818 -0.121402 -v 1.237960 0.865933 -0.239116 -v 1.199660 0.612319 -0.114440 -v 1.142100 0.357713 0.080797 -v 1.265390 0.325109 -0.014263 -v 0.992640 0.087790 0.368875 -v 1.172170 0.003799 0.288578 -v 0.958007 0.004663 0.540421 -v 1.038910 -0.054216 0.599331 -v 1.303610 1.165410 -0.035682 -v 1.269260 1.255200 -0.337076 -v 1.256730 0.831771 0.001709 -v 1.246660 0.626933 0.095034 -v 1.181300 0.382558 0.276478 -v 0.997234 0.135594 0.524613 -v 0.968603 0.047490 0.672441 -v 1.313170 0.827262 0.178592 -v 1.360370 1.129340 0.147805 -v 1.321880 0.686917 0.300153 -v 1.237000 0.437886 0.578947 -v 1.129690 0.202209 0.825170 -v 1.071810 0.081753 0.940408 -v 0.808878 -0.108006 0.862693 -v 0.864304 -0.095589 1.086810 -v 0.785511 -0.113481 0.744561 -v 1.288150 1.331120 -0.224217 -v 1.301330 1.309030 -0.013709 -v 1.403780 1.253150 0.124680 -v 1.372150 1.077010 0.298650 -v 1.417140 1.199590 0.285955 -v 1.428510 1.249860 0.363487 -v 1.351640 0.730680 0.417285 -v 1.244320 0.569741 0.680281 -v 1.371090 0.959788 0.536405 -v 1.360650 1.219840 0.665852 -v 1.144610 0.348289 0.821948 -v 1.065100 0.150062 0.951618 -v 0.886429 -0.041894 1.134850 -v 0.951259 0.096646 1.220690 -v 1.077680 0.293950 1.020550 -v 1.260920 0.785572 0.842069 -v 1.175680 0.520922 0.896839 -v 1.205980 0.682387 0.998162 -v 1.082510 0.416250 1.082090 -v 1.086010 0.590441 1.157260 -v 0.964148 0.504018 1.389580 -v 0.941793 0.371891 1.296540 -v 0.949137 0.239988 1.242380 -v 1.286810 1.013720 0.965487 -v 1.225430 0.911496 1.117280 -v 1.130180 0.804388 1.263720 -v 0.997671 0.714594 1.469850 -v 1.384060 1.438230 0.638337 -v 1.352830 1.415070 0.762690 -v 1.296410 1.289840 1.082120 -v 1.257880 1.181680 1.267510 -v 1.158700 1.081660 1.421420 -v 1.019550 0.988808 1.650430 -v 1.484250 1.632080 0.642222 -v 1.389580 1.760660 0.867844 -v 1.341190 1.656330 0.806411 -v 1.347490 1.616120 0.871266 -v 1.383600 1.808760 1.025870 -v 1.303420 1.449820 1.148840 -v 1.256240 1.372250 1.340420 -v 1.196870 1.303990 1.524600 -v 1.065900 1.208650 1.713030 -v 0.844796 0.640292 1.682190 -v 1.067970 1.423930 1.772310 -v 1.146210 1.461500 1.746290 -v 1.219040 1.507420 1.661650 -v 1.291480 1.584950 1.514980 -v 1.347950 1.675160 1.340080 -v 1.300410 2.066510 1.595890 -v 1.400210 2.173740 1.276590 -v 1.420380 2.453470 1.475120 -v 1.292020 2.293510 1.742080 -v 1.353710 1.887300 1.475900 -v 1.392070 1.994930 1.179580 -v 1.161070 1.934410 1.775000 -v 1.157430 2.098690 1.982790 -v 1.250400 1.794070 1.692510 -v 1.155300 1.726210 1.778390 -v 1.032680 1.655970 1.835790 -v 1.082280 1.857610 1.861660 -v 0.991261 1.747170 1.862720 -v 0.605833 -0.237692 1.331600 -v 0.668830 -0.133086 1.384820 -v 0.696418 -0.024416 1.423380 -v 0.679076 -0.223769 1.086720 -v 0.681201 -0.189988 0.897274 -v 0.476360 -0.318326 1.244490 -v 0.517345 -0.299060 1.422630 -v 0.472171 -0.319164 1.084520 -v 0.475894 -0.298390 0.931689 -v 0.618100 -0.168267 1.439310 -v 0.532043 -0.188259 1.563740 -v 0.385661 -0.338703 1.486310 -v 0.416522 -0.315333 1.583620 -v 0.314927 -0.362307 1.352310 -v 0.297379 -0.368494 1.459970 -v 0.310459 -0.370836 1.191030 -v 0.325354 -0.370500 1.071870 -v 0.290747 -0.351774 0.892697 -v 0.259483 -0.362621 1.545810 -v 0.282196 -0.332769 1.656780 -v 0.077760 -0.351505 1.598900 -v 0.096673 -0.315136 1.717020 -v 0.114170 -0.383655 1.537160 -v 0.122677 -0.386415 1.441040 -v 0.135317 -0.392239 1.310280 -v 0.132397 -0.409716 1.158290 -v 0.145465 -0.408123 1.028540 -v 0.152053 -0.370044 0.861140 -v 0.143397 -0.343689 0.728104 -v 0.276279 -0.316745 0.701162 -v 0.412154 -0.205409 1.683940 -v 0.291315 -0.209898 1.767570 -v 0.133829 -0.186136 1.773570 -v 0.082305 -0.236690 1.770270 -v 0.257796 -0.128864 1.752620 -v 0.065653 -0.117723 1.807720 -v 0.070935 -0.066474 1.825450 -v 0.238682 -0.059001 1.755530 -v 0.404022 -0.057416 1.674290 -v 0.476644 -0.050701 1.594780 -v 0.552883 -0.047095 1.536380 -v 0.720680 0.102483 1.443240 -v 0.607757 0.091845 1.513090 -v 0.439127 0.053185 1.618930 -v 0.357720 0.057270 1.690590 -v 0.226956 0.072274 1.806520 -v 0.060318 0.073730 1.867360 -v 0.324676 0.127456 1.723340 -v 0.313339 0.209882 1.781010 -v 0.320505 0.141799 1.735790 -v 0.386141 0.220323 1.722300 -v 0.471391 0.225149 1.664460 -v 0.575916 0.238576 1.580050 -v 0.762829 0.246984 1.495240 -v 0.069361 0.164459 1.852260 -v 0.228307 0.154997 1.812360 -v 0.208160 0.220833 1.858250 -v 0.232922 0.168293 1.816180 -v 0.086023 0.243535 1.937800 -v 0.071777 0.180417 1.857890 -v 0.073650 0.277933 1.972740 -v 0.193681 0.263527 1.914400 -v 0.291142 0.266477 1.832640 -v 0.385333 0.280193 1.767300 -v 0.469844 0.312862 1.700040 -v 0.561159 0.337266 1.690720 -v 0.636702 0.376537 1.671820 -v 0.584340 0.353769 1.689610 -v 0.790274 0.394847 1.584180 -v 0.343124 0.350456 1.820890 -v 0.449321 0.382192 1.738560 -v 0.266822 0.342211 1.911510 -v 0.158775 0.331242 1.974930 -v 0.048600 0.326522 1.987690 -v 0.043045 0.364480 1.993380 -v 0.158212 0.381306 1.951390 -v 0.245268 0.380848 1.900760 -v 0.323899 0.382911 1.813410 -v 0.460064 0.430666 1.719220 -v 0.344289 0.406637 1.838350 -v 0.255007 0.404932 1.888850 -v 0.163628 0.408450 1.947750 -v 0.055541 0.407330 1.965750 -v 0.341215 0.414218 1.842250 -v 0.238620 0.413229 1.880990 -v 0.145206 0.414588 1.947080 -v 0.044394 0.411907 1.967160 -v 0.041735 0.456187 2.014060 -v 0.147160 0.464641 2.001630 -v 0.239029 0.456758 1.916500 -v 0.036770 0.483633 2.077600 -v 0.143092 0.491804 2.049900 -v 0.245183 0.479875 2.009130 -v 0.336416 0.460032 1.919260 -v 0.355035 0.528230 1.975800 -v 0.258464 0.547844 2.041550 -v 0.142186 0.547709 2.091550 -v 0.050051 0.532402 2.144200 -v 0.439771 0.529104 1.876300 -v 0.512286 0.500570 1.830430 -v 0.568693 0.448882 1.789900 -v 0.671436 0.503081 1.745060 -v 0.682462 0.624455 1.810730 -v 0.507632 0.602478 1.874390 -v 0.444401 0.608461 1.914910 -v 0.340154 0.602725 2.000630 -v 0.325949 0.684599 2.026640 -v 0.240880 0.683499 2.070510 -v 0.108692 0.664232 2.098680 -v 0.027575 0.656342 2.150100 -v 0.438461 0.691844 1.983870 -v 0.511163 0.702227 1.932830 -v 0.689729 0.709366 1.860790 -v 0.891639 0.946287 1.846110 -v 0.716621 0.885393 1.914950 -v 0.498711 0.814368 1.963000 -v 0.389916 0.804071 1.971210 -v 0.315485 0.798910 2.040160 -v 0.202297 0.784284 2.081740 -v 0.101304 0.756621 2.102680 -v 0.900515 1.168060 1.855280 -v 0.744744 1.111770 1.937700 -v 0.557360 1.060150 1.999370 -v 0.380896 0.915372 1.960480 -v 0.384455 1.036980 2.017960 -v 0.350573 0.859098 1.972070 -v 0.367133 0.885010 2.009860 -v 0.353165 0.939698 1.987900 -v 0.301454 0.849319 2.016930 -v 0.199972 0.853192 2.031510 -v 0.082569 0.793510 2.122340 -v 0.313961 1.103500 2.124300 -v 0.358499 1.135870 2.037620 -v 0.250109 1.208260 2.229810 -v 0.251755 1.128250 2.250790 -v 0.323421 1.229790 2.152580 -v 0.212153 1.253090 2.310310 -v 0.214941 1.113430 2.316770 -v 0.357993 0.947133 2.009700 -v 0.308167 0.891267 2.099580 -v 0.247574 0.867584 2.074510 -v 0.308845 0.977413 2.145640 -v 0.291854 0.903935 2.126860 -v 0.574497 1.282930 1.940310 -v 0.724999 1.319760 1.889190 -v 0.908878 1.385870 1.836020 -v 0.577303 1.442310 2.013200 -v 0.326531 1.428440 2.164670 -v 0.726249 1.452890 1.930770 -v 0.900317 1.605210 1.870220 -v 0.257015 0.962623 2.219960 -v 0.250845 0.892540 2.227110 -v 0.195555 0.856733 2.343280 -v 0.208692 0.933330 2.285780 -v 0.182226 0.953741 2.371370 -v 0.171110 1.096160 2.405780 -v 0.139966 1.250390 2.417840 -v 0.071682 0.913681 2.486600 -v 0.051121 1.071320 2.469410 -v 0.100151 0.855922 2.444620 -v 0.102183 0.818842 2.433270 -v 0.059178 1.246130 2.463700 -v 0.121931 0.787974 2.314020 -v 0.174241 0.798512 2.303950 -v 0.213937 0.842269 2.215590 -v 0.229106 0.881785 2.146730 -v 0.093307 0.808868 2.228290 -v 0.042104 1.464000 2.473990 -v 0.115906 1.453990 2.403130 -v 0.185694 1.451130 2.339330 -v 0.164299 1.648270 2.357180 -v 0.106878 1.643710 2.419960 -v 0.037208 1.628410 2.478790 -v 0.240430 1.443970 2.255740 -v 0.202382 1.662460 2.251160 -v 0.332835 1.572990 2.174000 -v 0.253130 1.697940 2.196700 -v 0.037269 1.737820 2.438030 -v 0.105125 1.744450 2.385540 -v 0.158929 1.753980 2.331870 -v 0.190782 1.754250 2.261330 -v 0.041248 1.806650 2.452090 -v 0.097157 1.822920 2.416960 -v 0.172705 1.811710 2.356280 -v 0.216690 1.801130 2.302180 -v 0.072641 1.877620 2.537150 -v 0.141212 1.891060 2.463150 -v 0.175663 1.864470 2.419200 -v 0.089632 1.951090 2.575130 -v 0.205103 1.936060 2.501670 -v 0.115729 2.036890 2.610800 -v 0.252006 2.124340 2.626060 -v 0.085173 2.167280 2.647380 -v 0.252663 1.989710 2.539370 -v 0.091552 2.284040 2.652810 -v 0.122377 2.449250 2.671430 -v 0.256576 2.242650 2.659330 -v 0.277904 2.352280 2.638330 -v 0.280946 2.483560 2.690420 -v 1.338810 2.729680 1.686960 -v 1.160740 2.631570 2.028080 -v 1.065750 2.240780 2.276640 -v 1.295540 2.975860 1.876090 -v 1.249170 3.130030 2.062850 -v 1.154180 2.995130 2.188520 -v 1.015220 2.535920 2.280150 -v 1.017870 2.801590 2.307950 -v 0.780496 2.403310 2.560650 -v 0.790139 2.242040 2.551460 -v 0.791082 2.619560 2.551870 -v 0.800991 2.757300 2.609270 -v 1.027720 2.971150 2.358950 -v 1.228710 3.220820 2.196590 -v 1.109560 3.179230 2.324380 -v 1.043430 3.136330 2.441580 -v 0.789318 2.959370 2.657880 -v 0.781910 3.122770 2.650590 -v 0.568644 2.185580 2.607600 -v 0.446992 2.315500 2.667020 -v 0.522196 2.517120 2.682310 -v 0.586157 2.743110 2.692680 -v 0.602808 2.919160 2.693570 -v 0.603620 3.150900 2.688750 -v 0.585669 3.349910 2.649700 -v 0.799644 3.349260 2.564250 -v 1.062350 3.349830 2.391930 -v 0.422407 2.216430 2.612500 -v 0.391108 2.079320 2.559520 -v 0.346132 2.728440 2.675420 -v 0.180790 2.723130 2.728600 -v 0.389971 2.934710 2.670120 -v 0.405038 3.159280 2.711480 -v 0.384682 3.356130 2.689160 -v 0.814242 3.416640 2.460570 -v 0.605427 3.436730 2.625400 -v 0.377767 3.416680 2.699480 -v 0.211126 2.919880 2.740860 -v 0.197682 3.162690 2.774020 -v 0.200928 3.325560 2.708730 -v 0.191664 3.352130 2.742180 -v 0.208998 1.854240 2.366980 -v 0.229374 1.759780 2.204760 -v 0.246421 1.801440 2.229940 -v 0.241221 1.860710 2.361540 -v 0.231208 1.908200 2.470480 -v 0.290521 1.948550 2.542590 -v 0.302358 1.896070 2.416180 -v 0.407271 1.991890 2.515720 -v 0.599913 2.066900 2.561940 -v 0.818046 2.102400 2.491980 -v 1.070200 2.131120 2.231780 -v 1.126450 2.071560 1.968110 -v 0.307572 1.872320 2.361670 -v 0.475958 1.930650 2.426880 -v 0.446881 1.905960 2.506280 -v 1.015580 2.067000 2.215930 -v 0.807406 2.027690 2.422030 -v 0.780522 2.033020 2.339350 -v 0.620493 2.011650 2.394590 -v 0.641413 1.975450 2.479290 -v 0.629815 1.956980 2.395600 -v 0.760623 1.981490 2.329840 -v 0.944004 1.965180 2.203410 -v 1.040670 1.945300 2.026940 -v 1.094900 2.041010 1.980760 -v 0.609915 1.901720 2.358040 -v 0.463554 1.897020 2.396540 -v 0.726872 1.912960 2.337280 -v 0.907400 1.883050 2.198460 -v 1.004430 1.870950 2.022640 -v 1.005850 1.818500 1.898240 -v 0.285824 1.747610 2.214400 -v 0.328278 1.863980 2.301020 -v 0.333298 1.800980 2.196620 -v 0.898667 1.795490 1.943100 -v 0.831780 1.666180 1.958780 -v 0.703251 1.604550 2.013350 -v 0.564198 1.582560 2.064260 -v 0.383179 1.640270 2.168660 -v 0.915714 1.837150 1.968280 -v 0.893380 1.850760 1.991170 -v 0.866850 1.875440 2.160580 -v 0.708905 1.891690 2.276660 -v 0.592987 1.899010 2.291460 -v 0.463218 1.893060 2.312850 -v 0.377943 1.841380 2.221560 -v 0.514841 1.864910 2.234810 -v 0.580052 1.863720 2.233140 -v 0.675458 1.862440 2.223290 -v 0.784839 1.848390 2.147630 -v 0.853135 1.815020 1.987910 -v 0.723749 1.742290 2.068500 -v 0.576331 1.718730 2.132130 -v 0.426383 1.724860 2.150670 -v 1.555220 1.277520 0.221274 -v 1.516680 1.232530 0.172000 -v 1.697720 1.391360 0.061103 -v 1.680120 1.420700 0.135408 -v 1.770470 1.547580 0.014896 -v 1.765080 1.567610 0.096612 -v 1.763540 1.690840 0.209278 -v 1.683400 1.622780 0.120248 -v 1.623390 1.500220 0.141284 -v 1.540010 1.379850 0.211439 -v 1.426870 1.333610 0.370559 -v 1.667350 1.639440 0.175785 -v 1.595580 1.533600 0.190428 -v 1.521430 1.461090 0.243872 -v 1.470070 1.493240 0.369380 -v 1.702170 1.691210 0.287679 -v 1.653510 1.657960 0.269810 -v 1.600080 1.577410 0.262643 -v 1.539740 1.557420 0.265791 -v 1.530220 1.576600 0.297969 -v 1.620930 1.647770 0.357712 -v 1.604820 1.692020 0.267614 -v 1.568120 1.452310 -0.160167 -v 1.584260 1.546140 -0.121393 -v 1.422740 1.573020 -0.136412 -v 1.347180 1.435080 -0.164662 -v 1.391820 1.301760 0.001039 -v 1.408440 1.438590 -0.048195 -v 1.446990 1.306250 0.057701 -v 1.418000 1.564940 -0.075583 -v 0.157148 0.945174 2.174930 -v 0.150751 0.928509 2.203970 -v 0.144862 0.933115 2.126330 -v 0.164937 0.939185 2.144470 -v 0.095349 0.907946 2.164640 -v 0.099877 0.914423 2.209320 -v 0.111949 0.905611 2.245480 -v 0.134010 0.910055 2.241230 -vn 0.332949 -0.705421 0.625720 -vn -0.260047 -0.789584 0.555817 -vn 0.532304 -0.547688 0.645515 -vn -0.440163 0.835449 -0.329062 -vn 0.471369 -0.780150 0.411312 -vn -0.327196 0.807469 0.490853 -vn 0.440163 -0.835448 0.329064 -vn -0.922405 -0.239534 0.302973 -vn 0.574315 0.804608 -0.150892 -vn 0.880972 -0.472727 0.020456 -vn -0.332949 -0.705421 0.625720 -vn 0.260047 -0.789584 0.555817 -vn -0.532304 -0.547688 0.645515 -vn 0.440163 0.835449 -0.329062 -vn -0.471369 -0.780150 0.411312 -vn 0.327196 0.807469 0.490853 -vn -0.440163 -0.835448 0.329064 -vn 0.922405 -0.239534 0.302973 -vn -0.574315 0.804608 -0.150892 -vn -0.880972 -0.472727 0.020456 -vn 0.096987 -0.993719 0.055816 -vn -0.676183 -0.320676 0.663282 -vn -0.096987 -0.993719 0.055818 -vn 0.676184 -0.320676 0.663282 -vn -0.939601 -0.296607 0.170803 -vn -0.672056 0.082543 0.735886 -vn -0.355352 0.041895 0.933793 -vn 0.592319 -0.120476 0.796645 -vn 0.705290 -0.153974 0.691996 -vn 0.394027 -0.066319 0.916703 -vn 0.287416 -0.062043 0.955794 -vn 0.133377 -0.051606 0.989721 -vn 0.011289 -0.026583 0.999583 -vn 0.403044 -0.127509 0.906254 -vn 0.483554 -0.241174 0.841434 -vn 0.759763 -0.555162 0.338461 -vn -0.630798 0.239138 0.738178 -vn -0.909154 0.166336 0.381801 -vn -0.987974 0.139405 0.066883 -vn -0.881686 0.108986 0.459077 -vn -0.868909 0.106364 0.483408 -vn 0.697988 -0.592670 -0.401939 -vn 0.502056 -0.425307 -0.753030 -vn 0.000000 0.081285 -0.996691 -vn 0.000000 -0.273743 -0.961803 -vn 0.000000 0.289750 -0.957102 -vn 0.000000 0.459618 -0.888117 -vn 0.000000 0.764240 -0.644932 -vn 0.000000 0.898676 -0.438614 -vn 0.000000 0.944688 -0.327972 -vn 0.200513 -0.221996 -0.954208 -vn 0.602386 0.213580 0.769100 -vn 0.518785 0.283933 0.806377 -vn 0.574210 0.261001 0.775991 -vn 0.648485 0.210243 0.731618 -vn 0.582966 0.189917 0.789989 -vn 0.657902 0.149876 0.738039 -vn 0.576627 0.140213 0.804886 -vn 0.655242 0.120524 0.745742 -vn 0.548586 0.085622 0.831699 -vn 0.623644 0.065462 0.778963 -vn 0.302198 0.055408 0.951634 -vn 0.589216 -0.022250 0.807669 -vn 0.178633 0.016982 0.983769 -vn 0.602782 -0.103612 0.791150 -vn 0.003301 -0.017352 0.999844 -vn 0.638096 -0.174661 0.749885 -vn -0.624887 0.112438 0.772576 -vn -0.583184 0.172695 0.793772 -vn -0.662041 0.212324 0.718763 -vn -0.514252 0.297546 0.804370 -vn 0.581346 0.184565 0.792447 -vn 0.527918 0.212525 0.822275 -vn 0.270288 0.273170 0.923213 -vn 0.227464 0.248221 0.941619 -vn 0.074044 0.366548 0.927448 -vn 0.070724 0.317242 0.945704 -vn 0.113155 0.341724 0.932963 -vn 0.021131 0.358451 0.933309 -vn 0.174841 0.291507 0.940454 -vn 0.207586 0.210474 0.955305 -vn -0.015614 0.337833 0.941076 -vn 0.649281 0.137389 0.748036 -vn 0.521131 0.092430 0.848457 -vn 0.658302 0.126354 0.742073 -vn 0.698391 0.096456 0.709187 -vn -0.007617 0.378960 0.925382 -vn 0.071756 0.279278 0.957525 -vn 0.148503 0.228260 0.962208 -vn 0.084036 0.432319 0.897796 -vn 0.037269 0.462611 0.885778 -vn 0.085702 0.358906 0.929431 -vn 0.092997 0.423873 0.900935 -vn 0.578345 0.189784 0.793410 -vn 0.503826 0.169966 0.846918 -vn 0.653025 0.152927 0.741735 -vn 0.537542 0.259210 0.802408 -vn 0.175271 0.485911 0.856254 -vn 0.480349 0.346259 0.805835 -vn 0.243788 0.307629 0.919745 -vn 0.333496 0.475182 0.814238 -vn 0.306370 0.434431 0.846999 -vn 0.275085 0.360708 0.891189 -vn 0.291053 0.279260 0.915042 -vn 0.079687 0.186105 0.979293 -vn 0.077906 0.124928 0.989103 -vn 0.319400 0.172440 0.931798 -vn 0.595356 0.092896 0.798073 -vn 0.546608 -0.021804 0.837105 -vn 0.551343 -0.124465 0.824942 -vn 0.575099 -0.164672 0.801339 -vn 0.343682 -0.092859 0.934484 -vn 0.283986 -0.071210 0.956180 -vn 0.290856 0.047039 0.955610 -vn 0.098141 0.082151 0.991776 -vn 0.064815 0.044293 0.996914 -vn 0.100796 -0.023640 0.994626 -vn 0.074774 -0.024916 0.996889 -vn 0.166430 -0.069780 0.983581 -vn 0.073847 -0.072652 0.994620 -vn 0.445449 0.351574 0.823390 -vn 0.548867 0.270792 0.790833 -vn 0.605772 0.186708 0.773421 -vn 0.443076 0.285121 0.849935 -vn 0.549052 0.445335 0.707261 -vn 0.413496 0.414990 0.810435 -vn 0.436072 0.437467 0.786425 -vn 0.340697 0.455336 0.822554 -vn -0.121934 -0.295562 0.947510 -vn -0.195797 -0.351663 0.915421 -vn -0.031391 -0.427943 0.903260 -vn 0.251222 -0.524346 0.813602 -vn 0.449781 0.446229 0.773677 -vn 0.602904 -0.515127 0.609221 -vn 0.857528 -0.284734 0.428453 -vn 0.432131 0.415593 0.800341 -vn 0.416336 0.359925 0.834936 -vn 0.903724 -0.121910 0.410391 -vn 0.333786 0.391667 0.857429 -vn 0.403423 0.497640 0.767857 -vn 0.413539 0.418225 0.808748 -vn 0.467588 0.370380 0.802608 -vn 0.627609 0.502314 0.594801 -vn 0.693293 0.348298 0.630898 -vn 0.723581 0.273386 0.633790 -vn 0.600324 0.220819 0.768667 -vn 0.428859 0.599311 0.675949 -vn 0.404483 0.632677 0.660389 -vn 0.241671 0.174188 0.954596 -vn 0.268367 0.223146 0.937115 -vn 0.137882 0.077206 0.987435 -vn 0.073427 0.011380 0.997236 -vn 0.066278 -0.028333 0.997399 -vn 0.026416 -0.059801 0.997861 -vn 0.402357 0.496327 0.769265 -vn 0.949941 0.094642 0.297750 -vn 0.516046 0.438872 0.735587 -vn 0.580118 0.489634 0.650939 -vn 0.986210 0.160836 -0.039000 -vn 0.654373 0.593785 0.468204 -vn 0.693446 0.650831 0.309115 -vn 0.693484 0.709322 0.126266 -vn 0.739462 0.638881 0.212199 -vn 0.924673 0.064474 -0.375265 -vn 0.668375 0.733729 0.122133 -vn 0.772927 0.632876 0.045294 -vn 0.890443 0.172735 -0.421039 -vn 0.742605 0.662379 -0.098960 -vn 0.839209 0.381341 -0.387694 -vn 0.653531 0.756515 -0.024128 -vn 0.801970 0.591140 -0.086016 -vn 0.771021 0.577440 -0.268496 -vn 0.800345 0.591484 -0.097949 -vn 0.829800 0.557718 0.019575 -vn 0.777953 0.266323 0.569089 -vn 0.838833 0.407129 0.361393 -vn 0.747375 0.266674 0.608536 -vn 0.812027 0.222115 0.539700 -vn 0.809816 0.579091 -0.094084 -vn 0.747960 0.573313 -0.334466 -vn 0.729200 0.682344 0.051709 -vn 0.751051 0.648506 0.123946 -vn 0.809553 0.449405 0.377703 -vn 0.798346 0.279899 0.533198 -vn 0.591526 0.786790 0.176235 -vn 0.520694 0.818933 0.241303 -vn 0.545418 0.819952 0.173777 -vn 0.516019 0.787254 0.337573 -vn 0.477368 0.633843 0.608575 -vn 0.427488 0.496537 0.755451 -vn 0.776200 0.229312 0.587307 -vn 0.809287 0.154015 0.566863 -vn 0.400767 0.415315 0.816639 -vn 0.416198 0.371368 0.829979 -vn 0.642333 0.082771 0.761943 -vn 0.469891 0.445664 0.761962 -vn 0.700191 0.419308 0.577852 -vn 0.604433 0.651239 0.458855 -vn 0.496230 0.667044 0.555704 -vn 0.518102 0.625584 0.583279 -vn 0.568506 0.365915 0.736822 -vn 0.452971 -0.021158 0.891274 -vn 0.449302 -0.007126 0.893352 -vn 0.460345 0.002674 0.887736 -vn 0.447709 -0.051573 0.892691 -vn 0.425665 -0.096364 0.899735 -vn 0.410701 -0.075548 0.908635 -vn 0.506335 -0.026854 0.861918 -vn 0.541817 0.061001 0.838280 -vn 0.554974 0.173119 0.813655 -vn 0.606292 0.103491 0.788479 -vn 0.404823 -0.048978 0.913083 -vn 0.492288 -0.027548 0.869996 -vn 0.491358 -0.022101 0.870677 -vn 0.483934 -0.065043 0.872684 -vn 0.470505 -0.095908 0.877170 -vn 0.468701 -0.116106 0.875693 -vn 0.583549 0.282527 0.761347 -vn 0.213775 0.658841 0.721269 -vn 0.506827 0.459824 0.729170 -vn 0.494828 0.286137 0.820531 -vn -0.010535 0.551231 0.834286 -vn 0.062663 0.213471 0.974938 -vn -0.165120 0.545670 0.821572 -vn 0.153462 0.725558 0.670831 -vn 0.500488 0.511510 0.698476 -vn 0.608014 0.128125 0.783520 -vn 0.321675 -0.108302 0.940636 -vn -0.120314 0.103516 0.987324 -vn 0.247188 0.537758 0.806048 -vn 0.374128 0.432952 0.820110 -vn 0.156908 0.456295 0.875885 -vn 0.168941 0.292593 0.941195 -vn 0.335480 0.253231 0.907374 -vn 0.444862 0.305537 0.841870 -vn 0.323026 0.370636 0.870795 -vn 0.474345 0.809620 0.345705 -vn 0.829394 0.553534 0.075540 -vn 0.436288 0.721510 0.537659 -vn 0.375898 0.598493 0.707465 -vn 0.320930 0.452886 0.831804 -vn 0.755328 0.483434 0.442459 -vn 0.436894 0.441323 0.783810 -vn 0.298031 0.319168 0.899616 -vn 0.364277 0.203223 0.908847 -vn 0.571431 -0.012155 0.820560 -vn 0.780122 -0.083273 0.620061 -vn 0.328764 0.253859 0.909654 -vn 0.327258 0.097229 0.939920 -vn 0.382594 -0.093835 0.919139 -vn 0.832774 -0.376269 0.406090 -vn 0.859009 -0.376217 0.347223 -vn 0.896604 -0.232388 0.376957 -vn 0.917818 -0.072919 0.390247 -vn 0.937726 0.091499 0.335108 -vn 0.724000 -0.096170 0.683064 -vn 0.685200 -0.104080 0.720880 -vn 0.651068 -0.147306 0.744588 -vn 0.629368 -0.180769 0.755790 -vn 0.633565 -0.196288 0.748375 -vn 0.652072 -0.273790 0.706995 -vn 0.897256 -0.379094 0.226318 -vn 0.843247 -0.454665 0.286730 -vn 0.816272 -0.548726 0.180552 -vn 0.788794 -0.598870 0.138414 -vn 0.858618 -0.263514 -0.439699 -vn 0.950752 0.307872 0.035844 -vn 0.930675 0.357309 0.078581 -vn 0.935591 0.327946 0.130844 -vn 0.922134 0.361440 0.137947 -vn 0.620249 0.480142 0.620286 -vn 0.660931 0.493747 0.565140 -vn 0.687403 0.458399 0.563337 -vn 0.901677 0.351337 0.252073 -vn 0.888387 0.389753 0.242614 -vn 0.808058 0.406371 0.426502 -vn 0.827315 0.348580 0.440501 -vn 0.633442 0.428809 0.644107 -vn 0.515068 0.462280 0.721805 -vn 0.684726 0.326895 0.651376 -vn 0.419711 0.361219 0.832685 -vn 0.561359 0.201082 0.802772 -vn 0.466082 0.103907 0.878619 -vn 0.218659 0.331612 0.917726 -vn 0.399955 0.093929 0.911709 -vn -0.317084 -0.316295 0.894100 -vn -0.217677 -0.394486 0.892747 -vn -0.446178 -0.404349 0.798390 -vn 0.286324 0.406956 0.867413 -vn 0.440008 0.442910 0.781168 -vn 0.604948 0.225627 0.763630 -vn 0.708900 0.263736 0.654144 -vn 0.620996 0.283541 0.730731 -vn 0.471391 0.706010 0.528526 -vn -0.494493 0.022290 0.868896 -vn 0.081645 0.758668 0.646342 -vn 0.314889 0.818008 0.481361 -vn 0.381940 0.891911 0.242109 -vn 0.295807 0.907113 0.299407 -vn 0.063403 0.878951 0.472678 -vn -0.518829 0.151814 0.841290 -vn 0.233190 0.871844 0.430709 -vn -0.408115 0.174426 0.896113 -vn -0.230970 0.115807 0.966044 -vn 0.157661 0.014923 0.987381 -vn 0.589572 -0.019729 0.807475 -vn 0.722804 0.008457 0.691002 -vn 0.791895 0.079491 -0.605462 -vn 0.600584 -0.336333 -0.725382 -vn 0.465217 -0.484913 -0.740563 -vn 0.756085 -0.312526 -0.575033 -vn 0.888120 -0.279886 -0.364562 -vn 0.747127 -0.528200 -0.403493 -vn 0.513083 -0.767078 -0.385147 -vn 0.161390 -0.971826 -0.171779 -vn 0.041647 -0.976245 0.212628 -vn -0.132164 -0.876472 0.462957 -vn -0.441067 -0.806915 0.392871 -vn 0.462347 0.574898 0.675076 -vn -0.557382 -0.752183 0.351491 -vn 0.901540 0.361228 0.238203 -vn 0.783321 0.541586 0.305112 -vn -0.615491 -0.738999 0.273955 -vn -0.595928 -0.794386 0.117565 -vn -0.687678 -0.709875 0.152238 -vn -0.773549 -0.633595 -0.013403 -vn -0.834875 -0.550285 0.013046 -vn -0.829717 -0.551329 -0.087217 -vn -0.775534 -0.629547 0.047101 -vn -0.762020 -0.642569 -0.080184 -vn -0.775954 -0.630645 0.013500 -vn -0.701713 -0.711998 -0.025626 -vn -0.480682 -0.872693 0.085740 -vn -0.760446 -0.646635 0.059881 -vn -0.572235 -0.800166 0.179673 -vn -0.182950 -0.908112 0.376645 -vn -0.229092 -0.172632 0.957974 -vn -0.064898 0.677294 0.732845 -vn 0.054346 0.850959 0.522413 -vn -0.025155 0.784707 0.619356 -vn -0.111660 0.597000 0.794433 -vn -0.130412 0.483777 0.865420 -vn -0.125941 0.441113 0.888571 -vn -0.136030 0.428580 0.893205 -vn -0.497048 0.292541 0.816923 -vn -0.581759 0.320224 0.747671 -vn -0.566320 0.529324 0.631742 -vn -0.399080 0.839800 0.368064 -vn -0.165219 0.962939 0.213192 -vn 0.180975 -0.892235 0.413720 -vn 0.130051 -0.852940 0.505550 -vn -0.062184 -0.688056 0.722988 -vn 0.068609 -0.816413 0.573378 -vn -0.061690 -0.769669 0.635455 -vn -0.175486 -0.771548 0.611488 -vn -0.892300 0.172524 0.417177 -vn -0.955963 0.171365 0.238262 -vn -0.873843 0.206208 0.440315 -vn -0.896771 0.216759 0.385768 -vn -0.874857 0.211666 0.435686 -vn -0.899490 0.211098 0.382564 -vn -0.875055 0.165775 0.454750 -vn -0.878962 0.165507 0.447251 -vn 0.723029 -0.558915 -0.406009 -vn 0.781299 -0.477731 -0.401678 -vn 0.831795 -0.407465 -0.376947 -vn 0.871899 -0.363653 -0.327947 -vn 0.912045 -0.318589 -0.258215 -vn 0.970989 -0.140447 -0.193533 -vn 0.757787 -0.468292 -0.454380 -vn 0.799657 -0.442882 -0.405469 -vn 0.696283 -0.493220 -0.521464 -vn 0.597297 -0.541008 -0.592070 -vn 0.510427 -0.578979 -0.635804 -vn 0.682250 -0.605090 -0.410367 -vn 0.653076 -0.625387 -0.427062 -vn 0.614932 -0.657449 -0.435452 -vn 0.600506 -0.677242 -0.425131 -vn 0.341334 -0.558359 -0.756126 -vn 0.347423 -0.553980 -0.756573 -vn 0.409246 -0.579187 -0.705025 -vn 0.469042 -0.592805 -0.654662 -vn -0.426812 0.324483 0.844122 -vn -0.150214 0.365475 0.918621 -vn -0.080542 0.963814 0.254115 -vn -0.058293 0.238730 0.969335 -vn -0.058293 0.238730 0.969335 -vn -0.206539 -0.059777 0.976611 -vn 0.785461 -0.455791 -0.418695 -vn 0.668092 -0.269279 -0.693644 -vn 0.905060 -0.412957 0.101653 -vn 0.869465 -0.491241 0.052086 -vn 0.898076 -0.180334 -0.401172 -vn 0.973660 -0.211736 -0.084582 -vn 0.980274 -0.144070 0.135302 -vn 0.814324 -0.271889 0.512789 -vn 0.814324 -0.271889 0.512789 -vn 0.918624 0.166841 0.358181 -vn 0.741154 0.463785 0.485380 -vn 0.947449 -0.041439 0.317211 -vn 0.611572 0.545655 0.572923 -vn 0.904994 -0.020831 0.424913 -vn 0.923378 0.204457 0.324916 -vn 0.826855 0.443832 0.345433 -vn 0.760719 0.415339 0.498799 -vn 0.720624 0.492087 0.488418 -vn 0.697442 0.552508 0.456410 -vn 0.702097 0.562458 0.436694 -vn 0.834179 0.400987 0.378622 -vn 0.847666 0.399057 0.349595 -vn 0.693729 0.606736 0.388086 -vn 0.504100 0.776103 0.378876 -vn 0.148598 0.922908 0.355188 -vn -0.059750 0.931927 0.357689 -vn -0.175523 0.877956 0.445404 -vn 0.021067 0.923668 0.382615 -vn 0.230269 0.943136 0.239732 -vn 0.637623 0.752392 0.165357 -vn 0.738008 0.607392 0.293972 -vn 0.858757 0.080580 0.506007 -vn 0.817873 0.223196 0.530347 -vn 0.869330 0.494203 0.005449 -vn 0.778333 0.622013 0.085425 -vn 0.875076 0.479485 -0.065848 -vn 0.682816 0.696418 -0.220827 -vn 0.647693 0.760553 0.045311 -vn 0.789251 -0.079380 0.608918 -vn 0.956814 0.162151 -0.241276 -vn 0.912472 0.221945 -0.343707 -vn 0.923227 0.185843 -0.336326 -vn 0.930107 0.110649 -0.350226 -vn 0.962716 -0.104994 0.249308 -vn 0.996259 0.074426 -0.043913 -vn 0.897520 0.083880 -0.432923 -vn 0.893919 0.164722 -0.416864 -vn 0.896055 -0.119118 -0.427664 -vn 0.910937 0.031813 -0.411317 -vn 0.887784 -0.310259 -0.339969 -vn 0.967287 -0.247903 -0.053858 -vn 0.898863 -0.087684 -0.429368 -vn 0.870952 0.132239 -0.473240 -vn 0.820854 -0.498538 -0.278674 -vn 0.673284 0.686365 -0.274940 -vn 0.606195 0.754232 -0.252313 -vn 0.675961 0.541808 -0.499520 -vn 0.618021 0.547814 -0.563870 -vn 0.665292 0.299502 -0.683874 -vn 0.505279 0.723903 -0.469741 -vn 0.324758 0.671254 -0.666296 -vn 0.374322 0.087651 -0.923147 -vn 0.000000 0.639223 -0.769021 -vn 0.000000 0.035307 -0.999376 -vn 0.310246 0.557940 -0.769708 -vn 0.000000 0.598163 -0.801375 -vn 0.517378 0.521388 -0.678583 -vn 0.340138 -0.257223 -0.904512 -vn 0.619196 -0.230144 -0.750753 -vn 0.293751 0.486414 -0.822868 -vn 0.000000 0.512469 -0.858706 -vn 0.470447 0.495624 -0.730094 -vn 0.557935 0.805652 -0.199084 -vn 0.452387 0.755121 -0.474488 -vn 0.344960 0.717142 -0.605566 -vn 0.237320 0.671919 -0.701573 -vn 0.000000 0.657200 -0.753716 -vn 0.378004 0.106861 -0.919616 -vn 0.718351 0.133214 -0.682808 -vn 0.689578 0.310031 -0.654494 -vn 0.809509 0.216230 -0.545839 -vn 0.421755 0.326961 -0.845706 -vn 0.678838 0.317455 -0.662119 -vn 0.851847 0.161232 -0.498359 -vn 0.471194 0.400313 -0.785955 -vn 0.695682 0.479424 -0.534957 -vn 0.409728 0.658083 -0.631703 -vn 0.324420 0.864075 -0.384872 -vn 0.383642 0.914346 -0.129580 -vn 0.895950 -0.235518 -0.376569 -vn 0.552213 0.817527 0.163434 -vn 0.620789 0.719209 -0.312026 -vn 0.880295 0.271967 -0.388735 -vn 0.654011 0.067286 -0.753487 -vn 0.445700 0.495602 -0.745473 -vn 0.370129 0.481660 -0.794360 -vn 0.282468 0.437842 -0.853526 -vn 0.194704 0.381776 -0.903514 -vn 0.000000 0.346752 -0.937957 -vn 0.134093 -0.255637 -0.957428 -vn 0.000000 -0.278526 -0.960429 -vn 0.167318 -0.218170 -0.961461 -vn 0.157411 -0.193966 -0.968297 -vn 0.193518 -0.145853 -0.970195 -vn 0.883346 -0.269483 -0.383509 -vn 0.372707 -0.602315 -0.705908 -vn 0.284389 -0.674901 -0.680905 -vn 0.266465 -0.623440 -0.735064 -vn 0.210330 -0.583672 -0.784276 -vn 0.163290 -0.531374 -0.831251 -vn 0.142215 -0.491701 -0.859072 -vn 0.101835 -0.448198 -0.888115 -vn 0.076807 -0.381437 -0.921198 -vn 0.088509 -0.378576 -0.921329 -vn 0.079068 -0.607429 -0.790429 -vn 0.000000 -0.605434 -0.795896 -vn 0.074285 -0.610089 -0.788843 -vn 0.029425 -0.633697 -0.773022 -vn -0.067163 -0.611468 -0.788414 -vn 0.096433 -0.513376 -0.852728 -vn 0.000000 -0.512619 -0.858616 -vn 0.129979 -0.519215 -0.844702 -vn 0.137003 -0.542535 -0.828785 -vn 0.105013 -0.595112 -0.796752 -vn -0.079301 -0.653155 -0.753060 -vn 0.135006 -0.304248 -0.942977 -vn 0.000000 -0.300841 -0.953674 -vn 0.204273 -0.314048 -0.927171 -vn 0.243386 -0.350578 -0.904355 -vn 0.275302 -0.444189 -0.852588 -vn 0.022468 -0.570516 -0.820979 -vn 0.158274 -0.161865 -0.974037 -vn 0.000000 -0.161161 -0.986928 -vn 0.243947 -0.171140 -0.954568 -vn 0.336061 -0.218423 -0.916163 -vn 0.439956 -0.321892 -0.838346 -vn 0.400605 -0.446572 -0.800055 -vn 0.109754 -0.532448 -0.839317 -vn 0.199636 -0.021538 -0.979633 -vn 0.000000 -0.017694 -0.999843 -vn 0.273388 -0.047857 -0.960713 -vn 0.413696 -0.125495 -0.901724 -vn 0.538408 -0.266793 -0.799336 -vn 0.501708 -0.413970 -0.759551 -vn 0.180764 -0.480264 -0.858295 -vn 0.266299 0.069839 -0.961357 -vn 0.000000 0.084146 -0.996453 -vn 0.303219 0.021856 -0.952670 -vn 0.472055 -0.071805 -0.878640 -vn 0.628723 -0.209727 -0.748814 -vn 0.596804 -0.347012 -0.723469 -vn 0.233182 -0.415250 -0.879314 -vn 0.306329 0.115426 -0.944902 -vn 0.000000 0.137574 -0.990492 -vn 0.336512 0.061863 -0.939645 -vn 0.521998 -0.032046 -0.852345 -vn 0.700901 -0.166964 -0.693441 -vn 0.670696 -0.320363 -0.668980 -vn 0.278649 -0.402161 -0.872136 -vn 0.338844 0.155528 -0.927898 -vn 0.000000 0.188747 -0.982026 -vn 0.370116 0.153131 -0.916278 -vn 0.000000 0.169274 -0.985569 -vn 0.366869 0.132995 -0.920717 -vn 0.000000 0.134384 -0.990929 -vn 0.366650 0.102371 -0.924710 -vn 0.389342 0.122674 -0.912888 -vn 0.413330 0.115606 -0.903213 -vn 0.566003 0.001137 -0.824403 -vn 0.607024 0.023898 -0.794324 -vn 0.648586 0.030749 -0.760520 -vn 0.749269 -0.163297 -0.641818 -vn 0.795439 -0.141070 -0.589387 -vn 0.843796 -0.106096 -0.526072 -vn 0.724763 -0.344747 -0.596547 -vn 0.786972 -0.324776 -0.524590 -vn 0.854710 -0.241359 -0.459582 -vn 0.337017 -0.403246 -0.850772 -vn 0.402275 -0.400267 -0.823384 -vn 0.485908 -0.248850 -0.837835 -vn -0.880669 0.068701 0.468725 -vn -0.890116 0.075529 0.449431 -vn -0.690705 0.079408 0.718763 -vn -0.394663 0.066423 0.916422 -vn 0.723350 -0.098931 0.683358 -vn 0.602617 -0.086043 0.793378 -vn 0.407468 -0.066327 0.910808 -vn 0.341247 -0.066881 0.937591 -vn 0.178897 -0.034900 0.983249 -vn 0.017878 0.003394 0.999834 -vn 0.402357 -0.193102 0.894886 -vn 0.490618 -0.333994 0.804824 -vn 0.758839 -0.598216 0.257490 -vn 0.778436 -0.501585 -0.377425 -vn 0.629626 -0.266786 -0.729655 -vn 0.292935 -0.028191 -0.955717 -vn 0.527437 -0.076844 -0.846112 -vn 0.883476 -0.184844 -0.430467 -vn 0.864677 -0.099711 -0.492333 -vn 0.669031 0.021270 -0.742930 -vn 0.426770 0.097026 -0.899140 -vn 0.358671 0.125462 -0.924995 -vn 0.000000 0.137946 -0.990440 -vn -0.721592 -0.640278 -0.263341 -vn -0.697988 -0.592670 -0.401939 -vn -0.502056 -0.425307 -0.753030 -vn -0.200513 -0.221996 -0.954208 -vn -0.602386 0.213580 0.769100 -vn -0.518785 0.283933 0.806377 -vn -0.574210 0.261001 0.775991 -vn -0.648485 0.210243 0.731618 -vn -0.582966 0.189917 0.789989 -vn -0.657902 0.149876 0.738039 -vn -0.576627 0.140213 0.804886 -vn -0.655242 0.120524 0.745743 -vn -0.548585 0.085622 0.831699 -vn -0.623643 0.065462 0.778963 -vn -0.302198 0.055408 0.951634 -vn -0.589216 -0.022250 0.807669 -vn -0.178633 0.016982 0.983769 -vn -0.602782 -0.103612 0.791150 -vn -0.178820 -0.035670 0.983235 -vn -0.613247 -0.157314 0.774068 -vn 0.241697 0.064364 0.968215 -vn 0.222498 0.105295 0.969230 -vn 0.202843 0.146011 0.968264 -vn -0.581346 0.184565 0.792447 -vn -0.527918 0.212525 0.822275 -vn -0.270288 0.273170 0.923213 -vn -0.227464 0.248221 0.941619 -vn -0.074044 0.366548 0.927448 -vn -0.070724 0.317242 0.945704 -vn -0.113156 0.341724 0.932963 -vn -0.021131 0.358451 0.933309 -vn -0.174841 0.291507 0.940454 -vn -0.207586 0.210474 0.955306 -vn 0.015614 0.337833 0.941076 -vn -0.649281 0.137389 0.748036 -vn -0.521131 0.092429 0.848457 -vn -0.658302 0.126354 0.742073 -vn -0.698391 0.096456 0.709187 -vn 0.007616 0.378960 0.925382 -vn -0.071756 0.279278 0.957525 -vn -0.148503 0.228260 0.962208 -vn -0.084036 0.432319 0.897796 -vn -0.037269 0.462611 0.885778 -vn -0.085702 0.358906 0.929431 -vn -0.092997 0.423873 0.900935 -vn -0.578344 0.189784 0.793410 -vn -0.503826 0.169966 0.846918 -vn -0.653025 0.152927 0.741736 -vn -0.537542 0.259210 0.802408 -vn -0.175271 0.485911 0.856254 -vn -0.480350 0.346259 0.805834 -vn -0.243788 0.307629 0.919746 -vn -0.333496 0.475182 0.814238 -vn -0.306371 0.434431 0.846998 -vn -0.275086 0.360708 0.891189 -vn -0.291053 0.279260 0.915042 -vn -0.079687 0.186105 0.979293 -vn -0.077906 0.124928 0.989103 -vn -0.319400 0.172440 0.931798 -vn -0.595356 0.092896 0.798073 -vn -0.546608 -0.021804 0.837105 -vn -0.551343 -0.124464 0.824942 -vn -0.568879 -0.174571 0.803680 -vn -0.305639 -0.119565 0.944611 -vn -0.283986 -0.071210 0.956180 -vn -0.290856 0.047039 0.955610 -vn -0.098141 0.082151 0.991776 -vn -0.064814 0.044293 0.996914 -vn -0.100796 -0.023640 0.994626 -vn -0.074774 -0.024916 0.996889 -vn -0.099669 -0.082218 0.991618 -vn -0.059714 -0.077254 0.995222 -vn -0.445449 0.351574 0.823390 -vn -0.548867 0.270792 0.790833 -vn -0.605772 0.186707 0.773421 -vn -0.443076 0.285121 0.849935 -vn -0.387899 0.439155 0.810356 -vn -0.413496 0.414989 0.810435 -vn -0.436072 0.437467 0.786425 -vn -0.340697 0.455336 0.822554 -vn -0.176869 0.487885 0.854801 -vn -0.237891 0.494049 0.836256 -vn -0.386196 0.438893 0.811311 -vn -0.449781 0.446229 0.773677 -vn -0.452086 0.426728 0.783276 -vn -0.365855 0.460683 0.808654 -vn -0.432131 0.415593 0.800341 -vn -0.416336 0.359925 0.834936 -vn -0.295931 0.385626 0.873909 -vn -0.333786 0.391667 0.857429 -vn -0.403423 0.497640 0.767857 -vn -0.413539 0.418225 0.808748 -vn -0.467588 0.370380 0.802608 -vn -0.627608 0.502314 0.594801 -vn -0.693293 0.348298 0.630898 -vn -0.723581 0.273386 0.633790 -vn -0.600324 0.220819 0.768667 -vn -0.428859 0.599311 0.675949 -vn -0.404483 0.632677 0.660389 -vn -0.241671 0.174188 0.954596 -vn -0.268367 0.223146 0.937115 -vn -0.137881 0.077206 0.987435 -vn -0.073427 0.011380 0.997236 -vn -0.066278 -0.028333 0.997399 -vn -0.048131 -0.063038 0.996850 -vn -0.402357 0.496327 0.769265 -vn -0.453406 0.415528 0.788517 -vn -0.516046 0.438872 0.735587 -vn -0.580118 0.489634 0.650939 -vn -0.691007 0.528668 0.492971 -vn -0.654373 0.593785 0.468204 -vn -0.693446 0.650830 0.309115 -vn -0.693484 0.709322 0.126266 -vn -0.739462 0.638880 0.212199 -vn -0.784170 0.574051 0.235675 -vn -0.668376 0.733729 0.122133 -vn -0.772927 0.632876 0.045294 -vn -0.798986 0.598844 0.054845 -vn -0.742605 0.662378 -0.098960 -vn -0.772493 0.622660 -0.124696 -vn -0.653531 0.756515 -0.024128 -vn -0.801970 0.591140 -0.086016 -vn -0.771021 0.577440 -0.268496 -vn -0.800345 0.591484 -0.097949 -vn -0.829800 0.557717 0.019575 -vn -0.402621 0.410303 0.818259 -vn -0.747574 0.507108 0.428922 -vn -0.327401 0.464572 0.822789 -vn -0.358374 0.528290 0.769725 -vn -0.809816 0.579091 -0.094084 -vn -0.747960 0.573313 -0.334466 -vn -0.729200 0.682344 0.051709 -vn -0.751051 0.648506 0.123946 -vn -0.699686 0.557932 0.446263 -vn -0.461228 0.442142 0.769272 -vn -0.591526 0.786790 0.176235 -vn -0.520694 0.818933 0.241303 -vn -0.545418 0.819952 0.173777 -vn -0.516019 0.787254 0.337573 -vn -0.477368 0.633843 0.608575 -vn -0.427488 0.496537 0.755451 -vn -0.414836 0.409638 0.812470 -vn -0.373704 0.420141 0.826938 -vn -0.400767 0.415315 0.816639 -vn -0.416198 0.371368 0.829979 -vn -0.273407 0.253699 0.927839 -vn -0.900794 0.394140 0.182274 -vn -0.900794 0.394140 0.182274 -vn -0.662096 0.710348 0.238818 -vn -0.555647 0.806042 0.203844 -vn -0.607701 0.780967 0.144187 -vn -0.678347 0.726133 0.112147 -vn -0.354960 0.429563 0.830349 -vn -0.395584 0.623221 0.674618 -vn -0.395584 0.623221 0.674618 -vn -0.436265 0.364181 0.822827 -vn -0.371782 0.690148 0.620866 -vn -0.371782 0.690148 0.620866 -vn -0.295859 0.531974 0.793392 -vn -0.295859 0.531974 0.793392 -vn -0.268899 0.478963 0.835636 -vn -0.474345 0.809620 0.345705 -vn -0.829394 0.553534 0.075540 -vn -0.436288 0.721510 0.537659 -vn -0.375898 0.598493 0.707465 -vn -0.320930 0.452886 0.831804 -vn -0.755328 0.483434 0.442459 -vn -0.436894 0.441323 0.783810 -vn -0.298031 0.319168 0.899616 -vn -0.305066 0.278678 0.910644 -vn -0.328764 0.253859 0.909654 -vn -0.291424 0.164553 0.942335 -vn -0.799548 -0.534189 -0.274526 -vn -0.854314 -0.442305 -0.272971 -vn -0.951509 -0.271426 0.144769 -vn -0.917818 -0.072919 0.390247 -vn -0.937726 0.091499 0.335108 -vn -0.750785 -0.594673 -0.287553 -vn -0.723888 -0.619714 -0.303217 -vn -0.685325 -0.661416 -0.304725 -vn -0.660050 -0.690933 -0.294867 -vn -0.613815 -0.759738 -0.214545 -vn -0.207044 0.516952 0.830598 -vn -0.723029 -0.558915 -0.406009 -vn -0.781299 -0.477731 -0.401678 -vn -0.831795 -0.407465 -0.376947 -vn -0.871899 -0.363653 -0.327947 -vn -0.912045 -0.318589 -0.258215 -vn -0.970989 -0.140447 -0.193533 -vn -0.757787 -0.468292 -0.454380 -vn -0.799657 -0.442881 -0.405469 -vn -0.696283 -0.493219 -0.521464 -vn -0.597297 -0.541008 -0.592070 -vn -0.510428 -0.578979 -0.635804 -vn -0.682250 -0.605090 -0.410367 -vn -0.653076 -0.625387 -0.427062 -vn -0.614932 -0.657449 -0.435452 -vn -0.600506 -0.677242 -0.425131 -vn -0.341334 -0.558359 -0.756126 -vn -0.347423 -0.553980 -0.756573 -vn -0.409245 -0.579187 -0.705025 -vn -0.469042 -0.592805 -0.654662 -vn -0.785461 -0.455791 -0.418695 -vn -0.668092 -0.269279 -0.693644 -vn -0.905060 -0.412957 0.101653 -vn -0.869465 -0.491241 0.052086 -vn -0.898076 -0.180334 -0.401172 -vn -0.973660 -0.211736 -0.084582 -vn -0.980274 -0.144070 0.135302 -vn -0.814324 -0.271889 0.512789 -vn -0.814324 -0.271889 0.512789 -vn -0.918624 0.166842 0.358181 -vn -0.741154 0.463785 0.485380 -vn -0.947449 -0.041438 0.317210 -vn -0.611572 0.545655 0.572923 -vn -0.904994 -0.020831 0.424913 -vn -0.923378 0.204457 0.324916 -vn -0.826855 0.443832 0.345433 -vn -0.760719 0.415339 0.498799 -vn -0.720624 0.492087 0.488418 -vn -0.697442 0.552508 0.456410 -vn -0.702097 0.562458 0.436694 -vn -0.834179 0.400987 0.378622 -vn -0.847666 0.399057 0.349595 -vn -0.693729 0.606736 0.388086 -vn -0.618380 0.687391 0.380921 -vn -0.148598 0.922908 0.355188 -vn 0.099817 0.962574 0.251969 -vn -0.767986 0.606101 0.206977 -vn -0.738007 0.607392 0.293972 -vn -0.858757 0.080580 0.506007 -vn -0.817873 0.223196 0.530347 -vn -0.869330 0.494203 0.005449 -vn -0.778333 0.622013 0.085425 -vn -0.875076 0.479485 -0.065848 -vn -0.682816 0.696418 -0.220827 -vn -0.678736 0.732540 0.051991 -vn -0.789251 -0.079380 0.608918 -vn -0.956814 0.162151 -0.241276 -vn -0.912472 0.221945 -0.343707 -vn -0.923227 0.185843 -0.336326 -vn -0.930107 0.110649 -0.350226 -vn -0.962716 -0.104994 0.249308 -vn -0.996259 0.074427 -0.043913 -vn -0.897520 0.083880 -0.432923 -vn -0.893919 0.164722 -0.416864 -vn -0.896055 -0.119118 -0.427664 -vn -0.910937 0.031813 -0.411317 -vn -0.887784 -0.310259 -0.339969 -vn -0.967287 -0.247903 -0.053858 -vn -0.898863 -0.087684 -0.429367 -vn -0.886747 0.067331 -0.457326 -vn -0.820854 -0.498538 -0.278673 -vn -0.673284 0.686365 -0.274940 -vn -0.606194 0.754232 -0.252314 -vn -0.675961 0.541809 -0.499520 -vn -0.618021 0.547814 -0.563870 -vn -0.665292 0.299502 -0.683874 -vn -0.505279 0.723903 -0.469741 -vn -0.324758 0.671254 -0.666296 -vn -0.374322 0.087651 -0.923147 -vn -0.310246 0.557940 -0.769708 -vn -0.517378 0.521388 -0.678583 -vn -0.340138 -0.257223 -0.904512 -vn -0.619196 -0.230144 -0.750753 -vn -0.293751 0.486414 -0.822868 -vn -0.470447 0.495624 -0.730094 -vn -0.557935 0.805652 -0.199084 -vn -0.452387 0.755121 -0.474488 -vn -0.344960 0.717142 -0.605566 -vn -0.237320 0.671919 -0.701573 -vn -0.378004 0.106861 -0.919616 -vn -0.718351 0.133214 -0.682808 -vn -0.689578 0.310031 -0.654494 -vn -0.809509 0.216230 -0.545838 -vn -0.421755 0.326961 -0.845706 -vn -0.678838 0.317455 -0.662119 -vn -0.851847 0.161232 -0.498359 -vn -0.471194 0.400313 -0.785955 -vn -0.695682 0.479424 -0.534957 -vn -0.409728 0.658084 -0.631703 -vn -0.324420 0.864075 -0.384872 -vn -0.288714 0.934711 -0.207268 -vn -0.895950 -0.235519 -0.376569 -vn -0.552213 0.817527 0.163434 -vn -0.620789 0.719209 -0.312026 -vn -0.880295 0.271967 -0.388735 -vn -0.654011 0.067286 -0.753487 -vn -0.445700 0.495602 -0.745473 -vn -0.370129 0.481660 -0.794360 -vn -0.282467 0.437843 -0.853526 -vn -0.194704 0.381776 -0.903514 -vn -0.134094 -0.255637 -0.957428 -vn -0.167318 -0.218170 -0.961461 -vn -0.157411 -0.193966 -0.968297 -vn -0.193518 -0.145853 -0.970195 -vn -0.883346 -0.269483 -0.383509 -vn -0.372707 -0.602315 -0.705908 -vn -0.284389 -0.674901 -0.680905 -vn -0.266465 -0.623440 -0.735064 -vn -0.210330 -0.583671 -0.784276 -vn -0.163290 -0.531374 -0.831251 -vn -0.142215 -0.491701 -0.859072 -vn -0.101835 -0.448198 -0.888115 -vn -0.076807 -0.381437 -0.921198 -vn -0.088509 -0.378576 -0.921329 -vn -0.079068 -0.607429 -0.790429 -vn -0.074285 -0.610089 -0.788843 -vn -0.029424 -0.633697 -0.773022 -vn 0.067163 -0.611468 -0.788414 -vn -0.096433 -0.513376 -0.852728 -vn -0.129979 -0.519215 -0.844702 -vn -0.137003 -0.542535 -0.828785 -vn -0.105012 -0.595112 -0.796752 -vn 0.079301 -0.653155 -0.753060 -vn -0.135006 -0.304248 -0.942977 -vn -0.204273 -0.314048 -0.927171 -vn -0.243386 -0.350578 -0.904355 -vn -0.275302 -0.444189 -0.852588 -vn -0.022468 -0.570516 -0.820979 -vn -0.158274 -0.161865 -0.974037 -vn -0.243947 -0.171140 -0.954568 -vn -0.336061 -0.218423 -0.916163 -vn -0.439956 -0.321892 -0.838346 -vn -0.400605 -0.446572 -0.800055 -vn -0.109754 -0.532448 -0.839317 -vn -0.199636 -0.021538 -0.979633 -vn -0.273388 -0.047857 -0.960713 -vn -0.413696 -0.125495 -0.901724 -vn -0.538408 -0.266793 -0.799336 -vn -0.501708 -0.413970 -0.759551 -vn -0.180764 -0.480264 -0.858295 -vn -0.266299 0.069839 -0.961357 -vn -0.303219 0.021856 -0.952670 -vn -0.472055 -0.071805 -0.878640 -vn -0.628723 -0.209727 -0.748814 -vn -0.596804 -0.347012 -0.723469 -vn -0.233182 -0.415251 -0.879314 -vn -0.306329 0.115426 -0.944902 -vn -0.336512 0.061863 -0.939645 -vn -0.521998 -0.032046 -0.852345 -vn -0.700901 -0.166964 -0.693441 -vn -0.670696 -0.320363 -0.668980 -vn -0.278649 -0.402161 -0.872136 -vn -0.338844 0.155528 -0.927899 -vn -0.370116 0.153131 -0.916278 -vn -0.366869 0.132995 -0.920717 -vn -0.366650 0.102371 -0.924710 -vn -0.389342 0.122674 -0.912888 -vn -0.413330 0.115606 -0.903213 -vn -0.566003 0.001137 -0.824403 -vn -0.607024 0.023898 -0.794324 -vn -0.648586 0.030749 -0.760520 -vn -0.749269 -0.163297 -0.641818 -vn -0.795439 -0.141070 -0.589387 -vn -0.843796 -0.106096 -0.526072 -vn -0.724763 -0.344747 -0.596547 -vn -0.786972 -0.324776 -0.524590 -vn -0.854710 -0.241359 -0.459582 -vn -0.337017 -0.403246 -0.850771 -vn -0.402275 -0.400267 -0.823384 -vn -0.485908 -0.248850 -0.837835 -vn -0.773523 -0.589367 -0.233044 -vn -0.778436 -0.501585 -0.377425 -vn -0.629626 -0.266786 -0.729655 -vn -0.292935 -0.028191 -0.955717 -vn -0.527437 -0.076844 -0.846112 -vn -0.883477 -0.184843 -0.430467 -vn -0.864677 -0.099711 -0.492333 -vn -0.669031 0.021270 -0.742930 -vn -0.426770 0.097026 -0.899140 -vn -0.358671 0.125462 -0.924995 -vn 0.627073 -0.111635 0.770920 -vn 0.627073 -0.111635 0.770920 -vn 0.595190 -0.161019 0.787287 -vn 0.595190 -0.161019 0.787287 -vn 0.656620 -0.061834 0.751682 -vn 0.656620 -0.061834 0.751682 -vn -0.542180 0.369117 0.754846 -vn -0.538712 0.356049 0.763557 -vn -0.452694 0.343683 0.822770 -vn -0.291627 0.335422 0.895793 -vn -0.226948 0.277663 0.933487 -vn -0.237942 0.227136 0.944348 -vn -0.237942 0.227136 0.944348 -vn -0.226948 0.277663 0.933487 -vn -0.291627 0.335422 0.895793 -vn -0.452694 0.343683 0.822770 -vn -0.538712 0.356049 0.763557 -vn -0.522250 0.508353 0.684714 -vn -0.518989 0.574123 0.633272 -vn -0.522428 0.591810 0.613865 -vn -0.516000 0.605509 0.605890 -vn -0.517128 0.565105 0.642833 -vn 0.918894 -0.353792 0.174546 -vn 0.918894 -0.353792 0.174546 -vn 0.873308 -0.487103 0.007921 -vn 0.853171 -0.521407 0.015309 -vn 0.880686 -0.471698 0.043516 -vn 0.882640 -0.465839 0.062778 -vn 0.888832 -0.450220 0.085324 -vn 0.893194 -0.429553 0.132995 -vn 0.840967 -0.539308 0.043839 -vn 0.840967 -0.539308 0.043839 -vn 0.853171 -0.521407 0.015309 -vn 0.873308 -0.487103 0.007921 -vn 0.880686 -0.471698 0.043516 -vn 0.882640 -0.465839 0.062778 -vn 0.888832 -0.450220 0.085324 -vn 0.893194 -0.429553 0.132995 -vn 0.939475 -0.288121 0.185400 -vn 0.939475 -0.288121 0.185400 -vn 0.573576 0.664666 0.478780 -vn 0.449451 0.630971 0.632352 -vn 0.349559 0.679393 0.645162 -vn 0.483575 0.704932 0.518869 -vn 0.223400 0.704019 0.674129 -vn 0.420007 0.686787 0.593227 -vn 0.223976 0.672852 0.705057 -vn 0.534282 0.599621 0.595816 -vn 0.170947 0.530884 0.830024 -vn 0.593948 0.416422 0.688345 -vn 0.088895 0.494920 0.864380 -vn 0.582938 0.296662 0.756422 -vn 0.300255 0.750204 0.589102 -vn 0.775652 0.350674 0.524778 -vn 0.506343 0.824002 0.254240 -vn 0.901844 0.276854 0.331707 -vn 0.530901 0.825210 0.192801 -vn 0.911424 0.209264 0.354280 -vn 0.674685 0.671689 0.305996 -vn 0.600817 0.706114 0.374730 -vn 0.598850 0.637791 0.484357 -vn 0.787274 0.455513 0.415581 -vn 0.890740 0.213891 0.401041 -vn 0.904150 0.012156 0.427042 -vn 0.948872 -0.157890 0.273336 -vn 0.877723 -0.406240 0.254108 -vn 0.790425 -0.521832 0.320811 -vn 0.686049 0.709282 0.162039 -vn 0.749420 0.614790 0.245770 -vn 0.719531 0.663693 0.204415 -vn 0.749420 0.614790 0.245770 -vn 0.719531 0.663693 0.204415 -vn 0.686049 0.709282 0.162039 -vn 0.624078 -0.343144 0.701982 -vn 0.523755 -0.440076 0.729393 -vn 0.412846 -0.528113 0.742061 -vn 0.412846 -0.528113 0.742061 -vn 0.523755 -0.440076 0.729393 -vn 0.624078 -0.343144 0.701982 -vn 0.808537 -0.027561 0.587799 -vn 0.946588 -0.259753 0.191047 -vn 0.976977 -0.117484 0.178080 -vn 0.968393 0.151657 0.198029 -vn 0.897670 0.126681 0.422067 -vn -0.161109 0.780577 0.603940 -vn -0.158319 0.581766 0.797799 -vn -0.049724 0.650731 0.757678 -vn -0.294269 0.500087 0.814444 -vn 0.221684 0.390190 0.893649 -vn -0.190112 0.648891 0.736748 -vn 0.706576 0.359084 0.609761 -vn -0.094555 0.527366 0.844360 -vn 0.352175 0.618989 0.702015 -vn 0.292781 0.685325 0.666790 -vn 0.102978 0.685603 0.720655 -vn -0.249493 0.570902 0.782192 -vn -0.330858 0.531987 0.779438 -vn -0.222929 0.657917 0.719338 -vn -0.362748 0.663553 0.654302 -vn -0.503150 0.560902 0.657442 -vn -0.517499 0.519484 0.679950 -vn -0.609163 0.521054 0.597849 -vn -0.674086 0.561273 0.480188 -vn -0.663502 0.590652 0.459233 -vn -0.138923 0.765759 0.627943 -vn -0.188934 0.760750 0.620938 -vn -0.607112 0.552177 0.571415 -vn -0.216672 0.742646 0.633664 -vn -0.573847 0.634858 0.517354 -vn -0.690702 0.510844 0.511829 -vn -0.608543 0.641438 0.467153 -vn -0.606077 0.680336 0.412085 -vn -0.336308 0.727851 0.597603 -vn -0.734526 0.329784 0.593056 -vn 0.538953 0.672200 0.507618 -vn 0.598071 0.707983 0.375594 -vn 0.799701 0.536873 0.268788 -vn 0.968393 0.151657 0.198029 -vn 0.976977 -0.117484 0.178080 -vn 0.000000 0.918200 0.396117 -vn 0.000000 0.809747 0.586779 -vn 0.000000 0.536133 0.844133 -vn 0.000000 0.099690 0.995019 -vn 0.000000 -0.361986 0.932183 -vn 0.000000 -0.557803 0.829974 -vn 0.344563 -0.518463 0.782607 -vn 0.378461 -0.524331 0.762788 -vn 0.256890 -0.512429 0.819405 -vn 0.448309 0.218253 0.866824 -vn 0.475266 0.293719 0.829368 -vn 0.476055 0.258285 0.840631 -vn 0.452144 0.261612 0.852716 -vn 0.312141 0.190793 0.930680 -vn 0.400881 0.229952 0.886801 -vn 0.401913 0.276564 0.872914 -vn 0.286784 0.340625 0.895393 -vn 0.180846 0.336515 0.924150 -vn 0.250766 0.397931 0.882478 -vn 0.191958 0.476407 0.858014 -vn 0.080898 0.560262 0.824355 -vn 0.052502 0.589959 0.805724 -vn -0.057820 0.679562 0.731336 -vn -0.166571 0.738903 0.652899 -vn -0.102120 0.745014 0.659186 -vn -0.148518 0.784407 0.602202 -vn 0.125130 0.885238 0.447992 -vn 0.352489 0.732690 0.582166 -vn 0.079675 0.947394 0.309994 -vn 0.604669 0.505393 0.615592 -vn 0.076091 0.970268 0.229763 -vn 0.182335 0.946402 0.266603 -vn 0.071017 0.960610 0.268671 -vn 0.306467 0.874299 0.376404 -vn 0.239843 0.876792 0.416786 -vn 0.627463 0.608572 0.485727 -vn 0.383075 0.749817 0.539470 -vn 0.379921 0.751732 0.539035 -vn 0.845970 0.333580 0.416005 -vn 0.705077 0.405400 0.581822 -vn 0.362848 0.504205 0.783657 -vn 0.791135 0.028158 0.610994 -vn 0.949841 0.037193 0.310514 -vn 0.363475 0.058217 0.929783 -vn 0.357532 -0.368025 0.858329 -vn 0.549575 -0.298530 0.780286 -vn 0.618932 -0.208696 0.757212 -vn -0.344562 -0.518463 0.782607 -vn -0.378461 -0.524331 0.762788 -vn -0.256889 -0.512429 0.819405 -vn -0.448309 0.218253 0.866824 -vn -0.475266 0.293719 0.829368 -vn -0.476055 0.258285 0.840631 -vn -0.452144 0.261612 0.852716 -vn -0.312141 0.190793 0.930680 -vn -0.400881 0.229952 0.886801 -vn -0.401913 0.276564 0.872914 -vn -0.286784 0.340625 0.895393 -vn -0.180846 0.336515 0.924150 -vn -0.250766 0.397931 0.882478 -vn -0.191958 0.476407 0.858014 -vn -0.080898 0.560263 0.824355 -vn -0.052502 0.589960 0.805724 -vn 0.057820 0.679562 0.731336 -vn 0.166571 0.738903 0.652899 -vn 0.102120 0.745014 0.659186 -vn 0.148518 0.784407 0.602202 -vn -0.125130 0.885238 0.447991 -vn -0.352489 0.732690 0.582166 -vn -0.079675 0.947394 0.309994 -vn -0.604669 0.505393 0.615592 -vn -0.076091 0.970268 0.229763 -vn -0.182335 0.946402 0.266603 -vn -0.071017 0.960610 0.268671 -vn -0.306468 0.874299 0.376404 -vn -0.239843 0.876792 0.416786 -vn -0.627463 0.608572 0.485727 -vn -0.383075 0.749817 0.539470 -vn -0.379921 0.751732 0.539035 -vn -0.845970 0.333580 0.416005 -vn -0.705077 0.405400 0.581822 -vn -0.362848 0.504205 0.783657 -vn -0.791135 0.028158 0.610994 -vn -0.949841 0.037193 0.310514 -vn -0.363475 0.058217 0.929783 -vn -0.357532 -0.368025 0.858329 -vn -0.549575 -0.298530 0.780286 -vn -0.618931 -0.208696 0.757212 -vn 0.000000 0.779010 0.627012 -vn 0.000000 0.458657 0.888613 -vn 0.000000 -0.368442 0.929651 -vn 0.000000 -0.264791 0.964306 -vn 0.000000 0.003320 0.999994 -vn 0.000000 0.805495 0.592602 -vn 0.388762 -0.521430 0.759588 -vn 0.446897 -0.403873 0.798229 -vn 0.416810 -0.237535 0.877409 -vn 0.284738 -0.178350 0.941868 -vn 0.204944 -0.111535 0.972398 -vn 0.395284 -0.571382 0.719217 -vn 0.366107 -0.215021 0.905390 -vn 0.437143 -0.511455 0.739811 -vn 0.359436 -0.415477 0.835574 -vn 0.418036 -0.434226 0.797931 -vn 0.214668 0.277304 0.936494 -vn 0.084450 0.685446 0.723209 -vn -0.675556 0.456409 0.579065 -vn 0.119765 0.318101 0.940462 -vn 0.010528 0.728103 0.685387 -vn 0.248777 -0.405305 0.879681 -vn -0.642264 0.471118 0.604603 -vn -0.642264 0.471118 0.604603 -vn 0.030146 -0.380419 0.924323 -vn -0.035660 0.413990 0.909583 -vn -0.172925 0.734434 0.656280 -vn -0.288381 0.695238 0.658393 -vn 0.291708 -0.407249 0.865480 -vn 0.145756 -0.363019 0.920311 -vn 0.231402 -0.337701 0.912366 -vn 0.471500 -0.030438 0.881341 -vn -0.388762 -0.521430 0.759588 -vn -0.446897 -0.403873 0.798229 -vn -0.416810 -0.237535 0.877409 -vn -0.284738 -0.178350 0.941868 -vn -0.204944 -0.111535 0.972398 -vn -0.395284 -0.571382 0.719217 -vn -0.366107 -0.215021 0.905390 -vn -0.437143 -0.511455 0.739811 -vn -0.359436 -0.415477 0.835574 -vn -0.418036 -0.434226 0.797931 -vn -0.214668 0.277304 0.936494 -vn -0.084450 0.685446 0.723209 -vn 0.675556 0.456409 0.579065 -vn -0.119765 0.318101 0.940462 -vn -0.010528 0.728103 0.685387 -vn -0.248777 -0.405305 0.879681 -vn 0.642264 0.471118 0.604603 -vn 0.642264 0.471118 0.604603 -vn -0.030146 -0.380419 0.924323 -vn 0.035660 0.413990 0.909583 -vn 0.172925 0.734434 0.656280 -vn 0.288381 0.695238 0.658393 -vn -0.291708 -0.407249 0.865480 -vn -0.145756 -0.363019 0.920311 -vn -0.231402 -0.337701 0.912366 -vn -0.471500 -0.030438 0.881341 -vn 0.969154 -0.240242 -0.055004 -vn 0.911138 -0.400370 -0.097628 -vn 0.825038 -0.548157 -0.137243 -vn 0.969154 -0.240242 -0.055004 -vn 0.911138 -0.400370 -0.097628 -vn 0.825038 -0.548157 -0.137243 -vn -0.023767 0.866455 0.498689 -vn -0.027239 0.948390 0.315934 -vn -0.638973 0.627623 0.444750 -vn -0.636559 0.740095 0.216917 -vn -0.483754 0.870106 0.094333 -vn -0.614397 0.757118 0.222008 -vn -0.472323 0.731338 0.491992 -vn -0.349854 0.612746 0.708622 -vn -0.360546 0.536919 0.762709 -vn -0.396790 0.442371 0.804279 -vn -0.358205 -0.567435 0.741422 -vn -0.197797 -0.578110 0.791622 -vn -0.363416 0.194686 0.911058 -vn -0.263707 -0.344312 0.901059 -vn -0.261318 -0.547138 0.795206 -vn -0.293824 -0.526601 0.797721 -vn 0.368408 0.080269 0.926192 -vn 0.195869 0.015084 0.980514 -vn 0.166033 0.111246 0.979825 -vn 0.213584 0.064914 0.974766 -vn 0.242572 -0.029618 0.969681 -vn 0.320390 -0.036839 0.946569 -vn 0.205688 -0.011720 0.978547 -vn 0.000000 -0.035199 0.999380 -vn -0.190062 -0.165754 0.967679 -vn 0.177612 0.976131 0.124991 -vn -0.430818 0.727384 0.534142 -vn -0.556925 0.551683 0.620871 -vn -0.526932 0.534318 0.660944 -vn -0.419946 0.671434 0.610592 -vn -0.371050 0.646325 0.666773 -vn -0.255895 0.767915 0.587218 -vn -0.519843 0.568272 0.637832 -vn -0.144010 0.813415 0.563575 -vn -0.505012 0.721498 0.473713 -vn -0.427954 0.836305 0.342709 -vn -0.105979 0.780170 0.616525 -vn 0.033369 0.990968 0.129880 -vn 0.233019 0.952507 0.196042 -vn 0.471150 0.591186 0.654612 -vn 0.146160 0.975151 0.166485 -vn 0.132490 0.959339 0.249228 -vn -0.155389 0.972865 0.171427 -vn 0.067572 0.920519 0.384809 -vn 0.516572 0.456244 0.724566 -vn -0.245331 0.788843 0.563506 -vn -0.401876 0.850302 0.339825 -vn -0.501206 0.800443 0.328761 -vn -0.843596 0.026522 0.536323 -vn -0.976806 -0.070012 0.202355 -vn -0.805500 0.252573 0.536075 -vn -0.702154 0.638153 0.315816 -vn -0.674287 0.735569 0.065387 -vn -0.804907 0.593315 0.010131 -vn -0.981894 0.176411 0.069017 -vn -0.875986 0.479281 -0.054214 -vn -0.860671 0.508735 -0.020825 -vn -0.875115 0.476188 0.086136 -vn -0.867853 0.363621 0.338542 -vn -0.953809 0.272816 0.125780 -vn -0.756813 0.288662 0.586437 -vn -0.811763 0.400035 0.425456 -vn -0.342818 0.559665 0.754487 -vn -0.285293 0.457270 0.842325 -vn -0.673365 -0.161005 0.721566 -vn -0.339093 -0.086134 0.936801 -vn -0.625471 0.410850 0.663316 -vn -0.448421 0.788552 0.420838 -vn -0.317563 0.797252 0.513363 -vn -0.063079 0.871401 0.486498 -vn 0.385727 0.245004 0.889488 -vn -0.138071 0.584247 0.799745 -vn -0.096169 0.570825 0.815420 -vn 0.101101 0.401757 0.910148 -vn -0.196115 0.114369 0.973889 -vn -0.016503 -0.155347 0.987722 -vn 0.135047 0.074517 0.988033 -vn -0.103091 0.289389 0.951644 -vn -0.289091 0.582958 0.759332 -vn -0.289091 0.582958 0.759332 -vn -0.333257 -0.496529 0.801498 -vn 0.011668 0.032145 0.999415 -vn -0.176408 -0.229461 0.957198 -vn -0.070627 0.358458 0.930871 -vn -0.249537 0.345294 0.904712 -vn 0.573287 0.116872 0.810977 -vn 0.438954 0.239210 0.866082 -vn 0.522128 0.076930 0.849390 -vn 0.240283 0.091689 0.966363 -vn 0.483322 -0.034135 0.874777 -vn 0.381644 -0.146771 0.912582 -vn 0.044584 -0.066594 0.996783 -vn 0.260756 0.069444 0.962904 -vn 0.350908 0.060943 0.934425 -vn 0.334547 -0.038152 0.941607 -vn 0.326434 -0.040016 0.944373 -vn 0.330387 -0.021935 0.943591 -vn 0.370074 -0.063871 0.926804 -vn 0.270580 -0.012081 0.962622 -vn 0.336651 -0.056162 0.939953 -vn 0.000000 0.969679 0.244382 -vn 0.000000 0.941510 0.336985 -vn 0.000000 0.864439 0.502738 -vn 0.000000 0.773074 0.634315 -vn 0.000000 0.638360 0.769738 -vn 0.000000 0.612801 0.790237 -vn 0.000000 0.580435 0.814306 -vn 0.000000 0.341306 0.939952 -vn 0.000000 -0.223803 0.974634 -vn 0.000000 -0.301665 0.953414 -vn 0.000000 -0.130099 0.991501 -vn 0.000000 -0.056987 0.998375 -vn 0.000000 0.223160 0.974782 -vn 0.000000 0.213062 0.977039 -vn 0.000000 0.077238 0.997013 -vn 0.000000 0.011545 0.999933 -vn 0.341371 0.006645 0.939905 -vn 0.261988 0.002758 0.965067 -vn 0.023767 0.866455 0.498689 -vn 0.027239 0.948390 0.315935 -vn 0.638973 0.627623 0.444750 -vn 0.636559 0.740095 0.216917 -vn 0.483754 0.870106 0.094333 -vn 0.614398 0.757118 0.222008 -vn 0.472323 0.731338 0.491992 -vn 0.349854 0.612746 0.708622 -vn 0.360546 0.536919 0.762709 -vn 0.396790 0.442372 0.804279 -vn 0.358205 -0.567435 0.741422 -vn 0.197797 -0.578110 0.791622 -vn 0.363416 0.194686 0.911058 -vn 0.263707 -0.344312 0.901059 -vn 0.261318 -0.547138 0.795206 -vn 0.293824 -0.526601 0.797721 -vn -0.368408 0.080269 0.926192 -vn -0.195869 0.015084 0.980514 -vn -0.166033 0.111246 0.979825 -vn -0.213584 0.064914 0.974766 -vn -0.242572 -0.029618 0.969681 -vn -0.320390 -0.036839 0.946569 -vn -0.205688 -0.011720 0.978547 -vn 0.190062 -0.165754 0.967679 -vn -0.177612 0.976131 0.124991 -vn 0.430818 0.727384 0.534142 -vn 0.556925 0.551683 0.620871 -vn 0.526932 0.534318 0.660944 -vn 0.419946 0.671434 0.610592 -vn 0.371050 0.646325 0.666773 -vn 0.255895 0.767915 0.587218 -vn 0.519843 0.568272 0.637832 -vn 0.144010 0.813415 0.563575 -vn 0.505012 0.721498 0.473713 -vn 0.427954 0.836305 0.342709 -vn 0.105979 0.780170 0.616525 -vn -0.033369 0.990968 0.129881 -vn -0.233019 0.952507 0.196042 -vn -0.471151 0.591186 0.654611 -vn -0.146160 0.975151 0.166485 -vn -0.132490 0.959339 0.249228 -vn 0.155389 0.972865 0.171427 -vn -0.067572 0.920519 0.384809 -vn -0.516572 0.456244 0.724566 -vn 0.245331 0.788843 0.563506 -vn 0.401876 0.850303 0.339825 -vn 0.501206 0.800443 0.328761 -vn 0.843596 0.026522 0.536323 -vn 0.976806 -0.070012 0.202355 -vn 0.805500 0.252573 0.536075 -vn 0.702154 0.638153 0.315817 -vn 0.674287 0.735569 0.065387 -vn 0.804907 0.593315 0.010130 -vn 0.981894 0.176411 0.069017 -vn 0.875986 0.479281 -0.054214 -vn 0.860671 0.508735 -0.020824 -vn 0.875115 0.476188 0.086135 -vn 0.867853 0.363621 0.338542 -vn 0.953809 0.272816 0.125779 -vn 0.756813 0.288662 0.586437 -vn 0.811763 0.400035 0.425456 -vn 0.342818 0.559665 0.754487 -vn 0.285293 0.457270 0.842325 -vn 0.673365 -0.161005 0.721566 -vn 0.339093 -0.086134 0.936801 -vn 0.625471 0.410850 0.663316 -vn 0.448421 0.788552 0.420838 -vn 0.317563 0.797253 0.513363 -vn 0.063079 0.871401 0.486498 -vn -0.385727 0.245004 0.889488 -vn 0.138071 0.584247 0.799745 -vn 0.096169 0.570825 0.815420 -vn -0.101101 0.401757 0.910148 -vn 0.196115 0.114369 0.973889 -vn 0.016503 -0.155347 0.987722 -vn -0.135047 0.074517 0.988033 -vn 0.103091 0.289389 0.951644 -vn 0.289091 0.582958 0.759332 -vn 0.289091 0.582958 0.759332 -vn 0.333256 -0.496530 0.801498 -vn -0.011668 0.032145 0.999415 -vn 0.176408 -0.229461 0.957198 -vn 0.070627 0.358458 0.930871 -vn 0.249537 0.345295 0.904711 -vn -0.573287 0.116872 0.810977 -vn -0.438954 0.239210 0.866082 -vn -0.522128 0.076930 0.849390 -vn -0.240284 0.091689 0.966363 -vn -0.483322 -0.034135 0.874777 -vn -0.381644 -0.146771 0.912582 -vn -0.044584 -0.066594 0.996784 -vn -0.260756 0.069444 0.962904 -vn -0.350908 0.060943 0.934425 -vn -0.334546 -0.038152 0.941607 -vn -0.326434 -0.040016 0.944373 -vn -0.330386 -0.021935 0.943591 -vn -0.370073 -0.063871 0.926804 -vn -0.270580 -0.012081 0.962622 -vn -0.336651 -0.056162 0.939953 -vn -0.341371 0.006645 0.939905 -vn -0.261988 0.002758 0.965067 -vn 0.685358 -0.609169 0.398996 -vn 0.908196 -0.399594 0.124519 -vn 0.992916 0.114304 0.032444 -vn 0.725233 0.685652 -0.062598 -vn 0.553728 0.822869 -0.127560 -vn 0.510606 0.851370 -0.120210 -vn 0.454586 0.886914 -0.082067 -vn 0.358454 0.924533 -0.129417 -vn 0.317834 0.923624 -0.214245 -vn 0.508410 0.824929 -0.247006 -vn 0.458281 0.880058 -0.124404 -vn 0.739797 0.653721 -0.159215 -vn 0.631641 0.774740 -0.028426 -vn 0.479826 0.874937 -0.065214 -vn 0.618842 0.785232 0.021114 -vn 0.889425 0.401034 0.219306 -vn 0.788703 0.528438 0.314167 -vn 0.857543 0.476294 0.194329 -vn 0.940500 0.005865 0.339743 -vn 0.799637 -0.224017 0.557133 -vn 0.801226 0.237059 0.549400 -vn 0.609476 -0.484447 0.627575 -vn 0.532749 -0.668924 0.518381 -vn 0.660939 -0.473983 0.581808 -vn 0.660939 -0.473983 0.581808 -vn 0.382862 -0.298558 0.874231 -vn 0.534605 -0.313203 0.784921 -vn 0.534605 -0.313203 0.784921 -vn 0.990379 0.107971 0.086556 -vn 0.969323 0.245672 -0.007583 -vn 0.990379 0.107971 0.086556 -vn 0.983439 -0.032782 0.178248 -vn 0.983439 -0.032782 0.178248 -vn -0.404293 0.619664 0.672729 -vn -0.385349 0.568001 0.727242 -vn -0.364093 0.512930 0.777393 -vn -0.364093 0.512930 0.777393 -vn -0.385349 0.568001 0.727242 -vn -0.404293 0.619664 0.672729 -vn 0.985796 -0.167944 0.000465 -vn 0.778043 0.598595 0.190613 -vn 0.751640 0.587079 0.300627 -vn 0.766080 0.593798 0.246018 -vn 0.751640 0.587079 0.300627 -vn 0.958606 0.231252 0.166123 -vn 0.999784 0.006265 0.019802 -vn 0.908124 0.401679 0.118171 -vn 0.969394 0.213606 0.121025 -vn 0.863863 0.469643 0.182144 -vn 0.967841 -0.212061 0.135329 -vn 0.934771 -0.122424 0.333491 -vn 0.966841 -0.236496 0.096372 -vn 0.864995 -0.403512 0.298263 -vn 0.657194 -0.315436 0.684541 -vn 0.855626 -0.515742 -0.043749 -vn 0.401240 -0.822345 0.403429 -vn 0.016253 -0.672912 0.739543 -vn 0.458559 -0.878176 -0.136129 -vn 0.167694 -0.811742 0.559422 -vn 0.162091 -0.867926 0.469501 -vn -0.055812 -0.907537 0.416247 -vn 0.164743 -0.833134 0.527965 -vn 0.111008 -0.862968 0.492913 -vn -0.036157 -0.649108 0.759837 -vn 0.409036 -0.479597 0.776322 -vn 0.350569 -0.877673 0.326790 -vn 0.279102 -0.813752 0.509814 -vn 0.112154 -0.909906 0.399365 -vn -0.172801 -0.871154 0.459599 -vn -0.118625 -0.732635 0.670205 -vn 0.058564 -0.617013 0.784771 -vn 0.449750 -0.489164 0.747291 -vn -0.092894 -0.670789 0.735807 -vn -0.127578 -0.700459 0.702198 -vn -0.443133 -0.757984 0.478637 -vn -0.198678 -0.915048 0.351019 -vn 0.260088 -0.946106 -0.192970 -vn 0.212615 -0.963717 -0.161381 -vn 0.247816 -0.931013 0.267961 -vn 0.126413 -0.923683 0.361703 -vn -0.025451 -0.839151 0.543302 -vn -0.181486 -0.845760 0.501749 -vn -0.154818 -0.897565 0.412806 -vn 0.153939 -0.833134 0.531216 -vn 0.203244 -0.723511 0.659715 -vn -0.160166 -0.838148 0.521397 -vn 0.035516 -0.885796 0.462714 -vn 0.065788 -0.979954 0.188048 -vn 0.503608 -0.755247 0.419501 -vn 0.503608 -0.755247 0.419501 -vn 0.000000 -0.955218 0.295901 -vn 0.000000 -0.736423 0.676522 -vn 0.000000 -0.137693 0.990475 -vn 0.000000 0.239035 0.971011 -vn 0.000000 0.975581 0.219640 -vn 0.000000 0.899669 0.436572 -vn 0.000000 0.999965 -0.008373 -vn -0.539974 -0.543198 0.642933 -vn -0.432124 -0.614984 0.659594 -vn -0.254939 -0.712767 0.653429 -vn -0.001390 -0.657256 0.753666 -vn 0.245628 -0.813313 0.527436 -vn 0.049520 -0.953536 0.297181 -vn -0.002561 -0.892701 0.450643 -vn 0.279879 -0.817326 0.503633 -vn 0.382111 -0.858242 0.342655 -vn 0.455666 -0.556788 0.694518 -vn 0.288397 -0.469365 0.834580 -vn 0.035903 -0.728345 0.684269 -vn 0.225022 -0.783683 0.578970 -vn 0.096271 -0.785732 0.611029 -vn 0.290087 -0.783678 0.549271 -vn -0.260149 -0.549274 0.794116 -vn -0.075542 -0.622886 0.778657 -vn -0.294450 -0.552395 0.779846 -vn -0.079074 -0.661674 0.745610 -vn 0.482030 -0.164384 0.860596 -vn 0.570599 -0.213178 0.793078 -vn 0.529929 -0.166882 0.831460 -vn 0.381012 -0.065065 0.922278 -vn 0.024463 -0.574971 0.817808 -vn 0.047406 -0.577530 0.814992 -vn 0.758442 0.103349 0.643495 -vn 0.787061 0.113574 0.606329 -vn 0.719660 0.007386 0.694288 -vn 0.830339 -0.026441 0.556631 -vn 0.671017 -0.510972 0.537256 -vn 0.716687 0.288252 0.635037 -vn 0.412036 -0.297118 0.861363 -vn 0.099628 -0.254804 0.961847 -vn -0.039558 -0.085696 0.995536 -vn -0.042344 0.306808 0.950829 -vn -0.152822 0.694791 0.702788 -vn 0.106852 0.856341 0.505236 -vn 0.000000 0.797506 0.603311 -vn -0.066242 0.316201 0.946377 -vn 0.359801 0.203293 0.910612 -vn 0.829355 0.197342 0.522711 -vn 0.855060 0.358262 0.374860 -vn 0.631815 0.517528 0.577039 -vn 0.754181 0.555497 0.350192 -vn 0.763622 0.564979 0.312539 -vn 0.569973 0.380670 0.728163 -vn 0.038842 0.489106 0.871359 -vn -0.119312 0.857426 0.500585 -vn 0.123194 0.919729 0.372722 -vn 0.000000 0.911884 0.410447 -vn 0.057892 0.973945 0.219272 -vn 0.971910 -0.015045 -0.234872 -vn 0.982671 0.152745 -0.105006 -vn 0.989576 0.127298 0.067334 -vn 0.990808 0.125867 0.049575 -vn 0.955027 0.264680 -0.133674 -vn 0.979671 0.189177 0.066758 -vn 0.935664 0.181119 -0.302867 -vn 0.909578 0.219625 -0.352751 -vn 0.915207 -0.032120 -0.401703 -vn 0.810834 -0.259329 -0.524688 -vn 0.955964 0.096867 -0.277039 -vn 0.971512 0.236046 -0.021138 -vn 0.983481 0.179876 -0.020242 -vn 0.036735 0.999290 -0.008368 -vn 0.539975 -0.543198 0.642933 -vn 0.432124 -0.614984 0.659594 -vn 0.254939 -0.712767 0.653429 -vn 0.001390 -0.657256 0.753666 -vn -0.245628 -0.813313 0.527435 -vn -0.049520 -0.953536 0.297180 -vn 0.002561 -0.892701 0.450642 -vn -0.279879 -0.817326 0.503633 -vn -0.382111 -0.858242 0.342655 -vn -0.455666 -0.556788 0.694518 -vn -0.288397 -0.469365 0.834580 -vn -0.035903 -0.728346 0.684269 -vn -0.225022 -0.783684 0.578969 -vn -0.096271 -0.785732 0.611029 -vn -0.290087 -0.783678 0.549271 -vn 0.260149 -0.549274 0.794116 -vn 0.075542 -0.622886 0.778657 -vn 0.294450 -0.552395 0.779846 -vn 0.079074 -0.661674 0.745610 -vn -0.482030 -0.164384 0.860596 -vn -0.570599 -0.213178 0.793078 -vn -0.529930 -0.166882 0.831460 -vn -0.381012 -0.065065 0.922278 -vn -0.024463 -0.574970 0.817808 -vn -0.047406 -0.577530 0.814992 -vn -0.758442 0.103349 0.643495 -vn -0.787061 0.113574 0.606329 -vn -0.719659 0.007386 0.694288 -vn -0.830339 -0.026441 0.556631 -vn -0.671017 -0.510972 0.537256 -vn -0.716687 0.288252 0.635036 -vn -0.412036 -0.297118 0.861363 -vn -0.099628 -0.254804 0.961847 -vn 0.039558 -0.085696 0.995536 -vn 0.042345 0.306808 0.950829 -vn 0.152822 0.694791 0.702788 -vn -0.106852 0.856341 0.505236 -vn 0.066242 0.316201 0.946377 -vn -0.359801 0.203293 0.910612 -vn -0.829355 0.197342 0.522711 -vn -0.855060 0.358262 0.374860 -vn -0.631815 0.517528 0.577039 -vn -0.754181 0.555497 0.350192 -vn -0.763622 0.564979 0.312539 -vn -0.569973 0.380670 0.728163 -vn -0.200036 0.917607 0.343487 -vn -0.038841 0.489106 0.871359 -vn 0.084659 0.869444 0.486723 -vn -0.004489 0.913716 0.406328 -vn -0.021067 0.923668 0.382615 -vn -0.159047 0.959604 0.232085 -vn -0.481166 0.868794 0.116947 -vn -0.971910 -0.015046 -0.234872 -vn -0.982671 0.152745 -0.105006 -vn -0.548986 0.835456 0.025059 -vn -0.989576 0.127298 0.067333 -vn -0.990808 0.125866 0.049575 -vn -0.955027 0.264680 -0.133674 -vn -0.979671 0.189177 0.066758 -vn -0.935664 0.181119 -0.302867 -vn -0.909578 0.219625 -0.352751 -vn -0.915207 -0.032120 -0.401703 -vn -0.810834 -0.259329 -0.524688 -vn -0.955964 0.096867 -0.277039 -vn -0.971512 0.236046 -0.021138 -vn -0.983481 0.179876 -0.020242 -vn -0.304106 0.952599 0.008666 -vn 0.259239 -0.575670 0.775499 -vn 0.292772 -0.695763 0.655895 -vn 0.252514 -0.908571 0.332770 -vn -0.447387 -0.672022 0.590112 -vn -0.448201 -0.705563 0.548905 -vn -0.392922 -0.702557 0.593318 -vn -0.148267 -0.787303 0.598474 -vn -0.255357 -0.812125 0.524640 -vn -0.320398 -0.591142 0.740200 -vn 0.021606 -0.908113 0.418167 -vn -0.146126 -0.853059 0.500937 -vn 0.252514 -0.908571 0.332770 -vn 0.190580 -0.959569 0.207139 -vn 0.292772 -0.695763 0.655895 -vn 0.259239 -0.575670 0.775499 -vn 0.142019 -0.941333 0.306142 -vn 0.092983 -0.887876 0.450588 -vn 0.106331 -0.819249 0.563493 -vn 0.106331 -0.819249 0.563493 -vn -0.235626 -0.662632 0.710914 -vn -0.113314 -0.647249 0.753809 -vn 0.032747 -0.736102 0.676078 -vn 0.053735 -0.832683 0.551137 -vn 0.032747 -0.736102 0.676078 -vn -0.113314 -0.647249 0.753809 -vn -0.235626 -0.662632 0.710914 -vn 0.010927 -0.620839 0.783862 -vn 0.746341 -0.142436 0.650144 -vn 0.886057 -0.445410 0.128506 -vn 0.896656 -0.270523 -0.350465 -vn 0.901020 -0.431982 -0.039433 -vn 0.795247 -0.490274 0.356670 -vn 0.746341 -0.142436 0.650144 -vn 0.603493 0.170092 0.779016 -vn 0.000000 -0.969186 -0.246329 -vn 0.000000 -0.969186 -0.246329 -vn 0.000000 -0.969186 -0.246329 -vn 0.000000 -0.969186 -0.246329 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -0.627073 -0.111635 0.770920 -vn -0.627073 -0.111635 0.770920 -vn -0.595190 -0.161019 0.787287 -vn -0.595190 -0.161019 0.787287 -vn -0.656620 -0.061834 0.751682 -vn -0.656620 -0.061834 0.751682 -vn 0.672056 0.082543 0.735886 -vn 0.355352 0.041895 0.933793 -vn -0.592319 -0.120476 0.796645 -vn -0.705290 -0.153974 0.691996 -vn -0.394027 -0.066319 0.916703 -vn -0.287416 -0.062043 0.955794 -vn -0.133377 -0.051606 0.989721 -vn -0.011289 -0.026583 0.999583 -vn -0.403045 -0.127509 0.906254 -vn -0.483554 -0.241174 0.841434 -vn -0.629042 -0.383082 0.676428 -vn 0.630799 0.239138 0.738178 -vn 0.909154 0.166336 0.381801 -vn 0.987974 0.139405 0.066883 -vn 0.881686 0.108986 0.459077 -vn 0.868909 0.106364 0.483408 -vn 0.315172 0.017264 0.948878 -vn -0.684810 -0.208489 0.698260 -vn 0.733563 0.124545 0.668112 -vn 0.847229 0.211509 0.487306 -vn 0.750106 0.219929 0.623676 -vn 0.514252 0.297546 0.804370 -vn -0.581267 -0.154698 0.798872 -vn -0.380464 -0.066297 0.922416 -vn -0.232530 -0.056993 0.970918 -vn -0.088012 -0.068017 0.993795 -vn -0.901540 0.361228 0.238203 -vn 0.121934 -0.295563 0.947510 -vn 0.333598 -0.692258 0.639915 -vn 0.271413 -0.953085 0.134027 -vn 0.122922 -0.991509 0.042422 -vn -0.161390 -0.971826 -0.171780 -vn -0.513082 -0.767078 -0.385147 -vn -0.747126 -0.528200 -0.403493 -vn -0.004689 -0.056535 0.998390 -vn -0.888120 -0.279886 -0.364562 -vn -0.756085 -0.312526 -0.575033 -vn -0.465217 -0.484912 -0.740563 -vn -0.600584 -0.336332 -0.725382 -vn -0.791895 0.079491 -0.605462 -vn -0.979295 0.062696 0.192483 -vn -0.987994 0.081768 0.131082 -vn -0.971694 -0.000245 0.236243 -vn -0.979376 -0.167220 0.113400 -vn -0.987994 0.081768 0.131082 -vn -0.979295 0.062696 0.192483 -vn -0.971694 -0.000245 0.236243 -vn -0.979376 -0.167220 0.113400 -vn -0.958163 -0.286182 0.004922 -vn -0.354531 0.428477 0.831093 -vn -0.361400 0.361723 0.859387 -vn -0.387630 0.423647 0.818698 -vn -0.364148 0.430407 0.825922 -vn -0.394940 0.445507 0.803458 -vn -0.464628 0.200825 0.862432 -vn -0.452971 -0.021158 0.891274 -vn -0.449302 -0.007126 0.893352 -vn -0.460345 0.002674 0.887736 -vn -0.447709 -0.051573 0.892691 -vn -0.425665 -0.096364 0.899735 -vn -0.410701 -0.075548 0.908635 -vn -0.506335 -0.026854 0.861918 -vn -0.541817 0.061001 0.838280 -vn -0.554974 0.173119 0.813655 -vn -0.606292 0.103492 0.788479 -vn -0.404823 -0.048977 0.913083 -vn -0.492288 -0.027548 0.869996 -vn -0.491358 -0.022101 0.870677 -vn -0.483934 -0.065044 0.872684 -vn -0.470505 -0.095908 0.877170 -vn -0.468701 -0.116106 0.875693 -vn -0.665242 0.214803 0.715061 -vn -0.016858 0.670372 0.741834 -vn -0.595587 0.279938 0.752935 -vn -0.548995 0.204861 0.810331 -vn 0.010535 0.551230 0.834287 -vn -0.062663 0.213471 0.974938 -vn 0.165119 0.545669 0.821572 -vn 0.076401 0.723326 0.686267 -vn -0.601978 0.304844 0.738033 -vn -0.608014 0.128125 0.783520 -vn -0.321675 -0.108302 0.940636 -vn 0.120314 0.103516 0.987324 -vn -0.197704 0.542177 0.816674 -vn -0.446013 0.326971 0.833164 -vn -0.156908 0.456294 0.875885 -vn -0.168942 0.292593 0.941195 -vn -0.335480 0.253231 0.907374 -vn -0.444862 0.305537 0.841870 -vn -0.333315 0.348085 0.876207 -vn -0.420653 0.125147 0.898548 -vn -0.571431 -0.012155 0.820560 -vn -0.780122 -0.083273 0.620061 -vn -0.361209 0.029292 0.932025 -vn -0.382594 -0.093835 0.919139 -vn -0.688656 -0.218615 0.691347 -vn -0.528448 -0.163162 0.833139 -vn -0.540343 -0.080730 0.837563 -vn -0.724000 -0.096170 0.683064 -vn -0.685200 -0.104080 0.720880 -vn -0.651068 -0.147306 0.744588 -vn -0.629368 -0.180769 0.755790 -vn -0.633565 -0.196288 0.748375 -vn -0.652072 -0.273789 0.706995 -vn -0.832384 -0.166262 0.528672 -vn -0.744343 -0.248130 0.619989 -vn -0.730670 -0.290503 0.617842 -vn -0.749316 -0.378547 0.543349 -vn -0.797013 0.326747 -0.507943 -vn -0.950752 0.307872 0.035844 -vn -0.930675 0.357309 0.078581 -vn -0.935591 0.327946 0.130844 -vn -0.922135 0.361439 0.137947 -vn -0.620249 0.480142 0.620286 -vn -0.660932 0.493747 0.565140 -vn -0.687403 0.458399 0.563337 -vn -0.901677 0.351337 0.252073 -vn -0.888387 0.389753 0.242614 -vn -0.808058 0.406371 0.426502 -vn -0.827315 0.348580 0.440501 -vn -0.633442 0.428809 0.644107 -vn -0.515068 0.462280 0.721805 -vn -0.684726 0.326895 0.651376 -vn -0.419711 0.361219 0.832685 -vn -0.561359 0.201082 0.802772 -vn -0.466082 0.103907 0.878619 -vn -0.218659 0.331612 0.917726 -vn -0.399955 0.093929 0.911709 -vn 0.317084 -0.316295 0.894100 -vn 0.217677 -0.394486 0.892747 -vn 0.446178 -0.404349 0.798390 -vn -0.286324 0.406956 0.867413 -vn -0.440008 0.442910 0.781168 -vn -0.604948 0.225627 0.763630 -vn -0.708900 0.263736 0.654144 -vn -0.620996 0.283541 0.730731 -vn -0.471391 0.706010 0.528526 -vn 0.494493 0.022290 0.868896 -vn -0.081645 0.758667 0.646342 -vn -0.314889 0.818008 0.481361 -vn -0.381940 0.891911 0.242109 -vn -0.295807 0.907113 0.299407 -vn -0.063403 0.878951 0.472678 -vn 0.518829 0.151814 0.841290 -vn -0.233190 0.871844 0.430709 -vn 0.408115 0.174426 0.896113 -vn 0.230970 0.115807 0.966044 -vn -0.157661 0.014923 0.987381 -vn -0.589572 -0.019729 0.807475 -vn -0.722804 0.008457 0.691002 -vn -0.791895 0.079491 -0.605462 -vn -0.600584 -0.336332 -0.725382 -vn -0.465217 -0.484912 -0.740563 -vn -0.756085 -0.312526 -0.575033 -vn -0.888120 -0.279886 -0.364562 -vn -0.747126 -0.528200 -0.403493 -vn -0.513082 -0.767078 -0.385147 -vn -0.161390 -0.971826 -0.171780 -vn -0.041647 -0.976245 0.212628 -vn 0.132164 -0.876472 0.462957 -vn 0.441067 -0.806915 0.392871 -vn -0.622336 0.583674 0.521558 -vn 0.557382 -0.752183 0.351491 -vn -0.901540 0.361228 0.238203 -vn -0.783321 0.541586 0.305112 -vn 0.615491 -0.738999 0.273955 -vn 0.595928 -0.794386 0.117564 -vn 0.687678 -0.709875 0.152238 -vn 0.773549 -0.633595 -0.013403 -vn 0.834875 -0.550285 0.013046 -vn 0.829717 -0.551329 -0.087217 -vn 0.775534 -0.629547 0.047101 -vn 0.762020 -0.642569 -0.080184 -vn 0.775954 -0.630645 0.013500 -vn 0.701713 -0.711998 -0.025626 -vn 0.480682 -0.872693 0.085740 -vn 0.760446 -0.646635 0.059881 -vn 0.572235 -0.800166 0.179673 -vn 0.182950 -0.908112 0.376645 -vn 0.229092 -0.172632 0.957974 -vn 0.064898 0.677294 0.732845 -vn -0.054346 0.850959 0.522413 -vn 0.025155 0.784707 0.619356 -vn 0.111660 0.597000 0.794433 -vn 0.130412 0.483778 0.865420 -vn 0.125941 0.441113 0.888571 -vn 0.136030 0.428580 0.893205 -vn 0.497048 0.292541 0.816923 -vn 0.581760 0.320225 0.747671 -vn 0.566320 0.529324 0.631742 -vn 0.399080 0.839800 0.368064 -vn 0.165219 0.962939 0.213192 -vn -0.180975 -0.892235 0.413720 -vn -0.130051 -0.852940 0.505550 -vn 0.062184 -0.688056 0.722988 -vn -0.068609 -0.816413 0.573378 -vn 0.061690 -0.769669 0.635455 -vn 0.175486 -0.771548 0.611488 -vn 0.892300 0.172524 0.417177 -vn 0.955963 0.171365 0.238261 -vn 0.873843 0.206208 0.440315 -vn 0.896771 0.216759 0.385768 -vn 0.874857 0.211666 0.435686 -vn 0.899490 0.211098 0.382565 -vn 0.875055 0.165775 0.454750 -vn 0.878962 0.165507 0.447251 -vn 0.426812 0.324483 0.844122 -vn 0.150214 0.365475 0.918621 -vn 0.080542 0.963814 0.254115 -vn 0.058293 0.238730 0.969335 -vn 0.058293 0.238730 0.969335 -vn 0.206539 -0.059777 0.976611 -vn -0.797013 0.326747 -0.507943 -vn 0.880669 0.068701 0.468725 -vn 0.890117 0.075529 0.449431 -vn 0.690705 0.079408 0.718763 -vn 0.394663 0.066423 0.916422 -vn -0.723350 -0.098931 0.683358 -vn -0.602617 -0.086043 0.793378 -vn -0.407468 -0.066327 0.910808 -vn -0.341247 -0.066881 0.937591 -vn -0.178897 -0.034900 0.983249 -vn -0.017878 0.003394 0.999834 -vn -0.402357 -0.193102 0.894886 -vn -0.490618 -0.333994 0.804824 -vn -0.561338 -0.462945 0.685990 -vn 0.542180 0.369117 0.754846 -vn 0.538713 0.356049 0.763556 -vn 0.452695 0.343682 0.822770 -vn 0.291626 0.335422 0.895793 -vn 0.226947 0.277663 0.933487 -vn 0.237941 0.227136 0.944348 -vn 0.237941 0.227136 0.944348 -vn 0.226947 0.277663 0.933487 -vn 0.291626 0.335422 0.895793 -vn 0.452695 0.343682 0.822770 -vn 0.538713 0.356049 0.763556 -vn 0.522250 0.508353 0.684714 -vn 0.518989 0.574123 0.633272 -vn 0.522428 0.591810 0.613865 -vn 0.516000 0.605509 0.605890 -vn 0.517128 0.565105 0.642833 -vn -0.918894 -0.353792 0.174546 -vn -0.918894 -0.353792 0.174546 -vn -0.873309 -0.487103 0.007921 -vn -0.853171 -0.521407 0.015309 -vn -0.880686 -0.471698 0.043516 -vn -0.882640 -0.465839 0.062778 -vn -0.888832 -0.450220 0.085324 -vn -0.893194 -0.429553 0.132995 -vn -0.840967 -0.539308 0.043839 -vn -0.840967 -0.539308 0.043839 -vn -0.853171 -0.521407 0.015309 -vn -0.873309 -0.487103 0.007921 -vn -0.880686 -0.471698 0.043516 -vn -0.882640 -0.465839 0.062778 -vn -0.888832 -0.450220 0.085324 -vn -0.893194 -0.429553 0.132995 -vn -0.939475 -0.288121 0.185400 -vn -0.939475 -0.288121 0.185400 -vn -0.573576 0.664666 0.478780 -vn -0.449451 0.630971 0.632352 -vn -0.349559 0.679393 0.645162 -vn -0.483576 0.704932 0.518869 -vn -0.223400 0.704019 0.674129 -vn -0.420007 0.686787 0.593227 -vn -0.223976 0.672852 0.705057 -vn -0.534282 0.599622 0.595816 -vn -0.170947 0.530884 0.830024 -vn -0.593948 0.416422 0.688345 -vn -0.088895 0.494920 0.864380 -vn -0.582938 0.296662 0.756422 -vn -0.300255 0.750204 0.589102 -vn -0.775652 0.350674 0.524778 -vn -0.506342 0.824002 0.254240 -vn -0.901844 0.276854 0.331707 -vn -0.530901 0.825210 0.192801 -vn -0.911424 0.209264 0.354280 -vn -0.674685 0.671689 0.305995 -vn -0.600817 0.706114 0.374730 -vn -0.598850 0.637791 0.484357 -vn -0.787274 0.455514 0.415581 -vn -0.890739 0.213891 0.401041 -vn -0.904150 0.012157 0.427042 -vn -0.948872 -0.157890 0.273336 -vn -0.877723 -0.406240 0.254108 -vn -0.790425 -0.521832 0.320811 -vn -0.686048 0.709282 0.162040 -vn -0.749420 0.614790 0.245770 -vn -0.719531 0.663693 0.204416 -vn -0.749420 0.614790 0.245770 -vn -0.719531 0.663693 0.204416 -vn -0.686048 0.709282 0.162040 -vn -0.624079 -0.343144 0.701981 -vn -0.523755 -0.440076 0.729393 -vn -0.412846 -0.528113 0.742061 -vn -0.412846 -0.528113 0.742061 -vn -0.523755 -0.440076 0.729393 -vn -0.624079 -0.343144 0.701981 -vn -0.808537 -0.027561 0.587799 -vn -0.946588 -0.259753 0.191047 -vn -0.976977 -0.117484 0.178080 -vn -0.968393 0.151657 0.198029 -vn -0.897670 0.126681 0.422067 -vn 0.161109 0.780577 0.603940 -vn 0.158318 0.581766 0.797799 -vn 0.049724 0.650732 0.757677 -vn 0.294269 0.500087 0.814444 -vn -0.221684 0.390190 0.893649 -vn 0.190112 0.648891 0.736748 -vn -0.706576 0.359084 0.609761 -vn 0.094556 0.527366 0.844360 -vn -0.352175 0.618989 0.702015 -vn -0.292781 0.685325 0.666790 -vn -0.102978 0.685603 0.720655 -vn 0.249493 0.570902 0.782192 -vn 0.330858 0.531987 0.779438 -vn 0.222929 0.657917 0.719338 -vn 0.362748 0.663553 0.654302 -vn 0.503150 0.560902 0.657442 -vn 0.517499 0.519483 0.679950 -vn 0.609163 0.521054 0.597849 -vn 0.674086 0.561273 0.480188 -vn 0.663502 0.590652 0.459232 -vn 0.138923 0.765759 0.627944 -vn 0.188934 0.760750 0.620938 -vn 0.607112 0.552177 0.571415 -vn 0.216672 0.742646 0.633664 -vn 0.573847 0.634858 0.517354 -vn 0.690702 0.510844 0.511829 -vn 0.608543 0.641438 0.467153 -vn 0.606077 0.680336 0.412085 -vn 0.336308 0.727851 0.597603 -vn 0.734526 0.329784 0.593056 -vn -0.538953 0.672200 0.507618 -vn -0.598071 0.707983 0.375594 -vn -0.799700 0.536873 0.268788 -vn -0.968393 0.151657 0.198029 -vn -0.976977 -0.117484 0.178080 -vn -0.969154 -0.240242 -0.055004 -vn -0.911138 -0.400370 -0.097628 -vn -0.825038 -0.548157 -0.137243 -vn -0.969154 -0.240242 -0.055004 -vn -0.911138 -0.400370 -0.097628 -vn -0.825038 -0.548157 -0.137243 -vn -0.685358 -0.609169 0.398996 -vn -0.908196 -0.399594 0.124519 -vn -0.992916 0.114305 0.032444 -vn -0.725233 0.685652 -0.062598 -vn -0.553728 0.822869 -0.127560 -vn -0.510606 0.851370 -0.120210 -vn -0.454586 0.886914 -0.082067 -vn -0.358454 0.924533 -0.129417 -vn -0.317834 0.923624 -0.214245 -vn -0.508410 0.824929 -0.247006 -vn -0.458281 0.880058 -0.124404 -vn -0.739797 0.653721 -0.159215 -vn -0.631641 0.774740 -0.028426 -vn -0.479826 0.874937 -0.065214 -vn -0.618842 0.785232 0.021114 -vn -0.889425 0.401034 0.219305 -vn -0.788703 0.528438 0.314167 -vn -0.857543 0.476294 0.194329 -vn -0.940500 0.005865 0.339743 -vn -0.799637 -0.224017 0.557133 -vn -0.801226 0.237059 0.549400 -vn -0.609476 -0.484447 0.627575 -vn -0.532749 -0.668924 0.518381 -vn -0.660939 -0.473982 0.581808 -vn -0.660939 -0.473982 0.581808 -vn -0.382862 -0.298558 0.874231 -vn -0.534605 -0.313203 0.784921 -vn -0.534605 -0.313203 0.784921 -vn -0.990379 0.107971 0.086556 -vn -0.969323 0.245672 -0.007583 -vn -0.990379 0.107971 0.086556 -vn -0.983439 -0.032782 0.178248 -vn -0.983439 -0.032782 0.178248 -vn 0.404293 0.619664 0.672729 -vn 0.385349 0.568001 0.727242 -vn 0.364093 0.512929 0.777393 -vn 0.364093 0.512929 0.777393 -vn 0.385349 0.568001 0.727242 -vn 0.404293 0.619664 0.672729 -vn -0.985796 -0.167945 0.000465 -vn -0.778043 0.598595 0.190612 -vn -0.751639 0.587080 0.300625 -vn -0.766080 0.593799 0.246017 -vn -0.751639 0.587080 0.300625 -vn -0.958606 0.231252 0.166122 -vn -0.999784 0.006265 0.019802 -vn -0.908125 0.401678 0.118170 -vn -0.969395 0.213606 0.121025 -vn -0.863863 0.469643 0.182144 -vn -0.967841 -0.212061 0.135329 -vn -0.934771 -0.122424 0.333491 -vn -0.966841 -0.236496 0.096372 -vn -0.864995 -0.403512 0.298263 -vn -0.657194 -0.315436 0.684541 -vn -0.855626 -0.515742 -0.043749 -vn -0.401241 -0.822345 0.403429 -vn -0.016253 -0.672912 0.739543 -vn -0.458559 -0.878176 -0.136129 -vn -0.167694 -0.811742 0.559423 -vn -0.162091 -0.867926 0.469501 -vn 0.055812 -0.907537 0.416247 -vn -0.164743 -0.833134 0.527965 -vn -0.111008 -0.862968 0.492913 -vn 0.036157 -0.649107 0.759837 -vn -0.409036 -0.479597 0.776322 -vn -0.350569 -0.877673 0.326791 -vn -0.279102 -0.813752 0.509814 -vn -0.112154 -0.909906 0.399365 -vn 0.172801 -0.871154 0.459599 -vn 0.118625 -0.732635 0.670205 -vn -0.058564 -0.617013 0.784771 -vn -0.449750 -0.489164 0.747291 -vn 0.092894 -0.670789 0.735807 -vn 0.127579 -0.700458 0.702198 -vn 0.443133 -0.757984 0.478637 -vn 0.198678 -0.915048 0.351019 -vn -0.260088 -0.946106 -0.192970 -vn -0.212615 -0.963717 -0.161381 -vn -0.247816 -0.931012 0.267961 -vn -0.126413 -0.923683 0.361703 -vn 0.025451 -0.839151 0.543302 -vn 0.181486 -0.845760 0.501749 -vn 0.154818 -0.897565 0.412806 -vn -0.153939 -0.833134 0.531216 -vn -0.203244 -0.723511 0.659715 -vn 0.160166 -0.838148 0.521397 -vn -0.035516 -0.885796 0.462713 -vn -0.065788 -0.979954 0.188048 -vn -0.503608 -0.755248 0.419500 -vn -0.503608 -0.755248 0.419500 -vn -0.259239 -0.575670 0.775499 -vn -0.292772 -0.695763 0.655895 -vn -0.252515 -0.908571 0.332770 -vn 0.447387 -0.672022 0.590112 -vn 0.448201 -0.705563 0.548905 -vn 0.392922 -0.702557 0.593318 -vn 0.148267 -0.787303 0.598474 -vn 0.255357 -0.812125 0.524640 -vn 0.320398 -0.591142 0.740200 -vn -0.021606 -0.908113 0.418167 -vn 0.146126 -0.853059 0.500937 -vn -0.252515 -0.908571 0.332770 -vn -0.190580 -0.959569 0.207139 -vn -0.292772 -0.695763 0.655895 -vn -0.259239 -0.575670 0.775499 -vn -0.142019 -0.941333 0.306142 -vn -0.092983 -0.887876 0.450588 -vn -0.106331 -0.819249 0.563493 -vn -0.106331 -0.819249 0.563493 -vn 0.235626 -0.662632 0.710915 -vn 0.113314 -0.647249 0.753810 -vn -0.032747 -0.736102 0.676078 -vn -0.053735 -0.832683 0.551137 -vn -0.032747 -0.736102 0.676078 -vn 0.113314 -0.647249 0.753810 -vn 0.235626 -0.662632 0.710915 -vn -0.010927 -0.620839 0.783862 -vn -0.746341 -0.142436 0.650144 -vn -0.886057 -0.445410 0.128507 -vn -0.896656 -0.270523 -0.350465 -vn -0.901020 -0.431982 -0.039433 -vn -0.795247 -0.490273 0.356670 -vn -0.746341 -0.142436 0.650144 -vn -0.603493 0.170092 0.779016 -vn -0.699043 -0.517867 0.493105 -vn 0.284599 -0.717583 0.635671 -vn 0.223723 -0.905973 0.359391 -vn 0.185453 -0.407658 0.894104 -vn 0.125021 -0.816910 0.563053 -vn 0.038506 -0.992125 0.119187 -vn 0.144397 0.082654 0.986062 -vn -0.084362 0.056888 0.994810 -vn -0.558607 -0.293997 0.775580 -vn -0.722188 -0.541797 0.430001 -vn -0.730028 -0.559390 0.392609 -vn -0.036857 -0.535234 0.843899 -vn -0.272377 -0.479566 0.834163 -vn -0.531875 -0.594230 0.603325 -vn -0.630713 -0.679417 0.374957 -vn -0.673974 -0.647421 0.355816 -vn -0.203718 -0.922848 0.326879 -vn -0.362993 -0.832391 0.418761 -vn -0.446477 -0.814356 0.370785 -vn -0.521437 -0.795245 0.309336 -vn -0.043830 -0.538842 0.841266 -vn -0.050004 -0.593631 0.803183 -vn 0.039861 -0.455655 0.889264 -vn -0.056481 -0.298694 0.952676 -vn -0.228791 -0.474494 0.850006 -vn -0.471892 -0.706179 0.527853 -vn -0.587768 -0.699320 0.406792 -vn -0.493489 -0.765703 0.412512 -vn -0.146023 -0.728648 0.669141 -vn -0.017987 -0.615525 0.787912 -vn -0.032276 -0.534983 0.844246 -vn 0.050543 -0.605265 0.794418 -vn -0.031212 -0.555987 0.830605 -vn -0.419214 -0.696423 0.582456 -vn -0.527791 -0.635917 0.563068 -vn -0.307593 -0.508399 0.804312 -vn -0.203572 -0.589057 0.782029 -vn 0.028540 -0.652699 0.757079 -vn 0.085700 -0.639657 0.763868 -vn 0.018446 -0.538217 0.842604 -vn 0.699043 -0.517867 0.493105 -vn -0.284598 -0.717584 0.635671 -vn -0.223723 -0.905973 0.359390 -vn -0.185452 -0.407659 0.894104 -vn -0.125021 -0.816910 0.563052 -vn -0.038506 -0.992125 0.119186 -vn -0.144397 0.082654 0.986062 -vn 0.084362 0.056888 0.994810 -vn 0.558607 -0.293997 0.775580 -vn 0.722188 -0.541797 0.430000 -vn 0.730029 -0.559389 0.392609 -vn 0.036857 -0.535235 0.843899 -vn 0.272377 -0.479566 0.834163 -vn 0.531875 -0.594230 0.603324 -vn 0.630714 -0.679417 0.374956 -vn 0.673974 -0.647421 0.355816 -vn 0.203719 -0.922849 0.326878 -vn 0.362993 -0.832391 0.418761 -vn 0.446477 -0.814356 0.370785 -vn 0.521437 -0.795245 0.309336 -vn 0.043830 -0.538842 0.841266 -vn 0.050003 -0.593631 0.803182 -vn -0.039862 -0.455655 0.889264 -vn 0.056481 -0.298694 0.952676 -vn 0.228791 -0.474494 0.850006 -vn 0.471892 -0.706180 0.527852 -vn 0.587768 -0.699321 0.406792 -vn 0.493488 -0.765704 0.412513 -vn 0.146022 -0.728648 0.669141 -vn 0.017987 -0.615525 0.787912 -vn 0.032276 -0.534983 0.844246 -vn -0.050543 -0.605265 0.794418 -vn 0.031212 -0.555987 0.830605 -vn 0.419213 -0.696423 0.582457 -vn 0.527791 -0.635917 0.563068 -vn 0.307593 -0.508399 0.804312 -vn 0.203572 -0.589057 0.782030 -vn -0.028541 -0.652699 0.757079 -vn -0.085700 -0.639657 0.763868 -vn -0.018446 -0.538217 0.842604 -vn -0.042467 -0.350109 0.935746 -vn 0.032358 0.013495 0.999385 -vn 0.000000 0.009058 0.999959 -vn 0.000000 -0.357516 0.933907 -vn -0.019243 -0.343167 0.939077 -vn -0.110977 -0.662777 0.740548 -vn 0.000000 -0.673370 0.739306 -vn -0.191956 -0.647972 0.737078 -vn -0.032358 0.013495 0.999385 -vn 0.042467 -0.350109 0.935746 -vn 0.019243 -0.343167 0.939077 -vn 0.110978 -0.662777 0.740548 -vn 0.191956 -0.647972 0.737078 -vn -0.270387 0.410353 0.870920 -vn -0.105769 0.425786 0.898621 -vn -0.270387 0.410353 0.870920 -vn -0.501858 0.419546 0.756386 -vn -0.501858 0.419546 0.756386 -vn -0.533126 0.638612 0.554933 -vn -0.533126 0.638612 0.554933 -vn -0.466699 0.791727 0.394157 -vn -0.466699 0.791727 0.394157 -vn -0.952014 -0.262935 -0.156637 -vn -0.980456 -0.146404 -0.131425 -vn -0.890722 -0.447672 -0.078768 -vn -0.909884 -0.414253 0.022464 -vn -0.750245 0.044436 0.659665 -vn -0.918125 -0.127931 0.375073 -vn -0.990390 -0.066207 -0.121423 -vn -0.966380 -0.119457 -0.227684 -vn -0.961455 -0.171437 -0.214973 -vn -0.940890 -0.281455 -0.188440 -vn -0.871784 -0.478259 -0.106120 -vn -0.855293 -0.512673 -0.075098 -vn -0.882476 -0.458987 0.102799 -vn -0.936246 -0.210295 -0.281460 -vn -0.960482 -0.154544 -0.231496 -vn -0.942102 -0.281316 -0.182497 -vn -0.935227 -0.344762 0.080557 -vn -0.935892 -0.310618 0.166201 -vn -0.808334 -0.574003 0.130833 -vn -0.647675 -0.751602 0.124946 -vn -0.587775 -0.801059 -0.113246 -vn -0.831664 -0.447963 0.328121 -vn -0.954065 -0.077913 -0.289292 -vn -0.995249 -0.016350 -0.095982 -vn -0.907408 -0.250137 -0.337700 -vn -0.857955 -0.507869 0.077344 -vn -0.976898 -0.202764 -0.067500 -vn -0.883889 -0.433015 0.176742 -vn -0.979638 -0.200574 -0.008969 -vn -0.941418 -0.245395 0.231328 -vn -0.981620 -0.144393 0.124793 -vn -0.978947 -0.109001 0.172574 -vn -0.935991 -0.189747 0.296507 -vn -0.899077 -0.182951 0.397729 -vn -0.745436 -0.536030 0.396229 -vn -0.797983 -0.320094 0.510650 -vn -0.906001 -0.195175 0.375592 -vn -0.953837 -0.208375 0.216275 -vn -0.913666 -0.272554 0.301545 -vn -0.922710 -0.264441 0.280495 -vn -0.882222 -0.261769 0.391358 -vn -0.866761 -0.309337 0.391199 -vn -0.818278 -0.315496 0.480503 -vn -0.830459 -0.351032 0.432567 -vn -0.808037 -0.215202 0.548419 -vn -0.969678 -0.148208 0.194316 -vn -0.922470 -0.252269 0.292249 -vn -0.867244 -0.318435 0.382738 -vn -0.836261 -0.340015 0.430184 -vn -0.984749 -0.050019 0.166636 -vn -0.923911 -0.145237 0.353971 -vn -0.981118 -0.099794 0.165675 -vn -0.944614 -0.194537 0.264309 -vn -0.880393 -0.291015 0.374457 -vn -0.824837 -0.315373 0.469238 -vn -0.867338 -0.331298 0.371439 -vn -0.821682 -0.474521 0.315705 -vn -0.622916 -0.484375 0.614294 -vn -0.987857 -0.135015 0.076870 -vn -0.979930 -0.195497 0.038967 -vn -0.979199 -0.164018 0.119446 -vn -0.949129 -0.225368 0.219914 -vn -0.886606 -0.298748 0.353099 -vn -0.708787 -0.249233 0.659927 -vn -0.678444 -0.409568 0.609892 -vn -0.642536 -0.219827 0.734046 -vn -0.442992 -0.162265 0.881719 -vn -0.858498 -0.229279 0.458708 -vn -0.925715 -0.225640 0.303543 -vn -0.972152 -0.187798 0.140186 -vn -0.909095 -0.174774 0.378154 -vn -0.930710 -0.126967 0.343014 -vn -0.963417 -0.107897 0.245326 -vn -0.918487 -0.113375 0.378849 -vn -0.987337 -0.051872 0.149917 -vn -0.954725 -0.056138 0.292145 -vn -0.793642 -0.245089 0.556834 -vn -0.864674 -0.261001 0.429205 -vn -0.841018 -0.069239 0.536558 -vn -0.668765 -0.107613 0.735645 -vn -0.383153 -0.167862 0.908304 -vn -0.690412 -0.337410 0.639911 -vn -0.470954 -0.330356 0.817965 -vn -0.716078 -0.513890 0.472386 -vn -0.635659 -0.745485 0.200472 -vn -0.672918 -0.288018 0.681342 -vn -0.502514 -0.864351 -0.019426 -vn -0.489068 -0.863343 -0.124305 -vn -0.504481 -0.846857 0.168320 -vn -0.402408 -0.915304 0.016936 -vn -0.380776 -0.923102 -0.053776 -vn -0.374887 -0.916704 -0.138250 -vn -0.756917 -0.386773 0.526766 -vn -0.763653 -0.273459 0.584854 -vn -0.456364 -0.805486 0.378054 -vn -0.288102 -0.949738 0.122456 -vn -0.204438 -0.976318 0.070776 -vn -0.224124 -0.973921 0.035305 -vn -0.245111 -0.968799 0.036716 -vn -0.262883 -0.962136 -0.072016 -vn -0.231176 -0.957851 -0.170524 -vn -0.217169 -0.775478 0.592850 -vn -0.147784 -0.957533 0.247569 -vn -0.004565 -0.799001 0.601312 -vn 0.017991 -0.918876 0.394137 -vn 0.000000 -0.795542 0.605899 -vn 0.000000 -0.918713 0.394925 -vn -0.035993 -0.953102 0.300502 -vn 0.000000 -0.953121 0.302591 -vn 0.000000 -0.998422 0.056155 -vn -0.063904 -0.996653 0.050974 -vn 0.000000 -0.998107 0.061495 -vn -0.075869 -0.995651 0.054062 -vn -0.089385 -0.994760 0.049628 -vn 0.000000 -0.998635 0.052236 -vn -0.120252 -0.988258 -0.094268 -vn 0.000000 -0.994159 -0.107922 -vn -0.130043 -0.973060 -0.190374 -vn 0.000000 -0.980614 -0.195948 -vn -0.122150 -0.975119 -0.184991 -vn 0.000000 -0.984463 -0.175591 -vn -0.164304 -0.967025 -0.194593 -vn -0.621329 -0.134111 0.771987 -vn -0.353151 -0.250206 0.901488 -vn -0.041579 -0.437559 0.898228 -vn 0.000000 -0.314285 0.949329 -vn -0.061287 -0.339315 0.938674 -vn -0.086949 -0.464824 0.881124 -vn -0.289941 -0.229837 0.929037 -vn 0.000000 -0.384634 0.923069 -vn 0.000000 -0.527299 0.849680 -vn -0.395235 0.108735 0.912122 -vn -0.436901 -0.057248 0.897686 -vn -0.605873 0.057070 0.793512 -vn -0.691440 0.073643 0.718670 -vn -0.638897 -0.096424 0.763225 -vn -0.628759 -0.252843 0.735345 -vn -0.544124 -0.216863 0.810494 -vn -0.578730 -0.180551 0.795282 -vn -0.645211 -0.013591 0.763883 -vn -0.475512 -0.100011 0.874006 -vn -0.390824 -0.085748 0.916463 -vn 0.000000 -0.053110 0.998589 -vn -0.567764 -0.282574 0.773173 -vn -0.575355 -0.369817 0.729522 -vn -0.513299 -0.424267 0.746004 -vn -0.557132 -0.448099 0.699150 -vn -0.548898 -0.373155 0.747975 -vn -0.478887 -0.475925 0.737674 -vn -0.617962 -0.430917 0.657597 -vn 0.000000 -0.066706 0.997773 -vn -0.329623 -0.110896 0.937577 -vn -0.445591 -0.208021 0.870733 -vn -0.381992 -0.483105 0.787840 -vn -0.386579 -0.594777 0.704838 -vn -0.216527 -0.538921 0.814052 -vn -0.169084 -0.732456 0.659484 -vn 0.000000 -0.555852 0.831281 -vn 0.000000 -0.766300 0.642482 -vn 0.000000 -0.545494 0.838115 -vn -0.270635 -0.548378 0.791226 -vn -0.396435 -0.543115 0.740179 -vn -0.570879 -0.446838 0.688792 -vn -0.624007 -0.336884 0.705071 -vn -0.578007 -0.266686 0.771224 -vn 0.000000 -0.339882 0.940468 -vn -0.319217 -0.378810 0.868679 -vn -0.238897 -0.559967 0.793326 -vn -0.491634 -0.552992 0.672678 -vn -0.649406 -0.462970 0.603267 -vn -0.692537 -0.019397 0.721122 -vn -0.650763 0.121746 0.749457 -vn -0.634170 0.041017 0.772105 -vn -0.395205 -0.075946 0.915448 -vn -0.359372 -0.099091 0.927918 -vn 0.000000 -0.088823 0.996047 -vn 0.000000 0.360038 0.932938 -vn -0.287402 0.308714 0.906695 -vn -0.354807 0.275116 0.893545 -vn -0.592048 0.140416 0.793576 -vn -0.637150 0.033288 0.770021 -vn -0.398905 -0.526217 0.750979 -vn -0.618180 -0.087493 0.781152 -vn -0.512457 0.322559 0.795829 -vn -0.318457 0.465784 0.825609 -vn -0.178960 0.417486 0.890886 -vn 0.000000 0.476430 0.879213 -vn -0.487906 -0.431401 0.758842 -vn -0.483722 0.089844 0.870598 -vn -0.379428 -0.027096 0.924825 -vn -0.252160 -0.225711 0.940994 -vn 0.000000 -0.253897 0.967231 -vn -0.273597 -0.802168 0.530728 -vn 0.000000 -0.847446 0.530882 -vn -0.231462 -0.812863 0.534490 -vn -0.236908 -0.805986 0.542459 -vn 0.000000 -0.821576 0.570098 -vn -0.250030 -0.797610 0.548912 -vn -0.238041 -0.783912 0.573427 -vn -0.239039 -0.776186 0.583434 -vn -0.443288 -0.725499 0.526447 -vn -0.598994 -0.456011 0.658225 -vn -0.429183 -0.300884 0.851628 -vn -0.387573 -0.321812 0.863843 -vn -0.294932 -0.391271 0.871735 -vn 0.000000 -0.430292 0.902690 -vn -0.456505 -0.571068 0.682265 -vn -0.225894 -0.560651 0.796645 -vn -0.125863 -0.619219 0.775065 -vn -0.512130 -0.408450 0.755574 -vn -0.481812 -0.448555 0.752765 -vn -0.418851 -0.443982 0.792114 -vn -0.529444 -0.377328 0.759811 -vn -0.552559 -0.238810 0.798529 -vn -0.352537 -0.066139 0.933458 -vn -0.477995 -0.108156 0.871678 -vn -0.365297 0.021114 0.930651 -vn -0.309476 0.077575 0.947738 -vn 0.000000 0.061022 0.998136 -vn -0.468673 -0.193955 0.861816 -vn -0.393465 -0.302198 0.868252 -vn -0.435525 -0.381572 0.815304 -vn -0.661919 -0.278359 0.695974 -vn -0.404049 -0.256486 0.878043 -vn -0.233462 -0.141439 0.962024 -vn -0.391302 0.171539 0.904133 -vn -0.501513 0.191642 0.843657 -vn -0.290551 0.210412 0.933438 -vn -0.361013 0.019272 0.932362 -vn 0.000000 -0.020423 0.999791 -vn -0.534184 -0.058804 0.843320 -vn -0.335099 0.030481 0.941690 -vn -0.200182 -0.015059 0.979643 -vn -0.676716 -0.151883 0.720408 -vn -0.441583 -0.179665 0.879048 -vn -0.666688 0.081829 0.740832 -vn -0.966686 -0.173590 0.188106 -vn -0.932960 -0.136234 0.333206 -vn -0.548535 -0.302365 0.779541 -vn -0.129200 -0.313000 0.940924 -vn -0.435133 -0.427967 0.792151 -vn 0.000000 -0.815243 0.579119 -vn -0.727933 -0.128099 0.673575 -vn -0.877700 0.026049 0.478501 -vn -0.868641 0.032692 0.494362 -vn -0.847829 -0.114537 0.517751 -vn -0.717016 -0.264832 0.644788 -vn -0.834325 -0.034975 0.550162 -vn -0.883811 0.024081 0.467224 -vn -0.957092 -0.185074 0.222985 -vn -0.569079 -0.679037 0.463744 -vn 0.140199 -0.928946 0.342641 -vn -0.743054 -0.586543 0.322239 -vn -0.879801 -0.130693 0.457023 -vn -0.452351 -0.144257 0.880096 -vn -0.359851 -0.032581 0.932441 -vn -0.411625 -0.071366 0.908555 -vn -0.642403 -0.101305 0.759641 -vn -0.481087 -0.243058 0.842305 -vn -0.452434 -0.306952 0.837308 -vn -0.446193 -0.231764 0.864406 -vn -0.866507 -0.042473 0.497355 -vn -0.870409 -0.387642 0.303516 -vn -0.834596 -0.026340 0.550232 -vn -0.903313 0.003019 0.428972 -vn -0.831958 -0.248661 0.495997 -vn -0.745913 0.016230 0.665846 -vn -0.689975 0.062932 0.721092 -vn -0.320354 0.044276 0.946263 -vn -0.465763 -0.064939 0.882524 -vn -0.563892 -0.276189 0.778296 -vn -0.511860 -0.627405 0.586824 -vn 0.000000 -0.793339 0.608781 -vn 0.000000 -0.430480 0.902600 -vn -0.372246 0.009748 0.928083 -vn 0.000000 -0.083393 0.996517 -vn -0.262328 -0.957610 -0.119029 -vn 0.000000 -0.999508 0.031377 -vn -0.259302 -0.910269 -0.322758 -vn -0.038100 -0.938179 -0.344048 -vn 0.147260 -0.986968 -0.064868 -vn -0.173697 -0.982288 -0.070287 -vn 0.000000 -0.997450 -0.071371 -vn 0.000000 0.068246 0.997669 -vn 0.000000 -0.023245 0.999730 -vn -0.476302 -0.002893 0.879277 -vn 0.000000 -0.031220 0.999513 -vn -0.689723 0.028653 0.723507 -vn -0.804070 0.054918 0.591993 -vn -0.668285 0.120039 0.734156 -vn -0.818452 0.111155 0.563721 -vn -0.507929 0.139820 0.849976 -vn 0.000000 0.155850 0.987781 -vn -0.760442 0.036534 0.648377 -vn -0.806583 0.121802 0.578435 -vn -0.489838 -0.094281 0.866701 -vn -0.348316 -0.039260 0.936555 -vn -0.547406 0.028820 0.836371 -vn 0.000000 0.032871 0.999460 -vn -0.645014 -0.010417 0.764100 -vn -0.786001 -0.145157 0.600942 -vn -0.830260 -0.257130 0.494523 -vn 0.000000 -0.560395 0.828225 -vn -0.517422 -0.499928 0.694512 -vn -0.551275 -0.507531 0.662200 -vn -0.550581 -0.587067 0.593476 -vn -0.653781 -0.618140 0.436432 -vn 0.000000 -0.589548 0.807733 -vn -0.365876 -0.653625 0.662502 -vn -0.370038 -0.728041 0.577086 -vn -0.325447 -0.764693 0.556173 -vn -0.273021 -0.509246 0.816167 -vn 0.000000 -0.419293 0.907851 -vn -0.163589 -0.611286 0.774318 -vn -0.173654 -0.441360 0.880367 -vn 0.000000 -0.321958 0.946754 -vn -0.063640 -0.439167 0.896149 -vn -0.021257 -0.200021 0.979561 -vn -0.161815 -0.363628 0.917383 -vn 0.000000 -0.113091 0.993585 -vn 0.015283 -0.080866 0.996608 -vn 0.000000 -0.093188 0.995649 -vn -0.041156 -0.179251 0.982942 -vn 0.000000 -0.184602 0.982813 -vn -0.074307 -0.123251 0.989590 -vn -0.009657 -0.101854 0.994753 -vn -0.026243 -0.130211 0.991139 -vn -0.896280 -0.072788 0.437475 -vn -0.891806 -0.074388 0.446261 -vn -0.845339 -0.069647 0.529671 -vn -0.891887 -0.175856 0.416668 -vn -0.838651 -0.217689 0.499276 -vn -0.858102 -0.238460 0.454751 -vn -0.802411 -0.169881 0.572080 -vn -0.798795 0.004094 0.601589 -vn -0.532479 -0.129885 0.836419 -vn -0.563183 -0.039333 0.825396 -vn -0.619724 -0.173675 0.765362 -vn -0.608674 -0.211802 0.764628 -vn -0.785540 -0.197828 0.586336 -vn -0.824542 -0.140038 0.548197 -vn -0.789343 -0.176661 0.587987 -vn -0.766768 -0.046604 0.640231 -vn -0.465704 0.084934 0.880855 -vn -0.525843 -0.111551 0.843235 -vn -0.122270 -0.205991 0.970885 -vn -0.097209 -0.329188 0.939247 -vn -0.196417 -0.133287 0.971419 -vn -0.162640 -0.087052 0.982838 -vn -0.101349 -0.037653 0.994138 -vn -0.166564 0.098801 0.981068 -vn -0.440641 0.450782 0.776293 -vn -0.301292 0.258709 0.917765 -vn -0.686632 0.254326 0.681069 -vn -0.042423 -0.336081 0.940877 -vn -0.111689 -0.378002 0.919043 -vn -0.088696 -0.037132 0.995366 -vn -0.140346 -0.131793 0.981292 -vn 0.000000 -0.167991 0.985789 -vn -0.146236 -0.072286 0.986605 -vn -0.168776 0.045311 0.984612 -vn -0.218437 0.020537 0.975635 -vn -0.412273 0.641608 0.646815 -vn -0.369036 0.298169 0.880289 -vn -0.259423 -0.168573 0.950938 -vn -0.191770 -0.102018 0.976123 -vn 0.000000 -0.087270 0.996185 -vn -0.122346 0.088083 0.988571 -vn 0.000000 0.127514 0.991837 -vn -0.061865 0.040147 0.997277 -vn 0.000000 0.156605 0.987661 -vn -0.053486 -0.197374 0.978868 -vn 0.000000 0.019847 0.999803 -vn -0.382948 -0.794495 0.471305 -vn -0.318060 -0.355405 0.878934 -vn -0.400096 -0.694517 0.597971 -vn -0.408987 -0.806254 0.427416 -vn -0.163969 -0.833752 0.527230 -vn 0.119771 -0.270481 0.955246 -vn -0.203004 -0.939816 0.274835 -vn -0.058188 -0.324712 0.944021 -vn -0.145094 -0.355209 0.923458 -vn -0.525079 -0.250624 0.813314 -vn -0.807446 -0.264194 0.527477 -vn -0.662089 -0.560701 0.497245 -vn -0.199675 -0.902911 0.380632 -vn -0.242636 -0.877019 0.414687 -vn -0.272474 -0.924026 -0.268205 -vn -0.364995 -0.819586 0.441652 -vn -0.108220 -0.976991 -0.183786 -vn -0.543950 -0.723506 0.425038 -vn -0.232064 -0.927209 -0.293991 -vn -0.413369 -0.750624 0.515451 -vn -0.307411 -0.278843 0.909805 -vn -0.450628 -0.282788 0.846738 -vn -0.676849 -0.382426 0.628989 -vn -0.826819 -0.388400 0.406836 -vn -0.791595 -0.443050 0.420812 -vn -0.142738 -0.934012 0.327488 -vn -0.191071 -0.840299 0.507336 -vn -0.291071 -0.741660 0.604333 -vn -0.440597 -0.755235 0.485278 -vn -0.467748 -0.791744 0.392880 -vn -0.470764 -0.653290 0.592953 -vn -0.093310 -0.181835 0.978892 -vn -0.226343 -0.915650 0.332197 -vn -0.385811 -0.315327 0.867017 -vn -0.568141 -0.318737 0.758698 -vn -0.522135 -0.412895 0.746253 -vn -0.471048 -0.376315 0.797810 -vn -0.383908 -0.324542 0.864458 -vn -0.314528 -0.194760 0.929053 -vn -0.349548 -0.658472 0.666506 -vn -0.272030 -0.869089 0.413139 -vn -0.197166 -0.941214 0.274301 -vn -0.080323 -0.938231 0.336558 -vn -0.047371 -0.955383 0.291547 -vn -0.119492 -0.965498 0.231376 -vn -0.211680 -0.868782 0.447671 -vn -0.107457 -0.905004 0.411608 -vn -0.047940 -0.883533 0.465909 -vn -0.109547 -0.883425 0.455586 -vn -0.305970 -0.887075 0.345659 -vn -0.491169 -0.587690 0.642941 -vn -0.509537 -0.347524 0.787146 -vn -0.341958 -0.348801 0.872584 -vn -0.350885 -0.156934 0.923175 -vn -0.671289 -0.682905 0.288116 -vn -0.671289 -0.682905 0.288116 -vn -0.827334 -0.503849 0.248302 -vn -0.827334 -0.503849 0.248302 -vn -0.885392 -0.389499 0.253714 -vn -0.885392 -0.389499 0.253714 -vn 0.063546 -0.506439 -0.859931 -vn 0.369329 -0.553100 -0.746777 -vn 0.242846 -0.806682 0.538785 -vn 0.485775 -0.829604 0.275281 -vn 0.658082 -0.551272 -0.512863 -vn 0.693522 -0.673621 -0.255463 -vn 0.980456 -0.146404 -0.131425 -vn 0.952014 -0.262935 -0.156637 -vn 0.890722 -0.447672 -0.078768 -vn 0.909884 -0.414254 0.022464 -vn 0.918125 -0.127931 0.375073 -vn 0.750245 0.044436 0.659665 -vn 0.966380 -0.119457 -0.227684 -vn 0.990390 -0.066207 -0.121423 -vn 0.961455 -0.171437 -0.214973 -vn 0.940890 -0.281455 -0.188440 -vn 0.871784 -0.478259 -0.106120 -vn 0.855293 -0.512673 -0.075098 -vn 0.882476 -0.458987 0.102799 -vn 0.960482 -0.154544 -0.231496 -vn 0.936246 -0.210295 -0.281460 -vn 0.942102 -0.281316 -0.182497 -vn 0.935227 -0.344762 0.080557 -vn 0.935892 -0.310618 0.166201 -vn 0.808334 -0.574003 0.130833 -vn 0.587775 -0.801059 -0.113246 -vn 0.647675 -0.751602 0.124946 -vn 0.831664 -0.447963 0.328121 -vn 0.995249 -0.016350 -0.095982 -vn 0.954065 -0.077913 -0.289292 -vn 0.907408 -0.250137 -0.337700 -vn 0.976898 -0.202764 -0.067500 -vn 0.857955 -0.507869 0.077344 -vn 0.883889 -0.433015 0.176742 -vn 0.979638 -0.200574 -0.008969 -vn 0.941418 -0.245395 0.231328 -vn 0.981620 -0.144394 0.124793 -vn 0.978947 -0.109001 0.172574 -vn 0.935991 -0.189747 0.296507 -vn 0.899078 -0.182951 0.397729 -vn 0.745436 -0.536030 0.396229 -vn 0.797983 -0.320094 0.510650 -vn 0.906001 -0.195175 0.375592 -vn 0.953837 -0.208375 0.216275 -vn 0.922710 -0.264441 0.280495 -vn 0.913666 -0.272554 0.301545 -vn 0.882223 -0.261768 0.391357 -vn 0.866761 -0.309336 0.391199 -vn 0.830459 -0.351032 0.432567 -vn 0.818278 -0.315495 0.480503 -vn 0.808038 -0.215201 0.548419 -vn 0.969678 -0.148208 0.194316 -vn 0.922470 -0.252269 0.292249 -vn 0.867244 -0.318434 0.382738 -vn 0.836260 -0.340015 0.430184 -vn 0.923910 -0.145238 0.353971 -vn 0.984749 -0.050019 0.166636 -vn 0.981118 -0.099794 0.165675 -vn 0.944614 -0.194537 0.264309 -vn 0.880393 -0.291015 0.374457 -vn 0.824837 -0.315373 0.469238 -vn 0.622916 -0.484375 0.614294 -vn 0.821682 -0.474521 0.315705 -vn 0.867338 -0.331298 0.371439 -vn 0.987857 -0.135016 0.076870 -vn 0.979930 -0.195497 0.038967 -vn 0.979199 -0.164018 0.119446 -vn 0.949129 -0.225368 0.219914 -vn 0.886606 -0.298748 0.353099 -vn 0.708787 -0.249233 0.659928 -vn 0.678444 -0.409568 0.609892 -vn 0.442992 -0.162265 0.881719 -vn 0.642535 -0.219827 0.734047 -vn 0.858498 -0.229279 0.458708 -vn 0.925715 -0.225640 0.303543 -vn 0.972152 -0.187798 0.140186 -vn 0.918487 -0.113375 0.378850 -vn 0.963417 -0.107897 0.245326 -vn 0.930710 -0.126967 0.343014 -vn 0.909095 -0.174774 0.378154 -vn 0.954725 -0.056138 0.292145 -vn 0.987337 -0.051872 0.149917 -vn 0.793642 -0.245089 0.556834 -vn 0.864674 -0.261001 0.429205 -vn 0.841018 -0.069240 0.536557 -vn 0.668765 -0.107613 0.735645 -vn 0.383153 -0.167862 0.908304 -vn 0.690412 -0.337410 0.639911 -vn 0.470954 -0.330356 0.817965 -vn 0.635659 -0.745485 0.200472 -vn 0.716078 -0.513890 0.472386 -vn 0.672918 -0.288018 0.681342 -vn 0.502514 -0.864351 -0.019426 -vn 0.489068 -0.863343 -0.124305 -vn 0.402408 -0.915304 0.016936 -vn 0.504481 -0.846857 0.168320 -vn 0.380776 -0.923102 -0.053776 -vn 0.374887 -0.916704 -0.138250 -vn 0.756917 -0.386773 0.526766 -vn 0.763653 -0.273459 0.584854 -vn 0.288102 -0.949738 0.122456 -vn 0.456364 -0.805486 0.378054 -vn 0.224124 -0.973921 0.035305 -vn 0.204438 -0.976318 0.070776 -vn 0.245111 -0.968799 0.036716 -vn 0.262883 -0.962136 -0.072016 -vn 0.231176 -0.957851 -0.170524 -vn 0.147784 -0.957533 0.247568 -vn 0.195452 -0.786355 0.586042 -vn -0.017991 -0.918876 0.394137 -vn 0.017865 -0.788411 0.614889 -vn 0.035993 -0.953102 0.300502 -vn 0.063904 -0.996653 0.050974 -vn 0.075869 -0.995651 0.054062 -vn 0.089385 -0.994760 0.049628 -vn 0.120252 -0.988258 -0.094268 -vn 0.130043 -0.973060 -0.190374 -vn 0.122150 -0.975119 -0.184991 -vn 0.164304 -0.967025 -0.194593 -vn 0.621329 -0.134111 0.771987 -vn 0.288891 -0.208178 0.934454 -vn 0.070077 -0.325368 0.942987 -vn 0.043692 -0.365912 0.929623 -vn 0.345260 0.092352 0.933952 -vn 0.128601 -0.445833 0.885830 -vn 0.330083 -0.244923 0.911624 -vn 0.436901 -0.057248 0.897686 -vn 0.605873 0.057070 0.793512 -vn 0.691440 0.073643 0.718670 -vn 0.638897 -0.096424 0.763225 -vn 0.628759 -0.252843 0.735345 -vn 0.544124 -0.216863 0.810494 -vn 0.578730 -0.180551 0.795282 -vn 0.645211 -0.013591 0.763883 -vn 0.475512 -0.100011 0.874006 -vn 0.390824 -0.085748 0.916463 -vn 0.567763 -0.282575 0.773173 -vn 0.557132 -0.448099 0.699150 -vn 0.513298 -0.424267 0.746004 -vn 0.575354 -0.369817 0.729522 -vn 0.548898 -0.373155 0.747975 -vn 0.478887 -0.475925 0.737674 -vn 0.617962 -0.430917 0.657597 -vn 0.329622 -0.110896 0.937577 -vn 0.445590 -0.208021 0.870733 -vn 0.386579 -0.594777 0.704838 -vn 0.381991 -0.483105 0.787840 -vn 0.169084 -0.732456 0.659484 -vn 0.216527 -0.538921 0.814052 -vn 0.270635 -0.548378 0.791226 -vn 0.396435 -0.543115 0.740179 -vn 0.570878 -0.446838 0.688792 -vn 0.624006 -0.336885 0.705071 -vn 0.578007 -0.266686 0.771224 -vn 0.319217 -0.378810 0.868679 -vn 0.491634 -0.552992 0.672678 -vn 0.238897 -0.559967 0.793325 -vn 0.649406 -0.462970 0.603267 -vn 0.650763 0.121746 0.749457 -vn 0.692537 -0.019397 0.721122 -vn 0.634170 0.041017 0.772105 -vn 0.395205 -0.075946 0.915448 -vn 0.359372 -0.099091 0.927918 -vn 0.287402 0.308714 0.906695 -vn 0.354807 0.275116 0.893545 -vn 0.592048 0.140416 0.793576 -vn 0.637150 0.033288 0.770021 -vn 0.398905 -0.526217 0.750979 -vn 0.618180 -0.087493 0.781152 -vn 0.512457 0.322559 0.795829 -vn 0.318457 0.465784 0.825609 -vn 0.178960 0.417486 0.890886 -vn 0.487906 -0.431401 0.758842 -vn 0.483722 0.089844 0.870598 -vn 0.379427 -0.027095 0.924825 -vn 0.252160 -0.225711 0.940994 -vn 0.273597 -0.802168 0.530728 -vn 0.231462 -0.812863 0.534490 -vn 0.236909 -0.805986 0.542459 -vn 0.250030 -0.797610 0.548912 -vn 0.238041 -0.783912 0.573427 -vn 0.239039 -0.776186 0.583434 -vn 0.443288 -0.725499 0.526447 -vn 0.598994 -0.456011 0.658225 -vn 0.429183 -0.300884 0.851628 -vn 0.387574 -0.321812 0.863842 -vn 0.294932 -0.391271 0.871735 -vn 0.456505 -0.571068 0.682265 -vn 0.171236 -0.619419 0.766158 -vn 0.120990 -0.641764 0.757298 -vn 0.499385 -0.441032 0.745724 -vn 0.471435 -0.463007 0.750582 -vn 0.419250 -0.424099 0.802726 -vn 0.529444 -0.377328 0.759811 -vn 0.552559 -0.238810 0.798529 -vn 0.477995 -0.108156 0.871678 -vn 0.352537 -0.066139 0.933457 -vn 0.365298 0.021114 0.930651 -vn 0.309476 0.077575 0.947738 -vn 0.468673 -0.193955 0.861816 -vn 0.393464 -0.302198 0.868252 -vn 0.435525 -0.381572 0.815304 -vn 0.661918 -0.278359 0.695975 -vn 0.404049 -0.256486 0.878043 -vn 0.233462 -0.141439 0.962024 -vn 0.391302 0.171539 0.904133 -vn 0.501513 0.191642 0.843658 -vn 0.290551 0.210412 0.933438 -vn 0.361013 0.019272 0.932362 -vn 0.534184 -0.058804 0.843320 -vn 0.335099 0.030481 0.941690 -vn 0.200182 -0.015059 0.979643 -vn 0.441583 -0.179665 0.879048 -vn 0.676716 -0.151883 0.720408 -vn 0.666687 0.081829 0.740832 -vn 0.932960 -0.136234 0.333206 -vn 0.966686 -0.173590 0.188106 -vn 0.548535 -0.302365 0.779542 -vn 0.129199 -0.313000 0.940924 -vn 0.435133 -0.427967 0.792151 -vn 0.877701 0.026049 0.478501 -vn 0.727933 -0.128099 0.673575 -vn 0.847830 -0.114537 0.517751 -vn 0.868641 0.032692 0.494362 -vn 0.717016 -0.264832 0.644788 -vn 0.834325 -0.034975 0.550162 -vn 0.883811 0.024081 0.467224 -vn 0.957092 -0.185074 0.222985 -vn 0.569079 -0.679037 0.463744 -vn -0.140199 -0.928947 0.342640 -vn 0.879801 -0.130693 0.457023 -vn 0.743054 -0.586543 0.322239 -vn 0.452351 -0.144257 0.880096 -vn 0.359851 -0.032581 0.932441 -vn 0.411625 -0.071366 0.908555 -vn 0.481087 -0.243058 0.842305 -vn 0.642403 -0.101305 0.759641 -vn 0.452434 -0.306952 0.837308 -vn 0.446193 -0.231764 0.864406 -vn 0.866507 -0.042473 0.497355 -vn 0.870409 -0.387642 0.303515 -vn 0.831958 -0.248661 0.495997 -vn 0.903313 0.003019 0.428972 -vn 0.834596 -0.026340 0.550232 -vn 0.745913 0.016230 0.665846 -vn 0.689975 0.062932 0.721092 -vn 0.465763 -0.064939 0.882523 -vn 0.320354 0.044276 0.946263 -vn 0.563892 -0.276189 0.778296 -vn 0.511860 -0.627405 0.586824 -vn 0.372246 0.009748 0.928083 -vn 0.262328 -0.957610 -0.119028 -vn 0.259302 -0.910269 -0.322758 -vn 0.038100 -0.938178 -0.344049 -vn -0.147260 -0.986968 -0.064869 -vn 0.173697 -0.982288 -0.070287 -vn 0.476302 -0.002893 0.879277 -vn 0.689723 0.028653 0.723507 -vn 0.804070 0.054918 0.591993 -vn 0.818452 0.111155 0.563721 -vn 0.668286 0.120039 0.734156 -vn 0.507929 0.139820 0.849975 -vn 0.760442 0.036534 0.648377 -vn 0.806583 0.121802 0.578435 -vn 0.489837 -0.094281 0.866701 -vn 0.348316 -0.039261 0.936555 -vn 0.547406 0.028820 0.836371 -vn 0.645014 -0.010417 0.764100 -vn 0.786001 -0.145157 0.600942 -vn 0.830260 -0.257130 0.494523 -vn 0.517422 -0.499927 0.694512 -vn 0.551275 -0.507531 0.662200 -vn 0.550581 -0.587067 0.593475 -vn 0.653781 -0.618140 0.436431 -vn 0.365876 -0.653625 0.662502 -vn 0.370038 -0.728041 0.577085 -vn 0.325446 -0.764694 0.556173 -vn 0.273021 -0.509246 0.816167 -vn 0.163589 -0.611286 0.774318 -vn 0.173654 -0.441360 0.880367 -vn 0.161815 -0.363628 0.917383 -vn 0.021257 -0.200021 0.979561 -vn 0.063639 -0.439167 0.896149 -vn -0.015283 -0.080866 0.996608 -vn 0.041156 -0.179251 0.982942 -vn 0.074307 -0.123251 0.989590 -vn 0.009657 -0.101854 0.994753 -vn 0.026243 -0.130211 0.991139 -vn 0.896280 -0.072788 0.437475 -vn 0.891806 -0.074388 0.446261 -vn 0.845339 -0.069647 0.529671 -vn 0.891887 -0.175856 0.416668 -vn 0.858102 -0.238460 0.454751 -vn 0.838651 -0.217689 0.499276 -vn 0.798795 0.004094 0.601589 -vn 0.802411 -0.169881 0.572080 -vn 0.563183 -0.039333 0.825396 -vn 0.532478 -0.129885 0.836419 -vn 0.619725 -0.173675 0.765362 -vn 0.608674 -0.211803 0.764628 -vn 0.785540 -0.197828 0.586336 -vn 0.789343 -0.176661 0.587987 -vn 0.824542 -0.140038 0.548197 -vn 0.766768 -0.046604 0.640231 -vn 0.525843 -0.111551 0.843235 -vn 0.465704 0.084934 0.880855 -vn 0.097209 -0.329188 0.939248 -vn 0.122270 -0.205991 0.970885 -vn 0.196417 -0.133287 0.971419 -vn 0.162640 -0.087052 0.982838 -vn 0.101349 -0.037653 0.994138 -vn 0.166565 0.098801 0.981068 -vn 0.301292 0.258709 0.917765 -vn 0.440641 0.450782 0.776293 -vn 0.686632 0.254326 0.681069 -vn 0.042423 -0.336081 0.940877 -vn 0.111689 -0.378002 0.919043 -vn 0.088696 -0.037132 0.995366 -vn 0.140346 -0.131793 0.981292 -vn 0.146236 -0.072286 0.986605 -vn 0.168776 0.045311 0.984612 -vn 0.218437 0.020537 0.975635 -vn 0.412273 0.641608 0.646816 -vn 0.369036 0.298169 0.880289 -vn 0.259424 -0.168573 0.950938 -vn 0.191770 -0.102018 0.976123 -vn 0.122346 0.088083 0.988571 -vn 0.061865 0.040147 0.997277 -vn 0.053486 -0.197374 0.978868 -vn 0.382948 -0.794495 0.471305 -vn 0.318060 -0.355405 0.878934 -vn 0.400096 -0.694517 0.597971 -vn 0.408987 -0.806254 0.427416 -vn 0.163969 -0.833753 0.527230 -vn -0.119771 -0.270481 0.955246 -vn 0.203005 -0.939817 0.274835 -vn 0.058188 -0.324712 0.944021 -vn 0.145093 -0.355209 0.923458 -vn 0.525079 -0.250624 0.813314 -vn 0.807446 -0.264194 0.527477 -vn 0.662089 -0.560700 0.497245 -vn 0.199676 -0.902912 0.380631 -vn 0.242636 -0.877019 0.414687 -vn 0.272474 -0.924026 -0.268205 -vn 0.543950 -0.723506 0.425038 -vn 0.108219 -0.976991 -0.183786 -vn 0.364996 -0.819587 0.441651 -vn 0.413369 -0.750624 0.515451 -vn 0.232064 -0.927209 -0.293991 -vn 0.307412 -0.278843 0.909805 -vn 0.450629 -0.282788 0.846738 -vn 0.676849 -0.382426 0.628988 -vn 0.791596 -0.443050 0.420812 -vn 0.826819 -0.388400 0.406836 -vn 0.191071 -0.840298 0.507337 -vn 0.142738 -0.934012 0.327487 -vn 0.291071 -0.741659 0.604334 -vn 0.440597 -0.755234 0.485278 -vn 0.467748 -0.791743 0.392879 -vn 0.470764 -0.653290 0.592953 -vn 0.093310 -0.181835 0.978892 -vn 0.226343 -0.915650 0.332196 -vn 0.385812 -0.315327 0.867017 -vn 0.522135 -0.412895 0.746253 -vn 0.568141 -0.318737 0.758698 -vn 0.471047 -0.376315 0.797810 -vn 0.383908 -0.324543 0.864458 -vn 0.314529 -0.194760 0.929053 -vn 0.349548 -0.658473 0.666506 -vn 0.272031 -0.869089 0.413139 -vn 0.197167 -0.941214 0.274301 -vn 0.080323 -0.938231 0.336558 -vn 0.047371 -0.955383 0.291548 -vn 0.119492 -0.965498 0.231376 -vn 0.211679 -0.868782 0.447671 -vn 0.107457 -0.905004 0.411608 -vn 0.047940 -0.883533 0.465909 -vn 0.109547 -0.883425 0.455586 -vn 0.305970 -0.887075 0.345659 -vn 0.491169 -0.587690 0.642941 -vn 0.509537 -0.347524 0.787146 -vn 0.341958 -0.348801 0.872584 -vn 0.350886 -0.156934 0.923175 -vn 0.671290 -0.682905 0.288117 -vn 0.671290 -0.682905 0.288117 -vn 0.827335 -0.503849 0.248302 -vn 0.827335 -0.503849 0.248302 -vn 0.885392 -0.389499 0.253714 -vn 0.885392 -0.389499 0.253714 -vn -0.309855 -0.926549 -0.213301 -vn -0.027599 -0.939403 -0.341703 -vn 0.289297 -0.935275 0.203884 -vn -0.106039 -0.968527 0.225190 -vn 0.358014 -0.933576 -0.016210 -vn 0.279072 -0.943923 -0.176433 -vn 0.068418 -0.766721 -0.638324 -vn -0.189367 -0.735327 -0.650718 -vn -0.770403 0.079155 0.632624 -vn -0.613113 0.136773 0.778065 -vn -0.350056 0.128364 0.927892 -vn -0.308009 -0.309870 0.899506 -vn -0.299958 -0.641647 0.705914 -vn -0.477109 -0.512294 0.714088 -vn -0.358922 -0.813462 0.457662 -vn -0.589548 -0.077420 0.804015 -vn -0.722296 -0.015140 0.691419 -vn -0.823171 -0.036425 0.566624 -vn -0.751484 -0.407666 0.518729 -vn -0.617021 -0.697287 0.364795 -vn -0.782243 -0.280041 0.556482 -vn -0.865466 -0.207653 0.455904 -vn -0.631894 -0.726752 0.269335 -vn -0.410792 -0.869446 0.274435 -vn -0.724049 -0.533066 0.437713 -vn -0.767245 -0.393008 0.506834 -vn -0.833295 -0.327544 0.445348 -vn -0.793490 -0.389985 0.467210 -vn -0.688750 -0.689348 -0.224552 -vn -0.085672 -0.888142 -0.451513 -vn -0.705934 -0.632979 -0.317796 -vn -0.526509 -0.758990 -0.383044 -vn -0.427685 -0.778753 -0.458943 -vn 0.136696 -0.132113 0.981764 -vn 0.198589 -0.222346 0.954529 -vn 0.002920 -0.043212 0.999062 -vn -0.067240 -0.046010 0.996675 -vn 0.068807 -0.103861 0.992209 -vn 0.574141 -0.226391 0.786835 -vn 0.327506 -0.251332 0.910809 -vn 0.327506 -0.251332 0.910809 -vn 0.055711 -0.256966 0.964813 -vn 0.055711 -0.256966 0.964813 -vn -0.410976 -0.824313 -0.389368 -vn -0.627806 -0.680618 -0.377649 -vn -0.089113 -0.912300 -0.399710 -vn -0.011357 -0.906478 -0.422101 -vn -0.448176 -0.661548 -0.601243 -vn -0.753058 -0.510162 -0.415498 -vn -0.961730 -0.196816 -0.190628 -vn -0.916186 -0.219439 -0.335335 -vn -0.652490 -0.584970 -0.481733 -vn -0.488627 -0.658355 -0.572549 -vn -0.895725 -0.191016 -0.401485 -vn -0.026124 -0.592131 -0.805418 -vn -0.121639 -0.485642 -0.865653 -vn -0.214224 -0.367454 -0.905034 -vn -0.121639 -0.485642 -0.865653 -vn 0.123989 -0.992278 -0.003201 -vn -0.126649 -0.988799 -0.078972 -vn -0.126649 -0.988799 -0.078972 -vn 0.123989 -0.992278 -0.003201 -vn -0.368603 -0.917514 -0.149328 -vn -0.368603 -0.917514 -0.149328 -vn -0.992952 -0.077863 -0.089346 -vn -0.932671 -0.119228 -0.340454 -vn -0.971151 -0.099399 -0.216762 -vn -0.932671 -0.119228 -0.340454 -vn -0.992952 -0.077863 -0.089346 -vn -0.971151 -0.099399 -0.216762 -vn 0.270387 0.410353 0.870920 -vn 0.105769 0.425786 0.898621 -vn 0.270387 0.410353 0.870920 -vn 0.501858 0.419546 0.756386 -vn 0.501858 0.419546 0.756386 -vn 0.533126 0.638612 0.554933 -vn 0.533126 0.638612 0.554933 -vn 0.466699 0.791727 0.394157 -vn 0.466699 0.791727 0.394157 -vn 0.770403 0.079155 0.632624 -vn 0.613113 0.136773 0.778065 -vn 0.350056 0.128364 0.927892 -vn 0.299958 -0.641647 0.705914 -vn 0.308009 -0.309870 0.899506 -vn 0.358922 -0.813462 0.457662 -vn 0.477109 -0.512294 0.714088 -vn 0.589548 -0.077419 0.804015 -vn 0.722296 -0.015140 0.691419 -vn 0.823171 -0.036425 0.566624 -vn 0.617022 -0.697287 0.364795 -vn 0.751484 -0.407665 0.518729 -vn 0.782243 -0.280041 0.556482 -vn 0.865466 -0.207653 0.455904 -vn 0.410792 -0.869446 0.274435 -vn 0.631895 -0.726752 0.269335 -vn 0.724050 -0.533066 0.437713 -vn 0.767245 -0.393008 0.506834 -vn 0.833295 -0.327544 0.445348 -vn 0.793490 -0.389985 0.467210 -vn 0.688750 -0.689348 -0.224552 -vn 0.085672 -0.888142 -0.451513 -vn 0.705934 -0.632979 -0.317796 -vn 0.526509 -0.758990 -0.383044 -vn 0.427685 -0.778753 -0.458943 -vn -0.198589 -0.222346 0.954529 -vn -0.136696 -0.132113 0.981764 -vn -0.002920 -0.043212 0.999062 -vn 0.067240 -0.046010 0.996675 -vn -0.068807 -0.103861 0.992209 -vn -0.574141 -0.226391 0.786835 -vn -0.327506 -0.251332 0.910809 -vn -0.327506 -0.251332 0.910809 -vn -0.055711 -0.256966 0.964813 -vn -0.055711 -0.256966 0.964813 -vn 0.627805 -0.680619 -0.377649 -vn 0.410976 -0.824313 -0.389368 -vn 0.089113 -0.912300 -0.399709 -vn 0.011357 -0.906478 -0.422100 -vn 0.448176 -0.661548 -0.601242 -vn 0.961730 -0.196816 -0.190628 -vn 0.753058 -0.510162 -0.415498 -vn 0.652490 -0.584970 -0.481733 -vn 0.916186 -0.219439 -0.335335 -vn 0.488627 -0.658355 -0.572549 -vn 0.895725 -0.191016 -0.401485 -vn 0.026124 -0.592131 -0.805418 -vn 0.121639 -0.485642 -0.865653 -vn 0.214224 -0.367454 -0.905034 -vn 0.121639 -0.485642 -0.865653 -vn 0.992952 -0.077863 -0.089346 -vn 0.932671 -0.119229 -0.340454 -vn 0.971151 -0.099399 -0.216762 -vn 0.992952 -0.077863 -0.089346 -vn 0.971151 -0.099399 -0.216762 -vn 0.932671 -0.119229 -0.340454 -# 2655 vertices - -# 0 vertex parms - -# 0 texture vertices - -# 3302 normals - -g coat -s 1 -f 66//52 67//53 68//54 69//55 -f 69//55 68//54 70//56 71//57 -f 71//57 70//56 72//58 73//59 -f 73//59 72//58 74//60 75//61 -f 75//61 74//60 76//62 77//63 -f 77//63 76//62 78//64 79//65 -f 79//65 78//64 80//66 81//67 -s 3 -f 81//967 80//966 2//964 4//965 -s 1 -f 80//66 82//68 1//26 2//27 -f 78//64 83//69 82//68 80//66 -f 76//62 84//70 83//69 78//64 -s 18 -f 74//974 85//977 84//976 76//975 -f 72//973 86//978 85//977 74//974 -f 70//972 87//979 86//978 72//973 -f 68//971 88//980 87//979 70//972 -f 67//970 88//980 68//971 -s 1 -f 66//52 69//55 89//72 90//73 -f 90//73 89//72 91//74 92//75 -f 92//75 91//74 93//76 94//77 -f 94//77 93//76 95//78 -f 95//78 93//76 96//79 97//80 -f 93//76 91//74 98//81 99//82 96//79 -f 91//74 89//72 100//83 101//84 98//81 -f 89//72 69//55 71//57 100//83 -f 100//83 71//57 73//59 102//85 103//86 -f 97//80 96//79 104//87 105//88 106//89 -f 99//82 104//87 96//79 -f 99//82 107//90 108//91 104//87 -f 104//87 109//92 105//88 -f 108//91 110//93 109//92 104//87 -f 101//84 100//83 103//86 -f 103//86 102//85 111//94 -f 112//95 101//84 103//86 113//96 -f 113//96 103//86 111//94 114//97 -f 115//98 108//91 107//90 -f 115//98 110//93 108//91 -f 116//99 112//95 113//96 -f 116//99 113//96 114//97 -f 99//82 98//81 117//100 107//90 -f 98//81 101//84 112//95 117//100 -f 115//98 107//90 117//100 118//101 -f 118//101 117//100 112//95 116//99 -f 115//98 119//102 120//103 110//93 -f 119//102 116//99 114//97 120//103 -f 114//97 111//94 121//104 120//103 -f 120//103 121//104 109//92 110//93 -f 115//98 118//101 116//99 119//102 -f 106//89 105//88 122//105 123//106 -f 105//88 109//92 121//104 124//107 122//105 -f 121//104 111//94 102//85 125//108 124//107 -f 102//85 73//59 75//61 125//108 -f 125//108 75//61 77//63 126//109 -f 126//109 77//63 79//65 127//110 -f 127//110 79//65 81//67 128//111 -f 128//111 81//67 4//29 3//28 -f 3//28 5//30 129//112 128//111 -f 128//111 129//112 130//113 127//110 -f 127//110 130//113 131//114 126//109 -f 126//109 131//114 124//107 125//108 -f 124//107 131//114 132//115 122//105 -f 122//105 132//115 133//116 123//106 -f 133//116 132//115 134//117 135//118 -f 135//118 134//117 136//119 137//120 -f 137//120 136//119 6//31 7//32 -f 136//119 129//112 5//30 6//31 -f 134//117 130//113 129//112 136//119 -f 132//115 131//114 130//113 134//117 -f 138//121 67//53 66//52 139//122 -f 139//122 66//52 140//123 -f 140//123 141//124 139//122 -f 139//122 141//124 142//125 143//126 138//121 -s 31 -f 138//982 143//983 144//984 -f 144//984 145//985 138//982 -f 138//982 145//985 67//981 -s 1 -f 142//125 141//124 146//127 147//128 -g shirt -f 150//131 147//128 151//132 -g coat -f 151//132 147//128 146//127 152//133 153//134 -f 154//135 153//134 152//133 155//136 -f 155//136 156//137 157//138 154//135 -f 146//127 141//124 158//139 -f 158//139 159//140 152//133 146//127 -f 160//141 155//136 152//133 159//140 -f 161//142 156//137 155//136 160//141 -f 66//52 90//73 162//143 163//144 -f 163//144 164//145 140//123 66//52 -f 140//123 164//145 165//146 141//124 -f 162//143 90//73 92//75 166//147 -f 166//147 92//75 94//77 167//148 -f 97//80 106//89 168//149 169//150 -f 106//89 123//106 170//151 168//149 -f 123//106 133//116 171//152 170//151 -f 133//116 135//118 172//153 171//152 -f 135//118 137//120 173//154 172//153 -f 137//120 7//32 8//33 173//154 -f 167//148 94//77 95//78 174//155 -f 174//155 95//78 97//80 169//150 -f 175//156 157//138 156//137 176//157 -f 176//157 156//137 161//142 177//158 -f 178//159 175//156 176//157 179//160 -f 179//160 176//157 177//158 180//161 -f 180//161 181//162 182//163 179//160 -f 182//163 183//164 178//159 179//160 -f 184//165 185//166 182//163 181//162 -f 185//166 186//167 183//164 182//163 -f 185//166 187//168 188//169 186//167 -f 189//170 187//168 185//166 184//165 -f 189//170 184//165 190//171 191//172 -f 184//165 181//162 192//173 190//171 -f 181//162 180//161 193//174 192//173 -f 177//158 161//142 194//175 195//176 -f 161//142 160//141 196//177 194//175 -f 160//141 159//140 197//178 196//177 -f 193//174 180//161 177//158 195//176 -f 191//172 190//171 198//179 199//180 -f 190//171 192//173 200//181 198//179 -f 192//173 193//174 201//182 200//181 -f 193//174 195//176 202//183 201//182 -f 195//176 194//175 203//184 202//183 -f 198//179 200//181 204//185 -f 204//185 200//181 205//186 206//187 -f 205//186 200//181 201//182 207//188 -f 207//188 201//182 202//183 208//189 -f 208//189 202//183 203//184 209//190 -f 194//175 196//177 210//191 203//184 -f 196//177 197//178 211//192 210//191 -f 203//184 210//191 212//193 209//190 -f 210//191 211//192 213//194 212//193 -f 158//139 141//124 165//146 214//195 -f 158//139 214//195 197//178 159//140 -f 165//146 164//145 215//196 216//197 -s off -f 164//1 163//1 217//1 215//1 -s 1 -f 217//198 163//144 162//143 -f 217//198 162//143 166//147 218//199 -f 218//199 166//147 167//148 219//200 -f 219//200 167//148 174//155 220//201 -s 5 -f 174//994 169//989 221//996 220//995 -f 169//989 168//988 222//997 221//996 -f 168//988 170//990 223//998 222//997 -f 170//990 171//991 224//999 223//998 -f 171//991 172//992 225//1000 224//999 -f 172//992 173//993 226//1001 225//1000 -f 173//993 8//986 9//987 226//1001 -s 1 -f 220//201 221//202 227//208 228//209 -f 228//209 229//210 230//211 231//212 220//201 -f 221//202 222//203 232//213 227//208 -f 222//203 223//204 233//214 232//213 -f 223//204 224//205 234//215 233//214 -f 224//205 225//206 235//216 234//215 -f 225//206 226//207 236//217 235//216 -f 236//217 226//207 9//34 10//35 -s off -f 214//2 165//2 216//2 237//2 -s 1 -f 197//178 214//195 237//218 211//192 -f 211//192 237//218 238//219 239//220 240//221 213//194 -f 216//197 215//196 237//218 -f 237//218 215//196 241//222 238//219 -f 215//196 217//198 218//199 -f 215//196 218//199 219//200 -f 215//196 219//200 242//223 241//222 -f 231//212 242//223 219//200 220//201 -f 239//220 230//211 229//210 240//221 -g button -f 238//219 241//222 243//224 244//225 -f 238//219 244//225 245//226 239//220 -f 239//220 245//226 246//227 230//211 -f 246//227 247//228 231//212 230//211 -f 247//228 248//229 242//223 231//212 -f 243//224 241//222 242//223 248//229 -f 249//230 250//231 245//226 244//225 -f 244//225 243//224 251//232 249//230 -f 251//232 243//224 248//229 252//233 -f 252//233 248//229 247//228 253//234 -f 253//234 247//228 246//227 254//235 -f 254//235 246//227 245//226 250//231 -f 255//236 250//231 249//230 -f 255//236 249//230 251//232 -f 255//236 251//232 252//233 -f 255//236 252//233 253//234 -f 255//236 253//234 254//235 -f 255//236 254//235 250//231 -g coat -f 205//186 207//188 256//237 -f 207//188 208//189 258//239 256//237 -f 258//239 208//189 209//190 259//240 -f 259//240 209//190 212//193 260//241 -f 256//237 258//239 261//242 257//238 -f 258//239 259//240 261//242 -f 259//240 260//241 262//243 261//242 -f 212//193 213//194 263//244 260//241 -f 263//244 213//194 240//221 264//245 -f 264//245 240//221 229//210 265//246 -f 265//246 229//210 228//209 266//247 -f 260//241 263//244 267//248 262//243 -f 267//248 263//244 264//245 268//249 -f 268//249 264//245 265//246 269//250 -f 269//250 265//246 270//251 -f 265//246 266//247 270//251 -f 270//251 271//252 269//250 -f 269//250 271//252 272//253 268//249 -f 268//249 272//253 273//254 267//248 -f 267//248 273//254 274//255 262//243 -f 262//243 274//255 261//242 -f 266//247 228//209 227//208 275//256 -f 275//256 227//208 232//213 276//257 -f 276//257 232//213 233//214 277//258 -f 277//258 233//214 234//215 278//259 -f 278//259 234//215 235//216 279//260 -f 279//260 235//216 236//217 280//261 -f 280//261 236//217 10//35 11//36 -f 266//247 275//256 281//262 270//251 -f 275//256 276//257 281//262 -f 276//257 277//258 282//263 281//262 -f 277//258 278//259 282//263 -f 278//259 279//260 283//264 282//263 -f 279//260 280//261 284//265 283//264 -f 280//261 11//36 284//265 -g shirt -s 46 -f 285//1004 286//1005 287//1006 288//1007 -s 1 -f 286//267 289//269 290//270 287//268 -f 291//271 292//272 290//270 289//269 -f 292//272 293//273 294//274 290//270 -f 290//270 294//274 295//275 287//268 -s 46 -f 287//1006 295//1008 296//1009 288//1007 -f 296//1009 295//1008 297//1010 298//1011 -s 1 -f 295//275 294//274 299//277 297//276 -f 294//274 293//273 300//278 299//277 -f 299//277 300//278 301//279 302//280 -f 302//280 301//279 303//281 304//282 -f 304//282 303//281 305//283 -f 305//283 303//281 306//284 307//285 -f 307//285 306//284 308//286 309//287 -f 307//285 309//287 310//288 311//289 -f 311//289 312//290 305//283 307//285 -f 305//283 312//290 313//291 304//282 -f 302//280 314//292 297//276 299//277 -f 302//280 304//282 313//291 314//292 -s 46 -f 297//1010 314//1012 315//1013 298//1011 -f 315//1013 314//1012 316//1014 317//1015 -s 1 -f 316//293 314//292 313//291 -f 313//291 312//290 318//294 316//293 -s 46 -f 316//1014 318//1016 319//1017 317//1015 -s 1 -f 311//289 310//288 320//295 321//296 -f 321//296 322//297 312//290 311//289 -f 312//290 322//297 318//294 -s 46 -f 318//1016 323//1018 324//1019 319//1017 -s 1 -f 318//294 322//297 325//299 323//298 -f 325//299 322//297 321//296 326//300 -f 326//300 321//296 320//295 327//301 -f 326//300 328//302 325//299 -f 325//299 328//302 323//298 -f 328//302 326//300 327//301 329//303 -f 329//303 330//304 328//302 -f 328//302 330//304 331//305 -f 331//305 332//306 328//302 -f 328//302 332//306 333//307 -s 46 -f 333//1021 324//1019 323//1018 328//1020 -s 1 -f 186//167 188//169 334//308 335//309 -s 46 -f 334//1022 285//1004 288//1007 335//1023 -f 288//1007 296//1009 336//1024 335//1023 -s 1 -f 335//309 336//310 183//164 186//167 -s 46 -f 296//1009 298//1011 337//1025 336//1024 -s 1 -f 336//310 337//311 178//159 183//164 -s 46 -f 298//1011 315//1013 338//1026 337//1025 -s 1 -f 337//311 338//312 175//156 178//159 -s 46 -f 317//1015 339//1027 338//1026 315//1013 -f 317//1015 319//1017 340//1028 339//1027 -s 1 -f 175//156 338//312 339//313 157//138 -f 339//313 340//314 154//135 157//138 -f 153//134 341//315 342//316 151//132 -f 151//132 342//316 343//317 150//131 -f 150//131 343//317 344//318 149//130 -f 147//128 150//131 149//130 345//319 -f 345//319 149//130 148//129 -f 345//319 142//125 147//128 -f 148//129 149//130 344//318 346//320 -f 344//318 329//303 327//301 346//320 -f 329//303 344//318 343//317 330//304 -f 330//304 343//317 331//305 -f 343//317 332//306 331//305 -f 343//317 342//316 333//307 332//306 -s 46 -f 342//1030 341//1029 324//1019 333//1021 -f 341//1029 340//1028 319//1017 324//1019 -s 33 -f 144//1032 347//1034 348//1035 145//1033 -s 32 -f 144//1039 143//1038 349//1041 347//1040 -s 33 -f 348//1035 350//1036 67//1031 145//1033 -s 32 -f 349//1041 143//1038 142//1037 351//1042 -s 30 -f 350//1052 352//1054 88//1047 67//1043 -f 353//1055 354//1056 352//1054 350//1052 -f 353//1055 355//1057 354//1056 -f 353//1055 350//1052 348//1050 356//1058 -f 356//1058 355//1057 353//1055 -f 347//1049 357//1059 356//1058 348//1050 -f 357//1059 347//1049 349//1051 358//1060 -f 358//1060 349//1051 351//1053 359//1061 -f 359//1061 360//1062 361//1063 358//1060 -f 358//1060 361//1063 362//1064 357//1059 -f 362//1064 361//1063 363//1065 -f 364//1066 363//1065 361//1063 -f 364//1066 361//1063 360//1062 365//1067 -s 1 -f 351//321 142//125 345//319 366//322 -f 345//319 148//129 366//322 -f 148//129 346//320 367//323 368//324 -f 327//301 320//295 367//323 346//320 -f 367//323 369//325 370//326 368//324 -f 367//323 320//295 310//288 369//325 -s 30 -f 359//1061 351//1053 366//1068 371//1071 -f 371//1071 360//1062 359//1061 -f 371//1071 372//1072 365//1067 360//1062 -f 148//1048 368//1069 371//1071 366//1068 -f 368//1069 370//1070 372//1072 371//1071 -f 370//1070 373//1073 372//1072 -f 372//1072 373//1073 374//1074 365//1067 -f 374//1074 375//1075 364//1066 365//1067 -g tie -s 12 -f 376//1093 373//1092 377//1094 -f 376//1093 377//1094 378//1095 -s 30 -f 376//1076 375//1075 374//1074 -f 376//1076 374//1074 373//1073 -g shirt -f 373//1073 370//1070 379//1077 -g tie -s 12 -f 379//1096 380//1097 373//1092 -f 380//1097 381//1098 377//1094 373//1092 -f 381//1098 382//1099 378//1095 377//1094 -g shirt -s 1 -f 379//327 370//326 383//328 -f 383//328 370//326 369//325 384//329 -f 384//329 369//325 310//288 -f 379//327 383//328 385//330 386//331 -g tie -s 12 -f 386//1100 387//1101 380//1097 379//1096 -f 387//1101 388//1102 381//1098 380//1097 -f 388//1102 389//1103 382//1099 381//1098 -f 386//1100 390//1104 387//1101 -f 390//1104 391//1105 388//1102 387//1101 -f 390//1104 392//1106 391//1105 -f 391//1105 393//1107 389//1103 388//1102 -f 392//1106 394//1108 393//1107 391//1105 -f 393//1107 395//1109 396//1110 389//1103 -f 394//1108 397//1111 395//1109 393//1107 -f 389//1103 396//1110 398//1112 382//1099 -g shirt -s 1 -f 385//330 399//332 386//331 -f 399//332 385//330 400//333 -s 8 -f 400//1183 401//1184 399//1182 -f 399//1182 401//1184 390//1178 386//1177 -s 1 -f 385//330 383//328 384//329 402//334 -f 400//333 385//330 402//334 403//335 -f 403//335 404//336 400//333 -f 403//335 402//334 309//287 308//286 -f 309//287 402//334 384//329 310//288 -f 404//336 403//335 308//286 405//337 -f 306//284 406//338 405//337 308//286 -f 407//339 406//338 306//284 303//281 -f 303//281 301//279 408//340 407//339 -f 408//340 301//279 300//278 409//341 -f 409//341 300//278 293//273 410//342 -f 410//342 293//273 292//272 411//343 -f 411//343 292//272 291//271 412//344 -f 411//343 413//345 414//346 410//342 -f 410//342 414//346 415//347 409//341 -f 409//341 415//347 416//348 408//340 -f 408//340 416//348 417//349 407//339 -s 8 -f 400//1183 418//1185 419//1186 401//1184 -f 401//1184 419//1186 392//1179 390//1178 -f 400//1183 420//1187 418//1185 -f 400//1183 421//1188 420//1187 -s 1 -f 400//333 404//336 422//351 421//350 -f 404//336 405//337 423//352 422//351 -s 8 -f 420//1187 421//1188 425//1191 424//1190 -f 424//1190 426//1192 418//1185 420//1187 -s 1 -f 422//351 425//353 421//350 -s 8 -f 423//1189 427//1193 428//1194 -s 1 -f 428//354 425//353 422//351 423//352 -s 8 -f 429//1195 426//1192 424//1190 430//1196 -f 430//1196 13//1172 15//1174 429//1195 -f 424//1190 425//1191 431//1197 430//1196 -s 1 -f 428//354 431//355 425//353 -s 8 -f 427//1193 432//1198 431//1197 428//1194 -f 431//1197 12//1171 13//1172 430//1196 -f 418//1185 426//1192 433//1199 419//1186 -f 419//1186 433//1199 394//1180 392//1179 -f 394//1180 433//1199 434//1200 397//1181 -f 433//1199 426//1192 429//1195 434//1200 -f 434//1200 429//1195 435//1201 -f 435//1201 429//1195 15//1174 14//1173 -f 14//1173 16//1175 436//1202 435//1201 -f 435//1201 436//1202 397//1181 434//1200 -f 432//1198 17//1176 12//1171 431//1197 -g tie -s 12 -f 437//1114 397//1111 436//1113 438//1115 -s 10 -f 438//1233 436//1232 16//1229 18//1230 -f 18//1230 19//1231 439//1234 438//1233 -s 12 -f 438//1115 439//1116 440//1117 437//1114 -f 437//1114 440//1117 396//1110 395//1109 -f 396//1110 441//1118 398//1112 -f 396//1110 440//1117 442//1119 441//1118 -f 440//1117 439//1116 443//1120 442//1119 -f 439//1116 19//1083 20//1084 443//1120 -f 441//1118 444//1121 398//1112 -f 441//1118 442//1119 445//1122 444//1121 -f 442//1119 443//1120 446//1123 445//1122 -f 443//1120 20//1084 21//1085 446//1123 -s 15 -f 398//1261 444//1262 447//1263 448//1264 -s 55 -f 398//1462 448//1463 449//1464 382//1461 -f 448//1463 450//1465 451//1466 449//1464 -f 378//1460 382//1461 449//1464 452//1467 -f 375//1458 452//1467 453//1468 364//1457 -f 375//1458 376//1459 378//1460 452//1467 -f 452//1467 449//1464 451//1466 453//1468 -f 453//1468 454//1469 363//1456 364//1457 -f 451//1466 455//1470 454//1469 453//1468 -f 450//1465 456//1471 455//1470 451//1466 -s 15 -f 448//1264 447//1263 457//1267 450//1265 -s 55 -f 363//1456 454//1469 458//1472 362//1455 -f 455//1470 458//1472 454//1469 -f 458//1472 459//1473 357//1454 362//1455 -f 455//1470 460//1474 459//1473 458//1472 -f 455//1470 456//1471 460//1474 -s 15 -f 450//1265 457//1267 461//1269 456//1266 -f 456//1266 461//1269 462//1270 460//1268 -s 55 -f 460//1474 463//1475 459//1473 -f 357//1454 459//1473 463//1475 464//1476 -s 54 -f 357//1483 465//1484 356//1482 -f 465//1484 466//1485 467//1486 356//1482 -s 15 -f 357//1260 468//1275 465//1273 -f 357//1260 464//1272 468//1275 -f 468//1275 469//1276 466//1274 465//1273 -f 468//1275 464//1272 469//1276 -f 464//1272 470//1277 471//1278 469//1276 -f 469//1276 471//1278 472//1279 466//1274 -s 55 -f 464//1476 463//1475 473//1478 470//1477 -s 15 -f 460//1268 462//1270 474//1281 463//1271 -f 463//1271 474//1281 475//1282 473//1280 -s 12 -f 444//1121 445//1122 476//1124 477//1125 -f 445//1122 446//1123 478//1126 476//1124 -f 446//1123 21//1085 22//1086 478//1126 -f 478//1126 22//1086 23//1087 479//1127 -f 478//1126 479//1127 480//1128 476//1124 -f 476//1124 480//1128 481//1129 477//1125 -f 26//1090 479//1127 23//1087 24//1088 -f 26//1090 25//1089 480//1128 479//1127 -f 480//1128 25//1089 27//1091 481//1129 -s 15 -f 444//1262 477//1283 482//1285 447//1263 -f 447//1263 482//1285 483//1286 457//1267 -f 457//1267 483//1286 461//1269 -f 461//1269 483//1286 462//1270 -f 462//1270 483//1286 484//1287 474//1281 -f 474//1281 484//1287 485//1288 475//1282 -f 477//1283 481//1284 486//1289 482//1285 -f 482//1285 486//1289 487//1290 483//1286 -f 483//1286 487//1290 488//1291 484//1287 -f 481//1284 27//1237 28//1238 486//1289 -f 486//1289 28//1238 29//1239 487//1290 -f 487//1290 29//1239 30//1240 488//1291 -f 488//1291 30//1240 31//1241 489//1292 -f 484//1287 488//1291 489//1292 485//1288 -f 485//1288 489//1292 490//1293 491//1294 -f 489//1292 31//1241 32//1242 490//1293 -f 490//1293 32//1242 33//1243 492//1295 -f 492//1295 493//1296 491//1294 -f 491//1294 490//1293 492//1295 -f 493//1296 475//1282 485//1288 491//1294 -f 492//1295 33//1243 34//1244 494//1297 -f 492//1295 494//1297 495//1298 -f 495//1298 496//1299 493//1296 492//1295 -f 493//1296 496//1299 497//1300 498//1301 -f 493//1296 498//1301 499//1302 -f 499//1302 473//1280 475//1282 493//1296 -s 55 -f 473//1478 499//1480 500//1481 470//1477 -s 15 -f 470//1277 500//1303 501//1304 471//1278 -f 471//1278 501//1304 502//1305 472//1279 -f 502//1305 501//1304 503//1306 -s 30 -f 356//1058 467//1078 504//1079 355//1057 -f 355//1057 504//1079 505//1080 354//1056 -f 354//1056 505//1080 352//1054 -f 505//1080 506//1081 87//1046 88//1047 352//1054 -f 506//1081 507//1082 86//1045 87//1046 -f 507//1082 85//1044 86//1045 -s 15 -f 508//1310 36//1246 85//1259 -f 508//1310 85//1259 507//1309 509//1311 -f 509//1311 507//1309 510//1312 -f 510//1312 507//1309 506//1308 -f 505//1307 510//1312 506//1308 -f 505//1307 511//1313 512//1314 510//1312 -s 67 -f 504//1488 513//1491 511//1490 505//1489 -s 15 -f 508//1310 35//1245 36//1246 -f 508//1310 514//1315 35//1245 -f 508//1310 515//1316 516//1317 514//1315 -f 515//1316 517//1318 518//1319 516//1317 -s off -f 466//3 519//3 467//3 -s 67 -f 467//1487 519//1492 513//1491 504//1488 -s 15 -f 466//1274 472//1279 520//1320 -f 520//1320 521//1321 466//1274 -f 520//1320 522//1322 523//1323 521//1321 -f 522//1322 524//1324 523//1323 -f 523//1323 524//1324 509//1311 510//1312 -s 69 -f 466//1493 521//1499 525//1501 519//1498 -f 521//1499 523//1500 526//1502 525//1501 -f 523//1500 510//1494 512//1496 526//1502 -f 519//1498 525//1501 526//1502 512//1496 511//1495 513//1497 -s 15 -f 472//1279 502//1305 520//1320 -f 520//1320 502//1305 522//1322 -f 522//1322 502//1305 527//1325 524//1324 -f 502//1305 497//1300 527//1325 -f 527//1325 528//1326 524//1324 -f 524//1324 528//1326 509//1311 -f 528//1326 517//1318 515//1316 -f 528//1326 515//1316 529//1327 -f 529//1327 509//1311 528//1326 -f 529//1327 515//1316 508//1310 -f 508//1310 509//1311 529//1327 -f 496//1299 495//1298 517//1318 528//1326 -f 528//1326 497//1300 496//1299 -f 497//1300 528//1326 527//1325 -f 495//1298 494//1297 518//1319 517//1318 -f 34//1244 37//1247 518//1319 494//1297 -f 518//1319 37//1247 38//1248 516//1317 -f 38//1248 39//1249 514//1315 516//1317 -f 35//1245 514//1315 39//1249 40//1250 -g coat -s 1 -f 85//71 36//37 84//70 -f 40//38 41//39 531//357 530//356 -f 84//70 530//356 532//358 -f 530//356 531//357 533//359 532//358 -f 84//70 532//358 534//360 83//69 -f 532//358 533//359 535//361 534//360 -g shirt -s 15 -f 41//1251 42//1252 531//1328 -f 531//1328 42//1252 536//1331 533//1329 -f 42//1252 43//1253 536//1331 -f 533//1329 536//1331 537//1332 535//1330 -f 536//1331 43//1253 44//1254 537//1332 -g coat -s 1 -f 83//69 534//360 538//362 82//68 -f 82//68 538//362 45//40 1//26 -f 45//40 538//362 539//363 46//41 -f 534//360 535//361 539//363 538//362 -g shirt -s 15 -f 535//1330 537//1332 540//1334 539//1333 -f 539//1333 540//1334 47//1256 46//1255 -f 537//1332 44//1254 48//1257 540//1334 -f 540//1334 48//1257 49//1258 47//1256 -g coat -s 1 -f 271//252 270//251 541//364 542//365 -f 272//253 271//252 542//365 543//366 -f 273//254 272//253 543//366 544//367 -f 274//255 273//254 544//367 545//368 -f 261//242 274//255 545//368 546//369 -f 257//238 261//242 546//369 -f 545//368 544//367 547//370 548//371 -f 544//367 543//366 549//372 547//370 -f 543//366 542//365 550//373 549//372 -f 542//365 541//364 551//374 550//373 -f 270//251 281//262 552//375 541//364 -f 281//262 282//263 553//376 552//375 -f 282//263 283//264 554//377 553//376 -f 283//264 284//265 555//378 554//377 -f 284//265 11//36 50//42 555//378 -f 555//378 50//42 51//43 556//379 -f 555//378 556//379 557//380 554//377 -f 554//377 557//380 558//381 553//376 -f 553//376 558//381 559//382 552//375 -f 552//375 559//382 551//374 541//364 -g shirt -f 412//344 560//383 413//345 411//343 -g hair -s 71 -f 564//1503 566//1505 567//1506 565//1504 -f 565//1504 567//1506 568//1507 -f 567//1506 566//1505 569//1508 -f 568//1507 567//1506 570//1509 571//1510 -f 570//1509 567//1506 569//1508 572//1511 -f 570//1509 573//1512 571//1510 -f 571//1510 573//1512 574//1513 575//1514 -f 574//1513 576//1515 575//1514 -f 576//1515 574//1513 577//1516 -f 577//1516 578//1517 579//1518 576//1515 -f 574//1513 573//1512 580//1519 581//1520 -f 581//1520 577//1516 574//1513 -f 577//1516 581//1520 582//1521 583//1522 -f 583//1522 578//1517 577//1516 -f 583//1522 584//1523 585//1524 578//1517 -f 578//1517 585//1524 586//1525 579//1518 -f 584//1523 587//1526 588//1527 585//1524 -f 585//1524 588//1527 586//1525 -s 22 -f 52//1544 601//1559 602//1560 53//1545 -f 53//1545 602//1560 54//1546 -f 602//1560 601//1559 600//1558 603//1561 -f 603//1561 600//1558 599//1557 604//1562 -f 604//1562 599//1557 598//1556 605//1563 -f 605//1563 598//1556 597//1555 606//1564 607//1565 -f 606//1564 597//1555 596//1554 -f 596//1554 595//1553 608//1566 609//1567 -f 609//1567 607//1565 606//1564 596//1554 -f 594//1552 608//1566 595//1553 -f 594//1552 593//1551 610//1568 608//1566 -f 593//1551 611//1569 610//1568 -s off -f 614//4 615//4 616//4 -s 71 -f 573//1512 570//1509 572//1511 580//1519 -f 580//1519 572//1511 617//1531 618//1532 -f 618//1532 617//1531 613//1530 619//1533 -f 619//1533 620//1534 582//1521 581//1520 618//1532 -f 581//1520 580//1519 618//1532 -f 620//1534 619//1533 621//1535 -s 47 -f 621//1689 619//1688 613//1687 622//1690 -f 622//1690 613//1687 612//1686 -f 623//1691 624//1692 625//1693 612//1686 -f 622//1690 612//1686 625//1693 -s 49 -f 623//1707 291//1703 289//1702 624//1708 -s 47 -f 289//1685 626//1694 627//1695 624//1692 -f 289//1685 286//1684 628//1696 626//1694 -f 628//1696 286//1684 285//1683 629//1697 -f 625//1693 624//1692 627//1695 630//1698 -f 625//1693 630//1698 631//1699 622//1690 -f 622//1690 631//1699 632//1700 633//1701 621//1689 -s 71 -f 621//1535 633//1536 634//1537 582//1521 620//1534 -f 584//1523 583//1522 582//1521 634//1537 -f 634//1537 636//1538 587//1526 584//1523 -f 588//1527 587//1526 637//1539 -f 637//1539 611//1529 593//1528 588//1527 -f 587//1526 636//1538 638//1540 637//1539 -f 637//1539 638//1540 639//1541 611//1529 -s 22 -f 611//1569 639//1570 640//1571 -f 640//1571 641//1572 610//1568 611//1569 -f 610//1568 641//1572 642//1573 608//1566 -f 608//1566 643//1574 644//1575 609//1567 -s off -f 642//5 645//5 643//5 -s 22 -f 641//1572 640//1571 646//1577 -f 645//1576 642//1573 641//1572 646//1577 -f 646//1577 640//1571 639//1570 647//1578 -f 609//1567 644//1575 648//1579 607//1565 -f 607//1565 648//1579 649//1580 -f 649//1580 605//1563 607//1565 -f 648//1579 650//1581 651//1582 649//1580 -f 649//1580 651//1582 605//1563 -f 605//1563 651//1582 652//1583 604//1562 -f 604//1562 652//1583 653//1584 603//1561 -f 603//1561 55//1547 54//1546 602//1560 -f 603//1561 653//1584 654//1585 55//1547 -f 55//1547 654//1585 655//1586 656//1587 657//1588 -f 655//1586 654//1585 653//1584 658//1589 -f 659//1590 658//1589 653//1584 652//1583 -f 659//1590 652//1583 651//1582 650//1581 -f 646//1577 647//1578 660//1591 645//1576 -s 1 -f 645//400 661//402 662//403 643//398 -s 22 -f 645//1576 660//1591 661//1592 -s 1 -f 643//398 662//403 663//404 664//405 644//399 -s 22 -f 664//1593 665//1594 648//1579 -s 1 -f 664//405 663//404 666//407 665//406 -f 665//406 666//407 667//408 -f 667//408 668//409 669//410 665//406 -s 22 -f 669//1595 670//1596 659//1590 650//1581 -s 1 -f 669//410 668//409 671//412 670//411 -f 671//412 672//413 670//411 -f 644//399 664//405 648//401 -s 22 -f 655//1586 658//1589 672//1597 673//1598 -f 670//1596 672//1597 658//1589 659//1590 -f 655//1586 673//1598 674//1599 656//1587 -s 1 -f 674//415 676//416 677//417 -s 22 -f 674//1599 677//1601 56//1548 57//1549 675//1600 -s 1 -f 674//415 673//414 671//412 676//416 -f 671//412 673//414 672//413 -f 677//417 676//416 671//412 678//418 -f 678//418 671//412 667//408 679//419 -f 679//419 666//407 663//404 -f 667//408 671//412 668//409 -f 679//419 667//408 666//407 -f 662//403 680//420 663//404 -f 663//404 680//420 681//421 -f 663//404 681//421 682//422 683//423 -f 683//423 682//422 684//424 -f 683//423 684//424 685//425 686//426 -f 683//423 686//426 678//418 679//419 663//404 -f 680//420 662//403 661//402 -f 680//420 661//402 687//427 681//421 -s 22 -f 681//1602 687//1604 688//1605 682//1603 -f 682//1603 688//1605 689//1606 -s 1 -f 689//428 690//429 684//424 682//422 -s 22 -f 661//1592 660//1591 691//1607 687//1604 -f 688//1605 691//1607 692//1608 689//1606 -f 689//1606 692//1608 693//1609 -s 1 -f 693//430 694//431 690//429 689//428 -s 77 -f 660//1714 647//1713 638//1711 -f 660//1714 638//1711 636//1710 691//1715 -f 695//1716 691//1715 636//1710 -s 71 -f 636//1538 634//1537 696//1543 695//1542 -s 22 -f 697//1612 693//1609 692//1608 -f 692//1608 691//1607 695//1610 697//1612 -f 697//1612 698//1613 693//1609 -s 1 -f 693//430 698//434 699//435 694//431 -s 22 -f 688//1605 687//1604 691//1607 -s 1 -f 699//435 698//434 700//436 701//437 -f 701//437 700//436 702//438 703//439 -f 702//438 704//440 630//393 627//390 -f 703//439 702//438 628//391 629//392 -f 702//438 626//389 628//391 -f 702//438 627//390 626//389 -f 630//393 704//440 632//395 631//394 -f 632//395 704//440 697//433 696//432 -s 22 -f 697//1612 695//1610 696//1611 -f 697//1612 704//1614 698//1613 -s 1 -f 698//434 704//440 700//436 -f 696//432 634//397 633//396 632//395 -f 704//440 702//438 700//436 -s 77 -f 647//1713 639//1712 638//1711 -s 1 -f 629//392 285//266 705//441 706//442 -g shirt -f 705//441 285//266 334//308 188//169 -g coat -f 188//169 187//168 707//443 705//441 -f 707//443 187//168 189//170 708//444 -f 708//444 189//170 191//172 709//445 -f 710//446 709//445 191//172 199//180 -f 711//447 705//441 707//443 -f 707//443 708//444 712//448 711//447 -f 711//447 712//448 713//449 714//450 -f 714//450 713//449 715//451 716//452 -f 715//451 713//449 717//453 718//454 -f 713//449 712//448 719//455 717//453 -f 712//448 708//444 709//445 719//455 -g hair -f 711//447 714//450 720//456 721//457 -f 714//450 716//452 59//45 720//456 -g coat -f 718//454 717//453 722//458 723//459 -f 722//458 717//453 719//455 724//460 -f 724//460 719//455 709//445 710//446 -f 198//179 204//185 725//461 199//180 -f 199//180 725//461 726//462 710//446 -f 710//446 726//462 727//463 724//460 -f 724//460 727//463 728//464 722//458 -f 722//458 728//464 729//465 723//459 -g hair -f 59//45 58//44 730//466 720//456 -f 720//456 730//466 731//467 721//457 -f 701//437 731//467 732//468 733//469 -f 733//469 699//435 701//437 -f 58//44 60//46 734//470 730//466 -f 730//466 734//470 732//468 731//467 -f 732//468 735//471 736//472 733//469 -f 733//469 736//472 694//431 699//435 -f 735//471 732//468 734//470 737//473 -f 60//46 61//47 737//473 734//470 -f 690//429 694//431 736//472 -f 736//472 735//471 738//474 690//429 -f 738//474 735//471 737//473 739//475 -f 62//48 739//475 737//473 61//47 -f 62//48 63//49 740//476 739//475 -f 739//475 740//476 685//425 738//474 -f 738//474 685//425 684//424 690//429 -f 685//425 740//476 741//477 686//426 -f 741//477 740//476 63//49 64//50 -s 22 -f 64//1550 56//1548 677//1601 741//1615 -s 1 -f 741//477 677//417 678//418 686//426 -f 711//447 721//457 742//478 706//442 705//441 -f 742//478 703//439 629//392 706//442 -f 731//467 701//437 703//439 742//478 721//457 -g coat -f 204//185 206//187 725//461 -f 725//461 206//187 743//479 744//480 -f 744//480 743//479 257//238 745//481 -f 206//187 205//186 256//237 743//479 -f 725//461 744//480 746//482 747//483 -f 744//480 745//481 746//482 -f 725//461 747//483 748//484 726//462 -f 726//462 748//484 749//485 727//463 -f 727//463 749//485 750//486 728//464 -f 728//464 750//486 751//487 729//465 -f 751//487 750//486 752//488 753//489 -f 750//486 749//485 754//490 752//488 -f 749//485 748//484 755//491 754//490 -f 748//484 747//483 756//492 755//491 -f 747//483 746//482 756//492 -f 257//238 546//369 757//493 745//481 -f 546//369 545//368 548//371 757//493 -f 757//493 746//482 745//481 -f 757//493 548//371 758//494 746//482 -f 548//371 547//370 759//495 758//494 -f 549//372 760//496 759//495 547//370 -f 549//372 550//373 761//497 760//496 -f 550//373 551//374 762//498 761//497 -f 551//374 559//382 763//499 762//498 -f 559//382 558//381 764//500 763//499 -f 558//381 557//380 765//501 764//500 -f 556//379 766//502 765//501 557//380 -f 556//379 51//43 65//51 766//502 -f 753//489 752//488 767//503 768//504 -f 752//488 754//490 769//505 767//503 -f 754//490 755//491 770//506 769//505 -f 755//491 756//492 771//507 770//506 -f 756//492 746//482 758//494 771//507 -f 768//504 767//503 772//508 773//509 -f 767//503 769//505 774//510 772//508 -f 769//505 770//506 775//511 774//510 -f 770//506 776//512 775//511 -f 770//506 771//507 777//513 776//512 -f 771//507 758//494 759//495 777//513 -f 773//509 772//508 778//514 779//515 -f 772//508 774//510 780//516 778//514 -f 774//510 775//511 781//517 780//516 -f 775//511 776//512 782//518 781//517 -f 776//512 777//513 783//519 782//518 -f 779//515 778//514 784//520 785//521 -f 778//514 780//516 786//522 784//520 -f 780//516 781//517 787//523 786//522 -f 781//517 782//518 788//524 787//523 -f 782//518 789//525 788//524 -f 782//518 783//519 790//526 789//525 -f 785//521 784//520 791//527 792//528 -f 784//520 786//522 793//529 791//527 -f 786//522 787//523 794//530 793//529 -f 787//523 788//524 795//531 794//530 -f 788//524 789//525 796//532 795//531 -f 789//525 790//526 797//533 796//532 -f 792//528 791//527 798//534 799//535 -f 791//527 793//529 800//536 798//534 -f 793//529 794//530 801//537 800//536 -f 794//530 795//531 802//538 801//537 -f 795//531 796//532 803//539 802//538 -f 796//532 797//533 804//540 803//539 -f 799//535 798//534 805//541 806//542 -f 798//534 800//536 807//543 805//541 -f 800//536 801//537 808//544 807//543 -f 801//537 802//538 809//545 808//544 -f 802//538 803//539 810//546 809//545 -f 803//539 804//540 811//547 810//546 -f 806//542 805//541 812//548 813//549 -f 813//549 812//548 814//550 815//551 -f 815//551 814//550 816//552 817//553 -f 805//541 807//543 818//554 812//548 -f 812//548 818//554 819//555 814//550 -f 814//550 819//555 820//556 816//552 -f 807//543 808//544 821//557 818//554 -f 818//554 821//557 822//558 819//555 -f 819//555 822//558 823//559 820//556 -f 808//544 809//545 824//560 821//557 -f 821//557 824//560 825//561 822//558 -f 822//558 825//561 826//562 823//559 -f 809//545 810//546 827//563 824//560 -f 824//560 827//563 828//564 825//561 -f 825//561 828//564 829//565 826//562 -f 810//546 811//547 830//566 827//563 -f 827//563 830//566 831//567 828//564 -f 828//564 831//567 832//568 829//565 -f 777//513 759//495 760//496 783//519 -f 783//519 760//496 761//497 790//526 -f 790//526 761//497 762//498 797//533 -f 797//533 762//498 763//499 804//540 -f 804//540 763//499 764//500 811//547 -f 811//547 764//500 765//501 830//566 -f 830//566 765//501 766//502 831//567 -f 831//567 766//502 65//51 832//568 -g hair -s 22 -f 674//1599 675//1600 657//1588 656//1587 -f 669//1595 650//1581 648//1579 665//1594 -s off -f 608//6 642//6 643//6 -s 49 -f 563//1706 560//1705 412//1704 -s off -f 614//7 616//7 615//7 -g shirt -s 1 -f 340//314 341//315 153//134 154//135 -s off -f 592//8 427//8 423//8 591//8 -s 1 -f 406//338 407//339 417//349 562//385 -s off -f 406//9 562//9 561//9 -s 1 -f 423//352 405//337 591//388 -f 561//384 589//386 590//387 591//388 405//337 -f 405//337 406//338 561//384 -g hair -s 49 -f 635//1709 563//1706 412//1704 291//1703 623//1707 -g coat -s 1 -f 743//479 256//237 257//238 -g tie -s 15 -f 497//1300 503//1306 500//1303 498//1301 -f 503//1306 501//1304 500//1303 -f 497//1300 502//1305 503//1306 -s 55 -f 500//1481 499//1480 498//1479 -s 12 -f 437//1114 395//1109 397//1111 -s 15 -f 36//1246 35//1245 40//1250 -g coat -s 1 -f 36//37 40//38 530//356 84//70 -g shirt -s 15 -f 28//1238 27//1237 25//1235 -f 29//1239 28//1238 25//1235 26//1236 -s off -f 42//10 41//10 40//10 -s 15 -f 26//1236 833//1335 834//1336 29//1239 -f 29//1239 834//1336 835//1337 30//1240 -f 30//1240 835//1337 836//1338 31//1241 -f 31//1241 836//1338 837//1339 32//1242 -f 32//1242 837//1339 838//1340 33//1243 -f 33//1243 838//1340 839//1341 34//1244 -f 34//1244 839//1341 840//1342 37//1247 -f 37//1247 840//1342 841//1343 38//1248 -f 38//1248 841//1343 842//1344 39//1249 -f 39//1249 842//1344 843//1345 40//1250 -f 40//1250 843//1345 844//1346 42//1252 -f 42//1252 844//1346 845//1347 43//1253 -f 43//1253 845//1347 846//1348 44//1254 -f 44//1254 846//1348 847//1349 48//1257 -g tie -s 13 -f 24//1717 833//1719 26//1718 -g coat -s 83 -f 872//1745 871//1744 870//1743 869//1742 868//1741 867//1740 850//1723 849//1722 848//1721 -g shirt -s 15 -f 49//1258 848//1350 849//1351 47//1256 -f 47//1256 849//1351 850//1352 46//1255 -g coat -s 1 -f 46//41 850//569 851//570 45//40 -f 45//40 851//570 852//571 1//26 -f 1//26 852//571 853//572 2//27 -s 3 -f 2//964 853//968 854//969 4//965 -s 1 -f 4//29 854//573 855//574 3//28 -f 3//28 855//574 856//575 5//30 -f 5//30 856//575 857//576 6//31 -f 6//31 857//576 858//577 7//32 -f 7//32 858//577 859//578 8//33 -s 5 -f 8//986 859//1002 860//1003 9//987 -s 1 -f 9//34 860//579 861//580 10//35 -f 10//35 861//580 862//581 11//36 -f 11//36 862//581 863//582 50//42 -f 50//42 863//582 864//583 51//43 -f 51//43 864//583 865//584 65//51 -f 65//51 865//584 866//585 832//568 -f 832//568 866//585 867//586 829//565 -f 829//565 867//586 868//587 826//562 -f 826//562 868//587 869//588 823//559 -f 823//559 869//588 870//589 820//556 -f 820//556 870//589 871//590 816//552 -f 816//552 871//590 872//591 817//553 -g shirt -s 15 -f 49//1258 48//1257 847//1349 -g coat -s 83 -f 866//1739 865//1738 864//1737 863//1736 862//1735 861//1734 860//1733 -f 867//1740 866//1739 860//1733 859//1732 858//1731 857//1730 856//1729 855//1728 854//1727 853//1726 852//1725 851//1724 850//1723 -s 1 -f 914//599 913//598 912//597 911//596 -f 916//601 915//600 913//598 914//599 -f 918//603 917//602 915//600 916//601 -f 920//605 919//604 917//602 918//603 -f 922//607 921//606 919//604 920//605 -f 924//609 923//608 921//606 922//607 -f 926//611 925//610 923//608 924//609 -s 86 -f 876//1770 874//1769 925//1771 926//1772 -s 84 -f 874//1776 873//1775 927//1793 925//1791 -s 1 -f 925//610 927//612 928//613 923//608 -f 923//608 928//613 929//614 921//606 -s 96 -f 921//2006 929//2007 930//2008 919//2005 -f 919//2005 930//2008 931//2009 917//2004 -f 917//2004 931//2009 932//2010 915//2003 -f 915//2003 932//2010 933//2011 913//2002 -f 913//2002 933//2011 912//2001 -s 1 -f 935//616 934//615 914//599 911//596 -f 937//618 936//617 934//615 935//616 -f 939//620 938//619 936//617 937//618 -f 940//621 938//619 939//620 -f 942//623 941//622 938//619 940//621 -f 941//622 944//625 943//624 936//617 938//619 -f 943//624 946//627 945//626 934//615 936//617 -f 945//626 916//601 914//599 934//615 -f 948//629 947//628 918//603 916//601 945//626 -f 951//632 950//631 949//630 941//622 942//623 -f 941//622 949//630 944//625 -f 949//630 953//634 952//633 944//625 -f 950//631 954//635 949//630 -f 949//630 954//635 955//636 953//634 -f 948//629 945//626 946//627 -f 956//637 947//628 948//629 -f 958//639 948//629 946//627 957//638 -f 959//640 956//637 948//629 958//639 -f 952//633 953//634 960//641 -f 953//634 955//636 960//641 -f 958//639 957//638 961//642 -f 959//640 958//639 961//642 -f 952//633 962//643 943//624 944//625 -f 962//643 957//638 946//627 943//624 -f 963//644 962//643 952//633 960//641 -f 961//642 957//638 962//643 963//644 -f 955//636 965//646 964//645 960//641 -f 965//646 959//640 961//642 964//645 -f 965//646 966//647 956//637 959//640 -f 955//636 954//635 966//647 965//646 -f 964//645 961//642 963//644 960//641 -f 968//649 967//648 950//631 951//632 -f 967//648 969//650 966//647 954//635 950//631 -f 969//650 970//651 947//628 956//637 966//647 -f 970//651 920//605 918//603 947//628 -f 971//652 922//607 920//605 970//651 -f 972//653 924//609 922//607 971//652 -f 973//654 926//611 924//609 972//653 -s 84 -f 875//1777 876//1778 926//1792 973//1797 -f 973//1797 974//1798 877//1779 875//1777 -s 1 -f 972//653 975//656 974//655 973//654 -f 971//652 976//657 975//656 972//653 -f 970//651 969//650 976//657 971//652 -f 967//648 977//658 976//657 969//650 -f 968//649 978//659 977//658 967//648 -f 980//661 979//660 977//658 978//659 -f 982//663 981//662 979//660 980//661 -s 84 -f 879//1781 878//1780 981//1799 982//1800 -f 878//1780 877//1779 974//1798 981//1799 -s 1 -f 981//662 974//655 975//656 979//660 -f 979//660 975//656 976//657 977//658 -f 984//665 911//596 912//597 983//664 -f 985//666 911//596 984//665 -f 984//665 986//667 985//666 -f 983//664 988//669 987//668 986//667 984//665 -s 102 -f 989//2015 988//2014 983//2013 -f 983//2013 990//2016 989//2015 -f 912//2012 990//2016 983//2013 -s 1 -f 992//671 991//670 986//667 987//668 -g shirt -f 996//674 992//671 995//673 -g coat -f 998//676 997//675 991//670 992//671 996//674 -f 1000//678 997//675 998//676 999//677 -f 999//677 1002//680 1001//679 1000//678 -f 1003//681 986//667 991//670 -f 991//670 997//675 1004//682 1003//681 -f 1004//682 997//675 1000//678 1005//683 -f 1005//683 1000//678 1001//679 1006//684 -f 1008//686 1007//685 935//616 911//596 -f 911//596 985//666 1009//687 1008//686 -f 986//667 1010//688 1009//687 985//666 -f 1011//689 937//618 935//616 1007//685 -f 1012//690 939//620 937//618 1011//689 -f 1014//692 1013//691 951//632 942//623 -f 1013//691 1015//693 968//649 951//632 -f 1015//693 1016//694 978//659 968//649 -f 1016//694 1017//695 980//661 978//659 -f 1017//695 1018//696 982//663 980//661 -s 84 -f 1018//1809 880//1782 879//1781 982//1800 -s 1 -f 1019//697 940//621 939//620 1012//690 -f 1014//692 942//623 940//621 1019//697 -f 1021//699 1001//679 1002//680 1020//698 -f 1022//700 1006//684 1001//679 1021//699 -f 1024//702 1021//699 1020//698 1023//701 -f 1025//703 1022//700 1021//699 1024//702 -f 1024//702 1027//705 1026//704 1025//703 -f 1024//702 1023//701 1028//706 1027//705 -f 1026//704 1027//705 1030//708 1029//707 -f 1027//705 1028//706 1031//709 1030//708 -f 1031//709 1033//711 1032//710 1030//708 -f 1029//707 1030//708 1032//710 1034//712 -f 1036//714 1035//713 1029//707 1034//712 -f 1035//713 1037//715 1026//704 1029//707 -f 1037//715 1038//716 1025//703 1026//704 -f 1040//718 1039//717 1006//684 1022//700 -f 1039//717 1041//719 1005//683 1006//684 -f 1041//719 1042//720 1004//682 1005//683 -f 1040//718 1022//700 1025//703 1038//716 -f 1044//722 1043//721 1035//713 1036//714 -f 1043//721 1045//723 1037//715 1035//713 -f 1045//723 1046//724 1038//716 1037//715 -f 1046//724 1047//725 1040//718 1038//716 -s 84 -f 1047//1819 1048//1820 1039//1815 1040//1816 -s 1 -f 1049//727 1045//723 1043//721 -f 1051//729 1050//728 1045//723 1049//727 -f 1052//730 1046//724 1045//723 1050//728 -f 1053//731 1047//725 1046//724 1052//730 -f 1054//732 1048//726 1047//725 1053//731 -s 84 -f 1048//1820 1055//1821 1041//1817 1039//1815 -f 1055//1821 1056//1822 1042//1818 1041//1817 -s 1 -f 1054//732 1057//735 1055//733 1048//726 -f 1057//735 1058//736 1056//734 1055//733 -f 1059//737 1010//688 986//667 1003//681 -f 1004//682 1042//720 1059//737 1003//681 -f 1061//739 1060//738 1009//687 1010//688 -s off -f 1060//11 1062//11 1008//11 1009//11 -s 1 -f 1007//685 1008//686 1062//740 -f 1063//741 1011//689 1007//685 1062//740 -f 1064//742 1012//690 1011//689 1063//741 -f 1065//743 1019//697 1012//690 1064//742 -s 89 -f 1065//2026 1066//2027 1014//2020 1019//2025 -f 1066//2027 1067//2028 1013//2019 1014//2020 -f 1067//2028 1068//2029 1015//2021 1013//2019 -f 1068//2029 1069//2030 1016//2022 1015//2021 -f 1069//2030 1070//2031 1017//2023 1016//2022 -f 1070//2031 1071//2032 1018//2024 1017//2023 -f 1071//2032 881//2018 880//2017 1018//2024 -s 84 -f 1073//1837 1072//1836 1066//1830 1065//1829 -f 1065//1829 1076//1840 1075//1839 1074//1838 1073//1837 -f 1072//1836 1077//1841 1067//1831 1066//1830 -f 1077//1841 1078//1842 1068//1832 1067//1831 -f 1078//1842 1079//1843 1069//1833 1068//1832 -f 1079//1843 1080//1844 1070//1834 1069//1833 -f 1080//1844 1081//1845 1071//1835 1070//1834 -f 882//1784 881//1783 1071//1835 1081//1845 -s off -f 1082//12 1061//12 1010//12 1059//12 -s 84 -f 1056//1822 1082//1846 1059//1823 1042//1818 -s 1 -f 1058//736 1085//747 1084//746 1083//745 1082//744 1056//734 -s 84 -f 1082//1846 1060//1824 1061//1825 -f 1083//1847 1086//1850 1060//1824 1082//1846 -f 1063//1827 1062//1826 1060//1824 -f 1064//1828 1063//1827 1060//1824 -f 1086//1850 1087//1851 1064//1828 1060//1824 -f 1065//1829 1064//1828 1087//1851 1076//1840 -f 1085//1849 1074//1838 1075//1839 1084//1848 -g button -f 1089//1853 1088//1852 1086//1850 1083//1847 -s 1 -f 1084//746 1090//749 1089//748 1083//745 -s 84 -f 1075//1839 1091//1855 1090//1854 1084//1848 -f 1075//1839 1076//1840 1092//1856 1091//1855 -f 1076//1840 1087//1851 1093//1857 1092//1856 -f 1093//1857 1087//1851 1086//1850 1088//1852 -s 1 -f 1089//748 1090//749 1095//751 1094//750 -s 84 -f 1094//1858 1096//1860 1088//1852 1089//1853 -f 1097//1861 1093//1857 1088//1852 1096//1860 -f 1098//1862 1092//1856 1093//1857 1097//1861 -f 1099//1863 1091//1855 1092//1856 1098//1862 -f 1095//1859 1090//1854 1091//1855 1099//1863 -s 1 -f 1094//750 1095//751 1100//752 -s 84 -f 1096//1860 1094//1858 1100//1864 -f 1097//1861 1096//1860 1100//1864 -f 1098//1862 1097//1861 1100//1864 -f 1099//1863 1098//1862 1100//1864 -f 1095//1859 1099//1863 1100//1864 -g coat -s 1 -f 1101//753 1052//730 1050//728 -f 1101//753 1103//755 1053//731 1052//730 -f 1104//756 1054//732 1053//731 1103//755 -f 1105//757 1057//735 1054//732 1104//756 -f 1102//754 1106//758 1103//755 1101//753 -f 1106//758 1104//756 1103//755 -f 1106//758 1107//759 1105//757 1104//756 -f 1105//757 1108//760 1058//736 1057//735 -f 1109//761 1085//747 1058//736 1108//760 -s 84 -f 1110//1866 1074//1838 1085//1849 1109//1865 -f 1111//1867 1073//1837 1074//1838 1110//1866 -s 1 -f 1107//759 1112//762 1108//760 1105//757 -f 1113//763 1109//761 1108//760 1112//762 -s 84 -f 1114//1869 1110//1866 1109//1865 1113//1868 -f 1115//1870 1110//1866 1114//1869 -f 1115//1870 1111//1867 1110//1866 -f 1114//1869 1116//1871 1115//1870 -f 1113//1868 1117//1872 1116//1871 1114//1869 -s 1 -f 1112//762 1118//767 1117//766 1113//763 -f 1107//759 1119//768 1118//767 1112//762 -f 1106//758 1119//768 1107//759 -s 84 -f 1120//1873 1072//1836 1073//1837 1111//1867 -f 1121//1874 1077//1841 1072//1836 1120//1873 -f 1122//1875 1078//1842 1077//1841 1121//1874 -f 1123//1876 1079//1843 1078//1842 1122//1875 -f 1124//1877 1080//1844 1079//1843 1123//1876 -f 1125//1878 1081//1845 1080//1844 1124//1877 -f 883//1785 882//1784 1081//1845 1125//1878 -f 1115//1870 1126//1879 1120//1873 1111//1867 -f 1126//1879 1121//1874 1120//1873 -f 1126//1879 1127//1880 1122//1875 1121//1874 -f 1127//1880 1123//1876 1122//1875 -f 1127//1880 1128//1881 1124//1877 1123//1876 -f 1128//1881 1129//1882 1125//1878 1124//1877 -f 1129//1882 883//1785 1125//1878 -g shirt -s 116 -f 1133//2038 1132//2037 1131//2036 1130//2035 -s 84 -f 1132//1885 1135//1887 1134//1886 1131//1884 -f 1134//1886 1135//1887 1137//1889 1136//1888 -f 1135//1887 1139//1891 1138//1890 1137//1889 -f 1132//1885 1140//1892 1139//1891 1135//1887 -s 116 -f 1133//2038 1141//2040 1140//2039 1132//2037 -f 1143//2042 1142//2041 1140//2039 1141//2040 -s 84 -f 1142//1893 1144//1894 1139//1891 1140//1892 -f 1144//1894 1145//1895 1138//1890 1139//1891 -f 1147//1897 1146//1896 1145//1895 1144//1894 -f 1149//1899 1148//1898 1146//1896 1147//1897 -f 1150//1900 1148//1898 1149//1899 -f 1152//1902 1151//1901 1148//1898 1150//1900 -f 1154//1904 1153//1903 1151//1901 1152//1902 -f 1156//1906 1155//1905 1154//1904 1152//1902 -f 1152//1902 1150//1900 1157//1907 1156//1906 -f 1149//1899 1158//1908 1157//1907 1150//1900 -f 1144//1894 1142//1893 1159//1909 1147//1897 -f 1159//1909 1158//1908 1149//1899 1147//1897 -s 116 -f 1143//2042 1160//2044 1159//2043 1142//2041 -f 1162//2046 1161//2045 1159//2043 1160//2044 -s 84 -f 1158//1908 1159//1909 1161//1910 -f 1161//1910 1163//1911 1157//1907 1158//1908 -s 116 -f 1162//2046 1164//2048 1163//2047 1161//2045 -s 84 -f 1166//1913 1165//1912 1155//1905 1156//1906 -f 1156//1906 1157//1907 1167//1914 1166//1913 -f 1163//1911 1167//1914 1157//1907 -s 116 -f 1164//2048 1169//2050 1168//2049 1163//2047 -s 84 -f 1168//1915 1170//1916 1167//1914 1163//1911 -f 1171//1917 1166//1913 1167//1914 1170//1916 -f 1172//1918 1165//1912 1166//1913 1171//1917 -f 1170//1916 1173//1919 1171//1917 -f 1168//1915 1173//1919 1170//1916 -f 1174//1920 1172//1918 1171//1917 1173//1919 -f 1173//1919 1175//1921 1174//1920 -f 1176//1922 1175//1921 1173//1919 -f 1173//1919 1177//1923 1176//1922 -f 1178//1924 1177//1923 1173//1919 -s 116 -f 1173//2051 1168//2049 1169//2050 1178//2052 -s 84 -f 1180//1926 1179//1925 1033//1814 1031//1813 -s 116 -f 1180//2054 1133//2038 1130//2035 1179//2053 -f 1180//2054 1181//2055 1141//2040 1133//2038 -s 84 -f 1031//1813 1028//1812 1181//1927 1180//1926 -s 116 -f 1181//2055 1182//2056 1143//2042 1141//2040 -s 84 -f 1028//1812 1023//1811 1182//1928 1181//1927 -s 116 -f 1182//2056 1183//2057 1160//2044 1143//2042 -s 84 -f 1023//1811 1020//1810 1183//1929 1182//1928 -s 116 -f 1160//2044 1183//2057 1184//2058 1162//2046 -f 1184//2058 1185//2059 1164//2048 1162//2046 -s 84 -f 1002//1808 1184//1930 1183//1929 1020//1810 -f 1002//1808 999//1807 1185//1931 1184//1930 -f 996//1805 1187//1933 1186//1932 998//1806 -f 995//1804 1188//1934 1187//1933 996//1805 -f 994//1803 1189//1935 1188//1934 995//1804 -s 1 -f 1190//774 994//672 995//673 992//671 -s 84 -f 993//1802 994//1803 1190//1936 -s 1 -f 992//671 987//668 1190//774 -s 84 -f 1191//1937 1189//1935 994//1803 993//1802 -f 1191//1937 1172//1918 1174//1920 1189//1935 -f 1175//1921 1188//1934 1189//1935 1174//1920 -f 1176//1922 1188//1934 1175//1921 -f 1176//1922 1177//1923 1188//1934 -f 1177//1923 1178//1924 1187//1933 1188//1934 -s 116 -f 1178//2052 1169//2050 1186//2060 1187//2061 -f 1169//2050 1164//2048 1185//2059 1186//2060 -s 104 -f 990//2064 1193//2066 1192//2065 989//2063 -s 103 -f 1192//2071 1194//2072 988//2069 989//2070 -s 104 -f 990//2064 912//2062 1195//2067 1193//2066 -s 103 -f 1196//2073 987//2068 988//2069 1194//2072 -s 101 -f 912//2074 933//2078 1197//2085 1195//2083 -f 1195//2083 1197//2085 1199//2087 1198//2086 -f 1199//2087 1200//2088 1198//2086 -f 1201//2089 1193//2081 1195//2083 1198//2086 -f 1198//2086 1200//2088 1201//2089 -f 1193//2081 1201//2089 1202//2090 1192//2080 -f 1203//2091 1194//2082 1192//2080 1202//2090 -f 1204//2092 1196//2084 1194//2082 1203//2091 -f 1203//2091 1206//2094 1205//2093 1204//2092 -f 1202//2090 1207//2095 1206//2094 1203//2091 -f 1208//2096 1206//2094 1207//2095 -f 1206//2094 1208//2096 1209//2097 -f 1210//2098 1205//2093 1206//2094 1209//2097 -s 84 -f 1211//1939 1190//1936 987//1801 1196//1938 -f 1211//1939 993//1802 1190//1936 -f 1213//1941 1212//1940 1191//1937 993//1802 -f 1191//1937 1212//1940 1165//1912 1172//1918 -f 1213//1941 1215//1943 1214//1942 1212//1940 -f 1214//1942 1155//1905 1165//1912 1212//1940 -s 101 -f 1216//2102 1211//2099 1196//2084 1204//2092 -f 1204//2092 1205//2093 1216//2102 -f 1205//2093 1210//2098 1217//2103 1216//2102 -f 1211//2099 1216//2102 1213//2100 993//2079 -f 1216//2102 1217//2103 1215//2101 1213//2100 -f 1217//2103 1218//2104 1215//2101 -f 1210//2098 1219//2105 1218//2104 1217//2103 -f 1210//2098 1209//2097 1220//2106 1219//2105 -g tie -s 12 -f 1222//1135 1218//1133 1221//1134 -f 1223//1136 1222//1135 1221//1134 -s 101 -f 1219//2105 1220//2106 1221//2107 -f 1218//2104 1219//2105 1221//2107 -g shirt -f 1224//2108 1215//2101 1218//2104 -g tie -s 12 -f 1218//1133 1225//1138 1224//1137 -f 1218//1133 1222//1135 1226//1139 1225//1138 -f 1222//1135 1223//1136 1227//1140 1226//1139 -g shirt -s 84 -f 1228//1945 1215//1943 1224//1944 -f 1229//1946 1214//1942 1215//1943 1228//1945 -f 1155//1905 1214//1942 1229//1946 -f 1231//1948 1230//1947 1228//1945 1224//1944 -g tie -s 12 -f 1224//1137 1225//1138 1232//1142 1231//1141 -f 1225//1138 1226//1139 1233//1143 1232//1142 -f 1226//1139 1227//1140 1234//1144 1233//1143 -f 1232//1142 1235//1145 1231//1141 -f 1232//1142 1233//1143 1236//1146 1235//1145 -f 1236//1146 1237//1147 1235//1145 -f 1233//1143 1234//1144 1238//1148 1236//1146 -f 1236//1146 1238//1148 1239//1149 1237//1147 -f 1234//1144 1241//1151 1240//1150 1238//1148 -f 1238//1148 1240//1150 1242//1152 1239//1149 -f 1227//1140 1243//1153 1241//1151 1234//1144 -g shirt -s 84 -f 1231//1948 1244//1949 1230//1947 -f 1245//1950 1230//1947 1244//1949 -s 8 -f 1244//1208 1246//1210 1245//1209 -f 1231//1203 1235//1204 1246//1210 1244//1208 -s 84 -f 1247//1951 1229//1946 1228//1945 1230//1947 -f 1248//1952 1247//1951 1230//1947 1245//1950 -f 1245//1950 1249//1953 1248//1952 -f 1153//1903 1154//1904 1247//1951 1248//1952 -f 1155//1905 1229//1946 1247//1951 1154//1904 -f 1250//1954 1153//1903 1248//1952 1249//1953 -f 1153//1903 1250//1954 1251//1955 1151//1901 -f 1148//1898 1151//1901 1251//1955 1252//1956 -f 1252//1956 1253//1957 1146//1896 1148//1898 -f 1254//1958 1145//1895 1146//1896 1253//1957 -f 1255//1959 1138//1890 1145//1895 1254//1958 -f 1256//1960 1137//1889 1138//1890 1255//1959 -f 1257//1961 1136//1888 1137//1889 1256//1960 -f 1255//1959 1259//1963 1258//1962 1256//1960 -f 1254//1958 1260//1964 1259//1963 1255//1959 -f 1253//1957 1261//1965 1260//1964 1254//1958 -f 1252//1956 1262//1966 1261//1965 1253//1957 -s 8 -f 1246//1210 1264//1212 1263//1211 1245//1209 -f 1235//1204 1237//1205 1264//1212 1246//1210 -f 1263//1211 1265//1213 1245//1209 -f 1265//1213 1266//1214 1245//1209 -s 84 -f 1266//1967 1267//1968 1249//1953 1245//1950 -f 1267//1968 1268//1969 1250//1954 1249//1953 -s 8 -f 1269//1216 1270//1217 1266//1214 1265//1213 -f 1265//1213 1263//1211 1271//1218 1269//1216 -s 84 -f 1266//1967 1270//1970 1267//1968 -s 8 -f 1273//1220 1272//1219 1268//1215 -s 84 -f 1268//1969 1267//1968 1270//1970 1273//1971 -s 8 -f 1275//1222 1269//1216 1271//1218 1274//1221 -f 1274//1221 15//1174 13//1172 1275//1222 -f 1275//1222 1276//1223 1270//1217 1269//1216 -s 84 -f 1270//1970 1276//1972 1273//1971 -s 8 -f 1273//1220 1276//1223 1277//1224 1272//1219 -f 1275//1222 13//1172 12//1171 1276//1223 -f 1264//1212 1278//1225 1271//1218 1263//1211 -f 1237//1205 1239//1206 1278//1225 1264//1212 -f 1242//1207 1279//1226 1278//1225 1239//1206 -f 1279//1226 1274//1221 1271//1218 1278//1225 -f 1280//1227 1274//1221 1279//1226 -f 14//1173 15//1174 1274//1221 1280//1227 -f 1280//1227 1281//1228 16//1175 14//1173 -f 1279//1226 1242//1207 1281//1228 1280//1227 -f 1276//1223 12//1171 17//1176 1277//1224 -g tie -s 12 -f 1283//1156 1281//1154 1242//1152 1282//1155 -s 11 -f 18//2115 16//2114 1281//2117 1283//2118 -f 1283//2118 1284//2119 19//2116 18//2115 -s 12 -f 1282//1155 1285//1158 1284//1157 1283//1156 -f 1240//1150 1241//1151 1285//1158 1282//1155 -f 1243//1153 1286//1159 1241//1151 -f 1286//1159 1287//1160 1285//1158 1241//1151 -f 1287//1160 1288//1161 1284//1157 1285//1158 -f 1288//1161 20//1084 19//1083 1284//1157 -f 1243//1153 1289//1162 1286//1159 -f 1289//1162 1290//1163 1287//1160 1286//1159 -f 1290//1163 1291//1164 1288//1161 1287//1160 -f 1291//1164 21//1085 20//1084 1288//1161 -s 15 -f 1293//1381 1292//1380 1289//1379 1243//1378 -s 125 -f 1227//2127 1294//2130 1293//2129 1243//2128 -f 1294//2130 1296//2132 1295//2131 1293//2129 -f 1297//2133 1294//2130 1227//2127 1223//2126 -f 1209//2123 1298//2134 1297//2133 1220//2124 -f 1297//2133 1223//2126 1221//2125 1220//2124 -f 1298//2134 1296//2132 1294//2130 1297//2133 -f 1209//2123 1208//2122 1299//2135 1298//2134 -f 1298//2134 1299//2135 1300//2136 1296//2132 -f 1296//2132 1300//2136 1301//2137 1295//2131 -s 15 -f 1295//1382 1302//1384 1292//1380 1293//1381 -s 125 -f 1207//2121 1303//2138 1299//2135 1208//2122 -f 1299//2135 1303//2138 1300//2136 -f 1207//2121 1202//2120 1304//2139 1303//2138 -f 1303//2138 1304//2139 1305//2140 1300//2136 -f 1305//2140 1301//2137 1300//2136 -s 15 -f 1301//1383 1306//1386 1302//1384 1295//1382 -f 1305//1385 1307//1387 1306//1386 1301//1383 -s 125 -f 1304//2139 1308//2141 1305//2140 -f 1309//2142 1308//2141 1304//2139 1202//2120 -s 124 -f 1201//2148 1310//2150 1202//2149 -f 1201//2148 1312//2152 1311//2151 1310//2150 -s 15 -f 1310//1390 1313//1392 1202//1377 -f 1313//1392 1309//1389 1202//1377 -f 1310//1390 1311//1391 1314//1393 1313//1392 -f 1314//1393 1309//1389 1313//1392 -f 1314//1393 1316//1395 1315//1394 1309//1389 -f 1311//1391 1317//1396 1316//1395 1314//1393 -s 125 -f 1315//2143 1318//2144 1308//2141 1309//2142 -s 15 -f 1308//1388 1319//1398 1307//1387 1305//1385 -f 1318//1397 1320//1399 1319//1398 1308//1388 -s 12 -f 1322//1166 1321//1165 1290//1163 1289//1162 -f 1321//1165 1323//1167 1291//1164 1290//1163 -f 1323//1167 22//1086 21//1085 1291//1164 -f 1324//1168 23//1087 22//1086 1323//1167 -f 1321//1165 1325//1169 1324//1168 1323//1167 -f 1322//1166 1326//1170 1325//1169 1321//1165 -f 24//1088 23//1087 1324//1168 885//1131 -f 1324//1168 1325//1169 884//1130 885//1131 -f 1326//1170 886//1132 884//1130 1325//1169 -s 15 -f 1292//1380 1327//1402 1322//1400 1289//1379 -f 1302//1384 1328//1403 1327//1402 1292//1380 -f 1306//1386 1328//1403 1302//1384 -f 1307//1387 1328//1403 1306//1386 -f 1319//1398 1329//1404 1328//1403 1307//1387 -f 1320//1399 1330//1405 1329//1404 1319//1398 -f 1327//1402 1331//1406 1326//1401 1322//1400 -f 1328//1403 1332//1407 1331//1406 1327//1402 -f 1329//1404 1333//1408 1332//1407 1328//1403 -f 1331//1406 887//1356 886//1355 1326//1401 -f 1332//1407 888//1357 887//1356 1331//1406 -f 1333//1408 889//1358 888//1357 1332//1407 -f 1334//1409 890//1359 889//1358 1333//1408 -f 1330//1405 1334//1409 1333//1408 1329//1404 -f 1336//1411 1335//1410 1334//1409 1330//1405 -f 1335//1410 891//1360 890//1359 1334//1409 -f 1337//1412 892//1361 891//1360 1335//1410 -f 1336//1411 1338//1413 1337//1412 -f 1337//1412 1335//1410 1336//1411 -f 1336//1411 1330//1405 1320//1399 1338//1413 -f 1339//1414 893//1362 892//1361 1337//1412 -f 1340//1415 1339//1414 1337//1412 -f 1337//1412 1338//1413 1341//1416 1340//1415 -f 1343//1418 1342//1417 1341//1416 1338//1413 -f 1344//1419 1343//1418 1338//1413 -f 1338//1413 1320//1399 1318//1397 1344//1419 -s 125 -f 1315//2143 1345//2147 1344//2146 1318//2144 -s 15 -f 1316//1395 1346//1421 1345//1420 1315//1394 -f 1317//1396 1347//1422 1346//1421 1316//1395 -f 1348//1423 1346//1421 1347//1422 -s 101 -f 1200//2088 1349//2110 1312//2109 1201//2089 -f 1199//2087 1350//2111 1349//2110 1200//2088 -f 1197//2085 1350//2111 1199//2087 -f 1197//2085 933//2078 932//2077 1351//2112 1350//2111 -f 932//2077 931//2076 1352//2113 1351//2112 -f 931//2076 930//2075 1352//2113 -s 15 -f 930//1376 895//1364 1353//1427 -f 1354//1428 1352//1426 930//1376 1353//1427 -f 1355//1429 1352//1426 1354//1428 -f 1351//1425 1352//1426 1355//1429 -f 1351//1425 1355//1429 1350//1424 -f 1355//1429 1357//1431 1356//1430 1350//1424 -s 137 -f 1350//2155 1356//2156 1358//2157 1349//2154 -s 15 -f 895//1364 894//1363 1353//1427 -f 894//1363 1359//1432 1353//1427 -f 1359//1432 1361//1434 1360//1433 1353//1427 -f 1361//1434 1363//1436 1362//1435 1360//1433 -s off -f 1312//13 1364//13 1311//13 -s 137 -f 1349//2154 1358//2157 1364//2158 1312//2153 -s 15 -f 1365//1437 1317//1396 1311//1391 -f 1311//1391 1366//1438 1365//1437 -f 1366//1438 1368//1440 1367//1439 1365//1437 -f 1368//1440 1369//1441 1367//1439 -f 1355//1429 1354//1428 1369//1441 1368//1440 -s 139 -f 1364//2164 1370//2167 1366//2165 1311//2159 -f 1370//2167 1371//2168 1368//2166 1366//2165 -f 1371//2168 1357//2162 1355//2160 1368//2166 -f 1358//2163 1356//2161 1357//2162 1371//2168 1370//2167 1364//2164 -s 15 -f 1365//1437 1347//1422 1317//1396 -f 1367//1439 1347//1422 1365//1437 -f 1369//1441 1372//1442 1347//1422 1367//1439 -f 1372//1442 1342//1417 1347//1422 -f 1369//1441 1373//1443 1372//1442 -f 1354//1428 1373//1443 1369//1441 -f 1360//1433 1362//1435 1373//1443 -f 1374//1444 1360//1433 1373//1443 -f 1373//1443 1354//1428 1374//1444 -f 1353//1427 1360//1433 1374//1444 -f 1374//1444 1354//1428 1353//1427 -f 1373//1443 1362//1435 1340//1415 1341//1416 -f 1341//1416 1342//1417 1373//1443 -f 1372//1442 1373//1443 1342//1417 -f 1362//1435 1363//1436 1339//1414 1340//1415 -f 1339//1414 1363//1436 896//1365 893//1362 -f 1361//1434 897//1366 896//1365 1363//1436 -f 1361//1434 1359//1432 898//1367 897//1366 -f 899//1368 898//1367 1359//1432 894//1363 -g coat -s 84 -f 929//1795 895//1786 930//1796 -f 1375//1973 1376//1974 900//1788 899//1787 -f 1377//1975 1375//1973 929//1795 -f 1377//1975 1378//1976 1376//1974 1375//1973 -f 928//1794 1379//1977 1377//1975 929//1795 -f 1379//1977 1380//1978 1378//1976 1377//1975 -g shirt -s 15 -f 1376//1445 901//1370 900//1369 -f 1378//1446 1381//1448 901//1370 1376//1445 -f 1381//1448 902//1371 901//1370 -f 1380//1447 1382//1449 1381//1448 1378//1446 -f 1382//1449 903//1372 902//1371 1381//1448 -g coat -s 84 -f 927//1793 1383//1979 1379//1977 928//1794 -f 873//1775 904//1789 1383//1979 927//1793 -f 905//1790 1384//1980 1383//1979 904//1789 -f 1383//1979 1384//1980 1380//1978 1379//1977 -g shirt -s 15 -f 1384//1450 1385//1451 1382//1449 1380//1447 -f 905//1373 906//1374 1385//1451 1384//1450 -f 1385//1451 907//1375 903//1372 1382//1449 -f 906//1374 49//1258 907//1375 1385//1451 -g coat -s 1 -f 1387//776 1386//775 1115//764 1116//765 -f 1388//777 1387//776 1116//765 1117//766 -f 1389//778 1388//777 1117//766 1118//767 -f 1390//779 1389//778 1118//767 1119//768 -f 1391//780 1390//779 1119//768 1106//758 -f 1391//780 1106//758 1102//754 -f 1393//782 1392//781 1389//778 1390//779 -f 1392//781 1394//783 1388//777 1389//778 -f 1394//783 1395//784 1387//776 1388//777 -f 1395//784 1396//785 1386//775 1387//776 -f 1386//775 1397//786 1126//769 1115//764 -f 1397//786 1398//787 1127//770 1126//769 -f 1398//787 1399//788 1128//771 1127//770 -f 1399//788 1400//789 1129//772 1128//771 -f 1400//789 908//593 883//592 1129//772 -f 1401//790 909//594 908//593 1400//789 -f 1399//788 1402//791 1401//790 1400//789 -f 1398//787 1403//792 1402//791 1399//788 -f 1397//786 1404//793 1403//792 1398//787 -f 1386//775 1396//785 1404//793 1397//786 -g shirt -s 84 -f 1256//1960 1258//1962 1405//1981 1257//1961 -g hair -s 141 -f 1410//2170 1412//2172 1411//2171 1409//2169 -f 1413//2173 1412//2172 1410//2170 -f 1414//2174 1411//2171 1412//2172 -f 1416//2176 1415//2175 1412//2172 1413//2173 -f 1417//2177 1414//2174 1412//2172 1415//2175 -f 1416//2176 1418//2178 1415//2175 -f 1420//2180 1419//2179 1418//2178 1416//2176 -f 1420//2180 1421//2181 1419//2179 -f 1422//2182 1419//2179 1421//2181 -f 1421//2181 1424//2184 1423//2183 1422//2182 -f 1426//2186 1425//2185 1418//2178 1419//2179 -f 1419//2179 1422//2182 1426//2186 -f 1428//2188 1427//2187 1426//2186 1422//2182 -f 1422//2182 1423//2183 1428//2188 -f 1423//2183 1430//2190 1429//2189 1428//2188 -f 1424//2184 1431//2191 1430//2190 1423//2183 -f 1430//2190 1433//2193 1432//2192 1429//2189 -f 1431//2191 1433//2193 1430//2190 -s 22 -f 53//1545 1447//1625 1446//1624 52//1544 -f 54//1546 1447//1625 53//1545 -f 1448//1626 1445//1623 1446//1624 1447//1625 -f 1449//1627 1444//1622 1445//1623 1448//1626 -f 1450//1628 1443//1621 1444//1622 1449//1627 -f 1452//1630 1451//1629 1442//1620 1443//1621 1450//1628 -f 1441//1619 1442//1620 1451//1629 -f 1454//1632 1453//1631 1440//1618 1441//1619 -f 1441//1619 1451//1629 1452//1630 1454//1632 -f 1440//1618 1453//1631 1439//1617 -f 1453//1631 1455//1633 1438//1616 1439//1617 -f 1455//1633 1456//1634 1438//1616 -s off -f 1461//14 1460//14 1459//14 -s 141 -f 1425//2185 1417//2177 1415//2175 1418//2178 -f 1463//2198 1462//2197 1417//2177 1425//2185 -f 1464//2199 1458//2196 1462//2197 1463//2198 -f 1463//2198 1426//2186 1427//2187 1465//2200 1464//2199 -f 1463//2198 1425//2185 1426//2186 -f 1466//2201 1464//2199 1465//2200 -s 117 -f 1467//2217 1458//2214 1464//2215 1466//2216 -f 1457//2213 1458//2214 1467//2217 -f 1457//2213 1470//2220 1469//2219 1468//2218 -f 1470//2220 1457//2213 1467//2217 -s 119 -f 1469//2235 1134//2229 1136//2230 1468//2234 -s 117 -f 1469//2219 1472//2222 1471//2221 1134//2212 -f 1471//2221 1473//2223 1131//2211 1134//2212 -f 1474//2224 1130//2210 1131//2211 1473//2223 -f 1475//2225 1472//2222 1469//2219 1470//2220 -f 1467//2217 1476//2226 1475//2225 1470//2220 -f 1466//2216 1478//2228 1477//2227 1476//2226 1467//2217 -s 141 -f 1465//2200 1427//2187 1479//2203 1478//2202 1466//2201 -f 1479//2203 1427//2187 1428//2188 1429//2189 -f 1429//2189 1432//2192 1481//2204 1479//2203 -f 1482//2205 1432//2192 1433//2193 -f 1433//2193 1438//2194 1456//2195 1482//2205 -f 1482//2205 1483//2206 1481//2204 1432//2192 -f 1456//2195 1484//2207 1483//2206 1482//2205 -s 22 -f 1485//1636 1484//1635 1456//1634 -f 1456//1634 1455//1633 1486//1637 1485//1636 -f 1453//1631 1487//1638 1486//1637 1455//1633 -f 1454//1632 1489//1640 1488//1639 1453//1631 -s off -f 1488//15 1490//15 1487//15 -s 22 -f 1491//1642 1485//1636 1486//1637 -f 1491//1642 1486//1637 1487//1638 1490//1641 -f 1492//1643 1484//1635 1485//1636 1491//1642 -f 1452//1630 1493//1644 1489//1640 1454//1632 -f 1494//1645 1493//1644 1452//1630 -f 1452//1630 1450//1628 1494//1645 -f 1494//1645 1496//1647 1495//1646 1493//1644 -f 1450//1628 1496//1647 1494//1645 -f 1449//1627 1497//1648 1496//1647 1450//1628 -f 1448//1626 1498//1649 1497//1648 1449//1627 -f 1447//1625 54//1546 55//1547 1448//1626 -f 55//1547 1499//1650 1498//1649 1448//1626 -f 657//1588 1501//1652 1500//1651 1499//1650 55//1547 -f 1502//1653 1498//1649 1499//1650 1500//1651 -f 1497//1648 1498//1649 1502//1653 1503//1654 -f 1495//1646 1496//1647 1497//1648 1503//1654 -f 1490//1641 1504//1655 1492//1643 1491//1642 -s 1 -f 1488//803 1506//808 1505//807 1490//805 -s 22 -f 1505//1656 1504//1655 1490//1641 -s 1 -f 1489//804 1508//810 1507//809 1506//808 1488//803 -s 22 -f 1493//1644 1509//1658 1508//1657 -s 1 -f 1509//811 1510//812 1507//809 1508//810 -f 1511//813 1510//812 1509//811 -f 1509//811 1513//815 1512//814 1511//813 -s 22 -f 1495//1646 1503//1654 1514//1660 1513//1659 -s 1 -f 1514//816 1515//817 1512//814 1513//815 -f 1514//816 1516//818 1515//817 -f 1493//806 1508//810 1489//804 -s 22 -f 1517//1663 1516//1662 1502//1653 1500//1651 -f 1503//1654 1502//1653 1516//1662 1514//1660 -f 1501//1652 1518//1664 1517//1663 1500//1651 -f 1520//1666 1519//1665 1518//1664 -f 675//1600 57//1549 56//1548 1520//1666 1518//1664 -f 1519//1665 1515//1661 1517//1663 1518//1664 -s 1 -f 1516//818 1517//819 1515//817 -s 22 -f 1521//1667 1515//1661 1519//1665 1520//1666 -s 1 -f 1522//821 1511//813 1515//817 1521//820 -f 1507//809 1510//812 1522//821 -f 1512//814 1515//817 1511//813 -f 1510//812 1511//813 1522//821 -f 1507//809 1523//822 1506//808 -f 1524//823 1523//822 1507//809 -f 1526//825 1525//824 1524//823 1507//809 -f 1527//826 1525//824 1526//825 -f 1529//828 1528//827 1527//826 1526//825 -f 1507//809 1522//821 1521//820 1529//828 1526//825 -f 1505//807 1506//808 1523//822 -f 1524//823 1530//829 1505//807 1523//822 -s 22 -f 1525//1669 1531//1672 1530//1671 1524//1668 -f 1532//1673 1531//1672 1525//1669 -s 1 -f 1525//824 1527//826 1533//831 1532//830 -s 22 -f 1530//1671 1534//1674 1504//1655 1505//1656 -f 1532//1673 1535//1675 1534//1674 1531//1672 -f 1536//1676 1535//1675 1532//1673 -s 1 -f 1532//830 1533//831 1537//833 1536//832 -s 147 -f 1483//2238 1492//2240 1504//2241 -f 1534//2242 1481//2237 1483//2238 1504//2241 -f 1481//2237 1534//2242 1538//2243 -s 141 -f 1538//2208 1539//2209 1479//2203 1481//2204 -s 22 -f 1535//1675 1536//1676 1540//1679 -f 1540//1679 1538//1677 1534//1674 1535//1675 -f 1536//1676 1541//1680 1540//1679 -s 1 -f 1537//833 1542//837 1541//836 1536//832 -s 22 -f 1534//1674 1530//1671 1531//1672 -s 1 -f 1544//839 1543//838 1541//836 1542//837 -f 1546//841 1545//840 1543//838 1544//839 -f 1472//795 1475//798 1547//842 1545//840 -f 1474//797 1473//796 1545//840 1546//841 -f 1473//796 1471//794 1545//840 -f 1471//794 1472//795 1545//840 -f 1476//799 1477//800 1547//842 1475//798 -f 1539//834 1540//835 1547//842 1477//800 -s 22 -f 1539//1678 1538//1677 1540//1679 -f 1541//1680 1547//1681 1540//1679 -s 1 -f 1543//838 1547//842 1541//836 -f 1477//800 1478//801 1479//802 1539//834 -f 1543//838 1545//840 1547//842 -s 147 -f 1483//2238 1484//2239 1492//2240 -s 1 -f 1549//844 1548//843 1130//773 1474//797 -g shirt -s 84 -f 1033//1814 1179//1925 1130//1883 1548//1987 -g coat -s 1 -f 1548//843 1550//845 1032//710 1033//711 -f 1551//846 1034//712 1032//710 1550//845 -f 1552//847 1036//714 1034//712 1551//846 -f 1044//722 1036//714 1552//847 1553//848 -f 1550//845 1548//843 1554//849 -f 1554//849 1555//850 1551//846 1550//845 -f 1557//852 1556//851 1555//850 1554//849 -f 716//452 715//451 1556//851 1557//852 -f 718//454 1558//853 1556//851 715//451 -f 1558//853 1559//854 1555//850 1556//851 -f 1559//854 1552//847 1551//846 1555//850 -g hair -f 1561//856 1560//855 1557//852 1554//849 -f 1560//855 59//45 716//452 1557//852 -g coat -f 723//459 1562//857 1558//853 718//454 -f 1563//858 1559//854 1558//853 1562//857 -f 1553//848 1552//847 1559//854 1563//858 -f 1044//722 1564//859 1049//727 1043//721 -f 1553//848 1565//860 1564//859 1044//722 -f 1563//858 1566//861 1565//860 1553//848 -f 1562//857 1567//862 1566//861 1563//858 -f 723//459 729//465 1567//862 1562//857 -g hair -f 1560//855 1568//863 58//44 59//45 -f 1561//856 1569//864 1568//863 1560//855 -f 1571//866 1570//865 1569//864 1544//839 -f 1544//839 1542//837 1571//866 -f 1568//863 1572//867 60//46 58//44 -f 1569//864 1570//865 1572//867 1568//863 -f 1571//866 1574//869 1573//868 1570//865 -f 1542//837 1537//833 1574//869 1571//866 -f 1575//870 1572//867 1570//865 1573//868 -f 1572//867 1575//870 61//47 60//46 -f 1574//869 1537//833 1533//831 -f 1533//831 1576//871 1573//868 1574//869 -f 1577//872 1575//870 1573//868 1576//871 -f 61//47 1575//870 1577//872 62//48 -f 1577//872 1578//873 63//49 62//48 -f 1576//871 1528//827 1578//873 1577//872 -f 1533//831 1527//826 1528//827 1576//871 -f 1529//828 1579//874 1578//873 1528//827 -f 64//50 63//49 1578//873 1579//874 -s 22 -f 1579//1682 1520//1666 56//1548 64//1550 -f 1529//1670 1521//1667 1520//1666 1579//1682 -s 1 -f 1548//843 1549//844 1580//875 1561//856 1554//849 -f 1549//844 1474//797 1546//841 1580//875 -f 1561//856 1580//875 1546//841 1544//839 1569//864 -g coat -f 1564//859 1051//729 1049//727 -f 1582//877 1581//876 1051//729 1564//859 -f 1583//878 1102//754 1581//876 1582//877 -f 1581//876 1101//753 1050//728 1051//729 -f 1585//880 1584//879 1582//877 1564//859 -f 1584//879 1583//878 1582//877 -f 1565//860 1586//881 1585//880 1564//859 -f 1566//861 1587//882 1586//881 1565//860 -f 1567//862 1588//883 1587//882 1566//861 -f 729//465 751//487 1588//883 1567//862 -f 753//489 1589//884 1588//883 751//487 -f 1589//884 1590//885 1587//882 1588//883 -f 1590//885 1591//886 1586//881 1587//882 -f 1591//886 1592//887 1585//880 1586//881 -f 1592//887 1584//879 1585//880 -f 1583//878 1593//888 1391//780 1102//754 -f 1593//888 1393//782 1390//779 1391//780 -f 1583//878 1584//879 1593//888 -f 1584//879 1594//889 1393//782 1593//888 -f 1594//889 1595//890 1392//781 1393//782 -f 1392//781 1595//890 1596//891 1394//783 -f 1596//891 1597//892 1395//784 1394//783 -f 1597//892 1598//893 1396//785 1395//784 -f 1598//893 1599//894 1404//793 1396//785 -f 1599//894 1600//895 1403//792 1404//793 -f 1600//895 1601//896 1402//791 1403//792 -f 1402//791 1601//896 1602//897 1401//790 -f 1602//897 910//595 909//594 1401//790 -f 768//504 1603//898 1589//884 753//489 -f 1603//898 1604//899 1590//885 1589//884 -f 1604//899 1605//900 1591//886 1590//885 -f 1605//900 1606//901 1592//887 1591//886 -f 1606//901 1594//889 1584//879 1592//887 -f 773//509 1607//902 1603//898 768//504 -f 1607//902 1608//903 1604//899 1603//898 -f 1608//903 1609//904 1605//900 1604//899 -f 1609//904 1610//905 1605//900 -f 1610//905 1611//906 1606//901 1605//900 -f 1611//906 1595//890 1594//889 1606//901 -f 779//515 1612//907 1607//902 773//509 -f 1612//907 1613//908 1608//903 1607//902 -f 1613//908 1614//909 1609//904 1608//903 -f 1614//909 1615//910 1610//905 1609//904 -f 1615//910 1616//911 1611//906 1610//905 -f 785//521 1617//912 1612//907 779//515 -f 1617//912 1618//913 1613//908 1612//907 -f 1618//913 1619//914 1614//909 1613//908 -f 1619//914 1620//915 1615//910 1614//909 -f 1620//915 1621//916 1615//910 -f 1621//916 1622//917 1616//911 1615//910 -f 792//528 1623//918 1617//912 785//521 -f 1623//918 1624//919 1618//913 1617//912 -f 1624//919 1625//920 1619//914 1618//913 -f 1625//920 1626//921 1620//915 1619//914 -f 1626//921 1627//922 1621//916 1620//915 -f 1627//922 1628//923 1622//917 1621//916 -f 799//535 1629//924 1623//918 792//528 -f 1629//924 1630//925 1624//919 1623//918 -f 1630//925 1631//926 1625//920 1624//919 -f 1631//926 1632//927 1626//921 1625//920 -f 1632//927 1633//928 1627//922 1626//921 -f 1633//928 1634//929 1628//923 1627//922 -f 806//542 1635//930 1629//924 799//535 -f 1635//930 1636//931 1630//925 1629//924 -f 1636//931 1637//932 1631//926 1630//925 -f 1637//932 1638//933 1632//927 1631//926 -f 1638//933 1639//934 1633//928 1632//927 -f 1639//934 1640//935 1634//929 1633//928 -f 813//549 1641//936 1635//930 806//542 -f 815//551 1642//937 1641//936 813//549 -f 817//553 1643//938 1642//937 815//551 -f 1641//936 1644//939 1636//931 1635//930 -f 1642//937 1645//940 1644//939 1641//936 -f 1643//938 1646//941 1645//940 1642//937 -f 1644//939 1647//942 1637//932 1636//931 -f 1645//940 1648//943 1647//942 1644//939 -f 1646//941 1649//944 1648//943 1645//940 -f 1647//942 1650//945 1638//933 1637//932 -f 1648//943 1651//946 1650//945 1647//942 -f 1649//944 1652//947 1651//946 1648//943 -f 1650//945 1653//948 1639//934 1638//933 -f 1651//946 1654//949 1653//948 1650//945 -f 1652//947 1655//950 1654//949 1651//946 -f 1653//948 1656//951 1640//935 1639//934 -f 1654//949 1657//952 1656//951 1653//948 -f 1655//950 1658//953 1657//952 1654//949 -f 1616//911 1596//891 1595//890 1611//906 -f 1622//917 1597//892 1596//891 1616//911 -f 1628//923 1598//893 1597//892 1622//917 -f 1634//929 1599//894 1598//893 1628//923 -f 1640//935 1600//895 1599//894 1634//929 -f 1656//951 1601//896 1600//895 1640//935 -f 1657//952 1602//897 1601//896 1656//951 -f 1658//953 910//595 1602//897 1657//952 -g hair -s 22 -f 1501//1652 657//1588 675//1600 1518//1664 -f 1509//1658 1493//1644 1495//1646 1513//1659 -s off -f 1488//16 1487//16 1453//16 -s 119 -f 1257//2231 1405//2232 1408//2233 -s off -f 1460//17 1461//17 1459//17 -g shirt -s 84 -f 999//1807 998//1806 1186//1932 1185//1931 -s off -f 1436//18 1268//18 1272//18 1437//18 -s 84 -f 1407//1983 1262//1966 1252//1956 1251//1955 -s off -f 1406//19 1407//19 1251//19 -s 84 -f 1436//1986 1250//1954 1268//1969 -f 1250//1954 1436//1986 1435//1985 1434//1984 1406//1982 -f 1406//1982 1251//1955 1250//1954 -g hair -s 119 -f 1468//2234 1136//2230 1257//2231 1408//2233 1480//2236 -g coat -s 1 -f 1102//754 1101//753 1581//876 -g tie -s 15 -f 1343//1418 1345//1420 1348//1423 1342//1417 -f 1345//1420 1346//1421 1348//1423 -f 1348//1423 1347//1422 1342//1417 -s 125 -f 1343//2145 1344//2146 1345//2147 -s 12 -f 1242//1152 1240//1150 1282//1155 -s 15 -f 899//1368 894//1363 895//1364 -g coat -s 84 -f 929//1795 1375//1973 899//1787 895//1786 -g shirt -s 15 -f 884//1353 886//1355 887//1356 -f 885//1354 884//1353 887//1356 888//1357 -s off -f 899//20 900//20 901//20 -s 15 -f 888//1357 834//1336 833//1335 885//1354 -f 889//1358 835//1337 834//1336 888//1357 -f 890//1359 836//1338 835//1337 889//1358 -f 891//1360 837//1339 836//1338 890//1359 -f 892//1361 838//1340 837//1339 891//1360 -f 893//1362 839//1341 838//1340 892//1361 -f 896//1365 840//1342 839//1341 893//1362 -f 897//1366 841//1343 840//1342 896//1365 -f 898//1367 842//1344 841//1343 897//1366 -f 899//1368 843//1345 842//1344 898//1367 -f 901//1370 844//1346 843//1345 899//1368 -f 902//1371 845//1347 844//1346 901//1370 -f 903//1372 846//1348 845//1347 902//1371 -f 907//1375 847//1349 846//1348 903//1372 -g tie -s 13 -f 885//1720 833//1719 24//1717 -g coat -s 83 -f 848//1721 1659//1746 1660//1747 1677//1764 1678//1765 1679//1766 1680//1767 1681//1768 872//1745 -g shirt -s 15 -f 906//1374 1659//1452 848//1350 49//1258 -f 905//1373 1660//1453 1659//1452 906//1374 -g coat -s 84 -f 904//1789 1661//1989 1660//1988 905//1790 -f 873//1775 1662//1990 1661//1989 904//1789 -f 874//1776 1663//1991 1662//1990 873//1775 -s 86 -f 876//1770 1664//1774 1663//1773 874//1769 -s 84 -f 875//1777 1665//1993 1664//1992 876//1778 -f 877//1779 1666//1994 1665//1993 875//1777 -f 878//1780 1667//1995 1666//1994 877//1779 -f 879//1781 1668//1996 1667//1995 878//1780 -f 880//1782 1669//1997 1668//1996 879//1781 -s 89 -f 881//2018 1670//2034 1669//2033 880//2017 -s 84 -f 882//1784 1671//1999 1670//1998 881//1783 -f 883//1785 1672//2000 1671//1999 882//1784 -s 1 -f 908//593 1673//955 1672//954 883//592 -f 909//594 1674//956 1673//955 908//593 -f 910//595 1675//957 1674//956 909//594 -f 1658//953 1676//958 1675//957 910//595 -f 1655//950 1677//959 1676//958 1658//953 -f 1652//947 1678//960 1677//959 1655//950 -f 1649//944 1679//961 1678//960 1652//947 -f 1646//941 1680//962 1679//961 1649//944 -f 1643//938 1681//963 1680//962 1646//941 -f 817//553 872//591 1681//963 1643//938 -g shirt -s 15 -f 847//1349 907//1375 49//1258 -g coat -s 83 -f 1670//1757 1671//1758 1672//1759 1673//1760 1674//1761 1675//1762 1676//1763 -f 1660//1747 1661//1748 1662//1749 1663//1750 1664//1751 1665//1752 1666//1753 1667//1754 1668//1755 1669//1756 1670//1757 1676//1763 1677//1764 -g brow -s 154 -f 1683//2245 1685//2247 1686//2248 1684//2246 -f 1684//2246 1686//2248 1687//2249 -f 1686//2248 1685//2247 1688//2250 1693//2255 -f 1693//2255 1688//2250 1689//2251 1694//2256 -f 1694//2256 1689//2251 1690//2252 1695//2257 -f 1696//2258 1691//2253 1692//2254 1697//2259 -f 1695//2257 1690//2252 1691//2253 1696//2258 -f 1697//2259 1692//2254 1682//2244 -f 1698//2260 1687//2249 1686//2248 1693//2255 -f 1698//2260 1693//2255 1694//2256 1699//2261 -f 1699//2261 1694//2256 1695//2257 1700//2262 -f 1700//2262 1695//2257 1696//2258 1701//2263 -f 1701//2263 1696//2258 1697//2259 -g eyewhite -s 156 -f 1712//2274 1702//2264 1703//2265 -g iris -f 1712//2274 1703//2265 1704//2266 1713//2275 -g eyewhite -f 1702//2264 1712//2274 1714//2276 1711//2273 -f 1711//2273 1714//2276 1710//2272 -f 1709//2271 1710//2272 1715//2277 -f 1709//2271 1715//2277 1716//2278 1708//2270 -f 1716//2278 1707//2269 1708//2270 -g iris -f 1706//2268 1707//2269 1716//2278 1717//2279 -f 1718//2280 1717//2279 1716//2278 1715//2277 -f 1719//2281 1718//2280 1715//2277 1710//2272 -f 1720//2282 1719//2281 1710//2272 1714//2276 -f 1713//2275 1720//2282 1714//2276 1712//2274 -g pupil -f 1706//2268 1721//2283 1705//2267 -f 1705//2267 1721//2283 1704//2266 -f 1704//2266 1721//2283 1713//2275 -f 1713//2275 1721//2283 1720//2282 -f 1720//2282 1721//2283 1719//2281 -f 1719//2281 1721//2283 1718//2280 -f 1718//2280 1721//2283 1717//2279 -f 1717//2279 1721//2283 1706//2268 -g brow -s 159 -f 1724//2286 1726//2288 1725//2287 1723//2285 -f 1727//2289 1726//2288 1724//2286 -f 1733//2295 1728//2290 1725//2287 1726//2288 -f 1734//2296 1729//2291 1728//2290 1733//2295 -f 1735//2297 1730//2292 1729//2291 1734//2296 -f 1737//2299 1732//2294 1731//2293 1736//2298 -f 1736//2298 1731//2293 1730//2292 1735//2297 -f 1722//2284 1732//2294 1737//2299 -f 1733//2295 1726//2288 1727//2289 1738//2300 -f 1739//2301 1734//2296 1733//2295 1738//2300 -f 1740//2302 1735//2297 1734//2296 1739//2301 -f 1741//2303 1736//2298 1735//2297 1740//2302 -f 1737//2299 1736//2298 1741//2303 -g eyewhite -s 161 -f 1743//2305 1742//2304 1752//2314 -g iris -f 1753//2315 1744//2306 1743//2305 1752//2314 -g eyewhite -f 1751//2313 1754//2316 1752//2314 1742//2304 -f 1750//2312 1754//2316 1751//2313 -f 1755//2317 1750//2312 1749//2311 -f 1748//2310 1756//2318 1755//2317 1749//2311 -f 1748//2310 1747//2309 1756//2318 -g iris -f 1757//2319 1756//2318 1747//2309 1746//2308 -f 1755//2317 1756//2318 1757//2319 1758//2320 -f 1750//2312 1755//2317 1758//2320 1759//2321 -f 1754//2316 1750//2312 1759//2321 1760//2322 -f 1752//2314 1754//2316 1760//2322 1753//2315 -g pupil -f 1745//2307 1761//2323 1746//2308 -f 1744//2306 1761//2323 1745//2307 -f 1753//2315 1761//2323 1744//2306 -f 1760//2322 1761//2323 1753//2315 -f 1759//2321 1761//2323 1760//2322 -f 1758//2320 1761//2323 1759//2321 -f 1757//2319 1761//2323 1758//2320 -f 1746//2308 1761//2323 1757//2319 -g face -s 164 -f 1762//2324 1763//2325 1764//2326 1765//2327 -f 1762//2324 1766//2328 1763//2325 -s 165 -f 1767//2337 1768//2338 1769//2339 -f 1767//2337 1769//2339 1770//2340 1771//2341 -f 1771//2341 1770//2340 1772//2342 1773//2343 -f 1773//2343 1772//2342 1774//2344 1775//2345 -s 166 -f 1776//2352 1768//2347 1777//2353 -f 1778//2354 1777//2353 1768//2347 -f 1778//2354 1768//2347 1767//2346 1779//2355 -f 1779//2355 1767//2346 1771//2348 1780//2356 -f 1781//2357 1780//2356 1771//2348 1773//2349 -f 1781//2357 1773//2349 1775//2351 1782//2358 -f 1783//2359 1777//2353 1778//2354 1784//2360 -f 1784//2360 1778//2354 1779//2355 1785//2361 -f 1785//2361 1779//2355 1780//2356 1786//2362 -f 1786//2362 1780//2356 1781//2357 1787//2363 -f 1787//2363 1781//2357 1782//2358 1788//2364 -f 1789//2365 1788//2364 1790//2366 -f 1791//2367 1790//2366 1788//2364 1782//2358 -f 1792//2368 1793//2369 1776//2352 1777//2353 -f 1794//2370 1792//2368 1777//2353 1783//2359 -f 1795//2371 1794//2370 1783//2359 1796//2372 -f 1784//2360 1796//2372 1783//2359 -f 1797//2373 1795//2371 1796//2372 -f 1798//2374 1796//2372 1784//2360 -f 1798//2374 1784//2360 1785//2361 -f 1798//2374 1785//2361 1786//2362 -f 1798//2374 1786//2362 1799//2375 -f 1800//2376 1796//2372 1798//2374 -f 1796//2372 1800//2376 1801//2377 1797//2373 -f 1802//2378 1786//2362 1787//2363 -f 1803//2379 1787//2363 1788//2364 -f 1804//2380 1788//2364 1789//2365 -f 1788//2364 1804//2380 1805//2381 1803//2379 -f 1787//2363 1803//2379 1806//2382 1802//2378 -f 1798//2374 1799//2375 1807//2383 1800//2376 -f 1808//2384 1807//2383 1799//2375 1809//2385 -f 1786//2362 1802//2378 1809//2385 1799//2375 -f 1810//2386 1809//2385 1802//2378 1806//2382 -f 1808//2384 1809//2385 1810//2386 1811//2387 -f 1811//2387 1810//2386 1812//2388 1813//2389 -f 1814//2390 1812//2388 1810//2386 1806//2382 -f 1803//2379 1805//2381 1814//2390 1806//2382 -f 1815//2391 1801//2377 1800//2376 1807//2383 -f 1816//2392 1815//2391 1807//2383 1808//2384 -f 1817//2393 1816//2392 1808//2384 1811//2387 -f 1818//2394 1817//2393 1811//2387 1813//2389 -f 1819//2395 1820//2396 1801//2377 -f 1821//2397 1819//2395 1801//2377 1815//2391 -f 1822//2398 1821//2397 1815//2391 1816//2392 -f 1823//2399 1822//2398 1816//2392 1817//2393 -f 1824//2400 1823//2399 1817//2393 1818//2394 -f 1825//2401 1826//2402 1827//2403 -f 1825//2401 1827//2403 1820//2396 -f 1825//2401 1820//2396 1819//2395 1828//2404 -f 1826//2402 1825//2401 1828//2404 1829//2405 -f 1830//2406 1828//2404 1819//2395 1821//2397 -f 1831//2407 1830//2406 1821//2397 1822//2398 -f 1832//2408 1831//2407 1822//2398 1823//2399 -f 1824//2400 1833//2409 1832//2408 1823//2399 -f 1834//2410 1824//2400 1818//2394 -f 1835//2411 1833//2409 1836//2412 -f 1833//2409 1835//2411 1837//2413 1832//2408 -f 1832//2408 1837//2413 1838//2414 1831//2407 -f 1831//2407 1838//2414 1839//2415 1830//2406 -f 1830//2406 1839//2415 1829//2405 1828//2404 -f 1840//2416 1841//2417 1842//2418 1843//2419 -f 1843//2419 1842//2418 1844//2420 1845//2421 -f 1845//2421 1844//2420 1829//2405 1839//2415 -f 1846//2422 1840//2416 1843//2419 -f 1847//2423 1840//2416 1846//2422 -f 1848//2424 1846//2422 1843//2419 1845//2421 -f 1838//2414 1848//2424 1845//2421 1839//2415 -f 1849//2425 1846//2422 1848//2424 -f 1849//2425 1848//2424 1838//2414 1837//2413 -f 1835//2411 1849//2425 1837//2413 -f 1850//2426 1849//2425 1835//2411 1836//2412 -f 1846//2422 1849//2425 1851//2427 -f 1852//2428 1851//2427 1849//2425 1850//2426 -f 1853//2429 1804//2380 1789//2365 1854//2430 -f 1805//2381 1804//2380 1853//2429 1855//2431 -f 1854//2430 1789//2365 1856//2432 -f 1857//2433 1856//2432 1789//2365 1790//2366 -f 1858//2434 1854//2430 1859//2435 -f 1860//2436 1859//2435 1854//2430 1856//2432 -f 1861//2437 1860//2436 1856//2432 1857//2433 -f 1853//2429 1854//2430 1862//2438 -f 1863//2439 1862//2438 1854//2430 1858//2434 -f 1864//2440 1858//2434 1865//2441 -f 1866//2442 1865//2441 1858//2434 1867//2443 -f 1867//2443 1858//2434 1859//2435 1868//2444 -f 1869//2445 1868//2444 1859//2435 1860//2436 -f 1869//2445 1860//2436 1861//2437 1870//2446 -f 1871//2447 1864//2440 1865//2441 1872//2448 -f 1873//2449 1871//2447 1872//2448 1874//2450 -f 1875//2451 1873//2449 1874//2450 1876//2452 -f 1876//2452 1874//2450 1877//2453 1878//2454 -f 1872//2448 1877//2453 1874//2450 -f 1866//2442 1872//2448 1865//2441 -f 1879//2455 1878//2454 1877//2453 1880//2456 -f 1880//2456 1877//2453 1872//2448 1866//2442 -f 1881//2457 1879//2455 1880//2456 1882//2458 -f 1882//2458 1880//2456 1866//2442 1867//2443 -f 1882//2458 1867//2443 1868//2444 1883//2459 -f 1881//2457 1882//2458 1883//2459 1884//2460 -f 1883//2459 1885//2461 1886//2462 1884//2460 -f 1885//2461 1883//2459 1868//2444 1869//2445 -f 1869//2445 1870//2446 1887//2463 1885//2461 -f 1885//2461 1887//2463 1888//2464 1886//2462 -f 1888//2464 1887//2463 1889//2465 1890//2466 -f 1889//2465 1887//2463 1870//2446 1891//2467 -s 164 -f 1889//2329 1891//2331 1766//2328 1762//2324 -f 1890//2330 1889//2329 1762//2324 1765//2327 -s 166 -f 1892//2468 1863//2439 1858//2434 1864//2440 -f 1893//2469 1892//2468 1864//2440 1871//2447 -f 1871//2447 1873//2449 1894//2470 -f 1895//2471 1894//2470 1873//2449 1875//2451 -f 1896//2472 1897//2473 1898//2474 -f 1899//2475 1898//2474 1897//2473 1900//2476 -f 1901//2477 1898//2474 1902//2478 -f 1901//2477 1902//2478 1903//2479 1892//2468 -f 1893//2469 1901//2477 1892//2468 -f 1892//2468 1903//2479 1904//2480 1863//2439 -f 1863//2439 1904//2480 1905//2481 1862//2438 -f 1862//2438 1905//2481 1855//2431 1853//2429 -f 1814//2390 1805//2381 1855//2431 1906//2482 -f 1906//2482 1855//2431 1905//2481 1907//2483 -f 1907//2483 1905//2481 1908//2484 -f 1905//2481 1904//2480 1908//2484 -f 1908//2484 1904//2480 1903//2479 1909//2485 -f 1909//2485 1903//2479 1902//2478 1910//2486 -f 1910//2486 1902//2478 1898//2474 1911//2487 -f 1911//2487 1898//2474 1899//2475 1912//2488 -f 1909//2485 1913//2489 1908//2484 -f 1914//2490 1915//2491 1916//2492 -f 1917//2493 1908//2484 1914//2490 -f 1908//2484 1917//2493 1918//2494 1907//2483 -f 1907//2483 1918//2494 1919//2495 1906//2482 -f 1906//2482 1919//2495 1812//2388 1814//2390 -f 1911//2487 1912//2488 1920//2496 1921//2497 -f 1911//2487 1921//2497 1922//2498 1910//2486 -f 1910//2486 1922//2498 1913//2489 1909//2485 -f 1916//2492 1915//2491 1923//2499 1924//2500 -f 1924//2500 1923//2499 1925//2501 1926//2502 -f 1926//2502 1925//2501 1927//2503 1928//2504 -f 1928//2504 1929//2505 1930//2506 1926//2502 -f 1926//2502 1930//2506 1931//2507 1924//2500 -f 1924//2500 1931//2507 1932//2508 1916//2492 -f 1916//2492 1932//2508 1933//2509 1914//2490 -f 1914//2490 1933//2509 1934//2510 1917//2493 -f 1897//2473 1896//2472 1935//2511 1900//2476 -f 1895//2471 1935//2511 1896//2472 1894//2470 -f 1917//2493 1934//2510 1936//2512 1918//2494 -f 1918//2494 1936//2512 1937//2513 1938//2514 -f 1918//2494 1938//2514 1939//2515 1919//2495 -f 1919//2495 1939//2515 1813//2389 1812//2388 -f 1939//2515 1834//2410 1818//2394 1813//2389 -f 1940//2516 1934//2510 1933//2509 1941//2517 -f 1941//2517 1933//2509 1932//2508 1942//2518 -f 1942//2518 1932//2508 1931//2507 1943//2519 -f 1943//2519 1931//2507 1930//2506 1944//2520 -f 1944//2520 1930//2506 1929//2505 1945//2521 -f 1945//2521 1946//2522 1947//2523 1944//2520 -f 1944//2520 1947//2523 1948//2524 1943//2519 -f 1943//2519 1948//2524 1949//2525 1942//2518 -f 1942//2518 1949//2525 1950//2526 1941//2517 -f 1950//2526 1940//2516 1941//2517 -f 1940//2516 1951//2527 1934//2510 -f 1952//2528 1951//2527 1940//2516 1950//2526 -f 1953//2529 1952//2528 1950//2526 1949//2525 -f 1954//2530 1953//2529 1949//2525 1948//2524 -f 1955//2531 1954//2530 1948//2524 1947//2523 -f 1956//2532 1955//2531 1947//2523 1946//2522 -f 1957//2533 1951//2527 1952//2528 -f 1958//2534 1957//2533 1952//2528 1953//2529 -f 1959//2535 1958//2534 1953//2529 1954//2530 -f 1960//2536 1959//2535 1954//2530 1955//2531 -f 1961//2537 1960//2536 1955//2531 1956//2532 -f 1962//2538 1960//2536 1961//2537 1963//2539 -f 1960//2536 1962//2538 1964//2540 1959//2535 -f 1958//2534 1959//2535 1964//2540 1965//2541 -f 1965//2541 1957//2533 1958//2534 -f 1962//2538 1963//2539 1966//2542 1967//2543 -f 1962//2538 1967//2543 1968//2544 1964//2540 -f 1964//2540 1968//2544 1969//2545 1965//2541 -f 1965//2541 1969//2545 1970//2546 1957//2533 -f 1957//2533 1970//2546 1951//2527 -f 1971//2547 1951//2527 1970//2546 -f 1971//2547 1970//2546 1969//2545 1972//2548 -f 1972//2548 1969//2545 1968//2544 1973//2549 -f 1973//2549 1968//2544 1967//2543 1974//2550 -f 1974//2550 1967//2543 1966//2542 1975//2551 -f 1976//2552 1951//2527 1971//2547 -f 1977//2553 1951//2527 1976//2552 -f 1978//2554 1951//2527 1977//2553 -f 1937//2513 1951//2527 1978//2554 -f 1936//2512 1951//2527 1937//2513 -f 1934//2510 1951//2527 1936//2512 -f 1939//2515 1938//2514 1979//2555 1834//2410 -f 1978//2554 1979//2555 1938//2514 1937//2513 -f 1980//2556 1834//2410 1979//2555 -f 1979//2555 1978//2554 1977//2553 -f 1981//2557 1977//2553 1976//2552 1982//2558 -f 1982//2558 1976//2552 1971//2547 1983//2559 -f 1972//2548 1983//2559 1971//2547 -f 1983//2559 1972//2548 1984//2560 1985//2561 -f 1986//2562 1984//2560 1972//2548 1973//2549 -f 1987//2563 1986//2562 1973//2549 1974//2550 -f 1988//2564 1987//2563 1974//2550 1975//2551 -f 1983//2559 1985//2561 1989//2565 1982//2558 -f 1982//2558 1989//2565 1990//2566 1981//2557 -f 1981//2557 1990//2566 1991//2567 1980//2556 -f 1980//2556 1991//2567 1834//2410 -f 1824//2400 1834//2410 1992//2568 -f 1993//2569 1992//2568 1834//2410 1991//2567 -f 1993//2569 1991//2567 1994//2570 -f 1990//2566 1994//2570 1991//2567 -f 1995//2571 1994//2570 1990//2566 1989//2565 -f 1996//2572 1995//2571 1989//2565 1985//2561 -f 1997//2573 1996//2572 1985//2561 1984//2560 -f 1998//2574 1997//2573 1984//2560 1986//2562 -f 1999//2575 1998//2574 1986//2562 1987//2563 -f 1988//2564 1999//2575 1987//2563 -f 1824//2400 1992//2568 2000//2576 1833//2409 -f 2001//2577 2000//2576 1992//2568 1993//2569 -f 2002//2578 2001//2577 1993//2569 1994//2570 -f 2003//2579 2002//2578 1994//2570 2004//2580 -f 2004//2580 1994//2570 1995//2571 2005//2581 -f 1996//2572 2005//2581 1995//2571 -f 2006//2582 2004//2580 2005//2581 2007//2583 -f 2008//2584 2007//2583 2005//2581 1996//2572 -f 2006//2582 2003//2579 2004//2580 -f 2008//2584 1996//2572 1997//2573 2009//2585 -f 2009//2585 1997//2573 1998//2574 2010//2586 -f 2010//2586 1998//2574 1999//2575 2011//2587 -f 2012//2588 2003//2579 2013//2589 -f 2012//2588 2013//2589 2014//2590 2015//2591 -f 2016//2592 2012//2588 2015//2591 -f 2017//2593 2016//2592 2015//2591 -f 2017//2593 2015//2591 2018//2594 -f 2019//2595 2003//2579 2006//2582 -f 2018//2594 2015//2591 2014//2590 -f 2007//2583 2019//2595 2006//2582 -f 2020//2596 2019//2595 2007//2583 2008//2584 -f 2021//2597 2020//2596 2008//2584 2009//2585 -f 2019//2595 2020//2596 2022//2598 2023//2599 -f 2013//2589 2003//2579 2019//2595 2023//2599 -f 2024//2600 2012//2588 2016//2592 -f 2002//2578 2024//2600 2025//2601 2001//2577 -f 2001//2577 2025//2601 2026//2602 2000//2576 -f 2000//2576 2026//2602 1836//2412 1833//2409 -f 2024//2600 2016//2592 2027//2603 2028//2604 -f 2024//2600 2028//2604 2029//2605 2025//2601 -f 2025//2601 2029//2605 2030//2606 2026//2602 -f 2026//2602 2030//2606 1850//2426 1836//2412 -f 2031//2607 2014//2590 2013//2589 2023//2599 -f 2031//2607 2023//2599 2022//2598 2032//2608 -f 2033//2609 2034//2610 2035//2611 -f 2031//2607 2034//2610 2018//2594 2014//2590 -f 2034//2610 2033//2609 2036//2612 2018//2594 -f 2017//2593 2018//2594 2036//2612 2037//2613 -f 2038//2614 2036//2612 2033//2609 2039//2615 -f 2039//2615 2033//2609 2035//2611 2040//2616 -f 2040//2616 2035//2611 2041//2617 -f 2040//2616 2041//2617 2042//2618 2043//2619 -f 2044//2620 2037//2613 2036//2612 2038//2614 -f 2031//2607 2032//2608 2035//2611 2034//2610 -f 2039//2615 2040//2616 2043//2619 2045//2621 -f 2042//2618 2041//2617 2046//2622 2047//2623 -f 2041//2617 2035//2611 2048//2624 2046//2622 -f 2048//2624 2035//2611 2032//2608 2049//2625 -f 2049//2625 2032//2608 2022//2598 2050//2626 -f 2022//2598 2020//2596 2021//2597 2050//2626 -f 2047//2623 2046//2622 2051//2627 2052//2628 -f 2038//2614 2039//2615 2045//2621 2053//2629 -f 2044//2620 2038//2614 2053//2629 2054//2630 -f 2055//2631 2044//2620 2054//2630 2056//2632 -f 2044//2620 2055//2631 2057//2633 2037//2613 -f 2017//2593 2037//2613 2057//2633 2058//2634 -f 2058//2634 2057//2633 2059//2635 2060//2636 -f 2061//2637 2059//2635 2057//2633 2055//2631 -f 2062//2638 2061//2637 2055//2631 2056//2632 -f 2063//2639 2016//2592 2017//2593 2058//2634 -f 2027//2603 2016//2592 2063//2639 -f 2064//2640 2063//2639 2058//2634 2060//2636 -f 2065//2641 2027//2603 2063//2639 -f 2065//2641 2063//2639 2064//2640 2066//2642 -f 2027//2603 2065//2641 2028//2604 -f 2067//2643 2061//2637 2062//2638 2068//2644 -f 2061//2637 2067//2643 2069//2645 2059//2635 -f 2059//2635 2069//2645 2070//2646 2060//2636 -f 2060//2636 2070//2646 2071//2647 2064//2640 -f 2068//2644 2072//2648 2073//2649 2067//2643 -f 2067//2643 2073//2649 2074//2650 2069//2645 -f 2069//2645 2074//2650 2075//2651 2070//2646 -f 2070//2646 2075//2651 2076//2652 2071//2647 -f 2072//2648 2077//2653 2078//2654 2073//2649 -f 2073//2649 2078//2654 2079//2655 2074//2650 -f 2074//2650 2079//2655 2080//2656 2075//2651 -f 2081//2657 2078//2654 2077//2653 2082//2658 -f 2081//2657 2083//2659 2079//2655 2078//2654 -f 2084//2660 2083//2659 2081//2657 -f 2084//2660 2081//2657 2082//2658 2085//2661 -f 2086//2662 2084//2660 2087//2663 2088//2664 -f 2083//2659 2084//2660 2086//2662 -f 2087//2663 2084//2660 2085//2661 2089//2665 -f 2090//2666 2087//2663 2089//2665 2091//2667 -f 2092//2668 2090//2666 2091//2667 2093//2669 -f 2090//2666 2094//2670 2088//2664 2087//2663 -f 2090//2666 2095//2671 2094//2670 -f 2096//2672 2095//2671 2090//2666 2092//2668 -f 1841//2417 1840//2416 2097//2673 -f 1847//2423 2097//2673 1840//2416 -f 2098//2674 2097//2673 1847//2423 -f 2099//2675 2098//2674 1847//2423 -f 2100//2676 2097//2673 2098//2674 -f 2100//2676 2098//2674 2101//2677 2102//2678 -f 2103//2679 2101//2677 2098//2674 2104//2680 -f 2104//2680 2098//2674 2099//2675 -f 2104//2680 2099//2675 2105//2681 2106//2682 -f 2103//2679 2104//2680 2106//2682 2107//2683 -f 2108//2684 2103//2679 2107//2683 -f 2109//2685 2101//2677 2103//2679 -f 2102//2678 2101//2677 2110//2686 2111//2687 -f 2112//2688 2110//2686 2101//2677 2109//2685 -f 2113//2689 2112//2688 2109//2685 2114//2690 -f 2114//2690 2109//2685 2103//2679 2108//2684 -f 2115//2691 2106//2682 2105//2681 2116//2692 -f 2107//2683 2106//2682 2115//2691 2117//2693 -f 2108//2684 2107//2683 2117//2693 2118//2694 -f 2114//2690 2108//2684 2118//2694 2119//2695 -f 2113//2689 2114//2690 2119//2695 2120//2696 -f 2121//2697 2113//2689 2120//2696 2122//2698 -f 2113//2689 2121//2697 2123//2699 2112//2688 -f 2112//2688 2123//2699 2110//2686 -f 2110//2686 2123//2699 2111//2687 -f 2095//2671 2115//2691 2124//2700 2094//2670 -f 2116//2692 2124//2700 2115//2691 -f 2124//2700 2116//2692 2125//2701 -f 2124//2700 2125//2701 2088//2664 2094//2670 -f 2086//2662 2088//2664 2125//2701 -f 2117//2693 2115//2691 2095//2671 2096//2672 -f 2118//2694 2117//2693 2096//2672 2126//2702 -f 2126//2702 2096//2672 2092//2668 2127//2703 -f 2127//2703 2092//2668 2093//2669 2128//2704 -f 2119//2695 2118//2694 2126//2702 2129//2705 -f 2120//2696 2119//2695 2129//2705 2130//2706 -f 2122//2698 2120//2696 2130//2706 2131//2707 -f 2132//2708 2123//2699 2121//2697 -f 2133//2709 2132//2708 2121//2697 2122//2698 -f 2134//2710 2133//2709 2122//2698 2131//2707 -f 2135//2711 2129//2705 2126//2702 2127//2703 -f 2136//2712 2135//2711 2127//2703 2128//2704 -f 2137//2713 2130//2706 2129//2705 2135//2711 -f 2138//2714 2137//2713 2135//2711 2136//2712 -f 2139//2715 2131//2707 2130//2706 2137//2713 -f 2140//2716 2139//2715 2137//2713 2138//2714 -f 2141//2717 2134//2710 2131//2707 2139//2715 -f 2142//2718 2141//2717 2139//2715 2140//2716 -f 2143//2719 2075//2651 2080//2656 -f 2066//2642 2064//2640 2071//2647 2144//2720 -f 2076//2652 2145//2721 2144//2720 2071//2647 -f 2075//2651 2143//2719 2146//2722 2076//2652 -f 2076//2652 2146//2722 2145//2721 -f 2080//2656 2079//2655 2083//2659 2147//2723 -f 2148//2724 2083//2659 2086//2662 -f 2080//2656 2147//2723 2149//2725 2143//2719 -f 2143//2719 2149//2725 2146//2722 -f 2148//2724 2086//2662 2125//2701 2150//2726 -f 2150//2726 2125//2701 2116//2692 2151//2727 -f 2151//2727 2116//2692 2105//2681 2152//2728 -f 2152//2728 2105//2681 2099//2675 2153//2729 -f 2153//2729 2099//2675 1847//2423 2154//2730 -f 2154//2730 1847//2423 1846//2422 -f 2155//2731 2145//2721 2146//2722 2149//2725 -f 2156//2732 2155//2731 2149//2725 -f 2156//2732 2149//2725 2157//2733 -f 2158//2734 2159//2735 2160//2736 -f 2156//2732 2157//2733 2161//2737 2162//2738 -f 2162//2738 2161//2737 2159//2735 2158//2734 -f 2163//2739 2156//2732 2162//2738 -f 2163//2739 2162//2738 2158//2734 2164//2740 -f 2164//2740 2158//2734 2160//2736 2165//2741 -f 2165//2741 2160//2736 2166//2742 2167//2743 -f 2168//2744 2156//2732 2163//2739 2169//2745 -f 2169//2745 2163//2739 2164//2740 2170//2746 -f 2170//2746 2164//2740 2165//2741 2171//2747 -f 2171//2747 2165//2741 2167//2743 2172//2748 -f 2173//2749 2172//2748 2167//2743 1851//2427 -f 2167//2743 2166//2742 1846//2422 1851//2427 -f 2173//2749 1851//2427 1852//2428 -f 2144//2720 2145//2721 2174//2750 -f 2175//2751 2145//2721 2155//2731 -f 2175//2751 2155//2731 2156//2732 2168//2744 -f 2176//2752 2174//2750 2145//2721 -f 2144//2720 2174//2750 2066//2642 -f 2030//2606 1852//2428 1850//2426 -f 1852//2428 2030//2606 2177//2753 2178//2754 -f 2179//2755 2177//2753 2030//2606 2029//2605 -f 2180//2756 2179//2755 2029//2605 2028//2604 -f 2181//2757 2180//2756 2028//2604 2065//2641 -f 2174//2750 2181//2757 2065//2641 2066//2642 -f 2182//2758 2173//2749 1852//2428 2178//2754 -f 2183//2759 2172//2748 2173//2749 2182//2758 -f 2172//2748 2183//2759 2184//2760 2171//2747 -f 2171//2747 2184//2760 2185//2761 2170//2746 -f 2170//2746 2185//2761 2186//2762 2169//2745 -f 2169//2745 2186//2762 2187//2763 2168//2744 -f 2175//2751 2168//2744 2187//2763 -f 2145//2721 2175//2751 2188//2764 2176//2752 -f 2188//2764 2175//2751 2187//2763 2189//2765 -f 2189//2765 2187//2763 2186//2762 2190//2766 -f 2191//2767 2190//2766 2186//2762 2185//2761 -f 2191//2767 2185//2761 2184//2760 2192//2768 -f 2192//2768 2184//2760 2183//2759 2193//2769 -f 2194//2770 2193//2769 2178//2754 2177//2753 -f 2179//2755 2194//2770 2177//2753 -f 2195//2771 2194//2770 2179//2755 2180//2756 -f 2196//2772 2195//2771 2180//2756 2181//2757 -f 2174//2750 2176//2752 2196//2772 2181//2757 -f 2193//2769 2183//2759 2182//2758 -f 2193//2769 2182//2758 2178//2754 -f 2197//2773 1795//2371 1797//2373 2198//2774 -f 2197//2773 2198//2774 2199//2775 2200//2776 -f 2200//2776 2199//2775 2201//2777 2202//2778 -s 185 -f 2202//3180 2201//3179 2203//3181 2204//3182 -f 2203//3181 2201//3179 2199//3178 2205//3183 -f 2206//3184 2205//3183 2199//3178 2198//3177 -f 2207//3185 2206//3184 2198//3177 1797//3176 -f 2208//3186 2209//3187 2203//3181 2205//3183 -f 2210//3188 2208//3186 2205//3183 2206//3184 -f 2211//3189 2210//3188 2206//3184 2207//3185 -f 2209//3187 2204//3182 2203//3181 -f 2212//3190 2213//3191 2204//3182 2209//3187 -f 2214//3192 2212//3190 2209//3187 2208//3186 -f 2215//3193 2214//3192 2208//3186 2210//3188 -f 2216//3194 2215//3193 2210//3188 2211//3189 -s 188 -f 2217//3199 2216//3198 2211//3196 -f 2213//3197 2218//3200 2217//3199 -f 2217//3199 2218//3200 2216//3198 -s 185 -f 2216//3194 2218//3195 2215//3193 -s 187 -f 2215//3204 2218//3205 2214//3203 -f 2214//3203 2218//3205 2212//3201 -f 2212//3201 2218//3205 2213//3202 -s 189 -f 2219//3207 2202//3206 2220//3208 -f 2219//3207 2220//3208 2221//3209 2222//3210 -s 169 -f 2223//3218 2222//3217 2221//3216 2224//3219 -f 2224//3219 2221//3216 1793//3212 1792//3211 -f 1794//3213 1795//3214 2197//3215 2225//3220 -f 2225//3220 2224//3219 1792//3211 1794//3213 -s 186 -f 2202//3224 2226//3225 2200//3223 -f 2197//3222 2200//3223 2226//3225 -s 169 -f 2223//3218 2226//3221 2222//3217 -f 2197//3215 2226//3221 2225//3220 -f 2225//3220 2226//3221 2223//3218 2224//3219 -s off -f 2226//21 2202//21 2219//21 2222//21 -s 190 -f 2227//3226 2228//3227 2229//3228 2230//3229 -s 166 -f 1775//2351 1774//2350 1791//2367 1782//2358 -f 2051//2627 2010//2586 2011//2587 2052//2628 -f 2021//2597 2009//2585 2231//2781 2232//2782 -s off -f 2009//22 2010//22 2229//22 2231//22 -s 181 -f 2010//3232 2051//3234 2230//3237 2229//3236 -f 2051//3234 2046//3233 2227//3235 2230//3237 -s 166 -f 2046//2622 2048//2624 2228//2780 2227//2779 -f 2048//2624 2049//2625 2233//2783 2228//2780 -f 2049//2625 2050//2626 2234//2784 2233//2783 -f 2050//2626 2021//2597 2232//2782 2234//2784 -f 1921//2497 1920//2496 1927//2503 1925//2501 -f 1922//2498 1921//2497 1925//2501 1923//2499 -f 1913//2489 1922//2498 1923//2499 1915//2491 -f 1915//2491 1908//2484 1913//2489 -f 2024//2600 2002//2578 2003//2579 2012//2588 -f 1915//2491 1914//2490 1908//2484 -s 164 -f 1765//2327 1764//2326 2235//2332 2236//2333 -f 2235//2332 2237//2334 2236//2333 -s 191 -f 2238//3238 2239//3239 2240//3240 -f 2241//3241 2242//3242 2238//3238 2240//3240 -f 2243//3243 2244//3244 2242//3242 2241//3241 -f 2245//3245 2246//3246 2244//3244 2243//3243 -s 166 -f 2247//2791 2239//2785 2248//2792 -f 2239//2785 2247//2791 2249//2793 -f 2250//2794 2240//2786 2239//2785 2249//2793 -f 2251//2795 2241//2787 2240//2786 2250//2794 -f 2243//2788 2241//2787 2251//2795 2252//2796 -f 2253//2797 2245//2789 2243//2788 2252//2796 -f 2254//2798 2249//2793 2247//2791 2255//2799 -f 2256//2800 2250//2794 2249//2793 2254//2798 -f 2257//2801 2251//2795 2250//2794 2256//2800 -f 2258//2802 2252//2796 2251//2795 2257//2801 -f 2259//2803 2253//2797 2252//2796 2258//2802 -f 2260//2804 2259//2803 2261//2805 -f 2253//2797 2259//2803 2260//2804 2262//2806 -f 2247//2791 2248//2792 2263//2807 2264//2808 -f 2255//2799 2247//2791 2264//2808 2265//2809 -f 2266//2810 2255//2799 2265//2809 2267//2811 -f 2255//2799 2266//2810 2254//2798 -f 2266//2810 2267//2811 2268//2812 -f 2254//2798 2266//2810 2269//2813 -f 2256//2800 2254//2798 2269//2813 -f 2257//2801 2256//2800 2269//2813 -f 2270//2814 2257//2801 2269//2813 -f 2269//2813 2266//2810 2271//2815 -f 2268//2812 2272//2816 2271//2815 2266//2810 -f 2258//2802 2257//2801 2273//2817 -f 2259//2803 2258//2802 2274//2818 -f 2261//2805 2259//2803 2275//2819 -f 2274//2818 2276//2820 2275//2819 2259//2803 -f 2273//2817 2277//2821 2274//2818 2258//2802 -f 2271//2815 2278//2822 2270//2814 2269//2813 -f 2279//2823 2270//2814 2278//2822 2280//2824 -f 2270//2814 2279//2823 2273//2817 2257//2801 -f 2277//2821 2273//2817 2279//2823 2281//2825 -f 2282//2826 2281//2825 2279//2823 2280//2824 -f 2283//2827 2284//2828 2281//2825 2282//2826 -f 2277//2821 2281//2825 2284//2828 2285//2829 -f 2277//2821 2285//2829 2276//2820 2274//2818 -f 2278//2822 2271//2815 2272//2816 2286//2830 -f 2280//2824 2278//2822 2286//2830 2287//2831 -f 2282//2826 2280//2824 2287//2831 2288//2832 -f 2283//2827 2282//2826 2288//2832 2289//2833 -f 2272//2816 2290//2834 2291//2835 -f 2286//2830 2272//2816 2291//2835 2292//2836 -f 2287//2831 2286//2830 2292//2836 2293//2837 -f 2288//2832 2287//2831 2293//2837 2294//2838 -f 2289//2833 2288//2832 2294//2838 2295//2839 -f 2296//2840 2297//2841 2298//2842 -f 2290//2834 2296//2840 2298//2842 -f 2299//2843 2291//2835 2290//2834 2298//2842 -f 2300//2844 2299//2843 2298//2842 2297//2841 -f 2292//2836 2291//2835 2299//2843 2301//2845 -f 2293//2837 2292//2836 2301//2845 2302//2846 -f 2294//2838 2293//2837 2302//2846 2303//2847 -f 2294//2838 2303//2847 2304//2848 2295//2839 -f 2289//2833 2295//2839 2305//2849 -f 2306//2850 2304//2848 2307//2851 -f 2303//2847 2308//2852 2307//2851 2304//2848 -f 2302//2846 2309//2853 2308//2852 2303//2847 -f 2301//2845 2310//2854 2309//2853 2302//2846 -f 2299//2843 2300//2844 2310//2854 2301//2845 -f 2311//2855 2312//2856 2313//2857 2314//2858 -f 2315//2859 2316//2860 2312//2856 2311//2855 -f 2310//2854 2300//2844 2316//2860 2315//2859 -f 2311//2855 2314//2858 2317//2861 -f 2317//2861 2314//2858 2318//2862 -f 2315//2859 2311//2855 2317//2861 2319//2863 -f 2310//2854 2315//2859 2319//2863 2309//2853 -f 2319//2863 2317//2861 2320//2864 -f 2308//2852 2309//2853 2319//2863 2320//2864 -f 2308//2852 2320//2864 2307//2851 -f 2306//2850 2307//2851 2320//2864 2321//2865 -f 2322//2866 2320//2864 2317//2861 -f 2321//2865 2320//2864 2322//2866 2323//2867 -f 2324//2868 2261//2805 2275//2819 2325//2869 -f 2326//2870 2325//2869 2275//2819 2276//2820 -f 2327//2871 2261//2805 2324//2868 -f 2260//2804 2261//2805 2327//2871 2328//2872 -f 2329//2873 2324//2868 2330//2874 -f 2327//2871 2324//2868 2329//2873 2331//2875 -f 2328//2872 2327//2871 2331//2875 2332//2876 -f 2333//2877 2324//2868 2325//2869 -f 2330//2874 2324//2868 2333//2877 2334//2878 -f 2335//2879 2330//2874 2336//2880 -f 2337//2881 2330//2874 2335//2879 2338//2882 -f 2339//2883 2329//2873 2330//2874 2337//2881 -f 2331//2875 2329//2873 2339//2883 2340//2884 -f 2341//2885 2332//2876 2331//2875 2340//2884 -f 2342//2886 2335//2879 2336//2880 2343//2887 -f 2344//2888 2342//2886 2343//2887 2345//2889 -f 1876//2452 2344//2888 2345//2889 1875//2451 -f 1878//2454 2346//2890 2344//2888 1876//2452 -f 2344//2888 2346//2890 2342//2886 -f 2335//2879 2342//2886 2338//2882 -f 2347//2891 2346//2890 1878//2454 1879//2455 -f 2338//2882 2342//2886 2346//2890 2347//2891 -f 2348//2892 2347//2891 1879//2455 1881//2457 -f 2337//2881 2338//2882 2347//2891 2348//2892 -f 2349//2893 2339//2883 2337//2881 2348//2892 -f 1884//2460 2349//2893 2348//2892 1881//2457 -f 1884//2460 1886//2462 2350//2894 2349//2893 -f 2340//2884 2339//2883 2349//2893 2350//2894 -f 2350//2894 2351//2895 2341//2885 2340//2884 -f 1886//2462 1888//2464 2351//2895 2350//2894 -f 1890//2466 2352//2896 2351//2895 1888//2464 -f 2353//2897 2341//2885 2351//2895 2352//2896 -s 164 -f 2236//2333 2237//2334 2353//2336 2352//2335 -f 1765//2327 2236//2333 2352//2335 1890//2330 -s 166 -f 2336//2880 2330//2874 2334//2878 2354//2898 -f 2343//2887 2336//2880 2354//2898 2355//2899 -f 2343//2887 2355//2899 2356//2900 -f 1875//2451 2345//2889 2357//2901 1895//2471 -f 2356//2900 2355//2899 2358//2902 -f 1900//2476 2359//2903 2360//2904 1899//2475 -f 2361//2905 2360//2904 2358//2902 -f 2354//2898 2362//2906 2361//2905 2358//2902 -f 2354//2898 2358//2902 2355//2899 -f 2334//2878 2363//2907 2362//2906 2354//2898 -f 2333//2877 2364//2908 2363//2907 2334//2878 -f 2325//2869 2326//2870 2364//2908 2333//2877 -f 2365//2909 2326//2870 2276//2820 2285//2829 -f 2366//2910 2364//2908 2326//2870 2365//2909 -f 2367//2911 2364//2908 2366//2910 -f 2367//2911 2363//2907 2364//2908 -f 2368//2912 2362//2906 2363//2907 2367//2911 -f 2369//2913 2361//2905 2362//2906 2368//2912 -f 2370//2914 2360//2904 2361//2905 2369//2913 -f 1912//2488 1899//2475 2360//2904 2370//2914 -f 2367//2911 2371//2915 2368//2912 -f 2372//2916 2373//2917 2374//2918 -f 2374//2918 2367//2911 2375//2919 -f 2366//2910 2376//2920 2375//2919 2367//2911 -f 2365//2909 2377//2921 2376//2920 2366//2910 -f 2285//2829 2284//2828 2377//2921 2365//2909 -f 2378//2922 1920//2496 1912//2488 2370//2914 -f 2369//2913 2379//2923 2378//2922 2370//2914 -f 2368//2912 2371//2915 2379//2923 2369//2913 -f 2380//2924 2381//2925 2373//2917 2372//2916 -f 2382//2926 2383//2927 2381//2925 2380//2924 -f 1928//2504 1927//2503 2383//2927 2382//2926 -f 2382//2926 2384//2928 1929//2505 1928//2504 -f 2380//2924 2385//2929 2384//2928 2382//2926 -f 2372//2916 2386//2930 2385//2929 2380//2924 -f 2374//2918 2387//2931 2386//2930 2372//2916 -f 2375//2919 2388//2932 2387//2931 2374//2918 -f 1900//2476 1935//2511 2356//2900 2359//2903 -f 2357//2901 2356//2900 1935//2511 1895//2471 -f 2376//2920 2389//2933 2388//2932 2375//2919 -f 2390//2934 2391//2935 2389//2933 2376//2920 -f 2377//2921 2392//2936 2390//2934 2376//2920 -f 2284//2828 2283//2827 2392//2936 2377//2921 -f 2283//2827 2289//2833 2305//2849 2392//2936 -f 2393//2937 2387//2931 2388//2932 2394//2938 -f 2395//2939 2386//2930 2387//2931 2393//2937 -f 2396//2940 2385//2929 2386//2930 2395//2939 -f 2397//2941 2384//2928 2385//2929 2396//2940 -f 1945//2521 1929//2505 2384//2928 2397//2941 -f 2397//2941 2398//2942 1946//2522 1945//2521 -f 2396//2940 2399//2943 2398//2942 2397//2941 -f 2395//2939 2400//2944 2399//2943 2396//2940 -f 2393//2937 2401//2945 2400//2944 2395//2939 -f 2393//2937 2394//2938 2401//2945 -f 2388//2932 2402//2946 2394//2938 -f 2401//2945 2394//2938 2402//2946 2403//2947 -f 2400//2944 2401//2945 2403//2947 2404//2948 -f 2399//2943 2400//2944 2404//2948 2405//2949 -f 2398//2942 2399//2943 2405//2949 2406//2950 -f 1946//2522 2398//2942 2406//2950 1956//2532 -f 2403//2947 2402//2946 2407//2951 -f 2404//2948 2403//2947 2407//2951 2408//2952 -f 2405//2949 2404//2948 2408//2952 2409//2953 -f 2406//2950 2405//2949 2409//2953 2410//2954 -f 1956//2532 2406//2950 2410//2954 1961//2537 -f 1963//2539 1961//2537 2410//2954 2411//2955 -f 2409//2953 2412//2956 2411//2955 2410//2954 -f 2413//2957 2412//2956 2409//2953 2408//2952 -f 2408//2952 2407//2951 2413//2957 -f 2414//2958 1966//2542 1963//2539 2411//2955 -f 2412//2956 2415//2959 2414//2958 2411//2955 -f 2413//2957 2416//2960 2415//2959 2412//2956 -f 2407//2951 2417//2961 2416//2960 2413//2957 -f 2402//2946 2417//2961 2407//2951 -f 2417//2961 2402//2946 2418//2962 -f 2419//2963 2416//2960 2417//2961 2418//2962 -f 2420//2964 2415//2959 2416//2960 2419//2963 -f 2421//2965 2414//2958 2415//2959 2420//2964 -f 1975//2551 1966//2542 2414//2958 2421//2965 -f 2418//2962 2402//2946 2422//2966 -f 2422//2966 2402//2946 2423//2967 -f 2423//2967 2402//2946 2424//2968 -f 2424//2968 2402//2946 2391//2935 -f 2391//2935 2402//2946 2389//2933 -f 2389//2933 2402//2946 2388//2932 -f 2305//2849 2425//2969 2390//2934 2392//2936 -f 2391//2935 2390//2934 2425//2969 2424//2968 -f 2425//2969 2305//2849 2426//2970 -f 2425//2969 2426//2970 2427//2971 -f 2428//2972 2422//2966 2423//2967 2427//2971 -f 2429//2973 2418//2962 2422//2966 2428//2972 -f 2418//2962 2429//2973 2419//2963 -f 2430//2974 2431//2975 2419//2963 2429//2973 -f 2420//2964 2419//2963 2431//2975 2432//2976 -f 2421//2965 2420//2964 2432//2976 2433//2977 -f 1975//2551 2421//2965 2433//2977 1988//2564 -f 2428//2972 2434//2978 2430//2974 2429//2973 -f 2427//2971 2435//2979 2434//2978 2428//2972 -f 2426//2970 2436//2980 2435//2979 2427//2971 -f 2305//2849 2436//2980 2426//2970 -f 2437//2981 2305//2849 2295//2839 -f 2436//2980 2305//2849 2437//2981 2438//2982 -f 2439//2983 2436//2980 2438//2982 -f 2436//2980 2439//2983 2435//2979 -f 2434//2978 2435//2979 2439//2983 2440//2984 -f 2430//2974 2434//2978 2440//2984 2441//2985 -f 2431//2975 2430//2974 2441//2985 2442//2986 -f 2432//2976 2431//2975 2442//2986 2443//2987 -f 2433//2977 2432//2976 2443//2987 1999//2575 -f 2433//2977 1999//2575 1988//2564 -f 2304//2848 2444//2988 2437//2981 2295//2839 -f 2438//2982 2437//2981 2444//2988 2445//2989 -f 2439//2983 2438//2982 2445//2989 2446//2990 -f 2447//2991 2439//2983 2446//2990 2448//2992 -f 2449//2993 2440//2984 2439//2983 2447//2991 -f 2440//2984 2449//2993 2441//2985 -f 2450//2994 2449//2993 2447//2991 2451//2995 -f 2441//2985 2449//2993 2450//2994 2452//2996 -f 2447//2991 2448//2992 2451//2995 -f 2453//2997 2442//2986 2441//2985 2452//2996 -f 2454//2998 2443//2987 2442//2986 2453//2997 -f 2011//2587 1999//2575 2443//2987 2454//2998 -f 2455//2999 2448//2992 2456//3000 -f 2457//3001 2458//3002 2455//2999 2456//3000 -f 2457//3001 2456//3000 2459//3003 -f 2457//3001 2459//3003 2460//3004 -f 2461//3005 2457//3001 2460//3004 -f 2451//2995 2448//2992 2462//3006 -f 2458//3002 2457//3001 2461//3005 -f 2451//2995 2462//3006 2450//2994 -f 2452//2996 2450//2994 2462//3006 2463//3007 -f 2453//2997 2452//2996 2463//3007 2464//3008 -f 2465//3009 2466//3010 2463//3007 2462//3006 -f 2465//3009 2462//3006 2448//2992 2455//2999 -f 2459//3003 2456//3000 2467//3011 -f 2445//2989 2468//3012 2467//3011 2446//2990 -f 2444//2988 2469//3013 2468//3012 2445//2989 -f 2304//2848 2306//2850 2469//3013 2444//2988 -f 2470//3014 2471//3015 2459//3003 2467//3011 -f 2468//3012 2472//3016 2470//3014 2467//3011 -f 2469//3013 2473//3017 2472//3016 2468//3012 -f 2306//2850 2321//2865 2473//3017 2469//3013 -f 2465//3009 2455//2999 2458//3002 2474//3018 -f 2475//3019 2466//3010 2465//3009 2474//3018 -f 2476//3020 2477//3021 2478//3022 -f 2458//3002 2461//3005 2477//3021 2474//3018 -f 2461//3005 2479//3023 2478//3022 2477//3021 -f 2480//3024 2479//3023 2461//3005 2460//3004 -f 2481//3025 2478//3022 2479//3023 2482//3026 -f 2483//3027 2476//3020 2478//3022 2481//3025 -f 2484//3028 2476//3020 2483//3027 -f 2043//2619 2042//2618 2484//3028 2483//3027 -f 2482//3026 2479//3023 2480//3024 2485//3029 -f 2477//3021 2476//3020 2475//3019 2474//3018 -f 2045//2621 2043//2619 2483//3027 2481//3025 -f 2047//2623 2486//3030 2484//3028 2042//2618 -f 2486//3030 2487//3031 2476//3020 2484//3028 -f 2488//3032 2475//3019 2476//3020 2487//3031 -f 2489//3033 2466//3010 2475//3019 2488//3032 -f 2489//3033 2464//3008 2463//3007 2466//3010 -f 2052//2628 2490//3034 2486//3030 2047//2623 -f 2053//2629 2045//2621 2481//3025 2482//3026 -f 2054//2630 2053//2629 2482//3026 2485//3029 -f 2056//2632 2054//2630 2485//3029 2491//3035 -f 2480//3024 2492//3036 2491//3035 2485//3029 -f 2493//3037 2492//3036 2480//3024 2460//3004 -f 2494//3038 2495//3039 2492//3036 2493//3037 -f 2491//3035 2492//3036 2495//3039 2496//3040 -f 2056//2632 2491//3035 2496//3040 2062//2638 -f 2493//3037 2460//3004 2459//3003 2497//3041 -f 2497//3041 2459//3003 2471//3015 -f 2494//3038 2493//3037 2497//3041 2498//3042 -f 2497//3041 2471//3015 2499//3043 -f 2500//3044 2498//3042 2497//3041 2499//3043 -f 2470//3014 2499//3043 2471//3015 -f 2068//2644 2062//2638 2496//3040 2501//3045 -f 2495//3039 2502//3046 2501//3045 2496//3040 -f 2494//3038 2503//3047 2502//3046 2495//3039 -f 2498//3042 2504//3048 2503//3047 2494//3038 -f 2501//3045 2505//3049 2072//2648 2068//2644 -f 2502//3046 2506//3050 2505//3049 2501//3045 -f 2503//3047 2507//3051 2506//3050 2502//3046 -f 2504//3048 2508//3052 2507//3051 2503//3047 -f 2505//3049 2509//3053 2077//2653 2072//2648 -f 2506//3050 2510//3054 2509//3053 2505//3049 -f 2507//3051 2511//3055 2510//3054 2506//3050 -f 2082//2658 2077//2653 2509//3053 2512//3056 -f 2509//3053 2510//3054 2513//3057 2512//3056 -f 2512//3056 2513//3057 2514//3058 -f 2085//2661 2082//2658 2512//3056 2514//3058 -f 2515//3059 2516//3060 2514//3058 2517//3061 -f 2517//3061 2514//3058 2513//3057 -f 2089//2665 2085//2661 2514//3058 2516//3060 -f 2091//2667 2089//2665 2516//3060 2518//3062 -f 2093//2669 2091//2667 2518//3062 2519//3063 -f 2516//3060 2515//3059 2520//3064 2518//3062 -f 2520//3064 2521//3065 2518//3062 -f 2519//3063 2518//3062 2521//3065 2522//3066 -f 2523//3067 2314//2858 2313//2857 -f 2314//2858 2523//3067 2318//2862 -f 2318//2862 2523//3067 2524//3068 -f 2318//2862 2524//3068 2525//3069 -f 2524//3068 2523//3067 2526//3070 -f 2527//3071 2528//3072 2524//3068 2526//3070 -f 2529//3073 2524//3068 2528//3072 2530//3074 -f 2525//3069 2524//3068 2529//3073 -f 2531//3075 2532//3076 2525//3069 2529//3073 -f 2533//3077 2531//3075 2529//3073 2530//3074 -f 2533//3077 2530//3074 2534//3078 -f 2530//3074 2528//3072 2535//3079 -f 2536//3080 2537//3081 2528//3072 2527//3071 -f 2535//3079 2528//3072 2537//3081 2538//3082 -f 2539//3083 2535//3079 2538//3082 2540//3084 -f 2534//3078 2530//3074 2535//3079 2539//3083 -f 2541//3085 2532//3076 2531//3075 2542//3086 -f 2543//3087 2542//3086 2531//3075 2533//3077 -f 2544//3088 2543//3087 2533//3077 2534//3078 -f 2545//3089 2544//3088 2534//3078 2539//3083 -f 2546//3090 2545//3089 2539//3083 2540//3084 -f 2547//3091 2546//3090 2540//3084 2548//3092 -f 2538//3082 2549//3093 2548//3092 2540//3084 -f 2537//3081 2549//3093 2538//3082 -f 2536//3080 2549//3093 2537//3081 -f 2520//3064 2550//3094 2542//3086 2521//3065 -f 2542//3086 2550//3094 2541//3085 -f 2551//3095 2541//3085 2550//3094 -f 2520//3064 2515//3059 2551//3095 2550//3094 -f 2551//3095 2515//3059 2517//3061 -f 2522//3066 2521//3065 2542//3086 2543//3087 -f 2552//3096 2522//3066 2543//3087 2544//3088 -f 2553//3097 2519//3063 2522//3066 2552//3096 -f 2128//2704 2093//2669 2519//3063 2553//3097 -f 2554//3098 2552//3096 2544//3088 2545//3089 -f 2555//3099 2554//3098 2545//3089 2546//3090 -f 2556//3100 2555//3099 2546//3090 2547//3091 -f 2548//3092 2549//3093 2557//3101 -f 2547//3091 2548//3092 2557//3101 2558//3102 -f 2556//3100 2547//3091 2558//3102 2559//3103 -f 2553//3097 2552//3096 2554//3098 2560//3104 -f 2128//2704 2553//3097 2560//3104 2136//2712 -f 2560//3104 2554//3098 2555//3099 2561//3105 -f 2136//2712 2560//3104 2561//3105 2138//2714 -f 2561//3105 2555//3099 2556//3100 2562//3106 -f 2138//2714 2561//3105 2562//3106 2140//2716 -f 2562//3106 2556//3100 2559//3103 2563//3107 -f 2140//2716 2562//3106 2563//3107 2142//2718 -f 2511//3055 2507//3051 2564//3108 -f 2565//3109 2504//3048 2498//3042 2500//3044 -f 2504//3048 2565//3109 2566//3110 2508//3052 -f 2508//3052 2567//3111 2564//3108 2507//3051 -f 2566//3110 2567//3111 2508//3052 -f 2568//3112 2513//3057 2510//3054 2511//3055 -f 2517//3061 2513//3057 2569//3113 -f 2564//3108 2570//3114 2568//3112 2511//3055 -f 2567//3111 2570//3114 2564//3108 -f 2571//3115 2551//3095 2517//3061 2569//3113 -f 2572//3116 2541//3085 2551//3095 2571//3115 -f 2573//3117 2532//3076 2541//3085 2572//3116 -f 2574//3118 2525//3069 2532//3076 2573//3117 -f 2575//3119 2318//2862 2525//3069 2574//3118 -f 2317//2861 2318//2862 2575//3119 -f 2570//3114 2567//3111 2566//3110 2576//3120 -f 2570//3114 2576//3120 2577//3121 -f 2578//3122 2570//3114 2577//3121 -f 2579//3123 2580//3124 2581//3125 -f 2582//3126 2583//3127 2578//3122 2577//3121 -f 2581//3125 2580//3124 2583//3127 2582//3126 -f 2582//3126 2577//3121 2584//3128 -f 2585//3129 2581//3125 2582//3126 2584//3128 -f 2586//3130 2579//3123 2581//3125 2585//3129 -f 2587//3131 2588//3132 2579//3123 2586//3130 -f 2589//3133 2584//3128 2577//3121 2590//3134 -f 2591//3135 2585//3129 2584//3128 2589//3133 -f 2592//3136 2586//3130 2585//3129 2591//3135 -f 2593//3137 2587//3131 2586//3130 2592//3136 -f 2322//2866 2587//3131 2593//3137 2594//3138 -f 2322//2866 2317//2861 2588//3132 2587//3131 -f 2323//2867 2322//2866 2594//3138 -f 2595//3139 2566//3110 2565//3109 -f 2576//3120 2566//3110 2596//3140 -f 2590//3134 2577//3121 2576//3120 2596//3140 -f 2566//3110 2595//3139 2597//3141 -f 2500//3044 2595//3139 2565//3109 -f 2321//2865 2323//2867 2473//3017 -f 2598//3142 2599//3143 2473//3017 2323//2867 -f 2472//3016 2473//3017 2599//3143 2600//3144 -f 2470//3014 2472//3016 2600//3144 2601//3145 -f 2499//3043 2470//3014 2601//3145 2602//3146 -f 2500//3044 2499//3043 2602//3146 2595//3139 -f 2598//3142 2323//2867 2594//3138 2603//3147 -f 2603//3147 2594//3138 2593//3137 2604//3148 -f 2592//3136 2605//3149 2604//3148 2593//3137 -f 2591//3135 2606//3150 2605//3149 2592//3136 -f 2589//3133 2607//3151 2606//3150 2591//3135 -f 2590//3134 2608//3152 2607//3151 2589//3133 -f 2608//3152 2590//3134 2596//3140 -f 2597//3141 2609//3153 2596//3140 2566//3110 -f 2610//3154 2608//3152 2596//3140 2609//3153 -f 2611//3155 2607//3151 2608//3152 2610//3154 -f 2606//3150 2607//3151 2611//3155 2612//3156 -f 2613//3157 2605//3149 2606//3150 2612//3156 -f 2614//3158 2604//3148 2605//3149 2613//3157 -f 2599//3143 2598//3142 2614//3158 2615//3159 -f 2599//3143 2615//3159 2600//3144 -f 2601//3145 2600//3144 2615//3159 2616//3160 -f 2602//3146 2601//3145 2616//3160 2617//3161 -f 2602//3146 2617//3161 2597//3141 2595//3139 -f 2603//3147 2604//3148 2614//3158 -f 2598//3142 2603//3147 2614//3158 -f 2618//3162 2268//2812 2267//2811 2619//3163 -f 2620//3164 2621//3165 2618//3162 2619//3163 -f 2622//3166 2623//3167 2621//3165 2620//3164 -s 208 -f 2624//3252 2625//3253 2623//3251 2622//3250 -f 2626//3254 2621//3249 2623//3251 2625//3253 -f 2618//3248 2621//3249 2626//3254 2627//3255 -f 2268//3247 2618//3248 2627//3255 2628//3256 -f 2626//3254 2625//3253 2629//3257 2630//3258 -f 2627//3255 2626//3254 2630//3258 2631//3259 -f 2628//3256 2627//3255 2631//3259 2632//3260 -f 2625//3253 2624//3252 2629//3257 -f 2629//3257 2624//3252 2633//3261 2634//3262 -f 2630//3258 2629//3257 2634//3262 2635//3263 -f 2631//3259 2630//3258 2635//3263 2636//3264 -f 2632//3260 2631//3259 2636//3264 2637//3265 -s 211 -f 2632//3267 2637//3269 2638//3270 -f 2638//3270 2639//3271 2633//3268 -f 2637//3269 2639//3271 2638//3270 -s 208 -f 2636//3264 2639//3266 2637//3265 -s 210 -f 2635//3274 2639//3276 2636//3275 -f 2634//3273 2639//3276 2635//3274 -f 2633//3272 2639//3276 2634//3273 -s 212 -f 2640//3278 2622//3277 2641//3279 -f 2642//3280 2643//3281 2640//3278 2641//3279 -s 193 -f 2644//3289 2643//3288 2642//3287 2645//3290 -f 2264//3283 2263//3282 2643//3288 2644//3289 -f 2646//3291 2619//3286 2267//3285 2265//3284 -f 2265//3284 2264//3283 2644//3289 2646//3291 -s 209 -f 2620//3294 2647//3296 2622//3295 -f 2647//3296 2620//3294 2619//3293 -s 193 -f 2642//3287 2647//3292 2645//3290 -f 2646//3291 2647//3292 2619//3286 -f 2644//3289 2645//3290 2647//3292 2646//3291 -s off -f 2642//23 2641//23 2622//23 2647//23 -s 166 -f 2648//3168 2649//3169 2650//3170 2651//3171 -f 2253//2797 2262//2806 2246//2790 2245//2789 -f 2052//2628 2011//2587 2454//2998 2490//3034 -f 2651//3171 2650//3170 2453//2997 2464//3008 -s off -f 2650//24 2652//24 2454//24 2453//24 -s 203 -f 2652//3300 2653//3301 2490//3299 2454//3297 -f 2653//3301 2654//3302 2486//3298 2490//3299 -s 166 -f 2654//3174 2655//3175 2487//3031 2486//3030 -f 2655//3175 2649//3169 2488//3032 2487//3031 -f 2649//3169 2648//3168 2489//3033 2488//3032 -f 2648//3168 2651//3171 2464//3008 2489//3033 -f 2383//2927 1927//2503 1920//2496 2378//2922 -f 2381//2925 2383//2927 2378//2922 2379//2923 -f 2373//2917 2381//2925 2379//2923 2371//2915 -f 2371//2915 2367//2911 2373//2917 -f 2456//3000 2448//2992 2446//2990 2467//3011 -f 2367//2911 2374//2918 2373//2917 -f 1893//2469 1871//2447 1894//2470 1896//2472 -f 1893//2469 1896//2472 1898//2474 1901//2477 -f 1980//2556 1979//2555 1977//2553 1981//2557 -s off -f 2234//25 2232//25 2228//25 2233//25 -s 190 -f 2231//3230 2229//3228 2228//3227 2232//3231 -s 166 -f 2345//2889 2343//2887 2356//2900 2357//2901 -f 2359//2903 2356//2900 2358//2902 2360//2904 -f 2424//2968 2425//2969 2427//2971 2423//2967 -f 2654//3174 2653//3173 2649//3169 2655//3175 -f 2652//3172 2650//3170 2649//3169 2653//3173 -# 2812 elements diff --git a/src/geometry/brick2.int b/src/geometry/brick2.int Binary files differdeleted file mode 100644 index 8df4211..0000000 --- a/src/geometry/brick2.int +++ /dev/null diff --git a/src/geometry/concrete.int b/src/geometry/concrete.int Binary files differdeleted file mode 100644 index bffe4f6..0000000 --- a/src/geometry/concrete.int +++ /dev/null diff --git a/src/geometry/galleon.cg b/src/geometry/galleon.cg Binary files differdeleted file mode 100644 index 4964118..0000000 --- a/src/geometry/galleon.cg +++ /dev/null diff --git a/src/geometry/galleon.obj b/src/geometry/galleon.obj deleted file mode 100644 index 0ed58af..0000000 --- a/src/geometry/galleon.obj +++ /dev/null @@ -1,8901 +0,0 @@ -# Tue Oct 27 19:26:52 1992 -# -# Spanish Galleon -# -# Courtesy of: -# -# Viewpoint Animation Engineering -# 870 West Center -# Orem, Utah 84057 -# (801)224-2222 -# 1-800-DATASET -# -# (c) Copyright 1992 Viewpoint Animation Engineering Inc. -# Sun Microsystems has been authorized to freely distribute -# these Datasets. They are provided for unlimited use in -# existing or modified form. The actual Dataset (ie, geometry) -# may not, however, be resold in existing or modified form. -# - -g -v -0.471519 0.607158 0.742476 -v -0.471519 2.835144 0.742476 -v 0.235709 2.835144 1.035419 -v 0.235709 3.340722 1.035419 -v -1.250291 3.340722 0.419898 -v -1.435455 28.440485 0.343200 -v -0.525114 29.392422 0.720276 -v -0.339949 31.134907 0.796974 -v -0.009594 31.301920 0.933812 -v -0.009594 31.705118 0.933812 -v -0.813112 31.538105 0.600984 -v -0.998277 30.035196 0.524286 -v -1.638847 30.068596 0.258952 -v -1.981079 54.333931 0.117197 -v -0.471518 0.607158 -0.742476 -v -0.471518 2.835144 -0.742476 -v 0.235709 2.835144 -1.035419 -v 0.235709 3.340722 -1.035419 -v -1.250291 3.340722 -0.419898 -v -1.435455 28.440485 -0.343200 -v -0.525114 29.392422 -0.720276 -v -0.339949 31.134907 -0.796974 -v -0.009594 31.301920 -0.933812 -v -0.009594 31.705118 -0.933812 -v -0.813112 31.538105 -0.600984 -v -0.998277 30.035196 -0.524286 -v -1.638847 30.068596 -0.258952 -v -1.981079 54.333931 -0.117197 -v -1.521538 0.607158 -1.792495 -v -2.146818 54.333931 -0.282936 -v -3.006491 0.607158 -1.792497 -v -2.381211 54.333931 -0.282936 -v -4.056510 0.607158 -0.742476 -v -4.056510 2.835144 -0.742476 -v -4.763738 2.835144 -1.035419 -v -4.763738 3.340722 -1.035419 -v -3.277740 3.340722 -0.419898 -v -3.092574 28.440485 -0.343200 -v -4.002915 29.392422 -0.720276 -v -4.188079 31.134907 -0.796974 -v -4.518436 31.301920 -0.933812 -v -4.518436 31.705118 -0.933812 -v -3.714916 31.538105 -0.600984 -v -3.529752 30.035196 -0.524286 -v -2.889182 30.068596 -0.258952 -v -2.546952 54.333931 -0.117197 -v -4.056511 0.607158 0.742476 -v -4.056511 2.835144 0.742476 -v -4.763738 2.835144 1.035419 -v -4.763738 3.340722 1.035419 -v -3.277740 3.340722 0.419898 -v -3.092574 28.440485 0.343200 -v -4.002915 29.392422 0.720276 -v -4.188079 31.134907 0.796974 -v -4.518435 31.301920 0.933812 -v -4.518435 31.705118 0.933812 -v -3.714916 31.538105 0.600984 -v -3.529752 30.035196 0.524286 -v -2.889182 30.068596 0.258952 -v -2.546952 54.333931 0.117197 -v -3.006491 0.607158 1.792495 -v -3.006491 2.835144 1.792495 -v -3.299435 2.835144 2.499723 -v -3.299435 3.340722 2.499723 -v -2.683913 3.340722 1.013724 -v -2.607214 28.440485 0.828560 -v -2.984291 29.392422 1.738900 -v -3.060988 31.134907 1.924065 -v -3.197826 31.301920 2.254421 -v -3.197826 31.705118 2.254421 -v -2.864999 31.538105 1.450902 -v -2.788301 30.035196 1.265738 -v -2.522967 30.068596 0.625167 -v -2.381211 54.333931 0.282936 -v -1.521538 0.607158 1.792497 -v -1.521538 2.835144 1.792497 -v -1.228595 2.835144 2.499723 -v -1.228595 3.340722 2.499723 -v -1.844116 3.340722 1.013724 -v -1.920815 28.440485 0.828560 -v -1.543738 29.392422 1.738900 -v -1.467041 31.134907 1.924065 -v -1.330203 31.301920 2.254421 -v -1.330203 31.705118 2.254421 -v -1.663031 31.538105 1.450902 -v -1.739728 30.035196 1.265738 -v -2.005062 30.068596 0.625167 -v -2.146818 54.333931 0.282936 -v -1.732276 28.916454 1.283730 -v -2.795753 28.916454 1.283730 -v -2.378415 28.440485 0.828560 -v -2.149614 28.440485 0.828560 -v -2.086768 28.916454 1.283730 -v -2.441260 28.916454 1.283730 -v -10.859753 1.409189 15.317495 -v -10.505260 1.409189 15.317495 -v -10.442413 0.933218 14.862325 -v -10.671214 0.933218 14.862325 -v -3.396813 0.933175 14.862257 -v -3.625614 0.933175 14.862261 -v -3.562768 1.409142 15.317429 -v -3.208276 1.409142 15.317429 -v -7.081613 0.933123 14.862221 -v -7.310413 0.933123 14.862221 -v -7.373259 1.409093 15.317392 -v -7.018765 1.409093 15.317392 -v -32.243050 -19.185102 0.000000 -v -38.131035 -19.181059 0.000000 -v -38.073593 -19.202291 1.238075 -v -32.189545 -19.209759 1.238075 -v -24.875282 -19.207870 1.238075 -v -24.875282 -19.187256 0.000000 -v -21.158424 -19.201153 1.238075 -v -21.158424 -19.188753 0.000000 -v -17.426210 -19.199236 1.238075 -v -17.426210 -19.186226 0.000000 -v -10.703051 -19.188595 1.238075 -v -10.703051 -19.187540 0.000000 -v -6.862593 -19.192287 1.238075 -v -6.862593 -19.191231 0.000000 -v -2.943282 -19.197210 1.238075 -v -2.943282 -19.188084 0.000000 -v 2.420745 -19.188913 1.238075 -v 2.420745 -19.183977 0.000000 -v 7.603565 -19.183283 0.000000 -v 7.603565 -19.195683 1.238075 -v 12.967180 -18.306032 1.259959 -v 12.980299 -18.290831 0.000000 -v 16.730053 -16.014843 1.259959 -v 16.797665 -16.055038 0.000000 -v 19.381454 -13.269838 1.259959 -v 19.872108 -13.242973 0.000000 -v 22.486511 -8.349066 1.259959 -v 22.851847 -8.316385 0.000000 -v 24.247856 -5.150546 1.259967 -v 24.431244 -5.094540 0.000000 -v 26.552673 -2.858097 1.259976 -v 26.431309 -2.898813 0.000000 -v 29.468712 -0.579000 1.259978 -v 29.475975 -0.580864 0.000000 -v 30.889355 1.488847 1.259971 -v 30.886574 1.483778 0.000000 -v 30.887581 4.224448 1.259971 -v 30.886909 4.257463 0.000000 -v 29.521240 5.140058 1.259971 -v 29.460693 5.099638 0.000000 -v 27.605324 4.464114 1.605842 -v 27.489288 4.497021 0.000000 -v 27.217043 2.526036 1.605860 -v 27.104233 2.554623 0.000000 -v -32.122738 -17.475546 1.238075 -v -24.875282 -17.469940 1.238075 -v -21.158424 -17.471130 1.238075 -v -17.426210 -17.464722 1.238075 -v -10.703051 -17.446625 1.238075 -v -6.862593 -17.454201 1.238075 -v -2.943282 -17.458817 1.238075 -v 2.420745 -17.454708 1.238075 -v 7.603565 -17.449827 1.238075 -v 12.879044 -16.473442 1.238075 -v 16.405544 -14.094017 1.238075 -v 18.244587 -11.779632 1.238075 -v 20.710901 -7.529170 1.281522 -v 22.502172 -2.387520 1.780734 -v 26.162926 -1.127839 1.911312 -v 28.999243 0.125412 1.881888 -v -32.122726 -16.693306 4.355949 -v -24.875282 -16.438957 5.023836 -v -21.158424 -16.432545 5.456006 -v -17.426210 -16.414181 5.591547 -v -10.703051 -16.404001 5.960669 -v -6.862593 -16.404274 6.041844 -v -2.943282 -16.405006 6.357064 -v 2.420745 -16.404470 6.357064 -v 7.603565 -16.380497 6.357064 -v 12.832268 -15.500710 6.259944 -v 16.321648 -13.597433 5.927067 -v 18.157881 -11.652975 5.318019 -v 20.729614 -7.361181 4.084560 -v -32.122711 -15.201252 8.479453 -v -24.875282 -15.191301 8.889921 -v -21.158424 -15.188612 9.238050 -v -17.426210 -15.185617 9.648746 -v -10.703051 -15.151535 9.959948 -v -6.862593 -15.148084 10.122597 -v -2.943282 -15.161076 10.404315 -v 2.420745 -15.136637 10.490346 -v 7.603565 -15.139988 10.384273 -v 12.742552 -13.635256 10.271313 -v 16.052504 -12.004322 9.672956 -v 17.738865 -10.274949 8.849628 -v 20.423779 -6.674508 7.563237 -v 22.927841 -2.079975 5.293032 -v -32.122692 -13.101498 12.252906 -v -24.875282 -13.559512 12.869038 -v -21.158424 -13.563975 12.793823 -v -17.426210 -13.564394 13.015837 -v -10.703051 -13.542574 13.359402 -v -6.862593 -13.538811 13.468325 -v -2.943282 -13.548689 13.506525 -v 2.420745 -13.559494 13.319569 -v 7.603565 -13.121067 12.955379 -v 12.651917 -11.750661 12.163342 -v 15.776398 -10.370003 11.428668 -v 17.823387 -8.626553 10.201316 -v 20.243277 -5.812185 8.599287 -v 22.642578 -2.021900 6.338686 -v -32.122688 -10.525450 13.978191 -v -24.875282 -10.610699 14.971485 -v -21.158424 -10.603826 15.170494 -v -17.426210 -10.616206 15.433119 -v -10.703051 -10.590498 15.556311 -v -6.862593 -10.586885 15.660851 -v -2.943282 -10.611682 15.249158 -v 2.420745 -10.615954 14.819395 -v 7.603565 -10.423251 14.270162 -v 12.555428 -9.744363 13.830376 -v 15.481684 -8.625530 13.248377 -v 17.762831 -6.967863 11.940372 -v 19.731392 -4.773400 10.782165 -v 22.192654 -1.778881 8.919837 -v -38.881935 -16.109306 1.238075 -v -38.942127 -13.100367 1.238075 -v -32.122734 -13.101784 1.238075 -v -38.612694 -10.520290 1.238075 -v -32.122734 -10.529110 1.238075 -v -35.691887 -7.364658 1.238075 -v -32.122734 -7.294571 1.238075 -v -34.094254 -2.453040 1.238075 -v -32.122734 -2.380687 1.238075 -v -32.122818 3.000987 1.238075 -v -32.122829 0.590391 1.238075 -v -32.122726 -13.101580 3.815750 -v -32.122711 -13.101223 8.479156 -v -32.122711 -10.525373 8.478323 -v -32.122726 -10.527499 3.815633 -v -32.122726 -7.294347 3.815463 -v -32.122707 -7.294013 8.480250 -v -32.122684 -7.293530 14.206009 -v -32.122730 -2.380611 2.860078 -v -32.122726 -2.380491 4.517693 -v -32.122711 -3.604395 7.527471 -v -32.122704 -3.604366 9.285585 -v -32.122688 -3.604459 12.926102 -v -34.151215 -2.453028 0.000000 -v -35.631935 -7.364541 0.000000 -v -38.571144 -10.520123 0.000000 -v -38.914642 -13.100622 0.000000 -v -38.943748 -16.087477 0.000000 -v 26.141859 -0.943860 5.148655 -v 29.132690 0.554667 5.435258 -v 26.222294 -0.414192 7.186513 -v 23.797483 -0.793227 9.466203 -v 21.442825 -1.464471 9.712464 -v 22.778015 -0.755679 10.499197 -v 29.379856 3.334527 1.774282 -v 28.136330 2.362632 4.761501 -v 26.016197 1.315401 7.589925 -v 24.328785 1.265883 9.340617 -v 20.806227 -0.763545 10.438858 -v 21.705126 -0.275237 11.014637 -v 20.500061 0.752725 10.784106 -v 21.436293 0.883347 11.366537 -v 21.135654 1.550061 10.690931 -v 22.121262 1.561577 11.206270 -v 21.007219 3.249419 9.869397 -v 23.650299 1.840257 8.010921 -v 25.636337 1.698787 6.579282 -v 27.706768 2.015127 4.583124 -v 17.983040 6.662837 11.152293 -v 17.005033 6.662837 9.681633 -v 20.477345 3.637633 7.988389 -v 22.595039 2.320421 6.663224 -v 24.421982 1.686574 5.242180 -v 26.100426 1.864140 3.405339 -v 28.646168 2.885117 3.198632 -v 27.660387 1.772689 0.000000 -v 27.427397 1.142091 0.000000 -v 26.333582 1.027800 1.582581 -v 25.659239 1.174690 0.000000 -v 23.720354 0.966969 4.569222 -v 23.102367 0.608405 0.000000 -v 21.179319 1.176081 0.000000 -v 21.278627 1.400611 1.803334 -v 16.906103 5.316076 1.586848 -v 16.906103 5.316102 0.000000 -v 18.888571 1.302237 1.623599 -v 21.060875 1.981712 6.729387 -v 19.376360 2.471233 7.869488 -v 16.906103 5.316122 8.994491 -v 6.683901 5.316105 9.844049 -v 6.683901 5.315889 1.586848 -v 6.675109 5.316054 0.000000 -v 19.400375 -3.691560 11.374310 -v 18.681934 -1.983630 11.338428 -v 17.373505 -5.228647 12.646860 -v 16.633705 -3.074314 12.192126 -v 15.075657 -6.222204 13.865580 -v 14.621896 -3.523885 13.566364 -v 12.255808 -3.514410 13.771845 -v 12.411800 -6.757924 14.212804 -v 7.603565 -7.188782 14.846800 -v 7.603565 -3.490891 14.606509 -v 2.420745 -7.173941 15.276383 -v 2.420745 -3.480093 14.919241 -v -2.943282 -7.166555 15.589163 -v -2.961988 -3.473636 15.106121 -v -4.439586 -3.475051 15.065130 -v -6.862593 -7.149532 15.766785 -v -6.464514 -3.472743 15.131924 -v -8.018665 -3.474161 15.090826 -v -10.703051 -7.164166 15.766442 -v -9.989845 -3.475893 15.040714 -v -11.494260 -3.481347 14.882881 -v -17.426210 -7.163010 15.619746 -v -17.426210 -3.476307 15.028784 -v -21.158424 -7.158087 15.411015 -v -21.158424 -3.491715 14.582708 -v -24.875282 -7.172729 15.149325 -v -24.875282 -3.502623 14.266861 -v 18.104813 -0.132791 11.438385 -v 17.807384 1.818409 11.514686 -v 16.016308 -0.209789 12.214762 -v 15.502045 1.959264 11.977353 -v 15.252133 4.364689 12.089524 -v 17.344368 4.240352 11.840204 -v 13.062292 4.818222 12.265154 -v 13.673447 2.077692 12.471821 -v 14.041731 -0.091286 13.220635 -v 11.917332 -0.092658 13.622351 -v 11.917332 3.738120 12.682102 -v 13.062292 3.738120 12.646502 -v 13.062292 3.738120 13.693560 -v 13.062292 4.882016 13.297487 -v 6.935244 4.838787 12.860477 -v 6.935244 4.877757 13.657490 -v 11.917332 3.738120 13.693560 -v 10.851164 3.738120 13.693560 -v 9.059711 3.738120 13.693560 -v 7.942212 3.738120 13.693560 -v 6.935244 3.738120 13.693585 -v 10.851164 -0.092025 13.680202 -v 10.851164 3.738120 13.099374 -v 9.059711 -0.082416 13.958302 -v 9.059711 3.738120 13.247311 -v 7.942212 -0.088027 13.795906 -v 7.942212 3.738120 12.994835 -v 6.935244 3.738120 12.932455 -v 2.420745 -0.081102 13.996309 -v 2.420745 1.569107 13.480452 -v 2.420745 3.221424 12.616695 -v -1.886394 3.221424 12.694532 -v -1.898796 1.579293 13.775311 -v -1.898796 -0.093726 14.123177 -v -2.961988 -0.093726 14.123177 -v -2.961988 -0.093726 15.846119 -v -4.439586 -0.093726 15.846119 -v -6.464514 -0.093726 15.846119 -v -8.018665 -0.093726 15.846119 -v -9.989845 -0.093726 15.846119 -v -11.494260 -0.093726 15.846119 -v -6.464514 -0.093726 14.123177 -v -4.439586 -0.093726 14.123177 -v -9.989845 -0.093726 14.123177 -v -8.018665 -0.093726 14.123177 -v -12.515305 -0.093726 14.123177 -v -11.494260 -0.093726 14.123177 -v -12.515305 1.643136 15.278696 -v -1.898796 1.623528 15.278696 -v -1.898796 -0.093726 15.846119 -v -12.515305 -0.093726 15.846119 -v -12.515305 1.580878 13.821227 -v -8.522958 3.221424 12.703880 -v -10.136595 4.386232 12.483255 -v -12.771408 4.612774 12.141369 -v -13.215079 9.087099 12.333536 -v -17.426210 -0.085238 13.876673 -v -17.327192 1.568238 13.455286 -v -18.602346 1.558287 13.167220 -v -21.158424 -0.093337 13.642082 -v -20.301380 1.560132 13.220694 -v -21.564625 1.545988 12.811226 -v -24.875282 -0.115279 13.006975 -v -24.875282 1.535080 12.495492 -v -18.602346 5.420457 13.195373 -v -17.327192 5.420457 13.195373 -v -20.301380 5.420457 13.195373 -v -21.564625 5.420457 13.195373 -v -22.943232 5.420457 13.195373 -v -22.943232 6.953562 13.019781 -v -16.144386 6.964816 13.345592 -v -16.144386 5.420457 13.195373 -v -17.327192 5.420457 11.781666 -v -16.144386 5.420457 11.781666 -v -16.144386 6.916856 11.957180 -v -20.301380 5.420457 11.781666 -v -18.602346 5.420457 11.781666 -v -22.943232 6.914290 11.882894 -v -19.419006 9.058252 11.675020 -v -20.785156 10.432585 11.266025 -v -22.943232 5.420457 11.781666 -v -21.564625 5.420457 11.781666 -v -24.875282 11.097299 11.310978 -v -22.073826 12.809116 11.031629 -v -30.663502 11.097299 10.697601 -v -30.324631 13.255548 10.468728 -v -30.036606 14.678006 10.958575 -v -22.617615 13.859209 11.521384 -v -32.024277 15.183992 8.240927 -v -22.549631 13.892679 9.395622 -v -33.987694 15.764829 10.182573 -v -33.718784 15.003299 10.658934 -v -33.772961 13.609431 10.011785 -v -33.887344 11.097299 10.130578 -v -34.301479 16.149021 7.782318 -v -32.866196 16.196304 7.754097 -v -35.090012 19.437290 4.864941 -v -33.522549 19.528704 4.747104 -v -35.784195 21.577259 2.965577 -v -34.027481 21.557823 2.963631 -v -36.012775 22.438992 1.238075 -v -34.225647 22.404272 1.238075 -v -36.034115 22.694397 0.000000 -v -34.290081 22.667803 0.000000 -v -35.982044 20.292164 0.000000 -v -35.525314 19.202272 2.929065 -v -35.834301 18.574884 0.000000 -v -34.960712 15.855540 2.964757 -v -35.472115 15.759262 0.000000 -v -35.266460 13.591896 0.000000 -v -34.620663 13.597372 2.965675 -v -34.500881 12.321301 2.967943 -v -35.115417 12.681304 0.000000 -v -33.745373 13.603200 7.767865 -v -33.643600 11.097299 7.760621 -v -29.725348 1.534853 12.693987 -v -29.951672 -0.553082 12.838999 -v -29.089066 -2.256183 13.223326 -v -29.440445 -3.531864 13.420376 -v -26.469778 9.078413 12.638399 -v -30.376698 9.078413 12.195282 -v -34.513470 9.078413 11.671916 -v -35.326443 9.078413 8.519265 -v -36.337158 10.302411 4.204359 -v -32.288364 14.311578 0.000000 -v -38.840782 8.738811 0.000000 -v -36.824764 10.662413 0.000000 -v -38.226944 8.378810 4.931240 -v -37.265987 7.154811 10.030826 -v -36.054546 7.154811 15.249533 -v -31.044762 7.154811 15.397676 -v -28.175797 7.154811 15.624508 -v -26.515152 1.792719 14.466270 -v -28.182747 3.357670 15.498522 -v -30.193434 1.779966 14.420488 -v -31.038305 3.357670 15.387860 -v -35.530365 3.357670 15.019470 -v -36.705807 3.357670 10.029904 -v -37.666824 4.581672 4.931256 -v -38.222157 4.941670 0.000000 -v -36.700283 3.003968 2.860110 -v -37.202202 3.363967 0.000000 -v -36.408623 3.003968 4.518372 -v -35.959934 1.779966 7.527570 -v -35.191723 1.779966 9.285604 -v -34.204334 1.779966 14.226349 -v -30.329147 -0.633617 13.908249 -v -32.748100 -0.633628 13.436047 -v -29.538437 -2.280977 14.046997 -v -29.785950 -3.192493 13.980194 -v -30.527657 -3.185613 13.899263 -v -32.122818 1.776985 9.285594 -v -32.122818 1.776985 11.058003 -v -32.122688 -0.633649 11.458102 -v -32.122746 -0.633664 9.285579 -v -34.194592 -0.633673 9.285544 -v -34.248096 -0.633676 7.527580 -v -32.122818 3.000987 4.518517 -v -32.122818 1.776985 7.526671 -v -32.122761 -0.633678 7.527228 -v -32.122795 0.590334 4.518468 -v -33.900768 0.590325 4.518118 -v -34.417446 0.590306 2.860096 -v -34.639442 1.779966 11.836490 -v -33.089638 -0.885639 12.303194 -v -33.722881 3.003968 0.000000 -v -32.122818 3.000965 2.859260 -v -32.122826 0.590387 2.859397 -v -33.910358 21.114786 0.000000 -v -33.503494 19.450775 0.000000 -v -32.879219 16.897564 0.000000 -v -32.471931 15.231831 0.000000 -v -31.481258 12.189013 0.000000 -v -31.478973 12.189011 7.300096 -v -23.230810 12.189157 8.507561 -v -23.230810 12.188995 0.000000 -v -23.230810 12.189054 5.906754 -v -19.385841 7.391382 6.580861 -v -19.385841 7.391684 8.968118 -v -21.167429 7.390899 6.153070 -v -21.167429 7.390496 0.000000 -v -13.892597 7.391925 9.847868 -v -14.133162 7.391512 7.171891 -v -14.133162 7.391360 0.000000 -v -21.997017 12.885773 9.282518 -v -20.622669 10.264604 9.549243 -v -19.292164 9.097214 9.702837 -v -13.192261 9.087229 10.726978 -v -10.064362 4.446222 10.991236 -v -8.351521 3.221424 11.058840 -v -1.598226 3.221424 11.134462 -v 2.452951 3.221424 10.998412 -v 4.365315 4.001073 10.953445 -v 4.422665 4.063653 12.498808 -v 5.530656 6.149844 10.682220 -v 5.533552 6.171984 12.384296 -v 7.360672 6.662837 12.189878 -v 7.977384 6.662837 10.348160 -v 15.594139 6.662837 11.461397 -v 12.972380 6.662837 11.684002 -v -9.777788 1.447089 10.415768 -v -9.777788 1.447089 7.505733 -v -12.005382 1.447089 7.353243 -v -12.005382 1.447089 0.000000 -v -9.777788 1.447089 0.000000 -v -1.954006 1.447089 0.000000 -v -1.881737 1.447089 10.419345 -v 3.275857 1.447089 0.000000 -v 3.275857 1.447089 1.586848 -v 3.275857 1.447089 10.142793 -v 5.568399 1.447089 1.586848 -v 5.568399 1.447089 10.053401 -v 21.363655 1.139118 5.173973 -v -33.722420 3.002194 1.266791 -v -30.977203 -3.573457 13.137188 -v 21.934351 1.656698 10.462739 -v 24.074268 1.416270 8.771894 -v 25.925503 1.399094 7.091439 -v -8.976471 1.636600 15.278696 -v -5.437628 1.630064 15.278696 -v 15.260481 3.703158 0.742476 -v 15.260481 5.931142 0.742476 -v 15.967709 5.931142 1.035419 -v 15.967709 6.436721 1.035419 -v 14.481710 6.436721 0.419898 -v 14.296546 24.624481 0.343200 -v 15.206884 25.576418 0.720276 -v 15.392049 27.318907 0.796974 -v 15.722405 27.485916 0.933812 -v 15.722405 27.889114 0.933812 -v 14.918887 27.722105 0.600984 -v 14.733723 26.219193 0.524286 -v 14.093153 26.252592 0.258952 -v 13.750921 46.881989 0.117197 -v 15.260481 3.703158 -0.742476 -v 15.260481 5.931142 -0.742476 -v 15.967709 5.931142 -1.035419 -v 15.967709 6.436721 -1.035419 -v 14.481710 6.436721 -0.419898 -v 14.296546 24.624481 -0.343200 -v 15.206884 25.576418 -0.720276 -v 15.392050 27.318907 -0.796974 -v 15.722405 27.485916 -0.933812 -v 15.722405 27.889114 -0.933812 -v 14.918887 27.722105 -0.600984 -v 14.733723 26.219193 -0.524286 -v 14.093153 26.252592 -0.258952 -v 13.750921 46.881989 -0.117197 -v 14.210463 3.703158 -1.792495 -v 13.585180 46.881989 -0.282936 -v 12.725510 3.703158 -1.792497 -v 13.350788 46.881989 -0.282936 -v 11.675488 3.703158 -0.742476 -v 11.675488 5.931142 -0.742476 -v 10.968261 5.931142 -1.035419 -v 10.968261 6.436721 -1.035419 -v 12.454259 6.436721 -0.419898 -v 12.639424 24.624481 -0.343200 -v 11.729083 25.576418 -0.720276 -v 11.543920 27.318907 -0.796974 -v 11.213565 27.485916 -0.933812 -v 11.213565 27.889114 -0.933812 -v 12.017083 27.722105 -0.600984 -v 12.202246 26.219193 -0.524286 -v 12.842817 26.252592 -0.258952 -v 13.185047 46.881989 -0.117197 -v 11.675488 3.703158 0.742476 -v 11.675488 5.931142 0.742476 -v 10.968261 5.931142 1.035419 -v 10.968261 6.436721 1.035419 -v 12.454259 6.436721 0.419898 -v 12.639424 24.624481 0.343200 -v 11.729083 25.576418 0.720276 -v 11.543920 27.318907 0.796974 -v 11.213565 27.485916 0.933812 -v 11.213565 27.889114 0.933812 -v 12.017083 27.722105 0.600984 -v 12.202246 26.219193 0.524286 -v 12.842817 26.252592 0.258952 -v 13.185047 46.881989 0.117197 -v 12.725510 3.703158 1.792495 -v 12.725510 5.931142 1.792495 -v 12.432567 5.931142 2.499723 -v 12.432567 6.436721 2.499723 -v 13.048086 6.436721 1.013724 -v 13.124784 24.624481 0.828560 -v 12.747708 25.576418 1.738900 -v 12.671010 27.318907 1.924065 -v 12.534173 27.485916 2.254421 -v 12.534173 27.889114 2.254421 -v 12.867002 27.722105 1.450902 -v 12.943699 26.219193 1.265738 -v 13.209031 26.252592 0.625167 -v 13.350788 46.881989 0.282936 -v 14.210463 3.703158 1.792497 -v 14.210463 5.931142 1.792497 -v 14.503405 5.931142 2.499723 -v 14.503405 6.436721 2.499723 -v 13.887884 6.436721 1.013724 -v 13.811186 24.624481 0.828560 -v 14.188262 25.576418 1.738900 -v 14.264960 27.318907 1.924065 -v 14.401797 27.485916 2.254421 -v 14.401797 27.889114 2.254421 -v 14.068970 27.722105 1.450902 -v 13.992271 26.219193 1.265738 -v 13.726938 26.252592 0.625167 -v 13.585180 46.881989 0.282936 -v 13.999723 25.100452 1.283730 -v 12.936247 25.100452 1.283730 -v 13.467985 25.100452 1.283730 -v 13.467985 24.624481 0.828560 -v 11.795187 4.078778 12.650445 -v 11.451985 4.078778 12.650445 -v 11.451985 4.554746 13.105617 -v 11.983724 4.554746 13.105617 -v 8.480783 4.078758 12.650431 -v 8.292243 4.554726 13.105604 -v 8.823982 4.554726 13.105604 -v 8.823982 4.078758 12.650431 -v -16.707516 6.115158 0.742476 -v -16.707516 8.343143 0.742476 -v -16.000288 8.343143 1.035419 -v -16.000288 8.848721 1.035419 -v -17.486286 8.848721 0.419898 -v -17.671450 27.036480 0.343200 -v -16.761112 27.988419 0.720276 -v -16.575949 29.730904 0.796974 -v -16.245590 29.897915 0.933812 -v -16.245590 30.301113 0.933812 -v -17.049109 30.134102 0.600984 -v -17.234274 28.631191 0.524286 -v -17.874844 28.664593 0.258952 -v -18.217075 49.293991 0.117197 -v -16.707516 6.115158 -0.742476 -v -16.707516 8.343143 -0.742476 -v -16.000288 8.343143 -1.035419 -v -16.000288 8.848721 -1.035419 -v -17.486286 8.848721 -0.419898 -v -17.671450 27.036480 -0.343200 -v -16.761112 27.988419 -0.720276 -v -16.575947 29.730904 -0.796974 -v -16.245590 29.897915 -0.933812 -v -16.245590 30.301113 -0.933812 -v -17.049109 30.134102 -0.600984 -v -17.234274 28.631191 -0.524286 -v -17.874844 28.664593 -0.258952 -v -18.217075 49.293991 -0.117197 -v -17.757534 6.115158 -1.792495 -v -18.382814 49.293991 -0.282936 -v -19.242489 6.115158 -1.792497 -v -18.617208 49.293991 -0.282936 -v -20.292507 6.115158 -0.742476 -v -20.292507 8.343143 -0.742476 -v -20.999735 8.343143 -1.035419 -v -20.999735 8.848721 -1.035419 -v -19.513737 8.848721 -0.419898 -v -19.328571 27.036480 -0.343200 -v -20.238913 27.988419 -0.720276 -v -20.424078 29.730904 -0.796974 -v -20.754433 29.897915 -0.933812 -v -20.754433 30.301113 -0.933812 -v -19.950914 30.134102 -0.600984 -v -19.765751 28.631191 -0.524286 -v -19.125179 28.664593 -0.258952 -v -18.782949 49.293991 -0.117197 -v -20.292509 6.115158 0.742476 -v -20.292509 8.343143 0.742476 -v -20.999735 8.343143 1.035419 -v -20.999735 8.848721 1.035419 -v -19.513737 8.848721 0.419898 -v -19.328571 27.036480 0.343200 -v -20.238913 27.988419 0.720276 -v -20.424078 29.730904 0.796974 -v -20.754433 29.897915 0.933812 -v -20.754433 30.301113 0.933812 -v -19.950914 30.134102 0.600984 -v -19.765751 28.631191 0.524286 -v -19.125179 28.664593 0.258952 -v -18.782949 49.293991 0.117197 -v -19.242489 6.115158 1.792495 -v -19.242489 8.343143 1.792495 -v -19.535431 8.343143 2.499723 -v -19.535431 8.848721 2.499723 -v -18.919910 8.848721 1.013724 -v -18.843212 27.036480 0.828560 -v -19.220287 27.988419 1.738900 -v -19.296986 29.730904 1.924065 -v -19.433825 29.897915 2.254421 -v -19.433825 30.301113 2.254421 -v -19.100996 30.134102 1.450902 -v -19.024298 28.631191 1.265738 -v -18.758965 28.664593 0.625167 -v -18.617208 49.293991 0.282936 -v -17.757534 6.115158 1.792497 -v -17.757534 8.343143 1.792497 -v -17.464592 8.343143 2.499723 -v -17.464592 8.848721 2.499723 -v -18.080112 8.848721 1.013724 -v -18.156811 27.036480 0.828560 -v -17.779734 27.988419 1.738900 -v -17.703035 29.730904 1.924065 -v -17.566198 29.897915 2.254421 -v -17.566198 30.301113 2.254421 -v -17.899027 30.134102 1.450902 -v -17.975723 28.631191 1.265738 -v -18.241058 28.664593 0.625167 -v -18.382814 49.293991 0.282936 -v -17.968273 27.512449 1.283730 -v -19.031750 27.512449 1.283730 -v -18.500011 27.512449 1.283730 -v -18.500011 27.036480 0.828560 -v -17.796808 6.058776 12.650445 -v -18.140011 6.058776 12.650445 -v -18.140011 6.534745 13.105617 -v -17.608273 6.534745 13.105617 -v -21.111214 6.058758 12.650431 -v -21.299751 6.534726 13.105604 -v -20.768013 6.534726 13.105604 -v -20.768013 6.058758 12.650431 -v -35.773300 31.489208 0.000000 -v -34.736378 21.021118 0.000000 -v -34.903202 23.332542 0.000000 -v -34.561050 23.357229 0.000000 -v -34.583500 23.668274 0.000000 -v -34.171692 24.893951 0.000000 -v -33.985054 24.907419 0.000000 -v -34.005249 25.187370 0.000000 -v -35.056408 25.455433 0.000000 -v -34.738964 25.822281 0.000000 -v -35.099068 26.046429 0.000000 -v -34.818378 21.015203 -0.198465 -v -34.985210 23.326622 -0.198465 -v -34.743275 23.344069 -0.441034 -v -34.765717 23.655121 -0.441034 -v -34.499660 24.870266 -0.793862 -v -34.367695 24.879795 -0.926172 -v -34.387901 25.159744 -0.926172 -v -35.138412 25.449520 -0.198465 -v -34.921173 25.809122 -0.441034 -v -35.181068 26.040510 -0.198465 -v -35.016331 21.000908 -0.280672 -v -35.183147 23.312332 -0.280672 -v -35.183147 23.312332 -0.623716 -v -35.205605 23.623371 -0.623716 -v -35.291466 24.813129 -1.122690 -v -35.291466 24.813129 -1.309804 -v -35.311668 25.093071 -1.309804 -v -35.336365 25.435234 -0.280672 -v -35.361061 25.777367 -0.623716 -v -35.379028 26.026230 -0.280672 -v -35.214291 20.986626 -0.198465 -v -35.381107 23.298044 -0.198465 -v -35.623047 23.280582 -0.441034 -v -35.645496 23.591629 -0.441034 -v -36.083260 24.755985 -0.793862 -v -36.215240 24.746449 -0.926172 -v -36.235443 25.026409 -0.926172 -v -35.534321 25.420948 -0.198465 -v -35.800957 25.745636 -0.441034 -v -35.576973 26.011936 -0.198465 -v -35.296280 20.980709 0.000000 -v -35.463108 23.292116 0.000000 -v -35.805252 23.267427 0.000000 -v -35.827702 23.578472 0.000000 -v -36.411251 24.732311 0.000000 -v -36.597878 24.718842 0.000000 -v -36.618084 24.998800 0.000000 -v -35.616310 25.415024 0.000000 -v -35.983170 25.732475 0.000000 -v -35.658962 26.006020 0.000000 -v -35.214291 20.986626 0.198465 -v -35.381107 23.298044 0.198465 -v -35.623047 23.280582 0.441034 -v -35.645496 23.591629 0.441034 -v -36.083260 24.755985 0.793862 -v -36.215240 24.746449 0.926172 -v -36.235443 25.026409 0.926172 -v -35.534321 25.420948 0.198465 -v -35.800957 25.745636 0.441034 -v -35.576973 26.011936 0.198465 -v -35.016331 21.000908 0.280672 -v -35.183147 23.312332 0.280672 -v -35.183147 23.312332 0.623716 -v -35.205605 23.623371 0.623716 -v -35.291466 24.813129 1.122690 -v -35.291466 24.813129 1.309804 -v -35.311668 25.093071 1.309804 -v -35.336365 25.435234 0.280672 -v -35.361061 25.777367 0.623716 -v -35.379028 26.026230 0.280672 -v -34.818378 21.015203 0.198465 -v -34.985210 23.326622 0.198465 -v -34.743275 23.344069 0.441034 -v -34.765717 23.655121 0.441034 -v -34.499660 24.870266 0.793862 -v -34.367695 24.879795 0.926172 -v -34.387901 25.159744 0.926172 -v -35.138412 25.449520 0.198465 -v -34.921173 25.809122 0.441034 -v -35.181068 26.040510 0.198465 -v 41.515854 14.389792 0.409083 -v 19.986862 -0.162336 0.821899 -v 41.677841 14.150139 0.289265 -v 20.312319 -0.643831 0.581170 -v 41.744942 14.050873 0.000000 -v 20.447128 -0.843273 0.000000 -v 41.677841 14.150139 -0.289265 -v 20.312319 -0.643831 -0.581170 -v 41.515854 14.389792 -0.409081 -v 19.986862 -0.162336 -0.821899 -v 41.353859 14.629446 -0.289265 -v 19.661402 0.319160 -0.581170 -v 41.286762 14.728712 0.000000 -v 19.526598 0.518598 0.000000 -v 41.353859 14.629446 0.289265 -v 19.661402 0.319160 0.581170 -v -32.189545 -19.209759 -1.238075 -v -38.073593 -19.202291 -1.238075 -v -24.875282 -19.207870 -1.238075 -v -21.158424 -19.201153 -1.238075 -v -17.426210 -19.199236 -1.238075 -v -10.703051 -19.188595 -1.238075 -v -6.862593 -19.192287 -1.238075 -v -2.943282 -19.197210 -1.238075 -v 2.420745 -19.188913 -1.238075 -v 12.967180 -18.306032 -1.259959 -v 7.603565 -19.195683 -1.238075 -v 16.730053 -16.014843 -1.259959 -v 19.381454 -13.269838 -1.259959 -v 22.486511 -8.349066 -1.259959 -v 24.247856 -5.150546 -1.259967 -v 26.552673 -2.858097 -1.259976 -v 29.468712 -0.579000 -1.259978 -v 30.889355 1.488847 -1.259971 -v 30.887581 4.224448 -1.259971 -v 29.521240 5.140058 -1.259971 -v 27.605324 4.464114 -1.605842 -v 27.217043 2.526036 -1.605860 -v -32.122738 -17.475546 -1.238075 -v -24.875282 -17.469940 -1.238075 -v -21.158424 -17.471130 -1.238075 -v -17.426210 -17.464722 -1.238075 -v -10.703051 -17.446625 -1.238075 -v -6.862593 -17.454201 -1.238075 -v -2.943282 -17.458817 -1.238075 -v 2.420745 -17.454708 -1.238075 -v 7.603565 -17.449827 -1.238075 -v 12.879044 -16.473442 -1.238075 -v 16.405544 -14.094017 -1.238075 -v 18.244587 -11.779632 -1.238075 -v 20.710901 -7.529170 -1.281522 -v 22.502172 -2.387520 -1.780734 -v 26.162926 -1.127839 -1.911312 -v 28.999243 0.125412 -1.881888 -v -38.881935 -16.109306 -1.238075 -v -32.122734 -13.101784 -1.238075 -v -38.942127 -13.100367 -1.238075 -v -32.122734 -10.529110 -1.238075 -v -38.612694 -10.520290 -1.238075 -v -32.122734 -7.294571 -1.238075 -v -35.691887 -7.364658 -1.238075 -v -32.122734 -2.380687 -1.238075 -v -34.094254 -2.453040 -1.238075 -v -33.722420 3.002194 -1.266791 -v -32.122829 0.590391 -1.238075 -v -32.122818 3.000987 -1.238075 -v -32.122726 -16.693306 -4.355949 -v -32.122726 -13.101580 -3.815750 -v -32.122711 -15.201252 -8.479453 -v -32.122711 -13.101223 -8.479156 -v -32.122692 -13.101498 -12.252906 -v -32.122688 -10.525450 -13.978191 -v -32.122711 -10.525373 -8.478323 -v -32.122726 -10.527499 -3.815633 -v -32.122726 -7.294347 -3.815463 -v -32.122707 -7.294013 -8.480250 -v -32.122684 -7.293530 -14.206009 -v -32.122730 -2.380611 -2.860078 -v -32.122726 -2.380491 -4.517693 -v -32.122711 -3.604395 -7.527471 -v -32.122704 -3.604366 -9.285585 -v -32.122688 -3.604459 -12.926102 -v 22.927841 -2.079975 -5.293032 -v 26.141859 -0.943860 -5.148655 -v 29.132690 0.554667 -5.435258 -v 26.222294 -0.414192 -7.186513 -v 22.642578 -2.021900 -6.338686 -v 22.192654 -1.778881 -8.919837 -v 23.797483 -0.793227 -9.466203 -v 22.778015 -0.755679 -10.499197 -v 21.442825 -1.464471 -9.712464 -v 29.379856 3.334527 -1.774282 -v 28.136330 2.362632 -4.761501 -v 26.016197 1.315401 -7.589925 -v 24.328785 1.265883 -9.340617 -v 21.705126 -0.275237 -11.014637 -v 20.806227 -0.763545 -10.438858 -v 21.436293 0.883347 -11.366537 -v 20.500061 0.752725 -10.784106 -v 22.121262 1.561577 -11.206270 -v 21.135654 1.550061 -10.690931 -v 21.934351 1.656698 -10.462739 -v 24.074268 1.416270 -8.771894 -v 25.925503 1.399094 -7.091439 -v 17.005033 6.662837 -9.681633 -v 17.983040 6.662837 -11.152293 -v 21.007219 3.249419 -9.869397 -v 20.477345 3.637633 -7.988389 -v 23.650299 1.840257 -8.010921 -v 22.595039 2.320421 -6.663224 -v 25.636337 1.698787 -6.579282 -v 24.421982 1.686574 -5.242180 -v 27.706768 2.015127 -4.583124 -v 26.100426 1.864140 -3.405339 -v 28.646168 2.885117 -3.198632 -v 26.333582 1.027800 -1.582581 -v 23.720354 0.966969 -4.569222 -v 21.278627 1.400611 -1.803334 -v 16.906103 5.316076 -1.586848 -v 18.888571 1.302237 -1.623599 -v 19.376360 2.471233 -7.869488 -v 21.060875 1.981712 -6.729387 -v 16.906103 5.316122 -8.994491 -v 6.683901 5.316105 -9.844049 -v 6.683901 5.315889 -1.586848 -v 18.681934 -1.983630 -11.338428 -v 19.400375 -3.691560 -11.374310 -v 16.633705 -3.074314 -12.192126 -v 17.373505 -5.228647 -12.646860 -v 14.621896 -3.523885 -13.566364 -v 15.075657 -6.222204 -13.865580 -v 12.411800 -6.757924 -14.212804 -v 12.255808 -3.514410 -13.771845 -v 7.603565 -3.490891 -14.606509 -v 7.603565 -7.188782 -14.846800 -v 2.420745 -3.480093 -14.919241 -v 2.420745 -7.173941 -15.276383 -v -2.961988 -3.473636 -15.106121 -v -2.943282 -7.166555 -15.589163 -v -4.439586 -3.475051 -15.065130 -v -6.464514 -3.472743 -15.131924 -v -6.862593 -7.149532 -15.766785 -v -8.018665 -3.474161 -15.090826 -v -9.989845 -3.475893 -15.040714 -v -10.703051 -7.164166 -15.766442 -v -11.494260 -3.481347 -14.882881 -v -17.426210 -3.476307 -15.028784 -v -17.426210 -7.163010 -15.619746 -v -21.158424 -3.491715 -14.582708 -v -21.158424 -7.158087 -15.411015 -v -24.875282 -3.502623 -14.266861 -v -24.875282 -7.172729 -15.149325 -v 18.104813 -0.132791 -11.438385 -v 17.807384 1.818409 -11.514686 -v 16.016308 -0.209789 -12.214762 -v 15.502045 1.959264 -11.977353 -v 17.344368 4.240352 -11.840204 -v 15.252133 4.364689 -12.089524 -v 13.673447 2.077692 -12.471821 -v 14.041731 -0.091286 -13.220635 -v 11.917332 -0.092658 -13.622351 -v 11.917332 3.738120 -12.682102 -v 13.062292 3.738120 -12.646502 -v 13.062292 4.818222 -12.265154 -v 13.062292 4.882016 -13.297487 -v 13.062292 3.738120 -13.693560 -v 6.935244 4.838787 -12.860477 -v 6.935244 4.877757 -13.657490 -v 11.917332 3.738120 -13.693560 -v 10.851164 3.738120 -13.693560 -v 10.851164 -0.092025 -13.680202 -v 10.851164 3.738120 -13.099374 -v 9.059711 3.738120 -13.247311 -v 9.059711 -0.082416 -13.958302 -v 9.059711 3.738120 -13.693560 -v 7.942212 -0.088027 -13.795906 -v 7.942212 3.738120 -13.693560 -v 7.942212 3.738120 -12.994835 -v 6.935244 3.738120 -12.932455 -v 6.935244 3.738120 -13.693585 -v 2.420745 1.569107 -13.480452 -v 2.420745 -0.081102 -13.996309 -v 2.420745 3.221424 -12.616695 -v -1.886394 3.221424 -12.694532 -v -1.898796 1.579293 -13.775311 -v -1.898796 -0.093726 -14.123177 -v -2.961988 -0.093726 -14.123177 -v -2.961988 -0.093726 -15.846119 -v -4.439586 -0.093726 -15.846119 -v -6.464514 -0.093726 -15.846119 -v -8.018665 -0.093726 -15.846119 -v -9.989845 -0.093726 -15.846119 -v -11.494260 -0.093726 -15.846119 -v -6.464514 -0.093726 -14.123177 -v -4.439586 -0.093726 -14.123177 -v -8.018665 -0.093726 -14.123177 -v -9.989845 -0.093726 -14.123177 -v -11.494260 -0.093726 -14.123177 -v -12.515305 -0.093726 -14.123177 -v -12.515305 1.643136 -15.278696 -v -12.515305 -0.093726 -15.846119 -v -8.522958 3.221424 -12.703880 -v -12.515305 1.580878 -13.821227 -v -10.136595 4.386232 -12.483255 -v -12.771408 4.612774 -12.141369 -v -13.215079 9.087099 -12.333536 -v -1.898796 1.623528 -15.278696 -v -1.898796 -0.093726 -15.846119 -v -8.976471 1.636600 -15.278696 -v -5.437628 1.630064 -15.278696 -v -17.426210 -0.085238 -13.876673 -v -17.327192 1.568238 -13.455286 -v -18.602346 1.558287 -13.167220 -v -20.301380 1.560132 -13.220694 -v -21.158424 -0.093337 -13.642082 -v -21.564625 1.545988 -12.811226 -v -24.875282 1.535080 -12.495492 -v -24.875282 -0.115279 -13.006975 -v -17.327192 5.420457 -13.195373 -v -18.602346 5.420457 -13.195373 -v -16.144386 5.420457 -13.195373 -v -16.144386 6.964816 -13.345592 -v -20.301380 5.420457 -13.195373 -v -21.564625 5.420457 -13.195373 -v -16.144386 5.420457 -11.781666 -v -17.327192 5.420457 -11.781666 -v -16.144386 6.916856 -11.957180 -v -18.602346 5.420457 -11.781666 -v -20.301380 5.420457 -11.781666 -v -19.419006 9.058252 -11.675020 -v -22.943232 6.914290 -11.882894 -v -20.785156 10.432585 -11.266025 -v -22.943232 6.953562 -13.019781 -v -22.943232 5.420457 -11.781666 -v -22.943232 5.420457 -13.195373 -v -21.564625 5.420457 -11.781666 -v -24.875282 11.097299 -11.310978 -v -22.073826 12.809116 -11.031629 -v -30.324631 13.255548 -10.468728 -v -30.663502 11.097299 -10.697601 -v -22.617615 13.859209 -11.521384 -v -30.036606 14.678006 -10.958575 -v -22.549631 13.892679 -9.395622 -v -32.024277 15.183992 -8.240927 -v -33.987694 15.764829 -10.182573 -v -33.718784 15.003299 -10.658934 -v -33.772961 13.609431 -10.011785 -v -33.887344 11.097299 -10.130578 -v -32.866196 16.196304 -7.754097 -v -34.301479 16.149021 -7.782318 -v -33.522549 19.528704 -4.747104 -v -35.090012 19.437290 -4.864941 -v -34.027481 21.557823 -2.963631 -v -35.784195 21.577259 -2.965577 -v -34.225647 22.404272 -1.238075 -v -36.012775 22.438992 -1.238075 -v -35.525314 19.202272 -2.929065 -v -34.960712 15.855540 -2.964757 -v -34.620663 13.597372 -2.965675 -v -34.500881 12.321301 -2.967943 -v -33.643600 11.097299 -7.760621 -v -33.745373 13.603200 -7.767865 -v -29.725348 1.534853 -12.693987 -v -29.951672 -0.553082 -12.838999 -v -29.089066 -2.256183 -13.223326 -v -29.440445 -3.531864 -13.420376 -v -30.977203 -3.573457 -13.137188 -v -26.469778 9.078413 -12.638399 -v -30.376698 9.078413 -12.195282 -v -34.513470 9.078413 -11.671916 -v -35.326443 9.078413 -8.519265 -v -36.337158 10.302411 -4.204359 -v -38.226944 8.378810 -4.931240 -v -37.265987 7.154811 -10.030826 -v -36.054546 7.154811 -15.249533 -v -31.044762 7.154811 -15.397676 -v -28.175797 7.154811 -15.624508 -v -28.182747 3.357670 -15.498522 -v -26.515152 1.792719 -14.466270 -v -30.193434 1.779966 -14.420488 -v -31.038305 3.357670 -15.387860 -v -35.530365 3.357670 -15.019470 -v -36.705807 3.357670 -10.029904 -v -37.666824 4.581672 -4.931256 -v -36.700283 3.003968 -2.860110 -v -36.408623 3.003968 -4.518372 -v -35.959934 1.779966 -7.527570 -v -35.191723 1.779966 -9.285604 -v -34.204334 1.779966 -14.226349 -v -30.329147 -0.633617 -13.908249 -v -32.748100 -0.633628 -13.436047 -v -29.538437 -2.280977 -14.046997 -v -30.527657 -3.185613 -13.899263 -v -29.785950 -3.192493 -13.980194 -v -33.089638 -0.885639 -12.303194 -v -32.122818 1.776985 -11.058003 -v -32.122818 1.776985 -9.285594 -v -32.122746 -0.633664 -9.285579 -v -32.122688 -0.633649 -11.458102 -v -34.248096 -0.633676 -7.527580 -v -34.194592 -0.633673 -9.285544 -v -32.122818 1.776985 -7.526671 -v -32.122818 3.000987 -4.518517 -v -32.122795 0.590334 -4.518468 -v -32.122761 -0.633678 -7.527228 -v -34.417446 0.590306 -2.860096 -v -33.900768 0.590325 -4.518118 -v -34.639442 1.779966 -11.836490 -v -32.122818 3.000965 -2.859260 -v -32.122826 0.590387 -2.859397 -v -31.478973 12.189011 -7.300096 -v -23.230810 12.189157 -8.507561 -v -23.230810 12.189054 -5.906754 -v -19.385841 7.391684 -8.968118 -v -19.385841 7.391382 -6.580861 -v -21.167429 7.390899 -6.153070 -v -13.892597 7.391925 -9.847868 -v -14.133162 7.391512 -7.171891 -v -21.997017 12.885773 -9.282518 -v -20.622669 10.264604 -9.549243 -v -19.292164 9.097214 -9.702837 -v -13.192261 9.087229 -10.726978 -v -10.064362 4.446222 -10.991236 -v -8.351521 3.221424 -11.058840 -v -1.598226 3.221424 -11.134462 -v 2.452951 3.221424 -10.998412 -v 4.422665 4.063653 -12.498808 -v 4.365315 4.001073 -10.953445 -v 5.533552 6.171984 -12.384296 -v 5.530656 6.149844 -10.682220 -v 7.977384 6.662837 -10.348160 -v 7.360672 6.662837 -12.189878 -v 12.972380 6.662837 -11.684002 -v 15.594139 6.662837 -11.461397 -v -9.777788 1.447089 -10.415768 -v -9.777788 1.447089 -7.505733 -v -12.005382 1.447089 -7.353243 -v -1.881737 1.447089 -10.419345 -v 3.275857 1.447089 -10.142793 -v 3.275857 1.447089 -1.586848 -v 5.568399 1.447089 -10.053401 -v 5.568399 1.447089 -1.586848 -v 21.363655 1.139118 -5.173973 -v -24.875282 -16.438957 -5.023836 -v -21.158424 -16.432545 -5.456006 -v -17.426210 -16.414181 -5.591547 -v -10.703051 -16.404001 -5.960669 -v -6.862593 -16.404274 -6.041844 -v -2.943282 -16.405006 -6.357064 -v 2.420745 -16.404470 -6.357064 -v 7.603565 -16.380497 -6.357064 -v 12.832268 -15.500710 -6.259944 -v 16.321648 -13.597433 -5.927067 -v 18.157881 -11.652975 -5.318019 -v 20.729614 -7.361181 -4.084560 -v -24.875282 -15.191301 -8.889921 -v -21.158424 -15.188612 -9.238050 -v -17.426210 -15.185617 -9.648746 -v -10.703051 -15.151535 -9.959948 -v -6.862593 -15.148084 -10.122597 -v -2.943282 -15.161076 -10.404315 -v 2.420745 -15.136637 -10.490346 -v 7.603565 -15.139988 -10.384273 -v 12.742552 -13.635256 -10.271313 -v 16.052504 -12.004322 -9.672956 -v 17.738865 -10.274949 -8.849628 -v 20.423779 -6.674508 -7.563237 -v -24.875282 -13.559512 -12.869038 -v -21.158424 -13.563975 -12.793823 -v -17.426210 -13.564394 -13.015837 -v -10.703051 -13.542574 -13.359402 -v -6.862593 -13.538811 -13.468325 -v -2.943282 -13.548689 -13.506525 -v 2.420745 -13.559494 -13.319569 -v 7.603565 -13.121067 -12.955379 -v 12.651917 -11.750661 -12.163342 -v 15.776398 -10.370003 -11.428668 -v 17.823387 -8.626553 -10.201316 -v 20.243277 -5.812185 -8.599287 -v -24.875282 -10.610699 -14.971485 -v -21.158424 -10.603826 -15.170494 -v -17.426210 -10.616206 -15.433119 -v -10.703051 -10.590498 -15.556311 -v -6.862593 -10.586885 -15.660851 -v -2.943282 -10.611682 -15.249158 -v 2.420745 -10.615954 -14.819395 -v 7.603565 -10.423251 -14.270162 -v 12.555428 -9.744363 -13.830376 -v 15.481684 -8.625530 -13.248377 -v 17.762831 -6.967863 -11.940372 -v 19.731392 -4.773400 -10.782165 -v -0.566015 27.749599 22.499998 -v -0.341015 27.749599 18.749996 -v 0.033985 27.749599 0.000000 -v -0.609948 27.840916 22.499998 -v -0.450849 27.977892 18.749996 -v -0.185685 28.206188 0.000000 -v -0.716015 27.878740 22.499998 -v -0.716015 28.072454 18.749996 -v -0.716015 28.395309 0.000000 -v -0.822080 27.840916 22.499998 -v -0.981179 27.977892 18.749996 -v -1.246344 28.206188 0.000000 -v -0.866014 27.749599 22.499998 -v -1.091015 27.749599 18.749996 -v -1.466015 27.749599 0.000000 -v -0.822080 27.658281 22.499998 -v -0.981179 27.521307 18.749996 -v -1.246344 27.293011 0.000000 -v -0.716015 27.620457 22.499998 -v -0.716015 27.426743 18.749996 -v -0.629040 27.103886 0.000000 -v -0.609948 27.658281 22.499998 -v -0.450849 27.521307 18.749996 -v -0.185685 27.293011 0.000000 -v -0.028515 27.749599 3.124998 -v -0.091014 27.749599 6.249998 -v -0.153515 27.749599 9.374997 -v -0.216015 27.749599 12.499996 -v -0.278514 27.749599 15.624996 -v -0.229878 27.331060 3.124998 -v -0.274072 27.369110 6.249998 -v -0.318267 27.407154 9.374997 -v -0.362462 27.445206 12.499996 -v -0.406654 27.483257 15.624996 -v 0.774985 25.158726 18.494785 -v 2.349486 25.376209 15.522077 -v 2.411985 25.523190 12.499996 -v 2.474485 25.523190 9.374997 -v 2.536986 25.523190 6.249998 -v 2.599485 25.523190 3.124998 -v 2.661985 25.523190 0.000000 -v 4.919668 22.289122 12.150613 -v 4.982167 22.515976 9.184464 -v 5.044668 22.800421 6.258644 -v 5.107168 22.800417 3.133644 -v 5.169741 22.800392 0.000000 -v 6.853204 19.809378 6.116760 -v 7.224073 20.021494 3.140291 -v 7.286703 20.021448 0.000000 -v 1.446666 21.829916 18.079060 -v 3.021168 22.067556 15.120463 -v 1.779205 18.367237 17.606915 -v 4.073708 18.633253 14.668193 -v 5.324208 18.882090 11.717439 -v 6.173600 19.237459 8.841279 -v 1.779205 14.151859 16.952080 -v 4.073708 14.472324 14.051481 -v 6.008208 14.914806 11.236322 -v 7.006708 15.599648 8.590876 -v 7.753209 16.206085 5.890527 -v 8.093493 16.741280 3.140291 -v 7.878340 16.741234 0.000000 -v 0.519207 9.711632 16.052975 -v 2.813706 9.944913 13.395174 -v 4.532208 11.295698 10.912201 -v 5.638709 12.572056 8.312004 -v 5.953207 13.221888 5.642037 -v 6.293493 13.555683 2.924403 -v 6.510341 13.584993 0.000000 -v -1.712795 4.539915 14.229296 -v 0.005706 6.721300 12.935635 -v 1.796206 8.238514 10.569201 -v 3.514707 9.596653 8.026267 -v 4.153206 10.297425 5.391975 -v 4.215707 10.666860 2.699292 -v 4.278336 10.920532 -0.034037 -v 4.317936 22.048738 12.150613 -v 4.380435 22.275593 9.184464 -v 1.810253 25.282806 12.499996 -v 4.442935 22.560038 6.258644 -v 1.935254 25.282806 6.249998 -v 1.872753 25.282806 9.374997 -v 4.505436 22.560034 3.133644 -v 1.997753 25.282806 3.124998 -v 4.568008 22.560009 0.000000 -v 2.060253 25.282806 0.000000 -v 6.251471 19.568995 6.116760 -v 6.622341 19.781109 3.140291 -v 6.684969 19.781065 0.000000 -v 1.747754 25.135826 15.522077 -v 2.419436 21.827173 15.120463 -v 3.471975 18.392870 14.668193 -v 4.722476 18.641706 11.717439 -v 5.571867 18.997076 8.841279 -v 3.471975 14.231941 14.051481 -v 5.406476 14.674421 11.236322 -v 6.404974 15.359264 8.590876 -v 7.151477 15.965701 5.890527 -v 7.491759 16.500896 3.140291 -v 7.276607 16.500849 0.000000 -v 2.211973 9.704529 13.395174 -v 3.930475 11.055314 10.912201 -v 5.036976 12.331673 8.312004 -v 5.351475 12.981504 5.642037 -v 5.691761 13.315300 2.924403 -v 5.908608 13.344610 0.000000 -v -0.450849 27.977892 -18.749996 -v -0.609948 27.840916 -22.499998 -v -0.566015 27.749599 -22.499998 -v -0.341015 27.749599 -18.749996 -v -0.216015 27.749599 -12.499996 -v -0.153515 27.749599 -9.374997 -v -0.091014 27.749599 -6.249998 -v -0.028515 27.749599 -3.124998 -v -0.278514 27.749599 -15.624996 -v -0.716015 28.072454 -18.749996 -v -0.716015 27.878740 -22.499998 -v -0.981179 27.977892 -18.749996 -v -0.822080 27.840916 -22.499998 -v -1.091015 27.749599 -18.749996 -v -0.866014 27.749599 -22.499998 -v -0.981179 27.521307 -18.749996 -v -0.822080 27.658281 -22.499998 -v -0.716015 27.426743 -18.749996 -v -0.716015 27.620457 -22.499998 -v -0.450849 27.521307 -18.749996 -v -0.609948 27.658281 -22.499998 -v -0.229878 27.331060 -3.124998 -v -0.274072 27.369110 -6.249998 -v -0.318267 27.407154 -9.374997 -v -0.362462 27.445206 -12.499996 -v -0.406654 27.483257 -15.624996 -v 2.349486 25.376209 -15.522077 -v 2.411985 25.523190 -12.499996 -v 2.474485 25.523190 -9.374997 -v 2.536986 25.523190 -6.249998 -v 2.599485 25.523190 -3.124998 -v 4.919668 22.289122 -12.150613 -v 4.982167 22.515976 -9.184464 -v 5.044668 22.800421 -6.258644 -v 5.107168 22.800417 -3.133644 -v 6.853204 19.809378 -6.116760 -v 7.224073 20.021494 -3.140291 -v 0.774985 25.158726 -18.494785 -v 1.446666 21.829916 -18.079060 -v 3.021168 22.067556 -15.120463 -v 1.779205 18.367237 -17.606915 -v 4.073708 18.633253 -14.668193 -v 5.324208 18.882090 -11.717439 -v 6.173600 19.237459 -8.841279 -v 1.779205 14.151859 -16.952080 -v 4.073708 14.472324 -14.051481 -v 6.008208 14.914806 -11.236322 -v 7.006708 15.599648 -8.590876 -v 7.753209 16.206085 -5.890527 -v 8.093493 16.741280 -3.140291 -v 0.519207 9.711632 -16.052975 -v 2.813706 9.944913 -13.395174 -v 4.532208 11.295698 -10.912201 -v 5.638709 12.572056 -8.312004 -v 5.953207 13.221888 -5.642037 -v 6.293493 13.555683 -2.924403 -v -1.712795 4.539915 -14.229296 -v 0.005706 6.721300 -12.935635 -v 1.796206 8.238514 -10.569201 -v 3.514707 9.596653 -8.026267 -v 4.153206 10.297425 -5.391975 -v 4.215707 10.666860 -2.699292 -v 1.810253 25.282806 -12.499996 -v 4.380435 22.275593 -9.184464 -v 4.317936 22.048738 -12.150613 -v 1.872753 25.282806 -9.374997 -v 1.935254 25.282806 -6.249998 -v 4.442935 22.560038 -6.258644 -v 1.997753 25.282806 -3.124998 -v 4.505436 22.560034 -3.133644 -v 6.622341 19.781109 -3.140291 -v 6.251471 19.568995 -6.116760 -v 1.747754 25.135826 -15.522077 -v 2.419436 21.827173 -15.120463 -v 3.471975 18.392870 -14.668193 -v 4.722476 18.641706 -11.717439 -v 5.571867 18.997076 -8.841279 -v 3.471975 14.231941 -14.051481 -v 5.406476 14.674421 -11.236322 -v 6.404974 15.359264 -8.590876 -v 7.151477 15.965701 -5.890527 -v 7.491759 16.500896 -3.140291 -v 2.211973 9.704529 -13.395174 -v 3.930475 11.055314 -10.912201 -v 5.036976 12.331673 -8.312004 -v 5.351475 12.981504 -5.642037 -v 5.691761 13.315300 -2.924403 -v -0.441215 47.520119 0.000000 -v -0.816215 47.520119 -14.015965 -v -1.041214 47.520119 -16.818804 -v -0.660885 47.900337 0.000000 -v -0.926051 47.710224 -14.015965 -v -1.085148 47.596161 -16.818804 -v -1.191215 48.057846 0.000000 -v -1.191215 47.788982 -14.015965 -v -1.191215 47.627666 -16.818804 -v -1.721544 47.900337 0.000000 -v -1.456378 47.710224 -14.015965 -v -1.297281 47.596161 -16.818804 -v -1.941214 47.520119 0.000000 -v -1.566214 47.520119 -14.015965 -v -1.341214 47.520119 -16.818804 -v -1.721544 47.139870 0.000000 -v -1.456378 47.330002 -14.015965 -v -1.297281 47.444061 -16.818804 -v -1.147212 46.982380 0.000000 -v -1.147212 47.251244 -14.015965 -v -1.191215 47.412563 -16.818804 -v -0.660885 47.139870 0.000000 -v -0.926051 47.330002 -14.015965 -v -1.085148 47.444061 -16.818804 -v -0.881855 47.298306 -11.680260 -v -0.837662 47.266632 -9.344559 -v -0.793467 47.234909 -7.008858 -v -0.749272 47.203262 -4.673156 -v -0.705079 47.171555 -2.337453 -v -0.753716 47.520119 -11.680260 -v -0.691215 47.520119 -9.344559 -v -0.628715 47.520119 -7.008858 -v -0.566216 47.520119 -4.673156 -v -0.503715 47.520119 -2.337453 -v 2.186784 45.666019 0.000000 -v 2.124283 45.666019 -2.337453 -v 2.061785 45.666019 -4.673156 -v 1.999284 45.666019 -7.008858 -v 1.936783 45.666019 -9.344559 -v 1.874285 45.580280 -11.580549 -v 0.299784 45.386532 -13.903419 -v 4.694541 43.398529 0.000000 -v 4.631968 43.398544 -2.343915 -v 4.569468 43.403488 -4.796154 -v 4.506968 43.190250 -7.144563 -v 3.544468 42.994743 -9.666407 -v 2.545968 42.799408 -11.660814 -v 0.971465 42.588673 -13.968838 -v 6.503135 41.087234 0.000000 -v 6.440504 41.095375 -2.609166 -v 6.378005 40.956799 -5.189175 -v 5.650746 40.443047 -7.502493 -v 4.926439 40.128944 -9.945014 -v 3.598507 39.908993 -11.913838 -v 1.304004 39.676033 -14.292400 -v 7.403139 38.374527 0.000000 -v 7.340509 38.387520 -3.171366 -v 7.278009 37.949181 -5.513334 -v 6.531507 37.409622 -7.948401 -v 5.533008 36.794739 -10.264465 -v 3.598507 36.403469 -12.462982 -v 1.304004 36.126175 -14.981808 -v 6.035139 35.763321 0.000000 -v 5.972509 35.771698 -3.283163 -v 5.910010 35.459286 -5.936440 -v 5.847510 34.875942 -8.256088 -v 4.057008 33.780102 -10.944506 -v 2.338505 32.605881 -13.808851 -v 0.044005 32.376560 -16.380838 -v 3.803136 33.562889 0.000000 -v 3.740506 33.359436 -3.333341 -v 3.678006 33.020260 -6.361779 -v 3.039505 32.401882 -8.960025 -v 1.321005 31.238838 -11.792484 -v -0.181494 29.931759 -14.732271 -v -2.187994 28.006685 -18.449085 -v 4.086603 43.218376 0.000000 -v 4.024032 43.218391 -2.343915 -v 1.516346 45.485867 -2.337453 -v 1.578847 45.485867 0.000000 -v 3.961532 43.223335 -4.796154 -v 1.453848 45.485867 -4.673156 -v 3.899031 43.010098 -7.144563 -v 1.391347 45.485867 -7.008858 -v 1.328846 45.485867 -9.344559 -v 2.936531 42.814590 -9.666407 -v 1.266348 45.400127 -11.580549 -v 1.938032 42.619255 -11.660814 -v 5.895196 40.907082 0.000000 -v 5.832567 40.915222 -2.609166 -v 5.770068 40.776646 -5.189175 -v 5.042808 40.262894 -7.502493 -v 4.318501 39.948792 -9.945014 -v 2.990570 39.728840 -11.913838 -v 6.795203 38.194374 0.000000 -v 6.732572 38.207367 -3.171366 -v 6.670071 37.769028 -5.513334 -v 5.923571 37.229469 -7.948401 -v 4.925072 36.614586 -10.264465 -v 2.990570 36.223316 -12.462982 -v 5.427201 35.583168 0.000000 -v 5.364572 35.591545 -3.283163 -v 5.302073 35.279133 -5.936440 -v 5.239572 34.695789 -8.256088 -v 3.449071 33.599949 -10.944506 -v 1.730568 32.425728 -13.808851 -v -0.566216 47.520119 4.673156 -v -0.628715 47.520119 7.008858 -v -0.691215 47.520119 9.344559 -v -0.753716 47.520119 11.680260 -v -0.816215 47.520119 14.015965 -v -0.926051 47.710224 14.015965 -v -0.503715 47.520119 2.337453 -v -1.085148 47.596161 16.818804 -v -1.041214 47.520119 16.818804 -v -1.191215 47.788982 14.015965 -v -1.191215 47.627666 16.818804 -v -1.456378 47.710224 14.015965 -v -1.297281 47.596161 16.818804 -v -1.566214 47.520119 14.015965 -v -1.341214 47.520119 16.818804 -v -1.456378 47.330002 14.015965 -v -1.297281 47.444061 16.818804 -v -1.147212 47.251244 14.015965 -v -1.191215 47.412563 16.818804 -v -0.926051 47.330002 14.015965 -v -0.881855 47.298306 11.680260 -v -0.837662 47.266632 9.344559 -v -0.793467 47.234909 7.008858 -v -0.749272 47.203262 4.673156 -v -0.705079 47.171555 2.337453 -v -1.085148 47.444061 16.818804 -v 2.124283 45.666019 2.337453 -v 2.061785 45.666019 4.673156 -v 1.999284 45.666019 7.008858 -v 1.936783 45.666019 9.344559 -v 1.874285 45.580280 11.580549 -v 0.299784 45.386532 13.903419 -v 4.631968 43.398544 2.343915 -v 4.569468 43.403488 4.796154 -v 4.506968 43.190250 7.144563 -v 3.544468 42.994743 9.666407 -v 2.545968 42.799408 11.660814 -v 0.971465 42.588673 13.968838 -v 6.440504 41.095375 2.609166 -v 6.378005 40.956799 5.189175 -v 5.650746 40.443047 7.502493 -v 4.926439 40.128944 9.945014 -v 3.598507 39.908993 11.913838 -v 1.304004 39.676033 14.292400 -v 7.340509 38.387520 3.171366 -v 7.278009 37.949181 5.513334 -v 6.531507 37.409622 7.948401 -v 5.533008 36.794739 10.264465 -v 3.598507 36.403469 12.462982 -v 1.304004 36.126175 14.981808 -v 5.972509 35.771698 3.283163 -v 5.910010 35.459286 5.936440 -v 5.847510 34.875942 8.256088 -v 4.057008 33.780102 10.944506 -v 2.338505 32.605881 13.808851 -v 0.044005 32.376560 16.380838 -v 3.740506 33.359436 3.333341 -v 3.678006 33.020260 6.361779 -v 3.039505 32.401882 8.960025 -v 1.321005 31.238838 11.792484 -v -0.181494 29.931759 14.732271 -v -2.187994 28.006685 18.449085 -v 1.516346 45.485867 2.337453 -v 4.024032 43.218391 2.343915 -v 1.453848 45.485867 4.673156 -v 3.961532 43.223335 4.796154 -v 1.391347 45.485867 7.008858 -v 3.899031 43.010098 7.144563 -v 1.328846 45.485867 9.344559 -v 1.266348 45.400127 11.580549 -v 2.936531 42.814590 9.666407 -v 1.938032 42.619255 11.660814 -v 5.832567 40.915222 2.609166 -v 5.770068 40.776646 5.189175 -v 5.042808 40.262894 7.502493 -v 2.990570 39.728840 11.913838 -v 4.318501 39.948792 9.945014 -v 6.732572 38.207367 3.171366 -v 6.670071 37.769028 5.513334 -v 5.923571 37.229469 7.948401 -v 4.925072 36.614586 10.264465 -v 2.990570 36.223316 12.462982 -v 5.364572 35.591545 3.283163 -v 5.302073 35.279133 5.936440 -v 5.239572 34.695789 8.256088 -v 3.449071 33.599949 10.944506 -v 1.730568 32.425728 13.808851 -v 15.199894 24.244293 20.208620 -v 15.396472 24.244293 16.840515 -v 15.724104 24.244293 0.000000 -v 15.161510 24.324074 20.208620 -v 15.300512 24.443750 16.840515 -v 15.532181 24.643208 0.000000 -v 15.068842 24.357121 20.208620 -v 15.068842 24.526367 16.840515 -v 15.068842 24.808439 0.000000 -v 14.976175 24.324074 20.208620 -v 14.837173 24.443750 16.840515 -v 14.605503 24.643208 0.000000 -v 14.937790 24.244293 20.208620 -v 14.741212 24.244293 16.840515 -v 14.413582 24.244293 0.000000 -v 14.976175 24.164513 20.208620 -v 14.837173 24.044842 16.840515 -v 14.605503 23.845383 0.000000 -v 15.068842 24.131464 20.208620 -v 15.068842 23.962219 16.840515 -v 15.144831 23.680147 0.000000 -v 15.161510 24.164513 20.208620 -v 15.300512 24.044842 16.840515 -v 15.532181 23.845383 0.000000 -v 15.669498 24.244293 2.806750 -v 15.614893 24.244293 5.613504 -v 15.560287 24.244293 8.420256 -v 15.505682 24.244293 11.227010 -v 15.451077 24.244293 14.033761 -v 15.493570 23.878626 2.806750 -v 15.454958 23.911867 5.613504 -v 15.416346 23.945107 8.420256 -v 15.377735 23.978352 11.227010 -v 15.339125 24.011599 14.033761 -v 16.371500 21.980698 16.611292 -v 17.747112 22.170710 13.941322 -v 17.801716 22.299122 11.227010 -v 17.856321 22.299122 8.420256 -v 17.910927 22.299122 5.613504 -v 17.965530 22.299122 2.806750 -v 18.020136 22.299122 0.000000 -v 19.992630 19.473579 10.913207 -v 20.047235 19.671778 8.249126 -v 20.101841 19.920292 5.621270 -v 20.156446 19.920288 2.814516 -v 20.211115 19.920267 0.000000 -v 21.681923 17.307076 5.493834 -v 22.005945 17.492397 2.820486 -v 22.060665 17.492359 0.000000 -v 16.958334 19.072380 16.237904 -v 18.333946 19.280003 13.580609 -v 17.248869 16.047104 15.813843 -v 19.253532 16.279516 13.174398 -v 20.346069 16.496920 10.524145 -v 21.088167 16.807402 7.940892 -v 17.248869 12.364210 15.225695 -v 19.253532 12.644194 12.620491 -v 20.943666 13.030781 10.092027 -v 21.816038 13.629114 7.715988 -v 22.468241 14.158947 5.290641 -v 22.765541 14.626535 2.820486 -v 22.577564 14.626495 0.000000 -v 16.148031 8.484867 14.418156 -v 18.152691 8.688681 12.031022 -v 19.654114 9.868836 9.800913 -v 20.620842 10.983964 7.465518 -v 20.895615 11.551710 5.067457 -v 21.192915 11.843342 2.626584 -v 21.382370 11.868950 0.000000 -v 14.197975 3.966436 12.780198 -v 15.699396 5.872272 11.618281 -v 17.263721 7.197832 9.492843 -v 18.765144 8.384414 7.208880 -v 19.322987 8.996664 4.842861 -v 19.377592 9.319432 2.424399 -v 19.432312 9.541060 -0.030570 -v 19.466908 19.263561 10.913207 -v 19.521511 19.461760 8.249126 -v 17.275993 22.089104 11.227010 -v 19.576118 19.710272 5.621270 -v 17.385204 22.089104 5.613504 -v 17.330599 22.089104 8.420256 -v 19.630722 19.710270 2.814516 -v 17.439808 22.089104 2.806750 -v 19.685390 19.710247 0.000000 -v 17.494415 22.089104 0.000000 -v 21.156200 17.097057 5.493834 -v 21.480223 17.282379 2.820486 -v 21.534941 17.282339 0.000000 -v 17.221392 21.960691 13.941322 -v 17.808226 19.069984 13.580609 -v 18.727808 16.069500 13.174398 -v 19.820347 16.286903 10.524145 -v 20.562443 16.597382 7.940892 -v 18.727808 12.434175 12.620491 -v 20.417946 12.820762 10.092027 -v 21.290312 13.419096 7.715988 -v 21.942516 13.948927 5.290641 -v 22.239817 14.416519 2.820486 -v 22.051842 14.416475 0.000000 -v 17.626970 8.478662 12.031022 -v 19.128391 9.658816 9.800913 -v 20.095119 10.773947 7.465518 -v 20.369892 11.341692 5.067457 -v 20.667192 11.633322 2.626584 -v 20.856647 11.658932 0.000000 -v 15.300512 24.443750 -16.840515 -v 15.161510 24.324074 -20.208620 -v 15.199894 24.244293 -20.208620 -v 15.396472 24.244293 -16.840515 -v 15.505682 24.244293 -11.227010 -v 15.560287 24.244293 -8.420256 -v 15.614893 24.244293 -5.613504 -v 15.669498 24.244293 -2.806750 -v 15.451077 24.244293 -14.033761 -v 15.068842 24.526367 -16.840515 -v 15.068842 24.357121 -20.208620 -v 14.837173 24.443750 -16.840515 -v 14.976175 24.324074 -20.208620 -v 14.741212 24.244293 -16.840515 -v 14.937790 24.244293 -20.208620 -v 14.837173 24.044842 -16.840515 -v 14.976175 24.164513 -20.208620 -v 15.068842 23.962219 -16.840515 -v 15.068842 24.131464 -20.208620 -v 15.300512 24.044842 -16.840515 -v 15.161510 24.164513 -20.208620 -v 15.493570 23.878626 -2.806750 -v 15.454958 23.911867 -5.613504 -v 15.416346 23.945107 -8.420256 -v 15.377735 23.978352 -11.227010 -v 15.339125 24.011599 -14.033761 -v 17.747112 22.170710 -13.941322 -v 17.801716 22.299122 -11.227010 -v 17.856321 22.299122 -8.420256 -v 17.910927 22.299122 -5.613504 -v 17.965530 22.299122 -2.806750 -v 19.992630 19.473579 -10.913207 -v 20.047235 19.671778 -8.249126 -v 20.101841 19.920292 -5.621270 -v 20.156446 19.920288 -2.814516 -v 21.681923 17.307076 -5.493834 -v 22.005945 17.492397 -2.820486 -v 16.371500 21.980698 -16.611292 -v 16.958334 19.072380 -16.237904 -v 18.333946 19.280003 -13.580609 -v 17.248869 16.047104 -15.813843 -v 19.253532 16.279516 -13.174398 -v 20.346069 16.496920 -10.524145 -v 21.088167 16.807402 -7.940892 -v 17.248869 12.364210 -15.225695 -v 19.253532 12.644194 -12.620491 -v 20.943666 13.030781 -10.092027 -v 21.816038 13.629114 -7.715988 -v 22.468241 14.158947 -5.290641 -v 22.765541 14.626535 -2.820486 -v 16.148031 8.484867 -14.418156 -v 18.152691 8.688681 -12.031022 -v 19.654114 9.868836 -9.800913 -v 20.620842 10.983964 -7.465518 -v 20.895615 11.551710 -5.067457 -v 21.192915 11.843342 -2.626584 -v 14.197975 3.966436 -12.780198 -v 15.699396 5.872272 -11.618281 -v 17.263721 7.197832 -9.492843 -v 18.765144 8.384414 -7.208880 -v 19.322987 8.996664 -4.842861 -v 19.377592 9.319432 -2.424399 -v 17.275993 22.089104 -11.227010 -v 19.521511 19.461760 -8.249126 -v 19.466908 19.263561 -10.913207 -v 17.330599 22.089104 -8.420256 -v 17.385204 22.089104 -5.613504 -v 19.576118 19.710272 -5.621270 -v 17.439808 22.089104 -2.806750 -v 19.630722 19.710270 -2.814516 -v 21.480223 17.282379 -2.820486 -v 21.156200 17.097057 -5.493834 -v 17.221392 21.960691 -13.941322 -v 17.808226 19.069984 -13.580609 -v 18.727808 16.069500 -13.174398 -v 19.820347 16.286903 -10.524145 -v 20.562443 16.597382 -7.940892 -v 18.727808 12.434175 -12.620491 -v 20.417946 12.820762 -10.092027 -v 21.290312 13.419096 -7.715988 -v 21.942516 13.948927 -5.290641 -v 22.239817 14.416519 -2.820486 -v 17.626970 8.478662 -12.031022 -v 19.128391 9.658816 -9.800913 -v 20.095119 10.773947 -7.465518 -v 20.369892 11.341692 -5.067457 -v 20.667192 11.633322 -2.626584 -v 15.308929 41.517422 0.000000 -v 14.981298 41.517422 -12.588591 -v 14.784721 41.517422 -15.105992 -v 15.117007 41.849609 0.000000 -v 14.885338 41.683510 -12.588591 -v 14.746338 41.583855 -15.105992 -v 14.653669 41.987221 0.000000 -v 14.653669 41.752319 -12.588591 -v 14.653669 41.611382 -15.105992 -v 14.190331 41.849609 0.000000 -v 14.422001 41.683510 -12.588591 -v 14.561001 41.583855 -15.105992 -v 13.998409 41.517422 0.000000 -v 14.326038 41.517422 -12.588591 -v 14.522617 41.517422 -15.105992 -v 14.190331 41.185200 0.000000 -v 14.422001 41.351318 -12.588591 -v 14.561001 41.450974 -15.105992 -v 14.692114 41.047607 0.000000 -v 14.692114 41.282509 -12.588591 -v 14.653669 41.423450 -15.105992 -v 15.117007 41.185200 0.000000 -v 14.885338 41.351318 -12.588591 -v 14.746338 41.450974 -15.105992 -v 14.923951 41.323624 -10.490752 -v 14.962563 41.295952 -8.392917 -v 15.001173 41.268238 -6.295083 -v 15.039785 41.240585 -4.197246 -v 15.078396 41.212887 -2.099409 -v 15.035903 41.517422 -10.490752 -v 15.090508 41.517422 -8.392917 -v 15.145114 41.517422 -6.295083 -v 15.199718 41.517422 -4.197246 -v 15.254324 41.517422 -2.099409 -v 17.604961 39.897530 0.000000 -v 17.550356 39.897530 -2.099409 -v 17.495752 39.897530 -4.197246 -v 17.441147 39.897530 -6.295083 -v 17.386541 39.897530 -8.392917 -v 17.331936 39.822620 -10.401196 -v 15.956326 39.653347 -12.487507 -v 19.795940 37.916466 0.000000 -v 19.741272 37.916477 -2.105213 -v 19.686668 37.920795 -4.307718 -v 19.632061 37.734497 -6.416967 -v 18.791145 37.563686 -8.681988 -v 17.918774 37.393028 -10.473288 -v 16.543159 37.208908 -12.546264 -v 21.376074 35.897133 0.000000 -v 21.321356 35.904243 -2.343451 -v 21.266750 35.783173 -4.660714 -v 20.631359 35.334316 -6.738446 -v 19.998547 35.059895 -8.932222 -v 18.838356 34.867725 -10.700544 -v 16.833694 34.664192 -12.836876 -v 22.162392 33.527092 0.000000 -v 22.107674 33.538445 -2.848397 -v 22.053068 33.155472 -4.951861 -v 21.400864 32.684071 -7.138943 -v 20.528494 32.146858 -9.219141 -v 18.838356 31.805016 -11.193764 -v 16.833694 31.562752 -13.456076 -v 20.967196 31.245729 0.000000 -v 20.912479 31.253052 -2.948808 -v 20.857872 30.980101 -5.331879 -v 20.803268 30.470444 -7.415297 -v 19.238941 29.513027 -9.829927 -v 17.737516 28.487133 -12.402572 -v 15.732857 28.286781 -14.712629 -v 19.017138 29.323254 0.000000 -v 18.962420 29.145500 -2.993877 -v 18.907814 28.849167 -5.713902 -v 18.349968 28.308907 -8.047544 -v 16.848547 27.292774 -10.591549 -v 15.535843 26.150806 -13.231953 -v 13.782801 24.468904 -16.570248 -v 19.264797 37.759071 0.000000 -v 19.210129 37.759079 -2.105213 -v 17.019213 39.740131 -2.099409 -v 17.073820 39.740131 0.000000 -v 19.155525 37.763401 -4.307718 -v 16.964611 39.740131 -4.197246 -v 19.100918 37.577103 -6.416967 -v 16.910004 39.740131 -6.295083 -v 16.855398 39.740131 -8.392917 -v 18.260002 37.406288 -8.681988 -v 16.800793 39.665226 -10.401196 -v 17.387630 37.235630 -10.473288 -v 20.844931 35.739735 0.000000 -v 20.790213 35.746845 -2.343451 -v 20.735609 35.625778 -4.660714 -v 20.100216 35.176926 -6.738446 -v 19.467403 34.902496 -8.932222 -v 18.307213 34.710327 -10.700544 -v 21.631248 33.369698 0.000000 -v 21.576529 33.381050 -2.848397 -v 21.521923 32.998077 -4.951861 -v 20.869720 32.526680 -7.138943 -v 19.997353 31.989464 -9.219141 -v 18.307213 31.647621 -11.193764 -v 20.436052 31.088337 0.000000 -v 20.381334 31.095654 -2.948808 -v 20.326729 30.822704 -5.331879 -v 20.272125 30.313047 -7.415297 -v 18.707798 29.355633 -9.829927 -v 17.206375 28.329739 -12.402572 -v 15.199718 41.517422 4.197246 -v 15.145114 41.517422 6.295083 -v 15.090508 41.517422 8.392917 -v 15.035903 41.517422 10.490752 -v 14.981298 41.517422 12.588591 -v 14.885338 41.683510 12.588591 -v 15.254324 41.517422 2.099409 -v 14.746338 41.583855 15.105992 -v 14.784721 41.517422 15.105992 -v 14.653669 41.752319 12.588591 -v 14.653669 41.611382 15.105992 -v 14.422001 41.683510 12.588591 -v 14.561001 41.583855 15.105992 -v 14.326038 41.517422 12.588591 -v 14.522617 41.517422 15.105992 -v 14.422001 41.351318 12.588591 -v 14.561001 41.450974 15.105992 -v 14.692114 41.282509 12.588591 -v 14.653669 41.423450 15.105992 -v 14.885338 41.351318 12.588591 -v 14.923951 41.323624 10.490752 -v 14.962563 41.295952 8.392917 -v 15.001173 41.268238 6.295083 -v 15.039785 41.240585 4.197246 -v 15.078396 41.212887 2.099409 -v 14.746338 41.450974 15.105992 -v 17.550356 39.897530 2.099409 -v 17.495752 39.897530 4.197246 -v 17.441147 39.897530 6.295083 -v 17.386541 39.897530 8.392917 -v 17.331936 39.822620 10.401196 -v 15.956326 39.653347 12.487507 -v 19.741272 37.916477 2.105213 -v 19.686668 37.920795 4.307718 -v 19.632061 37.734497 6.416967 -v 18.791145 37.563686 8.681988 -v 17.918774 37.393028 10.473288 -v 16.543159 37.208908 12.546264 -v 21.321356 35.904243 2.343451 -v 21.266750 35.783173 4.660714 -v 20.631359 35.334316 6.738446 -v 19.998547 35.059895 8.932222 -v 18.838356 34.867725 10.700544 -v 16.833694 34.664192 12.836876 -v 22.107674 33.538445 2.848397 -v 22.053068 33.155472 4.951861 -v 21.400864 32.684071 7.138943 -v 20.528494 32.146858 9.219141 -v 18.838356 31.805016 11.193764 -v 16.833694 31.562752 13.456076 -v 20.912479 31.253052 2.948808 -v 20.857872 30.980101 5.331879 -v 20.803268 30.470444 7.415297 -v 19.238941 29.513027 9.829927 -v 17.737516 28.487133 12.402572 -v 15.732857 28.286781 14.712629 -v 18.962420 29.145500 2.993877 -v 18.907814 28.849167 5.713902 -v 18.349968 28.308907 8.047544 -v 16.848547 27.292774 10.591549 -v 15.535843 26.150806 13.231953 -v 13.782801 24.468904 16.570248 -v 17.019213 39.740131 2.099409 -v 19.210129 37.759079 2.105213 -v 16.964611 39.740131 4.197246 -v 19.155525 37.763401 4.307718 -v 16.910004 39.740131 6.295083 -v 19.100918 37.577103 6.416967 -v 16.855398 39.740131 8.392917 -v 16.800793 39.665226 10.401196 -v 18.260002 37.406288 8.681988 -v 17.387630 37.235630 10.473288 -v 20.790213 35.746845 2.343451 -v 20.735609 35.625778 4.660714 -v 20.100216 35.176926 6.738446 -v 18.307213 34.710327 10.700544 -v 19.467403 34.902496 8.932222 -v 21.576529 33.381050 2.848397 -v 21.521923 32.998077 4.951861 -v 20.869720 32.526680 7.138943 -v 19.997353 31.989464 9.219141 -v 18.307213 31.647621 11.193764 -v 20.381334 31.095654 2.948808 -v 20.326729 30.822704 5.331879 -v 20.272125 30.313047 7.415297 -v 18.707798 29.355633 9.829927 -v 17.206375 28.329739 12.402572 -v 37.183197 9.436539 12.125172 -v 36.948586 9.445372 14.550205 -v 36.915100 9.337111 14.550205 -v 37.099464 9.165879 12.125172 -v 37.201889 9.070754 8.083447 -v 37.253113 9.023188 6.062584 -v 37.304321 8.975623 4.041723 -v 37.355537 8.928061 2.020860 -v 37.406761 8.880497 0.000000 -v 37.574219 9.421815 0.000000 -v 37.150681 9.118316 10.104307 -v 37.037880 9.715820 12.125172 -v 36.890457 9.557086 14.550205 -v 37.283577 9.980377 0.000000 -v 36.748634 9.840131 12.125172 -v 36.774757 9.606809 14.550205 -v 36.705086 10.229001 0.000000 -v 36.484894 9.736646 12.125172 -v 36.669266 9.565416 14.550205 -v 36.177612 10.022031 0.000000 -v 36.401161 9.465988 12.125172 -v 36.635773 9.457152 14.550205 -v 36.010139 9.480717 0.000000 -v 36.546486 9.186706 12.125172 -v 36.693893 9.345439 14.550205 -v 36.372047 8.855958 0.000000 -v 36.835732 9.062397 12.125172 -v 36.809601 9.295714 14.550205 -v 36.879280 8.673531 0.000000 -v 36.872025 8.738340 2.020860 -v 36.864754 8.803152 4.041723 -v 36.857498 8.867962 6.062584 -v 36.850243 8.932775 8.083447 -v 36.842987 8.997587 10.104307 -v 37.233280 7.108510 10.037751 -v 37.335197 7.154058 8.083447 -v 37.367207 7.124331 6.062584 -v 37.399216 7.094601 4.041723 -v 37.431225 7.064876 2.020860 -v 37.463234 7.035147 0.000000 -v 37.081245 4.304998 7.857507 -v 37.221157 4.391452 5.939371 -v 37.388454 4.507402 4.047314 -v 37.420464 4.477671 2.026452 -v 37.452499 4.447899 0.000000 -v 36.892029 2.115348 3.955562 -v 37.182858 2.047582 2.030749 -v 37.214912 2.017770 0.000000 -v 36.323467 7.746022 11.960131 -v 35.084148 5.721714 11.691292 -v 36.003555 5.094525 9.778038 -v 33.607471 3.790157 11.385965 -v 34.909115 2.835039 9.485566 -v 35.667908 2.367693 7.577384 -v 36.271950 2.145690 5.717442 -v 31.602478 1.631277 10.962500 -v 32.930016 0.704046 9.086754 -v 34.131218 0.010538 7.266258 -v 34.968334 -0.113652 5.555511 -v 35.639095 -0.158133 3.809260 -v 36.067928 -0.045890 2.030749 -v 35.957718 0.056421 0.000000 -v 28.845230 -0.043453 10.381071 -v 30.131302 -1.015334 8.662334 -v 31.653908 -1.140924 7.056657 -v 32.827682 -1.013539 5.375172 -v 33.297836 -0.830322 3.648569 -v 33.630875 -0.821223 1.891142 -v 33.755875 -0.909353 0.000000 -v 25.242256 -1.630489 9.201742 -v 27.159927 -1.330692 8.365163 -v 28.798569 -1.405293 6.834847 -v 30.324669 -1.527117 5.190393 -v 30.984987 -1.471915 3.486860 -v 31.192715 -1.312438 1.745566 -v 31.345444 -1.212310 -0.022011 -v 36.912689 7.317153 8.083447 -v 36.798645 4.554550 5.939371 -v 36.658737 4.468093 7.857507 -v 36.944698 7.287426 6.062584 -v 36.976711 7.257699 4.041723 -v 36.965946 4.670499 4.047314 -v 37.008717 7.227970 2.020860 -v 36.997955 4.640769 2.026452 -v 37.040730 7.198245 0.000000 -v 37.029991 4.610995 0.000000 -v 36.760353 2.210679 2.030749 -v 36.469521 2.278445 3.955562 -v 36.792404 2.180868 0.000000 -v 36.810776 7.271606 10.037751 -v 35.581047 5.257621 9.778038 -v 34.486607 2.998137 9.485566 -v 35.245403 2.530790 7.577384 -v 35.849438 2.308786 5.717442 -v 32.507507 0.867143 9.086754 -v 33.708714 0.173633 7.266258 -v 34.545826 0.049446 5.555511 -v 35.216587 0.004963 3.809260 -v 35.645420 0.117208 2.030749 -v 35.535206 0.219519 0.000000 -v 29.708790 -0.852237 8.662334 -v 31.231400 -0.977827 7.056657 -v 32.405174 -0.850443 5.375172 -v 32.875324 -0.667224 3.648569 -v 33.208366 -0.658127 1.891142 -v 33.333366 -0.746256 0.000000 -v 37.099464 9.165879 -12.125172 -v 36.915100 9.337111 -14.550205 -v 36.948586 9.445372 -14.550205 -v 37.183197 9.436539 -12.125172 -v 37.150681 9.118316 -10.104307 -v 37.355537 8.928061 -2.020860 -v 37.304321 8.975623 -4.041723 -v 37.253113 9.023188 -6.062584 -v 37.201889 9.070754 -8.083447 -v 36.890457 9.557086 -14.550205 -v 37.037880 9.715820 -12.125172 -v 36.774757 9.606809 -14.550205 -v 36.748634 9.840131 -12.125172 -v 36.669266 9.565416 -14.550205 -v 36.484894 9.736646 -12.125172 -v 36.635773 9.457152 -14.550205 -v 36.401161 9.465988 -12.125172 -v 36.693893 9.345439 -14.550205 -v 36.546486 9.186706 -12.125172 -v 36.809601 9.295714 -14.550205 -v 36.835732 9.062397 -12.125172 -v 36.842987 8.997587 -10.104307 -v 36.850243 8.932775 -8.083447 -v 36.857498 8.867962 -6.062584 -v 36.864754 8.803152 -4.041723 -v 36.872025 8.738340 -2.020860 -v 37.233280 7.108510 -10.037751 -v 37.335197 7.154058 -8.083447 -v 37.367207 7.124331 -6.062584 -v 37.399216 7.094601 -4.041723 -v 37.431225 7.064876 -2.020860 -v 37.221157 4.391452 -5.939371 -v 37.081245 4.304998 -7.857507 -v 37.388454 4.507402 -4.047314 -v 37.420464 4.477671 -2.026452 -v 37.182858 2.047582 -2.030749 -v 36.892029 2.115348 -3.955562 -v 36.323467 7.746022 -11.960131 -v 36.003555 5.094525 -9.778038 -v 35.084148 5.721714 -11.691292 -v 34.909115 2.835039 -9.485566 -v 33.607471 3.790157 -11.385965 -v 35.667908 2.367693 -7.577384 -v 36.271950 2.145690 -5.717442 -v 32.930016 0.704046 -9.086754 -v 31.602478 1.631277 -10.962500 -v 34.131218 0.010538 -7.266258 -v 34.968334 -0.113652 -5.555511 -v 35.639095 -0.158133 -3.809260 -v 36.067928 -0.045890 -2.030749 -v 30.131302 -1.015334 -8.662334 -v 28.845230 -0.043453 -10.381071 -v 31.653908 -1.140924 -7.056657 -v 32.827682 -1.013539 -5.375172 -v 33.297836 -0.830322 -3.648569 -v 33.630875 -0.821223 -1.891142 -v 27.159927 -1.330692 -8.365163 -v 25.242256 -1.630489 -9.201742 -v 28.798569 -1.405293 -6.834847 -v 30.324669 -1.527117 -5.190393 -v 30.984987 -1.471915 -3.486860 -v 31.192715 -1.312438 -1.745566 -v 36.658737 4.468093 -7.857507 -v 36.798645 4.554550 -5.939371 -v 36.912689 7.317153 -8.083447 -v 36.965946 4.670499 -4.047314 -v 36.976711 7.257699 -4.041723 -v 36.944698 7.287426 -6.062584 -v 36.997955 4.640769 -2.026452 -v 37.008717 7.227970 -2.020860 -v 36.469521 2.278445 -3.955562 -v 36.760353 2.210679 -2.030749 -v 36.810776 7.271606 -10.037751 -v 35.581047 5.257621 -9.778038 -v 34.486607 2.998137 -9.485566 -v 35.245403 2.530790 -7.577384 -v 35.849438 2.308786 -5.717442 -v 32.507507 0.867143 -9.086754 -v 33.708714 0.173633 -7.266258 -v 34.545826 0.049446 -5.555511 -v 35.216587 0.004963 -3.809260 -v 35.645420 0.117208 -2.030749 -v 29.708790 -0.852237 -8.662334 -v 31.231400 -0.977827 -7.056657 -v 32.405174 -0.850443 -5.375172 -v 32.875324 -0.667224 -3.648569 -v 33.208366 -0.658127 -1.891142 -v -25.342682 39.050133 12.631252 -v -26.800455 41.402733 15.170297 -v -26.837248 41.324783 15.223574 -v -25.434660 38.855247 12.764452 -v -17.744377 26.753054 0.677289 -v -17.560419 27.142822 0.410891 -v -9.376750 14.896337 -11.201438 -v -9.284773 15.091215 -11.334633 -v -7.530965 12.652036 -13.588774 -v -7.567755 12.574083 -13.535497 -v -25.106192 39.202751 12.637131 -v -26.705860 41.463783 15.172644 -v -17.087444 27.448063 0.422648 -v -9.048284 15.243841 -11.328759 -v -7.436370 12.713083 -13.586423 -v -24.863726 39.223705 12.778642 -v -26.608875 41.472164 15.229251 -v -16.602512 27.489975 0.705667 -v -8.805818 15.264791 -11.187246 -v -7.339383 12.721467 -13.529819 -v -24.757313 39.100723 12.972888 -v -26.566311 41.422974 15.306951 -v -16.389688 27.244003 1.094167 -v -8.699405 15.141807 -10.992999 -v -7.296819 12.672277 -13.452118 -v -24.849295 38.905838 13.106089 -v -26.603102 41.345016 15.360229 -v -16.573647 26.854233 1.360564 -v -8.791386 14.946925 -10.859798 -v -7.333611 12.594320 -13.398837 -v -25.085781 38.753212 13.100214 -v -26.697697 41.283970 15.357880 -v -17.125172 26.520523 1.324638 -v -9.106422 14.765837 -10.889849 -v -7.428205 12.533272 -13.401189 -v -25.328247 38.732258 12.958700 -v -26.794685 41.275585 15.301274 -v -17.531553 26.507080 1.065789 -v -9.270339 14.773350 -11.007191 -v -7.525191 12.524889 -13.457792 -v -14.838583 7.725491 16.392136 -v -13.115796 20.643181 -4.782604 -v -11.111109 17.704510 -7.836226 -v -15.120483 23.581854 -1.728984 -v -21.105474 32.636868 7.212426 -v -19.115322 29.578697 4.268532 -v -23.095627 35.695042 10.156319 -v -17.850927 23.415936 11.145543 -v -15.971910 15.023872 13.064692 -v -20.878242 31.325497 10.889566 -v -22.710337 35.141632 11.368248 -v -19.020594 27.498768 10.741400 -v -16.675705 19.308691 11.771263 -v -15.242205 10.728598 14.661383 -v -11.429826 11.979118 4.484833 -v -12.855085 9.611444 10.086077 -v -10.146607 13.783422 -3.108587 -v -11.113446 17.269522 -0.589503 -v -12.173586 19.546953 1.645432 -v -14.496117 22.736921 3.615596 -v -16.618717 25.814238 5.499027 -v -18.831337 28.858936 7.356281 -v -20.830013 31.984983 9.160530 -v -13.958706 13.246996 10.484770 -v -15.075603 15.880554 10.990260 -v -12.059523 15.670089 5.786165 -v -13.219246 18.188381 6.546744 -v -14.729614 21.266827 7.743087 -v -16.833500 24.401178 9.291769 -v -12.997808 13.246996 10.484770 -v -14.114704 15.880554 10.990260 -v -13.768716 21.266827 7.743087 -v -15.872602 24.401178 9.291769 -v -12.258348 18.188381 6.546744 -v -11.098623 15.670089 5.786165 -v -10.152548 17.269522 -0.589503 -v -11.212686 19.546953 1.645432 -v -13.535219 22.736921 3.615596 -v -15.657820 25.814238 5.499027 -v -19.869114 31.984983 9.160530 -v -17.870438 28.858936 7.356281 -v -3.006491 2.835144 -1.792495 -v -3.299435 2.835144 -2.499723 -v -3.299435 3.340722 -2.499723 -v -2.683913 3.340722 -1.013724 -v -2.607214 28.440485 -0.828560 -v -2.795753 28.916454 -1.283730 -v -2.984291 29.392422 -1.738900 -v -3.060988 31.134907 -1.924065 -v -3.197826 31.301920 -2.254421 -v -3.197826 31.705118 -2.254421 -v -2.864999 31.538105 -1.450902 -v -2.788301 30.035196 -1.265738 -v -2.522967 30.068596 -0.625167 -v -1.521538 2.835144 -1.792497 -v -1.228595 2.835144 -2.499723 -v -1.228595 3.340722 -2.499723 -v -1.844116 3.340722 -1.013724 -v -1.920815 28.440485 -0.828560 -v -2.149614 28.440485 -0.828560 -v -2.378415 28.440485 -0.828560 -v -3.625614 0.933175 -14.862261 -v -3.396813 0.933175 -14.862257 -v -3.208276 1.409142 -15.317429 -v -3.562768 1.409142 -15.317429 -v -1.543738 29.392422 -1.738900 -v -1.467041 31.134907 -1.924065 -v -1.330203 31.301920 -2.254421 -v -1.330203 31.705118 -2.254421 -v -1.663031 31.538105 -1.450902 -v -1.739728 30.035196 -1.265738 -v -2.005062 30.068596 -0.625167 -v -1.732276 28.916454 -1.283730 -v -2.441260 28.916454 -1.283730 -v -2.086768 28.916454 -1.283730 -v -10.505260 1.409189 -15.317495 -v -10.859753 1.409189 -15.317495 -v -10.671214 0.933218 -14.862325 -v -10.442413 0.933218 -14.862325 -v -7.310413 0.933123 -14.862221 -v -7.081613 0.933123 -14.862221 -v -7.018765 1.409093 -15.317392 -v -7.373259 1.409093 -15.317392 -v 12.725510 5.931142 -1.792495 -v 12.432567 5.931142 -2.499723 -v 12.432567 6.436721 -2.499723 -v 13.048086 6.436721 -1.013724 -v 13.124784 24.624481 -0.828560 -v 12.936247 25.100452 -1.283730 -v 12.747708 25.576418 -1.738900 -v 12.671010 27.318907 -1.924065 -v 12.534173 27.485916 -2.254421 -v 12.534173 27.889114 -2.254421 -v 12.867002 27.722105 -1.450902 -v 12.943699 26.219193 -1.265738 -v 13.209031 26.252592 -0.625167 -v 14.210463 5.931142 -1.792497 -v 14.503405 5.931142 -2.499723 -v 14.503405 6.436721 -2.499723 -v 13.887884 6.436721 -1.013724 -v 13.811186 24.624481 -0.828560 -v 13.467985 24.624481 -0.828560 -v 13.999723 25.100452 -1.283730 -v 14.188262 25.576418 -1.738900 -v 13.467985 25.100452 -1.283730 -v 14.264960 27.318907 -1.924065 -v 14.401797 27.485916 -2.254421 -v 14.401797 27.889114 -2.254421 -v 14.068970 27.722105 -1.450902 -v 13.992271 26.219193 -1.265738 -v 13.726938 26.252592 -0.625167 -v 8.292243 4.554726 -13.105604 -v 8.480783 4.078758 -12.650431 -v 8.823982 4.078758 -12.650431 -v 8.823982 4.554726 -13.105604 -v 11.451985 4.078778 -12.650445 -v 11.795187 4.078778 -12.650445 -v 11.983724 4.554746 -13.105617 -v 11.451985 4.554746 -13.105617 -v -19.242489 8.343143 -1.792495 -v -19.535431 8.343143 -2.499723 -v -19.535431 8.848721 -2.499723 -v -18.919910 8.848721 -1.013724 -v -18.843212 27.036480 -0.828560 -v -19.031750 27.512449 -1.283730 -v -19.220287 27.988419 -1.738900 -v -19.296986 29.730904 -1.924065 -v -19.433825 29.897915 -2.254421 -v -19.433825 30.301113 -2.254421 -v -19.100996 30.134102 -1.450902 -v -19.024298 28.631191 -1.265738 -v -18.758965 28.664593 -0.625167 -v -17.757534 8.343143 -1.792497 -v -17.464592 8.343143 -2.499723 -v -17.464592 8.848721 -2.499723 -v -18.080112 8.848721 -1.013724 -v -18.156811 27.036480 -0.828560 -v -18.500011 27.036480 -0.828560 -v -17.968273 27.512449 -1.283730 -v -17.779734 27.988419 -1.738900 -v -18.500011 27.512449 -1.283730 -v -17.703035 29.730904 -1.924065 -v -17.566198 29.897915 -2.254421 -v -17.566198 30.301113 -2.254421 -v -17.899027 30.134102 -1.450902 -v -17.975723 28.631191 -1.265738 -v -18.241058 28.664593 -0.625167 -v -21.299751 6.534726 -13.105604 -v -21.111214 6.058758 -12.650431 -v -20.768013 6.058758 -12.650431 -v -20.768013 6.534726 -13.105604 -v -18.140011 6.058776 -12.650445 -v -17.796808 6.058776 -12.650445 -v -17.608273 6.534745 -13.105617 -v -18.140011 6.534745 -13.105617 -vn 0.000000 -0.691141 0.722719 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -0.691139 0.722722 -vn 0.000000 -0.691141 0.722721 -vn 0.000000 0.454456 0.890769 -vn 0.951234 -0.138151 0.275803 -vn 0.000000 -0.454457 -0.890769 -vn -0.903964 0.048238 -0.424879 -vn 0.000000 -0.454453 -0.890771 -vn -0.995330 0.080548 0.053198 -vn 0.000000 0.454454 0.890770 -vn 0.960300 -0.165937 -0.224251 -vn 0.000000 -0.454452 -0.890771 -vn -0.975849 0.069272 -0.207173 -vn 0.000000 0.454452 0.890771 -vn 0.986498 -0.160658 0.031790 -vn 0.796052 -0.294117 0.528958 -vn -0.073842 -0.027344 0.996895 -vn 1.000000 0.000000 0.000000 -vn -0.003044 0.998421 -0.056087 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000920 0.999353 -0.035944 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.999404 -0.034523 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.000715 -0.926299 -0.376788 -vn 0.780323 0.625377 -0.000051 -vn 0.233171 0.050419 -0.971128 -vn 0.815205 0.578105 -0.035150 -vn 0.068294 -0.005991 -0.997647 -vn 0.000000 0.000000 1.000000 -vn -0.960859 0.277039 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -0.691143 0.722718 -vn 0.000000 -0.691141 0.722720 -vn 0.000000 -0.498728 -0.866759 -vn -0.996095 0.061022 -0.063811 -vn 0.000000 0.498728 0.866759 -vn 0.961371 -0.201950 -0.187033 -vn -0.926465 -0.007117 -0.376314 -vn 0.000000 0.498727 0.866759 -vn 0.979784 -0.138269 0.144587 -vn 0.000000 -0.498727 -0.866759 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -0.691144 0.722717 -vn 0.000000 -0.691141 0.722720 -vn 0.000000 -0.490952 -0.871187 -vn -0.999878 -0.010796 0.011290 -vn 0.000000 0.490953 0.871186 -vn 0.956749 -0.130192 -0.260156 -vn -0.946483 -0.074628 -0.314007 -vn 0.000000 0.490953 0.871186 -vn 0.995191 -0.067699 0.070793 -vn 0.000000 -0.490953 -0.871186 -vn 0.071989 -0.997405 0.000000 -vn 0.828488 0.560007 0.000000 -vn -0.828491 -0.560002 0.000000 -vn 0.796052 -0.294117 -0.528958 -vn -0.073842 -0.027344 -0.996895 -vn 1.000000 0.000000 0.000000 -vn -0.003044 0.998421 0.056087 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000920 0.999353 0.035944 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.999404 0.034523 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.000715 -0.926299 0.376788 -vn 0.780323 0.625377 0.000051 -vn 0.233171 0.050419 0.971128 -vn 0.815205 0.578105 0.035150 -vn 0.068294 -0.005991 0.997647 -vn 0.000000 0.000000 -1.000000 -vn -0.960859 0.277039 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.107249 -0.051603 0.992892 -vn 0.000000 0.000000 -1.000000 -vn 0.107249 -0.051603 -0.992892 -vn 0.000000 0.000000 -1.000000 -vn 0.047847 -0.027643 -0.998472 -vn 0.000000 0.000000 1.000000 -vn 0.047847 -0.027643 0.998472 -vn 0.000000 0.000000 1.000000 -vn 0.110211 -0.053028 0.992493 -vn 0.000000 0.000000 -1.000000 -vn 0.110211 -0.053028 -0.992493 -vn 0.000000 0.000000 -1.000000 -vn 0.049190 -0.028414 -0.998385 -vn 0.000000 0.000000 1.000000 -vn 0.049190 -0.028414 0.998385 -vn 0.000000 0.000000 1.000000 -vn 0.057338 -0.146135 0.987602 -vn 0.000000 0.000000 -1.000000 -vn 0.057338 -0.146135 -0.987602 -vn -0.428213 0.638920 0.639073 -vn 0.428218 -0.638908 -0.639082 -vn 0.000000 -0.691141 -0.722720 -vn 0.000000 -0.691139 -0.722722 -vn 0.000000 -0.691141 -0.722720 -vn 0.000000 0.454456 -0.890769 -vn 0.951234 -0.138151 -0.275803 -vn 0.000000 -0.454457 0.890769 -vn -0.903964 0.048238 0.424879 -vn 0.000000 -0.454453 0.890770 -vn -0.995330 0.080548 -0.053198 -vn 0.000000 0.454454 -0.890770 -vn 0.960300 -0.165937 0.224251 -vn 0.000000 -0.454452 0.890771 -vn -0.975849 0.069272 0.207173 -vn 0.000000 0.454452 -0.890771 -vn 0.986498 -0.160658 -0.031790 -vn 0.000000 -0.691143 -0.722718 -vn 0.000000 -0.691141 -0.722720 -vn 0.000000 -0.498728 0.866759 -vn -0.996095 0.061022 0.063811 -vn 0.000000 0.498728 -0.866759 -vn 0.961371 -0.201950 0.187033 -vn -0.926465 -0.007117 0.376314 -vn 0.000000 0.498727 -0.866759 -vn 0.979784 -0.138270 -0.144587 -vn 0.000000 -0.498727 0.866759 -vn 0.000000 -0.691144 -0.722717 -vn 0.000000 -0.691141 -0.722720 -vn 0.000000 -0.490952 0.871187 -vn -0.999878 -0.010796 -0.011290 -vn 0.000000 0.490953 -0.871186 -vn 0.956749 -0.130192 0.260156 -vn -0.946483 -0.074629 0.314007 -vn 0.000000 0.490952 -0.871186 -vn 0.995191 -0.067699 -0.070793 -vn 0.000000 -0.490953 0.871186 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.382683 0.000000 -0.923880 -vn -0.382684 0.000000 -0.923879 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923879 0.000000 0.382684 -vn -0.923879 0.000000 0.382684 -vn -0.382683 0.000000 0.923880 -vn -0.382683 0.000000 0.923880 -vn 0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn -0.382684 0.000000 -0.923879 -vn 0.382683 0.000000 -0.923880 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.923879 0.000000 0.382684 -vn 0.923879 0.000000 0.382684 -vn 0.923879 0.000000 -0.382684 -vn 0.923879 0.000000 -0.382684 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.382684 0.000000 0.923880 -vn -0.382684 0.000000 0.923880 -vn 0.382683 0.000000 0.923880 -vn 0.382683 0.000000 0.923880 -vn -0.382684 0.000000 -0.923880 -vn -0.382684 0.000000 -0.923880 -vn 0.382683 0.000000 -0.923880 -vn 0.382683 0.000000 -0.923880 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.923850 0.007985 0.382671 -vn 0.848857 -0.394732 0.351608 -vn 0.825591 -0.448837 0.341971 -vn 0.917828 -0.114267 0.380177 -vn 0.923850 0.007985 -0.382671 -vn 0.848857 -0.394732 -0.351608 -vn 0.825591 -0.448837 -0.341971 -vn 0.917828 -0.114267 -0.380177 -vn -0.923850 0.007985 -0.382671 -vn -0.848857 -0.394732 -0.351608 -vn -0.825592 -0.448837 -0.341971 -vn -0.917828 -0.114266 -0.380177 -vn -0.923850 0.007985 0.382671 -vn -0.848857 -0.394732 0.351608 -vn -0.825592 -0.448837 0.341971 -vn -0.917828 -0.114266 0.380177 -vn -0.382671 0.007985 0.923850 -vn -0.465039 -0.258222 0.846794 -vn -0.341971 -0.448837 0.825591 -vn -0.380177 -0.114267 0.917828 -vn 0.382671 0.007985 0.923850 -vn 0.465039 -0.258221 0.846794 -vn 0.341971 -0.448837 0.825591 -vn 0.380177 -0.114267 0.917828 -vn 0.265892 -0.719195 0.641920 -vn -0.265892 -0.719195 0.641919 -vn 0.000000 0.007377 0.999973 -vn 0.000000 0.007377 0.999973 -vn 0.000000 -0.691141 0.722720 -vn 0.000000 -0.691141 0.722720 -vn -0.382671 0.007985 -0.923850 -vn -0.465039 -0.258221 -0.846794 -vn -0.265892 -0.719195 -0.641920 -vn -0.341971 -0.448837 -0.825591 -vn -0.380177 -0.114267 -0.917828 -vn 0.382671 0.007985 -0.923850 -vn 0.465039 -0.258221 -0.846794 -vn 0.000000 0.007377 -0.999973 -vn 0.000000 0.007377 -0.999973 -vn 0.341971 -0.448837 -0.825592 -vn 0.380177 -0.114267 -0.917828 -vn 0.265892 -0.719194 -0.641920 -vn 0.000000 -0.691141 -0.722720 -vn 0.000000 -0.691141 -0.722720 -vn 0.390974 -0.906042 0.161947 -vn 0.390974 -0.906042 0.161947 -vn 0.390974 -0.906042 -0.161950 -vn 0.390974 -0.906042 -0.161950 -vn -0.390973 -0.906042 -0.161949 -vn -0.390973 -0.906042 -0.161949 -vn -0.390973 -0.906042 0.161949 -vn -0.390973 -0.906042 0.161949 -vn -0.161946 -0.906042 0.390975 -vn -0.161946 -0.906042 0.390975 -vn 0.161947 -0.906043 0.390973 -vn 0.161947 -0.906043 0.390973 -vn -0.161946 -0.906042 -0.390975 -vn -0.161946 -0.906042 -0.390975 -vn 0.161946 -0.906042 -0.390976 -vn 0.161946 -0.906042 -0.390976 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.382684 0.000000 0.923879 -vn -0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn -0.382684 0.000000 -0.923879 -vn -0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn -0.174230 0.982057 -0.072168 -vn -0.174230 0.982057 -0.072168 -vn -0.174230 0.982057 0.072169 -vn -0.174230 0.982057 0.072169 -vn 0.174230 0.982057 0.072169 -vn 0.174230 0.982057 0.072169 -vn 0.174230 0.982057 -0.072169 -vn 0.174230 0.982057 -0.072169 -vn 0.072168 0.982057 -0.174231 -vn 0.072168 0.982057 -0.174231 -vn -0.072168 0.982057 -0.174229 -vn -0.072168 0.982057 -0.174229 -vn 0.072168 0.982057 0.174231 -vn 0.072168 0.982057 0.174231 -vn -0.072168 0.982057 0.174231 -vn -0.072168 0.982057 0.174231 -vn -0.915772 0.132185 -0.379326 -vn -0.915772 0.132185 -0.379326 -vn -0.915772 0.132185 0.379326 -vn -0.915772 0.132185 0.379326 -vn 0.915773 0.132185 0.379325 -vn 0.915773 0.132185 0.379325 -vn 0.915773 0.132185 -0.379325 -vn 0.915773 0.132185 -0.379325 -vn 0.379326 0.132185 -0.915772 -vn 0.379326 0.132185 -0.915772 -vn -0.379325 0.132185 -0.915773 -vn -0.379325 0.132185 -0.915773 -vn 0.379326 0.132185 0.915772 -vn 0.379326 0.132185 0.915772 -vn -0.379325 0.132185 0.915773 -vn -0.379325 0.132185 0.915773 -vn 0.044453 0.998842 0.018413 -vn 0.044453 0.998842 0.018413 -vn 0.044453 0.998842 -0.018413 -vn 0.044453 0.998842 -0.018413 -vn -0.044453 0.998842 -0.018413 -vn -0.044453 0.998842 -0.018413 -vn -0.044453 0.998842 0.018413 -vn -0.044453 0.998842 0.018413 -vn -0.018413 0.998842 0.044452 -vn -0.018413 0.998842 0.044452 -vn 0.018413 0.998842 0.044452 -vn 0.018413 0.998842 0.044452 -vn -0.018413 0.998842 -0.044452 -vn -0.018413 0.998842 -0.044452 -vn 0.018413 0.998842 -0.044452 -vn 0.018413 0.998842 -0.044452 -vn 0.923772 0.015264 0.382639 -vn 0.923772 0.015264 0.382639 -vn 0.923772 0.015264 -0.382639 -vn 0.923772 0.015264 -0.382639 -vn 0.382639 0.015264 -0.923772 -vn -0.382638 0.015264 -0.923772 -vn -0.923772 0.015264 -0.382640 -vn -0.923772 0.015264 -0.382640 -vn -0.923772 0.015264 0.382640 -vn -0.923772 0.015264 0.382640 -vn -0.382638 0.015264 0.923772 -vn -0.382638 0.015264 0.923772 -vn 0.382639 0.015264 0.923772 -vn 0.382639 0.015264 0.923772 -vn -0.382638 0.015264 -0.923772 -vn 0.382639 0.015264 -0.923772 -vn -0.000498 -1.000000 0.000000 -vn -0.000978 -1.000000 0.000000 -vn -0.000978 -0.999829 -0.018484 -vn -0.000498 -0.999831 -0.018381 -vn 0.000342 -0.999875 -0.015805 -vn 0.000342 -1.000000 0.000000 -vn 0.000649 -0.999930 -0.011797 -vn 0.000649 -1.000000 0.000000 -vn 0.000644 -0.999968 -0.007972 -vn 0.000645 -1.000000 0.000000 -vn -0.000134 -0.999995 -0.003267 -vn -0.000134 -1.000000 0.000000 -vn -0.000594 -0.999997 -0.002483 -vn -0.000594 -1.000000 0.000000 -vn 0.000465 -0.999988 -0.004895 -vn 0.000465 -1.000000 0.000000 -vn 0.000285 -0.999980 -0.006340 -vn 0.000285 -1.000000 0.000000 -vn 0.081838 -0.996646 0.000000 -vn 0.081835 -0.996609 -0.008551 -vn 0.344185 -0.938871 0.007579 -vn 0.344195 -0.938898 0.000000 -vn 0.605586 -0.790519 0.091348 -vn 0.608129 -0.793838 0.000000 -vn 0.760646 -0.613146 0.213235 -vn 0.778552 -0.627580 0.000000 -vn 0.848223 -0.481433 0.220772 -vn 0.869682 -0.493613 0.000000 -vn 0.808292 -0.581043 0.095151 -vn 0.811976 -0.583691 0.000000 -vn 0.668057 -0.744110 -0.000355 -vn 0.668057 -0.744110 0.000000 -vn 0.726716 -0.686915 -0.005694 -vn 0.726727 -0.686926 0.000000 -vn 0.955276 -0.295714 0.000866 -vn 0.955276 -0.295714 0.000000 -vn 0.999999 0.000260 -0.001367 -vn 1.000000 0.000260 0.000000 -vn -0.000498 -0.999831 0.018381 -vn -0.000978 -0.999829 0.018484 -vn 0.000342 -0.999875 0.015805 -vn 0.000649 -0.999930 0.011797 -vn 0.000644 -0.999968 0.007972 -vn -0.000134 -0.999995 0.003267 -vn -0.000594 -0.999997 0.002483 -vn 0.000465 -0.999988 0.004895 -vn 0.000285 -0.999980 0.006340 -vn 0.344185 -0.938871 -0.007579 -vn 0.081835 -0.996609 0.008551 -vn 0.605586 -0.790519 -0.091348 -vn 0.760646 -0.613146 -0.213235 -vn 0.848223 -0.481433 -0.220772 -vn 0.808292 -0.581043 -0.095151 -vn 0.668057 -0.744110 0.000355 -vn 0.726716 -0.686915 0.005694 -vn 0.955276 -0.295714 -0.000866 -vn 0.999999 0.000260 0.001367 -vn 0.532643 0.846199 -0.015426 -vn 0.532707 0.846300 0.000000 -vn 0.532643 0.846199 -0.015426 -vn 0.532707 0.846300 0.000000 -vn 0.532643 0.846199 0.015426 -vn 0.532643 0.846199 0.015426 -vn -0.311057 0.950245 0.016675 -vn -0.311100 0.950377 0.000000 -vn -0.311057 0.950245 0.016675 -vn -0.311100 0.950377 0.000000 -vn -0.311057 0.950245 -0.016675 -vn -0.311057 0.950245 -0.016675 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn -0.001558 0.003019 0.999994 -vn -0.005048 0.008466 0.999951 -vn -0.008364 0.009773 0.999917 -vn -0.006180 0.002751 0.999977 -vn 0.031027 -0.045147 0.998498 -vn 0.083067 -0.146694 0.985688 -vn 0.171496 -0.296152 0.939618 -vn 0.379549 -0.370895 0.847573 -vn 0.612488 -0.633300 0.473064 -vn -0.908937 0.181562 0.375326 -vn -0.980714 0.195447 0.000000 -vn -0.926840 0.365132 0.087447 -vn -0.999916 -0.012961 0.000000 -vn 0.001662 -0.284907 0.958554 -vn -0.002601 -0.611459 0.791272 -vn -0.004739 -0.614960 0.788544 -vn -0.001656 -0.620166 0.784469 -vn -0.002364 -0.624637 0.780912 -vn -0.003943 -0.628088 0.778132 -vn -0.002765 -0.630722 0.776004 -vn 0.001016 -0.631656 0.775248 -vn 0.055700 -0.627733 0.776433 -vn 0.226451 -0.593755 0.772124 -vn 0.431596 -0.502047 0.749449 -vn 0.559688 -0.398391 0.726660 -vn 0.640943 -0.317266 0.698952 -vn 0.637526 -0.529415 0.559715 -vn 0.328249 -0.731406 0.597743 -vn 0.503599 -0.691202 0.518294 -vn -0.000622 -0.957209 0.289396 -vn -0.011620 -0.958525 0.284770 -vn -0.016400 -0.961439 0.274527 -vn -0.009060 -0.964396 0.264307 -vn -0.007042 -0.966195 0.257717 -vn -0.011348 -0.967312 0.253337 -vn -0.008201 -0.968389 0.249311 -vn 0.001985 -0.968728 0.248118 -vn 0.099841 -0.959526 0.263329 -vn 0.350932 -0.896456 0.270578 -vn 0.637211 -0.736703 0.226343 -vn 0.810509 -0.563456 0.159977 -vn 0.898578 -0.431621 0.079123 -vn -0.032745 -0.924632 0.379451 -vn -0.027915 -0.929989 0.366525 -vn -0.025304 -0.933217 0.358421 -vn -0.021026 -0.931393 0.363408 -vn -0.013125 -0.931310 0.363990 -vn -0.017126 -0.929639 0.368073 -vn -0.009906 -0.925524 0.378560 -vn 0.017727 -0.913313 0.406872 -vn 0.138306 -0.872253 0.469091 -vn 0.350660 -0.781718 0.515709 -vn 0.604752 -0.636012 0.479337 -vn 0.779066 -0.492478 0.387970 -vn 0.869206 -0.411663 0.273889 -vn 0.682096 -0.710441 0.173255 -vn -0.088118 -0.757908 0.646383 -vn -0.051298 -0.773044 0.632274 -vn -0.029597 -0.786952 0.616304 -vn -0.033228 -0.783410 0.620617 -vn -0.020186 -0.775990 0.630422 -vn -0.005117 -0.761370 0.648297 -vn 0.018569 -0.730812 0.682326 -vn 0.057344 -0.685707 0.725615 -vn 0.162821 -0.645857 0.745894 -vn 0.327546 -0.624718 0.708831 -vn 0.568254 -0.552002 0.610230 -vn 0.745434 -0.452974 0.489023 -vn 0.828394 -0.409274 0.382436 -vn 0.665243 -0.692669 0.278679 -vn -0.126585 -0.324874 0.937248 -vn -0.083031 -0.336373 0.938061 -vn -0.049527 -0.354987 0.933559 -vn -0.041844 -0.357783 0.932867 -vn -0.021024 -0.344348 0.938607 -vn 0.019876 -0.328586 0.944265 -vn 0.058985 -0.312457 0.948099 -vn 0.081012 -0.303002 0.949540 -vn 0.135971 -0.321898 0.936960 -vn 0.243140 -0.369569 0.896829 -vn 0.485396 -0.368969 0.792624 -vn 0.682836 -0.329533 0.652030 -vn 0.768168 -0.313531 0.558226 -vn 0.619534 -0.642008 0.451667 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.004050 -0.001464 0.999991 -vn 0.004050 -0.001464 0.999991 -vn 0.008099 -0.002928 0.999963 -vn 0.008099 -0.002928 0.999963 -vn -0.155548 0.179096 0.971457 -vn -0.182194 0.240699 0.953346 -vn 0.382114 -0.914355 0.133959 -vn 0.484499 -0.866370 0.121091 -vn 0.387995 -0.898366 0.205909 -vn 0.343405 -0.880083 0.327913 -vn 0.423232 -0.483997 0.765912 -vn 0.138085 -0.809093 0.571228 -vn -0.443965 0.883319 0.150473 -vn -0.278326 0.947710 0.156141 -vn -0.028994 0.982343 0.184829 -vn 0.180907 0.973766 0.138031 -vn 0.112474 -0.299001 0.947601 -vn -0.234810 -0.551473 0.800463 -vn 0.058509 -0.134104 0.989239 -vn -0.429138 -0.313067 0.847248 -vn 0.285194 0.197417 0.937918 -vn 0.210505 0.971282 0.110905 -vn 0.554932 0.600983 0.575212 -vn 0.408425 0.890099 0.202271 -vn 0.061938 0.990093 0.126015 -vn -0.268469 0.954312 0.131197 -vn 0.429959 0.714252 0.552250 -vn 0.143742 0.770267 -0.621311 -vn 0.232969 0.763400 -0.602449 -vn 0.061981 0.909120 -0.411898 -vn -0.156425 0.952959 -0.259617 -vn -0.471350 0.868971 -0.150731 -vn -0.576295 0.726086 0.375077 -vn -0.865920 0.500183 0.000000 -vn -0.989994 0.141112 0.000000 -vn -0.460187 0.872346 -0.165047 -vn -0.205437 0.978670 0.000000 -vn -0.138800 0.934428 -0.327991 -vn 0.048613 0.998818 0.000000 -vn 0.467845 0.883810 0.000000 -vn 0.384094 0.920149 -0.076134 -vn 0.551719 0.832347 -0.052967 -vn 0.366455 0.930436 0.000000 -vn 0.428842 0.893311 -0.134496 -vn -0.037439 0.880778 -0.472048 -vn 0.189683 0.750419 -0.633160 -vn 0.214020 0.756073 -0.618506 -vn -0.226937 0.607334 -0.761344 -vn -0.411998 0.911184 0.001160 -vn -0.411998 0.911185 0.000000 -vn 0.556969 -0.013670 0.830421 -vn 0.382048 0.076277 0.920989 -vn 0.500121 0.035416 0.865231 -vn 0.405430 0.172047 0.897790 -vn 0.333241 0.015263 0.942718 -vn 0.297561 0.153827 0.942229 -vn 0.123103 0.109724 0.986309 -vn 0.145216 -0.018635 0.989224 -vn 0.110890 -0.030335 0.993370 -vn 0.095854 0.135837 0.986083 -vn 0.070909 -0.018533 0.997311 -vn 0.049046 0.176580 0.983064 -vn 0.040821 0.045228 0.998142 -vn 0.007370 0.115608 0.993268 -vn 0.004079 0.088693 0.996051 -vn 0.013448 0.082595 0.996492 -vn 0.004596 0.101518 0.994823 -vn -0.015378 0.105704 0.994279 -vn -0.029288 0.098868 0.994669 -vn -0.044604 0.105798 0.993387 -vn -0.032949 0.131347 0.990789 -vn -0.042621 0.067021 0.996841 -vn -0.045682 0.237634 0.970280 -vn -0.072399 0.073942 0.994631 -vn -0.093170 0.254066 0.962689 -vn -0.105730 0.094396 0.989904 -vn -0.125141 0.258127 0.957972 -vn 0.304162 0.023810 0.952323 -vn 0.270011 0.041486 0.961963 -vn 0.374880 0.143776 0.915857 -vn 0.265584 0.072621 0.961349 -vn 0.159298 0.154959 0.974993 -vn 0.298003 0.116049 0.947484 -vn 0.112454 0.305711 0.945460 -vn 0.234602 0.113939 0.965391 -vn 0.320457 0.197980 0.926343 -vn 0.136348 0.119007 0.983487 -vn 0.151168 0.093855 0.984042 -vn 0.146094 0.075611 0.986377 -vn 0.000000 0.327190 0.944959 -vn 0.017516 0.256234 0.966456 -vn -0.027045 0.261613 0.964794 -vn 0.017531 0.108058 0.993990 -vn 0.020891 0.168337 0.985508 -vn 0.031172 0.086795 0.995738 -vn -0.018860 0.116248 0.993041 -vn -0.012559 0.088054 0.996037 -vn 0.000025 0.031657 0.999499 -vn 0.086871 0.090782 0.992075 -vn 0.116889 0.165352 0.979283 -vn 0.053620 0.110638 0.992413 -vn 0.116889 0.165352 0.979283 -vn 0.009729 0.173236 0.984832 -vn -0.060523 0.204549 0.976984 -vn -0.083714 0.255371 0.963212 -vn 0.035971 0.252341 0.966969 -vn -0.002250 0.365469 0.930821 -vn -0.135289 0.847974 0.512481 -vn 0.011574 0.875069 0.483860 -vn 0.029526 0.442508 0.896279 -vn 0.026044 0.265581 0.963737 -vn 0.000000 0.279250 0.960218 -vn -0.006966 0.048920 0.998778 -vn -0.004497 0.140224 0.990110 -vn -0.004148 0.141952 0.989865 -vn -0.004147 0.141439 0.989938 -vn -0.017246 0.127797 0.991650 -vn -0.026184 0.030281 0.999198 -vn 0.016002 0.277204 0.960678 -vn 0.016002 0.277204 0.960678 -vn -0.012361 0.268507 0.963198 -vn -0.012361 0.268507 0.963198 -vn -0.023383 0.234430 0.971852 -vn 0.000000 0.218824 0.975764 -vn 0.000185 0.310974 0.950418 -vn 0.000184 0.313300 0.949654 -vn 0.000000 0.313741 0.949509 -vn 0.000000 0.310542 0.950560 -vn -0.009659 0.410519 0.911801 -vn 0.209958 0.810995 0.546081 -vn 0.345868 0.556792 0.755221 -vn -0.089097 0.206623 0.974355 -vn 0.174510 0.153230 0.972660 -vn -0.081234 0.271336 0.959051 -vn -0.086316 0.271239 0.958634 -vn -0.087111 0.239852 0.966893 -vn -0.132231 0.332916 0.933639 -vn -0.119249 0.254206 0.959770 -vn -0.163495 0.235513 0.958020 -vn -0.088396 0.283924 0.954763 -vn 0.109747 0.210021 0.971518 -vn -0.070976 0.018118 0.997313 -vn -0.047399 -0.020257 0.998671 -vn -0.094775 -0.019741 0.995303 -vn -0.063320 0.024917 0.997682 -vn 0.000000 0.113789 0.993505 -vn -0.014780 0.060170 0.998079 -vn -0.014779 -0.045290 0.998865 -vn 0.000000 -0.096813 0.995303 -vn 0.000000 0.398474 0.917180 -vn -0.047249 0.264787 0.963149 -vn -0.078847 -0.011689 0.996818 -vn 0.014963 0.343466 0.939046 -vn 0.014963 0.343466 0.939046 -vn -0.013305 0.124636 0.992113 -vn -0.065431 0.131200 0.989194 -vn -0.020415 0.177472 0.983914 -vn -0.010960 0.166519 0.985977 -vn -0.065852 0.234307 0.969930 -vn 0.125538 0.244740 0.961428 -vn -0.048087 -0.016246 0.998711 -vn -0.110254 0.380000 0.918392 -vn -0.116765 -0.117675 0.986163 -vn -0.114352 -0.366303 0.923442 -vn -0.096526 -0.375230 0.921892 -vn 0.148874 0.354954 -0.922954 -vn 0.264827 0.332418 -0.905188 -vn -0.984186 -0.159692 0.076660 -vn -0.703782 -0.325892 0.631257 -vn -0.753180 -0.142612 0.642169 -vn -0.694786 0.403993 0.595031 -vn -0.978547 -0.155407 0.135256 -vn -0.972902 -0.116808 0.199544 -vn -0.986642 -0.086804 0.137848 -vn -0.996582 -0.051510 0.064582 -vn -0.998667 -0.051618 0.000000 -vn -0.997128 -0.075732 0.000000 -vn -0.978534 -0.119823 0.167670 -vn -0.992300 -0.123854 0.000000 -vn -0.975218 -0.143091 0.168747 -vn -0.990826 -0.135146 0.000000 -vn -0.992466 -0.122522 0.000000 -vn -0.976178 -0.120030 0.180747 -vn -0.911609 0.334059 0.239530 -vn -0.949057 0.315103 0.000000 -vn -0.991092 -0.100151 0.087782 -vn -0.936786 0.320495 0.140413 -vn -0.004617 0.173236 0.984869 -vn -0.051868 0.232639 0.971179 -vn -0.139632 0.244987 0.959419 -vn -0.169449 0.263015 0.949795 -vn 0.378050 0.488514 0.786404 -vn -0.074203 0.746661 0.661053 -vn -0.456333 0.781419 0.425611 -vn -0.678291 0.700497 0.221868 -vn -0.652774 0.718758 0.239318 -vn -0.688381 0.725349 0.000000 -vn -0.706036 0.708176 0.000000 -vn -0.631292 0.740974 0.228972 -vn -0.601784 0.763373 0.234772 -vn -0.351728 0.872825 0.338325 -vn -0.043159 0.865597 0.498878 -vn 0.426695 0.574370 0.698592 -vn 0.716915 0.112171 0.688078 -vn 0.758164 0.095473 0.645037 -vn -0.183085 0.157225 0.970443 -vn 0.148874 0.354954 -0.922954 -vn 0.359364 0.324809 -0.874846 -vn 0.367321 0.351698 -0.861037 -vn 0.297364 0.317491 -0.900430 -vn 0.458623 0.303871 -0.835061 -vn 0.469618 0.323039 -0.821647 -vn 0.276933 0.372860 -0.885598 -vn 0.559261 0.465460 -0.685984 -vn 0.630410 0.558969 -0.538644 -vn 0.247626 0.765912 -0.593347 -vn -0.010843 0.830001 -0.557657 -vn -0.157013 0.808137 -0.567680 -vn -0.578608 0.580866 -0.572545 -vn -0.499662 0.628040 0.596577 -vn -0.557389 0.636957 -0.532544 -vn -0.433436 0.642411 0.632014 -vn -0.042672 0.818865 0.572398 -vn -0.152161 0.845866 -0.511232 -vn 0.094274 0.616930 0.781351 -vn 0.078118 0.638832 0.765370 -vn 0.186343 0.533377 -0.825097 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn -0.010843 0.830001 -0.557657 -vn -0.411993 0.911187 0.000000 -vn -0.271595 0.962411 0.000765 -vn -0.040347 0.827309 -0.560297 -vn 0.000000 1.000000 0.000000 -vn -0.239914 0.607394 -0.757307 -vn 0.128620 0.967244 -0.218851 -vn 0.008099 -0.002928 0.999963 -vn -0.182194 0.240699 0.953346 -vn 0.357690 0.769708 0.528778 -vn 0.319524 0.907313 0.273288 -vn 0.019270 0.977705 0.209097 -vn 0.000385 0.311767 0.950159 -vn 0.000384 0.312493 0.949920 -vn -0.908937 0.181562 -0.375326 -vn -0.926840 0.365132 -0.087447 -vn 0.343550 0.932835 0.108595 -vn 0.343550 0.932835 0.108595 -vn 0.572438 0.813026 0.106320 -vn 0.572438 0.813026 0.106320 -vn 0.350916 0.936401 0.003314 -vn 0.180208 0.957843 0.223747 -vn 0.054837 0.998292 -0.020148 -vn -0.156425 0.952959 0.259617 -vn -0.223117 0.966373 -0.127839 -vn -0.471350 0.868970 0.150731 -vn -0.627989 0.606445 -0.487703 -vn -0.460187 0.872346 0.165048 -vn -0.138800 0.934428 0.327991 -vn 0.384095 0.920149 0.076134 -vn 0.551719 0.832347 0.052967 -vn 0.428842 0.893311 0.134496 -vn 0.536322 0.831008 0.147594 -vn 0.027253 0.932118 0.361127 -vn 0.471549 0.880758 0.043652 -vn -0.000011 1.000000 0.000000 -vn -0.411998 0.911184 -0.001160 -vn -0.020820 0.226240 -0.973849 -vn -0.060523 0.204549 -0.976984 -vn -0.051837 0.299894 -0.952563 -vn -0.002250 0.365469 -0.930821 -vn 0.033028 0.249392 -0.967839 -vn -0.135289 0.847974 -0.512481 -vn 0.011574 0.875069 -0.483860 -vn 0.029526 0.442508 -0.896279 -vn 0.047123 0.251268 -0.966770 -vn 0.209958 0.810995 -0.546081 -vn 0.003451 0.457095 -0.889411 -vn 0.345868 0.556792 -0.755221 -vn -0.089097 0.206623 -0.974355 -vn 0.174510 0.153230 -0.972660 -vn -0.018298 0.420237 -0.907230 -vn -0.047249 0.264787 -0.963149 -vn 0.000000 0.398474 -0.917180 -vn -0.078847 -0.011689 -0.996818 -vn -0.065431 0.131200 -0.989194 -vn -0.032469 0.133629 -0.990499 -vn -0.020415 0.177472 -0.983914 -vn -0.044526 0.314179 -0.948319 -vn -0.048086 -0.016246 -0.998711 -vn -0.116765 -0.117675 -0.986163 -vn -0.110254 0.380000 -0.918392 -vn -0.096526 -0.375230 -0.921892 -vn -0.114352 -0.366303 -0.923442 -vn -0.984186 -0.159691 -0.076660 -vn -0.703782 -0.325892 -0.631257 -vn -0.753180 -0.142612 -0.642169 -vn -0.694786 0.403993 -0.595031 -vn -0.978547 -0.155406 -0.135256 -vn -0.972902 -0.116808 -0.199544 -vn -0.986642 -0.086804 -0.137848 -vn -0.996582 -0.051510 -0.064582 -vn -0.978534 -0.119823 -0.167670 -vn -0.975218 -0.143091 -0.168747 -vn -0.976178 -0.120030 -0.180747 -vn -0.911609 0.334059 -0.239530 -vn -0.936786 0.320494 -0.140413 -vn -0.991092 -0.100151 -0.087782 -vn -0.070496 0.737933 -0.671182 -vn -0.074203 0.746661 -0.661053 -vn -0.456333 0.781418 -0.425611 -vn -0.678291 0.700497 -0.221868 -vn -0.652774 0.718758 -0.239318 -vn -0.631292 0.740974 -0.228972 -vn -0.601784 0.763373 -0.234772 -vn -0.351728 0.872825 -0.338325 -vn -0.043159 0.865597 -0.498878 -vn -0.050739 0.856785 -0.513172 -vn 0.831646 0.554121 -0.036263 -vn 0.717163 0.695166 -0.049205 -vn 0.303995 0.952143 -0.031778 -vn 0.000000 1.000000 0.000000 -vn -0.195416 0.980690 0.007761 -vn -0.560456 0.746959 -0.357690 -vn -0.671650 0.740845 0.005932 -vn -0.611471 0.790924 0.023310 -vn -0.611471 0.790924 0.023310 -vn -0.117785 0.992762 0.023457 -vn -0.117785 0.992762 0.023457 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn -0.271595 0.962411 -0.000765 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.128620 0.967244 0.218851 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 -0.000015 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 -0.000015 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.988845 -0.145242 0.033023 -vn -0.988845 -0.145239 0.033023 -vn -0.988761 -0.149470 0.003221 -vn -0.988762 -0.149465 0.003225 -vn -1.000000 0.000000 0.000006 -vn -0.064201 -0.872217 0.484887 -vn -0.988168 -0.153378 0.000000 -vn -0.980657 -0.148457 0.127562 -vn -0.971555 -0.144479 0.187635 -vn -0.963527 -0.144431 0.225290 -vn -0.825920 -0.534641 0.178926 -vn -0.863285 -0.476281 0.167021 -vn -0.904585 -0.416699 0.089932 -vn -0.930451 -0.366417 0.000000 -vn -0.764102 -0.633483 0.121850 -vn -0.827879 -0.560907 0.000000 -vn -0.774383 -0.625081 0.098007 -vn -0.791643 -0.590519 0.156806 -vn -0.586142 -0.792046 0.170589 -vn -0.783917 -0.595080 0.177072 -vn -0.790636 -0.503094 0.348985 -vn -0.064201 -0.872217 0.484887 -vn -0.432186 -0.737990 0.518253 -vn -0.707464 -0.706750 0.000105 -vn -0.707464 -0.706750 0.000105 -vn -1.000000 -0.000020 0.000013 -vn -1.000000 -0.000020 0.000013 -vn -0.840440 -0.531300 0.106684 -vn -0.840440 -0.531300 0.106684 -vn -1.000000 -0.000016 0.000000 -vn -1.000000 -0.000016 0.000000 -vn -1.000000 -0.000018 0.000000 -vn -1.000000 -0.000018 0.000000 -vn -0.761963 -0.630098 0.149627 -vn -0.761963 -0.630098 0.149627 -vn -0.606091 -0.783425 0.137475 -vn -0.790636 -0.503094 0.348985 -vn -1.000000 0.000000 0.000000 -vn -1.000000 -0.000015 0.000000 -vn -0.432186 -0.737990 0.518253 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 -0.000015 0.000000 -vn -1.000000 -0.000015 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.988845 -0.145242 -0.033023 -vn -0.988845 -0.145239 -0.033023 -vn -0.988761 -0.149470 -0.003221 -vn -0.988762 -0.149465 -0.003225 -vn -1.000000 0.000000 -0.000006 -vn -0.064201 -0.872217 -0.484887 -vn -0.432186 -0.737989 -0.518254 -vn -0.980657 -0.148457 -0.127562 -vn -0.971555 -0.144479 -0.187635 -vn -0.963527 -0.144431 -0.225290 -vn -0.825920 -0.534641 -0.178926 -vn -0.863285 -0.476281 -0.167021 -vn -0.904585 -0.416699 -0.089932 -vn -0.764102 -0.633483 -0.121850 -vn -0.774383 -0.625081 -0.098007 -vn -0.791643 -0.590519 -0.156806 -vn -0.586142 -0.792046 -0.170589 -vn -0.783917 -0.595079 -0.177072 -vn -0.790636 -0.503094 -0.348985 -vn -0.432186 -0.737989 -0.518254 -vn -0.064201 -0.872217 -0.484887 -vn -0.790636 -0.503094 -0.348985 -vn -0.707464 -0.706750 -0.000105 -vn -0.707464 -0.706750 -0.000105 -vn -1.000000 -0.000020 -0.000013 -vn -1.000000 -0.000020 -0.000013 -vn -0.840440 -0.531300 -0.106684 -vn -0.840440 -0.531300 -0.106684 -vn -1.000000 -0.000016 0.000000 -vn -1.000000 -0.000016 0.000000 -vn -1.000000 -0.000018 0.000000 -vn -1.000000 -0.000018 0.000000 -vn -0.761963 -0.630098 -0.149627 -vn -0.761963 -0.630098 -0.149627 -vn -0.606091 -0.783425 -0.137475 -vn -1.000000 0.000000 0.000000 -vn -1.000000 -0.000015 0.000000 -vn -0.967343 -0.253471 0.000000 -vn -0.966484 -0.253246 0.042143 -vn -0.991080 -0.130252 0.028205 -vn -0.998040 0.062190 -0.006929 -vn -0.904766 0.424835 -0.030227 -vn -0.864731 0.501983 -0.015936 -vn -0.982241 0.187302 0.010960 -vn -0.982300 0.187313 0.000000 -vn -0.864841 0.502047 0.000000 -vn -0.905179 0.425030 0.000000 -vn -0.998064 0.062191 0.000000 -vn -0.991474 -0.130304 0.000000 -vn -0.997327 0.073072 0.000000 -vn -0.997065 0.073052 0.022909 -vn -0.966484 -0.253246 -0.042143 -vn -0.991080 -0.130252 -0.028205 -vn -0.998040 0.062190 0.006929 -vn -0.904766 0.424835 0.030227 -vn -0.864731 0.501983 0.015936 -vn -0.982241 0.187302 -0.010960 -vn -0.997065 0.073052 -0.022909 -vn 0.578350 0.285793 0.764090 -vn 0.250386 0.130226 0.959348 -vn 0.231372 0.415637 0.879609 -vn 0.282524 0.559971 0.778853 -vn 0.676715 0.399167 0.618646 -vn 0.659150 0.075212 0.748241 -vn 0.647834 -0.110155 0.753775 -vn 0.590692 -0.107892 0.799651 -vn 0.405847 0.360061 0.840026 -vn 0.676715 0.399167 0.618646 -vn 0.659150 0.075212 0.748241 -vn 0.647834 -0.110155 0.753775 -vn 0.590692 -0.107892 0.799651 -vn 0.590692 -0.107892 0.799651 -vn 0.590692 -0.107892 0.799651 -vn 0.282524 0.559971 0.778853 -vn -0.450579 0.527013 0.720580 -vn -0.450579 0.527013 0.720580 -vn -0.295642 0.828243 0.476035 -vn -0.295642 0.828243 0.476035 -vn -0.089100 0.984906 0.148399 -vn 0.097191 0.990632 0.095925 -vn 0.117291 0.991040 0.063893 -vn 0.580264 0.794796 0.177748 -vn 0.117291 0.991040 0.063893 -vn 0.509041 0.750619 0.421246 -vn 0.406328 0.844909 0.347889 -vn 0.169327 0.818091 0.549595 -vn 0.663610 0.680521 0.310666 -vn 0.008975 0.665756 0.746116 -vn 0.642753 0.585407 0.494133 -vn 0.013507 0.795289 0.606080 -vn 0.640657 0.662571 0.388018 -vn 0.015595 0.945301 0.325826 -vn 0.629337 0.749031 0.207091 -vn 0.017361 0.999849 0.000000 -vn 0.630667 0.776053 0.000000 -vn 0.932045 0.362343 0.000000 -vn 0.971533 0.236903 0.000000 -vn 0.971320 0.237777 0.000000 -vn 0.973444 0.228927 0.000000 -vn 0.939724 0.341935 0.000000 -vn 0.965379 0.260852 0.000000 -vn 0.964909 0.260725 -0.031175 -vn 0.117291 0.991040 -0.063893 -vn 0.097191 0.990632 -0.095925 -vn 0.117291 0.991040 -0.063893 -vn 0.580264 0.794795 -0.177748 -vn 0.509041 0.750619 -0.421246 -vn 0.406328 0.844909 -0.347889 -vn 0.663610 0.680520 -0.310666 -vn 0.169328 0.818091 -0.549596 -vn 0.642753 0.585407 -0.494133 -vn 0.008975 0.665756 -0.746116 -vn 0.640658 0.662570 -0.388018 -vn 0.013507 0.795289 -0.606081 -vn 0.629337 0.749031 -0.207092 -vn 0.015595 0.945301 -0.325827 -vn 0.964909 0.260725 0.031175 -vn 0.003960 -0.990569 0.136954 -vn 0.003960 -0.990569 0.136954 -vn -0.054248 -0.035311 0.997903 -vn -0.056548 -0.026579 0.998046 -vn -0.058844 -0.017845 0.998108 -vn -0.008242 -0.844924 0.534823 -vn -0.040494 -0.294223 0.954878 -vn -0.046832 -0.642706 0.764680 -vn -0.048895 -0.289439 0.955947 -vn -0.057227 -0.284663 0.956918 -vn -0.078329 -0.403392 0.911669 -vn -0.139225 -0.140428 0.980253 -vn -0.139225 -0.140428 0.980253 -vn -0.176416 0.006735 0.984293 -vn -0.176416 0.006735 0.984293 -vn -0.176416 0.006735 0.984293 -vn 0.950690 -0.100397 0.293442 -vn 0.917871 0.186096 0.350544 -vn 0.868002 0.138068 0.476981 -vn 0.830271 -0.196277 0.521657 -vn 0.950690 -0.100397 0.293442 -vn 0.917871 0.186096 0.350544 -vn 0.868002 0.138068 0.476981 -vn 0.830271 -0.196277 0.521657 -vn -0.000197 -0.000261 1.000000 -vn -0.000082 -0.000105 1.000000 -vn -0.000082 -0.000105 1.000000 -vn -0.000140 -0.000183 1.000000 -vn -0.000140 -0.000183 1.000000 -vn -0.000166 -0.000082 -1.000000 -vn -0.000210 -0.000192 -1.000000 -vn -0.000188 -0.000137 -1.000000 -vn -0.000210 -0.000192 -1.000000 -vn -0.000188 -0.000137 -1.000000 -vn -0.000017 0.000000 1.000000 -vn 0.000000 -0.000016 1.000000 -vn 0.000000 -0.000016 1.000000 -vn -0.000008 -0.000008 1.000000 -vn -0.000008 -0.000008 1.000000 -vn -0.555518 -0.368362 -0.745459 -vn -0.390893 -0.269628 -0.880059 -vn -0.476491 -0.321209 -0.818402 -vn -0.390893 -0.269628 -0.880059 -vn -0.476491 -0.321209 -0.818402 -vn -0.032244 -0.998929 -0.033195 -vn -0.032244 -0.998929 -0.033195 -vn -0.063905 -0.997956 0.000000 -vn -0.063905 -0.997956 0.000000 -vn -0.000656 -1.000000 -0.000013 -vn -0.063765 -0.995760 -0.066306 -vn -0.063765 -0.995760 0.066306 -vn -0.032244 -0.998929 0.033195 -vn -0.032244 -0.998929 0.033195 -vn -0.000656 -1.000000 0.000013 -vn -0.000305 -0.000229 -1.000000 -vn -0.000225 -0.000132 -1.000000 -vn -0.000265 -0.000181 -1.000000 -vn -0.000225 -0.000132 -1.000000 -vn -0.000265 -0.000181 -1.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 -0.000010 -vn 0.000000 1.000000 -0.000010 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 -0.000010 -vn 0.000000 1.000000 0.000010 -vn 0.000000 1.000000 0.000010 -vn 0.000000 1.000000 0.000010 -vn 0.918662 0.395043 0.000000 -vn 0.918662 0.395043 -0.000015 -vn 0.918662 0.395043 -0.000015 -vn 0.918662 0.395043 0.000000 -vn 0.918662 0.395043 0.000015 -vn 0.918662 0.395043 0.000015 -vn -0.000057 1.000000 -0.000103 -vn -0.000015 1.000000 -0.000141 -vn -0.000098 1.000000 -0.000066 -vn -0.000098 1.000000 0.000000 -vn -0.000015 1.000000 -0.000141 -vn -0.000057 1.000000 -0.000103 -vn -0.000098 1.000000 0.000000 -vn -0.000015 1.000000 0.000141 -vn -0.000057 1.000000 0.000103 -vn -0.000098 1.000000 0.000066 -vn -0.000015 1.000000 0.000141 -vn -0.000057 1.000000 0.000103 -vn -0.003009 0.999937 0.010797 -vn 0.365466 0.930591 0.020860 -vn 0.791482 0.609971 0.038629 -vn 0.883316 0.466393 0.047225 -vn 0.887087 0.459285 0.046201 -vn 0.887087 0.459285 0.046201 -vn 0.883316 0.466393 0.047225 -vn 0.791482 0.609971 0.038629 -vn 0.365466 0.930591 0.020860 -vn -0.003009 0.999937 0.010797 -vn 0.941501 0.337010 0.000000 -vn 0.941501 0.337010 0.000000 -vn 0.941501 0.337010 0.000000 -vn 0.941501 0.337010 0.000000 -vn 0.941501 0.337010 0.000000 -vn 0.941501 0.337010 0.000000 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.382684 0.000000 -0.923879 -vn -0.382683 0.000000 -0.923880 -vn -0.923879 0.000000 -0.382684 -vn -0.923879 0.000000 -0.382684 -vn -0.923879 0.000000 0.382684 -vn -0.923879 0.000000 0.382684 -vn -0.382683 0.000000 0.923880 -vn -0.382683 0.000000 0.923880 -vn 0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn -0.382683 0.000000 -0.923880 -vn 0.382684 0.000000 -0.923879 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn -0.923879 0.000000 -0.382684 -vn -0.923879 0.000000 -0.382684 -vn -0.923879 0.000000 0.382684 -vn -0.923879 0.000000 0.382684 -vn -0.382683 0.000000 0.923880 -vn -0.382683 0.000000 0.923880 -vn 0.382683 0.000000 0.923880 -vn 0.382683 0.000000 0.923880 -vn -0.382683 0.000000 -0.923880 -vn -0.382683 0.000000 -0.923880 -vn 0.382683 0.000000 -0.923880 -vn 0.382683 0.000000 -0.923880 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.923823 0.011019 0.382660 -vn 0.849397 -0.393369 0.351832 -vn 0.825592 -0.448836 0.341971 -vn 0.917828 -0.114267 0.380176 -vn 0.923823 0.011019 -0.382660 -vn 0.849397 -0.393369 -0.351832 -vn 0.825592 -0.448836 -0.341971 -vn 0.917828 -0.114267 -0.380177 -vn -0.923823 0.011019 -0.382661 -vn -0.849397 -0.393369 -0.351832 -vn -0.825591 -0.448836 -0.341972 -vn -0.917828 -0.114266 -0.380177 -vn -0.923823 0.011019 0.382660 -vn -0.849397 -0.393369 0.351832 -vn -0.825591 -0.448837 0.341972 -vn -0.917828 -0.114266 0.380177 -vn -0.382660 0.011019 0.923824 -vn -0.465296 -0.256226 0.847259 -vn -0.341971 -0.448837 0.825592 -vn -0.380177 -0.114267 0.917828 -vn 0.382660 0.011019 0.923823 -vn 0.465296 -0.256226 0.847259 -vn 0.341971 -0.448837 0.825591 -vn 0.380177 -0.114267 0.917828 -vn 0.265892 -0.719194 0.641920 -vn -0.265891 -0.719194 0.641920 -vn 0.000000 -0.691140 0.722721 -vn 0.000000 0.010180 0.999948 -vn -0.382660 0.011019 -0.923824 -vn -0.465296 -0.256226 -0.847259 -vn -0.265891 -0.719194 -0.641920 -vn -0.341971 -0.448837 -0.825592 -vn -0.380177 -0.114267 -0.917828 -vn 0.382660 0.011019 -0.923823 -vn 0.465296 -0.256226 -0.847259 -vn 0.000000 0.010180 -0.999948 -vn 0.265892 -0.719195 -0.641920 -vn 0.341971 -0.448837 -0.825591 -vn 0.000000 -0.691141 -0.722720 -vn 0.380177 -0.114267 -0.917828 -vn 0.390967 -0.906045 0.161946 -vn 0.390967 -0.906045 0.161946 -vn 0.390967 -0.906046 -0.161945 -vn 0.390967 -0.906046 -0.161945 -vn -0.390967 -0.906045 -0.161946 -vn -0.390967 -0.906045 -0.161946 -vn -0.390967 -0.906045 0.161946 -vn -0.390967 -0.906045 0.161946 -vn -0.161944 -0.906046 0.390967 -vn -0.161944 -0.906046 0.390967 -vn 0.161944 -0.906046 0.390967 -vn 0.161944 -0.906046 0.390967 -vn -0.161944 -0.906046 -0.390967 -vn -0.161944 -0.906046 -0.390967 -vn 0.161944 -0.906046 -0.390966 -vn 0.161944 -0.906046 -0.390966 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.382684 0.000000 0.923879 -vn -0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn -0.382684 0.000000 -0.923879 -vn -0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn -0.174226 0.982058 -0.072168 -vn -0.174226 0.982058 -0.072168 -vn -0.174226 0.982058 0.072166 -vn -0.174226 0.982058 0.072166 -vn 0.174226 0.982058 0.072168 -vn 0.174226 0.982058 0.072168 -vn 0.174226 0.982058 -0.072168 -vn 0.174226 0.982058 -0.072168 -vn 0.072167 0.982058 -0.174226 -vn 0.072167 0.982058 -0.174226 -vn -0.072167 0.982058 -0.174227 -vn -0.072167 0.982058 -0.174227 -vn 0.072167 0.982058 0.174226 -vn 0.072167 0.982058 0.174226 -vn -0.072167 0.982058 0.174225 -vn -0.072167 0.982058 0.174225 -vn -0.915773 0.132185 -0.379325 -vn -0.915773 0.132185 -0.379325 -vn -0.915773 0.132185 0.379325 -vn -0.915773 0.132185 0.379325 -vn 0.915773 0.132184 0.379325 -vn 0.915773 0.132184 0.379325 -vn 0.915773 0.132184 -0.379325 -vn 0.915773 0.132184 -0.379325 -vn 0.379326 0.132184 -0.915773 -vn 0.379326 0.132184 -0.915773 -vn -0.379325 0.132185 -0.915773 -vn -0.379325 0.132185 -0.915773 -vn 0.379326 0.132184 0.915773 -vn 0.379326 0.132184 0.915773 -vn -0.379325 0.132185 0.915773 -vn -0.379325 0.132185 0.915773 -vn 0.044453 0.998842 0.018413 -vn 0.044453 0.998842 0.018413 -vn 0.044453 0.998842 -0.018413 -vn 0.044453 0.998842 -0.018413 -vn -0.044453 0.998842 -0.018413 -vn -0.044453 0.998842 -0.018413 -vn -0.044453 0.998842 0.018413 -vn -0.044453 0.998842 0.018413 -vn -0.018413 0.998842 0.044452 -vn -0.018413 0.998842 0.044452 -vn 0.018413 0.998842 0.044452 -vn 0.018413 0.998842 0.044452 -vn -0.018413 0.998842 -0.044452 -vn -0.018413 0.998842 -0.044452 -vn 0.018413 0.998842 -0.044452 -vn 0.018413 0.998842 -0.044452 -vn 0.923730 0.017953 0.382623 -vn 0.923730 0.017953 0.382623 -vn 0.923730 0.017953 -0.382623 -vn 0.923730 0.017953 -0.382623 -vn 0.382621 0.017953 -0.923731 -vn -0.382621 0.017953 -0.923731 -vn -0.923730 0.017953 -0.382622 -vn -0.923730 0.017953 -0.382622 -vn -0.923730 0.017953 0.382622 -vn -0.923730 0.017953 0.382622 -vn -0.382621 0.017953 0.923731 -vn -0.382621 0.017953 0.923731 -vn 0.382621 0.017953 0.923731 -vn 0.382621 0.017953 0.923731 -vn -0.382621 0.017953 -0.923731 -vn 0.382621 0.017953 -0.923731 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.382684 0.000000 -0.923879 -vn -0.382684 0.000000 -0.923879 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923879 0.000000 0.382684 -vn -0.923879 0.000000 0.382684 -vn -0.382683 0.000000 0.923880 -vn -0.382683 0.000000 0.923880 -vn 0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn -0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.382684 0.000000 0.923879 -vn -0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn -0.382684 0.000000 -0.923879 -vn -0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.923823 0.011019 0.382660 -vn 0.849397 -0.393368 0.351832 -vn 0.825592 -0.448836 0.341971 -vn 0.917828 -0.114267 0.380176 -vn 0.923823 0.011019 -0.382660 -vn 0.849397 -0.393368 -0.351832 -vn 0.825592 -0.448835 -0.341971 -vn 0.917828 -0.114267 -0.380176 -vn -0.923823 0.011019 -0.382660 -vn -0.849397 -0.393369 -0.351832 -vn -0.825591 -0.448837 -0.341972 -vn -0.917828 -0.114267 -0.380177 -vn -0.923823 0.011019 0.382660 -vn -0.849397 -0.393368 0.351832 -vn -0.825592 -0.448836 0.341972 -vn -0.917828 -0.114267 0.380177 -vn -0.382660 0.011019 0.923823 -vn -0.465297 -0.256225 0.847259 -vn -0.341971 -0.448836 0.825592 -vn -0.380177 -0.114267 0.917828 -vn 0.382660 0.011019 0.923824 -vn 0.465296 -0.256225 0.847259 -vn 0.341972 -0.448836 0.825592 -vn 0.380178 -0.114267 0.917828 -vn 0.265892 -0.719193 0.641921 -vn -0.265892 -0.719193 0.641921 -vn 0.000000 -0.691139 0.722722 -vn 0.000000 0.010180 0.999948 -vn -0.382660 0.011019 -0.923823 -vn -0.465297 -0.256226 -0.847259 -vn -0.265892 -0.719194 -0.641920 -vn -0.341971 -0.448837 -0.825592 -vn -0.380176 -0.114267 -0.917828 -vn 0.382660 0.011019 -0.923824 -vn 0.465296 -0.256225 -0.847259 -vn 0.000000 0.010180 -0.999948 -vn 0.265892 -0.719194 -0.641920 -vn 0.341972 -0.448837 -0.825591 -vn 0.000000 -0.691141 -0.722720 -vn 0.380178 -0.114267 -0.917828 -vn 0.390970 -0.906045 0.161944 -vn 0.390970 -0.906045 0.161944 -vn 0.390970 -0.906045 -0.161944 -vn 0.390970 -0.906045 -0.161944 -vn -0.390972 -0.906044 -0.161944 -vn -0.390972 -0.906044 -0.161944 -vn -0.390972 -0.906044 0.161944 -vn -0.390972 -0.906044 0.161944 -vn -0.161945 -0.906046 0.390965 -vn -0.161945 -0.906046 0.390965 -vn 0.161945 -0.906046 0.390965 -vn 0.161945 -0.906046 0.390965 -vn -0.161945 -0.906046 -0.390965 -vn -0.161945 -0.906046 -0.390965 -vn 0.161945 -0.906046 -0.390965 -vn 0.161945 -0.906046 -0.390965 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 0.382683 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 -0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.923880 0.000000 0.382683 -vn -0.382684 0.000000 0.923879 -vn -0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn 0.382684 0.000000 0.923879 -vn -0.382684 0.000000 -0.923879 -vn -0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn 0.382684 0.000000 -0.923879 -vn -0.174228 0.982057 -0.072166 -vn -0.174228 0.982057 -0.072166 -vn -0.174228 0.982057 0.072166 -vn -0.174228 0.982057 0.072166 -vn 0.174228 0.982057 0.072166 -vn 0.174228 0.982057 0.072166 -vn 0.174228 0.982057 -0.072166 -vn 0.174228 0.982057 -0.072166 -vn 0.072168 0.982058 -0.174226 -vn 0.072168 0.982058 -0.174226 -vn -0.072168 0.982058 -0.174226 -vn -0.072168 0.982058 -0.174226 -vn 0.072168 0.982058 0.174226 -vn 0.072168 0.982058 0.174226 -vn -0.072168 0.982058 0.174226 -vn -0.072168 0.982058 0.174226 -vn -0.915773 0.132186 -0.379325 -vn -0.915773 0.132186 -0.379325 -vn -0.915773 0.132186 0.379325 -vn -0.915773 0.132186 0.379325 -vn 0.915772 0.132185 0.379326 -vn 0.915772 0.132185 0.379326 -vn 0.915772 0.132185 -0.379326 -vn 0.915772 0.132185 -0.379326 -vn 0.379325 0.132185 -0.915773 -vn 0.379325 0.132185 -0.915773 -vn -0.379326 0.132185 -0.915772 -vn -0.379326 0.132185 -0.915772 -vn 0.379325 0.132185 0.915773 -vn 0.379325 0.132185 0.915773 -vn -0.379326 0.132185 0.915772 -vn -0.379326 0.132185 0.915772 -vn 0.044456 0.998842 0.018415 -vn 0.044456 0.998842 0.018415 -vn 0.044456 0.998842 -0.018415 -vn 0.044456 0.998842 -0.018415 -vn -0.044456 0.998842 -0.018415 -vn -0.044456 0.998842 -0.018415 -vn -0.044456 0.998842 0.018415 -vn -0.044456 0.998842 0.018415 -vn -0.018414 0.998842 0.044456 -vn -0.018414 0.998842 0.044456 -vn 0.018414 0.998842 0.044456 -vn 0.018414 0.998842 0.044456 -vn -0.018414 0.998842 -0.044454 -vn -0.018414 0.998842 -0.044454 -vn 0.018414 0.998842 -0.044454 -vn 0.018414 0.998842 -0.044454 -vn 0.923731 0.017953 0.382622 -vn 0.923731 0.017953 0.382622 -vn 0.923731 0.017953 -0.382622 -vn 0.923731 0.017953 -0.382622 -vn 0.382622 0.017953 -0.923731 -vn -0.382621 0.017953 -0.923731 -vn -0.923730 0.017953 -0.382623 -vn -0.923730 0.017953 -0.382623 -vn -0.923730 0.017953 0.382623 -vn -0.923730 0.017953 0.382623 -vn -0.382621 0.017953 0.923731 -vn -0.382621 0.017953 0.923731 -vn 0.382622 0.017953 0.923731 -vn 0.382622 0.017953 0.923731 -vn -0.382621 0.017953 -0.923731 -vn 0.382622 0.017953 -0.923731 -vn 0.997405 0.071989 0.000000 -vn 0.997405 0.071989 0.000000 -vn 0.705259 0.050902 -0.707120 -vn 0.705259 0.050902 -0.707120 -vn 0.000013 0.000002 -1.000000 -vn 0.000013 0.000002 -1.000000 -vn -0.705264 -0.050900 -0.707115 -vn -0.705264 -0.050900 -0.707115 -vn -0.997406 -0.071986 0.000000 -vn -0.997406 -0.071986 0.000000 -vn -0.705264 -0.050900 0.707115 -vn -0.705264 -0.050900 0.707115 -vn 0.000013 0.000002 1.000000 -vn 0.000013 0.000002 1.000000 -vn 0.705259 0.050902 0.707120 -vn 0.705259 0.050902 0.707120 -vn 0.071959 -0.997408 0.000000 -vn 0.071959 -0.997408 0.000000 -vn 0.071964 -0.997407 0.000019 -vn 0.071964 -0.997407 0.000019 -vn 0.071978 -0.997406 0.000007 -vn 0.071978 -0.997406 0.000007 -vn 0.071987 -0.997406 -0.000012 -vn 0.071987 -0.997406 -0.000012 -vn 0.071987 -0.997406 0.000000 -vn 0.071987 -0.997406 0.000000 -vn 0.071987 -0.997406 0.000012 -vn 0.071987 -0.997406 0.000012 -vn 0.071978 -0.997406 -0.000007 -vn 0.071978 -0.997406 -0.000007 -vn 0.071964 -0.997407 -0.000019 -vn 0.071964 -0.997407 -0.000019 -vn 0.997407 0.071973 0.000000 -vn 0.991926 -0.126817 0.000000 -vn 0.947926 -0.318492 0.000000 -vn 0.705268 0.050894 -0.707112 -vn 0.705568 -0.147480 -0.693126 -vn 0.678421 -0.337945 -0.652333 -vn 0.000007 -0.000003 -1.000000 -vn 0.014247 -0.197373 -0.980225 -vn 0.027776 -0.384902 -0.922539 -vn -0.705273 -0.050905 -0.707106 -vn -0.677081 -0.247265 -0.693125 -vn -0.622862 -0.431854 -0.652338 -vn -0.997406 -0.071987 0.000000 -vn -0.963438 -0.267930 0.000000 -vn -0.892370 -0.451304 0.000000 -vn -0.705273 -0.050905 0.707106 -vn -0.677081 -0.247265 0.693125 -vn -0.622862 -0.431854 0.652338 -vn 0.000008 -0.000003 1.000000 -vn 0.014247 -0.197373 0.980225 -vn 0.027776 -0.384901 0.922540 -vn 0.705269 0.050894 0.707111 -vn 0.705568 -0.147480 0.693125 -vn 0.678421 -0.337945 0.652333 -vn 0.071997 -0.997405 0.000000 -vn 0.071997 -0.997405 0.000000 -vn 0.071990 -0.997405 -0.000006 -vn 0.071990 -0.997405 -0.000006 -vn 0.071993 -0.997405 0.000006 -vn 0.071993 -0.997405 0.000006 -vn 0.072009 -0.997404 0.000018 -vn 0.072009 -0.997404 0.000018 -vn 0.072015 -0.997404 0.000000 -vn 0.072015 -0.997404 0.000000 -vn 0.072009 -0.997404 -0.000018 -vn 0.072009 -0.997404 -0.000018 -vn 0.071993 -0.997405 -0.000006 -vn 0.071993 -0.997405 -0.000006 -vn 0.071990 -0.997405 0.000006 -vn 0.071990 -0.997405 0.000006 -vn 0.997407 0.071963 0.000000 -vn 0.997407 0.071963 0.000000 -vn 0.705270 0.050889 -0.707110 -vn 0.705270 0.050889 -0.707110 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn -0.705272 -0.050902 -0.707107 -vn -0.705272 -0.050902 -0.707107 -vn -0.997405 -0.071990 0.000000 -vn -0.997405 -0.071990 0.000000 -vn -0.705272 -0.050902 0.707107 -vn -0.705272 -0.050902 0.707107 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.705270 0.050889 0.707110 -vn 0.705270 0.050889 0.707110 -vn 0.247111 0.968987 0.000000 -vn 0.247111 0.968987 0.000000 -vn 0.154734 0.962317 -0.223616 -vn 0.154734 0.962317 -0.223616 -vn -0.068287 0.946220 -0.316235 -vn -0.068287 0.946220 -0.316235 -vn -0.291311 0.930127 -0.223610 -vn -0.291311 0.930127 -0.223610 -vn -0.383692 0.923461 0.000000 -vn -0.383692 0.923461 0.000000 -vn -0.291311 0.930128 0.223609 -vn -0.291311 0.930128 0.223609 -vn -0.068287 0.946220 0.316234 -vn -0.068287 0.946220 0.316234 -vn 0.154733 0.962317 0.223616 -vn 0.154733 0.962317 0.223616 -vn 0.756180 -0.654363 0.000000 -vn 0.756180 -0.654363 0.000000 -vn 0.549605 -0.669284 -0.499993 -vn 0.549605 -0.669284 -0.499993 -vn 0.050899 -0.705292 -0.707087 -vn 0.050899 -0.705292 -0.707087 -vn -0.447793 -0.741274 -0.499995 -vn -0.447793 -0.741274 -0.499995 -vn -0.654355 -0.756188 -0.000001 -vn -0.654355 -0.756188 -0.000001 -vn -0.447793 -0.741274 0.499994 -vn -0.447793 -0.741274 0.499994 -vn 0.050899 -0.705292 0.707087 -vn 0.050899 -0.705292 0.707087 -vn 0.549605 -0.669284 0.499994 -vn 0.549605 -0.669284 0.499994 -vn -0.072213 0.997389 0.000000 -vn 0.528444 0.848968 -0.000002 -vn 0.836129 0.548533 0.000000 -vn 0.356614 0.836559 -0.415928 -vn 0.580956 0.530107 -0.617638 -vn -0.058211 0.806620 -0.588197 -vn -0.035055 0.485649 -0.873451 -vn -0.473038 0.776694 -0.415910 -vn -0.651071 0.441199 -0.617616 -vn -0.644864 0.764297 0.000000 -vn -0.906230 0.422786 0.000000 -vn -0.473038 0.776694 0.415910 -vn -0.651071 0.441199 0.617616 -vn -0.058211 0.806620 0.588197 -vn -0.035055 0.485649 0.873451 -vn 0.356614 0.836560 0.415926 -vn 0.580956 0.530107 0.617637 -vn 0.013161 0.008894 0.999874 -vn 0.013161 0.008894 0.999874 -vn 0.409092 -0.576862 0.707017 -vn 0.409092 -0.576862 0.707017 -vn 0.573092 -0.819491 0.000000 -vn 0.573092 -0.819491 0.000000 -vn 0.409092 -0.576862 -0.707018 -vn 0.409092 -0.576862 -0.707018 -vn 0.013161 0.008894 -0.999874 -vn 0.013161 0.008894 -0.999874 -vn -0.382773 0.594654 -0.707016 -vn -0.382773 0.594654 -0.707016 -vn -0.546773 0.837281 0.000000 -vn -0.546773 0.837281 0.000000 -vn -0.382773 0.594654 0.707016 -vn -0.382773 0.594654 0.707016 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn -0.005048 0.008466 -0.999951 -vn -0.001558 0.003019 -0.999994 -vn -0.008365 0.009773 -0.999917 -vn -0.006180 0.002751 -0.999977 -vn 0.031027 -0.045147 -0.998498 -vn 0.083067 -0.146694 -0.985688 -vn 0.171496 -0.296152 -0.939618 -vn 0.379549 -0.370895 -0.847573 -vn 0.612488 -0.633300 -0.473064 -vn 0.001662 -0.284907 -0.958554 -vn -0.002601 -0.611459 -0.791272 -vn -0.004739 -0.614960 -0.788544 -vn -0.001656 -0.620166 -0.784469 -vn -0.002364 -0.624637 -0.780912 -vn -0.003943 -0.628088 -0.778132 -vn -0.002765 -0.630722 -0.776004 -vn 0.001016 -0.631656 -0.775248 -vn 0.055700 -0.627733 -0.776433 -vn 0.226451 -0.593755 -0.772124 -vn 0.431595 -0.502047 -0.749449 -vn 0.559688 -0.398391 -0.726660 -vn 0.640943 -0.317266 -0.698952 -vn 0.637526 -0.529415 -0.559715 -vn 0.328249 -0.731406 -0.597743 -vn 0.503599 -0.691202 -0.518294 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.004050 -0.001464 -0.999991 -vn 0.004050 -0.001464 -0.999991 -vn 0.008099 -0.002928 -0.999963 -vn 0.008099 -0.002928 -0.999963 -vn 0.008099 -0.002928 -0.999963 -vn -0.000622 -0.957209 -0.289396 -vn -0.032745 -0.924632 -0.379451 -vn -0.088118 -0.757908 -0.646383 -vn -0.126585 -0.324875 -0.937248 -vn -0.155548 0.179096 -0.971457 -vn -0.182194 0.240699 -0.953346 -vn 0.682096 -0.710442 -0.173255 -vn 0.382114 -0.914355 -0.133959 -vn 0.484499 -0.866370 -0.121091 -vn 0.387995 -0.898366 -0.205909 -vn 0.665242 -0.692669 -0.278679 -vn 0.619534 -0.642008 -0.451667 -vn 0.343405 -0.880083 -0.327913 -vn 0.138085 -0.809093 -0.571228 -vn 0.423232 -0.483997 -0.765912 -vn -0.443970 0.883317 -0.150474 -vn -0.278328 0.947710 -0.156141 -vn -0.028994 0.982343 -0.184829 -vn 0.180907 0.973766 -0.138031 -vn -0.234810 -0.551473 -0.800463 -vn 0.112474 -0.299001 -0.947601 -vn -0.429138 -0.313068 -0.847248 -vn 0.058509 -0.134104 -0.989239 -vn 0.210505 0.971281 -0.110905 -vn 0.285194 0.197417 -0.937918 -vn 0.357690 0.769708 -0.528778 -vn 0.319524 0.907313 -0.273288 -vn 0.019270 0.977705 -0.209097 -vn -0.085357 0.390766 0.916524 -vn 0.317031 0.181809 -0.930826 -vn 0.436582 0.371589 -0.819340 -vn -0.191248 0.436032 0.879375 -vn 0.446545 0.800932 -0.398881 -vn -0.279063 0.516941 0.809256 -vn 0.068499 0.970003 -0.233244 -vn -0.313107 0.940180 -0.134258 -vn -0.443970 0.883317 -0.150474 -vn -0.191248 0.436032 0.879375 -vn -0.279063 0.516941 0.809256 -vn -0.085357 0.390766 0.916524 -vn -0.265697 0.367191 0.891390 -vn 0.382048 0.076277 -0.920989 -vn 0.556969 -0.013670 -0.830421 -vn 0.405430 0.172048 -0.897790 -vn 0.500121 0.035416 -0.865231 -vn 0.297561 0.153827 -0.942229 -vn 0.333241 0.015263 -0.942718 -vn 0.145215 -0.018635 -0.989225 -vn 0.123103 0.109724 -0.986309 -vn 0.095854 0.135837 -0.986083 -vn 0.110890 -0.030335 -0.993370 -vn 0.049046 0.176580 -0.983064 -vn 0.070909 -0.018533 -0.997311 -vn 0.007370 0.115608 -0.993268 -vn 0.040821 0.045228 -0.998142 -vn 0.004079 0.088693 -0.996051 -vn 0.004596 0.101518 -0.994823 -vn 0.013448 0.082595 -0.996492 -vn -0.015378 0.105704 -0.994279 -vn -0.044604 0.105798 -0.993387 -vn -0.029288 0.098868 -0.994669 -vn -0.032949 0.131347 -0.990789 -vn -0.045682 0.237634 -0.970280 -vn -0.042621 0.067021 -0.996841 -vn -0.093170 0.254066 -0.962689 -vn -0.072399 0.073942 -0.994631 -vn -0.125141 0.258126 -0.957972 -vn -0.105730 0.094396 -0.989904 -vn 0.304162 0.023810 -0.952323 -vn 0.270011 0.041486 -0.961963 -vn 0.374880 0.143776 -0.915857 -vn 0.265584 0.072621 -0.961349 -vn 0.298003 0.116049 -0.947484 -vn 0.159298 0.154959 -0.974993 -vn 0.234602 0.113939 -0.965391 -vn 0.320457 0.197980 -0.926343 -vn 0.136348 0.119007 -0.983487 -vn 0.151169 0.093855 -0.984042 -vn 0.146094 0.075611 -0.986377 -vn 0.112454 0.305711 -0.945460 -vn 0.017516 0.256234 -0.966456 -vn 0.000000 0.327190 -0.944959 -vn -0.027045 0.261613 -0.964794 -vn 0.017531 0.108058 -0.993990 -vn 0.020891 0.168337 -0.985508 -vn 0.031172 0.086795 -0.995738 -vn 0.086871 0.090782 -0.992075 -vn 0.116889 0.165352 -0.979283 -vn 0.116889 0.165352 -0.979283 -vn 0.053620 0.110638 -0.992413 -vn -0.018860 0.116248 -0.993041 -vn 0.030185 0.137334 -0.990065 -vn -0.012559 0.088054 -0.996037 -vn -0.177074 0.118082 -0.977088 -vn 0.000025 0.031657 -0.999499 -vn 0.038914 0.255286 -0.966082 -vn 0.015496 0.272673 -0.961982 -vn 0.000000 0.279250 -0.960218 -vn -0.006966 0.048920 -0.998778 -vn -0.004497 0.140224 -0.990110 -vn -0.004148 0.141952 -0.989865 -vn -0.004147 0.141439 -0.989938 -vn -0.017246 0.127797 -0.991650 -vn -0.026184 0.030281 -0.999198 -vn 0.016002 0.277204 -0.960678 -vn 0.016002 0.277204 -0.960678 -vn -0.012361 0.268507 -0.963198 -vn -0.012361 0.268507 -0.963198 -vn 0.000000 0.218824 -0.975764 -vn -0.023383 0.234430 -0.971852 -vn 0.000185 0.310974 -0.950418 -vn 0.000000 0.310542 -0.950560 -vn -0.061505 0.213730 -0.974955 -vn 0.000184 0.313300 -0.949654 -vn 0.000000 0.313741 -0.949509 -vn 0.000385 0.311767 -0.950159 -vn 0.000384 0.312493 -0.949920 -vn -0.081234 0.271336 -0.959051 -vn -0.130536 0.166777 -0.977316 -vn -0.087111 0.239852 -0.966893 -vn -0.119249 0.254206 -0.959770 -vn -0.132231 0.332916 -0.933639 -vn -0.163495 0.235513 -0.958020 -vn 0.109746 0.210021 -0.971518 -vn -0.088396 0.283924 -0.954763 -vn -0.047399 -0.020257 -0.998671 -vn -0.070976 0.018118 -0.997313 -vn 0.000000 -0.096813 -0.995303 -vn -0.014779 -0.045290 -0.998865 -vn -0.094775 -0.019741 -0.995303 -vn -0.063320 0.024917 -0.997682 -vn 0.014963 0.343466 -0.939046 -vn 0.014963 0.343466 -0.939046 -vn 0.044018 0.097420 -0.994269 -vn -0.014780 0.060170 -0.998079 -vn -0.010960 0.166519 -0.985977 -vn 0.000000 0.113789 -0.993505 -vn -0.065852 0.234308 -0.969930 -vn 0.381431 0.120164 -0.916554 -vn 0.264827 0.332418 0.905188 -vn 0.148874 0.354954 0.922954 -vn -0.004617 0.173236 -0.984869 -vn -0.051868 0.232639 -0.971179 -vn -0.139632 0.244987 -0.959419 -vn -0.169449 0.263015 -0.949795 -vn -0.182194 0.240699 -0.953346 -vn 0.716915 0.112171 -0.688078 -vn 0.758164 0.095473 -0.645037 -vn 0.758164 0.095473 -0.645037 -vn 0.716915 0.112171 -0.688078 -vn -0.183085 0.157225 -0.970443 -vn 0.148874 0.354954 0.922954 -vn 0.359364 0.324809 0.874846 -vn 0.367321 0.351698 0.861037 -vn 0.297364 0.317491 0.900430 -vn 0.458623 0.303871 0.835061 -vn 0.469618 0.323039 0.821647 -vn 0.276933 0.372860 0.885598 -vn 0.297364 0.317491 0.900430 -vn 0.312759 0.218473 0.924365 -vn 0.094421 0.280653 0.955154 -vn -0.018003 0.377460 0.925851 -vn -0.066775 0.368329 0.927294 -vn -0.177074 0.118082 -0.977088 -vn -0.293864 0.230645 0.927603 -vn -0.085639 0.233313 -0.968623 -vn -0.361786 0.326763 0.873119 -vn -0.146949 0.479817 0.864975 -vn 0.048479 0.329208 -0.943012 -vn 0.097063 0.293624 -0.950980 -vn 0.115750 0.257383 -0.959352 -vn 0.212250 0.267783 0.939809 -vn -0.018003 0.377460 0.925851 -vn -0.066775 0.368329 0.927294 -vn -0.293864 0.230645 0.927603 -vn -0.011620 -0.958525 -0.284770 -vn -0.016400 -0.961439 -0.274527 -vn -0.009060 -0.964396 -0.264307 -vn -0.007042 -0.966195 -0.257717 -vn -0.011348 -0.967312 -0.253337 -vn -0.008201 -0.968389 -0.249311 -vn 0.001985 -0.968728 -0.248118 -vn 0.099841 -0.959526 -0.263329 -vn 0.350932 -0.896456 -0.270578 -vn 0.637211 -0.736703 -0.226343 -vn 0.810509 -0.563456 -0.159977 -vn 0.898578 -0.431620 -0.079123 -vn -0.027915 -0.929989 -0.366525 -vn -0.025304 -0.933217 -0.358422 -vn -0.021026 -0.931393 -0.363408 -vn -0.013125 -0.931310 -0.363990 -vn -0.017126 -0.929639 -0.368073 -vn -0.009906 -0.925524 -0.378560 -vn 0.017727 -0.913313 -0.406872 -vn 0.138306 -0.872253 -0.469091 -vn 0.350660 -0.781717 -0.515709 -vn 0.604752 -0.636012 -0.479337 -vn 0.779066 -0.492478 -0.387970 -vn 0.869206 -0.411663 -0.273889 -vn -0.051298 -0.773044 -0.632274 -vn -0.029597 -0.786952 -0.616304 -vn -0.033228 -0.783409 -0.620617 -vn -0.020186 -0.775990 -0.630422 -vn -0.005117 -0.761370 -0.648297 -vn 0.018569 -0.730812 -0.682326 -vn 0.057344 -0.685707 -0.725615 -vn 0.162821 -0.645857 -0.745894 -vn 0.327546 -0.624718 -0.708831 -vn 0.568254 -0.552002 -0.610231 -vn 0.745434 -0.452974 -0.489023 -vn 0.828394 -0.409274 -0.382436 -vn -0.083031 -0.336373 -0.938061 -vn -0.049527 -0.354987 -0.933559 -vn -0.041844 -0.357783 -0.932867 -vn -0.021024 -0.344348 -0.938607 -vn 0.019876 -0.328586 -0.944265 -vn 0.058985 -0.312457 -0.948099 -vn 0.081012 -0.303002 -0.949540 -vn 0.135971 -0.321898 -0.936960 -vn 0.243140 -0.369569 -0.896829 -vn 0.485396 -0.368969 -0.792624 -vn 0.682836 -0.329533 -0.652029 -vn 0.768168 -0.313531 -0.558226 -vn 0.578350 0.285793 -0.764090 -vn 0.250386 0.130226 -0.959348 -vn 0.231372 0.415637 -0.879609 -vn 0.282524 0.559972 -0.778853 -vn 0.676715 0.399167 -0.618646 -vn 0.659150 0.075212 -0.748241 -vn 0.647834 -0.110155 -0.753775 -vn 0.590692 -0.107892 -0.799651 -vn 0.405847 0.360061 -0.840026 -vn 0.676715 0.399167 -0.618646 -vn 0.659150 0.075212 -0.748241 -vn 0.647834 -0.110155 -0.753775 -vn 0.590692 -0.107892 -0.799651 -vn 0.590692 -0.107892 -0.799651 -vn 0.590692 -0.107892 -0.799651 -vn 0.282524 0.559972 -0.778853 -vn -0.450579 0.527013 -0.720580 -vn -0.450579 0.527013 -0.720580 -vn -0.295642 0.828243 -0.476035 -vn -0.295642 0.828243 -0.476035 -vn -0.089100 0.984906 -0.148399 -vn 0.003960 -0.990569 -0.136954 -vn 0.003960 -0.990569 -0.136954 -vn -0.054248 -0.035311 -0.997903 -vn -0.056548 -0.026579 -0.998046 -vn -0.058844 -0.017845 -0.998108 -vn -0.040494 -0.294223 -0.954878 -vn -0.008242 -0.844924 -0.534823 -vn -0.046832 -0.642706 -0.764680 -vn -0.048895 -0.289439 -0.955947 -vn -0.057227 -0.284663 -0.956918 -vn -0.078329 -0.403392 -0.911668 -vn -0.139225 -0.140428 -0.980253 -vn -0.139225 -0.140428 -0.980253 -vn -0.176416 0.006735 -0.984293 -vn -0.176416 0.006735 -0.984293 -vn -0.176416 0.006735 -0.984293 -vn 0.950690 -0.100397 -0.293442 -vn 0.917871 0.186096 -0.350544 -vn 0.868001 0.138068 -0.476981 -vn 0.830271 -0.196277 -0.521657 -vn 0.950690 -0.100397 -0.293442 -vn 0.917871 0.186096 -0.350544 -vn 0.868001 0.138068 -0.476981 -vn 0.830271 -0.196277 -0.521657 -vn -0.000197 -0.000261 -1.000000 -vn -0.000082 -0.000105 -1.000000 -vn -0.000082 -0.000105 -1.000000 -vn -0.000140 -0.000183 -1.000000 -vn -0.000140 -0.000183 -1.000000 -vn -0.000166 -0.000082 1.000000 -vn -0.000210 -0.000192 1.000000 -vn -0.000188 -0.000137 1.000000 -vn -0.000210 -0.000192 1.000000 -vn -0.000188 -0.000137 1.000000 -vn -0.000017 0.000000 -1.000000 -vn 0.000000 -0.000016 -1.000000 -vn 0.000000 -0.000016 -1.000000 -vn -0.000008 -0.000008 -1.000000 -vn -0.000008 -0.000008 -1.000000 -vn -0.555518 -0.368362 0.745459 -vn -0.476491 -0.321209 0.818402 -vn -0.390893 -0.269628 0.880059 -vn -0.476491 -0.321209 0.818402 -vn -0.390893 -0.269628 0.880059 -vn -0.000305 -0.000229 1.000000 -vn -0.000225 -0.000132 1.000000 -vn -0.000265 -0.000181 1.000000 -vn -0.000225 -0.000132 1.000000 -vn -0.000265 -0.000181 1.000000 -vn -0.003009 0.999937 -0.010797 -vn 0.365466 0.930591 -0.020860 -vn 0.791482 0.609971 -0.038629 -vn 0.883316 0.466393 -0.047226 -vn 0.887087 0.459285 -0.046201 -vn 0.887087 0.459285 -0.046201 -vn 0.883316 0.466393 -0.047226 -vn 0.791482 0.609971 -0.038629 -vn 0.365466 0.930591 -0.020860 -vn -0.003009 0.999937 -0.010797 -vn 0.899818 0.432912 0.053989 -vn 0.855654 0.497688 0.141994 -vn 0.791101 0.611685 0.000000 -vn 0.667633 0.742423 0.055444 -vn 0.668223 0.743041 0.036983 -vn 0.668698 0.743534 0.000000 -vn -0.000002 0.998668 0.051588 -vn -0.000001 0.999408 0.034409 -vn 0.000000 1.000000 0.000000 -vn -0.667632 0.742424 0.055444 -vn -0.668222 0.743042 0.036983 -vn -0.668698 0.743534 0.000000 -vn -0.899815 0.432919 0.053989 -vn -0.900545 0.433268 0.036010 -vn -0.901130 0.433548 0.000000 -vn 0.745737 0.666074 0.014915 -vn 0.745737 0.666074 0.014915 -vn 0.745737 0.666074 0.014915 -vn 0.749358 0.661826 0.021169 -vn 0.756453 0.653702 0.021301 -vn 0.855819 0.216306 0.469878 -vn 0.835209 0.472749 0.280953 -vn 0.734879 0.677350 0.033918 -vn 0.705775 0.708095 0.021988 -vn 0.696867 0.716869 0.021803 -vn 0.692228 0.721546 0.013841 -vn 0.692296 0.721613 0.000000 -vn 0.909932 0.326044 0.256358 -vn 0.840054 0.537837 0.070998 -vn 0.808999 0.582269 0.080523 -vn 0.774704 0.631568 0.030906 -vn 0.766343 0.642432 0.000000 -vn 0.916005 0.359898 0.177223 -vn 0.908113 0.414910 0.056399 -vn 0.906833 0.421491 0.000000 -vn 0.852002 0.105637 0.512771 -vn 0.852948 0.109895 0.510297 -vn 0.812134 -0.000004 0.583472 -vn 0.845581 0.033342 0.532805 -vn 0.912297 0.090853 0.399324 -vn 0.942579 0.239933 0.232329 -vn 0.772410 -0.203442 0.601659 -vn 0.820110 -0.184602 0.541610 -vn 0.910916 -0.148014 0.385129 -vn 0.961603 -0.135715 0.238542 -vn 0.979385 -0.142420 0.143254 -vn 0.990364 -0.132350 0.040778 -vn 0.992556 -0.121791 0.000000 -vn 0.747426 -0.435266 0.501894 -vn 0.779154 -0.476694 0.407041 -vn 0.823362 -0.518545 0.230620 -vn 0.850162 -0.517719 0.095870 -vn 0.852938 -0.521533 0.022390 -vn 0.847102 -0.531397 0.005863 -vn 0.846332 -0.532656 -0.000027 -vn 0.730419 -0.548998 0.406312 -vn 0.740092 -0.613764 0.274877 -vn 0.752137 -0.648224 0.118726 -vn 0.802817 -0.593755 0.054228 -vn 0.832290 -0.554339 -0.000851 -vn 0.811583 -0.584236 -0.000878 -vn 0.789837 -0.613316 -0.000054 -vn 0.668223 0.743041 -0.036983 -vn 0.667633 0.742423 -0.055444 -vn 0.899818 0.432912 -0.053989 -vn 0.855654 0.497688 -0.141994 -vn 0.749358 0.661826 -0.021169 -vn 0.745737 0.666074 -0.014915 -vn 0.745737 0.666074 -0.014915 -vn 0.745737 0.666074 -0.014915 -vn 0.756453 0.653702 -0.021301 -vn -0.000001 0.999408 -0.034409 -vn -0.000002 0.998668 -0.051588 -vn -0.668222 0.743042 -0.036983 -vn -0.667632 0.742424 -0.055444 -vn -0.900545 0.433268 -0.036010 -vn -0.899815 0.432919 -0.053989 -vn 0.835209 0.472749 -0.280953 -vn 0.734879 0.677350 -0.033918 -vn 0.705775 0.708095 -0.021988 -vn 0.696867 0.716869 -0.021803 -vn 0.692228 0.721546 -0.013841 -vn 0.909932 0.326044 -0.256358 -vn 0.840054 0.537838 -0.070998 -vn 0.808999 0.582269 -0.080523 -vn 0.774704 0.631568 -0.030906 -vn 0.916005 0.359898 -0.177223 -vn 0.908113 0.414910 -0.056399 -vn 0.855819 0.216306 -0.469878 -vn 0.852002 0.105637 -0.512771 -vn 0.852948 0.109895 -0.510297 -vn 0.812134 -0.000004 -0.583472 -vn 0.845581 0.033342 -0.532805 -vn 0.912297 0.090853 -0.399324 -vn 0.942579 0.239933 -0.232329 -vn 0.772410 -0.203442 -0.601659 -vn 0.820110 -0.184602 -0.541610 -vn 0.910916 -0.148014 -0.385129 -vn 0.961603 -0.135715 -0.238542 -vn 0.979385 -0.142420 -0.143254 -vn 0.990364 -0.132350 -0.040778 -vn 0.747426 -0.435266 -0.501894 -vn 0.779154 -0.476694 -0.407041 -vn 0.823362 -0.518545 -0.230620 -vn 0.850162 -0.517719 -0.095870 -vn 0.852937 -0.521533 -0.022390 -vn 0.847112 -0.531381 -0.005890 -vn 0.730419 -0.548997 -0.406312 -vn 0.740092 -0.613764 -0.274877 -vn 0.752137 -0.648224 -0.118726 -vn 0.802817 -0.593755 -0.054228 -vn 0.832290 -0.554339 0.000851 -vn 0.811606 -0.584205 0.000825 -vn 0.899819 -0.432909 0.053989 -vn 0.899819 -0.432909 0.053989 -vn -0.899816 -0.432916 0.053989 -vn -0.900546 -0.433267 0.036010 -vn -0.901130 -0.433548 0.000000 -vn -0.667634 -0.742422 0.055444 -vn -0.662365 -0.748272 0.036898 -vn -0.656896 -0.753981 0.000000 -vn -0.000002 -0.998668 0.051588 -vn 0.017436 -0.999254 0.034473 -vn 0.034891 -0.999391 0.000000 -vn 0.667636 -0.742420 0.055444 -vn 0.571899 -0.819217 0.042606 -vn 0.371705 -0.928351 0.000000 -vn 0.371651 -0.928215 0.017132 -vn 0.371651 -0.928215 0.017132 -vn 0.371651 -0.928215 0.017132 -vn 0.371651 -0.928215 0.017132 -vn 0.371651 -0.928215 0.017132 -vn 0.899819 -0.432909 -0.053989 -vn 0.899819 -0.432909 -0.053989 -vn -0.900546 -0.433267 -0.036010 -vn -0.899816 -0.432916 -0.053989 -vn -0.662365 -0.748272 -0.036898 -vn -0.667635 -0.742422 -0.055444 -vn 0.017436 -0.999254 -0.034473 -vn -0.000002 -0.998668 -0.051588 -vn 0.571899 -0.819217 -0.042606 -vn 0.667636 -0.742420 -0.055444 -vn 0.371651 -0.928214 -0.017132 -vn 0.371651 -0.928214 -0.017132 -vn 0.371651 -0.928214 -0.017132 -vn 0.371651 -0.928214 -0.017132 -vn 0.371651 -0.928214 -0.017132 -vn -0.810233 -0.571641 -0.129415 -vn -0.671909 -0.740634 0.000000 -vn -0.676821 -0.736114 -0.007072 -vn -0.686546 -0.727050 -0.007295 -vn -0.696069 -0.717935 -0.007512 -vn -0.711305 -0.702696 -0.016204 -vn -0.769136 -0.634378 -0.077422 -vn -0.900372 -0.372538 -0.224823 -vn -0.922923 -0.139675 -0.358754 -vn -0.889126 -0.025617 -0.456944 -vn -0.844278 0.196119 -0.498731 -vn -0.795508 0.420875 -0.435926 -vn -0.766404 0.521943 -0.374433 -vn -0.772261 0.565928 -0.288684 -vn -0.793697 0.580479 -0.181904 -vn -0.856434 0.505553 -0.104576 -vn -0.892435 0.450389 -0.026622 -vn -0.873734 0.486253 -0.012079 -vn -0.852481 0.522757 0.000103 -vn -0.909932 -0.326044 -0.256358 -vn -0.840054 -0.537837 -0.070998 -vn -0.756313 -0.653454 -0.031438 -vn -0.808999 -0.582269 -0.080522 -vn -0.715976 -0.697868 -0.018952 -vn -0.729169 -0.684063 -0.019231 -vn -0.774704 -0.631568 -0.030905 -vn -0.706757 -0.707373 -0.010897 -vn -0.766343 -0.642431 0.000000 -vn -0.704435 -0.709768 0.000000 -vn -0.916005 -0.359898 -0.177223 -vn -0.908113 -0.414910 -0.056398 -vn -0.906833 -0.421491 0.000000 -vn -0.865371 -0.449519 -0.221508 -vn -0.891470 -0.127348 -0.434814 -vn -0.882252 -0.046081 -0.468518 -vn -0.912297 -0.090853 -0.399324 -vn -0.942579 -0.239933 -0.232329 -vn -0.853820 0.180375 -0.488320 -vn -0.910916 0.148014 -0.385129 -vn -0.961603 0.135715 -0.238542 -vn -0.979385 0.142420 -0.143254 -vn -0.990364 0.132350 -0.040778 -vn -0.992556 0.121791 0.000000 -vn -0.805482 0.449555 -0.386134 -vn -0.837657 0.479937 -0.260749 -vn -0.873595 0.471447 -0.120704 -vn -0.882382 0.469145 -0.036116 -vn -0.876455 0.481325 -0.012330 -vn -0.874376 0.485250 0.000052 -vn -0.810233 -0.571641 0.129415 -vn -0.676821 -0.736114 0.007072 -vn -0.686546 -0.727050 0.007295 -vn -0.696069 -0.717935 0.007512 -vn -0.711305 -0.702696 0.016205 -vn -0.769136 -0.634378 0.077422 -vn -0.900372 -0.372538 0.224823 -vn -0.922923 -0.139675 0.358754 -vn -0.889126 -0.025617 0.456944 -vn -0.844278 0.196119 0.498731 -vn -0.795508 0.420875 0.435926 -vn -0.766404 0.521943 0.374433 -vn -0.772261 0.565928 0.288684 -vn -0.793697 0.580480 0.181903 -vn -0.856434 0.505553 0.104576 -vn -0.892435 0.450389 0.026622 -vn -0.873776 0.486176 0.012183 -vn -0.756313 -0.653454 0.031438 -vn -0.840054 -0.537837 0.070998 -vn -0.909932 -0.326044 0.256358 -vn -0.729169 -0.684063 0.019231 -vn -0.715976 -0.697868 0.018952 -vn -0.808999 -0.582269 0.080523 -vn -0.706757 -0.707373 0.010897 -vn -0.774704 -0.631568 0.030905 -vn -0.908113 -0.414910 0.056398 -vn -0.916005 -0.359898 0.177223 -vn -0.865371 -0.449519 0.221508 -vn -0.891470 -0.127348 0.434814 -vn -0.882252 -0.046081 0.468518 -vn -0.912297 -0.090853 0.399324 -vn -0.942579 -0.239933 0.232329 -vn -0.853820 0.180375 0.488320 -vn -0.910916 0.148014 0.385128 -vn -0.961603 0.135715 0.238542 -vn -0.979385 0.142420 0.143254 -vn -0.990364 0.132350 0.040778 -vn -0.805482 0.449555 0.386134 -vn -0.837657 0.479937 0.260749 -vn -0.873595 0.471447 0.120704 -vn -0.882382 0.469145 0.036116 -vn -0.876476 0.481286 0.012381 -vn 0.738347 0.674421 0.000000 -vn 0.805468 0.567633 -0.170335 -vn 0.863787 0.499063 -0.069343 -vn 0.619227 0.785212 0.000000 -vn 0.618558 0.784468 -0.044670 -vn 0.617736 0.783530 -0.066952 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.999265 -0.038328 -vn 0.000000 0.998348 -0.057460 -vn -0.619247 0.785197 0.000000 -vn -0.618569 0.784460 -0.044669 -vn -0.617738 0.783529 -0.066951 -vn -0.865875 0.500261 0.000000 -vn -0.864947 0.499727 -0.046263 -vn -0.863789 0.499060 -0.069341 -vn 0.695032 0.718582 -0.023876 -vn 0.689708 0.723699 -0.023740 -vn 0.687015 0.726411 -0.018382 -vn 0.687015 0.726411 -0.018382 -vn 0.687015 0.726411 -0.018379 -vn 0.624714 0.780854 0.000000 -vn 0.624466 0.780880 -0.016398 -vn 0.628227 0.777635 -0.024792 -vn 0.636735 0.770667 -0.025327 -vn 0.717441 0.690516 -0.092012 -vn 0.798070 0.525003 -0.295730 -vn 0.780741 0.288022 -0.554514 -vn 0.731224 0.682138 0.000000 -vn 0.732744 0.680135 -0.022425 -vn 0.753104 0.652786 -0.081886 -vn 0.786793 0.583571 -0.201000 -vn 0.843100 0.418041 -0.338267 -vn 0.800048 0.262514 -0.539453 -vn 0.769962 0.223391 -0.597708 -vn 0.880395 0.474241 0.000000 -vn 0.882146 0.469741 -0.034090 -vn 0.882090 0.440111 -0.167985 -vn 0.866349 0.382375 -0.321293 -vn 0.834359 0.308219 -0.456996 -vn 0.757131 0.222409 -0.614237 -vn 0.729457 0.179958 -0.659930 -vn 0.996828 -0.079589 0.000000 -vn 0.996258 -0.085400 -0.013287 -vn 0.991315 -0.062658 -0.115625 -vn 0.949413 -0.021307 -0.313306 -vn 0.866787 -0.010319 -0.498572 -vn 0.771048 0.023567 -0.636341 -vn 0.732066 0.057951 -0.678764 -vn 0.810683 -0.585485 0.000000 -vn 0.811337 -0.584039 0.025115 -vn 0.820110 -0.571400 0.030345 -vn 0.829057 -0.541638 -0.138900 -vn 0.817000 -0.484846 -0.312147 -vn 0.824654 -0.352067 -0.442713 -vn 0.745632 -0.036899 -0.665336 -vn 0.718556 -0.695469 0.000000 -vn 0.725301 -0.687574 0.034360 -vn 0.709476 -0.701217 0.070270 -vn 0.690551 -0.722539 -0.032824 -vn 0.702154 -0.701121 -0.124136 -vn 0.726806 -0.682700 -0.075323 -vn 0.821862 -0.413404 -0.391969 -vn 0.687015 0.726411 0.018382 -vn 0.687015 0.726411 0.018382 -vn 0.689708 0.723699 0.023740 -vn 0.695032 0.718582 0.023876 -vn 0.805468 0.567634 0.170335 -vn 0.618558 0.784468 0.044669 -vn 0.687015 0.726411 0.018379 -vn 0.617736 0.783530 0.066951 -vn 0.863787 0.499063 0.069342 -vn 0.000000 0.999265 0.038328 -vn -0.000001 0.998348 0.057460 -vn -0.618569 0.784460 0.044669 -vn -0.617738 0.783529 0.066950 -vn -0.864947 0.499727 0.046262 -vn -0.863789 0.499060 0.069340 -vn 0.624466 0.780880 0.016398 -vn 0.628227 0.777635 0.024792 -vn 0.636735 0.770667 0.025327 -vn 0.717441 0.690516 0.092012 -vn 0.798070 0.525003 0.295730 -vn 0.780741 0.288022 0.554514 -vn 0.732744 0.680135 0.022425 -vn 0.753104 0.652786 0.081886 -vn 0.786793 0.583571 0.201000 -vn 0.843100 0.418041 0.338267 -vn 0.800048 0.262514 0.539453 -vn 0.769962 0.223391 0.597709 -vn 0.882146 0.469741 0.034090 -vn 0.882090 0.440111 0.167985 -vn 0.866349 0.382375 0.321293 -vn 0.834359 0.308219 0.456996 -vn 0.757131 0.222409 0.614237 -vn 0.729457 0.179958 0.659930 -vn 0.996258 -0.085400 0.013287 -vn 0.991315 -0.062658 0.115625 -vn 0.949413 -0.021307 0.313306 -vn 0.866786 -0.010319 0.498573 -vn 0.771048 0.023567 0.636341 -vn 0.732066 0.057951 0.678764 -vn 0.811337 -0.584039 -0.025115 -vn 0.820110 -0.571400 -0.030345 -vn 0.829057 -0.541638 0.138900 -vn 0.817000 -0.484846 0.312147 -vn 0.824654 -0.352067 0.442713 -vn 0.745632 -0.036899 0.665336 -vn 0.725301 -0.687574 -0.034360 -vn 0.709476 -0.701217 -0.070270 -vn 0.690551 -0.722539 0.032824 -vn 0.702154 -0.701121 0.124137 -vn 0.726806 -0.682700 0.075323 -vn 0.821862 -0.413404 0.391969 -vn 0.863809 -0.499025 -0.069340 -vn 0.863809 -0.499025 -0.069340 -vn -0.865891 -0.500233 0.000000 -vn -0.864965 -0.499694 -0.046264 -vn -0.863810 -0.499022 -0.069341 -vn -0.608435 -0.793604 0.000000 -vn -0.607419 -0.793149 -0.044239 -vn -0.606266 -0.792515 -0.066043 -vn 0.030470 -0.999536 0.000000 -vn 0.031549 -0.998760 -0.038505 -vn 0.032621 -0.997795 -0.057794 -vn 0.316691 -0.948529 0.000000 -vn 0.530133 -0.846344 -0.051588 -vn 0.631845 -0.772102 -0.068051 -vn 0.316637 -0.948366 -0.018523 -vn 0.316637 -0.948366 -0.018523 -vn 0.316637 -0.948366 -0.018523 -vn 0.316637 -0.948366 -0.018523 -vn 0.316637 -0.948366 -0.018523 -vn 0.863809 -0.499025 0.069340 -vn 0.863809 -0.499025 0.069340 -vn -0.864965 -0.499694 0.046264 -vn -0.863810 -0.499022 0.069341 -vn -0.607419 -0.793149 0.044240 -vn -0.606266 -0.792515 0.066044 -vn 0.031549 -0.998760 0.038505 -vn 0.032621 -0.997795 0.057794 -vn 0.530133 -0.846344 0.051587 -vn 0.316637 -0.948366 0.018523 -vn 0.316637 -0.948366 0.018523 -vn 0.316637 -0.948366 0.018523 -vn 0.316637 -0.948366 0.018523 -vn 0.316637 -0.948366 0.018523 -vn 0.631845 -0.772102 0.068051 -vn -0.599290 -0.800532 0.000000 -vn -0.746101 -0.646479 0.159366 -vn -0.701104 -0.707070 0.092223 -vn -0.639524 -0.768591 0.016628 -vn -0.624929 -0.780630 0.008978 -vn -0.614770 -0.788659 0.008694 -vn -0.604469 -0.796585 0.008397 -vn -0.848774 -0.450443 0.276919 -vn -0.871169 -0.237734 0.429590 -vn -0.832683 -0.174623 0.525496 -vn -0.828398 -0.010699 0.560038 -vn -0.829863 0.122709 0.544307 -vn -0.794675 0.607035 0.000000 -vn -0.800988 0.598102 -0.026321 -vn -0.783234 0.619693 -0.050241 -vn -0.761361 0.642562 0.086279 -vn -0.769103 0.605752 0.203825 -vn -0.799205 0.578094 0.164555 -vn -0.852670 0.383166 0.355157 -vn -0.731224 -0.682137 0.000000 -vn -0.732744 -0.680135 0.022424 -vn -0.637954 -0.769966 0.012870 -vn -0.635658 -0.771970 0.000000 -vn -0.753104 -0.652786 0.081886 -vn -0.646651 -0.762486 0.021393 -vn -0.786793 -0.583571 0.201001 -vn -0.659868 -0.751057 0.022055 -vn -0.737981 -0.668945 0.088861 -vn -0.843100 -0.418041 0.338266 -vn -0.839173 -0.496739 0.221446 -vn -0.849263 -0.269218 0.454175 -vn -0.880395 -0.474241 0.000000 -vn -0.882146 -0.469741 0.034089 -vn -0.882090 -0.440111 0.167985 -vn -0.866349 -0.382375 0.321293 -vn -0.834360 -0.308219 0.456996 -vn -0.808351 -0.219583 0.546216 -vn -0.996828 0.079589 0.000000 -vn -0.996258 0.085400 0.013287 -vn -0.991315 0.062658 0.115625 -vn -0.949413 0.021307 0.313306 -vn -0.866786 0.010319 0.498573 -vn -0.817925 0.000263 0.575325 -vn -0.843462 0.537189 0.000000 -vn -0.844250 0.535541 -0.020928 -vn -0.850533 0.525541 -0.019988 -vn -0.854246 0.493154 0.164505 -vn -0.835439 0.426097 0.347106 -vn -0.851671 0.327905 0.408821 -vn -0.746101 -0.646479 -0.159366 -vn -0.701104 -0.707070 -0.092223 -vn -0.639524 -0.768591 -0.016628 -vn -0.624929 -0.780630 -0.008978 -vn -0.614770 -0.788659 -0.008694 -vn -0.604469 -0.796585 -0.008397 -vn -0.848774 -0.450443 -0.276919 -vn -0.871169 -0.237734 -0.429590 -vn -0.832683 -0.174623 -0.525496 -vn -0.828398 -0.010700 -0.560038 -vn -0.829863 0.122709 -0.544306 -vn -0.800988 0.598102 0.026321 -vn -0.783234 0.619693 0.050241 -vn -0.761361 0.642562 -0.086279 -vn -0.769103 0.605752 -0.203824 -vn -0.799205 0.578094 -0.164555 -vn -0.852670 0.383166 -0.355157 -vn -0.637954 -0.769966 -0.012870 -vn -0.732744 -0.680135 -0.022424 -vn -0.646651 -0.762486 -0.021393 -vn -0.753104 -0.652786 -0.081886 -vn -0.659868 -0.751057 -0.022055 -vn -0.786793 -0.583571 -0.201001 -vn -0.737981 -0.668945 -0.088861 -vn -0.839173 -0.496739 -0.221446 -vn -0.843100 -0.418041 -0.338266 -vn -0.849263 -0.269218 -0.454175 -vn -0.882146 -0.469741 -0.034089 -vn -0.882090 -0.440111 -0.167985 -vn -0.866349 -0.382375 -0.321294 -vn -0.808351 -0.219583 -0.546216 -vn -0.834360 -0.308219 -0.456996 -vn -0.996258 0.085400 -0.013287 -vn -0.991315 0.062658 -0.115625 -vn -0.949413 0.021307 -0.313306 -vn -0.866786 0.010319 -0.498573 -vn -0.817925 0.000263 -0.575325 -vn -0.844250 0.535541 0.020928 -vn -0.850533 0.525541 0.019988 -vn -0.854246 0.493154 -0.164505 -vn -0.835439 0.426097 -0.347106 -vn -0.851671 0.327905 -0.408821 -vn 0.899889 0.432945 0.052521 -vn 0.856173 0.497731 0.138680 -vn 0.791103 0.611683 0.000000 -vn 0.667691 0.742482 0.053937 -vn 0.668249 0.743067 0.035977 -vn 0.668699 0.743533 0.000000 -vn -0.000002 0.998740 0.050186 -vn -0.000001 0.999440 0.033472 -vn 0.000000 1.000000 0.000000 -vn -0.667687 0.742485 0.053937 -vn -0.668247 0.743069 0.035977 -vn -0.668699 0.743534 0.000000 -vn -0.899883 0.432957 0.052521 -vn -0.900576 0.433284 0.035030 -vn -0.901132 0.433546 0.000000 -vn 0.745742 0.666076 0.014508 -vn 0.745742 0.666077 0.014508 -vn 0.745742 0.666077 0.014508 -vn 0.749368 0.661834 0.020592 -vn 0.756462 0.653710 0.020721 -vn 0.860948 0.217589 0.459809 -vn 0.837252 0.472812 0.274696 -vn 0.734903 0.677369 0.032995 -vn 0.705784 0.708104 0.021390 -vn 0.696876 0.716878 0.021209 -vn 0.692231 0.721550 0.013464 -vn 0.692296 0.721613 0.000000 -vn 0.911564 0.326059 0.250473 -vn 0.840178 0.537891 0.069091 -vn 0.809162 0.582337 0.078363 -vn 0.774726 0.631582 0.030066 -vn 0.766343 0.642432 0.000000 -vn 0.916801 0.360119 0.172597 -vn 0.908199 0.414926 0.054881 -vn 0.906833 0.421490 0.000000 -vn 0.858065 0.106377 0.502402 -vn 0.858963 0.110660 0.499938 -vn 0.819652 -0.000090 0.572862 -vn 0.852057 0.033503 0.522376 -vn 0.916174 0.091207 0.390264 -vn 0.943951 0.240171 0.226437 -vn 0.780046 -0.205409 0.591045 -vn 0.826581 -0.186060 0.531173 -vn 0.914503 -0.148473 0.376352 -vn 0.963096 -0.135585 0.232514 -vn 0.979949 -0.142243 0.139520 -vn 0.990415 -0.132297 0.039686 -vn 0.992556 -0.121789 0.000000 -vn 0.752566 -0.437952 0.491775 -vn 0.782666 -0.478388 0.398221 -vn 0.824610 -0.519048 0.224962 -vn 0.850384 -0.517822 0.093312 -vn 0.852950 -0.521538 0.021781 -vn 0.847103 -0.531398 0.005703 -vn 0.846332 -0.532656 -0.000026 -vn 0.733683 -0.551450 0.397004 -vn 0.741600 -0.614900 0.268192 -vn 0.752420 -0.648472 0.115536 -vn 0.802876 -0.593807 0.052761 -vn 0.832290 -0.554339 -0.000828 -vn 0.811583 -0.584236 -0.000855 -vn 0.789837 -0.613316 -0.000052 -vn 0.668249 0.743067 -0.035977 -vn 0.667691 0.742482 -0.053937 -vn 0.899889 0.432945 -0.052521 -vn 0.856173 0.497731 -0.138680 -vn 0.749368 0.661834 -0.020592 -vn 0.745742 0.666077 -0.014508 -vn 0.745742 0.666077 -0.014508 -vn 0.745742 0.666076 -0.014508 -vn 0.756462 0.653709 -0.020721 -vn -0.000002 0.999440 -0.033472 -vn -0.000002 0.998740 -0.050186 -vn -0.668247 0.743069 -0.035977 -vn -0.667688 0.742485 -0.053937 -vn -0.900576 0.433284 -0.035030 -vn -0.899883 0.432957 -0.052521 -vn 0.837252 0.472812 -0.274696 -vn 0.734903 0.677369 -0.032995 -vn 0.705784 0.708104 -0.021390 -vn 0.696876 0.716878 -0.021209 -vn 0.692231 0.721550 -0.013464 -vn 0.911564 0.326058 -0.250473 -vn 0.840178 0.537891 -0.069091 -vn 0.809162 0.582337 -0.078363 -vn 0.774726 0.631582 -0.030066 -vn 0.916801 0.360119 -0.172597 -vn 0.908199 0.414926 -0.054881 -vn 0.860948 0.217589 -0.459809 -vn 0.858065 0.106377 -0.502402 -vn 0.858963 0.110660 -0.499938 -vn 0.819652 -0.000090 -0.572862 -vn 0.852057 0.033503 -0.522376 -vn 0.916174 0.091206 -0.390264 -vn 0.943951 0.240171 -0.226436 -vn 0.780046 -0.205409 -0.591045 -vn 0.826581 -0.186060 -0.531173 -vn 0.914503 -0.148473 -0.376352 -vn 0.963096 -0.135585 -0.232514 -vn 0.979949 -0.142243 -0.139521 -vn 0.990415 -0.132297 -0.039686 -vn 0.752566 -0.437952 -0.491775 -vn 0.782666 -0.478388 -0.398221 -vn 0.824610 -0.519048 -0.224962 -vn 0.850384 -0.517822 -0.093312 -vn 0.852950 -0.521538 -0.021781 -vn 0.847113 -0.531381 -0.005729 -vn 0.733683 -0.551450 -0.397004 -vn 0.741600 -0.614900 -0.268192 -vn 0.752420 -0.648472 -0.115536 -vn 0.802876 -0.593807 -0.052761 -vn 0.832290 -0.554339 0.000828 -vn 0.811606 -0.584205 0.000803 -vn 0.899885 -0.432952 0.052522 -vn 0.899885 -0.432952 0.052522 -vn -0.899880 -0.432964 0.052522 -vn -0.900573 -0.433291 0.035031 -vn -0.901129 -0.433551 0.000000 -vn -0.667692 -0.742481 0.053937 -vn -0.662391 -0.748298 0.035894 -vn -0.656897 -0.753980 0.000000 -vn -0.000002 -0.998740 0.050186 -vn 0.017435 -0.999285 0.033535 -vn 0.034891 -0.999391 0.000000 -vn 0.667695 -0.742478 0.053937 -vn 0.571935 -0.819251 0.041448 -vn 0.371709 -0.928349 0.000000 -vn 0.371656 -0.928221 0.016665 -vn 0.371656 -0.928221 0.016665 -vn 0.371656 -0.928221 0.016665 -vn 0.371656 -0.928221 0.016665 -vn 0.371656 -0.928221 0.016665 -vn 0.899886 -0.432952 -0.052522 -vn 0.899886 -0.432952 -0.052522 -vn -0.900573 -0.433291 -0.035030 -vn -0.899880 -0.432964 -0.052521 -vn -0.662391 -0.748298 -0.035894 -vn -0.667692 -0.742481 -0.053937 -vn 0.017436 -0.999285 -0.033535 -vn -0.000002 -0.998740 -0.050186 -vn 0.571936 -0.819251 -0.041448 -vn 0.667696 -0.742478 -0.053937 -vn 0.371658 -0.928220 -0.016666 -vn 0.371658 -0.928220 -0.016666 -vn 0.371658 -0.928220 -0.016666 -vn 0.371658 -0.928220 -0.016666 -vn 0.371658 -0.928220 -0.016666 -vn -0.810598 -0.571899 -0.125946 -vn -0.671909 -0.740634 0.000000 -vn -0.676822 -0.736115 -0.006880 -vn -0.686547 -0.727051 -0.007096 -vn -0.696070 -0.717936 -0.007308 -vn -0.711311 -0.702701 -0.015763 -vn -0.769270 -0.634467 -0.075335 -vn -0.901669 -0.372819 -0.219088 -vn -0.926116 -0.140148 -0.350239 -vn -0.894138 -0.025648 -0.447056 -vn -0.849984 0.197430 -0.488415 -vn -0.799637 0.422898 -0.426307 -vn -0.769309 0.523922 -0.365608 -vn -0.773996 0.567145 -0.281562 -vn -0.794400 0.581001 -0.177106 -vn -0.856674 0.505719 -0.101775 -vn -0.892452 0.450398 -0.025896 -vn -0.873738 0.486256 -0.011750 -vn -0.852481 0.522758 0.000100 -vn -0.911564 -0.326059 -0.250473 -vn -0.840179 -0.537891 -0.069091 -vn -0.756334 -0.653470 -0.030582 -vn -0.809162 -0.582336 -0.078362 -vn -0.715983 -0.697874 -0.018436 -vn -0.729177 -0.684069 -0.018707 -vn -0.774726 -0.631581 -0.030066 -vn -0.706759 -0.707375 -0.010600 -vn -0.766343 -0.642432 0.000000 -vn -0.704436 -0.709768 0.000000 -vn -0.916801 -0.360119 -0.172597 -vn -0.908199 -0.414926 -0.054881 -vn -0.906833 -0.421490 0.000000 -vn -0.866689 -0.449486 -0.216360 -vn -0.895961 -0.127966 -0.425297 -vn -0.887493 -0.046300 -0.458490 -vn -0.916174 -0.091207 -0.390264 -vn -0.943952 -0.240171 -0.226436 -vn -0.859350 0.181510 -0.478092 -vn -0.914503 0.148472 -0.376352 -vn -0.963096 0.135585 -0.232513 -vn -0.979949 0.142243 -0.139521 -vn -0.990415 0.132297 -0.039686 -vn -0.992556 0.121789 0.000000 -vn -0.808768 0.451110 -0.377352 -vn -0.839214 0.480655 -0.254345 -vn -0.873936 0.471628 -0.117490 -vn -0.882413 0.469161 -0.035134 -vn -0.876459 0.481327 -0.011994 -vn -0.874376 0.485250 0.000050 -vn -0.810598 -0.571899 0.125945 -vn -0.676822 -0.736115 0.006880 -vn -0.686547 -0.727051 0.007096 -vn -0.696070 -0.717936 0.007308 -vn -0.711311 -0.702701 0.015763 -vn -0.769270 -0.634467 0.075335 -vn -0.901669 -0.372819 0.219088 -vn -0.926116 -0.140148 0.350239 -vn -0.894138 -0.025648 0.447056 -vn -0.849984 0.197430 0.488415 -vn -0.799637 0.422898 0.426307 -vn -0.769309 0.523922 0.365608 -vn -0.773996 0.567145 0.281563 -vn -0.794400 0.581001 0.177106 -vn -0.856674 0.505720 0.101775 -vn -0.892452 0.450398 0.025897 -vn -0.873779 0.486178 0.011850 -vn -0.756334 -0.653470 0.030582 -vn -0.840179 -0.537891 0.069091 -vn -0.911564 -0.326059 0.250473 -vn -0.729177 -0.684069 0.018707 -vn -0.715983 -0.697874 0.018436 -vn -0.809162 -0.582336 0.078362 -vn -0.706759 -0.707375 0.010600 -vn -0.774726 -0.631581 0.030066 -vn -0.908199 -0.414926 0.054881 -vn -0.916801 -0.360119 0.172597 -vn -0.866689 -0.449486 0.216360 -vn -0.895961 -0.127966 0.425297 -vn -0.887493 -0.046300 0.458490 -vn -0.916174 -0.091207 0.390264 -vn -0.943952 -0.240171 0.226436 -vn -0.859350 0.181510 0.478092 -vn -0.914503 0.148472 0.376352 -vn -0.963096 0.135585 0.232513 -vn -0.979949 0.142243 0.139521 -vn -0.990415 0.132297 0.039686 -vn -0.808768 0.451110 0.377352 -vn -0.839213 0.480655 0.254345 -vn -0.873936 0.471628 0.117490 -vn -0.882413 0.469161 0.035134 -vn -0.876480 0.481288 0.012044 -vn 0.738347 0.674421 0.000000 -vn 0.806153 0.567767 -0.166608 -vn 0.863896 0.499132 -0.067458 -vn 0.619226 0.785213 0.000000 -vn 0.618594 0.784508 -0.043454 -vn 0.617817 0.783620 -0.065133 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.999305 -0.037285 -vn -0.000001 0.998436 -0.055898 -vn -0.619244 0.785198 0.000000 -vn -0.618602 0.784502 -0.043455 -vn -0.617815 0.783622 -0.065133 -vn -0.865872 0.500266 0.000000 -vn -0.864990 0.499766 -0.045006 -vn -0.863892 0.499140 -0.067459 -vn 0.695043 0.718593 -0.023226 -vn 0.689718 0.723710 -0.023093 -vn 0.687022 0.726417 -0.017881 -vn 0.687022 0.726417 -0.017881 -vn 0.687022 0.726417 -0.017878 -vn 0.624714 0.780853 0.000000 -vn 0.624471 0.780885 -0.015951 -vn 0.628239 0.777647 -0.024117 -vn 0.636747 0.770679 -0.024639 -vn 0.717673 0.690581 -0.089681 -vn 0.800177 0.525367 -0.289320 -vn 0.787284 0.290410 -0.543917 -vn 0.731224 0.682137 0.000000 -vn 0.732755 0.680143 -0.021814 -vn 0.753271 0.652862 -0.079712 -vn 0.787727 0.584035 -0.195933 -vn 0.845671 0.419171 -0.330358 -vn 0.806306 0.264556 -0.529037 -vn 0.777431 0.225586 -0.587122 -vn 0.880395 0.474242 0.000000 -vn 0.882174 0.469754 -0.033162 -vn 0.882771 0.440367 -0.163686 -vn 0.868778 0.383372 -0.313451 -vn 0.838973 0.309714 -0.447438 -vn 0.764875 0.224491 -0.603796 -vn 0.738142 0.182045 -0.649620 -vn 0.996828 -0.079588 0.000000 -vn 0.996263 -0.085397 -0.012925 -vn 0.991668 -0.062376 -0.112711 -vn 0.951868 -0.021112 -0.305780 -vn 0.872481 -0.010318 -0.488540 -vn 0.779498 0.023999 -0.625944 -vn 0.741302 0.058701 -0.668599 -vn 0.810684 -0.585484 0.000000 -vn 0.811350 -0.584049 0.024432 -vn 0.820129 -0.571417 0.029518 -vn 0.829589 -0.541693 -0.135462 -vn 0.819375 -0.485373 -0.305022 -vn 0.829011 -0.352148 -0.434433 -vn 0.754667 -0.037342 -0.655044 -vn 0.718556 -0.695469 0.000000 -vn 0.725325 -0.687595 0.033425 -vn 0.709570 -0.701311 0.068364 -vn 0.690571 -0.722559 -0.031951 -vn 0.702443 -0.701413 -0.120804 -vn 0.726916 -0.682805 -0.073285 -vn 0.825351 -0.413141 -0.384851 -vn 0.687022 0.726417 0.017881 -vn 0.687022 0.726417 0.017881 -vn 0.689718 0.723710 0.023093 -vn 0.695043 0.718593 0.023226 -vn 0.806153 0.567767 0.166608 -vn 0.618594 0.784508 0.043455 -vn 0.687022 0.726417 0.017878 -vn 0.617817 0.783619 0.065133 -vn 0.863896 0.499131 0.067460 -vn 0.000000 0.999305 0.037285 -vn -0.000001 0.998436 0.055898 -vn -0.618602 0.784502 0.043455 -vn -0.617814 0.783622 0.065134 -vn -0.864990 0.499766 0.045007 -vn -0.863891 0.499140 0.067461 -vn 0.624471 0.780885 0.015952 -vn 0.628239 0.777647 0.024117 -vn 0.636747 0.770679 0.024639 -vn 0.717673 0.690581 0.089681 -vn 0.800177 0.525367 0.289320 -vn 0.787284 0.290410 0.543917 -vn 0.732755 0.680143 0.021814 -vn 0.753271 0.652862 0.079712 -vn 0.787727 0.584035 0.195933 -vn 0.845671 0.419171 0.330358 -vn 0.806306 0.264556 0.529037 -vn 0.777431 0.225586 0.587122 -vn 0.882174 0.469754 0.033162 -vn 0.882771 0.440367 0.163686 -vn 0.868778 0.383372 0.313451 -vn 0.838973 0.309714 0.447438 -vn 0.764875 0.224490 0.603796 -vn 0.738142 0.182045 0.649620 -vn 0.996263 -0.085397 0.012925 -vn 0.991668 -0.062376 0.112711 -vn 0.951868 -0.021112 0.305780 -vn 0.872481 -0.010318 0.488540 -vn 0.779498 0.023999 0.625944 -vn 0.741302 0.058701 0.668600 -vn 0.811351 -0.584049 -0.024432 -vn 0.820129 -0.571417 -0.029518 -vn 0.829589 -0.541693 0.135462 -vn 0.819375 -0.485373 0.305022 -vn 0.829011 -0.352148 0.434434 -vn 0.754667 -0.037342 0.655044 -vn 0.725325 -0.687595 -0.033425 -vn 0.709570 -0.701311 -0.068364 -vn 0.690571 -0.722559 0.031951 -vn 0.702443 -0.701413 0.120804 -vn 0.726916 -0.682805 0.073285 -vn 0.825351 -0.413141 0.384851 -vn 0.863925 -0.499082 -0.067460 -vn 0.863925 -0.499082 -0.067460 -vn -0.865893 -0.500229 0.000000 -vn -0.865015 -0.499723 -0.045006 -vn -0.863920 -0.499091 -0.067460 -vn -0.608436 -0.793603 0.000000 -vn -0.607457 -0.793186 -0.043037 -vn -0.606349 -0.792599 -0.064251 -vn 0.030471 -0.999536 0.000000 -vn 0.031551 -0.998800 -0.037458 -vn 0.032627 -0.997885 -0.056223 -vn 0.316688 -0.948530 0.000000 -vn 0.530187 -0.846394 -0.050186 -vn 0.631936 -0.772187 -0.066204 -vn 0.316636 -0.948376 -0.018019 -vn 0.316636 -0.948376 -0.018019 -vn 0.316636 -0.948376 -0.018019 -vn 0.316636 -0.948376 -0.018019 -vn 0.316636 -0.948376 -0.018019 -vn 0.863925 -0.499082 0.067460 -vn 0.863925 -0.499082 0.067460 -vn -0.865015 -0.499723 0.045006 -vn -0.863920 -0.499091 0.067460 -vn -0.607457 -0.793186 0.043037 -vn -0.606349 -0.792599 0.064251 -vn 0.031551 -0.998800 0.037458 -vn 0.032626 -0.997885 0.056224 -vn 0.530187 -0.846394 0.050187 -vn 0.316636 -0.948376 0.018019 -vn 0.316636 -0.948376 0.018019 -vn 0.316636 -0.948376 0.018019 -vn 0.316636 -0.948376 0.018019 -vn 0.316636 -0.948376 0.018019 -vn 0.631936 -0.772187 0.066205 -vn -0.599290 -0.800532 0.000000 -vn -0.746611 -0.646922 0.155129 -vn -0.701281 -0.707213 0.089752 -vn -0.639529 -0.768597 0.016175 -vn -0.624930 -0.780632 0.008733 -vn -0.614771 -0.788661 0.008457 -vn -0.604470 -0.796586 0.008169 -vn -0.850655 -0.451033 0.270102 -vn -0.875490 -0.238936 0.420031 -vn -0.838922 -0.175843 0.515063 -vn -0.835471 -0.010815 0.549428 -vn -0.836553 0.123691 0.533741 -vn -0.794675 0.607035 0.000000 -vn -0.801003 0.598112 -0.025605 -vn -0.783288 0.619735 -0.048875 -vn -0.761511 0.642683 0.084027 -vn -0.769960 0.606434 0.198493 -vn -0.799785 0.578517 0.160191 -vn -0.855618 0.383711 0.347394 -vn -0.731224 -0.682137 0.000000 -vn -0.732754 -0.680143 0.021814 -vn -0.637957 -0.769970 0.012520 -vn -0.635659 -0.771970 0.000000 -vn -0.753271 -0.652862 0.079711 -vn -0.646659 -0.762495 0.020811 -vn -0.787727 -0.584035 0.195932 -vn -0.659878 -0.751067 0.021455 -vn -0.738191 -0.669008 0.086614 -vn -0.845671 -0.419171 0.330358 -vn -0.840448 -0.496941 0.216096 -vn -0.853971 -0.270770 0.444317 -vn -0.880395 -0.474242 0.000000 -vn -0.882174 -0.469754 0.033162 -vn -0.882771 -0.440367 0.163685 -vn -0.868777 -0.383372 0.313452 -vn -0.838973 -0.309714 0.447439 -vn -0.814886 -0.221235 0.535739 -vn -0.996828 0.079588 0.000000 -vn -0.996263 0.085397 0.012925 -vn -0.991668 0.062376 0.112711 -vn -0.951868 0.021111 0.305780 -vn -0.872481 0.010318 0.488540 -vn -0.825279 0.000153 0.564726 -vn -0.843462 0.537189 0.000000 -vn -0.844260 0.535547 -0.020359 -vn -0.850544 0.525544 -0.019441 -vn -0.854915 0.493345 0.160407 -vn -0.838262 0.426955 0.339156 -vn -0.855533 0.328568 0.400132 -vn -0.746611 -0.646922 -0.155129 -vn -0.701281 -0.707213 -0.089752 -vn -0.639529 -0.768597 -0.016175 -vn -0.624930 -0.780632 -0.008733 -vn -0.614771 -0.788661 -0.008457 -vn -0.604470 -0.796586 -0.008169 -vn -0.850655 -0.451033 -0.270102 -vn -0.875490 -0.238936 -0.420031 -vn -0.838922 -0.175843 -0.515063 -vn -0.835471 -0.010815 -0.549428 -vn -0.836553 0.123691 -0.533741 -vn -0.801003 0.598112 0.025605 -vn -0.783288 0.619735 0.048875 -vn -0.761511 0.642683 -0.084027 -vn -0.769960 0.606434 -0.198493 -vn -0.799786 0.578517 -0.160191 -vn -0.855618 0.383711 -0.347394 -vn -0.637957 -0.769970 -0.012520 -vn -0.732754 -0.680143 -0.021814 -vn -0.646659 -0.762495 -0.020811 -vn -0.753271 -0.652862 -0.079711 -vn -0.659878 -0.751067 -0.021455 -vn -0.787727 -0.584035 -0.195932 -vn -0.738191 -0.669008 -0.086614 -vn -0.840448 -0.496941 -0.216096 -vn -0.845671 -0.419171 -0.330358 -vn -0.853971 -0.270770 -0.444317 -vn -0.882174 -0.469754 -0.033162 -vn -0.882771 -0.440367 -0.163685 -vn -0.868777 -0.383372 -0.313452 -vn -0.814886 -0.221235 -0.535739 -vn -0.838973 -0.309714 -0.447439 -vn -0.996263 0.085397 -0.012925 -vn -0.991668 0.062376 -0.112711 -vn -0.951868 0.021111 -0.305780 -vn -0.872481 0.010318 -0.488540 -vn -0.825279 0.000153 -0.564726 -vn -0.844260 0.535547 0.020359 -vn -0.850544 0.525544 0.019441 -vn -0.854915 0.493345 -0.160407 -vn -0.838262 0.426955 -0.339156 -vn -0.855533 0.328568 -0.400132 -vn 0.993924 0.089671 0.063831 -vn 0.991388 0.089520 0.095585 -vn 0.951185 -0.294245 0.093093 -vn 0.949761 -0.263276 0.169235 -vn 0.997765 -0.059685 0.030054 -vn 0.997956 -0.059356 0.023660 -vn 0.997550 -0.065796 0.023773 -vn 0.997092 -0.072360 0.023888 -vn 0.991277 -0.131793 0.000000 -vn 0.995962 0.089777 0.000000 -vn 0.997188 -0.067887 0.031734 -vn 0.679311 0.731442 0.059403 -vn 0.677813 0.729831 0.088978 -vn 0.680514 0.732736 0.000000 -vn 0.016056 0.997832 0.063832 -vn 0.016088 0.995291 0.095587 -vn 0.016015 0.999872 0.000000 -vn -0.364558 0.929104 0.062153 -vn -0.363677 0.926862 0.093094 -vn -0.365266 0.930903 0.000000 -vn 0.917270 -0.258315 0.303131 -vn 0.998959 -0.024410 0.038551 -vn 0.999612 0.008824 0.026436 -vn 0.999517 0.016521 0.026336 -vn 0.999675 0.018217 0.017848 -vn 0.999876 0.015741 0.000000 -vn 0.884956 -0.376979 0.273386 -vn 0.981145 -0.177428 0.076642 -vn 0.988508 -0.123689 0.086911 -vn 0.997365 -0.064404 0.033395 -vn 0.998710 -0.050770 0.000000 -vn 0.913828 -0.358465 0.190845 -vn 0.947530 -0.313813 0.060889 -vn 0.951301 -0.308263 0.000000 -vn 0.720988 -0.478886 0.500845 -vn 0.681368 -0.491661 0.542224 -vn 0.685009 -0.489335 0.539734 -vn 0.578949 -0.537358 0.613241 -vn 0.627789 -0.538212 0.562324 -vn 0.720934 -0.547029 0.425456 -vn 0.850335 -0.463283 0.249600 -vn 0.414986 -0.655129 0.631342 -vn 0.464139 -0.677064 0.571104 -vn 0.559696 -0.719904 0.410461 -vn 0.608602 -0.750976 0.256201 -vn 0.619061 -0.770047 0.154245 -vn 0.635383 -0.770942 0.044007 -vn 0.644398 -0.764690 0.000000 -vn 0.245694 -0.811195 0.530657 -vn 0.242252 -0.868554 0.432352 -vn 0.248688 -0.936525 0.247135 -vn 0.270344 -0.957192 0.103429 -vn 0.270056 -0.962541 0.024195 -vn 0.259082 -0.965835 0.006336 -vn 0.257662 -0.966235 -0.000029 -vn 0.159410 -0.887098 0.433181 -vn 0.123609 -0.947670 0.294352 -vn 0.109876 -0.985648 0.128163 -vn 0.184173 -0.981147 0.058577 -vn 0.232618 -0.972568 -0.000920 -vn 0.197099 -0.980383 -0.000950 -vn 0.161376 -0.986893 -0.000058 -vn 0.949760 -0.263276 -0.169235 -vn 0.951185 -0.294245 -0.093093 -vn 0.991388 0.089520 -0.095585 -vn 0.993924 0.089670 -0.063831 -vn 0.997188 -0.067888 -0.031734 -vn 0.997092 -0.072361 -0.023889 -vn 0.997550 -0.065797 -0.023773 -vn 0.997956 -0.059357 -0.023660 -vn 0.997765 -0.059686 -0.030054 -vn 0.677813 0.729831 -0.088978 -vn 0.679311 0.731442 -0.059403 -vn 0.016088 0.995291 -0.095586 -vn 0.016056 0.997832 -0.063831 -vn -0.363677 0.926862 -0.093094 -vn -0.364558 0.929104 -0.062153 -vn 0.917270 -0.258315 -0.303131 -vn 0.998959 -0.024410 -0.038551 -vn 0.999612 0.008824 -0.026436 -vn 0.999517 0.016521 -0.026336 -vn 0.999675 0.018217 -0.017848 -vn 0.981145 -0.177428 -0.076642 -vn 0.884956 -0.376979 -0.273386 -vn 0.988508 -0.123689 -0.086911 -vn 0.997365 -0.064404 -0.033395 -vn 0.947530 -0.313813 -0.060889 -vn 0.913828 -0.358465 -0.190845 -vn 0.720988 -0.478886 -0.500845 -vn 0.685009 -0.489335 -0.539734 -vn 0.681368 -0.491661 -0.542224 -vn 0.627789 -0.538212 -0.562324 -vn 0.578949 -0.537358 -0.613241 -vn 0.720935 -0.547029 -0.425456 -vn 0.850335 -0.463283 -0.249600 -vn 0.464139 -0.677064 -0.571104 -vn 0.414986 -0.655130 -0.631342 -vn 0.559696 -0.719904 -0.410461 -vn 0.608602 -0.750976 -0.256201 -vn 0.619061 -0.770047 -0.154245 -vn 0.635383 -0.770942 -0.044007 -vn 0.242252 -0.868554 -0.432352 -vn 0.245694 -0.811195 -0.530657 -vn 0.248688 -0.936525 -0.247135 -vn 0.270344 -0.957192 -0.103429 -vn 0.270056 -0.962541 -0.024195 -vn 0.259101 -0.965829 -0.006365 -vn 0.123609 -0.947670 -0.294352 -vn 0.159410 -0.887098 -0.433181 -vn 0.109876 -0.985648 -0.128163 -vn 0.184173 -0.981147 -0.058577 -vn 0.232618 -0.972568 0.000920 -vn 0.197137 -0.980376 0.000892 -vn 0.363681 -0.926860 0.093095 -vn 0.363681 -0.926860 0.093095 -vn -0.953481 0.294977 0.062153 -vn -0.951181 0.294258 0.093095 -vn -0.955326 0.295555 0.000000 -vn -0.993197 -0.097487 0.063683 -vn -0.991388 -0.089513 0.095585 -vn -0.994423 -0.105465 0.000000 -vn -0.666429 -0.743190 0.059512 -vn -0.677811 -0.729833 0.088975 -vn -0.654535 -0.756032 0.000000 -vn -0.138441 -0.987639 0.073510 -vn -0.016083 -0.995291 0.095585 -vn -0.359388 -0.933188 0.000000 -vn -0.359231 -0.932778 0.029619 -vn -0.359231 -0.932778 0.029619 -vn -0.359231 -0.932778 0.029619 -vn -0.359231 -0.932778 0.029619 -vn -0.359231 -0.932778 0.029619 -vn 0.363681 -0.926860 -0.093095 -vn 0.363681 -0.926860 -0.093095 -vn -0.951181 0.294258 -0.093095 -vn -0.953481 0.294977 -0.062153 -vn -0.991388 -0.089513 -0.095585 -vn -0.993197 -0.097487 -0.063683 -vn -0.677811 -0.729833 -0.088975 -vn -0.666428 -0.743190 -0.059512 -vn -0.016083 -0.995291 -0.095586 -vn -0.138440 -0.987639 -0.073511 -vn -0.359230 -0.932779 -0.029618 -vn -0.359230 -0.932779 -0.029618 -vn -0.359230 -0.932779 -0.029618 -vn -0.359230 -0.932779 -0.029618 -vn -0.359230 -0.932779 -0.029618 -vn -0.971639 0.185090 -0.147174 -vn -0.995051 -0.099362 0.000000 -vn -0.995892 -0.090233 -0.007566 -vn -0.997348 -0.072341 -0.007999 -vn -0.998441 -0.055175 -0.008410 -vn -0.999456 -0.027640 -0.018014 -vn -0.992159 0.088881 -0.087872 -vn -0.899393 0.362665 -0.244061 -vn -0.763166 0.520128 -0.383463 -vn -0.657767 0.576066 -0.485274 -vn -0.475302 0.703698 -0.528107 -vn -0.291509 0.836741 -0.463559 -vn -0.203996 0.893520 -0.400009 -vn -0.179387 0.933836 -0.309470 -vn -0.186052 0.962782 -0.196051 -vn -0.283313 0.952364 -0.112859 -vn -0.347407 0.937273 -0.028770 -vn -0.309315 0.950870 -0.013055 -vn -0.268903 0.963167 0.000112 -vn -0.998726 0.037141 -0.034171 -vn -0.981145 0.177428 -0.076642 -vn -0.884956 0.376980 -0.273385 -vn -0.999760 -0.006435 -0.020930 -vn -0.999410 -0.027537 -0.020543 -vn -0.988508 0.123690 -0.086912 -vn -0.999002 -0.043098 -0.011742 -vn -0.997365 0.064404 -0.033395 -vn -0.998863 -0.047679 0.000000 -vn -0.998710 0.050770 0.000000 -vn -0.947530 0.313814 -0.060889 -vn -0.913828 0.358464 -0.190846 -vn -0.951301 0.308264 0.000000 -vn -0.933355 0.268960 -0.237716 -vn -0.728648 0.505474 -0.462134 -vn -0.665783 0.556349 -0.497201 -vn -0.720935 0.547028 -0.425456 -vn -0.850335 0.463283 -0.249599 -vn -0.493020 0.699378 -0.517495 -vn -0.559696 0.719904 -0.410461 -vn -0.608602 0.750976 -0.256200 -vn -0.619061 0.770046 -0.154246 -vn -0.635382 0.770943 -0.044006 -vn -0.644397 0.764691 0.000000 -vn -0.280194 0.867283 -0.411476 -vn -0.285188 0.916831 -0.279443 -vn -0.318897 0.938804 -0.130196 -vn -0.327262 0.944127 -0.039028 -vn -0.314663 0.949110 -0.013326 -vn -0.310471 0.950583 0.000056 -vn -0.971639 0.185090 0.147174 -vn -0.992159 0.088881 0.087872 -vn -0.999456 -0.027640 0.018014 -vn -0.998441 -0.055175 0.008410 -vn -0.997348 -0.072341 0.007999 -vn -0.995892 -0.090233 0.007566 -vn -0.899393 0.362665 0.244061 -vn -0.763166 0.520128 0.383463 -vn -0.657767 0.576065 0.485274 -vn -0.475302 0.703698 0.528107 -vn -0.291509 0.836741 0.463559 -vn -0.179386 0.933836 0.309470 -vn -0.203995 0.893520 0.400009 -vn -0.186052 0.962782 0.196051 -vn -0.283313 0.952364 0.112859 -vn -0.347407 0.937273 0.028770 -vn -0.309398 0.950842 0.013167 -vn -0.884956 0.376980 0.273385 -vn -0.981145 0.177428 0.076642 -vn -0.998726 0.037141 0.034171 -vn -0.988508 0.123690 0.086912 -vn -0.999410 -0.027537 0.020543 -vn -0.999760 -0.006435 0.020930 -vn -0.997365 0.064404 0.033395 -vn -0.999002 -0.043098 0.011742 -vn -0.913828 0.358464 0.190846 -vn -0.947530 0.313814 0.060889 -vn -0.933355 0.268960 0.237715 -vn -0.728648 0.505474 0.462134 -vn -0.665783 0.556349 0.497201 -vn -0.720935 0.547028 0.425456 -vn -0.850335 0.463283 0.249599 -vn -0.493020 0.699378 0.517495 -vn -0.559696 0.719904 0.410461 -vn -0.608602 0.750976 0.256200 -vn -0.619061 0.770046 0.154246 -vn -0.635382 0.770943 0.044006 -vn -0.280194 0.867283 0.411476 -vn -0.285188 0.916831 0.279443 -vn -0.318897 0.938804 0.130196 -vn -0.327262 0.944127 0.039028 -vn -0.314704 0.949095 0.013381 -vn -0.642812 0.322219 -0.694958 -vn -0.650165 0.333777 -0.682552 -vn -0.849450 0.041378 -0.526043 -vn -0.842422 0.029896 -0.537988 -vn -0.827539 0.006894 -0.561366 -vn -0.627422 0.298775 -0.719079 -vn -0.811581 -0.016117 -0.584017 -vn -0.611142 0.274958 -0.742229 -vn -0.602686 0.262924 -0.753419 -vn -0.803213 -0.027610 -0.595052 -vn -0.046321 0.717759 -0.694749 -vn -0.053653 0.728221 -0.683239 -vn -0.031609 0.696187 -0.717165 -vn -0.016858 0.673791 -0.738729 -vn -0.009478 0.662301 -0.749178 -vn 0.564162 0.759634 -0.323539 -vn 0.555743 0.770805 -0.311463 -vn 0.580414 0.736503 -0.347393 -vn 0.595837 0.712377 -0.370807 -vn 0.603229 0.699959 -0.382325 -vn 0.784184 0.619398 -0.037437 -vn 0.775833 0.630406 -0.025904 -vn 0.800127 0.596773 -0.060487 -vn 0.815026 0.573381 -0.083465 -vn 0.822075 0.561413 -0.094908 -vn -0.822085 -0.561403 0.094886 -vn -0.815033 -0.573374 0.083450 -vn -0.800130 -0.596770 0.060483 -vn -0.784191 -0.619390 0.037429 -vn -0.775845 -0.630393 0.025889 -vn 0.811581 0.016120 0.584018 -vn 0.803210 0.027611 0.595056 -vn 0.827538 -0.006892 0.561367 -vn 0.842421 -0.029896 0.537989 -vn 0.849450 -0.041377 0.526044 -vn 0.709679 -0.058148 0.702122 -vn 0.602687 -0.262921 0.753420 -vn 0.889941 0.415456 0.188151 -vn 0.892509 -0.223533 0.391742 -vn 0.629453 -0.354577 0.691422 -vn -0.223873 -0.683965 0.694315 -vn 0.009484 -0.662297 0.749182 -vn -0.625676 -0.722287 0.294671 -vn -0.207820 -0.882913 0.421040 -vn -0.015531 -0.752037 0.658938 -vn -0.602513 -0.710136 0.364260 -vn -0.603235 -0.699957 0.382319 -vn -0.601723 -0.729113 0.326073 -vn -0.594215 -0.749427 0.292008 -vn -0.586599 -0.760692 0.277938 -vn 0.102923 -0.952597 0.286295 -vn -0.718606 -0.668081 0.193064 -vn -0.783697 -0.600587 0.158477 -vn -0.701348 -0.686166 0.193102 -vn -0.736019 -0.651153 0.185138 -vn -0.724907 -0.663690 0.184459 -vn -0.722846 -0.660000 0.204680 -vn -0.617182 -0.211719 0.757800 -vn -0.616660 0.061761 0.784803 -vn -0.260879 -0.304354 0.916139 -vn -0.442996 -0.518355 0.731480 -vn -0.447647 -0.175289 0.876861 -vn -0.629808 0.045048 0.775443 -vn -0.402821 -0.459036 0.791847 -vn 0.095227 -0.947330 -0.305775 -vn 0.140687 -0.977049 -0.159942 -vn 0.338509 -0.940657 -0.023994 -vn -0.938729 -0.318623 -0.131408 -vn -0.883564 -0.452435 -0.120904 -vn -0.851603 -0.511546 -0.114423 -vn -0.845397 -0.521171 -0.116980 -vn -0.857481 -0.498418 -0.127696 -vn -0.875425 -0.469677 -0.114172 -vn -0.873974 -0.241441 -0.421754 -vn -0.837168 -0.269334 -0.476035 -vn -0.926765 -0.199398 -0.318352 -vn -0.878921 -0.300919 -0.370061 -vn -0.851871 -0.357230 -0.383017 -vn -0.832390 -0.384968 -0.398656 -vn 0.873111 0.157976 0.461216 -vn 0.744340 0.292281 0.600441 -vn 0.819560 0.359560 0.446136 -vn 0.764305 0.374954 0.524641 -vn 0.864151 0.315618 0.391954 -vn 0.954311 0.086140 0.286130 -vn 0.978318 0.164080 0.126383 -vn 0.891798 0.426135 0.152003 -vn 0.853511 0.511445 0.099717 -vn 0.828453 0.545351 0.127506 -vn 0.835750 0.409742 0.365560 -vn 0.833345 0.511746 0.208932 -# 2372 vertices - -# 0 vertex parms - -# 0 texture vertices - -# 3377 normals - -g mast2 -s 1 -f 15//188 16//189 2//187 1//186 -s 2 -f 16//204 17//205 3//203 2//202 -s 3 -f 17//220 18//221 4//219 3//218 -s 4 -f 18//236 19//237 5//235 4//234 -s 5 -f 19//254 20//255 6//251 5//250 -f 20//255 21//256 7//252 6//251 -f 21//256 22//257 8//253 7//252 -s 6 -f 22//296 23//297 9//295 8//294 -s 7 -f 23//312 24//313 10//311 9//310 -s 8 -f 24//328 25//329 11//327 10//326 -s 9 -f 25//344 26//345 12//343 11//342 -s 10 -f 26//360 27//361 13//359 12//358 -s 11 -f 27//376 28//377 14//375 13//374 -s 1 -f 47//194 48//195 34//193 33//192 -s 2 -f 48//208 49//209 35//207 34//206 -s 3 -f 49//224 50//225 36//223 35//222 -s 4 -f 50//240 51//241 37//239 36//238 -s 5 -f 51//262 52//263 38//259 37//258 -f 52//263 53//264 39//260 38//259 -f 53//264 54//265 40//261 39//260 -s 6 -f 54//300 55//301 41//299 40//298 -s 7 -f 55//316 56//317 42//315 41//314 -s 8 -f 56//332 57//333 43//331 42//330 -s 9 -f 57//348 58//349 44//347 43//346 -s 10 -f 58//364 59//365 45//363 44//362 -s 11 -f 59//382 60//383 46//381 45//380 -s 1 -f 61//196 62//197 48//195 47//194 -s 2 -f 62//210 63//211 49//209 48//208 -s 3 -f 63//226 64//227 50//225 49//224 -s 4 -f 64//242 65//243 51//241 50//240 -s 5 -f 65//266 66//267 52//263 51//262 -f 66//267 90//275 67//268 53//264 52//263 -f 67//268 68//269 54//265 53//264 -s 6 -f 68//302 69//303 55//301 54//300 -s 7 -f 69//318 70//319 56//317 55//316 -s 8 -f 70//334 71//335 57//333 56//332 -s 9 -f 71//350 72//351 58//349 57//348 -s 10 -f 72//366 73//367 59//365 58//364 -s 11 -f 73//384 74//385 60//383 59//382 -s 1 -f 75//198 76//199 62//197 61//196 -s 2 -f 76//212 77//213 63//211 62//210 -s 3 -f 77//228 78//229 64//227 63//226 -s 4 -f 78//244 79//245 65//243 64//242 -s 5 -f 79//270 80//271 92//277 91//276 66//267 65//266 -s off -f 100//1 99//1 102//1 101//1 -s 5 -f 81//272 82//273 68//269 67//268 -s 6 -f 82//304 83//305 69//303 68//302 -s 7 -f 83//320 84//321 70//319 69//318 -s 8 -f 84//336 85//337 71//335 70//334 -s 9 -f 85//352 86//353 72//351 71//350 -s 10 -f 86//368 87//369 73//367 72//366 -s 11 -f 87//386 88//387 74//385 73//384 -s 1 -f 1//186 2//187 76//199 75//198 -s 2 -f 2//202 3//203 77//213 76//212 -s 3 -f 3//218 4//219 78//229 77//228 -s 4 -f 4//234 5//235 79//245 78//244 -s 5 -f 5//250 6//251 80//271 79//270 -f 6//251 7//252 81//272 89//274 80//271 -f 7//252 8//253 82//273 81//272 -s 6 -f 8//294 9//295 83//305 82//304 -s 7 -f 9//310 10//311 84//321 83//320 -s 8 -f 10//326 11//327 85//337 84//336 -s 9 -f 11//342 12//343 86//353 85//352 -s 10 -f 12//358 13//359 87//369 86//368 -s 11 -f 13//374 14//375 88//387 87//386 -s off -f 61//2 47//2 33//2 31//2 29//2 15//2 1//2 75//2 -f 30//3 32//3 46//3 60//3 74//3 88//3 14//3 28//3 -s 5 -f 89//274 81//272 67//268 90//275 94//279 93//278 -s off -f 96//4 95//4 98//4 97//4 -f 104//5 103//5 106//5 105//5 -f 95//6 96//6 94//6 90//6 -f 96//7 97//7 91//7 94//7 -f 97//8 98//8 66//8 91//8 -f 98//9 95//9 90//9 66//9 -f 99//10 100//10 92//10 80//10 -f 100//11 101//11 93//11 92//11 -f 101//12 102//12 89//12 93//12 -f 102//13 99//13 80//13 89//13 -f 103//14 104//14 91//14 92//14 -f 104//15 105//15 94//15 91//15 -f 105//16 106//16 93//16 94//16 -f 106//17 103//17 92//17 93//17 -g keel -s 21 -f 108//391 107//390 110//393 109//392 -f 110//393 107//390 112//395 111//394 -f 111//394 112//395 114//397 113//396 -f 113//396 114//397 116//399 115//398 -f 115//398 116//399 118//401 117//400 -f 117//400 118//401 120//403 119//402 -f 119//402 120//403 122//405 121//404 -f 121//404 122//405 124//407 123//406 -f 127//410 126//409 125//408 128//411 -f 127//410 128//411 130//413 129//412 -f 129//412 130//413 132//415 131//414 -f 131//414 132//415 134//417 133//416 -f 133//416 134//417 136//419 135//418 -f 135//418 136//419 138//421 137//420 -f 137//420 138//421 140//423 139//422 -f 139//422 140//423 142//425 141//424 -g hull -f 141//424 142//425 144//427 143//426 -s 25 -f 143//447 144//448 146//450 145//449 -s 26 -f 145//453 146//454 148//456 147//455 -s 23 -f 147//477 148//478 150//480 149//479 -g keel -f 151//481 110//460 111//461 152//482 -f 152//482 111//461 113//462 153//483 -f 153//483 113//462 115//463 154//484 -f 154//484 115//463 117//464 155//485 -f 155//485 117//464 119//465 156//486 -f 156//486 119//465 121//466 157//487 -f 157//487 121//466 123//467 158//488 -f 158//488 123//467 126//468 159//489 -f 159//489 126//468 127//469 160//490 -f 160//490 127//469 129//470 161//491 -f 161//491 129//470 131//471 162//492 -f 162//492 131//471 133//472 163//493 -f 163//493 133//472 135//473 164//494 -f 164//494 135//473 137//474 165//495 -f 165//495 137//474 139//475 166//496 -f 139//475 141//476 166//496 -f 151//481 222//552 109//459 110//460 -f 222//552 151//481 224//554 223//553 -f 223//553 224//554 226//556 225//555 -f 225//555 226//556 228//558 227//557 -f 227//557 228//558 230//560 229//559 -f 534//798 229//559 230//560 232//562 231//561 -g hull -s 30 -f 224//906 151//901 167//902 233//912 -f 233//912 167//902 180//903 234//913 -f 180//903 194//904 234//913 -f 194//904 208//905 235//914 234//913 -f 234//913 235//914 236//915 233//912 -f 233//912 236//915 226//907 224//906 -f 228//908 226//907 236//915 237//916 -f 237//916 236//915 235//914 238//917 -f 238//917 235//914 208//905 239//918 -f 230//909 228//908 237//916 240//919 -f 237//916 241//920 240//919 -f 242//921 241//920 237//916 238//917 -f 238//917 243//922 242//921 -f 244//923 243//922 238//917 239//918 -g keel -s 22 -f 229//1020 245//1021 246//1022 227//1019 -f 225//1018 247//1023 248//1024 223//1017 -f 223//1017 248//1024 249//1025 222//1016 -f 222//1016 249//1025 108//1014 109//1015 -f 227//1019 246//1022 247//1023 225//1018 -g hull -s 23 -f 193//523 164//494 165//495 250//565 -f 250//565 165//495 166//496 251//566 -f 166//496 141//476 251//566 -f 251//566 252//567 250//565 -f 250//565 252//567 207//537 193//523 -f 221//551 207//537 252//567 253//568 -f 221//551 253//568 255//570 254//569 -s 24 -f 141//1035 256//1043 257//1044 251//1039 -f 251//1039 257//1044 258//1045 252//1040 -f 252//1040 258//1045 259//1046 253//1041 -f 141//1035 143//1036 256//1043 -f 143//1036 145//1037 256//1043 -s 23 -f 254//569 255//570 261//576 260//575 -f 260//575 261//576 263//578 262//577 -s 33 -f 262//1051 263//1052 265//1054 264//1053 -s 23 -f 536//800 265//580 259//574 537//801 -s 24 -f 263//1048 261//1047 255//1042 253//1041 259//1046 265//1049 -s 23 -f 537//801 259//574 258//573 538//802 -f 258//573 257//572 538//802 -f 271//586 270//585 266//581 272//587 -f 272//587 266//581 267//582 273//588 -f 273//588 267//582 268//583 274//589 -f 274//589 268//583 269//584 275//590 -f 276//591 147//477 149//479 -s 24 -f 145//1037 147//1038 276//1050 256//1043 -s 23 -f 256//571 276//591 269//584 257//572 -f 269//584 276//591 149//479 275//590 -g deck -s off -f 278//18 277//18 279//18 -s 23 -f 279//594 280//595 282//597 281//596 -f 284//599 283//598 286//601 285//600 -s off -f 285//19 287//19 284//19 -s 23 -f 287//602 289//604 288//603 -f 290//605 289//604 287//602 285//600 -f 291//606 290//605 285//600 286//601 293//608 292//607 -g hull -f 275//590 279//594 281//596 274//589 -f 288//603 273//588 274//589 281//596 -f 254//569 260//575 295//610 294//609 -f 294//609 295//610 297//612 296//611 -f 296//611 297//612 299//614 298//613 -f 301//616 300//615 303//618 302//617 -f 302//617 303//618 305//620 304//619 -f 304//619 305//620 307//622 306//621 -f 307//622 308//623 306//621 -f 306//621 308//623 310//625 309//624 -f 310//625 311//626 309//624 -f 309//624 311//626 313//628 312//627 -f 313//628 314//629 312//627 -f 312//627 314//629 316//631 315//630 -f 315//630 316//631 318//633 317//632 -f 317//632 318//633 320//635 319//634 -f 301//616 298//613 299//614 300//615 -f 260//575 262//577 321//636 295//610 -f 322//637 321//636 262//577 264//579 -f 297//612 295//610 321//636 323//638 -f 323//638 321//636 322//637 324//639 -f 324//639 322//637 326//641 325//640 -f 324//639 328//643 329//644 323//638 -f 323//638 329//644 299//614 297//612 -f 300//615 299//614 329//644 330//645 -f 330//645 329//644 328//643 331//646 -f 328//643 332//647 331//646 -f 328//643 324//639 325//640 332//647 -f 325//640 327//642 332//647 -g rig -s off -f 332//20 327//20 334//20 333//20 -f 334//21 327//21 335//21 336//21 -s 23 -f 337//652 333//648 334//649 -f 337//652 338//653 342//657 330//645 -s off -f 342//22 338//22 343//22 -g hull -s 23 -f 342//657 343//658 345//660 344//659 -g rig -s off -f 339//23 345//23 343//23 338//23 -f 339//24 344//24 345//24 -s 23 -f 346//661 344//659 339//654 340//655 -s off -f 340//25 347//25 346//25 -f 348//26 347//26 340//26 341//26 -g hull -s 23 -f 348//663 346//661 347//662 -f 346//661 348//663 350//665 349//664 -g rig -s off -f 330//27 331//27 337//27 -f 332//28 333//28 337//28 331//28 -f 336//29 335//29 348//29 341//29 -g hull -s 23 -f 330//645 342//657 344//659 346//661 303//618 300//615 -f 349//664 305//620 303//618 346//661 -f 351//666 352//667 353//668 350//665 -f 350//665 353//668 354//669 349//664 -f 349//664 354//669 307//622 305//620 -f 307//622 354//669 355//670 -g rig -f 307//622 356//671 357//672 308//623 -f 310//625 358//673 359//674 311//626 -f 313//628 360//675 361//676 314//629 -g hull -f 362//677 310//625 308//623 363//678 -f 313//628 311//626 365//680 364//679 -f 314//629 367//682 366//681 -g rig -f 360//675 368//683 371//686 361//676 -g hull -f 353//668 352//667 373//688 372//687 -f 373//688 374//689 372//687 -f 374//689 375//690 372//687 -f 374//689 376//691 375//690 -g rig -s off -f 355//30 356//30 307//30 -f 353//31 369//31 370//31 354//31 -f 308//32 357//32 363//32 -f 358//33 362//33 363//33 357//33 -f 310//34 362//34 358//34 -f 360//35 313//35 364//35 -f 539//36 540//36 369//36 353//36 372//36 368//36 -f 367//37 314//37 361//37 -f 371//38 366//38 367//38 361//38 -f 368//39 372//39 366//39 371//39 -f 311//40 359//40 365//40 -f 360//41 364//41 365//41 359//41 -g hull -s 23 -f 314//629 366//681 377//692 316//631 -f 378//693 377//692 366//681 372//687 -f 377//692 378//693 379//694 -f 377//692 379//694 381//696 380//695 -f 381//696 382//697 380//695 -f 380//695 382//697 384//699 383//698 -f 380//695 383//698 320//635 318//633 -f 380//695 318//633 316//631 377//692 -g rig -f 379//694 378//693 386//701 385//700 -f 386//701 392//707 391//706 -f 387//702 388//703 382//697 381//696 -g hull -f 378//693 394//709 393//708 -f 375//690 376//691 395//710 394//709 -f 397//712 396//711 381//696 379//694 -f 395//710 376//691 399//714 398//713 -f 399//714 400//715 398//713 -g rig -s off -f 386//42 378//42 393//42 -f 381//43 396//43 387//43 -f 385//44 397//44 379//44 -f 397//45 385//45 387//45 396//45 -f 394//46 392//46 386//46 393//46 -f 395//47 391//47 392//47 394//47 -f 391//48 395//48 398//48 390//48 -f 401//49 389//49 390//49 398//49 -f 388//50 389//50 401//50 402//50 -f 388//51 402//51 382//51 -g hull -s 23 -f 394//709 378//693 372//687 375//690 -f 402//717 401//716 384//699 382//697 -f 398//713 403//718 384//699 401//716 -f 403//718 398//713 400//715 404//719 -f 403//718 404//719 406//721 405//720 -f 406//721 404//719 408//723 407//722 -s 45 -f 407//1056 408//1057 410//1059 409//1058 -f 411//1060 412//1061 409//1058 -s 23 -f 407//722 412//727 413//728 406//721 -f 406//721 413//728 414//729 405//720 -s 45 -f 411//1060 409//1058 416//1063 415//1062 -f 415//1062 416//1063 418//1065 417//1064 -f 417//1064 418//1065 420//1067 419//1066 -f 419//1066 420//1067 422//1069 421//1068 -f 421//1068 422//1069 424//1071 423//1070 -s 23 -f 421//733 423//734 425//735 419//732 -f 419//732 425//735 427//737 426//736 -f 426//736 427//737 429//739 428//738 -f 431//741 430//740 433//743 432//742 -f 431//741 432//742 435//745 434//744 -f 434//744 435//745 414//729 413//728 -f 415//730 434//744 413//728 412//727 411//726 -f 428//738 415//730 417//731 426//736 -f 417//731 419//732 426//736 -f 384//699 436//746 437//747 383//698 -f 383//698 437//747 438//748 320//635 -f 438//748 439//749 320//635 -f 428//738 429//739 430//740 431//741 -f 431//741 434//744 415//730 428//738 -f 535//799 244//564 239//563 439//749 -f 319//634 320//635 439//749 239//563 -g aft -f 440//750 403//718 405//720 441//751 -f 441//751 405//720 414//729 442//752 -f 442//752 414//729 435//745 443//753 -f 443//753 435//745 432//742 444//754 -f 447//756 446//755 448//757 444//754 -f 444//754 448//757 449//758 443//753 -f 443//753 449//758 450//759 442//752 -f 442//752 450//759 451//760 441//751 -f 441//751 451//760 452//761 440//750 -f 440//750 452//761 454//763 453//762 -f 440//750 453//762 384//699 403//718 -s 51 -f 384//1094 453//1099 455//1101 436//1095 -f 456//1102 455//1101 453//1099 454//1100 -g windows -f 456//1102 454//1100 452//1098 451//1097 -f 456//1102 451//1097 450//1096 457//1103 -s 30 -f 457//929 450//928 449//927 458//930 -f 458//930 449//927 448//926 459//931 -f 459//931 448//926 446//925 460//932 -g aft -f 459//931 460//932 462//934 461//933 -f 461//933 463//935 459//931 -f 459//931 463//935 464//936 458//930 -f 464//936 465//937 458//930 -s 51 -f 466//1104 455//1101 456//1102 457//1103 -s 49 -f 436//1110 455//1114 467//1115 437//1111 -s 51 -f 467//1105 455//1101 466//1104 468//1106 -f 469//1107 467//1105 468//1106 471//1109 470//1108 -s 49 -f 437//1111 467//1115 469//1116 438//1112 -f 469//1116 470//1117 439//1113 438//1112 -g hull -s 23 -f 244//564 535//799 485//764 -s 30 -f 473//943 472//942 475//945 474//944 -g aft -f 465//937 464//936 477//947 476//946 -f 476//946 477//947 242//921 243//922 -g hull -f 479//949 478//948 481//951 480//950 -g aft -f 463//935 461//933 483//953 482//952 -f 466//938 484//954 485//955 468//939 -f 457//929 484//954 466//938 -f 457//929 458//930 465//937 484//954 -f 482//952 483//953 240//919 241//920 -s off -f 464//52 463//52 478//52 479//52 -s 56 -f 463//1119 482//1122 481//1121 478//1120 -f 241//1118 481//1121 482//1122 -g hull -s 30 -f 481//951 241//920 242//921 480//950 -g aft -s 55 -f 477//1125 464//1124 479//1126 480//1127 -s 54 -f 476//1132 243//1128 475//1131 -f 472//1130 465//1129 476//1132 475//1131 -s 30 -f 484//954 465//937 472//942 473//943 -g hull -f 475//945 243//922 244//923 474//944 -s 53 -f 244//1133 485//1137 474//1135 -g aft -f 485//1137 484//1136 473//1134 474//1135 -g keel -s 22 -f 486//1026 245//1021 229//1020 534//1027 -g aft -s 31 -f 486//1141 534//1143 231//1138 461//1139 462//1140 -f 487//1142 461//1139 231//1138 -g hull -s 30 -f 231//910 232//911 488//957 487//956 -g aft -s 57 -f 483//1150 488//1152 240//1148 -g hull -s 30 -f 488//957 232//911 230//909 240//919 -s 45 -f 422//1069 489//1073 424//1071 -f 489//1073 422//1069 420//1067 490//1074 -f 490//1074 420//1067 418//1065 491//1075 -f 491//1075 418//1065 416//1063 492//1076 -f 492//1076 416//1063 409//1058 445//1072 -f 445//1072 409//1058 494//1078 493//1077 -g deck -s 58 -f 493//1153 494//1154 495//1155 497//1157 496//1156 -s off -f 497//53 495//53 499//53 498//53 -f 498//54 500//54 497//54 -s 59 -f 497//1162 500//1163 501//1164 496//1161 -s 60 -f 499//1168 502//1171 503//1172 498//1167 -f 500//1169 498//1167 503//1172 504//1173 501//1170 -g hull -s 44 -f 408//1183 404//1182 505//1185 410//1184 -f 505//1185 404//1182 400//1181 506//1186 -f 506//1186 400//1181 399//1180 507//1187 -f 507//1187 399//1180 376//1179 508//1188 -s 23 -f 508//772 376//691 374//689 509//773 -f 509//773 374//689 373//688 510//774 -f 511//775 352//667 351//666 512//776 -f 512//776 351//666 514//778 513//777 -f 513//777 514//778 516//780 515//779 -f 270//585 271//586 518//782 517//781 520//784 519//783 -g deck -s off -f 502//55 521//55 522//55 503//55 -f 522//56 523//56 503//56 -s 23 -f 525//789 524//788 523//787 522//786 -f 525//789 522//786 521//785 527//791 526//790 -f 528//792 526//790 527//791 530//794 529//793 -f 529//793 530//794 532//796 531//795 -s off -f 292//57 529//57 531//57 -s 23 -f 528//792 529//793 292//607 293//608 -f 287//602 288//603 533//797 284//599 -f 283//598 284//599 533//797 281//596 282//597 -g hull -f 352//667 511//775 510//774 373//688 -f 495//766 410//725 505//769 -f 505//769 506//770 499//767 495//766 -f 507//771 499//767 506//770 -f 508//772 502//768 499//767 507//771 -f 502//768 508//772 509//773 521//785 -f 510//774 521//785 509//773 -f 410//725 495//766 494//765 409//724 -g deck -s 61 -f 523//1191 524//1192 504//1190 503//1189 -g hull -s 23 -f 527//791 511//775 512//776 530//794 -f 521//785 510//774 511//775 527//791 -f 512//776 513//777 532//796 530//794 -f 517//781 518//782 515//779 516//780 -f 532//796 513//777 515//779 291//606 -g deck -s off -f 292//58 531//58 532//58 291//58 -g hull -s 23 -f 518//782 291//606 515//779 -f 290//605 291//606 518//782 271//586 -f 167//497 151//481 152//482 168//498 -f 168//498 152//482 153//483 169//499 -f 169//499 153//483 154//484 170//500 -f 170//500 154//484 155//485 171//501 -f 171//501 155//485 156//486 172//502 -f 172//502 156//486 157//487 173//503 -f 173//503 157//487 158//488 174//504 -f 174//504 158//488 159//489 175//505 -f 175//505 159//489 160//490 176//506 -f 176//506 160//490 161//491 177//507 -f 177//507 161//491 162//492 178//508 -f 178//508 162//492 163//493 179//509 -f 163//493 164//494 179//509 -f 180//510 167//497 168//498 181//511 -f 181//511 168//498 169//499 182//512 -f 182//512 169//499 170//500 183//513 -f 183//513 170//500 171//501 184//514 -f 184//514 171//501 172//502 185//515 -f 185//515 172//502 173//503 186//516 -f 186//516 173//503 174//504 187//517 -f 187//517 174//504 175//505 188//518 -f 188//518 175//505 176//506 189//519 -f 189//519 176//506 177//507 190//520 -f 190//520 177//507 178//508 191//521 -f 191//521 178//508 179//509 192//522 -f 192//522 179//509 164//494 193//523 -f 194//524 180//510 181//511 195//525 -f 195//525 181//511 182//512 196//526 -f 196//526 182//512 183//513 197//527 -f 197//527 183//513 184//514 198//528 -f 198//528 184//514 185//515 199//529 -f 199//529 185//515 186//516 200//530 -f 200//530 186//516 187//517 201//531 -f 201//531 187//517 188//518 202//532 -f 202//532 188//518 189//519 203//533 -f 203//533 189//519 190//520 204//534 -f 204//534 190//520 191//521 205//535 -f 205//535 191//521 192//522 206//536 -f 206//536 192//522 193//523 207//537 -f 208//538 194//524 195//525 209//539 -f 209//539 195//525 196//526 210//540 -f 210//540 196//526 197//527 211//541 -f 211//541 197//527 198//528 212//542 -f 212//542 198//528 199//529 213//543 -f 213//543 199//529 200//530 214//544 -f 214//544 200//530 201//531 215//545 -f 215//545 201//531 202//532 216//546 -f 216//546 202//532 203//533 217//547 -f 217//547 203//533 204//534 218//548 -f 218//548 204//534 205//535 219//549 -f 219//549 205//535 206//536 220//550 -f 220//550 206//536 207//537 221//551 -f 239//563 208//538 209//539 319//634 -f 319//634 209//539 210//540 317//632 -f 317//632 210//540 211//541 315//630 -f 315//630 211//541 212//542 312//627 -f 312//627 212//542 213//543 309//624 -f 309//624 213//543 214//544 306//621 -f 306//621 214//544 215//545 304//619 -f 304//619 215//545 216//546 302//617 -f 302//617 216//546 217//547 301//616 -f 301//616 217//547 218//548 298//613 -f 298//613 218//548 219//549 296//611 -f 296//611 219//549 220//550 294//609 -f 294//609 220//550 221//551 254//569 -f 348//663 335//650 516//780 514//778 -f 519//783 520//784 327//642 325//640 -f 326//641 266//581 270//585 -f 517//781 335//650 327//642 520//784 -f 266//581 326//641 322//637 264//579 -f 279//594 275//590 149//479 278//593 -f 277//592 278//593 149//479 150//480 -g aft -f 432//742 433//743 447//756 444//754 -g hull -s 33 -f 265//1054 536//1055 264//1053 -s 23 -f 514//778 351//666 350//665 348//663 -g keel -s 21 -f 123//406 124//407 125//408 126//409 -g aft -s 55 -f 477//1125 480//1127 242//1123 -g hull -s 23 -f 519//783 325//640 326//641 270//585 -f 289//604 272//587 273//588 288//603 -f 271//586 272//587 289//604 290//605 -g deck -f 288//603 281//596 533//797 -g hull -f 517//781 516//780 335//650 -g rig -f 370//685 369//684 357//672 356//671 -f 357//672 369//684 540//804 358//673 -s off -f 356//59 355//59 354//59 370//59 -g aft -s 57 -f 487//1151 488//1152 483//1150 461//1149 -s 30 -f 439//924 470//940 471//941 535//958 -f 471//941 468//939 485//955 535//958 -g hull -s 23 -f 267//582 266//581 536//800 537//801 -f 268//583 267//582 537//801 538//802 -f 269//584 268//583 538//802 257//572 -f 266//581 264//579 536//800 -s 45 -f 407//1056 409//1058 412//1061 -g rig -s 23 -f 368//683 360//675 359//674 539//803 -f 539//803 359//674 358//673 540//804 -f 341//656 340//655 336//651 -f 336//651 340//655 339//654 338//653 337//652 334//649 -f 390//705 388//703 387//702 385//700 386//701 391//706 -f 389//704 388//703 390//705 -g mast1 -s 63 -f 555//1197 556//1198 542//1196 541//1195 -s 64 -f 556//1213 557//1214 543//1212 542//1211 -s 65 -f 557//1229 558//1230 544//1228 543//1227 -s 66 -f 558//1245 559//1246 545//1244 544//1243 -s 67 -f 559//1263 560//1264 546//1260 545//1259 -f 560//1264 561//1265 547//1261 546//1260 -f 561//1265 562//1266 548//1262 547//1261 -s 68 -f 562//1301 563//1302 549//1300 548//1299 -s 69 -f 563//1317 564//1318 550//1316 549//1315 -s 70 -f 564//1333 565//1334 551//1332 550//1331 -s 71 -f 565//1349 566//1350 552//1348 551//1347 -s 72 -f 566//1365 567//1366 553//1364 552//1363 -s 73 -f 567//1381 568//1382 554//1380 553//1379 -s 63 -f 587//1203 588//1204 574//1202 573//1201 -s 64 -f 588//1217 589//1218 575//1216 574//1215 -s 65 -f 589//1233 590//1234 576//1232 575//1231 -s 66 -f 590//1249 591//1250 577//1248 576//1247 -s 67 -f 591//1271 592//1272 578//1268 577//1267 -f 592//1272 593//1273 579//1269 578//1268 -f 593//1273 594//1274 580//1270 579//1269 -s 68 -f 594//1305 595//1306 581//1304 580//1303 -s 69 -f 595//1321 596//1322 582//1320 581//1319 -s 70 -f 596//1337 597//1338 583//1336 582//1335 -s 71 -f 597//1353 598//1354 584//1352 583//1351 -s 72 -f 598//1369 599//1370 585//1368 584//1367 -s 73 -f 599//1387 600//1388 586//1386 585//1385 -s 63 -f 601//1205 602//1206 588//1204 587//1203 -s 64 -f 602//1219 603//1220 589//1218 588//1217 -s 65 -f 603//1235 604//1236 590//1234 589//1233 -s 66 -f 604//1251 605//1252 591//1250 590//1249 -s 67 -f 605//1275 606//1276 592//1272 591//1271 -f 606//1276 630//1284 607//1277 593//1273 592//1272 -f 607//1277 608//1278 594//1274 593//1273 -s 68 -f 608//1307 609//1308 595//1306 594//1305 -s 69 -f 609//1323 610//1324 596//1322 595//1321 -s 70 -f 610//1339 611//1340 597//1338 596//1337 -s 71 -f 611//1355 612//1356 598//1354 597//1353 -s 72 -f 612//1371 613//1372 599//1370 598//1369 -s 73 -f 613//1389 614//1390 600//1388 599//1387 -s 63 -f 615//1207 616//1208 602//1206 601//1205 -s 64 -f 616//1221 617//1222 603//1220 602//1219 -s 65 -f 617//1237 618//1238 604//1236 603//1235 -s 66 -f 618//1253 619//1254 605//1252 604//1251 -s 67 -f 619//1279 620//1280 632//1286 606//1276 605//1275 -f 629//1283 621//1281 607//1277 630//1284 631//1285 -f 621//1281 622//1282 608//1278 607//1277 -s 68 -f 622//1309 623//1310 609//1308 608//1307 -s 69 -f 623//1325 624//1326 610//1324 609//1323 -s 70 -f 624//1341 625//1342 611//1340 610//1339 -s 71 -f 625//1357 626//1358 612//1356 611//1355 -s 72 -f 626//1373 627//1374 613//1372 612//1371 -s 73 -f 627//1391 628//1392 614//1390 613//1389 -s 63 -f 541//1195 542//1196 616//1208 615//1207 -s 64 -f 542//1211 543//1212 617//1222 616//1221 -s 65 -f 543//1227 544//1228 618//1238 617//1237 -s 66 -f 544//1243 545//1244 619//1254 618//1253 -s 67 -f 545//1259 546//1260 620//1280 619//1279 -f 546//1260 547//1261 621//1281 629//1283 620//1280 -f 547//1261 548//1262 622//1282 621//1281 -s 68 -f 548//1299 549//1300 623//1310 622//1309 -s 69 -f 549//1315 550//1316 624//1326 623//1325 -s 70 -f 550//1331 551//1332 625//1342 624//1341 -s 71 -f 551//1347 552//1348 626//1358 625//1357 -s 72 -f 552//1363 553//1364 627//1374 626//1373 -s 73 -f 553//1379 554//1380 628//1392 627//1391 -s off -f 601//60 587//60 573//60 571//60 569//60 555//60 541//60 615//60 -f 570//61 572//61 586//61 600//61 614//61 628//61 554//61 568//61 -f 638//62 637//62 640//62 639//62 -f 634//63 633//63 636//63 635//63 -f 633//64 634//64 632//64 620//64 -f 634//65 635//65 631//65 632//65 -f 635//66 636//66 629//66 631//66 -f 636//67 633//67 620//67 629//67 -f 637//68 638//68 630//68 606//68 -f 638//69 639//69 631//69 630//69 -f 639//70 640//70 632//70 631//70 -f 640//71 637//71 606//71 632//71 -g mast3 -s 83 -f 655//1397 656//1398 642//1396 641//1395 -s 84 -f 656//1413 657//1414 643//1412 642//1411 -s 85 -f 657//1429 658//1430 644//1428 643//1427 -s 86 -f 658//1445 659//1446 645//1444 644//1443 -s 87 -f 659//1463 660//1464 646//1460 645//1459 -f 660//1464 661//1465 647//1461 646//1460 -f 661//1465 662//1466 648//1462 647//1461 -s 88 -f 662//1501 663//1502 649//1500 648//1499 -s 89 -f 663//1517 664//1518 650//1516 649//1515 -s 90 -f 664//1533 665//1534 651//1532 650//1531 -s 91 -f 665//1549 666//1550 652//1548 651//1547 -s 92 -f 666//1565 667//1566 653//1564 652//1563 -s 93 -f 667//1581 668//1582 654//1580 653//1579 -s 83 -f 687//1403 688//1404 674//1402 673//1401 -s 84 -f 688//1417 689//1418 675//1416 674//1415 -s 85 -f 689//1433 690//1434 676//1432 675//1431 -s 86 -f 690//1449 691//1450 677//1448 676//1447 -s 87 -f 691//1471 692//1472 678//1468 677//1467 -f 692//1472 693//1473 679//1469 678//1468 -f 693//1473 694//1474 680//1470 679//1469 -s 88 -f 694//1505 695//1506 681//1504 680//1503 -s 89 -f 695//1521 696//1522 682//1520 681//1519 -s 90 -f 696//1537 697//1538 683//1536 682//1535 -s 91 -f 697//1553 698//1554 684//1552 683//1551 -s 92 -f 698//1569 699//1570 685//1568 684//1567 -s 93 -f 699//1587 700//1588 686//1586 685//1585 -s 83 -f 701//1405 702//1406 688//1404 687//1403 -s 84 -f 702//1419 703//1420 689//1418 688//1417 -s 85 -f 703//1435 704//1436 690//1434 689//1433 -s 86 -f 704//1451 705//1452 691//1450 690//1449 -s 87 -f 705//1475 706//1476 692//1472 691//1471 -f 706//1476 730//1484 707//1477 693//1473 692//1472 -f 707//1477 708//1478 694//1474 693//1473 -s 88 -f 708//1507 709//1508 695//1506 694//1505 -s 89 -f 709//1523 710//1524 696//1522 695//1521 -s 90 -f 710//1539 711//1540 697//1538 696//1537 -s 91 -f 711//1555 712//1556 698//1554 697//1553 -s 92 -f 712//1571 713//1572 699//1570 698//1569 -s 93 -f 713//1589 714//1590 700//1588 699//1587 -s 83 -f 715//1407 716//1408 702//1406 701//1405 -s 84 -f 716//1421 717//1422 703//1420 702//1419 -s 85 -f 717//1437 718//1438 704//1436 703//1435 -s 86 -f 718//1453 719//1454 705//1452 704//1451 -s 87 -f 719//1479 720//1480 732//1486 706//1476 705//1475 -f 729//1483 721//1481 707//1477 730//1484 731//1485 -f 721//1481 722//1482 708//1478 707//1477 -s 88 -f 722//1509 723//1510 709//1508 708//1507 -s 89 -f 723//1525 724//1526 710//1524 709//1523 -s 90 -f 724//1541 725//1542 711//1540 710//1539 -s 91 -f 725//1557 726//1558 712//1556 711//1555 -s 92 -f 726//1573 727//1574 713//1572 712//1571 -s 93 -f 727//1591 728//1592 714//1590 713//1589 -s 83 -f 641//1395 642//1396 716//1408 715//1407 -s 84 -f 642//1411 643//1412 717//1422 716//1421 -s 85 -f 643//1427 644//1428 718//1438 717//1437 -s 86 -f 644//1443 645//1444 719//1454 718//1453 -s 87 -f 645//1459 646//1460 720//1480 719//1479 -f 646//1460 647//1461 721//1481 729//1483 720//1480 -f 647//1461 648//1462 722//1482 721//1481 -s 88 -f 648//1499 649//1500 723//1510 722//1509 -s 89 -f 649//1515 650//1516 724//1526 723//1525 -s 90 -f 650//1531 651//1532 725//1542 724//1541 -s 91 -f 651//1547 652//1548 726//1558 725//1557 -s 92 -f 652//1563 653//1564 727//1574 726//1573 -s 93 -f 653//1579 654//1580 728//1592 727//1591 -s off -f 701//72 687//72 673//72 671//72 669//72 655//72 641//72 715//72 -f 670//73 672//73 686//73 700//73 714//73 728//73 654//73 668//73 -f 738//74 737//74 740//74 739//74 -f 734//75 733//75 736//75 735//75 -f 733//76 734//76 732//76 720//76 -f 734//77 735//77 731//77 732//77 -f 735//78 736//78 729//78 731//78 -f 736//79 733//79 720//79 729//79 -f 737//80 738//80 730//80 706//80 -f 738//81 739//81 731//81 730//81 -f 739//82 740//82 732//82 731//82 -f 740//83 737//83 706//83 732//83 -g lamp -s 104 -f 752//1597 753//1598 743//1596 742//1595 -s 105 -f 753//1613 754//1614 744//1612 743//1611 -s 106 -f 754//1630 755//1631 745//1628 744//1627 -f 755//1631 756//1632 746//1629 745//1628 -s 107 -f 756//1653 757//1654 747//1652 746//1651 -s 108 -f 757//1669 758//1670 748//1668 747//1667 -s 109 -f 758//1685 759//1686 749//1684 748//1683 -s 110 -f 759//1701 760//1702 750//1700 749//1699 -s 103 -f 760//1718 761//1719 751//1717 750//1716 -f 761//1719 741//1715 751//1717 -s 104 -f 762//1599 763//1600 753//1598 752//1597 -s 105 -f 763//1615 764//1616 754//1614 753//1613 -s 106 -f 764//1633 765//1634 755//1631 754//1630 -f 765//1634 766//1635 756//1632 755//1631 -s 107 -f 766//1655 767//1656 757//1654 756//1653 -s 108 -f 767//1671 768//1672 758//1670 757//1669 -s 109 -f 768//1687 769//1688 759//1686 758//1685 -s 110 -f 769//1703 770//1704 760//1702 759//1701 -s 103 -f 770//1720 771//1721 761//1719 760//1718 -f 771//1721 741//1715 761//1719 -s 104 -f 772//1601 773//1602 763//1600 762//1599 -s 105 -f 773//1617 774//1618 764//1616 763//1615 -s 106 -f 774//1636 775//1637 765//1634 764//1633 -f 775//1637 776//1638 766//1635 765//1634 -s 107 -f 776//1657 777//1658 767//1656 766//1655 -s 108 -f 777//1673 778//1674 768//1672 767//1671 -s 109 -f 778//1689 779//1690 769//1688 768//1687 -s 110 -f 779//1705 780//1706 770//1704 769//1703 -s 103 -f 780//1722 781//1723 771//1721 770//1720 -f 781//1723 741//1715 771//1721 -s 104 -f 782//1603 783//1604 773//1602 772//1601 -s 105 -f 783//1619 784//1620 774//1618 773//1617 -s 106 -f 784//1639 785//1640 775//1637 774//1636 -f 785//1640 786//1641 776//1638 775//1637 -s 107 -f 786//1659 787//1660 777//1658 776//1657 -s 108 -f 787//1675 788//1676 778//1674 777//1673 -s 109 -f 788//1691 789//1692 779//1690 778//1689 -s 110 -f 789//1707 790//1708 780//1706 779//1705 -s 103 -f 790//1724 791//1725 781//1723 780//1722 -f 791//1725 741//1715 781//1723 -s 104 -f 792//1605 793//1606 783//1604 782//1603 -s 105 -f 793//1621 794//1622 784//1620 783//1619 -s 106 -f 794//1642 795//1643 785//1640 784//1639 -f 795//1643 796//1644 786//1641 785//1640 -s 107 -f 796//1661 797//1662 787//1660 786//1659 -s 108 -f 797//1677 798//1678 788//1676 787//1675 -s 109 -f 798//1693 799//1694 789//1692 788//1691 -s 110 -f 799//1709 800//1710 790//1708 789//1707 -s 103 -f 800//1726 801//1727 791//1725 790//1724 -f 801//1727 741//1715 791//1725 -s 104 -f 802//1607 803//1608 793//1606 792//1605 -s 105 -f 803//1623 804//1624 794//1622 793//1621 -s 106 -f 804//1645 805//1646 795//1643 794//1642 -f 805//1646 806//1647 796//1644 795//1643 -s 107 -f 806//1663 807//1664 797//1662 796//1661 -s 108 -f 807//1679 808//1680 798//1678 797//1677 -s 109 -f 808//1695 809//1696 799//1694 798//1693 -s 110 -f 809//1711 810//1712 800//1710 799//1709 -s 103 -f 810//1728 811//1729 801//1727 800//1726 -f 811//1729 741//1715 801//1727 -s 104 -f 812//1609 813//1610 803//1608 802//1607 -s 105 -f 813//1625 814//1626 804//1624 803//1623 -s 106 -f 814//1648 815//1649 805//1646 804//1645 -f 815//1649 816//1650 806//1647 805//1646 -s 107 -f 816//1665 817//1666 807//1664 806//1663 -s 108 -f 817//1681 818//1682 808//1680 807//1679 -s 109 -f 818//1697 819//1698 809//1696 808//1695 -s 110 -f 819//1713 820//1714 810//1712 809//1711 -s 103 -f 820//1730 821//1731 811//1729 810//1728 -f 821//1731 741//1715 811//1729 -s 104 -f 742//1595 743//1596 813//1610 812//1609 -s 105 -f 743//1611 744//1612 814//1626 813//1625 -s 106 -f 744//1627 745//1628 815//1649 814//1648 -f 745//1628 746//1629 816//1650 815//1649 -s 107 -f 746//1651 747//1652 817//1666 816//1665 -s 108 -f 747//1667 748//1668 818//1682 817//1681 -s 109 -f 748//1683 749//1684 819//1698 818//1697 -s 110 -f 749//1699 750//1700 820//1714 819//1713 -s 103 -f 750//1716 751//1717 821//1731 820//1730 -f 751//1717 741//1715 821//1731 -s off -f 802//84 792//84 782//84 772//84 762//84 752//84 742//84 812//84 -g foremast -s 112 -f 825//1735 824//1734 822//1732 823//1733 -f 827//1737 826//1736 824//1734 825//1735 -f 829//1739 828//1738 826//1736 827//1737 -f 831//1741 830//1740 828//1738 829//1739 -f 833//1743 832//1742 830//1740 831//1741 -f 835//1745 834//1744 832//1742 833//1743 -f 837//1747 836//1746 834//1744 835//1745 -f 823//1733 822//1732 836//1746 837//1747 -s off -f 824//85 826//85 828//85 830//85 832//85 834//85 836//85 822//85 -f 837//86 835//86 833//86 831//86 829//86 827//86 825//86 823//86 -g keel -s 21 -f 839//429 838//428 107//390 108//391 -f 840//430 112//395 107//390 838//428 -f 841//431 114//397 112//395 840//430 -f 842//432 116//399 114//397 841//431 -f 843//433 118//401 116//399 842//432 -f 844//434 120//403 118//401 843//433 -f 845//435 122//405 120//403 844//434 -f 846//436 124//407 122//405 845//435 -f 128//411 125//408 848//438 847//437 -f 849//439 130//413 128//411 847//437 -f 850//440 132//415 130//413 849//439 -f 851//441 134//417 132//415 850//440 -f 852//442 136//419 134//417 851//441 -f 853//443 138//421 136//419 852//442 -f 854//444 140//423 138//421 853//443 -f 855//445 142//425 140//423 854//444 -g hull -f 856//446 144//427 142//425 855//445 -s 25 -f 857//452 146//450 144//448 856//451 -s 26 -f 858//458 148//456 146//454 857//457 -s 23 -f 859//806 150//480 148//478 858//805 -g keel -s 113 -f 861//1767 840//1750 838//1748 860//1766 -f 862//1768 841//1751 840//1750 861//1767 -f 863//1769 842//1752 841//1751 862//1768 -f 864//1770 843//1753 842//1752 863//1769 -f 865//1771 844//1754 843//1753 864//1770 -f 866//1772 845//1755 844//1754 865//1771 -f 867//1773 846//1756 845//1755 866//1772 -f 868//1774 848//1758 846//1756 867//1773 -f 869//1775 847//1757 848//1758 868//1774 -f 870//1776 849//1759 847//1757 869//1775 -f 871//1777 850//1760 849//1759 870//1776 -f 872//1778 851//1761 850//1760 871//1777 -f 873//1779 852//1762 851//1761 872//1778 -f 874//1780 853//1763 852//1762 873//1779 -f 875//1781 854//1764 853//1763 874//1780 -f 875//1781 855//1765 854//1764 -f 838//1748 839//1749 876//1782 860//1766 -f 878//1784 877//1783 860//1766 876//1782 -f 880//1786 879//1785 877//1783 878//1784 -f 882//1788 881//1787 879//1785 880//1786 -f 884//1790 883//1789 881//1787 882//1788 -f 887//1793 886//1792 883//1789 884//1790 885//1791 -g hull -s 30 -f 889//967 888//966 860//959 877//960 -f 891//969 890//968 888//966 889//967 -f 891//969 892//970 890//968 -f 891//969 894//972 893//971 892//970 -f 889//967 895//973 894//972 891//969 -f 877//960 879//961 895//973 889//967 -f 896//974 895//973 879//961 881//962 -f 897//975 894//972 895//973 896//974 -f 898//976 893//971 894//972 897//975 -f 899//977 896//974 881//962 883//963 -f 899//977 900//978 896//974 -f 897//975 896//974 900//978 901//979 -f 901//979 902//980 897//975 -f 898//976 897//975 902//980 903//981 -g keel -s 22 -f 882//1032 246//1022 245//1021 884//1033 -f 878//1030 248//1024 247//1023 880//1031 -f 876//1029 249//1025 248//1024 878//1030 -f 839//1028 108//1014 249//1025 876//1029 -f 880//1031 247//1023 246//1022 882//1032 -g hull -s 113 -f 905//1801 874//1780 873//1779 904//1800 -f 906//1802 875//1781 874//1780 905//1801 -f 906//1802 855//1765 875//1781 -f 905//1801 907//1803 906//1802 -f 904//1800 908//1804 907//1803 905//1801 -f 910//1806 907//1803 908//1804 909//1805 -f 912//1808 911//1807 910//1806 909//1805 -s 115 -f 906//2021 914//2026 913//2025 855//2017 -f 907//2022 915//2027 914//2026 906//2021 -f 910//2023 916//2028 915//2027 907//2022 -f 913//2025 856//2018 855//2017 -f 913//2025 857//2019 856//2018 -s 113 -f 918//1814 917//1813 911//1807 912//1808 -f 920//1816 919//1815 917//1813 918//1814 -s 120 -f 922//2036 921//2035 919//2033 920//2034 -s 113 -f 924//1820 916//1812 921//1817 923//1819 -s 115 -f 921//2031 916//2028 910//2023 911//2024 917//2029 919//2030 -s 113 -f 925//1821 915//1811 916//1812 924//1820 -f 925//1821 914//1810 915//1811 -s 23 -f 929//810 928//809 927//808 926//807 -f 931//812 930//811 928//809 929//810 -f 933//814 932//813 930//811 931//812 -f 935//816 934//815 932//813 933//814 -f 859//806 858//805 936//817 -s 115 -f 913//2025 936//2032 858//2020 857//2019 -s 113 -f 914//1810 934//1829 936//1830 913//1809 -s 23 -f 935//816 859//806 936//817 934//815 -g deck -s off -f 937//87 277//87 278//87 -s 23 -f 938//819 282//597 280//595 937//818 -f 940//821 286//601 283//598 939//820 -s off -f 939//88 941//88 940//88 -s 23 -f 943//824 942//823 941//822 -f 940//821 941//822 942//823 944//825 -f 946//827 293//608 286//601 940//821 944//825 945//826 -g hull -f 933//814 938//819 937//818 935//816 -f 938//819 933//814 931//812 943//824 -s 113 -f 948//1836 947//1835 918//1814 912//1808 -f 950//1838 949//1837 947//1835 948//1836 -f 952//1840 951//1839 949//1837 950//1838 -f 956//1844 955//1843 954//1842 953//1841 -f 958//1846 957//1845 955//1843 956//1844 -f 960//1848 959//1847 957//1845 958//1846 -f 960//1848 961//1849 959//1847 -f 963//1851 962//1850 961//1849 960//1848 -f 963//1851 964//1852 962//1850 -f 966//1854 965//1853 964//1852 963//1851 -f 966//1854 967//1855 965//1853 -f 969//1857 968//1856 967//1855 966//1854 -f 971//1859 970//1858 968//1856 969//1857 -f 973//1861 972//1860 970//1858 971//1859 -f 954//1842 951//1839 952//1840 953//1841 -f 947//1835 974//1862 920//1816 918//1814 -f 922//1818 920//1816 974//1862 975//1863 -f 976//1864 974//1862 947//1835 949//1837 -f 977//1865 975//1863 974//1862 976//1864 -f 979//1867 978//1866 975//1863 977//1865 -f 976//1864 981//1869 980//1868 977//1865 -f 949//1837 951//1839 981//1869 976//1864 -f 982//1870 981//1869 951//1839 954//1842 -f 983//1871 980//1868 981//1869 982//1870 -f 983//1871 984//1872 980//1868 -f 984//1872 979//1867 977//1865 980//1868 -f 984//1872 985//1873 979//1867 -g rig -s off -f 987//89 986//89 985//89 984//89 -f 989//90 988//90 985//90 986//90 -s 113 -f 986//1874 987//1875 990//1878 -f 982//1870 992//1880 991//1879 990//1878 -s off -f 993//91 991//91 992//91 -g hull -s 113 -f 995//1883 994//1882 993//1881 992//1880 -g rig -s off -f 991//92 993//92 994//92 996//92 -f 994//93 995//93 996//93 -s 113 -f 998//1886 996//1884 995//1883 997//1885 -s off -f 997//94 999//94 998//94 -f 1001//95 998//95 999//95 1000//95 -g hull -s 23 -f 999//829 997//828 1000//830 -f 1003//832 1002//831 1000//830 997//828 -g rig -s off -f 990//96 983//96 982//96 -f 983//97 990//97 987//97 984//97 -f 1001//98 1000//98 988//98 989//98 -g hull -s 113 -f 954//1842 955//1843 997//1885 995//1883 992//1880 982//1870 -f 997//1885 955//1843 957//1845 1003//1889 -s 23 -f 1002//831 1006//835 1005//834 1004//833 -f 1003//832 1007//836 1006//835 1002//831 -s 113 -f 957//1845 959//1847 1007//1890 1003//1889 -f 1008//1891 1007//1890 959//1847 -g rig -f 961//1849 1010//1893 1009//1892 959//1847 -f 964//1852 1012//1895 1011//1894 962//1850 -f 967//1855 1014//1897 1013//1896 965//1853 -g hull -f 1016//1899 961//1849 962//1850 1015//1898 -f 1018//1901 1017//1900 964//1852 965//1853 -f 1020//1903 1019//1902 967//1855 -g rig -f 1014//1897 1022//1905 1021//1904 1013//1896 -g hull -s 23 -f 1024//838 1023//837 1005//834 1006//835 -f 1024//838 1025//839 1023//837 -f 1024//838 1026//840 1025//839 -f 1026//840 1027//841 1025//839 -g rig -s off -f 959//99 1009//99 1008//99 -f 1007//100 1029//100 1028//100 1006//100 -f 1016//101 1010//101 961//101 -f 1010//102 1016//102 1015//102 1011//102 -f 1011//103 1015//103 962//103 -f 1018//104 965//104 1013//104 -f 1021//105 1024//105 1006//105 1028//105 1031//105 1030//105 -f 1014//106 967//106 1019//106 -f 1014//107 1019//107 1020//107 1022//107 -f 1022//108 1020//108 1024//108 1021//108 -f 1017//109 1012//109 964//109 -f 1012//110 1017//110 1018//110 1013//110 -g hull -s 113 -f 968//1856 1032//1911 1020//1903 967//1855 -f 1024//1906 1020//1903 1032//1911 1033//1912 -f 1034//1913 1033//1912 1032//1911 -f 1036//1915 1035//1914 1034//1913 1032//1911 -f 1036//1915 1037//1916 1035//1914 -f 1039//1918 1038//1917 1037//1916 1036//1915 -f 970//1858 972//1860 1039//1918 1036//1915 -f 1032//1911 968//1856 970//1858 1036//1915 -g rig -f 1041//1920 1040//1919 1033//1912 1034//1913 -f 1043//1922 1042//1921 1040//1919 -f 1035//1914 1037//1916 1045//1924 1044//1923 -g hull -s 23 -f 1047//844 1046//843 1033//842 -f 1046//843 1048//845 1027//841 1026//840 -s 113 -f 1034//1913 1035//1914 1050//1926 1049//1925 -s 23 -f 1052//847 1051//846 1027//841 1048//845 -f 1052//847 1053//848 1051//846 -g rig -s off -f 1047//111 1033//111 1040//111 -f 1044//112 1050//112 1035//112 -f 1034//113 1049//113 1041//113 -f 1050//114 1044//114 1041//114 1049//114 -f 1047//115 1040//115 1042//115 1046//115 -f 1046//116 1042//116 1043//116 1048//116 -f 1054//117 1052//117 1048//117 1043//117 -f 1052//118 1054//118 1056//118 1055//118 -f 1057//119 1055//119 1056//119 1045//119 -f 1037//120 1057//120 1045//120 -g hull -s 23 -f 1026//840 1024//838 1033//842 1046//843 -s 113 -f 1037//1916 1038//1917 1055//1929 1057//1931 -f 1055//1929 1038//1917 1058//1932 1052//1927 -s 23 -f 1059//850 1053//848 1052//847 1058//849 -f 1061//852 1060//851 1059//850 1058//849 -f 1063//854 1062//853 1059//850 1060//851 -s 45 -f 1065//1082 1064//1081 1062//1079 1063//1080 -f 1065//1082 1067//1084 1066//1083 -s 23 -f 1060//851 1068//857 1067//856 1063//854 -f 1061//852 1069//858 1068//857 1060//851 -s 45 -f 1071//1086 1070//1085 1065//1082 1066//1083 -f 1073//1088 1072//1087 1070//1085 1071//1086 -f 1075//1090 1074//1089 1072//1087 1073//1088 -f 1077//1092 1076//1091 1074//1089 1075//1090 -f 423//1070 424//1071 1076//1091 1077//1092 -s 23 -f 1075//861 425//735 423//734 1077//862 -f 1078//863 427//737 425//735 1075//861 -f 1079//864 429//739 427//737 1078//863 -f 1081//866 433//743 430//740 1080//865 -f 1083//868 1082//867 1081//866 1080//865 -f 1068//857 1069//858 1082//867 1083//868 -f 1066//855 1067//856 1068//857 1083//868 1071//859 -f 1078//863 1073//860 1071//859 1079//864 -f 1078//863 1075//861 1073//860 -s 113 -f 1039//1918 1085//1936 1084//1935 1038//1917 -f 972//1860 1086//1937 1085//1936 1039//1918 -f 972//1860 1087//1938 1086//1937 -s 23 -f 1080//865 430//740 429//739 1079//864 -f 1079//864 1071//859 1083//868 1080//865 -s 113 -f 1087//1938 898//1798 903//1799 1088//1939 -f 898//1798 1087//1938 972//1860 973//1861 -g aft -s 23 -f 1090//870 1061//852 1058//849 1089//869 -f 1091//871 1069//858 1061//852 1090//870 -f 1092//872 1082//867 1069//858 1091//871 -f 1093//873 1081//866 1082//867 1092//872 -f 1093//873 1094//874 446//755 447//756 -f 1092//872 1095//875 1094//874 1093//873 -f 1091//871 1096//876 1095//875 1092//872 -f 1090//870 1097//877 1096//876 1091//871 -f 1089//869 1098//878 1097//877 1090//870 -s 113 -f 1100//1943 1099//1942 1098//1941 1089//1940 -f 1058//1932 1038//1917 1100//1943 1089//1940 -s 137 -f 1084//2039 1101//2045 1100//2044 1038//2038 -f 1099//2043 1100//2044 1101//2045 1102//2046 -g windows -f 1097//2041 1098//2042 1099//2043 1102//2046 -f 1103//2047 1096//2040 1097//2041 1102//2046 -s 30 -f 1104//988 1095//985 1096//986 1103//987 -f 1105//989 1094//984 1095//985 1104//988 -f 460//932 446//925 1094//984 1105//989 -g aft -f 1106//990 462//934 460//932 1105//989 -f 1105//989 1107//991 1106//990 -f 1104//988 1108//992 1107//991 1105//989 -f 1104//988 1109//993 1108//992 -s 137 -f 1103//2047 1102//2046 1101//2045 1110//2048 -s 135 -f 1085//2055 1111//2059 1101//2058 1084//2054 -s 137 -f 1112//2050 1110//2048 1101//2045 1111//2049 -f 1115//2053 1114//2052 1112//2050 1111//2049 1113//2051 -s 135 -f 1086//2056 1113//2060 1111//2059 1085//2055 -f 1086//2056 1087//2057 1115//2061 1113//2060 -g hull -s 113 -f 1116//1944 1088//1939 903//1799 -s 30 -f 1120//1002 1119//1001 1118//1000 1117//999 -g aft -f 1122//1004 1121//1003 1108//992 1109//993 -f 902//980 901//979 1121//1003 1122//1004 -g hull -f 1126//1008 1125//1007 1124//1006 1123//1005 -g aft -f 1128//1010 1127//1009 1106//990 1107//991 -f 1112//995 1116//998 1129//1011 1110//994 -f 1110//994 1129//1011 1103//987 -f 1129//1011 1109//993 1104//988 1103//987 -f 900//978 899//977 1127//1009 1128//1010 -s off -f 1123//121 1124//121 1107//121 1108//121 -s 141 -f 1124//2064 1125//2065 1128//2066 1107//2063 -f 1128//2066 1125//2065 900//2062 -g hull -s 30 -f 1126//1008 901//979 900//978 1125//1007 -g aft -s 140 -f 1126//2071 1123//2070 1108//2068 1121//2069 -s 139 -f 1119//2075 902//2072 1122//2076 -f 1119//2075 1122//2076 1109//2073 1118//2074 -s 30 -f 1117//999 1118//1000 1109//993 1129//1011 -g hull -f 1120//1002 903//981 902//980 1119//1001 -s 138 -f 1120//2080 1116//2078 903//2077 -g aft -f 1120//2080 1117//2079 1129//2081 1116//2078 -g keel -s 22 -f 885//1034 884//1033 245//1021 486//1026 -g aft -s 31 -f 462//1140 1106//1146 887//1145 885//1144 486//1141 -f 887//1145 1106//1146 1130//1147 -g hull -s 30 -f 1130//1012 1131//1013 886//964 887//965 -g aft -s 142 -f 899//2082 1131//2086 1127//2084 -g hull -s 30 -f 899//977 883//963 886//964 1131//1013 -s 45 -f 424//1071 489//1073 1076//1091 -f 490//1074 1074//1089 1076//1091 489//1073 -f 491//1075 1072//1087 1074//1089 490//1074 -f 492//1076 1070//1085 1072//1087 491//1075 -f 445//1072 1065//1082 1070//1085 492//1076 -f 493//1077 1132//1093 1065//1082 445//1072 -g deck -s 58 -f 496//1156 1134//1160 1133//1159 1132//1158 493//1153 -s off -f 1136//122 1135//122 1133//122 1134//122 -f 1134//123 1137//123 1136//123 -s 59 -f 496//1161 501//1164 1137//1166 1134//1165 -s 60 -f 1136//1175 1139//1178 1138//1177 1135//1174 -f 501//1170 504//1173 1139//1178 1136//1175 1137//1176 -g hull -s 131 -f 1064//2092 1140//2093 1059//2090 1062//2091 -f 1141//2094 1053//2089 1059//2090 1140//2093 -f 1142//2095 1051//2088 1053//2089 1141//2094 -f 1143//2096 1027//2087 1051//2088 1142//2095 -s 23 -f 1144//880 1025//839 1027//841 1143//879 -f 1145//881 1023//837 1025//839 1144//880 -f 1147//883 1004//833 1005//834 1146//882 -f 1149//885 1148//884 1004//833 1147//883 -f 1151//887 1150//886 1148//884 1149//885 -f 1155//891 1154//890 1153//889 1152//888 926//807 927//808 -g deck -s off -f 1139//124 1157//124 1156//124 1138//124 -f 1139//125 1158//125 1157//125 -s 23 -f 1157//893 1158//894 524//788 525//789 -f 526//790 1159//895 1156//892 1157//893 525//789 -f 1161//897 1160//896 1159//895 526//790 528//792 -f 1163//899 1162//898 1160//896 1161//897 -s off -f 1163//126 1161//126 946//126 -s 23 -f 293//608 946//827 1161//897 528//792 -f 939//820 1164//900 943//824 941//822 -f 282//597 938//819 1164//900 939//820 283//598 -g hull -f 1023//837 1145//881 1146//882 1005//834 -s 113 -f 1140//1949 1064//1933 1133//1946 -f 1133//1946 1135//1947 1141//1950 1140//1949 -f 1141//1950 1135//1947 1142//1951 -f 1142//1951 1135//1947 1138//1948 1143//1952 -f 1156//1965 1144//1953 1143//1952 1138//1948 -f 1144//1953 1156//1965 1145//1954 -f 1065//1934 1132//1945 1133//1946 1064//1933 -g deck -s 61 -f 1139//1193 504//1190 524//1192 1158//1194 -g hull -s 113 -f 1160//1967 1147//1956 1146//1955 1159//1966 -f 1159//1966 1146//1955 1145//1954 1156//1965 -f 1160//1967 1162//1968 1149//1958 1147//1956 -s 23 -f 1150//886 1151//887 1152//888 1153//889 -s 113 -f 945//1834 1151//1960 1149//1958 1162//1968 -g deck -s off -f 945//127 1162//127 1163//127 946//127 -g hull -s 113 -f 1151//1960 945//1834 1152//1961 -f 926//1822 1152//1961 945//1834 944//1833 -f 1165//1969 861//1767 860//1766 888//1794 -f 1166//1970 862//1768 861//1767 1165//1969 -f 1167//1971 863//1769 862//1768 1166//1970 -f 1168//1972 864//1770 863//1769 1167//1971 -f 1169//1973 865//1771 864//1770 1168//1972 -f 1170//1974 866//1772 865//1771 1169//1973 -f 1171//1975 867//1773 866//1772 1170//1974 -f 1172//1976 868//1774 867//1773 1171//1975 -f 1173//1977 869//1775 868//1774 1172//1976 -f 1174//1978 870//1776 869//1775 1173//1977 -f 1175//1979 871//1777 870//1776 1174//1978 -f 1176//1980 872//1778 871//1777 1175//1979 -f 1176//1980 873//1779 872//1778 -f 1177//1981 1165//1969 888//1794 890//1795 -f 1178//1982 1166//1970 1165//1969 1177//1981 -f 1179//1983 1167//1971 1166//1970 1178//1982 -f 1180//1984 1168//1972 1167//1971 1179//1983 -f 1181//1985 1169//1973 1168//1972 1180//1984 -f 1182//1986 1170//1974 1169//1973 1181//1985 -f 1183//1987 1171//1975 1170//1974 1182//1986 -f 1184//1988 1172//1976 1171//1975 1183//1987 -f 1185//1989 1173//1977 1172//1976 1184//1988 -f 1186//1990 1174//1978 1173//1977 1185//1989 -f 1187//1991 1175//1979 1174//1978 1186//1990 -f 1188//1992 1176//1980 1175//1979 1187//1991 -f 904//1800 873//1779 1176//1980 1188//1992 -f 1189//1993 1177//1981 890//1795 892//1796 -f 1190//1994 1178//1982 1177//1981 1189//1993 -f 1191//1995 1179//1983 1178//1982 1190//1994 -f 1192//1996 1180//1984 1179//1983 1191//1995 -f 1193//1997 1181//1985 1180//1984 1192//1996 -f 1194//1998 1182//1986 1181//1985 1193//1997 -f 1195//1999 1183//1987 1182//1986 1194//1998 -f 1196//2000 1184//1988 1183//1987 1195//1999 -f 1197//2001 1185//1989 1184//1988 1196//2000 -f 1198//2002 1186//1990 1185//1989 1197//2001 -f 1199//2003 1187//1991 1186//1990 1198//2002 -f 1200//2004 1188//1992 1187//1991 1199//2003 -f 908//1804 904//1800 1188//1992 1200//2004 -f 1201//2005 1189//1993 892//1796 893//1797 -f 1202//2006 1190//1994 1189//1993 1201//2005 -f 1203//2007 1191//1995 1190//1994 1202//2006 -f 1204//2008 1192//1996 1191//1995 1203//2007 -f 1205//2009 1193//1997 1192//1996 1204//2008 -f 1206//2010 1194//1998 1193//1997 1205//2009 -f 1207//2011 1195//1999 1194//1998 1206//2010 -f 1208//2012 1196//2000 1195//1999 1207//2011 -f 1209//2013 1197//2001 1196//2000 1208//2012 -f 1210//2014 1198//2002 1197//2001 1209//2013 -f 1211//2015 1199//2003 1198//2002 1210//2014 -f 1212//2016 1200//2004 1199//2003 1211//2015 -f 909//1805 908//1804 1200//2004 1212//2016 -f 973//1861 1201//2005 893//1797 898//1798 -f 971//1859 1202//2006 1201//2005 973//1861 -f 969//1857 1203//2007 1202//2006 971//1859 -f 966//1854 1204//2008 1203//2007 969//1857 -f 963//1851 1205//2009 1204//2008 966//1854 -f 960//1848 1206//2010 1205//2009 963//1851 -f 958//1846 1207//2011 1206//2010 960//1848 -f 956//1844 1208//2012 1207//2011 958//1846 -f 953//1841 1209//2013 1208//2012 956//1844 -f 952//1840 1210//2014 1209//2013 953//1841 -f 950//1838 1211//2015 1210//2014 952//1840 -f 948//1836 1212//2016 1211//2015 950//1838 -f 912//1808 909//1805 1212//2016 948//1836 -f 1148//1957 1150//1959 988//1876 1000//1887 -f 979//1867 985//1873 1154//1963 1155//1964 -f 927//1823 928//1824 978//1866 -f 1154//1963 985//1873 988//1876 1153//1962 -f 922//1818 975//1863 978//1866 928//1824 -s 23 -f 278//593 859//806 935//816 937//818 -f 150//480 859//806 278//593 277//592 -g aft -f 1093//873 447//756 433//743 1081//866 -g hull -s 120 -f 922//2036 923//2037 921//2035 -s 23 -f 1000//830 1002//831 1004//833 1148//884 -g keel -s 21 -f 848//438 125//408 124//407 846//436 -g aft -s 140 -f 901//2067 1126//2071 1121//2069 -g hull -s 113 -f 927//1823 978//1866 979//1867 1155//1964 -f 943//1832 931//1827 929//1825 942//1831 -f 944//1833 942//1831 929//1825 926//1822 -g deck -s 23 -f 1164//900 938//819 943//824 -g hull -s 113 -f 988//1876 1150//1959 1153//1962 -g rig -f 1009//1892 1010//1893 1028//1907 1029//1908 -f 1011//1894 1031//1910 1028//1907 1010//1893 -s off -f 1029//128 1007//128 1008//128 1009//128 -g aft -s 142 -f 1106//2083 1127//2084 1131//2086 1130//2085 -s 30 -f 1088//983 1114//996 1115//997 1087//982 -f 1088//983 1116//998 1112//995 1114//996 -g hull -s 113 -f 924//1820 923//1819 928//1824 930//1826 -f 925//1821 924//1820 930//1826 932//1828 -f 914//1810 925//1821 932//1828 934//1829 -f 923//1819 922//1818 928//1824 -s 45 -f 1067//1084 1065//1082 1063//1080 -g rig -s 113 -f 1030//1909 1012//1895 1013//1896 1021//1904 -f 1031//1910 1011//1894 1012//1895 1030//1909 -f 989//1877 998//1886 1001//1888 -f 986//1874 990//1878 991//1879 996//1884 998//1886 989//1877 -f 1043//1922 1040//1919 1041//1920 1044//1923 1045//1924 1054//1928 -f 1054//1928 1045//1924 1056//1930 -g sail2 -s 143 -f 1217//2101 1216//2100 1213//2097 1214//2098 -f 1240//2115 1239//2114 1238//2113 1237//2112 1215//2099 1218//2102 1217//2101 1214//2098 1241//2116 -f 1220//2104 1219//2103 1216//2100 1217//2101 -f 1221//2105 1220//2104 1217//2101 1218//2102 -f 1223//2107 1222//2106 1219//2103 1220//2104 -f 1224//2108 1223//2107 1220//2104 1221//2105 -f 1226//2110 1225//2109 1222//2106 1223//2107 -f 1227//2111 1226//2110 1223//2107 1224//2108 -s 144 -f 1229//2216 1228//2215 1225//2212 1226//2213 -f 1230//2217 1229//2216 1226//2213 1227//2214 -f 1232//2219 1231//2218 1228//2215 1229//2216 -f 1233//2220 1232//2219 1229//2216 1230//2217 -f 1235//2222 1234//2221 1231//2218 1232//2219 -f 1236//2223 1242//2224 1243//2225 1244//2226 1245//2227 1246//2228 1235//2222 1232//2219 1233//2220 -f 1214//2211 1213//2210 1234//2221 1235//2222 -s off -f 1216//129 1219//129 1222//129 1225//129 1228//129 1231//129 1234//129 1213//129 -s 143 -f 1248//2118 1241//2116 1214//2098 -f 1248//2118 1249//2119 1240//2115 1241//2116 -f 1249//2119 1250//2120 1239//2114 1240//2115 -f 1250//2120 1251//2121 1238//2113 1239//2114 -f 1251//2121 1252//2122 1237//2112 1238//2113 -f 1252//2122 1253//2123 1215//2099 1237//2112 -f 1254//2124 1255//2125 1249//2119 -f 1255//2125 1256//2126 1251//2121 1250//2120 -f 1256//2126 1257//2127 1252//2122 1251//2121 -f 1257//2127 1258//2128 1253//2123 1252//2122 -f 1259//2129 1260//2130 1257//2127 1256//2126 -f 1260//2130 1261//2131 1258//2128 1257//2127 -f 1247//2117 1248//2118 1214//2098 -f 1249//2119 1248//2118 1254//2124 -f 1250//2120 1249//2119 1255//2125 -f 1262//2132 1263//2133 1248//2118 1247//2117 -f 1263//2133 1254//2124 1248//2118 -f 1264//2134 1265//2135 1263//2133 1262//2132 -f 1265//2135 1266//2136 1254//2124 1263//2133 -f 1266//2136 1267//2137 1254//2124 -f 1267//2137 1259//2129 1256//2126 1255//2125 -f 1268//2138 1269//2139 1265//2135 1264//2134 -f 1269//2139 1270//2140 1266//2136 1265//2135 -f 1270//2140 1271//2141 1267//2137 1266//2136 -f 1271//2141 1272//2142 1259//2129 1267//2137 -f 1272//2142 1273//2143 1260//2130 1259//2129 -f 1273//2143 1274//2144 1261//2131 1260//2130 -f 1275//2145 1276//2146 1269//2139 1268//2138 -f 1276//2146 1277//2147 1270//2140 1269//2139 -f 1277//2147 1278//2148 1271//2141 1270//2140 -f 1278//2148 1279//2149 1272//2142 1271//2141 -f 1279//2149 1280//2150 1273//2143 1272//2142 -f 1280//2150 1281//2151 1274//2144 1273//2143 -f 1282//2152 1283//2153 1276//2146 1275//2145 -f 1283//2153 1284//2154 1277//2147 1276//2146 -f 1284//2154 1285//2155 1278//2148 1277//2147 -f 1285//2155 1286//2156 1279//2149 1278//2148 -f 1286//2156 1287//2157 1280//2150 1279//2149 -f 1287//2157 1288//2158 1281//2151 1280//2150 -f 1255//2125 1254//2124 1267//2137 -s 145 -f 1291//2265 1290//2264 1289//2263 -f 1294//2268 1293//2267 1292//2266 1290//2264 -f 1293//2267 1296//2270 1295//2269 1292//2266 -f 1296//2270 1298//2272 1297//2271 1295//2269 -f 1292//2266 1295//2269 1300//2274 1299//2273 -f 1295//2269 1297//2271 1301//2275 1300//2274 -f 1289//2263 1302//2276 1291//2265 -f 1290//2264 1291//2265 1294//2268 -f 1247//2251 1302//2276 1303//2277 1262//2252 -f 1302//2276 1289//2263 1303//2277 -f 1262//2252 1303//2277 1304//2278 1264//2253 -f 1303//2277 1289//2263 1305//2279 1304//2278 -f 1289//2263 1306//2280 1305//2279 -f 1290//2264 1292//2266 1299//2273 1306//2280 -f 1264//2253 1304//2278 1307//2281 1268//2254 -f 1304//2278 1305//2279 1308//2282 1307//2281 -f 1305//2279 1306//2280 1309//2283 1308//2282 -f 1306//2280 1299//2273 1310//2284 1309//2283 -f 1299//2273 1300//2274 1311//2285 1310//2284 -f 1300//2274 1301//2275 1312//2286 1311//2285 -f 1268//2254 1307//2281 1313//2287 1275//2255 -f 1307//2281 1308//2282 1314//2288 1313//2287 -f 1308//2282 1309//2283 1315//2289 1314//2288 -f 1309//2283 1310//2284 1316//2290 1315//2289 -f 1310//2284 1311//2285 1317//2291 1316//2290 -f 1311//2285 1312//2286 1318//2292 1317//2291 -f 1275//2255 1313//2287 1283//2257 1282//2256 -f 1313//2287 1314//2288 1284//2258 1283//2257 -f 1314//2288 1315//2289 1285//2259 1284//2258 -f 1315//2289 1316//2290 1286//2260 1285//2259 -f 1316//2290 1317//2291 1287//2261 1286//2260 -f 1317//2291 1318//2292 1288//2262 1287//2261 -f 1306//2280 1289//2263 1290//2264 -f 1298//2272 1296//2270 1242//2246 1236//2245 -s off -f 1247//130 1214//130 1235//130 -s 145 -f 1302//2276 1247//2251 1235//2244 1246//2250 -f 1291//2265 1302//2276 1246//2250 1245//2249 -f 1294//2268 1291//2265 1245//2249 1244//2248 -f 1293//2267 1294//2268 1244//2248 1243//2247 -f 1296//2270 1293//2267 1243//2247 1242//2246 -s 143 -f 1322//2162 1321//2161 1320//2160 1319//2159 -f 1327//2167 1322//2162 1319//2159 1218//2102 1215//2099 1326//2166 1325//2165 1324//2164 1323//2163 -f 1319//2159 1320//2160 1329//2169 1328//2168 -f 1218//2102 1319//2159 1328//2168 1221//2105 -f 1328//2168 1329//2169 1331//2171 1330//2170 -f 1221//2105 1328//2168 1330//2170 1224//2108 -f 1330//2170 1331//2171 1333//2173 1332//2172 -f 1224//2108 1330//2170 1332//2172 1227//2111 -s 144 -f 1332//2231 1333//2232 1335//2234 1334//2233 -f 1227//2214 1332//2231 1334//2233 1230//2217 -f 1334//2233 1335//2234 1337//2236 1336//2235 -f 1230//2217 1334//2233 1336//2235 1233//2220 -f 1336//2235 1337//2236 1339//2238 1338//2237 -f 1233//2220 1336//2235 1338//2237 1344//2243 1343//2242 1342//2241 1341//2240 1340//2239 1236//2223 -f 1338//2237 1339//2238 1321//2229 1322//2230 -s off -f 1321//131 1339//131 1337//131 1335//131 1333//131 1331//131 1329//131 1320//131 -s 143 -f 1322//2162 1327//2167 1345//2174 -f 1327//2167 1323//2163 1346//2175 1345//2174 -f 1323//2163 1324//2164 1347//2176 1346//2175 -f 1324//2164 1325//2165 1348//2177 1347//2176 -f 1325//2165 1326//2166 1349//2178 1348//2177 -f 1326//2166 1215//2099 1253//2123 1349//2178 -f 1346//2175 1351//2180 1350//2179 -f 1347//2176 1348//2177 1352//2181 1351//2180 -f 1348//2177 1349//2178 1353//2182 1352//2181 -f 1349//2178 1253//2123 1258//2128 1353//2182 -f 1352//2181 1353//2182 1355//2184 1354//2183 -f 1353//2182 1258//2128 1261//2131 1355//2184 -f 1322//2162 1345//2174 1356//2185 -f 1350//2179 1345//2174 1346//2175 -f 1351//2180 1346//2175 1347//2176 -f 1356//2185 1345//2174 1358//2187 1357//2186 -f 1345//2174 1350//2179 1358//2187 -f 1357//2186 1358//2187 1360//2189 1359//2188 -f 1358//2187 1350//2179 1361//2190 1360//2189 -f 1350//2179 1362//2191 1361//2190 -f 1351//2180 1352//2181 1354//2183 1362//2191 -f 1359//2188 1360//2189 1364//2193 1363//2192 -f 1360//2189 1361//2190 1365//2194 1364//2193 -f 1361//2190 1362//2191 1366//2195 1365//2194 -f 1362//2191 1354//2183 1367//2196 1366//2195 -f 1354//2183 1355//2184 1368//2197 1367//2196 -f 1355//2184 1261//2131 1274//2144 1368//2197 -f 1363//2192 1364//2193 1370//2199 1369//2198 -f 1364//2193 1365//2194 1371//2200 1370//2199 -f 1365//2194 1366//2195 1372//2201 1371//2200 -f 1366//2195 1367//2196 1373//2202 1372//2201 -f 1367//2196 1368//2197 1374//2203 1373//2202 -f 1368//2197 1274//2144 1281//2151 1374//2203 -f 1369//2198 1370//2199 1376//2205 1375//2204 -f 1370//2199 1371//2200 1377//2206 1376//2205 -f 1371//2200 1372//2201 1378//2207 1377//2206 -f 1372//2201 1373//2202 1379//2208 1378//2207 -f 1373//2202 1374//2203 1380//2209 1379//2208 -f 1374//2203 1281//2151 1288//2158 1380//2209 -f 1362//2191 1350//2179 1351//2180 -s 145 -f 1383//2312 1382//2311 1381//2310 -f 1382//2311 1386//2315 1385//2314 1384//2313 -f 1386//2315 1388//2317 1387//2316 1385//2314 -f 1388//2317 1297//2271 1298//2272 1387//2316 -f 1390//2319 1389//2318 1388//2317 1386//2315 -f 1389//2318 1301//2275 1297//2271 1388//2317 -f 1381//2310 1391//2320 1383//2312 -f 1384//2313 1381//2310 1382//2311 -f 1357//2300 1392//2321 1391//2320 1356//2299 -f 1392//2321 1383//2312 1391//2320 -f 1359//2301 1393//2322 1392//2321 1357//2300 -f 1393//2322 1394//2323 1383//2312 1392//2321 -f 1394//2323 1395//2324 1383//2312 -f 1395//2324 1390//2319 1386//2315 1382//2311 -f 1363//2302 1396//2325 1393//2322 1359//2301 -f 1396//2325 1397//2326 1394//2323 1393//2322 -f 1397//2326 1398//2327 1395//2324 1394//2323 -f 1398//2327 1399//2328 1390//2319 1395//2324 -f 1399//2328 1400//2329 1389//2318 1390//2319 -f 1400//2329 1312//2286 1301//2275 1389//2318 -f 1369//2303 1401//2330 1396//2325 1363//2302 -f 1401//2330 1402//2331 1397//2326 1396//2325 -f 1402//2331 1403//2332 1398//2327 1397//2326 -f 1403//2332 1404//2333 1399//2328 1398//2327 -f 1404//2333 1405//2334 1400//2329 1399//2328 -f 1405//2334 1318//2292 1312//2286 1400//2329 -f 1375//2304 1376//2305 1401//2330 1369//2303 -f 1376//2305 1377//2306 1402//2331 1401//2330 -f 1377//2306 1378//2307 1403//2332 1402//2331 -f 1378//2307 1379//2308 1404//2333 1403//2332 -f 1379//2308 1380//2309 1405//2334 1404//2333 -f 1380//2309 1288//2262 1318//2292 1405//2334 -f 1382//2311 1383//2312 1395//2324 -f 1236//2245 1340//2294 1387//2316 1298//2272 -s off -f 1338//132 1322//132 1356//132 -s 145 -f 1344//2298 1338//2293 1356//2299 1391//2320 -f 1343//2297 1344//2298 1391//2320 1381//2310 -f 1342//2296 1343//2297 1381//2310 1384//2313 -f 1341//2295 1342//2296 1384//2313 1385//2314 -f 1340//2294 1341//2295 1385//2314 1387//2316 -g sail1 -s 151 -f 1438//2353 1437//2352 1436//2351 1435//2350 1407//2336 1410//2339 1409//2338 1406//2335 1439//2354 -f 1411//2340 1410//2339 1407//2336 1408//2337 -f 1413//2342 1412//2341 1409//2338 1410//2339 -f 1414//2343 1413//2342 1410//2339 1411//2340 -f 1416//2345 1415//2344 1412//2341 1413//2342 -f 1417//2346 1416//2345 1413//2342 1414//2343 -f 1419//2348 1418//2347 1415//2344 1416//2345 -f 1420//2349 1419//2348 1416//2345 1417//2346 -s 152 -f 1422//2454 1421//2453 1418//2450 1419//2451 -f 1423//2455 1422//2454 1419//2451 1420//2452 -f 1425//2457 1424//2456 1421//2453 1422//2454 -f 1426//2458 1425//2457 1422//2454 1423//2455 -f 1428//2460 1430//2462 1431//2463 1432//2464 1433//2465 1434//2466 1427//2459 1424//2456 1425//2457 -f 1429//2461 1428//2460 1425//2457 1426//2458 -f 1408//2449 1407//2448 1428//2460 1429//2461 -s off -f 1429//133 1426//133 1423//133 1420//133 1417//133 1414//133 1411//133 1408//133 -s 151 -f 1440//2355 1441//2356 1439//2354 1406//2335 -f 1441//2356 1442//2357 1438//2353 1439//2354 -f 1442//2357 1443//2358 1437//2352 1438//2353 -f 1443//2358 1444//2359 1436//2351 1437//2352 -f 1444//2359 1445//2360 1435//2350 1436//2351 -f 1446//2361 1407//2336 1445//2360 -f 1447//2362 1448//2363 1441//2356 1440//2355 -f 1448//2363 1449//2364 1442//2357 1441//2356 -f 1449//2364 1450//2365 1443//2358 1442//2357 -f 1450//2365 1444//2359 1443//2358 -f 1451//2366 1445//2360 1444//2359 -f 1452//2367 1453//2368 1446//2361 1445//2360 -f 1454//2369 1455//2370 1448//2363 1447//2362 -f 1455//2370 1456//2371 1449//2364 1448//2363 -f 1456//2371 1457//2372 1450//2365 1449//2364 -f 1457//2372 1451//2366 1450//2365 -f 1458//2373 1459//2374 1452//2367 1451//2366 -f 1459//2374 1460//2375 1453//2368 1452//2367 -f 1461//2376 1462//2377 1455//2370 1454//2369 -f 1462//2377 1463//2378 1456//2371 1455//2370 -f 1463//2378 1464//2379 1457//2372 1456//2371 -f 1464//2379 1465//2380 1458//2373 1457//2372 -f 1465//2380 1466//2381 1459//2374 1458//2373 -f 1466//2381 1467//2382 1460//2375 1459//2374 -f 1468//2383 1469//2384 1462//2377 1461//2376 -f 1469//2384 1470//2385 1463//2378 1462//2377 -f 1470//2385 1471//2386 1464//2379 1463//2378 -f 1471//2386 1472//2387 1465//2380 1464//2379 -f 1472//2387 1473//2388 1466//2381 1465//2380 -f 1473//2388 1474//2389 1467//2382 1466//2381 -f 1475//2390 1476//2391 1469//2384 1468//2383 -f 1476//2391 1477//2392 1470//2385 1469//2384 -f 1477//2392 1478//2393 1471//2386 1470//2385 -f 1478//2393 1479//2394 1472//2387 1471//2386 -f 1479//2394 1480//2395 1473//2388 1472//2387 -f 1480//2395 1481//2396 1473//2388 -f 1435//2350 1445//2360 1407//2336 -f 1452//2367 1445//2360 1451//2366 -f 1451//2366 1444//2359 1450//2365 -f 1458//2373 1451//2366 1457//2372 -f 1481//2396 1474//2389 1473//2388 -s 153 -f 1485//2504 1484//2503 1483//2502 1482//2501 -f 1484//2503 1487//2506 1486//2505 1483//2502 -f 1487//2506 1489//2508 1488//2507 1486//2505 -f 1489//2508 1490//2509 1488//2507 -f 1490//2509 1492//2511 1491//2510 -f 1492//2511 1446//2489 1453//2490 1493//2512 -f 1482//2501 1483//2502 1495//2514 1494//2513 -f 1483//2502 1486//2505 1496//2515 1495//2514 -f 1486//2505 1488//2507 1497//2516 1496//2515 -f 1488//2507 1491//2510 1497//2516 -f 1491//2510 1493//2512 1499//2518 1498//2517 -f 1493//2512 1453//2490 1460//2491 1499//2518 -f 1494//2513 1495//2514 1501//2520 1500//2519 -f 1495//2514 1496//2515 1502//2521 1501//2520 -f 1496//2515 1497//2516 1503//2522 1502//2521 -f 1497//2516 1498//2517 1504//2523 1503//2522 -f 1498//2517 1499//2518 1505//2524 1504//2523 -f 1499//2518 1460//2491 1467//2492 1505//2524 -f 1500//2519 1501//2520 1507//2526 1506//2525 -f 1501//2520 1502//2521 1508//2527 1507//2526 -f 1502//2521 1503//2522 1509//2528 1508//2527 -f 1503//2522 1504//2523 1510//2529 1509//2528 -f 1504//2523 1505//2524 1511//2530 1510//2529 -f 1505//2524 1467//2492 1474//2493 1511//2530 -f 1506//2525 1507//2526 1476//2495 1475//2494 -f 1507//2526 1508//2527 1477//2496 1476//2495 -f 1508//2527 1509//2528 1478//2497 1477//2496 -f 1509//2528 1510//2529 1479//2498 1478//2497 -f 1510//2529 1511//2530 1480//2499 1479//2498 -f 1511//2530 1481//2500 1480//2499 -f 1491//2510 1492//2511 1493//2512 -f 1488//2507 1490//2509 1491//2510 -f 1497//2516 1491//2510 1498//2517 -f 1511//2530 1474//2493 1481//2500 -f 1428//2483 1446//2489 1492//2511 1430//2484 -f 1484//2503 1485//2504 1427//2482 1434//2488 -f 1487//2506 1484//2503 1434//2488 1433//2487 -f 1489//2508 1487//2506 1433//2487 1432//2486 -f 1490//2509 1489//2508 1432//2486 1431//2485 -f 1492//2511 1490//2509 1431//2485 1430//2484 -s off -f 1428//134 1407//134 1446//134 -s 151 -f 1518//2403 1406//2335 1409//2338 1517//2402 1516//2401 1515//2400 1514//2399 1513//2398 1512//2397 -f 1520//2405 1516//2401 1517//2402 1519//2404 -f 1517//2402 1409//2338 1412//2341 1521//2406 -f 1519//2404 1517//2402 1521//2406 1522//2407 -f 1521//2406 1412//2341 1415//2344 1523//2408 -f 1522//2407 1521//2406 1523//2408 1524//2409 -f 1523//2408 1415//2344 1418//2347 1525//2410 -f 1524//2409 1523//2408 1525//2410 1526//2411 -s 152 -f 1525//2469 1418//2450 1421//2453 1527//2471 -f 1526//2470 1525//2469 1527//2471 1528//2472 -f 1527//2471 1421//2453 1424//2456 1529//2473 -f 1528//2472 1527//2471 1529//2473 1530//2474 -f 1529//2473 1424//2456 1427//2459 1536//2480 1535//2479 1534//2478 1533//2477 1532//2476 1531//2475 -f 1530//2474 1529//2473 1531//2475 1537//2481 -f 1537//2481 1531//2475 1516//2467 1520//2468 -s off -f 1520//135 1519//135 1522//135 1524//135 1526//135 1528//135 1530//135 1537//135 -s 151 -f 1406//2335 1518//2403 1538//2412 1440//2355 -f 1518//2403 1512//2397 1539//2413 1538//2412 -f 1512//2397 1513//2398 1540//2414 1539//2413 -f 1513//2398 1514//2399 1541//2415 1540//2414 -f 1514//2399 1515//2400 1542//2416 1541//2415 -f 1542//2416 1516//2401 1543//2417 -f 1440//2355 1538//2412 1544//2418 1447//2362 -f 1538//2412 1539//2413 1545//2419 1544//2418 -f 1539//2413 1540//2414 1546//2420 1545//2419 -f 1540//2414 1541//2415 1546//2420 -f 1541//2415 1542//2416 1547//2421 -f 1542//2416 1543//2417 1549//2423 1548//2422 -f 1447//2362 1544//2418 1550//2424 1454//2369 -f 1544//2418 1545//2419 1551//2425 1550//2424 -f 1545//2419 1546//2420 1552//2426 1551//2425 -f 1546//2420 1547//2421 1552//2426 -f 1547//2421 1548//2422 1554//2428 1553//2427 -f 1548//2422 1549//2423 1555//2429 1554//2428 -f 1454//2369 1550//2424 1556//2430 1461//2376 -f 1550//2424 1551//2425 1557//2431 1556//2430 -f 1551//2425 1552//2426 1558//2432 1557//2431 -f 1552//2426 1553//2427 1559//2433 1558//2432 -f 1553//2427 1554//2428 1560//2434 1559//2433 -f 1554//2428 1555//2429 1561//2435 1560//2434 -f 1461//2376 1556//2430 1562//2436 1468//2383 -f 1556//2430 1557//2431 1563//2437 1562//2436 -f 1557//2431 1558//2432 1564//2438 1563//2437 -f 1558//2432 1559//2433 1565//2439 1564//2438 -f 1559//2433 1560//2434 1566//2440 1565//2439 -f 1560//2434 1561//2435 1567//2441 1566//2440 -f 1468//2383 1562//2436 1568//2442 1475//2390 -f 1562//2436 1563//2437 1569//2443 1568//2442 -f 1563//2437 1564//2438 1570//2444 1569//2443 -f 1564//2438 1565//2439 1571//2445 1570//2444 -f 1565//2439 1566//2440 1572//2446 1571//2445 -f 1566//2440 1573//2447 1572//2446 -f 1516//2401 1542//2416 1515//2400 -f 1547//2421 1542//2416 1548//2422 -f 1546//2420 1541//2415 1547//2421 -f 1552//2426 1547//2421 1553//2427 -f 1566//2440 1567//2441 1573//2447 -s 153 -f 1482//2501 1575//2549 1574//2548 1485//2504 -f 1575//2549 1577//2551 1576//2550 1574//2548 -f 1577//2551 1579//2553 1578//2552 1576//2550 -f 1579//2553 1580//2554 1578//2552 -f 1582//2556 1581//2555 1580//2554 -f 1583//2557 1549//2538 1543//2537 1581//2555 -f 1494//2513 1584//2558 1575//2549 1482//2501 -f 1584//2558 1585//2559 1577//2551 1575//2549 -f 1585//2559 1586//2560 1579//2553 1577//2551 -f 1586//2560 1582//2556 1579//2553 -f 1588//2562 1587//2561 1583//2557 1582//2556 -f 1587//2561 1555//2539 1549//2538 1583//2557 -f 1500//2519 1589//2563 1584//2558 1494//2513 -f 1589//2563 1590//2564 1585//2559 1584//2558 -f 1590//2564 1591//2565 1586//2560 1585//2559 -f 1591//2565 1592//2566 1588//2562 1586//2560 -f 1592//2566 1593//2567 1587//2561 1588//2562 -f 1593//2567 1561//2540 1555//2539 1587//2561 -f 1506//2525 1594//2568 1589//2563 1500//2519 -f 1594//2568 1595//2569 1590//2564 1589//2563 -f 1595//2569 1596//2570 1591//2565 1590//2564 -f 1596//2570 1597//2571 1592//2566 1591//2565 -f 1597//2571 1598//2572 1593//2567 1592//2566 -f 1598//2572 1567//2541 1561//2540 1593//2567 -f 1475//2494 1568//2542 1594//2568 1506//2525 -f 1568//2542 1569//2543 1595//2569 1594//2568 -f 1569//2543 1570//2544 1596//2570 1595//2569 -f 1570//2544 1571//2545 1597//2571 1596//2570 -f 1571//2545 1572//2546 1598//2572 1597//2571 -f 1572//2546 1573//2547 1598//2572 -f 1583//2557 1581//2555 1582//2556 -f 1582//2556 1580//2554 1579//2553 -f 1588//2562 1582//2556 1586//2560 -f 1573//2547 1567//2541 1598//2572 -f 1532//2532 1581//2555 1543//2537 1531//2531 -f 1536//2536 1427//2482 1485//2504 1574//2548 -f 1535//2535 1536//2536 1574//2548 1576//2550 -f 1534//2534 1535//2535 1576//2550 1578//2552 -f 1533//2533 1534//2534 1578//2552 1580//2554 -f 1532//2532 1533//2533 1580//2554 1581//2555 -s off -f 1543//136 1516//136 1531//136 -g sail5 -s 158 -f 1603//2577 1602//2576 1599//2573 1600//2574 -f 1626//2591 1625//2590 1624//2589 1623//2588 1601//2575 1604//2578 1603//2577 1600//2574 1627//2592 -f 1606//2580 1605//2579 1602//2576 1603//2577 -f 1607//2581 1606//2580 1603//2577 1604//2578 -f 1609//2583 1608//2582 1605//2579 1606//2580 -f 1610//2584 1609//2583 1606//2580 1607//2581 -f 1612//2586 1611//2585 1608//2582 1609//2583 -f 1613//2587 1612//2586 1609//2583 1610//2584 -s 159 -f 1615//2692 1614//2691 1611//2688 1612//2689 -f 1616//2693 1615//2692 1612//2689 1613//2690 -f 1618//2695 1617//2694 1614//2691 1615//2692 -f 1619//2696 1618//2695 1615//2692 1616//2693 -f 1621//2698 1620//2697 1617//2694 1618//2695 -f 1622//2699 1628//2700 1629//2701 1630//2702 1631//2703 1632//2704 1621//2698 1618//2695 1619//2696 -f 1600//2687 1599//2686 1620//2697 1621//2698 -s off -f 1602//137 1605//137 1608//137 1611//137 1614//137 1617//137 1620//137 1599//137 -s 158 -f 1634//2594 1627//2592 1600//2574 -f 1634//2594 1635//2595 1626//2591 1627//2592 -f 1635//2595 1636//2596 1625//2590 1626//2591 -f 1636//2596 1637//2597 1624//2589 1625//2590 -f 1637//2597 1638//2598 1623//2588 1624//2589 -f 1638//2598 1639//2599 1601//2575 1623//2588 -f 1640//2600 1641//2601 1635//2595 -f 1641//2601 1642//2602 1637//2597 1636//2596 -f 1642//2602 1643//2603 1638//2598 1637//2597 -f 1643//2603 1644//2604 1639//2599 1638//2598 -f 1645//2605 1646//2606 1643//2603 1642//2602 -f 1646//2606 1647//2607 1644//2604 1643//2603 -f 1633//2593 1634//2594 1600//2574 -f 1635//2595 1634//2594 1640//2600 -f 1636//2596 1635//2595 1641//2601 -f 1648//2608 1649//2609 1634//2594 1633//2593 -f 1649//2609 1640//2600 1634//2594 -f 1650//2610 1651//2611 1649//2609 1648//2608 -f 1651//2611 1652//2612 1640//2600 1649//2609 -f 1652//2612 1653//2613 1640//2600 -f 1653//2613 1645//2605 1642//2602 1641//2601 -f 1654//2614 1655//2615 1651//2611 1650//2610 -f 1655//2615 1656//2616 1652//2612 1651//2611 -f 1656//2616 1657//2617 1653//2613 1652//2612 -f 1657//2617 1658//2618 1645//2605 1653//2613 -f 1658//2618 1659//2619 1646//2606 1645//2605 -f 1659//2619 1660//2620 1647//2607 1646//2606 -f 1661//2621 1662//2622 1655//2615 1654//2614 -f 1662//2622 1663//2623 1656//2616 1655//2615 -f 1663//2623 1664//2624 1657//2617 1656//2616 -f 1664//2624 1665//2625 1658//2618 1657//2617 -f 1665//2625 1666//2626 1659//2619 1658//2618 -f 1666//2626 1667//2627 1660//2620 1659//2619 -f 1668//2628 1669//2629 1662//2622 1661//2621 -f 1669//2629 1670//2630 1663//2623 1662//2622 -f 1670//2630 1671//2631 1664//2624 1663//2623 -f 1671//2631 1672//2632 1665//2625 1664//2624 -f 1672//2632 1673//2633 1666//2626 1665//2625 -f 1673//2633 1674//2634 1667//2627 1666//2626 -f 1641//2601 1640//2600 1653//2613 -s 160 -f 1677//2741 1676//2740 1675//2739 -f 1680//2744 1679//2743 1678//2742 1676//2740 -f 1679//2743 1682//2746 1681//2745 1678//2742 -f 1682//2746 1684//2748 1683//2747 1681//2745 -f 1678//2742 1681//2745 1686//2750 1685//2749 -f 1681//2745 1683//2747 1687//2751 1686//2750 -f 1675//2739 1688//2752 1677//2741 -f 1676//2740 1677//2741 1680//2744 -f 1633//2727 1688//2752 1689//2753 1648//2728 -f 1688//2752 1675//2739 1689//2753 -f 1648//2728 1689//2753 1690//2754 1650//2729 -f 1689//2753 1675//2739 1691//2755 1690//2754 -f 1675//2739 1692//2756 1691//2755 -f 1676//2740 1678//2742 1685//2749 1692//2756 -f 1650//2729 1690//2754 1693//2757 1654//2730 -f 1690//2754 1691//2755 1694//2758 1693//2757 -f 1691//2755 1692//2756 1695//2759 1694//2758 -f 1692//2756 1685//2749 1696//2760 1695//2759 -f 1685//2749 1686//2750 1697//2761 1696//2760 -f 1686//2750 1687//2751 1698//2762 1697//2761 -f 1654//2730 1693//2757 1699//2763 1661//2731 -f 1693//2757 1694//2758 1700//2764 1699//2763 -f 1694//2758 1695//2759 1701//2765 1700//2764 -f 1695//2759 1696//2760 1702//2766 1701//2765 -f 1696//2760 1697//2761 1703//2767 1702//2766 -f 1697//2761 1698//2762 1704//2768 1703//2767 -f 1661//2731 1699//2763 1669//2733 1668//2732 -f 1699//2763 1700//2764 1670//2734 1669//2733 -f 1700//2764 1701//2765 1671//2735 1670//2734 -f 1701//2765 1702//2766 1672//2736 1671//2735 -f 1702//2766 1703//2767 1673//2737 1672//2736 -f 1703//2767 1704//2768 1674//2738 1673//2737 -f 1692//2756 1675//2739 1676//2740 -f 1684//2748 1682//2746 1628//2722 1622//2721 -s off -f 1633//138 1600//138 1621//138 -s 160 -f 1688//2752 1633//2727 1621//2720 1632//2726 -f 1677//2741 1688//2752 1632//2726 1631//2725 -f 1680//2744 1677//2741 1631//2725 1630//2724 -f 1679//2743 1680//2744 1630//2724 1629//2723 -f 1682//2746 1679//2743 1629//2723 1628//2722 -s 158 -f 1708//2638 1707//2637 1706//2636 1705//2635 -f 1713//2643 1708//2638 1705//2635 1604//2578 1601//2575 1712//2642 1711//2641 1710//2640 1709//2639 -f 1705//2635 1706//2636 1715//2645 1714//2644 -f 1604//2578 1705//2635 1714//2644 1607//2581 -f 1714//2644 1715//2645 1717//2647 1716//2646 -f 1607//2581 1714//2644 1716//2646 1610//2584 -f 1716//2646 1717//2647 1719//2649 1718//2648 -f 1610//2584 1716//2646 1718//2648 1613//2587 -s 159 -f 1718//2707 1719//2708 1721//2710 1720//2709 -f 1613//2690 1718//2707 1720//2709 1616//2693 -f 1720//2709 1721//2710 1723//2712 1722//2711 -f 1616//2693 1720//2709 1722//2711 1619//2696 -f 1722//2711 1723//2712 1725//2714 1724//2713 -f 1619//2696 1722//2711 1724//2713 1730//2719 1729//2718 1728//2717 1727//2716 1726//2715 1622//2699 -f 1724//2713 1725//2714 1707//2705 1708//2706 -s off -f 1707//139 1725//139 1723//139 1721//139 1719//139 1717//139 1715//139 1706//139 -s 158 -f 1708//2638 1713//2643 1731//2650 -f 1713//2643 1709//2639 1732//2651 1731//2650 -f 1709//2639 1710//2640 1733//2652 1732//2651 -f 1710//2640 1711//2641 1734//2653 1733//2652 -f 1711//2641 1712//2642 1735//2654 1734//2653 -f 1712//2642 1601//2575 1639//2599 1735//2654 -f 1732//2651 1737//2656 1736//2655 -f 1733//2652 1734//2653 1738//2657 1737//2656 -f 1734//2653 1735//2654 1739//2658 1738//2657 -f 1735//2654 1639//2599 1644//2604 1739//2658 -f 1738//2657 1739//2658 1741//2660 1740//2659 -f 1739//2658 1644//2604 1647//2607 1741//2660 -f 1708//2638 1731//2650 1742//2661 -f 1736//2655 1731//2650 1732//2651 -f 1737//2656 1732//2651 1733//2652 -f 1742//2661 1731//2650 1744//2663 1743//2662 -f 1731//2650 1736//2655 1744//2663 -f 1743//2662 1744//2663 1746//2665 1745//2664 -f 1744//2663 1736//2655 1747//2666 1746//2665 -f 1736//2655 1748//2667 1747//2666 -f 1737//2656 1738//2657 1740//2659 1748//2667 -f 1745//2664 1746//2665 1750//2669 1749//2668 -f 1746//2665 1747//2666 1751//2670 1750//2669 -f 1747//2666 1748//2667 1752//2671 1751//2670 -f 1748//2667 1740//2659 1753//2672 1752//2671 -f 1740//2659 1741//2660 1754//2673 1753//2672 -f 1741//2660 1647//2607 1660//2620 1754//2673 -f 1749//2668 1750//2669 1756//2675 1755//2674 -f 1750//2669 1751//2670 1757//2676 1756//2675 -f 1751//2670 1752//2671 1758//2677 1757//2676 -f 1752//2671 1753//2672 1759//2678 1758//2677 -f 1753//2672 1754//2673 1760//2679 1759//2678 -f 1754//2673 1660//2620 1667//2627 1760//2679 -f 1755//2674 1756//2675 1762//2681 1761//2680 -f 1756//2675 1757//2676 1763//2682 1762//2681 -f 1757//2676 1758//2677 1764//2683 1763//2682 -f 1758//2677 1759//2678 1765//2684 1764//2683 -f 1759//2678 1760//2679 1766//2685 1765//2684 -f 1760//2679 1667//2627 1674//2634 1766//2685 -f 1748//2667 1736//2655 1737//2656 -s 160 -f 1769//2788 1768//2787 1767//2786 -f 1768//2787 1772//2791 1771//2790 1770//2789 -f 1772//2791 1774//2793 1773//2792 1771//2790 -f 1774//2793 1683//2747 1684//2748 1773//2792 -f 1776//2795 1775//2794 1774//2793 1772//2791 -f 1775//2794 1687//2751 1683//2747 1774//2793 -f 1767//2786 1777//2796 1769//2788 -f 1770//2789 1767//2786 1768//2787 -f 1743//2776 1778//2797 1777//2796 1742//2775 -f 1778//2797 1769//2788 1777//2796 -f 1745//2777 1779//2798 1778//2797 1743//2776 -f 1779//2798 1780//2799 1769//2788 1778//2797 -f 1780//2799 1781//2800 1769//2788 -f 1781//2800 1776//2795 1772//2791 1768//2787 -f 1749//2778 1782//2801 1779//2798 1745//2777 -f 1782//2801 1783//2802 1780//2799 1779//2798 -f 1783//2802 1784//2803 1781//2800 1780//2799 -f 1784//2803 1785//2804 1776//2795 1781//2800 -f 1785//2804 1786//2805 1775//2794 1776//2795 -f 1786//2805 1698//2762 1687//2751 1775//2794 -f 1755//2779 1787//2806 1782//2801 1749//2778 -f 1787//2806 1788//2807 1783//2802 1782//2801 -f 1788//2807 1789//2808 1784//2803 1783//2802 -f 1789//2808 1790//2809 1785//2804 1784//2803 -f 1790//2809 1791//2810 1786//2805 1785//2804 -f 1791//2810 1704//2768 1698//2762 1786//2805 -f 1761//2780 1762//2781 1787//2806 1755//2779 -f 1762//2781 1763//2782 1788//2807 1787//2806 -f 1763//2782 1764//2783 1789//2808 1788//2807 -f 1764//2783 1765//2784 1790//2809 1789//2808 -f 1765//2784 1766//2785 1791//2810 1790//2809 -f 1766//2785 1674//2738 1704//2768 1791//2810 -f 1768//2787 1769//2788 1781//2800 -f 1622//2721 1726//2770 1773//2792 1684//2748 -s off -f 1724//140 1708//140 1742//140 -s 160 -f 1730//2774 1724//2769 1742//2775 1777//2796 -f 1729//2773 1730//2774 1777//2796 1767//2786 -f 1728//2772 1729//2773 1767//2786 1770//2789 -f 1727//2771 1728//2772 1770//2789 1771//2790 -f 1726//2770 1727//2771 1771//2790 1773//2792 -g sail4 -s 166 -f 1824//2829 1823//2828 1822//2827 1821//2826 1793//2812 1796//2815 1795//2814 1792//2811 1825//2830 -f 1797//2816 1796//2815 1793//2812 1794//2813 -f 1799//2818 1798//2817 1795//2814 1796//2815 -f 1800//2819 1799//2818 1796//2815 1797//2816 -f 1802//2821 1801//2820 1798//2817 1799//2818 -f 1803//2822 1802//2821 1799//2818 1800//2819 -f 1805//2824 1804//2823 1801//2820 1802//2821 -f 1806//2825 1805//2824 1802//2821 1803//2822 -s 167 -f 1808//2930 1807//2929 1804//2926 1805//2927 -f 1809//2931 1808//2930 1805//2927 1806//2928 -f 1811//2933 1810//2932 1807//2929 1808//2930 -f 1812//2934 1811//2933 1808//2930 1809//2931 -f 1814//2936 1816//2938 1817//2939 1818//2940 1819//2941 1820//2942 1813//2935 1810//2932 1811//2933 -f 1815//2937 1814//2936 1811//2933 1812//2934 -f 1794//2925 1793//2924 1814//2936 1815//2937 -s off -f 1815//141 1812//141 1809//141 1806//141 1803//141 1800//141 1797//141 1794//141 -s 166 -f 1826//2831 1827//2832 1825//2830 1792//2811 -f 1827//2832 1828//2833 1824//2829 1825//2830 -f 1828//2833 1829//2834 1823//2828 1824//2829 -f 1829//2834 1830//2835 1822//2827 1823//2828 -f 1830//2835 1831//2836 1821//2826 1822//2827 -f 1832//2837 1793//2812 1831//2836 -f 1833//2838 1834//2839 1827//2832 1826//2831 -f 1834//2839 1835//2840 1828//2833 1827//2832 -f 1835//2840 1836//2841 1829//2834 1828//2833 -f 1836//2841 1830//2835 1829//2834 -f 1837//2842 1831//2836 1830//2835 -f 1838//2843 1839//2844 1832//2837 1831//2836 -f 1840//2845 1841//2846 1834//2839 1833//2838 -f 1841//2846 1842//2847 1835//2840 1834//2839 -f 1842//2847 1843//2848 1836//2841 1835//2840 -f 1843//2848 1837//2842 1836//2841 -f 1844//2849 1845//2850 1838//2843 1837//2842 -f 1845//2850 1846//2851 1839//2844 1838//2843 -f 1847//2852 1848//2853 1841//2846 1840//2845 -f 1848//2853 1849//2854 1842//2847 1841//2846 -f 1849//2854 1850//2855 1843//2848 1842//2847 -f 1850//2855 1851//2856 1844//2849 1843//2848 -f 1851//2856 1852//2857 1845//2850 1844//2849 -f 1852//2857 1853//2858 1846//2851 1845//2850 -f 1854//2859 1855//2860 1848//2853 1847//2852 -f 1855//2860 1856//2861 1849//2854 1848//2853 -f 1856//2861 1857//2862 1850//2855 1849//2854 -f 1857//2862 1858//2863 1851//2856 1850//2855 -f 1858//2863 1859//2864 1852//2857 1851//2856 -f 1859//2864 1860//2865 1853//2858 1852//2857 -f 1861//2866 1862//2867 1855//2860 1854//2859 -f 1862//2867 1863//2868 1856//2861 1855//2860 -f 1863//2868 1864//2869 1857//2862 1856//2861 -f 1864//2869 1865//2870 1858//2863 1857//2862 -f 1865//2870 1866//2871 1859//2864 1858//2863 -f 1866//2871 1867//2872 1859//2864 -f 1821//2826 1831//2836 1793//2812 -f 1838//2843 1831//2836 1837//2842 -f 1837//2842 1830//2835 1836//2841 -f 1844//2849 1837//2842 1843//2848 -f 1867//2872 1860//2865 1859//2864 -s 168 -f 1871//2980 1870//2979 1869//2978 1868//2977 -f 1870//2979 1873//2982 1872//2981 1869//2978 -f 1873//2982 1875//2984 1874//2983 1872//2981 -f 1875//2984 1876//2985 1874//2983 -f 1876//2985 1878//2987 1877//2986 -f 1878//2987 1832//2965 1839//2966 1879//2988 -f 1868//2977 1869//2978 1881//2990 1880//2989 -f 1869//2978 1872//2981 1882//2991 1881//2990 -f 1872//2981 1874//2983 1883//2992 1882//2991 -f 1874//2983 1877//2986 1883//2992 -f 1877//2986 1879//2988 1885//2994 1884//2993 -f 1879//2988 1839//2966 1846//2967 1885//2994 -f 1880//2989 1881//2990 1887//2996 1886//2995 -f 1881//2990 1882//2991 1888//2997 1887//2996 -f 1882//2991 1883//2992 1889//2998 1888//2997 -f 1883//2992 1884//2993 1890//2999 1889//2998 -f 1884//2993 1885//2994 1891//3000 1890//2999 -f 1885//2994 1846//2967 1853//2968 1891//3000 -f 1886//2995 1887//2996 1893//3002 1892//3001 -f 1887//2996 1888//2997 1894//3003 1893//3002 -f 1888//2997 1889//2998 1895//3004 1894//3003 -f 1889//2998 1890//2999 1896//3005 1895//3004 -f 1890//2999 1891//3000 1897//3006 1896//3005 -f 1891//3000 1853//2968 1860//2969 1897//3006 -f 1892//3001 1893//3002 1862//2971 1861//2970 -f 1893//3002 1894//3003 1863//2972 1862//2971 -f 1894//3003 1895//3004 1864//2973 1863//2972 -f 1895//3004 1896//3005 1865//2974 1864//2973 -f 1896//3005 1897//3006 1866//2975 1865//2974 -f 1897//3006 1867//2976 1866//2975 -f 1877//2986 1878//2987 1879//2988 -f 1874//2983 1876//2985 1877//2986 -f 1883//2992 1877//2986 1884//2993 -f 1897//3006 1860//2969 1867//2976 -f 1814//2959 1832//2965 1878//2987 1816//2960 -f 1870//2979 1871//2980 1813//2958 1820//2964 -f 1873//2982 1870//2979 1820//2964 1819//2963 -f 1875//2984 1873//2982 1819//2963 1818//2962 -f 1876//2985 1875//2984 1818//2962 1817//2961 -f 1878//2987 1876//2985 1817//2961 1816//2960 -s off -f 1814//142 1793//142 1832//142 -s 166 -f 1904//2879 1792//2811 1795//2814 1903//2878 1902//2877 1901//2876 1900//2875 1899//2874 1898//2873 -f 1906//2881 1902//2877 1903//2878 1905//2880 -f 1903//2878 1795//2814 1798//2817 1907//2882 -f 1905//2880 1903//2878 1907//2882 1908//2883 -f 1907//2882 1798//2817 1801//2820 1909//2884 -f 1908//2883 1907//2882 1909//2884 1910//2885 -f 1909//2884 1801//2820 1804//2823 1911//2886 -f 1910//2885 1909//2884 1911//2886 1912//2887 -s 167 -f 1911//2945 1804//2926 1807//2929 1913//2947 -f 1912//2946 1911//2945 1913//2947 1914//2948 -f 1913//2947 1807//2929 1810//2932 1915//2949 -f 1914//2948 1913//2947 1915//2949 1916//2950 -f 1915//2949 1810//2932 1813//2935 1922//2956 1921//2955 1920//2954 1919//2953 1918//2952 1917//2951 -f 1916//2950 1915//2949 1917//2951 1923//2957 -f 1923//2957 1917//2951 1902//2943 1906//2944 -s off -f 1906//143 1905//143 1908//143 1910//143 1912//143 1914//143 1916//143 1923//143 -s 166 -f 1792//2811 1904//2879 1924//2888 1826//2831 -f 1904//2879 1898//2873 1925//2889 1924//2888 -f 1898//2873 1899//2874 1926//2890 1925//2889 -f 1899//2874 1900//2875 1927//2891 1926//2890 -f 1900//2875 1901//2876 1928//2892 1927//2891 -f 1928//2892 1902//2877 1929//2893 -f 1826//2831 1924//2888 1930//2894 1833//2838 -f 1924//2888 1925//2889 1931//2895 1930//2894 -f 1925//2889 1926//2890 1932//2896 1931//2895 -f 1926//2890 1927//2891 1932//2896 -f 1927//2891 1928//2892 1933//2897 -f 1928//2892 1929//2893 1935//2899 1934//2898 -f 1833//2838 1930//2894 1936//2900 1840//2845 -f 1930//2894 1931//2895 1937//2901 1936//2900 -f 1931//2895 1932//2896 1938//2902 1937//2901 -f 1932//2896 1933//2897 1938//2902 -f 1933//2897 1934//2898 1940//2904 1939//2903 -f 1934//2898 1935//2899 1941//2905 1940//2904 -f 1840//2845 1936//2900 1942//2906 1847//2852 -f 1936//2900 1937//2901 1943//2907 1942//2906 -f 1937//2901 1938//2902 1944//2908 1943//2907 -f 1938//2902 1939//2903 1945//2909 1944//2908 -f 1939//2903 1940//2904 1946//2910 1945//2909 -f 1940//2904 1941//2905 1947//2911 1946//2910 -f 1847//2852 1942//2906 1948//2912 1854//2859 -f 1942//2906 1943//2907 1949//2913 1948//2912 -f 1943//2907 1944//2908 1950//2914 1949//2913 -f 1944//2908 1945//2909 1951//2915 1950//2914 -f 1945//2909 1946//2910 1952//2916 1951//2915 -f 1946//2910 1947//2911 1953//2917 1952//2916 -f 1854//2859 1948//2912 1954//2918 1861//2866 -f 1948//2912 1949//2913 1955//2919 1954//2918 -f 1949//2913 1950//2914 1956//2920 1955//2919 -f 1950//2914 1951//2915 1957//2921 1956//2920 -f 1951//2915 1952//2916 1958//2922 1957//2921 -f 1952//2916 1959//2923 1958//2922 -f 1902//2877 1928//2892 1901//2876 -f 1933//2897 1928//2892 1934//2898 -f 1932//2896 1927//2891 1933//2897 -f 1938//2902 1933//2897 1939//2903 -f 1952//2916 1953//2917 1959//2923 -s 168 -f 1868//2977 1961//3025 1960//3024 1871//2980 -f 1961//3025 1963//3027 1962//3026 1960//3024 -f 1963//3027 1965//3029 1964//3028 1962//3026 -f 1965//3029 1966//3030 1964//3028 -f 1968//3032 1967//3031 1966//3030 -f 1969//3033 1935//3014 1929//3013 1967//3031 -f 1880//2989 1970//3034 1961//3025 1868//2977 -f 1970//3034 1971//3035 1963//3027 1961//3025 -f 1971//3035 1972//3036 1965//3029 1963//3027 -f 1972//3036 1968//3032 1965//3029 -f 1974//3038 1973//3037 1969//3033 1968//3032 -f 1973//3037 1941//3015 1935//3014 1969//3033 -f 1886//2995 1975//3039 1970//3034 1880//2989 -f 1975//3039 1976//3040 1971//3035 1970//3034 -f 1976//3040 1977//3041 1972//3036 1971//3035 -f 1977//3041 1978//3042 1974//3038 1972//3036 -f 1978//3042 1979//3043 1973//3037 1974//3038 -f 1979//3043 1947//3016 1941//3015 1973//3037 -f 1892//3001 1980//3044 1975//3039 1886//2995 -f 1980//3044 1981//3045 1976//3040 1975//3039 -f 1981//3045 1982//3046 1977//3041 1976//3040 -f 1982//3046 1983//3047 1978//3042 1977//3041 -f 1983//3047 1984//3048 1979//3043 1978//3042 -f 1984//3048 1953//3017 1947//3016 1979//3043 -f 1861//2970 1954//3018 1980//3044 1892//3001 -f 1954//3018 1955//3019 1981//3045 1980//3044 -f 1955//3019 1956//3020 1982//3046 1981//3045 -f 1956//3020 1957//3021 1983//3047 1982//3046 -f 1957//3021 1958//3022 1984//3048 1983//3047 -f 1958//3022 1959//3023 1984//3048 -f 1969//3033 1967//3031 1968//3032 -f 1968//3032 1966//3030 1965//3029 -f 1974//3038 1968//3032 1972//3036 -f 1959//3023 1953//3017 1984//3048 -f 1918//3008 1967//3031 1929//3013 1917//3007 -f 1922//3012 1813//2958 1871//2980 1960//3024 -f 1921//3011 1922//3012 1960//3024 1962//3026 -f 1920//3010 1921//3011 1962//3026 1964//3028 -f 1919//3009 1920//3010 1964//3028 1966//3030 -f 1918//3008 1919//3009 1966//3030 1967//3031 -s off -f 1929//144 1902//144 1917//144 -g sail6 -s 173 -f 1985//3049 1986//3050 1987//3051 1988//3052 -f 1989//3053 1990//3054 1991//3055 1992//3056 1993//3057 1994//3058 1985//3049 1988//3052 1995//3059 -f 1996//3060 1997//3061 1986//3050 1985//3049 -f 1998//3062 1996//3060 1985//3049 1994//3058 -f 1999//3063 2000//3064 1997//3061 1996//3060 -f 2001//3065 1999//3063 1996//3060 1998//3062 -f 2002//3066 2003//3067 2000//3064 1999//3063 -f 2004//3068 2002//3066 1999//3063 2001//3065 -s 174 -f 2005//3167 2006//3168 2003//3165 2002//3164 -f 2007//3169 2005//3167 2002//3164 2004//3166 -f 2008//3170 2009//3171 2006//3168 2005//3167 -f 2010//3172 2008//3170 2005//3167 2007//3169 -f 2011//3173 2012//3174 2009//3171 2008//3170 -f 2013//3175 2014//3176 2015//3177 2016//3178 2017//3179 2018//3180 2011//3173 2008//3170 2010//3172 -f 1988//3163 1987//3162 2012//3174 2011//3173 -s off -f 1986//145 1997//145 2000//145 2003//145 2006//145 2009//145 2012//145 1987//145 -s 173 -f 2019//3069 1995//3059 1988//3052 -f 2019//3069 2020//3070 1989//3053 1995//3059 -f 2020//3070 2021//3071 1990//3054 1989//3053 -f 2021//3071 2022//3072 1991//3055 1990//3054 -f 2022//3072 2023//3073 1992//3056 1991//3055 -f 2023//3073 2024//3074 1993//3057 1992//3056 -f 2025//3075 2026//3076 2020//3070 -f 2026//3076 2027//3077 2022//3072 2021//3071 -f 2027//3077 2028//3078 2023//3073 2022//3072 -f 2028//3078 2029//3079 2024//3074 2023//3073 -f 2030//3080 2031//3081 2028//3078 2027//3077 -f 2031//3081 2032//3082 2029//3079 2028//3078 -f 2033//3083 2019//3069 1988//3052 -f 2020//3070 2019//3069 2025//3075 -f 2021//3071 2020//3070 2026//3076 -f 2034//3084 2035//3085 2019//3069 2033//3083 -f 2035//3085 2025//3075 2019//3069 -f 2036//3086 2037//3087 2035//3085 2034//3084 -f 2037//3087 2038//3088 2025//3075 2035//3085 -f 2038//3088 2039//3089 2025//3075 -f 2039//3089 2030//3080 2027//3077 2026//3076 -f 2040//3090 2041//3091 2037//3087 2036//3086 -f 2041//3091 2042//3092 2038//3088 2037//3087 -f 2042//3092 2043//3093 2039//3089 2038//3088 -f 2043//3093 2044//3094 2030//3080 2039//3089 -f 2044//3094 2045//3095 2031//3081 2030//3080 -f 2045//3095 2046//3096 2032//3082 2031//3081 -f 2047//3097 2048//3098 2041//3091 2040//3090 -f 2048//3098 2049//3099 2042//3092 2041//3091 -f 2049//3099 2050//3100 2043//3093 2042//3092 -f 2050//3100 2051//3101 2044//3094 2043//3093 -f 2051//3101 2052//3102 2045//3095 2044//3094 -f 2052//3102 2053//3103 2046//3096 2045//3095 -f 2054//3104 2055//3105 2048//3098 2047//3097 -f 2055//3105 2056//3106 2049//3099 2048//3098 -f 2056//3106 2057//3107 2050//3100 2049//3099 -f 2057//3107 2058//3108 2051//3101 2050//3100 -f 2058//3108 2059//3109 2052//3102 2051//3101 -f 2059//3109 2060//3110 2053//3103 2052//3102 -f 2026//3076 2025//3075 2039//3089 -s 175 -f 2061//3215 2062//3216 2063//3217 -f 2064//3218 2065//3219 2066//3220 2062//3216 -f 2065//3219 2067//3221 2068//3222 2066//3220 -f 2067//3221 2069//3223 2070//3224 2068//3222 -f 2066//3220 2068//3222 2071//3225 2072//3226 -f 2068//3222 2070//3224 2073//3227 2071//3225 -f 2063//3217 2074//3228 2061//3215 -f 2062//3216 2061//3215 2064//3218 -f 2033//3203 2074//3228 2075//3229 2034//3204 -f 2074//3228 2063//3217 2075//3229 -f 2034//3204 2075//3229 2076//3230 2036//3205 -f 2075//3229 2063//3217 2077//3231 2076//3230 -f 2063//3217 2078//3232 2077//3231 -f 2062//3216 2066//3220 2072//3226 2078//3232 -f 2036//3205 2076//3230 2079//3233 2040//3206 -f 2076//3230 2077//3231 2080//3234 2079//3233 -f 2077//3231 2078//3232 2081//3235 2080//3234 -f 2078//3232 2072//3226 2082//3236 2081//3235 -f 2072//3226 2071//3225 2083//3237 2082//3236 -f 2071//3225 2073//3227 2084//3238 2083//3237 -f 2040//3206 2079//3233 2085//3239 2047//3207 -f 2079//3233 2080//3234 2086//3240 2085//3239 -f 2080//3234 2081//3235 2087//3241 2086//3240 -f 2081//3235 2082//3236 2088//3242 2087//3241 -f 2082//3236 2083//3237 2089//3243 2088//3242 -f 2083//3237 2084//3238 2090//3244 2089//3243 -f 2047//3207 2085//3239 2055//3209 2054//3208 -f 2085//3239 2086//3240 2056//3210 2055//3209 -f 2086//3240 2087//3241 2057//3211 2056//3210 -f 2087//3241 2088//3242 2058//3212 2057//3211 -f 2088//3242 2089//3243 2059//3213 2058//3212 -f 2089//3243 2090//3244 2060//3214 2059//3213 -f 2078//3232 2063//3217 2062//3216 -f 2069//3223 2067//3221 2014//3198 2013//3197 -s off -f 2033//146 1988//146 2011//146 -s 175 -f 2074//3228 2033//3203 2011//3196 2018//3202 -f 2061//3215 2074//3228 2018//3202 2017//3201 -f 2064//3218 2061//3215 2017//3201 2016//3200 -f 2065//3219 2064//3218 2016//3200 2015//3199 -f 2067//3221 2065//3219 2015//3199 2014//3198 -s 173 -f 2091//3111 2092//3112 2093//3113 2094//3114 -f 2095//3115 2091//3111 2094//3114 1994//3058 1993//3057 2096//3116 2097//3117 2098//3118 2099//3119 -f 2094//3114 2093//3113 2100//3120 2101//3121 -f 1994//3058 2094//3114 2101//3121 1998//3062 -f 2101//3121 2100//3120 2102//3122 2103//3123 -f 1998//3062 2101//3121 2103//3123 2001//3065 -f 2103//3123 2102//3122 2104//3124 2105//3125 -f 2001//3065 2103//3123 2105//3125 2004//3068 -s 174 -f 2105//3184 2104//3183 2106//3185 2107//3186 -f 2004//3166 2105//3184 2107//3186 2007//3169 -f 2107//3186 2106//3185 2108//3187 2109//3188 -f 2007//3169 2107//3186 2109//3188 2010//3172 -f 2109//3188 2108//3187 2110//3189 2111//3190 -f 2010//3172 2109//3188 2111//3190 2112//3191 2113//3192 2114//3193 2115//3194 2116//3195 2013//3175 -f 2111//3190 2110//3189 2092//3182 2091//3181 -s off -f 2092//147 2110//147 2108//147 2106//147 2104//147 2102//147 2100//147 2093//147 -s 173 -f 2091//3111 2095//3115 2117//3126 -f 2095//3115 2099//3119 2118//3127 2117//3126 -f 2099//3119 2098//3118 2119//3128 2118//3127 -f 2098//3118 2097//3117 2120//3129 2119//3128 -f 2097//3117 2096//3116 2121//3130 2120//3129 -f 2096//3116 1993//3057 2024//3074 2121//3130 -f 2118//3127 2122//3131 2123//3132 -f 2119//3128 2120//3129 2124//3133 2122//3131 -f 2120//3129 2121//3130 2125//3134 2124//3133 -f 2121//3130 2024//3074 2029//3079 2125//3134 -f 2124//3133 2125//3134 2126//3135 2127//3136 -f 2125//3134 2029//3079 2032//3082 2126//3135 -f 2091//3111 2117//3126 2128//3137 -f 2123//3132 2117//3126 2118//3127 -f 2122//3131 2118//3127 2119//3128 -f 2128//3137 2117//3126 2129//3138 2130//3139 -f 2117//3126 2123//3132 2129//3138 -f 2130//3139 2129//3138 2131//3140 2132//3141 -f 2129//3138 2123//3132 2133//3142 2131//3140 -f 2123//3132 2134//3143 2133//3142 -f 2122//3131 2124//3133 2127//3136 2134//3143 -f 2132//3141 2131//3140 2135//3144 2136//3145 -f 2131//3140 2133//3142 2137//3146 2135//3144 -f 2133//3142 2134//3143 2138//3147 2137//3146 -f 2134//3143 2127//3136 2139//3148 2138//3147 -f 2127//3136 2126//3135 2140//3149 2139//3148 -f 2126//3135 2032//3082 2046//3096 2140//3149 -f 2136//3145 2135//3144 2141//3150 2142//3151 -f 2135//3144 2137//3146 2143//3152 2141//3150 -f 2137//3146 2138//3147 2144//3153 2143//3152 -f 2138//3147 2139//3148 2145//3154 2144//3153 -f 2139//3148 2140//3149 2146//3155 2145//3154 -f 2140//3149 2046//3096 2053//3103 2146//3155 -f 2142//3151 2141//3150 2147//3156 2148//3157 -f 2141//3150 2143//3152 2149//3158 2147//3156 -f 2143//3152 2144//3153 2150//3159 2149//3158 -f 2144//3153 2145//3154 2151//3160 2150//3159 -f 2145//3154 2146//3155 2152//3161 2151//3160 -f 2146//3155 2053//3103 2060//3110 2152//3161 -f 2134//3143 2123//3132 2122//3131 -s 175 -f 2153//3262 2154//3263 2155//3264 -f 2154//3263 2156//3265 2157//3266 2158//3267 -f 2156//3265 2159//3268 2160//3269 2157//3266 -f 2159//3268 2070//3224 2069//3223 2160//3269 -f 2161//3270 2162//3271 2159//3268 2156//3265 -f 2162//3271 2073//3227 2070//3224 2159//3268 -f 2155//3264 2163//3272 2153//3262 -f 2158//3267 2155//3264 2154//3263 -f 2130//3252 2164//3273 2163//3272 2128//3251 -f 2164//3273 2153//3262 2163//3272 -f 2132//3253 2165//3274 2164//3273 2130//3252 -f 2165//3274 2166//3275 2153//3262 2164//3273 -f 2166//3275 2167//3276 2153//3262 -f 2167//3276 2161//3270 2156//3265 2154//3263 -f 2136//3254 2168//3277 2165//3274 2132//3253 -f 2168//3277 2169//3278 2166//3275 2165//3274 -f 2169//3278 2170//3279 2167//3276 2166//3275 -f 2170//3279 2171//3280 2161//3270 2167//3276 -f 2171//3280 2172//3281 2162//3271 2161//3270 -f 2172//3281 2084//3238 2073//3227 2162//3271 -f 2142//3255 2173//3282 2168//3277 2136//3254 -f 2173//3282 2174//3283 2169//3278 2168//3277 -f 2174//3283 2175//3284 2170//3279 2169//3278 -f 2175//3284 2176//3285 2171//3280 2170//3279 -f 2176//3285 2177//3286 2172//3281 2171//3280 -f 2177//3286 2090//3244 2084//3238 2172//3281 -f 2148//3257 2147//3256 2173//3282 2142//3255 -f 2147//3256 2149//3258 2174//3283 2173//3282 -f 2149//3258 2150//3259 2175//3284 2174//3283 -f 2150//3259 2151//3260 2176//3285 2175//3284 -f 2151//3260 2152//3261 2177//3286 2176//3285 -f 2152//3261 2060//3214 2090//3244 2177//3286 -f 2154//3263 2153//3262 2167//3276 -f 2013//3197 2116//3250 2160//3269 2069//3223 -s off -f 2111//148 2091//148 2128//148 -s 175 -f 2112//3246 2111//3245 2128//3251 2163//3272 -f 2113//3247 2112//3246 2163//3272 2155//3264 -f 2114//3248 2113//3247 2155//3264 2158//3267 -f 2115//3249 2114//3248 2158//3267 2157//3266 -f 2116//3250 2115//3249 2157//3266 2160//3269 -g sail3 -s 181 -f 2181//3290 2180//3289 2179//3288 2178//3287 -f 2187//3296 2184//3293 2185//3294 2186//3295 -f 2178//3287 2179//3288 2189//3298 2188//3297 -f 2183//3292 2178//3287 2188//3297 2190//3299 -f 2185//3294 2183//3292 2190//3299 2191//3300 -f 2186//3295 2185//3294 2191//3300 2192//3301 -f 2188//3297 2189//3298 2194//3303 2193//3302 -f 2190//3299 2188//3297 2193//3302 2195//3304 -f 2191//3300 2190//3299 2195//3304 2196//3305 -f 2192//3301 2191//3300 2196//3305 2197//3306 -f 2193//3302 2194//3303 2199//3308 2198//3307 -f 2195//3304 2193//3302 2198//3307 2200//3309 -f 2196//3305 2195//3304 2200//3309 2201//3310 -f 2197//3306 2196//3305 2201//3310 2202//3311 -s 182 -f 2198//3317 2199//3318 2204//3323 2203//3322 -f 2200//3319 2198//3317 2203//3322 2205//3324 -f 2201//3320 2200//3319 2205//3324 2206//3325 -f 2202//3321 2201//3320 2206//3325 2207//3326 -f 2203//3322 2204//3323 2209//3328 2208//3327 -f 2207//3326 2206//3325 2211//3330 2212//3331 -f 2208//3327 2209//3328 2214//3333 2213//3332 -f 2212//3331 2211//3330 2216//3335 2217//3336 -f 2213//3332 2214//3333 2180//3312 2181//3313 -f 2217//3336 2216//3335 2184//3315 2187//3316 -s off -f 2180//149 2214//149 2209//149 2204//149 2199//149 2194//149 2189//149 2179//149 -f 2187//150 2186//150 2192//150 2197//150 2202//150 2207//150 2212//150 2217//150 -s 182 -f 2213//3332 2181//3313 2182//3314 2215//3334 -f 2182//3314 2184//3315 2216//3335 2215//3334 -f 2231//3350 2241//3360 2233//3352 2218//3337 -f 2231//3350 2226//3345 2242//3361 2241//3360 -f 2242//3361 2226//3345 2230//3349 -f 2230//3349 2225//3344 2246//3365 2245//3364 -f 2245//3364 2244//3363 2242//3361 2230//3349 -f 2242//3361 2244//3363 2243//3362 2241//3360 -f 2233//3352 2241//3360 2243//3362 2232//3351 -f 2232//3351 2243//3362 2235//3354 2234//3353 -f 2235//3354 2243//3362 2244//3363 2236//3355 -f 2236//3355 2244//3363 2245//3364 2237//3356 -f 2237//3356 2245//3364 2246//3365 2238//3357 -f 2239//3358 2229//3348 2227//3346 2240//3359 -f 2240//3359 2227//3346 2228//3347 -f 2228//3347 2208//3327 2224//3343 -f 2224//3343 2222//3341 2240//3359 2228//3347 -f 2222//3341 2223//3342 2239//3358 2240//3359 -f 2239//3358 2223//3342 2210//3329 2238//3357 -f 2238//3357 2210//3329 2221//3340 2237//3356 -f 2237//3356 2221//3340 2219//3338 2236//3355 -f 2236//3355 2219//3338 2220//3339 2235//3354 -f 2235//3354 2220//3339 2211//3330 2234//3353 -f 2246//3365 2225//3344 2229//3348 -f 2229//3348 2239//3358 2238//3357 2246//3365 -f 2218//3337 2233//3352 2247//3366 2231//3350 -f 2247//3366 2248//3367 2226//3345 2231//3350 -f 2230//3349 2226//3345 2248//3367 -f 2249//3368 2250//3369 2225//3344 2230//3349 -f 2230//3349 2248//3367 2251//3370 2249//3368 -f 2247//3366 2252//3371 2251//3370 2248//3367 -f 2232//3351 2252//3371 2247//3366 2233//3352 -f 2234//3353 2253//3372 2252//3371 2232//3351 -f 2254//3373 2251//3370 2252//3371 2253//3372 -f 2255//3374 2249//3368 2251//3370 2254//3373 -f 2256//3375 2250//3369 2249//3368 2255//3374 -f 2257//3376 2227//3346 2229//3348 2258//3377 -f 2228//3347 2227//3346 2257//3376 -f 2229//3348 2225//3344 2250//3369 -f 2250//3369 2256//3375 2258//3377 2229//3348 -f 2228//3347 2257//3376 2258//3377 2205//3324 2203//3322 -f 2253//3372 2234//3353 2206//3325 -f 2255//3374 2254//3373 2253//3372 2206//3325 2205//3324 -f 2256//3375 2255//3374 2205//3324 -f 2258//3377 2256//3375 2205//3324 -f 2234//3353 2211//3330 2206//3325 -f 2228//3347 2203//3322 2208//3327 -s 181 -f 2182//3291 2181//3290 2178//3287 2183//3292 -f 2185//3294 2184//3293 2182//3291 2183//3292 -s 182 -f 2210//3329 2223//3342 2222//3341 2224//3343 2208//3327 2213//3332 2215//3334 -f 2210//3329 2215//3334 2216//3335 2211//3330 2220//3339 2219//3338 2221//3340 -g mast2 -s 1 -f 33//192 34//193 2259//200 31//191 -s 2 -f 34//206 35//207 2260//215 2259//214 -s 3 -f 35//222 36//223 2261//231 2260//230 -s 4 -f 36//238 37//239 2262//247 2261//246 -s 5 -f 37//258 38//259 2263//281 2262//280 -f 38//259 39//260 2265//283 2264//282 2263//281 -f 39//260 40//261 2266//284 2265//283 -s 6 -f 40//298 41//299 2267//307 2266//306 -s 7 -f 41//314 42//315 2268//323 2267//322 -s 8 -f 42//330 43//331 2269//339 2268//338 -s 9 -f 43//346 44//347 2270//355 2269//354 -s 10 -f 44//362 45//363 2271//371 2270//370 -s 11 -f 45//380 46//381 32//379 2271//388 -s 1 -f 31//191 2259//200 2272//201 29//190 -s 2 -f 2259//214 2260//215 2273//217 2272//216 -s 3 -f 2260//230 2261//231 2274//233 2273//232 -s 4 -f 2261//246 2262//247 2275//249 2274//248 -s 5 -f 2262//280 2263//281 2278//288 2277//287 2276//286 2275//285 -s off -f 2282//151 2281//151 2280//151 2279//151 -s 5 -f 2265//283 2266//284 2284//290 2283//289 -s 6 -f 2266//306 2267//307 2285//309 2284//308 -s 7 -f 2267//322 2268//323 2286//325 2285//324 -s 8 -f 2268//338 2269//339 2287//341 2286//340 -s 9 -f 2269//354 2270//355 2288//357 2287//356 -s 10 -f 2270//370 2271//371 2289//373 2288//372 -s 11 -f 2271//388 32//379 30//378 2289//389 -s 1 -f 29//190 2272//201 16//189 15//188 -s 2 -f 2272//216 2273//217 17//205 16//204 -s 3 -f 2273//232 2274//233 18//221 17//220 -s 4 -f 2274//248 2275//249 19//237 18//236 -s 5 -f 2275//285 2276//286 20//255 19//254 -f 2276//286 2290//291 2283//289 21//256 20//255 -f 2283//289 2284//290 22//257 21//256 -s 6 -f 2284//308 2285//309 23//297 22//296 -s 7 -f 2285//324 2286//325 24//313 23//312 -s 8 -f 2286//340 2287//341 25//329 24//328 -s 9 -f 2287//356 2288//357 26//345 25//344 -s 10 -f 2288//372 2289//373 27//361 26//360 -s 11 -f 2289//389 30//378 28//377 27//376 -s 5 -f 2292//293 2291//292 2264//282 2265//283 2283//289 2290//291 -s off -f 2296//152 2295//152 2294//152 2293//152 -f 2300//153 2299//153 2298//153 2297//153 -f 2264//154 2291//154 2293//154 2294//154 -f 2291//155 2278//155 2296//155 2293//155 -f 2278//156 2263//156 2295//156 2296//156 -f 2263//157 2264//157 2294//157 2295//157 -f 2276//158 2277//158 2279//158 2280//158 -f 2277//159 2292//159 2282//159 2279//159 -f 2292//160 2290//160 2281//160 2282//160 -f 2290//161 2276//161 2280//161 2281//161 -f 2277//162 2278//162 2297//162 2298//162 -f 2278//163 2291//163 2300//163 2297//163 -f 2291//164 2292//164 2299//164 2300//164 -f 2292//165 2277//165 2298//165 2299//165 -g mast1 -s 63 -f 573//1201 574//1202 2301//1209 571//1200 -s 64 -f 574//1215 575//1216 2302//1224 2301//1223 -s 65 -f 575//1231 576//1232 2303//1240 2302//1239 -s 66 -f 576//1247 577//1248 2304//1256 2303//1255 -s 67 -f 577//1267 578//1268 2305//1288 2304//1287 -f 578//1268 579//1269 2307//1290 2306//1289 2305//1288 -f 579//1269 580//1270 2308//1291 2307//1290 -s 68 -f 580//1303 581//1304 2309//1312 2308//1311 -s 69 -f 581//1319 582//1320 2310//1328 2309//1327 -s 70 -f 582//1335 583//1336 2311//1344 2310//1343 -s 71 -f 583//1351 584//1352 2312//1360 2311//1359 -s 72 -f 584//1367 585//1368 2313//1376 2312//1375 -s 73 -f 585//1385 586//1386 572//1384 2313//1393 -s 63 -f 571//1200 2301//1209 2314//1210 569//1199 -s 64 -f 2301//1223 2302//1224 2315//1226 2314//1225 -s 65 -f 2302//1239 2303//1240 2316//1242 2315//1241 -s 66 -f 2303//1255 2304//1256 2317//1258 2316//1257 -s 67 -f 2304//1287 2305//1288 2319//1294 2318//1293 2317//1292 -f 2322//1297 2306//1289 2307//1290 2321//1296 2320//1295 -f 2307//1290 2308//1291 2323//1298 2321//1296 -s 68 -f 2308//1311 2309//1312 2324//1314 2323//1313 -s 69 -f 2309//1327 2310//1328 2325//1330 2324//1329 -s 70 -f 2310//1343 2311//1344 2326//1346 2325//1345 -s 71 -f 2311//1359 2312//1360 2327//1362 2326//1361 -s 72 -f 2312//1375 2313//1376 2328//1378 2327//1377 -s 73 -f 2313//1393 572//1384 570//1383 2328//1394 -s 63 -f 569//1199 2314//1210 556//1198 555//1197 -s 64 -f 2314//1225 2315//1226 557//1214 556//1213 -s 65 -f 2315//1241 2316//1242 558//1230 557//1229 -s 66 -f 2316//1257 2317//1258 559//1246 558//1245 -s 67 -f 2317//1292 2318//1293 560//1264 559//1263 -f 2318//1293 2320//1295 2321//1296 561//1265 560//1264 -f 2321//1296 2323//1298 562//1266 561//1265 -s 68 -f 2323//1313 2324//1314 563//1302 562//1301 -s 69 -f 2324//1329 2325//1330 564//1318 563//1317 -s 70 -f 2325//1345 2326//1346 565//1334 564//1333 -s 71 -f 2326//1361 2327//1362 566//1350 565//1349 -s 72 -f 2327//1377 2328//1378 567//1366 566//1365 -s 73 -f 2328//1394 570//1383 568//1382 567//1381 -s off -f 2332//166 2331//166 2330//166 2329//166 -f 2336//167 2335//167 2334//167 2333//167 -f 2318//168 2319//168 2333//168 2334//168 -f 2319//169 2322//169 2336//169 2333//169 -f 2322//170 2320//170 2335//170 2336//170 -f 2320//171 2318//171 2334//171 2335//171 -f 2305//172 2306//172 2329//172 2330//172 -f 2306//173 2322//173 2332//173 2329//173 -f 2322//174 2319//174 2331//174 2332//174 -f 2319//175 2305//175 2330//175 2331//175 -g mast3 -s 83 -f 673//1401 674//1402 2337//1409 671//1400 -s 84 -f 674//1415 675//1416 2338//1424 2337//1423 -s 85 -f 675//1431 676//1432 2339//1440 2338//1439 -s 86 -f 676//1447 677//1448 2340//1456 2339//1455 -s 87 -f 677//1467 678//1468 2341//1488 2340//1487 -f 678//1468 679//1469 2343//1490 2342//1489 2341//1488 -f 679//1469 680//1470 2344//1491 2343//1490 -s 88 -f 680//1503 681//1504 2345//1512 2344//1511 -s 89 -f 681//1519 682//1520 2346//1528 2345//1527 -s 90 -f 682//1535 683//1536 2347//1544 2346//1543 -s 91 -f 683//1551 684//1552 2348//1560 2347//1559 -s 92 -f 684//1567 685//1568 2349//1576 2348//1575 -s 93 -f 685//1585 686//1586 672//1584 2349//1593 -s 83 -f 671//1400 2337//1409 2350//1410 669//1399 -s 84 -f 2337//1423 2338//1424 2351//1426 2350//1425 -s 85 -f 2338//1439 2339//1440 2352//1442 2351//1441 -s 86 -f 2339//1455 2340//1456 2353//1458 2352//1457 -s 87 -f 2340//1487 2341//1488 2355//1494 2354//1493 2353//1492 -f 2358//1497 2342//1489 2343//1490 2357//1496 2356//1495 -f 2343//1490 2344//1491 2359//1498 2357//1496 -s 88 -f 2344//1511 2345//1512 2360//1514 2359//1513 -s 89 -f 2345//1527 2346//1528 2361//1530 2360//1529 -s 90 -f 2346//1543 2347//1544 2362//1546 2361//1545 -s 91 -f 2347//1559 2348//1560 2363//1562 2362//1561 -s 92 -f 2348//1575 2349//1576 2364//1578 2363//1577 -s 93 -f 2349//1593 672//1584 670//1583 2364//1594 -s 83 -f 669//1399 2350//1410 656//1398 655//1397 -s 84 -f 2350//1425 2351//1426 657//1414 656//1413 -s 85 -f 2351//1441 2352//1442 658//1430 657//1429 -s 86 -f 2352//1457 2353//1458 659//1446 658//1445 -s 87 -f 2353//1492 2354//1493 660//1464 659//1463 -f 2354//1493 2356//1495 2357//1496 661//1465 660//1464 -f 2357//1496 2359//1498 662//1466 661//1465 -s 88 -f 2359//1513 2360//1514 663//1502 662//1501 -s 89 -f 2360//1529 2361//1530 664//1518 663//1517 -s 90 -f 2361//1545 2362//1546 665//1534 664//1533 -s 91 -f 2362//1561 2363//1562 666//1550 665//1549 -s 92 -f 2363//1577 2364//1578 667//1566 666//1565 -s 93 -f 2364//1594 670//1583 668//1582 667//1581 -s off -f 2368//176 2367//176 2366//176 2365//176 -f 2372//177 2371//177 2370//177 2369//177 -f 2354//178 2355//178 2369//178 2370//178 -f 2355//179 2358//179 2372//179 2369//179 -f 2358//180 2356//180 2371//180 2372//180 -f 2356//181 2354//181 2370//181 2371//181 -f 2341//182 2342//182 2365//182 2366//182 -f 2342//183 2358//183 2368//183 2365//183 -f 2358//184 2355//184 2367//184 2368//184 -f 2355//185 2341//185 2366//185 2367//185 -g deck -s 23 -f 937//818 280//595 277//592 -f 277//592 280//595 279//594 -# 2384 elements diff --git a/src/geometry/gas.rgb b/src/geometry/gas.rgb Binary files differdeleted file mode 100644 index dc13eb8..0000000 --- a/src/geometry/gas.rgb +++ /dev/null diff --git a/src/geometry/gravel.int b/src/geometry/gravel.int Binary files differdeleted file mode 100644 index 33de30e..0000000 --- a/src/geometry/gravel.int +++ /dev/null diff --git a/src/geometry/minimart.cg b/src/geometry/minimart.cg Binary files differdeleted file mode 100644 index b8665fa..0000000 --- a/src/geometry/minimart.cg +++ /dev/null diff --git a/src/geometry/minimart.mtl b/src/geometry/minimart.mtl deleted file mode 100644 index 897e5c8..0000000 --- a/src/geometry/minimart.mtl +++ /dev/null @@ -1,131 +0,0 @@ -newmtl 58_3 -Ka 0.491326 0.491326 0.491326 -Kd 0.078057 0.208360 0.464741 -Ks 0.875138 0.875138 0.311181 -illum 2 -d 1.000000 -Ns 468.750000 -map_Kd concrete.int - -newmtl 0_0 -Ka 0.070740 0.070740 0.070740 -Kd 0.456263 0.456263 0.456263 -Ks 0.028991 0.028991 0.028991 -illum 2 -d 1.000000 -Ns 0.000000 -map_Kd pumps.int - -newmtl 58 -Ka 0.491326 0.491326 0.491326 -Kd 0.078057 0.208360 0.464741 -Ks 0.875138 0.875138 0.311181 -illum 2 -d 1.000000 -Ns 468.750000 - -newmtl 50 -Ka 0.382389 0.382389 0.382389 -Kd 0.078057 0.208360 0.464741 -Ks 0.875138 0.875138 0.311181 -illum 2 -d 1.000000 -Ns 468.750000 - -newmtl 0 -Ka 0.070740 0.070740 0.070740 -Kd 0.456263 0.456263 0.456263 -Ks 0.028991 0.028991 0.028991 -illum 2 -d 1.000000 -Ns 0.000000 - -newmtl 0_1 -Ka 0.070740 0.070740 0.070740 -Kd 0.456263 0.456263 0.456263 -Ks 0.028991 0.028991 0.028991 -illum 2 -d 1.000000 -Ns 0.000000 -map_Kd numbers.int - -newmtl 49_4 -Ka 1.000000 1.000000 1.000000 -Kd 1.000000 1.000000 1.000000 -Ks 0.875138 0.875138 0.311181 -illum 2 -d 1.000000 -Ns 992.187500 -map_Kd gas.rgb - -newmtl 0_2 -Ka 0.070740 0.070740 0.070740 -Kd 0.456263 0.456263 0.456263 -Ks 0.028991 0.028991 0.028991 -illum 2 -d 1.000000 -Ns 0.000000 -map_Kd brick2.int - -newmtl 0_6 -Ka 0.070740 0.070740 0.070740 -Kd 0.456263 0.456263 0.456263 -Ks 0.028991 0.028991 0.028991 -illum 2 -d 1.000000 -Ns 0.000000 -map_Kd thdoor.inta - -newmtl 0_7 -Ka 0.070740 0.070740 0.070740 -Kd 0.456263 0.456263 0.456263 -Ks 0.028991 0.028991 0.028991 -illum 2 -d 1.000000 -Ns 0.000000 -map_Kd window.inta - -newmtl 0_8 -Ka 0.070740 0.070740 0.070740 -Kd 0.456263 0.456263 0.456263 -Ks 0.028991 0.028991 0.028991 -illum 2 -d 1.000000 -Ns 0.000000 -map_Kd gravel.int - -newmtl 0_5 -Ka 0.070740 0.070740 0.070740 -Kd 0.456263 0.456263 0.456263 -Ks 0.028991 0.028991 0.028991 -illum 2 -d 1.000000 -Ns 0.000000 -map_Kd products.rgb - -newmtl 0_4 -Ka 0.070740 0.070740 0.070740 -Kd 0.456263 0.456263 0.456263 -Ks 0.028991 0.028991 0.028991 -illum 2 -d 1.000000 -Ns 0.000000 -map_Kd gas.rgb - -newmtl 49 -Ka 1.000000 1.000000 1.000000 -Kd 1.000000 1.000000 1.000000 -Ks 0.875138 0.875138 0.311181 -illum 2 -d 1.000000 -Ns 992.187500 - -newmtl 49_3 -Ka 1.000000 1.000000 1.000000 -Kd 1.000000 1.000000 1.000000 -Ks 0.875138 0.875138 0.311181 -illum 2 -d 1.000000 -Ns 992.187500 -map_Kd concrete.int - diff --git a/src/geometry/minimart.obj b/src/geometry/minimart.obj deleted file mode 100644 index 2be323a..0000000 --- a/src/geometry/minimart.obj +++ /dev/null @@ -1,8696 +0,0 @@ -#Exported from Designer's Workbench - Coryphaeus Software Inc. -mtllib minimart.mtl -g island -usemtl 58_3 -v -4.995108 -6.843245 0.000000 -vn -0.475051 0.879958 0.000000 -vt -15.601297 6.160724 0.000000 -v -4.995108 -6.843245 0.356720 -vn -0.475051 0.879958 0.000000 -vt -16.075003 4.976460 0.000000 -v 5.517270 -6.843242 0.356720 -vn 0.492198 0.870483 0.000000 -vt 18.824732 -8.983429 0.000000 -v 5.517270 -6.843242 0.000000 -vn 0.492198 0.870483 0.000000 -vt 19.298437 -7.799165 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.517270 -8.066281 0.000000 -vn 0.492198 -0.870483 0.000000 -vt 19.298437 -7.799165 0.000000 -v 5.517270 -8.066281 0.356720 -vn 0.492198 -0.870483 0.000000 -vt 18.824732 -8.983429 0.000000 -v -4.995107 -8.066284 0.356720 -vn -0.475050 -0.879959 0.000000 -vt -16.075001 4.976459 0.000000 -v -4.995107 -8.066284 0.000000 -vn -0.475050 -0.879959 0.000000 -vt -15.601295 6.160723 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.262645 -7.250924 0.000000 -vn -0.958136 0.286313 0.000000 -vt -16.489489 6.516000 0.000000 -v -5.262645 -7.250924 0.356720 -vn -0.958136 0.286313 0.000000 -vt -16.963194 5.331737 0.000000 -v -4.995108 -6.843245 0.356720 -vn -0.475051 0.879958 0.000000 -vt -16.075003 4.976460 0.000000 -v -4.995108 -6.843245 0.000000 -vn -0.475051 0.879958 0.000000 -vt -15.601297 6.160724 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.762516 -7.250921 0.000000 -vn 0.963561 0.267488 0.000000 -vt 20.112621 -8.124839 0.000000 -v 5.762516 -7.250921 0.356720 -vn 0.963561 0.267488 0.000000 -vt 19.638916 -9.309103 0.000000 -v 5.762516 -7.658602 0.356720 -vn 0.963561 -0.267488 0.000000 -vt 19.638916 -9.309103 0.000000 -v 5.762516 -7.658602 0.000000 -vn 0.963561 -0.267488 0.000000 -vt 20.112621 -8.124839 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.995107 -8.066284 0.000000 -vn -0.475050 -0.879959 0.000000 -vt -15.601295 6.160723 0.000000 -v -4.995107 -8.066284 0.356720 -vn -0.475050 -0.879959 0.000000 -vt -16.075001 4.976459 0.000000 -v -5.262645 -7.658605 0.356720 -vn -0.958136 -0.286314 0.000000 -vt -16.963194 5.331737 0.000000 -v -5.262645 -7.658605 0.000000 -vn -0.958136 -0.286314 0.000000 -vt -16.489489 6.516000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.262645 -7.250924 0.356720 -vn -0.958136 0.286313 0.000000 -vt -16.963194 5.331737 0.000000 -v -5.262645 -7.250924 0.000000 -vn -0.958136 0.286313 0.000000 -vt -16.489489 6.516000 0.000000 -v -5.262645 -7.658605 0.000000 -vn -0.958136 -0.286314 0.000000 -vt -16.489489 6.516000 0.000000 -v -5.262645 -7.658605 0.356720 -vn -0.958136 -0.286314 0.000000 -vt -16.963194 5.331737 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.517270 -8.066281 0.356720 -vn 0.492198 -0.870483 0.000000 -vt 18.824732 -8.983429 0.000000 -v 5.517270 -8.066281 0.000000 -vn 0.492198 -0.870483 0.000000 -vt 19.298437 -7.799165 0.000000 -v 5.762516 -7.658602 0.000000 -vn 0.963561 -0.267488 0.000000 -vt 20.112621 -8.124839 0.000000 -v 5.762516 -7.658602 0.356720 -vn 0.963561 -0.267488 0.000000 -vt 19.638916 -9.309103 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.517270 -6.843242 0.000000 -vn 0.492198 0.870483 0.000000 -vt 19.298437 -7.799165 0.000000 -v 5.517270 -6.843242 0.356720 -vn 0.492198 0.870483 0.000000 -vt 18.824732 -8.983429 0.000000 -v 5.762516 -7.250921 0.356720 -vn 0.963561 0.267488 0.000000 -vt 19.638916 -9.309103 0.000000 -v 5.762516 -7.250921 0.000000 -vn 0.963561 0.267488 0.000000 -vt 20.112621 -8.124839 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.995109 -2.087548 0.000000 -vn -0.475051 0.879958 0.000000 -vt -15.601301 6.160726 0.000000 -v -4.995109 -2.087548 0.356720 -vn -0.475051 0.879958 0.000000 -vt -16.075006 4.976461 0.000000 -v 5.517269 -2.087545 0.356720 -vn 0.492198 0.870483 0.000000 -vt 18.824726 -8.983427 0.000000 -v 5.517269 -2.087545 0.000000 -vn 0.492198 0.870483 0.000000 -vt 19.298433 -7.799163 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.517269 -3.310584 0.000000 -vn 0.492199 -0.870483 0.000000 -vt 19.298433 -7.799164 0.000000 -v 5.517269 -3.310584 0.356720 -vn 0.492199 -0.870483 0.000000 -vt 18.824728 -8.983428 0.000000 -v -4.995108 -3.310587 0.356720 -vn -0.475051 -0.879959 0.000000 -vt -16.075005 4.976461 0.000000 -v -4.995108 -3.310587 0.000000 -vn -0.475051 -0.879959 0.000000 -vt -15.601299 6.160725 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.262647 -2.495228 0.000000 -vn -0.958136 0.286312 0.000000 -vt -16.489492 6.516002 0.000000 -v -5.262647 -2.495228 0.356720 -vn -0.958136 0.286312 0.000000 -vt -16.963198 5.331738 0.000000 -v -4.995109 -2.087548 0.356720 -vn -0.475051 0.879958 0.000000 -vt -16.075006 4.976461 0.000000 -v -4.995109 -2.087548 0.000000 -vn -0.475051 0.879958 0.000000 -vt -15.601301 6.160726 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.762515 -2.495225 0.000000 -vn 0.963561 0.267488 0.000000 -vt 20.112619 -8.124838 0.000000 -v 5.762515 -2.495225 0.356720 -vn 0.963561 0.267488 0.000000 -vt 19.638914 -9.309102 0.000000 -v 5.762515 -2.902904 0.356720 -vn 0.963561 -0.267488 0.000000 -vt 19.638914 -9.309102 0.000000 -v 5.762515 -2.902904 0.000000 -vn 0.963561 -0.267488 0.000000 -vt 20.112619 -8.124838 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.995108 -3.310587 0.000000 -vn -0.475051 -0.879959 0.000000 -vt -15.601299 6.160725 0.000000 -v -4.995108 -3.310587 0.356720 -vn -0.475051 -0.879959 0.000000 -vt -16.075005 4.976461 0.000000 -v -5.262646 -2.902907 0.356720 -vn -0.958136 -0.286314 0.000000 -vt -16.963196 5.331738 0.000000 -v -5.262646 -2.902907 0.000000 -vn -0.958136 -0.286314 0.000000 -vt -16.489491 6.516002 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.262647 -2.495228 0.356720 -vn -0.958136 0.286312 0.000000 -vt -16.963198 5.331738 0.000000 -v -5.262647 -2.495228 0.000000 -vn -0.958136 0.286312 0.000000 -vt -16.489492 6.516002 0.000000 -v -5.262646 -2.902907 0.000000 -vn -0.958136 -0.286314 0.000000 -vt -16.489491 6.516002 0.000000 -v -5.262646 -2.902907 0.356720 -vn -0.958136 -0.286314 0.000000 -vt -16.963196 5.331738 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.517269 -3.310584 0.356720 -vn 0.492199 -0.870483 0.000000 -vt 18.824728 -8.983428 0.000000 -v 5.517269 -3.310584 0.000000 -vn 0.492199 -0.870483 0.000000 -vt 19.298433 -7.799164 0.000000 -v 5.762515 -2.902904 0.000000 -vn 0.963561 -0.267488 0.000000 -vt 20.112619 -8.124838 0.000000 -v 5.762515 -2.902904 0.356720 -vn 0.963561 -0.267488 0.000000 -vt 19.638914 -9.309102 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.517269 -2.087545 0.000000 -vn 0.492198 0.870483 0.000000 -vt 19.298433 -7.799163 0.000000 -v 5.517269 -2.087545 0.356720 -vn 0.492198 0.870483 0.000000 -vt 18.824726 -8.983427 0.000000 -v 5.762515 -2.495225 0.356720 -vn 0.963561 0.267488 0.000000 -vt 19.638914 -9.309102 0.000000 -v 5.762515 -2.495225 0.000000 -vn 0.963561 0.267488 0.000000 -vt 20.112619 -8.124838 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.517270 -6.843242 0.356720 -vn 0.000000 0.000000 1.000000 -vt 1.411776 -11.148104 0.000000 -v -4.995108 -6.843245 0.356720 -vn 0.000000 0.000000 1.000000 -vt -6.998125 5.671706 0.000000 -v -5.262645 -7.250924 0.356720 -vn 0.000000 0.000000 1.000000 -vt -7.864442 5.773623 0.000000 -v -5.262645 -7.658605 0.356720 -vn 0.000000 0.000000 1.000000 -vt -8.516731 5.447478 0.000000 -v -4.995107 -8.066284 0.356720 -vn 0.000000 0.000000 1.000000 -vt -8.954988 4.693272 0.000000 -v 5.517270 -8.066281 0.356720 -vn 0.000000 0.000000 1.000000 -vt -0.545087 -12.126536 0.000000 -v 5.762516 -7.658602 0.356720 -vn 0.000000 0.000000 1.000000 -vt 0.303397 -12.192786 0.000000 -v 5.762516 -7.250921 0.356720 -vn 0.000000 0.000000 1.000000 -vt 0.955686 -11.866642 0.000000 -f -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.517269 -2.087545 0.356720 -vn 0.000000 0.000000 1.000000 -vt 9.020891 -7.343543 0.000000 -v -4.995109 -2.087548 0.356720 -vn 0.000000 0.000000 1.000000 -vt 0.610991 9.476266 0.000000 -v -5.262647 -2.495228 0.356720 -vn 0.000000 0.000000 1.000000 -vt -0.255328 9.578183 0.000000 -v -5.262646 -2.902907 0.356720 -vn 0.000000 0.000000 1.000000 -vt -0.907615 9.252039 0.000000 -v -4.995108 -3.310587 0.356720 -vn 0.000000 0.000000 1.000000 -vt -1.345873 8.497833 0.000000 -v 5.517269 -3.310584 0.356720 -vn 0.000000 0.000000 1.000000 -vt 7.064028 -8.321976 0.000000 -v 5.762515 -2.902904 0.356720 -vn 0.000000 0.000000 1.000000 -vt 7.912513 -8.388226 0.000000 -v 5.762515 -2.495225 0.356720 -vn 0.000000 0.000000 1.000000 -vt 8.564800 -8.062081 0.000000 -f -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -g pumps -usemtl 0_0 -v 3.966174 -2.313679 0.356720 -vn 0.000000 0.999298 0.037474 -vt -0.006712 0.002003 0.000000 -v 3.966174 -2.361455 1.630720 -vn 0.000000 0.999298 0.037474 -vt -0.006712 0.995882 0.000000 -v 4.943970 -2.361455 1.630720 -vn 0.000000 0.999298 0.037474 -vt 1.001127 0.995882 0.000000 -v 4.943970 -2.313679 0.356720 -vn 0.000000 0.999298 0.037474 -vt 1.001127 0.002003 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.943971 -3.062155 0.356720 -vn 0.000000 -0.999298 0.037475 -vt 1.001127 0.002003 0.000000 -v 4.943971 -3.014379 1.630720 -vn 0.000000 -0.999298 0.037475 -vt 1.001127 0.995882 0.000000 -v 3.966174 -3.014379 1.630720 -vn 0.000000 -0.999298 0.037475 -vt -0.006712 0.995882 0.000000 -v 3.966174 -3.062155 0.356720 -vn 0.000000 -0.999298 0.037475 -vt -0.006712 0.002003 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.966174 -2.361455 1.630720 -vn 0.000000 0.000000 1.000000 -vt -0.006712 0.995882 0.000000 -v 3.966174 -3.014379 1.630720 -vn 0.000000 0.000000 1.000000 -vt -0.006712 0.995882 0.000000 -v 4.943971 -3.014379 1.630720 -vn 0.000000 0.000000 1.000000 -vt 1.001127 0.995882 0.000000 -v 4.943970 -2.361455 1.630720 -vn 0.000000 0.000000 1.000000 -vt 1.001127 0.995882 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.966174 -3.062155 0.356720 -vn -1.000000 -0.000001 0.000000 -vt -0.006712 0.002003 0.000000 -v 3.966174 -3.014379 1.630720 -vn -1.000000 -0.000001 0.000000 -vt -0.006712 0.995882 0.000000 -v 3.966174 -2.361455 1.630720 -vn -1.000000 -0.000001 0.000000 -vt -0.006712 0.995882 0.000000 -v 3.966174 -2.313679 0.356720 -vn -1.000000 -0.000001 0.000000 -vt -0.006712 0.002003 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.943970 -2.313679 0.356720 -vn 1.000000 0.000001 0.000000 -vt 1.001127 0.002003 0.000000 -v 4.943970 -2.361455 1.630720 -vn 1.000000 0.000001 0.000000 -vt 1.001127 0.995882 0.000000 -v 4.943971 -3.014379 1.630720 -vn 1.000000 0.000001 0.000000 -vt 1.001127 0.995882 0.000000 -v 4.943971 -3.062155 0.356720 -vn 1.000000 0.000001 0.000000 -vt 1.001127 0.002003 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.287601 -2.313680 0.356720 -vn 0.000000 0.999298 0.037474 -vt -0.015148 -0.007196 0.000000 -v 1.287601 -2.361456 1.630720 -vn 0.000000 0.999298 0.037474 -vt -0.015147 1.007197 0.000000 -v 2.265398 -2.361456 1.630720 -vn 0.000000 0.999298 0.037474 -vt 0.996964 1.007197 0.000000 -v 2.265398 -2.313680 0.356720 -vn 0.000000 0.999298 0.037474 -vt 0.996963 -0.007196 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.265398 -3.062156 0.356720 -vn 0.000000 -0.999298 0.037475 -vt 0.996963 -0.007196 0.000000 -v 2.265398 -3.014380 1.630720 -vn 0.000000 -0.999298 0.037475 -vt 0.996964 1.007197 0.000000 -v 1.287602 -3.014380 1.630720 -vn 0.000000 -0.999298 0.037475 -vt -0.015147 1.007197 0.000000 -v 1.287602 -3.062156 0.356720 -vn 0.000000 -0.999298 0.037475 -vt -0.015148 -0.007196 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.287601 -2.361456 1.630720 -vn 0.000000 0.000000 1.000000 -vt -0.015147 1.007197 0.000000 -v 1.287602 -3.014380 1.630720 -vn 0.000000 0.000000 1.000000 -vt -0.015147 1.007197 0.000000 -v 2.265398 -3.014380 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.996964 1.007197 0.000000 -v 2.265398 -2.361456 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.996964 1.007197 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.287602 -3.062156 0.356720 -vn -1.000000 0.000000 0.000000 -vt -0.015148 -0.007196 0.000000 -v 1.287602 -3.014380 1.630720 -vn -1.000000 0.000000 0.000000 -vt -0.015147 1.007197 0.000000 -v 1.287601 -2.361456 1.630720 -vn -1.000000 0.000000 0.000000 -vt -0.015147 1.007197 0.000000 -v 1.287601 -2.313680 0.356720 -vn -1.000000 0.000000 0.000000 -vt -0.015148 -0.007196 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.265398 -2.313680 0.356720 -vn 1.000000 0.000000 0.000000 -vt 0.996963 -0.007196 0.000000 -v 2.265398 -2.361456 1.630720 -vn 1.000000 0.000000 0.000000 -vt 0.996964 1.007197 0.000000 -v 2.265398 -3.014380 1.630720 -vn 1.000000 0.000000 0.000000 -vt 0.996964 1.007197 0.000000 -v 2.265398 -3.062156 0.356720 -vn 1.000000 0.000000 0.000000 -vt 0.996963 -0.007196 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.886559 -2.313681 0.356720 -vn 0.000000 0.999298 0.037474 -vt 0.991106 0.006118 0.000000 -v -1.886559 -2.361457 1.630720 -vn 0.000000 0.999298 0.037474 -vt 0.991106 1.004051 0.000000 -v -0.908766 -2.361457 1.630720 -vn 0.000000 0.999298 0.037474 -vt 0.000121 1.004051 0.000000 -v -0.908766 -2.313681 0.356720 -vn 0.000000 0.999298 0.037474 -vt 0.000122 0.006118 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -0.908766 -3.062157 0.356720 -vn 0.000000 -0.999298 0.037475 -vt 0.000122 0.006118 0.000000 -v -0.908766 -3.014381 1.630720 -vn 0.000000 -0.999298 0.037475 -vt 0.000121 1.004051 0.000000 -v -1.886558 -3.014381 1.630720 -vn 0.000000 -0.999298 0.037475 -vt 0.991106 1.004051 0.000000 -v -1.886558 -3.062157 0.356720 -vn 0.000000 -0.999298 0.037475 -vt 0.991106 0.006118 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.886559 -2.361457 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.991106 1.004051 0.000000 -v -1.886558 -3.014381 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.991106 1.004051 0.000000 -v -0.908766 -3.014381 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.000121 1.004051 0.000000 -v -0.908766 -2.361457 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.000121 1.004051 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.886558 -3.062157 0.356720 -vn -1.000000 0.000000 0.000000 -vt 0.991106 0.006118 0.000000 -v -1.886558 -3.014381 1.630720 -vn -1.000000 0.000000 0.000000 -vt 0.991106 1.004051 0.000000 -v -1.886559 -2.361457 1.630720 -vn -1.000000 0.000000 0.000000 -vt 0.991106 1.004051 0.000000 -v -1.886559 -2.313681 0.356720 -vn -1.000000 0.000000 0.000000 -vt 0.991106 0.006118 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -0.908766 -2.313681 0.356720 -vn 1.000000 0.000000 0.000000 -vt 0.000122 0.006118 0.000000 -v -0.908766 -2.361457 1.630720 -vn 1.000000 0.000000 0.000000 -vt 0.000121 1.004051 0.000000 -v -0.908766 -3.014381 1.630720 -vn 1.000000 0.000000 0.000000 -vt 0.000121 1.004051 0.000000 -v -0.908766 -3.062157 0.356720 -vn 1.000000 0.000000 0.000000 -vt 0.000122 0.006118 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.603353 -2.313682 0.356720 -vn 0.000000 0.999298 0.037474 -vt 0.994782 0.004058 0.000000 -v -4.603353 -2.361458 1.630720 -vn 0.000000 0.999298 0.037474 -vt 0.994782 0.995942 0.000000 -v -3.625556 -2.361458 1.630720 -vn 0.000000 0.999298 0.037474 -vt -0.003187 0.995942 0.000000 -v -3.625556 -2.313681 0.356720 -vn 0.000000 0.999298 0.037474 -vt -0.003187 0.004058 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.625556 -2.313681 0.356720 -vn 1.000000 0.000001 0.000000 -vt -0.003187 0.004058 0.000000 -v -3.625556 -2.361458 1.630720 -vn 1.000000 0.000001 0.000000 -vt -0.003187 0.995942 0.000000 -v -3.625556 -3.014381 1.630720 -vn 1.000000 0.000001 0.000000 -vt -0.003187 0.995942 0.000000 -v -3.625556 -3.062157 0.356720 -vn 1.000000 0.000001 0.000000 -vt -0.003187 0.004058 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.603353 -2.361458 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.994782 0.995942 0.000000 -v -4.603352 -3.014382 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.994782 0.995942 0.000000 -v -3.625556 -3.014381 1.630720 -vn 0.000000 0.000000 1.000000 -vt -0.003187 0.995942 0.000000 -v -3.625556 -2.361458 1.630720 -vn 0.000000 0.000000 1.000000 -vt -0.003187 0.995942 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.625556 -3.062157 0.356720 -vn 0.000000 -0.999298 0.037475 -vt -0.003187 0.004058 0.000000 -v -3.625556 -3.014381 1.630720 -vn 0.000000 -0.999298 0.037475 -vt -0.003187 0.995942 0.000000 -v -4.603352 -3.014382 1.630720 -vn 0.000000 -0.999298 0.037475 -vt 0.994782 0.995942 0.000000 -v -4.603352 -3.062158 0.356720 -vn 0.000000 -0.999298 0.037475 -vt 0.994782 0.004058 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.603352 -3.062158 0.356720 -vn -1.000000 -0.000001 0.000000 -vt 0.994782 0.004058 0.000000 -v -4.603352 -3.014382 1.630720 -vn -1.000000 -0.000001 0.000000 -vt 0.994782 0.995942 0.000000 -v -4.603353 -2.361458 1.630720 -vn -1.000000 -0.000001 0.000000 -vt 0.994782 0.995942 0.000000 -v -4.603353 -2.313682 0.356720 -vn -1.000000 -0.000001 0.000000 -vt 0.994782 0.004058 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.966175 -7.069377 0.356720 -vn 0.000000 0.999298 0.037474 -vt -0.006712 0.002003 0.000000 -v 3.966175 -7.117152 1.630720 -vn 0.000000 0.999298 0.037474 -vt -0.006712 0.995882 0.000000 -v 4.943972 -7.117152 1.630720 -vn 0.000000 0.999298 0.037474 -vt 1.001127 0.995882 0.000000 -v 4.943972 -7.069377 0.356720 -vn 0.000000 0.999298 0.037474 -vt 1.001127 0.002003 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.943972 -7.817852 0.356720 -vn 0.000000 -0.999298 0.037474 -vt 1.001127 0.002003 0.000000 -v 4.943972 -7.770077 1.630720 -vn 0.000000 -0.999298 0.037474 -vt 1.001127 0.995882 0.000000 -v 3.966175 -7.770077 1.630720 -vn 0.000000 -0.999298 0.037474 -vt -0.006712 0.995882 0.000000 -v 3.966175 -7.817852 0.356720 -vn 0.000000 -0.999298 0.037474 -vt -0.006712 0.002003 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.966175 -7.117152 1.630720 -vn 0.000000 0.000000 1.000000 -vt -0.006712 0.995882 0.000000 -v 3.966175 -7.770077 1.630720 -vn 0.000000 0.000000 1.000000 -vt -0.006712 0.995882 0.000000 -v 4.943972 -7.770077 1.630720 -vn 0.000000 0.000000 1.000000 -vt 1.001127 0.995882 0.000000 -v 4.943972 -7.117152 1.630720 -vn 0.000000 0.000000 1.000000 -vt 1.001127 0.995882 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.966175 -7.817852 0.356720 -vn -1.000000 0.000000 0.000000 -vt -0.006712 0.002003 0.000000 -v 3.966175 -7.770077 1.630720 -vn -1.000000 0.000000 0.000000 -vt -0.006712 0.995882 0.000000 -v 3.966175 -7.117152 1.630720 -vn -1.000000 0.000000 0.000000 -vt -0.006712 0.995882 0.000000 -v 3.966175 -7.069377 0.356720 -vn -1.000000 0.000000 0.000000 -vt -0.006712 0.002003 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.943972 -7.069377 0.356720 -vn 1.000000 0.000000 0.000000 -vt 1.001127 0.002003 0.000000 -v 4.943972 -7.117152 1.630720 -vn 1.000000 0.000000 0.000000 -vt 1.001127 0.995882 0.000000 -v 4.943972 -7.770077 1.630720 -vn 1.000000 0.000000 0.000000 -vt 1.001127 0.995882 0.000000 -v 4.943972 -7.817852 0.356720 -vn 1.000000 0.000000 0.000000 -vt 1.001127 0.002003 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.287602 -7.069378 0.356720 -vn 0.000000 0.999298 0.037474 -vt -0.015148 -0.007196 0.000000 -v 1.287603 -7.117153 1.630720 -vn 0.000000 0.999298 0.037474 -vt -0.015147 1.007197 0.000000 -v 2.265399 -7.117152 1.630720 -vn 0.000000 0.999298 0.037474 -vt 0.996964 1.007197 0.000000 -v 2.265399 -7.069378 0.356720 -vn 0.000000 0.999298 0.037474 -vt 0.996963 -0.007196 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.265399 -7.817852 0.356720 -vn 0.000001 -0.999298 0.037474 -vt 0.996963 -0.007196 0.000000 -v 2.265399 -7.770078 1.630720 -vn 0.000001 -0.999298 0.037474 -vt 0.996964 1.007197 0.000000 -v 1.287603 -7.770078 1.630720 -vn 0.000001 -0.999298 0.037474 -vt -0.015147 1.007197 0.000000 -v 1.287603 -7.817853 0.356720 -vn 0.000001 -0.999298 0.037474 -vt -0.015148 -0.007196 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.287603 -7.117153 1.630720 -vn 0.000000 0.000000 1.000000 -vt -0.015147 1.007197 0.000000 -v 1.287603 -7.770078 1.630720 -vn 0.000000 0.000000 1.000000 -vt -0.015147 1.007197 0.000000 -v 2.265399 -7.770078 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.996964 1.007197 0.000000 -v 2.265399 -7.117152 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.996964 1.007197 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.287603 -7.817853 0.356720 -vn -1.000000 0.000000 0.000000 -vt -0.015148 -0.007196 0.000000 -v 1.287603 -7.770078 1.630720 -vn -1.000000 0.000000 0.000000 -vt -0.015147 1.007197 0.000000 -v 1.287603 -7.117153 1.630720 -vn -1.000000 0.000000 0.000000 -vt -0.015147 1.007197 0.000000 -v 1.287602 -7.069378 0.356720 -vn -1.000000 0.000000 0.000000 -vt -0.015148 -0.007196 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.265399 -7.069378 0.356720 -vn 1.000000 0.000000 0.000000 -vt 0.996963 -0.007196 0.000000 -v 2.265399 -7.117152 1.630720 -vn 1.000000 0.000000 0.000000 -vt 0.996964 1.007197 0.000000 -v 2.265399 -7.770078 1.630720 -vn 1.000000 0.000000 0.000000 -vt 0.996964 1.007197 0.000000 -v 2.265399 -7.817852 0.356720 -vn 1.000000 0.000000 0.000000 -vt 0.996963 -0.007196 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.886558 -7.069379 0.356720 -vn 0.000000 0.999298 0.037473 -vt 0.991106 0.006118 0.000000 -v -1.886558 -7.117153 1.630720 -vn 0.000000 0.999298 0.037473 -vt 0.991106 1.004051 0.000000 -v -0.908765 -7.117153 1.630720 -vn 0.000000 0.999298 0.037473 -vt 0.000121 1.004051 0.000000 -v -0.908765 -7.069379 0.356720 -vn 0.000000 0.999298 0.037473 -vt 0.000122 0.006118 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -0.908765 -7.817853 0.356720 -vn 0.000000 -0.999298 0.037473 -vt 0.000122 0.006118 0.000000 -v -0.908765 -7.770079 1.630720 -vn 0.000000 -0.999298 0.037473 -vt 0.000121 1.004051 0.000000 -v -1.886557 -7.770079 1.630720 -vn 0.000000 -0.999298 0.037473 -vt 0.991106 1.004051 0.000000 -v -1.886557 -7.817853 0.356720 -vn 0.000000 -0.999298 0.037473 -vt 0.991106 0.006118 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.886558 -7.117153 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.991106 1.004051 0.000000 -v -1.886557 -7.770079 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.991106 1.004051 0.000000 -v -0.908765 -7.770079 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.000121 1.004051 0.000000 -v -0.908765 -7.117153 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.000121 1.004051 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.886557 -7.817853 0.356720 -vn -1.000000 0.000000 0.000000 -vt 0.991106 0.006118 0.000000 -v -1.886557 -7.770079 1.630720 -vn -1.000000 0.000000 0.000000 -vt 0.991106 1.004051 0.000000 -v -1.886558 -7.117153 1.630720 -vn -1.000000 0.000000 0.000000 -vt 0.991106 1.004051 0.000000 -v -1.886558 -7.069379 0.356720 -vn -1.000000 0.000000 0.000000 -vt 0.991106 0.006118 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -0.908765 -7.069379 0.356720 -vn 1.000000 0.000000 0.000000 -vt 0.000122 0.006118 0.000000 -v -0.908765 -7.117153 1.630720 -vn 1.000000 0.000000 0.000000 -vt 0.000121 1.004051 0.000000 -v -0.908765 -7.770079 1.630720 -vn 1.000000 0.000000 0.000000 -vt 0.000121 1.004051 0.000000 -v -0.908765 -7.817853 0.356720 -vn 1.000000 0.000000 0.000000 -vt 0.000122 0.006118 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.603352 -7.069380 0.356720 -vn -0.000001 0.999298 0.037473 -vt 0.994782 0.004058 0.000000 -v -4.603351 -7.117154 1.630720 -vn -0.000001 0.999298 0.037473 -vt 0.994782 0.995942 0.000000 -v -3.625555 -7.117154 1.630720 -vn -0.000001 0.999298 0.037473 -vt -0.003187 0.995942 0.000000 -v -3.625555 -7.069379 0.356720 -vn -0.000001 0.999298 0.037473 -vt -0.003187 0.004058 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.625555 -7.817854 0.356720 -vn 0.000000 -0.999298 0.037473 -vt -0.003187 0.004058 0.000000 -v -3.625555 -7.770079 1.630720 -vn 0.000000 -0.999298 0.037473 -vt -0.003187 0.995942 0.000000 -v -4.603351 -7.770080 1.630720 -vn 0.000000 -0.999298 0.037473 -vt 0.994782 0.995942 0.000000 -v -4.603351 -7.817854 0.356720 -vn 0.000000 -0.999298 0.037473 -vt 0.994782 0.004058 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.603351 -7.117154 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.994782 0.995942 0.000000 -v -4.603351 -7.770080 1.630720 -vn 0.000000 0.000000 1.000000 -vt 0.994782 0.995942 0.000000 -v -3.625555 -7.770079 1.630720 -vn 0.000000 0.000000 1.000000 -vt -0.003187 0.995942 0.000000 -v -3.625555 -7.117154 1.630720 -vn 0.000000 0.000000 1.000000 -vt -0.003187 0.995942 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.603351 -7.817854 0.356720 -vn -1.000000 -0.000001 0.000000 -vt 0.994782 0.004058 0.000000 -v -4.603351 -7.770080 1.630720 -vn -1.000000 -0.000001 0.000000 -vt 0.994782 0.995942 0.000000 -v -4.603351 -7.117154 1.630720 -vn -1.000000 -0.000001 0.000000 -vt 0.994782 0.995942 0.000000 -v -4.603352 -7.069380 0.356720 -vn -1.000000 -0.000001 0.000000 -vt 0.994782 0.004058 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.625555 -7.069379 0.356720 -vn 1.000000 0.000001 0.000000 -vt -0.003187 0.004058 0.000000 -v -3.625555 -7.117154 1.630720 -vn 1.000000 0.000001 0.000000 -vt -0.003187 0.995942 0.000000 -v -3.625555 -7.770079 1.630720 -vn 1.000000 0.000001 0.000000 -vt -0.003187 0.995942 0.000000 -v -3.625555 -7.817854 0.356720 -vn 1.000000 0.000001 0.000000 -vt -0.003187 0.004058 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -g poles -usemtl 58 -v 0.219801 -2.543001 0.356720 -vn 0.595561 0.803310 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.219801 -2.543001 4.762428 -vn 0.595561 0.803310 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.404530 -2.679956 4.762428 -vn 0.595561 0.803310 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.404530 -2.679956 0.356720 -vn 0.595561 0.803310 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 0.404530 -2.679956 0.356720 -vn 0.951444 -0.307821 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.404530 -2.679956 4.762428 -vn 0.951444 -0.307821 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.334460 -2.896536 4.762428 -vn 0.951444 -0.307821 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.334460 -2.896536 0.356720 -vn 0.951444 -0.307821 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 0.334460 -2.896536 0.356720 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.334460 -2.896536 4.762428 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.105139 -2.896536 4.762428 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.105139 -2.896536 0.356720 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 0.105139 -2.896536 0.356720 -vn -0.951447 -0.307814 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.105139 -2.896536 4.762428 -vn -0.951447 -0.307814 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.035071 -2.679956 4.762428 -vn -0.951447 -0.307814 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.035071 -2.679956 0.356720 -vn -0.951447 -0.307814 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 0.035071 -2.679956 0.356720 -vn -0.595559 0.803312 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.035071 -2.679956 4.762428 -vn -0.595559 0.803312 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.219801 -2.543001 4.762428 -vn -0.595559 0.803312 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.219801 -2.543001 0.356720 -vn -0.595559 0.803312 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 0.219802 -7.279588 0.356720 -vn 0.586512 0.809940 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.219802 -7.279588 4.762428 -vn 0.586512 0.809940 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.404531 -7.413358 4.762428 -vn 0.586512 0.809940 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.404531 -7.413358 0.356720 -vn 0.586512 0.809940 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 0.404531 -7.413358 0.356720 -vn 0.951444 -0.307821 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.404531 -7.413358 4.762428 -vn 0.951444 -0.307821 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.334461 -7.629938 4.762428 -vn 0.951444 -0.307821 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.334461 -7.629938 0.356720 -vn 0.951444 -0.307821 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 0.334461 -7.629938 0.356720 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.334461 -7.629938 4.762428 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.105140 -7.629938 4.762428 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.105140 -7.629938 0.356720 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 0.105140 -7.629938 0.356720 -vn -0.951447 -0.307813 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.105140 -7.629938 4.762428 -vn -0.951447 -0.307813 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.035072 -7.413358 4.762428 -vn -0.951447 -0.307813 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.035072 -7.413358 0.356720 -vn -0.951447 -0.307813 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 0.035072 -7.413358 0.356720 -vn -0.586509 0.809943 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.035072 -7.413358 4.762428 -vn -0.586509 0.809943 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.219802 -7.279588 4.762428 -vn -0.586509 0.809943 0.000000 -vt 0.000000 0.000000 0.000000 -v 0.219802 -7.279588 0.356720 -vn -0.586509 0.809943 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -g lilpole -usemtl 50 -v -5.093839 -7.359215 0.356720 -vn 0.609712 0.792623 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.093839 -7.359215 1.248520 -vn 0.609712 0.792623 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.011030 -7.422915 1.248520 -vn 0.609712 0.792623 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.011030 -7.422915 0.356720 -vn 0.609712 0.792623 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.011030 -7.422915 0.356720 -vn 0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.011030 -7.422915 1.248520 -vn 0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.042881 -7.521649 1.248520 -vn 0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.042881 -7.521649 0.356720 -vn 0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.042881 -7.521649 0.356720 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.042881 -7.521649 1.248520 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.147985 -7.521649 1.248520 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.147985 -7.521649 0.356720 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.147985 -7.521649 0.356720 -vn -0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.147985 -7.521649 1.248520 -vn -0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.179836 -7.422915 1.248520 -vn -0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.179836 -7.422915 0.356720 -vn -0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.179836 -7.422915 0.356720 -vn -0.595219 0.803564 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.179836 -7.422915 1.248520 -vn -0.595219 0.803564 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.093839 -7.359215 1.248520 -vn -0.595219 0.803564 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.093839 -7.359215 0.356720 -vn -0.595219 0.803564 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.093841 -2.606703 0.356720 -vn 0.590016 0.807392 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.093841 -2.606703 1.248520 -vn 0.590016 0.807392 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.011031 -2.667217 1.248520 -vn 0.590016 0.807392 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.011031 -2.667217 0.356720 -vn 0.590016 0.807392 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.011031 -2.667217 0.356720 -vn 0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.011031 -2.667217 1.248520 -vn 0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.042882 -2.769138 1.248520 -vn 0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.042882 -2.769138 0.356720 -vn 0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.042882 -2.769138 0.356720 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.042882 -2.769138 1.248520 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.147986 -2.769138 1.248520 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.147986 -2.769138 0.356720 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.147986 -2.769138 0.356720 -vn -0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.147986 -2.769138 1.248520 -vn -0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.179837 -2.667217 1.248520 -vn -0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.179837 -2.667217 0.356720 -vn -0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.179837 -2.667217 0.356720 -vn -0.575483 0.817814 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.179837 -2.667217 1.248520 -vn -0.575483 0.817814 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.093841 -2.606703 1.248520 -vn -0.575483 0.817814 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.093841 -2.606703 0.356720 -vn -0.575483 0.817814 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.536381 -7.359212 0.356720 -vn 0.595227 0.803558 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.536381 -7.359212 1.248520 -vn 0.595227 0.803558 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.622375 -7.422912 1.248520 -vn 0.595227 0.803558 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.622375 -7.422912 0.356720 -vn 0.595227 0.803558 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.622375 -7.422912 0.356720 -vn 0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.622375 -7.422912 1.248520 -vn 0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.590525 -7.521646 1.248520 -vn 0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.590525 -7.521646 0.356720 -vn 0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.590525 -7.521646 0.356720 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.590525 -7.521646 1.248520 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.485420 -7.521646 1.248520 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.485420 -7.521646 0.356720 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.485420 -7.521646 0.356720 -vn -0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.485420 -7.521646 1.248520 -vn -0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.453569 -7.422912 1.248520 -vn -0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.453569 -7.422912 0.356720 -vn -0.951706 -0.307010 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.453569 -7.422912 0.356720 -vn -0.609703 0.792630 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.453569 -7.422912 1.248520 -vn -0.609703 0.792630 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.536381 -7.359212 1.248520 -vn -0.609703 0.792630 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.536381 -7.359212 0.356720 -vn -0.609703 0.792630 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.536380 -2.606700 0.356720 -vn 0.575491 0.817808 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.536380 -2.606700 1.248520 -vn 0.575491 0.817808 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.622375 -2.667214 1.248520 -vn 0.575491 0.817808 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.622375 -2.667214 0.356720 -vn 0.575491 0.817808 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.622375 -2.667214 0.356720 -vn 0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.622375 -2.667214 1.248520 -vn 0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.590524 -2.769135 1.248520 -vn 0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.590524 -2.769135 0.356720 -vn 0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.590524 -2.769135 0.356720 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.590524 -2.769135 1.248520 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.485419 -2.769135 1.248520 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.485419 -2.769135 0.356720 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.485419 -2.769135 0.356720 -vn -0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.485419 -2.769135 1.248520 -vn -0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.453568 -2.667214 1.248520 -vn -0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.453568 -2.667214 0.356720 -vn -0.954478 -0.298280 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.453568 -2.667214 0.356720 -vn -0.590007 0.807398 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.453568 -2.667214 1.248520 -vn -0.590007 0.807398 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.536380 -2.606700 1.248520 -vn -0.590007 0.807398 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.536380 -2.606700 0.356720 -vn -0.590007 0.807398 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.179837 -2.667217 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -5.147986 -2.769138 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -5.042882 -2.769138 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -5.011031 -2.667217 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -5.093841 -2.606703 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.453569 -7.422912 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 5.485420 -7.521646 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 5.590525 -7.521646 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 5.622375 -7.422912 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 5.536381 -7.359212 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.179836 -7.422915 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -5.147985 -7.521649 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -5.042881 -7.521649 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -5.011030 -7.422915 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -5.093839 -7.359215 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.453568 -2.667214 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 5.485419 -2.769135 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 5.590524 -2.769135 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 5.622375 -2.667214 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 5.536380 -2.606700 1.248520 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -g nozzles -usemtl 0 -v 3.973126 -7.474762 1.496231 -vn 0.079950 0.995278 0.055050 -vt 0.000000 0.000000 0.000000 -v 3.973126 -7.474762 1.461424 -vn 0.079950 0.995278 0.055050 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.461802 1.366481 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.973126 -7.474762 1.496231 -vn 0.079950 0.995278 0.055050 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.461802 1.366481 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -v 3.880126 -7.474762 1.429210 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.901126 -7.548202 1.173709 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.526602 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v 3.880126 -7.513642 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.901126 -7.548202 1.173709 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -v 3.880126 -7.513642 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v 3.880126 -7.548202 1.084686 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.973126 -7.513642 1.496231 -vn 0.079944 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 3.880126 -7.513642 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.526602 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.973126 -7.513642 1.461424 -vn 0.079944 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 3.973126 -7.513642 1.496231 -vn 0.079944 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.526602 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.880126 -7.474762 1.429210 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.461802 1.366481 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.440202 1.173709 -vn -0.333353 0.941613 0.047337 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.880126 -7.474762 1.429210 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.440202 1.173709 -vn -0.333353 0.941613 0.047337 -vt 0.000000 0.000000 0.000000 -v 3.880126 -7.440202 1.084686 -vn -0.333353 0.941613 0.047337 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.943840 -7.481327 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -v 3.943840 -7.481327 0.568535 -vn -0.024409 0.999698 0.002922 -vt 0.000000 0.000000 0.000000 -v 3.913849 -7.482033 0.568535 -vn -0.024409 0.999698 0.002922 -vt 0.000000 0.000000 0.000000 -v 3.913849 -7.482033 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.944546 -7.511319 1.084686 -vn 0.999877 0.015683 0.000000 -vt 0.000000 0.000000 0.000000 -v 3.944546 -7.511319 0.568535 -vn 0.983458 0.023141 0.179654 -vt 0.000000 0.000000 0.000000 -v 3.943840 -7.481327 0.568535 -vn 0.983458 0.023141 0.179654 -vt 0.000000 0.000000 0.000000 -v 3.943840 -7.481327 1.084686 -vn 0.999877 0.015683 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.914555 -7.512025 1.084686 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -v 3.914555 -7.512025 0.568535 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v 3.944546 -7.511319 0.568535 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v 3.944546 -7.511319 1.084686 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.913849 -7.482033 1.084686 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -v 3.913849 -7.482033 0.568535 -vn -0.984640 -0.023169 -0.173052 -vt 0.000000 0.000000 0.000000 -v 3.914555 -7.512025 0.568535 -vn -0.984640 -0.023169 -0.173052 -vt 0.000000 0.000000 0.000000 -v 3.914555 -7.512025 1.084686 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.943840 -7.481327 0.568535 -vn -0.024409 0.999698 0.002922 -vt 0.000000 0.000000 0.000000 -v 3.951936 -7.481327 0.511512 -vn -0.024409 0.999698 0.002922 -vt 0.000000 0.000000 0.000000 -v 3.921945 -7.482033 0.505522 -vn -0.024409 0.999698 0.002922 -vt 0.000000 0.000000 0.000000 -v 3.913849 -7.482033 0.568535 -vn -0.024409 0.999698 0.002922 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.944546 -7.511319 0.568535 -vn 0.983458 0.023141 0.179654 -vt 0.000000 0.000000 0.000000 -v 3.952641 -7.511319 0.511512 -vn 0.983458 0.023141 0.179654 -vt 0.000000 0.000000 0.000000 -v 3.951936 -7.481327 0.511512 -vn 0.983458 0.023141 0.179654 -vt 0.000000 0.000000 0.000000 -v 3.943840 -7.481327 0.568535 -vn 0.983458 0.023141 0.179654 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.914555 -7.512025 0.568535 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v 3.922650 -7.512025 0.505522 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v 3.952641 -7.511319 0.511512 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v 3.944546 -7.511319 0.568535 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.913849 -7.482033 0.568535 -vn -0.984640 -0.023169 -0.173052 -vt 0.000000 0.000000 0.000000 -v 3.921945 -7.482033 0.505522 -vn -0.984640 -0.023169 -0.173052 -vt 0.000000 0.000000 0.000000 -v 3.922650 -7.512025 0.505522 -vn -0.984640 -0.023169 -0.173052 -vt 0.000000 0.000000 0.000000 -v 3.914555 -7.512025 0.568535 -vn -0.984640 -0.023169 -0.173052 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.951936 -7.481327 0.511512 -vn -0.024409 0.999698 0.002922 -vt 0.000000 0.000000 0.000000 -v 4.019025 -7.476995 0.369762 -vn -0.027061 0.999476 0.017734 -vt 0.000000 0.000000 0.000000 -v 3.989034 -7.477701 0.363771 -vn -0.027061 0.999476 0.017734 -vt 0.000000 0.000000 0.000000 -v 3.921945 -7.482033 0.505522 -vn -0.024409 0.999698 0.002922 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.952641 -7.511319 0.511512 -vn 0.983458 0.023141 0.179654 -vt 0.000000 0.000000 0.000000 -v 4.019731 -7.506987 0.369762 -vn 0.903421 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v 4.019025 -7.476995 0.369762 -vn 0.903421 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v 3.951936 -7.481327 0.511512 -vn 0.983458 0.023141 0.179654 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.922650 -7.512025 0.505522 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v 3.989739 -7.507692 0.363771 -vn 0.027062 -0.999476 -0.017740 -vt 0.000000 0.000000 0.000000 -v 4.019731 -7.506987 0.369762 -vn 0.027062 -0.999476 -0.017740 -vt 0.000000 0.000000 0.000000 -v 3.952641 -7.511319 0.511512 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.921945 -7.482033 0.505522 -vn -0.984640 -0.023169 -0.173052 -vt 0.000000 0.000000 0.000000 -v 3.989034 -7.477701 0.363771 -vn -0.903421 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v 3.989739 -7.507692 0.363771 -vn -0.903421 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v 3.922650 -7.512025 0.505522 -vn -0.984640 -0.023169 -0.173052 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.295110 -7.474763 1.496231 -vn 0.079953 0.995277 0.055050 -vt 0.000000 0.000000 0.000000 -v 1.295110 -7.474763 1.461424 -vn 0.079953 0.995277 0.055050 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.461802 1.366481 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.295110 -7.474763 1.496231 -vn 0.079953 0.995277 0.055050 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.461802 1.366481 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -v 1.202111 -7.474763 1.429210 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.223111 -7.548203 1.173709 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.526603 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v 1.202111 -7.513643 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.223111 -7.548203 1.173709 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -v 1.202111 -7.513643 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v 1.202111 -7.548203 1.084686 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.295110 -7.513643 1.496231 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 1.202111 -7.513643 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.526603 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.295110 -7.513643 1.461424 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 1.295110 -7.513643 1.496231 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.526603 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.202111 -7.474763 1.429210 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.461802 1.366481 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.440203 1.173709 -vn -0.333353 0.941613 0.047337 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.202111 -7.474763 1.429210 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.440203 1.173709 -vn -0.333353 0.941613 0.047337 -vt 0.000000 0.000000 0.000000 -v 1.202111 -7.440203 1.084686 -vn -0.333353 0.941613 0.047337 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.265824 -7.481328 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.265824 -7.481328 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v 1.235833 -7.482034 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v 1.235833 -7.482034 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.266530 -7.511320 1.084686 -vn 0.999877 0.015683 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.266530 -7.511320 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v 1.265824 -7.481328 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v 1.265824 -7.481328 1.084686 -vn 0.999877 0.015683 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.236539 -7.512026 1.084686 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -v 1.236539 -7.512026 0.568535 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v 1.266530 -7.511320 0.568535 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v 1.266530 -7.511320 1.084686 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.235833 -7.482034 1.084686 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -v 1.235833 -7.482034 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v 1.236539 -7.512026 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v 1.236539 -7.512026 1.084686 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.265824 -7.481328 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v 1.273919 -7.481328 0.511512 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v 1.243928 -7.482034 0.505522 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v 1.235833 -7.482034 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.266530 -7.511320 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v 1.274625 -7.511320 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v 1.273919 -7.481328 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v 1.265824 -7.481328 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.236539 -7.512026 0.568535 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v 1.244634 -7.512026 0.505522 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v 1.274625 -7.511320 0.511512 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v 1.266530 -7.511320 0.568535 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.235833 -7.482034 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v 1.243928 -7.482034 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v 1.244634 -7.512026 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v 1.236539 -7.512026 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.273919 -7.481328 0.511512 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v 1.341008 -7.476996 0.369762 -vn -0.027061 0.999476 0.017734 -vt 0.000000 0.000000 0.000000 -v 1.311017 -7.477702 0.363771 -vn -0.027061 0.999476 0.017734 -vt 0.000000 0.000000 0.000000 -v 1.243928 -7.482034 0.505522 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.274625 -7.511320 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v 1.341714 -7.506988 0.369762 -vn 0.903421 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v 1.341008 -7.476996 0.369762 -vn 0.903421 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v 1.273919 -7.481328 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.244634 -7.512026 0.505522 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v 1.311723 -7.507693 0.363771 -vn 0.027062 -0.999476 -0.017740 -vt 0.000000 0.000000 0.000000 -v 1.341714 -7.506988 0.369762 -vn 0.027062 -0.999476 -0.017740 -vt 0.000000 0.000000 0.000000 -v 1.274625 -7.511320 0.511512 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.243928 -7.482034 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v 1.311017 -7.477702 0.363771 -vn -0.903421 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v 1.311723 -7.507693 0.363771 -vn -0.903421 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v 1.244634 -7.512026 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.295109 -2.701201 1.496231 -vn 0.079947 0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 1.295109 -2.701201 1.461424 -vn 0.079947 0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.688242 1.366481 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.295109 -2.701201 1.496231 -vn 0.079947 0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.688242 1.366481 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -v 1.202110 -2.701201 1.429210 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.223110 -2.774641 1.173709 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.753041 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v 1.202110 -2.740082 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.223110 -2.774641 1.173709 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -v 1.202110 -2.740082 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v 1.202110 -2.774641 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.295109 -2.740082 1.496231 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 1.202110 -2.740082 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.753041 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.295109 -2.740082 1.461424 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 1.295109 -2.740082 1.496231 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.753041 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.202110 -2.701201 1.429210 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.688242 1.366481 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.666641 1.173709 -vn -0.178162 0.982760 0.049406 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.202110 -2.701201 1.429210 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.666641 1.173709 -vn -0.178162 0.982760 0.049406 -vt 0.000000 0.000000 0.000000 -v 1.202110 -2.666641 1.084686 -vn -0.178162 0.982760 0.049406 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.265823 -2.707767 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.265823 -2.707767 0.568535 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v 1.235832 -2.708473 0.568535 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v 1.235832 -2.708473 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.266529 -2.737758 1.084686 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.266529 -2.737758 0.568535 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v 1.265823 -2.707767 0.568535 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v 1.265823 -2.707767 1.084686 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.236538 -2.738464 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -v 1.236538 -2.738464 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v 1.266529 -2.737758 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v 1.266529 -2.737758 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.235832 -2.708473 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -v 1.235832 -2.708473 0.568535 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v 1.236538 -2.738464 0.568535 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v 1.236538 -2.738464 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.265823 -2.707767 0.568535 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v 1.273918 -2.707767 0.511512 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v 1.243927 -2.708473 0.505522 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v 1.235832 -2.708473 0.568535 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.266529 -2.737758 0.568535 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v 1.274624 -2.737758 0.511512 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v 1.273918 -2.707767 0.511512 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v 1.265823 -2.707767 0.568535 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.236538 -2.738464 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v 1.244633 -2.738464 0.505522 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v 1.274624 -2.737758 0.511512 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v 1.266529 -2.737758 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.235832 -2.708473 0.568535 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v 1.243927 -2.708473 0.505522 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v 1.244633 -2.738464 0.505522 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v 1.236538 -2.738464 0.568535 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.273918 -2.707767 0.511512 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v 1.341007 -2.703435 0.369762 -vn -0.027062 0.999476 0.017740 -vt 0.000000 0.000000 0.000000 -v 1.311016 -2.704140 0.363771 -vn -0.027062 0.999476 0.017740 -vt 0.000000 0.000000 0.000000 -v 1.243927 -2.708473 0.505522 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.274624 -2.737758 0.511512 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v 1.341713 -2.733427 0.369762 -vn 0.903420 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v 1.341007 -2.703435 0.369762 -vn 0.903420 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v 1.273918 -2.707767 0.511512 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.244633 -2.738464 0.505522 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v 1.311722 -2.734133 0.363771 -vn 0.027061 -0.999476 -0.017734 -vt 0.000000 0.000000 0.000000 -v 1.341713 -2.733427 0.369762 -vn 0.027061 -0.999476 -0.017734 -vt 0.000000 0.000000 0.000000 -v 1.274624 -2.737758 0.511512 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.243927 -2.708473 0.505522 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v 1.311016 -2.704140 0.363771 -vn -0.903420 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v 1.311722 -2.734133 0.363771 -vn -0.903420 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v 1.244633 -2.738464 0.505522 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.598340 -2.701203 1.496231 -vn 0.079950 0.995278 0.055048 -vt 0.000000 0.000000 0.000000 -v -4.598340 -2.701203 1.461424 -vn 0.079950 0.995278 0.055048 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.688243 1.366481 -vn -0.167706 0.979975 0.107352 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.598340 -2.701203 1.496231 -vn 0.079950 0.995278 0.055048 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.688243 1.366481 -vn -0.167706 0.979975 0.107352 -vt 0.000000 0.000000 0.000000 -v -4.691339 -2.701203 1.429210 -vn -0.167706 0.979975 0.107352 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.670339 -2.774643 1.173709 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.753043 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v -4.691339 -2.740083 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.670339 -2.774643 1.173709 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -4.691339 -2.740083 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v -4.691339 -2.774643 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.598340 -2.740083 1.496231 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -4.691339 -2.740083 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.753043 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.598340 -2.740083 1.461424 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -4.598340 -2.740083 1.496231 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.753043 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.691339 -2.701203 1.429210 -vn -0.167706 0.979975 0.107352 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.688243 1.366481 -vn -0.167706 0.979975 0.107352 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.666643 1.173709 -vn -0.178167 0.982759 0.049406 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.691339 -2.701203 1.429210 -vn -0.167706 0.979975 0.107352 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.666643 1.173709 -vn -0.178167 0.982759 0.049406 -vt 0.000000 0.000000 0.000000 -v -4.691339 -2.666643 1.084686 -vn -0.178167 0.982759 0.049406 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.627625 -2.707769 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.627625 -2.707769 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v -4.657617 -2.708474 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v -4.657617 -2.708474 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.626920 -2.737760 1.084686 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.626920 -2.737760 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v -4.627625 -2.707769 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v -4.627625 -2.707769 1.084686 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.656911 -2.738466 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -4.656911 -2.738466 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -4.626920 -2.737760 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -4.626920 -2.737760 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.657617 -2.708474 1.084686 -vn -0.999877 -0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.657617 -2.708474 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v -4.656911 -2.738466 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v -4.656911 -2.738466 1.084686 -vn -0.999877 -0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.627625 -2.707769 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v -4.619531 -2.707769 0.511512 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v -4.649522 -2.708474 0.505522 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v -4.657617 -2.708474 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.626920 -2.737760 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v -4.618825 -2.737760 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v -4.619531 -2.707769 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v -4.627625 -2.707769 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.656911 -2.738466 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -4.648816 -2.738466 0.505522 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -4.618825 -2.737760 0.511512 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -4.626920 -2.737760 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.657617 -2.708474 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v -4.649522 -2.708474 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v -4.648816 -2.738466 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v -4.656911 -2.738466 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.619531 -2.707769 0.511512 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v -4.552442 -2.703437 0.369762 -vn -0.027061 0.999476 0.017737 -vt 0.000000 0.000000 0.000000 -v -4.582433 -2.704142 0.363771 -vn -0.027061 0.999476 0.017737 -vt 0.000000 0.000000 0.000000 -v -4.649522 -2.708474 0.505522 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.618825 -2.737760 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v -4.551736 -2.733428 0.369762 -vn 0.903421 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v -4.552442 -2.703437 0.369762 -vn 0.903421 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v -4.619531 -2.707769 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.648816 -2.738466 0.505522 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -4.581727 -2.734134 0.363771 -vn 0.027061 -0.999476 -0.017737 -vt 0.000000 0.000000 0.000000 -v -4.551736 -2.733428 0.369762 -vn 0.027061 -0.999476 -0.017737 -vt 0.000000 0.000000 0.000000 -v -4.618825 -2.737760 0.511512 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.649522 -2.708474 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v -4.582433 -2.704142 0.363771 -vn -0.903421 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v -4.581727 -2.734134 0.363771 -vn -0.903421 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v -4.648816 -2.738466 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.882607 -2.701202 1.496231 -vn 0.079947 0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -1.882607 -2.701202 1.461424 -vn 0.079947 0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.688243 1.366481 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.882607 -2.701202 1.496231 -vn 0.079947 0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.688243 1.366481 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -v -1.975605 -2.701202 1.429210 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.954605 -2.774642 1.173709 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.753042 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v -1.975605 -2.740083 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.954605 -2.774642 1.173709 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -v -1.975605 -2.740083 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v -1.975605 -2.774642 1.084686 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.882607 -2.740083 1.496231 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -1.975605 -2.740083 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.753042 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.882607 -2.740083 1.461424 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -1.882607 -2.740083 1.496231 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.753042 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.975605 -2.701202 1.429210 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.688243 1.366481 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.666642 1.173709 -vn -0.333345 0.941616 0.047338 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.975605 -2.701202 1.429210 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.666642 1.173709 -vn -0.333345 0.941616 0.047338 -vt 0.000000 0.000000 0.000000 -v -1.975605 -2.666642 1.084686 -vn -0.333345 0.941616 0.047338 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.911892 -2.707768 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.911892 -2.707768 0.568535 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v -1.941883 -2.708474 0.568535 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v -1.941883 -2.708474 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.911186 -2.737759 1.084686 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.911186 -2.737759 0.568535 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v -1.911892 -2.707768 0.568535 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v -1.911892 -2.707768 1.084686 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.941177 -2.738465 1.084686 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -v -1.941177 -2.738465 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -1.911186 -2.737759 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -1.911186 -2.737759 1.084686 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.941883 -2.708474 1.084686 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -v -1.941883 -2.708474 0.568535 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v -1.941177 -2.738465 0.568535 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v -1.941177 -2.738465 1.084686 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.911892 -2.707768 0.568535 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v -1.903797 -2.707768 0.511512 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v -1.933788 -2.708474 0.505522 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v -1.941883 -2.708474 0.568535 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.911186 -2.737759 0.568535 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v -1.903092 -2.737759 0.511512 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v -1.903797 -2.707768 0.511512 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v -1.911892 -2.707768 0.568535 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.941177 -2.738465 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -1.933083 -2.738465 0.505522 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -1.903092 -2.737759 0.511512 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -1.911186 -2.737759 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.941883 -2.708474 0.568535 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v -1.933788 -2.708474 0.505522 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v -1.933083 -2.738465 0.505522 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v -1.941177 -2.738465 0.568535 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.903797 -2.707768 0.511512 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v -1.836708 -2.703436 0.369762 -vn -0.027062 0.999476 0.017740 -vt 0.000000 0.000000 0.000000 -v -1.866699 -2.704141 0.363771 -vn -0.027062 0.999476 0.017740 -vt 0.000000 0.000000 0.000000 -v -1.933788 -2.708474 0.505522 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.903092 -2.737759 0.511512 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v -1.836002 -2.733428 0.369762 -vn 0.903420 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v -1.836708 -2.703436 0.369762 -vn 0.903420 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v -1.903797 -2.707768 0.511512 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.933083 -2.738465 0.505522 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -1.865994 -2.734133 0.363771 -vn 0.027061 -0.999476 -0.017734 -vt 0.000000 0.000000 0.000000 -v -1.836002 -2.733428 0.369762 -vn 0.027061 -0.999476 -0.017734 -vt 0.000000 0.000000 0.000000 -v -1.903092 -2.737759 0.511512 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.933788 -2.708474 0.505522 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v -1.866699 -2.704141 0.363771 -vn -0.903420 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v -1.865994 -2.734133 0.363771 -vn -0.903420 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v -1.933083 -2.738465 0.505522 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.882605 -7.446158 1.496231 -vn 0.079953 0.995277 0.055050 -vt 0.000000 0.000000 0.000000 -v -1.882605 -7.446158 1.461424 -vn 0.079953 0.995277 0.055050 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.433198 1.366481 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.882605 -7.446158 1.496231 -vn 0.079953 0.995277 0.055050 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.433198 1.366481 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -v -1.975604 -7.446158 1.429210 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.954604 -7.519598 1.173709 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.497998 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v -1.975604 -7.485039 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.954604 -7.519598 1.173709 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -1.975604 -7.485039 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v -1.975604 -7.519598 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.882605 -7.485039 1.496231 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -1.975604 -7.485039 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.497998 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.882605 -7.485039 1.461424 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -1.882605 -7.485039 1.496231 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.497998 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.975604 -7.446158 1.429210 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.433198 1.366481 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.411598 1.173709 -vn -0.068120 0.997311 0.027022 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.975604 -7.446158 1.429210 -vn -0.167715 0.979973 0.107353 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.411598 1.173709 -vn -0.694790 0.715621 0.071786 -vt 0.000000 0.000000 0.000000 -v -1.975604 -7.411598 1.084686 -vn -0.694790 0.715621 0.071786 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.911891 -7.452724 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.911891 -7.452724 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v -1.941882 -7.453429 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v -1.941882 -7.453429 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.911185 -7.482716 1.084686 -vn 0.999877 0.015683 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.911185 -7.482716 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v -1.911891 -7.452724 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v -1.911891 -7.452724 1.084686 -vn 0.999877 0.015683 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.941176 -7.483421 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -1.941176 -7.483421 0.568535 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v -1.911185 -7.482716 0.568535 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v -1.911185 -7.482716 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.941882 -7.453429 1.084686 -vn -0.999877 -0.015683 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.941882 -7.453429 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v -1.941176 -7.483421 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v -1.941176 -7.483421 1.084686 -vn -0.999877 -0.015683 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.911891 -7.452724 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v -1.903796 -7.452724 0.511512 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v -1.933787 -7.453429 0.505522 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v -1.941882 -7.453429 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.911185 -7.482716 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v -1.903090 -7.482716 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v -1.903796 -7.452724 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v -1.911891 -7.452724 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.941176 -7.483421 0.568535 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v -1.933082 -7.483421 0.505522 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v -1.903090 -7.482716 0.511512 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v -1.911185 -7.482716 0.568535 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.941882 -7.453429 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v -1.933787 -7.453429 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v -1.933082 -7.483421 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v -1.941176 -7.483421 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.903796 -7.452724 0.511512 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v -1.836707 -7.448392 0.369762 -vn -0.027061 0.999476 0.017734 -vt 0.000000 0.000000 0.000000 -v -1.866698 -7.449098 0.363771 -vn -0.027061 0.999476 0.017734 -vt 0.000000 0.000000 0.000000 -v -1.933787 -7.453429 0.505522 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.903090 -7.482716 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v -1.836001 -7.478383 0.369762 -vn 0.903421 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v -1.836707 -7.448392 0.369762 -vn 0.903421 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v -1.903796 -7.452724 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.933082 -7.483421 0.505522 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -v -1.865992 -7.479089 0.363771 -vn 0.027062 -0.999476 -0.017740 -vt 0.000000 0.000000 0.000000 -v -1.836001 -7.478383 0.369762 -vn 0.027062 -0.999476 -0.017740 -vt 0.000000 0.000000 0.000000 -v -1.903090 -7.482716 0.511512 -vn 0.024410 -0.999698 -0.002924 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.933787 -7.453429 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v -1.866698 -7.449098 0.363771 -vn -0.903421 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v -1.865992 -7.479089 0.363771 -vn -0.903421 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v -1.933082 -7.483421 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.598339 -7.418833 1.496231 -vn 0.079947 0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -4.598339 -7.418833 1.461424 -vn 0.079947 0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.405873 1.366481 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.598339 -7.418833 1.496231 -vn 0.079947 0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.405873 1.366481 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -v -4.691337 -7.418833 1.429210 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.670337 -7.492272 1.173709 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.470673 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v -4.691337 -7.457713 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.670337 -7.492272 1.173709 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -4.691337 -7.457713 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v -4.691337 -7.492272 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.598339 -7.457713 1.496231 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -4.691337 -7.457713 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.470673 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.598339 -7.457713 1.461424 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -4.598339 -7.457713 1.496231 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.470673 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.691337 -7.418833 1.429210 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.405873 1.366481 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.384273 1.173709 -vn -0.333345 0.941616 0.047338 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.691337 -7.418833 1.429210 -vn -0.167696 0.979976 0.107351 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.384273 1.173709 -vn -0.333345 0.941616 0.047338 -vt 0.000000 0.000000 0.000000 -v -4.691337 -7.384273 1.084686 -vn -0.333345 0.941616 0.047338 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.627624 -7.425399 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.627624 -7.425399 0.568535 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v -4.657615 -7.426105 0.568535 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v -4.657615 -7.426105 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.626918 -7.455390 1.084686 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.626918 -7.455390 0.568535 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v -4.627624 -7.425399 0.568535 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v -4.627624 -7.425399 1.084686 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.656909 -7.456096 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -4.656909 -7.456096 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -4.626918 -7.455390 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -4.626918 -7.455390 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.657615 -7.426105 1.084686 -vn -0.999877 -0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.657615 -7.426105 0.568535 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v -4.656909 -7.456096 0.568535 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v -4.656909 -7.456096 1.084686 -vn -0.999877 -0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.627624 -7.425399 0.568535 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v -4.619529 -7.425399 0.511512 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v -4.649520 -7.426105 0.505522 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v -4.657615 -7.426105 0.568535 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.626918 -7.455390 0.568535 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v -4.618824 -7.455390 0.511512 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v -4.619529 -7.425399 0.511512 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v -4.627624 -7.425399 0.568535 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.656909 -7.456096 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -4.648815 -7.456096 0.505522 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -4.618824 -7.455390 0.511512 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -4.626918 -7.455390 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.657615 -7.426105 0.568535 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v -4.649520 -7.426105 0.505522 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v -4.648815 -7.456096 0.505522 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v -4.656909 -7.456096 0.568535 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.619529 -7.425399 0.511512 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -v -4.552440 -7.421066 0.369762 -vn -0.027062 0.999476 0.017740 -vt 0.000000 0.000000 0.000000 -v -4.582431 -7.421772 0.363771 -vn -0.027062 0.999476 0.017740 -vt 0.000000 0.000000 0.000000 -v -4.649520 -7.426105 0.505522 -vn -0.024410 0.999698 0.002924 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.618824 -7.455390 0.511512 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -v -4.551734 -7.451058 0.369762 -vn 0.903420 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v -4.552440 -7.421066 0.369762 -vn 0.903420 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v -4.619529 -7.425399 0.511512 -vn 0.983459 0.023142 0.179645 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.648815 -7.456096 0.505522 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v -4.581726 -7.451764 0.363771 -vn 0.027061 -0.999476 -0.017734 -vt 0.000000 0.000000 0.000000 -v -4.551734 -7.451058 0.369762 -vn 0.027061 -0.999476 -0.017734 -vt 0.000000 0.000000 0.000000 -v -4.618824 -7.455390 0.511512 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.649520 -7.426105 0.505522 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -v -4.582431 -7.421772 0.363771 -vn -0.903420 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v -4.581726 -7.451764 0.363771 -vn -0.903420 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v -4.648815 -7.456096 0.505522 -vn -0.984642 -0.023170 -0.173044 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.973448 -2.701201 1.496231 -vn 0.079950 0.995278 0.055048 -vt 0.000000 0.000000 0.000000 -v 3.973448 -2.701201 1.461424 -vn 0.079950 0.995278 0.055048 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.688241 1.366481 -vn -0.167706 0.979975 0.107352 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.973448 -2.701201 1.496231 -vn 0.079950 0.995278 0.055048 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.688241 1.366481 -vn -0.167706 0.979975 0.107352 -vt 0.000000 0.000000 0.000000 -v 3.880449 -2.701201 1.429210 -vn -0.167706 0.979975 0.107352 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.901449 -2.774640 1.173709 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.753041 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v 3.880449 -2.740081 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.901449 -2.774640 1.173709 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -v 3.880449 -2.740081 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v 3.880449 -2.774640 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.973448 -2.740081 1.496231 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 3.880449 -2.740081 1.429210 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.753041 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.973448 -2.740081 1.461424 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 3.973448 -2.740081 1.496231 -vn 0.079947 -0.995278 0.055046 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.753041 1.366481 -vn -0.167699 -0.979976 0.107349 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.880449 -2.701201 1.429210 -vn -0.167706 0.979975 0.107352 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.688241 1.366481 -vn -0.167706 0.979975 0.107352 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.666641 1.173709 -vn -0.068113 0.997312 0.027022 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.880449 -2.701201 1.429210 -vn -0.167706 0.979975 0.107352 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.666641 1.173709 -vn -0.694790 0.715621 0.071786 -vt 0.000000 0.000000 0.000000 -v 3.880449 -2.666641 1.084686 -vn -0.694790 0.715621 0.071786 -vt 0.000000 0.000000 0.000000 -f -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.944162 -2.707766 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -v 3.944162 -2.707766 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v 3.914171 -2.708472 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v 3.914171 -2.708472 1.084686 -vn -0.023524 0.999723 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.944868 -2.737758 1.084686 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -v 3.944868 -2.737758 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v 3.944162 -2.707766 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v 3.944162 -2.707766 1.084686 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.914877 -2.738464 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -v 3.914877 -2.738464 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v 3.944868 -2.737758 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v 3.944868 -2.737758 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.914171 -2.708472 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -v 3.914171 -2.708472 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v 3.914877 -2.738464 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v 3.914877 -2.738464 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.944162 -2.707766 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v 3.952257 -2.707766 0.511512 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v 3.922266 -2.708472 0.505522 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v 3.914171 -2.708472 0.568535 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.944868 -2.737758 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v 3.952963 -2.737758 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v 3.952257 -2.707766 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v 3.944162 -2.707766 0.568535 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.914877 -2.738464 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v 3.922972 -2.738464 0.505522 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v 3.952963 -2.737758 0.511512 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v 3.944868 -2.737758 0.568535 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.914171 -2.708472 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v 3.922266 -2.708472 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v 3.922972 -2.738464 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v 3.914877 -2.738464 0.568535 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.952257 -2.707766 0.511512 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -v 4.019346 -2.703434 0.369762 -vn -0.027061 0.999476 0.017737 -vt 0.000000 0.000000 0.000000 -v 3.989355 -2.704140 0.363771 -vn -0.027061 0.999476 0.017737 -vt 0.000000 0.000000 0.000000 -v 3.922266 -2.708472 0.505522 -vn -0.024409 0.999698 0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.952963 -2.737758 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -v 4.020052 -2.733426 0.369762 -vn 0.903421 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v 4.019346 -2.703434 0.369762 -vn 0.903421 0.021258 0.428228 -vt 0.000000 0.000000 0.000000 -v 3.952257 -2.707766 0.511512 -vn 0.983459 0.023141 0.179645 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.922972 -2.738464 0.505522 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -v 3.990061 -2.734132 0.363771 -vn 0.027061 -0.999476 -0.017737 -vt 0.000000 0.000000 0.000000 -v 4.020052 -2.733426 0.369762 -vn 0.027061 -0.999476 -0.017737 -vt 0.000000 0.000000 0.000000 -v 3.952963 -2.737758 0.511512 -vn 0.024409 -0.999698 -0.002923 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.922266 -2.708472 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -v 3.989355 -2.704140 0.363771 -vn -0.903421 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v 3.990061 -2.734132 0.363771 -vn -0.903421 -0.021258 -0.428228 -vt 0.000000 0.000000 0.000000 -v 3.922972 -2.738464 0.505522 -vn -0.984642 -0.023169 -0.173044 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.880126 -7.474762 1.429210 -vn -0.890127 0.000000 0.455713 -vt 0.000000 0.000000 0.000000 -v 3.880126 -7.513642 1.429210 -vn -0.890127 0.000000 0.455713 -vt 0.000000 0.000000 0.000000 -v 3.973126 -7.513642 1.496231 -vn -0.584651 0.000000 0.811285 -vt 0.000000 0.000000 0.000000 -v 3.973126 -7.474762 1.496231 -vn -0.584651 0.000000 0.811285 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.880126 -7.548202 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 3.880126 -7.440202 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 3.973126 -7.440202 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 3.973126 -7.548202 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.880126 -7.548202 1.084686 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -v 3.880126 -7.513642 1.429210 -vn -0.890127 0.000000 0.455713 -vt 0.000000 0.000000 0.000000 -v 3.880126 -7.474762 1.429210 -vn -0.890127 0.000000 0.455713 -vt 0.000000 0.000000 0.000000 -v 3.880126 -7.440202 1.084686 -vn -0.333353 0.941613 0.047337 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.901126 -7.548202 1.173709 -vn 0.999877 0.015683 0.000000 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.440202 1.173709 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.461802 1.366481 -vn 0.947838 0.000000 -0.318753 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.526602 1.366481 -vn 0.947838 0.000000 -0.318753 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.901126 -7.440202 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.548202 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 3.973126 -7.548202 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 3.973126 -7.440202 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.901126 -7.526602 1.366481 -vn 0.947838 0.000000 -0.318753 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.461802 1.366481 -vn 0.947838 0.000000 -0.318753 -vt 0.000000 0.000000 0.000000 -v 3.973126 -7.474762 1.461424 -vn 0.796793 0.000000 -0.604252 -vt 0.000000 0.000000 0.000000 -v 3.973126 -7.513642 1.461424 -vn 0.796793 0.000000 -0.604252 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.973126 -7.548202 1.084686 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -v 3.973126 -7.548202 1.173709 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.548202 1.173709 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -v 3.880126 -7.548202 1.084686 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.973126 -7.440202 1.173709 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 3.973126 -7.440202 1.084686 -vn -0.333353 0.941613 0.047337 -vt 0.000000 0.000000 0.000000 -v 3.880126 -7.440202 1.084686 -vn -0.333353 0.941613 0.047337 -vt 0.000000 0.000000 0.000000 -v 3.901126 -7.440202 1.173709 -vn -0.333353 0.941613 0.047337 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.202111 -7.474763 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v 1.202111 -7.513643 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v 1.295110 -7.513643 1.496231 -vn -0.584659 0.000000 0.811279 -vt 0.000000 0.000000 0.000000 -v 1.295110 -7.474763 1.496231 -vn -0.584659 0.000000 0.811279 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.202111 -7.548203 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.202111 -7.440203 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.295110 -7.440203 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.295110 -7.548203 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.202111 -7.548203 1.084686 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -v 1.202111 -7.513643 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v 1.202111 -7.474763 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v 1.202111 -7.440203 1.084686 -vn -0.333353 0.941613 0.047337 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.223111 -7.548203 1.173709 -vn 0.999877 0.015683 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.440203 1.173709 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.461802 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.526603 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.223111 -7.440203 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.548203 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.295110 -7.548203 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.295110 -7.440203 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.223111 -7.526603 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.461802 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v 1.295110 -7.474763 1.461424 -vn 0.796801 0.000000 -0.604242 -vt 0.000000 0.000000 0.000000 -v 1.295110 -7.513643 1.461424 -vn 0.796801 0.000000 -0.604242 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.295110 -7.548203 1.084686 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -v 1.295110 -7.548203 1.173709 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.548203 1.173709 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -v 1.202111 -7.548203 1.084686 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.295110 -7.440203 1.173709 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.295110 -7.440203 1.084686 -vn -0.333353 0.941613 0.047337 -vt 0.000000 0.000000 0.000000 -v 1.202111 -7.440203 1.084686 -vn -0.333353 0.941613 0.047337 -vt 0.000000 0.000000 0.000000 -v 1.223111 -7.440203 1.173709 -vn -0.333353 0.941613 0.047337 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.202110 -2.701201 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v 1.202110 -2.740082 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v 1.295109 -2.740082 1.496231 -vn -0.584659 0.000000 0.811279 -vt 0.000000 0.000000 0.000000 -v 1.295109 -2.701201 1.496231 -vn -0.584659 0.000000 0.811279 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.202110 -2.774641 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.202110 -2.666641 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.295109 -2.666641 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.295109 -2.774641 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.202110 -2.774641 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -v 1.202110 -2.740082 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v 1.202110 -2.701201 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v 1.202110 -2.666641 1.084686 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.223110 -2.774641 1.173709 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.666641 1.173709 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.688242 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.753041 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.223110 -2.666641 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.774641 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.295109 -2.774641 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.295109 -2.666641 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.223110 -2.753041 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.688242 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v 1.295109 -2.701201 1.461424 -vn 0.796801 0.000000 -0.604242 -vt 0.000000 0.000000 0.000000 -v 1.295109 -2.740082 1.461424 -vn 0.796801 0.000000 -0.604242 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.295109 -2.774641 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -v 1.295109 -2.774641 1.173709 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.774641 1.173709 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -v 1.202110 -2.774641 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.295109 -2.666641 1.173709 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.295109 -2.666641 1.084686 -vn -0.178162 0.982760 0.049406 -vt 0.000000 0.000000 0.000000 -v 1.202110 -2.666641 1.084686 -vn -0.178162 0.982760 0.049406 -vt 0.000000 0.000000 0.000000 -v 1.223110 -2.666641 1.173709 -vn -0.178162 0.982760 0.049406 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.691339 -2.701203 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -4.691339 -2.740083 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -4.598340 -2.740083 1.496231 -vn -0.584659 0.000000 0.811279 -vt 0.000000 0.000000 0.000000 -v -4.598340 -2.701203 1.496231 -vn -0.584659 0.000000 0.811279 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.691339 -2.774643 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.691339 -2.666643 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.598340 -2.666643 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.598340 -2.774643 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.691339 -2.774643 1.084686 -vn -0.999877 -0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.691339 -2.740083 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -4.691339 -2.701203 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -4.691339 -2.666643 1.084686 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.670339 -2.774643 1.173709 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.666643 1.173709 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.688243 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.753043 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.670339 -2.666643 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.774643 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.598340 -2.774643 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.598340 -2.666643 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.670339 -2.753043 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.688243 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v -4.598340 -2.701203 1.461424 -vn 0.796801 0.000000 -0.604242 -vt 0.000000 0.000000 0.000000 -v -4.598340 -2.740083 1.461424 -vn 0.796801 0.000000 -0.604242 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.598340 -2.774643 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -4.598340 -2.774643 1.173709 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.774643 1.173709 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -4.691339 -2.774643 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.598340 -2.666643 1.173709 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.598340 -2.666643 1.084686 -vn -0.178167 0.982759 0.049406 -vt 0.000000 0.000000 0.000000 -v -4.691339 -2.666643 1.084686 -vn -0.178167 0.982759 0.049406 -vt 0.000000 0.000000 0.000000 -v -4.670339 -2.666643 1.173709 -vn -0.178167 0.982759 0.049406 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.975605 -2.701202 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -1.975605 -2.740083 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -1.882607 -2.740083 1.496231 -vn -0.584659 0.000000 0.811279 -vt 0.000000 0.000000 0.000000 -v -1.882607 -2.701202 1.496231 -vn -0.584659 0.000000 0.811279 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.975605 -2.774642 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.975605 -2.666642 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.882607 -2.666642 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.882607 -2.774642 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.975605 -2.774642 1.084686 -vn -0.894490 -0.444965 0.043517 -vt 0.000000 0.000000 0.000000 -v -1.975605 -2.740083 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -1.975605 -2.701202 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -1.975605 -2.666642 1.084686 -vn -0.333345 0.941616 0.047338 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.954605 -2.774642 1.173709 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.666642 1.173709 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.688243 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.753042 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.954605 -2.666642 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.774642 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.882607 -2.774642 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.882607 -2.666642 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.954605 -2.753042 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.688243 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v -1.882607 -2.701202 1.461424 -vn 0.796801 0.000000 -0.604242 -vt 0.000000 0.000000 0.000000 -v -1.882607 -2.740083 1.461424 -vn 0.796801 0.000000 -0.604242 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.882607 -2.774642 1.084686 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -v -1.882607 -2.774642 1.173709 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.774642 1.173709 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -v -1.975605 -2.774642 1.084686 -vn -0.037437 -0.999137 0.017984 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.882607 -2.666642 1.173709 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.882607 -2.666642 1.084686 -vn -0.333345 0.941616 0.047338 -vt 0.000000 0.000000 0.000000 -v -1.975605 -2.666642 1.084686 -vn -0.333345 0.941616 0.047338 -vt 0.000000 0.000000 0.000000 -v -1.954605 -2.666642 1.173709 -vn -0.333345 0.941616 0.047338 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.975604 -7.446158 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -1.975604 -7.485039 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -1.882605 -7.485039 1.496231 -vn -0.584659 0.000000 0.811279 -vt 0.000000 0.000000 0.000000 -v -1.882605 -7.446158 1.496231 -vn -0.584659 0.000000 0.811279 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.975604 -7.519598 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.975604 -7.411598 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.882605 -7.411598 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.882605 -7.519598 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.975604 -7.519598 1.084686 -vn -0.999877 -0.015683 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.975604 -7.485039 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -1.975604 -7.446158 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -1.975604 -7.411598 1.084686 -vn -0.694790 0.715621 0.071786 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.954604 -7.519598 1.173709 -vn 0.999877 0.015683 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.411598 1.173709 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.433198 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.497998 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.954604 -7.411598 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.519598 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.882605 -7.519598 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.882605 -7.411598 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.954604 -7.497998 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.433198 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v -1.882605 -7.446158 1.461424 -vn 0.796801 0.000000 -0.604242 -vt 0.000000 0.000000 0.000000 -v -1.882605 -7.485039 1.461424 -vn 0.796801 0.000000 -0.604242 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.882605 -7.519598 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -1.882605 -7.519598 1.173709 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.519598 1.173709 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -1.975604 -7.519598 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.882605 -7.411598 1.173709 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.882605 -7.411598 1.084686 -vn -0.068120 0.997311 0.027022 -vt 0.000000 0.000000 0.000000 -v -1.975604 -7.411598 1.084686 -vn -0.068120 0.997311 0.027022 -vt 0.000000 0.000000 0.000000 -v -1.954604 -7.411598 1.173709 -vn -0.068120 0.997311 0.027022 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.691337 -7.418833 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -4.691337 -7.457713 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -4.598339 -7.457713 1.496231 -vn -0.584659 0.000000 0.811279 -vt 0.000000 0.000000 0.000000 -v -4.598339 -7.418833 1.496231 -vn -0.584659 0.000000 0.811279 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.691337 -7.492272 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.691337 -7.384273 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.598339 -7.384273 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.598339 -7.492272 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.691337 -7.492272 1.084686 -vn -0.999877 -0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.691337 -7.457713 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -4.691337 -7.418833 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v -4.691337 -7.384273 1.084686 -vn -0.333345 0.941616 0.047338 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.670337 -7.492272 1.173709 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.384273 1.173709 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.405873 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.470673 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.670337 -7.384273 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.492272 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.598339 -7.492272 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.598339 -7.384273 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.670337 -7.470673 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.405873 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v -4.598339 -7.418833 1.461424 -vn 0.796801 0.000000 -0.604242 -vt 0.000000 0.000000 0.000000 -v -4.598339 -7.457713 1.461424 -vn 0.796801 0.000000 -0.604242 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.598339 -7.492272 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -4.598339 -7.492272 1.173709 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.492272 1.173709 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -v -4.691337 -7.492272 1.084686 -vn -0.127569 -0.991138 0.037036 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.598339 -7.384273 1.173709 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.598339 -7.384273 1.084686 -vn -0.333345 0.941616 0.047338 -vt 0.000000 0.000000 0.000000 -v -4.691337 -7.384273 1.084686 -vn -0.333345 0.941616 0.047338 -vt 0.000000 0.000000 0.000000 -v -4.670337 -7.384273 1.173709 -vn -0.333345 0.941616 0.047338 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.880449 -2.701201 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v 3.880449 -2.740081 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v 3.973448 -2.740081 1.496231 -vn -0.584659 0.000000 0.811279 -vt 0.000000 0.000000 0.000000 -v 3.973448 -2.701201 1.496231 -vn -0.584659 0.000000 0.811279 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.880449 -2.774640 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 3.880449 -2.666641 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 3.973448 -2.666641 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 3.973448 -2.774640 1.084686 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.880449 -2.774640 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -v 3.880449 -2.740081 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v 3.880449 -2.701201 1.429210 -vn -0.890129 0.000000 0.455709 -vt 0.000000 0.000000 0.000000 -v 3.880449 -2.666641 1.084686 -vn -0.694790 0.715621 0.071786 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.901449 -2.774640 1.173709 -vn 0.999877 0.015684 0.000000 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.666641 1.173709 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.688241 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.753041 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.901449 -2.666641 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.774640 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 3.973448 -2.774640 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 3.973448 -2.666641 1.173709 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.901449 -2.753041 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.688241 1.366481 -vn 0.947840 0.000000 -0.318747 -vt 0.000000 0.000000 0.000000 -v 3.973448 -2.701201 1.461424 -vn 0.796801 0.000000 -0.604242 -vt 0.000000 0.000000 0.000000 -v 3.973448 -2.740081 1.461424 -vn 0.796801 0.000000 -0.604242 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.973448 -2.774640 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -v 3.973448 -2.774640 1.173709 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.774640 1.173709 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -v 3.880449 -2.774640 1.084686 -vn -0.454582 -0.890091 0.033060 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 3.973448 -2.666641 1.173709 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 3.973448 -2.666641 1.084686 -vn -0.068113 0.997312 0.027022 -vt 0.000000 0.000000 0.000000 -v 3.880449 -2.666641 1.084686 -vn -0.068113 0.997312 0.027022 -vt 0.000000 0.000000 0.000000 -v 3.901449 -2.666641 1.173709 -vn -0.068113 0.997312 0.027022 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -g numbers -v -4.305910 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.305910 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.253191 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.200476 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.147757 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.095037 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.042318 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.989603 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.936884 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.884165 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.884165 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.902357 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.902357 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.955076 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.007792 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.060511 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.113230 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.165949 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.218664 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.271383 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.324102 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.324102 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.134579 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.134579 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.187298 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.240017 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.292733 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.345452 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.398171 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.450890 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.503605 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.556324 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.556324 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.573956 -2.379366 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.573956 -2.309156 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.521237 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.468518 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.415802 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.363083 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.310364 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.257645 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.204930 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.152211 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.152211 -2.379366 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.134579 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.134579 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.556324 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.556324 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.503605 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.450890 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.398171 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.345452 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.292733 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.240017 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.187298 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.152211 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.152211 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.204930 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.257645 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.310364 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.363083 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.415802 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.468518 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.521237 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.573956 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.573956 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.305910 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.884165 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.884165 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.936884 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.989603 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.042318 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.095037 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.147757 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.200476 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.253191 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.305910 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.324102 -2.379366 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.324102 -2.309156 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.271383 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.218664 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.165949 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.113230 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.060511 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.007792 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.955076 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.902357 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.902357 -2.379366 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.819042 -7.151839 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.819042 -7.081628 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.819042 -7.081628 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.819042 -7.151839 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.385071 -7.151839 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.385071 -7.081628 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.385071 -7.081628 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.385071 -7.151839 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.385071 -7.151839 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.385071 -7.081628 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.819042 -7.081628 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.819042 -7.151839 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.819042 -7.151839 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.819042 -7.081628 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.385071 -7.081628 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.385071 -7.151839 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v -4.385071 -7.081628 1.402008 -vn 0.000000 1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v -3.819042 -7.081628 1.402008 -vn 0.000000 1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v -3.819042 -7.081628 1.340892 -vn 0.000000 1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v -4.385071 -7.081628 1.340893 -vn 0.000000 1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.161522 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v -4.108803 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v -4.108803 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v -4.161522 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.950649 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v -3.897930 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v -3.897930 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v -3.950649 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v -3.897930 -7.151839 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.897930 -7.081628 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.897930 -7.081628 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.897930 -7.151839 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.319675 -7.151839 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.319675 -7.081628 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.319675 -7.081628 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.319675 -7.151839 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.072653 -7.151839 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.072653 -7.081628 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.072653 -7.081628 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.072653 -7.151839 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.638682 -7.151839 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.638682 -7.081628 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.638682 -7.081628 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.638682 -7.151839 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.638682 -7.151839 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.638682 -7.081628 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.072653 -7.081628 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.072653 -7.151839 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.072653 -7.151839 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.072653 -7.081628 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.638682 -7.081628 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.638682 -7.151839 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v -1.638682 -7.081628 1.402008 -vn 0.000000 1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v -1.072653 -7.081628 1.402008 -vn 0.000000 1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v -1.072653 -7.081628 1.340892 -vn 0.000000 1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v -1.638682 -7.081628 1.340893 -vn 0.000000 1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.415133 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v -1.362414 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v -1.362414 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v -1.415133 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.204260 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v -1.151541 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v -1.151541 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v -1.204260 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v -1.151541 -7.151839 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.151541 -7.081628 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.151541 -7.081628 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.151541 -7.151839 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.573287 -7.151839 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.573287 -7.081628 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.573287 -7.081628 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.573287 -7.151839 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.083590 -7.151839 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.083590 -7.081628 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.083590 -7.081628 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.083590 -7.151839 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.517561 -7.151839 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.517561 -7.081628 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.517561 -7.081628 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.517561 -7.151839 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.517561 -7.151839 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.517561 -7.081628 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.083590 -7.081628 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.083590 -7.151839 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.083590 -7.151839 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.083590 -7.081628 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.517561 -7.081628 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.517561 -7.151839 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v 1.517561 -7.081628 1.402008 -vn 0.000000 1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v 2.083590 -7.081628 1.402008 -vn 0.000000 1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v 2.083590 -7.081628 1.340892 -vn 0.000000 1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v 1.517561 -7.081628 1.340893 -vn 0.000000 1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v 1.582957 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.635676 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.635676 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.582957 -7.081628 1.201047 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v 1.635676 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.983775 0.341888 0.000000 -v 1.688395 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.881347 0.342665 0.000000 -v 1.688395 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.881011 0.023548 0.000000 -v 1.635676 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.983439 0.022771 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.688395 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.493340 0.383044 0.000000 -v 1.741110 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.352631 0.375438 0.000000 -v 1.741110 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.346754 0.022725 0.000000 -v 1.688395 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.487463 0.030331 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.741110 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v 1.793829 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v 1.793829 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v 1.741110 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.793829 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.682921 0.350577 0.000000 -v 1.846548 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.564458 0.350577 0.000000 -v 1.846548 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.564457 0.024422 0.000000 -v 1.793829 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.682920 0.024422 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.951983 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v 2.004702 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v 2.004702 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v 1.951983 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v 2.004702 -7.151839 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.004702 -7.081628 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.004702 -7.081628 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.004702 -7.151839 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.582957 -7.151839 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.582957 -7.081628 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.582957 -7.081628 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.582957 -7.151839 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.749442 -7.151839 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.749442 -7.081628 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.749442 -7.081628 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.749442 -7.151839 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.183414 -7.151839 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.183414 -7.081628 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.183414 -7.081628 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.183414 -7.151839 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.183414 -7.151839 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.183414 -7.081628 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.749442 -7.081628 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.749442 -7.151839 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.749442 -7.151839 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.749442 -7.081628 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.183414 -7.081628 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.183414 -7.151839 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v 4.183414 -7.081628 1.402008 -vn 0.000000 1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v 4.749442 -7.081628 1.402008 -vn 0.000000 1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v 4.749442 -7.081628 1.340892 -vn 0.000000 1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v 4.183414 -7.081628 1.340893 -vn 0.000000 1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.406962 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v 4.459682 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v 4.459682 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v 4.406962 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.617835 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v 4.670554 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v 4.670554 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v 4.617835 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v 4.670554 -7.151839 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -7.081628 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -7.081628 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -7.151839 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.248809 -7.151839 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -7.081628 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -7.081628 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -7.151839 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.749442 -2.379366 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.749442 -2.309156 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.749442 -2.309156 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.749442 -2.379366 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.183414 -2.379366 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.183414 -2.309156 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.183414 -2.309156 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.183414 -2.379366 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.183414 -2.379366 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.183414 -2.309156 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.749442 -2.309156 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.749442 -2.379366 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.749442 -2.379366 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.749442 -2.309156 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.183414 -2.309156 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.183414 -2.379366 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v 4.183414 -2.309156 1.402008 -vn 0.000000 1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v 4.749442 -2.309156 1.402008 -vn 0.000000 1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v 4.749442 -2.309156 1.340892 -vn 0.000000 1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v 4.183414 -2.309156 1.340893 -vn 0.000000 1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.406962 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v 4.459682 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v 4.459682 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v 4.406962 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.617835 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v 4.670554 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v 4.670554 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v 4.617835 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v 4.670554 -2.379366 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -2.309156 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -2.309156 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -2.379366 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.248809 -2.379366 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -2.309156 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -2.309156 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -2.379366 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.384798 -2.983796 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.384798 -3.054006 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.384798 -3.054006 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.384798 -2.983796 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.818769 -2.983796 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.818769 -3.054006 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.818769 -3.054006 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.818769 -2.983796 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.818769 -2.983796 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.818769 -3.054006 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.384798 -3.054006 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.384798 -2.983796 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.384798 -2.983796 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.384798 -3.054006 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.818769 -3.054006 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.818769 -2.983796 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v -3.818769 -3.054006 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v -4.384798 -3.054006 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v -4.384798 -3.054006 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v -3.818769 -3.054006 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.042318 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v -4.095037 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v -4.095037 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v -4.042318 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.253191 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v -4.305910 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v -4.305910 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v -4.253191 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v -4.305910 -2.983796 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.305910 -3.054006 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.305910 -3.054006 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.305910 -2.983796 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.884165 -2.983796 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.884165 -3.054006 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.884165 -3.054006 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.884165 -2.983796 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.884165 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.884165 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.305910 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.305910 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.884165 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.884165 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.305910 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.305910 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.823469 -2.379366 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.823469 -2.309156 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.823469 -2.309156 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.823469 -2.379366 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.389498 -2.379366 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.389498 -2.309156 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.389498 -2.309156 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.389498 -2.379366 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.389498 -2.379366 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.389498 -2.309156 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.823469 -2.309156 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.823469 -2.379366 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.823469 -2.379366 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.823469 -2.309156 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.389498 -2.309156 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.389498 -2.379366 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v -4.389498 -2.309156 1.402008 -vn 0.000000 1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v -3.823469 -2.309156 1.402008 -vn 0.000000 1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v -3.823469 -2.309156 1.340892 -vn 0.000000 1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v -4.389498 -2.309156 1.340893 -vn 0.000000 1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v -4.324102 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.271383 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.271383 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.324102 -2.309156 1.201047 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v -4.271383 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.987156 0.369347 0.000000 -v -4.218664 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.866560 0.380085 0.000000 -v -4.218664 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.869835 0.013251 0.000000 -v -4.271383 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.990432 0.002513 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.218664 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.988972 0.335030 0.000000 -v -4.165949 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.890908 0.342649 0.000000 -v -4.165949 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.887622 0.037105 0.000000 -v -4.218664 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.985686 0.029486 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.165949 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v -4.113230 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v -4.113230 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v -4.165949 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.113230 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.985800 0.367593 0.000000 -v -4.060511 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.893639 0.367593 0.000000 -v -4.060511 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.891341 0.019504 0.000000 -v -4.113230 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.983503 0.019504 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.060511 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.093398 0.357371 0.000000 -v -4.007792 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt -0.041278 0.364367 0.000000 -v -4.007792 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt -0.039250 0.003454 0.000000 -v -4.060511 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.095426 -0.003543 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v -4.007792 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.955076 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.955076 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.007792 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v -3.955076 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v -3.902357 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v -3.902357 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v -3.955076 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v -3.902357 -2.379366 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.902357 -2.309156 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.902357 -2.309156 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.902357 -2.379366 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.324102 -2.379366 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.324102 -2.309156 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.324102 -2.309156 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.324102 -2.379366 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.324102 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.324102 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.902357 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.902357 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.902357 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.902357 -2.379366 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.324102 -2.379366 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.324102 -2.309156 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.073323 -2.379366 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.073323 -2.309156 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.073323 -2.309156 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.073323 -2.379366 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.639351 -2.379366 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.639351 -2.309156 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.639351 -2.309156 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.639351 -2.379366 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.639351 -2.379366 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.639351 -2.309156 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.073323 -2.309156 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.073323 -2.379366 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.073323 -2.379366 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.073323 -2.309156 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.639351 -2.309156 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.639351 -2.379366 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v -1.639351 -2.309156 1.402008 -vn 0.000000 1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v -1.073323 -2.309156 1.402008 -vn 0.000000 1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v -1.073323 -2.309156 1.340892 -vn 0.000000 1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v -1.639351 -2.309156 1.340893 -vn 0.000000 1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.415802 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v -1.363083 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v -1.363083 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v -1.415802 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.204930 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v -1.152211 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v -1.152211 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v -1.204930 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v -1.152211 -2.379366 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.152211 -2.309156 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.152211 -2.309156 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.152211 -2.379366 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.573956 -2.379366 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.573956 -2.309156 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.573956 -2.309156 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.573956 -2.379366 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.152211 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.152211 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.573956 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.573956 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.152211 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.152211 -2.379366 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.573956 -2.379366 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.573956 -2.309156 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.082560 -2.379366 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.082560 -2.309156 1.340892 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.082560 -2.309156 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.082560 -2.379366 1.402008 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.516531 -2.379366 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.516531 -2.309156 1.402008 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.516531 -2.309156 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.516531 -2.379366 1.340893 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.516531 -2.379366 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.516531 -2.309156 1.340893 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.082560 -2.309156 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.082560 -2.379366 1.340892 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.082560 -2.379366 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.082560 -2.309156 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.516531 -2.309156 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.516531 -2.379366 1.402008 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v 1.516531 -2.309156 1.402008 -vn 0.000000 1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v 2.082560 -2.309156 1.402008 -vn 0.000000 1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v 2.082560 -2.309156 1.340892 -vn 0.000000 1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v 1.516531 -2.309156 1.340893 -vn 0.000000 1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v 1.581927 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.634646 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.634646 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.581927 -2.309156 1.201047 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v 1.634646 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.895746 0.347823 0.000000 -v 1.687365 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.758008 0.348899 0.000000 -v 1.687365 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.764840 0.014207 0.000000 -v 1.634646 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.902577 0.013131 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.687365 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.789569 0.359760 0.000000 -v 1.740080 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.671191 0.359760 0.000000 -v 1.740080 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.671192 0.034609 0.000000 -v 1.687365 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.789570 0.034609 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.740080 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v 1.792799 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v 1.792799 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v 1.740080 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.792799 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.277624 0.364670 0.000000 -v 1.845518 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.161278 0.363998 0.000000 -v 1.845518 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.161277 0.030931 0.000000 -v 1.792799 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.277623 0.031604 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.845518 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.090554 0.358346 0.000000 -v 1.898238 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt -0.012469 0.357616 0.000000 -v 1.898238 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt -0.012469 0.011003 0.000000 -v 1.845518 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.090555 0.011734 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v 1.898238 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.950953 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.950953 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.898238 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v 1.950953 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v 2.003672 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v 2.003672 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v 1.950953 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v 2.003672 -2.379366 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.003672 -2.309156 1.201046 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.003672 -2.309156 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.003672 -2.379366 1.262162 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.581927 -2.379366 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.581927 -2.309156 1.262162 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.581927 -2.309156 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.581927 -2.379366 1.201047 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.174451 -7.738350 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.174451 -7.808561 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.174451 -7.808561 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.174451 -7.738350 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.740479 -7.738350 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.740479 -7.808561 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.740479 -7.808561 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.740479 -7.738350 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.740479 -7.738350 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.740479 -7.808561 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.174451 -7.808561 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.174451 -7.738350 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.174451 -7.738350 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.174451 -7.808561 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.740479 -7.808561 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.740479 -7.738350 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v 4.740479 -7.808561 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v 4.174451 -7.808561 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v 4.174451 -7.808561 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v 4.740479 -7.808561 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v 4.675084 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.622365 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.622365 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.622365 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.569646 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.569646 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.622365 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.569646 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.516931 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.516931 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.569646 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v 4.516931 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v 4.464211 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v 4.464211 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v 4.516931 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v 4.464211 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.411492 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.411492 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.464211 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.411492 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.358773 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.358773 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.411492 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.358773 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.306058 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.306058 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.358773 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v 4.306058 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v 4.253339 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v 4.253339 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v 4.306058 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v 4.253339 -7.738350 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -7.808561 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -7.808561 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -7.738350 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.675084 -7.738350 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -7.808561 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -7.808561 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -7.738350 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.174451 -2.983796 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.174451 -3.054006 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.174451 -3.054006 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.174451 -2.983796 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.740479 -2.983796 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.740479 -3.054006 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.740479 -3.054006 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.740479 -2.983796 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.740479 -2.983796 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.740479 -3.054006 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.174451 -3.054006 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.174451 -2.983796 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.174451 -2.983796 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.174451 -3.054006 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.740479 -3.054006 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.740479 -2.983796 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v 4.740479 -3.054006 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v 4.174451 -3.054006 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v 4.174451 -3.054006 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v 4.740479 -3.054006 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.516931 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v 4.464211 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v 4.464211 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v 4.516931 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.306058 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v 4.253339 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v 4.253339 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v 4.306058 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v 4.253339 -2.983796 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -3.054006 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -3.054006 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -2.983796 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.675084 -2.983796 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -3.054006 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -3.054006 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -2.983796 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.505520 -2.983796 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.505520 -3.054006 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.505520 -3.054006 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.505520 -2.983796 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.071549 -2.983796 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.071549 -3.054006 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.071549 -3.054006 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.071549 -2.983796 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.071549 -2.983796 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.071549 -3.054006 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.505520 -3.054006 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.505520 -2.983796 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.505520 -2.983796 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.505520 -3.054006 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.071549 -3.054006 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.071549 -2.983796 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v 2.071549 -3.054006 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v 1.505520 -3.054006 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v 1.505520 -3.054006 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v 2.071549 -3.054006 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.848000 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v 1.795281 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v 1.795281 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v 1.848000 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.637127 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v 1.584408 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v 1.584408 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v 1.637127 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v 1.584408 -2.983796 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.584408 -3.054006 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.584408 -3.054006 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.584408 -2.983796 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.006154 -2.983796 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.006154 -3.054006 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.006154 -3.054006 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.006154 -2.983796 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.635212 -2.983796 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.635212 -3.054006 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.635212 -3.054006 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.635212 -2.983796 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.069184 -2.983796 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.069184 -3.054006 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.069184 -3.054006 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.069184 -2.983796 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.069184 -2.983796 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.069184 -3.054006 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.635212 -3.054006 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.635212 -2.983796 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.635212 -2.983796 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.635212 -3.054006 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.069184 -3.054006 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.069184 -2.983796 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v -1.069184 -3.054006 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v -1.635212 -3.054006 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v -1.635212 -3.054006 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v -1.069184 -3.054006 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v -1.134579 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.187298 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.187298 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.134579 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v -1.187298 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.993724 0.368140 0.000000 -v -1.240017 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.875110 0.373063 0.000000 -v -1.240017 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.873244 -0.004528 0.000000 -v -1.187298 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.991859 -0.009452 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.240017 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.994656 0.360692 0.000000 -v -1.292733 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.890790 0.359933 0.000000 -v -1.292733 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.889033 0.018019 0.000000 -v -1.240017 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.992899 0.018777 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.292733 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.069261 0.916230 0.000000 -v -1.345452 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt -0.005706 0.912995 0.000000 -v -1.345452 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt -0.008209 0.683532 0.000000 -v -1.292733 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.066758 0.686768 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.345452 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.899745 0.361696 0.000000 -v -1.398171 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.765437 0.358252 0.000000 -v -1.398171 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.770229 0.009330 0.000000 -v -1.345452 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.904538 0.012773 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.503605 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v -1.556324 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v -1.556324 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v -1.503605 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v -1.556324 -2.983796 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.556324 -3.054006 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.556324 -3.054006 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.556324 -2.983796 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.134579 -2.983796 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.134579 -3.054006 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.134579 -3.054006 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.134579 -2.983796 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.556324 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.556324 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.134579 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.134579 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.134579 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.134579 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.556324 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.556324 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.380323 -7.738350 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.380323 -7.808561 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.380323 -7.808561 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.380323 -7.738350 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.814296 -7.738350 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.814296 -7.808561 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.814296 -7.808561 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.814296 -7.738350 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.814296 -7.738350 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.814296 -7.808561 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.380323 -7.808561 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.380323 -7.738350 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.380323 -7.738350 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.380323 -7.808561 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.814296 -7.808561 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.814296 -7.738350 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v -3.814296 -7.808561 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v -4.380323 -7.808561 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v -4.380323 -7.808561 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v -3.814296 -7.808561 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.037846 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v -4.090565 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v -4.090565 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v -4.037846 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.248718 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v -4.301437 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v -4.301437 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v -4.248718 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v -4.301437 -7.738350 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.301437 -7.808561 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.301437 -7.808561 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.301437 -7.738350 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.879692 -7.738350 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.879692 -7.808561 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.879692 -7.808561 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.879692 -7.738350 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.635478 -7.738350 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.635478 -7.808561 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.635478 -7.808561 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.635478 -7.738350 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.069449 -7.738350 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.069449 -7.808561 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.069449 -7.808561 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.069449 -7.738350 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.069449 -7.738350 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.069449 -7.808561 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.635478 -7.808561 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.635478 -7.738350 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.635478 -7.738350 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.635478 -7.808561 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.069449 -7.808561 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.069449 -7.738350 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v -1.069449 -7.808561 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v -1.635478 -7.808561 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v -1.635478 -7.808561 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v -1.069449 -7.808561 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.292998 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v -1.345717 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v -1.345717 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v -1.292998 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.503870 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v -1.556590 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v -1.556590 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v -1.503870 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v -1.556590 -7.738350 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.556590 -7.808561 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.556590 -7.808561 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.556590 -7.738350 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.134844 -7.738350 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.134844 -7.808561 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.134844 -7.808561 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.134844 -7.738350 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.511370 -7.738350 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.511370 -7.808561 1.350635 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.511370 -7.808561 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.511370 -7.738350 1.411750 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.077399 -7.738350 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.077399 -7.808561 1.411750 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.077399 -7.808561 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.077399 -7.738350 1.350635 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.077399 -7.738350 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.077399 -7.808561 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.511370 -7.808561 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.511370 -7.738350 1.350635 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.511370 -7.738350 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.511370 -7.808561 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.077399 -7.808561 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.077399 -7.738350 1.411750 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v 2.077399 -7.808561 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 1.052464 0.000000 -v 1.511370 -7.808561 1.411750 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 1.052464 0.000000 -v 1.511370 -7.808561 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 0.176553 0.603453 0.000000 -v 2.077399 -7.808561 1.350635 -vn 0.000000 -1.000000 0.000000 -vt 1.034086 0.603453 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v 2.012003 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.959284 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.959284 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.012003 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_1 -v 1.959284 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.894477 0.370989 0.000000 -v 1.906565 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.765038 0.370989 0.000000 -v 1.906565 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.765910 0.035986 0.000000 -v 1.959284 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.895348 0.035986 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.906565 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.892691 0.343399 0.000000 -v 1.853850 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.766199 0.347799 0.000000 -v 1.853850 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.767475 0.016247 0.000000 -v 1.906565 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.893967 0.011848 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.853850 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.057919 0.872690 0.000000 -v 1.801131 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt -0.003269 0.865041 0.000000 -v 1.801131 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt -0.000314 0.634507 0.000000 -v 1.853850 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.060875 0.642155 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.801131 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.089926 0.352071 0.000000 -v 1.748412 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt -0.000434 0.351873 0.000000 -v 1.748412 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt -0.000434 0.011557 0.000000 -v 1.801131 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.089926 0.011755 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.642977 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.191297 1.054731 0.000000 -v 1.590258 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.062637 1.059092 0.000000 -v 1.590258 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.067695 0.563608 0.000000 -v 1.642977 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.196355 0.559247 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v 1.590258 -7.738350 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.590258 -7.808561 1.210789 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.590258 -7.808561 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.590258 -7.738350 1.271904 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.012003 -7.738350 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.012003 -7.808561 1.271904 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.012003 -7.808561 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.012003 -7.738350 1.210789 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.584408 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.584408 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.006154 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.006154 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.006154 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.006154 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.584408 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.584408 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.006154 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.006154 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.953434 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.900715 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.848000 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.795281 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.742562 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.689843 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.637127 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.584408 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.584408 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.006154 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.006154 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.584408 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.584408 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.637127 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.689843 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.742562 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.795281 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.848000 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.900715 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.953434 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.003672 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.003672 -2.379366 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.581927 -2.379366 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.581927 -2.309156 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.003672 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.003672 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.581927 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.581927 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.003672 -2.379366 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.581927 -2.379366 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.581927 -2.309156 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.634646 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.687365 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.740080 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.792799 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.845518 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.898238 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.950953 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.003672 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.003672 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.003672 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.950953 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.898238 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.845518 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.792799 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.740080 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.687365 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.634646 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.581927 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.581927 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.253339 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.675084 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.253339 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.306058 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.358773 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.411492 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.464211 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.516931 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.569646 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.622365 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -3.054006 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -2.983796 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.675084 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.622365 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.569646 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.516931 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.464211 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.411492 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.358773 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.306058 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -3.054006 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -2.983796 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.248809 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.670554 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -2.379366 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -2.379366 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -2.309156 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.670554 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.617835 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.565120 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.512401 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.459682 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.406962 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.354247 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.301528 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -2.309156 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -2.379366 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.248809 -2.379366 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -2.309156 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.301528 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.354247 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.406962 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.459682 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.512401 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.565120 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.617835 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -2.309156 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -2.379366 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.675084 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -7.738350 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -7.738350 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.253339 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.253339 -7.738350 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.306058 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.358773 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.411492 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.464211 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.516931 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.569646 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.622365 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -7.738350 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.675084 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.622365 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.569646 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.516931 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.464211 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.411492 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.358773 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.306058 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.253339 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.248809 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.670554 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -7.151839 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -7.151839 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -7.081628 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.248809 -7.151839 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -7.081628 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.301528 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.354247 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.406962 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.459682 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.512401 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.565120 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.617835 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -7.151839 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.670554 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.670554 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.617835 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.565120 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.512401 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.459682 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.406962 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.354247 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.301528 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.012003 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.012003 -7.738350 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.590258 -7.738350 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.590258 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.590258 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.590258 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.012003 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.012003 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.012003 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.012003 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.959284 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.906565 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.853850 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.801131 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.748412 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.695692 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.642977 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.590258 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.590258 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.590258 -7.738350 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.590258 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.642977 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.695692 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.748412 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.801131 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.853850 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.906565 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.959284 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.012003 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.012003 -7.738350 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.582957 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.582957 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.004702 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.004702 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.004702 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.004702 -7.151839 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.582957 -7.151839 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.582957 -7.081628 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.582957 -7.151839 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.582957 -7.081628 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.635676 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.688395 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.741110 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.793829 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.846548 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.899268 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 1.951983 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.004702 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 2.004702 -7.151839 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 2.004702 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 2.004702 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.951983 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.899268 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.846548 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.793829 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.741110 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.688395 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.635676 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.582957 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 1.582957 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.134844 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.134844 -7.738350 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.556590 -7.738350 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.556590 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.556590 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.556590 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.134844 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.134844 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.134844 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.134844 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.187563 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.240283 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.292998 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.345717 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.398436 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.451155 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.503870 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.556590 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.556590 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.573287 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.573287 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.151541 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.151541 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.151541 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.151541 -7.151839 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.573287 -7.151839 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.573287 -7.081628 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.319675 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.319675 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.897930 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.897930 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.897930 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.897930 -7.151839 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.319675 -7.151839 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.319675 -7.081628 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.879692 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.879692 -7.738350 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.301437 -7.738350 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.301437 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.301437 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.301437 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.879692 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.879692 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.879692 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.879692 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.932411 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.985128 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.037846 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.090565 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.143284 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.196001 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.248718 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.301437 -7.808561 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.301437 -7.738350 1.210789 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.301437 -7.738350 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.301437 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.248718 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.196001 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.143284 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.090565 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.037846 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.985128 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.932411 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.879692 -7.808561 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.879692 -7.738350 1.271904 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.573287 -7.151839 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.573287 -7.081628 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.520567 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.467848 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.415133 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.362414 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.309695 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.256976 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.204260 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.151541 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -1.151541 -7.151839 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.151541 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.151541 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.204260 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.256976 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.309695 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.362414 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.415133 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.467848 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.520567 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.573287 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -1.573287 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.319675 -7.151839 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.319675 -7.081628 1.201047 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.266956 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.214237 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.161522 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.108803 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.056084 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -4.003365 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.950649 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.897930 -7.081628 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -3.897930 -7.151839 1.201046 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.897930 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.897930 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -3.950649 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.003365 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.056084 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.108803 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.161522 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.214237 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.266956 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.319675 -7.081628 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.319675 -7.151839 1.262162 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -11/-11/-11 -10/-10/-10 -9/-9/-9 -8/-8/-8 -7/-7/-7 -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.617835 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.617835 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.459682 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.459682 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.406962 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.406962 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -7.081628 1.201047 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.415802 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.415802 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.573956 -2.309156 1.201047 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.573956 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.204930 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.204930 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.363083 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.363083 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.292998 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.292998 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.134844 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.134844 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.503870 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.503870 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.345717 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.345717 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.848000 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.848000 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.006154 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 2.006154 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.637127 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.637127 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.795281 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.795281 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.037846 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.037846 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.879692 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.879692 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.248718 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.248718 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.090565 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.090565 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.042318 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.042318 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.884165 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.884165 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.253191 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.253191 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.095037 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.095037 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.406962 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.406962 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -2.309156 1.201047 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.248809 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.617835 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.617835 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.459682 -2.309156 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.459682 -2.309156 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.415133 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.415133 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.573287 -7.081628 1.201047 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.573287 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.204260 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.204260 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.362414 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.362414 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -1.398171 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.503605 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.503605 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -1.398171 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.306058 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.306058 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.464211 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.464211 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 4.516931 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.516931 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -3.054006 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 4.675084 -3.054006 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -3.950649 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -3.950649 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.108803 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.108803 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -4.161522 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.161522 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.319675 -7.081628 1.201047 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.319675 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.846548 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.951983 -7.081628 1.262162 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.951983 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.846548 -7.081628 1.201046 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.642977 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.642977 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.748412 -7.808561 1.210789 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 1.748412 -7.808561 1.271904 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -g curb -v 6.706108 1.900000 0.000000 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 6.706108 10.200000 0.000000 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 6.706108 10.200000 0.200000 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 6.706108 1.900000 0.200000 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -6.249049 1.900000 0.200000 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 6.706108 1.900000 0.200000 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 6.706108 10.200000 0.200000 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -6.249049 10.200000 0.200000 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -6.249049 10.200000 0.200000 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 6.706108 10.200000 0.200000 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 6.706108 10.200000 0.000000 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -6.249049 10.200000 0.000000 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -6.249049 1.900000 0.000000 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 6.706108 1.900000 0.000000 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 6.706108 1.900000 0.200000 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -6.249049 1.900000 0.200000 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -6.249049 1.900000 0.200000 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -6.249049 10.200000 0.200000 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -6.249049 10.200000 0.000000 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -6.249049 1.900000 0.000000 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -g sign -usemtl 49_4 -v -5.976064 2.312747 4.762428 -vn 0.000000 -1.000000 0.000000 -vt 0.077655 0.969763 0.000000 -v -5.976064 2.312747 3.787100 -vn 0.000000 -1.000000 0.000000 -vt 0.077048 0.748672 0.000000 -v 6.384918 2.312749 3.787100 -vn 0.000001 -1.000000 0.000000 -vt 0.916119 0.764068 0.000000 -v 6.384918 2.312749 4.762428 -vn 0.000000 -1.000000 0.000000 -vt 0.916727 0.985159 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -g mart -usemtl 0_2 -v 6.384918 2.312749 0.175000 -vn 0.000002 -1.000000 0.000000 -vt 27.733219 1.260617 0.000000 -v 6.384918 2.312749 3.787100 -vn 0.000001 -1.000000 0.000000 -vt 28.118858 -6.837924 0.000000 -v 5.181950 2.312747 3.787100 -vn 0.000001 -1.000000 0.000000 -vt 25.421732 -6.966355 0.000000 -v 5.181950 2.312747 0.175000 -vn 0.000001 -1.000000 0.000000 -vt 25.036093 1.132185 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.976064 2.312747 3.787102 -vn 0.000000 -1.000000 0.000000 -vt -0.166020 -10.534680 0.000000 -v -5.976064 2.312747 0.175000 -vn 0.000000 -1.000000 0.000000 -vt -0.166016 -0.059065 0.000000 -v -4.784042 2.312747 0.175000 -vn 0.000000 -0.999996 0.002962 -vt 3.291019 -0.059065 0.000000 -v -4.784042 2.312747 3.787102 -vn 0.000000 -0.999895 -0.014514 -vt 3.291016 -10.534680 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.976064 10.190458 0.175000 -vn 0.000000 1.000000 0.000000 -vt 30.560835 0.066307 0.000000 -v -5.976064 10.190458 4.762428 -vn 0.000000 1.000000 0.000000 -vt 30.560843 11.459993 0.000000 -v 6.384918 10.190460 4.762428 -vn 0.000000 1.000000 0.000000 -vt -0.139819 11.459994 0.000000 -v 6.384918 10.190460 0.175000 -vn 0.000000 1.000000 0.000000 -vt -0.139827 0.066308 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 6.384918 10.190460 0.175000 -vn 1.000000 0.000000 0.000000 -vt -0.309169 0.038955 0.000000 -v 6.384918 10.190460 4.762428 -vn 1.000000 0.000000 0.000000 -vt -0.309166 -11.354722 0.000000 -v 6.384918 2.312749 4.762428 -vn 1.000000 0.000000 0.000000 -vt 19.256529 -11.354722 0.000000 -v 6.384918 2.312749 0.175000 -vn 1.000000 0.000000 0.000000 -vt 19.256525 0.038956 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.976064 2.312747 0.175000 -vn -1.000000 0.000000 0.000000 -vt 19.256529 0.038956 0.000000 -v -5.976064 2.312747 4.762428 -vn -1.000000 0.000000 0.000000 -vt 19.256533 -11.354722 0.000000 -v -5.976064 10.190458 4.762428 -vn -1.000000 0.000000 0.000000 -vt -0.309161 -11.354722 0.000000 -v -5.976064 10.190458 0.175000 -vn -1.000000 0.000000 0.000000 -vt -0.309165 0.038955 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -g glass -usemtl 0_6 -v 1.406014 2.294974 3.175000 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 1.000000 0.000000 -v 0.393514 2.294974 3.175000 -vn 0.000000 -1.000000 0.000000 -vt 1.000000 1.000000 0.000000 -v 0.393514 2.294974 0.175000 -vn 0.000000 -1.000000 0.000000 -vt 1.000000 0.000000 0.000000 -v 1.406014 2.294974 0.175000 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 0.393514 2.294974 3.175000 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 1.000000 0.000000 -v -0.618985 2.294974 3.175000 -vn 0.000000 -0.999983 -0.005776 -vt 1.000000 1.000000 0.000000 -v -0.618985 2.294974 0.175000 -vn 0.000000 -0.999996 0.002962 -vt 1.000000 0.000000 0.000000 -v 0.393514 2.294974 0.175000 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 1.406014 2.294974 3.175000 -vn 0.000000 -1.000000 0.000000 -vt 0.970093 0.311469 0.000000 -v 1.406014 2.294974 3.787102 -vn 0.000000 -1.000000 0.000000 -vt 0.502225 0.311469 0.000000 -v -0.618985 2.294974 3.787102 -vn 0.000000 -0.999895 -0.014514 -vt 0.034357 0.311469 0.000000 -v -0.618985 2.294974 3.175000 -vn 0.000000 -0.999983 -0.005776 -vt 0.032185 0.007474 0.000000 -v 1.406014 2.294974 3.175000 -vn 0.000000 -1.000000 0.000000 -vt 0.967921 0.007474 0.000000 -f -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_7 -v -0.618985 2.294974 3.175000 -vn 0.000000 -0.999983 -0.005776 -vt 0.918247 1.001884 0.000000 -v -4.784042 2.312747 3.175000 -vn 0.000000 -0.999933 -0.011552 -vt 0.039452 1.001884 0.000000 -v -4.784042 2.294974 0.175000 -vn 0.000000 -0.999996 0.002962 -vt 0.037666 -0.001884 0.000000 -v -0.618985 2.294974 0.175000 -vn 0.000000 -0.999996 0.002962 -vt 0.916461 -0.001884 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -0.618985 2.294974 3.787102 -vn 0.000000 -0.999895 -0.014514 -vt 0.937962 0.710100 0.000000 -v -4.784042 2.294974 3.787102 -vn 0.000000 -0.999895 -0.014514 -vt 0.023903 0.727678 0.000000 -v -4.784042 2.312747 3.175000 -vn 0.000000 -0.999933 -0.011552 -vt 0.025536 0.149595 0.000000 -v -0.618985 2.294974 3.175000 -vn 0.000000 -0.999983 -0.005776 -vt 0.939595 0.132017 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.181950 2.294974 3.787102 -vn 0.000001 -1.000000 0.000000 -vt 0.937962 0.710100 0.000000 -v 1.406014 2.294974 3.787102 -vn 0.000000 -1.000000 0.000000 -vt 0.023903 0.727678 0.000000 -v 1.406014 2.294974 3.175000 -vn 0.000000 -1.000000 0.000000 -vt 0.025536 0.149595 0.000000 -v 5.181950 2.294974 3.175000 -vn 0.000000 -1.000000 0.000000 -vt 0.939595 0.132017 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.181950 2.294974 3.175000 -vn 0.000000 -1.000000 0.000000 -vt 0.918247 1.001884 0.000000 -v 1.406014 2.294974 3.175000 -vn 0.000000 -1.000000 0.000000 -vt 0.039452 1.001884 0.000000 -v 1.406014 2.294974 0.175000 -vn 0.000000 -1.000000 0.000000 -vt 0.037666 -0.001884 0.000000 -v 5.181950 2.294974 0.175000 -vn 0.000001 -1.000000 0.000000 -vt 0.916461 -0.001884 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -g ground -usemtl 0_8 -v -13.000000 -18.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vt 9.840436 -15.110263 0.000000 -v 13.000000 -18.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vt 48.972878 18.570261 0.000000 -v 13.000000 12.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vt 10.110681 63.723015 0.000000 -v -13.000000 12.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vt -29.021761 30.042490 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -g fsign1_1 - -usemtl 0_5 -v -11.437394 -15.391608 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.498142 0.100215 0.000000 -v -11.437394 -15.653270 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.453128 0.100215 0.000000 -v -11.519713 -17.338390 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.163234 0.100215 0.000000 -v -11.519713 -17.338390 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.163234 0.100215 0.000000 -v -11.519713 -13.685737 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.791605 0.100215 0.000000 -f -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -11.094885 -13.685737 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.791605 0.100215 0.000000 -v -11.175734 -15.391608 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.498142 0.100215 0.000000 -v -11.437394 -15.391608 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.498142 0.100215 0.000000 -v -11.519713 -13.685737 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.791605 0.100215 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v -11.519713 -13.685737 7.818437 -vn 0.000000 0.000000 1.000000 -vt -0.000648 1.006977 0.000000 -v -11.094885 -13.685737 7.818437 -vn 0.000000 0.000000 1.000000 -vt -0.000648 1.006977 0.000000 -l -2/-2/-2 -1/-1/-1 -usemtl 0_5 -v -11.094885 -13.685737 5.258250 -vn 0.000000 0.000000 1.000000 -vt 0.791605 0.100215 0.000000 -v -11.519713 -13.685737 5.258250 -vn 0.000000 0.000000 1.000000 -vt 0.791605 0.100215 0.000000 -l -2/-2/-2 -1/-1/-1 -v -11.519713 -13.685737 5.258250 -vn 0.000000 0.000000 1.000000 -vt 0.791605 0.100215 0.000000 -v -11.519713 -13.685737 5.258250 -vn 0.000000 0.000000 1.000000 -vt 0.791605 0.100215 0.000000 -l -2/-2/-2 -1/-1/-1 -v -11.519713 -17.338390 5.258250 -vn 0.000000 0.000000 1.000000 -vt 0.163234 0.100215 0.000000 -v -11.094885 -17.338390 5.258250 -vn 0.000000 0.000000 1.000000 -vt 0.163234 0.100215 0.000000 -l -2/-2/-2 -1/-1/-1 -v -11.519713 -17.338390 5.258250 -vn 0.000000 0.000000 1.000000 -vt 0.163234 0.100215 0.000000 -v -11.519713 -17.338390 5.258250 -vn 0.000000 0.000000 1.000000 -vt 0.163234 0.100215 0.000000 -l -2/-2/-2 -1/-1/-1 -usemtl 0 -v -11.094885 -13.685737 7.818437 -vn 1.000000 0.000000 0.000000 -vt 0.999559 1.018294 0.000000 -v -11.094885 -17.338390 7.818437 -vn 1.000000 0.000000 0.000000 -vt -0.002998 1.018294 0.000000 -v -11.094885 -17.338390 5.258250 -vn 1.000000 0.000000 0.000000 -vt -0.001285 0.003658 0.000000 -v -11.094885 -13.685737 5.258250 -vn 1.000000 0.000000 0.000000 -vt 1.001273 0.003658 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -11.519713 -17.338390 7.818437 -vn -1.000000 0.000000 0.000000 -vt 0.992244 1.006977 0.000000 -v -11.519713 -13.685737 7.818437 -vn -1.000000 0.000000 0.000000 -vt -0.000648 1.006977 0.000000 -v -11.519713 -13.685737 5.258250 -vn -1.000000 0.000000 0.000000 -vt -0.000648 0.001120 0.000000 -v -11.519713 -17.338390 5.258250 -vn -1.000000 0.000000 0.000000 -vt 0.992244 0.001120 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -11.094885 -17.338390 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.163234 0.100215 0.000000 -v -11.519713 -17.338390 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.163234 0.100215 0.000000 -v -11.437394 -15.653270 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.453128 0.100215 0.000000 -v -11.175734 -15.653270 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.453128 0.100215 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_5 -v -11.094885 -13.685737 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.791605 0.100215 0.000000 -v -11.094885 -13.685737 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.791605 0.100215 0.000000 -v -11.094885 -17.338390 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.163234 0.100215 0.000000 -v -11.094885 -17.338390 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.163234 0.100215 0.000000 -v -11.175734 -15.653270 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.453128 0.100215 0.000000 -v -11.175734 -15.391608 5.258250 -vn 0.000000 0.000000 -1.000000 -vt 0.498142 0.100215 0.000000 -f -6/-6/-6 -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0 -v -11.175734 -15.653270 0.000000 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -11.175734 -15.653270 5.258250 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -11.437394 -15.653270 5.258250 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -11.437394 -15.653270 0.000000 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -11.437394 -15.391608 0.000000 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -11.437394 -15.391608 5.258250 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -11.175734 -15.391608 5.258250 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -11.175734 -15.391608 0.000000 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -11.437394 -15.653270 0.000000 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -11.437394 -15.653270 5.258250 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -11.437394 -15.391608 5.258250 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -11.437394 -15.391608 0.000000 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -11.175734 -15.391608 0.000000 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -11.175734 -15.391608 5.258250 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -11.175734 -15.653270 5.258250 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -11.175734 -15.653270 0.000000 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_4 -v -11.094885 -13.685737 7.818437 -vn 0.000000 0.000000 1.000000 -vt -0.000648 1.006977 0.000000 -v -11.519713 -13.685737 7.818437 -vn 0.000000 0.000000 1.000000 -vt -0.000648 1.006977 0.000000 -v -11.519713 -17.338390 7.818437 -vn 0.000000 0.000000 1.000000 -vt 0.992244 1.006977 0.000000 -v -11.094885 -17.338390 7.818437 -vn 0.000000 0.000000 1.000000 -vt 0.992244 1.006977 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -11.094885 -17.338390 7.818437 -vn 0.000000 0.000000 1.000000 -vt 0.992244 1.006977 0.000000 -v -11.519713 -17.338390 7.818437 -vn 0.000000 0.000000 1.000000 -vt 0.992244 1.006977 0.000000 -l -2/-2/-2 -1/-1/-1 -v -11.519713 -13.685737 7.818437 -vn 0.000000 1.000000 0.000000 -vt -0.000648 1.006977 0.000000 -v -11.094885 -13.685737 7.818437 -vn 0.000000 1.000000 0.000000 -vt -0.000648 1.006977 0.000000 -v -11.094885 -13.685737 5.258250 -vn 0.000000 1.000000 0.000000 -vt -0.000648 0.001120 0.000000 -v -11.519713 -13.685737 5.258250 -vn 0.000000 1.000000 0.000000 -vt -0.000648 0.001120 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -11.519713 -17.338390 7.818437 -vn 0.000000 -1.000000 0.000000 -vt 0.992244 1.006977 0.000000 -v -11.519713 -17.338390 5.258250 -vn 0.000000 -1.000000 0.000000 -vt 0.992244 0.001120 0.000000 -v -11.094885 -17.338390 5.258250 -vn 0.000000 -1.000000 0.000000 -vt 0.992244 0.001120 0.000000 -v -11.094885 -17.338390 7.818437 -vn 0.000000 -1.000000 0.000000 -vt 0.992244 1.006977 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -g roof_1 - -usemtl 49 -v 6.384918 10.190460 5.436793 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 6.384918 10.190460 4.762428 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.976064 10.190458 4.762428 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.976064 10.190458 5.436793 -vn 0.000000 1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.976058 -10.426369 5.436793 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.976058 -10.426369 4.762428 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 6.384923 -10.426366 4.762428 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 6.384923 -10.426366 5.436793 -vn 0.000000 -1.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v -5.976064 10.190458 5.436793 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.976064 10.190458 4.762428 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.976062 2.312747 4.762428 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.976058 -10.426369 4.762428 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -5.976058 -10.426369 5.436793 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 6.384923 -10.426366 5.436793 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 6.384923 -10.426366 4.762428 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 6.384920 2.312749 4.762428 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 6.384918 10.190460 4.762428 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 6.384918 10.190460 5.436793 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 49_3 -v 6.384923 -10.426366 5.436793 -vn 0.000000 0.000000 1.000000 -vt 1.139965 12.925941 0.000000 -v 6.384918 10.190460 5.436793 -vn 0.000000 0.000000 1.000000 -vt 0.633985 1.035478 0.000000 -v -5.976064 10.190458 5.436793 -vn 0.000000 0.000000 1.000000 -vt 7.830460 0.879040 0.000000 -v -5.976058 -10.426369 5.436793 -vn 0.000000 0.000000 1.000000 -vt 8.336439 12.769505 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 49 -v 6.384918 10.190460 4.762428 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 6.384920 2.312749 4.762428 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -5.976062 2.312748 4.762428 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -5.976064 10.190458 4.762428 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 6.384920 2.312749 4.762428 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v 6.384923 -10.426366 4.762428 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -5.976058 -10.426369 4.762428 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -v -5.976062 2.312748 4.762428 -vn 0.000000 0.000000 -1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -g inside_1 - -usemtl 0 -v -4.784042 2.312747 0.175000 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.784042 3.303533 0.175000 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.784042 3.303533 4.762428 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.784042 2.312747 4.762428 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v -4.784042 2.312747 3.175000 -vn 1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -5/-5/-5 -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.181950 2.312747 0.178906 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v 5.181950 3.303533 0.178906 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.784042 3.303533 0.178906 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -v -4.784042 2.312747 0.178906 -vn 0.000000 0.000000 1.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -v 5.181950 2.312747 4.762428 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.181950 3.303533 4.762428 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.181950 3.303533 0.175000 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -v 5.181950 2.312747 0.175000 -vn -1.000000 0.000000 0.000000 -vt 0.000000 0.000000 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 -usemtl 0_5 -v 5.181950 3.303533 4.762428 -vn 0.000000 -1.000000 0.000000 -vt 0.996288 1.068620 0.000000 -v -4.784042 3.303533 4.762428 -vn 0.000000 -1.000000 0.000000 -vt -0.001865 1.072147 0.000000 -v -4.784042 3.303533 0.175000 -vn 0.000000 -1.000000 0.000000 -vt -0.003534 0.005611 0.000000 -v 5.181950 3.303533 0.175000 -vn 0.000000 -1.000000 0.000000 -vt 0.994619 0.002084 0.000000 -f -4/-4/-4 -3/-3/-3 -2/-2/-2 -1/-1/-1 diff --git a/src/geometry/numbers.int b/src/geometry/numbers.int Binary files differdeleted file mode 100644 index 4807735..0000000 --- a/src/geometry/numbers.int +++ /dev/null diff --git a/src/geometry/p51_mustang.cg b/src/geometry/p51_mustang.cg Binary files differdeleted file mode 100644 index 6ddcc5b..0000000 --- a/src/geometry/p51_mustang.cg +++ /dev/null diff --git a/src/geometry/p51_mustang.obj b/src/geometry/p51_mustang.obj deleted file mode 100644 index ff8f7b6..0000000 --- a/src/geometry/p51_mustang.obj +++ /dev/null @@ -1,5527 +0,0 @@ -# Thu Oct 29 11:30:01 1992 -# -# P51 Mustang Airplane -# -# Courtesy of: -# -# Viewpoint Animation Engineering -# 870 West Center -# Orem, Utah 84057 -# (801)224-2222 -# 1-800-DATASET -# -# (c) Copyright 1992 Viewpoint Animation Engineering Inc. -# Sun Microsystems has been authorized to freely distribute -# these Datasets. They are provided for unlimited use in -# existing or modified form. The actual Dataset (ie, geometry) -# may not, however, be resold in existing or modified form. -# - -g default -v 6.361460 0.669865 0.000000 -v 6.361460 -0.794649 0.000000 -v 6.361460 0.669865 -0.156457 -v 6.361460 0.615640 -0.312522 -v 6.361460 0.561399 -0.379419 -v 6.361460 0.398707 -0.490883 -v 6.361460 0.207409 -0.535484 -v 6.361460 -0.523492 -0.464885 -v 6.361460 -0.686183 -0.369020 -v 6.361460 -0.740424 -0.307323 -v 6.361460 -0.794649 -0.156457 -v 6.058460 -0.864940 -0.156457 -v 6.058460 -0.864940 0.000000 -v 6.058460 0.680933 0.000000 -v 6.058460 0.680933 -0.156457 -v 6.058460 0.623695 -0.312522 -v 6.058460 0.566441 -0.379419 -v 6.058460 0.394712 -0.490883 -v 6.058460 0.211786 -0.535484 -v 6.058460 -0.042087 -0.580071 -v 6.058460 -0.578719 -0.464885 -v 6.058460 -0.750448 -0.369020 -v 6.058460 -0.807703 -0.307323 -v 5.759059 -0.629551 -0.464885 -v 5.759059 -0.806535 -0.369020 -v 5.759059 -0.865547 -0.307323 -v 5.759059 -0.924679 -0.156457 -v 5.759059 -0.924679 0.000000 -v 5.759059 0.688910 0.000000 -v 5.759059 0.688910 -0.156457 -v 5.759059 0.633582 -0.312522 -v 5.759059 0.574636 -0.379419 -v 5.759059 0.397834 -0.490883 -v 5.759059 0.218724 -0.535484 -v 5.759059 -0.036405 -0.580071 -v 5.384059 0.218775 -0.535484 -v 5.384059 -0.034261 -0.580071 -v 5.384059 -0.439481 -0.533271 -v 5.384059 -0.690861 -0.464885 -v 5.384059 -0.877400 -0.369020 -v 5.384059 -0.938690 -0.307323 -v 5.384059 -1.000841 -0.156457 -v 5.384059 -1.000841 0.000000 -v 5.384059 0.701148 0.000000 -v 5.384059 0.701148 -0.156457 -v 5.384059 0.640479 -0.312522 -v 5.384059 0.579792 -0.379419 -v 5.384059 0.397767 -0.490883 -v 5.045059 0.651279 -0.312522 -v 5.045059 0.590592 -0.379419 -v 5.045059 0.408567 -0.490883 -v 5.045059 0.222375 -0.535484 -v 5.045059 -0.034608 -0.580071 -v 5.045059 -0.455493 -0.533271 -v 5.045059 -0.717533 -0.464885 -v 5.045059 -0.914058 -0.369020 -v 5.045059 -0.975665 -0.307323 -v 5.045059 -1.038557 -0.156457 -v 5.045059 -1.038557 0.000000 -v 5.045059 0.711948 0.000000 -v 5.045059 0.711948 -0.156457 -v 4.526059 -1.109240 0.000000 -v 4.526059 0.712244 0.000000 -v 4.526059 0.718504 -0.156457 -v 4.526059 0.658479 -0.312522 -v 4.526059 0.597792 -0.379419 -v 4.526059 0.414495 -0.490883 -v 4.526059 0.230297 -0.535484 -v 4.526059 -0.029135 -0.580071 -v 4.526059 -0.498435 -0.533271 -v 4.526059 -0.768878 -0.464885 -v 4.526059 -0.974194 -0.369020 -v 4.673659 -1.046356 -0.307323 -v 4.526059 -1.109240 -0.156457 -v 3.765859 -0.962355 -0.628220 -v 3.913459 -1.100734 -0.631323 -v 3.765859 -1.243404 -0.610057 -v 3.765859 -1.243404 0.000000 -v 3.765859 0.722259 0.000000 -v 3.765859 0.722259 -0.156457 -v 3.765859 0.656899 -0.312522 -v 3.765859 0.591162 -0.379419 -v 3.765859 0.431232 -0.490883 -v 3.765859 0.239029 -0.535484 -v 3.765859 -0.018264 -0.580071 -v 3.765859 -0.575051 -0.533271 -v 3.765859 -0.787602 -0.464885 -v 6.361460 -0.219626 -0.515268 -v 6.361460 -0.378841 -0.476876 -v 6.058460 -0.247173 -0.548869 -v 6.058460 -0.426032 -0.510478 -v 5.759059 -0.274659 -0.548869 -v 5.634072 -0.409004 -0.533271 -v 5.759059 -0.472355 -0.510478 -v 6.361460 0.028069 -0.567064 -v 6.286466 -0.044879 -0.580071 -v 6.361460 -0.103735 -0.558472 -v 6.684336 0.571381 -0.144191 -v 6.684336 0.571381 0.000000 -v 6.684336 0.526950 -0.276394 -v 6.684336 0.489194 -0.324534 -v 6.684336 0.352180 -0.421582 -v 6.684336 0.195568 -0.461057 -v 6.684336 0.031728 -0.471195 -v 6.684336 -0.075913 -0.450460 -v 6.684336 -0.164028 -0.427821 -v 6.684336 -0.307884 -0.397477 -v 6.684336 -0.434718 -0.390959 -v 6.684336 -0.565572 -0.311244 -v 6.684336 -0.601128 -0.269432 -v 6.684336 -0.644809 -0.143792 -v 6.684336 -0.644809 0.000000 -v 6.634465 0.607010 0.000000 -v 6.572132 0.636542 0.000000 -v 6.572132 0.636542 -0.156457 -v 6.634465 0.607010 -0.152369 -v 6.572089 0.583477 -0.312522 -v 6.634446 0.556960 -0.300481 -v 6.572050 0.530397 -0.379419 -v 6.634429 0.509124 -0.361126 -v 6.571951 0.389182 -0.490883 -v 6.634385 0.375719 -0.467785 -v 6.571836 0.207239 -0.535484 -v 6.634334 0.203329 -0.510677 -v 6.572061 0.027289 -0.553741 -v 6.634434 0.028676 -0.524650 -v 6.572553 -0.096294 -0.535720 -v 6.634652 -0.088625 -0.504625 -v 6.572738 -0.194421 -0.505845 -v 6.634734 -0.181332 -0.478734 -v 6.573818 -0.338568 -0.473719 -v 6.635214 -0.323683 -0.447942 -v 6.574113 -0.480045 -0.464885 -v 6.635345 -0.459933 -0.440246 -v 6.574482 -0.639148 -0.369020 -v 6.635196 -0.609515 -0.350011 -v 6.574611 -0.692189 -0.307323 -v 6.634674 -0.657331 -0.295157 -v 6.574741 -0.745212 -0.156457 -v 6.634470 -0.707556 -0.152436 -v 6.574741 -0.745212 0.000000 -v 6.634604 -0.707387 0.000000 -v 6.684336 -0.305939 -0.371757 -v 6.684336 -0.160612 -0.305211 -v 6.684336 -0.072625 -0.389017 -v 6.684336 0.032698 -0.427306 -v 6.684336 0.193252 -0.446172 -v 6.684336 0.345796 -0.407722 -v 6.684336 0.478740 -0.313557 -v 6.684336 0.513554 -0.269169 -v 6.684336 0.556381 -0.141738 -v 6.684336 -0.629809 -0.141259 -v 6.684336 -0.587882 -0.261854 -v 6.684336 -0.555708 -0.299689 -v 6.684336 -0.430156 -0.376173 -v 6.684336 0.557001 0.000000 -v 6.684336 -0.624314 0.000000 -v 6.684336 -0.144066 0.000000 -v 6.684336 -0.159855 -0.290230 -v 6.684336 -0.145284 -0.299096 -v 6.684336 -0.149751 -0.315557 -v 6.684336 -0.163603 -0.323078 -v 6.684336 -0.174250 -0.311456 -v 6.684336 -0.182333 -0.295363 -v 6.684336 -0.159085 0.000000 -v 6.684336 -0.129047 0.000000 -v 6.684336 -0.303959 -0.380123 -v 6.684336 -0.309463 -0.356873 -v 6.684336 -0.431677 -0.381101 -v 6.684336 -0.453436 -0.361991 -v 6.684336 -0.064552 -0.375992 -v 6.684336 -0.080699 -0.402043 -v 6.684336 0.036183 -0.412612 -v 6.684336 0.029323 -0.441543 -v 6.684336 0.234120 -0.435870 -v 6.684336 0.194024 -0.451133 -v 6.576936 -0.555708 -0.299689 -v 6.576936 -0.453436 -0.361991 -v 6.576936 -0.309463 -0.356873 -v 6.576936 -0.182333 -0.295363 -v 6.576936 -0.159085 0.000000 -v 6.576936 -0.624314 0.000000 -v 6.576936 -0.629809 -0.141259 -v 6.576936 -0.587882 -0.261854 -v 6.043650 0.214751 -0.637964 -v 6.058621 0.226609 -0.620602 -v 5.759221 0.233548 -0.620602 -v 5.759249 0.221346 -0.637962 -v 5.384221 0.233599 -0.620602 -v 5.384249 0.221400 -0.637983 -v 5.045221 0.237199 -0.620602 -v 4.991249 0.224993 -0.637944 -v 4.526221 0.245120 -0.620602 -v 4.526249 0.232911 -0.637921 -v 3.781049 0.241471 -0.637928 -v 3.766021 0.253853 -0.620602 -v 3.781049 0.013703 -0.677419 -v 3.766021 -0.003440 -0.665190 -v 4.526221 -0.014311 -0.665190 -v 4.526249 0.003046 -0.677426 -v 5.045221 -0.019784 -0.665190 -v 4.991249 -0.002431 -0.677403 -v 5.384221 -0.019437 -0.665190 -v 5.384249 -0.002091 -0.677364 -v 5.759221 -0.021581 -0.665190 -v 5.759249 -0.004231 -0.677385 -v 6.043650 -0.009627 -0.677383 -v 6.058621 -0.027263 -0.665190 -v 4.153649 0.237191 -0.637924 -v 4.153649 0.008374 -0.677423 -v 5.789249 0.191094 -0.643152 -v 6.013650 0.185887 -0.643132 -v 6.013650 0.020499 -0.672215 -v 5.789249 0.024753 -0.672195 -v 5.414249 0.191845 -0.643154 -v 5.729249 0.191804 -0.643162 -v 5.729249 0.025487 -0.672185 -v 5.414249 0.027289 -0.672193 -v 5.021249 0.195170 -0.643137 -v 5.354249 0.192117 -0.643125 -v 5.354249 0.027439 -0.672223 -v 5.021249 0.027142 -0.672210 -v 4.556249 0.202835 -0.643039 -v 4.961249 0.195935 -0.643036 -v 4.961249 0.027488 -0.672311 -v 4.556249 0.032255 -0.672308 -v 4.496249 0.033041 -0.672327 -v 4.183649 0.037514 -0.672337 -v 4.183649 0.207279 -0.643010 -v 4.496249 0.203690 -0.643020 -v 3.811049 0.211563 -0.643035 -v 4.123649 0.207974 -0.643046 -v 4.123649 0.038366 -0.672301 -v 3.811049 0.042839 -0.672312 -v 5.789492 0.053562 -0.750364 -v 5.789293 0.042097 -0.684394 -v 5.789293 0.178886 -0.660511 -v 5.789492 0.190348 -0.726466 -v 5.789601 0.150840 -0.770777 -v 5.789601 0.105671 -0.778663 -v 5.414381 0.056113 -0.750396 -v 5.414273 0.044631 -0.684364 -v 5.414273 0.179643 -0.660539 -v 5.414381 0.191118 -0.726524 -v 5.414440 0.152138 -0.770796 -v 5.414440 0.107646 -0.778647 -v 5.021388 0.055933 -0.750348 -v 5.021275 0.044489 -0.684432 -v 5.021275 0.182955 -0.660473 -v 5.021388 0.194402 -0.726400 -v 5.021451 0.154389 -0.770758 -v 5.021451 0.108581 -0.778684 -v 4.556449 0.060963 -0.750409 -v 4.556286 0.049591 -0.684552 -v 4.556286 0.190604 -0.660357 -v 4.556450 0.201979 -0.726233 -v 4.556540 0.161160 -0.770726 -v 4.556540 0.114385 -0.778751 -v 4.183840 0.066210 -0.750456 -v 4.183684 0.054845 -0.684565 -v 4.183684 0.195047 -0.660345 -v 4.183840 0.206412 -0.726231 -v 4.183927 0.165821 -0.770731 -v 4.183927 0.119353 -0.778758 -v 3.811241 0.071564 -0.750446 -v 3.811084 0.060172 -0.684528 -v 3.811084 0.199338 -0.660380 -v 3.811241 0.210728 -0.726285 -v 3.811327 0.170461 -0.770741 -v 3.811327 0.124387 -0.778736 -v 5.817692 0.190334 -0.715584 -v 5.817801 0.150825 -0.759894 -v 5.817801 0.105656 -0.767781 -v 5.817692 0.053548 -0.739481 -v 5.817493 0.042083 -0.673511 -v 5.817493 0.178872 -0.649628 -v 5.442580 0.191110 -0.715680 -v 5.442639 0.152130 -0.759951 -v 5.442639 0.107638 -0.767803 -v 5.442581 0.056106 -0.739551 -v 5.442473 0.044623 -0.673520 -v 5.442473 0.179635 -0.649694 -v 5.049588 0.194393 -0.715552 -v 5.049650 0.154380 -0.759911 -v 5.049650 0.108573 -0.767837 -v 5.049587 0.055925 -0.739501 -v 5.049474 0.044480 -0.673585 -v 5.049474 0.182947 -0.649626 -v 4.584650 0.201967 -0.715365 -v 4.584740 0.161148 -0.759858 -v 4.584740 0.114373 -0.767883 -v 4.584650 0.060952 -0.739541 -v 4.584486 0.049580 -0.673684 -v 4.584486 0.190592 -0.649489 -v 4.212040 0.206401 -0.715366 -v 4.212126 0.165810 -0.759866 -v 4.212126 0.119341 -0.767893 -v 4.212040 0.066199 -0.739591 -v 4.211884 0.054834 -0.673700 -v 4.211884 0.195036 -0.649480 -v 3.839440 0.210716 -0.715420 -v 3.839527 0.170450 -0.759876 -v 3.839527 0.124375 -0.767871 -v 3.839440 0.071553 -0.739581 -v 3.839284 0.060161 -0.673663 -v 3.839284 0.199327 -0.649515 -v 3.811327 0.194324 -0.766739 -v 3.811350 0.175562 -0.780006 -v 3.811362 0.159363 -0.787891 -v 4.068205 0.145550 -0.726652 -v 4.086716 0.181162 -0.709368 -v 4.086708 0.086824 -0.725603 -v 4.068201 0.126643 -0.729894 -v 3.811362 0.140609 -0.791145 -v 3.811350 0.122702 -0.789178 -v 3.811327 0.100585 -0.783005 -v 4.105228 0.197878 -0.695322 -v 4.123734 0.185025 -0.686379 -v 4.123706 0.212384 -0.668536 -v 3.811188 0.221690 -0.701638 -v 3.811252 0.221412 -0.729386 -v 3.811293 0.210542 -0.748835 -v 4.477716 0.193451 -0.695334 -v 4.496334 0.180709 -0.686337 -v 4.496305 0.208081 -0.668514 -v 4.183788 0.217388 -0.701617 -v 4.183852 0.217099 -0.729354 -v 4.183892 0.206109 -0.748821 -v 4.183927 0.189772 -0.766732 -v 4.183950 0.170900 -0.780002 -v 4.183962 0.154575 -0.787896 -v 4.440471 0.140779 -0.726736 -v 4.459093 0.176621 -0.709414 -v 4.459085 0.081705 -0.725677 -v 4.440467 0.121757 -0.729985 -v 4.183962 0.135704 -0.791156 -v 4.183950 0.117677 -0.789196 -v 4.183927 0.095454 -0.783025 -v 4.923962 0.075456 -0.723712 -v 4.905266 0.114847 -0.727001 -v 4.556577 0.130832 -0.791149 -v 4.556564 0.112713 -0.789185 -v 4.556540 0.090398 -0.783005 -v 4.556540 0.185169 -0.766745 -v 4.556565 0.166219 -0.780004 -v 4.556577 0.149793 -0.787895 -v 4.905259 0.133564 -0.723708 -v 4.923947 0.169028 -0.707369 -v 4.942648 0.185785 -0.694319 -v 4.961344 0.172981 -0.686409 -v 4.961312 0.200337 -0.668528 -v 4.556395 0.212955 -0.701644 -v 4.556462 0.212670 -0.729373 -v 4.556504 0.201594 -0.748841 -v 5.336073 0.182393 -0.694991 -v 5.354277 0.169258 -0.686567 -v 5.354268 0.196573 -0.668607 -v 5.021350 0.205343 -0.701733 -v 5.021396 0.205087 -0.729484 -v 5.021425 0.194306 -0.748900 -v 5.021451 0.178178 -0.766780 -v 5.021467 0.159499 -0.780023 -v 5.021476 0.143383 -0.787885 -v 5.299676 0.131285 -0.725579 -v 5.317865 0.165980 -0.708639 -v 5.317894 0.074511 -0.724930 -v 5.299691 0.112991 -0.728876 -v 5.021476 0.124705 -0.791117 -v 5.021467 0.106883 -0.789127 -v 5.021451 0.084825 -0.782933 -v 5.711139 0.181998 -0.695272 -v 5.729269 0.168957 -0.686537 -v 5.729262 0.196275 -0.668642 -v 5.414344 0.202034 -0.701747 -v 5.414388 0.201792 -0.729534 -v 5.414416 0.191394 -0.748909 -v 5.414440 0.175656 -0.766784 -v 5.414456 0.157327 -0.780035 -v 5.414464 0.141636 -0.787881 -v 5.674865 0.130383 -0.726270 -v 5.693003 0.165481 -0.709168 -v 5.692987 0.072871 -0.725261 -v 5.674857 0.111792 -0.729480 -v 5.414464 0.123345 -0.791109 -v 5.414456 0.105921 -0.789107 -v 5.414440 0.084232 -0.782917 -v 5.996122 0.176713 -0.696818 -v 6.013791 0.163037 -0.686547 -v 6.013744 0.190352 -0.668613 -v 5.789425 0.201277 -0.701746 -v 5.789506 0.201029 -0.729515 -v 5.789557 0.190434 -0.748909 -v 5.789602 0.174496 -0.766785 -v 5.789631 0.155988 -0.780030 -v 5.789646 0.140077 -0.787883 -v 5.960786 0.126591 -0.731008 -v 5.978448 0.160837 -0.712289 -v 5.978462 0.068958 -0.728487 -v 5.960793 0.108211 -0.734260 -v 5.789646 0.121588 -0.791111 -v 5.789631 0.103959 -0.789114 -v 5.789602 0.082080 -0.782921 -v 5.789557 0.061050 -0.771500 -v 5.789506 0.044538 -0.756843 -v 5.789425 0.034935 -0.730789 -v 6.013744 0.024964 -0.697696 -v 6.013791 0.056743 -0.705239 -v 5.996129 0.048074 -0.719460 -v 5.414416 0.063399 -0.771496 -v 5.414388 0.047085 -0.756851 -v 5.414345 0.037478 -0.730786 -v 5.729262 0.029958 -0.697665 -v 5.729269 0.061747 -0.705246 -v 5.711131 0.052529 -0.717831 -v 5.021425 0.063610 -0.771514 -v 5.021396 0.046912 -0.756849 -v 5.021350 0.037316 -0.730806 -v 5.354268 0.031894 -0.697705 -v 5.354277 0.063664 -0.705225 -v 5.336088 0.054313 -0.717686 -v 4.556504 0.068913 -0.771606 -v 4.556461 0.051943 -0.756944 -v 4.556395 0.042375 -0.730913 -v 4.961313 0.031890 -0.697803 -v 4.961344 0.063648 -0.705410 -v 4.942656 0.054771 -0.717128 -v 4.183892 0.074062 -0.771632 -v 4.183852 0.057188 -0.756981 -v 4.183788 0.047623 -0.730944 -v 4.496305 0.037432 -0.697820 -v 4.496334 0.069195 -0.705487 -v 4.477712 0.060663 -0.718120 -v 3.811293 0.079304 -0.771607 -v 3.811252 0.062541 -0.756958 -v 3.811188 0.052967 -0.730916 -v 4.123706 0.042776 -0.697792 -v 4.123734 0.074544 -0.705436 -v 4.105224 0.065899 -0.718068 -v 2.080458 -0.044641 -0.580071 -v 2.080458 -0.639738 -0.533271 -v 2.958858 -0.755430 -0.464885 -v 2.958858 -0.938409 -0.628220 -v 2.958858 -1.348629 -0.610057 -v 2.080458 -1.348629 0.000000 -v 2.930218 0.704509 0.000000 -v 2.930218 0.704509 -0.156457 -v 2.890618 0.634652 -0.312522 -v 2.890618 0.564392 -0.379419 -v 2.876219 0.393459 -0.490883 -v 2.080458 0.230355 -0.535484 -v 2.436418 0.357459 -0.490883 -v 1.626258 0.230355 -0.535484 -v 1.626258 -0.044641 -0.580071 -v 1.626258 -0.639738 -0.533271 -v 1.626258 -0.798630 -0.464885 -v 1.626258 -0.938409 -0.628220 -v 1.626258 -1.348629 -0.610057 -v 1.626258 -1.348629 0.000000 -v 2.193910 1.331267 0.000000 -v -1.167794 0.704509 0.000000 -v -1.167794 0.704509 -0.156457 -v -1.079142 0.634652 -0.312522 -v -0.966887 0.564392 -0.379419 -v -0.869141 0.451059 -0.454883 -v -0.869141 0.230355 -0.535484 -v -0.869141 -0.044641 -0.580071 -v -0.869141 -0.639738 -0.533271 -v -0.869141 -0.870630 -0.464885 -v -0.605987 -1.078982 -0.628220 -v -0.605987 -1.201591 -0.631323 -v -0.605987 -1.132629 -0.610057 -v -0.605987 -1.348629 0.000000 -v 1.124589 1.368707 0.000000 -v 1.121248 0.407859 -0.490883 -v 1.421248 0.393459 -0.490883 -v 2.398921 0.394306 -0.483900 -v 2.436418 0.321287 -0.500775 -v 2.473918 0.357459 -0.490883 -v 2.473427 0.371387 -0.481801 -v 1.421248 0.430267 -0.483714 -v 1.421248 0.357287 -0.500775 -v 1.121248 0.444280 -0.481952 -v 1.121248 0.371687 -0.500775 -v -0.886830 0.482470 -0.434400 -v -0.869141 0.414887 -0.464775 -v 2.224331 1.308867 0.000000 -v 2.156535 1.334394 0.000000 -v 2.203136 1.002782 -0.414086 -v 2.202622 1.205622 -0.359939 -v 2.184142 1.209105 -0.363017 -v 2.184413 1.007165 -0.415509 -v 2.202622 1.240752 -0.326490 -v 2.201731 1.279411 -0.200170 -v 2.184417 1.285425 -0.201149 -v 2.184142 1.244235 -0.329568 -v 2.164556 1.245486 -0.330265 -v 2.164830 1.286676 -0.201846 -v 2.218233 1.270108 -0.194992 -v 2.219124 1.231449 -0.321312 -v 2.367620 1.111280 -0.322231 -v 2.220967 1.202554 -0.354093 -v 2.369463 1.082385 -0.355012 -v 2.164928 1.007475 -0.416100 -v 2.164657 1.209415 -0.363608 -v 1.346727 1.260902 -0.362695 -v 1.346234 1.064003 -0.413891 -v 1.346727 1.296032 -0.329246 -v 1.198236 1.054193 -0.413891 -v 1.198729 1.251091 -0.362695 -v 0.619036 1.112495 -0.362695 -v 0.650207 1.022778 -0.402545 -v 1.198729 1.286221 -0.329246 -v 1.198709 1.327066 -0.201033 -v 0.619036 1.147625 -0.329246 -v -1.006543 -1.892791 -0.307323 -v -1.006543 -1.960629 -0.156457 -v -1.006543 -1.960629 0.000000 -v -1.373742 0.704509 0.000000 -v -1.373742 0.704509 -0.156457 -v -1.271461 0.634652 -0.312522 -v -1.158709 0.564392 -0.379419 -v -1.006543 0.482470 -0.434400 -v -1.006543 0.414887 -0.464775 -v -1.006543 0.230355 -0.535484 -v -1.006543 -0.044641 -0.580071 -v -1.006543 -0.639738 -0.533271 -v -1.006543 -1.615830 -0.464885 -v -1.006543 -1.824182 -0.369020 -v -1.655142 -0.639738 -0.506574 -v -1.655142 -1.414323 -0.441612 -v -1.655142 -1.622674 -0.350546 -v -1.655142 -1.691284 -0.291938 -v -1.655142 -1.759121 -0.148625 -v -1.655142 -1.759121 0.000000 -v -1.655142 0.704509 0.000000 -v -1.655142 0.704509 -0.148625 -v -1.655142 0.634652 -0.296876 -v -1.655142 0.564392 -0.360425 -v -1.655142 0.482471 -0.412653 -v -1.655142 0.414887 -0.441507 -v -1.655142 0.230355 -0.508676 -v -1.655142 -0.044641 -0.551031 -v -0.361405 -1.095250 -1.664383 -v 1.629640 -0.974871 -1.664383 -v 2.962241 -0.974871 -1.664383 -v 3.308442 -0.999037 -1.657746 -v 3.456042 -1.116736 -1.668975 -v 3.308442 -1.260532 -1.657578 -v 2.962241 -1.365507 -1.664820 -v 1.629640 -1.365507 -1.664820 -v -0.361405 -1.150019 -1.649955 -v 2.978287 -0.959703 -8.145055 -v 3.186722 -0.983870 -8.138417 -v 3.186722 -1.047697 -8.145931 -v 3.186722 -1.112480 -8.129084 -v 2.978287 -1.217455 -8.136325 -v 2.175970 -1.217455 -8.136325 -v 1.081943 -1.106119 -8.128645 -v 1.081943 -1.080082 -8.145055 -v 2.175970 -0.959703 -8.145055 -v 1.797642 -1.186562 -8.382774 -v 1.797642 -1.111711 -8.387530 -v 2.273984 -1.104526 -8.491683 -v 2.711147 -1.104526 -8.491683 -v 2.824718 -1.059287 -8.383914 -v 2.824718 -1.094065 -8.388008 -v 2.824718 -1.129364 -8.378828 -v 2.711147 -1.179377 -8.486926 -v 2.273984 -1.179377 -8.486926 -v 0.489037 -1.838894 -0.460791 -v 0.489037 -1.770285 -0.522487 -v 0.626440 -1.442896 -0.430831 -v 0.626440 -1.409934 0.000000 -v 0.489037 -1.906732 0.000000 -v 0.489037 -1.906732 -0.309925 -v 0.791476 -1.389575 0.000000 -v 0.654074 -1.799869 0.000000 -v 0.654074 -1.799869 -0.315172 -v 0.654074 -1.743844 -0.466038 -v 0.654074 -1.687181 -0.527734 -v 0.791476 -1.416797 -0.433712 -v -2.174141 0.397137 -0.397356 -v -2.174141 0.228038 -0.457809 -v -2.174141 -0.023960 -0.495928 -v -2.174141 -0.569288 -0.455917 -v -2.174141 -1.262241 -0.397451 -v -2.174141 -1.453168 -0.315491 -v -2.174141 -1.516039 -0.262744 -v -2.174141 -1.578203 -0.133762 -v -2.174141 -1.578203 0.000000 -v -2.174141 0.662537 0.000000 -v -2.174141 0.662537 -0.133762 -v -2.174141 0.598522 -0.267189 -v -2.174141 0.534139 -0.324382 -v -2.174141 0.459068 -0.371388 -v -2.693141 0.565465 -0.240470 -v -2.693141 0.508870 -0.291944 -v -2.693141 0.442880 -0.334249 -v -2.693141 0.388440 -0.357621 -v -2.693141 0.239795 -0.412028 -v -2.693141 0.018279 -0.446335 -v -2.693141 -0.461086 -0.410325 -v -2.693141 -0.925453 -0.357706 -v -2.693141 -1.093286 -0.283942 -v -2.693141 -1.148552 -0.236470 -v -2.693141 -1.203197 -0.120386 -v -2.693141 -1.203197 0.000000 -v -2.693141 0.621737 0.000000 -v -2.693141 0.621737 -0.120386 -v -3.492939 -0.720255 0.000000 -v -3.492939 0.557402 0.000000 -v -3.492939 0.557402 -0.108348 -v -3.492939 0.513374 -0.216423 -v -3.492939 0.469093 -0.262750 -v -3.492939 0.417462 -0.300824 -v -3.492939 0.374867 -0.321859 -v -3.492939 0.258566 -0.370825 -v -3.492939 0.085249 -0.401702 -v -3.492939 -0.289812 -0.369293 -v -3.492939 -0.502944 -0.321935 -v -3.492939 -0.634258 -0.255548 -v -3.492939 -0.677499 -0.212823 -v -3.492939 -0.720255 -0.108348 -v -4.296339 -0.594212 -0.216555 -v -4.296339 -0.637453 -0.180677 -v -4.296339 -0.680209 -0.092946 -v -4.296339 -0.680209 0.000000 -v -4.818340 0.679802 0.000000 -usemtl UNKNOWN -v -4.818340 0.679802 -0.092946 -v -4.296339 0.513374 -0.183700 -v -4.296339 0.469093 -0.222602 -v -4.296339 0.417462 -0.254574 -v -4.296339 0.374867 -0.272238 -v -4.296339 0.258566 -0.313356 -v -4.296339 0.085249 -0.339284 -v -4.296339 -0.289812 -0.312069 -v -4.296339 -0.462899 -0.272302 -v -5.927646 0.105235 -0.249998 -v -5.726139 -0.219019 -0.229945 -v -5.726139 -0.308772 -0.200643 -v -5.726139 -0.422297 -0.159566 -v -5.726139 -0.459680 -0.133130 -v -5.726139 -0.496644 -0.092946 -v -5.726139 -0.496644 0.000000 -v -5.463337 2.538391 0.000000 -v -5.463337 2.538391 -0.092946 -v -5.726139 0.475365 -0.135358 -v -5.726139 0.437082 -0.164022 -v -5.726139 0.392445 -0.187581 -v -5.726139 0.355620 -0.200596 -v -5.927646 0.255074 -0.230894 -v -6.684336 0.366154 -0.063359 -v -6.684336 0.340187 -0.066688 -v -6.684336 0.269287 -0.074438 -v -6.684336 0.163628 -0.079325 -v -6.684336 -0.036876 -0.074195 -v -6.684336 -0.101561 -0.066700 -v -6.684336 -0.146963 -0.056193 -v -6.684336 -0.161913 -0.049431 -v -6.684336 -0.176696 -0.032895 -v -6.684336 -0.176696 0.000000 -v -6.421535 2.538391 0.000000 -v -6.421535 2.538391 -0.032895 -v -6.684336 0.424625 -0.050001 -v -6.684336 0.397630 -0.057333 -v -5.604433 0.030233 -3.198227 -v -5.797521 -0.012666 -3.060199 -v -5.021369 0.017902 -3.196647 -v -4.818594 -0.032663 -3.060443 -v -5.604435 0.079761 -3.184031 -v -5.797521 0.137173 -3.022758 -v -5.021374 0.077262 -3.185613 -v -4.818594 0.140654 -3.023002 -v 6.572738 -0.194421 0.505845 -v 6.572553 -0.096294 0.535720 -v 6.361460 -0.103735 0.558472 -v 6.361460 -0.219626 0.515268 -v 6.572132 0.636542 0.156457 -v 6.361460 0.669865 0.156457 -v 6.574741 -0.745212 0.156457 -v 6.361460 -0.794649 0.156457 -v 6.576936 -0.182333 0.295363 -v 6.576936 -0.309463 0.356873 -v 6.576936 -0.453436 0.361991 -v 6.576936 -0.555708 0.299689 -v 6.576936 -0.587882 0.261854 -v 6.576936 -0.629809 0.141259 -v -6.421535 2.538391 0.032895 -v -6.684336 -0.176696 0.032895 -v -6.684336 -0.161913 0.049431 -v -6.684336 -0.146963 0.056193 -v -6.684336 -0.101561 0.066700 -v -6.684336 -0.036876 0.074195 -v -6.684336 0.163628 0.079325 -v -6.684336 0.269287 0.074438 -v -6.684336 0.340187 0.066688 -v -6.684336 0.366154 0.063359 -v -6.684336 0.397630 0.057333 -v -6.684336 0.424625 0.050001 -v 6.361460 0.207409 0.535484 -v 6.571836 0.207239 0.535484 -v 6.571951 0.389182 0.490883 -v 6.361460 0.398707 0.490883 -v 6.573818 -0.338568 0.473719 -v 6.361460 -0.378841 0.476876 -v 6.361460 -0.523492 0.464885 -v 6.574113 -0.480045 0.464885 -v 6.361460 0.561399 0.379419 -v 6.572050 0.530397 0.379419 -v 6.572089 0.583477 0.312522 -v 6.361460 0.615640 0.312522 -v 6.361460 0.028069 0.567064 -v 6.572061 0.027289 0.553741 -v 6.574482 -0.639148 0.369020 -v 6.361460 -0.686183 0.369020 -v 6.361460 -0.740424 0.307323 -v 6.574611 -0.692189 0.307323 -v 6.058460 -0.864940 0.156457 -v 6.058460 0.680933 0.156457 -v 6.058460 0.623695 0.312522 -v 6.058460 0.566441 0.379419 -v 6.058460 0.394712 0.490883 -v 6.058460 0.211786 0.535484 -v 6.058460 -0.042087 0.580071 -v 6.286466 -0.044879 0.580071 -v 6.058460 -0.247173 0.548869 -v 6.058460 -0.426032 0.510478 -v 6.058460 -0.578719 0.464885 -v 6.058460 -0.750448 0.369020 -v 6.058460 -0.807703 0.307323 -v 5.759059 -0.629551 0.464885 -v 5.759059 -0.806535 0.369020 -v 5.759059 -0.865547 0.307323 -v 5.759059 -0.924679 0.156457 -v 5.759059 0.688910 0.156457 -v 5.759059 0.633582 0.312522 -v 5.759059 0.574636 0.379419 -v 5.759059 0.397834 0.490883 -v 5.759059 0.218724 0.535484 -v 5.960793 0.108211 0.734260 -v 5.960786 0.126591 0.731008 -v 5.789646 0.140077 0.787883 -v 5.789646 0.121588 0.791111 -v 5.759059 -0.036405 0.580071 -v 5.759059 -0.274659 0.548869 -v 5.759059 -0.472355 0.510478 -v 5.674857 0.111792 0.729480 -v 5.674865 0.130383 0.726270 -v 5.414464 0.141636 0.787881 -v 5.414464 0.123345 0.791109 -v 5.384059 -0.034261 0.580071 -v 5.384059 -0.439481 0.533271 -v 5.634072 -0.409004 0.533271 -v 5.384059 -0.690861 0.464885 -v 5.384059 -0.877400 0.369020 -v 5.384059 -0.938690 0.307323 -v 5.384059 -1.000841 0.156457 -v 5.384059 0.701148 0.156457 -v 5.384059 0.640479 0.312522 -v 5.384059 0.579792 0.379419 -v 5.384059 0.397767 0.490883 -v 5.384059 0.218775 0.535484 -v 5.045059 0.651279 0.312522 -v 5.045059 0.590592 0.379419 -v 5.045059 0.408567 0.490883 -v 5.045059 0.222375 0.535484 -v 5.299691 0.112991 0.728876 -v 5.299676 0.131285 0.725579 -v 5.021476 0.143383 0.787885 -v 5.021476 0.124705 0.791117 -v 5.045059 -0.034608 0.580071 -v 5.045059 -0.455493 0.533271 -v 5.045059 -0.717533 0.464885 -v 5.045059 -0.914058 0.369020 -v 5.045059 -0.975665 0.307323 -v 5.045059 -1.038557 0.156457 -v 5.045059 0.711948 0.156457 -v 4.526059 0.718504 0.156457 -v 4.526059 0.658479 0.312522 -v 4.526059 0.597792 0.379419 -v 4.526059 0.414495 0.490883 -v 4.526059 0.230297 0.535484 -v 4.905266 0.114847 0.727001 -v 4.905259 0.133564 0.723708 -v 4.556577 0.149793 0.787895 -v 4.556577 0.130832 0.791149 -v 4.526059 -0.029135 0.580071 -v 4.526059 -0.498435 0.533271 -v 4.526059 -0.768878 0.464885 -v 4.526059 -0.974194 0.369020 -v 4.673659 -1.046356 0.307323 -v 4.526059 -1.109240 0.156457 -v 3.765859 -0.962355 0.628220 -v 3.913459 -1.100734 0.631323 -v 3.765859 -1.243404 0.610057 -v 3.765859 0.722259 0.156457 -v 3.765859 0.656899 0.312522 -v 3.765859 0.591162 0.379419 -v 3.765859 0.431232 0.490883 -v 3.765859 0.239029 0.535484 -v 4.068201 0.126643 0.729894 -v 4.068205 0.145550 0.726652 -v 3.811362 0.159363 0.787891 -v 3.811362 0.140609 0.791145 -v 3.765859 -0.018264 0.580071 -v 3.765859 -0.575051 0.533271 -v 3.765859 -0.787602 0.464885 -v 6.634465 0.607010 0.152369 -v 6.684336 0.571381 0.144191 -v 6.684336 0.526950 0.276394 -v 6.634446 0.556960 0.300481 -v 6.684336 0.489194 0.324534 -v 6.634429 0.509124 0.361126 -v 6.684336 0.352180 0.421582 -v 6.634385 0.375719 0.467785 -v 6.684336 0.195568 0.461057 -v 6.634334 0.203329 0.510677 -v 6.684336 0.031728 0.471195 -v 6.634434 0.028676 0.524650 -v 6.684336 -0.075913 0.450460 -v 6.634652 -0.088625 0.504625 -v 6.634734 -0.181332 0.478734 -v 6.684336 -0.164028 0.427821 -v 6.684336 -0.307884 0.397477 -v 6.635214 -0.323683 0.447942 -v 6.684336 -0.434718 0.390959 -v 6.635345 -0.459933 0.440246 -v 6.684336 -0.565572 0.311244 -v 6.635196 -0.609515 0.350011 -v 6.684336 -0.601128 0.269432 -v 6.634674 -0.657331 0.295157 -v 6.684336 -0.644809 0.143792 -v 6.634470 -0.707556 0.152436 -v 6.684336 -0.303959 0.380123 -v 6.684336 -0.163603 0.323078 -v 6.684336 -0.080699 0.402043 -v 6.684336 0.029323 0.441543 -v 6.684336 0.194024 0.451133 -v 6.684336 0.234120 0.435870 -v 6.684336 0.345796 0.407722 -v 6.684336 0.478740 0.313557 -v 6.684336 0.513554 0.269169 -v 6.684336 0.556381 0.141738 -v 6.684336 -0.629809 0.141259 -v 6.684336 -0.587882 0.261854 -v 6.684336 -0.555708 0.299689 -v 6.684336 -0.453436 0.361991 -v 6.684336 -0.431677 0.381101 -v 6.684336 -0.064552 0.375992 -v 6.684336 -0.145284 0.299096 -v 6.684336 0.036183 0.412612 -v 6.684336 -0.159855 0.290230 -v 6.684336 -0.149751 0.315557 -v 6.684336 -0.160612 0.305211 -v 6.684336 -0.174250 0.311456 -v 6.684336 -0.182333 0.295363 -v 6.684336 -0.430156 0.376173 -v 6.684336 0.193252 0.446172 -v 6.684336 -0.305939 0.371757 -v 6.684336 -0.309463 0.356873 -v 6.684336 -0.072625 0.389017 -v 6.684336 0.032698 0.427306 -v 5.759221 0.233548 0.620602 -v 6.058621 0.226609 0.620602 -v 6.058621 -0.027263 0.665190 -v 5.759221 -0.021581 0.665190 -v 5.384221 -0.019437 0.665190 -v 5.045221 -0.019784 0.665190 -v 4.526221 -0.014311 0.665190 -v 3.766021 -0.003440 0.665190 -v 3.766021 0.253853 0.620602 -v 4.526221 0.245120 0.620602 -v 5.045221 0.237199 0.620602 -v 5.384221 0.233599 0.620602 -v 5.759249 0.221346 0.637962 -v 6.043650 0.214751 0.637964 -v 5.384249 0.221400 0.637983 -v 4.991249 0.224993 0.637944 -v 4.526249 0.232911 0.637921 -v 3.781049 0.241471 0.637928 -v 4.153649 0.237191 0.637924 -v 4.526249 0.003046 0.677426 -v 4.153649 0.008374 0.677423 -v 3.781049 0.013703 0.677419 -v 4.991249 -0.002431 0.677403 -v 5.384249 -0.002091 0.677364 -v 5.759249 -0.004231 0.677385 -v 6.043650 -0.009627 0.677383 -v 4.183962 0.154575 0.787896 -v 4.183962 0.135704 0.791156 -v 4.440467 0.121757 0.729985 -v 4.440471 0.140779 0.726736 -v 5.789249 0.191094 0.643152 -v 6.013650 0.185887 0.643132 -v 6.013650 0.020499 0.672215 -v 5.789249 0.024753 0.672195 -v 5.414249 0.191845 0.643154 -v 5.729249 0.191804 0.643162 -v 5.729249 0.025487 0.672185 -v 5.414249 0.027289 0.672193 -v 5.021249 0.195170 0.643137 -v 5.354249 0.192117 0.643125 -v 5.354249 0.027439 0.672223 -v 5.021249 0.027142 0.672210 -v 4.556249 0.202835 0.643039 -v 4.961249 0.195935 0.643036 -v 4.961249 0.027488 0.672311 -v 4.556249 0.032255 0.672308 -v 4.496249 0.033041 0.672327 -v 4.183649 0.037514 0.672337 -v 4.183649 0.207279 0.643010 -v 4.496249 0.203690 0.643020 -v 3.811049 0.211563 0.643035 -v 4.123649 0.207974 0.643046 -v 4.123649 0.038366 0.672301 -v 3.811049 0.042839 0.672312 -v 6.013744 0.190352 0.668613 -v 6.013791 0.163037 0.686547 -v 6.013791 0.056743 0.705239 -v 6.013744 0.024964 0.697696 -v 5.789425 0.034935 0.730789 -v 5.817692 0.053548 0.739481 -v 5.817801 0.105656 0.767781 -v 5.817801 0.150825 0.759894 -v 5.817692 0.190334 0.715584 -v 5.817493 0.178872 0.649628 -v 5.817493 0.042083 0.673511 -v 5.789425 0.201277 0.701746 -v 5.729262 0.196275 0.668642 -v 5.729269 0.168957 0.686537 -v 5.729269 0.061747 0.705246 -v 5.729262 0.029958 0.697665 -v 5.414345 0.037478 0.730786 -v 5.442581 0.056106 0.739551 -v 5.442639 0.107638 0.767803 -v 5.442639 0.152130 0.759951 -v 5.442580 0.191110 0.715680 -v 5.442473 0.179635 0.649694 -v 5.442473 0.044623 0.673520 -v 5.414344 0.202034 0.701747 -v 5.354268 0.196573 0.668607 -v 5.354277 0.169258 0.686567 -v 5.354277 0.063664 0.705225 -v 5.354268 0.031894 0.697705 -v 5.021350 0.037316 0.730806 -v 5.049587 0.055925 0.739501 -v 5.049650 0.108573 0.767837 -v 5.049650 0.154380 0.759911 -v 5.049588 0.194393 0.715552 -v 5.049474 0.182947 0.649626 -v 5.049474 0.044480 0.673585 -v 5.021350 0.205343 0.701733 -v 4.961312 0.200337 0.668528 -v 4.961344 0.172981 0.686409 -v 4.961344 0.063648 0.705410 -v 4.961313 0.031890 0.697803 -v 4.556395 0.042375 0.730913 -v 4.584650 0.060952 0.739541 -v 4.584740 0.114373 0.767883 -v 4.584740 0.161148 0.759858 -v 4.584650 0.201967 0.715365 -v 4.584486 0.190592 0.649489 -v 4.584486 0.049580 0.673684 -v 4.556395 0.212955 0.701644 -v 4.212040 0.066199 0.739591 -v 4.212126 0.119341 0.767893 -v 4.212126 0.165810 0.759866 -v 4.212040 0.206401 0.715366 -v 4.211884 0.195036 0.649480 -v 4.211884 0.054834 0.673700 -v 4.183788 0.217388 0.701617 -v 4.496305 0.208081 0.668514 -v 4.496334 0.180709 0.686337 -v 4.496334 0.069195 0.705487 -v 4.496305 0.037432 0.697820 -v 4.183788 0.047623 0.730944 -v 4.123706 0.212384 0.668536 -v 4.123734 0.185025 0.686379 -v 4.123734 0.074544 0.705436 -v 4.123706 0.042776 0.697792 -v 3.811188 0.052967 0.730916 -v 3.839440 0.071553 0.739581 -v 3.839527 0.124375 0.767871 -v 3.839527 0.170450 0.759876 -v 3.839440 0.210716 0.715420 -v 3.839284 0.199327 0.649515 -v 3.839284 0.060161 0.673663 -v 3.811188 0.221690 0.701638 -v 5.789602 0.174496 0.766785 -v 5.978448 0.160837 0.712289 -v 5.996122 0.176713 0.696818 -v 5.789557 0.190434 0.748909 -v 5.414440 0.175656 0.766784 -v 5.693003 0.165481 0.709168 -v 5.711139 0.181998 0.695272 -v 5.414416 0.191394 0.748909 -v 5.021451 0.178178 0.766780 -v 5.317865 0.165980 0.708639 -v 5.336073 0.182393 0.694991 -v 5.021425 0.194306 0.748900 -v 4.556540 0.185169 0.766745 -v 4.923947 0.169028 0.707369 -v 4.942648 0.185785 0.694319 -v 4.556504 0.201594 0.748841 -v 4.183927 0.189772 0.766732 -v 4.459093 0.176621 0.709414 -v 4.477716 0.193451 0.695334 -v 4.183892 0.206109 0.748821 -v 3.811327 0.194324 0.766739 -v 4.086716 0.181162 0.709368 -v 4.105228 0.197878 0.695322 -v 3.811293 0.210542 0.748835 -v 5.978462 0.068958 0.728487 -v 5.789602 0.082080 0.782921 -v 5.789557 0.061050 0.771500 -v 5.996129 0.048074 0.719460 -v 5.692987 0.072871 0.725261 -v 5.414440 0.084232 0.782917 -v 5.414416 0.063399 0.771496 -v 5.711131 0.052529 0.717831 -v 5.317894 0.074511 0.724930 -v 5.021451 0.084825 0.782933 -v 5.021425 0.063610 0.771514 -v 5.336088 0.054313 0.717686 -v 4.923962 0.075456 0.723712 -v 4.556540 0.090398 0.783005 -v 4.556504 0.068913 0.771606 -v 4.942656 0.054771 0.717128 -v 4.459085 0.081705 0.725677 -v 4.183927 0.095454 0.783025 -v 4.183892 0.074062 0.771632 -v 4.477712 0.060663 0.718120 -v 4.086708 0.086824 0.725603 -v 3.811327 0.100585 0.783005 -v 3.811293 0.079304 0.771607 -v 4.105224 0.065899 0.718068 -v 5.789506 0.044538 0.756843 -v 5.789492 0.053562 0.750364 -v 5.789293 0.042097 0.684394 -v 5.789293 0.178886 0.660511 -v 5.789492 0.190348 0.726466 -v 5.789506 0.201029 0.729515 -v 5.789601 0.150840 0.770777 -v 5.789631 0.155988 0.780030 -v 5.789601 0.105671 0.778663 -v 5.789631 0.103959 0.789114 -v 5.414388 0.047085 0.756851 -v 5.414381 0.056113 0.750396 -v 5.414273 0.044631 0.684364 -v 5.414273 0.179643 0.660539 -v 5.414381 0.191118 0.726524 -v 5.414388 0.201792 0.729534 -v 5.414440 0.152138 0.770796 -v 5.414456 0.157327 0.780035 -v 5.414440 0.107646 0.778647 -v 5.414456 0.105921 0.789107 -v 5.021396 0.046912 0.756849 -v 5.021388 0.055933 0.750348 -v 5.021275 0.044489 0.684432 -v 5.021275 0.182955 0.660473 -v 5.021388 0.194402 0.726400 -v 5.021396 0.205087 0.729484 -v 5.021451 0.154389 0.770758 -v 5.021467 0.159499 0.780023 -v 5.021451 0.108581 0.778684 -v 5.021467 0.106883 0.789127 -v 4.556461 0.051943 0.756944 -v 4.556449 0.060963 0.750409 -v 4.556286 0.049591 0.684552 -v 4.556286 0.190604 0.660357 -v 4.556450 0.201979 0.726233 -v 4.556462 0.212670 0.729373 -v 4.556540 0.161160 0.770726 -v 4.556565 0.166219 0.780004 -v 4.556540 0.114385 0.778751 -v 4.556564 0.112713 0.789185 -v 4.183852 0.057188 0.756981 -v 4.183840 0.066210 0.750456 -v 4.183684 0.054845 0.684565 -v 4.183684 0.195047 0.660345 -v 4.183840 0.206412 0.726231 -v 4.183852 0.217099 0.729354 -v 4.183927 0.165821 0.770731 -v 4.183950 0.170900 0.780002 -v 4.183927 0.119353 0.778758 -v 4.183950 0.117677 0.789196 -v 3.811252 0.062541 0.756958 -v 3.811241 0.071564 0.750446 -v 3.811084 0.060172 0.684528 -v 3.811084 0.199338 0.660380 -v 3.811241 0.210728 0.726285 -v 3.811252 0.221412 0.729386 -v 3.811327 0.170461 0.770741 -v 3.811350 0.175562 0.780006 -v 3.811327 0.124387 0.778736 -v 3.811350 0.122702 0.789178 -v 2.080458 -0.044641 0.580071 -v 2.080458 -0.639738 0.533271 -v 2.958858 -0.755430 0.464885 -v 2.958858 -0.938409 0.628220 -v 1.797642 -1.111711 8.387530 -v 1.797642 -1.186562 8.382774 -v 2.273984 -1.179377 8.486926 -v 2.273984 -1.104526 8.491683 -v 2.958858 -1.348629 0.610057 -v 2.930218 0.704509 0.156457 -v 2.890618 0.634652 0.312522 -v 2.890618 0.564392 0.379419 -v 2.876219 0.393459 0.490883 -v 2.080458 0.230355 0.535484 -v 2.369463 1.082385 0.355012 -v 2.220967 1.202554 0.354093 -v 2.203136 1.002782 0.414086 -v 2.436418 0.357459 0.490883 -v 2.473427 0.371387 0.481801 -v 2.473918 0.357459 0.490883 -v 2.436418 0.321287 0.500775 -v 1.626258 0.230355 0.535484 -v 1.626258 -0.044641 0.580071 -v 1.626258 -0.639738 0.533271 -v 1.626258 -0.798630 0.464885 -v 1.626258 -0.938409 0.628220 -v 1.626258 -1.348629 0.610057 -v 2.218233 1.270108 0.194992 -v 2.219124 1.231449 0.321312 -v 2.367620 1.111280 0.322231 -v 0.619036 1.147625 0.329246 -v 1.198729 1.286221 0.329246 -v 1.198709 1.327066 0.201033 -v -1.167794 0.704509 0.156457 -v -1.079142 0.634652 0.312522 -v 1.198729 1.251091 0.362695 -v -0.966887 0.564392 0.379419 -v 0.619036 1.112495 0.362695 -v 0.650207 1.022778 0.402545 -v -0.886830 0.482470 0.434400 -v 1.121248 0.444280 0.481952 -v -0.869141 0.230355 0.535484 -v 1.421248 0.357287 0.500775 -v 1.121248 0.371687 0.500775 -v -0.869141 0.414887 0.464775 -v -0.869141 -0.044641 0.580071 -v -0.869141 -0.639738 0.533271 -v -0.869141 -0.870630 0.464885 -v -0.605987 -1.078982 0.628220 -v -0.605987 -1.132629 0.610057 -v 2.164830 1.286676 0.201846 -v 2.164657 1.209415 0.363608 -v 2.164556 1.245486 0.330265 -v 1.346727 1.296032 0.329246 -v 1.346727 1.260902 0.362695 -v -0.869141 0.451059 0.454883 -v 2.184413 1.007165 0.415509 -v 2.164928 1.007475 0.416100 -v 2.398921 0.394306 0.483900 -v 1.421248 0.430267 0.483714 -v 1.421248 0.393459 0.490883 -v 1.121248 0.407859 0.490883 -v 2.202622 1.240752 0.326490 -v 2.202622 1.205622 0.359939 -v 2.184142 1.244235 0.329568 -v 2.184142 1.209105 0.363017 -v 2.201731 1.279411 0.200170 -v 2.184417 1.285425 0.201149 -v 1.346234 1.064003 0.413891 -v 1.198236 1.054193 0.413891 -v -1.006543 -1.615830 0.464885 -v -1.006543 -1.824182 0.369020 -v -0.605987 -1.201591 0.631323 -v -1.373742 0.704509 0.156457 -v -1.271461 0.634652 0.312522 -v -1.158709 0.564392 0.379419 -v -1.006543 0.482470 0.434400 -v -1.006543 0.414887 0.464775 -v -1.006543 0.230355 0.535484 -v -1.006543 -0.044641 0.580071 -v -1.006543 -0.639738 0.533271 -v -1.655142 -0.639738 0.506574 -v -1.655142 -1.414323 0.441612 -v -1.655142 -1.622674 0.350546 -v -1.655142 -1.691284 0.291938 -v -1.006543 -1.892791 0.307323 -v -1.655142 -1.759121 0.148625 -v -1.006543 -1.960629 0.156457 -v -1.655142 0.704509 0.148625 -v -1.655142 0.634652 0.296876 -v -1.655142 0.564392 0.360425 -v -1.655142 0.482471 0.412653 -v -1.655142 0.414887 0.441507 -v -1.655142 0.230355 0.508676 -v -1.655142 -0.044641 0.551031 -v 0.654074 -1.743844 0.466038 -v 0.654074 -1.799869 0.315172 -v 0.791476 -1.416797 0.433712 -v 0.654074 -1.687181 0.527734 -v -0.361405 -1.095250 1.664383 -v 1.629640 -0.974871 1.664383 -v 2.962241 -0.974871 1.664383 -v 3.308442 -0.999037 1.657746 -v 3.456042 -1.116736 1.668975 -v 3.308442 -1.260532 1.657578 -v 2.962241 -1.365507 1.664820 -v 1.629640 -1.365507 1.664820 -v -0.361405 -1.150019 1.649955 -v 2.978287 -0.959703 8.145055 -v 3.186722 -0.983870 8.138417 -v 3.186722 -1.047697 8.145931 -v 3.186722 -1.112480 8.129084 -v 2.978287 -1.217455 8.136325 -v 2.175970 -1.217455 8.136325 -v 1.081943 -1.106119 8.128645 -v 1.081943 -1.080082 8.145055 -v 2.175970 -0.959703 8.145055 -v 2.711147 -1.104526 8.491683 -v 2.824718 -1.059287 8.383914 -v 2.824718 -1.094065 8.388008 -v 2.824718 -1.129364 8.378828 -v 2.711147 -1.179377 8.486926 -v 0.489037 -1.838894 0.460791 -v 0.489037 -1.770285 0.522487 -v 0.626440 -1.442896 0.430831 -v 0.489037 -1.906732 0.309925 -v -2.174141 0.397137 0.397356 -v -2.174141 0.228038 0.457809 -v -2.174141 -0.023960 0.495928 -v -2.174141 -0.569288 0.455917 -v -2.174141 -1.262241 0.397451 -v -2.174141 -1.453168 0.315491 -v -2.174141 -1.516039 0.262744 -v -2.174141 -1.578203 0.133762 -v -2.174141 0.662537 0.133762 -v -2.174141 0.598522 0.267189 -v -2.174141 0.534139 0.324382 -v -2.174141 0.459068 0.371388 -v -2.693141 0.565465 0.240470 -v -2.693141 0.508870 0.291944 -v -2.693141 0.442880 0.334249 -v -2.693141 0.388440 0.357621 -v -2.693141 0.239795 0.412028 -v -2.693141 0.018279 0.446335 -v -2.693141 -0.461086 0.410325 -v -2.693141 -0.925453 0.357706 -v -2.693141 -1.093286 0.283942 -v -2.693141 -1.148552 0.236470 -v -2.693141 -1.203197 0.120386 -v -2.693141 0.621737 0.120386 -v -3.492939 0.557402 0.108348 -v -3.492939 0.513374 0.216423 -v -3.492939 0.469093 0.262750 -v -3.492939 0.417462 0.300824 -v -3.492939 0.374867 0.321859 -v -3.492939 0.258566 0.370825 -v -3.492939 0.085249 0.401702 -v -3.492939 -0.289812 0.369293 -v -3.492939 -0.502944 0.321935 -v -3.492939 -0.634258 0.255548 -v -3.492939 -0.677499 0.212823 -v -3.492939 -0.720255 0.108348 -v -4.296339 -0.594212 0.216555 -v -4.296339 -0.637453 0.180677 -v -4.296339 -0.680209 0.092946 -v -4.818340 0.679802 0.092946 -v -4.296339 0.513374 0.183700 -v -4.296339 0.469093 0.222602 -v -4.296339 0.417462 0.254574 -v -4.296339 0.374867 0.272238 -v -4.296339 0.258566 0.313356 -v -4.296339 0.085249 0.339284 -v -4.296339 -0.289812 0.312069 -v -4.296339 -0.462899 0.272302 -v -5.927646 0.105235 0.249998 -v -5.726139 -0.219019 0.229945 -v -5.726139 -0.308772 0.200643 -v -5.726139 -0.422297 0.159566 -v -5.726139 -0.459680 0.133130 -v -5.726139 -0.496644 0.092946 -v -5.463337 2.538391 0.092946 -v -5.726139 0.475365 0.135358 -v -5.726139 0.437082 0.164022 -v -5.726139 0.392445 0.187581 -v -5.726139 0.355620 0.200596 -v -5.927646 0.255074 0.230894 -v -5.021374 0.077262 3.185613 -v -5.604435 0.079761 3.184031 -v -5.604433 0.030233 3.198227 -v -5.021369 0.017902 3.196647 -v -5.797521 0.137173 3.022758 -v -4.818594 0.140654 3.023002 -v -4.818594 -0.032663 3.060443 -v -5.797521 -0.012666 3.060199 -v 6.942926 -1.766178 0.103431 -v 6.979002 -1.766170 0.076686 -v 6.957718 -1.898720 0.042740 -v 6.922789 -1.898728 0.070967 -v 6.935572 -1.368499 0.119729 -v 6.974705 -1.368492 0.097697 -v 6.914673 -0.829704 0.125437 -v 6.956964 -0.829700 0.110327 -v 6.900251 -0.517542 0.119161 -v 6.943820 -0.517538 0.108274 -v 6.887431 -0.226759 0.107292 -v 6.931813 -0.226757 0.100433 -v 6.878496 0.004158 0.092472 -v 6.923258 0.004159 0.088854 -v 6.872898 0.183762 0.075226 -v 6.917793 0.183763 0.074143 -v 6.871572 0.239352 0.072843 -v 6.916480 0.239353 0.072546 -v 6.828905 -1.898695 -0.045206 -v 6.863833 -1.898686 -0.073434 -v 6.843751 -1.766116 -0.105749 -v 6.807674 -1.766124 -0.079004 -v 6.851248 -1.368428 -0.121590 -v 6.812115 -1.368434 -0.099558 -v 6.872295 -0.829629 -0.126652 -v 6.830005 -0.829634 -0.111542 -v 6.886778 -0.517471 -0.119992 -v 6.843209 -0.517475 -0.109104 -v 6.899636 -0.226696 -0.107761 -v 6.855254 -0.226698 -0.100901 -v 6.908589 0.004212 -0.092651 -v 6.863826 0.004212 -0.089034 -v 6.914193 0.183807 -0.075180 -v 6.869297 0.183807 -0.074097 -v 6.915519 0.239396 -0.072727 -v 6.870612 0.239396 -0.072430 -v 6.941214 0.365903 2.029515 -v 6.977266 0.339125 2.029531 -v 6.955834 0.305159 2.162052 -v 6.920930 0.333417 2.162038 -v 6.934228 0.382324 1.631834 -v 6.973341 0.360259 1.631856 -v 6.913813 0.388212 1.093023 -v 6.956090 0.373064 1.093051 -v 6.899663 0.382040 0.780846 -v 6.943222 0.371114 0.780879 -v 6.887091 0.370269 0.490049 -v 6.931466 0.363370 0.490084 -v 6.878348 0.355525 0.259119 -v 6.923107 0.351867 0.259157 -v 6.872894 0.338338 0.079505 -v 6.917789 0.337215 0.079544 -v 6.871615 0.335972 0.023912 -v 6.916523 0.335635 0.023952 -v 6.826943 0.217327 2.161885 -v 6.861846 0.189069 2.161900 -v 6.841852 0.156810 2.029302 -v 6.805800 0.183588 2.029286 -v 6.849690 0.141082 1.631616 -v 6.810576 0.163148 1.631594 -v 6.871212 0.136160 1.092836 -v 6.828934 0.151307 1.092807 -v 6.885977 0.142899 0.780692 -v 6.842418 0.153826 0.780660 -v 6.899105 0.155205 0.489932 -v 6.854729 0.162104 0.489896 -v 6.908276 0.170375 0.259036 -v 6.863517 0.174033 0.258999 -v 6.914055 0.187895 0.079452 -v 6.869161 0.189018 0.079413 -v 6.915433 0.190364 0.023865 -v 6.870526 0.190701 0.023825 -v 6.943109 2.292618 -0.101995 -v 6.979137 2.292594 -0.075185 -v 6.957792 2.425125 -0.041198 -v 6.922914 2.425150 -0.069488 -v 6.935783 1.894950 -0.118541 -v 6.974877 1.894930 -0.096440 -v 6.914895 1.356158 -0.124605 -v 6.957159 1.356144 -0.109421 -v 6.900462 1.043993 -0.118540 -v 6.944012 1.043983 -0.107575 -v 6.887621 0.753203 -0.106866 -v 6.931991 0.753197 -0.099928 -v 6.878660 0.522277 -0.092199 -v 6.923416 0.522274 -0.088501 -v 6.873032 0.342663 -0.075070 -v 6.917925 0.342661 -0.073907 -v 6.871701 0.287070 -0.072721 -v 6.916608 0.287070 -0.072344 -v 6.828823 2.425047 0.046518 -v 6.863701 2.425022 0.074807 -v 6.843561 2.292433 0.107009 -v 6.807533 2.292456 0.080199 -v 6.851032 1.894735 0.122626 -v 6.811937 1.894755 0.100525 -v 6.872070 1.355934 0.127408 -v 6.829806 1.355947 0.112223 -v 6.886564 1.043780 0.120589 -v 6.843014 1.043790 0.109624 -v 6.899444 0.753012 0.108208 -v 6.855074 0.753018 0.101270 -v 6.908424 0.522112 0.092978 -v 6.863667 0.522115 0.089280 -v 6.914059 0.342529 0.075410 -v 6.869165 0.342529 0.074247 -v 6.915390 0.286941 0.072925 -v 6.870483 0.286941 0.072549 -v 6.944822 0.161679 -2.029341 -v 6.980874 0.188457 -2.029277 -v 6.959677 0.222503 -2.161817 -v 6.924774 0.194244 -2.161881 -v 6.937128 0.145022 -1.631683 -v 6.976243 0.167088 -1.631622 -v 6.915756 0.138816 -1.092913 -v 6.958033 0.153964 -1.092857 -v 6.901051 0.144802 -0.780758 -v 6.944610 0.155728 -0.780707 -v 6.887961 0.156401 -0.489977 -v 6.932338 0.163300 -0.489929 -v 6.878808 0.171008 -0.259054 -v 6.923568 0.174665 -0.259010 -v 6.873035 0.188089 -0.079440 -v 6.917930 0.189212 -0.079398 -v 6.871657 0.190422 -0.023848 -v 6.916565 0.190759 -0.023808 -v 6.830786 0.310333 -2.161827 -v 6.865690 0.338591 -2.161763 -v 6.845460 0.370772 -2.029181 -v 6.809408 0.343994 -2.029245 -v 6.852591 0.386265 -1.631473 -v 6.813478 0.364198 -1.631534 -v 6.873154 0.390867 -1.092652 -v 6.830877 0.375720 -1.092707 -v 6.887365 0.383943 -0.780487 -v 6.843806 0.373017 -0.780538 -v 6.899976 0.371465 -0.489711 -v 6.855599 0.364566 -0.489758 -v 6.908737 0.356158 -0.258808 -v 6.863977 0.352501 -0.258852 -v 6.914196 0.338531 -0.079225 -v 6.869302 0.337409 -0.079266 -v 6.915476 0.336030 -0.023637 -v 6.870568 0.335693 -0.023677 -v 7.431191 0.263190 0.000391 -v 7.322116 0.390445 0.000327 -v 7.140324 0.511639 0.000219 -v 6.891874 0.596476 0.000072 -v 6.770679 0.614655 0.000000 -v 6.770679 0.360146 0.000000 -v 6.455573 0.360146 -0.000187 -v 6.455573 0.263190 -0.000187 -v 7.322154 0.373402 -0.063290 -v 7.140398 0.478366 -0.123984 -v 6.891973 0.551841 -0.166542 -v 6.770783 0.567585 -0.175702 -v 6.770708 0.347161 -0.048470 -v 6.455602 0.347161 -0.048656 -v 7.322182 0.326839 -0.109867 -v 7.140451 0.387457 -0.214920 -v 6.892045 0.429890 -0.288530 -v 6.770860 0.438982 -0.304343 -v 6.770729 0.311685 -0.083957 -v 6.455623 0.311685 -0.084144 -v 7.322192 0.263228 -0.126928 -v 7.140471 0.263263 -0.248230 -v 6.892072 0.263288 -0.333214 -v 6.770888 0.263294 -0.351465 -v 6.770737 0.263219 -0.096956 -v 6.455630 0.263219 -0.097143 -v 7.322182 0.199606 -0.109904 -v 7.140451 0.139050 -0.214994 -v 6.892045 0.096661 -0.288628 -v 6.770860 0.087578 -0.304447 -v 6.770729 0.214745 -0.083986 -v 6.455623 0.214745 -0.084173 -v 7.322154 0.153015 -0.063355 -v 7.140398 0.048088 -0.124112 -v 6.891973 -0.025362 -0.166714 -v 6.770784 -0.041101 -0.175883 -v 6.770708 0.179247 -0.048520 -v 6.455602 0.179247 -0.048706 -v 7.322116 0.135935 0.000251 -v 7.140324 0.014740 0.000072 -v 6.891874 -0.070096 -0.000126 -v 6.770679 -0.088275 -0.000208 -v 6.770679 0.166234 -0.000058 -v 6.455573 0.166234 -0.000244 -v 7.322079 0.152940 0.063878 -v 7.140250 0.047940 0.124295 -v 6.891776 -0.025559 0.166516 -v 6.770576 -0.041309 0.175522 -v 6.770651 0.179190 0.048420 -v 6.455544 0.179190 0.048233 -v 7.322051 0.199475 0.110482 -v 7.140196 0.138795 0.215285 -v 6.891704 0.096319 0.288574 -v 6.770499 0.087217 0.304239 -v 6.770630 0.214645 0.083928 -v 6.455523 0.214645 0.083741 -v 7.322041 0.263077 0.127581 -v 7.140177 0.262969 0.248669 -v 6.891677 0.262894 0.333358 -v 6.770471 0.262878 0.351465 -v 6.770622 0.263104 0.096956 -v 6.455515 0.263104 0.096769 -v 7.322051 0.326708 0.110595 -v 7.140196 0.387202 0.215505 -v 6.891703 0.429548 0.288870 -v 6.770499 0.438622 0.304551 -v 6.770630 0.311585 0.084014 -v 6.455523 0.311585 0.083827 -v 7.322078 0.373327 0.064074 -v 7.140250 0.478218 0.124678 -v 6.891776 0.551643 0.167028 -v 6.770575 0.567377 0.176063 -v 6.770651 0.347104 0.048569 -v 6.455544 0.347104 0.048382 -vn -0.999996 0.000509 -0.002924 -vn 1.000000 -0.000087 0.000506 -vn -0.999999 0.000276 -0.001577 -vn 1.000000 -0.000122 0.000716 -vn -0.999999 0.000299 -0.001674 -vn 0.999997 -0.000413 0.002411 -vn -0.999997 0.000412 -0.002415 -vn -0.999997 0.000394 -0.002296 -vn 0.999998 -0.000370 0.002152 -vn 0.999998 -0.000371 0.002156 -vn -0.999997 0.000397 -0.002305 -vn -0.999996 0.000504 -0.002881 -vn -0.065375 0.983158 0.170664 -vn 0.355426 0.160761 -0.920776 -vn 0.065370 -0.983160 -0.170658 -vn -0.065441 0.983121 0.170854 -vn 0.354195 0.162521 -0.920941 -vn 0.065426 -0.983121 -0.170858 -vn -0.065325 0.983174 0.170593 -vn 0.354468 0.159426 -0.921377 -vn 0.065325 -0.983174 -0.170591 -vn -0.064994 0.983360 0.169642 -vn 0.355139 0.158085 -0.921350 -vn 0.064957 -0.983364 -0.169635 -vn -0.064908 0.983396 0.169465 -vn 0.354994 0.159140 -0.921224 -vn 0.064913 -0.983394 -0.169478 -vn -0.065033 0.983333 0.169785 -vn 0.354954 0.159832 -0.921120 -vn 0.065014 -0.983335 -0.169782 -vn 0.999997 -0.000222 0.002254 -vn 0.999997 -0.000500 0.002245 -vn 0.999997 -0.000503 0.002315 -vn 0.999997 -0.000498 0.002326 -vn 0.999998 -0.000220 0.002197 -vn 0.999998 -0.000440 0.002182 -vn 0.999998 -0.000492 0.001967 -vn 0.999997 -0.000327 0.002525 -vn 0.999997 -0.000494 0.002412 -vn 0.999999 -0.000304 0.001670 -vn 0.999999 0.000000 0.001517 -vn 0.999999 -0.000336 0.001498 -vn 0.999999 -0.000105 0.001599 -vn 0.999999 -0.000465 0.001534 -vn 0.999999 -0.000318 0.001527 -vn 0.999995 -0.000721 0.002924 -vn 0.999996 -0.000228 0.002758 -vn 0.999996 -0.000597 0.002733 -vn 0.999996 -0.000412 0.002932 -vn 0.999999 -0.000157 0.001554 -vn 0.999999 -0.000203 0.001692 -vn 0.999997 -0.000544 0.002342 -vn 0.999997 -0.000349 0.002365 -vn 0.999997 -0.000377 0.002311 -vn 0.944728 0.327855 0.000000 -vn -0.998866 0.008822 -0.046775 -vn -0.999996 0.000507 0.002924 -vn 1.000000 -0.000089 -0.000506 -vn -0.999999 0.000276 0.001577 -vn 1.000000 -0.000127 -0.000716 -vn -0.999999 0.000295 0.001674 -vn 0.999997 -0.000415 -0.002411 -vn -0.999997 0.000415 0.002415 -vn -0.999997 0.000394 0.002296 -vn 0.999998 -0.000368 -0.002152 -vn 0.999998 -0.000373 -0.002156 -vn -0.999997 0.000399 0.002305 -vn -0.065375 0.983158 -0.170664 -vn 0.355426 0.160763 0.920776 -vn 0.065371 -0.983159 0.170660 -vn -0.065440 0.983121 -0.170851 -vn 0.354195 0.162521 0.920941 -vn 0.065426 -0.983121 0.170858 -vn -0.065325 0.983174 -0.170593 -vn 0.354468 0.159427 0.921377 -vn 0.065325 -0.983174 0.170591 -vn -0.064994 0.983360 -0.169642 -vn 0.355139 0.158085 0.921350 -vn 0.064958 -0.983363 0.169638 -vn -0.064908 0.983396 -0.169465 -vn 0.354994 0.159141 0.921224 -vn 0.064913 -0.983394 0.169479 -vn -0.065032 0.983333 -0.169784 -vn 0.354954 0.159832 0.921120 -vn 0.065014 -0.983335 0.169782 -vn 0.999997 -0.000222 -0.002254 -vn 0.999997 -0.000500 -0.002245 -vn 0.999997 -0.000503 -0.002315 -vn 0.999997 -0.000498 -0.002326 -vn 0.999998 -0.000220 -0.002197 -vn 0.999998 -0.000440 -0.002182 -vn 0.999998 -0.000492 -0.001967 -vn 0.999997 -0.000327 -0.002525 -vn 0.999997 -0.000494 -0.002412 -vn 0.999999 -0.000304 -0.001670 -vn 0.999999 0.000000 -0.001517 -vn 0.999999 -0.000336 -0.001498 -vn 0.999999 -0.000105 -0.001599 -vn 0.999999 -0.000465 -0.001534 -vn 0.999999 -0.000318 -0.001527 -vn 0.999995 -0.000721 -0.002924 -vn 0.999996 -0.000228 -0.002758 -vn 0.999996 -0.000597 -0.002733 -vn 0.999996 -0.000412 -0.002932 -vn 0.999999 -0.000157 -0.001554 -vn 0.999999 -0.000203 -0.001692 -vn 0.999997 -0.000544 -0.002342 -vn 0.999997 -0.000349 -0.002365 -vn 0.999997 -0.000377 -0.002311 -vn 0.944728 0.327855 0.000000 -vn -0.998866 0.008822 0.046775 -vn 0.000000 -1.000000 -0.000291 -vn 0.000000 1.000000 0.000300 -vn -0.000893 -0.000591 0.999999 -vn 0.000895 0.000592 -0.999999 -vn 0.000000 1.000000 0.000884 -vn 0.000000 -1.000000 -0.000888 -vn 0.000880 0.001178 -0.999999 -vn -0.000882 -0.001184 0.999999 -vn 0.096543 0.995329 0.000000 -vn 0.225895 -0.974152 0.000000 -vn 0.093444 0.981504 -0.167085 -vn 0.078277 0.869366 -0.487929 -vn 0.048151 0.679173 -0.732397 -vn 0.016114 0.409757 -0.912052 -vn 0.009874 0.193892 -0.980973 -vn 0.080102 -0.323205 -0.942933 -vn 0.134491 -0.628115 -0.766410 -vn 0.189452 -0.843497 -0.502614 -vn 0.220937 -0.960529 -0.169029 -vn 0.205772 -0.962646 -0.175985 -vn 0.210852 -0.977518 0.000000 -vn 0.031569 0.999502 0.000000 -vn 0.030678 0.984732 -0.171354 -vn 0.024688 0.865180 -0.500854 -vn 0.012766 0.660960 -0.750313 -vn 0.003883 0.396901 -0.917853 -vn 0.002162 0.214863 -0.976642 -vn 0.024868 -0.070126 -0.997228 -vn 0.079626 -0.365264 -0.927492 -vn 0.121403 -0.614870 -0.779228 -vn 0.174347 -0.837447 -0.517964 -vn 0.063430 -0.376392 -0.924286 -vn 0.111642 -0.601284 -0.791197 -vn 0.161824 -0.830605 -0.532831 -vn 0.192401 -0.964049 -0.183281 -vn 0.197353 -0.980332 0.000000 -vn 0.029626 0.999561 0.000000 -vn 0.028237 0.984248 -0.174523 -vn 0.022063 0.859203 -0.511159 -vn 0.012260 0.648326 -0.761264 -vn 0.004503 0.391865 -0.920012 -vn 0.002010 0.240473 -0.970654 -vn 0.005836 -0.130388 -0.991446 -vn 0.002520 0.239500 -0.970893 -vn 0.004657 -0.116984 -0.993123 -vn 0.016127 -0.190798 -0.981497 -vn 0.044936 -0.361851 -0.931152 -vn 0.085278 -0.589725 -0.803089 -vn 0.126417 -0.827960 -0.546352 -vn 0.151028 -0.969986 -0.190571 -vn 0.154960 -0.987921 0.000000 -vn 0.032230 0.999480 0.000000 -vn 0.030006 0.983103 -0.180577 -vn 0.022677 0.853219 -0.521059 -vn 0.014089 0.640435 -0.767883 -vn 0.006391 0.386887 -0.922105 -vn 0.019300 0.850624 -0.525419 -vn 0.014418 0.637512 -0.770306 -vn 0.007942 0.383236 -0.923616 -vn 0.004082 0.235712 -0.971814 -vn 0.003245 -0.108577 -0.994083 -vn 0.011353 -0.181311 -0.983360 -vn 0.031852 -0.347614 -0.937096 -vn 0.064590 -0.556543 -0.828304 -vn 0.107632 -0.819845 -0.562378 -vn 0.125923 -0.976026 -0.177531 -vn 0.122769 -0.992435 0.000000 -vn 0.019224 0.999815 0.000000 -vn 0.020491 0.983648 -0.178930 -vn 0.154402 -0.988008 0.000000 -vn 0.007829 0.999969 0.000000 -vn 0.007481 0.984219 -0.176794 -vn 0.005097 0.846608 -0.532192 -vn 0.004176 0.638782 -0.769376 -vn 0.004357 0.387784 -0.921740 -vn 0.003493 0.232368 -0.972622 -vn 0.003851 -0.097708 -0.995208 -vn 0.011886 -0.179770 -0.983637 -vn 0.064435 -0.200229 -0.977628 -vn 0.175325 -0.176463 -0.968567 -vn 0.268466 -0.638399 -0.721369 -vn 0.201092 -0.960276 -0.193473 -vn 0.280788 0.660043 -0.696779 -vn 0.696050 -0.209643 -0.686705 -vn 0.297302 -0.944222 -0.141618 -vn 0.129141 -0.991626 0.000000 -vn -0.006092 0.999981 0.000000 -vn -0.008250 0.981578 -0.190882 -vn -0.011129 0.833814 -0.551934 -vn -0.010156 0.636620 -0.771111 -vn -0.004448 0.402782 -0.915285 -vn -0.000807 0.216468 -0.976289 -vn 0.001476 -0.002218 -0.999996 -vn 0.007075 -0.206109 -0.978503 -vn 0.058209 0.055564 -0.996757 -vn 0.090270 -0.252225 -0.963449 -vn 0.076699 -0.177294 -0.981165 -vn 0.057598 -0.200244 -0.978052 -vn 0.072827 -0.223005 -0.972093 -vn 0.029634 -0.162793 -0.986215 -vn 0.042608 -0.194130 -0.980050 -vn 0.047877 -0.235596 -0.970671 -vn 0.088586 0.036443 -0.995402 -vn 0.101391 -0.044491 -0.993851 -vn 0.120682 -0.183597 -0.975565 -vn 0.892552 0.445033 -0.072774 -vn 0.889192 0.457535 0.000000 -vn 0.896724 0.389637 -0.209924 -vn 0.908323 0.294080 -0.297433 -vn 0.923173 0.167007 -0.346208 -vn 0.926185 0.059650 -0.372321 -vn 0.930481 -0.018877 -0.365854 -vn 0.932505 -0.078773 -0.352460 -vn 0.931712 -0.084581 -0.353213 -vn 0.929360 -0.047991 -0.366043 -vn 0.935095 -0.102512 -0.339246 -vn 0.939066 -0.222023 -0.262415 -vn 0.943348 -0.287376 -0.165860 -vn 0.945089 -0.322182 -0.054816 -vn 0.944161 -0.329485 0.000000 -vn 0.506738 0.862100 0.000000 -vn 0.295199 0.955436 0.000000 -vn 0.294953 0.942578 -0.156686 -vn 0.512376 0.847389 -0.139294 -vn 0.281016 0.841550 -0.461327 -vn 0.516533 0.752832 -0.407968 -vn 0.250628 0.676794 -0.692196 -vn 0.532717 0.596996 -0.599840 -vn 0.216804 0.419373 -0.881545 -vn 0.558116 0.363016 -0.746141 -vn 0.206375 0.172213 -0.963199 -vn 0.562304 0.134508 -0.815918 -vn 0.244446 -0.005427 -0.969648 -vn 0.586639 -0.032139 -0.809211 -vn 0.272488 -0.207830 -0.939445 -vn 0.601496 -0.174000 -0.779697 -vn 0.261876 -0.252058 -0.931605 -vn 0.595896 -0.192994 -0.779526 -vn 0.230128 -0.139008 -0.963181 -vn 0.579252 -0.108411 -0.807907 -vn 0.256808 -0.286024 -0.923168 -vn 0.603172 -0.231930 -0.763146 -vn 0.316493 -0.608910 -0.727366 -vn 0.633396 -0.498629 -0.591759 -vn 0.360565 -0.805607 -0.470097 -vn 0.658206 -0.651321 -0.377551 -vn 0.383849 -0.910033 -0.156526 -vn 0.669788 -0.731966 -0.124941 -vn 0.385167 -0.922847 0.000000 -vn 0.667722 -0.744411 0.000000 -vn 1.000000 -0.000003 0.000000 -vn 1.000000 -0.000020 0.000000 -vn 1.000000 -0.000004 0.000000 -vn 1.000000 -0.000004 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000005 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000006 0.000000 -vn 1.000000 -0.000005 0.000000 -vn 1.000000 0.000009 0.000000 -vn 1.000000 0.000009 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000036 0.000000 -vn 1.000000 -0.000007 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000003 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000011 0.000000 -vn 1.000000 -0.000023 0.000000 -vn 1.000000 -0.000008 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000006 0.000000 -vn 1.000000 -0.000027 0.000000 -vn 1.000000 -0.000036 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000004 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000004 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000118 0.041779 -0.999127 -vn 0.004361 -0.241410 -0.970413 -vn 0.008088 0.177899 -0.984015 -vn 0.014506 0.911985 -0.409966 -vn 0.066062 -0.997725 0.013449 -vn 0.042067 -0.999115 0.000000 -vn 0.328847 0.944383 0.000000 -vn 0.210143 0.953980 -0.213921 -vn 0.310136 0.801340 -0.511537 -vn 0.135811 0.548046 -0.825349 -vn -0.025188 0.448375 -0.893490 -vn -0.008098 0.250078 -0.968192 -vn 0.036677 0.248498 -0.967938 -vn -0.007024 0.260000 -0.965583 -vn 0.000000 0.041117 -0.999154 -vn 0.003777 -0.229714 -0.973251 -vn -0.007993 0.188495 -0.982042 -vn -0.027910 0.912583 -0.407938 -vn -0.037452 -0.998552 -0.038624 -vn -0.023984 -0.999712 0.000000 -vn 0.339704 0.940533 0.000000 -vn -0.133410 0.991061 0.000000 -vn -0.088761 0.970649 -0.223523 -vn -0.115128 0.815953 -0.566539 -vn -0.069032 0.486006 -0.871225 -vn -0.196272 0.304785 -0.931978 -vn -0.000503 0.244794 -0.969575 -vn 0.000000 0.041117 -0.999154 -vn 0.075248 -0.150999 -0.985666 -vn -0.058861 0.090750 -0.994133 -vn -0.223013 0.483736 -0.846324 -vn 0.032285 -0.055227 -0.997952 -vn 0.029338 -0.836754 -0.546792 -vn -0.048325 -0.998832 0.000000 -vn -0.116349 0.993208 0.000000 -vn -0.000728 0.285135 -0.958487 -vn 0.009044 0.233697 -0.972268 -vn -0.013201 0.132175 -0.991138 -vn -0.004652 0.310945 -0.950416 -vn -0.018855 0.447342 -0.894164 -vn 0.043458 0.440540 -0.896680 -vn 0.003916 0.157116 -0.987572 -vn 0.006671 0.275006 -0.961419 -vn -0.014593 0.201752 -0.979328 -vn -0.000354 0.275012 -0.961441 -vn -0.123125 0.363192 -0.923543 -vn -0.114732 0.318831 -0.940842 -vn 0.609271 0.792962 0.000000 -vn 0.058337 0.998297 0.000000 -vn 0.197793 0.214288 -0.956535 -vn 0.304132 0.472189 -0.827370 -vn 0.128468 0.480293 -0.867649 -vn 0.065978 0.189378 -0.979685 -vn 0.383183 0.789276 -0.479806 -vn 0.430408 0.871019 -0.236801 -vn 0.190432 0.945960 -0.262479 -vn 0.166458 0.834950 -0.524548 -vn 0.049704 0.851931 -0.521290 -vn 0.056490 0.967265 -0.247400 -vn 0.576789 0.789410 -0.210110 -vn 0.541155 0.732740 -0.412606 -vn 0.581176 0.677308 -0.451097 -vn 0.384395 0.460905 -0.799879 -vn 0.443801 0.510231 -0.736685 -vn 0.000427 0.177360 -0.984146 -vn 0.032994 0.482791 -0.875114 -vn 0.009100 0.407303 -0.913248 -vn -0.000105 0.181530 -0.983385 -vn 0.035850 0.860189 -0.508714 -vn -0.025353 0.194003 -0.980673 -vn -0.057223 0.467260 -0.882266 -vn -0.118863 0.422606 -0.898485 -vn -0.059832 0.238478 -0.969303 -vn -0.098458 0.840329 -0.533060 -vn -0.061775 0.969422 -0.237498 -vn -0.232898 0.803810 -0.547401 -vn -0.143590 -0.795741 -0.588369 -vn -0.141811 -0.967321 -0.210191 -vn -0.132215 -0.991221 0.000000 -vn 0.000000 1.000000 0.000000 -vn -0.003805 0.977194 -0.212315 -vn -0.011263 0.810119 -0.586157 -vn -0.014934 0.612838 -0.790067 -vn -0.015544 0.475502 -0.879577 -vn -0.016986 0.379868 -0.924885 -vn -0.019762 0.257273 -0.966137 -vn -0.021477 0.040608 -0.998944 -vn 0.050288 -0.085461 -0.995072 -vn -0.106372 -0.161111 -0.981187 -vn -0.111393 -0.445081 -0.888535 -vn -0.077229 -0.077284 -0.994013 -vn -0.127649 -0.242163 -0.961802 -vn -0.206479 -0.521637 -0.827805 -vn -0.271257 -0.765705 -0.583195 -vn -0.310725 -0.927582 -0.207465 -vn -0.312974 -0.949762 0.000000 -vn -0.040337 0.999186 0.000000 -vn -0.046535 0.974924 -0.217619 -vn -0.056074 0.801126 -0.595864 -vn -0.060043 0.600440 -0.797413 -vn -0.060965 0.463805 -0.883837 -vn -0.062809 0.369571 -0.927077 -vn -0.067524 0.249810 -0.965938 -vn -0.073146 0.039379 -0.996544 -vn -0.069726 0.997341 -0.021186 -vn -0.034886 0.999214 -0.018813 -vn 0.032197 0.999302 -0.018955 -vn 0.411150 0.906523 -0.095771 -vn 0.976876 0.025959 -0.212226 -vn 0.527427 -0.844375 -0.094086 -vn 0.135009 -0.990750 -0.013653 -vn -0.051866 -0.998619 -0.008406 -vn -0.103589 -0.994531 -0.013352 -vn 0.046793 0.976775 -0.209096 -vn 0.457431 0.798407 -0.391541 -vn 0.847454 -0.018415 -0.530549 -vn 0.630059 -0.666311 -0.398818 -vn 0.231409 -0.953935 -0.190937 -vn -0.043369 -0.998008 -0.045816 -vn -0.207819 -0.893378 -0.398355 -vn -0.229995 0.765419 -0.601029 -vn -0.045652 0.977629 -0.205324 -vn -0.259232 -0.528097 -0.808649 -vn -0.260944 0.261958 -0.929132 -vn -0.095869 0.521504 -0.847846 -vn 0.248125 0.539662 -0.804487 -vn 0.516214 0.366865 -0.773908 -vn 0.604854 -0.053684 -0.794525 -vn 0.612852 -0.315056 -0.724674 -vn 0.375445 -0.548659 -0.747004 -vn -0.093425 -0.706458 -0.701562 -vn 0.199035 -0.800251 -0.565670 -vn 0.042273 -0.328413 -0.943588 -vn 0.025681 0.159732 -0.986826 -vn 0.300600 -0.953750 0.000000 -vn 0.278571 -0.940195 -0.196039 -vn 0.942300 -0.334770 0.000000 -vn 0.784540 -0.620079 0.000000 -vn 0.698871 -0.703626 -0.128414 -vn 0.646387 -0.662210 -0.379027 -vn 0.545333 -0.308626 -0.779334 -vn 0.643198 0.013530 -0.765581 -vn -0.084206 0.363731 -0.927690 -vn -0.087661 0.245638 -0.965390 -vn -0.098013 0.038713 -0.994432 -vn -0.109844 -0.081303 -0.990618 -vn -0.186310 -0.240439 -0.952616 -vn -0.304684 -0.500675 -0.810242 -vn -0.401035 -0.723077 -0.562432 -vn -0.458050 -0.866633 -0.197831 -vn -0.462277 -0.886736 0.000000 -vn -0.079489 0.996836 0.000000 -vn -0.083433 0.972138 -0.219061 -vn -0.085615 0.798350 -0.596077 -vn -0.084580 0.601225 -0.794591 -vn -0.084314 0.462244 -0.882735 -vn -0.076338 0.809012 -0.582814 -vn -0.069369 0.616683 -0.784149 -vn -0.065168 0.477120 -0.876419 -vn -0.061681 0.376950 -0.924177 -vn -0.062003 0.255222 -0.964892 -vn -0.073929 0.040324 -0.996448 -vn -0.097517 -0.098392 -0.990358 -vn -0.202468 -0.260945 -0.943883 -vn -0.355273 -0.504010 -0.787245 -vn -0.475706 -0.702539 -0.529285 -vn -0.544375 -0.819047 -0.181157 -vn -0.551755 -0.834006 0.000000 -vn -0.079275 0.996853 0.000000 -vn -0.080490 0.973956 -0.211972 -vn -0.292192 -0.956360 0.000000 -vn 0.005911 0.999983 0.000000 -vn -0.010045 0.957199 -0.289256 -vn -0.037078 0.765770 -0.642045 -vn -0.049204 0.630291 -0.774798 -vn -0.051020 0.489962 -0.870250 -vn -0.052345 0.388216 -0.920081 -vn -0.056114 0.263335 -0.963071 -vn -0.064667 0.041643 -0.997038 -vn -0.077768 -0.131092 -0.988315 -vn -0.127193 -0.302169 -0.944731 -vn -0.199676 -0.542251 -0.816146 -vn -0.258426 -0.782296 -0.566771 -vn -0.290983 -0.935773 -0.199146 -vn -0.081828 -0.522507 -0.848699 -vn -0.087270 -0.774273 -0.626805 -vn -0.090272 -0.966499 -0.240272 -vn -0.088629 -0.996065 0.000000 -vn 0.091958 0.995763 0.000000 -vn 0.035578 0.626193 -0.778856 -vn -0.023493 0.613633 -0.789242 -vn -0.042544 0.598927 -0.799673 -vn -0.049535 0.459947 -0.886564 -vn -0.054183 0.371894 -0.926692 -vn -0.061990 0.293182 -0.954045 -vn -0.069005 -0.000585 -0.997616 -vn -0.068773 -0.159516 -0.984797 -vn -0.074360 -0.316209 -0.945771 -vn -0.156648 -0.039216 -0.986876 -vn -0.131359 -0.173162 -0.976094 -vn -0.134864 -0.288527 -0.947926 -vn -0.155348 -0.454765 -0.876958 -vn -0.186067 -0.682064 -0.707225 -vn -0.221422 -0.924455 -0.310412 -vn -0.223083 -0.974799 0.000000 -vn -0.016518 0.019447 -0.999674 -vn -0.047409 0.316835 -0.947295 -vn -0.082045 0.496204 -0.864321 -vn -0.089743 0.368982 -0.925094 -vn -0.097611 0.337583 -0.936221 -vn -0.138302 0.279381 -0.950168 -vn -0.129405 0.305064 -0.943499 -vn -0.144895 0.317413 -0.937152 -vn -0.182430 0.240311 -0.953399 -vn -0.205468 -0.016514 -0.978525 -vn -0.196732 -0.176165 -0.964501 -vn -0.191382 -0.265461 -0.944936 -vn -0.215512 -0.415006 -0.883926 -vn -0.258760 -0.620424 -0.740350 -vn -0.316544 -0.883601 -0.345034 -vn -0.316717 -0.948520 0.000000 -vn -0.076263 0.023801 -0.996804 -vn -0.095773 0.259282 -0.961041 -vn -0.117053 0.420661 -0.899635 -vn 0.261876 -0.252058 0.931605 -vn 0.272488 -0.207830 0.939445 -vn 0.120682 -0.183597 0.975565 -vn 0.090270 -0.252224 0.963449 -vn 0.294953 0.942577 0.156687 -vn 0.093444 0.981504 0.167085 -vn 0.383850 -0.910033 0.156526 -vn 0.220937 -0.960529 0.169029 -vn -0.076263 0.023801 0.996804 -vn -0.316544 -0.883602 0.345034 -vn -0.258760 -0.620423 0.740350 -vn -0.215512 -0.415005 0.883926 -vn -0.191382 -0.265461 0.944936 -vn -0.196732 -0.176166 0.964501 -vn -0.205468 -0.016515 0.978525 -vn -0.182430 0.240311 0.953399 -vn -0.144895 0.317413 0.937152 -vn -0.129405 0.305064 0.943499 -vn -0.117053 0.420661 0.899635 -vn -0.095773 0.259282 0.961041 -vn 0.009874 0.193892 0.980973 -vn 0.206375 0.172213 0.963199 -vn 0.216804 0.419374 0.881545 -vn 0.016114 0.409757 0.912052 -vn 0.230128 -0.139008 0.963181 -vn 0.076699 -0.177294 0.981165 -vn 0.080102 -0.323205 0.942933 -vn 0.256808 -0.286024 0.923168 -vn 0.048151 0.679173 0.732397 -vn 0.250628 0.676795 0.692196 -vn 0.281017 0.841550 0.461327 -vn 0.078277 0.869366 0.487929 -vn 0.088586 0.036443 0.995402 -vn 0.244446 -0.005428 0.969648 -vn 0.316493 -0.608910 0.727366 -vn 0.134491 -0.628115 0.766410 -vn 0.189452 -0.843497 0.502614 -vn 0.360565 -0.805606 0.470097 -vn 0.205772 -0.962646 0.175985 -vn 0.030678 0.984732 0.171354 -vn 0.024688 0.865180 0.500854 -vn 0.012766 0.660960 0.750313 -vn 0.003883 0.396901 0.917853 -vn 0.002162 0.214863 0.976642 -vn 0.024868 -0.070126 0.997228 -vn 0.101391 -0.044491 0.993851 -vn 0.057598 -0.200244 0.978052 -vn 0.072827 -0.223005 0.972093 -vn 0.079626 -0.365264 0.927492 -vn 0.121403 -0.614870 0.779228 -vn 0.174347 -0.837447 0.517964 -vn 0.063430 -0.376392 0.924286 -vn 0.111642 -0.601284 0.791197 -vn 0.161824 -0.830605 0.532831 -vn 0.192401 -0.964049 0.183281 -vn 0.028237 0.984248 0.174523 -vn 0.022063 0.859203 0.511159 -vn 0.012260 0.648326 0.761264 -vn 0.004503 0.391865 0.920012 -vn 0.002010 0.240473 0.970654 -vn 0.005836 -0.130388 0.991446 -vn 0.029634 -0.162793 0.986215 -vn 0.047877 -0.235596 0.970671 -vn 0.004657 -0.116984 0.993123 -vn 0.016127 -0.190798 0.981497 -vn 0.042608 -0.194130 0.980050 -vn 0.044936 -0.361851 0.931152 -vn 0.085278 -0.589725 0.803089 -vn 0.126417 -0.827960 0.546352 -vn 0.151028 -0.969986 0.190571 -vn 0.030006 0.983103 0.180577 -vn 0.022677 0.853219 0.521059 -vn 0.014089 0.640435 0.767883 -vn 0.006391 0.386887 0.922105 -vn 0.002520 0.239500 0.970893 -vn 0.019300 0.850624 0.525419 -vn 0.014418 0.637512 0.770306 -vn 0.007942 0.383236 0.923616 -vn 0.004082 0.235712 0.971814 -vn 0.003246 -0.108577 0.994083 -vn 0.011353 -0.181311 0.983360 -vn 0.031852 -0.347614 0.937096 -vn 0.064590 -0.556543 0.828304 -vn 0.107632 -0.819845 0.562378 -vn 0.125923 -0.976026 0.177531 -vn 0.020491 0.983648 0.178930 -vn 0.007481 0.984219 0.176794 -vn 0.005097 0.846608 0.532192 -vn 0.004176 0.638782 0.769376 -vn 0.004357 0.387784 0.921740 -vn 0.003493 0.232368 0.972622 -vn 0.003852 -0.097708 0.995208 -vn 0.011886 -0.179770 0.983637 -vn 0.064435 -0.200229 0.977628 -vn 0.175325 -0.176463 0.968567 -vn 0.268466 -0.638399 0.721369 -vn 0.201092 -0.960276 0.193473 -vn 0.280788 0.660043 0.696779 -vn 0.696050 -0.209643 0.686705 -vn 0.297302 -0.944222 0.141618 -vn -0.008250 0.981578 0.190882 -vn -0.011129 0.833814 0.551934 -vn -0.010156 0.636620 0.771111 -vn -0.004448 0.402782 0.915285 -vn -0.000807 0.216468 0.976289 -vn 0.001476 -0.002218 0.999996 -vn 0.007075 -0.206109 0.978503 -vn 0.058209 0.055564 0.996757 -vn 0.512377 0.847389 0.139294 -vn 0.892555 0.445027 0.072774 -vn 0.896726 0.389633 0.209924 -vn 0.516532 0.752833 0.407968 -vn 0.908323 0.294081 0.297433 -vn 0.532717 0.596997 0.599839 -vn 0.923173 0.167008 0.346207 -vn 0.558116 0.363016 0.746140 -vn 0.926185 0.059651 0.372321 -vn 0.562304 0.134509 0.815918 -vn 0.930481 -0.018877 0.365854 -vn 0.586638 -0.032140 0.809211 -vn 0.932505 -0.078773 0.352460 -vn 0.601496 -0.174000 0.779697 -vn 0.595896 -0.192994 0.779526 -vn 0.931712 -0.084581 0.353213 -vn 0.929360 -0.047991 0.366043 -vn 0.579252 -0.108411 0.807907 -vn 0.935095 -0.102512 0.339246 -vn 0.603172 -0.231930 0.763146 -vn 0.939066 -0.222023 0.262415 -vn 0.633396 -0.498629 0.591759 -vn 0.943348 -0.287375 0.165860 -vn 0.658208 -0.651320 0.377552 -vn 0.945090 -0.322181 0.054816 -vn 0.669789 -0.731964 0.124941 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000017 0.000000 -vn 1.000000 -0.000013 0.000000 -vn 1.000000 -0.000004 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000005 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000003 0.000000 -vn 1.000000 -0.000013 0.000000 -vn 1.000000 0.000009 0.000000 -vn 1.000000 0.000009 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000036 0.000000 -vn 1.000000 -0.000027 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000003 0.000000 -vn 1.000000 -0.000009 0.000000 -vn 1.000000 -0.000020 0.000000 -vn 1.000000 -0.000023 0.000000 -vn 1.000000 -0.000008 0.000000 -vn 1.000000 -0.000036 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000003 0.000000 -vn 1.000000 -0.000006 0.000000 -vn 1.000000 -0.000013 0.000000 -vn 1.000000 -0.000004 0.000000 -vn 0.000118 0.041779 0.999127 -vn 0.004361 -0.241410 0.970413 -vn 0.008088 0.177899 0.984015 -vn 0.014506 0.911985 0.409966 -vn -0.260943 0.261958 0.929132 -vn -0.259232 -0.528097 0.808649 -vn -0.093425 -0.706458 0.701562 -vn -0.095869 0.521504 0.847846 -vn 0.066062 -0.997725 -0.013449 -vn 0.210143 0.953980 0.213921 -vn 0.310136 0.801340 0.511537 -vn 0.135811 0.548046 0.825349 -vn -0.025188 0.448375 0.893490 -vn -0.008098 0.250078 0.968192 -vn 0.443801 0.510231 0.736685 -vn 0.384395 0.460904 0.799880 -vn 0.197793 0.214288 0.956535 -vn 0.036677 0.248498 0.967938 -vn 0.043458 0.440540 0.896680 -vn -0.018855 0.447342 0.894164 -vn -0.004652 0.310945 0.950416 -vn -0.007024 0.260000 0.965583 -vn 0.000000 0.041117 0.999154 -vn 0.003777 -0.229714 0.973251 -vn -0.007993 0.188495 0.982042 -vn -0.027910 0.912583 0.407938 -vn -0.037452 -0.998552 0.038624 -vn 0.576789 0.789410 0.210110 -vn 0.541156 0.732739 0.412607 -vn 0.581176 0.677308 0.451097 -vn -0.232898 0.803810 0.547401 -vn -0.098458 0.840329 0.533060 -vn -0.061775 0.969422 0.237498 -vn -0.088761 0.970649 0.223523 -vn -0.115128 0.815953 0.566539 -vn -0.057223 0.467260 0.882266 -vn -0.069032 0.486006 0.871225 -vn -0.118863 0.422606 0.898485 -vn -0.059832 0.238478 0.969303 -vn -0.123125 0.363192 0.923543 -vn -0.014593 0.201752 0.979328 -vn -0.000503 0.244794 0.969575 -vn 0.006671 0.275006 0.961419 -vn -0.000354 0.275012 0.961441 -vn -0.114732 0.318831 0.940842 -vn 0.000000 0.041117 0.999154 -vn 0.075248 -0.150999 0.985666 -vn -0.058861 0.090750 0.994133 -vn -0.223013 0.483736 0.846324 -vn 0.029338 -0.836754 0.546792 -vn 0.056490 0.967265 0.247401 -vn 0.032994 0.482791 0.875114 -vn 0.049705 0.851930 0.521291 -vn 0.035850 0.860189 0.508714 -vn 0.009100 0.407303 0.913248 -vn -0.196272 0.304785 0.931978 -vn 0.065978 0.189378 0.979685 -vn 0.000427 0.177360 0.984146 -vn -0.013201 0.132175 0.991138 -vn 0.003916 0.157116 0.987572 -vn 0.009044 0.233697 0.972268 -vn -0.000728 0.285135 0.958487 -vn 0.383184 0.789275 0.479807 -vn 0.304132 0.472188 0.827371 -vn 0.166458 0.834949 0.524549 -vn 0.128468 0.480293 0.867649 -vn 0.430408 0.871019 0.236801 -vn 0.190432 0.945960 0.262480 -vn -0.000105 0.181530 0.983385 -vn -0.025353 0.194003 0.980673 -vn -0.106372 -0.161111 0.981187 -vn -0.111393 -0.445081 0.888535 -vn 0.032285 -0.055227 0.997952 -vn -0.003805 0.977194 0.212315 -vn -0.011263 0.810119 0.586157 -vn -0.014934 0.612838 0.790067 -vn -0.015544 0.475502 0.879577 -vn -0.016986 0.379868 0.924885 -vn -0.019762 0.257273 0.966137 -vn -0.021477 0.040608 0.998944 -vn 0.050288 -0.085461 0.995072 -vn -0.077229 -0.077284 0.994013 -vn -0.127649 -0.242163 0.961802 -vn -0.206479 -0.521637 0.827805 -vn -0.271257 -0.765705 0.583195 -vn -0.143590 -0.795741 0.588369 -vn -0.310725 -0.927582 0.207465 -vn -0.141811 -0.967321 0.210191 -vn -0.046535 0.974924 0.217619 -vn -0.056074 0.801126 0.595864 -vn -0.060043 0.600440 0.797413 -vn -0.060965 0.463805 0.883837 -vn -0.062809 0.369571 0.927077 -vn -0.067524 0.249810 0.965938 -vn -0.073146 0.039379 0.996544 -vn 0.646387 -0.662210 0.379027 -vn 0.698871 -0.703626 0.128414 -vn 0.643198 0.013530 0.765581 -vn 0.545333 -0.308626 0.779334 -vn -0.069726 0.997341 0.021186 -vn -0.034886 0.999214 0.018813 -vn 0.032197 0.999302 0.018955 -vn 0.411150 0.906523 0.095771 -vn 0.976876 0.025959 0.212226 -vn 0.527427 -0.844375 0.094086 -vn 0.135008 -0.990750 0.013653 -vn -0.051866 -0.998619 0.008406 -vn -0.103589 -0.994531 0.013352 -vn 0.046793 0.976775 0.209096 -vn 0.457431 0.798407 0.391541 -vn 0.847454 -0.018415 0.530549 -vn 0.630058 -0.666312 0.398818 -vn 0.231408 -0.953936 0.190937 -vn -0.043369 -0.998008 0.045816 -vn -0.207819 -0.893378 0.398356 -vn -0.229995 0.765419 0.601029 -vn -0.045652 0.977629 0.205324 -vn 0.248124 0.539662 0.804487 -vn 0.516213 0.366866 0.773908 -vn 0.604853 -0.053684 0.794526 -vn 0.612852 -0.315056 0.724674 -vn 0.375444 -0.548659 0.747005 -vn 0.199035 -0.800251 0.565670 -vn 0.042273 -0.328413 0.943588 -vn 0.025681 0.159732 0.986826 -vn 0.278571 -0.940195 0.196039 -vn -0.084206 0.363731 0.927690 -vn -0.087661 0.245638 0.965390 -vn -0.098013 0.038713 0.994432 -vn -0.109844 -0.081303 0.990618 -vn -0.186310 -0.240439 0.952616 -vn -0.304684 -0.500675 0.810242 -vn -0.401035 -0.723077 0.562432 -vn -0.458050 -0.866633 0.197831 -vn -0.083433 0.972138 0.219061 -vn -0.085615 0.798350 0.596077 -vn -0.084581 0.601225 0.794591 -vn -0.084315 0.462244 0.882735 -vn -0.076338 0.809012 0.582814 -vn -0.069369 0.616683 0.784149 -vn -0.065168 0.477120 0.876419 -vn -0.061681 0.376950 0.924177 -vn -0.062003 0.255222 0.964892 -vn -0.073929 0.040324 0.996448 -vn -0.097517 -0.098392 0.990358 -vn -0.202468 -0.260945 0.943883 -vn -0.355274 -0.504010 0.787245 -vn -0.475706 -0.702539 0.529285 -vn -0.544375 -0.819047 0.181157 -vn -0.080490 0.973956 0.211972 -vn -0.010045 0.957199 0.289256 -vn -0.037078 0.765770 0.642045 -vn -0.049204 0.630291 0.774798 -vn -0.051020 0.489962 0.870250 -vn -0.052345 0.388216 0.920081 -vn -0.056114 0.263335 0.963071 -vn -0.064667 0.041643 0.997038 -vn -0.077768 -0.131092 0.988315 -vn -0.127193 -0.302169 0.944731 -vn -0.199676 -0.542251 0.816146 -vn -0.258426 -0.782296 0.566771 -vn -0.290983 -0.935773 0.199146 -vn -0.081828 -0.522507 0.848699 -vn -0.087270 -0.774273 0.626805 -vn -0.090272 -0.966499 0.240272 -vn 0.035578 0.626193 0.778856 -vn -0.023493 0.613633 0.789242 -vn -0.042544 0.598927 0.799673 -vn -0.049535 0.459947 0.886564 -vn -0.054183 0.371894 0.926692 -vn -0.061990 0.293182 0.954045 -vn -0.069005 -0.000585 0.997616 -vn -0.068773 -0.159516 0.984797 -vn -0.074360 -0.316209 0.945771 -vn -0.156648 -0.039216 0.986876 -vn -0.131359 -0.173162 0.976094 -vn -0.134864 -0.288527 0.947926 -vn -0.155348 -0.454765 0.876958 -vn -0.186067 -0.682064 0.707225 -vn -0.221422 -0.924455 0.310412 -vn -0.016518 0.019447 0.999674 -vn -0.047409 0.316835 0.947295 -vn -0.082045 0.496204 0.864321 -vn -0.089743 0.368982 0.925094 -vn -0.097611 0.337583 0.936221 -vn -0.138302 0.279380 0.950168 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.022725 0.984893 0.171666 -vn 0.715093 0.688205 0.122535 -vn 0.700503 -0.703494 -0.119966 -vn -0.018573 -0.984982 -0.171657 -vn 0.442431 0.581662 -0.682586 -vn 0.828765 0.201586 -0.522027 -vn 0.595042 0.762626 -0.253627 -vn 0.073398 0.993862 -0.082776 -vn 0.186778 0.813074 -0.551384 -vn 0.271517 0.532244 -0.801870 -vn 0.312600 0.295061 -0.902896 -vn 0.406128 0.246469 -0.879950 -vn 0.384743 0.412823 -0.825560 -vn 0.374997 -0.108303 -0.920678 -vn 0.402864 0.068195 -0.912716 -vn 0.307486 0.029894 -0.951083 -vn 0.256398 -0.229557 -0.938916 -vn 0.158240 -0.581157 -0.798258 -vn 0.033661 -0.908984 -0.415470 -vn 0.576129 -0.641576 -0.506414 -vn 0.827259 -0.011722 -0.561698 -vn 0.427580 -0.317928 -0.846225 -vn 0.000045 0.985135 0.171780 -vn 0.000045 0.985135 0.171780 -vn -0.005544 -0.985119 -0.171785 -vn -0.005544 -0.985119 -0.171785 -vn 0.377820 0.593820 -0.710373 -vn 0.577384 0.292620 -0.762235 -vn 0.268424 0.910044 -0.315860 -vn 0.036618 0.995773 -0.084236 -vn 0.122776 0.819215 -0.560190 -vn 0.190407 0.540732 -0.819362 -vn 0.224767 0.301336 -0.926648 -vn 0.325503 0.252839 -0.911109 -vn 0.307451 0.421201 -0.853267 -vn 0.306652 -0.106375 -0.945859 -vn 0.325248 0.070885 -0.942968 -vn 0.224404 0.031012 -0.974003 -vn 0.189302 -0.229516 -0.954718 -vn 0.119973 -0.580100 -0.805662 -vn 0.031666 -0.908463 -0.416765 -vn 0.264101 -0.749828 -0.606637 -vn 0.576238 -0.017632 -0.817092 -vn 0.375761 -0.317792 -0.870524 -vn 0.008960 0.985157 0.171423 -vn 0.008960 0.985157 0.171423 -vn 0.000935 -0.985198 -0.171416 -vn 0.000935 -0.985198 -0.171416 -vn 0.373069 0.592621 -0.713876 -vn 0.569460 0.296695 -0.766608 -vn 0.270451 0.908442 -0.318732 -vn 0.043793 0.995221 -0.087272 -vn 0.123610 0.815411 -0.565531 -vn 0.184339 0.537627 -0.822786 -vn 0.214410 0.302118 -0.928845 -vn 0.315467 0.254667 -0.914126 -vn 0.299932 0.420076 -0.856491 -vn 0.297474 -0.103792 -0.949071 -vn 0.314621 0.073484 -0.946369 -vn 0.213042 0.032909 -0.976489 -vn 0.180362 -0.227654 -0.956892 -vn 0.117003 -0.577311 -0.808098 -vn 0.035696 -0.907578 -0.418365 -vn 0.265422 -0.747956 -0.608369 -vn 0.570069 -0.015393 -0.821453 -vn 0.370563 -0.315056 -0.873741 -vn 0.016785 0.985270 0.170180 -vn 0.016785 0.985270 0.170180 -vn -0.011599 -0.985345 -0.170180 -vn -0.011599 -0.985345 -0.170180 -vn 0.263594 -0.100529 -0.959381 -vn 0.279464 0.073947 -0.957304 -vn 0.176949 0.033429 -0.983652 -vn 0.147213 -0.223117 -0.963612 -vn 0.158458 0.532069 -0.831741 -vn 0.180876 0.299274 -0.936867 -vn 0.282002 0.252841 -0.925498 -vn 0.270953 0.416038 -0.868042 -vn 0.349082 0.591007 -0.727223 -vn 0.539755 0.302162 -0.785725 -vn 0.260661 0.907674 -0.328912 -vn 0.046183 0.994578 -0.093173 -vn 0.110928 0.810103 -0.575698 -vn 0.090567 -0.571837 -0.815352 -vn 0.018597 -0.906518 -0.421758 -vn 0.239519 -0.748313 -0.618594 -vn 0.537460 -0.019386 -0.843066 -vn 0.338057 -0.313692 -0.887308 -vn 0.011307 0.985318 0.170356 -vn 0.011307 0.985318 0.170356 -vn -0.014082 -0.985281 -0.170364 -vn -0.014082 -0.985281 -0.170364 -vn 0.198078 0.531781 -0.823392 -vn 0.229448 0.296405 -0.927091 -vn 0.327668 0.248963 -0.911400 -vn 0.311452 0.414058 -0.855309 -vn 0.305501 -0.103344 -0.946567 -vn 0.325647 0.070835 -0.942834 -vn 0.226346 0.031618 -0.973534 -vn 0.189093 -0.224545 -0.955941 -vn 0.380063 0.587823 -0.714154 -vn 0.573061 0.292839 -0.765406 -vn 0.274385 0.906358 -0.321290 -vn 0.048915 0.994705 -0.090387 -vn 0.133893 0.811542 -0.568746 -vn 0.116769 -0.574284 -0.810286 -vn 0.024644 -0.907276 -0.419813 -vn 0.255015 -0.749365 -0.611081 -vn 0.570098 -0.020160 -0.821329 -vn 0.370111 -0.315507 -0.873770 -vn 0.000000 0.989089 0.147320 -vn 0.000000 0.867991 0.496580 -vn 0.000000 0.649261 0.760565 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -0.435535 0.900172 -vn 0.000000 -0.240696 0.970601 -vn 0.000000 0.253023 0.967460 -vn 0.000000 0.649261 0.760565 -vn 0.000000 0.253023 0.967460 -vn 0.000000 -0.240696 0.970601 -vn 0.000000 -0.435535 0.900172 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.989089 0.147320 -vn 0.000000 0.867991 0.496580 -vn 0.000000 -0.435535 -0.900172 -vn 0.000000 -0.240696 -0.970601 -vn 0.000000 0.253023 -0.967460 -vn 0.000000 0.649261 -0.760565 -vn 0.000000 0.867991 -0.496580 -vn 0.000000 0.989089 -0.147320 -vn 0.000000 0.989089 -0.147320 -vn 0.000000 0.867991 -0.496580 -vn 0.000000 0.649261 -0.760565 -vn 0.000000 0.253023 -0.967460 -vn 0.000000 -0.435535 -0.900172 -vn 0.000000 -0.240696 -0.970601 -vn 0.000000 -0.996917 0.078467 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -0.996917 0.078467 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -0.996917 -0.078467 -vn 0.000000 -0.996917 -0.078467 -vn 0.715131 0.688397 0.121236 -vn 0.700465 -0.703326 -0.121167 -vn 0.011480 0.985103 0.171583 -vn -0.012163 -0.985095 -0.171583 -vn 0.005298 0.985155 0.171583 -vn -0.002312 -0.985168 -0.171577 -vn 0.012748 0.985087 0.171583 -vn -0.004690 -0.985159 -0.171580 -vn 0.013175 0.985082 0.171580 -vn -0.012238 -0.985094 -0.171583 -vn -0.703094 0.700778 0.120703 -vn -0.712068 -0.691469 -0.121780 -vn 0.206549 0.360936 -0.909430 -vn 0.620159 0.681677 -0.388226 -vn 0.011378 0.975827 -0.218247 -vn 0.004881 0.415620 -0.909525 -vn 0.005059 0.975327 -0.220709 -vn 0.001946 0.414682 -0.909965 -vn 0.012601 0.974265 -0.225051 -vn 0.005085 0.410836 -0.911695 -vn 0.013212 0.974751 -0.222903 -vn 0.005680 0.411152 -0.911549 -vn -0.194631 0.359866 -0.912477 -vn -0.604869 0.690602 -0.396488 -vn -0.199265 -0.031938 -0.979425 -vn -0.614347 -0.511882 -0.600463 -vn -0.010591 -0.845778 -0.533430 -vn -0.001003 -0.085844 -0.996308 -vn -0.004126 -0.845554 -0.533874 -vn -0.000144 -0.084531 -0.996421 -vn -0.001988 -0.844281 -0.535897 -vn -0.000113 -0.081623 -0.996663 -vn -0.010430 -0.844321 -0.535737 -vn -0.001048 -0.082229 -0.996613 -vn 0.198338 -0.030174 -0.979669 -vn 0.604471 -0.517660 -0.605511 -vn 0.003711 0.314682 -0.949190 -vn 0.000216 0.021923 -0.999760 -vn 0.003838 0.172336 -0.985031 -vn 0.003839 0.172840 -0.984942 -vn 0.003440 0.172849 -0.984942 -vn 0.003438 0.172345 -0.985031 -vn 0.000274 0.173246 -0.984879 -vn 0.000273 0.172451 -0.985018 -vn 0.000736 0.172449 -0.985018 -vn 0.000738 0.173244 -0.984879 -vn 0.001126 0.171499 -0.985184 -vn 0.001135 0.172987 -0.984923 -vn 0.000307 0.172983 -0.984925 -vn 0.000298 0.171496 -0.985185 -vn 0.002659 0.169704 -0.985491 -vn 0.002665 0.170604 -0.985336 -vn 0.002240 0.170612 -0.985336 -vn 0.002235 0.169712 -0.985491 -vn 0.002312 0.169531 -0.985522 -vn 0.002312 0.169945 -0.985451 -vn 0.002063 0.169948 -0.985451 -vn 0.002062 0.169533 -0.985522 -vn 0.002073 0.170681 -0.985324 -vn 0.002073 0.170262 -0.985397 -vn 0.002324 0.170258 -0.985397 -vn 0.002323 0.170677 -0.985324 -vn -0.014108 -0.985357 -0.169922 -vn -0.014108 -0.985357 -0.169922 -vn 0.011333 0.985393 0.169920 -vn 0.011333 0.985393 0.169920 -vn 0.378848 0.586557 -0.715839 -vn 0.570944 0.292955 -0.766942 -vn 0.273360 0.905956 -0.323293 -vn 0.049134 0.994534 -0.092129 -vn 0.134209 0.809746 -0.571226 -vn 0.198240 0.529544 -0.824793 -vn 0.229467 0.295026 -0.927526 -vn 0.327183 0.247842 -0.911880 -vn 0.311016 0.412253 -0.856339 -vn 0.305018 -0.102621 -0.946801 -vn 0.325144 0.070697 -0.943018 -vn 0.226340 0.031675 -0.973533 -vn 0.189188 -0.223278 -0.956219 -vn 0.116991 -0.572707 -0.811369 -vn 0.024774 -0.906943 -0.420524 -vn 0.253881 -0.748981 -0.612023 -vn 0.567951 -0.020955 -0.822796 -vn 0.368814 -0.314888 -0.874541 -vn -0.999996 0.000537 -0.002923 -vn -0.999996 0.000503 -0.002922 -vn -0.999996 0.000510 -0.002920 -vn -0.999996 0.000503 -0.002922 -vn -0.999996 0.000537 -0.002923 -vn -0.999996 0.000527 -0.002921 -vn -0.999996 0.000519 -0.002945 -vn -0.999996 0.000519 -0.002945 -vn -0.999996 0.000537 -0.002923 -vn -0.999996 0.000527 -0.002921 -vn -0.999996 0.000517 -0.002918 -vn -0.999996 0.000517 -0.002918 -vn -0.999996 0.000519 -0.002945 -vn -0.999995 0.000521 -0.002972 -vn -0.999995 0.000521 -0.002972 -vn -0.999996 0.000519 -0.002945 -vn -0.999996 0.000518 -0.002918 -vn -0.999996 0.000518 -0.002918 -vn -0.999996 0.000510 -0.002920 -vn -0.999996 0.000503 -0.002922 -vn -0.999999 0.000263 -0.001577 -vn -0.999999 0.000266 -0.001576 -vn -0.999999 0.000290 -0.001571 -vn -0.999999 0.000266 -0.001576 -vn -0.999999 0.000263 -0.001577 -vn -0.999999 0.000251 -0.001575 -vn -0.999999 0.000263 -0.001562 -vn -0.999999 0.000298 -0.001560 -vn -0.999999 0.000251 -0.001588 -vn -0.999999 0.000251 -0.001575 -vn -0.999999 0.000251 -0.001563 -vn -0.999999 0.000251 -0.001563 -vn -0.999999 0.000263 -0.001562 -vn -0.999999 0.000275 -0.001562 -vn -0.999999 0.000275 -0.001562 -vn -0.999999 0.000298 -0.001560 -vn -0.999999 0.000322 -0.001557 -vn -0.999999 0.000322 -0.001557 -vn -0.999999 0.000290 -0.001571 -vn -0.999999 0.000258 -0.001586 -vn -0.999999 0.000267 -0.001698 -vn -0.999999 0.000318 -0.001693 -vn -0.999999 0.000324 -0.001651 -vn -0.999999 0.000318 -0.001693 -vn -0.999999 0.000267 -0.001698 -vn -0.999999 0.000243 -0.001661 -vn -0.999999 0.000261 -0.001635 -vn -0.999999 0.000291 -0.001631 -vn -0.999999 0.000238 -0.001674 -vn -0.999999 0.000243 -0.001661 -vn -0.999999 0.000249 -0.001648 -vn -0.999999 0.000249 -0.001648 -vn -0.999999 0.000261 -0.001635 -vn -0.999999 0.000274 -0.001622 -vn -0.999999 0.000274 -0.001622 -vn -0.999999 0.000291 -0.001631 -vn -0.999999 0.000308 -0.001639 -vn -0.999999 0.000308 -0.001639 -vn -0.999999 0.000324 -0.001651 -vn -0.999999 0.000340 -0.001664 -vn -0.999997 0.000426 -0.002415 -vn -0.999997 0.000399 -0.002412 -vn -0.999997 0.000405 -0.002410 -vn -0.999997 0.000399 -0.002412 -vn -0.999997 0.000426 -0.002415 -vn -0.999997 0.000425 -0.002407 -vn -0.999997 0.000423 -0.002415 -vn -0.999997 0.000430 -0.002421 -vn -0.999997 0.000430 -0.002432 -vn -0.999997 0.000430 -0.002421 -vn -0.999997 0.000430 -0.002409 -vn -0.999997 0.000416 -0.002398 -vn -0.999997 0.000423 -0.002415 -vn -0.999997 0.000430 -0.002432 -vn -0.999997 0.000435 -0.002417 -vn -0.999997 0.000425 -0.002407 -vn -0.999997 0.000416 -0.002398 -vn -0.999997 0.000430 -0.002409 -vn -0.999997 0.000405 -0.002410 -vn -0.999997 0.000381 -0.002411 -vn -0.999997 0.000382 -0.002297 -vn -0.999997 0.000410 -0.002293 -vn -0.999997 0.000378 -0.002306 -vn -0.999997 0.000382 -0.002297 -vn -0.999997 0.000410 -0.002293 -vn -0.999997 0.000398 -0.002302 -vn -0.999997 0.000387 -0.002292 -vn -0.999997 0.000395 -0.002292 -vn -0.999997 0.000421 -0.002300 -vn -0.999997 0.000398 -0.002302 -vn -0.999997 0.000374 -0.002304 -vn -0.999997 0.000374 -0.002304 -vn -0.999997 0.000387 -0.002292 -vn -0.999997 0.000400 -0.002280 -vn -0.999997 0.000400 -0.002280 -vn -0.999997 0.000395 -0.002292 -vn -0.999997 0.000389 -0.002303 -vn -0.999997 0.000389 -0.002303 -vn -0.999997 0.000378 -0.002306 -vn -0.999997 0.000367 -0.002308 -vn -0.999997 0.000397 -0.002306 -vn -0.999997 0.000397 -0.002304 -vn -0.999997 0.000400 -0.002299 -vn -0.999997 0.000397 -0.002304 -vn -0.999997 0.000397 -0.002306 -vn -0.999997 0.000393 -0.002301 -vn -0.999997 0.000394 -0.002295 -vn -0.999997 0.000400 -0.002295 -vn -0.999997 0.000393 -0.002292 -vn -0.999997 0.000394 -0.002295 -vn -0.999997 0.000395 -0.002297 -vn -0.999997 0.000395 -0.002297 -vn -0.999997 0.000400 -0.002295 -vn -0.999997 0.000406 -0.002292 -vn -0.999997 0.000394 -0.002310 -vn -0.999997 0.000393 -0.002301 -vn -0.999997 0.000393 -0.002292 -vn -0.999997 0.000406 -0.002292 -vn -0.999997 0.000400 -0.002299 -vn -0.999997 0.000394 -0.002305 -vn -0.320848 0.452536 0.832026 -vn -0.248976 -0.723191 0.644210 -vn -0.318726 -0.466155 0.825296 -vn -0.355692 0.153461 0.921918 -vn -0.248976 -0.723191 0.644210 -vn -0.318726 -0.466155 0.825296 -vn -0.355692 0.153461 0.921918 -vn -0.320848 0.452536 0.832026 -vn -0.319376 0.455816 0.830801 -vn -0.246432 -0.727554 0.640263 -vn -0.316994 -0.469739 0.823930 -vn -0.354603 0.154404 0.922180 -vn -0.246432 -0.727554 0.640263 -vn -0.316994 -0.469739 0.823930 -vn -0.354603 0.154404 0.922180 -vn -0.319376 0.455816 0.830801 -vn -0.320639 0.449217 0.833903 -vn -0.249649 -0.719205 0.648397 -vn -0.318344 -0.463006 0.827213 -vn -0.354789 0.152294 0.922459 -vn -0.249649 -0.719205 0.648397 -vn -0.318344 -0.463006 0.827213 -vn -0.354789 0.152294 0.922459 -vn -0.320639 0.449217 0.833903 -vn -0.322035 0.444116 0.836095 -vn -0.252301 -0.713292 0.653880 -vn -0.319726 -0.458638 0.829112 -vn -0.355476 0.150154 0.922545 -vn -0.252301 -0.713292 0.653880 -vn -0.319726 -0.458638 0.829112 -vn -0.355476 0.150154 0.922545 -vn -0.322035 0.444116 0.836095 -vn -0.321724 0.445479 0.835489 -vn -0.251485 -0.715305 0.651992 -vn -0.319321 -0.460392 0.828296 -vn -0.355391 0.150376 0.922542 -vn -0.251485 -0.715305 0.651992 -vn -0.319321 -0.460392 0.828296 -vn -0.355391 0.150376 0.922542 -vn -0.321724 0.445479 0.835489 -vn -0.321362 0.447485 0.834556 -vn -0.250590 -0.717758 0.649637 -vn -0.318969 -0.462268 0.827386 -vn -0.355342 0.151132 0.922438 -vn -0.250590 -0.717758 0.649637 -vn -0.318969 -0.462268 0.827386 -vn -0.355342 0.151132 0.922438 -vn -0.321362 0.447485 0.834556 -vn -0.970111 -0.069859 -0.232388 -vn -0.970111 -0.069859 -0.232388 -vn -0.970111 -0.069859 -0.232388 -vn -0.971427 -0.076347 -0.224723 -vn -0.971427 -0.076347 -0.224723 -vn -0.972644 -0.082827 -0.217034 -vn -0.972644 -0.082827 -0.217034 -vn 0.134640 0.975921 0.171614 -vn 0.136667 0.990617 0.000000 -vn -0.002541 0.998628 0.052302 -vn -0.002544 0.999997 0.000000 -vn -0.139967 0.990156 0.000000 -vn -0.139636 0.987812 -0.068765 -vn 0.134640 0.975921 -0.171614 -vn -0.139636 0.987812 0.068765 -vn -0.002541 0.998628 -0.052302 -vn 0.981127 0.034773 -0.190211 -vn 0.981127 0.034773 -0.190211 -vn -0.312100 0.225050 -0.923009 -vn -0.595290 0.201461 -0.777845 -vn 0.306742 0.205567 -0.929328 -vn 0.840628 0.107966 -0.530743 -vn -0.312100 0.225050 -0.923009 -vn -0.595290 0.201461 -0.777845 -vn 0.306742 0.205567 -0.929328 -vn 0.840628 0.107966 -0.530743 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn -0.004017 0.999087 -0.042538 -vn -0.004017 0.999087 -0.042538 -vn -0.000997 0.936958 -0.349442 -vn -0.002538 0.980110 -0.198437 -vn -0.000997 0.936958 -0.349442 -vn -0.002538 0.980110 -0.198437 -vn -0.013807 -0.998955 0.043566 -vn -0.013807 -0.998955 0.043566 -vn -0.019315 -0.946567 -0.321928 -vn -0.016851 -0.989778 -0.141615 -vn -0.019315 -0.946567 -0.321928 -vn -0.016851 -0.989778 -0.141615 -vn 0.402864 0.068194 0.912716 -vn 0.406128 0.246469 0.879950 -vn 0.312600 0.295061 0.902896 -vn 0.307486 0.029892 0.951083 -vn 0.022725 0.984893 -0.171666 -vn 0.715093 0.688205 -0.122535 -vn 0.700503 -0.703494 0.119966 -vn -0.018573 -0.984982 0.171657 -vn 0.595042 0.762626 0.253627 -vn 0.828765 0.201587 0.522027 -vn 0.827259 -0.011721 0.561698 -vn 0.576129 -0.641576 0.506414 -vn 0.033661 -0.908984 0.415470 -vn 0.073398 0.993862 0.082776 -vn 0.271517 0.532244 0.801870 -vn 0.384743 0.412823 0.825560 -vn 0.442431 0.581663 0.682586 -vn 0.186778 0.813074 0.551384 -vn 0.374997 -0.108304 0.920678 -vn 0.256398 -0.229559 0.938916 -vn 0.158240 -0.581157 0.798258 -vn 0.427580 -0.317928 0.846225 -vn 0.325247 0.070884 0.942969 -vn 0.325503 0.252839 0.911109 -vn 0.224766 0.301336 0.926648 -vn 0.224404 0.031012 0.974003 -vn 0.000045 0.985135 -0.171780 -vn 0.000045 0.985135 -0.171780 -vn -0.005544 -0.985119 0.171785 -vn -0.005544 -0.985119 0.171785 -vn 0.268424 0.910044 0.315860 -vn 0.577384 0.292619 0.762235 -vn 0.576238 -0.017633 0.817092 -vn 0.264101 -0.749828 0.606637 -vn 0.031666 -0.908463 0.416765 -vn 0.036618 0.995773 0.084236 -vn 0.190407 0.540732 0.819362 -vn 0.307451 0.421200 0.853267 -vn 0.377820 0.593820 0.710374 -vn 0.122776 0.819215 0.560190 -vn 0.306651 -0.106375 0.945859 -vn 0.189302 -0.229514 0.954719 -vn 0.119974 -0.580098 0.805663 -vn 0.375760 -0.317791 0.870525 -vn 0.314621 0.073484 0.946369 -vn 0.315467 0.254668 0.914125 -vn 0.214410 0.302118 0.928845 -vn 0.213042 0.032909 0.976489 -vn 0.008960 0.985157 -0.171423 -vn 0.008960 0.985157 -0.171423 -vn 0.000935 -0.985198 0.171416 -vn 0.000935 -0.985198 0.171416 -vn 0.270451 0.908442 0.318732 -vn 0.569460 0.296695 0.766607 -vn 0.570069 -0.015392 0.821452 -vn 0.265422 -0.747956 0.608370 -vn 0.035696 -0.907577 0.418365 -vn 0.043793 0.995221 0.087273 -vn 0.184339 0.537627 0.822786 -vn 0.299932 0.420077 0.856491 -vn 0.373069 0.592621 0.713876 -vn 0.123610 0.815411 0.565531 -vn 0.297475 -0.103792 0.949071 -vn 0.180362 -0.227654 0.956892 -vn 0.117003 -0.577311 0.808098 -vn 0.370563 -0.315056 0.873741 -vn 0.279465 0.073947 0.957304 -vn 0.282002 0.252840 0.925498 -vn 0.180876 0.299273 0.936867 -vn 0.176949 0.033429 0.983652 -vn 0.016785 0.985270 -0.170180 -vn 0.016785 0.985270 -0.170180 -vn -0.011599 -0.985345 0.170180 -vn -0.011599 -0.985345 0.170180 -vn 0.260660 0.907674 0.328912 -vn 0.539755 0.302161 0.785724 -vn 0.537461 -0.019386 0.843066 -vn 0.239519 -0.748313 0.618594 -vn 0.018597 -0.906518 0.421758 -vn 0.046183 0.994578 0.093173 -vn 0.158458 0.532068 0.831742 -vn 0.270953 0.416038 0.868042 -vn 0.349082 0.591007 0.727223 -vn 0.110928 0.810103 0.575698 -vn 0.263594 -0.100530 0.959381 -vn 0.147213 -0.223117 0.963612 -vn 0.090567 -0.571837 0.815352 -vn 0.338058 -0.313692 0.887307 -vn 0.325647 0.070835 0.942834 -vn 0.327669 0.248962 0.911401 -vn 0.229448 0.296405 0.927091 -vn 0.226346 0.031619 0.973534 -vn 0.011307 0.985318 -0.170356 -vn 0.011307 0.985318 -0.170356 -vn -0.014082 -0.985281 0.170364 -vn -0.014082 -0.985281 0.170364 -vn 0.274385 0.906358 0.321290 -vn 0.573061 0.292838 0.765406 -vn 0.570098 -0.020161 0.821329 -vn 0.255015 -0.749365 0.611080 -vn 0.024644 -0.907276 0.419813 -vn 0.048915 0.994705 0.090387 -vn 0.198078 0.531780 0.823392 -vn 0.311452 0.414057 0.855310 -vn 0.380064 0.587822 0.714155 -vn 0.133893 0.811541 0.568747 -vn 0.305501 -0.103345 0.946567 -vn 0.189093 -0.224545 0.955941 -vn 0.116769 -0.574285 0.810285 -vn 0.370111 -0.315508 0.873769 -vn 0.715131 0.688397 -0.121236 -vn 0.700465 -0.703326 0.121167 -vn 0.011480 0.985103 -0.171583 -vn -0.012163 -0.985095 0.171583 -vn -0.002312 -0.985168 0.171577 -vn 0.005298 0.985155 -0.171583 -vn 0.012748 0.985087 -0.171582 -vn -0.004690 -0.985159 0.171580 -vn 0.013175 0.985082 -0.171579 -vn -0.012238 -0.985094 0.171583 -vn -0.703094 0.700778 -0.120703 -vn -0.712068 -0.691469 0.121780 -vn 0.011378 0.975827 0.218247 -vn 0.620159 0.681677 0.388226 -vn 0.604471 -0.517660 0.605511 -vn -0.010430 -0.844321 0.535737 -vn -0.001988 -0.844281 0.535897 -vn -0.004126 -0.845554 0.533874 -vn -0.010591 -0.845778 0.533430 -vn -0.614347 -0.511882 0.600463 -vn -0.604869 0.690602 0.396488 -vn 0.013212 0.974751 0.222904 -vn 0.012601 0.974265 0.225051 -vn 0.005059 0.975327 0.220709 -vn 0.004881 0.415620 0.909525 -vn 0.206549 0.360936 0.909430 -vn 0.001946 0.414682 0.909965 -vn 0.005085 0.410836 0.911695 -vn 0.005680 0.411152 0.911549 -vn -0.194631 0.359866 0.912478 -vn 0.003711 0.314682 0.949190 -vn -0.001003 -0.085844 0.996308 -vn 0.000217 0.021923 0.999760 -vn -0.199265 -0.031938 0.979425 -vn -0.000144 -0.084531 0.996421 -vn -0.000113 -0.081623 0.996663 -vn -0.001048 -0.082229 0.996613 -vn 0.198338 -0.030174 0.979669 -vn 0.003838 0.172336 0.985031 -vn 0.003839 0.172840 0.984942 -vn 0.003440 0.172849 0.984942 -vn 0.003439 0.172345 0.985031 -vn 0.000275 0.173246 0.984879 -vn 0.000273 0.172450 0.985018 -vn 0.000736 0.172449 0.985018 -vn 0.000738 0.173244 0.984879 -vn 0.001127 0.171499 0.985184 -vn 0.001135 0.172987 0.984924 -vn 0.000307 0.172983 0.984925 -vn 0.000299 0.171496 0.985185 -vn 0.002659 0.169704 0.985491 -vn 0.002665 0.170604 0.985336 -vn 0.002240 0.170612 0.985336 -vn 0.002235 0.169712 0.985491 -vn 0.002312 0.169531 0.985522 -vn 0.002313 0.169945 0.985451 -vn 0.002064 0.169948 0.985451 -vn 0.002062 0.169533 0.985522 -vn 0.002073 0.170681 0.985324 -vn 0.002073 0.170261 0.985397 -vn 0.002324 0.170257 0.985397 -vn 0.002323 0.170677 0.985324 -vn 0.229467 0.295025 0.927526 -vn 0.226340 0.031675 0.973533 -vn 0.325144 0.070696 0.943018 -vn 0.327183 0.247841 0.911880 -vn -0.014108 -0.985357 0.169922 -vn -0.014108 -0.985357 0.169922 -vn 0.011333 0.985393 -0.169919 -vn 0.011333 0.985393 -0.169919 -vn 0.049134 0.994534 0.092129 -vn 0.273360 0.905956 0.323293 -vn 0.570944 0.292954 0.766942 -vn 0.567951 -0.020956 0.822796 -vn 0.253881 -0.748980 0.612024 -vn 0.024774 -0.906943 0.420524 -vn 0.198240 0.529543 0.824794 -vn 0.311016 0.412252 0.856340 -vn 0.378848 0.586557 0.715839 -vn 0.134209 0.809746 0.571226 -vn 0.305018 -0.102622 0.946801 -vn 0.189188 -0.223278 0.956219 -vn 0.116991 -0.572706 0.811370 -vn 0.368814 -0.314888 0.874541 -vn -0.999995 0.000526 0.002972 -vn -0.999995 0.000526 0.002972 -vn -0.999996 0.000515 0.002902 -vn -0.999996 0.000512 0.002902 -vn -0.999996 0.000516 0.002922 -vn -0.999996 0.000523 0.002923 -vn -0.999996 0.000534 0.002918 -vn -0.999996 0.000534 0.002918 -vn -0.999996 0.000513 0.002918 -vn -0.999996 0.000513 0.002918 -vn -0.999996 0.000515 0.002920 -vn -0.999996 0.000515 0.002920 -vn -0.999996 0.000512 0.002902 -vn -0.999996 0.000515 0.002902 -vn -0.999996 0.000529 0.002921 -vn -0.999996 0.000529 0.002921 -vn -0.999996 0.000530 0.002945 -vn -0.999996 0.000530 0.002945 -vn -0.999996 0.000520 0.002945 -vn -0.999996 0.000520 0.002945 -vn -0.999999 0.000281 0.001562 -vn -0.999999 0.000281 0.001562 -vn -0.999999 0.000254 0.001577 -vn -0.999999 0.000265 0.001576 -vn -0.999999 0.000258 0.001586 -vn -0.999999 0.000238 0.001588 -vn -0.999999 0.000251 0.001563 -vn -0.999999 0.000251 0.001563 -vn -0.999999 0.000318 0.001557 -vn -0.999999 0.000318 0.001557 -vn -0.999999 0.000288 0.001571 -vn -0.999999 0.000288 0.001571 -vn -0.999999 0.000265 0.001576 -vn -0.999999 0.000254 0.001577 -vn -0.999999 0.000245 0.001575 -vn -0.999999 0.000245 0.001575 -vn -0.999999 0.000266 0.001562 -vn -0.999999 0.000266 0.001562 -vn -0.999999 0.000299 0.001560 -vn -0.999999 0.000299 0.001560 -vn -0.999999 0.000274 0.001622 -vn -0.999999 0.000274 0.001622 -vn -0.999999 0.000261 0.001698 -vn -0.999999 0.000312 0.001693 -vn -0.999999 0.000326 0.001664 -vn -0.999999 0.000224 0.001674 -vn -0.999999 0.000231 0.001648 -vn -0.999999 0.000231 0.001648 -vn -0.999999 0.000308 0.001639 -vn -0.999999 0.000308 0.001639 -vn -0.999999 0.000317 0.001651 -vn -0.999999 0.000317 0.001651 -vn -0.999999 0.000312 0.001693 -vn -0.999999 0.000261 0.001698 -vn -0.999999 0.000228 0.001661 -vn -0.999999 0.000228 0.001661 -vn -0.999999 0.000253 0.001635 -vn -0.999999 0.000253 0.001635 -vn -0.999999 0.000291 0.001631 -vn -0.999999 0.000291 0.001631 -vn -0.999997 0.000430 0.002432 -vn -0.999997 0.000430 0.002432 -vn -0.999997 0.000421 0.002415 -vn -0.999997 0.000397 0.002412 -vn -0.999997 0.000374 0.002411 -vn -0.999997 0.000421 0.002417 -vn -0.999997 0.000399 0.002398 -vn -0.999997 0.000399 0.002398 -vn -0.999997 0.000413 0.002409 -vn -0.999997 0.000413 0.002409 -vn -0.999997 0.000394 0.002410 -vn -0.999997 0.000394 0.002410 -vn -0.999997 0.000397 0.002412 -vn -0.999997 0.000421 0.002415 -vn -0.999997 0.000410 0.002407 -vn -0.999997 0.000410 0.002407 -vn -0.999997 0.000415 0.002415 -vn -0.999997 0.000415 0.002415 -vn -0.999997 0.000422 0.002421 -vn -0.999997 0.000422 0.002421 -vn -0.999997 0.000395 0.002280 -vn -0.999997 0.000395 0.002280 -vn -0.999997 0.000381 0.002297 -vn -0.999997 0.000408 0.002293 -vn -0.999997 0.000421 0.002300 -vn -0.999997 0.000367 0.002308 -vn -0.999997 0.000374 0.002304 -vn -0.999997 0.000374 0.002304 -vn -0.999997 0.000398 0.002303 -vn -0.999997 0.000398 0.002303 -vn -0.999997 0.000382 0.002306 -vn -0.999997 0.000382 0.002306 -vn -0.999997 0.000381 0.002297 -vn -0.999997 0.000408 0.002293 -vn -0.999997 0.000398 0.002302 -vn -0.999997 0.000398 0.002302 -vn -0.999997 0.000385 0.002292 -vn -0.999997 0.000385 0.002292 -vn -0.999997 0.000396 0.002292 -vn -0.999997 0.000396 0.002292 -vn -0.999997 0.000400 0.002297 -vn -0.999997 0.000400 0.002297 -vn -0.999997 0.000389 0.002306 -vn -0.999997 0.000392 0.002304 -vn -0.999997 0.000387 0.002305 -vn -0.999997 0.000381 0.002310 -vn -0.999997 0.000410 0.002292 -vn -0.999997 0.000410 0.002292 -vn -0.999997 0.000402 0.002292 -vn -0.999997 0.000402 0.002292 -vn -0.999997 0.000395 0.002299 -vn -0.999997 0.000395 0.002299 -vn -0.999997 0.000392 0.002304 -vn -0.999997 0.000389 0.002306 -vn -0.999997 0.000395 0.002301 -vn -0.999997 0.000395 0.002301 -vn -0.999997 0.000405 0.002295 -vn -0.999997 0.000405 0.002295 -vn -0.999997 0.000401 0.002295 -vn -0.999997 0.000401 0.002295 -vn -0.320849 0.452532 -0.832028 -vn -0.355692 0.153456 -0.921919 -vn -0.318725 -0.466157 -0.825295 -vn -0.248976 -0.723191 -0.644210 -vn -0.320849 0.452532 -0.832028 -vn -0.248976 -0.723191 -0.644210 -vn -0.318725 -0.466157 -0.825295 -vn -0.355692 0.153456 -0.921919 -vn -0.319376 0.455816 -0.830801 -vn -0.354603 0.154405 -0.922180 -vn -0.316994 -0.469738 -0.823930 -vn -0.246432 -0.727554 -0.640263 -vn -0.319376 0.455816 -0.830801 -vn -0.246432 -0.727554 -0.640263 -vn -0.316994 -0.469738 -0.823930 -vn -0.354603 0.154405 -0.922180 -vn -0.320639 0.449217 -0.833903 -vn -0.354789 0.152293 -0.922460 -vn -0.318344 -0.463010 -0.827211 -vn -0.249647 -0.719210 -0.648393 -vn -0.320639 0.449217 -0.833903 -vn -0.249647 -0.719210 -0.648393 -vn -0.318344 -0.463010 -0.827211 -vn -0.354789 0.152293 -0.922460 -vn -0.322034 0.444120 -0.836093 -vn -0.355476 0.150156 -0.922545 -vn -0.319726 -0.458635 -0.829113 -vn -0.252303 -0.713288 -0.653884 -vn -0.322034 0.444120 -0.836093 -vn -0.252303 -0.713288 -0.653884 -vn -0.319726 -0.458635 -0.829113 -vn -0.355476 0.150156 -0.922545 -vn -0.321724 0.445479 -0.835489 -vn -0.355391 0.150376 -0.922542 -vn -0.319321 -0.460392 -0.828296 -vn -0.251485 -0.715305 -0.651992 -vn -0.321724 0.445479 -0.835489 -vn -0.251485 -0.715305 -0.651992 -vn -0.319321 -0.460392 -0.828296 -vn -0.355391 0.150376 -0.922542 -vn -0.321362 0.447485 -0.834556 -vn -0.355342 0.151131 -0.922438 -vn -0.318969 -0.462269 -0.827385 -vn -0.250590 -0.717758 -0.649637 -vn -0.321362 0.447485 -0.834556 -vn -0.250590 -0.717758 -0.649637 -vn -0.318969 -0.462269 -0.827385 -vn -0.355342 0.151131 -0.922438 -vn -0.970111 -0.069859 0.232388 -vn -0.970111 -0.069859 0.232388 -vn -0.970111 -0.069859 0.232388 -vn -0.971427 -0.076347 0.224723 -vn -0.971427 -0.076347 0.224723 -vn -0.972644 -0.082827 0.217034 -vn -0.972644 -0.082827 0.217034 -vn 0.981127 0.034773 0.190211 -vn 0.981127 0.034773 0.190211 -vn 0.306742 0.205567 0.929328 -vn -0.312100 0.225050 0.923009 -vn -0.312100 0.225050 0.923009 -vn 0.306742 0.205567 0.929328 -vn -0.595290 0.201461 0.777845 -vn 0.840628 0.107966 0.530743 -vn 0.840628 0.107966 0.530743 -vn -0.595290 0.201461 0.777845 -vn -0.004017 0.999087 0.042538 -vn -0.004017 0.999087 0.042538 -vn -0.000997 0.936958 0.349442 -vn -0.000997 0.936958 0.349442 -vn -0.002538 0.980110 0.198437 -vn -0.002538 0.980110 0.198437 -vn -0.013807 -0.998955 -0.043566 -vn -0.013807 -0.998955 -0.043566 -vn -0.019315 -0.946567 0.321928 -vn -0.019315 -0.946567 0.321928 -vn -0.016851 -0.989778 0.141615 -vn -0.016851 -0.989778 0.141615 -vn 0.570725 -0.158007 0.805796 -vn 0.570725 -0.158007 0.805796 -vn 0.587402 -0.281827 0.758639 -vn 0.587402 -0.281827 0.758639 -vn 0.480805 -0.016031 0.876681 -vn 0.480805 -0.016031 0.876681 -vn 0.353177 0.012506 0.935473 -vn 0.353177 0.012506 0.935473 -vn 0.243935 0.033631 0.969208 -vn 0.243935 0.033631 0.969208 -vn 0.157199 0.051399 0.986229 -vn 0.157199 0.051399 0.986229 -vn 0.084379 0.075629 0.993559 -vn 0.084379 0.075629 0.993559 -vn 0.033769 0.063145 0.997433 -vn 0.033769 0.063145 0.997433 -vn 0.015354 0.036135 0.999229 -vn 0.015354 0.036135 0.999229 -vn -0.587515 -0.280783 -0.758938 -vn -0.587515 -0.280783 -0.758938 -vn -0.570788 -0.156897 -0.805968 -vn -0.570788 -0.156897 -0.805968 -vn -0.480813 -0.014845 -0.876698 -vn -0.480813 -0.014845 -0.876698 -vn -0.353185 0.013729 -0.935453 -vn -0.353185 0.013729 -0.935453 -vn -0.243948 0.034872 -0.969161 -vn -0.243948 0.034872 -0.969161 -vn -0.157203 0.052645 -0.986162 -vn -0.157203 0.052645 -0.986162 -vn -0.084367 0.076875 -0.993465 -vn -0.084367 0.076875 -0.993465 -vn -0.033760 0.064397 -0.997353 -vn -0.033760 0.064397 -0.997353 -vn -0.015355 0.037392 -0.999183 -vn -0.015355 0.037392 -0.999183 -vn -0.817737 -0.000196 0.575592 -vn -0.793345 -0.000210 0.608772 -vn -0.877559 -0.000153 0.479469 -vn -0.935258 -0.000100 0.353967 -vn -0.969245 -0.000059 0.246097 -vn -0.987125 -0.000030 0.159949 -vn -0.996183 -0.000009 0.087295 -vn -0.999376 0.000000 0.035320 -vn -0.999880 0.000000 0.015480 -vn -0.793345 -0.000210 0.608772 -vn -0.817737 -0.000196 0.575592 -vn -0.877559 -0.000153 0.479469 -vn -0.935258 -0.000100 0.353967 -vn -0.969245 -0.000059 0.246097 -vn -0.987125 -0.000030 0.159949 -vn -0.996183 -0.000009 0.087295 -vn -0.999376 0.000000 0.035320 -vn -0.999880 0.000000 0.015480 -vn 0.817737 0.000141 -0.575592 -vn 0.793346 0.000145 -0.608771 -vn 0.877558 0.000130 -0.479471 -vn 0.935257 0.000111 -0.353970 -vn 0.969245 0.000090 -0.246098 -vn 0.987126 0.000070 -0.159947 -vn 0.996183 0.000047 -0.087289 -vn 0.999376 0.000017 -0.035315 -vn 0.999880 0.000000 -0.015479 -vn 0.793346 0.000145 -0.608771 -vn 0.817737 0.000141 -0.575592 -vn 0.877558 0.000130 -0.479471 -vn 0.935257 0.000111 -0.353970 -vn 0.969245 0.000090 -0.246098 -vn 0.987126 0.000070 -0.159947 -vn 0.996183 0.000047 -0.087289 -vn 0.999376 0.000017 -0.035315 -vn 0.999880 0.000000 -0.015479 -vn 0.571305 0.805237 0.158754 -vn 0.571305 0.805237 0.158754 -vn 0.587841 0.758020 0.282575 -vn 0.587841 0.758020 0.282575 -vn 0.481563 0.876252 0.016719 -vn 0.481563 0.876252 0.016719 -vn 0.354021 0.935161 -0.011916 -vn 0.354021 0.935161 -0.011916 -vn 0.244838 0.968998 -0.033128 -vn 0.244838 0.968998 -0.033128 -vn 0.158130 0.986102 -0.050966 -vn 0.158130 0.986102 -0.050966 -vn 0.085334 0.993506 -0.075258 -vn 0.085334 0.993506 -0.075258 -vn 0.034714 0.997421 -0.062822 -vn 0.034714 0.997421 -0.062822 -vn 0.016276 0.999225 -0.035835 -vn 0.016276 0.999225 -0.035835 -vn -0.588445 -0.758492 0.280040 -vn -0.588445 -0.758492 0.280040 -vn -0.571649 -0.805503 0.156151 -vn -0.571649 -0.805503 0.156151 -vn -0.481596 -0.876279 0.014157 -vn -0.481596 -0.876279 0.014157 -vn -0.353988 -0.935140 -0.014319 -vn -0.353988 -0.935140 -0.014319 -vn -0.244773 -0.968935 -0.035376 -vn -0.244773 -0.968935 -0.035376 -vn -0.158039 -0.986005 -0.053080 -vn -0.158039 -0.986005 -0.053080 -vn -0.085197 -0.993365 -0.077249 -vn -0.085197 -0.993365 -0.077249 -vn -0.034599 -0.997303 -0.064730 -vn -0.034599 -0.997303 -0.064730 -vn -0.016211 -0.999157 -0.037715 -vn -0.016211 -0.999157 -0.037715 -vn -0.817224 0.576320 -0.000359 -vn -0.792804 0.609476 -0.000312 -vn -0.877131 0.480251 -0.000484 -vn -0.934942 0.354799 -0.000627 -vn -0.969026 0.246958 -0.000730 -vn -0.986983 0.160824 -0.000799 -vn -0.996104 0.088178 -0.000851 -vn -0.999344 0.036206 -0.000873 -vn -0.999866 0.016365 -0.000872 -vn -0.792804 0.609476 -0.000312 -vn -0.817224 0.576320 -0.000359 -vn -0.877131 0.480251 -0.000484 -vn -0.934942 0.354799 -0.000627 -vn -0.969026 0.246958 -0.000730 -vn -0.986983 0.160824 -0.000799 -vn -0.996104 0.088178 -0.000851 -vn -0.999344 0.036206 -0.000873 -vn -0.999866 0.016365 -0.000872 -vn 0.817225 -0.576318 0.000413 -vn 0.792804 -0.609476 0.000376 -vn 0.877132 -0.480248 0.000507 -vn 0.934943 -0.354797 0.000615 -vn 0.969027 -0.246955 0.000700 -vn 0.986983 -0.160823 0.000763 -vn 0.996104 -0.088181 0.000812 -vn 0.999344 -0.036213 0.000855 -vn 0.999865 -0.016376 0.000877 -vn 0.792804 -0.609476 0.000376 -vn 0.817225 -0.576318 0.000413 -vn 0.877132 -0.480248 0.000507 -vn 0.934943 -0.354797 0.000615 -vn 0.969027 -0.246955 0.000700 -vn 0.986983 -0.160823 0.000763 -vn 0.996104 -0.088181 0.000812 -vn 0.999344 -0.036213 0.000855 -vn 0.999865 -0.016376 0.000877 -vn 0.572169 0.158484 -0.804677 -vn 0.572169 0.158484 -0.804677 -vn 0.588769 0.282275 -0.757411 -vn 0.588769 0.282275 -0.757411 -vn 0.482358 0.016550 -0.875818 -vn 0.482358 0.016550 -0.875818 -vn 0.354828 -0.011952 -0.934855 -vn 0.354828 -0.011952 -0.934855 -vn 0.245657 -0.033058 -0.968793 -vn 0.245657 -0.033058 -0.968793 -vn 0.158956 -0.050815 -0.985977 -vn 0.158956 -0.050815 -0.985977 -vn 0.086151 -0.075040 -0.993452 -vn 0.086151 -0.075040 -0.993452 -vn 0.035547 -0.062564 -0.997408 -vn 0.035547 -0.062564 -0.997408 -vn 0.017135 -0.035565 -0.999220 -vn 0.017135 -0.035565 -0.999220 -vn -0.588871 0.280332 0.758053 -vn -0.588871 0.280332 0.758053 -vn -0.572224 0.156417 0.805042 -vn -0.572224 0.156417 0.805042 -vn -0.482362 0.014327 0.875855 -vn -0.482362 0.014327 0.875855 -vn -0.354833 -0.014280 0.934820 -vn -0.354833 -0.014280 0.934820 -vn -0.245657 -0.035446 0.968709 -vn -0.245657 -0.035446 0.968709 -vn -0.158950 -0.053231 0.985851 -vn -0.158950 -0.053231 0.985851 -vn -0.086145 -0.077466 0.993266 -vn -0.086145 -0.077466 0.993266 -vn -0.035538 -0.064996 0.997252 -vn -0.035538 -0.064996 0.997252 -vn -0.017123 -0.038001 0.999131 -vn -0.017123 -0.038001 0.999131 -vn -0.816712 0.000541 -0.577046 -vn -0.792262 0.000577 -0.610181 -vn -0.876704 0.000438 -0.481029 -vn -0.934627 0.000309 -0.355630 -vn -0.968806 0.000205 -0.247821 -vn -0.986839 0.000125 -0.161704 -vn -0.996026 0.000059 -0.089068 -vn -0.999312 0.000022 -0.037098 -vn -0.999851 0.000016 -0.017259 -vn -0.792262 0.000577 -0.610181 -vn -0.816712 0.000541 -0.577046 -vn -0.876704 0.000438 -0.481029 -vn -0.934627 0.000309 -0.355630 -vn -0.968806 0.000205 -0.247821 -vn -0.986839 0.000125 -0.161704 -vn -0.996026 0.000059 -0.089068 -vn -0.999312 0.000022 -0.037098 -vn -0.999851 0.000016 -0.017259 -vn 0.816712 -0.000483 0.577046 -vn 0.792260 -0.000506 0.610183 -vn 0.876706 -0.000414 0.481027 -vn 0.934627 -0.000321 0.355629 -vn 0.968806 -0.000236 0.247820 -vn 0.986839 -0.000162 0.161703 -vn 0.996026 -0.000101 0.089063 -vn 0.999312 -0.000044 0.037092 -vn 0.999851 -0.000012 0.017254 -vn 0.792260 -0.000506 0.610183 -vn 0.816712 -0.000483 0.577046 -vn 0.876706 -0.000414 0.481027 -vn 0.934627 -0.000321 0.355629 -vn 0.968806 -0.000236 0.247820 -vn 0.986839 -0.000162 0.161703 -vn 0.996026 -0.000101 0.089063 -vn 0.999312 -0.000044 0.037092 -vn 0.999851 -0.000012 0.017254 -vn 0.571587 -0.805144 -0.158216 -vn 0.571587 -0.805144 -0.158216 -vn 0.588342 -0.757853 -0.281980 -vn 0.588342 -0.757853 -0.281980 -vn 0.481591 -0.876243 -0.016382 -vn 0.481591 -0.876243 -0.016382 -vn 0.353996 -0.935170 0.011990 -vn 0.353996 -0.935170 0.011990 -vn 0.244775 -0.969019 0.032988 -vn 0.244775 -0.969019 0.032988 -vn 0.158032 -0.986133 0.050662 -vn 0.158032 -0.986133 0.050662 -vn 0.085188 -0.993552 0.074822 -vn 0.085188 -0.993552 0.074822 -vn 0.034597 -0.997458 0.062295 -vn 0.034597 -0.997458 0.062295 -vn 0.016214 -0.999246 0.035272 -vn 0.016214 -0.999246 0.035272 -vn -0.587936 0.758667 -0.280635 -vn -0.587936 0.758667 -0.280635 -vn -0.571369 0.805597 -0.156688 -vn -0.571369 0.805597 -0.156688 -vn -0.481582 0.876281 -0.014493 -vn -0.481582 0.876281 -0.014493 -vn -0.354017 0.935130 0.014243 -vn -0.354017 0.935130 0.014243 -vn -0.244826 0.968916 0.035515 -vn -0.244826 0.968916 0.035515 -vn -0.158119 0.985976 0.053382 -vn -0.158119 0.985976 0.053382 -vn -0.085314 0.993321 0.077686 -vn -0.085314 0.993321 0.077686 -vn -0.034697 0.997265 0.065257 -vn -0.034697 0.997265 0.065257 -vn -0.016267 0.999135 0.038270 -vn -0.016267 0.999135 0.038270 -vn -0.817224 -0.576318 -0.001436 -vn -0.792802 -0.609478 -0.001459 -vn -0.877132 -0.480248 -0.001360 -vn -0.934942 -0.354798 -0.001246 -vn -0.969026 -0.246957 -0.001141 -vn -0.986982 -0.160825 -0.001051 -vn -0.996104 -0.088178 -0.000970 -vn -0.999344 -0.036204 -0.000926 -vn -0.999866 -0.016365 -0.000917 -vn -0.792802 -0.609478 -0.001459 -vn -0.817224 -0.576318 -0.001436 -vn -0.877132 -0.480248 -0.001360 -vn -0.934942 -0.354798 -0.001246 -vn -0.969026 -0.246957 -0.001141 -vn -0.986982 -0.160825 -0.001051 -vn -0.996104 -0.088178 -0.000970 -vn -0.999344 -0.036204 -0.000926 -vn -0.999866 -0.016365 -0.000917 -vn 0.817223 0.576319 0.001382 -vn 0.792803 0.609477 0.001397 -vn 0.877131 0.480249 0.001337 -vn 0.934941 0.354800 0.001258 -vn 0.969025 0.246960 0.001168 -vn 0.986983 0.160823 0.001087 -vn 0.996104 0.088177 0.001012 -vn 0.999344 0.036208 0.000943 -vn 0.999866 0.016369 0.000908 -vn 0.792803 0.609477 0.001397 -vn 0.817223 0.576319 0.001382 -vn 0.877131 0.480249 0.001337 -vn 0.934941 0.354800 0.001258 -vn 0.969025 0.246960 0.001168 -vn 0.986983 0.160823 0.001087 -vn 0.996104 0.088177 0.001012 -vn 0.999344 0.036208 0.000943 -vn 0.999866 0.016369 0.000908 -vn 1.000000 -0.000151 0.000553 -vn 0.663679 0.748017 0.000623 -vn 0.443030 0.896507 0.000533 -vn 0.236823 0.971553 0.000430 -vn 0.148338 0.988937 0.000381 -vn 0.663901 0.647840 -0.373549 -vn 0.443295 0.776443 -0.447912 -vn 0.237109 0.841439 -0.485551 -vn 0.148629 0.856494 -0.494295 -vn 0.664063 0.374136 -0.647335 -vn 0.443489 0.448405 -0.776048 -vn 0.237321 0.485942 -0.841153 -vn 0.148844 0.494637 -0.856259 -vn 0.664122 0.000218 -0.747624 -vn 0.443560 0.000264 -0.896245 -vn 0.237398 0.000286 -0.971412 -vn 0.148924 0.000292 -0.988849 -vn 0.664062 -0.373756 -0.647555 -vn 0.443489 -0.447946 -0.776313 -vn 0.237321 -0.485443 -0.841442 -vn 0.148846 -0.494127 -0.856553 -vn 0.663902 -0.647617 -0.373933 -vn 0.443294 -0.776177 -0.448374 -vn 0.237111 -0.841149 -0.486053 -vn 0.148632 -0.856199 -0.494805 -vn 0.663681 -0.748016 -0.000052 -vn 0.443029 -0.896507 -0.000270 -vn 0.236822 -0.971553 -0.000435 -vn 0.148339 -0.988936 -0.000498 -vn 0.663459 -0.648061 0.373951 -vn 0.442763 -0.776708 0.447979 -vn 0.236534 -0.841726 0.485335 -vn 0.148046 -0.856786 0.493964 -vn 0.663297 -0.374516 0.647900 -vn 0.442570 -0.448867 0.776306 -vn 0.236324 -0.486442 0.841145 -vn 0.147832 -0.495146 0.856141 -vn 0.663238 -0.000662 0.748408 -vn 0.442499 -0.000795 0.896769 -vn 0.236247 -0.000862 0.971693 -vn 0.147753 -0.000878 0.989024 -vn 0.663295 0.373366 0.648565 -vn 0.442569 0.447487 0.777102 -vn 0.236325 0.484946 0.842008 -vn 0.147832 0.493623 0.857019 -vn 0.663458 0.647509 0.374908 -vn 0.442765 0.776044 0.449127 -vn 0.236536 0.841006 0.486580 -vn 0.148047 0.856053 0.495232 -vn -1.000000 0.000000 -0.000591 -vn -1.000000 0.000000 -0.000591 -vn -1.000000 0.000000 -0.000594 -vn -1.000000 0.000000 -0.000594 -vn -1.000000 0.000000 -0.000595 -vn -1.000000 0.000000 -0.000595 -vn -1.000000 0.000000 -0.000594 -vn -1.000000 0.000000 -0.000594 -vn -1.000000 0.000000 -0.000594 -vn -1.000000 0.000000 -0.000594 -vn -1.000000 0.000000 -0.000596 -vn -1.000000 0.000000 -0.000596 -vn -1.000000 0.000000 -0.000591 -vn -1.000000 0.000000 -0.000591 -vn -1.000000 0.000000 -0.000589 -vn -1.000000 0.000000 -0.000589 -vn -1.000000 0.000000 -0.000593 -vn -1.000000 0.000000 -0.000593 -vn -1.000000 0.000000 -0.000593 -vn -1.000000 0.000000 -0.000593 -vn -1.000000 0.000000 -0.000592 -vn -1.000000 0.000000 -0.000592 -vn -1.000000 0.000000 -0.000590 -vn -1.000000 0.000000 -0.000590 -vn 0.000000 1.000000 0.000292 -vn 0.000000 1.000000 0.000292 -vn 0.000296 0.866077 -0.499910 -vn 0.000296 0.866077 -0.499910 -vn 0.000513 0.500175 -0.865924 -vn 0.000513 0.500175 -0.865924 -vn 0.000593 0.000300 -1.000000 -vn 0.000593 0.000300 -1.000000 -vn 0.000513 -0.499653 -0.866225 -vn 0.000513 -0.499653 -0.866225 -vn 0.000296 -0.865781 -0.500422 -vn 0.000296 -0.865781 -0.500422 -vn 0.000000 -1.000000 -0.000588 -vn 0.000000 -1.000000 -0.000588 -vn -0.000296 -0.866373 0.499397 -vn -0.000296 -0.866373 0.499397 -vn -0.000514 -0.500686 0.865629 -vn -0.000514 -0.500686 0.865629 -vn -0.000593 -0.000884 0.999999 -vn -0.000593 -0.000884 0.999999 -vn -0.000514 0.499145 0.866518 -vn -0.000514 0.499145 0.866518 -vn -0.000297 0.865630 0.500684 -vn -0.000297 0.865630 0.500684 -vn -1.000000 0.000000 -0.000599 -vn -1.000000 0.000000 -0.000596 -vn -1.000000 0.000006 -0.000597 -vn -1.000000 0.000006 -0.000590 -vn -1.000000 0.000000 -0.000585 -vn -1.000000 -0.000013 -0.000590 -vn -1.000000 -0.000013 -0.000597 -vn -1.000000 0.000000 -0.000600 -vn -1.000000 0.000006 -0.000597 -vn -1.000000 0.000006 -0.000597 -vn -1.000000 0.000013 -0.000600 -vn -1.000000 0.000000 -0.000597 -vn -1.000000 -0.000013 -0.000597 -vn -1.000000 0.000009 0.000000 -vn -1.000000 0.000009 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000019 0.000000 -vn -1.000000 0.000013 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 -0.000010 0.000000 -vn -0.992360 0.123378 0.000000 -vn -0.992360 0.123378 0.000000 -vn -0.998088 0.061807 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.992360 0.123378 0.000000 -vn -1.000000 -0.000031 0.000000 -vn -1.000000 0.000002 0.000000 -vn -1.000000 0.000019 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -1.000000 0.000009 0.000000 -vn -1.000000 0.000009 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.996600 0.082392 0.000000 -# 1508 vertices - -# 0 vertex parms - -# 0 texture vertices - -# 2135 normals - -g fuselage -usemtl UNKNOWN -s 1 -f 88//207 97//216 127//246 129//248 -f 3//122 1//120 114//233 115//234 -f 2//121 11//130 139//258 141//260 -s 15 -f 183//875 184//876 177//869 178//870 179//871 180//872 181//873 182//874 -s 1 -f 6//125 121//240 123//242 7//126 -f 133//252 8//127 89//208 131//250 -f 4//123 117//236 119//238 5//124 -f 3//122 115//234 117//236 4//123 -f 121//240 6//125 5//124 119//238 -f 125//244 95//214 7//126 123//242 -f 137//256 10//129 9//128 135//254 -f 8//127 133//252 135//254 9//128 -f 139//258 11//130 10//129 137//256 -f 11//130 2//121 13//132 12//131 -f 1//120 3//122 15//134 14//133 -f 3//122 4//123 16//135 15//134 -f 4//123 5//124 17//136 16//135 -f 5//124 6//125 18//137 17//136 -f 6//125 7//126 19//138 18//137 -f 7//126 95//214 96//215 20//139 19//138 -f 97//216 88//207 90//209 20//139 96//215 -f 89//208 8//127 21//140 91//210 -f 8//127 9//128 22//141 21//140 -f 9//128 10//129 23//142 22//141 -f 10//129 11//130 12//131 23//142 -f 21//140 22//141 25//144 24//143 -f 22//141 23//142 26//145 25//144 -f 23//142 12//131 27//146 26//145 -f 12//131 13//132 28//147 27//146 -f 14//133 15//134 30//149 29//148 -f 15//134 16//135 31//150 30//149 -f 16//135 17//136 32//151 31//150 -f 17//136 18//137 33//152 32//151 -f 18//137 19//138 34//153 33//152 -g exhaust -s 44 -f 400//898 395//893 396//894 399//897 -g fuselage -s 1 -f 20//139 90//209 92//211 35//154 -f 91//210 21//140 24//143 94//213 -g exhaust -s 42 -f 384//920 379//915 380//916 383//919 -g fuselage -s 1 -f 35//154 92//211 93//212 38//157 37//156 -f 94//213 24//143 39//158 38//157 93//212 -f 24//143 25//144 40//159 39//158 -f 25//144 26//145 41//160 40//159 -f 26//145 27//146 42//161 41//160 -f 27//146 28//147 43//162 42//161 -f 29//148 30//149 45//164 44//163 -f 30//149 31//150 46//165 45//164 -f 31//150 32//151 47//166 46//165 -f 32//151 33//152 48//167 47//166 -f 33//152 34//153 36//155 48//167 -f 46//165 47//166 50//169 49//168 -f 47//166 48//167 51//170 50//169 -f 48//167 36//155 52//171 51//170 -g exhaust -s 40 -f 368//942 363//937 364//938 367//941 -g fuselage -s 1 -f 37//156 38//157 54//173 53//172 -f 38//157 39//158 55//174 54//173 -f 39//158 40//159 56//175 55//174 -f 40//159 41//160 57//176 56//175 -f 41//160 42//161 58//177 57//176 -f 42//161 43//162 59//178 58//177 -f 44//163 45//164 61//180 60//179 -f 45//164 46//165 49//168 61//180 -f 60//179 61//180 64//183 63//182 -f 61//180 49//168 65//184 64//183 -f 49//168 50//169 66//185 65//184 -f 50//169 51//170 67//186 66//185 -f 51//170 52//171 68//187 67//186 -g exhaust -s 38 -f 341//955 346//958 347//959 340//954 -g fuselage -s 1 -f 53//172 54//173 70//189 69//188 -f 54//173 55//174 71//190 70//189 -f 55//174 56//175 72//191 71//190 -f 56//175 57//176 73//192 72//191 -f 57//176 58//177 74//193 73//192 -f 58//177 59//178 62//181 74//193 -f 72//191 73//192 76//195 75//194 -f 73//192 74//193 77//196 76//195 -f 74//193 62//181 78//197 77//196 -f 63//182 64//183 80//199 79//198 -f 64//183 65//184 81//200 80//199 -f 65//184 66//185 82//201 81//200 -f 66//185 67//186 83//202 82//201 -f 67//186 68//187 84//203 83//202 -g exhaust -s 34 -f 314//981 309//976 310//977 313//980 -g fuselage -s 1 -f 69//188 70//189 86//205 85//204 -f 70//189 71//190 87//206 86//205 -f 71//190 72//191 75//194 87//206 -f 92//211 94//213 93//212 -f 88//207 129//248 131//250 89//208 -f 90//209 88//207 89//208 91//210 -f 92//211 90//209 91//210 94//213 -f 95//214 97//216 96//215 -f 127//246 97//216 95//214 125//244 -f 99//218 98//217 116//235 113//232 -f 118//237 116//235 98//217 100//219 -f 120//239 118//237 100//219 101//220 -f 122//241 120//239 101//220 102//221 -f 124//243 122//241 102//221 103//222 -f 126//245 124//243 103//222 104//223 -f 128//247 126//245 104//223 105//224 -f 105//224 106//225 130//249 128//247 -f 132//251 130//249 106//225 107//226 -f 134//253 132//251 107//226 108//227 -f 136//255 134//253 108//227 109//228 -f 138//257 136//255 109//228 110//229 -f 140//259 138//257 110//229 111//230 -f 111//230 112//231 142//261 140//259 -f 115//234 114//233 113//232 116//235 -f 117//236 115//234 116//235 118//237 -f 119//238 117//236 118//237 120//239 -f 121//240 119//238 120//239 122//241 -f 123//242 121//240 122//241 124//243 -f 125//244 123//242 124//243 126//245 -f 127//246 125//244 126//245 128//247 -f 129//248 127//246 128//247 130//249 -f 131//250 129//248 130//249 132//251 -f 133//252 131//250 132//251 134//253 -f 135//254 133//252 134//253 136//255 -f 137//256 135//254 136//255 138//257 -f 139//258 137//256 138//257 140//259 -f 141//260 139//258 140//259 142//261 -f 162//281 167//286 107//226 106//225 -f 172//291 162//281 106//225 105//224 -f 174//293 172//291 105//224 104//223 -f 176//295 174//293 104//223 103//222 -f 103//222 102//221 148//267 175//294 176//295 -f 102//221 101//220 149//268 148//267 -f 101//220 100//219 150//269 149//268 -f 100//219 98//217 151//270 150//269 -f 98//217 99//218 156//275 151//270 -f 157//276 112//231 111//230 152//271 -f 111//230 110//229 153//272 152//271 -f 110//229 109//228 154//273 153//272 -f 109//228 108//227 169//288 170//289 154//273 -f 167//286 169//288 108//227 107//226 -f 173//292 175//294 148//267 149//268 150//269 151//270 156//275 166//285 160//279 171//290 -f 144//263 161//280 160//279 159//278 -f 144//263 162//281 161//280 -f 144//263 163//282 162//281 -f 144//263 159//278 164//283 163//282 -f 155//274 170//289 169//288 -f 147//266 176//295 175//294 -f 164//283 159//278 158//277 165//284 -f 159//278 160//279 166//285 158//277 -f 162//281 163//282 143//262 167//286 -f 163//282 164//283 168//287 143//262 -f 167//286 143//262 155//274 169//288 -f 143//262 168//287 170//289 155//274 -f 172//291 145//264 161//280 162//281 -f 145//264 171//290 160//279 161//280 -f 174//293 146//265 145//264 172//291 -f 146//265 173//292 171//290 145//264 -f 176//295 147//266 146//265 174//293 -f 147//266 175//294 173//292 146//265 -s 11 -f 154//995 170//999 178//1001 177//1000 -f 170//999 168//998 179//1002 178//1001 -f 168//998 164//997 180//1003 179//1002 -s 13 -f 164//1019 165//1020 181//1022 180//1021 -s 11 -f 157//996 152//993 183//1005 182//1004 -f 152//993 153//994 184//1006 183//1005 -f 153//994 154//995 177//1000 184//1006 -g exhaust -s 4 -f 34//1027 19//1025 186//1038 187//1039 -f 19//1025 20//1026 208//1060 186//1038 -f 20//1026 35//1028 205//1057 208//1060 -f 35//1028 37//1030 203//1055 205//1057 -f 37//1030 53//1032 201//1053 203//1055 -f 53//1032 69//1034 199//1051 201//1053 -f 69//1034 85//1036 198//1050 199//1051 -g fuselage -f 85//1036 84//1035 196//1048 198//1050 -g exhaust -f 84//1035 68//1033 193//1045 196//1048 -f 68//1033 52//1031 191//1043 193//1045 -f 52//1031 36//1029 189//1041 191//1043 -f 36//1029 34//1027 187//1039 189//1041 -f 187//1039 186//1038 185//1037 188//1040 -f 189//1041 187//1039 188//1040 190//1042 -f 191//1043 189//1041 190//1042 192//1044 -f 193//1045 191//1043 192//1044 194//1046 -f 196//1048 193//1045 194//1046 209//1061 195//1047 -f 199//1051 198//1050 197//1049 210//1062 200//1052 -f 201//1053 199//1051 200//1052 202//1054 -f 203//1055 201//1053 202//1054 204//1056 -f 205//1057 203//1055 204//1056 206//1058 -f 208//1060 205//1057 206//1058 207//1059 -f 186//1038 208//1060 207//1059 185//1037 -f 198//1050 196//1048 195//1047 197//1049 -s 36 -f 332//1098 335//1101 336//1102 331//1097 -s 4 -f 188//1040 185//1037 212//1064 211//1063 -f 185//1037 207//1059 213//1065 212//1064 -f 207//1059 206//1058 214//1066 213//1065 -f 206//1058 188//1040 211//1063 214//1066 -f 190//1042 188//1040 216//1068 215//1067 -f 188//1040 206//1058 217//1069 216//1068 -f 206//1058 204//1056 218//1070 217//1069 -f 204//1056 190//1042 215//1067 218//1070 -f 192//1044 190//1042 220//1072 219//1071 -f 190//1042 204//1056 221//1073 220//1072 -f 204//1056 202//1054 222//1074 221//1073 -f 202//1054 192//1044 219//1071 222//1074 -f 194//1046 192//1044 224//1076 223//1075 -f 192//1044 202//1054 225//1077 224//1076 -f 202//1054 200//1052 226//1078 225//1077 -f 200//1052 194//1046 223//1075 226//1078 -f 200//1052 210//1062 228//1080 227//1079 -f 210//1062 209//1061 229//1081 228//1080 -f 209//1061 194//1046 230//1082 229//1081 -f 194//1046 200//1052 227//1079 230//1082 -f 195//1047 209//1061 232//1084 231//1083 -f 209//1061 210//1062 233//1085 232//1084 -f 210//1062 197//1049 234//1086 233//1085 -f 197//1049 195//1047 231//1083 234//1086 -s 44 -f 212//884 213//885 406//902 407//903 388//888 389//889 -f 213//885 214//886 405//901 406//902 -s off -f 275//1 276//1 271//1 272//1 273//1 274//1 -s 44 -f 211//883 212//884 389//889 390//890 -s off -f 216//2 217//2 412//2 413//2 372//2 373//2 -s 42 -f 217//907 218//908 411//923 412//924 -s off -f 281//3 282//3 277//3 278//3 279//3 280//3 -s 42 -f 215//905 216//906 373//911 374//912 -s off -f 220//4 221//4 418//4 419//4 356//4 357//4 -s 40 -f 221//929 222//930 417//945 418//946 -s off -f 287//5 288//5 283//5 284//5 285//5 286//5 -s 40 -f 219//927 220//928 357//933 358//934 -s off -f 224//6 225//6 424//6 425//6 350//6 351//6 -s 38 -f 225//951 226//952 423//967 424//968 -s off -f 293//7 294//7 289//7 290//7 291//7 292//7 -s 38 -f 223//949 224//950 351//963 352//964 -s off -f 299//8 300//8 295//8 296//8 297//8 298//8 -s 36 -f 229//1089 230//1090 325//1093 326//1094 -s off -f 230//9 227//9 430//9 431//9 324//9 325//9 -s 36 -f 227//1087 228//1088 429//1105 430//1106 -s off -f 232//10 233//10 436//10 437//10 318//10 319//10 -s 34 -f 233//973 234//974 435//989 436//990 -s off -f 305//11 306//11 301//11 302//11 303//11 304//11 -s 34 -f 231//971 232//972 319//985 320//986 -s 44 -f 392//891 387//887 397//895 393//892 -s 42 -f 376//913 371//909 381//917 377//914 -s 40 -f 360//935 355//931 365//939 361//936 -s 38 -f 354//965 349//961 348//960 344//957 -s 36 -f 328//1095 323//1091 333//1099 329//1096 -s 34 -f 322//987 317//983 311//978 307//975 -s 44 -f 408//904 403//900 402//899 398//896 -s 42 -f 414//926 409//922 386//921 382//918 -s 40 -f 420//948 415//944 370//943 366//940 -s 38 -f 426//970 421//966 343//956 339//953 -s 36 -f 432//1108 427//1104 338//1103 334//1100 -s 34 -f 438//992 433//988 316//982 312//979 -s 44 -f 388//888 407//903 408//904 398//896 399//897 396//894 397//895 387//887 -s 42 -f 372//910 413//925 414//926 382//918 383//919 380//916 381//917 371//909 -s 40 -f 356//932 419//947 420//948 366//940 367//941 364//938 365//939 355//931 -s 38 -f 350//962 425//969 426//970 339//953 340//954 347//959 348//960 349//961 -s 36 -f 324//1092 431//1107 432//1108 334//1100 335//1101 332//1098 333//1099 323//1091 -s 34 -f 318//984 437//991 438//992 312//979 313//980 310//977 311//978 317//983 -s 26 -f 405//1128 214//1110 236//1112 235//1111 404//1127 -s off -f 214//12 211//12 237//12 236//12 -s 26 -f 211//1109 390//1117 391//1118 238//1114 237//1113 -f 392//1119 393//1120 394//1121 239//1115 238//1114 391//1118 -f 395//1122 400//1123 401//1124 240//1116 239//1115 394//1121 -f 402//1125 403//1126 404//1127 235//1111 240//1116 401//1124 -s 21 -f 411//1148 218//1130 242//1132 241//1131 410//1147 -f 218//1130 215//1129 243//1133 242//1132 -f 215//1129 374//1137 375//1138 244//1134 243//1133 -f 376//1139 377//1140 378//1141 245//1135 244//1134 375//1138 -f 379//1142 384//1143 385//1144 246//1136 245//1135 378//1141 -f 386//1145 409//1146 410//1147 241//1131 246//1136 385//1144 -s 22 -f 417//1168 222//1150 248//1152 247//1151 416//1167 -f 222//1150 219//1149 249//1153 248//1152 -f 219//1149 358//1157 359//1158 250//1154 249//1153 -f 360//1159 361//1160 362//1161 251//1155 250//1154 359//1158 -f 363//1162 368//1163 369//1164 252//1156 251//1155 362//1161 -f 370//1165 415//1166 416//1167 247//1151 252//1156 369//1164 -s 23 -f 423//1188 226//1170 254//1172 253//1171 422//1187 -f 226//1170 223//1169 255//1173 254//1172 -f 223//1169 352//1183 353//1184 256//1174 255//1173 -f 354//1185 344//1180 345//1181 257//1175 256//1174 353//1184 -f 346//1182 341//1177 342//1178 258//1176 257//1175 345//1181 -f 343//1179 421//1186 422//1187 253//1171 258//1176 342//1178 -s 24 -f 429//1208 228//1189 260//1192 259//1191 428//1207 -f 228//1189 229//1190 261//1193 260//1192 -f 229//1190 326//1197 327//1198 262//1194 261//1193 -f 328//1199 329//1200 330//1201 263//1195 262//1194 327//1198 -f 331//1202 336//1203 337//1204 264//1196 263//1195 330//1201 -f 338//1205 427//1206 428//1207 259//1191 264//1196 337//1204 -s 25 -f 435//1228 234//1210 266//1212 265//1211 434//1227 -f 234//1210 231//1209 267//1213 266//1212 -f 231//1209 320//1223 321//1224 268//1214 267//1213 -f 322//1225 307//1217 308//1218 269//1215 268//1214 321//1224 -f 309//1219 314//1220 315//1221 270//1216 269//1215 308//1218 -f 316//1222 433//1226 434//1227 265//1211 270//1216 315//1221 -s 28 -f 238//1230 239//1231 272//1234 271//1233 -f 239//1231 240//1232 273//1235 272//1234 -f 240//1232 235//1229 274//1236 273//1235 -s off -f 235//13 236//13 275//13 274//13 -f 236//14 237//14 276//14 275//14 -f 237//15 238//15 271//15 276//15 -s 29 -f 244//1238 245//1239 278//1242 277//1241 -f 245//1239 246//1240 279//1243 278//1242 -f 246//1240 241//1237 280//1244 279//1243 -s off -f 241//16 242//16 281//16 280//16 -f 242//17 243//17 282//17 281//17 -f 243//18 244//18 277//18 282//18 -s 30 -f 250//1246 251//1247 284//1250 283//1249 -f 251//1247 252//1248 285//1251 284//1250 -f 252//1248 247//1245 286//1252 285//1251 -s off -f 247//19 248//19 287//19 286//19 -f 248//20 249//20 288//20 287//20 -f 249//21 250//21 283//21 288//21 -s 31 -f 256//1254 257//1255 290//1258 289//1257 -f 257//1255 258//1256 291//1259 290//1258 -f 258//1256 253//1253 292//1260 291//1259 -s off -f 253//22 254//22 293//22 292//22 -f 254//23 255//23 294//23 293//23 -f 255//24 256//24 289//24 294//24 -s 32 -f 262//1262 263//1263 296//1266 295//1265 -f 263//1263 264//1264 297//1267 296//1266 -f 264//1264 259//1261 298//1268 297//1267 -s off -f 259//25 260//25 299//25 298//25 -f 260//26 261//26 300//26 299//26 -f 261//27 262//27 295//27 300//27 -s 33 -f 268//1270 269//1271 302//1274 301//1273 -f 269//1271 270//1272 303//1275 302//1274 -f 270//1272 265//1269 304//1276 303//1275 -s off -f 265//28 266//28 305//28 304//28 -f 266//29 267//29 306//29 305//29 -f 267//30 268//30 301//30 306//30 -f 307//31 309//31 308//31 -f 314//32 316//32 315//32 -s 34 -f 317//983 319//985 318//984 -s off -f 320//33 322//33 321//33 -s 36 -f 323//1091 325//1093 324//1092 -s off -f 326//34 328//34 327//34 -f 329//35 331//35 330//35 -f 336//36 338//36 337//36 -f 341//37 343//37 342//37 -f 344//38 346//38 345//38 -s 38 -f 349//961 351//963 350//962 -s off -f 352//39 354//39 353//39 -s 40 -f 355//931 357//933 356//932 -s off -f 358//40 360//40 359//40 -f 361//41 363//41 362//41 -f 368//42 370//42 369//42 -s 42 -f 371//909 373//911 372//910 -s off -f 374//43 376//43 375//43 -f 377//44 379//44 378//44 -f 384//45 386//45 385//45 -s 44 -f 387//887 389//889 388//888 -s off -f 390//46 392//46 391//46 -f 393//47 395//47 394//47 -f 400//48 402//48 401//48 -f 403//49 405//49 404//49 -s 44 -f 406//902 408//904 407//903 -s off -f 409//50 411//50 410//50 -s 42 -f 412//924 414//926 413//925 -s off -f 415//51 417//51 416//51 -s 40 -f 418//946 420//948 419//947 -s off -f 421//52 423//52 422//52 -s 38 -f 424//968 426//970 425//969 -s off -f 427//53 429//53 428//53 -s 36 -f 430//1106 432//1108 431//1107 -s off -f 433//54 435//54 434//54 -s 34 -f 436//990 438//992 437//991 -f 310//977 309//976 307//975 311//978 -f 314//981 313//980 312//979 316//982 -f 320//986 319//985 317//983 322//987 -s 36 -f 326//1094 325//1093 323//1091 328//1095 -f 332//1098 331//1097 329//1096 333//1099 -f 336//1102 335//1101 334//1100 338//1103 -s 38 -f 341//955 340//954 339//953 343//956 -f 347//959 346//958 344//957 348//960 -f 352//964 351//963 349//961 354//965 -s 40 -f 358//934 357//933 355//931 360//935 -f 364//938 363//937 361//936 365//939 -f 368//942 367//941 366//940 370//943 -s 42 -f 374//912 373//911 371//909 376//913 -f 380//916 379//915 377//914 381//917 -f 384//920 383//919 382//918 386//921 -s 44 -f 390//890 389//889 387//887 392//891 -f 396//894 395//893 393//892 397//895 -f 400//898 399//897 398//896 402//899 -f 406//902 405//901 403//900 408//904 -s 42 -f 412//924 411//923 409//922 414//926 -s 40 -f 418//946 417//945 415//944 420//948 -s 38 -f 424//968 423//967 421//966 426//970 -s 36 -f 430//1106 429//1105 427//1104 432//1108 -s 34 -f 436//990 435//989 433//988 438//992 -g fuselage -s 1 -f 85//204 86//205 440//297 439//296 -f 86//205 87//206 441//298 440//297 -f 87//206 75//194 442//299 441//298 -g wings -f 563//420 569//426 561//418 562//419 -g fuselage -f 77//196 78//197 444//301 443//300 -f 79//198 80//199 446//303 445//302 -f 80//199 81//200 447//304 446//303 -f 81//200 82//201 448//305 447//304 -f 82//201 83//202 449//306 448//305 -f 83//202 84//203 450//307 449//306 -f 84//203 85//204 439//296 450//307 -g canopy -f 448//305 479//336 451//308 488//345 501//358 502//359 -g fuselage -f 449//306 450//307 452//309 477//334 478//335 -f 450//307 439//296 453//310 452//309 -f 439//296 440//297 454//311 453//310 -f 440//297 441//298 455//312 454//311 -f 441//298 442//299 456//313 455//312 -f 443//300 444//301 458//315 457//314 -g canopy -f 486//343 445//302 446//303 447//304 500//357 499//356 498//355 -f 502//359 500//357 447//304 448//305 -f 462//319 461//318 460//317 473//330 513//370 512//369 514//371 -f 510//367 463//320 462//319 514//371 512//369 509//366 -f 482//339 484//341 463//320 511//368 -g fuselage -f 485//342 483//340 481//338 477//334 452//309 465//322 -f 452//309 453//310 466//323 465//322 -f 453//310 454//311 467//324 466//323 -f 454//311 455//312 468//325 467//324 -f 455//312 456//313 469//326 468//325 -f 457//314 458//315 472//329 471//328 -f 479//336 448//305 449//306 478//335 -g canopy -f 497//354 513//370 473//330 487//344 -f 505//362 509//366 512//369 507//364 496//353 504//361 -g fuselage -f 451//308 478//335 477//334 -f 451//308 479//336 478//335 -f 464//321 485//342 484//341 -g canopy -f 451//308 476//333 503//360 491//348 -g fuselage -f 476//333 451//308 475//332 480//337 -f 451//308 477//334 481//338 475//332 -f 480//337 475//332 474//331 482//339 -f 475//332 481//338 483//340 474//331 -f 482//339 474//331 464//321 484//341 -f 474//331 483//340 485//342 464//321 -g canopy -f 501//358 489//346 492//349 499//356 -f 490//347 504//361 496//353 495//352 -f 498//355 493//350 459//316 486//343 -f 494//351 497//354 487//344 459//316 -f 488//345 491//348 490//347 489//346 -f 492//349 495//352 494//351 493//350 -f 510//367 511//368 463//320 -f 492//349 489//346 490//347 495//352 -f 495//352 496//353 497//354 494//351 -f 459//316 493//350 494//351 -f 493//350 498//355 499//356 492//349 -f 500//357 502//359 501//358 499//356 -f 489//346 501//358 488//345 -f 488//345 451//308 491//348 -f 491//348 503//360 504//361 490//347 -f 506//363 505//362 504//361 503//360 -f 508//365 509//366 505//362 506//363 -f 511//368 510//367 509//366 508//365 -f 482//339 508//365 506//363 480//337 -f 480//337 506//363 503//360 476//333 -f 482//339 511//368 508//365 -f 513//370 497//354 496//353 507//364 512//369 -g fuselage -f 470//327 528//385 527//384 469//326 -f 460//317 461//318 519//376 518//375 -f 461//318 462//319 520//377 519//376 -f 462//319 463//320 521//378 520//377 -f 463//320 484//341 522//379 521//378 -f 484//341 485//342 523//380 522//379 -f 485//342 465//322 524//381 523//380 -f 465//322 466//323 525//382 524//381 -f 466//323 467//324 526//383 525//382 -f 467//324 468//325 527//384 526//383 -f 468//325 469//326 527//384 -f 526//383 527//384 530//387 529//386 -f 527//384 528//385 531//388 530//387 -f 528//385 515//372 532//389 531//388 -f 515//372 516//373 533//390 532//389 -f 516//373 517//374 534//391 533//390 -f 518//375 519//376 536//393 535//392 -f 519//376 520//377 537//394 536//393 -f 520//377 521//378 538//395 537//394 -f 521//378 522//379 539//396 538//395 -f 522//379 523//380 540//397 539//396 -f 523//380 524//381 541//398 540//397 -f 524//381 525//382 542//399 541//398 -f 525//382 526//383 529//386 542//399 -f 580//436 581//437 576//432 577//433 578//434 579//435 -g wings -f 469//326 456//313 544//401 543//400 -f 456//313 442//299 545//402 544//401 -f 442//299 75//194 546//403 545//402 -f 75//194 76//195 547//404 546//403 -f 76//195 77//196 548//405 547//404 -f 77//196 443//300 549//406 548//405 -f 443//300 457//314 550//407 549//406 -f 457//314 471//328 551//408 550//407 -s 57 -f 471//1279 470//1278 469//1277 543//1280 551//1281 -s 1 -f 545//402 546//403 553//410 552//409 -f 546//403 547//404 554//411 553//410 -f 547//404 548//405 555//412 554//411 -f 548//405 549//406 556//413 555//412 -f 549//406 550//407 557//414 556//413 -f 550//407 551//408 558//415 557//414 -s 57 -f 551//1281 543//1280 559//1283 558//1282 -s 1 -f 543//400 544//401 560//417 559//416 -f 544//401 545//402 552//409 560//417 -f 558//415 559//416 562//419 561//418 -f 559//416 560//417 563//420 562//419 -f 560//417 552//409 564//421 563//420 -f 552//409 553//410 565//422 564//421 -f 553//410 554//411 566//423 565//422 -f 554//411 555//412 567//424 566//423 -f 555//412 556//413 568//425 567//424 -f 556//413 557//414 569//426 568//425 -f 557//414 558//415 561//418 569//426 -g fuselage -f 515//372 528//385 571//428 570//427 -f 528//385 470//327 572//429 571//428 -f 470//327 471//328 572//429 -f 517//374 516//373 575//431 574//430 -f 516//373 515//372 570//427 575//431 -s 52 -f 573//1287 572//1286 471//1284 472//1285 -s 1 -f 574//430 575//431 578//434 577//433 -f 575//431 570//427 579//435 578//434 -f 570//427 571//428 580//436 579//435 -f 571//428 572//429 581//437 580//436 -s 52 -f 572//1286 573//1287 576//1288 581//1289 -g wings -s 1 -f 568//425 564//421 565//422 566//423 567//424 -f 569//426 563//420 564//421 568//425 -g fuselage -f 540//397 541//398 583//439 582//438 -f 541//398 542//399 584//440 583//439 -f 542//399 529//386 585//441 584//440 -f 529//386 530//387 586//442 585//441 -f 530//387 531//388 587//443 586//442 -f 531//388 532//389 588//444 587//443 -f 532//389 533//390 589//445 588//444 -f 533//390 534//391 590//446 589//445 -f 535//392 536//393 592//448 591//447 -f 536//393 537//394 593//449 592//448 -f 537//394 538//395 594//450 593//449 -f 538//395 539//396 595//451 594//450 -f 539//396 540//397 582//438 595//451 -f 593//449 594//450 597//453 596//452 -f 594//450 595//451 598//454 597//453 -f 595//451 582//438 599//455 598//454 -f 582//438 583//439 600//456 599//455 -f 583//439 584//440 601//457 600//456 -f 584//440 585//441 602//458 601//457 -f 585//441 586//442 603//459 602//458 -f 586//442 587//443 604//460 603//459 -f 587//443 588//444 605//461 604//460 -f 588//444 589//445 606//462 605//461 -f 589//445 590//446 607//463 606//462 -f 591//447 592//448 609//465 608//464 -f 592//448 593//449 596//452 609//465 -f 608//464 609//465 612//468 611//467 -f 609//465 596//452 613//469 612//468 -f 596//452 597//453 614//470 613//469 -f 597//453 598//454 615//471 614//470 -f 598//454 599//455 616//472 615//471 -f 599//455 600//456 617//473 616//472 -f 600//456 601//457 618//474 617//473 -f 601//457 602//458 619//475 618//474 -f 602//458 603//459 620//476 619//475 -f 603//459 604//460 621//477 620//476 -f 604//460 605//461 622//478 621//477 -f 605//461 606//462 623//479 622//478 -f 606//462 607//463 610//466 623//479 -f 621//477 622//478 625//481 624//480 -f 622//478 623//479 626//482 625//481 -f 623//479 610//466 627//483 626//482 -g wings -f 611//467 612//468 629//485 628//484 -f 612//468 613//469 630//486 629//485 -g fuselage -f 613//469 614//470 631//487 630//486 -f 614//470 615//471 632//488 631//487 -f 615//471 616//472 633//489 632//488 -f 616//472 617//473 634//490 633//489 -f 617//473 618//474 635//491 634//490 -f 618//474 619//475 636//492 635//491 -f 619//475 620//476 637//493 636//492 -f 620//476 621//477 624//480 637//493 -f 635//491 636//492 639//495 638//494 -f 636//492 637//493 640//496 639//495 -f 637//493 624//480 641//497 640//496 -f 624//480 625//481 642//498 641//497 -f 625//481 626//482 643//499 642//498 -f 626//482 627//483 644//500 643//499 -g wings -s off -f 628//55 629//55 646//55 645//55 -s 1 -f 629//485 647//502 646//501 -g fuselage -f 630//486 631//487 648//503 647//502 -f 631//487 632//488 649//504 648//503 -f 632//488 633//489 650//505 649//504 -f 633//489 634//490 651//506 650//505 -g wings -s 64 -f 668//1297 666//1295 670//1299 672//1301 -g fuselage -s 1 -f 649//504 650//505 653//508 652//507 -f 650//505 651//506 654//509 653//508 -f 651//506 638//494 655//510 654//509 -f 638//494 639//495 656//511 655//510 -f 639//495 640//496 657//512 656//511 -f 640//496 641//497 658//513 657//512 -f 641//497 642//498 659//514 658//513 -f 642//498 643//499 660//515 659//514 -f 643//499 644//500 661//516 660//515 -g wings -s 61 -f 645//1303 646//1304 663//1306 662//1305 -s 1 -f 646//501 647//502 664//518 663//517 -g fuselage -f 647//502 648//503 665//519 664//518 -f 648//503 649//504 652//507 665//519 -g wings -s 66 -f 651//1310 634//1309 673//1314 671//1312 -s 64 -f 634//1293 635//1294 669//1298 673//1302 -s 65 -f 635//1315 638//1316 667//1318 669//1320 -s off -f 638//56 651//56 671//56 667//56 -s 65 -f 669//1320 667//1318 666//1317 668//1319 -s 64 -f 667//1296 671//1300 670//1299 666//1295 -s 66 -f 671//1312 673//1314 672//1313 670//1311 -s 64 -f 673//1302 669//1298 668//1297 672//1301 -g fuselage -s 1 -f 674//520 675//521 676//522 677//523 -f 678//524 114//233 1//120 679//525 -f 141//260 680//526 681//527 2//121 -s 15 -f 182//874 181//873 682//877 683//878 684//879 685//880 686//881 687//882 -s 1 -f 700//540 701//541 702//542 703//543 -f 704//544 705//545 706//546 707//547 -f 708//548 709//549 710//550 711//551 -f 711//551 710//550 678//524 679//525 -f 709//549 708//548 703//543 702//542 -f 701//541 700//540 712//552 713//553 -f 714//554 715//555 716//556 717//557 -f 715//555 714//554 707//547 706//546 -f 717//557 716//556 681//527 680//526 -f 718//558 13//132 2//121 681//527 -f 14//133 719//559 679//525 1//120 -f 719//559 720//560 711//551 679//525 -f 720//560 721//561 708//548 711//551 -f 721//561 722//562 703//543 708//548 -f 722//562 723//563 700//540 703//543 -f 723//563 724//564 725//565 712//552 700//540 -f 725//565 724//564 726//566 677//523 676//522 -f 727//567 728//568 706//546 705//545 -f 728//568 729//569 715//555 706//546 -f 729//569 730//570 716//556 715//555 -f 730//570 718//558 681//527 716//556 -f 731//571 732//572 729//569 728//568 -f 732//572 733//573 730//570 729//569 -f 733//573 734//574 718//558 730//570 -f 734//574 28//147 13//132 718//558 -f 29//148 735//575 719//559 14//133 -f 735//575 736//576 720//560 719//559 -f 736//576 737//577 721//561 720//560 -f 737//577 738//578 722//562 721//561 -f 738//578 739//579 723//563 722//562 -g exhaust -s 71 -f 740//1321 741//1322 742//1323 743//1324 -g fuselage -s 1 -f 744//580 745//581 726//566 724//564 -f 746//582 731//571 728//568 727//567 -g exhaust -s 73 -f 747//1343 748//1344 749//1345 750//1346 -g fuselage -s 1 -f 751//583 752//584 753//585 745//581 744//580 -f 753//585 752//584 754//586 731//571 746//582 -f 754//586 755//587 732//572 731//571 -f 755//587 756//588 733//573 732//572 -f 756//588 757//589 734//574 733//573 -f 757//589 43//162 28//147 734//574 -f 44//163 758//590 735//575 29//148 -f 758//590 759//591 736//576 735//575 -f 759//591 760//592 737//577 736//576 -f 760//592 761//593 738//578 737//577 -f 761//593 762//594 739//579 738//578 -f 763//595 764//596 760//592 759//591 -f 764//596 765//597 761//593 760//592 -f 765//597 766//598 762//594 761//593 -g exhaust -s 74 -f 767//1365 768//1366 769//1367 770//1368 -g fuselage -s 1 -f 771//599 772//600 752//584 751//583 -f 772//600 773//601 754//586 752//584 -f 773//601 774//602 755//587 754//586 -f 774//602 775//603 756//588 755//587 -f 775//603 776//604 757//589 756//588 -f 776//604 59//178 43//162 757//589 -f 60//179 777//605 758//590 44//163 -f 777//605 763//595 759//591 758//590 -f 63//182 778//606 777//605 60//179 -f 778//606 779//607 763//595 777//605 -f 779//607 780//608 764//596 763//595 -f 780//608 781//609 765//597 764//596 -f 781//609 782//610 766//598 765//597 -g exhaust -s 75 -f 783//1387 784//1388 785//1389 786//1390 -g fuselage -s 1 -f 787//611 788//612 772//600 771//599 -f 788//612 789//613 773//601 772//600 -f 789//613 790//614 774//602 773//601 -f 790//614 791//615 775//603 774//602 -f 791//615 792//616 776//604 775//603 -f 792//616 62//181 59//178 776//604 -f 793//617 794//618 791//615 790//614 -f 794//618 795//619 792//616 791//615 -f 795//619 78//197 62//181 792//616 -f 79//198 796//620 778//606 63//182 -f 796//620 797//621 779//607 778//606 -f 797//621 798//622 780//608 779//607 -f 798//622 799//623 781//609 780//608 -f 799//623 800//624 782//610 781//609 -g exhaust -s 76 -f 801//1409 802//1410 803//1411 804//1412 -g fuselage -s 1 -f 805//625 806//626 788//612 787//611 -f 806//626 807//627 789//613 788//612 -f 807//627 793//617 790//614 789//613 -f 753//585 746//582 745//581 -f 705//545 704//544 674//520 677//523 -f 727//567 705//545 677//523 726//566 -f 746//582 727//567 726//566 745//581 -f 725//565 676//522 712//552 -f 713//553 712//552 676//522 675//521 -f 113//232 808//628 809//629 99//218 -f 810//630 809//629 808//628 811//631 -f 812//632 810//630 811//631 813//633 -f 814//634 812//632 813//633 815//635 -f 816//636 814//634 815//635 817//637 -f 818//638 816//636 817//637 819//639 -f 820//640 818//638 819//639 821//641 -f 821//641 822//642 823//643 820//640 -f 824//644 823//643 822//642 825//645 -f 826//646 824//644 825//645 827//647 -f 828//648 826//646 827//647 829//649 -f 830//650 828//648 829//649 831//651 -f 832//652 830//650 831//651 833//653 -f 833//653 142//261 112//231 832//652 -f 808//628 113//232 114//233 678//524 -f 811//631 808//628 678//524 710//550 -f 813//633 811//631 710//550 709//549 -f 815//635 813//633 709//549 702//542 -f 817//637 815//635 702//542 701//541 -f 819//639 817//637 701//541 713//553 -f 821//641 819//639 713//553 675//521 -f 822//642 821//641 675//521 674//520 -f 825//645 822//642 674//520 704//544 -f 827//647 825//645 704//544 707//547 -f 829//649 827//647 707//547 714//554 -f 831//651 829//649 714//554 717//557 -f 833//653 831//651 717//557 680//526 -f 142//261 833//653 680//526 141//260 -f 823//643 824//644 834//654 835//655 -f 820//640 823//643 835//655 836//656 -f 818//638 820//640 836//656 837//657 -f 816//636 818//638 837//657 838//658 -f 838//658 839//659 840//660 814//634 816//636 -f 840//660 841//661 812//632 814//634 -f 841//661 842//662 810//630 812//632 -f 842//662 843//663 809//629 810//630 -f 843//663 156//275 99//218 809//629 -f 844//664 832//652 112//231 157//276 -f 844//664 845//665 830//650 832//652 -f 845//665 846//666 828//648 830//650 -f 846//666 847//667 848//668 826//646 828//648 -f 824//644 826//646 848//668 834//654 -f 849//669 850//670 166//285 156//275 843//663 842//662 841//661 840//660 839//659 851//671 -f 852//672 850//670 853//673 854//674 -f 853//673 835//655 854//674 -f 835//655 855//675 854//674 -f 855//675 856//676 852//672 854//674 -f 848//668 847//667 857//677 -f 839//659 838//658 858//678 -f 165//284 158//277 852//672 856//676 -f 158//277 166//285 850//670 852//672 -f 834//654 859//679 855//675 835//655 -f 859//679 860//680 856//676 855//675 -f 848//668 857//677 859//679 834//654 -f 857//677 847//667 860//680 859//679 -f 835//655 853//673 861//681 836//656 -f 853//673 850//670 849//669 861//681 -f 836//656 861//681 862//682 837//657 -f 861//681 849//669 851//671 862//682 -f 837//657 862//682 858//678 838//658 -f 862//682 851//671 839//659 858//678 -s 11 -f 685//1010 684//1009 847//1016 846//1015 -f 684//1009 683//1008 860//1018 847//1016 -f 683//1008 682//1007 856//1017 860//1018 -s 13 -f 682//1023 181//1022 165//1020 856//1024 -s 11 -f 182//1004 687//1012 844//1013 157//996 -f 687//1012 686//1011 845//1014 844//1013 -f 686//1011 685//1010 846//1015 845//1014 -g exhaust -s 70 -f 863//1443 864//1444 723//1431 739//1433 -f 864//1444 865//1445 724//1432 723//1431 -f 865//1445 866//1446 744//1434 724//1432 -f 866//1446 867//1447 751//1435 744//1434 -f 867//1447 868//1448 771//1438 751//1435 -f 868//1448 869//1449 787//1440 771//1438 -f 869//1449 870//1450 805//1442 787//1440 -g fuselage -f 870//1450 871//1451 800//1441 805//1442 -g exhaust -f 871//1451 872//1452 782//1439 800//1441 -f 872//1452 873//1453 766//1437 782//1439 -f 873//1453 874//1454 762//1436 766//1437 -f 874//1454 863//1443 739//1433 762//1436 -f 875//1455 876//1456 864//1444 863//1443 -f 877//1457 875//1455 863//1443 874//1454 -f 878//1458 877//1457 874//1454 873//1453 -f 879//1459 878//1458 873//1453 872//1452 -f 880//1460 881//1461 879//1459 872//1452 871//1451 -f 882//1462 883//1463 884//1464 870//1450 869//1449 -f 885//1465 882//1462 869//1449 868//1448 -f 886//1466 885//1465 868//1448 867//1447 -f 887//1467 886//1466 867//1447 866//1446 -f 888//1468 887//1467 866//1446 865//1445 -f 876//1456 888//1468 865//1445 864//1444 -f 884//1464 880//1460 871//1451 870//1450 -s 79 -f 889//1493 890//1494 891//1495 892//1496 -s 70 -f 893//1469 894//1470 876//1456 875//1455 -f 894//1470 895//1471 888//1468 876//1456 -f 895//1471 896//1472 887//1467 888//1468 -f 896//1472 893//1469 875//1455 887//1467 -f 897//1473 898//1474 875//1455 877//1457 -f 898//1474 899//1475 887//1467 875//1455 -f 899//1475 900//1476 886//1466 887//1467 -f 900//1476 897//1473 877//1457 886//1466 -f 901//1477 902//1478 877//1457 878//1458 -f 902//1478 903//1479 886//1466 877//1457 -f 903//1479 904//1480 885//1465 886//1466 -f 904//1480 901//1477 878//1458 885//1465 -f 905//1481 906//1482 878//1458 879//1459 -f 906//1482 907//1483 885//1465 878//1458 -f 907//1483 908//1484 882//1462 885//1465 -f 908//1484 905//1481 879//1459 882//1462 -f 909//1485 910//1486 883//1463 882//1462 -f 910//1486 911//1487 881//1461 883//1463 -f 911//1487 912//1488 879//1459 881//1461 -f 912//1488 909//1485 882//1462 879//1459 -f 913//1489 914//1490 881//1461 880//1460 -f 914//1490 915//1491 883//1463 881//1461 -f 915//1491 916//1492 884//1464 883//1463 -f 916//1492 913//1489 880//1460 884//1464 -s 71 -f 917//1329 918//1330 919//1331 920//1332 895//1327 894//1326 -f 920//1332 921//1333 896//1328 895//1327 -s off -f 922//57 923//57 924//57 925//57 926//57 927//57 -s 71 -f 928//1334 917//1329 894//1326 893//1325 -s off -f 929//58 930//58 931//58 932//58 899//58 898//58 -s 73 -f 932//1354 933//1355 900//1350 899//1349 -s off -f 934//59 935//59 936//59 937//59 938//59 939//59 -s 73 -f 940//1356 929//1351 898//1348 897//1347 -s off -f 941//60 942//60 943//60 944//60 903//60 902//60 -s 74 -f 944//1376 945//1377 904//1372 903//1371 -s off -f 946//61 947//61 948//61 949//61 950//61 951//61 -s 74 -f 952//1378 941//1373 902//1370 901//1369 -s off -f 953//62 954//62 955//62 956//62 907//62 906//62 -s 75 -f 956//1398 957//1399 908//1394 907//1393 -s off -f 958//63 959//63 960//63 961//63 962//63 963//63 -s 75 -f 964//1400 953//1395 906//1392 905//1391 -s off -f 965//64 966//64 967//64 968//64 969//64 970//64 -s 79 -f 971//1501 972//1502 912//1500 911//1499 -s off -f 972//65 973//65 974//65 975//65 909//65 912//65 -s 79 -f 975//1505 976//1506 910//1498 909//1497 -s off -f 977//66 978//66 979//66 980//66 915//66 914//66 -s 76 -f 980//1420 981//1421 916//1416 915//1415 -s off -f 982//67 983//67 984//67 985//67 986//67 987//67 -s 76 -f 988//1422 977//1417 914//1414 913//1413 -s 71 -f 989//1335 990//1336 991//1337 992//1338 -s 73 -f 993//1357 994//1358 995//1359 996//1360 -s 74 -f 997//1379 998//1380 999//1381 1000//1382 -s 75 -f 1001//1401 1002//1402 1003//1403 1004//1404 -s 79 -f 1005//1507 1006//1508 1007//1509 1008//1510 -s 76 -f 1009//1423 1010//1424 1011//1425 1012//1426 -s 71 -f 1013//1339 1014//1340 1015//1341 1016//1342 -s 73 -f 1017//1361 1018//1362 1019//1363 1020//1364 -s 74 -f 1021//1383 1022//1384 1023//1385 1024//1386 -s 75 -f 1025//1405 1026//1406 1027//1407 1028//1408 -s 79 -f 1029//1511 1030//1512 1031//1513 1032//1514 -s 76 -f 1033//1427 1034//1428 1035//1429 1036//1430 -s 71 -f 991//1337 990//1336 741//1322 740//1321 1013//1339 1016//1342 919//1331 918//1330 -s 73 -f 995//1359 994//1358 748//1344 747//1343 1017//1361 1020//1364 931//1353 930//1352 -s 74 -f 999//1381 998//1380 768//1366 767//1365 1021//1383 1024//1386 943//1375 942//1374 -s 75 -f 1003//1403 1002//1402 784//1388 783//1387 1025//1405 1028//1408 955//1397 954//1396 -s 79 -f 1007//1509 1006//1508 892//1496 891//1495 1029//1511 1032//1514 974//1504 973//1503 -s 76 -f 1011//1425 1010//1424 802//1410 801//1409 1033//1427 1036//1430 979//1419 978//1418 -s 80 -f 1037//1525 1038//1526 1039//1527 896//1518 921//1519 -f 1039//1527 1040//1528 893//1517 896//1518 -f 1040//1528 1041//1529 1042//1530 928//1520 893//1517 -f 1042//1530 1041//1529 1043//1531 1044//1532 989//1521 992//1522 -f 1044//1532 1043//1531 1045//1533 1046//1534 743//1516 742//1515 -f 1046//1534 1045//1533 1038//1526 1037//1525 1015//1524 1014//1523 -s 81 -f 1047//1545 1048//1546 1049//1547 900//1538 933//1539 -f 1049//1547 1050//1548 897//1537 900//1538 -f 1050//1548 1051//1549 1052//1550 940//1540 897//1537 -f 1052//1550 1051//1549 1053//1551 1054//1552 993//1541 996//1542 -f 1054//1552 1053//1551 1055//1553 1056//1554 750//1536 749//1535 -f 1056//1554 1055//1553 1048//1546 1047//1545 1019//1544 1018//1543 -s 82 -f 1057//1565 1058//1566 1059//1567 904//1558 945//1559 -f 1059//1567 1060//1568 901//1557 904//1558 -f 1060//1568 1061//1569 1062//1570 952//1560 901//1557 -f 1062//1570 1061//1569 1063//1571 1064//1572 997//1561 1000//1562 -f 1064//1572 1063//1571 1065//1573 1066//1574 770//1556 769//1555 -f 1066//1574 1065//1573 1058//1566 1057//1565 1023//1564 1022//1563 -s 83 -f 1067//1585 1068//1586 1069//1587 908//1578 957//1579 -f 1069//1587 1070//1588 905//1577 908//1578 -f 1070//1588 1071//1589 1072//1590 964//1580 905//1577 -f 1072//1590 1071//1589 1073//1591 1074//1592 1001//1581 1004//1582 -f 1074//1592 1073//1591 1075//1593 1076//1594 786//1576 785//1575 -f 1076//1594 1075//1593 1068//1586 1067//1585 1027//1584 1026//1583 -s 84 -f 1077//1605 1078//1606 1079//1607 910//1597 976//1600 -f 1079//1607 1080//1608 911//1598 910//1597 -f 1080//1608 1081//1609 1082//1610 971//1599 911//1598 -f 1082//1610 1081//1609 1083//1611 1084//1612 1005//1601 1008//1602 -f 1084//1612 1083//1611 1085//1613 1086//1614 890//1596 889//1595 -f 1086//1614 1085//1613 1078//1606 1077//1605 1031//1604 1030//1603 -s 85 -f 1087//1625 1088//1626 1089//1627 916//1618 981//1619 -f 1089//1627 1090//1628 913//1617 916//1618 -f 1090//1628 1091//1629 1092//1630 988//1620 913//1617 -f 1092//1630 1091//1629 1093//1631 1094//1632 1009//1621 1012//1622 -f 1094//1632 1093//1631 1095//1633 1096//1634 804//1616 803//1615 -f 1096//1634 1095//1633 1088//1626 1087//1625 1035//1624 1034//1623 -s 89 -f 925//1638 924//1637 1043//1641 1041//1640 -f 924//1637 923//1636 1045//1642 1043//1641 -f 923//1636 922//1635 1038//1639 1045//1642 -s off -f 922//68 927//68 1039//68 1038//68 -f 927//69 926//69 1040//69 1039//69 -f 926//70 925//70 1041//70 1040//70 -s 92 -f 937//1646 936//1645 1053//1649 1051//1648 -f 936//1645 935//1644 1055//1650 1053//1649 -f 935//1644 934//1643 1048//1647 1055//1650 -s off -f 934//71 939//71 1049//71 1048//71 -f 939//72 938//72 1050//72 1049//72 -f 938//73 937//73 1051//73 1050//73 -s 95 -f 949//1654 948//1653 1063//1657 1061//1656 -f 948//1653 947//1652 1065//1658 1063//1657 -f 947//1652 946//1651 1058//1655 1065//1658 -s off -f 946//74 951//74 1059//74 1058//74 -f 951//75 950//75 1060//75 1059//75 -f 950//76 949//76 1061//76 1060//76 -s 98 -f 961//1662 960//1661 1073//1665 1071//1664 -f 960//1661 959//1660 1075//1666 1073//1665 -f 959//1660 958//1659 1068//1663 1075//1666 -s off -f 958//77 963//77 1069//77 1068//77 -f 963//78 962//78 1070//78 1069//78 -f 962//79 961//79 1071//79 1070//79 -s 99 -f 968//1670 967//1669 1083//1673 1081//1672 -f 967//1669 966//1668 1085//1674 1083//1673 -f 966//1668 965//1667 1078//1671 1085//1674 -s off -f 965//80 970//80 1079//80 1078//80 -f 970//81 969//81 1080//81 1079//81 -f 969//82 968//82 1081//82 1080//82 -s 104 -f 985//1678 984//1677 1093//1681 1091//1680 -f 984//1677 983//1676 1095//1682 1093//1681 -f 983//1676 982//1675 1088//1679 1095//1682 -s off -f 982//83 987//83 1089//83 1088//83 -f 987//84 986//84 1090//84 1089//84 -f 986//85 985//85 1091//85 1090//85 -f 1094//86 803//86 1009//86 -f 1096//87 1034//87 804//87 -s 76 -f 978//1418 977//1417 1011//1425 -s off -f 1092//88 1012//88 988//88 -s 79 -f 973//1503 972//1502 1007//1509 -s off -f 1082//89 1008//89 971//89 -f 1084//90 889//90 1005//90 -f 1086//91 1030//91 890//91 -f 1076//92 1026//92 786//92 -f 1074//93 785//93 1001//93 -s 75 -f 954//1396 953//1395 1003//1403 -s off -f 1072//94 1004//94 964//94 -s 74 -f 942//1374 941//1373 999//1381 -s off -f 1062//95 1000//95 952//95 -f 1064//96 769//96 997//96 -f 1066//97 1022//97 770//97 -s 73 -f 930//1352 929//1351 995//1359 -s off -f 1052//98 996//98 940//98 -f 1054//99 749//99 993//99 -f 1056//100 1018//100 750//100 -s 71 -f 918//1330 917//1329 991//1337 -s off -f 1042//101 992//101 928//101 -f 1044//102 742//102 989//102 -f 1046//103 1014//103 743//103 -f 1037//104 921//104 1015//104 -s 71 -f 919//1331 1016//1342 920//1332 -s off -f 1047//105 933//105 1019//105 -s 73 -f 931//1353 1020//1364 932//1354 -s off -f 1057//106 945//106 1023//106 -s 74 -f 943//1375 1024//1386 944//1376 -s off -f 1067//107 957//107 1027//107 -s 75 -f 955//1397 1028//1408 956//1398 -s off -f 1077//108 976//108 1031//108 -s 79 -f 974//1504 1032//1514 975//1505 -s off -f 1087//109 981//109 1035//109 -s 76 -f 979//1419 1036//1430 980//1420 -f 1010//1424 1009//1423 803//1411 802//1410 -f 1034//1428 1033//1427 801//1409 804//1412 -f 1012//1426 1011//1425 977//1417 988//1422 -s 79 -f 1008//1510 1007//1509 972//1502 971//1501 -f 1006//1508 1005//1507 889//1493 892//1496 -f 1030//1512 1029//1511 891//1495 890//1494 -s 75 -f 1026//1406 1025//1405 783//1387 786//1390 -f 1002//1402 1001//1401 785//1389 784//1388 -f 1004//1404 1003//1403 953//1395 964//1400 -s 74 -f 1000//1382 999//1381 941//1373 952//1378 -f 998//1380 997//1379 769//1367 768//1366 -f 1022//1384 1021//1383 767//1365 770//1368 -s 73 -f 996//1360 995//1359 929//1351 940//1356 -f 994//1358 993//1357 749//1345 748//1344 -f 1018//1362 1017//1361 747//1343 750//1346 -s 71 -f 992//1338 991//1337 917//1329 928//1334 -f 990//1336 989//1335 742//1323 741//1322 -f 1014//1340 1013//1339 740//1321 743//1324 -f 1016//1342 1015//1341 921//1333 920//1332 -s 73 -f 1020//1364 1019//1363 933//1355 932//1354 -s 74 -f 1024//1386 1023//1385 945//1377 944//1376 -s 75 -f 1028//1408 1027//1407 957//1399 956//1398 -s 79 -f 1032//1514 1031//1513 976//1506 975//1505 -s 76 -f 1036//1430 1035//1429 981//1421 980//1420 -g fuselage -s 1 -f 1097//683 1098//684 806//626 805//625 -f 1098//684 1099//685 807//627 806//626 -f 1099//685 1100//686 793//617 807//627 -g wings -f 1101//687 1102//688 1103//689 1104//690 -g fuselage -f 1105//691 444//301 78//197 795//619 -f 445//302 1106//692 796//620 79//198 -f 1106//692 1107//693 797//621 796//620 -f 1107//693 1108//694 798//622 797//621 -f 1108//694 1109//695 799//623 798//622 -f 1109//695 1110//696 800//624 799//623 -f 1110//696 1097//683 805//625 800//624 -g canopy -f 1111//697 1112//698 1113//699 1114//700 1115//701 1108//694 -g fuselage -f 1116//702 1117//703 1118//704 1110//696 1109//695 -f 1118//704 1119//705 1097//683 1110//696 -f 1119//705 1120//706 1098//684 1097//683 -f 1120//706 1121//707 1099//685 1098//684 -f 1121//707 1122//708 1100//686 1099//685 -f 1123//709 458//315 444//301 1105//691 -g canopy -f 1124//710 1125//711 1126//712 1107//693 1106//692 445//302 486//343 -f 1108//694 1107//693 1126//712 1111//697 -f 1127//713 1128//714 1129//715 473//330 460//317 1130//716 1131//717 -f 1132//718 1128//714 1127//713 1131//717 1133//719 1134//720 -f 1135//721 1133//719 1136//722 1137//723 -g fuselage -f 1138//724 1118//704 1117//703 1139//725 1140//726 1141//727 -f 1138//724 1142//728 1119//705 1118//704 -f 1142//728 1143//729 1120//706 1119//705 -f 1143//729 1144//730 1121//707 1120//706 -f 1144//730 1145//731 1122//708 1121//707 -f 1146//732 472//329 458//315 1123//709 -f 1116//702 1109//695 1108//694 1115//701 -g canopy -f 487//344 473//330 1129//715 1147//733 -f 1148//734 1149//735 1150//736 1128//714 1132//718 1151//737 -g fuselage -f 1117//703 1116//702 1114//700 -f 1116//702 1115//701 1114//700 -f 1136//722 1141//727 1152//738 -g canopy -f 1153//739 1154//740 1155//741 1114//700 -g fuselage -f 1156//742 1157//743 1114//700 1155//741 -f 1157//743 1139//725 1117//703 1114//700 -f 1137//723 1158//744 1157//743 1156//742 -f 1158//744 1140//726 1139//725 1157//743 -f 1136//722 1152//738 1158//744 1137//723 -f 1152//738 1141//727 1140//726 1158//744 -g canopy -f 1125//711 1159//745 1160//746 1112//698 -f 1161//747 1149//735 1148//734 1162//748 -f 486//343 459//316 1163//749 1124//710 -f 459//316 487//344 1147//733 1164//750 -f 1160//746 1162//748 1153//739 1113//699 -f 1163//749 1164//750 1161//747 1159//745 -f 1133//719 1135//721 1134//720 -f 1161//747 1162//748 1160//746 1159//745 -f 1164//750 1147//733 1149//735 1161//747 -f 1164//750 1163//749 459//316 -f 1159//745 1125//711 1124//710 1163//749 -f 1125//711 1112//698 1111//697 1126//712 -f 1113//699 1112//698 1160//746 -f 1153//739 1114//700 1113//699 -f 1162//748 1148//734 1154//740 1153//739 -f 1154//740 1148//734 1151//737 1165//751 -f 1165//751 1151//737 1132//718 1166//752 -f 1166//752 1132//718 1134//720 1135//721 -f 1156//742 1165//751 1166//752 1137//723 -f 1155//741 1154//740 1165//751 1156//742 -f 1166//752 1135//721 1137//723 -f 1128//714 1150//736 1149//735 1147//733 1129//715 -g fuselage -f 1145//731 1167//753 1168//754 1169//755 -f 518//375 1170//756 1130//716 460//317 -f 1170//756 1171//757 1131//717 1130//716 -f 1171//757 1172//758 1133//719 1131//717 -f 1172//758 1173//759 1136//722 1133//719 -f 1173//759 1174//760 1141//727 1136//722 -f 1174//760 1175//761 1138//724 1141//727 -f 1175//761 1176//762 1142//728 1138//724 -f 1176//762 1177//763 1143//729 1142//728 -f 1177//763 1167//753 1144//730 1143//729 -f 1167//753 1145//731 1144//730 -f 1178//764 1179//765 1167//753 1177//763 -f 1179//765 1180//766 1168//754 1167//753 -f 1180//766 1181//767 1182//768 1168//754 -f 1181//767 1183//769 1184//770 1182//768 -f 1183//769 534//391 517//374 1184//770 -f 535//392 1185//771 1170//756 518//375 -f 1185//771 1186//772 1171//757 1170//756 -f 1186//772 1187//773 1172//758 1171//757 -f 1187//773 1188//774 1173//759 1172//758 -f 1188//774 1189//775 1174//760 1173//759 -f 1189//775 1190//776 1175//761 1174//760 -f 1190//776 1191//777 1176//762 1175//761 -f 1191//777 1178//764 1177//763 1176//762 -f 1192//778 1193//779 577//433 576//432 1194//780 1195//781 -g wings -f 1196//782 1197//783 1122//708 1145//731 -f 1197//783 1198//784 1100//686 1122//708 -f 1198//784 1199//785 793//617 1100//686 -f 1199//785 1200//786 794//618 793//617 -f 1200//786 1201//787 795//619 794//618 -f 1201//787 1202//788 1105//691 795//619 -f 1202//788 1203//789 1123//709 1105//691 -f 1203//789 1204//790 1146//732 1123//709 -s 110 -f 1204//1687 1196//1686 1145//1683 1169//1685 1146//1684 -s 1 -f 1205//791 1206//792 1199//785 1198//784 -f 1206//792 1207//793 1200//786 1199//785 -f 1207//793 1208//794 1201//787 1200//786 -f 1208//794 1209//795 1202//788 1201//787 -f 1209//795 1210//796 1203//789 1202//788 -f 1210//796 1211//797 1204//790 1203//789 -s 110 -f 1211//1688 1212//1689 1196//1686 1204//1687 -s 1 -f 1212//798 1213//799 1197//783 1196//782 -f 1213//799 1205//791 1198//784 1197//783 -f 1102//688 1101//687 1212//798 1211//797 -f 1101//687 1104//690 1213//799 1212//798 -f 1104//690 1214//800 1205//791 1213//799 -f 1214//800 1215//801 1206//792 1205//791 -f 1215//801 1216//802 1207//793 1206//792 -f 1216//802 1217//803 1208//794 1207//793 -f 1217//803 1218//804 1209//795 1208//794 -f 1218//804 1103//689 1210//796 1209//795 -f 1103//689 1102//688 1211//797 1210//796 -g fuselage -f 1219//805 1220//806 1168//754 1182//768 -f 1220//806 1221//807 1169//755 1168//754 -f 1221//807 1146//732 1169//755 -f 574//430 1222//808 1184//770 517//374 -f 1222//808 1219//805 1182//768 1184//770 -s 52 -f 472//1285 1146//1290 1221//1292 573//1287 -s 1 -f 577//433 1193//779 1222//808 574//430 -f 1193//779 1192//778 1219//805 1222//808 -f 1192//778 1195//781 1220//806 1219//805 -f 1195//781 1194//780 1221//807 1220//806 -s 52 -f 1194//1291 576//1288 573//1287 1221//1292 -g wings -s 1 -f 1217//803 1216//802 1215//801 1214//800 1218//804 -f 1218//804 1214//800 1104//690 1103//689 -g fuselage -f 1223//809 1224//810 1190//776 1189//775 -f 1224//810 1225//811 1191//777 1190//776 -f 1225//811 1226//812 1178//764 1191//777 -f 1226//812 1227//813 1179//765 1178//764 -f 1227//813 1228//814 1180//766 1179//765 -f 1228//814 1229//815 1181//767 1180//766 -f 1229//815 1230//816 1183//769 1181//767 -f 1230//816 590//446 534//391 1183//769 -f 591//447 1231//817 1185//771 535//392 -f 1231//817 1232//818 1186//772 1185//771 -f 1232//818 1233//819 1187//773 1186//772 -f 1233//819 1234//820 1188//774 1187//773 -f 1234//820 1223//809 1189//775 1188//774 -f 1235//821 1236//822 1233//819 1232//818 -f 1236//822 1237//823 1234//820 1233//819 -f 1237//823 1238//824 1223//809 1234//820 -f 1238//824 1239//825 1224//810 1223//809 -f 1239//825 1240//826 1225//811 1224//810 -f 1240//826 1241//827 1226//812 1225//811 -f 1241//827 1242//828 1227//813 1226//812 -f 1242//828 1243//829 1228//814 1227//813 -f 1243//829 1244//830 1229//815 1228//814 -f 1244//830 1245//831 1230//816 1229//815 -f 1245//831 607//463 590//446 1230//816 -f 608//464 1246//832 1231//817 591//447 -f 1246//832 1235//821 1232//818 1231//817 -f 611//467 1247//833 1246//832 608//464 -f 1247//833 1248//834 1235//821 1246//832 -f 1248//834 1249//835 1236//822 1235//821 -f 1249//835 1250//836 1237//823 1236//822 -f 1250//836 1251//837 1238//824 1237//823 -f 1251//837 1252//838 1239//825 1238//824 -f 1252//838 1253//839 1240//826 1239//825 -f 1253//839 1254//840 1241//827 1240//826 -f 1254//840 1255//841 1242//828 1241//827 -f 1255//841 1256//842 1243//829 1242//828 -f 1256//842 1257//843 1244//830 1243//829 -f 1257//843 1258//844 1245//831 1244//830 -f 1258//844 610//466 607//463 1245//831 -f 1259//845 1260//846 1257//843 1256//842 -f 1260//846 1261//847 1258//844 1257//843 -f 1261//847 627//483 610//466 1258//844 -g wings -f 628//484 1262//848 1247//833 611//467 -f 1262//848 1263//849 1248//834 1247//833 -g fuselage -f 1263//849 1264//850 1249//835 1248//834 -f 1264//850 1265//851 1250//836 1249//835 -f 1265//851 1266//852 1251//837 1250//836 -f 1266//852 1267//853 1252//838 1251//837 -f 1267//853 1268//854 1253//839 1252//838 -f 1268//854 1269//855 1254//840 1253//839 -f 1269//855 1270//856 1255//841 1254//840 -f 1270//856 1259//845 1256//842 1255//841 -f 1271//857 1272//858 1269//855 1268//854 -f 1272//858 1273//859 1270//856 1269//855 -f 1273//859 1274//860 1259//845 1270//856 -f 1274//860 1275//861 1260//846 1259//845 -f 1275//861 1276//862 1261//847 1260//846 -f 1276//862 644//500 627//483 1261//847 -g wings -s off -f 645//110 1277//110 1262//110 628//110 -s 1 -f 1277//863 1278//864 1262//848 -g fuselage -f 1278//864 1279//865 1264//850 1263//849 -f 1279//865 1280//866 1265//851 1264//850 -f 1280//866 1281//867 1266//852 1265//851 -f 1281//867 1282//868 1267//853 1266//852 -g wings -s 112 -f 1283//1692 1284//1693 1285//1694 1286//1695 -g fuselage -s 1 -f 697//537 696//536 1281//867 1280//866 -f 696//536 695//535 1282//868 1281//867 -f 695//535 694//534 1271//857 1282//868 -f 694//534 693//533 1272//858 1271//857 -f 693//533 692//532 1273//859 1272//858 -f 692//532 691//531 1274//860 1273//859 -f 691//531 690//530 1275//861 1274//860 -f 690//530 689//529 1276//862 1275//861 -f 689//529 661//516 644//500 1276//862 -g wings -s 61 -f 662//1305 688//1307 1277//1308 645//1303 -s 1 -f 688//528 699//539 1278//864 1277//863 -g fuselage -f 699//539 698//538 1279//865 1278//864 -f 698//538 697//537 1280//866 1279//865 -g wings -s 113 -f 1287//1704 1288//1705 1267//1700 1282//1701 -s 112 -f 1288//1697 1289//1698 1268//1691 1267//1690 -s 114 -f 1289//1710 1290//1711 1271//1707 1268//1706 -s off -f 1290//111 1287//111 1282//111 1271//111 -s 114 -f 1286//1709 1285//1708 1290//1711 1289//1710 -s 112 -f 1285//1694 1284//1693 1287//1696 1290//1699 -s 113 -f 1284//1703 1283//1702 1288//1705 1287//1704 -s 112 -f 1283//1692 1286//1695 1289//1698 1288//1697 -g prop -s 115 -f 1294//1715 1293//1714 1292//1713 1291//1712 -f 1291//1712 1292//1713 1296//1717 1295//1716 -f 1295//1716 1296//1717 1298//1719 1297//1718 -f 1297//1718 1298//1719 1300//1721 1299//1720 -f 1299//1720 1300//1721 1302//1723 1301//1722 -f 1301//1722 1302//1723 1304//1725 1303//1724 -f 1303//1724 1304//1725 1306//1727 1305//1726 -f 1305//1726 1306//1727 1308//1729 1307//1728 -s 118 -f 1312//1733 1311//1732 1310//1731 1309//1730 -f 1314//1735 1313//1734 1311//1732 1312//1733 -f 1316//1737 1315//1736 1313//1734 1314//1735 -f 1318//1739 1317//1738 1315//1736 1316//1737 -f 1320//1741 1319//1740 1317//1738 1318//1739 -f 1322//1743 1321//1742 1319//1740 1320//1741 -f 1324//1745 1323//1744 1321//1742 1322//1743 -f 1326//1747 1325//1746 1323//1744 1324//1745 -s 116 -f 1309//1757 1294//1749 1291//1748 1312//1758 -f 1312//1758 1291//1748 1295//1750 1314//1759 -f 1314//1759 1295//1750 1297//1751 1316//1760 -f 1316//1760 1297//1751 1299//1752 1318//1761 -f 1318//1761 1299//1752 1301//1753 1320//1762 -f 1320//1762 1301//1753 1303//1754 1322//1763 -f 1322//1763 1303//1754 1305//1755 1324//1764 -f 1324//1764 1305//1755 1307//1756 1326//1765 -s 117 -f 1325//1783 1308//1774 1306//1773 1323//1782 -f 1323//1782 1306//1773 1304//1772 1321//1781 -f 1321//1781 1304//1772 1302//1771 1319//1780 -f 1319//1780 1302//1771 1300//1770 1317//1779 -f 1317//1779 1300//1770 1298//1769 1315//1778 -f 1315//1778 1298//1769 1296//1768 1313//1777 -f 1313//1777 1296//1768 1292//1766 1311//1776 -f 1311//1776 1292//1766 1293//1767 1310//1775 -s off -f 1309//112 1310//112 1293//112 1294//112 -f 1307//113 1308//113 1325//113 1326//113 -s 119 -f 1330//1787 1329//1786 1328//1785 1327//1784 -f 1327//1784 1328//1785 1332//1789 1331//1788 -f 1331//1788 1332//1789 1334//1791 1333//1790 -f 1333//1790 1334//1791 1336//1793 1335//1792 -f 1335//1792 1336//1793 1338//1795 1337//1794 -f 1337//1794 1338//1795 1340//1797 1339//1796 -f 1339//1796 1340//1797 1342//1799 1341//1798 -f 1341//1798 1342//1799 1344//1801 1343//1800 -s 122 -f 1348//1805 1347//1804 1346//1803 1345//1802 -f 1350//1807 1349//1806 1347//1804 1348//1805 -f 1352//1809 1351//1808 1349//1806 1350//1807 -f 1354//1811 1353//1810 1351//1808 1352//1809 -f 1356//1813 1355//1812 1353//1810 1354//1811 -f 1358//1815 1357//1814 1355//1812 1356//1813 -f 1360//1817 1359//1816 1357//1814 1358//1815 -f 1362//1819 1361//1818 1359//1816 1360//1817 -s 120 -f 1345//1829 1330//1821 1327//1820 1348//1830 -f 1348//1830 1327//1820 1331//1822 1350//1831 -f 1350//1831 1331//1822 1333//1823 1352//1832 -f 1352//1832 1333//1823 1335//1824 1354//1833 -f 1354//1833 1335//1824 1337//1825 1356//1834 -f 1356//1834 1337//1825 1339//1826 1358//1835 -f 1358//1835 1339//1826 1341//1827 1360//1836 -f 1360//1836 1341//1827 1343//1828 1362//1837 -s 121 -f 1361//1855 1344//1846 1342//1845 1359//1854 -f 1359//1854 1342//1845 1340//1844 1357//1853 -f 1357//1853 1340//1844 1338//1843 1355//1852 -f 1355//1852 1338//1843 1336//1842 1353//1851 -f 1353//1851 1336//1842 1334//1841 1351//1850 -f 1351//1850 1334//1841 1332//1840 1349//1849 -f 1349//1849 1332//1840 1328//1838 1347//1848 -f 1347//1848 1328//1838 1329//1839 1346//1847 -s off -f 1345//114 1346//114 1329//114 1330//114 -f 1343//115 1344//115 1361//115 1362//115 -s 123 -f 1366//1859 1365//1858 1364//1857 1363//1856 -f 1363//1856 1364//1857 1368//1861 1367//1860 -f 1367//1860 1368//1861 1370//1863 1369//1862 -f 1369//1862 1370//1863 1372//1865 1371//1864 -f 1371//1864 1372//1865 1374//1867 1373//1866 -f 1373//1866 1374//1867 1376//1869 1375//1868 -f 1375//1868 1376//1869 1378//1871 1377//1870 -f 1377//1870 1378//1871 1380//1873 1379//1872 -s 126 -f 1384//1877 1383//1876 1382//1875 1381//1874 -f 1386//1879 1385//1878 1383//1876 1384//1877 -f 1388//1881 1387//1880 1385//1878 1386//1879 -f 1390//1883 1389//1882 1387//1880 1388//1881 -f 1392//1885 1391//1884 1389//1882 1390//1883 -f 1394//1887 1393//1886 1391//1884 1392//1885 -f 1396//1889 1395//1888 1393//1886 1394//1887 -f 1398//1891 1397//1890 1395//1888 1396//1889 -s 124 -f 1381//1901 1366//1893 1363//1892 1384//1902 -f 1384//1902 1363//1892 1367//1894 1386//1903 -f 1386//1903 1367//1894 1369//1895 1388//1904 -f 1388//1904 1369//1895 1371//1896 1390//1905 -f 1390//1905 1371//1896 1373//1897 1392//1906 -f 1392//1906 1373//1897 1375//1898 1394//1907 -f 1394//1907 1375//1898 1377//1899 1396//1908 -f 1396//1908 1377//1899 1379//1900 1398//1909 -s 125 -f 1397//1927 1380//1918 1378//1917 1395//1926 -f 1395//1926 1378//1917 1376//1916 1393//1925 -f 1393//1925 1376//1916 1374//1915 1391//1924 -f 1391//1924 1374//1915 1372//1914 1389//1923 -f 1389//1923 1372//1914 1370//1913 1387//1922 -f 1387//1922 1370//1913 1368//1912 1385//1921 -f 1385//1921 1368//1912 1364//1910 1383//1920 -f 1383//1920 1364//1910 1365//1911 1382//1919 -s off -f 1381//116 1382//116 1365//116 1366//116 -f 1379//117 1380//117 1397//117 1398//117 -s 127 -f 1402//1931 1401//1930 1400//1929 1399//1928 -f 1399//1928 1400//1929 1404//1933 1403//1932 -f 1403//1932 1404//1933 1406//1935 1405//1934 -f 1405//1934 1406//1935 1408//1937 1407//1936 -f 1407//1936 1408//1937 1410//1939 1409//1938 -f 1409//1938 1410//1939 1412//1941 1411//1940 -f 1411//1940 1412//1941 1414//1943 1413//1942 -f 1413//1942 1414//1943 1416//1945 1415//1944 -s 130 -f 1420//1949 1419//1948 1418//1947 1417//1946 -f 1422//1951 1421//1950 1419//1948 1420//1949 -f 1424//1953 1423//1952 1421//1950 1422//1951 -f 1426//1955 1425//1954 1423//1952 1424//1953 -f 1428//1957 1427//1956 1425//1954 1426//1955 -f 1430//1959 1429//1958 1427//1956 1428//1957 -f 1432//1961 1431//1960 1429//1958 1430//1959 -f 1434//1963 1433//1962 1431//1960 1432//1961 -s 128 -f 1417//1973 1402//1965 1399//1964 1420//1974 -f 1420//1974 1399//1964 1403//1966 1422//1975 -f 1422//1975 1403//1966 1405//1967 1424//1976 -f 1424//1976 1405//1967 1407//1968 1426//1977 -f 1426//1977 1407//1968 1409//1969 1428//1978 -f 1428//1978 1409//1969 1411//1970 1430//1979 -f 1430//1979 1411//1970 1413//1971 1432//1980 -f 1432//1980 1413//1971 1415//1972 1434//1981 -s 129 -f 1433//1999 1416//1990 1414//1989 1431//1998 -f 1431//1998 1414//1989 1412//1988 1429//1997 -f 1429//1997 1412//1988 1410//1987 1427//1996 -f 1427//1996 1410//1987 1408//1986 1425//1995 -f 1425//1995 1408//1986 1406//1985 1423//1994 -f 1423//1994 1406//1985 1404//1984 1421//1993 -f 1421//1993 1404//1984 1400//1982 1419//1992 -f 1419//1992 1400//1982 1401//1983 1418//1991 -s off -f 1417//118 1418//118 1401//118 1402//118 -f 1415//119 1416//119 1433//119 1434//119 -s 131 -f 1435//2000 1443//2005 1436//2001 -f 1436//2001 1443//2005 1444//2006 1437//2002 -f 1437//2002 1444//2006 1445//2007 1438//2003 -f 1438//2003 1445//2007 1446//2008 1439//2004 -s 132 -f 1439//2049 1446//2051 1447//2052 1440//2050 -s 133 -f 1440//2073 1447//2075 1448//2076 1441//2074 -s 134 -f 1441//2097 1448//2099 1442//2098 -s 131 -f 1435//2000 1449//2009 1443//2005 -f 1443//2005 1449//2009 1450//2010 1444//2006 -f 1444//2006 1450//2010 1451//2011 1445//2007 -f 1445//2007 1451//2011 1452//2012 1446//2008 -s 132 -f 1446//2051 1452//2053 1453//2054 1447//2052 -s 133 -f 1447//2075 1453//2077 1454//2078 1448//2076 -s 134 -f 1448//2099 1454//2100 1442//2098 -s 131 -f 1435//2000 1455//2013 1449//2009 -f 1449//2009 1455//2013 1456//2014 1450//2010 -f 1450//2010 1456//2014 1457//2015 1451//2011 -f 1451//2011 1457//2015 1458//2016 1452//2012 -s 132 -f 1452//2053 1458//2055 1459//2056 1453//2054 -s 133 -f 1453//2077 1459//2079 1460//2080 1454//2078 -s 134 -f 1454//2100 1460//2101 1442//2098 -s 131 -f 1435//2000 1461//2017 1455//2013 -f 1455//2013 1461//2017 1462//2018 1456//2014 -f 1456//2014 1462//2018 1463//2019 1457//2015 -f 1457//2015 1463//2019 1464//2020 1458//2016 -s 132 -f 1458//2055 1464//2057 1465//2058 1459//2056 -s 133 -f 1459//2079 1465//2081 1466//2082 1460//2080 -s 134 -f 1460//2101 1466//2102 1442//2098 -s 131 -f 1435//2000 1467//2021 1461//2017 -f 1461//2017 1467//2021 1468//2022 1462//2018 -f 1462//2018 1468//2022 1469//2023 1463//2019 -f 1463//2019 1469//2023 1470//2024 1464//2020 -s 132 -f 1464//2057 1470//2059 1471//2060 1465//2058 -s 133 -f 1465//2081 1471//2083 1472//2084 1466//2082 -s 134 -f 1466//2102 1472//2103 1442//2098 -s 131 -f 1435//2000 1473//2025 1467//2021 -f 1467//2021 1473//2025 1474//2026 1468//2022 -f 1468//2022 1474//2026 1475//2027 1469//2023 -f 1469//2023 1475//2027 1476//2028 1470//2024 -s 132 -f 1470//2059 1476//2061 1477//2062 1471//2060 -s 133 -f 1471//2083 1477//2085 1478//2086 1472//2084 -s 134 -f 1472//2103 1478//2104 1442//2098 -s 131 -f 1435//2000 1479//2029 1473//2025 -f 1473//2025 1479//2029 1480//2030 1474//2026 -f 1474//2026 1480//2030 1481//2031 1475//2027 -f 1475//2027 1481//2031 1482//2032 1476//2028 -s 132 -f 1476//2061 1482//2063 1483//2064 1477//2062 -s 133 -f 1477//2085 1483//2087 1484//2088 1478//2086 -s 134 -f 1478//2104 1484//2105 1442//2098 -s 131 -f 1435//2000 1485//2033 1479//2029 -f 1479//2029 1485//2033 1486//2034 1480//2030 -f 1480//2030 1486//2034 1487//2035 1481//2031 -f 1481//2031 1487//2035 1488//2036 1482//2032 -s 132 -f 1482//2063 1488//2065 1489//2066 1483//2064 -s 133 -f 1483//2087 1489//2089 1490//2090 1484//2088 -s 134 -f 1484//2105 1490//2106 1442//2098 -s 131 -f 1435//2000 1491//2037 1485//2033 -f 1485//2033 1491//2037 1492//2038 1486//2034 -f 1486//2034 1492//2038 1493//2039 1487//2035 -f 1487//2035 1493//2039 1494//2040 1488//2036 -s 132 -f 1488//2065 1494//2067 1495//2068 1489//2066 -s 133 -f 1489//2089 1495//2091 1496//2092 1490//2090 -s 134 -f 1490//2106 1496//2107 1442//2098 -s 131 -f 1435//2000 1497//2041 1491//2037 -f 1491//2037 1497//2041 1498//2042 1492//2038 -f 1492//2038 1498//2042 1499//2043 1493//2039 -f 1493//2039 1499//2043 1500//2044 1494//2040 -s 132 -f 1494//2067 1500//2069 1501//2070 1495//2068 -s 133 -f 1495//2091 1501//2093 1502//2094 1496//2092 -s 134 -f 1496//2107 1502//2108 1442//2098 -s 131 -f 1435//2000 1503//2045 1497//2041 -f 1497//2041 1503//2045 1504//2046 1498//2042 -f 1498//2042 1504//2046 1505//2047 1499//2043 -f 1499//2043 1505//2047 1506//2048 1500//2044 -s 132 -f 1500//2069 1506//2071 1507//2072 1501//2070 -s 133 -f 1501//2093 1507//2095 1508//2096 1502//2094 -s 134 -f 1502//2108 1508//2109 1442//2098 -s 131 -f 1435//2000 1436//2001 1503//2045 -f 1503//2045 1436//2001 1437//2002 1504//2046 -f 1504//2046 1437//2002 1438//2003 1505//2047 -f 1505//2047 1438//2003 1439//2004 1506//2048 -s 132 -f 1506//2071 1439//2049 1440//2050 1507//2072 -s 133 -f 1507//2095 1440//2073 1441//2074 1508//2096 -s 134 -f 1508//2109 1441//2097 1442//2098 -g wings -s 1 -f 1278//864 1263//849 1262//848 -f 629//485 630//486 647//502 -s 62 -f 663//2121 664//2122 699//2135 662//2120 -f 662//2120 699//2135 688//2124 -g fuselage -f 664//2122 665//2123 698//2134 699//2135 -f 665//2123 652//2110 697//2133 698//2134 -f 652//2110 653//2111 696//2132 697//2133 -f 653//2111 654//2112 695//2131 696//2132 -f 654//2112 655//2113 694//2130 695//2131 -f 655//2113 656//2114 693//2129 694//2130 -f 656//2114 657//2115 692//2128 693//2129 -f 657//2115 658//2116 691//2127 692//2128 -f 658//2116 659//2117 690//2126 691//2127 -f 659//2117 660//2118 661//2119 -f 690//2126 661//2119 689//2125 -f 659//2117 661//2119 690//2126 -# 1430 elements diff --git a/src/geometry/products.rgb b/src/geometry/products.rgb Binary files differdeleted file mode 100644 index 0586d1f..0000000 --- a/src/geometry/products.rgb +++ /dev/null diff --git a/src/geometry/pumps.int b/src/geometry/pumps.int Binary files differdeleted file mode 100644 index 359b7b3..0000000 --- a/src/geometry/pumps.int +++ /dev/null diff --git a/src/geometry/thdoor.inta b/src/geometry/thdoor.inta Binary files differdeleted file mode 100644 index 7f8c084..0000000 --- a/src/geometry/thdoor.inta +++ /dev/null diff --git a/src/geometry/window.inta b/src/geometry/window.inta Binary files differdeleted file mode 100644 index cbfca58..0000000 --- a/src/geometry/window.inta +++ /dev/null diff --git a/src/images/Java3d.jpg b/src/images/Java3d.jpg Binary files differdeleted file mode 100644 index b6e6090..0000000 --- a/src/images/Java3d.jpg +++ /dev/null diff --git a/src/images/animation1.gif b/src/images/animation1.gif Binary files differdeleted file mode 100644 index 6bba810..0000000 --- a/src/images/animation1.gif +++ /dev/null diff --git a/src/images/animation10.gif b/src/images/animation10.gif Binary files differdeleted file mode 100644 index cb04e3a..0000000 --- a/src/images/animation10.gif +++ /dev/null diff --git a/src/images/animation2.gif b/src/images/animation2.gif Binary files differdeleted file mode 100644 index c20aefe..0000000 --- a/src/images/animation2.gif +++ /dev/null diff --git a/src/images/animation3.gif b/src/images/animation3.gif Binary files differdeleted file mode 100644 index 4813a7c..0000000 --- a/src/images/animation3.gif +++ /dev/null diff --git a/src/images/animation4.gif b/src/images/animation4.gif Binary files differdeleted file mode 100644 index c4d0083..0000000 --- a/src/images/animation4.gif +++ /dev/null diff --git a/src/images/animation5.gif b/src/images/animation5.gif Binary files differdeleted file mode 100644 index b41fb5d..0000000 --- a/src/images/animation5.gif +++ /dev/null diff --git a/src/images/animation6.gif b/src/images/animation6.gif Binary files differdeleted file mode 100644 index ce9015f..0000000 --- a/src/images/animation6.gif +++ /dev/null diff --git a/src/images/animation7.gif b/src/images/animation7.gif Binary files differdeleted file mode 100644 index 2f1face..0000000 --- a/src/images/animation7.gif +++ /dev/null diff --git a/src/images/animation8.gif b/src/images/animation8.gif Binary files differdeleted file mode 100644 index 7ed54bf..0000000 --- a/src/images/animation8.gif +++ /dev/null diff --git a/src/images/animation9.gif b/src/images/animation9.gif Binary files differdeleted file mode 100644 index e629b8c..0000000 --- a/src/images/animation9.gif +++ /dev/null diff --git a/src/images/apimage.jpg b/src/images/apimage.jpg Binary files differdeleted file mode 100644 index ab80a4a..0000000 --- a/src/images/apimage.jpg +++ /dev/null diff --git a/src/images/bg.jpg b/src/images/bg.jpg Binary files differdeleted file mode 100644 index 556babe..0000000 --- a/src/images/bg.jpg +++ /dev/null diff --git a/src/images/earth.jpg b/src/images/earth.jpg Binary files differdeleted file mode 100644 index 95f004b..0000000 --- a/src/images/earth.jpg +++ /dev/null diff --git a/src/images/one.jpg b/src/images/one.jpg Binary files differdeleted file mode 100644 index 1eaee12..0000000 --- a/src/images/one.jpg +++ /dev/null diff --git a/src/images/stone.jpg b/src/images/stone.jpg Binary files differdeleted file mode 100644 index ab80a4a..0000000 --- a/src/images/stone.jpg +++ /dev/null diff --git a/src/images/ttimage.jpg b/src/images/ttimage.jpg Binary files differdeleted file mode 100644 index f3eecb6..0000000 --- a/src/images/ttimage.jpg +++ /dev/null diff --git a/www/index.html b/www/index.html index 15d9851..ac41c06 100644 --- a/www/index.html +++ b/www/index.html @@ -25,7 +25,7 @@ information, including contributing to Java 3D and reporting issues, please go to the parent <a href="https://java3d.dev.java.net/">java3d</a> project.</em></strong></p> -<p>NOTE: The issue Tracker in this j3d-core subproject cannot be used +<p>NOTE: The issue Tracker in this j3d-examples subproject cannot be used to file or track issues. Please use the <a href="https://java3d.dev.java.net/servlets/ProjectIssues">Issue Tracker</a> in the parent java3d |