]> git.jsancho.org Git - guile-assimp.git/commitdiff
New foreign function ai-transform-vec-by-matrix4
authorJavier Sancho <jsf@jsancho.org>
Thu, 17 Jul 2014 11:19:39 +0000 (13:19 +0200)
committerJavier Sancho <jsf@jsancho.org>
Thu, 17 Jul 2014 11:19:39 +0000 (13:19 +0200)
* src/assimp.scm: Scheme part of the function.

* src/low-level/cimport.scm: Foreign interface to aiTransformVecByMatrix4.

src/assimp.scm
src/low-level/cimport.scm

index 9954e8212bcb47cab6f070bc22e4f80654e091bb..917a6853732dece010142646e1294684b19cca5f 100644 (file)
    (aiImportFile (string->pointer filename)
                 flags)))
 
    (aiImportFile (string->pointer filename)
                 flags)))
 
+(define-public (ai-transform-vec-by-matrix4 vec mat)
+  (let ((cvec (parse-aiVector3D (map cdr (ai-vector3d-contents vec)) #:reverse #t))
+       (cmat (parse-aiMatrix4x4 (map cdr (ai-matrix4x4-contents mat)) #:reverse #t)))
+    (aiTransformVecByMatrix4 cvec cmat)
+    (wrap-ai-vector3d cvec)))
+
 (define-public (ai-multiply-matrix4 m1 m2)
   (let ((cm1 (parse-aiMatrix4x4 (map cdr (ai-matrix4x4-contents m1)) #:reverse #t))
        (cm2 (parse-aiMatrix4x4 (map cdr (ai-matrix4x4-contents m2)) #:reverse #t)))
 (define-public (ai-multiply-matrix4 m1 m2)
   (let ((cm1 (parse-aiMatrix4x4 (map cdr (ai-matrix4x4-contents m1)) #:reverse #t))
        (cm2 (parse-aiMatrix4x4 (map cdr (ai-matrix4x4-contents m2)) #:reverse #t)))
index 9bc0c99afcb038b355869bf02617fc004d049797..b0d71e7e252e4c7fe896df4aeb8206416f131c04 100644 (file)
@@ -19,6 +19,7 @@
   #:use-module (assimp low-level)
   #:use-module (system foreign)
   #:export (aiImportFile
   #:use-module (assimp low-level)
   #:use-module (system foreign)
   #:export (aiImportFile
+           aiTransformVecByMatrix4
            aiMultiplyMatrix4))
 
 (define libassimp (dynamic-link "libassimp"))
            aiMultiplyMatrix4))
 
 (define libassimp (dynamic-link "libassimp"))
@@ -29,4 +30,5 @@
      (define-foreign-function ((libassimp name) arg-type ...) -> return-type))))
 
 (define-assimp-function (aiImportFile '* unsigned-int) -> '*)
      (define-foreign-function ((libassimp name) arg-type ...) -> return-type))))
 
 (define-assimp-function (aiImportFile '* unsigned-int) -> '*)
+(define-assimp-function (aiTransformVecByMatrix4 '* '*) -> void)
 (define-assimp-function (aiMultiplyMatrix4 '* '*) -> void)
 (define-assimp-function (aiMultiplyMatrix4 '* '*) -> void)