2010-07-12 13:13:43 +00:00
|
|
|
|
/*
|
|
|
|
|
---------------------------------------------------------------------------
|
|
|
|
|
Open Asset Import Library (ASSIMP)
|
|
|
|
|
---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Copyright (c) 2006-2010, ASSIMP Development Team
|
|
|
|
|
|
|
|
|
|
All rights reserved.
|
|
|
|
|
|
|
|
|
|
Redistribution and use of this software in source and binary forms,
|
|
|
|
|
with or without modification, are permitted provided that the following
|
|
|
|
|
conditions are met:
|
|
|
|
|
|
|
|
|
|
* Redistributions of source code must retain the above
|
|
|
|
|
copyright notice, this list of conditions and the
|
|
|
|
|
following disclaimer.
|
|
|
|
|
|
|
|
|
|
* Redistributions in binary form must reproduce the above
|
|
|
|
|
copyright notice, this list of conditions and the
|
|
|
|
|
following disclaimer in the documentation and/or other
|
|
|
|
|
materials provided with the distribution.
|
|
|
|
|
|
|
|
|
|
* Neither the name of the ASSIMP team, nor the names of its
|
|
|
|
|
contributors may be used to endorse or promote products
|
|
|
|
|
derived from this software without specific prior
|
|
|
|
|
written permission of the ASSIMP Development Team.
|
|
|
|
|
|
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
|
|
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
|
|
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
|
|
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
|
|
|
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
|
|
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
|
|
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
|
|
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
|
|
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
|
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
|
|
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
---------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
%module Assimp
|
|
|
|
|
|
|
|
|
|
%include "carrays.i"
|
|
|
|
|
%include "typemaps.i"
|
2010-03-01 20:57:09 +00:00
|
|
|
|
%{
|
2012-11-03 02:49:19 +00:00
|
|
|
|
#include "..\..\..\include\assimp\defs.h"
|
|
|
|
|
#include "..\..\..\include\assimp\config.h"
|
|
|
|
|
#include "..\..\..\include\assimp\types.h"
|
|
|
|
|
#include "..\..\..\include\assimp\version.h"
|
|
|
|
|
#include "..\..\..\include\assimp\postprocess.h"
|
|
|
|
|
#include "..\..\..\include\assimp\vector2.h"
|
|
|
|
|
#include "..\..\..\include\assimp\vector3.h"
|
|
|
|
|
#include "..\..\..\include\assimp\color4.h"
|
|
|
|
|
#include "..\..\..\include\assimp\matrix3x3.h"
|
|
|
|
|
#include "..\..\..\include\assimp\matrix4x4.h"
|
|
|
|
|
#include "..\..\..\include\assimp\camera.h"
|
|
|
|
|
#include "..\..\..\include\assimp\light.h"
|
|
|
|
|
#include "..\..\..\include\assimp\anim.h"
|
|
|
|
|
#include "..\..\..\include\assimp\mesh.h"
|
|
|
|
|
#include "..\..\..\include\assimp\cfileio.h"
|
|
|
|
|
#include "..\..\..\include\assimp\material.h"
|
|
|
|
|
#include "..\..\..\include\assimp\quaternion.h"
|
|
|
|
|
#include "..\..\..\include\assimp\scene.h"
|
|
|
|
|
#include "..\..\..\include\assimp\texture.h"
|
|
|
|
|
#include "..\..\..\include\assimp\Importer.hpp"
|
|
|
|
|
#include "..\..\..\include\assimp\IOSystem.hpp"
|
|
|
|
|
#include "..\..\..\include\assimp\IOStream.hpp"
|
|
|
|
|
#include "..\..\..\include\assimp\Logger.hpp"
|
|
|
|
|
#include "..\..\..\include\assimp\LogStream.hpp"
|
|
|
|
|
#include "..\..\..\include\assimp\NullLogger.hpp"
|
|
|
|
|
#include "..\..\..\include\assimp\ProgressHandler.hpp"
|
2010-03-01 20:57:09 +00:00
|
|
|
|
%}
|
|
|
|
|
|
|
|
|
|
#define C_STRUCT
|
|
|
|
|
#define C_ENUM
|
|
|
|
|
#define ASSIMP_API
|
|
|
|
|
#define PACK_STRUCT
|
2012-11-03 02:49:19 +00:00
|
|
|
|
#define AI_FORCE_INLINE
|
2010-03-01 20:57:09 +00:00
|
|
|
|
|
|
|
|
|
%rename(__add__) operator+;
|
|
|
|
|
%rename(__addnset__) operator+=;
|
|
|
|
|
%rename(__sub__) operator-;
|
|
|
|
|
%rename(__subnset__) operator-=;
|
|
|
|
|
%rename(__mul__) operator*;
|
|
|
|
|
%rename(__mulnset__) operator*=;
|
|
|
|
|
%rename(__div__) operator/;
|
|
|
|
|
%rename(__divnset__) operator/=;
|
|
|
|
|
%rename(__equal__) operator==;
|
|
|
|
|
%rename(__nequal__) operator!=;
|
|
|
|
|
%rename(__idx__) operator[];
|
|
|
|
|
%rename(__set__) operator=;
|
|
|
|
|
%rename(__greater__) operator>;
|
|
|
|
|
%rename(__smaller__) operator<;
|
|
|
|
|
|
2010-05-13 17:08:35 +00:00
|
|
|
|
|
|
|
|
|
%rename(opNew) operator new;
|
|
|
|
|
%rename(opNewArray) operator new[];
|
|
|
|
|
|
|
|
|
|
%rename(opDelete) operator delete;
|
|
|
|
|
%rename(opDeleteArray) operator delete[];
|
|
|
|
|
|
2010-03-01 20:57:09 +00:00
|
|
|
|
|
|
|
|
|
%include "std_string.i"
|
2010-05-13 17:08:35 +00:00
|
|
|
|
%include "std_vector.i"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// PACK_STRUCT is a no-op for SWIG <20> it does not matter for the generated
|
|
|
|
|
// bindings how the underlying C++ code manages its memory.
|
|
|
|
|
#define PACK_STRUCT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Helper macros for wrapping the pointer-and-length arrays used in the
|
|
|
|
|
// Assimp API.
|
|
|
|
|
|
|
|
|
|
%define ASSIMP_ARRAY(CLASS, TYPE, NAME, LENGTH)
|
2010-07-12 13:13:43 +00:00
|
|
|
|
%csmethodmodifiers Get##NAME() "private";
|
|
|
|
|
%newobject CLASS::Get##NAME;
|
2010-05-13 17:08:35 +00:00
|
|
|
|
%extend CLASS {
|
2010-07-12 13:13:43 +00:00
|
|
|
|
std::vector<TYPE > *Get##NAME() {
|
2010-05-13 17:08:35 +00:00
|
|
|
|
std::vector<TYPE > *result = new std::vector<TYPE >;
|
|
|
|
|
result->reserve(LENGTH);
|
|
|
|
|
|
|
|
|
|
for (unsigned int i = 0; i < LENGTH; ++i) {
|
|
|
|
|
result->push_back($self->NAME[i]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
%ignore CLASS::NAME;
|
|
|
|
|
%enddef
|
|
|
|
|
|
|
|
|
|
%define ASSIMP_POINTER_ARRAY(CLASS, TYPE, NAME, LENGTH)
|
2010-07-12 13:13:43 +00:00
|
|
|
|
%csmethodmodifiers Get##NAME() "private";
|
|
|
|
|
%newobject CLASS::Get##NAME;
|
2010-05-13 17:08:35 +00:00
|
|
|
|
%extend CLASS {
|
2010-07-12 13:13:43 +00:00
|
|
|
|
std::vector<TYPE *> *Get##NAME() {
|
2010-05-13 17:08:35 +00:00
|
|
|
|
std::vector<TYPE *> *result = new std::vector<TYPE *>;
|
|
|
|
|
result->reserve(LENGTH);
|
2010-07-12 13:13:43 +00:00
|
|
|
|
|
|
|
|
|
TYPE *currentValue = (TYPE *)$self->NAME;
|
|
|
|
|
TYPE *valueLimit = (TYPE *)$self->NAME + LENGTH;
|
2010-05-13 17:08:35 +00:00
|
|
|
|
while (currentValue < valueLimit) {
|
|
|
|
|
result->push_back(currentValue);
|
|
|
|
|
++currentValue;
|
|
|
|
|
}
|
2010-07-12 13:13:43 +00:00
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
%ignore CLASS::NAME;
|
|
|
|
|
%enddef
|
|
|
|
|
|
|
|
|
|
%define ASSIMP_POINTER_POINTER(CLASS, TYPE, NAME, LENGTH)
|
|
|
|
|
%csmethodmodifiers Get##NAME() "private";
|
|
|
|
|
%newobject CLASS::Get##NAME;
|
|
|
|
|
%extend CLASS {
|
|
|
|
|
std::vector<TYPE *> *Get##NAME() {
|
|
|
|
|
std::vector<TYPE *> *result = new std::vector<TYPE *>;
|
|
|
|
|
result->reserve(LENGTH);
|
|
|
|
|
|
|
|
|
|
TYPE **currentValue = $self->NAME;
|
|
|
|
|
TYPE **valueLimit = $self->NAME + LENGTH;
|
|
|
|
|
while (currentValue < valueLimit) {
|
|
|
|
|
result->push_back(*currentValue);
|
|
|
|
|
++currentValue;
|
|
|
|
|
}
|
2010-05-13 17:08:35 +00:00
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
%ignore CLASS::NAME;
|
|
|
|
|
%enddef
|
|
|
|
|
|
|
|
|
|
%define ASSIMP_POINTER_ARRAY_ARRAY(CLASS, TYPE, NAME, OUTER_LENGTH, INNER_LENGTH)
|
2010-07-12 13:13:43 +00:00
|
|
|
|
%csmethodmodifiers Get##NAME() "private";
|
|
|
|
|
%newobject CLASS::Get##NAME;
|
2010-05-13 17:08:35 +00:00
|
|
|
|
%extend CLASS {
|
2010-07-12 13:13:43 +00:00
|
|
|
|
std::vector< std::vector<TYPE*> > *Get##NAME() {
|
|
|
|
|
std::vector< std::vector<TYPE*> > *result = new std::vector< std::vector<TYPE*> >;
|
2010-05-13 17:08:35 +00:00
|
|
|
|
result->reserve(OUTER_LENGTH);
|
|
|
|
|
|
|
|
|
|
for (unsigned int i = 0; i < OUTER_LENGTH; ++i) {
|
|
|
|
|
std::vector<TYPE *> currentElements;
|
|
|
|
|
|
|
|
|
|
if ($self->NAME[i] != 0) {
|
|
|
|
|
currentElements.reserve(INNER_LENGTH);
|
|
|
|
|
|
|
|
|
|
TYPE *currentValue = $self->NAME[i];
|
|
|
|
|
TYPE *valueLimit = $self->NAME[i] + INNER_LENGTH;
|
|
|
|
|
while (currentValue < valueLimit) {
|
|
|
|
|
currentElements.push_back(currentValue);
|
|
|
|
|
++currentValue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
result->push_back(currentElements);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
%ignore CLASS::NAME;
|
|
|
|
|
%enddef
|
|
|
|
|
|
2010-07-12 13:13:43 +00:00
|
|
|
|
%define ASSIMP_GETMATERIAL(XXX, KEY, TYPE, NAME)
|
|
|
|
|
%csmethodmodifiers Get##NAME() "private";
|
|
|
|
|
%newobject aiMaterial::Get##NAME;
|
|
|
|
|
%extend aiMaterial {
|
|
|
|
|
bool Get##NAME(TYPE* INOUT) {
|
2010-11-23 08:45:32 +00:00
|
|
|
|
return aiGetMaterial##XXX($self, KEY, INOUT) == AI_SUCCESS;
|
2010-07-12 13:13:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
%enddef
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/////// aiAnimation
|
|
|
|
|
ASSIMP_POINTER_POINTER(aiAnimation,aiNodeAnim,mChannels,$self->mNumChannels);
|
|
|
|
|
ASSIMP_POINTER_POINTER(aiAnimation,aiMeshAnim,mMeshChannels,$self->mNumMeshChannels);
|
|
|
|
|
%typemap(cscode) aiAnimation %{
|
|
|
|
|
public aiNodeAnimVector mChannels { get { return GetmChannels(); } }
|
|
|
|
|
public aiMeshAnimVector mMeshChannels { get { return GetmMeshChannels(); } }
|
|
|
|
|
%}
|
|
|
|
|
|
|
|
|
|
/////// aiAnimMesh
|
|
|
|
|
%ignore aiAnimMesh::mVertices;
|
|
|
|
|
%ignore aiAnimMesh::mNormals;
|
|
|
|
|
%ignore aiAnimMesh::mTangents;
|
|
|
|
|
%ignore aiAnimMesh::mColors;
|
|
|
|
|
%ignore aiAnimMesh::mTextureCoords;
|
|
|
|
|
|
|
|
|
|
/////// aiBone
|
|
|
|
|
ASSIMP_POINTER_ARRAY(aiBone,aiVertexWeight,mWeights,$self->mNumWeights);
|
|
|
|
|
|
|
|
|
|
/////// aiCamera
|
|
|
|
|
// OK
|
|
|
|
|
|
|
|
|
|
/////// aiColor3D
|
|
|
|
|
// OK
|
|
|
|
|
|
|
|
|
|
/////// aiColor4D
|
|
|
|
|
// OK
|
|
|
|
|
|
|
|
|
|
/////// aiFace
|
|
|
|
|
ASSIMP_ARRAY(aiFace,unsigned int,mIndices,$self->mNumIndices);
|
|
|
|
|
%typemap(cscode) aiFace %{
|
|
|
|
|
public UintVector mIndices { get { return GetmIndices(); } }
|
|
|
|
|
%}
|
|
|
|
|
|
|
|
|
|
/////// TODO: aiFile
|
|
|
|
|
%ignore aiFile;
|
|
|
|
|
%ignore aiFile::FileSizeProc;
|
|
|
|
|
%ignore aiFile::FlushProc;
|
|
|
|
|
%ignore aiFile::ReadProc;
|
|
|
|
|
%ignore aiFile::SeekProc;
|
|
|
|
|
%ignore aiFile::TellProc;
|
|
|
|
|
%ignore aiFile::WriteProc;
|
|
|
|
|
|
|
|
|
|
/////// TODO: aiFileIO
|
|
|
|
|
%ignore aiFileIO;
|
|
|
|
|
%ignore aiFileIO::CloseProc;
|
|
|
|
|
%ignore aiFileIO::OpenPrc;
|
|
|
|
|
|
|
|
|
|
/////// aiLight
|
|
|
|
|
// Done
|
|
|
|
|
|
|
|
|
|
/////// aiLightSourceType
|
|
|
|
|
// Done
|
|
|
|
|
|
|
|
|
|
/////// TODO: aiLogStream
|
|
|
|
|
%ignore aiLogStream;
|
|
|
|
|
%ignore aiLogStream::callback;
|
|
|
|
|
|
|
|
|
|
/////// aiMaterial
|
|
|
|
|
%ignore aiMaterial::Get;
|
|
|
|
|
%ignore aiMaterial::GetTexture;
|
|
|
|
|
%ignore aiMaterial::mNumAllocated;
|
|
|
|
|
%ignore aiMaterial::mNumProperties;
|
|
|
|
|
%ignore aiMaterial::mProperties;
|
|
|
|
|
ASSIMP_GETMATERIAL(Color, AI_MATKEY_COLOR_DIFFUSE, aiColor4D, Diffuse);
|
|
|
|
|
ASSIMP_GETMATERIAL(Color, AI_MATKEY_COLOR_SPECULAR, aiColor4D, Specular);
|
|
|
|
|
ASSIMP_GETMATERIAL(Color, AI_MATKEY_COLOR_AMBIENT, aiColor4D, Ambient);
|
|
|
|
|
ASSIMP_GETMATERIAL(Color, AI_MATKEY_COLOR_EMISSIVE, aiColor4D, Emissive);
|
|
|
|
|
ASSIMP_GETMATERIAL(Float, AI_MATKEY_OPACITY, float, Opacity);
|
|
|
|
|
ASSIMP_GETMATERIAL(Float, AI_MATKEY_SHININESS_STRENGTH, float, ShininessStrength);
|
|
|
|
|
ASSIMP_GETMATERIAL(Integer, AI_MATKEY_SHADING_MODEL, int, ShadingModel);
|
|
|
|
|
ASSIMP_GETMATERIAL(Integer, AI_MATKEY_TEXFLAGS_DIFFUSE(0), int, TexFlagsDiffuse0);
|
|
|
|
|
ASSIMP_GETMATERIAL(Integer, AI_MATKEY_MAPPINGMODE_U_DIFFUSE(0),int, MappingModeUDiffuse0);
|
|
|
|
|
ASSIMP_GETMATERIAL(Integer, AI_MATKEY_MAPPINGMODE_V_DIFFUSE(0),int, MappingModeVDiffuse0);
|
|
|
|
|
ASSIMP_GETMATERIAL(String, AI_MATKEY_TEXTURE_DIFFUSE(0), aiString, TextureDiffuse0);
|
|
|
|
|
ASSIMP_GETMATERIAL(String, AI_MATKEY_TEXTURE_SPECULAR(0), aiString, TextureSpecular0);
|
|
|
|
|
ASSIMP_GETMATERIAL(String, AI_MATKEY_TEXTURE_OPACITY(0), aiString, TextureOpacity0);
|
|
|
|
|
ASSIMP_GETMATERIAL(String, AI_MATKEY_TEXTURE_AMBIENT(0), aiString, TextureAmbient0);
|
|
|
|
|
ASSIMP_GETMATERIAL(String, AI_MATKEY_TEXTURE_EMISSIVE(0), aiString, TextureEmissive0);
|
|
|
|
|
ASSIMP_GETMATERIAL(String, AI_MATKEY_TEXTURE_SHININESS(0), aiString, TextureShininess0);
|
|
|
|
|
ASSIMP_GETMATERIAL(String, AI_MATKEY_TEXTURE_LIGHTMAP(0), aiString, TextureLightmap0);
|
|
|
|
|
ASSIMP_GETMATERIAL(String, AI_MATKEY_TEXTURE_NORMALS(0), aiString, TextureNormals0);
|
|
|
|
|
ASSIMP_GETMATERIAL(String, AI_MATKEY_TEXTURE_HEIGHT(0), aiString, TextureHeight0);
|
|
|
|
|
ASSIMP_GETMATERIAL(String, AI_MATKEY_GLOBAL_BACKGROUND_IMAGE, aiString, GlobalBackgroundImage);
|
|
|
|
|
ASSIMP_GETMATERIAL(Integer, AI_MATKEY_TWOSIDED, int, TwoSided);
|
|
|
|
|
%typemap(cscode) aiMaterial %{
|
|
|
|
|
public aiColor4D Diffuse { get { var v = new aiColor4D(); return GetDiffuse(v)?v:DefaultDiffuse; } }
|
|
|
|
|
public aiColor4D Specular { get { var v = new aiColor4D(); return GetSpecular(v)?v:DefaultSpecular; } }
|
|
|
|
|
public aiColor4D Ambient { get { var v = new aiColor4D(); return GetAmbient(v)?v:DefaultAmbient; } }
|
|
|
|
|
public aiColor4D Emissive { get { var v = new aiColor4D(); return GetEmissive(v)?v:DefaultEmissive; } }
|
|
|
|
|
public float Opacity { get { float v = 0; return GetOpacity(ref v)?v:DefaultOpacity; } }
|
|
|
|
|
public float ShininessStrength { get { float v = 0; return GetShininessStrength(ref v)?v:DefaultShininessStrength; } }
|
|
|
|
|
public aiShadingMode ShadingModel { get { int v = 0; return GetShadingModel(ref v)?((aiShadingMode)v):DefaultShadingModel; } }
|
|
|
|
|
public aiTextureFlags TexFlagsDiffuse0 { get { int v = 0; return GetTexFlagsDiffuse0(ref v)?((aiTextureFlags)v):DefaultTexFlagsDiffuse0; } }
|
|
|
|
|
public aiTextureMapMode MappingModeUDiffuse0 { get { int v = 0; return GetMappingModeUDiffuse0(ref v)?((aiTextureMapMode)v):DefaultMappingModeUDiffuse0; } }
|
|
|
|
|
public aiTextureMapMode MappingModeVDiffuse0 { get { int v = 0; return GetMappingModeVDiffuse0(ref v)?((aiTextureMapMode)v):DefaultMappingModeVDiffuse0; } }
|
|
|
|
|
public string TextureDiffuse0 { get { var v = new aiString(); return GetTextureDiffuse0(v)?v.ToString():DefaultTextureDiffuse; } }
|
|
|
|
|
public bool TwoSided { get { int v = 0; return GetTwoSided(ref v)?(v!=0):DefaultTwoSided; } }
|
|
|
|
|
|
|
|
|
|
// These values are returned if the value material property isn't set
|
|
|
|
|
// Override these if you don't want to check for null
|
|
|
|
|
public static aiColor4D DefaultDiffuse = new aiColor4D(1.0f, 1.0f, 1.0f, 1.0f);
|
|
|
|
|
public static aiColor4D DefaultSpecular = new aiColor4D(1.0f, 1.0f, 1.0f, 1.0f);
|
|
|
|
|
public static aiColor4D DefaultAmbient = new aiColor4D(0.0f, 0.0f, 0.0f, 1.0f);
|
|
|
|
|
public static aiColor4D DefaultEmissive = new aiColor4D(0.0f, 0.0f, 0.0f, 1.0f);
|
|
|
|
|
public static float DefaultShininessStrength = 1.0f;
|
|
|
|
|
public static float DefaultOpacity = 1.0f;
|
|
|
|
|
public static aiShadingMode DefaultShadingModel = (aiShadingMode)0;
|
|
|
|
|
public static aiTextureFlags DefaultTexFlagsDiffuse0 = (aiTextureFlags)0;
|
|
|
|
|
public static aiTextureMapMode DefaultMappingModeUDiffuse0 = aiTextureMapMode.aiTextureMapMode_Wrap;
|
|
|
|
|
public static aiTextureMapMode DefaultMappingModeVDiffuse0 = aiTextureMapMode.aiTextureMapMode_Wrap;
|
|
|
|
|
public static string DefaultTextureDiffuse = null;
|
|
|
|
|
public static bool DefaultTwoSided = false;
|
|
|
|
|
%}
|
|
|
|
|
|
|
|
|
|
/////// aiMatrix3x3
|
|
|
|
|
%ignore aiMatrix3x3::operator!=;
|
|
|
|
|
%ignore aiMatrix3x3::operator*;
|
|
|
|
|
%ignore aiMatrix3x3::operator*=;
|
|
|
|
|
%ignore aiMatrix3x3::operator==;
|
|
|
|
|
%ignore aiMatrix3x3::operator[];
|
|
|
|
|
|
|
|
|
|
/////// aiMatrix4x4
|
|
|
|
|
%ignore aiMatrix4x4::operator!=;
|
|
|
|
|
%ignore aiMatrix4x4::operator*;
|
|
|
|
|
%ignore aiMatrix4x4::operator*=;
|
|
|
|
|
%ignore aiMatrix4x4::operator==;
|
|
|
|
|
%ignore aiMatrix4x4::operator[];
|
|
|
|
|
|
|
|
|
|
/////// aiMesh
|
|
|
|
|
ASSIMP_POINTER_POINTER(aiMesh,aiAnimMesh,mAnimMeshes,$self->mNumAnimMeshes);
|
|
|
|
|
ASSIMP_POINTER_ARRAY(aiMesh,aiVector3D,mBitangents,$self->mNumVertices);
|
|
|
|
|
ASSIMP_POINTER_POINTER(aiMesh,aiBone,mBones,$self->mNumBones);
|
|
|
|
|
ASSIMP_POINTER_ARRAY_ARRAY(aiMesh,aiColor4D,mColors,AI_MAX_NUMBER_OF_COLOR_SETS,$self->mNumVertices);
|
|
|
|
|
ASSIMP_POINTER_ARRAY(aiMesh,aiFace,mFaces,$self->mNumFaces);
|
|
|
|
|
ASSIMP_POINTER_ARRAY(aiMesh,aiVector3D,mNormals,$self->mNumVertices);
|
|
|
|
|
ASSIMP_POINTER_ARRAY(aiMesh,aiVector3D,mTangents,$self->mNumVertices);
|
|
|
|
|
ASSIMP_POINTER_ARRAY_ARRAY(aiMesh,aiVector3D,mTextureCoords,AI_MAX_NUMBER_OF_TEXTURECOORDS,$self->mNumVertices);
|
|
|
|
|
ASSIMP_ARRAY(aiMesh,unsigned int,mNumUVComponents,AI_MAX_NUMBER_OF_TEXTURECOORDS);
|
|
|
|
|
ASSIMP_POINTER_ARRAY(aiMesh,aiVector3D,mVertices,$self->mNumVertices);
|
|
|
|
|
%typemap(cstype) unsigned int mPrimitiveTypes "aiPrimitiveType";
|
|
|
|
|
%typemap(csin) unsigned int mPrimitiveTypes "(uint)$csinput";
|
|
|
|
|
%typemap(csvarout) unsigned int mPrimitiveTypes %{ get { return (aiPrimitiveType)$imcall; } %}
|
|
|
|
|
%typemap(cscode) aiMesh %{
|
|
|
|
|
public aiVector3DVector mBitangents { get { return GetmBitangents(); } }
|
|
|
|
|
public aiBoneVector mBones { get { return GetmBones(); } }
|
|
|
|
|
public aiColor4DVectorVector mColors { get { return GetmColors(); } }
|
|
|
|
|
public aiFaceVector mFaces { get { return GetmFaces(); } }
|
|
|
|
|
public aiVector3DVector mNormals { get { return GetmNormals(); } }
|
|
|
|
|
public aiVector3DVector mTangents { get { return GetmTangents(); } }
|
|
|
|
|
public aiVector3DVectorVector mTextureCoords { get { return GetmTextureCoords(); } }
|
|
|
|
|
public aiVector3DVector mVertices { get { return GetmVertices(); } }
|
|
|
|
|
%}
|
|
|
|
|
|
|
|
|
|
/////// aiMeshAnim
|
|
|
|
|
ASSIMP_POINTER_ARRAY(aiMeshAnim,aiMeshKey,mKeys,$self->mNumKeys);
|
|
|
|
|
%typemap(cscode) aiMeshAnim %{
|
|
|
|
|
public aiMeshKeyVector mKeys { get { return GetmKeys(); } }
|
|
|
|
|
%}
|
|
|
|
|
|
|
|
|
|
/////// aiMeshKey
|
|
|
|
|
// Done
|
|
|
|
|
|
|
|
|
|
/////// aiNode
|
|
|
|
|
ASSIMP_POINTER_POINTER(aiNode,aiNode,mChildren,$self->mNumChildren);
|
|
|
|
|
ASSIMP_ARRAY(aiNode,unsigned int,mMeshes,$self->mNumMeshes);
|
|
|
|
|
%typemap(cscode) aiNode %{
|
|
|
|
|
public aiNodeVector mChildren { get { return GetmChildren(); } }
|
|
|
|
|
public UintVector mMeshes { get { return GetmMeshes(); } }
|
|
|
|
|
%}
|
|
|
|
|
|
|
|
|
|
/////// aiNodeAnim
|
|
|
|
|
ASSIMP_POINTER_ARRAY(aiNodeAnim,aiVectorKey,mPositionKeys,$self->mNumPositionKeys);
|
|
|
|
|
ASSIMP_POINTER_ARRAY(aiNodeAnim,aiQuatKey,mRotationKeys,$self->mNumRotationKeys);
|
|
|
|
|
ASSIMP_POINTER_ARRAY(aiNodeAnim,aiVectorKey,mScalingKeys,$self->mNumScalingKeys);
|
|
|
|
|
%typemap(cscode) aiNodeAnim %{
|
|
|
|
|
public aiVectorKeyVector mPositionKeys { get { return GetmPositionKeys(); } }
|
|
|
|
|
public aiQuatKeyVector mRotationKeys { get { return GetmRotationKeys(); } }
|
|
|
|
|
public aiVectorKeyVector mScalingKeys { get { return GetmScalingKeys(); } }
|
|
|
|
|
%}
|
|
|
|
|
|
|
|
|
|
/////// aiPlane
|
|
|
|
|
// Done
|
|
|
|
|
|
|
|
|
|
/////// aiPostProcessSteps
|
|
|
|
|
%typemap(cscode) aiPostProcessSteps %{
|
|
|
|
|
, aiProcess_ConvertToLeftHanded = aiProcess_MakeLeftHanded|aiProcess_FlipUVs|aiProcess_FlipWindingOrder,
|
|
|
|
|
%}
|
|
|
|
|
|
|
|
|
|
/////// aiQuaternion
|
|
|
|
|
// Done
|
|
|
|
|
|
|
|
|
|
/////// aiQuatKey
|
|
|
|
|
// Done
|
|
|
|
|
|
|
|
|
|
/////// aiRay
|
|
|
|
|
// Done
|
|
|
|
|
|
|
|
|
|
/////// aiScene
|
|
|
|
|
ASSIMP_POINTER_POINTER(aiScene,aiAnimation,mAnimations,$self->mNumAnimations);
|
|
|
|
|
ASSIMP_POINTER_POINTER(aiScene,aiCamera,mCameras,$self->mNumCameras);
|
|
|
|
|
ASSIMP_POINTER_POINTER(aiScene,aiLight,mLights,$self->mNumLights);
|
|
|
|
|
ASSIMP_POINTER_POINTER(aiScene,aiMaterial,mMaterials,$self->mNumMaterials);
|
|
|
|
|
ASSIMP_POINTER_POINTER(aiScene,aiMesh,mMeshes,$self->mNumMeshes);
|
|
|
|
|
ASSIMP_POINTER_POINTER(aiScene,aiTexture,mTextures,$self->mNumTextures);
|
|
|
|
|
%typemap(cscode) aiScene %{
|
|
|
|
|
public aiAnimationVector mAnimations { get { return GetmAnimations(); } }
|
|
|
|
|
public aiCameraVector mCameras { get { return GetmCameras(); } }
|
|
|
|
|
public aiLightVector mLights { get { return GetmLights(); } }
|
|
|
|
|
public aiMaterialVector mMaterials { get { return GetmMaterials(); } }
|
|
|
|
|
public aiMeshVector mMeshes { get { return GetmMeshes(); } }
|
|
|
|
|
public aiTextureVector mTextures { get { return GetmTextures(); } }
|
|
|
|
|
%}
|
|
|
|
|
|
|
|
|
|
/////// aiString
|
|
|
|
|
%ignore aiString::Append;
|
|
|
|
|
%ignore aiString::Clear;
|
|
|
|
|
%ignore aiString::Set;
|
|
|
|
|
%rename(Data) aiString::data;
|
|
|
|
|
%rename(Length) aiString::length;
|
|
|
|
|
%typemap(cscode) aiString %{
|
|
|
|
|
public override string ToString() { return Data; }
|
|
|
|
|
%}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/////// aiTexel
|
|
|
|
|
// Done
|
|
|
|
|
|
|
|
|
|
/////// TODO: aiTexture
|
|
|
|
|
%ignore aiString::achFormatHint;
|
|
|
|
|
%ignore aiString::pcData;
|
|
|
|
|
|
|
|
|
|
/////// aiUVTransform
|
|
|
|
|
// Done
|
|
|
|
|
|
|
|
|
|
/////// aiVector2D
|
|
|
|
|
// Done
|
|
|
|
|
|
|
|
|
|
/////// aiVector3D
|
|
|
|
|
// Done
|
|
|
|
|
|
|
|
|
|
/////// aiVectorKey
|
|
|
|
|
// Done
|
|
|
|
|
|
|
|
|
|
/////// aiVertexWeight
|
|
|
|
|
// Done
|
|
|
|
|
|
|
|
|
|
/////// Assimp::*
|
|
|
|
|
%ignore Assimp::IOStream;
|
|
|
|
|
%ignore Assimp::IOSystem;
|
|
|
|
|
%ignore Assimp::Importer::ApplyPostProcessing;
|
|
|
|
|
%ignore Assimp::Importer::FindLoader;
|
|
|
|
|
%ignore Assimp::Importer::GetIOHandler;
|
|
|
|
|
%ignore Assimp::Importer::GetExtensionList(std::string&);
|
|
|
|
|
%ignore Assimp::Importer::GetExtensionList(aiString&);
|
|
|
|
|
%ignore Assimp::Importer::ReadFileFromMemory;
|
|
|
|
|
%ignore Assimp::Importer::RegisterLoader;
|
|
|
|
|
%ignore Assimp::Importer::RegisterPPStep;
|
|
|
|
|
%ignore Assimp::Importer::SetIOHandler;
|
|
|
|
|
%ignore Assimp::Importer::SetPropertyInteger;
|
|
|
|
|
%ignore Assimp::Importer::SetPropertyFloat;
|
|
|
|
|
%ignore Assimp::Importer::SetPropertyString;
|
2010-08-06 18:41:05 +00:00
|
|
|
|
%ignore Assimp::Importer::SetPropertyBool;
|
2010-07-12 13:13:43 +00:00
|
|
|
|
%ignore Assimp::Importer::UnregisterLoader;
|
|
|
|
|
%ignore Assimp::Importer::UnregisterPPStep;
|
|
|
|
|
%extend Assimp::Importer {
|
|
|
|
|
std::string GetExtensionList() {
|
|
|
|
|
std::string tmp;
|
|
|
|
|
$self->GetExtensionList(tmp);
|
|
|
|
|
return tmp;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
%typemap(cstype) unsigned int pFlags "aiPostProcessSteps";
|
|
|
|
|
%typemap(csin) unsigned int pFlags "(uint)$csinput"
|
|
|
|
|
%typemap(csvarout) unsigned int pFlags %{ get { return (aiPostProcessSteps)$imcall; } %}
|
|
|
|
|
%ignore Assimp::Logger;
|
|
|
|
|
%ignore Assimp::NullLogger;
|
|
|
|
|
|
|
|
|
|
/////// Globals
|
|
|
|
|
%ignore ::aiImportFileEx;
|
|
|
|
|
%ignore ::aiImportFileEx;
|
|
|
|
|
%ignore ::aiGetMaterialProperty;
|
|
|
|
|
%ignore ::aiGetMaterialFloatArray;
|
|
|
|
|
%ignore ::aiGetMaterialFloat;
|
|
|
|
|
%ignore ::aiGetMaterialIntegerArray;
|
|
|
|
|
%ignore ::aiGetMaterialInteger;
|
|
|
|
|
%ignore ::aiGetMaterialColor;
|
|
|
|
|
%ignore ::aiGetMaterialString;
|
|
|
|
|
%ignore ::aiGetMaterialTextureCount;
|
|
|
|
|
%ignore ::aiGetMaterialTexture;
|
|
|
|
|
|
2010-03-01 20:57:09 +00:00
|
|
|
|
|
2012-11-03 02:49:19 +00:00
|
|
|
|
%include "..\..\..\include\assimp\defs.h"
|
|
|
|
|
%include "..\..\..\include\assimp\config.h"
|
|
|
|
|
%include "..\..\..\include\assimp\types.h"
|
|
|
|
|
%include "..\..\..\include\assimp\version.h"
|
|
|
|
|
%include "..\..\..\include\assimp\postprocess.h"
|
|
|
|
|
%include "..\..\..\include\assimp\vector2.h"
|
|
|
|
|
%include "..\..\..\include\assimp\vector3.h"
|
|
|
|
|
%include "..\..\..\include\assimp\color4.h"
|
|
|
|
|
%include "..\..\..\include\assimp\matrix3x3.h"
|
|
|
|
|
%include "..\..\..\include\assimp\matrix4x4.h"
|
|
|
|
|
%include "..\..\..\include\assimp\camera.h"
|
|
|
|
|
%include "..\..\..\include\assimp\light.h"
|
|
|
|
|
%include "..\..\..\include\assimp\anim.h"
|
|
|
|
|
%include "..\..\..\include\assimp\mesh.h"
|
|
|
|
|
%include "..\..\..\include\assimp\cfileio.h"
|
|
|
|
|
%include "..\..\..\include\assimp\material.h"
|
|
|
|
|
%include "..\..\..\include\assimp\quaternion.h"
|
|
|
|
|
%include "..\..\..\include\assimp\scene.h"
|
|
|
|
|
%include "..\..\..\include\assimp\texture.h"
|
|
|
|
|
%include "..\..\..\include\assimp\Importer.hpp"
|
|
|
|
|
%include "..\..\..\include\assimp\ProgressHandler.hpp"
|
2010-07-12 13:13:43 +00:00
|
|
|
|
//%include "..\..\..\include\IOSystem.h"
|
|
|
|
|
//%include "..\..\..\include\IOStream.h"
|
|
|
|
|
//%include "..\..\..\include\Logger.h"
|
|
|
|
|
//%include "..\..\..\include\LogStream.h"
|
|
|
|
|
//%include "..\..\..\include\NullLogger.h"
|
2010-03-01 20:57:09 +00:00
|
|
|
|
|
2012-11-03 02:49:19 +00:00
|
|
|
|
|
|
|
|
|
%template(aiColor4D) aiColor4t<float>;
|
|
|
|
|
|
|
|
|
|
%template(aiVector3D) aiVector3t<float>;
|
|
|
|
|
%template(aiVector2D) aiVector2t<float>;
|
|
|
|
|
|
|
|
|
|
%template(aiQuaternion) aiQuaterniont<float>;
|
|
|
|
|
%template(aiMatrix3x3) aiMatrix3x3t<float>;
|
|
|
|
|
%template(aiMatrix4x4) aiMatrix4x4t<float>;
|
|
|
|
|
|
2010-07-12 13:13:43 +00:00
|
|
|
|
%template(FloatVector) std::vector<float>;
|
2010-05-13 17:08:35 +00:00
|
|
|
|
%template(UintVector) std::vector<unsigned int>;
|
|
|
|
|
%template(aiAnimationVector) std::vector<aiAnimation *>;
|
2010-07-12 13:13:43 +00:00
|
|
|
|
%template(aiAnimMeshVector) std::vector<aiAnimMesh *>;
|
|
|
|
|
%template(aiBoneVector) std::vector<aiBone *>;
|
2010-05-13 17:08:35 +00:00
|
|
|
|
%template(aiCameraVector) std::vector<aiCamera *>;
|
|
|
|
|
%template(aiColor4DVectorVector) std::vector<std::vector<aiColor4D *> >;
|
2010-07-12 13:13:43 +00:00
|
|
|
|
%template(aiColor4DVector) std::vector<aiColor4D *>;
|
2010-05-13 17:08:35 +00:00
|
|
|
|
%template(aiFaceVector) std::vector<aiFace *>;
|
|
|
|
|
%template(aiLightVector) std::vector<aiLight *>;
|
|
|
|
|
%template(aiMaterialVector) std::vector<aiMaterial *>;
|
2010-07-12 13:13:43 +00:00
|
|
|
|
%template(aiMeshAnimVector) std::vector<aiMeshAnim *>;
|
|
|
|
|
%template(aiMeshKeyVector) std::vector<aiMeshKey *>;
|
2010-05-13 17:08:35 +00:00
|
|
|
|
%template(aiMeshVector) std::vector<aiMesh *>;
|
|
|
|
|
%template(aiNodeVector) std::vector<aiNode *>;
|
|
|
|
|
%template(aiNodeAnimVector) std::vector<aiNodeAnim *>;
|
2010-07-12 13:13:43 +00:00
|
|
|
|
%template(aiQuatKeyVector) std::vector<aiQuatKey *>;
|
2010-05-13 17:08:35 +00:00
|
|
|
|
%template(aiTextureVector) std::vector<aiTexture *>;
|
|
|
|
|
%template(aiVector3DVector) std::vector<aiVector3D *>;
|
|
|
|
|
%template(aiVector3DVectorVector) std::vector<std::vector<aiVector3D *> >;
|
2010-07-12 13:13:43 +00:00
|
|
|
|
%template(aiVectorKeyVector) std::vector<aiVectorKey *>;
|
|
|
|
|
%template(aiVertexWeightVector) std::vector<aiVertexWeight *>;
|
2010-03-01 20:57:09 +00:00
|
|
|
|
|