(define-module (irrlicht bindings scene)
- #:use-module (system foreign))
-
-(define cirr (dynamic-link "libCIrrlicht"))
+ #:use-module (system foreign)
+ #:use-module (irrlicht util foreign))
;; irr_scene_EMD2_ANIMATION_TYPE enum
(define-public EMAT_STAND 0)
(define-public EMAT_BOOM 20)
(define-public EMAT_COUNT 21)
+;; irr_scene_E_PRIMITIVE_TYPE enum
+(define-public EPT_POINTS 0)
+(define-public EPT_LINE_STRIP 1)
+(define-public EPT_LINE_LOOP 2)
+(define-public EPT_LINES 3)
+(define-public EPT_TRIANGLE_STRIP 4)
+(define-public EPT_TRIANGLE_FAN 5)
+(define-public EPT_TRIANGLES 6)
+(define-public EPT_QUAD_STRIP 7)
+(define-public EPT_QUADS 8)
+(define-public EPT_POLYGON 9)
+(define-public EPT_POINT_SPRITES 10)
+
;; Scene functions
-(define-public add-animated-mesh-scene-node
- (pointer->procedure
- '*
- (dynamic-func "irr_scene_addAnimatedMeshSceneNode" cirr)
- (list '* '* '* int '* '* '* int)))
-
-(define-public add-camera-scene-node
- (pointer->procedure
- '*
- (dynamic-func "irr_scene_addCameraSceneNode" cirr)
- (list '* '* '* '* int int)))
-
-(define-public add-camera-scene-node-fps
- (pointer->procedure
- '*
- (dynamic-func "irr_scene_addCameraSceneNodeFPS" cirr)
- (list '* '* float float int '* int int float int int)))
-
-(define-public add-octree-scene-node-am
- (pointer->procedure
- '*
- (dynamic-func "irr_scene_addOctreeSceneNodeAM" cirr)
- (list '* '* '* int int int)))
-
-(define-public draw-all
- (pointer->procedure
- void
- (dynamic-func "irr_scene_drawAll" cirr)
- (list '*)))
-
-(define-public get-mesh
- (pointer->procedure
- '*
- (dynamic-func "irr_scene_getMesh" cirr)
- (list '* '*)))
-
-(define-public set-material-flag-am
- (pointer->procedure
- void
- (dynamic-func "irr_scene_setMaterialFlagAM" cirr)
- (list '* int int)))
-
-(define-public set-material-texture-am
- (pointer->procedure
- void
- (dynamic-func "irr_scene_setMaterialTextureAM" cirr)
- (list '* int '*)))
-
-(define-public set-md2-animation
- (pointer->procedure
- void
- (dynamic-func "irr_scene_setMD2Animation" cirr)
- (list '* int)))
-
-(define-public set-position
- (pointer->procedure
- void
- (dynamic-func "irr_scene_setPosition" cirr)
- (list '* '*)))
+(define-foreign add-animated-mesh-scene-node
+ '* "irr_scene_addAnimatedMeshSceneNode" (list '* '* '* int '* '* '* int))
+
+(define-foreign add-animator
+ void "irr_scene_addAnimator" (list '* '*))
+
+(define-foreign add-camera-scene-node
+ '* "irr_scene_addCameraSceneNode" (list '* '* '* '* int int))
+
+(define-foreign add-camera-scene-node-fps
+ '* "irr_scene_addCameraSceneNodeFPS" (list '* '* float float int '* int int float int int))
+
+(define-foreign add-custom-scene-node
+ '* "irr_scene_addCustomSceneNode" (list '* '* int '* '* '* '* '* '* '*))
+
+(define-foreign add-octree-scene-node
+ '* "irr_scene_addOctreeSceneNode" (list '* '* '* int int int))
+
+(define-foreign create-rotation-animator
+ '* "irr_scene_createRotationAnimator" (list '* '*))
+
+(define-foreign draw-all
+ void "irr_scene_drawAll" (list '*))
+
+(define-foreign get-absolute-transformation
+ '* "irr_scene_getAbsoluteTransformation" (list '*))
+
+(define-foreign get-mesh
+ '* "irr_scene_getMesh" (list '* '*))
+
+(define-foreign get-root-scene-node
+ '* "irr_scene_getRootSceneNode" (list '*))
+
+(define-foreign set-material-flag
+ void "irr_scene_setMaterialFlag" (list '* int int))
+
+(define-foreign set-material-texture
+ void "irr_scene_setMaterialTexture" (list '* int '*))
+
+(define-foreign set-md2-animation
+ void "irr_scene_setMD2Animation" (list '* int))
+
+(define-foreign set-position
+ void "irr_scene_setPosition" (list '* '*))