Open Source WEB

LG3D on Kawa


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")

Comments

Name:
Comment:

There is no comment.

このサイトは、 IPA の「平成15年度オープンソフトウエア活用基盤整備事業」 の委託事業として開発されたKahuaで試験的に運用しております。

Copyright (c) 2004-2007 株式会社タイムインターメディア About Us