Mercurial > hg > FederatedLinda
changeset 41:cb13a91175ad
add example
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); } + } +