JRuby For Knight -CgPrograming- > JRuby call JavaAPI > 2D/3D > Java3D > HelloJava3D


[Prev] [Next] [Up] [Contents][フレーム表示] [フレーム解除

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

[Prev] [Next] [Up] [Contents][フレーム表示] [フレーム解除

このサイトについて|ヘルプ|Q&A|個人情報保護|プライバシーポリシー|利用規約|コメント・トラックバック規約|削除規程|広告掲載
Copyright (c) 2005-2007 Time Intermedia Corporation