From: Javier Sancho Date: Thu, 17 Jul 2014 11:19:39 +0000 (+0200) Subject: New foreign function ai-transform-vec-by-matrix4 X-Git-Url: https://git.jsancho.org/?p=guile-assimp.git;a=commitdiff_plain;h=8a8592cd6be5281fecb5da7252e92944786e3df4 New foreign function ai-transform-vec-by-matrix4 * src/assimp.scm: Scheme part of the function. * src/low-level/cimport.scm: Foreign interface to aiTransformVecByMatrix4. --- diff --git a/src/assimp.scm b/src/assimp.scm index 9954e82..917a685 100644 --- a/src/assimp.scm +++ b/src/assimp.scm @@ -281,6 +281,12 @@ (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))) diff --git a/src/low-level/cimport.scm b/src/low-level/cimport.scm index 9bc0c99..b0d71e7 100644 --- a/src/low-level/cimport.scm +++ b/src/low-level/cimport.scm @@ -19,6 +19,7 @@ #:use-module (assimp low-level) #:use-module (system foreign) #:export (aiImportFile + aiTransformVecByMatrix4 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-assimp-function (aiTransformVecByMatrix4 '* '*) -> void) (define-assimp-function (aiMultiplyMatrix4 '* '*) -> void)