changeset 41:cb13a91175ad

add example
author axmo
date Mon, 25 Aug 2008 16:28:07 +0900
parents 046feb56a196
children 39f1d08528ef
files tools/java3d-test/.project tools/java3d-test/.settings/org.eclipse.core.resources.prefs tools/java3d-test/src/HelloWorld.xml tools/java3d-test/src/HelloWorldSax.java tools/java3d-test/src/Java2dTest.java tools/java3d-test/src/Sample3D.java tools/java3d-test/src/Sample3D6.java tools/java3d-test/src/SampleHandler.java tools/java3d-test/src/SaxSample.java tools/java3d-test/src/audition.xml tools/java3d-test/src/example.graffle tools/java3d-test/src/obj_test.java tools/java3d-test/src/sample.xml tools/java3d-test/src/saxtest.java tools/java3d-test/src/select_key_xml.java tools/java3d-test/src/two_obj.java
diffstat 16 files changed, 1063 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/.project	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>java3d-test</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/.settings/org.eclipse.core.resources.prefs	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,3 @@
+#Mon Aug 25 16:36:05 JST 2008
+eclipse.preferences.version=1
+encoding//src/HelloWorld.xml=UTF-8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/src/HelloWorld.xml	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<アラン 演技力="10" 歌唱力="8" スター性="2" 勘違い="10" 特殊能力="10"></アラン>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/src/HelloWorldSax.java	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,59 @@
+import javax.xml.parsers.*;
+import org.xml.sax.*;
+import org.xml.sax.helpers.*;
+import java.io.*;
+
+public class HelloWorldSax extends DefaultHandler {
+  public static void main(String[] argv) {
+    try {
+      // SAXパーサーファクトリを生成
+      SAXParserFactory spfactory = SAXParserFactory.newInstance();
+      // SAXパーサーを生成
+      SAXParser parser = spfactory.newSAXParser();
+      // XMLファイルを指定されたデフォルトハンドラーで処理
+      parser.parse(new File("src/example.graffle"), new HelloWorldSax());
+    } catch (Exception e) {
+      e.printStackTrace();
+    }
+  }
+  /**
+   * ドキュメント開始時
+   */
+  public void startDocument() {
+    System.out.println("ドキュメント開始");
+  }
+  /**
+   * 要素の開始タグ読み込み時
+   */
+  public void startElement(String uri,
+                           String localName,
+                           String qName,
+                           Attributes attributes) {
+
+    System.out.println("要素開始:" + qName);
+  }
+  /**
+   * テキストデータ読み込み時
+   */
+  public void characters(char[] ch,
+                         int offset,
+                         int length) {
+
+    System.out.println("テキストデータ:" + new String(ch, offset, length));
+  }
+  /**
+   * 要素の終了タグ読み込み時
+   */
+  public void endElement(String uri,
+                         String localName,
+                         String qName) {
+
+    System.out.println("要素終了:" + qName);
+  }
+  /**
+   * ドキュメント終了時
+   */
+  public void endDocument() {
+    System.out.println("ドキュメント終了");
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/src/Java2dTest.java	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,72 @@
+import java.awt.*;
+import java.awt.geom.*;
+import java.awt.event.*;
+import javax.swing.*;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import javax.imageio.ImageIO;
+import java.io.IOException;
+
+public class Java2dTest extends JFrame{
+
+    public static void main(String[] args){
+        Java2dTest test = new Java2dTest();
+
+        test.addWindowListener(new WindowAdapter(){
+            public void windowClosing(WindowEvent e){System.exit(0);}
+        });
+
+        test.setBounds( 0, 0, 200, 200);
+        test.setVisible(true);
+    }
+
+    public void paint(Graphics g){
+        Graphics2D g2 = (Graphics2D)g;
+
+        BufferedImage readImage = null;
+        try {
+            readImage = ImageIO.read(new File("sample.png"));
+        } catch (Exception e) {
+            e.printStackTrace();
+            readImage = null;
+        }
+
+        if (readImage == null){
+            readImage = new BufferedImage(getWidth(), getHeight(), 
+                            BufferedImage.TYPE_INT_BGR);
+        }
+
+        Graphics2D off = readImage.createGraphics();
+
+        off.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 
+        RenderingHints.VALUE_ANTIALIAS_ON);
+
+        BasicStroke wideStroke = new BasicStroke(4.0f);
+        off.setStroke(wideStroke);
+
+        off.setPaint(Color.white);
+        off.draw(new Ellipse2D.Double(30, 40, 50, 50));
+
+        off.setPaint(Color.blue);
+        off.draw(new Ellipse2D.Double(70, 40, 50, 50));
+
+        off.setPaint(Color.red);
+        off.draw(new Ellipse2D.Double(110, 40, 50, 50));
+
+        off.setPaint(Color.yellow);
+        off.fill(new Arc2D.Double(50, 100, 110, 110, 330, 100, Arc2D.PIE));
+        off.setPaint(Color.gray);
+        off.draw(new Arc2D.Double(50, 100, 110, 110, 330, 100, Arc2D.PIE));
+
+        if (readImage != null){
+            g2.drawImage(readImage, 0, 0, this);
+        }
+
+        try {
+            boolean result = 
+                ImageIO.write(readImage, "png", new File("sample2.png"));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/src/Sample3D.java	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,73 @@
+import javax.swing.*;
+import java.awt.event.*;
+import java.awt.BorderLayout;
+import java.awt.GraphicsConfiguration;
+import com.sun.j3d.utils.universe.*;
+import javax.media.j3d.*;
+//import javax.vecmath.*;
+import com.sun.j3d.utils.geometry.ColorCube;
+import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
+import com.sun.j3d.utils.behaviors.mouse.MouseTranslate;
+import com.sun.j3d.utils.behaviors.mouse.MouseZoom;
+
+public class Sample3D extends JFrame {
+        public BranchGroup createSceneGraph() {
+		BranchGroup objRoot = new BranchGroup();
+
+		TransformGroup objTrans = new TransformGroup();
+		objRoot.addChild(objTrans);
+
+		objTrans.setCapability( TransformGroup.ALLOW_TRANSFORM_READ );
+		objTrans.setCapability( TransformGroup.ALLOW_TRANSFORM_WRITE );
+
+	        MouseRotate rotat = new MouseRotate( objTrans );
+	        MouseTranslate trans = new MouseTranslate( objTrans );
+	        MouseZoom zoom = new MouseZoom( objTrans );
+
+		BoundingSphere bounds = new BoundingSphere();
+		bounds.setRadius( 10.0 );
+	        rotat.setSchedulingBounds( bounds );
+	        trans.setSchedulingBounds( bounds );
+	        zoom.setSchedulingBounds( bounds );
+
+		objTrans.addChild(rotat);
+		objTrans.addChild(trans);
+		objTrans.addChild(zoom);
+
+		ColorCube colorCube = new ColorCube(0.5d);
+
+		objTrans.addChild(colorCube);
+                objRoot.compile();
+                return objRoot;
+        }
+
+        public Sample3D() {
+                getContentPane().setLayout(new BorderLayout());
+
+                GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
+
+                Canvas3D canvas = new Canvas3D(config);
+                getContentPane().add("Center", canvas);
+
+                BranchGroup scene = createSceneGraph();
+                SimpleUniverse universe = new SimpleUniverse(canvas);
+
+                universe.getViewingPlatform().setNominalViewingTransform();
+
+                universe.addBranchGraph(scene);
+        }
+        public static void main(String[] args) {
+		Sample3D sample = new Sample3D();
+
+		/* サイズ指定 */
+		sample.setBounds( 10, 10, 240, 240);
+
+                /* 終了処理を追加 */
+                sample.addWindowListener(new WindowAdapter(){
+                        public void windowClosing(WindowEvent e){System.exit(0);}
+                });
+                /* 実際に表示する */
+                sample.setVisible(true);
+        }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/src/Sample3D6.java	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,72 @@
+import javax.swing.*;
+import java.awt.event.*;
+import java.awt.BorderLayout;
+import java.awt.GraphicsConfiguration;
+import com.sun.j3d.utils.universe.*;
+import javax.media.j3d.*;
+import com.sun.j3d.utils.geometry.Box;
+import javax.vecmath.*;
+
+public class Sample3D6 extends JFrame {
+    public BranchGroup createSceneGraph() {
+        BranchGroup objRoot = new BranchGroup();
+
+        objRoot.addChild(createLight());
+
+        Appearance ap = new Appearance();
+        Material ma = new Material();
+        ma.setDiffuseColor(0.0f, 0.0f, 1.0f);
+        ap.setMaterial(ma);
+
+        Box box = new Box( 0.2f, 0.5f, 0.3f, ap);
+
+        Transform3D t3dy = new Transform3D();
+        t3dy.rotY(Math.PI / 6);
+        Transform3D t3dx = new Transform3D();
+        t3dx.rotX(Math.PI / 4);
+
+        Transform3D t3d = new Transform3D();
+        t3d.mul(t3dy, t3dx);
+
+        TransformGroup objTrans = new TransformGroup(t3d);
+        objRoot.addChild(objTrans);
+
+        objTrans.addChild(box);
+        objRoot.compile();
+
+        return objRoot;
+    }
+
+    private Light createLight(){
+        DirectionalLight light = new DirectionalLight( true,
+                        new Color3f(0.0f, 0.0f, 1.0f),
+                        new Vector3f(0.0f, 0.0f, -1.0f));
+
+        light.setInfluencingBounds(new BoundingSphere(new Point3d(), 100.0));
+  
+        return light;
+    }
+
+    public Sample3D6() {
+        getContentPane().setLayout(new BorderLayout());
+
+        GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
+
+        Canvas3D canvas = new Canvas3D(config);
+        getContentPane().add(canvas, BorderLayout.CENTER);
+
+        BranchGroup scene = createSceneGraph();
+        SimpleUniverse universe = new SimpleUniverse(canvas);
+
+        universe.getViewingPlatform().setNominalViewingTransform();
+        universe.addBranchGraph(scene);
+    }
+
+    public static void main(String[] args) {
+        Sample3D6 sample = new Sample3D6();
+
+        sample.setBounds( 10, 10, 240, 240);
+        sample.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+        sample.setVisible(true);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/src/SampleHandler.java	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,97 @@
+import org.xml.sax.*;
+import org.xml.sax.helpers.*;
+
+class SampleHandler extends DefaultHandler{
+    private int tab=0;
+    private String currentTag;
+
+    /* XML文書の開始時の処理*/
+    public void startDocument(){
+	System.out.println("Here is start of XML document.");
+    }
+
+    /* 要素の開始時の処理*/
+    public void startElement(String namespaceURI,String localName,String qName,Attributes attrs){
+	tabbing();
+	System.out.println("Start Element");
+	/* namespaceURIの表示 要調査*/
+	if(namespaceURI!=""){
+	    tabbing();
+	    System.out.println("namespaceURI= "+namespaceURI);
+	}
+	/* localNameの表示 要調査*/
+	if(localName!=""){
+	    tabbing();
+	    System.out.println("localName= "+localName);
+	}
+	/*タグ名を表示*/
+	if(qName != ""){
+	    tabbing();
+	    System.out.println("qName= "+qName);
+	    currentTag=qName;
+	}
+	/* 属性の表示*/
+	/* 属性の数はAttributesのgetLength()で取得*/
+	if(attrs.getLength()!=0){
+	    tabbing();
+	    /* 属性の値はAttributesのgetValue(int)で取得*/
+	    System.out.println("attrs= "+attrs.getValue(0));
+	    }
+	tab++;
+    }
+
+    /*要素の終了時の処理*/
+    public void endElement(String namespaceURI,String localName,String qName){
+	tab--;	
+	tabbing();
+	System.out.println("End element.");
+	if(namespaceURI!=""){
+	    tabbing();
+	    System.out.println("namespaceURI= "+namespaceURI);
+	}
+	if(localName!=""){
+	    tabbing();
+	    System.out.println("localName= "+localName);
+	}
+
+	if(qName!=""){
+	    tabbing();
+	    System.out.println("qName= "+qName);
+	}
+	currentTag="";
+    }
+
+    /* XML文書の終了時の処理*/
+    public void endDocument(){
+	System.out.println("Here is end of XML document.");
+    }
+
+    /* 文字列の処理*/
+    public void characters(char[] ch,int start,int length){
+	if(currentTag.equals("key")){
+	    String str=new String(ch,start,length);
+	    if(str.length()!=0){
+		tab++;
+		tabbing();
+		tab--;
+		System.out.println("====="+str+"=====");
+	    }
+	}
+    }
+
+    /* 処理命令を受けた時の処理 要調査*/
+    public void processingInstruction(String target,String data){}
+
+    /* プレフィックスによる名前空間の範囲の開始時 要調査*/
+    public void startPrefixMapping(String prefix,String uri){}
+
+    /* プレフィックスによる名前空間の範囲の終了時 要調査*/
+    public void endPrefixMapping(String prefix){}
+
+    /* インデント用.これはこのクラス独自のメソッド*/
+    private void tabbing(){
+	for(int i=0;i<tab;i++){
+	    System.out.print("\t");
+	}
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/src/SaxSample.java	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,22 @@
+import java.io.*;
+import javax.xml.parsers.*;
+
+class SaxSample{
+    public static void main(String args[]){
+	try{
+	    /*パーサのFactoryを作成
+	      名前からしてFactoryパターンで,Singletonだと思う.*/
+	    SAXParserFactory spf=SAXParserFactory.newInstance();
+	    /*パーサを取得*/
+	    SAXParser sp=spf.newSAXParser();
+	    
+	    /*イベントハンドラを作成*/
+	    SampleHandler sh=new SampleHandler();
+
+	    /*イベントハンドラに入力データとイベントハンドラを渡す*/
+	    sp.parse(new FileInputStream("src/example.graffle"),sh);
+	}catch(Exception e){
+	    e.printStackTrace();
+	}
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/src/audition.xml	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<casts>
+  <cast>
+  <name>アラン</name>
+    <play>four</play>
+    <song>8</song>
+    <star>2</star>
+    <mistake>10</mistake>
+    <special>10</special>
+  </cast>
+</casts>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/src/example.graffle	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,380 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>AutoAdjust</key>
+	<false/>
+	<key>CanvasColor</key>
+	<dict>
+		<key>w</key>
+		<string>1</string>
+	</dict>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>CanvasScale</key>
+	<real>1</real>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2006-02-14 12:48:50 +0900</string>
+	<key>Creator</key>
+	<string>安村恭一</string>
+	<key>DisplayScale</key>
+	<string>1 cm = 1 cm</string>
+	<key>GraphDocumentVersion</key>
+	<integer>5</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>11</integer>
+			</dict>
+			<key>ID</key>
+			<integer>25</integer>
+			<key>Points</key>
+			<array>
+				<string>{299, 125.5}</string>
+				<string>{299, 205.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>9</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>10</integer>
+			</dict>
+			<key>ID</key>
+			<integer>24</integer>
+			<key>Points</key>
+			<array>
+				<string>{277.767, 115.479}</string>
+				<string>{156.233, 215.521}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>9</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>9</integer>
+			</dict>
+			<key>ID</key>
+			<integer>23</integer>
+			<key>Points</key>
+			<array>
+				<string>{162.5, 98}</string>
+				<string>{271.5, 98}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>2</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{272, 206}, {54, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>11</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{108, 206}, {54, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>10</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{272, 71}, {54, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>9</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{108, 71}, {54, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>2</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict>
+		<key>GridSpacing</key>
+		<real>14.17322826385498</real>
+		<key>MajorGridSpacing</key>
+		<integer>10</integer>
+	</dict>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>IsPalette</key>
+	<string>NO</string>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Layer 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>ChildOrdering</key>
+		<integer>0</integer>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheet</key>
+	<string>マスター 1</string>
+	<key>MasterSheets</key>
+	<array>
+		<dict>
+			<key>ActiveLayerIndex</key>
+			<integer>0</integer>
+			<key>AutoAdjust</key>
+			<false/>
+			<key>CanvasColor</key>
+			<dict>
+				<key>w</key>
+				<string>1</string>
+			</dict>
+			<key>CanvasOrigin</key>
+			<string>{0, 0}</string>
+			<key>CanvasScale</key>
+			<real>1</real>
+			<key>ColumnAlign</key>
+			<integer>1</integer>
+			<key>ColumnSpacing</key>
+			<real>36</real>
+			<key>DisplayScale</key>
+			<string>1 cm = 1 cm</string>
+			<key>GraphicsList</key>
+			<array/>
+			<key>GridInfo</key>
+			<dict>
+				<key>GridSpacing</key>
+				<real>14.17322826385498</real>
+				<key>MajorGridSpacing</key>
+				<integer>10</integer>
+			</dict>
+			<key>HPages</key>
+			<integer>1</integer>
+			<key>IsPalette</key>
+			<string>NO</string>
+			<key>KeepToScale</key>
+			<false/>
+			<key>Layers</key>
+			<array>
+				<dict>
+					<key>Lock</key>
+					<string>NO</string>
+					<key>Name</key>
+					<string>レイヤー 1</string>
+					<key>Print</key>
+					<string>YES</string>
+					<key>View</key>
+					<string>YES</string>
+				</dict>
+			</array>
+			<key>LayoutInfo</key>
+			<dict>
+				<key>ChildOrdering</key>
+				<integer>0</integer>
+			</dict>
+			<key>Orientation</key>
+			<integer>2</integer>
+			<key>RowAlign</key>
+			<integer>1</integer>
+			<key>RowSpacing</key>
+			<real>36</real>
+			<key>SheetTitle</key>
+			<string>マスター 1</string>
+			<key>UniqueID</key>
+			<integer>1</integer>
+			<key>VPages</key>
+			<integer>1</integer>
+		</dict>
+	</array>
+	<key>ModificationDate</key>
+	<string>2008-02-07 22:06:25 +0900</string>
+	<key>Modifier</key>
+	<string>Fuchita Yoshihiko</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>0</string>
+		</array>
+		<key>NSJobFeatures</key>
+		<array>
+			<string>coded</string>
+			<string>BAt0eXBlZHN0cmVhbYED6IQBQISEhBNOU011dGFibGVEaWN0aW9uYXJ5AISEDE5TRGljdGlvbmFyeQCEhAhOU09iamVjdACFhAFpAIY=</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>0</string>
+		</array>
+		<key>NSPagesPerSheet</key>
+		<array>
+			<string>int</string>
+			<string>1</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{595, 842}</string>
+		</array>
+		<key>NSPrintAllPages</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSReversePageOrder</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>0</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>0</string>
+		</array>
+	</dict>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Canvas 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<true/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<string>0</string>
+		<key>DrawerOpen</key>
+		<false/>
+		<key>DrawerTab</key>
+		<string>Outline</string>
+		<key>DrawerWidth</key>
+		<real>209</real>
+		<key>FitInWindow</key>
+		<false/>
+		<key>Frame</key>
+		<string>{{324, 0}, {574, 800}}</string>
+		<key>ShowRuler</key>
+		<false/>
+		<key>ShowStatusBar</key>
+		<true/>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {559, 686}}</string>
+		<key>Zoom</key>
+		<string>1</string>
+	</dict>
+</dict>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/src/obj_test.java	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,65 @@
+import java.applet.Applet;
+import com.sun.j3d.utils.applet.MainFrame;
+import javax.media.j3d.*;
+
+import java.awt.BorderLayout;
+
+import java.awt.GraphicsConfiguration;
+import com.sun.j3d.utils.universe.*;
+import com.sun.j3d.utils.geometry.ColorCube;
+import javax.vecmath.*;
+
+
+public class obj_test extends Applet {
+	
+	public SimpleUniverse universe = null;
+	public Canvas3D canvas = null;
+	
+	public BranchGroup createObjects(){
+		BranchGroup root = new BranchGroup();
+
+		
+		Transform3D matrix1 = new Transform3D();
+		matrix1.setTranslation(new Vector3d(1.0, 0.0, 0.0));
+
+		TransformGroup transRoot = new TransformGroup(matrix1);
+
+		ColorCube cube2 = new ColorCube(0.2d);
+        transRoot.addChild(cube2);
+		root.addChild(transRoot);
+		
+
+		root.compile();
+		
+		return root;
+		
+	}
+
+	public void init() {
+		setLayout(new BorderLayout());
+		
+		GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
+		
+		Canvas3D canvas = new Canvas3D(config);
+		
+		add("Center", canvas);
+		
+		universe = new SimpleUniverse(canvas);
+		
+		universe.getViewingPlatform().setNominalViewingTransform();
+		
+		TransformGroup viewtrans = universe.getViewingPlatform().getViewPlatformTransform();
+
+		
+		
+		
+		// マウスでぐりぐり動かすための処理
+//        setOrbitBehavior();
+		
+		universe.addBranchGraph(createObjects());
+	}
+
+    public static void main(String[] args) {
+        new MainFrame(new obj_test(), 600, 600);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/src/sample.xml	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<drinks>
+    <drink type="soft">
+        <name>Apple</name>
+        <taste>Good</taste>
+    </drink>
+
+    <drink type="alcohol">
+        <name>Beer</name>
+	<taste>Bitter</taste>
+    </drink>
+
+    <drink type="alcohol">
+        <name>Whiskey</name>
+    </drink>
+</drinks>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/src/saxtest.java	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,62 @@
+import javax.xml.parsers.*;
+import org.xml.sax.*;
+import org.xml.sax.helpers.*;
+import java.io.*;
+
+public class saxtest extends DefaultHandler {
+  public static void main(String[] argv) {
+    try {
+      // SAXパーサーファクトリを生成
+      SAXParserFactory spfactory = SAXParserFactory.newInstance();
+      // SAXパーサーを生成
+      SAXParser parser = spfactory.newSAXParser();
+      // XMLファイルを指定されたデフォルトハンドラーで処理
+      parser.parse(new File("src/example.graffle"), new HelloWorldSax());
+    } catch (Exception e) {
+      e.printStackTrace();
+    }
+  }
+  /**
+   * ドキュメント開始時
+   */
+  public void startDocument() {
+    System.out.println("ドキュメント開始");
+  }
+  /**
+   * 要素の開始タグ読み込み時
+   */
+  public void startElement(String uri,
+                           String localName,
+                           String qName,
+                           Attributes attributes) {
+	  if( qName == "key" ){
+	  
+    System.out.println("要素開始:" + qName);
+	  }
+	  }
+	  
+  /**
+   * テキストデータ読み込み時
+   */
+  public void characters(char[] ch,
+                         int offset,
+                         int length) {
+
+    System.out.println("テキストデータ:" + new String(ch, offset, length));
+  }
+  /**
+   * 要素の終了タグ読み込み時
+   */
+  public void endElement(String uri,
+                         String localName,
+                         String qName) {
+
+    System.out.println("要素終了:" + qName);
+  }
+  /**
+   * ドキュメント終了時
+   */
+  public void endDocument() {
+    System.out.println("ドキュメント終了");
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/java3d-test/src/select_key_xml.java	Mon Aug 25 16:28:07 2008 +0900
@@ -0,0 +1,55 @@
+import org.xml.sax.*;
+import org.xml.sax.helpers.*;
+
+class select_key_xml extends DefaultHandler{
+//    private String currentTag;
+
+    /* XML文書の開始時の処理*/
+    public void startDocument(){
+	System.out.println("Here is start of XML document.");
+    }
+
+    /* 要素の開始時の処理*/
+    public void startElement(String qName){
+	System.out.println("Start Element");
+
+	/*タグ名を表示*/
+	if(qName != ""){
+	    System.out.println("qName= "+qName);
+//	    currentTag=qName;
+	}
+    }
+
+    /*要素の終了時の処理*/
+    public void endElement(String qName){
+	System.out.println("End element.");
+	if(qName!=""){
+	    System.out.println("qName= "+qName);
+	}
+//	currentTag="";
+    }
+
+    /* XML文書の終了時の処理*/
+    public void endDocument(){
+	System.out.println("Here is end of XML document.");
+    }
+
+    /* 文字列の処理*/
+    public void characters(char[] ch,int start,int length){
+	    String str=new String(ch,start,length);
+	    if(str.length()!=0){
+		System.out.println("====="+str+"=====");
+	    }
+    }
+
+    /* 処理命令を受けた時の処理 要調査*/
+    public void processingInstruction(String target,String data){}
+
+    /* プレフィックスによる名前空間の範囲の開始時 要調査*/
+    public void startPrefixMapping(String prefix,String uri){}
+
+    /* プレフィックスによる名前空間の範囲の終了時 要調査*/
+    public void endPrefixMapping(String prefix){}
+
+
+}
--- a/tools/java3d-test/src/two_obj.java	Mon Aug 25 14:38:18 2008 +0900
+++ b/tools/java3d-test/src/two_obj.java	Mon Aug 25 16:28:07 2008 +0900
@@ -1,18 +1,27 @@
 import java.applet.Applet;
 import com.sun.j3d.utils.applet.MainFrame;
+//import com.sun.j3d.utils.behaviors.mouse.*;
+//import com.sun.j3d.utils.behaviors.keyboard.*;
+
 import javax.media.j3d.*;
 
 import java.awt.BorderLayout;
 
 import java.awt.GraphicsConfiguration;
 import com.sun.j3d.utils.universe.*;
-import com.sun.j3d.utils.geometry.ColorCube;
-//import com.sun.j3d.utils.behaviors.vp.OrbitBehavior;
-//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.geometry.*;
 import javax.vecmath.*;
 
+import java.awt.*;
+import java.awt.geom.*;
+import java.awt.event.*;
+import javax.swing.*;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import javax.imageio.ImageIO;
+import java.io.IOException;
+
+
 
 public class two_obj extends Applet {
 	
@@ -22,6 +31,16 @@
 	public BranchGroup createObjects(){
 		BranchGroup root = new BranchGroup();
 		
+		root.addChild(createLight());
+
+        Appearance ap = new Appearance();
+        Material ma = new Material();
+        ma.setDiffuseColor(0.0f, 0.0f, 1.0f);
+        ap.setMaterial(ma);
+		
+        
+        
+        
 		//TransformGroup transRoot = new TransformGroup();
 	    //Transform3D transform = new Transform3D();
 		TransformGroup td3Root = addobj(new Vector3d(1.0, 0.0, 0.0));
@@ -30,7 +49,30 @@
 		root.addChild(td3Root1);
 		TransformGroup td3Root2 = addobj(new Vector3d(-1.0, 1.0, 0.0));
 		root.addChild(td3Root2);
-	
+
+//		//View用TransfromGroup
+//		//全体を見渡す巨大で透明なSphireを作る
+//		TransformGroup viewSphire = new TransformGroup();
+//		viewSphire.addChild(new Sphere(50.f));
+//		
+//		viewSphire.setCapability( TransformGroup.ALLOW_TRANSFORM_READ );
+//		viewSphire.setCapability( TransformGroup.ALLOW_TRANSFORM_WRITE );
+//		
+//		MouseRotate rotat = new MouseRotate( viewSphire );
+//        MouseTranslate trans = new MouseTranslate( viewSphire );
+//        MouseZoom zoom = new MouseZoom( viewSphire );
+//		
+//		BoundingSphere bounds = new BoundingSphere();
+//		
+//		bounds.setRadius( 10.0 );
+//        rotat.setSchedulingBounds( bounds );
+//        trans.setSchedulingBounds( bounds );
+//        zoom.setSchedulingBounds( bounds );
+//        
+//        td3Root.addChild(rotat);
+//        td3Root.addChild(trans);
+//        td3Root.addChild(zoom);
+		
 	    //transform.set(new Vector3d(1.0, 0.0, 0.0));
         //transRoot.setTransform(transform);
 	    
@@ -43,13 +85,25 @@
 		return root;
 		
 	}
+	
+	 private Light createLight(){
+	        DirectionalLight light = new DirectionalLight( true,
+	                        new Color3f(0.0f, 0.0f, 1.0f),
+	                        new Vector3f(0.0f, 0.0f, -1.0f));
 
+	        light.setInfluencingBounds(new BoundingSphere(new Point3d(), 100.0));
+	  
+	        return light;
+	    }
+
+	
+	
 	private TransformGroup addobj(Vector3d vec3d) {
 		TransformGroup td3Root = new TransformGroup();
 		Transform3D t3d = new Transform3D();
 		t3d.setTranslation(vec3d);
 		td3Root.setTransform(t3d);
-		td3Root.addChild(new ColorCube(0.4));
+		td3Root.addChild(new Sphere(0.3f, Sphere.GENERATE_NORMALS, 50));
 		return td3Root;
 	}
 	
@@ -84,4 +138,6 @@
     public static void main(String[] args) {
         new MainFrame(new two_obj(), 600, 600);
     }
+    
 }
+