X-Git-Url: https://git.jsancho.org/?p=guile-assimp.git;a=blobdiff_plain;f=src%2Fassimp%2Flow-level%2Fmesh.scm;fp=src%2Fassimp%2Flow-level%2Fmesh.scm;h=50d0bb807a62518e5c4ec538d6cfae3fb9552b72;hp=0000000000000000000000000000000000000000;hb=ceafd0037f102ffbb2b902b6ccb0b9701f3ae1ba;hpb=1dc327bbc4a576fdc5c160325d86b5b32754139b diff --git a/src/assimp/low-level/mesh.scm b/src/assimp/low-level/mesh.scm new file mode 100644 index 0000000..50d0bb8 --- /dev/null +++ b/src/assimp/low-level/mesh.scm @@ -0,0 +1,69 @@ +;;; guile-assimp, foreign interface to libassimp +;;; Copyright (C) 2014 by Javier Sancho Fernandez +;;; +;;; This program is free software: you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation, either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program. If not, see . + + +(define-module (assimp low-level mesh) + #:use-module (assimp low-level) + #:use-module (assimp low-level types) + #:use-module (system foreign)) + + +(define-struct-parser parse-aiFace + (mNumIndices unsigned-int) + (mIndices '*)) + +(export parse-aiFace) + + +(define-struct-parser parser-aiVertexWeight + (mVertexId unsigned-int) + (mWeight float)) + +(export parse-aiVertexWeight) + + +(define-struct-parser parse-aiBone + (mName aiString-type) + (mNumWeights unsigned-int) + (mWeights '*) + (mOffsetMatrix aiMatrix4x4-type)) + +(export parse-aiBone) + + +(define AI_MAX_NUMBER_OF_COLOR_SETS #x8) +(define AI_MAX_NUMBER_OF_TEXTURECOORDS #x8) + +(define-struct-parser parse-aiMesh + (mPrimitiveTypes unsigned-int) + (mNumVertices unsigned-int) + (mNumFaces unsigned-int) + (mVertices '*) + (mNormals '*) + (mTangents '*) + (mBitangents '*) + (mColors (make-list AI_MAX_NUMBER_OF_COLOR_SETS '*)) + (mTextureCoords (make-list AI_MAX_NUMBER_OF_TEXTURECOORDS '*)) + (mNumUVComponents (make-list AI_MAX_NUMBER_OF_TEXTURECOORDS unsigned-int)) + (mFaces '*) + (mNumBones unsigned-int) + (mBones '*) + (mMaterialIndex unsigned-int) + (mName aiString-type) + (mNumAnimMeshes unsigned-int) + (mAnimMeshes '*)) + +(export parse-aiMesh)