HelloJava3D 応援する  BasicCode
include Java
include_class 'java.applet.Applet'
include_class 'com.sun.j3d.utils.applet.MainFrame'
include_class 'com.sun.j3d.utils.geometry.ColorCube'
class Java3d_canvas
include_package 'java.awt'
include_package 'java.awt.event'
include_package 'javax.media.j3d'
include_package 'javax.vecmath'
include_package 'com.sun.j3d.utils.universe'
def initialize
@applet = Applet.new
init
end
def createSceneGraph
objRoot = BranchGroup.new
rotate = Transform3D.new
tempRotate = Transform3D.new
rotate.rotX(Math::PI/4.0)
tempRotate.rotY(Math::PI/5.0)
rotate.mul(tempRotate)
objRotate = TransformGroup.new(rotate)
objSpin = TransformGroup.new
objSpin.setCapability(TransformGroup::ALLOW_TRANSFORM_WRITE)
objRoot.addChild(objRotate)
objRotate.addChild(objSpin)
objSpin.addChild(ColorCube.new(0.4))
yAxis = Transform3D.new
rotationAlpha = Alpha.new(-1, 4000)
rotator = RotationInterpolator.new(rotationAlpha, objSpin, yAxis, 0.0, Math::PI*2.0)
bounds = BoundingSphere.new
rotator.setSchedulingBounds(bounds)
objSpin.addChild(rotator)
objRoot
end
def init
@applet.setLayout(BorderLayout.new)
config = SimpleUniverse.getPreferredConfiguration
canvas = Canvas3D.new(config)
@applet.add(canvas,BorderLayout::CENTER)
scene = createSceneGraph
scene.compile
simpleU = SimpleUniverse.new(canvas)
simpleU.getViewingPlatform.setNominalViewingTransform
simpleU.addBranchGraph(scene)
end
def main
MainFrame.new(@applet,256,256)
end
end
Java3d_canvas.new.main
| |
|