<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.erights.org/mediawiki/skins/common/feed.css?207"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.erights.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=User%3AKevin_Reid%2Fjava3d.e-awt</id>
		<title>User:Kevin Reid/java3d.e-awt - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.erights.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=User%3AKevin_Reid%2Fjava3d.e-awt"/>
		<link rel="alternate" type="text/html" href="http://wiki.erights.org/mediawiki/index.php?title=User:Kevin_Reid/java3d.e-awt&amp;action=history"/>
		<updated>2026-06-13T17:18:28Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.15.5-7</generator>

	<entry>
		<id>http://wiki.erights.org/mediawiki/index.php?title=User:Kevin_Reid/java3d.e-awt&amp;diff=2045&amp;oldid=prev</id>
		<title>Kevin Reid:&amp;#32;uploading stuff sitting around</title>
		<link rel="alternate" type="text/html" href="http://wiki.erights.org/mediawiki/index.php?title=User:Kevin_Reid/java3d.e-awt&amp;diff=2045&amp;oldid=prev"/>
				<updated>2009-12-30T15:39:33Z</updated>
		
		<summary type="html">&lt;p&gt;uploading stuff sitting around&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;  #!/usr/bin/env rune&lt;br /&gt;
  &lt;br /&gt;
  # Translated a Java 3D example into E. Written 2008-12-05.&lt;br /&gt;
  #&lt;br /&gt;
  # I was pondering writing a 3D-spatial interface to Den and looking into 3D&lt;br /&gt;
  # API choices; that would be a Very Large Project I don't currently have&lt;br /&gt;
  # enough interest in. (I've also heard that Java 3D is abandoned...) I'm&lt;br /&gt;
  # posting this just so the work isn't entirely wasted.&lt;br /&gt;
  #   -- Kevin Reid 2009-12-30&lt;br /&gt;
  #&lt;br /&gt;
  # https://j3d-examples.dev.java.net/source/browse/j3d-examples/src/classes/org/jdesktop/j3d/examples/hello_universe/HelloUniverse.java?rev=1.2&amp;amp;view=markup&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  def &amp;lt;j3d&amp;gt; := &amp;lt;unsafe:javax.media.j3d.*&amp;gt;&lt;br /&gt;
  def &amp;lt;universe&amp;gt; := &amp;lt;unsafe:com.sun.j3d.utils.universe.*&amp;gt;&lt;br /&gt;
  def &amp;lt;vecmath&amp;gt; := &amp;lt;unsafe:javax.vecmath.*&amp;gt;&lt;br /&gt;
  def pi := (-1.0).acos()&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  def createSceneGraph() { # :BranchGroup&lt;br /&gt;
  	# Create the root of the branch graph&lt;br /&gt;
  	def objRoot := &amp;lt;j3d:makeBranchGroup&amp;gt;();&lt;br /&gt;
  &lt;br /&gt;
  	# Create the TransformGroup node and initialize it to the&lt;br /&gt;
  	# identity. Enable the TRANSFORM_WRITE capability so that&lt;br /&gt;
  	# our behavior code can modify it at run time. Add it to&lt;br /&gt;
  	# the root of the subgraph.&lt;br /&gt;
  	def objTrans := &amp;lt;j3d:makeTransformGroup&amp;gt;();&lt;br /&gt;
  	objTrans.setCapability(&amp;lt;j3d:makeTransformGroup&amp;gt;.getALLOW_TRANSFORM_WRITE());&lt;br /&gt;
  	objRoot.addChild(objTrans);&lt;br /&gt;
  &lt;br /&gt;
  	# Create a simple Shape3D node; add it to the scene graph.&lt;br /&gt;
  	objTrans.addChild(&amp;lt;unsafe:com.sun.j3d.utils.geometry.makeColorCube&amp;gt;(0.4));&lt;br /&gt;
  &lt;br /&gt;
  	# Create a new Behavior object that will perform the&lt;br /&gt;
  	# desired operation on the specified transform and add&lt;br /&gt;
  	# it into the scene graph.&lt;br /&gt;
  	def yAxis := &amp;lt;j3d:makeTransform3D&amp;gt;();&lt;br /&gt;
  	def rotationAlpha := &amp;lt;j3d:makeAlpha&amp;gt;(-1, 4000);&lt;br /&gt;
  &lt;br /&gt;
  	def rotator :=&lt;br /&gt;
  	    &amp;lt;j3d:makeRotationInterpolator&amp;gt;(rotationAlpha, objTrans, yAxis,&lt;br /&gt;
  				     0.0, pi*2);&lt;br /&gt;
  	def bounds :=&lt;br /&gt;
  	    &amp;lt;j3d:makeBoundingSphere&amp;gt;(&amp;lt;vecmath:makePoint3d&amp;gt;(0.0,0.0,0.0), 100.0);&lt;br /&gt;
  	rotator.setSchedulingBounds(bounds);&lt;br /&gt;
  	objRoot.addChild(rotator);&lt;br /&gt;
  &lt;br /&gt;
          # Have Java 3D perform optimizations on this scene graph.&lt;br /&gt;
          objRoot.compile();&lt;br /&gt;
  &lt;br /&gt;
  	return objRoot;&lt;br /&gt;
    } &lt;br /&gt;
  &lt;br /&gt;
    def canvas := &amp;lt;j3d:makeCanvas3D&amp;gt;(&amp;lt;universe:makeSimpleUniverse&amp;gt;.getPreferredConfiguration())&lt;br /&gt;
  &lt;br /&gt;
    def univ := &amp;lt;universe:makeSimpleUniverse&amp;gt;(canvas)&lt;br /&gt;
    univ.getViewingPlatform().setNominalViewingTransform()&lt;br /&gt;
    univ.getViewer().getView().setMinimumFrameCycleTime(5)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  # Canvas3D is an AWT component so it doesn't have a preferredSize&lt;br /&gt;
  def swingContainer := JPanel`$canvas`&lt;br /&gt;
  swingContainer.setPreferredSize(&amp;lt;awt:makeDimension&amp;gt;(250, 250))&lt;br /&gt;
  &lt;br /&gt;
  def frame := &amp;lt;swing:makeJFrame&amp;gt;(&amp;quot;3d&amp;quot;)&lt;br /&gt;
  frame.getContentPane().&amp;quot;add(Component)&amp;quot;(swingContainer)&lt;br /&gt;
  &lt;br /&gt;
  def scene := createSceneGraph();&lt;br /&gt;
  univ.addBranchGraph(scene);&lt;br /&gt;
  &lt;br /&gt;
  frame.pack()&lt;br /&gt;
  frame.show()&lt;br /&gt;
  interp.blockAtTop()&lt;/div&gt;</summary>
		<author><name>Kevin Reid</name></author>	</entry>

	</feed>