Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
LG3D on Kawa
- Kawa
- Running Kawa with LG3D
- Emacs settings
- Run kawa with Emacs
- Evaluate Scheme expression into Kawa Interpleter
- hello3d.scm Example
- load Scheme sourcefile on Kawa
- Comments
Kawa
http://www.gnu.org/software/kawa/
Scheme Implementation running on Java VM.
Running Kawa with LG3D
java -Xmx512m -Dj3d.sortShape3DBounds="true" -Dlg.configurl=file:///Users/yasuyuki/lg3d/etc/lg3d/lgconfig_1p_nox.xml -Dlg.displayconfigurl=file:///Users/yasuyuki/lg3d/etc/lg3d/displayconfig/j3d1x1 -Dlg.etcdir=/Users/yasuyuki/lg3d/etc/ -jar /Users/yasuyuki/Public/Archives/kawa-1.7.90.jar
Emacs settings
.emacs
;; kawa-mode
(defun run-kawa ()
"Run Kawa Scheme in an Emacs buffer."
(interactive)
(require 'cmuscheme)
(let ((scheme-program-name "/Users/yasuyuki/bin/kawa-lg3d.sh"))
; (let ((scheme-program-name "/Users/Shared/bin/kawa"))
; my installation
(run-scheme scheme-program-name)))
Run kawa with Emacs
M-x run-kawa
Evaluate Scheme expression into Kawa Interpleter
C-x C-e
hello3d.scm Example
;; hello3d.scm
(define *WIDTH* (/ (* 200.0 0.0254) 72.0))
(define *HEIGHT* (/ (* 200.0 0.0254) 72.0))
(define *DEPTH* 0.005)
(define *EDGE* 0.005)
(define frame3d
(make <org.jdesktop.lg3d.wg.Frame3D>))
(define app
(make <org.jdesktop.lg3d.utils.shape.SimpleAppearance>
1.0 0.8 0.8 1.0
(static-field
<org.jdesktop.lg3d.utils.shape.SimpleAppearance>
'ENABLE_TEXTURE)))
(invoke app 'setCapability
(static-field
<org.jdesktop.lg3d.utils.shape.SimpleAppearance>
'ALLOW_TEXTURE_WRITE))
;(define panel (make <org.jdesktop.lg3d.utils.shape.GlassyPanel>
; *WIDTH* *HEIGHT* *DEPTH* *EDGE* app))
(define panel
(make <org.jdesktop.lg3d.utils.shape.FuzzyEdgePanel>
*WIDTH* *HEIGHT* *EDGE* app))
(define comp3d
(make <org.jdesktop.lg3d.wg.Component3D>))
(invoke comp3d 'addChild panel)
(invoke frame3d 'addChild comp3d)
(invoke frame3d 'setPreferredSize
(make <javax.vecmath.Vector3f>
*WIDTH* *HEIGHT* *DEPTH*))
(invoke frame3d 'changeEnabled #t)
(invoke frame3d 'changeVisible #t)
;; texture
(define file
(make <java.io.File>
"/Users/yasuyuki/face128.gif"))
(define in-stream
(make <java.io.FileInputStream> file))
(define readers
(invoke-static <javax.imageio.ImageIO>
'getImageReadersBySuffix "gif"))
(define reader (invoke readers 'next))
(define image-stream
(invoke-static <javax.imageio.ImageIO>
'createImageInputStream in-stream))
(invoke reader 'setInput image-stream)
(define bimage (invoke reader 'read 0))
(define loader
(make <org.jdesktop.lg3d.sg.utils.image.TextureLoader> bimage))
(define texture (invoke loader 'getTexture))
(invoke app 'setTexture texture)
load Scheme sourcefile on Kawa
(load "/Users/yasuyuki/hello3d.scm")
There is no comment.