* src/assimp.scm: Scheme part of the function.
* src/low-level/cimport.scm: Foreign interface to aiTransformVecByMatrix4.
(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)))
#:use-module (assimp low-level)
#:use-module (system foreign)
#:export (aiImportFile
+ aiTransformVecByMatrix4
aiMultiplyMatrix4))
(define libassimp (dynamic-link "libassimp"))
(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)