From 52a5ff2db2fc67f6a719aee44794a860dd5947ee Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Wed, 15 Apr 2015 01:18:20 +0200 Subject: [PATCH 01/62] Update IFC entries in regression database. --- test/regression/db.zip | Bin 1466985 -> 1466916 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/regression/db.zip b/test/regression/db.zip index 42cf9d5a78c8b5318574c5200dd942bda4010553..6c1358d154be49de66aeb36463a6e980d662610e 100644 GIT binary patch delta 119733 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 From 03ea0652710023c9e2ac0a5f6ee95d15cf47114f Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Wed, 15 Apr 2015 01:20:58 +0200 Subject: [PATCH 02/62] Ignore Example.ogex for regression tests. OpenGEX importer is flaky and outputs nodes in different order each time. --- test/regression/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/regression/settings.py b/test/regression/settings.py index 77570ff52..db0407809 100644 --- a/test/regression/settings.py +++ b/test/regression/settings.py @@ -53,7 +53,7 @@ import os # pond.0.ply - loads with 40k identical triangles, causing postprocessing # to have quadratic runtime. # ------------------------------------------------------------------------------- -files_to_ignore = ["pond.0.ply"] +files_to_ignore = ["pond.0.ply", "Example.ogex"] # ------------------------------------------------------------------------------- # List of file extensions to be excluded from the regression suite From acef8198e03ae56ea813a53f1763d67f4e1e3a7b Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Wed, 15 Apr 2015 01:22:29 +0200 Subject: [PATCH 03/62] Add whitelist of expected regression suite failures. --- ..._regression_suite_failures_whitelisted.csv | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 test/regression/run_regression_suite_failures_whitelisted.csv diff --git a/test/regression/run_regression_suite_failures_whitelisted.csv b/test/regression/run_regression_suite_failures_whitelisted.csv new file mode 100644 index 000000000..2237268d1 --- /dev/null +++ b/test/regression/run_regression_suite_failures_whitelisted.csv @@ -0,0 +1,31 @@ +ORIGINAL FILE;EXPECTED DUMP +../models/AC/SphereWithLightUvScaling4X.ac -cfull;../results/tmp/SphereWithLightUvScaling4X.ac_30edbbcd/EXPECT +../models/AC/SphereWithLightUvScaling4X.ac -vds -jiv;../results/tmp/SphereWithLightUvScaling4X.ac_a627320a/EXPECT +../models/AC/sample_subdiv.ac -cfull;../results/tmp/sample_subdiv.ac_669c529e/EXPECT +../models/AC/sample_subdiv.ac -vds -jiv;../results/tmp/sample_subdiv.ac_d5987f9/EXPECT +../models/BLEND/CubeHierarchy_248.blend -cfull;../results/tmp/CubeHierarchy_248.blend_4e04cc99/EXPECT +../models/BLEND/CubeHierarchy_248.blend -og -om -vds;../results/tmp/CubeHierarchy_248.blend_5e78ea9c/EXPECT +../models/BLEND/CubeHierarchy_248.blend -vds -jiv;../results/tmp/CubeHierarchy_248.blend_8aca7a3e/EXPECT +../models/BLEND/CubeHierarchy_248.blend -ptv -gsn -cts -db;../results/tmp/CubeHierarchy_248.blend_1f2b8aa4/EXPECT +../models/BLEND/CubeHierarchy_248.blend ;../results/tmp/CubeHierarchy_248.blend_b827f814/EXPECT +../models/BLEND/SuzanneSubdiv_252.blend -cfull;../results/tmp/SuzanneSubdiv_252.blend_4a8dd3d3/EXPECT +../models/BLEND/SuzanneSubdiv_252.blend -vds -jiv;../results/tmp/SuzanneSubdiv_252.blend_7f41fe84/EXPECT +../models/STL/Spider_ascii.stl -cfull;../results/tmp/Spider_ascii.stl_8047fd91/EXPECT +../models/STL/Spider_ascii.stl -vds -jiv;../results/tmp/Spider_ascii.stl_d4858346/EXPECT +../models/STL/Spider_binary.stl -cfull;../results/tmp/Spider_binary.stl_dd4fe21/EXPECT +../models/STL/Spider_binary.stl -vds -jiv;../results/tmp/Spider_binary.stl_2c8deeb6/EXPECT +../models-nonbsd/BLEND/Bob.blend -cfull;../results/tmp/Bob.blend_7f8349ba/EXPECT +../models-nonbsd/BLEND/Bob.blend -og -om -vds;../results/tmp/Bob.blend_4f4a63d/EXPECT +../models-nonbsd/BLEND/Bob.blend -vds -jiv;../results/tmp/Bob.blend_ab1aa5dd/EXPECT +../models-nonbsd/BLEND/Bob.blend -ptv -gsn -cts -db;../results/tmp/Bob.blend_6a5ec4c5/EXPECT +../models-nonbsd/BLEND/Bob.blend ;../results/tmp/Bob.blend_2fc376b5/EXPECT +../models-nonbsd/BLEND/fleurOptonl.blend -cfull;../results/tmp/fleurOptonl.blend_6e87e039/EXPECT +../models-nonbsd/BLEND/fleurOptonl.blend -og -om -vds;../results/tmp/fleurOptonl.blend_95048e3c/EXPECT +../models-nonbsd/BLEND/fleurOptonl.blend -vds -jiv;../results/tmp/fleurOptonl.blend_52481e9e/EXPECT +../models-nonbsd/BLEND/fleurOptonl.blend -ptv -gsn -cts -db;../results/tmp/fleurOptonl.blend_5e7be44/EXPECT +../models-nonbsd/BLEND/fleurOptonl.blend ;../results/tmp/fleurOptonl.blend_18ca7bb4/EXPECT +../models-nonbsd/LWS/QuickDraw v.2.2_oldformat_56.lws -ptv -gsn -cts -db;../results/tmp/QuickDraw v.2.2_oldformat_56.lws_da6fa6e2/EXPECT +../models-nonbsd/LWS/QuickDraw v.2.2_oldformat_56.lws ;../results/tmp/QuickDraw v.2.2_oldformat_56.lws_d37dcb52/EXPECT +../models-nonbsd/Ogre/OgreSDK/ninja.mesh.xml -cfull;../results/tmp/ninja.mesh.xml_2a5e7eb6/EXPECT +../models-nonbsd/PK3/SGDTT3.pk3 -ptv -gsn -cts -db;../results/tmp/SGDTT3.pk3_591f74f1/EXPECT +../models-nonbsd/PK3/SGDTT3.pk3 ;../results/tmp/SGDTT3.pk3_ad4b2ce1/EXPECT From c90e209cf204f0294d92e63a1df7fc2e80352264 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Wed, 15 Apr 2015 01:24:48 +0200 Subject: [PATCH 04/62] Add regression diff check to travis. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 20b7a058a..f7cef7948 100644 --- a/.travis.yml +++ b/.travis.yml @@ -58,4 +58,5 @@ script: echo "==========================================================" ; echo "REGRESSION TEST FAILS (results/run_regression_suite_failures.csv)" ; cat ../results/run_regression_suite_failures.csv; + diff ../results/run_regression_suite_failures.csv ../regression/run_regression_suite_failures_whitelisted.csv fi From b66e9acd724d1f188392cc7a0e6c3b6fa29ade1e Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Thu, 16 Apr 2015 12:37:49 +0200 Subject: [PATCH 05/62] Delete old Assimp.NET code and replace by a link to assimp-net, which is now the preferred way of using assimp from .net. --- port/Assimp.NET/Assimp.NET.sln | 275 - port/Assimp.NET/Assimp.NET/Assimp.NET.vcproj | 237 - port/Assimp.NET/Assimp.NET/AssimpSwigPort.i | 567 - .../Assimp.NET/AssimpSwigPort_wrap.cxx | 21287 ---------------- .../Assimp.NET_CS/Assimp.NET_CS.csproj | 176 - port/Assimp.NET/Assimp.NET_CS/Assimp.cs | 137 - .../Assimp.NET/Assimp.NET_CS/AssimpPINVOKE.cs | 3976 --- port/Assimp.NET/Assimp.NET_CS/FloatVector.cs | 346 - port/Assimp.NET/Assimp.NET_CS/Importer.cs | 206 - .../Assimp.NET_CS/ProgressHandler.cs | 53 - .../SWIGTYPE_p_Assimp__BaseImporter.cs | 27 - .../SWIGTYPE_p_Assimp__ImporterPimpl.cs | 27 - .../SWIGTYPE_p_aiImporterDesc.cs | 27 - .../Assimp.NET_CS/SWIGTYPE_p_float.cs | 27 - .../Assimp.NET_CS/SWIGTYPE_p_std__string.cs | 27 - .../Assimp.NET_CS/SWIGTYPE_p_void.cs | 27 - port/Assimp.NET/Assimp.NET_CS/UintVector.cs | 346 - .../Assimp.NET_CS/aiAnimBehaviour.cs | 15 - port/Assimp.NET/Assimp.NET_CS/aiAnimMesh.cs | 92 - .../Assimp.NET_CS/aiAnimMeshVector.cs | 348 - port/Assimp.NET/Assimp.NET_CS/aiAnimation.cs | 112 - .../Assimp.NET_CS/aiAnimationVector.cs | 348 - port/Assimp.NET/Assimp.NET_CS/aiBlendMode.cs | 13 - port/Assimp.NET/Assimp.NET_CS/aiBone.cs | 88 - port/Assimp.NET/Assimp.NET_CS/aiBoneVector.cs | 348 - port/Assimp.NET/Assimp.NET_CS/aiCamera.cs | 135 - .../Assimp.NET_CS/aiCameraVector.cs | 348 - port/Assimp.NET/Assimp.NET_CS/aiColor3D.cs | 131 - port/Assimp.NET/Assimp.NET_CS/aiColor4D.cs | 140 - .../Assimp.NET_CS/aiColor4DVector.cs | 348 - .../Assimp.NET_CS/aiColor4DVectorVector.cs | 327 - port/Assimp.NET/Assimp.NET_CS/aiComponent.cs | 22 - .../Assimp.NET_CS/aiDefaultLogStream.cs | 16 - port/Assimp.NET/Assimp.NET_CS/aiFace.cs | 86 - port/Assimp.NET/Assimp.NET_CS/aiFaceVector.cs | 348 - port/Assimp.NET/Assimp.NET_CS/aiFile.cs | 122 - port/Assimp.NET/Assimp.NET_CS/aiFileIO.cs | 78 - port/Assimp.NET/Assimp.NET_CS/aiLight.cs | 172 - .../Assimp.NET_CS/aiLightSourceType.cs | 15 - .../Assimp.NET/Assimp.NET_CS/aiLightVector.cs | 348 - port/Assimp.NET/Assimp.NET_CS/aiMaterial.cs | 227 - .../Assimp.NET_CS/aiMaterialProperty.cs | 107 - .../Assimp.NET_CS/aiMaterialVector.cs | 348 - port/Assimp.NET/Assimp.NET_CS/aiMatrix3x3.cs | 212 - port/Assimp.NET/Assimp.NET_CS/aiMatrix4x4.cs | 326 - port/Assimp.NET/Assimp.NET_CS/aiMemoryInfo.cs | 126 - port/Assimp.NET/Assimp.NET_CS/aiMesh.cs | 227 - port/Assimp.NET/Assimp.NET_CS/aiMeshAnim.cs | 75 - .../Assimp.NET_CS/aiMeshAnimVector.cs | 348 - port/Assimp.NET/Assimp.NET_CS/aiMeshKey.cs | 93 - .../Assimp.NET_CS/aiMeshKeyVector.cs | 348 - port/Assimp.NET/Assimp.NET_CS/aiMeshVector.cs | 348 - port/Assimp.NET/Assimp.NET_CS/aiNode.cs | 131 - port/Assimp.NET/Assimp.NET_CS/aiNodeAnim.cs | 129 - .../Assimp.NET_CS/aiNodeAnimVector.cs | 348 - port/Assimp.NET/Assimp.NET_CS/aiNodeVector.cs | 348 - port/Assimp.NET/Assimp.NET_CS/aiOrigin.cs | 15 - port/Assimp.NET/Assimp.NET_CS/aiPlane.cs | 93 - .../Assimp.NET_CS/aiPostProcessSteps.cs | 39 - .../Assimp.NET_CS/aiPrimitiveType.cs | 15 - .../Assimp.NET_CS/aiPropertyTypeInfo.cs | 15 - port/Assimp.NET/Assimp.NET_CS/aiQuatKey.cs | 95 - .../Assimp.NET_CS/aiQuatKeyVector.cs | 348 - port/Assimp.NET/Assimp.NET_CS/aiQuaternion.cs | 148 - port/Assimp.NET/Assimp.NET_CS/aiRay.cs | 76 - port/Assimp.NET/Assimp.NET_CS/aiReturn.cs | 15 - port/Assimp.NET/Assimp.NET_CS/aiScene.cs | 211 - .../Assimp.NET/Assimp.NET_CS/aiShadingMode.cs | 21 - port/Assimp.NET/Assimp.NET_CS/aiString.cs | 98 - port/Assimp.NET/Assimp.NET_CS/aiTexel.cs | 98 - port/Assimp.NET/Assimp.NET_CS/aiTexture.cs | 92 - .../Assimp.NET_CS/aiTextureFlags.cs | 14 - .../Assimp.NET_CS/aiTextureMapMode.cs | 15 - .../Assimp.NET_CS/aiTextureMapping.cs | 17 - port/Assimp.NET/Assimp.NET_CS/aiTextureOp.cs | 17 - .../Assimp.NET/Assimp.NET_CS/aiTextureType.cs | 24 - .../Assimp.NET_CS/aiTextureVector.cs | 348 - .../Assimp.NET/Assimp.NET_CS/aiUVTransform.cs | 78 - port/Assimp.NET/Assimp.NET_CS/aiVector2D.cs | 145 - port/Assimp.NET/Assimp.NET_CS/aiVector3D.cs | 162 - .../Assimp.NET_CS/aiVector3DVector.cs | 348 - .../Assimp.NET_CS/aiVector3DVectorVector.cs | 327 - port/Assimp.NET/Assimp.NET_CS/aiVectorKey.cs | 95 - .../Assimp.NET_CS/aiVectorKeyVector.cs | 348 - .../Assimp.NET_CS/aiVertexWeight.cs | 69 - .../Assimp.NET_CS/aiVertexWeightVector.cs | 348 - port/Assimp.NET/Assimp.NET_CS/app.config | 3 - .../Assimp.NET_DEMO/Assimp.NET_DEMO.csproj | 172 - .../Assimp.NET_DEMO.csproj.user | 18 - .../Assimp.NET_DEMO/AssimpView.Designer.cs | 90 - port/Assimp.NET/Assimp.NET_DEMO/AssimpView.cs | 496 - .../Assimp.NET_DEMO/AssimpView.resx | 120 - port/Assimp.NET/Assimp.NET_DEMO/Camera.cs | 100 - port/Assimp.NET/Assimp.NET_DEMO/Display.cs | 2314 -- .../Assimp.NET_DEMO/ExtensionMethods.cs | 70 - port/Assimp.NET/Assimp.NET_DEMO/Input.cs | 390 - port/Assimp.NET/Assimp.NET_DEMO/Program.cs | 62 - .../Properties/AssemblyInfo.cs | 36 - .../Properties/Resources.Designer.cs | 63 - .../Assimp.NET_DEMO/Properties/Resources.resx | 117 - .../Properties/Settings.Designer.cs | 26 - .../Properties/Settings.settings | 7 - port/Assimp.NET/Assimp.NET_DEMO/app.config | 3 - port/Assimp.NET/CSharpViewerScreenShot.PNG | Bin 304642 -> 0 bytes port/Assimp.NET/README.txt | 58 - port/AssimpNET/Readme.md | 1 + 106 files changed, 1 insertion(+), 43388 deletions(-) delete mode 100644 port/Assimp.NET/Assimp.NET.sln delete mode 100644 port/Assimp.NET/Assimp.NET/Assimp.NET.vcproj delete mode 100644 port/Assimp.NET/Assimp.NET/AssimpSwigPort.i delete mode 100644 port/Assimp.NET/Assimp.NET/AssimpSwigPort_wrap.cxx delete mode 100644 port/Assimp.NET/Assimp.NET_CS/Assimp.NET_CS.csproj delete mode 100644 port/Assimp.NET/Assimp.NET_CS/Assimp.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/AssimpPINVOKE.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/FloatVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/Importer.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/ProgressHandler.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_Assimp__BaseImporter.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_Assimp__ImporterPimpl.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_aiImporterDesc.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_float.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_std__string.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_void.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/UintVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiAnimBehaviour.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiAnimMesh.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiAnimMeshVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiAnimation.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiAnimationVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiBlendMode.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiBone.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiBoneVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiCamera.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiCameraVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiColor3D.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiColor4D.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiColor4DVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiColor4DVectorVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiComponent.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiDefaultLogStream.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiFace.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiFaceVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiFile.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiFileIO.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiLight.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiLightSourceType.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiLightVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiMaterial.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiMaterialProperty.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiMaterialVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiMatrix3x3.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiMatrix4x4.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiMemoryInfo.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiMesh.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiMeshAnim.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiMeshAnimVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiMeshKey.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiMeshKeyVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiMeshVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiNode.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiNodeAnim.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiNodeAnimVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiNodeVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiOrigin.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiPlane.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiPostProcessSteps.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiPrimitiveType.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiPropertyTypeInfo.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiQuatKey.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiQuatKeyVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiQuaternion.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiRay.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiReturn.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiScene.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiShadingMode.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiString.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiTexel.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiTexture.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiTextureFlags.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiTextureMapMode.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiTextureMapping.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiTextureOp.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiTextureType.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiTextureVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiUVTransform.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiVector2D.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiVector3D.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiVector3DVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiVector3DVectorVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiVectorKey.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiVectorKeyVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiVertexWeight.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/aiVertexWeightVector.cs delete mode 100644 port/Assimp.NET/Assimp.NET_CS/app.config delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/Assimp.NET_DEMO.csproj delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/Assimp.NET_DEMO.csproj.user delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/AssimpView.Designer.cs delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/AssimpView.cs delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/AssimpView.resx delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/Camera.cs delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/Display.cs delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/ExtensionMethods.cs delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/Input.cs delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/Program.cs delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/Properties/AssemblyInfo.cs delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/Properties/Resources.Designer.cs delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/Properties/Resources.resx delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/Properties/Settings.Designer.cs delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/Properties/Settings.settings delete mode 100644 port/Assimp.NET/Assimp.NET_DEMO/app.config delete mode 100644 port/Assimp.NET/CSharpViewerScreenShot.PNG delete mode 100644 port/Assimp.NET/README.txt create mode 100644 port/AssimpNET/Readme.md diff --git a/port/Assimp.NET/Assimp.NET.sln b/port/Assimp.NET/Assimp.NET.sln deleted file mode 100644 index 17c1cc180..000000000 --- a/port/Assimp.NET/Assimp.NET.sln +++ /dev/null @@ -1,275 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Assimp_NET", "Assimp.NET\Assimp.NET.vcproj", "{A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}" - ProjectSection(ProjectDependencies) = postProject - {5691E159-2D9B-407F-971F-EA5C592DC524} = {5691E159-2D9B-407F-971F-EA5C592DC524} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assimp.NET_CS", "Assimp.NET_CS\Assimp.NET_CS.csproj", "{A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}" - ProjectSection(ProjectDependencies) = postProject - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E} = {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assimp.NET_DEMO", "Assimp.NET_DEMO\Assimp.NET_DEMO.csproj", "{B2813591-1491-4C99-B6E2-67B484411AFC}" - ProjectSection(ProjectDependencies) = postProject - {5691E159-2D9B-407F-971F-EA5C592DC524} = {5691E159-2D9B-407F-971F-EA5C592DC524} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "assimp", "..\..\workspaces\vc9\assimp.vcproj", "{5691E159-2D9B-407F-971F-EA5C592DC524}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|Win32 = Debug|Win32 - Debug|x86 = Debug|x86 - debug-dll|Any CPU = debug-dll|Any CPU - debug-dll|Mixed Platforms = debug-dll|Mixed Platforms - debug-dll|Win32 = debug-dll|Win32 - debug-dll|x86 = debug-dll|x86 - debug-noboost-st|Any CPU = debug-noboost-st|Any CPU - debug-noboost-st|Mixed Platforms = debug-noboost-st|Mixed Platforms - debug-noboost-st|Win32 = debug-noboost-st|Win32 - debug-noboost-st|x86 = debug-noboost-st|x86 - debug-st|Any CPU = debug-st|Any CPU - debug-st|Mixed Platforms = debug-st|Mixed Platforms - debug-st|Win32 = debug-st|Win32 - debug-st|x86 = debug-st|x86 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|Win32 = Release|Win32 - Release|x86 = Release|x86 - release-dll|Any CPU = release-dll|Any CPU - release-dll|Mixed Platforms = release-dll|Mixed Platforms - release-dll|Win32 = release-dll|Win32 - release-dll|x86 = release-dll|x86 - release-noboost-st|Any CPU = release-noboost-st|Any CPU - release-noboost-st|Mixed Platforms = release-noboost-st|Mixed Platforms - release-noboost-st|Win32 = release-noboost-st|Win32 - release-noboost-st|x86 = release-noboost-st|x86 - release-st|Any CPU = release-st|Any CPU - release-st|Mixed Platforms = release-st|Mixed Platforms - release-st|Win32 = release-st|Win32 - release-st|x86 = release-st|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.Debug|Win32.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.Debug|Win32.Build.0 = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.Debug|x86.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-dll|Any CPU.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-dll|Mixed Platforms.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-dll|Mixed Platforms.Build.0 = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-dll|Win32.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-dll|Win32.Build.0 = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-dll|x86.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-noboost-st|Any CPU.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-noboost-st|Mixed Platforms.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-noboost-st|Mixed Platforms.Build.0 = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-noboost-st|Win32.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-noboost-st|Win32.Build.0 = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-noboost-st|x86.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-st|Any CPU.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-st|Mixed Platforms.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-st|Mixed Platforms.Build.0 = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-st|Win32.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-st|Win32.Build.0 = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.debug-st|x86.ActiveCfg = Debug|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.Release|Any CPU.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.Release|Mixed Platforms.Build.0 = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.Release|Win32.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.Release|Win32.Build.0 = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.Release|x86.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.Release|x86.Build.0 = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-dll|Any CPU.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-dll|Mixed Platforms.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-dll|Mixed Platforms.Build.0 = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-dll|Win32.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-dll|Win32.Build.0 = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-dll|x86.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-noboost-st|Any CPU.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-noboost-st|Mixed Platforms.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-noboost-st|Mixed Platforms.Build.0 = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-noboost-st|Win32.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-noboost-st|Win32.Build.0 = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-noboost-st|x86.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-st|Any CPU.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-st|Mixed Platforms.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-st|Mixed Platforms.Build.0 = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-st|Win32.ActiveCfg = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-st|Win32.Build.0 = Release|Win32 - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E}.release-st|x86.ActiveCfg = Release|Win32 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Debug|Win32.ActiveCfg = Debug|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Debug|Win32.Build.0 = Debug|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Debug|x86.ActiveCfg = Debug|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Debug|x86.Build.0 = Debug|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-dll|Any CPU.ActiveCfg = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-dll|Any CPU.Build.0 = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-dll|Mixed Platforms.ActiveCfg = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-dll|Mixed Platforms.Build.0 = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-dll|Win32.ActiveCfg = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-dll|x86.ActiveCfg = Debug|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-dll|x86.Build.0 = Debug|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-noboost-st|Any CPU.ActiveCfg = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-noboost-st|Any CPU.Build.0 = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-noboost-st|Mixed Platforms.ActiveCfg = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-noboost-st|Mixed Platforms.Build.0 = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-noboost-st|Win32.ActiveCfg = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-noboost-st|x86.ActiveCfg = Debug|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-noboost-st|x86.Build.0 = Debug|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-st|Any CPU.ActiveCfg = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-st|Any CPU.Build.0 = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-st|Mixed Platforms.ActiveCfg = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-st|Mixed Platforms.Build.0 = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-st|Win32.ActiveCfg = Debug|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-st|x86.ActiveCfg = Debug|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.debug-st|x86.Build.0 = Debug|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Release|Any CPU.Build.0 = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Release|Win32.ActiveCfg = Release|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Release|Win32.Build.0 = Release|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Release|x86.ActiveCfg = Release|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.Release|x86.Build.0 = Release|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-dll|Any CPU.ActiveCfg = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-dll|Any CPU.Build.0 = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-dll|Mixed Platforms.ActiveCfg = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-dll|Mixed Platforms.Build.0 = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-dll|Win32.ActiveCfg = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-dll|x86.ActiveCfg = Release|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-dll|x86.Build.0 = Release|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-noboost-st|Any CPU.ActiveCfg = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-noboost-st|Any CPU.Build.0 = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-noboost-st|Mixed Platforms.ActiveCfg = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-noboost-st|Mixed Platforms.Build.0 = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-noboost-st|Win32.ActiveCfg = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-noboost-st|x86.ActiveCfg = Release|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-noboost-st|x86.Build.0 = Release|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-st|Any CPU.ActiveCfg = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-st|Any CPU.Build.0 = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-st|Mixed Platforms.ActiveCfg = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-st|Mixed Platforms.Build.0 = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-st|Win32.ActiveCfg = Release|Any CPU - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-st|x86.ActiveCfg = Release|x86 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131}.release-st|x86.Build.0 = Release|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.Debug|Win32.ActiveCfg = Debug|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.Debug|Win32.Build.0 = Debug|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.Debug|x86.ActiveCfg = Debug|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.Debug|x86.Build.0 = Debug|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-dll|Any CPU.ActiveCfg = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-dll|Any CPU.Build.0 = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-dll|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-dll|Mixed Platforms.Build.0 = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-dll|Win32.ActiveCfg = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-dll|x86.ActiveCfg = Debug|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-dll|x86.Build.0 = Debug|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-noboost-st|Any CPU.ActiveCfg = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-noboost-st|Any CPU.Build.0 = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-noboost-st|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-noboost-st|Mixed Platforms.Build.0 = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-noboost-st|Win32.ActiveCfg = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-noboost-st|x86.ActiveCfg = Debug|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-noboost-st|x86.Build.0 = Debug|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-st|Any CPU.ActiveCfg = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-st|Any CPU.Build.0 = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-st|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-st|Mixed Platforms.Build.0 = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-st|Win32.ActiveCfg = Debug|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-st|x86.ActiveCfg = Debug|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.debug-st|x86.Build.0 = Debug|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.Release|Any CPU.Build.0 = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.Release|Win32.ActiveCfg = Release|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.Release|Win32.Build.0 = Release|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.Release|x86.ActiveCfg = Release|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.Release|x86.Build.0 = Release|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-dll|Any CPU.ActiveCfg = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-dll|Any CPU.Build.0 = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-dll|Mixed Platforms.ActiveCfg = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-dll|Mixed Platforms.Build.0 = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-dll|Win32.ActiveCfg = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-dll|x86.ActiveCfg = Release|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-dll|x86.Build.0 = Release|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-noboost-st|Any CPU.ActiveCfg = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-noboost-st|Any CPU.Build.0 = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-noboost-st|Mixed Platforms.ActiveCfg = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-noboost-st|Mixed Platforms.Build.0 = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-noboost-st|Win32.ActiveCfg = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-noboost-st|x86.ActiveCfg = Release|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-noboost-st|x86.Build.0 = Release|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-st|Any CPU.ActiveCfg = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-st|Any CPU.Build.0 = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-st|Mixed Platforms.ActiveCfg = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-st|Mixed Platforms.Build.0 = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-st|Win32.ActiveCfg = Release|Any CPU - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-st|x86.ActiveCfg = Release|x86 - {B2813591-1491-4C99-B6E2-67B484411AFC}.release-st|x86.Build.0 = Release|x86 - {5691E159-2D9B-407F-971F-EA5C592DC524}.Debug|Any CPU.ActiveCfg = debug|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.Debug|Mixed Platforms.ActiveCfg = debug|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.Debug|Mixed Platforms.Build.0 = debug|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.Debug|Win32.ActiveCfg = debug|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.Debug|Win32.Build.0 = debug|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.Debug|x86.ActiveCfg = debug|x64 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-dll|Any CPU.ActiveCfg = debug-dll|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-dll|Mixed Platforms.ActiveCfg = debug-dll|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-dll|Mixed Platforms.Build.0 = debug-dll|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-dll|Win32.ActiveCfg = debug-dll|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-dll|Win32.Build.0 = debug-dll|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-dll|x86.ActiveCfg = debug-dll|x64 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-noboost-st|Any CPU.ActiveCfg = debug-noboost-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-noboost-st|Mixed Platforms.ActiveCfg = debug-noboost-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-noboost-st|Mixed Platforms.Build.0 = debug-noboost-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-noboost-st|Win32.ActiveCfg = debug-noboost-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-noboost-st|Win32.Build.0 = debug-noboost-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-noboost-st|x86.ActiveCfg = debug-noboost-st|x64 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-st|Any CPU.ActiveCfg = debug-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-st|Mixed Platforms.ActiveCfg = debug-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-st|Mixed Platforms.Build.0 = debug-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-st|Win32.ActiveCfg = debug-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-st|Win32.Build.0 = debug-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.debug-st|x86.ActiveCfg = debug-st|x64 - {5691E159-2D9B-407F-971F-EA5C592DC524}.Release|Any CPU.ActiveCfg = release|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.Release|Mixed Platforms.ActiveCfg = release|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.Release|Mixed Platforms.Build.0 = release|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.Release|Win32.ActiveCfg = release|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.Release|Win32.Build.0 = release|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.Release|x86.ActiveCfg = release|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.Release|x86.Build.0 = release|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-dll|Any CPU.ActiveCfg = release-dll|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-dll|Mixed Platforms.ActiveCfg = release-dll|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-dll|Mixed Platforms.Build.0 = release-dll|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-dll|Win32.ActiveCfg = release-dll|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-dll|Win32.Build.0 = release-dll|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-dll|x86.ActiveCfg = release-dll|x64 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-noboost-st|Any CPU.ActiveCfg = release-noboost-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-noboost-st|Mixed Platforms.ActiveCfg = release-noboost-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-noboost-st|Mixed Platforms.Build.0 = release-noboost-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-noboost-st|Win32.ActiveCfg = release-noboost-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-noboost-st|Win32.Build.0 = release-noboost-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-noboost-st|x86.ActiveCfg = release-noboost-st|x64 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-st|Any CPU.ActiveCfg = release-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-st|Mixed Platforms.ActiveCfg = release-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-st|Mixed Platforms.Build.0 = release-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-st|Win32.ActiveCfg = release-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-st|Win32.Build.0 = release-st|Win32 - {5691E159-2D9B-407F-971F-EA5C592DC524}.release-st|x86.ActiveCfg = release-st|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/port/Assimp.NET/Assimp.NET/Assimp.NET.vcproj b/port/Assimp.NET/Assimp.NET/Assimp.NET.vcproj deleted file mode 100644 index e2f9e9c62..000000000 --- a/port/Assimp.NET/Assimp.NET/Assimp.NET.vcproj +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/port/Assimp.NET/Assimp.NET/AssimpSwigPort.i b/port/Assimp.NET/Assimp.NET/AssimpSwigPort.i deleted file mode 100644 index 681b4f1a1..000000000 --- a/port/Assimp.NET/Assimp.NET/AssimpSwigPort.i +++ /dev/null @@ -1,567 +0,0 @@ -/* ---------------------------------------------------------------------------- -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" -%{ -#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" -%} - -#define C_STRUCT -#define C_ENUM -#define ASSIMP_API -#define PACK_STRUCT -#define AI_FORCE_INLINE - -%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<; - - -%rename(opNew) operator new; -%rename(opNewArray) operator new[]; - -%rename(opDelete) operator delete; -%rename(opDeleteArray) operator delete[]; - - -%include "std_string.i" -%include "std_vector.i" - - -// PACK_STRUCT is a no-op for SWIG – 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) -%csmethodmodifiers Get##NAME() "private"; -%newobject CLASS::Get##NAME; -%extend CLASS { - std::vector *Get##NAME() { - std::vector *result = new std::vector; - 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) -%csmethodmodifiers Get##NAME() "private"; -%newobject CLASS::Get##NAME; -%extend CLASS { - std::vector *Get##NAME() { - std::vector *result = new std::vector; - result->reserve(LENGTH); - - TYPE *currentValue = (TYPE *)$self->NAME; - TYPE *valueLimit = (TYPE *)$self->NAME + LENGTH; - while (currentValue < valueLimit) { - result->push_back(currentValue); - ++currentValue; - } - - 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 *Get##NAME() { - std::vector *result = new std::vector; - result->reserve(LENGTH); - - TYPE **currentValue = $self->NAME; - TYPE **valueLimit = $self->NAME + LENGTH; - while (currentValue < valueLimit) { - result->push_back(*currentValue); - ++currentValue; - } - - return result; - } -} -%ignore CLASS::NAME; -%enddef - -%define ASSIMP_POINTER_ARRAY_ARRAY(CLASS, TYPE, NAME, OUTER_LENGTH, INNER_LENGTH) -%csmethodmodifiers Get##NAME() "private"; -%newobject CLASS::Get##NAME; -%extend CLASS { - std::vector< std::vector > *Get##NAME() { - std::vector< std::vector > *result = new std::vector< std::vector >; - result->reserve(OUTER_LENGTH); - - for (unsigned int i = 0; i < OUTER_LENGTH; ++i) { - std::vector 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 - -%define ASSIMP_GETMATERIAL(XXX, KEY, TYPE, NAME) -%csmethodmodifiers Get##NAME() "private"; -%newobject aiMaterial::Get##NAME; -%extend aiMaterial { - bool Get##NAME(TYPE* INOUT) { - return aiGetMaterial##XXX($self, KEY, INOUT) == AI_SUCCESS; - } -} -%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; -%ignore Assimp::Importer::SetPropertyBool; -%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; - - -%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" -//%include "..\..\..\include\IOSystem.h" -//%include "..\..\..\include\IOStream.h" -//%include "..\..\..\include\Logger.h" -//%include "..\..\..\include\LogStream.h" -//%include "..\..\..\include\NullLogger.h" - - -%template(aiColor4D) aiColor4t; - -%template(aiVector3D) aiVector3t; -%template(aiVector2D) aiVector2t; - -%template(aiQuaternion) aiQuaterniont; -%template(aiMatrix3x3) aiMatrix3x3t; -%template(aiMatrix4x4) aiMatrix4x4t; - -%template(FloatVector) std::vector; -%template(UintVector) std::vector; -%template(aiAnimationVector) std::vector; -%template(aiAnimMeshVector) std::vector; -%template(aiBoneVector) std::vector; -%template(aiCameraVector) std::vector; -%template(aiColor4DVectorVector) std::vector >; -%template(aiColor4DVector) std::vector; -%template(aiFaceVector) std::vector; -%template(aiLightVector) std::vector; -%template(aiMaterialVector) std::vector; -%template(aiMeshAnimVector) std::vector; -%template(aiMeshKeyVector) std::vector; -%template(aiMeshVector) std::vector; -%template(aiNodeVector) std::vector; -%template(aiNodeAnimVector) std::vector; -%template(aiQuatKeyVector) std::vector; -%template(aiTextureVector) std::vector; -%template(aiVector3DVector) std::vector; -%template(aiVector3DVectorVector) std::vector >; -%template(aiVectorKeyVector) std::vector; -%template(aiVertexWeightVector) std::vector; - diff --git a/port/Assimp.NET/Assimp.NET/AssimpSwigPort_wrap.cxx b/port/Assimp.NET/Assimp.NET/AssimpSwigPort_wrap.cxx deleted file mode 100644 index 650552373..000000000 --- a/port/Assimp.NET/Assimp.NET/AssimpSwigPort_wrap.cxx +++ /dev/null @@ -1,21287 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * This file is not intended to be easily readable and contains a number of - * coding conventions designed to improve portability and efficiency. Do not make - * changes to this file unless you know what you are doing--modify the SWIG - * interface file instead. - * ----------------------------------------------------------------------------- */ - -#define SWIGCSHARP - - -#ifdef __cplusplus -/* SwigValueWrapper is described in swig.swg */ -template class SwigValueWrapper { - struct SwigMovePointer { - T *ptr; - SwigMovePointer(T *p) : ptr(p) { } - ~SwigMovePointer() { delete ptr; } - SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; } - } pointer; - SwigValueWrapper& operator=(const SwigValueWrapper& rhs); - SwigValueWrapper(const SwigValueWrapper& rhs); -public: - SwigValueWrapper() : pointer(0) { } - SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; } - operator T&() const { return *pointer.ptr; } - T *operator&() { return pointer.ptr; } -}; - -template T SwigValueInit() { - return T(); -} -#endif - -/* ----------------------------------------------------------------------------- - * This section contains generic SWIG labels for method/variable - * declarations/attributes, and other compiler dependent labels. - * ----------------------------------------------------------------------------- */ - -/* template workaround for compilers that cannot correctly implement the C++ standard */ -#ifndef SWIGTEMPLATEDISAMBIGUATOR -# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) -# define SWIGTEMPLATEDISAMBIGUATOR template -# elif defined(__HP_aCC) -/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ -/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ -# define SWIGTEMPLATEDISAMBIGUATOR template -# else -# define SWIGTEMPLATEDISAMBIGUATOR -# endif -#endif - -/* inline attribute */ -#ifndef SWIGINLINE -# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) -# define SWIGINLINE inline -# else -# define SWIGINLINE -# endif -#endif - -/* attribute recognised by some compilers to avoid 'unused' warnings */ -#ifndef SWIGUNUSED -# if defined(__GNUC__) -# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define SWIGUNUSED __attribute__ ((__unused__)) -# else -# define SWIGUNUSED -# endif -# elif defined(__ICC) -# define SWIGUNUSED __attribute__ ((__unused__)) -# else -# define SWIGUNUSED -# endif -#endif - -#ifndef SWIG_MSC_UNSUPPRESS_4505 -# if defined(_MSC_VER) -# pragma warning(disable : 4505) /* unreferenced local function has been removed */ -# endif -#endif - -#ifndef SWIGUNUSEDPARM -# ifdef __cplusplus -# define SWIGUNUSEDPARM(p) -# else -# define SWIGUNUSEDPARM(p) p SWIGUNUSED -# endif -#endif - -/* internal SWIG method */ -#ifndef SWIGINTERN -# define SWIGINTERN static SWIGUNUSED -#endif - -/* internal inline SWIG method */ -#ifndef SWIGINTERNINLINE -# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE -#endif - -/* exporting methods */ -#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) -# ifndef GCC_HASCLASSVISIBILITY -# define GCC_HASCLASSVISIBILITY -# endif -#endif - -#ifndef SWIGEXPORT -# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# if defined(STATIC_LINKED) -# define SWIGEXPORT -# else -# define SWIGEXPORT __declspec(dllexport) -# endif -# else -# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) -# define SWIGEXPORT __attribute__ ((visibility("default"))) -# else -# define SWIGEXPORT -# endif -# endif -#endif - -/* calling conventions for Windows */ -#ifndef SWIGSTDCALL -# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# define SWIGSTDCALL __stdcall -# else -# define SWIGSTDCALL -# endif -#endif - -/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ -#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) -# define _CRT_SECURE_NO_DEPRECATE -#endif - -/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ -#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) -# define _SCL_SECURE_NO_DEPRECATE -#endif - - - -#include -#include -#include - - -/* Support for throwing C# exceptions from C/C++. There are two types: - * Exceptions that take a message and ArgumentExceptions that take a message and a parameter name. */ -typedef enum { - SWIG_CSharpApplicationException, - SWIG_CSharpArithmeticException, - SWIG_CSharpDivideByZeroException, - SWIG_CSharpIndexOutOfRangeException, - SWIG_CSharpInvalidCastException, - SWIG_CSharpInvalidOperationException, - SWIG_CSharpIOException, - SWIG_CSharpNullReferenceException, - SWIG_CSharpOutOfMemoryException, - SWIG_CSharpOverflowException, - SWIG_CSharpSystemException -} SWIG_CSharpExceptionCodes; - -typedef enum { - SWIG_CSharpArgumentException, - SWIG_CSharpArgumentNullException, - SWIG_CSharpArgumentOutOfRangeException -} SWIG_CSharpExceptionArgumentCodes; - -typedef void (SWIGSTDCALL* SWIG_CSharpExceptionCallback_t)(const char *); -typedef void (SWIGSTDCALL* SWIG_CSharpExceptionArgumentCallback_t)(const char *, const char *); - -typedef struct { - SWIG_CSharpExceptionCodes code; - SWIG_CSharpExceptionCallback_t callback; -} SWIG_CSharpException_t; - -typedef struct { - SWIG_CSharpExceptionArgumentCodes code; - SWIG_CSharpExceptionArgumentCallback_t callback; -} SWIG_CSharpExceptionArgument_t; - -static SWIG_CSharpException_t SWIG_csharp_exceptions[] = { - { SWIG_CSharpApplicationException, NULL }, - { SWIG_CSharpArithmeticException, NULL }, - { SWIG_CSharpDivideByZeroException, NULL }, - { SWIG_CSharpIndexOutOfRangeException, NULL }, - { SWIG_CSharpInvalidCastException, NULL }, - { SWIG_CSharpInvalidOperationException, NULL }, - { SWIG_CSharpIOException, NULL }, - { SWIG_CSharpNullReferenceException, NULL }, - { SWIG_CSharpOutOfMemoryException, NULL }, - { SWIG_CSharpOverflowException, NULL }, - { SWIG_CSharpSystemException, NULL } -}; - -static SWIG_CSharpExceptionArgument_t SWIG_csharp_exceptions_argument[] = { - { SWIG_CSharpArgumentException, NULL }, - { SWIG_CSharpArgumentNullException, NULL }, - { SWIG_CSharpArgumentOutOfRangeException, NULL } -}; - -static void SWIGUNUSED SWIG_CSharpSetPendingException(SWIG_CSharpExceptionCodes code, const char *msg) { - SWIG_CSharpExceptionCallback_t callback = SWIG_csharp_exceptions[SWIG_CSharpApplicationException].callback; - if ((size_t)code < sizeof(SWIG_csharp_exceptions)/sizeof(SWIG_CSharpException_t)) { - callback = SWIG_csharp_exceptions[code].callback; - } - callback(msg); -} - -static void SWIGUNUSED SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpExceptionArgumentCodes code, const char *msg, const char *param_name) { - SWIG_CSharpExceptionArgumentCallback_t callback = SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentException].callback; - if ((size_t)code < sizeof(SWIG_csharp_exceptions_argument)/sizeof(SWIG_CSharpExceptionArgument_t)) { - callback = SWIG_csharp_exceptions_argument[code].callback; - } - callback(msg, param_name); -} - - -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT void SWIGSTDCALL SWIGRegisterExceptionCallbacks_Assimp( - SWIG_CSharpExceptionCallback_t applicationCallback, - SWIG_CSharpExceptionCallback_t arithmeticCallback, - SWIG_CSharpExceptionCallback_t divideByZeroCallback, - SWIG_CSharpExceptionCallback_t indexOutOfRangeCallback, - SWIG_CSharpExceptionCallback_t invalidCastCallback, - SWIG_CSharpExceptionCallback_t invalidOperationCallback, - SWIG_CSharpExceptionCallback_t ioCallback, - SWIG_CSharpExceptionCallback_t nullReferenceCallback, - SWIG_CSharpExceptionCallback_t outOfMemoryCallback, - SWIG_CSharpExceptionCallback_t overflowCallback, - SWIG_CSharpExceptionCallback_t systemCallback) { - SWIG_csharp_exceptions[SWIG_CSharpApplicationException].callback = applicationCallback; - SWIG_csharp_exceptions[SWIG_CSharpArithmeticException].callback = arithmeticCallback; - SWIG_csharp_exceptions[SWIG_CSharpDivideByZeroException].callback = divideByZeroCallback; - SWIG_csharp_exceptions[SWIG_CSharpIndexOutOfRangeException].callback = indexOutOfRangeCallback; - SWIG_csharp_exceptions[SWIG_CSharpInvalidCastException].callback = invalidCastCallback; - SWIG_csharp_exceptions[SWIG_CSharpInvalidOperationException].callback = invalidOperationCallback; - SWIG_csharp_exceptions[SWIG_CSharpIOException].callback = ioCallback; - SWIG_csharp_exceptions[SWIG_CSharpNullReferenceException].callback = nullReferenceCallback; - SWIG_csharp_exceptions[SWIG_CSharpOutOfMemoryException].callback = outOfMemoryCallback; - SWIG_csharp_exceptions[SWIG_CSharpOverflowException].callback = overflowCallback; - SWIG_csharp_exceptions[SWIG_CSharpSystemException].callback = systemCallback; -} - -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT void SWIGSTDCALL SWIGRegisterExceptionArgumentCallbacks_Assimp( - SWIG_CSharpExceptionArgumentCallback_t argumentCallback, - SWIG_CSharpExceptionArgumentCallback_t argumentNullCallback, - SWIG_CSharpExceptionArgumentCallback_t argumentOutOfRangeCallback) { - SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentException].callback = argumentCallback; - SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentNullException].callback = argumentNullCallback; - SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentOutOfRangeException].callback = argumentOutOfRangeCallback; -} - - -/* Callback for returning strings to C# without leaking memory */ -typedef char * (SWIGSTDCALL* SWIG_CSharpStringHelperCallback)(const char *); -static SWIG_CSharpStringHelperCallback SWIG_csharp_string_callback = NULL; - - -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT void SWIGSTDCALL SWIGRegisterStringCallback_Assimp(SWIG_CSharpStringHelperCallback callback) { - SWIG_csharp_string_callback = callback; -} - - -/* Contract support */ - -#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, msg, ""); return nullreturn; } else - - -#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" - - -#include - - -#include - - -#include -#include -#include - -SWIGINTERN std::vector< aiVectorKey * > *aiNodeAnim_GetmPositionKeys(aiNodeAnim *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumPositionKeys); - - aiVectorKey *currentValue = (aiVectorKey *)self->mPositionKeys; - aiVectorKey *valueLimit = (aiVectorKey *)self->mPositionKeys + self->mNumPositionKeys; - while (currentValue < valueLimit) { - result->push_back(currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiQuatKey * > *aiNodeAnim_GetmRotationKeys(aiNodeAnim *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumRotationKeys); - - aiQuatKey *currentValue = (aiQuatKey *)self->mRotationKeys; - aiQuatKey *valueLimit = (aiQuatKey *)self->mRotationKeys + self->mNumRotationKeys; - while (currentValue < valueLimit) { - result->push_back(currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiVectorKey * > *aiNodeAnim_GetmScalingKeys(aiNodeAnim *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumScalingKeys); - - aiVectorKey *currentValue = (aiVectorKey *)self->mScalingKeys; - aiVectorKey *valueLimit = (aiVectorKey *)self->mScalingKeys + self->mNumScalingKeys; - while (currentValue < valueLimit) { - result->push_back(currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiMeshKey * > *aiMeshAnim_GetmKeys(aiMeshAnim *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumKeys); - - aiMeshKey *currentValue = (aiMeshKey *)self->mKeys; - aiMeshKey *valueLimit = (aiMeshKey *)self->mKeys + self->mNumKeys; - while (currentValue < valueLimit) { - result->push_back(currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiNodeAnim * > *aiAnimation_GetmChannels(aiAnimation *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumChannels); - - aiNodeAnim **currentValue = self->mChannels; - aiNodeAnim **valueLimit = self->mChannels + self->mNumChannels; - while (currentValue < valueLimit) { - result->push_back(*currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiMeshAnim * > *aiAnimation_GetmMeshChannels(aiAnimation *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumMeshChannels); - - aiMeshAnim **currentValue = self->mMeshChannels; - aiMeshAnim **valueLimit = self->mMeshChannels + self->mNumMeshChannels; - while (currentValue < valueLimit) { - result->push_back(*currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< unsigned int > *aiFace_GetmIndices(aiFace *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumIndices); - - for (unsigned int i = 0; i < self->mNumIndices; ++i) { - result->push_back(self->mIndices[i]); - } - - return result; - } -SWIGINTERN std::vector< aiVertexWeight * > *aiBone_GetmWeights(aiBone *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumWeights); - - aiVertexWeight *currentValue = (aiVertexWeight *)self->mWeights; - aiVertexWeight *valueLimit = (aiVertexWeight *)self->mWeights + self->mNumWeights; - while (currentValue < valueLimit) { - result->push_back(currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiAnimMesh * > *aiMesh_GetmAnimMeshes(aiMesh *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumAnimMeshes); - - aiAnimMesh **currentValue = self->mAnimMeshes; - aiAnimMesh **valueLimit = self->mAnimMeshes + self->mNumAnimMeshes; - while (currentValue < valueLimit) { - result->push_back(*currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiVector3D * > *aiMesh_GetmBitangents(aiMesh *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumVertices); - - aiVector3D *currentValue = (aiVector3D *)self->mBitangents; - aiVector3D *valueLimit = (aiVector3D *)self->mBitangents + self->mNumVertices; - while (currentValue < valueLimit) { - result->push_back(currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiBone * > *aiMesh_GetmBones(aiMesh *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumBones); - - aiBone **currentValue = self->mBones; - aiBone **valueLimit = self->mBones + self->mNumBones; - while (currentValue < valueLimit) { - result->push_back(*currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< std::vector< aiColor4D * > > *aiMesh_GetmColors(aiMesh *self){ - std::vector< std::vector > *result = new std::vector< std::vector >; - result->reserve(AI_MAX_NUMBER_OF_COLOR_SETS); - - for (unsigned int i = 0; i < AI_MAX_NUMBER_OF_COLOR_SETS; ++i) { - std::vector currentElements; - - if (self->mColors[i] != 0) { - currentElements.reserve(self->mNumVertices); - - aiColor4D *currentValue = self->mColors[i]; - aiColor4D *valueLimit = self->mColors[i] + self->mNumVertices; - while (currentValue < valueLimit) { - currentElements.push_back(currentValue); - ++currentValue; - } - } - - result->push_back(currentElements); - } - - return result; - } -SWIGINTERN std::vector< aiFace * > *aiMesh_GetmFaces(aiMesh *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumFaces); - - aiFace *currentValue = (aiFace *)self->mFaces; - aiFace *valueLimit = (aiFace *)self->mFaces + self->mNumFaces; - while (currentValue < valueLimit) { - result->push_back(currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiVector3D * > *aiMesh_GetmNormals(aiMesh *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumVertices); - - aiVector3D *currentValue = (aiVector3D *)self->mNormals; - aiVector3D *valueLimit = (aiVector3D *)self->mNormals + self->mNumVertices; - while (currentValue < valueLimit) { - result->push_back(currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiVector3D * > *aiMesh_GetmTangents(aiMesh *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumVertices); - - aiVector3D *currentValue = (aiVector3D *)self->mTangents; - aiVector3D *valueLimit = (aiVector3D *)self->mTangents + self->mNumVertices; - while (currentValue < valueLimit) { - result->push_back(currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< std::vector< aiVector3D * > > *aiMesh_GetmTextureCoords(aiMesh *self){ - std::vector< std::vector > *result = new std::vector< std::vector >; - result->reserve(AI_MAX_NUMBER_OF_TEXTURECOORDS); - - for (unsigned int i = 0; i < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++i) { - std::vector currentElements; - - if (self->mTextureCoords[i] != 0) { - currentElements.reserve(self->mNumVertices); - - aiVector3D *currentValue = self->mTextureCoords[i]; - aiVector3D *valueLimit = self->mTextureCoords[i] + self->mNumVertices; - while (currentValue < valueLimit) { - currentElements.push_back(currentValue); - ++currentValue; - } - } - - result->push_back(currentElements); - } - - return result; - } -SWIGINTERN std::vector< unsigned int > *aiMesh_GetmNumUVComponents(aiMesh *self){ - std::vector *result = new std::vector; - result->reserve(AI_MAX_NUMBER_OF_TEXTURECOORDS); - - for (unsigned int i = 0; i < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++i) { - result->push_back(self->mNumUVComponents[i]); - } - - return result; - } -SWIGINTERN std::vector< aiVector3D * > *aiMesh_GetmVertices(aiMesh *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumVertices); - - aiVector3D *currentValue = (aiVector3D *)self->mVertices; - aiVector3D *valueLimit = (aiVector3D *)self->mVertices + self->mNumVertices; - while (currentValue < valueLimit) { - result->push_back(currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN bool aiMaterial_GetDiffuse(aiMaterial *self,aiColor4D *INOUT){ - return aiGetMaterialColor(self, AI_MATKEY_COLOR_DIFFUSE, INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetSpecular(aiMaterial *self,aiColor4D *INOUT){ - return aiGetMaterialColor(self, AI_MATKEY_COLOR_SPECULAR, INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetAmbient(aiMaterial *self,aiColor4D *INOUT){ - return aiGetMaterialColor(self, AI_MATKEY_COLOR_AMBIENT, INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetEmissive(aiMaterial *self,aiColor4D *INOUT){ - return aiGetMaterialColor(self, AI_MATKEY_COLOR_EMISSIVE, INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetOpacity(aiMaterial *self,float *INOUT){ - return aiGetMaterialFloat(self, AI_MATKEY_OPACITY, INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetShininessStrength(aiMaterial *self,float *INOUT){ - return aiGetMaterialFloat(self, AI_MATKEY_SHININESS_STRENGTH, INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetShadingModel(aiMaterial *self,int *INOUT){ - return aiGetMaterialInteger(self, AI_MATKEY_SHADING_MODEL, INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetTexFlagsDiffuse0(aiMaterial *self,int *INOUT){ - return aiGetMaterialInteger(self, AI_MATKEY_TEXFLAGS_DIFFUSE(0), INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetMappingModeUDiffuse0(aiMaterial *self,int *INOUT){ - return aiGetMaterialInteger(self, AI_MATKEY_MAPPINGMODE_U_DIFFUSE(0), INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetMappingModeVDiffuse0(aiMaterial *self,int *INOUT){ - return aiGetMaterialInteger(self, AI_MATKEY_MAPPINGMODE_V_DIFFUSE(0), INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetTextureDiffuse0(aiMaterial *self,aiString *INOUT){ - return aiGetMaterialString(self, AI_MATKEY_TEXTURE_DIFFUSE(0), INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetTextureSpecular0(aiMaterial *self,aiString *INOUT){ - return aiGetMaterialString(self, AI_MATKEY_TEXTURE_SPECULAR(0), INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetTextureOpacity0(aiMaterial *self,aiString *INOUT){ - return aiGetMaterialString(self, AI_MATKEY_TEXTURE_OPACITY(0), INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetTextureAmbient0(aiMaterial *self,aiString *INOUT){ - return aiGetMaterialString(self, AI_MATKEY_TEXTURE_AMBIENT(0), INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetTextureEmissive0(aiMaterial *self,aiString *INOUT){ - return aiGetMaterialString(self, AI_MATKEY_TEXTURE_EMISSIVE(0), INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetTextureShininess0(aiMaterial *self,aiString *INOUT){ - return aiGetMaterialString(self, AI_MATKEY_TEXTURE_SHININESS(0), INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetTextureLightmap0(aiMaterial *self,aiString *INOUT){ - return aiGetMaterialString(self, AI_MATKEY_TEXTURE_LIGHTMAP(0), INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetTextureNormals0(aiMaterial *self,aiString *INOUT){ - return aiGetMaterialString(self, AI_MATKEY_TEXTURE_NORMALS(0), INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetTextureHeight0(aiMaterial *self,aiString *INOUT){ - return aiGetMaterialString(self, AI_MATKEY_TEXTURE_HEIGHT(0), INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetGlobalBackgroundImage(aiMaterial *self,aiString *INOUT){ - return aiGetMaterialString(self, AI_MATKEY_GLOBAL_BACKGROUND_IMAGE, INOUT) == AI_SUCCESS; - } -SWIGINTERN bool aiMaterial_GetTwoSided(aiMaterial *self,int *INOUT){ - return aiGetMaterialInteger(self, AI_MATKEY_TWOSIDED, INOUT) == AI_SUCCESS; - } -SWIGINTERN std::vector< aiNode * > *aiNode_GetmChildren(aiNode *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumChildren); - - aiNode **currentValue = self->mChildren; - aiNode **valueLimit = self->mChildren + self->mNumChildren; - while (currentValue < valueLimit) { - result->push_back(*currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< unsigned int > *aiNode_GetmMeshes(aiNode *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumMeshes); - - for (unsigned int i = 0; i < self->mNumMeshes; ++i) { - result->push_back(self->mMeshes[i]); - } - - return result; - } -SWIGINTERN std::vector< aiAnimation * > *aiScene_GetmAnimations(aiScene *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumAnimations); - - aiAnimation **currentValue = self->mAnimations; - aiAnimation **valueLimit = self->mAnimations + self->mNumAnimations; - while (currentValue < valueLimit) { - result->push_back(*currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiCamera * > *aiScene_GetmCameras(aiScene *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumCameras); - - aiCamera **currentValue = self->mCameras; - aiCamera **valueLimit = self->mCameras + self->mNumCameras; - while (currentValue < valueLimit) { - result->push_back(*currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiLight * > *aiScene_GetmLights(aiScene *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumLights); - - aiLight **currentValue = self->mLights; - aiLight **valueLimit = self->mLights + self->mNumLights; - while (currentValue < valueLimit) { - result->push_back(*currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiMaterial * > *aiScene_GetmMaterials(aiScene *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumMaterials); - - aiMaterial **currentValue = self->mMaterials; - aiMaterial **valueLimit = self->mMaterials + self->mNumMaterials; - while (currentValue < valueLimit) { - result->push_back(*currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiMesh * > *aiScene_GetmMeshes(aiScene *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumMeshes); - - aiMesh **currentValue = self->mMeshes; - aiMesh **valueLimit = self->mMeshes + self->mNumMeshes; - while (currentValue < valueLimit) { - result->push_back(*currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::vector< aiTexture * > *aiScene_GetmTextures(aiScene *self){ - std::vector *result = new std::vector; - result->reserve(self->mNumTextures); - - aiTexture **currentValue = self->mTextures; - aiTexture **valueLimit = self->mTextures + self->mNumTextures; - while (currentValue < valueLimit) { - result->push_back(*currentValue); - ++currentValue; - } - - return result; - } -SWIGINTERN std::string Assimp_Importer_GetExtensionList__SWIG_2(Assimp::Importer *self){ - std::string tmp; - self->GetExtensionList(tmp); - return tmp; - } -SWIGINTERN std::vector< float > *new_std_vector_Sl_float_Sg___SWIG_2(int capacity){ - std::vector< float >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< float >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN float std_vector_Sl_float_Sg__getitemcopy(std::vector< float > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< float >::const_reference std_vector_Sl_float_Sg__getitem(std::vector< float > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_float_Sg__setitem(std::vector< float > *self,int index,float const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_float_Sg__AddRange(std::vector< float > *self,std::vector< float > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< float > *std_vector_Sl_float_Sg__GetRange(std::vector< float > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< float >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_float_Sg__Insert(std::vector< float > *self,int index,float const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_float_Sg__InsertRange(std::vector< float > *self,int index,std::vector< float > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_float_Sg__RemoveAt(std::vector< float > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_float_Sg__RemoveRange(std::vector< float > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< float > *std_vector_Sl_float_Sg__Repeat(float const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< float >(count, value); - } -SWIGINTERN void std_vector_Sl_float_Sg__Reverse__SWIG_0(std::vector< float > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_float_Sg__Reverse__SWIG_1(std::vector< float > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_float_Sg__SetRange(std::vector< float > *self,int index,std::vector< float > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_float_Sg__Contains(std::vector< float > *self,float const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_float_Sg__IndexOf(std::vector< float > *self,float const &value){ - int index = -1; - std::vector< float >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_float_Sg__LastIndexOf(std::vector< float > *self,float const &value){ - int index = -1; - std::vector< float >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_float_Sg__Remove(std::vector< float > *self,float const &value){ - std::vector< float >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< unsigned int > *new_std_vector_Sl_unsigned_SS_int_Sg___SWIG_2(int capacity){ - std::vector< unsigned int >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< unsigned int >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN unsigned int std_vector_Sl_unsigned_SS_int_Sg__getitemcopy(std::vector< unsigned int > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< unsigned int >::const_reference std_vector_Sl_unsigned_SS_int_Sg__getitem(std::vector< unsigned int > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_unsigned_SS_int_Sg__setitem(std::vector< unsigned int > *self,int index,unsigned int const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_unsigned_SS_int_Sg__AddRange(std::vector< unsigned int > *self,std::vector< unsigned int > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< unsigned int > *std_vector_Sl_unsigned_SS_int_Sg__GetRange(std::vector< unsigned int > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< unsigned int >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_unsigned_SS_int_Sg__Insert(std::vector< unsigned int > *self,int index,unsigned int const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_unsigned_SS_int_Sg__InsertRange(std::vector< unsigned int > *self,int index,std::vector< unsigned int > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_unsigned_SS_int_Sg__RemoveAt(std::vector< unsigned int > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_unsigned_SS_int_Sg__RemoveRange(std::vector< unsigned int > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< unsigned int > *std_vector_Sl_unsigned_SS_int_Sg__Repeat(unsigned int const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< unsigned int >(count, value); - } -SWIGINTERN void std_vector_Sl_unsigned_SS_int_Sg__Reverse__SWIG_0(std::vector< unsigned int > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_unsigned_SS_int_Sg__Reverse__SWIG_1(std::vector< unsigned int > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_unsigned_SS_int_Sg__SetRange(std::vector< unsigned int > *self,int index,std::vector< unsigned int > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_unsigned_SS_int_Sg__Contains(std::vector< unsigned int > *self,unsigned int const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_unsigned_SS_int_Sg__IndexOf(std::vector< unsigned int > *self,unsigned int const &value){ - int index = -1; - std::vector< unsigned int >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_unsigned_SS_int_Sg__LastIndexOf(std::vector< unsigned int > *self,unsigned int const &value){ - int index = -1; - std::vector< unsigned int >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_unsigned_SS_int_Sg__Remove(std::vector< unsigned int > *self,unsigned int const &value){ - std::vector< unsigned int >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiAnimation * > *new_std_vector_Sl_aiAnimation_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiAnimation * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiAnimation * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiAnimation *std_vector_Sl_aiAnimation_Sm__Sg__getitemcopy(std::vector< aiAnimation * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiAnimation * >::const_reference std_vector_Sl_aiAnimation_Sm__Sg__getitem(std::vector< aiAnimation * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiAnimation_Sm__Sg__setitem(std::vector< aiAnimation * > *self,int index,aiAnimation *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiAnimation_Sm__Sg__AddRange(std::vector< aiAnimation * > *self,std::vector< aiAnimation * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiAnimation * > *std_vector_Sl_aiAnimation_Sm__Sg__GetRange(std::vector< aiAnimation * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiAnimation * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiAnimation_Sm__Sg__Insert(std::vector< aiAnimation * > *self,int index,aiAnimation *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiAnimation_Sm__Sg__InsertRange(std::vector< aiAnimation * > *self,int index,std::vector< aiAnimation * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiAnimation_Sm__Sg__RemoveAt(std::vector< aiAnimation * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiAnimation_Sm__Sg__RemoveRange(std::vector< aiAnimation * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiAnimation * > *std_vector_Sl_aiAnimation_Sm__Sg__Repeat(aiAnimation *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiAnimation * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiAnimation_Sm__Sg__Reverse__SWIG_0(std::vector< aiAnimation * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiAnimation_Sm__Sg__Reverse__SWIG_1(std::vector< aiAnimation * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiAnimation_Sm__Sg__SetRange(std::vector< aiAnimation * > *self,int index,std::vector< aiAnimation * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiAnimation_Sm__Sg__Contains(std::vector< aiAnimation * > *self,aiAnimation *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiAnimation_Sm__Sg__IndexOf(std::vector< aiAnimation * > *self,aiAnimation *const &value){ - int index = -1; - std::vector< aiAnimation * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiAnimation_Sm__Sg__LastIndexOf(std::vector< aiAnimation * > *self,aiAnimation *const &value){ - int index = -1; - std::vector< aiAnimation * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiAnimation_Sm__Sg__Remove(std::vector< aiAnimation * > *self,aiAnimation *const &value){ - std::vector< aiAnimation * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiAnimMesh * > *new_std_vector_Sl_aiAnimMesh_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiAnimMesh * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiAnimMesh * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiAnimMesh *std_vector_Sl_aiAnimMesh_Sm__Sg__getitemcopy(std::vector< aiAnimMesh * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiAnimMesh * >::const_reference std_vector_Sl_aiAnimMesh_Sm__Sg__getitem(std::vector< aiAnimMesh * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiAnimMesh_Sm__Sg__setitem(std::vector< aiAnimMesh * > *self,int index,aiAnimMesh *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiAnimMesh_Sm__Sg__AddRange(std::vector< aiAnimMesh * > *self,std::vector< aiAnimMesh * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiAnimMesh * > *std_vector_Sl_aiAnimMesh_Sm__Sg__GetRange(std::vector< aiAnimMesh * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiAnimMesh * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiAnimMesh_Sm__Sg__Insert(std::vector< aiAnimMesh * > *self,int index,aiAnimMesh *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiAnimMesh_Sm__Sg__InsertRange(std::vector< aiAnimMesh * > *self,int index,std::vector< aiAnimMesh * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiAnimMesh_Sm__Sg__RemoveAt(std::vector< aiAnimMesh * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiAnimMesh_Sm__Sg__RemoveRange(std::vector< aiAnimMesh * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiAnimMesh * > *std_vector_Sl_aiAnimMesh_Sm__Sg__Repeat(aiAnimMesh *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiAnimMesh * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiAnimMesh_Sm__Sg__Reverse__SWIG_0(std::vector< aiAnimMesh * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiAnimMesh_Sm__Sg__Reverse__SWIG_1(std::vector< aiAnimMesh * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiAnimMesh_Sm__Sg__SetRange(std::vector< aiAnimMesh * > *self,int index,std::vector< aiAnimMesh * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiAnimMesh_Sm__Sg__Contains(std::vector< aiAnimMesh * > *self,aiAnimMesh *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiAnimMesh_Sm__Sg__IndexOf(std::vector< aiAnimMesh * > *self,aiAnimMesh *const &value){ - int index = -1; - std::vector< aiAnimMesh * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiAnimMesh_Sm__Sg__LastIndexOf(std::vector< aiAnimMesh * > *self,aiAnimMesh *const &value){ - int index = -1; - std::vector< aiAnimMesh * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiAnimMesh_Sm__Sg__Remove(std::vector< aiAnimMesh * > *self,aiAnimMesh *const &value){ - std::vector< aiAnimMesh * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiBone * > *new_std_vector_Sl_aiBone_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiBone * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiBone * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiBone *std_vector_Sl_aiBone_Sm__Sg__getitemcopy(std::vector< aiBone * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiBone * >::const_reference std_vector_Sl_aiBone_Sm__Sg__getitem(std::vector< aiBone * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiBone_Sm__Sg__setitem(std::vector< aiBone * > *self,int index,aiBone *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiBone_Sm__Sg__AddRange(std::vector< aiBone * > *self,std::vector< aiBone * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiBone * > *std_vector_Sl_aiBone_Sm__Sg__GetRange(std::vector< aiBone * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiBone * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiBone_Sm__Sg__Insert(std::vector< aiBone * > *self,int index,aiBone *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiBone_Sm__Sg__InsertRange(std::vector< aiBone * > *self,int index,std::vector< aiBone * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiBone_Sm__Sg__RemoveAt(std::vector< aiBone * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiBone_Sm__Sg__RemoveRange(std::vector< aiBone * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiBone * > *std_vector_Sl_aiBone_Sm__Sg__Repeat(aiBone *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiBone * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiBone_Sm__Sg__Reverse__SWIG_0(std::vector< aiBone * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiBone_Sm__Sg__Reverse__SWIG_1(std::vector< aiBone * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiBone_Sm__Sg__SetRange(std::vector< aiBone * > *self,int index,std::vector< aiBone * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiBone_Sm__Sg__Contains(std::vector< aiBone * > *self,aiBone *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiBone_Sm__Sg__IndexOf(std::vector< aiBone * > *self,aiBone *const &value){ - int index = -1; - std::vector< aiBone * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiBone_Sm__Sg__LastIndexOf(std::vector< aiBone * > *self,aiBone *const &value){ - int index = -1; - std::vector< aiBone * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiBone_Sm__Sg__Remove(std::vector< aiBone * > *self,aiBone *const &value){ - std::vector< aiBone * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiCamera * > *new_std_vector_Sl_aiCamera_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiCamera * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiCamera * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiCamera *std_vector_Sl_aiCamera_Sm__Sg__getitemcopy(std::vector< aiCamera * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiCamera * >::const_reference std_vector_Sl_aiCamera_Sm__Sg__getitem(std::vector< aiCamera * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiCamera_Sm__Sg__setitem(std::vector< aiCamera * > *self,int index,aiCamera *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiCamera_Sm__Sg__AddRange(std::vector< aiCamera * > *self,std::vector< aiCamera * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiCamera * > *std_vector_Sl_aiCamera_Sm__Sg__GetRange(std::vector< aiCamera * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiCamera * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiCamera_Sm__Sg__Insert(std::vector< aiCamera * > *self,int index,aiCamera *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiCamera_Sm__Sg__InsertRange(std::vector< aiCamera * > *self,int index,std::vector< aiCamera * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiCamera_Sm__Sg__RemoveAt(std::vector< aiCamera * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiCamera_Sm__Sg__RemoveRange(std::vector< aiCamera * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiCamera * > *std_vector_Sl_aiCamera_Sm__Sg__Repeat(aiCamera *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiCamera * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiCamera_Sm__Sg__Reverse__SWIG_0(std::vector< aiCamera * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiCamera_Sm__Sg__Reverse__SWIG_1(std::vector< aiCamera * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiCamera_Sm__Sg__SetRange(std::vector< aiCamera * > *self,int index,std::vector< aiCamera * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiCamera_Sm__Sg__Contains(std::vector< aiCamera * > *self,aiCamera *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiCamera_Sm__Sg__IndexOf(std::vector< aiCamera * > *self,aiCamera *const &value){ - int index = -1; - std::vector< aiCamera * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiCamera_Sm__Sg__LastIndexOf(std::vector< aiCamera * > *self,aiCamera *const &value){ - int index = -1; - std::vector< aiCamera * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiCamera_Sm__Sg__Remove(std::vector< aiCamera * > *self,aiCamera *const &value){ - std::vector< aiCamera * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< std::vector< aiColor4D * > > *new_std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg___SWIG_2(int capacity){ - std::vector< std::vector< aiColor4t< float > * > >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< std::vector< aiColor4t< float > * > >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN std::vector< aiColor4t< float > * > std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__getitemcopy(std::vector< std::vector< aiColor4D * > > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< std::vector< aiColor4t< float > * > >::const_reference std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__getitem(std::vector< std::vector< aiColor4D * > > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__setitem(std::vector< std::vector< aiColor4D * > > *self,int index,std::vector< aiColor4t< float > * > const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__AddRange(std::vector< std::vector< aiColor4D * > > *self,std::vector< std::vector< aiColor4t< float > * > > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< std::vector< aiColor4t< float > * > > *std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__GetRange(std::vector< std::vector< aiColor4D * > > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< std::vector< aiColor4t< float > * > >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__Insert(std::vector< std::vector< aiColor4D * > > *self,int index,std::vector< aiColor4t< float > * > const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__InsertRange(std::vector< std::vector< aiColor4D * > > *self,int index,std::vector< std::vector< aiColor4t< float > * > > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__RemoveAt(std::vector< std::vector< aiColor4D * > > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__RemoveRange(std::vector< std::vector< aiColor4D * > > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< std::vector< aiColor4t< float > * > > *std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__Repeat(std::vector< aiColor4t< float > * > const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< std::vector< aiColor4t< float > * > >(count, value); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__Reverse__SWIG_0(std::vector< std::vector< aiColor4D * > > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__Reverse__SWIG_1(std::vector< std::vector< aiColor4D * > > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__SetRange(std::vector< std::vector< aiColor4D * > > *self,int index,std::vector< std::vector< aiColor4t< float > * > > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN std::vector< aiColor4D * > *new_std_vector_Sl_aiColor4D_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiColor4t< float > * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiColor4t< float > * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiColor4t< float > *std_vector_Sl_aiColor4D_Sm__Sg__getitemcopy(std::vector< aiColor4D * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiColor4t< float > * >::const_reference std_vector_Sl_aiColor4D_Sm__Sg__getitem(std::vector< aiColor4D * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiColor4D_Sm__Sg__setitem(std::vector< aiColor4D * > *self,int index,aiColor4t< float > *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiColor4D_Sm__Sg__AddRange(std::vector< aiColor4D * > *self,std::vector< aiColor4t< float > * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiColor4t< float > * > *std_vector_Sl_aiColor4D_Sm__Sg__GetRange(std::vector< aiColor4D * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiColor4t< float > * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiColor4D_Sm__Sg__Insert(std::vector< aiColor4D * > *self,int index,aiColor4t< float > *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiColor4D_Sm__Sg__InsertRange(std::vector< aiColor4D * > *self,int index,std::vector< aiColor4t< float > * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiColor4D_Sm__Sg__RemoveAt(std::vector< aiColor4D * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiColor4D_Sm__Sg__RemoveRange(std::vector< aiColor4D * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiColor4t< float > * > *std_vector_Sl_aiColor4D_Sm__Sg__Repeat(aiColor4t< float > *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiColor4t< float > * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiColor4D_Sm__Sg__Reverse__SWIG_0(std::vector< aiColor4D * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiColor4D_Sm__Sg__Reverse__SWIG_1(std::vector< aiColor4D * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiColor4D_Sm__Sg__SetRange(std::vector< aiColor4D * > *self,int index,std::vector< aiColor4t< float > * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiColor4D_Sm__Sg__Contains(std::vector< aiColor4D * > *self,aiColor4t< float > *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiColor4D_Sm__Sg__IndexOf(std::vector< aiColor4D * > *self,aiColor4t< float > *const &value){ - int index = -1; - std::vector< aiColor4t< float > * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiColor4D_Sm__Sg__LastIndexOf(std::vector< aiColor4D * > *self,aiColor4t< float > *const &value){ - int index = -1; - std::vector< aiColor4t< float > * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiColor4D_Sm__Sg__Remove(std::vector< aiColor4D * > *self,aiColor4t< float > *const &value){ - std::vector< aiColor4t< float > * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiFace * > *new_std_vector_Sl_aiFace_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiFace * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiFace * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiFace *std_vector_Sl_aiFace_Sm__Sg__getitemcopy(std::vector< aiFace * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiFace * >::const_reference std_vector_Sl_aiFace_Sm__Sg__getitem(std::vector< aiFace * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiFace_Sm__Sg__setitem(std::vector< aiFace * > *self,int index,aiFace *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiFace_Sm__Sg__AddRange(std::vector< aiFace * > *self,std::vector< aiFace * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiFace * > *std_vector_Sl_aiFace_Sm__Sg__GetRange(std::vector< aiFace * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiFace * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiFace_Sm__Sg__Insert(std::vector< aiFace * > *self,int index,aiFace *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiFace_Sm__Sg__InsertRange(std::vector< aiFace * > *self,int index,std::vector< aiFace * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiFace_Sm__Sg__RemoveAt(std::vector< aiFace * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiFace_Sm__Sg__RemoveRange(std::vector< aiFace * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiFace * > *std_vector_Sl_aiFace_Sm__Sg__Repeat(aiFace *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiFace * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiFace_Sm__Sg__Reverse__SWIG_0(std::vector< aiFace * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiFace_Sm__Sg__Reverse__SWIG_1(std::vector< aiFace * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiFace_Sm__Sg__SetRange(std::vector< aiFace * > *self,int index,std::vector< aiFace * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiFace_Sm__Sg__Contains(std::vector< aiFace * > *self,aiFace *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiFace_Sm__Sg__IndexOf(std::vector< aiFace * > *self,aiFace *const &value){ - int index = -1; - std::vector< aiFace * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiFace_Sm__Sg__LastIndexOf(std::vector< aiFace * > *self,aiFace *const &value){ - int index = -1; - std::vector< aiFace * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiFace_Sm__Sg__Remove(std::vector< aiFace * > *self,aiFace *const &value){ - std::vector< aiFace * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiLight * > *new_std_vector_Sl_aiLight_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiLight * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiLight * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiLight *std_vector_Sl_aiLight_Sm__Sg__getitemcopy(std::vector< aiLight * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiLight * >::const_reference std_vector_Sl_aiLight_Sm__Sg__getitem(std::vector< aiLight * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiLight_Sm__Sg__setitem(std::vector< aiLight * > *self,int index,aiLight *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiLight_Sm__Sg__AddRange(std::vector< aiLight * > *self,std::vector< aiLight * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiLight * > *std_vector_Sl_aiLight_Sm__Sg__GetRange(std::vector< aiLight * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiLight * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiLight_Sm__Sg__Insert(std::vector< aiLight * > *self,int index,aiLight *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiLight_Sm__Sg__InsertRange(std::vector< aiLight * > *self,int index,std::vector< aiLight * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiLight_Sm__Sg__RemoveAt(std::vector< aiLight * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiLight_Sm__Sg__RemoveRange(std::vector< aiLight * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiLight * > *std_vector_Sl_aiLight_Sm__Sg__Repeat(aiLight *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiLight * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiLight_Sm__Sg__Reverse__SWIG_0(std::vector< aiLight * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiLight_Sm__Sg__Reverse__SWIG_1(std::vector< aiLight * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiLight_Sm__Sg__SetRange(std::vector< aiLight * > *self,int index,std::vector< aiLight * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiLight_Sm__Sg__Contains(std::vector< aiLight * > *self,aiLight *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiLight_Sm__Sg__IndexOf(std::vector< aiLight * > *self,aiLight *const &value){ - int index = -1; - std::vector< aiLight * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiLight_Sm__Sg__LastIndexOf(std::vector< aiLight * > *self,aiLight *const &value){ - int index = -1; - std::vector< aiLight * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiLight_Sm__Sg__Remove(std::vector< aiLight * > *self,aiLight *const &value){ - std::vector< aiLight * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiMaterial * > *new_std_vector_Sl_aiMaterial_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiMaterial * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiMaterial * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiMaterial *std_vector_Sl_aiMaterial_Sm__Sg__getitemcopy(std::vector< aiMaterial * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiMaterial * >::const_reference std_vector_Sl_aiMaterial_Sm__Sg__getitem(std::vector< aiMaterial * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMaterial_Sm__Sg__setitem(std::vector< aiMaterial * > *self,int index,aiMaterial *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMaterial_Sm__Sg__AddRange(std::vector< aiMaterial * > *self,std::vector< aiMaterial * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiMaterial * > *std_vector_Sl_aiMaterial_Sm__Sg__GetRange(std::vector< aiMaterial * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiMaterial * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiMaterial_Sm__Sg__Insert(std::vector< aiMaterial * > *self,int index,aiMaterial *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMaterial_Sm__Sg__InsertRange(std::vector< aiMaterial * > *self,int index,std::vector< aiMaterial * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMaterial_Sm__Sg__RemoveAt(std::vector< aiMaterial * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMaterial_Sm__Sg__RemoveRange(std::vector< aiMaterial * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiMaterial * > *std_vector_Sl_aiMaterial_Sm__Sg__Repeat(aiMaterial *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiMaterial * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiMaterial_Sm__Sg__Reverse__SWIG_0(std::vector< aiMaterial * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiMaterial_Sm__Sg__Reverse__SWIG_1(std::vector< aiMaterial * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiMaterial_Sm__Sg__SetRange(std::vector< aiMaterial * > *self,int index,std::vector< aiMaterial * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiMaterial_Sm__Sg__Contains(std::vector< aiMaterial * > *self,aiMaterial *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiMaterial_Sm__Sg__IndexOf(std::vector< aiMaterial * > *self,aiMaterial *const &value){ - int index = -1; - std::vector< aiMaterial * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiMaterial_Sm__Sg__LastIndexOf(std::vector< aiMaterial * > *self,aiMaterial *const &value){ - int index = -1; - std::vector< aiMaterial * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiMaterial_Sm__Sg__Remove(std::vector< aiMaterial * > *self,aiMaterial *const &value){ - std::vector< aiMaterial * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiMeshAnim * > *new_std_vector_Sl_aiMeshAnim_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiMeshAnim * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiMeshAnim * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiMeshAnim *std_vector_Sl_aiMeshAnim_Sm__Sg__getitemcopy(std::vector< aiMeshAnim * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiMeshAnim * >::const_reference std_vector_Sl_aiMeshAnim_Sm__Sg__getitem(std::vector< aiMeshAnim * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMeshAnim_Sm__Sg__setitem(std::vector< aiMeshAnim * > *self,int index,aiMeshAnim *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMeshAnim_Sm__Sg__AddRange(std::vector< aiMeshAnim * > *self,std::vector< aiMeshAnim * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiMeshAnim * > *std_vector_Sl_aiMeshAnim_Sm__Sg__GetRange(std::vector< aiMeshAnim * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiMeshAnim * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiMeshAnim_Sm__Sg__Insert(std::vector< aiMeshAnim * > *self,int index,aiMeshAnim *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMeshAnim_Sm__Sg__InsertRange(std::vector< aiMeshAnim * > *self,int index,std::vector< aiMeshAnim * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMeshAnim_Sm__Sg__RemoveAt(std::vector< aiMeshAnim * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMeshAnim_Sm__Sg__RemoveRange(std::vector< aiMeshAnim * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiMeshAnim * > *std_vector_Sl_aiMeshAnim_Sm__Sg__Repeat(aiMeshAnim *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiMeshAnim * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiMeshAnim_Sm__Sg__Reverse__SWIG_0(std::vector< aiMeshAnim * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiMeshAnim_Sm__Sg__Reverse__SWIG_1(std::vector< aiMeshAnim * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiMeshAnim_Sm__Sg__SetRange(std::vector< aiMeshAnim * > *self,int index,std::vector< aiMeshAnim * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiMeshAnim_Sm__Sg__Contains(std::vector< aiMeshAnim * > *self,aiMeshAnim *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiMeshAnim_Sm__Sg__IndexOf(std::vector< aiMeshAnim * > *self,aiMeshAnim *const &value){ - int index = -1; - std::vector< aiMeshAnim * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiMeshAnim_Sm__Sg__LastIndexOf(std::vector< aiMeshAnim * > *self,aiMeshAnim *const &value){ - int index = -1; - std::vector< aiMeshAnim * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiMeshAnim_Sm__Sg__Remove(std::vector< aiMeshAnim * > *self,aiMeshAnim *const &value){ - std::vector< aiMeshAnim * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiMeshKey * > *new_std_vector_Sl_aiMeshKey_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiMeshKey * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiMeshKey * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiMeshKey *std_vector_Sl_aiMeshKey_Sm__Sg__getitemcopy(std::vector< aiMeshKey * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiMeshKey * >::const_reference std_vector_Sl_aiMeshKey_Sm__Sg__getitem(std::vector< aiMeshKey * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMeshKey_Sm__Sg__setitem(std::vector< aiMeshKey * > *self,int index,aiMeshKey *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMeshKey_Sm__Sg__AddRange(std::vector< aiMeshKey * > *self,std::vector< aiMeshKey * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiMeshKey * > *std_vector_Sl_aiMeshKey_Sm__Sg__GetRange(std::vector< aiMeshKey * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiMeshKey * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiMeshKey_Sm__Sg__Insert(std::vector< aiMeshKey * > *self,int index,aiMeshKey *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMeshKey_Sm__Sg__InsertRange(std::vector< aiMeshKey * > *self,int index,std::vector< aiMeshKey * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMeshKey_Sm__Sg__RemoveAt(std::vector< aiMeshKey * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMeshKey_Sm__Sg__RemoveRange(std::vector< aiMeshKey * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiMeshKey * > *std_vector_Sl_aiMeshKey_Sm__Sg__Repeat(aiMeshKey *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiMeshKey * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiMeshKey_Sm__Sg__Reverse__SWIG_0(std::vector< aiMeshKey * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiMeshKey_Sm__Sg__Reverse__SWIG_1(std::vector< aiMeshKey * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiMeshKey_Sm__Sg__SetRange(std::vector< aiMeshKey * > *self,int index,std::vector< aiMeshKey * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiMeshKey_Sm__Sg__Contains(std::vector< aiMeshKey * > *self,aiMeshKey *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiMeshKey_Sm__Sg__IndexOf(std::vector< aiMeshKey * > *self,aiMeshKey *const &value){ - int index = -1; - std::vector< aiMeshKey * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiMeshKey_Sm__Sg__LastIndexOf(std::vector< aiMeshKey * > *self,aiMeshKey *const &value){ - int index = -1; - std::vector< aiMeshKey * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiMeshKey_Sm__Sg__Remove(std::vector< aiMeshKey * > *self,aiMeshKey *const &value){ - std::vector< aiMeshKey * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiMesh * > *new_std_vector_Sl_aiMesh_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiMesh * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiMesh * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiMesh *std_vector_Sl_aiMesh_Sm__Sg__getitemcopy(std::vector< aiMesh * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiMesh * >::const_reference std_vector_Sl_aiMesh_Sm__Sg__getitem(std::vector< aiMesh * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMesh_Sm__Sg__setitem(std::vector< aiMesh * > *self,int index,aiMesh *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMesh_Sm__Sg__AddRange(std::vector< aiMesh * > *self,std::vector< aiMesh * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiMesh * > *std_vector_Sl_aiMesh_Sm__Sg__GetRange(std::vector< aiMesh * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiMesh * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiMesh_Sm__Sg__Insert(std::vector< aiMesh * > *self,int index,aiMesh *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMesh_Sm__Sg__InsertRange(std::vector< aiMesh * > *self,int index,std::vector< aiMesh * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMesh_Sm__Sg__RemoveAt(std::vector< aiMesh * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiMesh_Sm__Sg__RemoveRange(std::vector< aiMesh * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiMesh * > *std_vector_Sl_aiMesh_Sm__Sg__Repeat(aiMesh *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiMesh * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiMesh_Sm__Sg__Reverse__SWIG_0(std::vector< aiMesh * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiMesh_Sm__Sg__Reverse__SWIG_1(std::vector< aiMesh * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiMesh_Sm__Sg__SetRange(std::vector< aiMesh * > *self,int index,std::vector< aiMesh * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiMesh_Sm__Sg__Contains(std::vector< aiMesh * > *self,aiMesh *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiMesh_Sm__Sg__IndexOf(std::vector< aiMesh * > *self,aiMesh *const &value){ - int index = -1; - std::vector< aiMesh * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiMesh_Sm__Sg__LastIndexOf(std::vector< aiMesh * > *self,aiMesh *const &value){ - int index = -1; - std::vector< aiMesh * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiMesh_Sm__Sg__Remove(std::vector< aiMesh * > *self,aiMesh *const &value){ - std::vector< aiMesh * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiNode * > *new_std_vector_Sl_aiNode_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiNode * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiNode * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiNode *std_vector_Sl_aiNode_Sm__Sg__getitemcopy(std::vector< aiNode * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiNode * >::const_reference std_vector_Sl_aiNode_Sm__Sg__getitem(std::vector< aiNode * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiNode_Sm__Sg__setitem(std::vector< aiNode * > *self,int index,aiNode *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiNode_Sm__Sg__AddRange(std::vector< aiNode * > *self,std::vector< aiNode * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiNode * > *std_vector_Sl_aiNode_Sm__Sg__GetRange(std::vector< aiNode * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiNode * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiNode_Sm__Sg__Insert(std::vector< aiNode * > *self,int index,aiNode *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiNode_Sm__Sg__InsertRange(std::vector< aiNode * > *self,int index,std::vector< aiNode * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiNode_Sm__Sg__RemoveAt(std::vector< aiNode * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiNode_Sm__Sg__RemoveRange(std::vector< aiNode * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiNode * > *std_vector_Sl_aiNode_Sm__Sg__Repeat(aiNode *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiNode * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiNode_Sm__Sg__Reverse__SWIG_0(std::vector< aiNode * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiNode_Sm__Sg__Reverse__SWIG_1(std::vector< aiNode * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiNode_Sm__Sg__SetRange(std::vector< aiNode * > *self,int index,std::vector< aiNode * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiNode_Sm__Sg__Contains(std::vector< aiNode * > *self,aiNode *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiNode_Sm__Sg__IndexOf(std::vector< aiNode * > *self,aiNode *const &value){ - int index = -1; - std::vector< aiNode * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiNode_Sm__Sg__LastIndexOf(std::vector< aiNode * > *self,aiNode *const &value){ - int index = -1; - std::vector< aiNode * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiNode_Sm__Sg__Remove(std::vector< aiNode * > *self,aiNode *const &value){ - std::vector< aiNode * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiNodeAnim * > *new_std_vector_Sl_aiNodeAnim_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiNodeAnim * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiNodeAnim * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiNodeAnim *std_vector_Sl_aiNodeAnim_Sm__Sg__getitemcopy(std::vector< aiNodeAnim * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiNodeAnim * >::const_reference std_vector_Sl_aiNodeAnim_Sm__Sg__getitem(std::vector< aiNodeAnim * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiNodeAnim_Sm__Sg__setitem(std::vector< aiNodeAnim * > *self,int index,aiNodeAnim *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiNodeAnim_Sm__Sg__AddRange(std::vector< aiNodeAnim * > *self,std::vector< aiNodeAnim * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiNodeAnim * > *std_vector_Sl_aiNodeAnim_Sm__Sg__GetRange(std::vector< aiNodeAnim * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiNodeAnim * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiNodeAnim_Sm__Sg__Insert(std::vector< aiNodeAnim * > *self,int index,aiNodeAnim *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiNodeAnim_Sm__Sg__InsertRange(std::vector< aiNodeAnim * > *self,int index,std::vector< aiNodeAnim * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiNodeAnim_Sm__Sg__RemoveAt(std::vector< aiNodeAnim * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiNodeAnim_Sm__Sg__RemoveRange(std::vector< aiNodeAnim * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiNodeAnim * > *std_vector_Sl_aiNodeAnim_Sm__Sg__Repeat(aiNodeAnim *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiNodeAnim * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiNodeAnim_Sm__Sg__Reverse__SWIG_0(std::vector< aiNodeAnim * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiNodeAnim_Sm__Sg__Reverse__SWIG_1(std::vector< aiNodeAnim * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiNodeAnim_Sm__Sg__SetRange(std::vector< aiNodeAnim * > *self,int index,std::vector< aiNodeAnim * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiNodeAnim_Sm__Sg__Contains(std::vector< aiNodeAnim * > *self,aiNodeAnim *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiNodeAnim_Sm__Sg__IndexOf(std::vector< aiNodeAnim * > *self,aiNodeAnim *const &value){ - int index = -1; - std::vector< aiNodeAnim * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiNodeAnim_Sm__Sg__LastIndexOf(std::vector< aiNodeAnim * > *self,aiNodeAnim *const &value){ - int index = -1; - std::vector< aiNodeAnim * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiNodeAnim_Sm__Sg__Remove(std::vector< aiNodeAnim * > *self,aiNodeAnim *const &value){ - std::vector< aiNodeAnim * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiQuatKey * > *new_std_vector_Sl_aiQuatKey_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiQuatKey * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiQuatKey * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiQuatKey *std_vector_Sl_aiQuatKey_Sm__Sg__getitemcopy(std::vector< aiQuatKey * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiQuatKey * >::const_reference std_vector_Sl_aiQuatKey_Sm__Sg__getitem(std::vector< aiQuatKey * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiQuatKey_Sm__Sg__setitem(std::vector< aiQuatKey * > *self,int index,aiQuatKey *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiQuatKey_Sm__Sg__AddRange(std::vector< aiQuatKey * > *self,std::vector< aiQuatKey * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiQuatKey * > *std_vector_Sl_aiQuatKey_Sm__Sg__GetRange(std::vector< aiQuatKey * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiQuatKey * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiQuatKey_Sm__Sg__Insert(std::vector< aiQuatKey * > *self,int index,aiQuatKey *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiQuatKey_Sm__Sg__InsertRange(std::vector< aiQuatKey * > *self,int index,std::vector< aiQuatKey * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiQuatKey_Sm__Sg__RemoveAt(std::vector< aiQuatKey * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiQuatKey_Sm__Sg__RemoveRange(std::vector< aiQuatKey * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiQuatKey * > *std_vector_Sl_aiQuatKey_Sm__Sg__Repeat(aiQuatKey *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiQuatKey * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiQuatKey_Sm__Sg__Reverse__SWIG_0(std::vector< aiQuatKey * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiQuatKey_Sm__Sg__Reverse__SWIG_1(std::vector< aiQuatKey * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiQuatKey_Sm__Sg__SetRange(std::vector< aiQuatKey * > *self,int index,std::vector< aiQuatKey * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiQuatKey_Sm__Sg__Contains(std::vector< aiQuatKey * > *self,aiQuatKey *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiQuatKey_Sm__Sg__IndexOf(std::vector< aiQuatKey * > *self,aiQuatKey *const &value){ - int index = -1; - std::vector< aiQuatKey * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiQuatKey_Sm__Sg__LastIndexOf(std::vector< aiQuatKey * > *self,aiQuatKey *const &value){ - int index = -1; - std::vector< aiQuatKey * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiQuatKey_Sm__Sg__Remove(std::vector< aiQuatKey * > *self,aiQuatKey *const &value){ - std::vector< aiQuatKey * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiTexture * > *new_std_vector_Sl_aiTexture_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiTexture * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiTexture * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiTexture *std_vector_Sl_aiTexture_Sm__Sg__getitemcopy(std::vector< aiTexture * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiTexture * >::const_reference std_vector_Sl_aiTexture_Sm__Sg__getitem(std::vector< aiTexture * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiTexture_Sm__Sg__setitem(std::vector< aiTexture * > *self,int index,aiTexture *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiTexture_Sm__Sg__AddRange(std::vector< aiTexture * > *self,std::vector< aiTexture * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiTexture * > *std_vector_Sl_aiTexture_Sm__Sg__GetRange(std::vector< aiTexture * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiTexture * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiTexture_Sm__Sg__Insert(std::vector< aiTexture * > *self,int index,aiTexture *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiTexture_Sm__Sg__InsertRange(std::vector< aiTexture * > *self,int index,std::vector< aiTexture * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiTexture_Sm__Sg__RemoveAt(std::vector< aiTexture * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiTexture_Sm__Sg__RemoveRange(std::vector< aiTexture * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiTexture * > *std_vector_Sl_aiTexture_Sm__Sg__Repeat(aiTexture *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiTexture * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiTexture_Sm__Sg__Reverse__SWIG_0(std::vector< aiTexture * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiTexture_Sm__Sg__Reverse__SWIG_1(std::vector< aiTexture * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiTexture_Sm__Sg__SetRange(std::vector< aiTexture * > *self,int index,std::vector< aiTexture * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiTexture_Sm__Sg__Contains(std::vector< aiTexture * > *self,aiTexture *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiTexture_Sm__Sg__IndexOf(std::vector< aiTexture * > *self,aiTexture *const &value){ - int index = -1; - std::vector< aiTexture * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiTexture_Sm__Sg__LastIndexOf(std::vector< aiTexture * > *self,aiTexture *const &value){ - int index = -1; - std::vector< aiTexture * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiTexture_Sm__Sg__Remove(std::vector< aiTexture * > *self,aiTexture *const &value){ - std::vector< aiTexture * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiVector3D * > *new_std_vector_Sl_aiVector3D_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiVector3t< float > * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiVector3t< float > * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiVector3t< float > *std_vector_Sl_aiVector3D_Sm__Sg__getitemcopy(std::vector< aiVector3D * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiVector3t< float > * >::const_reference std_vector_Sl_aiVector3D_Sm__Sg__getitem(std::vector< aiVector3D * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVector3D_Sm__Sg__setitem(std::vector< aiVector3D * > *self,int index,aiVector3t< float > *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVector3D_Sm__Sg__AddRange(std::vector< aiVector3D * > *self,std::vector< aiVector3t< float > * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiVector3t< float > * > *std_vector_Sl_aiVector3D_Sm__Sg__GetRange(std::vector< aiVector3D * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiVector3t< float > * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiVector3D_Sm__Sg__Insert(std::vector< aiVector3D * > *self,int index,aiVector3t< float > *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVector3D_Sm__Sg__InsertRange(std::vector< aiVector3D * > *self,int index,std::vector< aiVector3t< float > * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVector3D_Sm__Sg__RemoveAt(std::vector< aiVector3D * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVector3D_Sm__Sg__RemoveRange(std::vector< aiVector3D * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiVector3t< float > * > *std_vector_Sl_aiVector3D_Sm__Sg__Repeat(aiVector3t< float > *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiVector3t< float > * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiVector3D_Sm__Sg__Reverse__SWIG_0(std::vector< aiVector3D * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiVector3D_Sm__Sg__Reverse__SWIG_1(std::vector< aiVector3D * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiVector3D_Sm__Sg__SetRange(std::vector< aiVector3D * > *self,int index,std::vector< aiVector3t< float > * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiVector3D_Sm__Sg__Contains(std::vector< aiVector3D * > *self,aiVector3t< float > *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiVector3D_Sm__Sg__IndexOf(std::vector< aiVector3D * > *self,aiVector3t< float > *const &value){ - int index = -1; - std::vector< aiVector3t< float > * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiVector3D_Sm__Sg__LastIndexOf(std::vector< aiVector3D * > *self,aiVector3t< float > *const &value){ - int index = -1; - std::vector< aiVector3t< float > * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiVector3D_Sm__Sg__Remove(std::vector< aiVector3D * > *self,aiVector3t< float > *const &value){ - std::vector< aiVector3t< float > * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< std::vector< aiVector3D * > > *new_std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg___SWIG_2(int capacity){ - std::vector< std::vector< aiVector3D * > >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< std::vector< aiVector3D * > >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN std::vector< aiVector3D * > std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__getitemcopy(std::vector< std::vector< aiVector3D * > > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< std::vector< aiVector3t< float > * > >::const_reference std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__getitem(std::vector< std::vector< aiVector3D * > > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__setitem(std::vector< std::vector< aiVector3D * > > *self,int index,std::vector< aiVector3D * > const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__AddRange(std::vector< std::vector< aiVector3D * > > *self,std::vector< std::vector< aiVector3D * > > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< std::vector< aiVector3D * > > *std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__GetRange(std::vector< std::vector< aiVector3D * > > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< std::vector< aiVector3D * > >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__Insert(std::vector< std::vector< aiVector3D * > > *self,int index,std::vector< aiVector3D * > const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__InsertRange(std::vector< std::vector< aiVector3D * > > *self,int index,std::vector< std::vector< aiVector3D * > > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__RemoveAt(std::vector< std::vector< aiVector3D * > > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__RemoveRange(std::vector< std::vector< aiVector3D * > > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< std::vector< aiVector3D * > > *std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__Repeat(std::vector< aiVector3D * > const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< std::vector< aiVector3D * > >(count, value); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__Reverse__SWIG_0(std::vector< std::vector< aiVector3D * > > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__Reverse__SWIG_1(std::vector< std::vector< aiVector3D * > > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__SetRange(std::vector< std::vector< aiVector3D * > > *self,int index,std::vector< std::vector< aiVector3D * > > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN std::vector< aiVectorKey * > *new_std_vector_Sl_aiVectorKey_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiVectorKey * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiVectorKey * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiVectorKey *std_vector_Sl_aiVectorKey_Sm__Sg__getitemcopy(std::vector< aiVectorKey * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiVectorKey * >::const_reference std_vector_Sl_aiVectorKey_Sm__Sg__getitem(std::vector< aiVectorKey * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVectorKey_Sm__Sg__setitem(std::vector< aiVectorKey * > *self,int index,aiVectorKey *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVectorKey_Sm__Sg__AddRange(std::vector< aiVectorKey * > *self,std::vector< aiVectorKey * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiVectorKey * > *std_vector_Sl_aiVectorKey_Sm__Sg__GetRange(std::vector< aiVectorKey * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiVectorKey * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiVectorKey_Sm__Sg__Insert(std::vector< aiVectorKey * > *self,int index,aiVectorKey *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVectorKey_Sm__Sg__InsertRange(std::vector< aiVectorKey * > *self,int index,std::vector< aiVectorKey * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVectorKey_Sm__Sg__RemoveAt(std::vector< aiVectorKey * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVectorKey_Sm__Sg__RemoveRange(std::vector< aiVectorKey * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiVectorKey * > *std_vector_Sl_aiVectorKey_Sm__Sg__Repeat(aiVectorKey *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiVectorKey * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiVectorKey_Sm__Sg__Reverse__SWIG_0(std::vector< aiVectorKey * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiVectorKey_Sm__Sg__Reverse__SWIG_1(std::vector< aiVectorKey * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiVectorKey_Sm__Sg__SetRange(std::vector< aiVectorKey * > *self,int index,std::vector< aiVectorKey * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiVectorKey_Sm__Sg__Contains(std::vector< aiVectorKey * > *self,aiVectorKey *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiVectorKey_Sm__Sg__IndexOf(std::vector< aiVectorKey * > *self,aiVectorKey *const &value){ - int index = -1; - std::vector< aiVectorKey * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiVectorKey_Sm__Sg__LastIndexOf(std::vector< aiVectorKey * > *self,aiVectorKey *const &value){ - int index = -1; - std::vector< aiVectorKey * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiVectorKey_Sm__Sg__Remove(std::vector< aiVectorKey * > *self,aiVectorKey *const &value){ - std::vector< aiVectorKey * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } -SWIGINTERN std::vector< aiVertexWeight * > *new_std_vector_Sl_aiVertexWeight_Sm__Sg___SWIG_2(int capacity){ - std::vector< aiVertexWeight * >* pv = 0; - if (capacity >= 0) { - pv = new std::vector< aiVertexWeight * >(); - pv->reserve(capacity); - } else { - throw std::out_of_range("capacity"); - } - return pv; - } -SWIGINTERN aiVertexWeight *std_vector_Sl_aiVertexWeight_Sm__Sg__getitemcopy(std::vector< aiVertexWeight * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN std::vector< aiVertexWeight * >::const_reference std_vector_Sl_aiVertexWeight_Sm__Sg__getitem(std::vector< aiVertexWeight * > *self,int index){ - if (index>=0 && index<(int)self->size()) - return (*self)[index]; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVertexWeight_Sm__Sg__setitem(std::vector< aiVertexWeight * > *self,int index,aiVertexWeight *const &val){ - if (index>=0 && index<(int)self->size()) - (*self)[index] = val; - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVertexWeight_Sm__Sg__AddRange(std::vector< aiVertexWeight * > *self,std::vector< aiVertexWeight * > const &values){ - self->insert(self->end(), values.begin(), values.end()); - } -SWIGINTERN std::vector< aiVertexWeight * > *std_vector_Sl_aiVertexWeight_Sm__Sg__GetRange(std::vector< aiVertexWeight * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - return new std::vector< aiVertexWeight * >(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiVertexWeight_Sm__Sg__Insert(std::vector< aiVertexWeight * > *self,int index,aiVertexWeight *const &x){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, x); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVertexWeight_Sm__Sg__InsertRange(std::vector< aiVertexWeight * > *self,int index,std::vector< aiVertexWeight * > const &values){ - if (index>=0 && index<(int)self->size()+1) - self->insert(self->begin()+index, values.begin(), values.end()); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVertexWeight_Sm__Sg__RemoveAt(std::vector< aiVertexWeight * > *self,int index){ - if (index>=0 && index<(int)self->size()) - self->erase(self->begin() + index); - else - throw std::out_of_range("index"); - } -SWIGINTERN void std_vector_Sl_aiVertexWeight_Sm__Sg__RemoveRange(std::vector< aiVertexWeight * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - self->erase(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN std::vector< aiVertexWeight * > *std_vector_Sl_aiVertexWeight_Sm__Sg__Repeat(aiVertexWeight *const &value,int count){ - if (count < 0) - throw std::out_of_range("count"); - return new std::vector< aiVertexWeight * >(count, value); - } -SWIGINTERN void std_vector_Sl_aiVertexWeight_Sm__Sg__Reverse__SWIG_0(std::vector< aiVertexWeight * > *self){ - std::reverse(self->begin(), self->end()); - } -SWIGINTERN void std_vector_Sl_aiVertexWeight_Sm__Sg__Reverse__SWIG_1(std::vector< aiVertexWeight * > *self,int index,int count){ - if (index < 0) - throw std::out_of_range("index"); - if (count < 0) - throw std::out_of_range("count"); - if (index >= (int)self->size()+1 || index+count > (int)self->size()) - throw std::invalid_argument("invalid range"); - std::reverse(self->begin()+index, self->begin()+index+count); - } -SWIGINTERN void std_vector_Sl_aiVertexWeight_Sm__Sg__SetRange(std::vector< aiVertexWeight * > *self,int index,std::vector< aiVertexWeight * > const &values){ - if (index < 0) - throw std::out_of_range("index"); - if (index+values.size() > self->size()) - throw std::out_of_range("index"); - std::copy(values.begin(), values.end(), self->begin()+index); - } -SWIGINTERN bool std_vector_Sl_aiVertexWeight_Sm__Sg__Contains(std::vector< aiVertexWeight * > *self,aiVertexWeight *const &value){ - return std::find(self->begin(), self->end(), value) != self->end(); - } -SWIGINTERN int std_vector_Sl_aiVertexWeight_Sm__Sg__IndexOf(std::vector< aiVertexWeight * > *self,aiVertexWeight *const &value){ - int index = -1; - std::vector< aiVertexWeight * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) - index = (int)(it - self->begin()); - return index; - } -SWIGINTERN int std_vector_Sl_aiVertexWeight_Sm__Sg__LastIndexOf(std::vector< aiVertexWeight * > *self,aiVertexWeight *const &value){ - int index = -1; - std::vector< aiVertexWeight * >::reverse_iterator rit = std::find(self->rbegin(), self->rend(), value); - if (rit != self->rend()) - index = (int)(self->rend() - 1 - rit); - return index; - } -SWIGINTERN bool std_vector_Sl_aiVertexWeight_Sm__Sg__Remove(std::vector< aiVertexWeight * > *self,aiVertexWeight *const &value){ - std::vector< aiVertexWeight * >::iterator it = std::find(self->begin(), self->end(), value); - if (it != self->end()) { - self->erase(it); - return true; - } - return false; - } - -#ifdef __cplusplus -extern "C" { -#endif - -SWIGEXPORT double SWIGSTDCALL CSharp_AI_MATH_PI_get() { - double jresult ; - double result; - - result = (double)((3.141592653589793238462643383279)); - jresult = result; - return jresult; -} - - -SWIGEXPORT double SWIGSTDCALL CSharp_AI_MATH_TWO_PI_get() { - double jresult ; - double result; - - result = (double)(((3.141592653589793238462643383279)*2.0)); - jresult = result; - return jresult; -} - - -SWIGEXPORT double SWIGSTDCALL CSharp_AI_MATH_HALF_PI_get() { - double jresult ; - double result; - - result = (double)(((3.141592653589793238462643383279)*0.5)); - jresult = result; - return jresult; -} - - -SWIGEXPORT double SWIGSTDCALL CSharp_AI_MATH_PI_F_get() { - double jresult ; - double result; - - result = (double)((3.1415926538)); - jresult = result; - return jresult; -} - - -SWIGEXPORT double SWIGSTDCALL CSharp_AI_MATH_TWO_PI_F_get() { - double jresult ; - double result; - - result = (double)(((3.1415926538)*2.0)); - jresult = result; - return jresult; -} - - -SWIGEXPORT double SWIGSTDCALL CSharp_AI_MATH_HALF_PI_F_get() { - double jresult ; - double result; - - result = (double)(((3.1415926538)*0.5)); - jresult = result; - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_GLOB_MEASURE_TIME_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("GLOB_MEASURE_TIME"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_SBBC_MAX_BONES_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_SBBC_MAX_BONES"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_SBBC_DEFAULT_MAX_BONES_get() { - int jresult ; - int result; - - result = (int)(60); - jresult = result; - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_CT_MAX_SMOOTHING_ANGLE"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_CT_TEXTURE_CHANNEL_INDEX_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_CT_TEXTURE_CHANNEL_INDEX"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_GSN_MAX_SMOOTHING_ANGLE"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_MDL_COLORMAP_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_MDL_COLORMAP"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_RRM_EXCLUDE_LIST_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_RRM_EXCLUDE_LIST"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_PTV_KEEP_HIERARCHY_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_PTV_KEEP_HIERARCHY"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_PTV_NORMALIZE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_PTV_NORMALIZE"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_FD_REMOVE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_FD_REMOVE"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_OG_EXCLUDE_LIST_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_OG_EXCLUDE_LIST"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_SLM_TRIANGLE_LIMIT_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_SLM_TRIANGLE_LIMIT"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_SLM_DEFAULT_MAX_TRIANGLES_get() { - int jresult ; - int result; - - result = (int)(1000000); - jresult = result; - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_SLM_VERTEX_LIMIT_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_SLM_VERTEX_LIMIT"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_SLM_DEFAULT_MAX_VERTICES_get() { - int jresult ; - int result; - - result = (int)(1000000); - jresult = result; - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_LBW_MAX_WEIGHTS_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_LBW_MAX_WEIGHTS"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_LMW_MAX_WEIGHTS_get() { - int jresult ; - int result; - - result = (int)(0x4); - jresult = result; - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_DB_THRESHOLD_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_DB_THRESHOLD"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT double SWIGSTDCALL CSharp_AI_DEBONE_THRESHOLD_get() { - double jresult ; - double result; - - result = (double)(1.0); - jresult = result; - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_DB_ALL_OR_NONE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_DB_ALL_OR_NONE"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_PP_ICL_PTCACHE_SIZE_get() { - int jresult ; - int result; - - result = (int)(12); - jresult = result; - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_ICL_PTCACHE_SIZE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_ICL_PTCACHE_SIZE"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_RVC_FLAGS_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_RVC_FLAGS"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_SBP_REMOVE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_SBP_REMOVE"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_FID_ANIM_ACCURACY_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_FID_ANIM_ACCURACY"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_UVTRAFO_SCALING_get() { - int jresult ; - int result; - - result = (int)(0x1); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_UVTRAFO_ROTATION_get() { - int jresult ; - int result; - - result = (int)(0x2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_UVTRAFO_TRANSLATION_get() { - int jresult ; - int result; - - result = (int)(0x4); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_UVTRAFO_ALL_get() { - int jresult ; - int result; - - result = (int)((0x1|0x2|0x4)); - jresult = result; - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_PP_TUV_EVALUATE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("PP_TUV_EVALUATE"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_FAVOUR_SPEED_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("FAVOUR_SPEED"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_GLOBAL_KEYFRAME_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_GLOBAL_KEYFRAME"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_MD3_KEYFRAME_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_MD3_KEYFRAME"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_MD2_KEYFRAME_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_MD2_KEYFRAME"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_MDL_KEYFRAME_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_MDL_KEYFRAME"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_MDC_KEYFRAME_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_MDC_KEYFRAME"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_SMD_KEYFRAME_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_SMD_KEYFRAME"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_UNREAL_KEYFRAME_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_UNREAL_KEYFRAME"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_AC_SEPARATE_BFCULL_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_AC_SEPARATE_BFCULL"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_AC_EVAL_SUBDIVISION_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_AC_EVAL_SUBDIVISION"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_UNREAL_HANDLE_FLAGS_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("UNREAL_HANDLE_FLAGS"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_TER_MAKE_UVS_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_TER_MAKE_UVS"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_ASE_RECONSTRUCT_NORMALS_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_ASE_RECONSTRUCT_NORMALS"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_MD3_HANDLE_MULTIPART_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_MD3_HANDLE_MULTIPART"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_MD3_SKIN_NAME_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_MD3_SKIN_NAME"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_MD3_SHADER_SRC_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_MD3_SHADER_SRC"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_LWO_ONE_LAYER_ONLY_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_LWO_ONE_LAYER_ONLY"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_MD5_NO_ANIM_AUTOLOAD_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_MD5_NO_ANIM_AUTOLOAD"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_LWS_ANIM_START_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_LWS_ANIM_START"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_LWS_ANIM_END_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_LWS_ANIM_END"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_IRR_ANIM_FPS_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_IRR_ANIM_FPS"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_OGRE_MATERIAL_FILE"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_IFC_SKIP_CURVE_REPRESENTATIONS_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_IFC_SKIP_CURVE_REPRESENTATIONS"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_CONFIG_IMPORT_IFC_CUSTOM_TRIANGULATION_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("IMPORT_IFC_CUSTOM_TRIANGULATION"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_MAXLEN_get() { - unsigned long jresult ; - size_t result; - - result = (size_t)MAXLEN; - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiPlane__SWIG_0() { - void * jresult ; - aiPlane *result = 0 ; - - result = (aiPlane *)new aiPlane(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiPlane__SWIG_1(float jarg1, float jarg2, float jarg3, float jarg4) { - void * jresult ; - float arg1 ; - float arg2 ; - float arg3 ; - float arg4 ; - aiPlane *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (float)jarg2; - arg3 = (float)jarg3; - arg4 = (float)jarg4; - result = (aiPlane *)new aiPlane(arg1,arg2,arg3,arg4); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiPlane__SWIG_2(void * jarg1) { - void * jresult ; - aiPlane *arg1 = 0 ; - aiPlane *result = 0 ; - - arg1 = (aiPlane *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiPlane const & type is null", 0); - return 0; - } - result = (aiPlane *)new aiPlane((aiPlane const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiPlane_a_set(void * jarg1, float jarg2) { - aiPlane *arg1 = (aiPlane *) 0 ; - float arg2 ; - - arg1 = (aiPlane *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->a = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiPlane_a_get(void * jarg1) { - float jresult ; - aiPlane *arg1 = (aiPlane *) 0 ; - float result; - - arg1 = (aiPlane *)jarg1; - result = (float) ((arg1)->a); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiPlane_b_set(void * jarg1, float jarg2) { - aiPlane *arg1 = (aiPlane *) 0 ; - float arg2 ; - - arg1 = (aiPlane *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->b = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiPlane_b_get(void * jarg1) { - float jresult ; - aiPlane *arg1 = (aiPlane *) 0 ; - float result; - - arg1 = (aiPlane *)jarg1; - result = (float) ((arg1)->b); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiPlane_c_set(void * jarg1, float jarg2) { - aiPlane *arg1 = (aiPlane *) 0 ; - float arg2 ; - - arg1 = (aiPlane *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->c = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiPlane_c_get(void * jarg1) { - float jresult ; - aiPlane *arg1 = (aiPlane *) 0 ; - float result; - - arg1 = (aiPlane *)jarg1; - result = (float) ((arg1)->c); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiPlane_d_set(void * jarg1, float jarg2) { - aiPlane *arg1 = (aiPlane *) 0 ; - float arg2 ; - - arg1 = (aiPlane *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->d = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiPlane_d_get(void * jarg1) { - float jresult ; - aiPlane *arg1 = (aiPlane *) 0 ; - float result; - - arg1 = (aiPlane *)jarg1; - result = (float) ((arg1)->d); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiPlane(void * jarg1) { - aiPlane *arg1 = (aiPlane *) 0 ; - - arg1 = (aiPlane *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiRay__SWIG_0() { - void * jresult ; - aiRay *result = 0 ; - - result = (aiRay *)new aiRay(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiRay__SWIG_1(void * jarg1, void * jarg2) { - void * jresult ; - aiVector3D *arg1 = 0 ; - aiVector3D *arg2 = 0 ; - aiRay *result = 0 ; - - arg1 = (aiVector3D *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3D const & type is null", 0); - return 0; - } - arg2 = (aiVector3D *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3D const & type is null", 0); - return 0; - } - result = (aiRay *)new aiRay((aiVector3D const &)*arg1,(aiVector3D const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiRay__SWIG_2(void * jarg1) { - void * jresult ; - aiRay *arg1 = 0 ; - aiRay *result = 0 ; - - arg1 = (aiRay *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiRay const & type is null", 0); - return 0; - } - result = (aiRay *)new aiRay((aiRay const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiRay_pos_set(void * jarg1, void * jarg2) { - aiRay *arg1 = (aiRay *) 0 ; - aiVector3D *arg2 = (aiVector3D *) 0 ; - - arg1 = (aiRay *)jarg1; - arg2 = (aiVector3D *)jarg2; - if (arg1) (arg1)->pos = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiRay_pos_get(void * jarg1) { - void * jresult ; - aiRay *arg1 = (aiRay *) 0 ; - aiVector3D *result = 0 ; - - arg1 = (aiRay *)jarg1; - result = (aiVector3D *)& ((arg1)->pos); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiRay_dir_set(void * jarg1, void * jarg2) { - aiRay *arg1 = (aiRay *) 0 ; - aiVector3D *arg2 = (aiVector3D *) 0 ; - - arg1 = (aiRay *)jarg1; - arg2 = (aiVector3D *)jarg2; - if (arg1) (arg1)->dir = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiRay_dir_get(void * jarg1) { - void * jresult ; - aiRay *arg1 = (aiRay *) 0 ; - aiVector3D *result = 0 ; - - arg1 = (aiRay *)jarg1; - result = (aiVector3D *)& ((arg1)->dir); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiRay(void * jarg1) { - aiRay *arg1 = (aiRay *) 0 ; - - arg1 = (aiRay *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiColor3D__SWIG_0() { - void * jresult ; - aiColor3D *result = 0 ; - - result = (aiColor3D *)new aiColor3D(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiColor3D__SWIG_1(float jarg1, float jarg2, float jarg3) { - void * jresult ; - float arg1 ; - float arg2 ; - float arg3 ; - aiColor3D *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (float)jarg2; - arg3 = (float)jarg3; - result = (aiColor3D *)new aiColor3D(arg1,arg2,arg3); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiColor3D__SWIG_2(float jarg1) { - void * jresult ; - float arg1 ; - aiColor3D *result = 0 ; - - arg1 = (float)jarg1; - result = (aiColor3D *)new aiColor3D(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiColor3D__SWIG_3(void * jarg1) { - void * jresult ; - aiColor3D *arg1 = 0 ; - aiColor3D *result = 0 ; - - arg1 = (aiColor3D *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiColor3D const & type is null", 0); - return 0; - } - result = (aiColor3D *)new aiColor3D((aiColor3D const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiColor3D___equal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiColor3D *arg1 = (aiColor3D *) 0 ; - aiColor3D *arg2 = 0 ; - bool result; - - arg1 = (aiColor3D *)jarg1; - arg2 = (aiColor3D *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiColor3D const & type is null", 0); - return 0; - } - result = (bool)((aiColor3D const *)arg1)->operator ==((aiColor3D const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiColor3D___nequal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiColor3D *arg1 = (aiColor3D *) 0 ; - aiColor3D *arg2 = 0 ; - bool result; - - arg1 = (aiColor3D *)jarg1; - arg2 = (aiColor3D *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiColor3D const & type is null", 0); - return 0; - } - result = (bool)((aiColor3D const *)arg1)->operator !=((aiColor3D const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor3D___add__(void * jarg1, void * jarg2) { - void * jresult ; - aiColor3D *arg1 = (aiColor3D *) 0 ; - aiColor3D *arg2 = 0 ; - aiColor3D result; - - arg1 = (aiColor3D *)jarg1; - arg2 = (aiColor3D *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiColor3D const & type is null", 0); - return 0; - } - result = ((aiColor3D const *)arg1)->operator +((aiColor3D const &)*arg2); - jresult = new aiColor3D((const aiColor3D &)result); - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor3D___sub__(void * jarg1, void * jarg2) { - void * jresult ; - aiColor3D *arg1 = (aiColor3D *) 0 ; - aiColor3D *arg2 = 0 ; - aiColor3D result; - - arg1 = (aiColor3D *)jarg1; - arg2 = (aiColor3D *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiColor3D const & type is null", 0); - return 0; - } - result = ((aiColor3D const *)arg1)->operator -((aiColor3D const &)*arg2); - jresult = new aiColor3D((const aiColor3D &)result); - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor3D___mul____SWIG_0(void * jarg1, void * jarg2) { - void * jresult ; - aiColor3D *arg1 = (aiColor3D *) 0 ; - aiColor3D *arg2 = 0 ; - aiColor3D result; - - arg1 = (aiColor3D *)jarg1; - arg2 = (aiColor3D *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiColor3D const & type is null", 0); - return 0; - } - result = ((aiColor3D const *)arg1)->operator *((aiColor3D const &)*arg2); - jresult = new aiColor3D((const aiColor3D &)result); - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor3D___mul____SWIG_1(void * jarg1, float jarg2) { - void * jresult ; - aiColor3D *arg1 = (aiColor3D *) 0 ; - float arg2 ; - aiColor3D result; - - arg1 = (aiColor3D *)jarg1; - arg2 = (float)jarg2; - result = ((aiColor3D const *)arg1)->operator *(arg2); - jresult = new aiColor3D((const aiColor3D &)result); - return jresult; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiColor3D___idx____SWIG_0(void * jarg1, unsigned int jarg2) { - float jresult ; - aiColor3D *arg1 = (aiColor3D *) 0 ; - unsigned int arg2 ; - float result; - - arg1 = (aiColor3D *)jarg1; - arg2 = (unsigned int)jarg2; - result = (float)((aiColor3D const *)arg1)->operator [](arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiColor3D_IsBlack(void * jarg1) { - unsigned int jresult ; - aiColor3D *arg1 = (aiColor3D *) 0 ; - bool result; - - arg1 = (aiColor3D *)jarg1; - result = (bool)((aiColor3D const *)arg1)->IsBlack(); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor3D_r_set(void * jarg1, float jarg2) { - aiColor3D *arg1 = (aiColor3D *) 0 ; - float arg2 ; - - arg1 = (aiColor3D *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->r = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiColor3D_r_get(void * jarg1) { - float jresult ; - aiColor3D *arg1 = (aiColor3D *) 0 ; - float result; - - arg1 = (aiColor3D *)jarg1; - result = (float) ((arg1)->r); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor3D_g_set(void * jarg1, float jarg2) { - aiColor3D *arg1 = (aiColor3D *) 0 ; - float arg2 ; - - arg1 = (aiColor3D *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->g = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiColor3D_g_get(void * jarg1) { - float jresult ; - aiColor3D *arg1 = (aiColor3D *) 0 ; - float result; - - arg1 = (aiColor3D *)jarg1; - result = (float) ((arg1)->g); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor3D_b_set(void * jarg1, float jarg2) { - aiColor3D *arg1 = (aiColor3D *) 0 ; - float arg2 ; - - arg1 = (aiColor3D *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->b = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiColor3D_b_get(void * jarg1) { - float jresult ; - aiColor3D *arg1 = (aiColor3D *) 0 ; - float result; - - arg1 = (aiColor3D *)jarg1; - result = (float) ((arg1)->b); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiColor3D(void * jarg1) { - aiColor3D *arg1 = (aiColor3D *) 0 ; - - arg1 = (aiColor3D *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiString__SWIG_0() { - void * jresult ; - aiString *result = 0 ; - - result = (aiString *)new aiString(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiString__SWIG_1(void * jarg1) { - void * jresult ; - aiString *arg1 = 0 ; - aiString *result = 0 ; - - arg1 = (aiString *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiString const & type is null", 0); - return 0; - } - result = (aiString *)new aiString((aiString const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiString__SWIG_2(char * jarg1) { - void * jresult ; - std::string *arg1 = 0 ; - aiString *result = 0 ; - - if (!jarg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0); - return 0; - } - std::string arg1_str(jarg1); - arg1 = &arg1_str; - result = (aiString *)new aiString((std::string const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiString___set____SWIG_0(void * jarg1, char * jarg2) { - void * jresult ; - aiString *arg1 = (aiString *) 0 ; - char *arg2 = (char *) 0 ; - aiString *result = 0 ; - - arg1 = (aiString *)jarg1; - arg2 = (char *)jarg2; - result = (aiString *) &(arg1)->operator =((char const *)arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiString___equal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiString *arg1 = (aiString *) 0 ; - aiString *arg2 = 0 ; - bool result; - - arg1 = (aiString *)jarg1; - arg2 = (aiString *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiString const & type is null", 0); - return 0; - } - result = (bool)((aiString const *)arg1)->operator ==((aiString const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiString___nequal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiString *arg1 = (aiString *) 0 ; - aiString *arg2 = 0 ; - bool result; - - arg1 = (aiString *)jarg1; - arg2 = (aiString *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiString const & type is null", 0); - return 0; - } - result = (bool)((aiString const *)arg1)->operator !=((aiString const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_aiString_C_Str(void * jarg1) { - char * jresult ; - aiString *arg1 = (aiString *) 0 ; - char *result = 0 ; - - arg1 = (aiString *)jarg1; - result = (char *)((aiString const *)arg1)->C_Str(); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiString_Length_set(void * jarg1, unsigned long jarg2) { - aiString *arg1 = (aiString *) 0 ; - size_t arg2 ; - - arg1 = (aiString *)jarg1; - arg2 = (size_t)jarg2; - if (arg1) (arg1)->length = arg2; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiString_Length_get(void * jarg1) { - unsigned long jresult ; - aiString *arg1 = (aiString *) 0 ; - size_t result; - - arg1 = (aiString *)jarg1; - result = ((arg1)->length); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiString_Data_set(void * jarg1, char * jarg2) { - aiString *arg1 = (aiString *) 0 ; - char *arg2 ; - - arg1 = (aiString *)jarg1; - arg2 = (char *)jarg2; - { - if(arg2) { - strncpy((char*)arg1->data, (const char *)arg2, MAXLEN-1); - arg1->data[MAXLEN-1] = 0; - } else { - arg1->data[0] = 0; - } - } -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_aiString_Data_get(void * jarg1) { - char * jresult ; - aiString *arg1 = (aiString *) 0 ; - char *result = 0 ; - - arg1 = (aiString *)jarg1; - result = (char *)(char *) ((arg1)->data); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiString(void * jarg1) { - aiString *arg1 = (aiString *) 0 ; - - arg1 = (aiString *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMemoryInfo() { - void * jresult ; - aiMemoryInfo *result = 0 ; - - result = (aiMemoryInfo *)new aiMemoryInfo(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMemoryInfo_textures_set(void * jarg1, unsigned int jarg2) { - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMemoryInfo *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->textures = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMemoryInfo_textures_get(void * jarg1) { - unsigned int jresult ; - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int result; - - arg1 = (aiMemoryInfo *)jarg1; - result = (unsigned int) ((arg1)->textures); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMemoryInfo_materials_set(void * jarg1, unsigned int jarg2) { - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMemoryInfo *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->materials = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMemoryInfo_materials_get(void * jarg1) { - unsigned int jresult ; - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int result; - - arg1 = (aiMemoryInfo *)jarg1; - result = (unsigned int) ((arg1)->materials); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMemoryInfo_meshes_set(void * jarg1, unsigned int jarg2) { - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMemoryInfo *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->meshes = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMemoryInfo_meshes_get(void * jarg1) { - unsigned int jresult ; - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int result; - - arg1 = (aiMemoryInfo *)jarg1; - result = (unsigned int) ((arg1)->meshes); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMemoryInfo_nodes_set(void * jarg1, unsigned int jarg2) { - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMemoryInfo *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->nodes = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMemoryInfo_nodes_get(void * jarg1) { - unsigned int jresult ; - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int result; - - arg1 = (aiMemoryInfo *)jarg1; - result = (unsigned int) ((arg1)->nodes); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMemoryInfo_animations_set(void * jarg1, unsigned int jarg2) { - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMemoryInfo *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->animations = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMemoryInfo_animations_get(void * jarg1) { - unsigned int jresult ; - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int result; - - arg1 = (aiMemoryInfo *)jarg1; - result = (unsigned int) ((arg1)->animations); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMemoryInfo_cameras_set(void * jarg1, unsigned int jarg2) { - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMemoryInfo *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->cameras = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMemoryInfo_cameras_get(void * jarg1) { - unsigned int jresult ; - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int result; - - arg1 = (aiMemoryInfo *)jarg1; - result = (unsigned int) ((arg1)->cameras); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMemoryInfo_lights_set(void * jarg1, unsigned int jarg2) { - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMemoryInfo *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->lights = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMemoryInfo_lights_get(void * jarg1) { - unsigned int jresult ; - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int result; - - arg1 = (aiMemoryInfo *)jarg1; - result = (unsigned int) ((arg1)->lights); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMemoryInfo_total_set(void * jarg1, unsigned int jarg2) { - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMemoryInfo *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->total = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMemoryInfo_total_get(void * jarg1) { - unsigned int jresult ; - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - unsigned int result; - - arg1 = (aiMemoryInfo *)jarg1; - result = (unsigned int) ((arg1)->total); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiMemoryInfo(void * jarg1) { - aiMemoryInfo *arg1 = (aiMemoryInfo *) 0 ; - - arg1 = (aiMemoryInfo *)jarg1; - delete arg1; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_aiGetLegalString() { - char * jresult ; - char *result = 0 ; - - result = (char *)aiGetLegalString(); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiGetVersionMinor() { - unsigned int jresult ; - unsigned int result; - - result = (unsigned int)aiGetVersionMinor(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiGetVersionMajor() { - unsigned int jresult ; - unsigned int result; - - result = (unsigned int)aiGetVersionMajor(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiGetVersionRevision() { - unsigned int jresult ; - unsigned int result; - - result = (unsigned int)aiGetVersionRevision(); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_ASSIMP_CFLAGS_SHARED_get() { - int jresult ; - int result; - - result = (int)(0x1); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_ASSIMP_CFLAGS_STLPORT_get() { - int jresult ; - int result; - - result = (int)(0x2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_ASSIMP_CFLAGS_DEBUG_get() { - int jresult ; - int result; - - result = (int)(0x4); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_ASSIMP_CFLAGS_NOBOOST_get() { - int jresult ; - int result; - - result = (int)(0x8); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_ASSIMP_CFLAGS_SINGLETHREADED_get() { - int jresult ; - int result; - - result = (int)(0x10); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiGetCompileFlags() { - unsigned int jresult ; - unsigned int result; - - result = (unsigned int)aiGetCompileFlags(); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCamera_mName_set(void * jarg1, void * jarg2) { - aiCamera *arg1 = (aiCamera *) 0 ; - aiString *arg2 = (aiString *) 0 ; - - arg1 = (aiCamera *)jarg1; - arg2 = (aiString *)jarg2; - if (arg1) (arg1)->mName = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiCamera_mName_get(void * jarg1) { - void * jresult ; - aiCamera *arg1 = (aiCamera *) 0 ; - aiString *result = 0 ; - - arg1 = (aiCamera *)jarg1; - result = (aiString *)& ((arg1)->mName); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCamera_mPosition_set(void * jarg1, void * jarg2) { - aiCamera *arg1 = (aiCamera *) 0 ; - aiVector3D *arg2 = (aiVector3D *) 0 ; - - arg1 = (aiCamera *)jarg1; - arg2 = (aiVector3D *)jarg2; - if (arg1) (arg1)->mPosition = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiCamera_mPosition_get(void * jarg1) { - void * jresult ; - aiCamera *arg1 = (aiCamera *) 0 ; - aiVector3D *result = 0 ; - - arg1 = (aiCamera *)jarg1; - result = (aiVector3D *)& ((arg1)->mPosition); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCamera_mUp_set(void * jarg1, void * jarg2) { - aiCamera *arg1 = (aiCamera *) 0 ; - aiVector3D *arg2 = (aiVector3D *) 0 ; - - arg1 = (aiCamera *)jarg1; - arg2 = (aiVector3D *)jarg2; - if (arg1) (arg1)->mUp = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiCamera_mUp_get(void * jarg1) { - void * jresult ; - aiCamera *arg1 = (aiCamera *) 0 ; - aiVector3D *result = 0 ; - - arg1 = (aiCamera *)jarg1; - result = (aiVector3D *)& ((arg1)->mUp); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCamera_mLookAt_set(void * jarg1, void * jarg2) { - aiCamera *arg1 = (aiCamera *) 0 ; - aiVector3D *arg2 = (aiVector3D *) 0 ; - - arg1 = (aiCamera *)jarg1; - arg2 = (aiVector3D *)jarg2; - if (arg1) (arg1)->mLookAt = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiCamera_mLookAt_get(void * jarg1) { - void * jresult ; - aiCamera *arg1 = (aiCamera *) 0 ; - aiVector3D *result = 0 ; - - arg1 = (aiCamera *)jarg1; - result = (aiVector3D *)& ((arg1)->mLookAt); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCamera_mHorizontalFOV_set(void * jarg1, float jarg2) { - aiCamera *arg1 = (aiCamera *) 0 ; - float arg2 ; - - arg1 = (aiCamera *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->mHorizontalFOV = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiCamera_mHorizontalFOV_get(void * jarg1) { - float jresult ; - aiCamera *arg1 = (aiCamera *) 0 ; - float result; - - arg1 = (aiCamera *)jarg1; - result = (float) ((arg1)->mHorizontalFOV); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCamera_mClipPlaneNear_set(void * jarg1, float jarg2) { - aiCamera *arg1 = (aiCamera *) 0 ; - float arg2 ; - - arg1 = (aiCamera *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->mClipPlaneNear = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiCamera_mClipPlaneNear_get(void * jarg1) { - float jresult ; - aiCamera *arg1 = (aiCamera *) 0 ; - float result; - - arg1 = (aiCamera *)jarg1; - result = (float) ((arg1)->mClipPlaneNear); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCamera_mClipPlaneFar_set(void * jarg1, float jarg2) { - aiCamera *arg1 = (aiCamera *) 0 ; - float arg2 ; - - arg1 = (aiCamera *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->mClipPlaneFar = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiCamera_mClipPlaneFar_get(void * jarg1) { - float jresult ; - aiCamera *arg1 = (aiCamera *) 0 ; - float result; - - arg1 = (aiCamera *)jarg1; - result = (float) ((arg1)->mClipPlaneFar); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCamera_mAspect_set(void * jarg1, float jarg2) { - aiCamera *arg1 = (aiCamera *) 0 ; - float arg2 ; - - arg1 = (aiCamera *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->mAspect = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiCamera_mAspect_get(void * jarg1) { - float jresult ; - aiCamera *arg1 = (aiCamera *) 0 ; - float result; - - arg1 = (aiCamera *)jarg1; - result = (float) ((arg1)->mAspect); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiCamera() { - void * jresult ; - aiCamera *result = 0 ; - - result = (aiCamera *)new aiCamera(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCamera_GetCameraMatrix(void * jarg1, void * jarg2) { - aiCamera *arg1 = (aiCamera *) 0 ; - aiMatrix4x4 *arg2 = 0 ; - - arg1 = (aiCamera *)jarg1; - arg2 = (aiMatrix4x4 *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix4x4 & type is null", 0); - return ; - } - ((aiCamera const *)arg1)->GetCameraMatrix(*arg2); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiCamera(void * jarg1) { - aiCamera *arg1 = (aiCamera *) 0 ; - - arg1 = (aiCamera *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLight_mName_set(void * jarg1, void * jarg2) { - aiLight *arg1 = (aiLight *) 0 ; - aiString *arg2 = (aiString *) 0 ; - - arg1 = (aiLight *)jarg1; - arg2 = (aiString *)jarg2; - if (arg1) (arg1)->mName = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiLight_mName_get(void * jarg1) { - void * jresult ; - aiLight *arg1 = (aiLight *) 0 ; - aiString *result = 0 ; - - arg1 = (aiLight *)jarg1; - result = (aiString *)& ((arg1)->mName); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLight_mType_set(void * jarg1, int jarg2) { - aiLight *arg1 = (aiLight *) 0 ; - aiLightSourceType arg2 ; - - arg1 = (aiLight *)jarg1; - arg2 = (aiLightSourceType)jarg2; - if (arg1) (arg1)->mType = arg2; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiLight_mType_get(void * jarg1) { - int jresult ; - aiLight *arg1 = (aiLight *) 0 ; - aiLightSourceType result; - - arg1 = (aiLight *)jarg1; - result = (aiLightSourceType) ((arg1)->mType); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLight_mPosition_set(void * jarg1, void * jarg2) { - aiLight *arg1 = (aiLight *) 0 ; - aiVector3D *arg2 = (aiVector3D *) 0 ; - - arg1 = (aiLight *)jarg1; - arg2 = (aiVector3D *)jarg2; - if (arg1) (arg1)->mPosition = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiLight_mPosition_get(void * jarg1) { - void * jresult ; - aiLight *arg1 = (aiLight *) 0 ; - aiVector3D *result = 0 ; - - arg1 = (aiLight *)jarg1; - result = (aiVector3D *)& ((arg1)->mPosition); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLight_mDirection_set(void * jarg1, void * jarg2) { - aiLight *arg1 = (aiLight *) 0 ; - aiVector3D *arg2 = (aiVector3D *) 0 ; - - arg1 = (aiLight *)jarg1; - arg2 = (aiVector3D *)jarg2; - if (arg1) (arg1)->mDirection = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiLight_mDirection_get(void * jarg1) { - void * jresult ; - aiLight *arg1 = (aiLight *) 0 ; - aiVector3D *result = 0 ; - - arg1 = (aiLight *)jarg1; - result = (aiVector3D *)& ((arg1)->mDirection); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLight_mAttenuationConstant_set(void * jarg1, float jarg2) { - aiLight *arg1 = (aiLight *) 0 ; - float arg2 ; - - arg1 = (aiLight *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->mAttenuationConstant = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiLight_mAttenuationConstant_get(void * jarg1) { - float jresult ; - aiLight *arg1 = (aiLight *) 0 ; - float result; - - arg1 = (aiLight *)jarg1; - result = (float) ((arg1)->mAttenuationConstant); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLight_mAttenuationLinear_set(void * jarg1, float jarg2) { - aiLight *arg1 = (aiLight *) 0 ; - float arg2 ; - - arg1 = (aiLight *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->mAttenuationLinear = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiLight_mAttenuationLinear_get(void * jarg1) { - float jresult ; - aiLight *arg1 = (aiLight *) 0 ; - float result; - - arg1 = (aiLight *)jarg1; - result = (float) ((arg1)->mAttenuationLinear); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLight_mAttenuationQuadratic_set(void * jarg1, float jarg2) { - aiLight *arg1 = (aiLight *) 0 ; - float arg2 ; - - arg1 = (aiLight *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->mAttenuationQuadratic = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiLight_mAttenuationQuadratic_get(void * jarg1) { - float jresult ; - aiLight *arg1 = (aiLight *) 0 ; - float result; - - arg1 = (aiLight *)jarg1; - result = (float) ((arg1)->mAttenuationQuadratic); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLight_mColorDiffuse_set(void * jarg1, void * jarg2) { - aiLight *arg1 = (aiLight *) 0 ; - aiColor3D *arg2 = (aiColor3D *) 0 ; - - arg1 = (aiLight *)jarg1; - arg2 = (aiColor3D *)jarg2; - if (arg1) (arg1)->mColorDiffuse = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiLight_mColorDiffuse_get(void * jarg1) { - void * jresult ; - aiLight *arg1 = (aiLight *) 0 ; - aiColor3D *result = 0 ; - - arg1 = (aiLight *)jarg1; - result = (aiColor3D *)& ((arg1)->mColorDiffuse); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLight_mColorSpecular_set(void * jarg1, void * jarg2) { - aiLight *arg1 = (aiLight *) 0 ; - aiColor3D *arg2 = (aiColor3D *) 0 ; - - arg1 = (aiLight *)jarg1; - arg2 = (aiColor3D *)jarg2; - if (arg1) (arg1)->mColorSpecular = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiLight_mColorSpecular_get(void * jarg1) { - void * jresult ; - aiLight *arg1 = (aiLight *) 0 ; - aiColor3D *result = 0 ; - - arg1 = (aiLight *)jarg1; - result = (aiColor3D *)& ((arg1)->mColorSpecular); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLight_mColorAmbient_set(void * jarg1, void * jarg2) { - aiLight *arg1 = (aiLight *) 0 ; - aiColor3D *arg2 = (aiColor3D *) 0 ; - - arg1 = (aiLight *)jarg1; - arg2 = (aiColor3D *)jarg2; - if (arg1) (arg1)->mColorAmbient = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiLight_mColorAmbient_get(void * jarg1) { - void * jresult ; - aiLight *arg1 = (aiLight *) 0 ; - aiColor3D *result = 0 ; - - arg1 = (aiLight *)jarg1; - result = (aiColor3D *)& ((arg1)->mColorAmbient); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLight_mAngleInnerCone_set(void * jarg1, float jarg2) { - aiLight *arg1 = (aiLight *) 0 ; - float arg2 ; - - arg1 = (aiLight *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->mAngleInnerCone = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiLight_mAngleInnerCone_get(void * jarg1) { - float jresult ; - aiLight *arg1 = (aiLight *) 0 ; - float result; - - arg1 = (aiLight *)jarg1; - result = (float) ((arg1)->mAngleInnerCone); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLight_mAngleOuterCone_set(void * jarg1, float jarg2) { - aiLight *arg1 = (aiLight *) 0 ; - float arg2 ; - - arg1 = (aiLight *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->mAngleOuterCone = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiLight_mAngleOuterCone_get(void * jarg1) { - float jresult ; - aiLight *arg1 = (aiLight *) 0 ; - float result; - - arg1 = (aiLight *)jarg1; - result = (float) ((arg1)->mAngleOuterCone); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiLight() { - void * jresult ; - aiLight *result = 0 ; - - result = (aiLight *)new aiLight(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiLight(void * jarg1) { - aiLight *arg1 = (aiLight *) 0 ; - - arg1 = (aiLight *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVectorKey_mTime_set(void * jarg1, double jarg2) { - aiVectorKey *arg1 = (aiVectorKey *) 0 ; - double arg2 ; - - arg1 = (aiVectorKey *)jarg1; - arg2 = (double)jarg2; - if (arg1) (arg1)->mTime = arg2; -} - - -SWIGEXPORT double SWIGSTDCALL CSharp_aiVectorKey_mTime_get(void * jarg1) { - double jresult ; - aiVectorKey *arg1 = (aiVectorKey *) 0 ; - double result; - - arg1 = (aiVectorKey *)jarg1; - result = (double) ((arg1)->mTime); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVectorKey_mValue_set(void * jarg1, void * jarg2) { - aiVectorKey *arg1 = (aiVectorKey *) 0 ; - aiVector3D *arg2 = (aiVector3D *) 0 ; - - arg1 = (aiVectorKey *)jarg1; - arg2 = (aiVector3D *)jarg2; - if (arg1) (arg1)->mValue = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVectorKey_mValue_get(void * jarg1) { - void * jresult ; - aiVectorKey *arg1 = (aiVectorKey *) 0 ; - aiVector3D *result = 0 ; - - arg1 = (aiVectorKey *)jarg1; - result = (aiVector3D *)& ((arg1)->mValue); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVectorKey__SWIG_0() { - void * jresult ; - aiVectorKey *result = 0 ; - - result = (aiVectorKey *)new aiVectorKey(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVectorKey__SWIG_1(double jarg1, void * jarg2) { - void * jresult ; - double arg1 ; - aiVector3D *arg2 = 0 ; - aiVectorKey *result = 0 ; - - arg1 = (double)jarg1; - arg2 = (aiVector3D *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3D const & type is null", 0); - return 0; - } - result = (aiVectorKey *)new aiVectorKey(arg1,(aiVector3D const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVectorKey___equal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiVectorKey *arg1 = (aiVectorKey *) 0 ; - aiVectorKey *arg2 = 0 ; - bool result; - - arg1 = (aiVectorKey *)jarg1; - arg2 = (aiVectorKey *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVectorKey const & type is null", 0); - return 0; - } - result = (bool)((aiVectorKey const *)arg1)->operator ==((aiVectorKey const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVectorKey___nequal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiVectorKey *arg1 = (aiVectorKey *) 0 ; - aiVectorKey *arg2 = 0 ; - bool result; - - arg1 = (aiVectorKey *)jarg1; - arg2 = (aiVectorKey *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVectorKey const & type is null", 0); - return 0; - } - result = (bool)((aiVectorKey const *)arg1)->operator !=((aiVectorKey const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVectorKey___smaller__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiVectorKey *arg1 = (aiVectorKey *) 0 ; - aiVectorKey *arg2 = 0 ; - bool result; - - arg1 = (aiVectorKey *)jarg1; - arg2 = (aiVectorKey *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVectorKey const & type is null", 0); - return 0; - } - result = (bool)((aiVectorKey const *)arg1)->operator <((aiVectorKey const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVectorKey___greater__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiVectorKey *arg1 = (aiVectorKey *) 0 ; - aiVectorKey *arg2 = 0 ; - bool result; - - arg1 = (aiVectorKey *)jarg1; - arg2 = (aiVectorKey *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVectorKey const & type is null", 0); - return 0; - } - result = (bool)((aiVectorKey const *)arg1)->operator >((aiVectorKey const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiVectorKey(void * jarg1) { - aiVectorKey *arg1 = (aiVectorKey *) 0 ; - - arg1 = (aiVectorKey *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuatKey_mTime_set(void * jarg1, double jarg2) { - aiQuatKey *arg1 = (aiQuatKey *) 0 ; - double arg2 ; - - arg1 = (aiQuatKey *)jarg1; - arg2 = (double)jarg2; - if (arg1) (arg1)->mTime = arg2; -} - - -SWIGEXPORT double SWIGSTDCALL CSharp_aiQuatKey_mTime_get(void * jarg1) { - double jresult ; - aiQuatKey *arg1 = (aiQuatKey *) 0 ; - double result; - - arg1 = (aiQuatKey *)jarg1; - result = (double) ((arg1)->mTime); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuatKey_mValue_set(void * jarg1, void * jarg2) { - aiQuatKey *arg1 = (aiQuatKey *) 0 ; - aiQuaternion *arg2 = (aiQuaternion *) 0 ; - - arg1 = (aiQuatKey *)jarg1; - arg2 = (aiQuaternion *)jarg2; - if (arg1) (arg1)->mValue = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiQuatKey_mValue_get(void * jarg1) { - void * jresult ; - aiQuatKey *arg1 = (aiQuatKey *) 0 ; - aiQuaternion *result = 0 ; - - arg1 = (aiQuatKey *)jarg1; - result = (aiQuaternion *)& ((arg1)->mValue); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiQuatKey__SWIG_0() { - void * jresult ; - aiQuatKey *result = 0 ; - - result = (aiQuatKey *)new aiQuatKey(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiQuatKey__SWIG_1(double jarg1, void * jarg2) { - void * jresult ; - double arg1 ; - aiQuaternion *arg2 = 0 ; - aiQuatKey *result = 0 ; - - arg1 = (double)jarg1; - arg2 = (aiQuaternion *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiQuaternion const & type is null", 0); - return 0; - } - result = (aiQuatKey *)new aiQuatKey(arg1,(aiQuaternion const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiQuatKey___equal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiQuatKey *arg1 = (aiQuatKey *) 0 ; - aiQuatKey *arg2 = 0 ; - bool result; - - arg1 = (aiQuatKey *)jarg1; - arg2 = (aiQuatKey *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiQuatKey const & type is null", 0); - return 0; - } - result = (bool)((aiQuatKey const *)arg1)->operator ==((aiQuatKey const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiQuatKey___nequal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiQuatKey *arg1 = (aiQuatKey *) 0 ; - aiQuatKey *arg2 = 0 ; - bool result; - - arg1 = (aiQuatKey *)jarg1; - arg2 = (aiQuatKey *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiQuatKey const & type is null", 0); - return 0; - } - result = (bool)((aiQuatKey const *)arg1)->operator !=((aiQuatKey const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiQuatKey___smaller__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiQuatKey *arg1 = (aiQuatKey *) 0 ; - aiQuatKey *arg2 = 0 ; - bool result; - - arg1 = (aiQuatKey *)jarg1; - arg2 = (aiQuatKey *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiQuatKey const & type is null", 0); - return 0; - } - result = (bool)((aiQuatKey const *)arg1)->operator <((aiQuatKey const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiQuatKey___greater__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiQuatKey *arg1 = (aiQuatKey *) 0 ; - aiQuatKey *arg2 = 0 ; - bool result; - - arg1 = (aiQuatKey *)jarg1; - arg2 = (aiQuatKey *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiQuatKey const & type is null", 0); - return 0; - } - result = (bool)((aiQuatKey const *)arg1)->operator >((aiQuatKey const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiQuatKey(void * jarg1) { - aiQuatKey *arg1 = (aiQuatKey *) 0 ; - - arg1 = (aiQuatKey *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshKey_mTime_set(void * jarg1, double jarg2) { - aiMeshKey *arg1 = (aiMeshKey *) 0 ; - double arg2 ; - - arg1 = (aiMeshKey *)jarg1; - arg2 = (double)jarg2; - if (arg1) (arg1)->mTime = arg2; -} - - -SWIGEXPORT double SWIGSTDCALL CSharp_aiMeshKey_mTime_get(void * jarg1) { - double jresult ; - aiMeshKey *arg1 = (aiMeshKey *) 0 ; - double result; - - arg1 = (aiMeshKey *)jarg1; - result = (double) ((arg1)->mTime); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshKey_mValue_set(void * jarg1, unsigned int jarg2) { - aiMeshKey *arg1 = (aiMeshKey *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMeshKey *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mValue = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMeshKey_mValue_get(void * jarg1) { - unsigned int jresult ; - aiMeshKey *arg1 = (aiMeshKey *) 0 ; - unsigned int result; - - arg1 = (aiMeshKey *)jarg1; - result = (unsigned int) ((arg1)->mValue); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMeshKey__SWIG_0() { - void * jresult ; - aiMeshKey *result = 0 ; - - result = (aiMeshKey *)new aiMeshKey(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMeshKey__SWIG_1(double jarg1, unsigned int jarg2) { - void * jresult ; - double arg1 ; - unsigned int arg2 ; - aiMeshKey *result = 0 ; - - arg1 = (double)jarg1; - arg2 = (unsigned int)jarg2; - result = (aiMeshKey *)new aiMeshKey(arg1,arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMeshKey___equal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMeshKey *arg1 = (aiMeshKey *) 0 ; - aiMeshKey *arg2 = 0 ; - bool result; - - arg1 = (aiMeshKey *)jarg1; - arg2 = (aiMeshKey *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMeshKey const & type is null", 0); - return 0; - } - result = (bool)((aiMeshKey const *)arg1)->operator ==((aiMeshKey const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMeshKey___nequal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMeshKey *arg1 = (aiMeshKey *) 0 ; - aiMeshKey *arg2 = 0 ; - bool result; - - arg1 = (aiMeshKey *)jarg1; - arg2 = (aiMeshKey *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMeshKey const & type is null", 0); - return 0; - } - result = (bool)((aiMeshKey const *)arg1)->operator !=((aiMeshKey const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMeshKey___smaller__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMeshKey *arg1 = (aiMeshKey *) 0 ; - aiMeshKey *arg2 = 0 ; - bool result; - - arg1 = (aiMeshKey *)jarg1; - arg2 = (aiMeshKey *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMeshKey const & type is null", 0); - return 0; - } - result = (bool)((aiMeshKey const *)arg1)->operator <((aiMeshKey const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMeshKey___greater__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMeshKey *arg1 = (aiMeshKey *) 0 ; - aiMeshKey *arg2 = 0 ; - bool result; - - arg1 = (aiMeshKey *)jarg1; - arg2 = (aiMeshKey *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMeshKey const & type is null", 0); - return 0; - } - result = (bool)((aiMeshKey const *)arg1)->operator >((aiMeshKey const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiMeshKey(void * jarg1) { - aiMeshKey *arg1 = (aiMeshKey *) 0 ; - - arg1 = (aiMeshKey *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnim_mNodeName_set(void * jarg1, void * jarg2) { - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - aiString *arg2 = (aiString *) 0 ; - - arg1 = (aiNodeAnim *)jarg1; - arg2 = (aiString *)jarg2; - if (arg1) (arg1)->mNodeName = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNodeAnim_mNodeName_get(void * jarg1) { - void * jresult ; - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - aiString *result = 0 ; - - arg1 = (aiNodeAnim *)jarg1; - result = (aiString *)& ((arg1)->mNodeName); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnim_mNumPositionKeys_set(void * jarg1, unsigned int jarg2) { - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - unsigned int arg2 ; - - arg1 = (aiNodeAnim *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumPositionKeys = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiNodeAnim_mNumPositionKeys_get(void * jarg1) { - unsigned int jresult ; - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - unsigned int result; - - arg1 = (aiNodeAnim *)jarg1; - result = (unsigned int) ((arg1)->mNumPositionKeys); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnim_mNumRotationKeys_set(void * jarg1, unsigned int jarg2) { - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - unsigned int arg2 ; - - arg1 = (aiNodeAnim *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumRotationKeys = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiNodeAnim_mNumRotationKeys_get(void * jarg1) { - unsigned int jresult ; - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - unsigned int result; - - arg1 = (aiNodeAnim *)jarg1; - result = (unsigned int) ((arg1)->mNumRotationKeys); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnim_mNumScalingKeys_set(void * jarg1, unsigned int jarg2) { - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - unsigned int arg2 ; - - arg1 = (aiNodeAnim *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumScalingKeys = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiNodeAnim_mNumScalingKeys_get(void * jarg1) { - unsigned int jresult ; - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - unsigned int result; - - arg1 = (aiNodeAnim *)jarg1; - result = (unsigned int) ((arg1)->mNumScalingKeys); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnim_mPreState_set(void * jarg1, int jarg2) { - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - aiAnimBehaviour arg2 ; - - arg1 = (aiNodeAnim *)jarg1; - arg2 = (aiAnimBehaviour)jarg2; - if (arg1) (arg1)->mPreState = arg2; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiNodeAnim_mPreState_get(void * jarg1) { - int jresult ; - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - aiAnimBehaviour result; - - arg1 = (aiNodeAnim *)jarg1; - result = (aiAnimBehaviour) ((arg1)->mPreState); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnim_mPostState_set(void * jarg1, int jarg2) { - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - aiAnimBehaviour arg2 ; - - arg1 = (aiNodeAnim *)jarg1; - arg2 = (aiAnimBehaviour)jarg2; - if (arg1) (arg1)->mPostState = arg2; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiNodeAnim_mPostState_get(void * jarg1) { - int jresult ; - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - aiAnimBehaviour result; - - arg1 = (aiNodeAnim *)jarg1; - result = (aiAnimBehaviour) ((arg1)->mPostState); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiNodeAnim() { - void * jresult ; - aiNodeAnim *result = 0 ; - - result = (aiNodeAnim *)new aiNodeAnim(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiNodeAnim(void * jarg1) { - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - - arg1 = (aiNodeAnim *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNodeAnim_GetmPositionKeys(void * jarg1) { - void * jresult ; - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - std::vector< aiVectorKey * > *result = 0 ; - - arg1 = (aiNodeAnim *)jarg1; - result = (std::vector< aiVectorKey * > *)aiNodeAnim_GetmPositionKeys(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNodeAnim_GetmRotationKeys(void * jarg1) { - void * jresult ; - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - std::vector< aiQuatKey * > *result = 0 ; - - arg1 = (aiNodeAnim *)jarg1; - result = (std::vector< aiQuatKey * > *)aiNodeAnim_GetmRotationKeys(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNodeAnim_GetmScalingKeys(void * jarg1) { - void * jresult ; - aiNodeAnim *arg1 = (aiNodeAnim *) 0 ; - std::vector< aiVectorKey * > *result = 0 ; - - arg1 = (aiNodeAnim *)jarg1; - result = (std::vector< aiVectorKey * > *)aiNodeAnim_GetmScalingKeys(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshAnim_mName_set(void * jarg1, void * jarg2) { - aiMeshAnim *arg1 = (aiMeshAnim *) 0 ; - aiString *arg2 = (aiString *) 0 ; - - arg1 = (aiMeshAnim *)jarg1; - arg2 = (aiString *)jarg2; - if (arg1) (arg1)->mName = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMeshAnim_mName_get(void * jarg1) { - void * jresult ; - aiMeshAnim *arg1 = (aiMeshAnim *) 0 ; - aiString *result = 0 ; - - arg1 = (aiMeshAnim *)jarg1; - result = (aiString *)& ((arg1)->mName); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshAnim_mNumKeys_set(void * jarg1, unsigned int jarg2) { - aiMeshAnim *arg1 = (aiMeshAnim *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMeshAnim *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumKeys = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMeshAnim_mNumKeys_get(void * jarg1) { - unsigned int jresult ; - aiMeshAnim *arg1 = (aiMeshAnim *) 0 ; - unsigned int result; - - arg1 = (aiMeshAnim *)jarg1; - result = (unsigned int) ((arg1)->mNumKeys); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMeshAnim() { - void * jresult ; - aiMeshAnim *result = 0 ; - - result = (aiMeshAnim *)new aiMeshAnim(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiMeshAnim(void * jarg1) { - aiMeshAnim *arg1 = (aiMeshAnim *) 0 ; - - arg1 = (aiMeshAnim *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMeshAnim_GetmKeys(void * jarg1) { - void * jresult ; - aiMeshAnim *arg1 = (aiMeshAnim *) 0 ; - std::vector< aiMeshKey * > *result = 0 ; - - arg1 = (aiMeshAnim *)jarg1; - result = (std::vector< aiMeshKey * > *)aiMeshAnim_GetmKeys(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimation_mName_set(void * jarg1, void * jarg2) { - aiAnimation *arg1 = (aiAnimation *) 0 ; - aiString *arg2 = (aiString *) 0 ; - - arg1 = (aiAnimation *)jarg1; - arg2 = (aiString *)jarg2; - if (arg1) (arg1)->mName = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiAnimation_mName_get(void * jarg1) { - void * jresult ; - aiAnimation *arg1 = (aiAnimation *) 0 ; - aiString *result = 0 ; - - arg1 = (aiAnimation *)jarg1; - result = (aiString *)& ((arg1)->mName); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimation_mDuration_set(void * jarg1, double jarg2) { - aiAnimation *arg1 = (aiAnimation *) 0 ; - double arg2 ; - - arg1 = (aiAnimation *)jarg1; - arg2 = (double)jarg2; - if (arg1) (arg1)->mDuration = arg2; -} - - -SWIGEXPORT double SWIGSTDCALL CSharp_aiAnimation_mDuration_get(void * jarg1) { - double jresult ; - aiAnimation *arg1 = (aiAnimation *) 0 ; - double result; - - arg1 = (aiAnimation *)jarg1; - result = (double) ((arg1)->mDuration); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimation_mTicksPerSecond_set(void * jarg1, double jarg2) { - aiAnimation *arg1 = (aiAnimation *) 0 ; - double arg2 ; - - arg1 = (aiAnimation *)jarg1; - arg2 = (double)jarg2; - if (arg1) (arg1)->mTicksPerSecond = arg2; -} - - -SWIGEXPORT double SWIGSTDCALL CSharp_aiAnimation_mTicksPerSecond_get(void * jarg1) { - double jresult ; - aiAnimation *arg1 = (aiAnimation *) 0 ; - double result; - - arg1 = (aiAnimation *)jarg1; - result = (double) ((arg1)->mTicksPerSecond); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimation_mNumChannels_set(void * jarg1, unsigned int jarg2) { - aiAnimation *arg1 = (aiAnimation *) 0 ; - unsigned int arg2 ; - - arg1 = (aiAnimation *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumChannels = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiAnimation_mNumChannels_get(void * jarg1) { - unsigned int jresult ; - aiAnimation *arg1 = (aiAnimation *) 0 ; - unsigned int result; - - arg1 = (aiAnimation *)jarg1; - result = (unsigned int) ((arg1)->mNumChannels); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimation_mNumMeshChannels_set(void * jarg1, unsigned int jarg2) { - aiAnimation *arg1 = (aiAnimation *) 0 ; - unsigned int arg2 ; - - arg1 = (aiAnimation *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumMeshChannels = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiAnimation_mNumMeshChannels_get(void * jarg1) { - unsigned int jresult ; - aiAnimation *arg1 = (aiAnimation *) 0 ; - unsigned int result; - - arg1 = (aiAnimation *)jarg1; - result = (unsigned int) ((arg1)->mNumMeshChannels); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiAnimation() { - void * jresult ; - aiAnimation *result = 0 ; - - result = (aiAnimation *)new aiAnimation(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiAnimation(void * jarg1) { - aiAnimation *arg1 = (aiAnimation *) 0 ; - - arg1 = (aiAnimation *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiAnimation_GetmChannels(void * jarg1) { - void * jresult ; - aiAnimation *arg1 = (aiAnimation *) 0 ; - std::vector< aiNodeAnim * > *result = 0 ; - - arg1 = (aiAnimation *)jarg1; - result = (std::vector< aiNodeAnim * > *)aiAnimation_GetmChannels(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiAnimation_GetmMeshChannels(void * jarg1) { - void * jresult ; - aiAnimation *arg1 = (aiAnimation *) 0 ; - std::vector< aiMeshAnim * > *result = 0 ; - - arg1 = (aiAnimation *)jarg1; - result = (std::vector< aiMeshAnim * > *)aiAnimation_GetmMeshChannels(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_MAX_FACE_INDICES_get() { - int jresult ; - int result; - - result = (int)(0x7fff); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_MAX_BONE_WEIGHTS_get() { - int jresult ; - int result; - - result = (int)(0x7fffffff); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_MAX_VERTICES_get() { - int jresult ; - int result; - - result = (int)(0x7fffffff); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_MAX_FACES_get() { - int jresult ; - int result; - - result = (int)(0x7fffffff); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_MAX_NUMBER_OF_COLOR_SETS_get() { - int jresult ; - int result; - - result = (int)(0x8); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_MAX_NUMBER_OF_TEXTURECOORDS_get() { - int jresult ; - int result; - - result = (int)(0x8); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiFace_mNumIndices_set(void * jarg1, unsigned int jarg2) { - aiFace *arg1 = (aiFace *) 0 ; - unsigned int arg2 ; - - arg1 = (aiFace *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumIndices = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiFace_mNumIndices_get(void * jarg1) { - unsigned int jresult ; - aiFace *arg1 = (aiFace *) 0 ; - unsigned int result; - - arg1 = (aiFace *)jarg1; - result = (unsigned int) ((arg1)->mNumIndices); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiFace__SWIG_0() { - void * jresult ; - aiFace *result = 0 ; - - result = (aiFace *)new aiFace(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiFace(void * jarg1) { - aiFace *arg1 = (aiFace *) 0 ; - - arg1 = (aiFace *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiFace__SWIG_1(void * jarg1) { - void * jresult ; - aiFace *arg1 = 0 ; - aiFace *result = 0 ; - - arg1 = (aiFace *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiFace const & type is null", 0); - return 0; - } - result = (aiFace *)new aiFace((aiFace const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiFace___set__(void * jarg1, void * jarg2) { - void * jresult ; - aiFace *arg1 = (aiFace *) 0 ; - aiFace *arg2 = 0 ; - aiFace *result = 0 ; - - arg1 = (aiFace *)jarg1; - arg2 = (aiFace *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiFace const & type is null", 0); - return 0; - } - result = (aiFace *) &(arg1)->operator =((aiFace const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiFace___equal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiFace *arg1 = (aiFace *) 0 ; - aiFace *arg2 = 0 ; - bool result; - - arg1 = (aiFace *)jarg1; - arg2 = (aiFace *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiFace const & type is null", 0); - return 0; - } - result = (bool)((aiFace const *)arg1)->operator ==((aiFace const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiFace___nequal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiFace *arg1 = (aiFace *) 0 ; - aiFace *arg2 = 0 ; - bool result; - - arg1 = (aiFace *)jarg1; - arg2 = (aiFace *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiFace const & type is null", 0); - return 0; - } - result = (bool)((aiFace const *)arg1)->operator !=((aiFace const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiFace_GetmIndices(void * jarg1) { - void * jresult ; - aiFace *arg1 = (aiFace *) 0 ; - std::vector< unsigned int > *result = 0 ; - - arg1 = (aiFace *)jarg1; - result = (std::vector< unsigned int > *)aiFace_GetmIndices(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVertexWeight_mVertexId_set(void * jarg1, unsigned int jarg2) { - aiVertexWeight *arg1 = (aiVertexWeight *) 0 ; - unsigned int arg2 ; - - arg1 = (aiVertexWeight *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mVertexId = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVertexWeight_mVertexId_get(void * jarg1) { - unsigned int jresult ; - aiVertexWeight *arg1 = (aiVertexWeight *) 0 ; - unsigned int result; - - arg1 = (aiVertexWeight *)jarg1; - result = (unsigned int) ((arg1)->mVertexId); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVertexWeight_mWeight_set(void * jarg1, float jarg2) { - aiVertexWeight *arg1 = (aiVertexWeight *) 0 ; - float arg2 ; - - arg1 = (aiVertexWeight *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->mWeight = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiVertexWeight_mWeight_get(void * jarg1) { - float jresult ; - aiVertexWeight *arg1 = (aiVertexWeight *) 0 ; - float result; - - arg1 = (aiVertexWeight *)jarg1; - result = (float) ((arg1)->mWeight); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVertexWeight__SWIG_0() { - void * jresult ; - aiVertexWeight *result = 0 ; - - result = (aiVertexWeight *)new aiVertexWeight(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVertexWeight__SWIG_1(unsigned int jarg1, float jarg2) { - void * jresult ; - unsigned int arg1 ; - float arg2 ; - aiVertexWeight *result = 0 ; - - arg1 = (unsigned int)jarg1; - arg2 = (float)jarg2; - result = (aiVertexWeight *)new aiVertexWeight(arg1,arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiVertexWeight(void * jarg1) { - aiVertexWeight *arg1 = (aiVertexWeight *) 0 ; - - arg1 = (aiVertexWeight *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBone_mName_set(void * jarg1, void * jarg2) { - aiBone *arg1 = (aiBone *) 0 ; - aiString *arg2 = (aiString *) 0 ; - - arg1 = (aiBone *)jarg1; - arg2 = (aiString *)jarg2; - if (arg1) (arg1)->mName = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiBone_mName_get(void * jarg1) { - void * jresult ; - aiBone *arg1 = (aiBone *) 0 ; - aiString *result = 0 ; - - arg1 = (aiBone *)jarg1; - result = (aiString *)& ((arg1)->mName); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBone_mNumWeights_set(void * jarg1, unsigned int jarg2) { - aiBone *arg1 = (aiBone *) 0 ; - unsigned int arg2 ; - - arg1 = (aiBone *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumWeights = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiBone_mNumWeights_get(void * jarg1) { - unsigned int jresult ; - aiBone *arg1 = (aiBone *) 0 ; - unsigned int result; - - arg1 = (aiBone *)jarg1; - result = (unsigned int) ((arg1)->mNumWeights); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBone_mOffsetMatrix_set(void * jarg1, void * jarg2) { - aiBone *arg1 = (aiBone *) 0 ; - aiMatrix4x4 *arg2 = (aiMatrix4x4 *) 0 ; - - arg1 = (aiBone *)jarg1; - arg2 = (aiMatrix4x4 *)jarg2; - if (arg1) (arg1)->mOffsetMatrix = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiBone_mOffsetMatrix_get(void * jarg1) { - void * jresult ; - aiBone *arg1 = (aiBone *) 0 ; - aiMatrix4x4 *result = 0 ; - - arg1 = (aiBone *)jarg1; - result = (aiMatrix4x4 *)& ((arg1)->mOffsetMatrix); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiBone__SWIG_0() { - void * jresult ; - aiBone *result = 0 ; - - result = (aiBone *)new aiBone(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiBone__SWIG_1(void * jarg1) { - void * jresult ; - aiBone *arg1 = 0 ; - aiBone *result = 0 ; - - arg1 = (aiBone *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiBone const & type is null", 0); - return 0; - } - result = (aiBone *)new aiBone((aiBone const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiBone(void * jarg1) { - aiBone *arg1 = (aiBone *) 0 ; - - arg1 = (aiBone *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiBone_GetmWeights(void * jarg1) { - void * jresult ; - aiBone *arg1 = (aiBone *) 0 ; - std::vector< aiVertexWeight * > *result = 0 ; - - arg1 = (aiBone *)jarg1; - result = (std::vector< aiVertexWeight * > *)aiBone_GetmWeights(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimMesh_mBitangents_set(void * jarg1, void * jarg2) { - aiAnimMesh *arg1 = (aiAnimMesh *) 0 ; - aiVector3D *arg2 = (aiVector3D *) 0 ; - - arg1 = (aiAnimMesh *)jarg1; - arg2 = (aiVector3D *)jarg2; - if (arg1) (arg1)->mBitangents = arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiAnimMesh_mBitangents_get(void * jarg1) { - void * jresult ; - aiAnimMesh *arg1 = (aiAnimMesh *) 0 ; - aiVector3D *result = 0 ; - - arg1 = (aiAnimMesh *)jarg1; - result = (aiVector3D *) ((arg1)->mBitangents); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimMesh_mNumVertices_set(void * jarg1, unsigned int jarg2) { - aiAnimMesh *arg1 = (aiAnimMesh *) 0 ; - unsigned int arg2 ; - - arg1 = (aiAnimMesh *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumVertices = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiAnimMesh_mNumVertices_get(void * jarg1) { - unsigned int jresult ; - aiAnimMesh *arg1 = (aiAnimMesh *) 0 ; - unsigned int result; - - arg1 = (aiAnimMesh *)jarg1; - result = (unsigned int) ((arg1)->mNumVertices); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiAnimMesh() { - void * jresult ; - aiAnimMesh *result = 0 ; - - result = (aiAnimMesh *)new aiAnimMesh(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiAnimMesh(void * jarg1) { - aiAnimMesh *arg1 = (aiAnimMesh *) 0 ; - - arg1 = (aiAnimMesh *)jarg1; - delete arg1; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiAnimMesh_HasPositions(void * jarg1) { - unsigned int jresult ; - aiAnimMesh *arg1 = (aiAnimMesh *) 0 ; - bool result; - - arg1 = (aiAnimMesh *)jarg1; - result = (bool)((aiAnimMesh const *)arg1)->HasPositions(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiAnimMesh_HasNormals(void * jarg1) { - unsigned int jresult ; - aiAnimMesh *arg1 = (aiAnimMesh *) 0 ; - bool result; - - arg1 = (aiAnimMesh *)jarg1; - result = (bool)((aiAnimMesh const *)arg1)->HasNormals(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiAnimMesh_HasTangentsAndBitangents(void * jarg1) { - unsigned int jresult ; - aiAnimMesh *arg1 = (aiAnimMesh *) 0 ; - bool result; - - arg1 = (aiAnimMesh *)jarg1; - result = (bool)((aiAnimMesh const *)arg1)->HasTangentsAndBitangents(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiAnimMesh_HasVertexColors(void * jarg1, unsigned int jarg2) { - unsigned int jresult ; - aiAnimMesh *arg1 = (aiAnimMesh *) 0 ; - unsigned int arg2 ; - bool result; - - arg1 = (aiAnimMesh *)jarg1; - arg2 = (unsigned int)jarg2; - result = (bool)((aiAnimMesh const *)arg1)->HasVertexColors(arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiAnimMesh_HasTextureCoords(void * jarg1, unsigned int jarg2) { - unsigned int jresult ; - aiAnimMesh *arg1 = (aiAnimMesh *) 0 ; - unsigned int arg2 ; - bool result; - - arg1 = (aiAnimMesh *)jarg1; - arg2 = (unsigned int)jarg2; - result = (bool)((aiAnimMesh const *)arg1)->HasTextureCoords(arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMesh_mPrimitiveTypes_set(void * jarg1, unsigned int jarg2) { - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMesh *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mPrimitiveTypes = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_mPrimitiveTypes_get(void * jarg1) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int result; - - arg1 = (aiMesh *)jarg1; - result = (unsigned int) ((arg1)->mPrimitiveTypes); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMesh_mNumVertices_set(void * jarg1, unsigned int jarg2) { - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMesh *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumVertices = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_mNumVertices_get(void * jarg1) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int result; - - arg1 = (aiMesh *)jarg1; - result = (unsigned int) ((arg1)->mNumVertices); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMesh_mNumFaces_set(void * jarg1, unsigned int jarg2) { - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMesh *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumFaces = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_mNumFaces_get(void * jarg1) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int result; - - arg1 = (aiMesh *)jarg1; - result = (unsigned int) ((arg1)->mNumFaces); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMesh_mNumBones_set(void * jarg1, unsigned int jarg2) { - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMesh *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumBones = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_mNumBones_get(void * jarg1) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int result; - - arg1 = (aiMesh *)jarg1; - result = (unsigned int) ((arg1)->mNumBones); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMesh_mMaterialIndex_set(void * jarg1, unsigned int jarg2) { - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMesh *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mMaterialIndex = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_mMaterialIndex_get(void * jarg1) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int result; - - arg1 = (aiMesh *)jarg1; - result = (unsigned int) ((arg1)->mMaterialIndex); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMesh_mName_set(void * jarg1, void * jarg2) { - aiMesh *arg1 = (aiMesh *) 0 ; - aiString *arg2 = (aiString *) 0 ; - - arg1 = (aiMesh *)jarg1; - arg2 = (aiString *)jarg2; - if (arg1) (arg1)->mName = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMesh_mName_get(void * jarg1) { - void * jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - aiString *result = 0 ; - - arg1 = (aiMesh *)jarg1; - result = (aiString *)& ((arg1)->mName); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMesh_mNumAnimMeshes_set(void * jarg1, unsigned int jarg2) { - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMesh *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumAnimMeshes = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_mNumAnimMeshes_get(void * jarg1) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int result; - - arg1 = (aiMesh *)jarg1; - result = (unsigned int) ((arg1)->mNumAnimMeshes); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMesh() { - void * jresult ; - aiMesh *result = 0 ; - - result = (aiMesh *)new aiMesh(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiMesh(void * jarg1) { - aiMesh *arg1 = (aiMesh *) 0 ; - - arg1 = (aiMesh *)jarg1; - delete arg1; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_HasPositions(void * jarg1) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - bool result; - - arg1 = (aiMesh *)jarg1; - result = (bool)((aiMesh const *)arg1)->HasPositions(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_HasFaces(void * jarg1) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - bool result; - - arg1 = (aiMesh *)jarg1; - result = (bool)((aiMesh const *)arg1)->HasFaces(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_HasNormals(void * jarg1) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - bool result; - - arg1 = (aiMesh *)jarg1; - result = (bool)((aiMesh const *)arg1)->HasNormals(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_HasTangentsAndBitangents(void * jarg1) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - bool result; - - arg1 = (aiMesh *)jarg1; - result = (bool)((aiMesh const *)arg1)->HasTangentsAndBitangents(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_HasVertexColors(void * jarg1, unsigned int jarg2) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int arg2 ; - bool result; - - arg1 = (aiMesh *)jarg1; - arg2 = (unsigned int)jarg2; - result = (bool)((aiMesh const *)arg1)->HasVertexColors(arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_HasTextureCoords(void * jarg1, unsigned int jarg2) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int arg2 ; - bool result; - - arg1 = (aiMesh *)jarg1; - arg2 = (unsigned int)jarg2; - result = (bool)((aiMesh const *)arg1)->HasTextureCoords(arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_GetNumUVChannels(void * jarg1) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int result; - - arg1 = (aiMesh *)jarg1; - result = (unsigned int)((aiMesh const *)arg1)->GetNumUVChannels(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_GetNumColorChannels(void * jarg1) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - unsigned int result; - - arg1 = (aiMesh *)jarg1; - result = (unsigned int)((aiMesh const *)arg1)->GetNumColorChannels(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMesh_HasBones(void * jarg1) { - unsigned int jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - bool result; - - arg1 = (aiMesh *)jarg1; - result = (bool)((aiMesh const *)arg1)->HasBones(); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMesh_GetmAnimMeshes(void * jarg1) { - void * jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - std::vector< aiAnimMesh * > *result = 0 ; - - arg1 = (aiMesh *)jarg1; - result = (std::vector< aiAnimMesh * > *)aiMesh_GetmAnimMeshes(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMesh_GetmBitangents(void * jarg1) { - void * jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - std::vector< aiVector3D * > *result = 0 ; - - arg1 = (aiMesh *)jarg1; - result = (std::vector< aiVector3D * > *)aiMesh_GetmBitangents(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMesh_GetmBones(void * jarg1) { - void * jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - std::vector< aiBone * > *result = 0 ; - - arg1 = (aiMesh *)jarg1; - result = (std::vector< aiBone * > *)aiMesh_GetmBones(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMesh_GetmColors(void * jarg1) { - void * jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - std::vector< std::vector< aiColor4D * > > *result = 0 ; - - arg1 = (aiMesh *)jarg1; - result = (std::vector< std::vector< aiColor4D * > > *)aiMesh_GetmColors(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMesh_GetmFaces(void * jarg1) { - void * jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - std::vector< aiFace * > *result = 0 ; - - arg1 = (aiMesh *)jarg1; - result = (std::vector< aiFace * > *)aiMesh_GetmFaces(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMesh_GetmNormals(void * jarg1) { - void * jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - std::vector< aiVector3D * > *result = 0 ; - - arg1 = (aiMesh *)jarg1; - result = (std::vector< aiVector3D * > *)aiMesh_GetmNormals(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMesh_GetmTangents(void * jarg1) { - void * jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - std::vector< aiVector3D * > *result = 0 ; - - arg1 = (aiMesh *)jarg1; - result = (std::vector< aiVector3D * > *)aiMesh_GetmTangents(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMesh_GetmTextureCoords(void * jarg1) { - void * jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - std::vector< std::vector< aiVector3D * > > *result = 0 ; - - arg1 = (aiMesh *)jarg1; - result = (std::vector< std::vector< aiVector3D * > > *)aiMesh_GetmTextureCoords(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMesh_GetmNumUVComponents(void * jarg1) { - void * jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - std::vector< unsigned int > *result = 0 ; - - arg1 = (aiMesh *)jarg1; - result = (std::vector< unsigned int > *)aiMesh_GetmNumUVComponents(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMesh_GetmVertices(void * jarg1) { - void * jresult ; - aiMesh *arg1 = (aiMesh *) 0 ; - std::vector< aiVector3D * > *result = 0 ; - - arg1 = (aiMesh *)jarg1; - result = (std::vector< aiVector3D * > *)aiMesh_GetmVertices(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_AI_DEFAULT_MATERIAL_NAME_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("DefaultMaterial"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiUVTransform_mTranslation_set(void * jarg1, void * jarg2) { - aiUVTransform *arg1 = (aiUVTransform *) 0 ; - aiVector2D *arg2 = (aiVector2D *) 0 ; - - arg1 = (aiUVTransform *)jarg1; - arg2 = (aiVector2D *)jarg2; - if (arg1) (arg1)->mTranslation = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiUVTransform_mTranslation_get(void * jarg1) { - void * jresult ; - aiUVTransform *arg1 = (aiUVTransform *) 0 ; - aiVector2D *result = 0 ; - - arg1 = (aiUVTransform *)jarg1; - result = (aiVector2D *)& ((arg1)->mTranslation); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiUVTransform_mScaling_set(void * jarg1, void * jarg2) { - aiUVTransform *arg1 = (aiUVTransform *) 0 ; - aiVector2D *arg2 = (aiVector2D *) 0 ; - - arg1 = (aiUVTransform *)jarg1; - arg2 = (aiVector2D *)jarg2; - if (arg1) (arg1)->mScaling = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiUVTransform_mScaling_get(void * jarg1) { - void * jresult ; - aiUVTransform *arg1 = (aiUVTransform *) 0 ; - aiVector2D *result = 0 ; - - arg1 = (aiUVTransform *)jarg1; - result = (aiVector2D *)& ((arg1)->mScaling); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiUVTransform_mRotation_set(void * jarg1, float jarg2) { - aiUVTransform *arg1 = (aiUVTransform *) 0 ; - float arg2 ; - - arg1 = (aiUVTransform *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->mRotation = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiUVTransform_mRotation_get(void * jarg1) { - float jresult ; - aiUVTransform *arg1 = (aiUVTransform *) 0 ; - float result; - - arg1 = (aiUVTransform *)jarg1; - result = (float) ((arg1)->mRotation); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiUVTransform() { - void * jresult ; - aiUVTransform *result = 0 ; - - result = (aiUVTransform *)new aiUVTransform(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiUVTransform(void * jarg1) { - aiUVTransform *arg1 = (aiUVTransform *) 0 ; - - arg1 = (aiUVTransform *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialProperty_mKey_set(void * jarg1, void * jarg2) { - aiMaterialProperty *arg1 = (aiMaterialProperty *) 0 ; - aiString *arg2 = (aiString *) 0 ; - - arg1 = (aiMaterialProperty *)jarg1; - arg2 = (aiString *)jarg2; - if (arg1) (arg1)->mKey = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMaterialProperty_mKey_get(void * jarg1) { - void * jresult ; - aiMaterialProperty *arg1 = (aiMaterialProperty *) 0 ; - aiString *result = 0 ; - - arg1 = (aiMaterialProperty *)jarg1; - result = (aiString *)& ((arg1)->mKey); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialProperty_mSemantic_set(void * jarg1, unsigned int jarg2) { - aiMaterialProperty *arg1 = (aiMaterialProperty *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMaterialProperty *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mSemantic = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterialProperty_mSemantic_get(void * jarg1) { - unsigned int jresult ; - aiMaterialProperty *arg1 = (aiMaterialProperty *) 0 ; - unsigned int result; - - arg1 = (aiMaterialProperty *)jarg1; - result = (unsigned int) ((arg1)->mSemantic); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialProperty_mIndex_set(void * jarg1, unsigned int jarg2) { - aiMaterialProperty *arg1 = (aiMaterialProperty *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMaterialProperty *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mIndex = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterialProperty_mIndex_get(void * jarg1) { - unsigned int jresult ; - aiMaterialProperty *arg1 = (aiMaterialProperty *) 0 ; - unsigned int result; - - arg1 = (aiMaterialProperty *)jarg1; - result = (unsigned int) ((arg1)->mIndex); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialProperty_mDataLength_set(void * jarg1, unsigned int jarg2) { - aiMaterialProperty *arg1 = (aiMaterialProperty *) 0 ; - unsigned int arg2 ; - - arg1 = (aiMaterialProperty *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mDataLength = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterialProperty_mDataLength_get(void * jarg1) { - unsigned int jresult ; - aiMaterialProperty *arg1 = (aiMaterialProperty *) 0 ; - unsigned int result; - - arg1 = (aiMaterialProperty *)jarg1; - result = (unsigned int) ((arg1)->mDataLength); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialProperty_mType_set(void * jarg1, int jarg2) { - aiMaterialProperty *arg1 = (aiMaterialProperty *) 0 ; - aiPropertyTypeInfo arg2 ; - - arg1 = (aiMaterialProperty *)jarg1; - arg2 = (aiPropertyTypeInfo)jarg2; - if (arg1) (arg1)->mType = arg2; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMaterialProperty_mType_get(void * jarg1) { - int jresult ; - aiMaterialProperty *arg1 = (aiMaterialProperty *) 0 ; - aiPropertyTypeInfo result; - - arg1 = (aiMaterialProperty *)jarg1; - result = (aiPropertyTypeInfo) ((arg1)->mType); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialProperty_mData_set(void * jarg1, char * jarg2) { - aiMaterialProperty *arg1 = (aiMaterialProperty *) 0 ; - char *arg2 = (char *) 0 ; - - arg1 = (aiMaterialProperty *)jarg1; - arg2 = (char *)jarg2; - { - delete [] arg1->mData; - if (arg2) { - arg1->mData = (char *) (new char[strlen((const char *)arg2)+1]); - strcpy((char *)arg1->mData, (const char *)arg2); - } else { - arg1->mData = 0; - } - } -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_aiMaterialProperty_mData_get(void * jarg1) { - char * jresult ; - aiMaterialProperty *arg1 = (aiMaterialProperty *) 0 ; - char *result = 0 ; - - arg1 = (aiMaterialProperty *)jarg1; - result = (char *) ((arg1)->mData); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMaterialProperty() { - void * jresult ; - aiMaterialProperty *result = 0 ; - - result = (aiMaterialProperty *)new aiMaterialProperty(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiMaterialProperty(void * jarg1) { - aiMaterialProperty *arg1 = (aiMaterialProperty *) 0 ; - - arg1 = (aiMaterialProperty *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMaterial() { - void * jresult ; - aiMaterial *result = 0 ; - - result = (aiMaterial *)new aiMaterial(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiMaterial(void * jarg1) { - aiMaterial *arg1 = (aiMaterial *) 0 ; - - arg1 = (aiMaterial *)jarg1; - delete arg1; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetTextureCount(void * jarg1, int jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiTextureType arg2 ; - unsigned int result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiTextureType)jarg2; - result = (unsigned int)((aiMaterial const *)arg1)->GetTextureCount(arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMaterial_AddBinaryProperty(void * jarg1, void * jarg2, unsigned int jarg3, char * jarg4, unsigned int jarg5, unsigned int jarg6, int jarg7) { - int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - void *arg2 = (void *) 0 ; - unsigned int arg3 ; - char *arg4 = (char *) 0 ; - unsigned int arg5 ; - unsigned int arg6 ; - aiPropertyTypeInfo arg7 ; - aiReturn result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (void *)jarg2; - arg3 = (unsigned int)jarg3; - arg4 = (char *)jarg4; - arg5 = (unsigned int)jarg5; - arg6 = (unsigned int)jarg6; - arg7 = (aiPropertyTypeInfo)jarg7; - result = (aiReturn)(arg1)->AddBinaryProperty((void const *)arg2,arg3,(char const *)arg4,arg5,arg6,arg7); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMaterial_AddProperty__SWIG_0(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4, unsigned int jarg5) { - int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiString *arg2 = (aiString *) 0 ; - char *arg3 = (char *) 0 ; - unsigned int arg4 ; - unsigned int arg5 ; - aiReturn result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiString *)jarg2; - arg3 = (char *)jarg3; - arg4 = (unsigned int)jarg4; - arg5 = (unsigned int)jarg5; - result = (aiReturn)(arg1)->AddProperty((aiString const *)arg2,(char const *)arg3,arg4,arg5); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMaterial_AddProperty__SWIG_1(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) { - int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiString *arg2 = (aiString *) 0 ; - char *arg3 = (char *) 0 ; - unsigned int arg4 ; - aiReturn result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiString *)jarg2; - arg3 = (char *)jarg3; - arg4 = (unsigned int)jarg4; - result = (aiReturn)(arg1)->AddProperty((aiString const *)arg2,(char const *)arg3,arg4); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMaterial_AddProperty__SWIG_2(void * jarg1, void * jarg2, char * jarg3) { - int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiString *arg2 = (aiString *) 0 ; - char *arg3 = (char *) 0 ; - aiReturn result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiString *)jarg2; - arg3 = (char *)jarg3; - result = (aiReturn)(arg1)->AddProperty((aiString const *)arg2,(char const *)arg3); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMaterial_RemoveProperty__SWIG_0(void * jarg1, char * jarg2, unsigned int jarg3, unsigned int jarg4) { - int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - char *arg2 = (char *) 0 ; - unsigned int arg3 ; - unsigned int arg4 ; - aiReturn result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (char *)jarg2; - arg3 = (unsigned int)jarg3; - arg4 = (unsigned int)jarg4; - result = (aiReturn)(arg1)->RemoveProperty((char const *)arg2,arg3,arg4); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMaterial_RemoveProperty__SWIG_1(void * jarg1, char * jarg2, unsigned int jarg3) { - int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - char *arg2 = (char *) 0 ; - unsigned int arg3 ; - aiReturn result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (char *)jarg2; - arg3 = (unsigned int)jarg3; - result = (aiReturn)(arg1)->RemoveProperty((char const *)arg2,arg3); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMaterial_RemoveProperty__SWIG_2(void * jarg1, char * jarg2) { - int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - char *arg2 = (char *) 0 ; - aiReturn result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (char *)jarg2; - result = (aiReturn)(arg1)->RemoveProperty((char const *)arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterial_Clear(void * jarg1) { - aiMaterial *arg1 = (aiMaterial *) 0 ; - - arg1 = (aiMaterial *)jarg1; - (arg1)->Clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterial_CopyPropertyList(void * jarg1, void * jarg2) { - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiMaterial *arg2 = (aiMaterial *) 0 ; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiMaterial *)jarg2; - aiMaterial::CopyPropertyList(arg1,(aiMaterial const *)arg2); -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetDiffuse(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiColor4D *arg2 = (aiColor4D *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiColor4D *)jarg2; - result = (bool)aiMaterial_GetDiffuse(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetSpecular(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiColor4D *arg2 = (aiColor4D *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiColor4D *)jarg2; - result = (bool)aiMaterial_GetSpecular(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetAmbient(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiColor4D *arg2 = (aiColor4D *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiColor4D *)jarg2; - result = (bool)aiMaterial_GetAmbient(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetEmissive(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiColor4D *arg2 = (aiColor4D *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiColor4D *)jarg2; - result = (bool)aiMaterial_GetEmissive(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetOpacity(void * jarg1, float * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - float *arg2 = (float *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (float *)jarg2; - result = (bool)aiMaterial_GetOpacity(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetShininessStrength(void * jarg1, float * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - float *arg2 = (float *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (float *)jarg2; - result = (bool)aiMaterial_GetShininessStrength(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetShadingModel(void * jarg1, int * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - int *arg2 = (int *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (int *)jarg2; - result = (bool)aiMaterial_GetShadingModel(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetTexFlagsDiffuse0(void * jarg1, int * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - int *arg2 = (int *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (int *)jarg2; - result = (bool)aiMaterial_GetTexFlagsDiffuse0(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetMappingModeUDiffuse0(void * jarg1, int * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - int *arg2 = (int *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (int *)jarg2; - result = (bool)aiMaterial_GetMappingModeUDiffuse0(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetMappingModeVDiffuse0(void * jarg1, int * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - int *arg2 = (int *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (int *)jarg2; - result = (bool)aiMaterial_GetMappingModeVDiffuse0(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetTextureDiffuse0(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiString *arg2 = (aiString *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiString *)jarg2; - result = (bool)aiMaterial_GetTextureDiffuse0(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetTextureSpecular0(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiString *arg2 = (aiString *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiString *)jarg2; - result = (bool)aiMaterial_GetTextureSpecular0(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetTextureOpacity0(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiString *arg2 = (aiString *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiString *)jarg2; - result = (bool)aiMaterial_GetTextureOpacity0(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetTextureAmbient0(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiString *arg2 = (aiString *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiString *)jarg2; - result = (bool)aiMaterial_GetTextureAmbient0(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetTextureEmissive0(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiString *arg2 = (aiString *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiString *)jarg2; - result = (bool)aiMaterial_GetTextureEmissive0(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetTextureShininess0(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiString *arg2 = (aiString *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiString *)jarg2; - result = (bool)aiMaterial_GetTextureShininess0(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetTextureLightmap0(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiString *arg2 = (aiString *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiString *)jarg2; - result = (bool)aiMaterial_GetTextureLightmap0(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetTextureNormals0(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiString *arg2 = (aiString *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiString *)jarg2; - result = (bool)aiMaterial_GetTextureNormals0(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetTextureHeight0(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiString *arg2 = (aiString *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiString *)jarg2; - result = (bool)aiMaterial_GetTextureHeight0(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetGlobalBackgroundImage(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - aiString *arg2 = (aiString *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (aiString *)jarg2; - result = (bool)aiMaterial_GetGlobalBackgroundImage(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterial_GetTwoSided(void * jarg1, int * jarg2) { - unsigned int jresult ; - aiMaterial *arg1 = (aiMaterial *) 0 ; - int *arg2 = (int *) 0 ; - bool result; - - arg1 = (aiMaterial *)jarg1; - arg2 = (int *)jarg2; - result = (bool)aiMaterial_GetTwoSided(arg1,arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp__AI_MATKEY_TEXTURE_BASE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("$tex.file"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp__AI_MATKEY_UVWSRC_BASE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("$tex.uvwsrc"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp__AI_MATKEY_TEXOP_BASE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("$tex.op"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp__AI_MATKEY_MAPPING_BASE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("$tex.mapping"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp__AI_MATKEY_TEXBLEND_BASE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("$tex.blend"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp__AI_MATKEY_MAPPINGMODE_U_BASE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("$tex.mapmodeu"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp__AI_MATKEY_MAPPINGMODE_V_BASE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("$tex.mapmodev"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp__AI_MATKEY_TEXMAP_AXIS_BASE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("$tex.mapaxis"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp__AI_MATKEY_UVTRANSFORM_BASE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("$tex.uvtrafo"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp__AI_MATKEY_TEXFLAGS_BASE_get() { - char * jresult ; - char *result = 0 ; - - result = (char *)("$tex.flags"); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNode_mName_set(void * jarg1, void * jarg2) { - aiNode *arg1 = (aiNode *) 0 ; - aiString *arg2 = (aiString *) 0 ; - - arg1 = (aiNode *)jarg1; - arg2 = (aiString *)jarg2; - if (arg1) (arg1)->mName = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNode_mName_get(void * jarg1) { - void * jresult ; - aiNode *arg1 = (aiNode *) 0 ; - aiString *result = 0 ; - - arg1 = (aiNode *)jarg1; - result = (aiString *)& ((arg1)->mName); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNode_mTransformation_set(void * jarg1, void * jarg2) { - aiNode *arg1 = (aiNode *) 0 ; - aiMatrix4x4 *arg2 = (aiMatrix4x4 *) 0 ; - - arg1 = (aiNode *)jarg1; - arg2 = (aiMatrix4x4 *)jarg2; - if (arg1) (arg1)->mTransformation = *arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNode_mTransformation_get(void * jarg1) { - void * jresult ; - aiNode *arg1 = (aiNode *) 0 ; - aiMatrix4x4 *result = 0 ; - - arg1 = (aiNode *)jarg1; - result = (aiMatrix4x4 *)& ((arg1)->mTransformation); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNode_mParent_set(void * jarg1, void * jarg2) { - aiNode *arg1 = (aiNode *) 0 ; - aiNode *arg2 = (aiNode *) 0 ; - - arg1 = (aiNode *)jarg1; - arg2 = (aiNode *)jarg2; - if (arg1) (arg1)->mParent = arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNode_mParent_get(void * jarg1) { - void * jresult ; - aiNode *arg1 = (aiNode *) 0 ; - aiNode *result = 0 ; - - arg1 = (aiNode *)jarg1; - result = (aiNode *) ((arg1)->mParent); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNode_mNumChildren_set(void * jarg1, unsigned int jarg2) { - aiNode *arg1 = (aiNode *) 0 ; - unsigned int arg2 ; - - arg1 = (aiNode *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumChildren = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiNode_mNumChildren_get(void * jarg1) { - unsigned int jresult ; - aiNode *arg1 = (aiNode *) 0 ; - unsigned int result; - - arg1 = (aiNode *)jarg1; - result = (unsigned int) ((arg1)->mNumChildren); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNode_mNumMeshes_set(void * jarg1, unsigned int jarg2) { - aiNode *arg1 = (aiNode *) 0 ; - unsigned int arg2 ; - - arg1 = (aiNode *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumMeshes = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiNode_mNumMeshes_get(void * jarg1) { - unsigned int jresult ; - aiNode *arg1 = (aiNode *) 0 ; - unsigned int result; - - arg1 = (aiNode *)jarg1; - result = (unsigned int) ((arg1)->mNumMeshes); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiNode__SWIG_0() { - void * jresult ; - aiNode *result = 0 ; - - result = (aiNode *)new aiNode(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiNode__SWIG_1(char * jarg1) { - void * jresult ; - std::string *arg1 = 0 ; - aiNode *result = 0 ; - - if (!jarg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0); - return 0; - } - std::string arg1_str(jarg1); - arg1 = &arg1_str; - result = (aiNode *)new aiNode((std::string const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiNode(void * jarg1) { - aiNode *arg1 = (aiNode *) 0 ; - - arg1 = (aiNode *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNode_FindNode__SWIG_0(void * jarg1, void * jarg2) { - void * jresult ; - aiNode *arg1 = (aiNode *) 0 ; - aiString *arg2 = 0 ; - aiNode *result = 0 ; - - arg1 = (aiNode *)jarg1; - arg2 = (aiString *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiString const & type is null", 0); - return 0; - } - result = (aiNode *)(arg1)->FindNode((aiString const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNode_FindNode__SWIG_1(void * jarg1, char * jarg2) { - void * jresult ; - aiNode *arg1 = (aiNode *) 0 ; - char *arg2 = (char *) 0 ; - aiNode *result = 0 ; - - arg1 = (aiNode *)jarg1; - arg2 = (char *)jarg2; - result = (aiNode *)(arg1)->FindNode((char const *)arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNode_GetmChildren(void * jarg1) { - void * jresult ; - aiNode *arg1 = (aiNode *) 0 ; - std::vector< aiNode * > *result = 0 ; - - arg1 = (aiNode *)jarg1; - result = (std::vector< aiNode * > *)aiNode_GetmChildren(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNode_GetmMeshes(void * jarg1) { - void * jresult ; - aiNode *arg1 = (aiNode *) 0 ; - std::vector< unsigned int > *result = 0 ; - - arg1 = (aiNode *)jarg1; - result = (std::vector< unsigned int > *)aiNode_GetmMeshes(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_SCENE_FLAGS_INCOMPLETE_get() { - int jresult ; - int result; - - result = (int)(0x1); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_SCENE_FLAGS_VALIDATED_get() { - int jresult ; - int result; - - result = (int)(0x2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_SCENE_FLAGS_VALIDATION_WARNING_get() { - int jresult ; - int result; - - result = (int)(0x4); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_SCENE_FLAGS_NON_VERBOSE_FORMAT_get() { - int jresult ; - int result; - - result = (int)(0x8); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_SCENE_FLAGS_TERRAIN_get() { - int jresult ; - int result; - - result = (int)(0x10); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiScene_mFlags_set(void * jarg1, unsigned int jarg2) { - aiScene *arg1 = (aiScene *) 0 ; - unsigned int arg2 ; - - arg1 = (aiScene *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mFlags = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiScene_mFlags_get(void * jarg1) { - unsigned int jresult ; - aiScene *arg1 = (aiScene *) 0 ; - unsigned int result; - - arg1 = (aiScene *)jarg1; - result = (unsigned int) ((arg1)->mFlags); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiScene_mRootNode_set(void * jarg1, void * jarg2) { - aiScene *arg1 = (aiScene *) 0 ; - aiNode *arg2 = (aiNode *) 0 ; - - arg1 = (aiScene *)jarg1; - arg2 = (aiNode *)jarg2; - if (arg1) (arg1)->mRootNode = arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiScene_mRootNode_get(void * jarg1) { - void * jresult ; - aiScene *arg1 = (aiScene *) 0 ; - aiNode *result = 0 ; - - arg1 = (aiScene *)jarg1; - result = (aiNode *) ((arg1)->mRootNode); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiScene_mNumMeshes_set(void * jarg1, unsigned int jarg2) { - aiScene *arg1 = (aiScene *) 0 ; - unsigned int arg2 ; - - arg1 = (aiScene *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumMeshes = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiScene_mNumMeshes_get(void * jarg1) { - unsigned int jresult ; - aiScene *arg1 = (aiScene *) 0 ; - unsigned int result; - - arg1 = (aiScene *)jarg1; - result = (unsigned int) ((arg1)->mNumMeshes); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiScene_mNumMaterials_set(void * jarg1, unsigned int jarg2) { - aiScene *arg1 = (aiScene *) 0 ; - unsigned int arg2 ; - - arg1 = (aiScene *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumMaterials = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiScene_mNumMaterials_get(void * jarg1) { - unsigned int jresult ; - aiScene *arg1 = (aiScene *) 0 ; - unsigned int result; - - arg1 = (aiScene *)jarg1; - result = (unsigned int) ((arg1)->mNumMaterials); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiScene_mNumAnimations_set(void * jarg1, unsigned int jarg2) { - aiScene *arg1 = (aiScene *) 0 ; - unsigned int arg2 ; - - arg1 = (aiScene *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumAnimations = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiScene_mNumAnimations_get(void * jarg1) { - unsigned int jresult ; - aiScene *arg1 = (aiScene *) 0 ; - unsigned int result; - - arg1 = (aiScene *)jarg1; - result = (unsigned int) ((arg1)->mNumAnimations); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiScene_mNumTextures_set(void * jarg1, unsigned int jarg2) { - aiScene *arg1 = (aiScene *) 0 ; - unsigned int arg2 ; - - arg1 = (aiScene *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumTextures = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiScene_mNumTextures_get(void * jarg1) { - unsigned int jresult ; - aiScene *arg1 = (aiScene *) 0 ; - unsigned int result; - - arg1 = (aiScene *)jarg1; - result = (unsigned int) ((arg1)->mNumTextures); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiScene_mNumLights_set(void * jarg1, unsigned int jarg2) { - aiScene *arg1 = (aiScene *) 0 ; - unsigned int arg2 ; - - arg1 = (aiScene *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumLights = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiScene_mNumLights_get(void * jarg1) { - unsigned int jresult ; - aiScene *arg1 = (aiScene *) 0 ; - unsigned int result; - - arg1 = (aiScene *)jarg1; - result = (unsigned int) ((arg1)->mNumLights); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiScene_mNumCameras_set(void * jarg1, unsigned int jarg2) { - aiScene *arg1 = (aiScene *) 0 ; - unsigned int arg2 ; - - arg1 = (aiScene *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mNumCameras = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiScene_mNumCameras_get(void * jarg1) { - unsigned int jresult ; - aiScene *arg1 = (aiScene *) 0 ; - unsigned int result; - - arg1 = (aiScene *)jarg1; - result = (unsigned int) ((arg1)->mNumCameras); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiScene() { - void * jresult ; - aiScene *result = 0 ; - - result = (aiScene *)new aiScene(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiScene(void * jarg1) { - aiScene *arg1 = (aiScene *) 0 ; - - arg1 = (aiScene *)jarg1; - delete arg1; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiScene_HasMeshes(void * jarg1) { - unsigned int jresult ; - aiScene *arg1 = (aiScene *) 0 ; - bool result; - - arg1 = (aiScene *)jarg1; - result = (bool)((aiScene const *)arg1)->HasMeshes(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiScene_HasMaterials(void * jarg1) { - unsigned int jresult ; - aiScene *arg1 = (aiScene *) 0 ; - bool result; - - arg1 = (aiScene *)jarg1; - result = (bool)((aiScene const *)arg1)->HasMaterials(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiScene_HasLights(void * jarg1) { - unsigned int jresult ; - aiScene *arg1 = (aiScene *) 0 ; - bool result; - - arg1 = (aiScene *)jarg1; - result = (bool)((aiScene const *)arg1)->HasLights(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiScene_HasTextures(void * jarg1) { - unsigned int jresult ; - aiScene *arg1 = (aiScene *) 0 ; - bool result; - - arg1 = (aiScene *)jarg1; - result = (bool)((aiScene const *)arg1)->HasTextures(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiScene_HasCameras(void * jarg1) { - unsigned int jresult ; - aiScene *arg1 = (aiScene *) 0 ; - bool result; - - arg1 = (aiScene *)jarg1; - result = (bool)((aiScene const *)arg1)->HasCameras(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiScene_HasAnimations(void * jarg1) { - unsigned int jresult ; - aiScene *arg1 = (aiScene *) 0 ; - bool result; - - arg1 = (aiScene *)jarg1; - result = (bool)((aiScene const *)arg1)->HasAnimations(); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiScene_mPrivate_set(void * jarg1, void * jarg2) { - aiScene *arg1 = (aiScene *) 0 ; - void *arg2 = (void *) 0 ; - - arg1 = (aiScene *)jarg1; - arg2 = (void *)jarg2; - if (arg1) (arg1)->mPrivate = arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiScene_mPrivate_get(void * jarg1) { - void * jresult ; - aiScene *arg1 = (aiScene *) 0 ; - void *result = 0 ; - - arg1 = (aiScene *)jarg1; - result = (void *) ((arg1)->mPrivate); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiScene_GetmAnimations(void * jarg1) { - void * jresult ; - aiScene *arg1 = (aiScene *) 0 ; - std::vector< aiAnimation * > *result = 0 ; - - arg1 = (aiScene *)jarg1; - result = (std::vector< aiAnimation * > *)aiScene_GetmAnimations(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiScene_GetmCameras(void * jarg1) { - void * jresult ; - aiScene *arg1 = (aiScene *) 0 ; - std::vector< aiCamera * > *result = 0 ; - - arg1 = (aiScene *)jarg1; - result = (std::vector< aiCamera * > *)aiScene_GetmCameras(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiScene_GetmLights(void * jarg1) { - void * jresult ; - aiScene *arg1 = (aiScene *) 0 ; - std::vector< aiLight * > *result = 0 ; - - arg1 = (aiScene *)jarg1; - result = (std::vector< aiLight * > *)aiScene_GetmLights(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiScene_GetmMaterials(void * jarg1) { - void * jresult ; - aiScene *arg1 = (aiScene *) 0 ; - std::vector< aiMaterial * > *result = 0 ; - - arg1 = (aiScene *)jarg1; - result = (std::vector< aiMaterial * > *)aiScene_GetmMaterials(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiScene_GetmMeshes(void * jarg1) { - void * jresult ; - aiScene *arg1 = (aiScene *) 0 ; - std::vector< aiMesh * > *result = 0 ; - - arg1 = (aiScene *)jarg1; - result = (std::vector< aiMesh * > *)aiScene_GetmMeshes(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiScene_GetmTextures(void * jarg1) { - void * jresult ; - aiScene *arg1 = (aiScene *) 0 ; - std::vector< aiTexture * > *result = 0 ; - - arg1 = (aiScene *)jarg1; - result = (std::vector< aiTexture * > *)aiScene_GetmTextures(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTexel_b_set(void * jarg1, unsigned char jarg2) { - aiTexel *arg1 = (aiTexel *) 0 ; - unsigned char arg2 ; - - arg1 = (aiTexel *)jarg1; - arg2 = (unsigned char)jarg2; - if (arg1) (arg1)->b = arg2; -} - - -SWIGEXPORT unsigned char SWIGSTDCALL CSharp_aiTexel_b_get(void * jarg1) { - unsigned char jresult ; - aiTexel *arg1 = (aiTexel *) 0 ; - unsigned char result; - - arg1 = (aiTexel *)jarg1; - result = (unsigned char) ((arg1)->b); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTexel_g_set(void * jarg1, unsigned char jarg2) { - aiTexel *arg1 = (aiTexel *) 0 ; - unsigned char arg2 ; - - arg1 = (aiTexel *)jarg1; - arg2 = (unsigned char)jarg2; - if (arg1) (arg1)->g = arg2; -} - - -SWIGEXPORT unsigned char SWIGSTDCALL CSharp_aiTexel_g_get(void * jarg1) { - unsigned char jresult ; - aiTexel *arg1 = (aiTexel *) 0 ; - unsigned char result; - - arg1 = (aiTexel *)jarg1; - result = (unsigned char) ((arg1)->g); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTexel_r_set(void * jarg1, unsigned char jarg2) { - aiTexel *arg1 = (aiTexel *) 0 ; - unsigned char arg2 ; - - arg1 = (aiTexel *)jarg1; - arg2 = (unsigned char)jarg2; - if (arg1) (arg1)->r = arg2; -} - - -SWIGEXPORT unsigned char SWIGSTDCALL CSharp_aiTexel_r_get(void * jarg1) { - unsigned char jresult ; - aiTexel *arg1 = (aiTexel *) 0 ; - unsigned char result; - - arg1 = (aiTexel *)jarg1; - result = (unsigned char) ((arg1)->r); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTexel_a_set(void * jarg1, unsigned char jarg2) { - aiTexel *arg1 = (aiTexel *) 0 ; - unsigned char arg2 ; - - arg1 = (aiTexel *)jarg1; - arg2 = (unsigned char)jarg2; - if (arg1) (arg1)->a = arg2; -} - - -SWIGEXPORT unsigned char SWIGSTDCALL CSharp_aiTexel_a_get(void * jarg1) { - unsigned char jresult ; - aiTexel *arg1 = (aiTexel *) 0 ; - unsigned char result; - - arg1 = (aiTexel *)jarg1; - result = (unsigned char) ((arg1)->a); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiTexel___equal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiTexel *arg1 = (aiTexel *) 0 ; - aiTexel *arg2 = 0 ; - bool result; - - arg1 = (aiTexel *)jarg1; - arg2 = (aiTexel *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiTexel const & type is null", 0); - return 0; - } - result = (bool)((aiTexel const *)arg1)->operator ==((aiTexel const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiTexel___nequal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiTexel *arg1 = (aiTexel *) 0 ; - aiTexel *arg2 = 0 ; - bool result; - - arg1 = (aiTexel *)jarg1; - arg2 = (aiTexel *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiTexel const & type is null", 0); - return 0; - } - result = (bool)((aiTexel const *)arg1)->operator !=((aiTexel const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiTexel() { - void * jresult ; - aiTexel *result = 0 ; - - result = (aiTexel *)new aiTexel(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiTexel(void * jarg1) { - aiTexel *arg1 = (aiTexel *) 0 ; - - arg1 = (aiTexel *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTexture_mWidth_set(void * jarg1, unsigned int jarg2) { - aiTexture *arg1 = (aiTexture *) 0 ; - unsigned int arg2 ; - - arg1 = (aiTexture *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mWidth = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiTexture_mWidth_get(void * jarg1) { - unsigned int jresult ; - aiTexture *arg1 = (aiTexture *) 0 ; - unsigned int result; - - arg1 = (aiTexture *)jarg1; - result = (unsigned int) ((arg1)->mWidth); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTexture_mHeight_set(void * jarg1, unsigned int jarg2) { - aiTexture *arg1 = (aiTexture *) 0 ; - unsigned int arg2 ; - - arg1 = (aiTexture *)jarg1; - arg2 = (unsigned int)jarg2; - if (arg1) (arg1)->mHeight = arg2; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiTexture_mHeight_get(void * jarg1) { - unsigned int jresult ; - aiTexture *arg1 = (aiTexture *) 0 ; - unsigned int result; - - arg1 = (aiTexture *)jarg1; - result = (unsigned int) ((arg1)->mHeight); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTexture_achFormatHint_set(void * jarg1, char * jarg2) { - aiTexture *arg1 = (aiTexture *) 0 ; - char *arg2 ; - - arg1 = (aiTexture *)jarg1; - arg2 = (char *)jarg2; - { - if(arg2) { - strncpy((char*)arg1->achFormatHint, (const char *)arg2, 4-1); - arg1->achFormatHint[4-1] = 0; - } else { - arg1->achFormatHint[0] = 0; - } - } -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_aiTexture_achFormatHint_get(void * jarg1) { - char * jresult ; - aiTexture *arg1 = (aiTexture *) 0 ; - char *result = 0 ; - - arg1 = (aiTexture *)jarg1; - result = (char *)(char *) ((arg1)->achFormatHint); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTexture_pcData_set(void * jarg1, void * jarg2) { - aiTexture *arg1 = (aiTexture *) 0 ; - aiTexel *arg2 = (aiTexel *) 0 ; - - arg1 = (aiTexture *)jarg1; - arg2 = (aiTexel *)jarg2; - if (arg1) (arg1)->pcData = arg2; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiTexture_pcData_get(void * jarg1) { - void * jresult ; - aiTexture *arg1 = (aiTexture *) 0 ; - aiTexel *result = 0 ; - - arg1 = (aiTexture *)jarg1; - result = (aiTexel *) ((arg1)->pcData); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiTexture_CheckFormat(void * jarg1, char * jarg2) { - unsigned int jresult ; - aiTexture *arg1 = (aiTexture *) 0 ; - char *arg2 = (char *) 0 ; - bool result; - - arg1 = (aiTexture *)jarg1; - arg2 = (char *)jarg2; - result = (bool)((aiTexture const *)arg1)->CheckFormat((char const *)arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiTexture() { - void * jresult ; - aiTexture *result = 0 ; - - result = (aiTexture *)new aiTexture(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiTexture(void * jarg1) { - aiTexture *arg1 = (aiTexture *) 0 ; - - arg1 = (aiTexture *)jarg1; - delete arg1; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_AI_PROPERTY_WAS_NOT_EXISTING_get() { - int jresult ; - int result; - - result = (int)(0xffffffff); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_Importer__SWIG_0() { - void * jresult ; - Assimp::Importer *result = 0 ; - - result = (Assimp::Importer *)new Assimp::Importer(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_Importer__SWIG_1(void * jarg1) { - void * jresult ; - Assimp::Importer *arg1 = 0 ; - Assimp::Importer *result = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Assimp::Importer const & type is null", 0); - return 0; - } - result = (Assimp::Importer *)new Assimp::Importer((Assimp::Importer const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_Importer(void * jarg1) { - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - - arg1 = (Assimp::Importer *)jarg1; - delete arg1; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_Importer_GetPropertyInteger__SWIG_0(void * jarg1, char * jarg2, int jarg3) { - int jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - char *arg2 = (char *) 0 ; - int arg3 ; - int result; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (char *)jarg2; - arg3 = (int)jarg3; - result = (int)((Assimp::Importer const *)arg1)->GetPropertyInteger((char const *)arg2,arg3); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_Importer_GetPropertyInteger__SWIG_1(void * jarg1, char * jarg2) { - int jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - char *arg2 = (char *) 0 ; - int result; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (char *)jarg2; - result = (int)((Assimp::Importer const *)arg1)->GetPropertyInteger((char const *)arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Importer_GetPropertyBool__SWIG_0(void * jarg1, char * jarg2, unsigned int jarg3) { - unsigned int jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - char *arg2 = (char *) 0 ; - bool arg3 ; - bool result; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (char *)jarg2; - arg3 = jarg3 ? true : false; - result = (bool)((Assimp::Importer const *)arg1)->GetPropertyBool((char const *)arg2,arg3); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Importer_GetPropertyBool__SWIG_1(void * jarg1, char * jarg2) { - unsigned int jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - char *arg2 = (char *) 0 ; - bool result; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (char *)jarg2; - result = (bool)((Assimp::Importer const *)arg1)->GetPropertyBool((char const *)arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_Importer_GetPropertyFloat__SWIG_0(void * jarg1, char * jarg2, float jarg3) { - float jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - char *arg2 = (char *) 0 ; - float arg3 ; - float result; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (char *)jarg2; - arg3 = (float)jarg3; - result = (float)((Assimp::Importer const *)arg1)->GetPropertyFloat((char const *)arg2,arg3); - jresult = result; - return jresult; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_Importer_GetPropertyFloat__SWIG_1(void * jarg1, char * jarg2) { - float jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - char *arg2 = (char *) 0 ; - float result; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (char *)jarg2; - result = (float)((Assimp::Importer const *)arg1)->GetPropertyFloat((char const *)arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_Importer_GetPropertyString__SWIG_0(void * jarg1, char * jarg2, char * jarg3) { - char * jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - char *arg2 = (char *) 0 ; - std::string *arg3 = 0 ; - std::string *result = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (char *)jarg2; - if (!jarg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0); - return 0; - } - std::string arg3_str(jarg3); - arg3 = &arg3_str; - result = (std::string *) &((Assimp::Importer const *)arg1)->GetPropertyString((char const *)arg2,(std::string const &)*arg3); - jresult = SWIG_csharp_string_callback(result->c_str()); - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_Importer_GetPropertyString__SWIG_1(void * jarg1, char * jarg2) { - char * jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - char *arg2 = (char *) 0 ; - std::string *result = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (char *)jarg2; - result = (std::string *) &((Assimp::Importer const *)arg1)->GetPropertyString((char const *)arg2); - jresult = SWIG_csharp_string_callback(result->c_str()); - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Importer_IsDefaultIOHandler(void * jarg1) { - unsigned int jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - bool result; - - arg1 = (Assimp::Importer *)jarg1; - result = (bool)((Assimp::Importer const *)arg1)->IsDefaultIOHandler(); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_Importer_SetProgressHandler(void * jarg1, void * jarg2) { - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - Assimp::ProgressHandler *arg2 = (Assimp::ProgressHandler *) 0 ; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (Assimp::ProgressHandler *)jarg2; - (arg1)->SetProgressHandler(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_Importer_GetProgressHandler(void * jarg1) { - void * jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - Assimp::ProgressHandler *result = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - result = (Assimp::ProgressHandler *)((Assimp::Importer const *)arg1)->GetProgressHandler(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Importer_IsDefaultProgressHandler(void * jarg1) { - unsigned int jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - bool result; - - arg1 = (Assimp::Importer *)jarg1; - result = (bool)((Assimp::Importer const *)arg1)->IsDefaultProgressHandler(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Importer_ValidateFlags(void * jarg1, unsigned int jarg2) { - unsigned int jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - unsigned int arg2 ; - bool result; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (unsigned int)jarg2; - result = (bool)((Assimp::Importer const *)arg1)->ValidateFlags(arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_Importer_ReadFile__SWIG_0(void * jarg1, char * jarg2, unsigned int jarg3) { - void * jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - char *arg2 = (char *) 0 ; - unsigned int arg3 ; - aiScene *result = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (char *)jarg2; - arg3 = (unsigned int)jarg3; - result = (aiScene *)(arg1)->ReadFile((char const *)arg2,arg3); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_Importer_FreeScene(void * jarg1) { - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - - arg1 = (Assimp::Importer *)jarg1; - (arg1)->FreeScene(); -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_Importer_GetErrorString(void * jarg1) { - char * jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - char *result = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - result = (char *)((Assimp::Importer const *)arg1)->GetErrorString(); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_Importer_GetScene(void * jarg1) { - void * jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - aiScene *result = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - result = (aiScene *)((Assimp::Importer const *)arg1)->GetScene(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_Importer_GetOrphanedScene(void * jarg1) { - void * jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - aiScene *result = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - result = (aiScene *)(arg1)->GetOrphanedScene(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Importer_IsExtensionSupported__SWIG_0(void * jarg1, char * jarg2) { - unsigned int jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - char *arg2 = (char *) 0 ; - bool result; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (char *)jarg2; - result = (bool)((Assimp::Importer const *)arg1)->IsExtensionSupported((char const *)arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_Importer_GetExtensionList__SWIG_0(void * jarg1, void * jarg2) { - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - aiString *arg2 = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (aiString *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiString & type is null", 0); - return ; - } - ((Assimp::Importer const *)arg1)->GetExtensionList(*arg2); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_Importer_GetExtensionList__SWIG_1(void * jarg1, void * jarg2) { - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - std::string *arg2 = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (std::string *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::string & type is null", 0); - return ; - } - ((Assimp::Importer const *)arg1)->GetExtensionList(*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Importer_GetImporterCount(void * jarg1) { - unsigned long jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - size_t result; - - arg1 = (Assimp::Importer *)jarg1; - result = ((Assimp::Importer const *)arg1)->GetImporterCount(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_Importer_GetImporterInfo(void * jarg1, unsigned long jarg2) { - void * jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - size_t arg2 ; - aiImporterDesc *result = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (size_t)jarg2; - result = (aiImporterDesc *)((Assimp::Importer const *)arg1)->GetImporterInfo(arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_Importer_GetImporter__SWIG_0(void * jarg1, unsigned long jarg2) { - void * jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - size_t arg2 ; - Assimp::BaseImporter *result = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (size_t)jarg2; - result = (Assimp::BaseImporter *)((Assimp::Importer const *)arg1)->GetImporter(arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_Importer_GetImporter__SWIG_1(void * jarg1, char * jarg2) { - void * jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - char *arg2 = (char *) 0 ; - Assimp::BaseImporter *result = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (char *)jarg2; - result = (Assimp::BaseImporter *)((Assimp::Importer const *)arg1)->GetImporter((char const *)arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Importer_GetImporterIndex(void * jarg1, char * jarg2) { - unsigned long jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - char *arg2 = (char *) 0 ; - size_t result; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (char *)jarg2; - result = ((Assimp::Importer const *)arg1)->GetImporterIndex((char const *)arg2); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_Importer_GetMemoryRequirements(void * jarg1, void * jarg2) { - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - aiMemoryInfo *arg2 = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = (aiMemoryInfo *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMemoryInfo & type is null", 0); - return ; - } - ((Assimp::Importer const *)arg1)->GetMemoryRequirements(*arg2); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_Importer_SetExtraVerbose(void * jarg1, unsigned int jarg2) { - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - bool arg2 ; - - arg1 = (Assimp::Importer *)jarg1; - arg2 = jarg2 ? true : false; - (arg1)->SetExtraVerbose(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_Importer_Pimpl__SWIG_0(void * jarg1) { - void * jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - Assimp::ImporterPimpl *result = 0 ; - - arg1 = (Assimp::Importer *)jarg1; - result = (Assimp::ImporterPimpl *)(arg1)->Pimpl(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_Importer_GetExtensionList__SWIG_2(void * jarg1) { - char * jresult ; - Assimp::Importer *arg1 = (Assimp::Importer *) 0 ; - std::string result; - - arg1 = (Assimp::Importer *)jarg1; - result = Assimp_Importer_GetExtensionList__SWIG_2(arg1); - jresult = SWIG_csharp_string_callback((&result)->c_str()); - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_ProgressHandler(void * jarg1) { - Assimp::ProgressHandler *arg1 = (Assimp::ProgressHandler *) 0 ; - - arg1 = (Assimp::ProgressHandler *)jarg1; - delete arg1; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ProgressHandler_Update__SWIG_0(void * jarg1, float jarg2) { - unsigned int jresult ; - Assimp::ProgressHandler *arg1 = (Assimp::ProgressHandler *) 0 ; - float arg2 ; - bool result; - - arg1 = (Assimp::ProgressHandler *)jarg1; - arg2 = (float)jarg2; - result = (bool)(arg1)->Update(arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ProgressHandler_Update__SWIG_1(void * jarg1) { - unsigned int jresult ; - Assimp::ProgressHandler *arg1 = (Assimp::ProgressHandler *) 0 ; - bool result; - - arg1 = (Assimp::ProgressHandler *)jarg1; - result = (bool)(arg1)->Update(); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiColor4D__SWIG_0() { - void * jresult ; - aiColor4t< float > *result = 0 ; - - result = (aiColor4t< float > *)new aiColor4t< float >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiColor4D__SWIG_1(float jarg1, float jarg2, float jarg3, float jarg4) { - void * jresult ; - float arg1 ; - float arg2 ; - float arg3 ; - float arg4 ; - aiColor4t< float > *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (float)jarg2; - arg3 = (float)jarg3; - arg4 = (float)jarg4; - result = (aiColor4t< float > *)new aiColor4t< float >(arg1,arg2,arg3,arg4); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiColor4D__SWIG_2(float jarg1) { - void * jresult ; - float arg1 ; - aiColor4t< float > *result = 0 ; - - arg1 = (float)jarg1; - result = (aiColor4t< float > *)new aiColor4t< float >(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiColor4D__SWIG_3(void * jarg1) { - void * jresult ; - aiColor4t< float > *arg1 = 0 ; - aiColor4t< float > *result = 0 ; - - arg1 = (aiColor4t< float > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiColor4t< float > const & type is null", 0); - return 0; - } - result = (aiColor4t< float > *)new aiColor4t< float >((aiColor4t< float > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor4D___addnset__(void * jarg1, void * jarg2) { - void * jresult ; - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - aiColor4t< float > *arg2 = 0 ; - aiColor4t< float > *result = 0 ; - - arg1 = (aiColor4t< float > *)jarg1; - arg2 = (aiColor4t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiColor4t< float > const & type is null", 0); - return 0; - } - result = (aiColor4t< float > *) &(arg1)->operator +=((aiColor4t< float > const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor4D___subnset__(void * jarg1, void * jarg2) { - void * jresult ; - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - aiColor4t< float > *arg2 = 0 ; - aiColor4t< float > *result = 0 ; - - arg1 = (aiColor4t< float > *)jarg1; - arg2 = (aiColor4t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiColor4t< float > const & type is null", 0); - return 0; - } - result = (aiColor4t< float > *) &(arg1)->operator -=((aiColor4t< float > const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor4D___mulnset__(void * jarg1, float jarg2) { - void * jresult ; - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - float arg2 ; - aiColor4t< float > *result = 0 ; - - arg1 = (aiColor4t< float > *)jarg1; - arg2 = (float)jarg2; - result = (aiColor4t< float > *) &(arg1)->operator *=(arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor4D___divnset__(void * jarg1, float jarg2) { - void * jresult ; - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - float arg2 ; - aiColor4t< float > *result = 0 ; - - arg1 = (aiColor4t< float > *)jarg1; - arg2 = (float)jarg2; - result = (aiColor4t< float > *) &(arg1)->operator /=(arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiColor4D___equal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - aiColor4t< float > *arg2 = 0 ; - bool result; - - arg1 = (aiColor4t< float > *)jarg1; - arg2 = (aiColor4t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiColor4t< float > const & type is null", 0); - return 0; - } - result = (bool)((aiColor4t< float > const *)arg1)->operator ==((aiColor4t< float > const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiColor4D___nequal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - aiColor4t< float > *arg2 = 0 ; - bool result; - - arg1 = (aiColor4t< float > *)jarg1; - arg2 = (aiColor4t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiColor4t< float > const & type is null", 0); - return 0; - } - result = (bool)((aiColor4t< float > const *)arg1)->operator !=((aiColor4t< float > const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiColor4D___idx____SWIG_0(void * jarg1, unsigned int jarg2) { - float jresult ; - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - unsigned int arg2 ; - float result; - - arg1 = (aiColor4t< float > *)jarg1; - arg2 = (unsigned int)jarg2; - result = (float)((aiColor4t< float > const *)arg1)->operator [](arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiColor4D_IsBlack(void * jarg1) { - unsigned int jresult ; - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - bool result; - - arg1 = (aiColor4t< float > *)jarg1; - result = (bool)((aiColor4t< float > const *)arg1)->IsBlack(); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4D_r_set(void * jarg1, float jarg2) { - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiColor4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->r = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiColor4D_r_get(void * jarg1) { - float jresult ; - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - float result; - - arg1 = (aiColor4t< float > *)jarg1; - result = (float) ((arg1)->r); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4D_g_set(void * jarg1, float jarg2) { - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiColor4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->g = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiColor4D_g_get(void * jarg1) { - float jresult ; - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - float result; - - arg1 = (aiColor4t< float > *)jarg1; - result = (float) ((arg1)->g); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4D_b_set(void * jarg1, float jarg2) { - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiColor4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->b = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiColor4D_b_get(void * jarg1) { - float jresult ; - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - float result; - - arg1 = (aiColor4t< float > *)jarg1; - result = (float) ((arg1)->b); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4D_a_set(void * jarg1, float jarg2) { - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiColor4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->a = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiColor4D_a_get(void * jarg1) { - float jresult ; - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - float result; - - arg1 = (aiColor4t< float > *)jarg1; - result = (float) ((arg1)->a); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiColor4D(void * jarg1) { - aiColor4t< float > *arg1 = (aiColor4t< float > *) 0 ; - - arg1 = (aiColor4t< float > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVector3D__SWIG_0() { - void * jresult ; - aiVector3t< float > *result = 0 ; - - result = (aiVector3t< float > *)new aiVector3t< float >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVector3D__SWIG_1(float jarg1, float jarg2, float jarg3) { - void * jresult ; - float arg1 ; - float arg2 ; - float arg3 ; - aiVector3t< float > *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (float)jarg2; - arg3 = (float)jarg3; - result = (aiVector3t< float > *)new aiVector3t< float >(arg1,arg2,arg3); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVector3D__SWIG_2(float jarg1) { - void * jresult ; - float arg1 ; - aiVector3t< float > *result = 0 ; - - arg1 = (float)jarg1; - result = (aiVector3t< float > *)new aiVector3t< float >(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVector3D__SWIG_3(void * jarg1) { - void * jresult ; - aiVector3t< float > *arg1 = 0 ; - aiVector3t< float > *result = 0 ; - - arg1 = (aiVector3t< float > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - result = (aiVector3t< float > *)new aiVector3t< float >((aiVector3t< float > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3D___addnset__(void * jarg1, void * jarg2) { - void * jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - aiVector3t< float > *arg2 = 0 ; - aiVector3t< float > *result = 0 ; - - arg1 = (aiVector3t< float > *)jarg1; - arg2 = (aiVector3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - result = (aiVector3t< float > *) &(arg1)->operator +=((aiVector3t< float > const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3D___subnset__(void * jarg1, void * jarg2) { - void * jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - aiVector3t< float > *arg2 = 0 ; - aiVector3t< float > *result = 0 ; - - arg1 = (aiVector3t< float > *)jarg1; - arg2 = (aiVector3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - result = (aiVector3t< float > *) &(arg1)->operator -=((aiVector3t< float > const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3D___mulnset____SWIG_0(void * jarg1, float jarg2) { - void * jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - float arg2 ; - aiVector3t< float > *result = 0 ; - - arg1 = (aiVector3t< float > *)jarg1; - arg2 = (float)jarg2; - result = (aiVector3t< float > *) &(arg1)->operator *=(arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3D___divnset__(void * jarg1, float jarg2) { - void * jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - float arg2 ; - aiVector3t< float > *result = 0 ; - - arg1 = (aiVector3t< float > *)jarg1; - arg2 = (float)jarg2; - result = (aiVector3t< float > *) &(arg1)->operator /=(arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3D___mulnset____SWIG_1(void * jarg1, void * jarg2) { - void * jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - aiMatrix3x3t< float > *arg2 = 0 ; - aiVector3t< float > *result = 0 ; - - arg1 = (aiVector3t< float > *)jarg1; - arg2 = (aiMatrix3x3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix3x3t< float > const & type is null", 0); - return 0; - } - result = (aiVector3t< float > *) &(arg1)->operator *=((aiMatrix3x3t< float > const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3D___mulnset____SWIG_2(void * jarg1, void * jarg2) { - void * jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - aiMatrix4x4t< float > *arg2 = 0 ; - aiVector3t< float > *result = 0 ; - - arg1 = (aiVector3t< float > *)jarg1; - arg2 = (aiMatrix4x4t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix4x4t< float > const & type is null", 0); - return 0; - } - result = (aiVector3t< float > *) &(arg1)->operator *=((aiMatrix4x4t< float > const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiVector3D___idx____SWIG_0(void * jarg1, unsigned int jarg2) { - float jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - unsigned int arg2 ; - float result; - - arg1 = (aiVector3t< float > *)jarg1; - arg2 = (unsigned int)jarg2; - result = (float)((aiVector3t< float > const *)arg1)->operator [](arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVector3D___equal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - aiVector3t< float > *arg2 = 0 ; - bool result; - - arg1 = (aiVector3t< float > *)jarg1; - arg2 = (aiVector3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - result = (bool)((aiVector3t< float > const *)arg1)->operator ==((aiVector3t< float > const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVector3D___nequal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - aiVector3t< float > *arg2 = 0 ; - bool result; - - arg1 = (aiVector3t< float > *)jarg1; - arg2 = (aiVector3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - result = (bool)((aiVector3t< float > const *)arg1)->operator !=((aiVector3t< float > const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3D_Set(void * jarg1, float jarg2, float jarg3, float jarg4) { - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - float arg2 ; - float arg3 ; - float arg4 ; - - arg1 = (aiVector3t< float > *)jarg1; - arg2 = (float)jarg2; - arg3 = (float)jarg3; - arg4 = (float)jarg4; - (arg1)->Set(arg2,arg3,arg4); -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiVector3D_SquareLength(void * jarg1) { - float jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - float result; - - arg1 = (aiVector3t< float > *)jarg1; - result = (float)((aiVector3t< float > const *)arg1)->SquareLength(); - jresult = result; - return jresult; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiVector3D_Length(void * jarg1) { - float jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - float result; - - arg1 = (aiVector3t< float > *)jarg1; - result = (float)((aiVector3t< float > const *)arg1)->Length(); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3D_Normalize(void * jarg1) { - void * jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - aiVector3t< float > *result = 0 ; - - arg1 = (aiVector3t< float > *)jarg1; - result = (aiVector3t< float > *) &(arg1)->Normalize(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3D_SymMul(void * jarg1, void * jarg2) { - void * jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - aiVector3t< float > *arg2 = 0 ; - aiVector3t< float > result; - - arg1 = (aiVector3t< float > *)jarg1; - arg2 = (aiVector3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - result = (arg1)->SymMul((aiVector3t< float > const &)*arg2); - jresult = new aiVector3t< float >((const aiVector3t< float > &)result); - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3D_x_set(void * jarg1, float jarg2) { - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - float arg2 ; - - arg1 = (aiVector3t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->x = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiVector3D_x_get(void * jarg1) { - float jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - float result; - - arg1 = (aiVector3t< float > *)jarg1; - result = (float) ((arg1)->x); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3D_y_set(void * jarg1, float jarg2) { - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - float arg2 ; - - arg1 = (aiVector3t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->y = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiVector3D_y_get(void * jarg1) { - float jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - float result; - - arg1 = (aiVector3t< float > *)jarg1; - result = (float) ((arg1)->y); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3D_z_set(void * jarg1, float jarg2) { - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - float arg2 ; - - arg1 = (aiVector3t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->z = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiVector3D_z_get(void * jarg1) { - float jresult ; - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - float result; - - arg1 = (aiVector3t< float > *)jarg1; - result = (float) ((arg1)->z); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiVector3D(void * jarg1) { - aiVector3t< float > *arg1 = (aiVector3t< float > *) 0 ; - - arg1 = (aiVector3t< float > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVector2D__SWIG_0() { - void * jresult ; - aiVector2t< float > *result = 0 ; - - result = (aiVector2t< float > *)new aiVector2t< float >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVector2D__SWIG_1(float jarg1, float jarg2) { - void * jresult ; - float arg1 ; - float arg2 ; - aiVector2t< float > *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (float)jarg2; - result = (aiVector2t< float > *)new aiVector2t< float >(arg1,arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVector2D__SWIG_2(float jarg1) { - void * jresult ; - float arg1 ; - aiVector2t< float > *result = 0 ; - - arg1 = (float)jarg1; - result = (aiVector2t< float > *)new aiVector2t< float >(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVector2D__SWIG_3(void * jarg1) { - void * jresult ; - aiVector2t< float > *arg1 = 0 ; - aiVector2t< float > *result = 0 ; - - arg1 = (aiVector2t< float > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector2t< float > const & type is null", 0); - return 0; - } - result = (aiVector2t< float > *)new aiVector2t< float >((aiVector2t< float > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector2D_Set(void * jarg1, float jarg2, float jarg3) { - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - float arg2 ; - float arg3 ; - - arg1 = (aiVector2t< float > *)jarg1; - arg2 = (float)jarg2; - arg3 = (float)jarg3; - (arg1)->Set(arg2,arg3); -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiVector2D_SquareLength(void * jarg1) { - float jresult ; - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - float result; - - arg1 = (aiVector2t< float > *)jarg1; - result = (float)((aiVector2t< float > const *)arg1)->SquareLength(); - jresult = result; - return jresult; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiVector2D_Length(void * jarg1) { - float jresult ; - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - float result; - - arg1 = (aiVector2t< float > *)jarg1; - result = (float)((aiVector2t< float > const *)arg1)->Length(); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector2D_Normalize(void * jarg1) { - void * jresult ; - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - aiVector2t< float > *result = 0 ; - - arg1 = (aiVector2t< float > *)jarg1; - result = (aiVector2t< float > *) &(arg1)->Normalize(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector2D___addnset__(void * jarg1, void * jarg2) { - void * jresult ; - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - aiVector2t< float > *arg2 = 0 ; - aiVector2t< float > *result = 0 ; - - arg1 = (aiVector2t< float > *)jarg1; - arg2 = (aiVector2t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector2t< float > const & type is null", 0); - return 0; - } - result = (aiVector2t< float > *) &(arg1)->operator +=((aiVector2t< float > const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector2D___subnset__(void * jarg1, void * jarg2) { - void * jresult ; - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - aiVector2t< float > *arg2 = 0 ; - aiVector2t< float > *result = 0 ; - - arg1 = (aiVector2t< float > *)jarg1; - arg2 = (aiVector2t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector2t< float > const & type is null", 0); - return 0; - } - result = (aiVector2t< float > *) &(arg1)->operator -=((aiVector2t< float > const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector2D___mulnset__(void * jarg1, float jarg2) { - void * jresult ; - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - float arg2 ; - aiVector2t< float > *result = 0 ; - - arg1 = (aiVector2t< float > *)jarg1; - arg2 = (float)jarg2; - result = (aiVector2t< float > *) &(arg1)->operator *=(arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector2D___divnset__(void * jarg1, float jarg2) { - void * jresult ; - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - float arg2 ; - aiVector2t< float > *result = 0 ; - - arg1 = (aiVector2t< float > *)jarg1; - arg2 = (float)jarg2; - result = (aiVector2t< float > *) &(arg1)->operator /=(arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiVector2D___idx____SWIG_0(void * jarg1, unsigned int jarg2) { - float jresult ; - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - unsigned int arg2 ; - float result; - - arg1 = (aiVector2t< float > *)jarg1; - arg2 = (unsigned int)jarg2; - result = (float)((aiVector2t< float > const *)arg1)->operator [](arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVector2D___equal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - aiVector2t< float > *arg2 = 0 ; - bool result; - - arg1 = (aiVector2t< float > *)jarg1; - arg2 = (aiVector2t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector2t< float > const & type is null", 0); - return 0; - } - result = (bool)((aiVector2t< float > const *)arg1)->operator ==((aiVector2t< float > const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVector2D___nequal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - aiVector2t< float > *arg2 = 0 ; - bool result; - - arg1 = (aiVector2t< float > *)jarg1; - arg2 = (aiVector2t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector2t< float > const & type is null", 0); - return 0; - } - result = (bool)((aiVector2t< float > const *)arg1)->operator !=((aiVector2t< float > const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector2D___set__(void * jarg1, float jarg2) { - void * jresult ; - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - float arg2 ; - aiVector2t< float > *result = 0 ; - - arg1 = (aiVector2t< float > *)jarg1; - arg2 = (float)jarg2; - result = (aiVector2t< float > *) &(arg1)->operator =(arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector2D_SymMul(void * jarg1, void * jarg2) { - void * jresult ; - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - aiVector2t< float > *arg2 = 0 ; - aiVector2t< float > result; - - arg1 = (aiVector2t< float > *)jarg1; - arg2 = (aiVector2t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector2t< float > const & type is null", 0); - return 0; - } - result = (arg1)->SymMul((aiVector2t< float > const &)*arg2); - jresult = new aiVector2t< float >((const aiVector2t< float > &)result); - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector2D_x_set(void * jarg1, float jarg2) { - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - float arg2 ; - - arg1 = (aiVector2t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->x = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiVector2D_x_get(void * jarg1) { - float jresult ; - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - float result; - - arg1 = (aiVector2t< float > *)jarg1; - result = (float) ((arg1)->x); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector2D_y_set(void * jarg1, float jarg2) { - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - float arg2 ; - - arg1 = (aiVector2t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->y = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiVector2D_y_get(void * jarg1) { - float jresult ; - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - float result; - - arg1 = (aiVector2t< float > *)jarg1; - result = (float) ((arg1)->y); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiVector2D(void * jarg1) { - aiVector2t< float > *arg1 = (aiVector2t< float > *) 0 ; - - arg1 = (aiVector2t< float > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiQuaternion__SWIG_0() { - void * jresult ; - aiQuaterniont< float > *result = 0 ; - - result = (aiQuaterniont< float > *)new aiQuaterniont< float >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiQuaternion__SWIG_1(float jarg1, float jarg2, float jarg3, float jarg4) { - void * jresult ; - float arg1 ; - float arg2 ; - float arg3 ; - float arg4 ; - aiQuaterniont< float > *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (float)jarg2; - arg3 = (float)jarg3; - arg4 = (float)jarg4; - result = (aiQuaterniont< float > *)new aiQuaterniont< float >(arg1,arg2,arg3,arg4); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiQuaternion__SWIG_2(void * jarg1) { - void * jresult ; - aiMatrix3x3t< float > *arg1 = 0 ; - aiQuaterniont< float > *result = 0 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix3x3t< float > const & type is null", 0); - return 0; - } - result = (aiQuaterniont< float > *)new aiQuaterniont< float >((aiMatrix3x3t< float > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiQuaternion__SWIG_3(float jarg1, float jarg2, float jarg3) { - void * jresult ; - float arg1 ; - float arg2 ; - float arg3 ; - aiQuaterniont< float > *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (float)jarg2; - arg3 = (float)jarg3; - result = (aiQuaterniont< float > *)new aiQuaterniont< float >(arg1,arg2,arg3); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiQuaternion__SWIG_4(void * jarg1, float jarg2) { - void * jresult ; - aiVector3t< float > arg1 ; - float arg2 ; - aiVector3t< float > *argp1 ; - aiQuaterniont< float > *result = 0 ; - - argp1 = (aiVector3t< float > *)jarg1; - if (!argp1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null aiVector3t< float >", 0); - return 0; - } - arg1 = *argp1; - arg2 = (float)jarg2; - result = (aiQuaterniont< float > *)new aiQuaterniont< float >(arg1,arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiQuaternion__SWIG_5(void * jarg1) { - void * jresult ; - aiVector3t< float > arg1 ; - aiVector3t< float > *argp1 ; - aiQuaterniont< float > *result = 0 ; - - argp1 = (aiVector3t< float > *)jarg1; - if (!argp1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null aiVector3t< float >", 0); - return 0; - } - arg1 = *argp1; - result = (aiQuaterniont< float > *)new aiQuaterniont< float >(arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiQuaternion_GetMatrix(void * jarg1) { - void * jresult ; - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - aiMatrix3x3t< float > result; - - arg1 = (aiQuaterniont< float > *)jarg1; - result = ((aiQuaterniont< float > const *)arg1)->GetMatrix(); - jresult = new aiMatrix3x3t< float >((const aiMatrix3x3t< float > &)result); - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiQuaternion___equal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - aiQuaterniont< float > *arg2 = 0 ; - bool result; - - arg1 = (aiQuaterniont< float > *)jarg1; - arg2 = (aiQuaterniont< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiQuaterniont< float > const & type is null", 0); - return 0; - } - result = (bool)((aiQuaterniont< float > const *)arg1)->operator ==((aiQuaterniont< float > const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiQuaternion___nequal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - aiQuaterniont< float > *arg2 = 0 ; - bool result; - - arg1 = (aiQuaterniont< float > *)jarg1; - arg2 = (aiQuaterniont< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiQuaterniont< float > const & type is null", 0); - return 0; - } - result = (bool)((aiQuaterniont< float > const *)arg1)->operator !=((aiQuaterniont< float > const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiQuaternion_Normalize(void * jarg1) { - void * jresult ; - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - aiQuaterniont< float > *result = 0 ; - - arg1 = (aiQuaterniont< float > *)jarg1; - result = (aiQuaterniont< float > *) &(arg1)->Normalize(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiQuaternion_Conjugate(void * jarg1) { - void * jresult ; - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - aiQuaterniont< float > *result = 0 ; - - arg1 = (aiQuaterniont< float > *)jarg1; - result = (aiQuaterniont< float > *) &(arg1)->Conjugate(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiQuaternion_Rotate(void * jarg1, void * jarg2) { - void * jresult ; - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - aiVector3t< float > *arg2 = 0 ; - aiVector3t< float > result; - - arg1 = (aiQuaterniont< float > *)jarg1; - arg2 = (aiVector3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - result = (arg1)->Rotate((aiVector3t< float > const &)*arg2); - jresult = new aiVector3t< float >((const aiVector3t< float > &)result); - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiQuaternion___mul__(void * jarg1, void * jarg2) { - void * jresult ; - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - aiQuaterniont< float > *arg2 = 0 ; - aiQuaterniont< float > result; - - arg1 = (aiQuaterniont< float > *)jarg1; - arg2 = (aiQuaterniont< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiQuaterniont< float > const & type is null", 0); - return 0; - } - result = ((aiQuaterniont< float > const *)arg1)->operator *((aiQuaterniont< float > const &)*arg2); - jresult = new aiQuaterniont< float >((const aiQuaterniont< float > &)result); - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuaternion_Interpolate(void * jarg1, void * jarg2, void * jarg3, float jarg4) { - aiQuaterniont< float > *arg1 = 0 ; - aiQuaterniont< float > *arg2 = 0 ; - aiQuaterniont< float > *arg3 = 0 ; - float arg4 ; - - arg1 = (aiQuaterniont< float > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiQuaterniont< float > & type is null", 0); - return ; - } - arg2 = (aiQuaterniont< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiQuaterniont< float > const & type is null", 0); - return ; - } - arg3 = (aiQuaterniont< float > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiQuaterniont< float > const & type is null", 0); - return ; - } - arg4 = (float)jarg4; - aiQuaterniont< float >::SWIGTEMPLATEDISAMBIGUATOR Interpolate(*arg1,(aiQuaterniont< float > const &)*arg2,(aiQuaterniont< float > const &)*arg3,arg4); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuaternion_w_set(void * jarg1, float jarg2) { - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - float arg2 ; - - arg1 = (aiQuaterniont< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->w = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiQuaternion_w_get(void * jarg1) { - float jresult ; - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - float result; - - arg1 = (aiQuaterniont< float > *)jarg1; - result = (float) ((arg1)->w); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuaternion_x_set(void * jarg1, float jarg2) { - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - float arg2 ; - - arg1 = (aiQuaterniont< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->x = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiQuaternion_x_get(void * jarg1) { - float jresult ; - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - float result; - - arg1 = (aiQuaterniont< float > *)jarg1; - result = (float) ((arg1)->x); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuaternion_y_set(void * jarg1, float jarg2) { - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - float arg2 ; - - arg1 = (aiQuaterniont< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->y = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiQuaternion_y_get(void * jarg1) { - float jresult ; - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - float result; - - arg1 = (aiQuaterniont< float > *)jarg1; - result = (float) ((arg1)->y); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuaternion_z_set(void * jarg1, float jarg2) { - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - float arg2 ; - - arg1 = (aiQuaterniont< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->z = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiQuaternion_z_get(void * jarg1) { - float jresult ; - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - float result; - - arg1 = (aiQuaterniont< float > *)jarg1; - result = (float) ((arg1)->z); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiQuaternion(void * jarg1) { - aiQuaterniont< float > *arg1 = (aiQuaterniont< float > *) 0 ; - - arg1 = (aiQuaterniont< float > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMatrix3x3__SWIG_0() { - void * jresult ; - aiMatrix3x3t< float > *result = 0 ; - - result = (aiMatrix3x3t< float > *)new aiMatrix3x3t< float >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMatrix3x3__SWIG_1(float jarg1, float jarg2, float jarg3, float jarg4, float jarg5, float jarg6, float jarg7, float jarg8, float jarg9) { - void * jresult ; - float arg1 ; - float arg2 ; - float arg3 ; - float arg4 ; - float arg5 ; - float arg6 ; - float arg7 ; - float arg8 ; - float arg9 ; - aiMatrix3x3t< float > *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (float)jarg2; - arg3 = (float)jarg3; - arg4 = (float)jarg4; - arg5 = (float)jarg5; - arg6 = (float)jarg6; - arg7 = (float)jarg7; - arg8 = (float)jarg8; - arg9 = (float)jarg9; - result = (aiMatrix3x3t< float > *)new aiMatrix3x3t< float >(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix3x3___mulnset__(void * jarg1, void * jarg2) { - void * jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - aiMatrix3x3t< float > *arg2 = 0 ; - aiMatrix3x3t< float > *result = 0 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - arg2 = (aiMatrix3x3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix3x3t< float > const & type is null", 0); - return 0; - } - result = (aiMatrix3x3t< float > *) &(arg1)->operator *=((aiMatrix3x3t< float > const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix3x3___mul__(void * jarg1, void * jarg2) { - void * jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - aiMatrix3x3t< float > *arg2 = 0 ; - aiMatrix3x3t< float > result; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - arg2 = (aiMatrix3x3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix3x3t< float > const & type is null", 0); - return 0; - } - result = ((aiMatrix3x3t< float > const *)arg1)->operator *((aiMatrix3x3t< float > const &)*arg2); - jresult = new aiMatrix3x3t< float >((const aiMatrix3x3t< float > &)result); - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix3x3___idx____SWIG_0(void * jarg1, unsigned int jarg2) { - void * jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - unsigned int arg2 ; - float *result = 0 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - arg2 = (unsigned int)jarg2; - result = (float *)(arg1)->operator [](arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMatrix3x3___equal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - aiMatrix4x4t< float > arg2 ; - aiMatrix4x4t< float > const *argp2 ; - bool result; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - argp2 = (aiMatrix4x4t< float > *)jarg2; - if (!argp2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null aiMatrix4x4t< float > const", 0); - return 0; - } - arg2 = *argp2; - result = (bool)((aiMatrix3x3t< float > const *)arg1)->operator ==(arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMatrix3x3___nequal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - aiMatrix4x4t< float > arg2 ; - aiMatrix4x4t< float > const *argp2 ; - bool result; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - argp2 = (aiMatrix4x4t< float > *)jarg2; - if (!argp2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null aiMatrix4x4t< float > const", 0); - return 0; - } - arg2 = *argp2; - result = (bool)((aiMatrix3x3t< float > const *)arg1)->operator !=(arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMatrix3x3__SWIG_2(void * jarg1) { - void * jresult ; - aiMatrix4x4t< float > *arg1 = 0 ; - aiMatrix3x3t< float > *result = 0 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix4x4t< float > const & type is null", 0); - return 0; - } - result = (aiMatrix3x3t< float > *)new aiMatrix3x3t< float >((aiMatrix4x4t< float > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix3x3_Transpose(void * jarg1) { - void * jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - aiMatrix3x3t< float > *result = 0 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - result = (aiMatrix3x3t< float > *) &(arg1)->Transpose(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix3x3_Inverse(void * jarg1) { - void * jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - aiMatrix3x3t< float > *result = 0 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - result = (aiMatrix3x3t< float > *) &(arg1)->Inverse(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix3x3_Determinant(void * jarg1) { - float jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float result; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - result = (float)((aiMatrix3x3t< float > const *)arg1)->Determinant(); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix3x3_RotationZ(float jarg1, void * jarg2) { - void * jresult ; - float arg1 ; - aiMatrix3x3t< float > *arg2 = 0 ; - aiMatrix3x3t< float > *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (aiMatrix3x3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix3x3t< float > & type is null", 0); - return 0; - } - result = (aiMatrix3x3t< float > *) &aiMatrix3x3t< float >::SWIGTEMPLATEDISAMBIGUATOR RotationZ(arg1,*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix3x3_Rotation(float jarg1, void * jarg2, void * jarg3) { - void * jresult ; - float arg1 ; - aiVector3t< float > *arg2 = 0 ; - aiMatrix3x3t< float > *arg3 = 0 ; - aiMatrix3x3t< float > *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (aiVector3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - arg3 = (aiMatrix3x3t< float > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix3x3t< float > & type is null", 0); - return 0; - } - result = (aiMatrix3x3t< float > *) &aiMatrix3x3t< float >::SWIGTEMPLATEDISAMBIGUATOR Rotation(arg1,(aiVector3t< float > const &)*arg2,*arg3); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix3x3_Translation(void * jarg1, void * jarg2) { - void * jresult ; - aiVector2t< float > *arg1 = 0 ; - aiMatrix3x3t< float > *arg2 = 0 ; - aiMatrix3x3t< float > *result = 0 ; - - arg1 = (aiVector2t< float > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector2t< float > const & type is null", 0); - return 0; - } - arg2 = (aiMatrix3x3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix3x3t< float > & type is null", 0); - return 0; - } - result = (aiMatrix3x3t< float > *) &aiMatrix3x3t< float >::SWIGTEMPLATEDISAMBIGUATOR Translation((aiVector2t< float > const &)*arg1,*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix3x3_FromToMatrix(void * jarg1, void * jarg2, void * jarg3) { - void * jresult ; - aiVector3t< float > *arg1 = 0 ; - aiVector3t< float > *arg2 = 0 ; - aiMatrix3x3t< float > *arg3 = 0 ; - aiMatrix3x3t< float > *result = 0 ; - - arg1 = (aiVector3t< float > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - arg2 = (aiVector3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - arg3 = (aiMatrix3x3t< float > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix3x3t< float > & type is null", 0); - return 0; - } - result = (aiMatrix3x3t< float > *) &aiMatrix3x3t< float >::SWIGTEMPLATEDISAMBIGUATOR FromToMatrix((aiVector3t< float > const &)*arg1,(aiVector3t< float > const &)*arg2,*arg3); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix3x3_a1_set(void * jarg1, float jarg2) { - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->a1 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix3x3_a1_get(void * jarg1) { - float jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float result; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - result = (float) ((arg1)->a1); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix3x3_a2_set(void * jarg1, float jarg2) { - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->a2 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix3x3_a2_get(void * jarg1) { - float jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float result; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - result = (float) ((arg1)->a2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix3x3_a3_set(void * jarg1, float jarg2) { - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->a3 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix3x3_a3_get(void * jarg1) { - float jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float result; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - result = (float) ((arg1)->a3); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix3x3_b1_set(void * jarg1, float jarg2) { - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->b1 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix3x3_b1_get(void * jarg1) { - float jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float result; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - result = (float) ((arg1)->b1); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix3x3_b2_set(void * jarg1, float jarg2) { - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->b2 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix3x3_b2_get(void * jarg1) { - float jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float result; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - result = (float) ((arg1)->b2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix3x3_b3_set(void * jarg1, float jarg2) { - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->b3 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix3x3_b3_get(void * jarg1) { - float jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float result; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - result = (float) ((arg1)->b3); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix3x3_c1_set(void * jarg1, float jarg2) { - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->c1 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix3x3_c1_get(void * jarg1) { - float jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float result; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - result = (float) ((arg1)->c1); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix3x3_c2_set(void * jarg1, float jarg2) { - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->c2 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix3x3_c2_get(void * jarg1) { - float jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float result; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - result = (float) ((arg1)->c2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix3x3_c3_set(void * jarg1, float jarg2) { - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->c3 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix3x3_c3_get(void * jarg1) { - float jresult ; - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - float result; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - result = (float) ((arg1)->c3); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiMatrix3x3(void * jarg1) { - aiMatrix3x3t< float > *arg1 = (aiMatrix3x3t< float > *) 0 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMatrix4x4__SWIG_0() { - void * jresult ; - aiMatrix4x4t< float > *result = 0 ; - - result = (aiMatrix4x4t< float > *)new aiMatrix4x4t< float >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMatrix4x4__SWIG_1(float jarg1, float jarg2, float jarg3, float jarg4, float jarg5, float jarg6, float jarg7, float jarg8, float jarg9, float jarg10, float jarg11, float jarg12, float jarg13, float jarg14, float jarg15, float jarg16) { - void * jresult ; - float arg1 ; - float arg2 ; - float arg3 ; - float arg4 ; - float arg5 ; - float arg6 ; - float arg7 ; - float arg8 ; - float arg9 ; - float arg10 ; - float arg11 ; - float arg12 ; - float arg13 ; - float arg14 ; - float arg15 ; - float arg16 ; - aiMatrix4x4t< float > *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (float)jarg2; - arg3 = (float)jarg3; - arg4 = (float)jarg4; - arg5 = (float)jarg5; - arg6 = (float)jarg6; - arg7 = (float)jarg7; - arg8 = (float)jarg8; - arg9 = (float)jarg9; - arg10 = (float)jarg10; - arg11 = (float)jarg11; - arg12 = (float)jarg12; - arg13 = (float)jarg13; - arg14 = (float)jarg14; - arg15 = (float)jarg15; - arg16 = (float)jarg16; - result = (aiMatrix4x4t< float > *)new aiMatrix4x4t< float >(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15,arg16); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMatrix4x4__SWIG_2(void * jarg1) { - void * jresult ; - aiMatrix3x3t< float > *arg1 = 0 ; - aiMatrix4x4t< float > *result = 0 ; - - arg1 = (aiMatrix3x3t< float > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix3x3t< float > const & type is null", 0); - return 0; - } - result = (aiMatrix4x4t< float > *)new aiMatrix4x4t< float >((aiMatrix3x3t< float > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix4x4___idx____SWIG_0(void * jarg1, unsigned int jarg2) { - void * jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - unsigned int arg2 ; - float *result = 0 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (unsigned int)jarg2; - result = (float *)(arg1)->operator [](arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMatrix4x4___equal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - aiMatrix4x4t< float > arg2 ; - aiMatrix4x4t< float > const *argp2 ; - bool result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - argp2 = (aiMatrix4x4t< float > *)jarg2; - if (!argp2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null aiMatrix4x4t< float > const", 0); - return 0; - } - arg2 = *argp2; - result = (bool)((aiMatrix4x4t< float > const *)arg1)->operator ==(arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMatrix4x4___nequal__(void * jarg1, void * jarg2) { - unsigned int jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - aiMatrix4x4t< float > arg2 ; - aiMatrix4x4t< float > const *argp2 ; - bool result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - argp2 = (aiMatrix4x4t< float > *)jarg2; - if (!argp2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null aiMatrix4x4t< float > const", 0); - return 0; - } - arg2 = *argp2; - result = (bool)((aiMatrix4x4t< float > const *)arg1)->operator !=(arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix4x4___mulnset__(void * jarg1, void * jarg2) { - void * jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - aiMatrix4x4t< float > *arg2 = 0 ; - aiMatrix4x4t< float > *result = 0 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (aiMatrix4x4t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix4x4t< float > const & type is null", 0); - return 0; - } - result = (aiMatrix4x4t< float > *) &(arg1)->operator *=((aiMatrix4x4t< float > const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix4x4___mul__(void * jarg1, void * jarg2) { - void * jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - aiMatrix4x4t< float > *arg2 = 0 ; - aiMatrix4x4t< float > result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (aiMatrix4x4t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix4x4t< float > const & type is null", 0); - return 0; - } - result = ((aiMatrix4x4t< float > const *)arg1)->operator *((aiMatrix4x4t< float > const &)*arg2); - jresult = new aiMatrix4x4t< float >((const aiMatrix4x4t< float > &)result); - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix4x4_Transpose(void * jarg1) { - void * jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - aiMatrix4x4t< float > *result = 0 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (aiMatrix4x4t< float > *) &(arg1)->Transpose(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix4x4_Inverse(void * jarg1) { - void * jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - aiMatrix4x4t< float > *result = 0 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (aiMatrix4x4t< float > *) &(arg1)->Inverse(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_Determinant(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float)((aiMatrix4x4t< float > const *)arg1)->Determinant(); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMatrix4x4_IsIdentity(void * jarg1) { - unsigned int jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - bool result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (bool)((aiMatrix4x4t< float > const *)arg1)->IsIdentity(); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_Decompose(void * jarg1, void * jarg2, void * jarg3, void * jarg4) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - aiVector3t< float > *arg2 = 0 ; - aiQuaterniont< float > *arg3 = 0 ; - aiVector3t< float > *arg4 = 0 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (aiVector3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > & type is null", 0); - return ; - } - arg3 = (aiQuaterniont< float > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiQuaterniont< float > & type is null", 0); - return ; - } - arg4 = (aiVector3t< float > *)jarg4; - if (!arg4) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > & type is null", 0); - return ; - } - ((aiMatrix4x4t< float > const *)arg1)->Decompose(*arg2,*arg3,*arg4); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_DecomposeNoScaling(void * jarg1, void * jarg2, void * jarg3) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - aiQuaterniont< float > *arg2 = 0 ; - aiVector3t< float > *arg3 = 0 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (aiQuaterniont< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiQuaterniont< float > & type is null", 0); - return ; - } - arg3 = (aiVector3t< float > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > & type is null", 0); - return ; - } - ((aiMatrix4x4t< float > const *)arg1)->DecomposeNoScaling(*arg2,*arg3); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix4x4_FromEulerAnglesXYZ__SWIG_0(void * jarg1, float jarg2, float jarg3, float jarg4) { - void * jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - float arg3 ; - float arg4 ; - aiMatrix4x4t< float > *result = 0 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - arg3 = (float)jarg3; - arg4 = (float)jarg4; - result = (aiMatrix4x4t< float > *) &(arg1)->FromEulerAnglesXYZ(arg2,arg3,arg4); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix4x4_FromEulerAnglesXYZ__SWIG_1(void * jarg1, void * jarg2) { - void * jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - aiVector3t< float > *arg2 = 0 ; - aiMatrix4x4t< float > *result = 0 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (aiVector3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - result = (aiMatrix4x4t< float > *) &(arg1)->FromEulerAnglesXYZ((aiVector3t< float > const &)*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix4x4_RotationX(float jarg1, void * jarg2) { - void * jresult ; - float arg1 ; - aiMatrix4x4t< float > *arg2 = 0 ; - aiMatrix4x4t< float > *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (aiMatrix4x4t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix4x4t< float > & type is null", 0); - return 0; - } - result = (aiMatrix4x4t< float > *) &aiMatrix4x4t< float >::SWIGTEMPLATEDISAMBIGUATOR RotationX(arg1,*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix4x4_RotationY(float jarg1, void * jarg2) { - void * jresult ; - float arg1 ; - aiMatrix4x4t< float > *arg2 = 0 ; - aiMatrix4x4t< float > *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (aiMatrix4x4t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix4x4t< float > & type is null", 0); - return 0; - } - result = (aiMatrix4x4t< float > *) &aiMatrix4x4t< float >::SWIGTEMPLATEDISAMBIGUATOR RotationY(arg1,*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix4x4_RotationZ(float jarg1, void * jarg2) { - void * jresult ; - float arg1 ; - aiMatrix4x4t< float > *arg2 = 0 ; - aiMatrix4x4t< float > *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (aiMatrix4x4t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix4x4t< float > & type is null", 0); - return 0; - } - result = (aiMatrix4x4t< float > *) &aiMatrix4x4t< float >::SWIGTEMPLATEDISAMBIGUATOR RotationZ(arg1,*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix4x4_Rotation(float jarg1, void * jarg2, void * jarg3) { - void * jresult ; - float arg1 ; - aiVector3t< float > *arg2 = 0 ; - aiMatrix4x4t< float > *arg3 = 0 ; - aiMatrix4x4t< float > *result = 0 ; - - arg1 = (float)jarg1; - arg2 = (aiVector3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - arg3 = (aiMatrix4x4t< float > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix4x4t< float > & type is null", 0); - return 0; - } - result = (aiMatrix4x4t< float > *) &aiMatrix4x4t< float >::SWIGTEMPLATEDISAMBIGUATOR Rotation(arg1,(aiVector3t< float > const &)*arg2,*arg3); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix4x4_Translation(void * jarg1, void * jarg2) { - void * jresult ; - aiVector3t< float > *arg1 = 0 ; - aiMatrix4x4t< float > *arg2 = 0 ; - aiMatrix4x4t< float > *result = 0 ; - - arg1 = (aiVector3t< float > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - arg2 = (aiMatrix4x4t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix4x4t< float > & type is null", 0); - return 0; - } - result = (aiMatrix4x4t< float > *) &aiMatrix4x4t< float >::SWIGTEMPLATEDISAMBIGUATOR Translation((aiVector3t< float > const &)*arg1,*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix4x4_Scaling(void * jarg1, void * jarg2) { - void * jresult ; - aiVector3t< float > *arg1 = 0 ; - aiMatrix4x4t< float > *arg2 = 0 ; - aiMatrix4x4t< float > *result = 0 ; - - arg1 = (aiVector3t< float > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - arg2 = (aiMatrix4x4t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix4x4t< float > & type is null", 0); - return 0; - } - result = (aiMatrix4x4t< float > *) &aiMatrix4x4t< float >::SWIGTEMPLATEDISAMBIGUATOR Scaling((aiVector3t< float > const &)*arg1,*arg2); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMatrix4x4_FromToMatrix(void * jarg1, void * jarg2, void * jarg3) { - void * jresult ; - aiVector3t< float > *arg1 = 0 ; - aiVector3t< float > *arg2 = 0 ; - aiMatrix4x4t< float > *arg3 = 0 ; - aiMatrix4x4t< float > *result = 0 ; - - arg1 = (aiVector3t< float > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - arg2 = (aiVector3t< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiVector3t< float > const & type is null", 0); - return 0; - } - arg3 = (aiMatrix4x4t< float > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "aiMatrix4x4t< float > & type is null", 0); - return 0; - } - result = (aiMatrix4x4t< float > *) &aiMatrix4x4t< float >::SWIGTEMPLATEDISAMBIGUATOR FromToMatrix((aiVector3t< float > const &)*arg1,(aiVector3t< float > const &)*arg2,*arg3); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_a1_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->a1 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_a1_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->a1); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_a2_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->a2 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_a2_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->a2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_a3_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->a3 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_a3_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->a3); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_a4_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->a4 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_a4_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->a4); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_b1_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->b1 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_b1_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->b1); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_b2_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->b2 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_b2_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->b2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_b3_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->b3 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_b3_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->b3); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_b4_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->b4 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_b4_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->b4); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_c1_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->c1 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_c1_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->c1); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_c2_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->c2 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_c2_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->c2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_c3_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->c3 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_c3_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->c3); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_c4_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->c4 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_c4_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->c4); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_d1_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->d1 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_d1_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->d1); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_d2_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->d2 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_d2_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->d2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_d3_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->d3 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_d3_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->d3); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMatrix4x4_d4_set(void * jarg1, float jarg2) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float arg2 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - arg2 = (float)jarg2; - if (arg1) (arg1)->d4 = arg2; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_aiMatrix4x4_d4_get(void * jarg1) { - float jresult ; - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - float result; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - result = (float) ((arg1)->d4); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiMatrix4x4(void * jarg1) { - aiMatrix4x4t< float > *arg1 = (aiMatrix4x4t< float > *) 0 ; - - arg1 = (aiMatrix4x4t< float > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_FloatVector_Clear(void * jarg1) { - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - - arg1 = (std::vector< float > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_FloatVector_Add(void * jarg1, float jarg2) { - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - float *arg2 = 0 ; - float temp2 ; - - arg1 = (std::vector< float > *)jarg1; - temp2 = (float)jarg2; - arg2 = &temp2; - (arg1)->push_back((float const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_FloatVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - std::vector< float >::size_type result; - - arg1 = (std::vector< float > *)jarg1; - result = ((std::vector< float > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_FloatVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - std::vector< float >::size_type result; - - arg1 = (std::vector< float > *)jarg1; - result = ((std::vector< float > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_FloatVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - std::vector< float >::size_type arg2 ; - - arg1 = (std::vector< float > *)jarg1; - arg2 = (std::vector< float >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_FloatVector__SWIG_0() { - void * jresult ; - std::vector< float > *result = 0 ; - - result = (std::vector< float > *)new std::vector< float >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_FloatVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< float > *arg1 = 0 ; - std::vector< float > *result = 0 ; - - arg1 = (std::vector< float > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< float > const & type is null", 0); - return 0; - } - result = (std::vector< float > *)new std::vector< float >((std::vector< float > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_FloatVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< float > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< float > *)new_std_vector_Sl_float_Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_FloatVector_getitemcopy(void * jarg1, int jarg2) { - float jresult ; - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - int arg2 ; - float result; - - arg1 = (std::vector< float > *)jarg1; - arg2 = (int)jarg2; - try { - result = (float)std_vector_Sl_float_Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = result; - return jresult; -} - - -SWIGEXPORT float SWIGSTDCALL CSharp_FloatVector_getitem(void * jarg1, int jarg2) { - float jresult ; - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - int arg2 ; - float *result = 0 ; - - arg1 = (std::vector< float > *)jarg1; - arg2 = (int)jarg2; - try { - result = (float *) &std_vector_Sl_float_Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = *result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_FloatVector_setitem(void * jarg1, int jarg2, float jarg3) { - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - int arg2 ; - float *arg3 = 0 ; - float temp3 ; - - arg1 = (std::vector< float > *)jarg1; - arg2 = (int)jarg2; - temp3 = (float)jarg3; - arg3 = &temp3; - try { - std_vector_Sl_float_Sg__setitem(arg1,arg2,(float const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_FloatVector_AddRange(void * jarg1, void * jarg2) { - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - std::vector< float > *arg2 = 0 ; - - arg1 = (std::vector< float > *)jarg1; - arg2 = (std::vector< float > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< float > const & type is null", 0); - return ; - } - std_vector_Sl_float_Sg__AddRange(arg1,(std::vector< float > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_FloatVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< float > *result = 0 ; - - arg1 = (std::vector< float > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< float > *)std_vector_Sl_float_Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_FloatVector_Insert(void * jarg1, int jarg2, float jarg3) { - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - int arg2 ; - float *arg3 = 0 ; - float temp3 ; - - arg1 = (std::vector< float > *)jarg1; - arg2 = (int)jarg2; - temp3 = (float)jarg3; - arg3 = &temp3; - try { - std_vector_Sl_float_Sg__Insert(arg1,arg2,(float const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_FloatVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - int arg2 ; - std::vector< float > *arg3 = 0 ; - - arg1 = (std::vector< float > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< float > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< float > const & type is null", 0); - return ; - } - try { - std_vector_Sl_float_Sg__InsertRange(arg1,arg2,(std::vector< float > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_FloatVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - int arg2 ; - - arg1 = (std::vector< float > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_float_Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_FloatVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< float > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_float_Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_FloatVector_Repeat(float jarg1, int jarg2) { - void * jresult ; - float *arg1 = 0 ; - int arg2 ; - float temp1 ; - std::vector< float > *result = 0 ; - - temp1 = (float)jarg1; - arg1 = &temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< float > *)std_vector_Sl_float_Sg__Repeat((float const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_FloatVector_Reverse__SWIG_0(void * jarg1) { - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - - arg1 = (std::vector< float > *)jarg1; - std_vector_Sl_float_Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_FloatVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< float > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_float_Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_FloatVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - int arg2 ; - std::vector< float > *arg3 = 0 ; - - arg1 = (std::vector< float > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< float > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< float > const & type is null", 0); - return ; - } - try { - std_vector_Sl_float_Sg__SetRange(arg1,arg2,(std::vector< float > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FloatVector_Contains(void * jarg1, float jarg2) { - unsigned int jresult ; - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - float *arg2 = 0 ; - float temp2 ; - bool result; - - arg1 = (std::vector< float > *)jarg1; - temp2 = (float)jarg2; - arg2 = &temp2; - result = (bool)std_vector_Sl_float_Sg__Contains(arg1,(float const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_FloatVector_IndexOf(void * jarg1, float jarg2) { - int jresult ; - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - float *arg2 = 0 ; - float temp2 ; - int result; - - arg1 = (std::vector< float > *)jarg1; - temp2 = (float)jarg2; - arg2 = &temp2; - result = (int)std_vector_Sl_float_Sg__IndexOf(arg1,(float const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_FloatVector_LastIndexOf(void * jarg1, float jarg2) { - int jresult ; - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - float *arg2 = 0 ; - float temp2 ; - int result; - - arg1 = (std::vector< float > *)jarg1; - temp2 = (float)jarg2; - arg2 = &temp2; - result = (int)std_vector_Sl_float_Sg__LastIndexOf(arg1,(float const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FloatVector_Remove(void * jarg1, float jarg2) { - unsigned int jresult ; - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - float *arg2 = 0 ; - float temp2 ; - bool result; - - arg1 = (std::vector< float > *)jarg1; - temp2 = (float)jarg2; - arg2 = &temp2; - result = (bool)std_vector_Sl_float_Sg__Remove(arg1,(float const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_FloatVector(void * jarg1) { - std::vector< float > *arg1 = (std::vector< float > *) 0 ; - - arg1 = (std::vector< float > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_UintVector_Clear(void * jarg1) { - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_UintVector_Add(void * jarg1, unsigned int jarg2) { - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - unsigned int *arg2 = 0 ; - unsigned int temp2 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - temp2 = (unsigned int)jarg2; - arg2 = &temp2; - (arg1)->push_back((unsigned int const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_UintVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - std::vector< unsigned int >::size_type result; - - arg1 = (std::vector< unsigned int > *)jarg1; - result = ((std::vector< unsigned int > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_UintVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - std::vector< unsigned int >::size_type result; - - arg1 = (std::vector< unsigned int > *)jarg1; - result = ((std::vector< unsigned int > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_UintVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - std::vector< unsigned int >::size_type arg2 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - arg2 = (std::vector< unsigned int >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_UintVector__SWIG_0() { - void * jresult ; - std::vector< unsigned int > *result = 0 ; - - result = (std::vector< unsigned int > *)new std::vector< unsigned int >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_UintVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< unsigned int > *arg1 = 0 ; - std::vector< unsigned int > *result = 0 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< unsigned int > const & type is null", 0); - return 0; - } - result = (std::vector< unsigned int > *)new std::vector< unsigned int >((std::vector< unsigned int > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_UintVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< unsigned int > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< unsigned int > *)new_std_vector_Sl_unsigned_SS_int_Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UintVector_getitemcopy(void * jarg1, int jarg2) { - unsigned int jresult ; - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - int arg2 ; - unsigned int result; - - arg1 = (std::vector< unsigned int > *)jarg1; - arg2 = (int)jarg2; - try { - result = (unsigned int)std_vector_Sl_unsigned_SS_int_Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UintVector_getitem(void * jarg1, int jarg2) { - unsigned int jresult ; - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - int arg2 ; - unsigned int *result = 0 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - arg2 = (int)jarg2; - try { - result = (unsigned int *) &std_vector_Sl_unsigned_SS_int_Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = *result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_UintVector_setitem(void * jarg1, int jarg2, unsigned int jarg3) { - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - int arg2 ; - unsigned int *arg3 = 0 ; - unsigned int temp3 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - arg2 = (int)jarg2; - temp3 = (unsigned int)jarg3; - arg3 = &temp3; - try { - std_vector_Sl_unsigned_SS_int_Sg__setitem(arg1,arg2,(unsigned int const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_UintVector_AddRange(void * jarg1, void * jarg2) { - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - std::vector< unsigned int > *arg2 = 0 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - arg2 = (std::vector< unsigned int > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< unsigned int > const & type is null", 0); - return ; - } - std_vector_Sl_unsigned_SS_int_Sg__AddRange(arg1,(std::vector< unsigned int > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_UintVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< unsigned int > *result = 0 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< unsigned int > *)std_vector_Sl_unsigned_SS_int_Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_UintVector_Insert(void * jarg1, int jarg2, unsigned int jarg3) { - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - int arg2 ; - unsigned int *arg3 = 0 ; - unsigned int temp3 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - arg2 = (int)jarg2; - temp3 = (unsigned int)jarg3; - arg3 = &temp3; - try { - std_vector_Sl_unsigned_SS_int_Sg__Insert(arg1,arg2,(unsigned int const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_UintVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - int arg2 ; - std::vector< unsigned int > *arg3 = 0 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< unsigned int > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< unsigned int > const & type is null", 0); - return ; - } - try { - std_vector_Sl_unsigned_SS_int_Sg__InsertRange(arg1,arg2,(std::vector< unsigned int > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_UintVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - int arg2 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_unsigned_SS_int_Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_UintVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_unsigned_SS_int_Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_UintVector_Repeat(unsigned int jarg1, int jarg2) { - void * jresult ; - unsigned int *arg1 = 0 ; - int arg2 ; - unsigned int temp1 ; - std::vector< unsigned int > *result = 0 ; - - temp1 = (unsigned int)jarg1; - arg1 = &temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< unsigned int > *)std_vector_Sl_unsigned_SS_int_Sg__Repeat((unsigned int const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_UintVector_Reverse__SWIG_0(void * jarg1) { - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - std_vector_Sl_unsigned_SS_int_Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_UintVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_unsigned_SS_int_Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_UintVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - int arg2 ; - std::vector< unsigned int > *arg3 = 0 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< unsigned int > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< unsigned int > const & type is null", 0); - return ; - } - try { - std_vector_Sl_unsigned_SS_int_Sg__SetRange(arg1,arg2,(std::vector< unsigned int > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UintVector_Contains(void * jarg1, unsigned int jarg2) { - unsigned int jresult ; - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - unsigned int *arg2 = 0 ; - unsigned int temp2 ; - bool result; - - arg1 = (std::vector< unsigned int > *)jarg1; - temp2 = (unsigned int)jarg2; - arg2 = &temp2; - result = (bool)std_vector_Sl_unsigned_SS_int_Sg__Contains(arg1,(unsigned int const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_UintVector_IndexOf(void * jarg1, unsigned int jarg2) { - int jresult ; - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - unsigned int *arg2 = 0 ; - unsigned int temp2 ; - int result; - - arg1 = (std::vector< unsigned int > *)jarg1; - temp2 = (unsigned int)jarg2; - arg2 = &temp2; - result = (int)std_vector_Sl_unsigned_SS_int_Sg__IndexOf(arg1,(unsigned int const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_UintVector_LastIndexOf(void * jarg1, unsigned int jarg2) { - int jresult ; - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - unsigned int *arg2 = 0 ; - unsigned int temp2 ; - int result; - - arg1 = (std::vector< unsigned int > *)jarg1; - temp2 = (unsigned int)jarg2; - arg2 = &temp2; - result = (int)std_vector_Sl_unsigned_SS_int_Sg__LastIndexOf(arg1,(unsigned int const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UintVector_Remove(void * jarg1, unsigned int jarg2) { - unsigned int jresult ; - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - unsigned int *arg2 = 0 ; - unsigned int temp2 ; - bool result; - - arg1 = (std::vector< unsigned int > *)jarg1; - temp2 = (unsigned int)jarg2; - arg2 = &temp2; - result = (bool)std_vector_Sl_unsigned_SS_int_Sg__Remove(arg1,(unsigned int const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_UintVector(void * jarg1) { - std::vector< unsigned int > *arg1 = (std::vector< unsigned int > *) 0 ; - - arg1 = (std::vector< unsigned int > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimationVector_Clear(void * jarg1) { - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimationVector_Add(void * jarg1, void * jarg2) { - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - aiAnimation **arg2 = 0 ; - aiAnimation *temp2 = 0 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - temp2 = (aiAnimation *)jarg2; - arg2 = (aiAnimation **)&temp2; - (arg1)->push_back((aiAnimation *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiAnimationVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - std::vector< aiAnimation * >::size_type result; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - result = ((std::vector< aiAnimation * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiAnimationVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - std::vector< aiAnimation * >::size_type result; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - result = ((std::vector< aiAnimation * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimationVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - std::vector< aiAnimation * >::size_type arg2 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - arg2 = (std::vector< aiAnimation * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiAnimationVector__SWIG_0() { - void * jresult ; - std::vector< aiAnimation * > *result = 0 ; - - result = (std::vector< aiAnimation * > *)new std::vector< aiAnimation * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiAnimationVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiAnimation * > *arg1 = 0 ; - std::vector< aiAnimation * > *result = 0 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiAnimation * > const & type is null", 0); - return 0; - } - result = (std::vector< aiAnimation * > *)new std::vector< aiAnimation * >((std::vector< aiAnimation * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiAnimationVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiAnimation * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiAnimation * > *)new_std_vector_Sl_aiAnimation_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiAnimationVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - int arg2 ; - aiAnimation *result = 0 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiAnimation *)std_vector_Sl_aiAnimation_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiAnimationVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - int arg2 ; - aiAnimation **result = 0 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiAnimation **) &std_vector_Sl_aiAnimation_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimationVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - int arg2 ; - aiAnimation **arg3 = 0 ; - aiAnimation *temp3 = 0 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiAnimation *)jarg3; - arg3 = (aiAnimation **)&temp3; - try { - std_vector_Sl_aiAnimation_Sm__Sg__setitem(arg1,arg2,(aiAnimation *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimationVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - std::vector< aiAnimation * > *arg2 = 0 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - arg2 = (std::vector< aiAnimation * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiAnimation * > const & type is null", 0); - return ; - } - std_vector_Sl_aiAnimation_Sm__Sg__AddRange(arg1,(std::vector< aiAnimation * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiAnimationVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiAnimation * > *result = 0 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiAnimation * > *)std_vector_Sl_aiAnimation_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimationVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - int arg2 ; - aiAnimation **arg3 = 0 ; - aiAnimation *temp3 = 0 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiAnimation *)jarg3; - arg3 = (aiAnimation **)&temp3; - try { - std_vector_Sl_aiAnimation_Sm__Sg__Insert(arg1,arg2,(aiAnimation *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimationVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - int arg2 ; - std::vector< aiAnimation * > *arg3 = 0 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiAnimation * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiAnimation * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiAnimation_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiAnimation * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimationVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiAnimation_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimationVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiAnimation_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiAnimationVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiAnimation **arg1 = 0 ; - int arg2 ; - aiAnimation *temp1 = 0 ; - std::vector< aiAnimation * > *result = 0 ; - - temp1 = (aiAnimation *)jarg1; - arg1 = (aiAnimation **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiAnimation * > *)std_vector_Sl_aiAnimation_Sm__Sg__Repeat((aiAnimation *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimationVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - std_vector_Sl_aiAnimation_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimationVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiAnimation_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimationVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - int arg2 ; - std::vector< aiAnimation * > *arg3 = 0 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiAnimation * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiAnimation * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiAnimation_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiAnimation * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiAnimationVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - aiAnimation **arg2 = 0 ; - aiAnimation *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - temp2 = (aiAnimation *)jarg2; - arg2 = (aiAnimation **)&temp2; - result = (bool)std_vector_Sl_aiAnimation_Sm__Sg__Contains(arg1,(aiAnimation *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiAnimationVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - aiAnimation **arg2 = 0 ; - aiAnimation *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - temp2 = (aiAnimation *)jarg2; - arg2 = (aiAnimation **)&temp2; - result = (int)std_vector_Sl_aiAnimation_Sm__Sg__IndexOf(arg1,(aiAnimation *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiAnimationVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - aiAnimation **arg2 = 0 ; - aiAnimation *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - temp2 = (aiAnimation *)jarg2; - arg2 = (aiAnimation **)&temp2; - result = (int)std_vector_Sl_aiAnimation_Sm__Sg__LastIndexOf(arg1,(aiAnimation *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiAnimationVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - aiAnimation **arg2 = 0 ; - aiAnimation *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - temp2 = (aiAnimation *)jarg2; - arg2 = (aiAnimation **)&temp2; - result = (bool)std_vector_Sl_aiAnimation_Sm__Sg__Remove(arg1,(aiAnimation *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiAnimationVector(void * jarg1) { - std::vector< aiAnimation * > *arg1 = (std::vector< aiAnimation * > *) 0 ; - - arg1 = (std::vector< aiAnimation * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimMeshVector_Clear(void * jarg1) { - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimMeshVector_Add(void * jarg1, void * jarg2) { - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - aiAnimMesh **arg2 = 0 ; - aiAnimMesh *temp2 = 0 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - temp2 = (aiAnimMesh *)jarg2; - arg2 = (aiAnimMesh **)&temp2; - (arg1)->push_back((aiAnimMesh *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiAnimMeshVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - std::vector< aiAnimMesh * >::size_type result; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - result = ((std::vector< aiAnimMesh * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiAnimMeshVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - std::vector< aiAnimMesh * >::size_type result; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - result = ((std::vector< aiAnimMesh * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimMeshVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - std::vector< aiAnimMesh * >::size_type arg2 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - arg2 = (std::vector< aiAnimMesh * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiAnimMeshVector__SWIG_0() { - void * jresult ; - std::vector< aiAnimMesh * > *result = 0 ; - - result = (std::vector< aiAnimMesh * > *)new std::vector< aiAnimMesh * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiAnimMeshVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiAnimMesh * > *arg1 = 0 ; - std::vector< aiAnimMesh * > *result = 0 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiAnimMesh * > const & type is null", 0); - return 0; - } - result = (std::vector< aiAnimMesh * > *)new std::vector< aiAnimMesh * >((std::vector< aiAnimMesh * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiAnimMeshVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiAnimMesh * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiAnimMesh * > *)new_std_vector_Sl_aiAnimMesh_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiAnimMeshVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - int arg2 ; - aiAnimMesh *result = 0 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiAnimMesh *)std_vector_Sl_aiAnimMesh_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiAnimMeshVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - int arg2 ; - aiAnimMesh **result = 0 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiAnimMesh **) &std_vector_Sl_aiAnimMesh_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimMeshVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - int arg2 ; - aiAnimMesh **arg3 = 0 ; - aiAnimMesh *temp3 = 0 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiAnimMesh *)jarg3; - arg3 = (aiAnimMesh **)&temp3; - try { - std_vector_Sl_aiAnimMesh_Sm__Sg__setitem(arg1,arg2,(aiAnimMesh *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimMeshVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - std::vector< aiAnimMesh * > *arg2 = 0 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - arg2 = (std::vector< aiAnimMesh * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiAnimMesh * > const & type is null", 0); - return ; - } - std_vector_Sl_aiAnimMesh_Sm__Sg__AddRange(arg1,(std::vector< aiAnimMesh * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiAnimMeshVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiAnimMesh * > *result = 0 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiAnimMesh * > *)std_vector_Sl_aiAnimMesh_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimMeshVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - int arg2 ; - aiAnimMesh **arg3 = 0 ; - aiAnimMesh *temp3 = 0 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiAnimMesh *)jarg3; - arg3 = (aiAnimMesh **)&temp3; - try { - std_vector_Sl_aiAnimMesh_Sm__Sg__Insert(arg1,arg2,(aiAnimMesh *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimMeshVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - int arg2 ; - std::vector< aiAnimMesh * > *arg3 = 0 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiAnimMesh * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiAnimMesh * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiAnimMesh_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiAnimMesh * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimMeshVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiAnimMesh_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimMeshVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiAnimMesh_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiAnimMeshVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiAnimMesh **arg1 = 0 ; - int arg2 ; - aiAnimMesh *temp1 = 0 ; - std::vector< aiAnimMesh * > *result = 0 ; - - temp1 = (aiAnimMesh *)jarg1; - arg1 = (aiAnimMesh **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiAnimMesh * > *)std_vector_Sl_aiAnimMesh_Sm__Sg__Repeat((aiAnimMesh *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimMeshVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - std_vector_Sl_aiAnimMesh_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimMeshVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiAnimMesh_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiAnimMeshVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - int arg2 ; - std::vector< aiAnimMesh * > *arg3 = 0 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiAnimMesh * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiAnimMesh * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiAnimMesh_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiAnimMesh * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiAnimMeshVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - aiAnimMesh **arg2 = 0 ; - aiAnimMesh *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - temp2 = (aiAnimMesh *)jarg2; - arg2 = (aiAnimMesh **)&temp2; - result = (bool)std_vector_Sl_aiAnimMesh_Sm__Sg__Contains(arg1,(aiAnimMesh *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiAnimMeshVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - aiAnimMesh **arg2 = 0 ; - aiAnimMesh *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - temp2 = (aiAnimMesh *)jarg2; - arg2 = (aiAnimMesh **)&temp2; - result = (int)std_vector_Sl_aiAnimMesh_Sm__Sg__IndexOf(arg1,(aiAnimMesh *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiAnimMeshVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - aiAnimMesh **arg2 = 0 ; - aiAnimMesh *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - temp2 = (aiAnimMesh *)jarg2; - arg2 = (aiAnimMesh **)&temp2; - result = (int)std_vector_Sl_aiAnimMesh_Sm__Sg__LastIndexOf(arg1,(aiAnimMesh *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiAnimMeshVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - aiAnimMesh **arg2 = 0 ; - aiAnimMesh *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - temp2 = (aiAnimMesh *)jarg2; - arg2 = (aiAnimMesh **)&temp2; - result = (bool)std_vector_Sl_aiAnimMesh_Sm__Sg__Remove(arg1,(aiAnimMesh *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiAnimMeshVector(void * jarg1) { - std::vector< aiAnimMesh * > *arg1 = (std::vector< aiAnimMesh * > *) 0 ; - - arg1 = (std::vector< aiAnimMesh * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBoneVector_Clear(void * jarg1) { - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBoneVector_Add(void * jarg1, void * jarg2) { - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - aiBone **arg2 = 0 ; - aiBone *temp2 = 0 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - temp2 = (aiBone *)jarg2; - arg2 = (aiBone **)&temp2; - (arg1)->push_back((aiBone *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiBoneVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - std::vector< aiBone * >::size_type result; - - arg1 = (std::vector< aiBone * > *)jarg1; - result = ((std::vector< aiBone * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiBoneVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - std::vector< aiBone * >::size_type result; - - arg1 = (std::vector< aiBone * > *)jarg1; - result = ((std::vector< aiBone * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBoneVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - std::vector< aiBone * >::size_type arg2 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - arg2 = (std::vector< aiBone * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiBoneVector__SWIG_0() { - void * jresult ; - std::vector< aiBone * > *result = 0 ; - - result = (std::vector< aiBone * > *)new std::vector< aiBone * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiBoneVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiBone * > *arg1 = 0 ; - std::vector< aiBone * > *result = 0 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiBone * > const & type is null", 0); - return 0; - } - result = (std::vector< aiBone * > *)new std::vector< aiBone * >((std::vector< aiBone * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiBoneVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiBone * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiBone * > *)new_std_vector_Sl_aiBone_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiBoneVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - int arg2 ; - aiBone *result = 0 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiBone *)std_vector_Sl_aiBone_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiBoneVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - int arg2 ; - aiBone **result = 0 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiBone **) &std_vector_Sl_aiBone_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBoneVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - int arg2 ; - aiBone **arg3 = 0 ; - aiBone *temp3 = 0 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiBone *)jarg3; - arg3 = (aiBone **)&temp3; - try { - std_vector_Sl_aiBone_Sm__Sg__setitem(arg1,arg2,(aiBone *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBoneVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - std::vector< aiBone * > *arg2 = 0 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - arg2 = (std::vector< aiBone * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiBone * > const & type is null", 0); - return ; - } - std_vector_Sl_aiBone_Sm__Sg__AddRange(arg1,(std::vector< aiBone * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiBoneVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiBone * > *result = 0 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiBone * > *)std_vector_Sl_aiBone_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBoneVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - int arg2 ; - aiBone **arg3 = 0 ; - aiBone *temp3 = 0 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiBone *)jarg3; - arg3 = (aiBone **)&temp3; - try { - std_vector_Sl_aiBone_Sm__Sg__Insert(arg1,arg2,(aiBone *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBoneVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - int arg2 ; - std::vector< aiBone * > *arg3 = 0 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiBone * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiBone * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiBone_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiBone * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBoneVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiBone_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBoneVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiBone_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiBoneVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiBone **arg1 = 0 ; - int arg2 ; - aiBone *temp1 = 0 ; - std::vector< aiBone * > *result = 0 ; - - temp1 = (aiBone *)jarg1; - arg1 = (aiBone **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiBone * > *)std_vector_Sl_aiBone_Sm__Sg__Repeat((aiBone *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBoneVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - std_vector_Sl_aiBone_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBoneVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiBone_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiBoneVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - int arg2 ; - std::vector< aiBone * > *arg3 = 0 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiBone * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiBone * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiBone_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiBone * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiBoneVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - aiBone **arg2 = 0 ; - aiBone *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiBone * > *)jarg1; - temp2 = (aiBone *)jarg2; - arg2 = (aiBone **)&temp2; - result = (bool)std_vector_Sl_aiBone_Sm__Sg__Contains(arg1,(aiBone *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiBoneVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - aiBone **arg2 = 0 ; - aiBone *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiBone * > *)jarg1; - temp2 = (aiBone *)jarg2; - arg2 = (aiBone **)&temp2; - result = (int)std_vector_Sl_aiBone_Sm__Sg__IndexOf(arg1,(aiBone *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiBoneVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - aiBone **arg2 = 0 ; - aiBone *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiBone * > *)jarg1; - temp2 = (aiBone *)jarg2; - arg2 = (aiBone **)&temp2; - result = (int)std_vector_Sl_aiBone_Sm__Sg__LastIndexOf(arg1,(aiBone *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiBoneVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - aiBone **arg2 = 0 ; - aiBone *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiBone * > *)jarg1; - temp2 = (aiBone *)jarg2; - arg2 = (aiBone **)&temp2; - result = (bool)std_vector_Sl_aiBone_Sm__Sg__Remove(arg1,(aiBone *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiBoneVector(void * jarg1) { - std::vector< aiBone * > *arg1 = (std::vector< aiBone * > *) 0 ; - - arg1 = (std::vector< aiBone * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCameraVector_Clear(void * jarg1) { - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCameraVector_Add(void * jarg1, void * jarg2) { - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - aiCamera **arg2 = 0 ; - aiCamera *temp2 = 0 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - temp2 = (aiCamera *)jarg2; - arg2 = (aiCamera **)&temp2; - (arg1)->push_back((aiCamera *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiCameraVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - std::vector< aiCamera * >::size_type result; - - arg1 = (std::vector< aiCamera * > *)jarg1; - result = ((std::vector< aiCamera * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiCameraVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - std::vector< aiCamera * >::size_type result; - - arg1 = (std::vector< aiCamera * > *)jarg1; - result = ((std::vector< aiCamera * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCameraVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - std::vector< aiCamera * >::size_type arg2 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - arg2 = (std::vector< aiCamera * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiCameraVector__SWIG_0() { - void * jresult ; - std::vector< aiCamera * > *result = 0 ; - - result = (std::vector< aiCamera * > *)new std::vector< aiCamera * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiCameraVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiCamera * > *arg1 = 0 ; - std::vector< aiCamera * > *result = 0 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiCamera * > const & type is null", 0); - return 0; - } - result = (std::vector< aiCamera * > *)new std::vector< aiCamera * >((std::vector< aiCamera * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiCameraVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiCamera * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiCamera * > *)new_std_vector_Sl_aiCamera_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiCameraVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - int arg2 ; - aiCamera *result = 0 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiCamera *)std_vector_Sl_aiCamera_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiCameraVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - int arg2 ; - aiCamera **result = 0 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiCamera **) &std_vector_Sl_aiCamera_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCameraVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - int arg2 ; - aiCamera **arg3 = 0 ; - aiCamera *temp3 = 0 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiCamera *)jarg3; - arg3 = (aiCamera **)&temp3; - try { - std_vector_Sl_aiCamera_Sm__Sg__setitem(arg1,arg2,(aiCamera *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCameraVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - std::vector< aiCamera * > *arg2 = 0 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - arg2 = (std::vector< aiCamera * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiCamera * > const & type is null", 0); - return ; - } - std_vector_Sl_aiCamera_Sm__Sg__AddRange(arg1,(std::vector< aiCamera * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiCameraVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiCamera * > *result = 0 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiCamera * > *)std_vector_Sl_aiCamera_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCameraVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - int arg2 ; - aiCamera **arg3 = 0 ; - aiCamera *temp3 = 0 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiCamera *)jarg3; - arg3 = (aiCamera **)&temp3; - try { - std_vector_Sl_aiCamera_Sm__Sg__Insert(arg1,arg2,(aiCamera *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCameraVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - int arg2 ; - std::vector< aiCamera * > *arg3 = 0 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiCamera * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiCamera * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiCamera_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiCamera * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCameraVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiCamera_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCameraVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiCamera_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiCameraVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiCamera **arg1 = 0 ; - int arg2 ; - aiCamera *temp1 = 0 ; - std::vector< aiCamera * > *result = 0 ; - - temp1 = (aiCamera *)jarg1; - arg1 = (aiCamera **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiCamera * > *)std_vector_Sl_aiCamera_Sm__Sg__Repeat((aiCamera *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCameraVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - std_vector_Sl_aiCamera_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCameraVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiCamera_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiCameraVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - int arg2 ; - std::vector< aiCamera * > *arg3 = 0 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiCamera * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiCamera * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiCamera_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiCamera * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiCameraVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - aiCamera **arg2 = 0 ; - aiCamera *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiCamera * > *)jarg1; - temp2 = (aiCamera *)jarg2; - arg2 = (aiCamera **)&temp2; - result = (bool)std_vector_Sl_aiCamera_Sm__Sg__Contains(arg1,(aiCamera *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiCameraVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - aiCamera **arg2 = 0 ; - aiCamera *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiCamera * > *)jarg1; - temp2 = (aiCamera *)jarg2; - arg2 = (aiCamera **)&temp2; - result = (int)std_vector_Sl_aiCamera_Sm__Sg__IndexOf(arg1,(aiCamera *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiCameraVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - aiCamera **arg2 = 0 ; - aiCamera *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiCamera * > *)jarg1; - temp2 = (aiCamera *)jarg2; - arg2 = (aiCamera **)&temp2; - result = (int)std_vector_Sl_aiCamera_Sm__Sg__LastIndexOf(arg1,(aiCamera *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiCameraVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - aiCamera **arg2 = 0 ; - aiCamera *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiCamera * > *)jarg1; - temp2 = (aiCamera *)jarg2; - arg2 = (aiCamera **)&temp2; - result = (bool)std_vector_Sl_aiCamera_Sm__Sg__Remove(arg1,(aiCamera *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiCameraVector(void * jarg1) { - std::vector< aiCamera * > *arg1 = (std::vector< aiCamera * > *) 0 ; - - arg1 = (std::vector< aiCamera * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVectorVector_Clear(void * jarg1) { - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVectorVector_Add(void * jarg1, void * jarg2) { - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - std::vector< aiColor4t< float > * > *arg2 = 0 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - arg2 = (std::vector< aiColor4t< float > * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiColor4t< float > * > const & type is null", 0); - return ; - } - (arg1)->push_back((std::vector< aiColor4t< float > * > const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiColor4DVectorVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - std::vector< std::vector< aiColor4t< float > * > >::size_type result; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - result = ((std::vector< std::vector< aiColor4D * > > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiColor4DVectorVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - std::vector< std::vector< aiColor4t< float > * > >::size_type result; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - result = ((std::vector< std::vector< aiColor4D * > > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVectorVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - std::vector< std::vector< aiColor4t< float > * > >::size_type arg2 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - arg2 = (std::vector< std::vector< aiColor4t< float > * > >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiColor4DVectorVector__SWIG_0() { - void * jresult ; - std::vector< std::vector< aiColor4D * > > *result = 0 ; - - result = (std::vector< std::vector< aiColor4D * > > *)new std::vector< std::vector< aiColor4D * > >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiColor4DVectorVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< std::vector< aiColor4D * > > *arg1 = 0 ; - std::vector< std::vector< aiColor4D * > > *result = 0 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< std::vector< aiColor4D * > > const & type is null", 0); - return 0; - } - result = (std::vector< std::vector< aiColor4D * > > *)new std::vector< std::vector< aiColor4D * > >((std::vector< std::vector< aiColor4D * > > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiColor4DVectorVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< std::vector< aiColor4D * > > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< std::vector< aiColor4D * > > *)new_std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor4DVectorVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - int arg2 ; - std::vector< aiColor4t< float > * > result; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - arg2 = (int)jarg2; - try { - result = std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = new std::vector< aiColor4t< float > * >((const std::vector< aiColor4t< float > * > &)result); - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor4DVectorVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - int arg2 ; - std::vector< aiColor4t< float > * > *result = 0 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiColor4t< float > * > *) &std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVectorVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - int arg2 ; - std::vector< aiColor4t< float > * > *arg3 = 0 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiColor4t< float > * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiColor4t< float > * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__setitem(arg1,arg2,(std::vector< aiColor4t< float > * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVectorVector_AddRange(void * jarg1, void * jarg2) { - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - std::vector< std::vector< aiColor4t< float > * > > *arg2 = 0 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - arg2 = (std::vector< std::vector< aiColor4t< float > * > > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< std::vector< aiColor4t< float > * > > const & type is null", 0); - return ; - } - std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__AddRange(arg1,(std::vector< std::vector< aiColor4t< float > * > > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor4DVectorVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< std::vector< aiColor4t< float > * > > *result = 0 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< std::vector< aiColor4t< float > * > > *)std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVectorVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - int arg2 ; - std::vector< aiColor4t< float > * > *arg3 = 0 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiColor4t< float > * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiColor4t< float > * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__Insert(arg1,arg2,(std::vector< aiColor4t< float > * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVectorVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - int arg2 ; - std::vector< std::vector< aiColor4t< float > * > > *arg3 = 0 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< std::vector< aiColor4t< float > * > > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< std::vector< aiColor4t< float > * > > const & type is null", 0); - return ; - } - try { - std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__InsertRange(arg1,arg2,(std::vector< std::vector< aiColor4t< float > * > > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVectorVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - int arg2 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVectorVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor4DVectorVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiColor4t< float > * > *arg1 = 0 ; - int arg2 ; - std::vector< std::vector< aiColor4t< float > * > > *result = 0 ; - - arg1 = (std::vector< aiColor4t< float > * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiColor4t< float > * > const & type is null", 0); - return 0; - } - arg2 = (int)jarg2; - try { - result = (std::vector< std::vector< aiColor4t< float > * > > *)std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__Repeat((std::vector< aiColor4t< float > * > const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVectorVector_Reverse__SWIG_0(void * jarg1) { - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVectorVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVectorVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - int arg2 ; - std::vector< std::vector< aiColor4t< float > * > > *arg3 = 0 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< std::vector< aiColor4t< float > * > > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< std::vector< aiColor4t< float > * > > const & type is null", 0); - return ; - } - try { - std_vector_Sl_std_vector_Sl_aiColor4D_Sm__Sg__Sg__SetRange(arg1,arg2,(std::vector< std::vector< aiColor4t< float > * > > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiColor4DVectorVector(void * jarg1) { - std::vector< std::vector< aiColor4D * > > *arg1 = (std::vector< std::vector< aiColor4D * > > *) 0 ; - - arg1 = (std::vector< std::vector< aiColor4D * > > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVector_Clear(void * jarg1) { - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVector_Add(void * jarg1, void * jarg2) { - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - aiColor4t< float > **arg2 = 0 ; - aiColor4t< float > *temp2 = 0 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - temp2 = (aiColor4t< float > *)jarg2; - arg2 = (aiColor4t< float > **)&temp2; - (arg1)->push_back((aiColor4t< float > *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiColor4DVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - std::vector< aiColor4t< float > * >::size_type result; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - result = ((std::vector< aiColor4D * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiColor4DVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - std::vector< aiColor4t< float > * >::size_type result; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - result = ((std::vector< aiColor4D * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - std::vector< aiColor4t< float > * >::size_type arg2 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - arg2 = (std::vector< aiColor4t< float > * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiColor4DVector__SWIG_0() { - void * jresult ; - std::vector< aiColor4D * > *result = 0 ; - - result = (std::vector< aiColor4D * > *)new std::vector< aiColor4D * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiColor4DVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiColor4D * > *arg1 = 0 ; - std::vector< aiColor4D * > *result = 0 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiColor4D * > const & type is null", 0); - return 0; - } - result = (std::vector< aiColor4D * > *)new std::vector< aiColor4D * >((std::vector< aiColor4D * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiColor4DVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiColor4D * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiColor4D * > *)new_std_vector_Sl_aiColor4D_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor4DVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - int arg2 ; - aiColor4t< float > *result = 0 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiColor4t< float > *)std_vector_Sl_aiColor4D_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor4DVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - int arg2 ; - aiColor4t< float > **result = 0 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiColor4t< float > **) &std_vector_Sl_aiColor4D_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - int arg2 ; - aiColor4t< float > **arg3 = 0 ; - aiColor4t< float > *temp3 = 0 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiColor4t< float > *)jarg3; - arg3 = (aiColor4t< float > **)&temp3; - try { - std_vector_Sl_aiColor4D_Sm__Sg__setitem(arg1,arg2,(aiColor4t< float > *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - std::vector< aiColor4t< float > * > *arg2 = 0 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - arg2 = (std::vector< aiColor4t< float > * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiColor4t< float > * > const & type is null", 0); - return ; - } - std_vector_Sl_aiColor4D_Sm__Sg__AddRange(arg1,(std::vector< aiColor4t< float > * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor4DVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiColor4t< float > * > *result = 0 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiColor4t< float > * > *)std_vector_Sl_aiColor4D_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - int arg2 ; - aiColor4t< float > **arg3 = 0 ; - aiColor4t< float > *temp3 = 0 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiColor4t< float > *)jarg3; - arg3 = (aiColor4t< float > **)&temp3; - try { - std_vector_Sl_aiColor4D_Sm__Sg__Insert(arg1,arg2,(aiColor4t< float > *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - int arg2 ; - std::vector< aiColor4t< float > * > *arg3 = 0 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiColor4t< float > * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiColor4t< float > * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiColor4D_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiColor4t< float > * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiColor4D_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiColor4D_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiColor4DVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiColor4t< float > **arg1 = 0 ; - int arg2 ; - aiColor4t< float > *temp1 = 0 ; - std::vector< aiColor4t< float > * > *result = 0 ; - - temp1 = (aiColor4t< float > *)jarg1; - arg1 = (aiColor4t< float > **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiColor4t< float > * > *)std_vector_Sl_aiColor4D_Sm__Sg__Repeat((aiColor4t< float > *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - std_vector_Sl_aiColor4D_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiColor4D_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiColor4DVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - int arg2 ; - std::vector< aiColor4t< float > * > *arg3 = 0 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiColor4t< float > * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiColor4t< float > * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiColor4D_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiColor4t< float > * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiColor4DVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - aiColor4t< float > **arg2 = 0 ; - aiColor4t< float > *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - temp2 = (aiColor4t< float > *)jarg2; - arg2 = (aiColor4t< float > **)&temp2; - result = (bool)std_vector_Sl_aiColor4D_Sm__Sg__Contains(arg1,(aiColor4t< float > *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiColor4DVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - aiColor4t< float > **arg2 = 0 ; - aiColor4t< float > *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - temp2 = (aiColor4t< float > *)jarg2; - arg2 = (aiColor4t< float > **)&temp2; - result = (int)std_vector_Sl_aiColor4D_Sm__Sg__IndexOf(arg1,(aiColor4t< float > *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiColor4DVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - aiColor4t< float > **arg2 = 0 ; - aiColor4t< float > *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - temp2 = (aiColor4t< float > *)jarg2; - arg2 = (aiColor4t< float > **)&temp2; - result = (int)std_vector_Sl_aiColor4D_Sm__Sg__LastIndexOf(arg1,(aiColor4t< float > *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiColor4DVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - aiColor4t< float > **arg2 = 0 ; - aiColor4t< float > *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - temp2 = (aiColor4t< float > *)jarg2; - arg2 = (aiColor4t< float > **)&temp2; - result = (bool)std_vector_Sl_aiColor4D_Sm__Sg__Remove(arg1,(aiColor4t< float > *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiColor4DVector(void * jarg1) { - std::vector< aiColor4D * > *arg1 = (std::vector< aiColor4D * > *) 0 ; - - arg1 = (std::vector< aiColor4D * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiFaceVector_Clear(void * jarg1) { - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiFaceVector_Add(void * jarg1, void * jarg2) { - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - aiFace **arg2 = 0 ; - aiFace *temp2 = 0 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - temp2 = (aiFace *)jarg2; - arg2 = (aiFace **)&temp2; - (arg1)->push_back((aiFace *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiFaceVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - std::vector< aiFace * >::size_type result; - - arg1 = (std::vector< aiFace * > *)jarg1; - result = ((std::vector< aiFace * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiFaceVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - std::vector< aiFace * >::size_type result; - - arg1 = (std::vector< aiFace * > *)jarg1; - result = ((std::vector< aiFace * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiFaceVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - std::vector< aiFace * >::size_type arg2 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - arg2 = (std::vector< aiFace * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiFaceVector__SWIG_0() { - void * jresult ; - std::vector< aiFace * > *result = 0 ; - - result = (std::vector< aiFace * > *)new std::vector< aiFace * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiFaceVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiFace * > *arg1 = 0 ; - std::vector< aiFace * > *result = 0 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiFace * > const & type is null", 0); - return 0; - } - result = (std::vector< aiFace * > *)new std::vector< aiFace * >((std::vector< aiFace * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiFaceVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiFace * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiFace * > *)new_std_vector_Sl_aiFace_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiFaceVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - int arg2 ; - aiFace *result = 0 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiFace *)std_vector_Sl_aiFace_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiFaceVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - int arg2 ; - aiFace **result = 0 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiFace **) &std_vector_Sl_aiFace_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiFaceVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - int arg2 ; - aiFace **arg3 = 0 ; - aiFace *temp3 = 0 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiFace *)jarg3; - arg3 = (aiFace **)&temp3; - try { - std_vector_Sl_aiFace_Sm__Sg__setitem(arg1,arg2,(aiFace *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiFaceVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - std::vector< aiFace * > *arg2 = 0 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - arg2 = (std::vector< aiFace * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiFace * > const & type is null", 0); - return ; - } - std_vector_Sl_aiFace_Sm__Sg__AddRange(arg1,(std::vector< aiFace * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiFaceVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiFace * > *result = 0 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiFace * > *)std_vector_Sl_aiFace_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiFaceVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - int arg2 ; - aiFace **arg3 = 0 ; - aiFace *temp3 = 0 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiFace *)jarg3; - arg3 = (aiFace **)&temp3; - try { - std_vector_Sl_aiFace_Sm__Sg__Insert(arg1,arg2,(aiFace *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiFaceVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - int arg2 ; - std::vector< aiFace * > *arg3 = 0 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiFace * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiFace * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiFace_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiFace * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiFaceVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiFace_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiFaceVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiFace_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiFaceVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiFace **arg1 = 0 ; - int arg2 ; - aiFace *temp1 = 0 ; - std::vector< aiFace * > *result = 0 ; - - temp1 = (aiFace *)jarg1; - arg1 = (aiFace **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiFace * > *)std_vector_Sl_aiFace_Sm__Sg__Repeat((aiFace *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiFaceVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - std_vector_Sl_aiFace_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiFaceVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiFace_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiFaceVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - int arg2 ; - std::vector< aiFace * > *arg3 = 0 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiFace * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiFace * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiFace_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiFace * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiFaceVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - aiFace **arg2 = 0 ; - aiFace *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiFace * > *)jarg1; - temp2 = (aiFace *)jarg2; - arg2 = (aiFace **)&temp2; - result = (bool)std_vector_Sl_aiFace_Sm__Sg__Contains(arg1,(aiFace *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiFaceVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - aiFace **arg2 = 0 ; - aiFace *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiFace * > *)jarg1; - temp2 = (aiFace *)jarg2; - arg2 = (aiFace **)&temp2; - result = (int)std_vector_Sl_aiFace_Sm__Sg__IndexOf(arg1,(aiFace *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiFaceVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - aiFace **arg2 = 0 ; - aiFace *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiFace * > *)jarg1; - temp2 = (aiFace *)jarg2; - arg2 = (aiFace **)&temp2; - result = (int)std_vector_Sl_aiFace_Sm__Sg__LastIndexOf(arg1,(aiFace *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiFaceVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - aiFace **arg2 = 0 ; - aiFace *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiFace * > *)jarg1; - temp2 = (aiFace *)jarg2; - arg2 = (aiFace **)&temp2; - result = (bool)std_vector_Sl_aiFace_Sm__Sg__Remove(arg1,(aiFace *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiFaceVector(void * jarg1) { - std::vector< aiFace * > *arg1 = (std::vector< aiFace * > *) 0 ; - - arg1 = (std::vector< aiFace * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLightVector_Clear(void * jarg1) { - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLightVector_Add(void * jarg1, void * jarg2) { - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - aiLight **arg2 = 0 ; - aiLight *temp2 = 0 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - temp2 = (aiLight *)jarg2; - arg2 = (aiLight **)&temp2; - (arg1)->push_back((aiLight *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiLightVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - std::vector< aiLight * >::size_type result; - - arg1 = (std::vector< aiLight * > *)jarg1; - result = ((std::vector< aiLight * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiLightVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - std::vector< aiLight * >::size_type result; - - arg1 = (std::vector< aiLight * > *)jarg1; - result = ((std::vector< aiLight * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLightVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - std::vector< aiLight * >::size_type arg2 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - arg2 = (std::vector< aiLight * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiLightVector__SWIG_0() { - void * jresult ; - std::vector< aiLight * > *result = 0 ; - - result = (std::vector< aiLight * > *)new std::vector< aiLight * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiLightVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiLight * > *arg1 = 0 ; - std::vector< aiLight * > *result = 0 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiLight * > const & type is null", 0); - return 0; - } - result = (std::vector< aiLight * > *)new std::vector< aiLight * >((std::vector< aiLight * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiLightVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiLight * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiLight * > *)new_std_vector_Sl_aiLight_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiLightVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - int arg2 ; - aiLight *result = 0 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiLight *)std_vector_Sl_aiLight_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiLightVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - int arg2 ; - aiLight **result = 0 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiLight **) &std_vector_Sl_aiLight_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLightVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - int arg2 ; - aiLight **arg3 = 0 ; - aiLight *temp3 = 0 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiLight *)jarg3; - arg3 = (aiLight **)&temp3; - try { - std_vector_Sl_aiLight_Sm__Sg__setitem(arg1,arg2,(aiLight *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLightVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - std::vector< aiLight * > *arg2 = 0 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - arg2 = (std::vector< aiLight * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiLight * > const & type is null", 0); - return ; - } - std_vector_Sl_aiLight_Sm__Sg__AddRange(arg1,(std::vector< aiLight * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiLightVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiLight * > *result = 0 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiLight * > *)std_vector_Sl_aiLight_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLightVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - int arg2 ; - aiLight **arg3 = 0 ; - aiLight *temp3 = 0 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiLight *)jarg3; - arg3 = (aiLight **)&temp3; - try { - std_vector_Sl_aiLight_Sm__Sg__Insert(arg1,arg2,(aiLight *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLightVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - int arg2 ; - std::vector< aiLight * > *arg3 = 0 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiLight * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiLight * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiLight_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiLight * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLightVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiLight_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLightVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiLight_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiLightVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiLight **arg1 = 0 ; - int arg2 ; - aiLight *temp1 = 0 ; - std::vector< aiLight * > *result = 0 ; - - temp1 = (aiLight *)jarg1; - arg1 = (aiLight **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiLight * > *)std_vector_Sl_aiLight_Sm__Sg__Repeat((aiLight *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLightVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - std_vector_Sl_aiLight_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLightVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiLight_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiLightVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - int arg2 ; - std::vector< aiLight * > *arg3 = 0 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiLight * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiLight * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiLight_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiLight * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiLightVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - aiLight **arg2 = 0 ; - aiLight *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiLight * > *)jarg1; - temp2 = (aiLight *)jarg2; - arg2 = (aiLight **)&temp2; - result = (bool)std_vector_Sl_aiLight_Sm__Sg__Contains(arg1,(aiLight *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiLightVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - aiLight **arg2 = 0 ; - aiLight *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiLight * > *)jarg1; - temp2 = (aiLight *)jarg2; - arg2 = (aiLight **)&temp2; - result = (int)std_vector_Sl_aiLight_Sm__Sg__IndexOf(arg1,(aiLight *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiLightVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - aiLight **arg2 = 0 ; - aiLight *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiLight * > *)jarg1; - temp2 = (aiLight *)jarg2; - arg2 = (aiLight **)&temp2; - result = (int)std_vector_Sl_aiLight_Sm__Sg__LastIndexOf(arg1,(aiLight *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiLightVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - aiLight **arg2 = 0 ; - aiLight *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiLight * > *)jarg1; - temp2 = (aiLight *)jarg2; - arg2 = (aiLight **)&temp2; - result = (bool)std_vector_Sl_aiLight_Sm__Sg__Remove(arg1,(aiLight *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiLightVector(void * jarg1) { - std::vector< aiLight * > *arg1 = (std::vector< aiLight * > *) 0 ; - - arg1 = (std::vector< aiLight * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialVector_Clear(void * jarg1) { - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialVector_Add(void * jarg1, void * jarg2) { - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - aiMaterial **arg2 = 0 ; - aiMaterial *temp2 = 0 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - temp2 = (aiMaterial *)jarg2; - arg2 = (aiMaterial **)&temp2; - (arg1)->push_back((aiMaterial *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiMaterialVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - std::vector< aiMaterial * >::size_type result; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - result = ((std::vector< aiMaterial * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiMaterialVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - std::vector< aiMaterial * >::size_type result; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - result = ((std::vector< aiMaterial * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - std::vector< aiMaterial * >::size_type arg2 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - arg2 = (std::vector< aiMaterial * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMaterialVector__SWIG_0() { - void * jresult ; - std::vector< aiMaterial * > *result = 0 ; - - result = (std::vector< aiMaterial * > *)new std::vector< aiMaterial * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMaterialVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiMaterial * > *arg1 = 0 ; - std::vector< aiMaterial * > *result = 0 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMaterial * > const & type is null", 0); - return 0; - } - result = (std::vector< aiMaterial * > *)new std::vector< aiMaterial * >((std::vector< aiMaterial * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMaterialVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiMaterial * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiMaterial * > *)new_std_vector_Sl_aiMaterial_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMaterialVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - int arg2 ; - aiMaterial *result = 0 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiMaterial *)std_vector_Sl_aiMaterial_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMaterialVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - int arg2 ; - aiMaterial **result = 0 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiMaterial **) &std_vector_Sl_aiMaterial_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - int arg2 ; - aiMaterial **arg3 = 0 ; - aiMaterial *temp3 = 0 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiMaterial *)jarg3; - arg3 = (aiMaterial **)&temp3; - try { - std_vector_Sl_aiMaterial_Sm__Sg__setitem(arg1,arg2,(aiMaterial *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - std::vector< aiMaterial * > *arg2 = 0 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - arg2 = (std::vector< aiMaterial * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMaterial * > const & type is null", 0); - return ; - } - std_vector_Sl_aiMaterial_Sm__Sg__AddRange(arg1,(std::vector< aiMaterial * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMaterialVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiMaterial * > *result = 0 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiMaterial * > *)std_vector_Sl_aiMaterial_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - int arg2 ; - aiMaterial **arg3 = 0 ; - aiMaterial *temp3 = 0 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiMaterial *)jarg3; - arg3 = (aiMaterial **)&temp3; - try { - std_vector_Sl_aiMaterial_Sm__Sg__Insert(arg1,arg2,(aiMaterial *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - int arg2 ; - std::vector< aiMaterial * > *arg3 = 0 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiMaterial * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMaterial * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiMaterial_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiMaterial * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiMaterial_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiMaterial_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMaterialVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiMaterial **arg1 = 0 ; - int arg2 ; - aiMaterial *temp1 = 0 ; - std::vector< aiMaterial * > *result = 0 ; - - temp1 = (aiMaterial *)jarg1; - arg1 = (aiMaterial **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiMaterial * > *)std_vector_Sl_aiMaterial_Sm__Sg__Repeat((aiMaterial *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - std_vector_Sl_aiMaterial_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiMaterial_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMaterialVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - int arg2 ; - std::vector< aiMaterial * > *arg3 = 0 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiMaterial * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMaterial * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiMaterial_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiMaterial * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterialVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - aiMaterial **arg2 = 0 ; - aiMaterial *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - temp2 = (aiMaterial *)jarg2; - arg2 = (aiMaterial **)&temp2; - result = (bool)std_vector_Sl_aiMaterial_Sm__Sg__Contains(arg1,(aiMaterial *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMaterialVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - aiMaterial **arg2 = 0 ; - aiMaterial *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - temp2 = (aiMaterial *)jarg2; - arg2 = (aiMaterial **)&temp2; - result = (int)std_vector_Sl_aiMaterial_Sm__Sg__IndexOf(arg1,(aiMaterial *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMaterialVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - aiMaterial **arg2 = 0 ; - aiMaterial *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - temp2 = (aiMaterial *)jarg2; - arg2 = (aiMaterial **)&temp2; - result = (int)std_vector_Sl_aiMaterial_Sm__Sg__LastIndexOf(arg1,(aiMaterial *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMaterialVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - aiMaterial **arg2 = 0 ; - aiMaterial *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - temp2 = (aiMaterial *)jarg2; - arg2 = (aiMaterial **)&temp2; - result = (bool)std_vector_Sl_aiMaterial_Sm__Sg__Remove(arg1,(aiMaterial *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiMaterialVector(void * jarg1) { - std::vector< aiMaterial * > *arg1 = (std::vector< aiMaterial * > *) 0 ; - - arg1 = (std::vector< aiMaterial * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshAnimVector_Clear(void * jarg1) { - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshAnimVector_Add(void * jarg1, void * jarg2) { - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - aiMeshAnim **arg2 = 0 ; - aiMeshAnim *temp2 = 0 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - temp2 = (aiMeshAnim *)jarg2; - arg2 = (aiMeshAnim **)&temp2; - (arg1)->push_back((aiMeshAnim *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiMeshAnimVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - std::vector< aiMeshAnim * >::size_type result; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - result = ((std::vector< aiMeshAnim * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiMeshAnimVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - std::vector< aiMeshAnim * >::size_type result; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - result = ((std::vector< aiMeshAnim * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshAnimVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - std::vector< aiMeshAnim * >::size_type arg2 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - arg2 = (std::vector< aiMeshAnim * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMeshAnimVector__SWIG_0() { - void * jresult ; - std::vector< aiMeshAnim * > *result = 0 ; - - result = (std::vector< aiMeshAnim * > *)new std::vector< aiMeshAnim * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMeshAnimVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiMeshAnim * > *arg1 = 0 ; - std::vector< aiMeshAnim * > *result = 0 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMeshAnim * > const & type is null", 0); - return 0; - } - result = (std::vector< aiMeshAnim * > *)new std::vector< aiMeshAnim * >((std::vector< aiMeshAnim * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMeshAnimVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiMeshAnim * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiMeshAnim * > *)new_std_vector_Sl_aiMeshAnim_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMeshAnimVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - int arg2 ; - aiMeshAnim *result = 0 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiMeshAnim *)std_vector_Sl_aiMeshAnim_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMeshAnimVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - int arg2 ; - aiMeshAnim **result = 0 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiMeshAnim **) &std_vector_Sl_aiMeshAnim_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshAnimVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - int arg2 ; - aiMeshAnim **arg3 = 0 ; - aiMeshAnim *temp3 = 0 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiMeshAnim *)jarg3; - arg3 = (aiMeshAnim **)&temp3; - try { - std_vector_Sl_aiMeshAnim_Sm__Sg__setitem(arg1,arg2,(aiMeshAnim *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshAnimVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - std::vector< aiMeshAnim * > *arg2 = 0 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - arg2 = (std::vector< aiMeshAnim * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMeshAnim * > const & type is null", 0); - return ; - } - std_vector_Sl_aiMeshAnim_Sm__Sg__AddRange(arg1,(std::vector< aiMeshAnim * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMeshAnimVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiMeshAnim * > *result = 0 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiMeshAnim * > *)std_vector_Sl_aiMeshAnim_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshAnimVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - int arg2 ; - aiMeshAnim **arg3 = 0 ; - aiMeshAnim *temp3 = 0 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiMeshAnim *)jarg3; - arg3 = (aiMeshAnim **)&temp3; - try { - std_vector_Sl_aiMeshAnim_Sm__Sg__Insert(arg1,arg2,(aiMeshAnim *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshAnimVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - int arg2 ; - std::vector< aiMeshAnim * > *arg3 = 0 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiMeshAnim * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMeshAnim * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiMeshAnim_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiMeshAnim * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshAnimVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiMeshAnim_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshAnimVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiMeshAnim_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMeshAnimVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiMeshAnim **arg1 = 0 ; - int arg2 ; - aiMeshAnim *temp1 = 0 ; - std::vector< aiMeshAnim * > *result = 0 ; - - temp1 = (aiMeshAnim *)jarg1; - arg1 = (aiMeshAnim **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiMeshAnim * > *)std_vector_Sl_aiMeshAnim_Sm__Sg__Repeat((aiMeshAnim *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshAnimVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - std_vector_Sl_aiMeshAnim_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshAnimVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiMeshAnim_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshAnimVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - int arg2 ; - std::vector< aiMeshAnim * > *arg3 = 0 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiMeshAnim * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMeshAnim * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiMeshAnim_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiMeshAnim * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMeshAnimVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - aiMeshAnim **arg2 = 0 ; - aiMeshAnim *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - temp2 = (aiMeshAnim *)jarg2; - arg2 = (aiMeshAnim **)&temp2; - result = (bool)std_vector_Sl_aiMeshAnim_Sm__Sg__Contains(arg1,(aiMeshAnim *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMeshAnimVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - aiMeshAnim **arg2 = 0 ; - aiMeshAnim *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - temp2 = (aiMeshAnim *)jarg2; - arg2 = (aiMeshAnim **)&temp2; - result = (int)std_vector_Sl_aiMeshAnim_Sm__Sg__IndexOf(arg1,(aiMeshAnim *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMeshAnimVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - aiMeshAnim **arg2 = 0 ; - aiMeshAnim *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - temp2 = (aiMeshAnim *)jarg2; - arg2 = (aiMeshAnim **)&temp2; - result = (int)std_vector_Sl_aiMeshAnim_Sm__Sg__LastIndexOf(arg1,(aiMeshAnim *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMeshAnimVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - aiMeshAnim **arg2 = 0 ; - aiMeshAnim *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - temp2 = (aiMeshAnim *)jarg2; - arg2 = (aiMeshAnim **)&temp2; - result = (bool)std_vector_Sl_aiMeshAnim_Sm__Sg__Remove(arg1,(aiMeshAnim *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiMeshAnimVector(void * jarg1) { - std::vector< aiMeshAnim * > *arg1 = (std::vector< aiMeshAnim * > *) 0 ; - - arg1 = (std::vector< aiMeshAnim * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshKeyVector_Clear(void * jarg1) { - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshKeyVector_Add(void * jarg1, void * jarg2) { - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - aiMeshKey **arg2 = 0 ; - aiMeshKey *temp2 = 0 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - temp2 = (aiMeshKey *)jarg2; - arg2 = (aiMeshKey **)&temp2; - (arg1)->push_back((aiMeshKey *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiMeshKeyVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - std::vector< aiMeshKey * >::size_type result; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - result = ((std::vector< aiMeshKey * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiMeshKeyVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - std::vector< aiMeshKey * >::size_type result; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - result = ((std::vector< aiMeshKey * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshKeyVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - std::vector< aiMeshKey * >::size_type arg2 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - arg2 = (std::vector< aiMeshKey * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMeshKeyVector__SWIG_0() { - void * jresult ; - std::vector< aiMeshKey * > *result = 0 ; - - result = (std::vector< aiMeshKey * > *)new std::vector< aiMeshKey * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMeshKeyVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiMeshKey * > *arg1 = 0 ; - std::vector< aiMeshKey * > *result = 0 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMeshKey * > const & type is null", 0); - return 0; - } - result = (std::vector< aiMeshKey * > *)new std::vector< aiMeshKey * >((std::vector< aiMeshKey * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMeshKeyVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiMeshKey * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiMeshKey * > *)new_std_vector_Sl_aiMeshKey_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMeshKeyVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - int arg2 ; - aiMeshKey *result = 0 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiMeshKey *)std_vector_Sl_aiMeshKey_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMeshKeyVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - int arg2 ; - aiMeshKey **result = 0 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiMeshKey **) &std_vector_Sl_aiMeshKey_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshKeyVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - int arg2 ; - aiMeshKey **arg3 = 0 ; - aiMeshKey *temp3 = 0 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiMeshKey *)jarg3; - arg3 = (aiMeshKey **)&temp3; - try { - std_vector_Sl_aiMeshKey_Sm__Sg__setitem(arg1,arg2,(aiMeshKey *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshKeyVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - std::vector< aiMeshKey * > *arg2 = 0 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - arg2 = (std::vector< aiMeshKey * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMeshKey * > const & type is null", 0); - return ; - } - std_vector_Sl_aiMeshKey_Sm__Sg__AddRange(arg1,(std::vector< aiMeshKey * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMeshKeyVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiMeshKey * > *result = 0 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiMeshKey * > *)std_vector_Sl_aiMeshKey_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshKeyVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - int arg2 ; - aiMeshKey **arg3 = 0 ; - aiMeshKey *temp3 = 0 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiMeshKey *)jarg3; - arg3 = (aiMeshKey **)&temp3; - try { - std_vector_Sl_aiMeshKey_Sm__Sg__Insert(arg1,arg2,(aiMeshKey *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshKeyVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - int arg2 ; - std::vector< aiMeshKey * > *arg3 = 0 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiMeshKey * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMeshKey * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiMeshKey_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiMeshKey * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshKeyVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiMeshKey_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshKeyVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiMeshKey_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMeshKeyVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiMeshKey **arg1 = 0 ; - int arg2 ; - aiMeshKey *temp1 = 0 ; - std::vector< aiMeshKey * > *result = 0 ; - - temp1 = (aiMeshKey *)jarg1; - arg1 = (aiMeshKey **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiMeshKey * > *)std_vector_Sl_aiMeshKey_Sm__Sg__Repeat((aiMeshKey *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshKeyVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - std_vector_Sl_aiMeshKey_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshKeyVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiMeshKey_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshKeyVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - int arg2 ; - std::vector< aiMeshKey * > *arg3 = 0 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiMeshKey * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMeshKey * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiMeshKey_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiMeshKey * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMeshKeyVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - aiMeshKey **arg2 = 0 ; - aiMeshKey *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - temp2 = (aiMeshKey *)jarg2; - arg2 = (aiMeshKey **)&temp2; - result = (bool)std_vector_Sl_aiMeshKey_Sm__Sg__Contains(arg1,(aiMeshKey *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMeshKeyVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - aiMeshKey **arg2 = 0 ; - aiMeshKey *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - temp2 = (aiMeshKey *)jarg2; - arg2 = (aiMeshKey **)&temp2; - result = (int)std_vector_Sl_aiMeshKey_Sm__Sg__IndexOf(arg1,(aiMeshKey *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMeshKeyVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - aiMeshKey **arg2 = 0 ; - aiMeshKey *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - temp2 = (aiMeshKey *)jarg2; - arg2 = (aiMeshKey **)&temp2; - result = (int)std_vector_Sl_aiMeshKey_Sm__Sg__LastIndexOf(arg1,(aiMeshKey *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMeshKeyVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - aiMeshKey **arg2 = 0 ; - aiMeshKey *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - temp2 = (aiMeshKey *)jarg2; - arg2 = (aiMeshKey **)&temp2; - result = (bool)std_vector_Sl_aiMeshKey_Sm__Sg__Remove(arg1,(aiMeshKey *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiMeshKeyVector(void * jarg1) { - std::vector< aiMeshKey * > *arg1 = (std::vector< aiMeshKey * > *) 0 ; - - arg1 = (std::vector< aiMeshKey * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshVector_Clear(void * jarg1) { - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshVector_Add(void * jarg1, void * jarg2) { - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - aiMesh **arg2 = 0 ; - aiMesh *temp2 = 0 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - temp2 = (aiMesh *)jarg2; - arg2 = (aiMesh **)&temp2; - (arg1)->push_back((aiMesh *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiMeshVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - std::vector< aiMesh * >::size_type result; - - arg1 = (std::vector< aiMesh * > *)jarg1; - result = ((std::vector< aiMesh * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiMeshVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - std::vector< aiMesh * >::size_type result; - - arg1 = (std::vector< aiMesh * > *)jarg1; - result = ((std::vector< aiMesh * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - std::vector< aiMesh * >::size_type arg2 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - arg2 = (std::vector< aiMesh * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMeshVector__SWIG_0() { - void * jresult ; - std::vector< aiMesh * > *result = 0 ; - - result = (std::vector< aiMesh * > *)new std::vector< aiMesh * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMeshVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiMesh * > *arg1 = 0 ; - std::vector< aiMesh * > *result = 0 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMesh * > const & type is null", 0); - return 0; - } - result = (std::vector< aiMesh * > *)new std::vector< aiMesh * >((std::vector< aiMesh * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiMeshVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiMesh * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiMesh * > *)new_std_vector_Sl_aiMesh_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMeshVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - int arg2 ; - aiMesh *result = 0 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiMesh *)std_vector_Sl_aiMesh_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMeshVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - int arg2 ; - aiMesh **result = 0 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiMesh **) &std_vector_Sl_aiMesh_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - int arg2 ; - aiMesh **arg3 = 0 ; - aiMesh *temp3 = 0 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiMesh *)jarg3; - arg3 = (aiMesh **)&temp3; - try { - std_vector_Sl_aiMesh_Sm__Sg__setitem(arg1,arg2,(aiMesh *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - std::vector< aiMesh * > *arg2 = 0 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - arg2 = (std::vector< aiMesh * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMesh * > const & type is null", 0); - return ; - } - std_vector_Sl_aiMesh_Sm__Sg__AddRange(arg1,(std::vector< aiMesh * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMeshVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiMesh * > *result = 0 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiMesh * > *)std_vector_Sl_aiMesh_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - int arg2 ; - aiMesh **arg3 = 0 ; - aiMesh *temp3 = 0 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiMesh *)jarg3; - arg3 = (aiMesh **)&temp3; - try { - std_vector_Sl_aiMesh_Sm__Sg__Insert(arg1,arg2,(aiMesh *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - int arg2 ; - std::vector< aiMesh * > *arg3 = 0 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiMesh * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMesh * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiMesh_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiMesh * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiMesh_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiMesh_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiMeshVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiMesh **arg1 = 0 ; - int arg2 ; - aiMesh *temp1 = 0 ; - std::vector< aiMesh * > *result = 0 ; - - temp1 = (aiMesh *)jarg1; - arg1 = (aiMesh **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiMesh * > *)std_vector_Sl_aiMesh_Sm__Sg__Repeat((aiMesh *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - std_vector_Sl_aiMesh_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiMesh_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiMeshVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - int arg2 ; - std::vector< aiMesh * > *arg3 = 0 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiMesh * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiMesh * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiMesh_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiMesh * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMeshVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - aiMesh **arg2 = 0 ; - aiMesh *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiMesh * > *)jarg1; - temp2 = (aiMesh *)jarg2; - arg2 = (aiMesh **)&temp2; - result = (bool)std_vector_Sl_aiMesh_Sm__Sg__Contains(arg1,(aiMesh *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMeshVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - aiMesh **arg2 = 0 ; - aiMesh *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiMesh * > *)jarg1; - temp2 = (aiMesh *)jarg2; - arg2 = (aiMesh **)&temp2; - result = (int)std_vector_Sl_aiMesh_Sm__Sg__IndexOf(arg1,(aiMesh *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiMeshVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - aiMesh **arg2 = 0 ; - aiMesh *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiMesh * > *)jarg1; - temp2 = (aiMesh *)jarg2; - arg2 = (aiMesh **)&temp2; - result = (int)std_vector_Sl_aiMesh_Sm__Sg__LastIndexOf(arg1,(aiMesh *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiMeshVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - aiMesh **arg2 = 0 ; - aiMesh *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiMesh * > *)jarg1; - temp2 = (aiMesh *)jarg2; - arg2 = (aiMesh **)&temp2; - result = (bool)std_vector_Sl_aiMesh_Sm__Sg__Remove(arg1,(aiMesh *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiMeshVector(void * jarg1) { - std::vector< aiMesh * > *arg1 = (std::vector< aiMesh * > *) 0 ; - - arg1 = (std::vector< aiMesh * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeVector_Clear(void * jarg1) { - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeVector_Add(void * jarg1, void * jarg2) { - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - aiNode **arg2 = 0 ; - aiNode *temp2 = 0 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - temp2 = (aiNode *)jarg2; - arg2 = (aiNode **)&temp2; - (arg1)->push_back((aiNode *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiNodeVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - std::vector< aiNode * >::size_type result; - - arg1 = (std::vector< aiNode * > *)jarg1; - result = ((std::vector< aiNode * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiNodeVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - std::vector< aiNode * >::size_type result; - - arg1 = (std::vector< aiNode * > *)jarg1; - result = ((std::vector< aiNode * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - std::vector< aiNode * >::size_type arg2 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - arg2 = (std::vector< aiNode * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiNodeVector__SWIG_0() { - void * jresult ; - std::vector< aiNode * > *result = 0 ; - - result = (std::vector< aiNode * > *)new std::vector< aiNode * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiNodeVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiNode * > *arg1 = 0 ; - std::vector< aiNode * > *result = 0 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiNode * > const & type is null", 0); - return 0; - } - result = (std::vector< aiNode * > *)new std::vector< aiNode * >((std::vector< aiNode * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiNodeVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiNode * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiNode * > *)new_std_vector_Sl_aiNode_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNodeVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - int arg2 ; - aiNode *result = 0 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiNode *)std_vector_Sl_aiNode_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNodeVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - int arg2 ; - aiNode **result = 0 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiNode **) &std_vector_Sl_aiNode_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - int arg2 ; - aiNode **arg3 = 0 ; - aiNode *temp3 = 0 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiNode *)jarg3; - arg3 = (aiNode **)&temp3; - try { - std_vector_Sl_aiNode_Sm__Sg__setitem(arg1,arg2,(aiNode *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - std::vector< aiNode * > *arg2 = 0 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - arg2 = (std::vector< aiNode * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiNode * > const & type is null", 0); - return ; - } - std_vector_Sl_aiNode_Sm__Sg__AddRange(arg1,(std::vector< aiNode * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNodeVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiNode * > *result = 0 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiNode * > *)std_vector_Sl_aiNode_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - int arg2 ; - aiNode **arg3 = 0 ; - aiNode *temp3 = 0 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiNode *)jarg3; - arg3 = (aiNode **)&temp3; - try { - std_vector_Sl_aiNode_Sm__Sg__Insert(arg1,arg2,(aiNode *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - int arg2 ; - std::vector< aiNode * > *arg3 = 0 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiNode * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiNode * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiNode_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiNode * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiNode_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiNode_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNodeVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiNode **arg1 = 0 ; - int arg2 ; - aiNode *temp1 = 0 ; - std::vector< aiNode * > *result = 0 ; - - temp1 = (aiNode *)jarg1; - arg1 = (aiNode **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiNode * > *)std_vector_Sl_aiNode_Sm__Sg__Repeat((aiNode *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - std_vector_Sl_aiNode_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiNode_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - int arg2 ; - std::vector< aiNode * > *arg3 = 0 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiNode * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiNode * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiNode_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiNode * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiNodeVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - aiNode **arg2 = 0 ; - aiNode *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiNode * > *)jarg1; - temp2 = (aiNode *)jarg2; - arg2 = (aiNode **)&temp2; - result = (bool)std_vector_Sl_aiNode_Sm__Sg__Contains(arg1,(aiNode *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiNodeVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - aiNode **arg2 = 0 ; - aiNode *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiNode * > *)jarg1; - temp2 = (aiNode *)jarg2; - arg2 = (aiNode **)&temp2; - result = (int)std_vector_Sl_aiNode_Sm__Sg__IndexOf(arg1,(aiNode *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiNodeVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - aiNode **arg2 = 0 ; - aiNode *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiNode * > *)jarg1; - temp2 = (aiNode *)jarg2; - arg2 = (aiNode **)&temp2; - result = (int)std_vector_Sl_aiNode_Sm__Sg__LastIndexOf(arg1,(aiNode *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiNodeVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - aiNode **arg2 = 0 ; - aiNode *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiNode * > *)jarg1; - temp2 = (aiNode *)jarg2; - arg2 = (aiNode **)&temp2; - result = (bool)std_vector_Sl_aiNode_Sm__Sg__Remove(arg1,(aiNode *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiNodeVector(void * jarg1) { - std::vector< aiNode * > *arg1 = (std::vector< aiNode * > *) 0 ; - - arg1 = (std::vector< aiNode * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnimVector_Clear(void * jarg1) { - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnimVector_Add(void * jarg1, void * jarg2) { - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - aiNodeAnim **arg2 = 0 ; - aiNodeAnim *temp2 = 0 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - temp2 = (aiNodeAnim *)jarg2; - arg2 = (aiNodeAnim **)&temp2; - (arg1)->push_back((aiNodeAnim *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiNodeAnimVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - std::vector< aiNodeAnim * >::size_type result; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - result = ((std::vector< aiNodeAnim * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiNodeAnimVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - std::vector< aiNodeAnim * >::size_type result; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - result = ((std::vector< aiNodeAnim * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnimVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - std::vector< aiNodeAnim * >::size_type arg2 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - arg2 = (std::vector< aiNodeAnim * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiNodeAnimVector__SWIG_0() { - void * jresult ; - std::vector< aiNodeAnim * > *result = 0 ; - - result = (std::vector< aiNodeAnim * > *)new std::vector< aiNodeAnim * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiNodeAnimVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiNodeAnim * > *arg1 = 0 ; - std::vector< aiNodeAnim * > *result = 0 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiNodeAnim * > const & type is null", 0); - return 0; - } - result = (std::vector< aiNodeAnim * > *)new std::vector< aiNodeAnim * >((std::vector< aiNodeAnim * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiNodeAnimVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiNodeAnim * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiNodeAnim * > *)new_std_vector_Sl_aiNodeAnim_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNodeAnimVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - int arg2 ; - aiNodeAnim *result = 0 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiNodeAnim *)std_vector_Sl_aiNodeAnim_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNodeAnimVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - int arg2 ; - aiNodeAnim **result = 0 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiNodeAnim **) &std_vector_Sl_aiNodeAnim_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnimVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - int arg2 ; - aiNodeAnim **arg3 = 0 ; - aiNodeAnim *temp3 = 0 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiNodeAnim *)jarg3; - arg3 = (aiNodeAnim **)&temp3; - try { - std_vector_Sl_aiNodeAnim_Sm__Sg__setitem(arg1,arg2,(aiNodeAnim *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnimVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - std::vector< aiNodeAnim * > *arg2 = 0 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - arg2 = (std::vector< aiNodeAnim * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiNodeAnim * > const & type is null", 0); - return ; - } - std_vector_Sl_aiNodeAnim_Sm__Sg__AddRange(arg1,(std::vector< aiNodeAnim * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNodeAnimVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiNodeAnim * > *result = 0 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiNodeAnim * > *)std_vector_Sl_aiNodeAnim_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnimVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - int arg2 ; - aiNodeAnim **arg3 = 0 ; - aiNodeAnim *temp3 = 0 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiNodeAnim *)jarg3; - arg3 = (aiNodeAnim **)&temp3; - try { - std_vector_Sl_aiNodeAnim_Sm__Sg__Insert(arg1,arg2,(aiNodeAnim *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnimVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - int arg2 ; - std::vector< aiNodeAnim * > *arg3 = 0 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiNodeAnim * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiNodeAnim * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiNodeAnim_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiNodeAnim * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnimVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiNodeAnim_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnimVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiNodeAnim_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiNodeAnimVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiNodeAnim **arg1 = 0 ; - int arg2 ; - aiNodeAnim *temp1 = 0 ; - std::vector< aiNodeAnim * > *result = 0 ; - - temp1 = (aiNodeAnim *)jarg1; - arg1 = (aiNodeAnim **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiNodeAnim * > *)std_vector_Sl_aiNodeAnim_Sm__Sg__Repeat((aiNodeAnim *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnimVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - std_vector_Sl_aiNodeAnim_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnimVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiNodeAnim_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiNodeAnimVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - int arg2 ; - std::vector< aiNodeAnim * > *arg3 = 0 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiNodeAnim * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiNodeAnim * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiNodeAnim_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiNodeAnim * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiNodeAnimVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - aiNodeAnim **arg2 = 0 ; - aiNodeAnim *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - temp2 = (aiNodeAnim *)jarg2; - arg2 = (aiNodeAnim **)&temp2; - result = (bool)std_vector_Sl_aiNodeAnim_Sm__Sg__Contains(arg1,(aiNodeAnim *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiNodeAnimVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - aiNodeAnim **arg2 = 0 ; - aiNodeAnim *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - temp2 = (aiNodeAnim *)jarg2; - arg2 = (aiNodeAnim **)&temp2; - result = (int)std_vector_Sl_aiNodeAnim_Sm__Sg__IndexOf(arg1,(aiNodeAnim *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiNodeAnimVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - aiNodeAnim **arg2 = 0 ; - aiNodeAnim *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - temp2 = (aiNodeAnim *)jarg2; - arg2 = (aiNodeAnim **)&temp2; - result = (int)std_vector_Sl_aiNodeAnim_Sm__Sg__LastIndexOf(arg1,(aiNodeAnim *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiNodeAnimVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - aiNodeAnim **arg2 = 0 ; - aiNodeAnim *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - temp2 = (aiNodeAnim *)jarg2; - arg2 = (aiNodeAnim **)&temp2; - result = (bool)std_vector_Sl_aiNodeAnim_Sm__Sg__Remove(arg1,(aiNodeAnim *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiNodeAnimVector(void * jarg1) { - std::vector< aiNodeAnim * > *arg1 = (std::vector< aiNodeAnim * > *) 0 ; - - arg1 = (std::vector< aiNodeAnim * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuatKeyVector_Clear(void * jarg1) { - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuatKeyVector_Add(void * jarg1, void * jarg2) { - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - aiQuatKey **arg2 = 0 ; - aiQuatKey *temp2 = 0 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - temp2 = (aiQuatKey *)jarg2; - arg2 = (aiQuatKey **)&temp2; - (arg1)->push_back((aiQuatKey *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiQuatKeyVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - std::vector< aiQuatKey * >::size_type result; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - result = ((std::vector< aiQuatKey * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiQuatKeyVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - std::vector< aiQuatKey * >::size_type result; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - result = ((std::vector< aiQuatKey * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuatKeyVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - std::vector< aiQuatKey * >::size_type arg2 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - arg2 = (std::vector< aiQuatKey * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiQuatKeyVector__SWIG_0() { - void * jresult ; - std::vector< aiQuatKey * > *result = 0 ; - - result = (std::vector< aiQuatKey * > *)new std::vector< aiQuatKey * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiQuatKeyVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiQuatKey * > *arg1 = 0 ; - std::vector< aiQuatKey * > *result = 0 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiQuatKey * > const & type is null", 0); - return 0; - } - result = (std::vector< aiQuatKey * > *)new std::vector< aiQuatKey * >((std::vector< aiQuatKey * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiQuatKeyVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiQuatKey * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiQuatKey * > *)new_std_vector_Sl_aiQuatKey_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiQuatKeyVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - int arg2 ; - aiQuatKey *result = 0 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiQuatKey *)std_vector_Sl_aiQuatKey_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiQuatKeyVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - int arg2 ; - aiQuatKey **result = 0 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiQuatKey **) &std_vector_Sl_aiQuatKey_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuatKeyVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - int arg2 ; - aiQuatKey **arg3 = 0 ; - aiQuatKey *temp3 = 0 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiQuatKey *)jarg3; - arg3 = (aiQuatKey **)&temp3; - try { - std_vector_Sl_aiQuatKey_Sm__Sg__setitem(arg1,arg2,(aiQuatKey *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuatKeyVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - std::vector< aiQuatKey * > *arg2 = 0 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - arg2 = (std::vector< aiQuatKey * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiQuatKey * > const & type is null", 0); - return ; - } - std_vector_Sl_aiQuatKey_Sm__Sg__AddRange(arg1,(std::vector< aiQuatKey * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiQuatKeyVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiQuatKey * > *result = 0 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiQuatKey * > *)std_vector_Sl_aiQuatKey_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuatKeyVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - int arg2 ; - aiQuatKey **arg3 = 0 ; - aiQuatKey *temp3 = 0 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiQuatKey *)jarg3; - arg3 = (aiQuatKey **)&temp3; - try { - std_vector_Sl_aiQuatKey_Sm__Sg__Insert(arg1,arg2,(aiQuatKey *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuatKeyVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - int arg2 ; - std::vector< aiQuatKey * > *arg3 = 0 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiQuatKey * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiQuatKey * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiQuatKey_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiQuatKey * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuatKeyVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiQuatKey_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuatKeyVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiQuatKey_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiQuatKeyVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiQuatKey **arg1 = 0 ; - int arg2 ; - aiQuatKey *temp1 = 0 ; - std::vector< aiQuatKey * > *result = 0 ; - - temp1 = (aiQuatKey *)jarg1; - arg1 = (aiQuatKey **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiQuatKey * > *)std_vector_Sl_aiQuatKey_Sm__Sg__Repeat((aiQuatKey *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuatKeyVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - std_vector_Sl_aiQuatKey_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuatKeyVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiQuatKey_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiQuatKeyVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - int arg2 ; - std::vector< aiQuatKey * > *arg3 = 0 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiQuatKey * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiQuatKey * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiQuatKey_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiQuatKey * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiQuatKeyVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - aiQuatKey **arg2 = 0 ; - aiQuatKey *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - temp2 = (aiQuatKey *)jarg2; - arg2 = (aiQuatKey **)&temp2; - result = (bool)std_vector_Sl_aiQuatKey_Sm__Sg__Contains(arg1,(aiQuatKey *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiQuatKeyVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - aiQuatKey **arg2 = 0 ; - aiQuatKey *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - temp2 = (aiQuatKey *)jarg2; - arg2 = (aiQuatKey **)&temp2; - result = (int)std_vector_Sl_aiQuatKey_Sm__Sg__IndexOf(arg1,(aiQuatKey *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiQuatKeyVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - aiQuatKey **arg2 = 0 ; - aiQuatKey *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - temp2 = (aiQuatKey *)jarg2; - arg2 = (aiQuatKey **)&temp2; - result = (int)std_vector_Sl_aiQuatKey_Sm__Sg__LastIndexOf(arg1,(aiQuatKey *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiQuatKeyVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - aiQuatKey **arg2 = 0 ; - aiQuatKey *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - temp2 = (aiQuatKey *)jarg2; - arg2 = (aiQuatKey **)&temp2; - result = (bool)std_vector_Sl_aiQuatKey_Sm__Sg__Remove(arg1,(aiQuatKey *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiQuatKeyVector(void * jarg1) { - std::vector< aiQuatKey * > *arg1 = (std::vector< aiQuatKey * > *) 0 ; - - arg1 = (std::vector< aiQuatKey * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTextureVector_Clear(void * jarg1) { - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTextureVector_Add(void * jarg1, void * jarg2) { - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - aiTexture **arg2 = 0 ; - aiTexture *temp2 = 0 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - temp2 = (aiTexture *)jarg2; - arg2 = (aiTexture **)&temp2; - (arg1)->push_back((aiTexture *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiTextureVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - std::vector< aiTexture * >::size_type result; - - arg1 = (std::vector< aiTexture * > *)jarg1; - result = ((std::vector< aiTexture * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiTextureVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - std::vector< aiTexture * >::size_type result; - - arg1 = (std::vector< aiTexture * > *)jarg1; - result = ((std::vector< aiTexture * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTextureVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - std::vector< aiTexture * >::size_type arg2 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - arg2 = (std::vector< aiTexture * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiTextureVector__SWIG_0() { - void * jresult ; - std::vector< aiTexture * > *result = 0 ; - - result = (std::vector< aiTexture * > *)new std::vector< aiTexture * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiTextureVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiTexture * > *arg1 = 0 ; - std::vector< aiTexture * > *result = 0 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiTexture * > const & type is null", 0); - return 0; - } - result = (std::vector< aiTexture * > *)new std::vector< aiTexture * >((std::vector< aiTexture * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiTextureVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiTexture * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiTexture * > *)new_std_vector_Sl_aiTexture_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiTextureVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - int arg2 ; - aiTexture *result = 0 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiTexture *)std_vector_Sl_aiTexture_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiTextureVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - int arg2 ; - aiTexture **result = 0 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiTexture **) &std_vector_Sl_aiTexture_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTextureVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - int arg2 ; - aiTexture **arg3 = 0 ; - aiTexture *temp3 = 0 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiTexture *)jarg3; - arg3 = (aiTexture **)&temp3; - try { - std_vector_Sl_aiTexture_Sm__Sg__setitem(arg1,arg2,(aiTexture *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTextureVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - std::vector< aiTexture * > *arg2 = 0 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - arg2 = (std::vector< aiTexture * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiTexture * > const & type is null", 0); - return ; - } - std_vector_Sl_aiTexture_Sm__Sg__AddRange(arg1,(std::vector< aiTexture * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiTextureVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiTexture * > *result = 0 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiTexture * > *)std_vector_Sl_aiTexture_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTextureVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - int arg2 ; - aiTexture **arg3 = 0 ; - aiTexture *temp3 = 0 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiTexture *)jarg3; - arg3 = (aiTexture **)&temp3; - try { - std_vector_Sl_aiTexture_Sm__Sg__Insert(arg1,arg2,(aiTexture *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTextureVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - int arg2 ; - std::vector< aiTexture * > *arg3 = 0 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiTexture * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiTexture * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiTexture_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiTexture * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTextureVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiTexture_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTextureVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiTexture_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiTextureVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiTexture **arg1 = 0 ; - int arg2 ; - aiTexture *temp1 = 0 ; - std::vector< aiTexture * > *result = 0 ; - - temp1 = (aiTexture *)jarg1; - arg1 = (aiTexture **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiTexture * > *)std_vector_Sl_aiTexture_Sm__Sg__Repeat((aiTexture *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTextureVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - std_vector_Sl_aiTexture_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTextureVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiTexture_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiTextureVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - int arg2 ; - std::vector< aiTexture * > *arg3 = 0 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiTexture * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiTexture * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiTexture_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiTexture * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiTextureVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - aiTexture **arg2 = 0 ; - aiTexture *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiTexture * > *)jarg1; - temp2 = (aiTexture *)jarg2; - arg2 = (aiTexture **)&temp2; - result = (bool)std_vector_Sl_aiTexture_Sm__Sg__Contains(arg1,(aiTexture *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiTextureVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - aiTexture **arg2 = 0 ; - aiTexture *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiTexture * > *)jarg1; - temp2 = (aiTexture *)jarg2; - arg2 = (aiTexture **)&temp2; - result = (int)std_vector_Sl_aiTexture_Sm__Sg__IndexOf(arg1,(aiTexture *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiTextureVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - aiTexture **arg2 = 0 ; - aiTexture *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiTexture * > *)jarg1; - temp2 = (aiTexture *)jarg2; - arg2 = (aiTexture **)&temp2; - result = (int)std_vector_Sl_aiTexture_Sm__Sg__LastIndexOf(arg1,(aiTexture *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiTextureVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - aiTexture **arg2 = 0 ; - aiTexture *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiTexture * > *)jarg1; - temp2 = (aiTexture *)jarg2; - arg2 = (aiTexture **)&temp2; - result = (bool)std_vector_Sl_aiTexture_Sm__Sg__Remove(arg1,(aiTexture *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiTextureVector(void * jarg1) { - std::vector< aiTexture * > *arg1 = (std::vector< aiTexture * > *) 0 ; - - arg1 = (std::vector< aiTexture * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVector_Clear(void * jarg1) { - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVector_Add(void * jarg1, void * jarg2) { - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - aiVector3t< float > **arg2 = 0 ; - aiVector3t< float > *temp2 = 0 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - temp2 = (aiVector3t< float > *)jarg2; - arg2 = (aiVector3t< float > **)&temp2; - (arg1)->push_back((aiVector3t< float > *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiVector3DVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - std::vector< aiVector3t< float > * >::size_type result; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - result = ((std::vector< aiVector3D * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiVector3DVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - std::vector< aiVector3t< float > * >::size_type result; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - result = ((std::vector< aiVector3D * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - std::vector< aiVector3t< float > * >::size_type arg2 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - arg2 = (std::vector< aiVector3t< float > * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVector3DVector__SWIG_0() { - void * jresult ; - std::vector< aiVector3D * > *result = 0 ; - - result = (std::vector< aiVector3D * > *)new std::vector< aiVector3D * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVector3DVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiVector3D * > *arg1 = 0 ; - std::vector< aiVector3D * > *result = 0 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVector3D * > const & type is null", 0); - return 0; - } - result = (std::vector< aiVector3D * > *)new std::vector< aiVector3D * >((std::vector< aiVector3D * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVector3DVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiVector3D * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiVector3D * > *)new_std_vector_Sl_aiVector3D_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3DVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - int arg2 ; - aiVector3t< float > *result = 0 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiVector3t< float > *)std_vector_Sl_aiVector3D_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3DVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - int arg2 ; - aiVector3t< float > **result = 0 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiVector3t< float > **) &std_vector_Sl_aiVector3D_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - int arg2 ; - aiVector3t< float > **arg3 = 0 ; - aiVector3t< float > *temp3 = 0 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiVector3t< float > *)jarg3; - arg3 = (aiVector3t< float > **)&temp3; - try { - std_vector_Sl_aiVector3D_Sm__Sg__setitem(arg1,arg2,(aiVector3t< float > *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - std::vector< aiVector3t< float > * > *arg2 = 0 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - arg2 = (std::vector< aiVector3t< float > * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVector3t< float > * > const & type is null", 0); - return ; - } - std_vector_Sl_aiVector3D_Sm__Sg__AddRange(arg1,(std::vector< aiVector3t< float > * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3DVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiVector3t< float > * > *result = 0 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiVector3t< float > * > *)std_vector_Sl_aiVector3D_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - int arg2 ; - aiVector3t< float > **arg3 = 0 ; - aiVector3t< float > *temp3 = 0 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiVector3t< float > *)jarg3; - arg3 = (aiVector3t< float > **)&temp3; - try { - std_vector_Sl_aiVector3D_Sm__Sg__Insert(arg1,arg2,(aiVector3t< float > *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - int arg2 ; - std::vector< aiVector3t< float > * > *arg3 = 0 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiVector3t< float > * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVector3t< float > * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiVector3D_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiVector3t< float > * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiVector3D_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiVector3D_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3DVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiVector3t< float > **arg1 = 0 ; - int arg2 ; - aiVector3t< float > *temp1 = 0 ; - std::vector< aiVector3t< float > * > *result = 0 ; - - temp1 = (aiVector3t< float > *)jarg1; - arg1 = (aiVector3t< float > **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiVector3t< float > * > *)std_vector_Sl_aiVector3D_Sm__Sg__Repeat((aiVector3t< float > *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - std_vector_Sl_aiVector3D_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiVector3D_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - int arg2 ; - std::vector< aiVector3t< float > * > *arg3 = 0 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiVector3t< float > * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVector3t< float > * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiVector3D_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiVector3t< float > * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVector3DVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - aiVector3t< float > **arg2 = 0 ; - aiVector3t< float > *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - temp2 = (aiVector3t< float > *)jarg2; - arg2 = (aiVector3t< float > **)&temp2; - result = (bool)std_vector_Sl_aiVector3D_Sm__Sg__Contains(arg1,(aiVector3t< float > *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiVector3DVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - aiVector3t< float > **arg2 = 0 ; - aiVector3t< float > *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - temp2 = (aiVector3t< float > *)jarg2; - arg2 = (aiVector3t< float > **)&temp2; - result = (int)std_vector_Sl_aiVector3D_Sm__Sg__IndexOf(arg1,(aiVector3t< float > *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiVector3DVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - aiVector3t< float > **arg2 = 0 ; - aiVector3t< float > *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - temp2 = (aiVector3t< float > *)jarg2; - arg2 = (aiVector3t< float > **)&temp2; - result = (int)std_vector_Sl_aiVector3D_Sm__Sg__LastIndexOf(arg1,(aiVector3t< float > *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVector3DVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - aiVector3t< float > **arg2 = 0 ; - aiVector3t< float > *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - temp2 = (aiVector3t< float > *)jarg2; - arg2 = (aiVector3t< float > **)&temp2; - result = (bool)std_vector_Sl_aiVector3D_Sm__Sg__Remove(arg1,(aiVector3t< float > *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiVector3DVector(void * jarg1) { - std::vector< aiVector3D * > *arg1 = (std::vector< aiVector3D * > *) 0 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVectorVector_Clear(void * jarg1) { - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVectorVector_Add(void * jarg1, void * jarg2) { - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - std::vector< aiVector3D * > *arg2 = 0 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - arg2 = (std::vector< aiVector3D * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVector3D * > const & type is null", 0); - return ; - } - (arg1)->push_back((std::vector< aiVector3D * > const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiVector3DVectorVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - std::vector< std::vector< aiVector3t< float > * > >::size_type result; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - result = ((std::vector< std::vector< aiVector3D * > > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiVector3DVectorVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - std::vector< std::vector< aiVector3t< float > * > >::size_type result; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - result = ((std::vector< std::vector< aiVector3D * > > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVectorVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - std::vector< std::vector< aiVector3t< float > * > >::size_type arg2 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - arg2 = (std::vector< std::vector< aiVector3t< float > * > >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVector3DVectorVector__SWIG_0() { - void * jresult ; - std::vector< std::vector< aiVector3D * > > *result = 0 ; - - result = (std::vector< std::vector< aiVector3D * > > *)new std::vector< std::vector< aiVector3D * > >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVector3DVectorVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< std::vector< aiVector3D * > > *arg1 = 0 ; - std::vector< std::vector< aiVector3D * > > *result = 0 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< std::vector< aiVector3D * > > const & type is null", 0); - return 0; - } - result = (std::vector< std::vector< aiVector3D * > > *)new std::vector< std::vector< aiVector3D * > >((std::vector< std::vector< aiVector3D * > > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVector3DVectorVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< std::vector< aiVector3D * > > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< std::vector< aiVector3D * > > *)new_std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3DVectorVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - int arg2 ; - std::vector< aiVector3D * > result; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - arg2 = (int)jarg2; - try { - result = std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = new std::vector< aiVector3D * >((const std::vector< aiVector3D * > &)result); - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3DVectorVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - int arg2 ; - std::vector< aiVector3D * > *result = 0 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiVector3D * > *) &std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVectorVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - int arg2 ; - std::vector< aiVector3D * > *arg3 = 0 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiVector3D * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVector3D * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__setitem(arg1,arg2,(std::vector< aiVector3t< float > * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVectorVector_AddRange(void * jarg1, void * jarg2) { - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - std::vector< std::vector< aiVector3D * > > *arg2 = 0 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - arg2 = (std::vector< std::vector< aiVector3D * > > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< std::vector< aiVector3D * > > const & type is null", 0); - return ; - } - std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__AddRange(arg1,(std::vector< std::vector< aiVector3t< float > * > > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3DVectorVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< std::vector< aiVector3D * > > *result = 0 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< std::vector< aiVector3D * > > *)std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVectorVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - int arg2 ; - std::vector< aiVector3D * > *arg3 = 0 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiVector3D * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVector3D * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__Insert(arg1,arg2,(std::vector< aiVector3t< float > * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVectorVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - int arg2 ; - std::vector< std::vector< aiVector3D * > > *arg3 = 0 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< std::vector< aiVector3D * > > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< std::vector< aiVector3D * > > const & type is null", 0); - return ; - } - try { - std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__InsertRange(arg1,arg2,(std::vector< std::vector< aiVector3t< float > * > > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVectorVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - int arg2 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVectorVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVector3DVectorVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiVector3D * > *arg1 = 0 ; - int arg2 ; - std::vector< std::vector< aiVector3D * > > *result = 0 ; - - arg1 = (std::vector< aiVector3D * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVector3D * > const & type is null", 0); - return 0; - } - arg2 = (int)jarg2; - try { - result = (std::vector< std::vector< aiVector3D * > > *)std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__Repeat((std::vector< aiVector3t< float > * > const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVectorVector_Reverse__SWIG_0(void * jarg1) { - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVectorVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVector3DVectorVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - int arg2 ; - std::vector< std::vector< aiVector3D * > > *arg3 = 0 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< std::vector< aiVector3D * > > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< std::vector< aiVector3D * > > const & type is null", 0); - return ; - } - try { - std_vector_Sl_std_vector_Sl_aiVector3D_Sm__Sg__Sg__SetRange(arg1,arg2,(std::vector< std::vector< aiVector3t< float > * > > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiVector3DVectorVector(void * jarg1) { - std::vector< std::vector< aiVector3D * > > *arg1 = (std::vector< std::vector< aiVector3D * > > *) 0 ; - - arg1 = (std::vector< std::vector< aiVector3D * > > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVectorKeyVector_Clear(void * jarg1) { - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVectorKeyVector_Add(void * jarg1, void * jarg2) { - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - aiVectorKey **arg2 = 0 ; - aiVectorKey *temp2 = 0 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - temp2 = (aiVectorKey *)jarg2; - arg2 = (aiVectorKey **)&temp2; - (arg1)->push_back((aiVectorKey *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiVectorKeyVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - std::vector< aiVectorKey * >::size_type result; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - result = ((std::vector< aiVectorKey * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiVectorKeyVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - std::vector< aiVectorKey * >::size_type result; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - result = ((std::vector< aiVectorKey * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVectorKeyVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - std::vector< aiVectorKey * >::size_type arg2 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - arg2 = (std::vector< aiVectorKey * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVectorKeyVector__SWIG_0() { - void * jresult ; - std::vector< aiVectorKey * > *result = 0 ; - - result = (std::vector< aiVectorKey * > *)new std::vector< aiVectorKey * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVectorKeyVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiVectorKey * > *arg1 = 0 ; - std::vector< aiVectorKey * > *result = 0 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVectorKey * > const & type is null", 0); - return 0; - } - result = (std::vector< aiVectorKey * > *)new std::vector< aiVectorKey * >((std::vector< aiVectorKey * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVectorKeyVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiVectorKey * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiVectorKey * > *)new_std_vector_Sl_aiVectorKey_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVectorKeyVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - int arg2 ; - aiVectorKey *result = 0 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiVectorKey *)std_vector_Sl_aiVectorKey_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVectorKeyVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - int arg2 ; - aiVectorKey **result = 0 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiVectorKey **) &std_vector_Sl_aiVectorKey_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVectorKeyVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - int arg2 ; - aiVectorKey **arg3 = 0 ; - aiVectorKey *temp3 = 0 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiVectorKey *)jarg3; - arg3 = (aiVectorKey **)&temp3; - try { - std_vector_Sl_aiVectorKey_Sm__Sg__setitem(arg1,arg2,(aiVectorKey *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVectorKeyVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - std::vector< aiVectorKey * > *arg2 = 0 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - arg2 = (std::vector< aiVectorKey * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVectorKey * > const & type is null", 0); - return ; - } - std_vector_Sl_aiVectorKey_Sm__Sg__AddRange(arg1,(std::vector< aiVectorKey * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVectorKeyVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiVectorKey * > *result = 0 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiVectorKey * > *)std_vector_Sl_aiVectorKey_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVectorKeyVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - int arg2 ; - aiVectorKey **arg3 = 0 ; - aiVectorKey *temp3 = 0 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiVectorKey *)jarg3; - arg3 = (aiVectorKey **)&temp3; - try { - std_vector_Sl_aiVectorKey_Sm__Sg__Insert(arg1,arg2,(aiVectorKey *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVectorKeyVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - int arg2 ; - std::vector< aiVectorKey * > *arg3 = 0 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiVectorKey * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVectorKey * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiVectorKey_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiVectorKey * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVectorKeyVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiVectorKey_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVectorKeyVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiVectorKey_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVectorKeyVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiVectorKey **arg1 = 0 ; - int arg2 ; - aiVectorKey *temp1 = 0 ; - std::vector< aiVectorKey * > *result = 0 ; - - temp1 = (aiVectorKey *)jarg1; - arg1 = (aiVectorKey **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiVectorKey * > *)std_vector_Sl_aiVectorKey_Sm__Sg__Repeat((aiVectorKey *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVectorKeyVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - std_vector_Sl_aiVectorKey_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVectorKeyVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiVectorKey_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVectorKeyVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - int arg2 ; - std::vector< aiVectorKey * > *arg3 = 0 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiVectorKey * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVectorKey * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiVectorKey_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiVectorKey * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVectorKeyVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - aiVectorKey **arg2 = 0 ; - aiVectorKey *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - temp2 = (aiVectorKey *)jarg2; - arg2 = (aiVectorKey **)&temp2; - result = (bool)std_vector_Sl_aiVectorKey_Sm__Sg__Contains(arg1,(aiVectorKey *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiVectorKeyVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - aiVectorKey **arg2 = 0 ; - aiVectorKey *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - temp2 = (aiVectorKey *)jarg2; - arg2 = (aiVectorKey **)&temp2; - result = (int)std_vector_Sl_aiVectorKey_Sm__Sg__IndexOf(arg1,(aiVectorKey *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiVectorKeyVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - aiVectorKey **arg2 = 0 ; - aiVectorKey *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - temp2 = (aiVectorKey *)jarg2; - arg2 = (aiVectorKey **)&temp2; - result = (int)std_vector_Sl_aiVectorKey_Sm__Sg__LastIndexOf(arg1,(aiVectorKey *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVectorKeyVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - aiVectorKey **arg2 = 0 ; - aiVectorKey *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - temp2 = (aiVectorKey *)jarg2; - arg2 = (aiVectorKey **)&temp2; - result = (bool)std_vector_Sl_aiVectorKey_Sm__Sg__Remove(arg1,(aiVectorKey *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiVectorKeyVector(void * jarg1) { - std::vector< aiVectorKey * > *arg1 = (std::vector< aiVectorKey * > *) 0 ; - - arg1 = (std::vector< aiVectorKey * > *)jarg1; - delete arg1; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVertexWeightVector_Clear(void * jarg1) { - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - (arg1)->clear(); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVertexWeightVector_Add(void * jarg1, void * jarg2) { - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - aiVertexWeight **arg2 = 0 ; - aiVertexWeight *temp2 = 0 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - temp2 = (aiVertexWeight *)jarg2; - arg2 = (aiVertexWeight **)&temp2; - (arg1)->push_back((aiVertexWeight *const &)*arg2); -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiVertexWeightVector_size(void * jarg1) { - unsigned long jresult ; - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - std::vector< aiVertexWeight * >::size_type result; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - result = ((std::vector< aiVertexWeight * > const *)arg1)->size(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT unsigned long SWIGSTDCALL CSharp_aiVertexWeightVector_capacity(void * jarg1) { - unsigned long jresult ; - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - std::vector< aiVertexWeight * >::size_type result; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - result = ((std::vector< aiVertexWeight * > const *)arg1)->capacity(); - jresult = (unsigned long)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVertexWeightVector_reserve(void * jarg1, unsigned long jarg2) { - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - std::vector< aiVertexWeight * >::size_type arg2 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - arg2 = (std::vector< aiVertexWeight * >::size_type)jarg2; - (arg1)->reserve(arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVertexWeightVector__SWIG_0() { - void * jresult ; - std::vector< aiVertexWeight * > *result = 0 ; - - result = (std::vector< aiVertexWeight * > *)new std::vector< aiVertexWeight * >(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVertexWeightVector__SWIG_1(void * jarg1) { - void * jresult ; - std::vector< aiVertexWeight * > *arg1 = 0 ; - std::vector< aiVertexWeight * > *result = 0 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - if (!arg1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVertexWeight * > const & type is null", 0); - return 0; - } - result = (std::vector< aiVertexWeight * > *)new std::vector< aiVertexWeight * >((std::vector< aiVertexWeight * > const &)*arg1); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_aiVertexWeightVector__SWIG_2(int jarg1) { - void * jresult ; - int arg1 ; - std::vector< aiVertexWeight * > *result = 0 ; - - arg1 = (int)jarg1; - try { - result = (std::vector< aiVertexWeight * > *)new_std_vector_Sl_aiVertexWeight_Sm__Sg___SWIG_2(arg1); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVertexWeightVector_getitemcopy(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - int arg2 ; - aiVertexWeight *result = 0 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiVertexWeight *)std_vector_Sl_aiVertexWeight_Sm__Sg__getitemcopy(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVertexWeightVector_getitem(void * jarg1, int jarg2) { - void * jresult ; - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - int arg2 ; - aiVertexWeight **result = 0 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - arg2 = (int)jarg2; - try { - result = (aiVertexWeight **) &std_vector_Sl_aiVertexWeight_Sm__Sg__getitem(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)*result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVertexWeightVector_setitem(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - int arg2 ; - aiVertexWeight **arg3 = 0 ; - aiVertexWeight *temp3 = 0 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiVertexWeight *)jarg3; - arg3 = (aiVertexWeight **)&temp3; - try { - std_vector_Sl_aiVertexWeight_Sm__Sg__setitem(arg1,arg2,(aiVertexWeight *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVertexWeightVector_AddRange(void * jarg1, void * jarg2) { - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - std::vector< aiVertexWeight * > *arg2 = 0 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - arg2 = (std::vector< aiVertexWeight * > *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVertexWeight * > const & type is null", 0); - return ; - } - std_vector_Sl_aiVertexWeight_Sm__Sg__AddRange(arg1,(std::vector< aiVertexWeight * > const &)*arg2); -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVertexWeightVector_GetRange(void * jarg1, int jarg2, int jarg3) { - void * jresult ; - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - int arg2 ; - int arg3 ; - std::vector< aiVertexWeight * > *result = 0 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - result = (std::vector< aiVertexWeight * > *)std_vector_Sl_aiVertexWeight_Sm__Sg__GetRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVertexWeightVector_Insert(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - int arg2 ; - aiVertexWeight **arg3 = 0 ; - aiVertexWeight *temp3 = 0 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - arg2 = (int)jarg2; - temp3 = (aiVertexWeight *)jarg3; - arg3 = (aiVertexWeight **)&temp3; - try { - std_vector_Sl_aiVertexWeight_Sm__Sg__Insert(arg1,arg2,(aiVertexWeight *const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVertexWeightVector_InsertRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - int arg2 ; - std::vector< aiVertexWeight * > *arg3 = 0 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiVertexWeight * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVertexWeight * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiVertexWeight_Sm__Sg__InsertRange(arg1,arg2,(std::vector< aiVertexWeight * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVertexWeightVector_RemoveAt(void * jarg1, int jarg2) { - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - int arg2 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - arg2 = (int)jarg2; - try { - std_vector_Sl_aiVertexWeight_Sm__Sg__RemoveAt(arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVertexWeightVector_RemoveRange(void * jarg1, int jarg2, int jarg3) { - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiVertexWeight_Sm__Sg__RemoveRange(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_aiVertexWeightVector_Repeat(void * jarg1, int jarg2) { - void * jresult ; - aiVertexWeight **arg1 = 0 ; - int arg2 ; - aiVertexWeight *temp1 = 0 ; - std::vector< aiVertexWeight * > *result = 0 ; - - temp1 = (aiVertexWeight *)jarg1; - arg1 = (aiVertexWeight **)&temp1; - arg2 = (int)jarg2; - try { - result = (std::vector< aiVertexWeight * > *)std_vector_Sl_aiVertexWeight_Sm__Sg__Repeat((aiVertexWeight *const &)*arg1,arg2); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return 0; - } - - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVertexWeightVector_Reverse__SWIG_0(void * jarg1) { - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - std_vector_Sl_aiVertexWeight_Sm__Sg__Reverse__SWIG_0(arg1); -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVertexWeightVector_Reverse__SWIG_1(void * jarg1, int jarg2, int jarg3) { - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - int arg2 ; - int arg3 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - try { - std_vector_Sl_aiVertexWeight_Sm__Sg__Reverse__SWIG_1(arg1,arg2,arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - catch(std::invalid_argument &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentException, (&_e)->what(), ""); - return ; - } - -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_aiVertexWeightVector_SetRange(void * jarg1, int jarg2, void * jarg3) { - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - int arg2 ; - std::vector< aiVertexWeight * > *arg3 = 0 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - arg2 = (int)jarg2; - arg3 = (std::vector< aiVertexWeight * > *)jarg3; - if (!arg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "std::vector< aiVertexWeight * > const & type is null", 0); - return ; - } - try { - std_vector_Sl_aiVertexWeight_Sm__Sg__SetRange(arg1,arg2,(std::vector< aiVertexWeight * > const &)*arg3); - } - catch(std::out_of_range &_e) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, 0, (&_e)->what()); - return ; - } - -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVertexWeightVector_Contains(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - aiVertexWeight **arg2 = 0 ; - aiVertexWeight *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - temp2 = (aiVertexWeight *)jarg2; - arg2 = (aiVertexWeight **)&temp2; - result = (bool)std_vector_Sl_aiVertexWeight_Sm__Sg__Contains(arg1,(aiVertexWeight *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiVertexWeightVector_IndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - aiVertexWeight **arg2 = 0 ; - aiVertexWeight *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - temp2 = (aiVertexWeight *)jarg2; - arg2 = (aiVertexWeight **)&temp2; - result = (int)std_vector_Sl_aiVertexWeight_Sm__Sg__IndexOf(arg1,(aiVertexWeight *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT int SWIGSTDCALL CSharp_aiVertexWeightVector_LastIndexOf(void * jarg1, void * jarg2) { - int jresult ; - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - aiVertexWeight **arg2 = 0 ; - aiVertexWeight *temp2 = 0 ; - int result; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - temp2 = (aiVertexWeight *)jarg2; - arg2 = (aiVertexWeight **)&temp2; - result = (int)std_vector_Sl_aiVertexWeight_Sm__Sg__LastIndexOf(arg1,(aiVertexWeight *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_aiVertexWeightVector_Remove(void * jarg1, void * jarg2) { - unsigned int jresult ; - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - aiVertexWeight **arg2 = 0 ; - aiVertexWeight *temp2 = 0 ; - bool result; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - temp2 = (aiVertexWeight *)jarg2; - arg2 = (aiVertexWeight **)&temp2; - result = (bool)std_vector_Sl_aiVertexWeight_Sm__Sg__Remove(arg1,(aiVertexWeight *const &)*arg2); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_aiVertexWeightVector(void * jarg1) { - std::vector< aiVertexWeight * > *arg1 = (std::vector< aiVertexWeight * > *) 0 ; - - arg1 = (std::vector< aiVertexWeight * > *)jarg1; - delete arg1; -} - - -#ifdef __cplusplus -} -#endif - diff --git a/port/Assimp.NET/Assimp.NET_CS/Assimp.NET_CS.csproj b/port/Assimp.NET/Assimp.NET_CS/Assimp.NET_CS.csproj deleted file mode 100644 index 68cf68760..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/Assimp.NET_CS.csproj +++ /dev/null @@ -1,176 +0,0 @@ - - - - Debug - AnyCPU - 9.0.21022 - 2.0 - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131} - Library - Properties - Assimp - Assimp.Interop - v3.5 - 512 - - - - - true - full - false - ..\..\..\bin\%24%28ProjectName%29_%24%28ConfigurationName%29_%24%28PlatformName%29\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - - - - - - 3.5 - - - 3.5 - - - 3.5 - - - - - - - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E} - Assimp_NET - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - - - - - - - \ No newline at end of file diff --git a/port/Assimp.NET/Assimp.NET_CS/Assimp.cs b/port/Assimp.NET/Assimp.NET_CS/Assimp.cs deleted file mode 100644 index 26ebf63a4..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/Assimp.cs +++ /dev/null @@ -1,137 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class Assimp { - public static uint MAXLEN { - get { - uint ret = AssimpPINVOKE.MAXLEN_get(); - return ret; - } - } - - public static string aiGetLegalString() { - string ret = AssimpPINVOKE.aiGetLegalString(); - return ret; - } - - public static uint aiGetVersionMinor() { - uint ret = AssimpPINVOKE.aiGetVersionMinor(); - return ret; - } - - public static uint aiGetVersionMajor() { - uint ret = AssimpPINVOKE.aiGetVersionMajor(); - return ret; - } - - public static uint aiGetVersionRevision() { - uint ret = AssimpPINVOKE.aiGetVersionRevision(); - return ret; - } - - public static uint aiGetCompileFlags() { - uint ret = AssimpPINVOKE.aiGetCompileFlags(); - return ret; - } - - public static readonly double AI_MATH_PI = AssimpPINVOKE.AI_MATH_PI_get(); - public static readonly double AI_MATH_TWO_PI = AssimpPINVOKE.AI_MATH_TWO_PI_get(); - public static readonly double AI_MATH_HALF_PI = AssimpPINVOKE.AI_MATH_HALF_PI_get(); - public static readonly double AI_MATH_PI_F = AssimpPINVOKE.AI_MATH_PI_F_get(); - public static readonly double AI_MATH_TWO_PI_F = AssimpPINVOKE.AI_MATH_TWO_PI_F_get(); - public static readonly double AI_MATH_HALF_PI_F = AssimpPINVOKE.AI_MATH_HALF_PI_F_get(); - public static readonly string AI_CONFIG_GLOB_MEASURE_TIME = AssimpPINVOKE.AI_CONFIG_GLOB_MEASURE_TIME_get(); - public static readonly string AI_CONFIG_PP_SBBC_MAX_BONES = AssimpPINVOKE.AI_CONFIG_PP_SBBC_MAX_BONES_get(); - public static readonly int AI_SBBC_DEFAULT_MAX_BONES = AssimpPINVOKE.AI_SBBC_DEFAULT_MAX_BONES_get(); - public static readonly string AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE = AssimpPINVOKE.AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE_get(); - public static readonly string AI_CONFIG_PP_CT_TEXTURE_CHANNEL_INDEX = AssimpPINVOKE.AI_CONFIG_PP_CT_TEXTURE_CHANNEL_INDEX_get(); - public static readonly string AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE = AssimpPINVOKE.AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE_get(); - public static readonly string AI_CONFIG_IMPORT_MDL_COLORMAP = AssimpPINVOKE.AI_CONFIG_IMPORT_MDL_COLORMAP_get(); - public static readonly string AI_CONFIG_PP_RRM_EXCLUDE_LIST = AssimpPINVOKE.AI_CONFIG_PP_RRM_EXCLUDE_LIST_get(); - public static readonly string AI_CONFIG_PP_PTV_KEEP_HIERARCHY = AssimpPINVOKE.AI_CONFIG_PP_PTV_KEEP_HIERARCHY_get(); - public static readonly string AI_CONFIG_PP_PTV_NORMALIZE = AssimpPINVOKE.AI_CONFIG_PP_PTV_NORMALIZE_get(); - public static readonly string AI_CONFIG_PP_FD_REMOVE = AssimpPINVOKE.AI_CONFIG_PP_FD_REMOVE_get(); - public static readonly string AI_CONFIG_PP_OG_EXCLUDE_LIST = AssimpPINVOKE.AI_CONFIG_PP_OG_EXCLUDE_LIST_get(); - public static readonly string AI_CONFIG_PP_SLM_TRIANGLE_LIMIT = AssimpPINVOKE.AI_CONFIG_PP_SLM_TRIANGLE_LIMIT_get(); - public static readonly int AI_SLM_DEFAULT_MAX_TRIANGLES = AssimpPINVOKE.AI_SLM_DEFAULT_MAX_TRIANGLES_get(); - public static readonly string AI_CONFIG_PP_SLM_VERTEX_LIMIT = AssimpPINVOKE.AI_CONFIG_PP_SLM_VERTEX_LIMIT_get(); - public static readonly int AI_SLM_DEFAULT_MAX_VERTICES = AssimpPINVOKE.AI_SLM_DEFAULT_MAX_VERTICES_get(); - public static readonly string AI_CONFIG_PP_LBW_MAX_WEIGHTS = AssimpPINVOKE.AI_CONFIG_PP_LBW_MAX_WEIGHTS_get(); - public static readonly int AI_LMW_MAX_WEIGHTS = AssimpPINVOKE.AI_LMW_MAX_WEIGHTS_get(); - public static readonly string AI_CONFIG_PP_DB_THRESHOLD = AssimpPINVOKE.AI_CONFIG_PP_DB_THRESHOLD_get(); - public static readonly double AI_DEBONE_THRESHOLD = AssimpPINVOKE.AI_DEBONE_THRESHOLD_get(); - public static readonly string AI_CONFIG_PP_DB_ALL_OR_NONE = AssimpPINVOKE.AI_CONFIG_PP_DB_ALL_OR_NONE_get(); - public static readonly int PP_ICL_PTCACHE_SIZE = AssimpPINVOKE.PP_ICL_PTCACHE_SIZE_get(); - public static readonly string AI_CONFIG_PP_ICL_PTCACHE_SIZE = AssimpPINVOKE.AI_CONFIG_PP_ICL_PTCACHE_SIZE_get(); - public static readonly string AI_CONFIG_PP_RVC_FLAGS = AssimpPINVOKE.AI_CONFIG_PP_RVC_FLAGS_get(); - public static readonly string AI_CONFIG_PP_SBP_REMOVE = AssimpPINVOKE.AI_CONFIG_PP_SBP_REMOVE_get(); - public static readonly string AI_CONFIG_PP_FID_ANIM_ACCURACY = AssimpPINVOKE.AI_CONFIG_PP_FID_ANIM_ACCURACY_get(); - public static readonly int AI_UVTRAFO_SCALING = AssimpPINVOKE.AI_UVTRAFO_SCALING_get(); - public static readonly int AI_UVTRAFO_ROTATION = AssimpPINVOKE.AI_UVTRAFO_ROTATION_get(); - public static readonly int AI_UVTRAFO_TRANSLATION = AssimpPINVOKE.AI_UVTRAFO_TRANSLATION_get(); - public static readonly int AI_UVTRAFO_ALL = AssimpPINVOKE.AI_UVTRAFO_ALL_get(); - public static readonly string AI_CONFIG_PP_TUV_EVALUATE = AssimpPINVOKE.AI_CONFIG_PP_TUV_EVALUATE_get(); - public static readonly string AI_CONFIG_FAVOUR_SPEED = AssimpPINVOKE.AI_CONFIG_FAVOUR_SPEED_get(); - public static readonly string AI_CONFIG_IMPORT_GLOBAL_KEYFRAME = AssimpPINVOKE.AI_CONFIG_IMPORT_GLOBAL_KEYFRAME_get(); - public static readonly string AI_CONFIG_IMPORT_MD3_KEYFRAME = AssimpPINVOKE.AI_CONFIG_IMPORT_MD3_KEYFRAME_get(); - public static readonly string AI_CONFIG_IMPORT_MD2_KEYFRAME = AssimpPINVOKE.AI_CONFIG_IMPORT_MD2_KEYFRAME_get(); - public static readonly string AI_CONFIG_IMPORT_MDL_KEYFRAME = AssimpPINVOKE.AI_CONFIG_IMPORT_MDL_KEYFRAME_get(); - public static readonly string AI_CONFIG_IMPORT_MDC_KEYFRAME = AssimpPINVOKE.AI_CONFIG_IMPORT_MDC_KEYFRAME_get(); - public static readonly string AI_CONFIG_IMPORT_SMD_KEYFRAME = AssimpPINVOKE.AI_CONFIG_IMPORT_SMD_KEYFRAME_get(); - public static readonly string AI_CONFIG_IMPORT_UNREAL_KEYFRAME = AssimpPINVOKE.AI_CONFIG_IMPORT_UNREAL_KEYFRAME_get(); - public static readonly string AI_CONFIG_IMPORT_AC_SEPARATE_BFCULL = AssimpPINVOKE.AI_CONFIG_IMPORT_AC_SEPARATE_BFCULL_get(); - public static readonly string AI_CONFIG_IMPORT_AC_EVAL_SUBDIVISION = AssimpPINVOKE.AI_CONFIG_IMPORT_AC_EVAL_SUBDIVISION_get(); - public static readonly string AI_CONFIG_IMPORT_UNREAL_HANDLE_FLAGS = AssimpPINVOKE.AI_CONFIG_IMPORT_UNREAL_HANDLE_FLAGS_get(); - public static readonly string AI_CONFIG_IMPORT_TER_MAKE_UVS = AssimpPINVOKE.AI_CONFIG_IMPORT_TER_MAKE_UVS_get(); - public static readonly string AI_CONFIG_IMPORT_ASE_RECONSTRUCT_NORMALS = AssimpPINVOKE.AI_CONFIG_IMPORT_ASE_RECONSTRUCT_NORMALS_get(); - public static readonly string AI_CONFIG_IMPORT_MD3_HANDLE_MULTIPART = AssimpPINVOKE.AI_CONFIG_IMPORT_MD3_HANDLE_MULTIPART_get(); - public static readonly string AI_CONFIG_IMPORT_MD3_SKIN_NAME = AssimpPINVOKE.AI_CONFIG_IMPORT_MD3_SKIN_NAME_get(); - public static readonly string AI_CONFIG_IMPORT_MD3_SHADER_SRC = AssimpPINVOKE.AI_CONFIG_IMPORT_MD3_SHADER_SRC_get(); - public static readonly string AI_CONFIG_IMPORT_LWO_ONE_LAYER_ONLY = AssimpPINVOKE.AI_CONFIG_IMPORT_LWO_ONE_LAYER_ONLY_get(); - public static readonly string AI_CONFIG_IMPORT_MD5_NO_ANIM_AUTOLOAD = AssimpPINVOKE.AI_CONFIG_IMPORT_MD5_NO_ANIM_AUTOLOAD_get(); - public static readonly string AI_CONFIG_IMPORT_LWS_ANIM_START = AssimpPINVOKE.AI_CONFIG_IMPORT_LWS_ANIM_START_get(); - public static readonly string AI_CONFIG_IMPORT_LWS_ANIM_END = AssimpPINVOKE.AI_CONFIG_IMPORT_LWS_ANIM_END_get(); - public static readonly string AI_CONFIG_IMPORT_IRR_ANIM_FPS = AssimpPINVOKE.AI_CONFIG_IMPORT_IRR_ANIM_FPS_get(); - public static readonly string AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE = AssimpPINVOKE.AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE_get(); - public static readonly string AI_CONFIG_IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME = AssimpPINVOKE.AI_CONFIG_IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME_get(); - public static readonly string AI_CONFIG_IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS = AssimpPINVOKE.AI_CONFIG_IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS_get(); - public static readonly string AI_CONFIG_IMPORT_IFC_SKIP_CURVE_REPRESENTATIONS = AssimpPINVOKE.AI_CONFIG_IMPORT_IFC_SKIP_CURVE_REPRESENTATIONS_get(); - public static readonly string AI_CONFIG_IMPORT_IFC_CUSTOM_TRIANGULATION = AssimpPINVOKE.AI_CONFIG_IMPORT_IFC_CUSTOM_TRIANGULATION_get(); - public static readonly int ASSIMP_CFLAGS_SHARED = AssimpPINVOKE.ASSIMP_CFLAGS_SHARED_get(); - public static readonly int ASSIMP_CFLAGS_STLPORT = AssimpPINVOKE.ASSIMP_CFLAGS_STLPORT_get(); - public static readonly int ASSIMP_CFLAGS_DEBUG = AssimpPINVOKE.ASSIMP_CFLAGS_DEBUG_get(); - public static readonly int ASSIMP_CFLAGS_NOBOOST = AssimpPINVOKE.ASSIMP_CFLAGS_NOBOOST_get(); - public static readonly int ASSIMP_CFLAGS_SINGLETHREADED = AssimpPINVOKE.ASSIMP_CFLAGS_SINGLETHREADED_get(); - public static readonly int AI_MAX_FACE_INDICES = AssimpPINVOKE.AI_MAX_FACE_INDICES_get(); - public static readonly int AI_MAX_BONE_WEIGHTS = AssimpPINVOKE.AI_MAX_BONE_WEIGHTS_get(); - public static readonly int AI_MAX_VERTICES = AssimpPINVOKE.AI_MAX_VERTICES_get(); - public static readonly int AI_MAX_FACES = AssimpPINVOKE.AI_MAX_FACES_get(); - public static readonly int AI_MAX_NUMBER_OF_COLOR_SETS = AssimpPINVOKE.AI_MAX_NUMBER_OF_COLOR_SETS_get(); - public static readonly int AI_MAX_NUMBER_OF_TEXTURECOORDS = AssimpPINVOKE.AI_MAX_NUMBER_OF_TEXTURECOORDS_get(); - public static readonly string AI_DEFAULT_MATERIAL_NAME = AssimpPINVOKE.AI_DEFAULT_MATERIAL_NAME_get(); - public static readonly string _AI_MATKEY_TEXTURE_BASE = AssimpPINVOKE._AI_MATKEY_TEXTURE_BASE_get(); - public static readonly string _AI_MATKEY_UVWSRC_BASE = AssimpPINVOKE._AI_MATKEY_UVWSRC_BASE_get(); - public static readonly string _AI_MATKEY_TEXOP_BASE = AssimpPINVOKE._AI_MATKEY_TEXOP_BASE_get(); - public static readonly string _AI_MATKEY_MAPPING_BASE = AssimpPINVOKE._AI_MATKEY_MAPPING_BASE_get(); - public static readonly string _AI_MATKEY_TEXBLEND_BASE = AssimpPINVOKE._AI_MATKEY_TEXBLEND_BASE_get(); - public static readonly string _AI_MATKEY_MAPPINGMODE_U_BASE = AssimpPINVOKE._AI_MATKEY_MAPPINGMODE_U_BASE_get(); - public static readonly string _AI_MATKEY_MAPPINGMODE_V_BASE = AssimpPINVOKE._AI_MATKEY_MAPPINGMODE_V_BASE_get(); - public static readonly string _AI_MATKEY_TEXMAP_AXIS_BASE = AssimpPINVOKE._AI_MATKEY_TEXMAP_AXIS_BASE_get(); - public static readonly string _AI_MATKEY_UVTRANSFORM_BASE = AssimpPINVOKE._AI_MATKEY_UVTRANSFORM_BASE_get(); - public static readonly string _AI_MATKEY_TEXFLAGS_BASE = AssimpPINVOKE._AI_MATKEY_TEXFLAGS_BASE_get(); - public static readonly int AI_SCENE_FLAGS_INCOMPLETE = AssimpPINVOKE.AI_SCENE_FLAGS_INCOMPLETE_get(); - public static readonly int AI_SCENE_FLAGS_VALIDATED = AssimpPINVOKE.AI_SCENE_FLAGS_VALIDATED_get(); - public static readonly int AI_SCENE_FLAGS_VALIDATION_WARNING = AssimpPINVOKE.AI_SCENE_FLAGS_VALIDATION_WARNING_get(); - public static readonly int AI_SCENE_FLAGS_NON_VERBOSE_FORMAT = AssimpPINVOKE.AI_SCENE_FLAGS_NON_VERBOSE_FORMAT_get(); - public static readonly int AI_SCENE_FLAGS_TERRAIN = AssimpPINVOKE.AI_SCENE_FLAGS_TERRAIN_get(); - public static readonly int AI_PROPERTY_WAS_NOT_EXISTING = AssimpPINVOKE.AI_PROPERTY_WAS_NOT_EXISTING_get(); -} diff --git a/port/Assimp.NET/Assimp.NET_CS/AssimpPINVOKE.cs b/port/Assimp.NET/Assimp.NET_CS/AssimpPINVOKE.cs deleted file mode 100644 index 6fc33db12..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/AssimpPINVOKE.cs +++ /dev/null @@ -1,3976 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -class AssimpPINVOKE { - - protected class SWIGExceptionHelper { - - public delegate void ExceptionDelegate(string message); - public delegate void ExceptionArgumentDelegate(string message, string paramName); - - static ExceptionDelegate applicationDelegate = new ExceptionDelegate(SetPendingApplicationException); - static ExceptionDelegate arithmeticDelegate = new ExceptionDelegate(SetPendingArithmeticException); - static ExceptionDelegate divideByZeroDelegate = new ExceptionDelegate(SetPendingDivideByZeroException); - static ExceptionDelegate indexOutOfRangeDelegate = new ExceptionDelegate(SetPendingIndexOutOfRangeException); - static ExceptionDelegate invalidCastDelegate = new ExceptionDelegate(SetPendingInvalidCastException); - static ExceptionDelegate invalidOperationDelegate = new ExceptionDelegate(SetPendingInvalidOperationException); - static ExceptionDelegate ioDelegate = new ExceptionDelegate(SetPendingIOException); - static ExceptionDelegate nullReferenceDelegate = new ExceptionDelegate(SetPendingNullReferenceException); - static ExceptionDelegate outOfMemoryDelegate = new ExceptionDelegate(SetPendingOutOfMemoryException); - static ExceptionDelegate overflowDelegate = new ExceptionDelegate(SetPendingOverflowException); - static ExceptionDelegate systemDelegate = new ExceptionDelegate(SetPendingSystemException); - - static ExceptionArgumentDelegate argumentDelegate = new ExceptionArgumentDelegate(SetPendingArgumentException); - static ExceptionArgumentDelegate argumentNullDelegate = new ExceptionArgumentDelegate(SetPendingArgumentNullException); - static ExceptionArgumentDelegate argumentOutOfRangeDelegate = new ExceptionArgumentDelegate(SetPendingArgumentOutOfRangeException); - - [DllImport("Assimp", EntryPoint="SWIGRegisterExceptionCallbacks_Assimp")] - public static extern void SWIGRegisterExceptionCallbacks_Assimp( - ExceptionDelegate applicationDelegate, - ExceptionDelegate arithmeticDelegate, - ExceptionDelegate divideByZeroDelegate, - ExceptionDelegate indexOutOfRangeDelegate, - ExceptionDelegate invalidCastDelegate, - ExceptionDelegate invalidOperationDelegate, - ExceptionDelegate ioDelegate, - ExceptionDelegate nullReferenceDelegate, - ExceptionDelegate outOfMemoryDelegate, - ExceptionDelegate overflowDelegate, - ExceptionDelegate systemExceptionDelegate); - - [DllImport("Assimp", EntryPoint="SWIGRegisterExceptionArgumentCallbacks_Assimp")] - public static extern void SWIGRegisterExceptionCallbacksArgument_Assimp( - ExceptionArgumentDelegate argumentDelegate, - ExceptionArgumentDelegate argumentNullDelegate, - ExceptionArgumentDelegate argumentOutOfRangeDelegate); - - static void SetPendingApplicationException(string message) { - SWIGPendingException.Set(new System.ApplicationException(message, SWIGPendingException.Retrieve())); - } - static void SetPendingArithmeticException(string message) { - SWIGPendingException.Set(new System.ArithmeticException(message, SWIGPendingException.Retrieve())); - } - static void SetPendingDivideByZeroException(string message) { - SWIGPendingException.Set(new System.DivideByZeroException(message, SWIGPendingException.Retrieve())); - } - static void SetPendingIndexOutOfRangeException(string message) { - SWIGPendingException.Set(new System.IndexOutOfRangeException(message, SWIGPendingException.Retrieve())); - } - static void SetPendingInvalidCastException(string message) { - SWIGPendingException.Set(new System.InvalidCastException(message, SWIGPendingException.Retrieve())); - } - static void SetPendingInvalidOperationException(string message) { - SWIGPendingException.Set(new System.InvalidOperationException(message, SWIGPendingException.Retrieve())); - } - static void SetPendingIOException(string message) { - SWIGPendingException.Set(new System.IO.IOException(message, SWIGPendingException.Retrieve())); - } - static void SetPendingNullReferenceException(string message) { - SWIGPendingException.Set(new System.NullReferenceException(message, SWIGPendingException.Retrieve())); - } - static void SetPendingOutOfMemoryException(string message) { - SWIGPendingException.Set(new System.OutOfMemoryException(message, SWIGPendingException.Retrieve())); - } - static void SetPendingOverflowException(string message) { - SWIGPendingException.Set(new System.OverflowException(message, SWIGPendingException.Retrieve())); - } - static void SetPendingSystemException(string message) { - SWIGPendingException.Set(new System.SystemException(message, SWIGPendingException.Retrieve())); - } - - static void SetPendingArgumentException(string message, string paramName) { - SWIGPendingException.Set(new System.ArgumentException(message, paramName, SWIGPendingException.Retrieve())); - } - static void SetPendingArgumentNullException(string message, string paramName) { - Exception e = SWIGPendingException.Retrieve(); - if (e != null) message = message + " Inner Exception: " + e.Message; - SWIGPendingException.Set(new System.ArgumentNullException(paramName, message)); - } - static void SetPendingArgumentOutOfRangeException(string message, string paramName) { - Exception e = SWIGPendingException.Retrieve(); - if (e != null) message = message + " Inner Exception: " + e.Message; - SWIGPendingException.Set(new System.ArgumentOutOfRangeException(paramName, message)); - } - - static SWIGExceptionHelper() { - SWIGRegisterExceptionCallbacks_Assimp( - applicationDelegate, - arithmeticDelegate, - divideByZeroDelegate, - indexOutOfRangeDelegate, - invalidCastDelegate, - invalidOperationDelegate, - ioDelegate, - nullReferenceDelegate, - outOfMemoryDelegate, - overflowDelegate, - systemDelegate); - - SWIGRegisterExceptionCallbacksArgument_Assimp( - argumentDelegate, - argumentNullDelegate, - argumentOutOfRangeDelegate); - } - } - - protected static SWIGExceptionHelper swigExceptionHelper = new SWIGExceptionHelper(); - - public class SWIGPendingException { - [ThreadStatic] - private static Exception pendingException = null; - private static int numExceptionsPending = 0; - - public static bool Pending { - get { - bool pending = false; - if (numExceptionsPending > 0) - if (pendingException != null) - pending = true; - return pending; - } - } - - public static void Set(Exception e) { - if (pendingException != null) - throw new ApplicationException("FATAL: An earlier pending exception from unmanaged code was missed and thus not thrown (" + pendingException.ToString() + ")", e); - pendingException = e; - lock(typeof(AssimpPINVOKE)) { - numExceptionsPending++; - } - } - - public static Exception Retrieve() { - Exception e = null; - if (numExceptionsPending > 0) { - if (pendingException != null) { - e = pendingException; - pendingException = null; - lock(typeof(AssimpPINVOKE)) { - numExceptionsPending--; - } - } - } - return e; - } - } - - - protected class SWIGStringHelper { - - public delegate string SWIGStringDelegate(string message); - static SWIGStringDelegate stringDelegate = new SWIGStringDelegate(CreateString); - - [DllImport("Assimp", EntryPoint="SWIGRegisterStringCallback_Assimp")] - public static extern void SWIGRegisterStringCallback_Assimp(SWIGStringDelegate stringDelegate); - - static string CreateString(string cString) { - return cString; - } - - static SWIGStringHelper() { - SWIGRegisterStringCallback_Assimp(stringDelegate); - } - } - - static protected SWIGStringHelper swigStringHelper = new SWIGStringHelper(); - - - static AssimpPINVOKE() { - } - - - [DllImport("Assimp", EntryPoint="CSharp_AI_MATH_PI_get")] - public static extern double AI_MATH_PI_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_MATH_TWO_PI_get")] - public static extern double AI_MATH_TWO_PI_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_MATH_HALF_PI_get")] - public static extern double AI_MATH_HALF_PI_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_MATH_PI_F_get")] - public static extern double AI_MATH_PI_F_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_MATH_TWO_PI_F_get")] - public static extern double AI_MATH_TWO_PI_F_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_MATH_HALF_PI_F_get")] - public static extern double AI_MATH_HALF_PI_F_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_GLOB_MEASURE_TIME_get")] - public static extern string AI_CONFIG_GLOB_MEASURE_TIME_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_SBBC_MAX_BONES_get")] - public static extern string AI_CONFIG_PP_SBBC_MAX_BONES_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_SBBC_DEFAULT_MAX_BONES_get")] - public static extern int AI_SBBC_DEFAULT_MAX_BONES_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE_get")] - public static extern string AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_CT_TEXTURE_CHANNEL_INDEX_get")] - public static extern string AI_CONFIG_PP_CT_TEXTURE_CHANNEL_INDEX_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE_get")] - public static extern string AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_MDL_COLORMAP_get")] - public static extern string AI_CONFIG_IMPORT_MDL_COLORMAP_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_RRM_EXCLUDE_LIST_get")] - public static extern string AI_CONFIG_PP_RRM_EXCLUDE_LIST_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_PTV_KEEP_HIERARCHY_get")] - public static extern string AI_CONFIG_PP_PTV_KEEP_HIERARCHY_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_PTV_NORMALIZE_get")] - public static extern string AI_CONFIG_PP_PTV_NORMALIZE_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_FD_REMOVE_get")] - public static extern string AI_CONFIG_PP_FD_REMOVE_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_OG_EXCLUDE_LIST_get")] - public static extern string AI_CONFIG_PP_OG_EXCLUDE_LIST_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_SLM_TRIANGLE_LIMIT_get")] - public static extern string AI_CONFIG_PP_SLM_TRIANGLE_LIMIT_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_SLM_DEFAULT_MAX_TRIANGLES_get")] - public static extern int AI_SLM_DEFAULT_MAX_TRIANGLES_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_SLM_VERTEX_LIMIT_get")] - public static extern string AI_CONFIG_PP_SLM_VERTEX_LIMIT_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_SLM_DEFAULT_MAX_VERTICES_get")] - public static extern int AI_SLM_DEFAULT_MAX_VERTICES_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_LBW_MAX_WEIGHTS_get")] - public static extern string AI_CONFIG_PP_LBW_MAX_WEIGHTS_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_LMW_MAX_WEIGHTS_get")] - public static extern int AI_LMW_MAX_WEIGHTS_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_DB_THRESHOLD_get")] - public static extern string AI_CONFIG_PP_DB_THRESHOLD_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_DEBONE_THRESHOLD_get")] - public static extern double AI_DEBONE_THRESHOLD_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_DB_ALL_OR_NONE_get")] - public static extern string AI_CONFIG_PP_DB_ALL_OR_NONE_get(); - - [DllImport("Assimp", EntryPoint="CSharp_PP_ICL_PTCACHE_SIZE_get")] - public static extern int PP_ICL_PTCACHE_SIZE_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_ICL_PTCACHE_SIZE_get")] - public static extern string AI_CONFIG_PP_ICL_PTCACHE_SIZE_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_RVC_FLAGS_get")] - public static extern string AI_CONFIG_PP_RVC_FLAGS_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_SBP_REMOVE_get")] - public static extern string AI_CONFIG_PP_SBP_REMOVE_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_FID_ANIM_ACCURACY_get")] - public static extern string AI_CONFIG_PP_FID_ANIM_ACCURACY_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_UVTRAFO_SCALING_get")] - public static extern int AI_UVTRAFO_SCALING_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_UVTRAFO_ROTATION_get")] - public static extern int AI_UVTRAFO_ROTATION_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_UVTRAFO_TRANSLATION_get")] - public static extern int AI_UVTRAFO_TRANSLATION_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_UVTRAFO_ALL_get")] - public static extern int AI_UVTRAFO_ALL_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_PP_TUV_EVALUATE_get")] - public static extern string AI_CONFIG_PP_TUV_EVALUATE_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_FAVOUR_SPEED_get")] - public static extern string AI_CONFIG_FAVOUR_SPEED_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_GLOBAL_KEYFRAME_get")] - public static extern string AI_CONFIG_IMPORT_GLOBAL_KEYFRAME_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_MD3_KEYFRAME_get")] - public static extern string AI_CONFIG_IMPORT_MD3_KEYFRAME_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_MD2_KEYFRAME_get")] - public static extern string AI_CONFIG_IMPORT_MD2_KEYFRAME_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_MDL_KEYFRAME_get")] - public static extern string AI_CONFIG_IMPORT_MDL_KEYFRAME_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_MDC_KEYFRAME_get")] - public static extern string AI_CONFIG_IMPORT_MDC_KEYFRAME_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_SMD_KEYFRAME_get")] - public static extern string AI_CONFIG_IMPORT_SMD_KEYFRAME_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_UNREAL_KEYFRAME_get")] - public static extern string AI_CONFIG_IMPORT_UNREAL_KEYFRAME_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_AC_SEPARATE_BFCULL_get")] - public static extern string AI_CONFIG_IMPORT_AC_SEPARATE_BFCULL_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_AC_EVAL_SUBDIVISION_get")] - public static extern string AI_CONFIG_IMPORT_AC_EVAL_SUBDIVISION_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_UNREAL_HANDLE_FLAGS_get")] - public static extern string AI_CONFIG_IMPORT_UNREAL_HANDLE_FLAGS_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_TER_MAKE_UVS_get")] - public static extern string AI_CONFIG_IMPORT_TER_MAKE_UVS_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_ASE_RECONSTRUCT_NORMALS_get")] - public static extern string AI_CONFIG_IMPORT_ASE_RECONSTRUCT_NORMALS_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_MD3_HANDLE_MULTIPART_get")] - public static extern string AI_CONFIG_IMPORT_MD3_HANDLE_MULTIPART_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_MD3_SKIN_NAME_get")] - public static extern string AI_CONFIG_IMPORT_MD3_SKIN_NAME_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_MD3_SHADER_SRC_get")] - public static extern string AI_CONFIG_IMPORT_MD3_SHADER_SRC_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_LWO_ONE_LAYER_ONLY_get")] - public static extern string AI_CONFIG_IMPORT_LWO_ONE_LAYER_ONLY_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_MD5_NO_ANIM_AUTOLOAD_get")] - public static extern string AI_CONFIG_IMPORT_MD5_NO_ANIM_AUTOLOAD_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_LWS_ANIM_START_get")] - public static extern string AI_CONFIG_IMPORT_LWS_ANIM_START_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_LWS_ANIM_END_get")] - public static extern string AI_CONFIG_IMPORT_LWS_ANIM_END_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_IRR_ANIM_FPS_get")] - public static extern string AI_CONFIG_IMPORT_IRR_ANIM_FPS_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE_get")] - public static extern string AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME_get")] - public static extern string AI_CONFIG_IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS_get")] - public static extern string AI_CONFIG_IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_IFC_SKIP_CURVE_REPRESENTATIONS_get")] - public static extern string AI_CONFIG_IMPORT_IFC_SKIP_CURVE_REPRESENTATIONS_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_CONFIG_IMPORT_IFC_CUSTOM_TRIANGULATION_get")] - public static extern string AI_CONFIG_IMPORT_IFC_CUSTOM_TRIANGULATION_get(); - - [DllImport("Assimp", EntryPoint="CSharp_MAXLEN_get")] - public static extern uint MAXLEN_get(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiPlane__SWIG_0")] - public static extern IntPtr new_aiPlane__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiPlane__SWIG_1")] - public static extern IntPtr new_aiPlane__SWIG_1(float jarg1, float jarg2, float jarg3, float jarg4); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiPlane__SWIG_2")] - public static extern IntPtr new_aiPlane__SWIG_2(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiPlane_a_set")] - public static extern void aiPlane_a_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiPlane_a_get")] - public static extern float aiPlane_a_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiPlane_b_set")] - public static extern void aiPlane_b_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiPlane_b_get")] - public static extern float aiPlane_b_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiPlane_c_set")] - public static extern void aiPlane_c_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiPlane_c_get")] - public static extern float aiPlane_c_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiPlane_d_set")] - public static extern void aiPlane_d_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiPlane_d_get")] - public static extern float aiPlane_d_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiPlane")] - public static extern void delete_aiPlane(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiRay__SWIG_0")] - public static extern IntPtr new_aiRay__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiRay__SWIG_1")] - public static extern IntPtr new_aiRay__SWIG_1(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiRay__SWIG_2")] - public static extern IntPtr new_aiRay__SWIG_2(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiRay_pos_set")] - public static extern void aiRay_pos_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiRay_pos_get")] - public static extern IntPtr aiRay_pos_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiRay_dir_set")] - public static extern void aiRay_dir_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiRay_dir_get")] - public static extern IntPtr aiRay_dir_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiRay")] - public static extern void delete_aiRay(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiColor3D__SWIG_0")] - public static extern IntPtr new_aiColor3D__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiColor3D__SWIG_1")] - public static extern IntPtr new_aiColor3D__SWIG_1(float jarg1, float jarg2, float jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiColor3D__SWIG_2")] - public static extern IntPtr new_aiColor3D__SWIG_2(float jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiColor3D__SWIG_3")] - public static extern IntPtr new_aiColor3D__SWIG_3(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor3D___equal__")] - public static extern bool aiColor3D___equal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor3D___nequal__")] - public static extern bool aiColor3D___nequal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor3D___add__")] - public static extern IntPtr aiColor3D___add__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor3D___sub__")] - public static extern IntPtr aiColor3D___sub__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor3D___mul____SWIG_0")] - public static extern IntPtr aiColor3D___mul____SWIG_0(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor3D___mul____SWIG_1")] - public static extern IntPtr aiColor3D___mul____SWIG_1(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor3D___idx____SWIG_0")] - public static extern float aiColor3D___idx____SWIG_0(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor3D_IsBlack")] - public static extern bool aiColor3D_IsBlack(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor3D_r_set")] - public static extern void aiColor3D_r_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor3D_r_get")] - public static extern float aiColor3D_r_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor3D_g_set")] - public static extern void aiColor3D_g_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor3D_g_get")] - public static extern float aiColor3D_g_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor3D_b_set")] - public static extern void aiColor3D_b_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor3D_b_get")] - public static extern float aiColor3D_b_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiColor3D")] - public static extern void delete_aiColor3D(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiString__SWIG_0")] - public static extern IntPtr new_aiString__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiString__SWIG_1")] - public static extern IntPtr new_aiString__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiString__SWIG_2")] - public static extern IntPtr new_aiString__SWIG_2(string jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiString___set____SWIG_0")] - public static extern IntPtr aiString___set____SWIG_0(HandleRef jarg1, string jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiString___equal__")] - public static extern bool aiString___equal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiString___nequal__")] - public static extern bool aiString___nequal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiString_C_Str")] - public static extern string aiString_C_Str(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiString_Length_set")] - public static extern void aiString_Length_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiString_Length_get")] - public static extern uint aiString_Length_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiString_Data_set")] - public static extern void aiString_Data_set(HandleRef jarg1, string jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiString_Data_get")] - public static extern string aiString_Data_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiString")] - public static extern void delete_aiString(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMemoryInfo")] - public static extern IntPtr new_aiMemoryInfo(); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_textures_set")] - public static extern void aiMemoryInfo_textures_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_textures_get")] - public static extern uint aiMemoryInfo_textures_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_materials_set")] - public static extern void aiMemoryInfo_materials_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_materials_get")] - public static extern uint aiMemoryInfo_materials_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_meshes_set")] - public static extern void aiMemoryInfo_meshes_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_meshes_get")] - public static extern uint aiMemoryInfo_meshes_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_nodes_set")] - public static extern void aiMemoryInfo_nodes_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_nodes_get")] - public static extern uint aiMemoryInfo_nodes_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_animations_set")] - public static extern void aiMemoryInfo_animations_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_animations_get")] - public static extern uint aiMemoryInfo_animations_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_cameras_set")] - public static extern void aiMemoryInfo_cameras_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_cameras_get")] - public static extern uint aiMemoryInfo_cameras_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_lights_set")] - public static extern void aiMemoryInfo_lights_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_lights_get")] - public static extern uint aiMemoryInfo_lights_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_total_set")] - public static extern void aiMemoryInfo_total_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMemoryInfo_total_get")] - public static extern uint aiMemoryInfo_total_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiMemoryInfo")] - public static extern void delete_aiMemoryInfo(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiGetLegalString")] - public static extern string aiGetLegalString(); - - [DllImport("Assimp", EntryPoint="CSharp_aiGetVersionMinor")] - public static extern uint aiGetVersionMinor(); - - [DllImport("Assimp", EntryPoint="CSharp_aiGetVersionMajor")] - public static extern uint aiGetVersionMajor(); - - [DllImport("Assimp", EntryPoint="CSharp_aiGetVersionRevision")] - public static extern uint aiGetVersionRevision(); - - [DllImport("Assimp", EntryPoint="CSharp_ASSIMP_CFLAGS_SHARED_get")] - public static extern int ASSIMP_CFLAGS_SHARED_get(); - - [DllImport("Assimp", EntryPoint="CSharp_ASSIMP_CFLAGS_STLPORT_get")] - public static extern int ASSIMP_CFLAGS_STLPORT_get(); - - [DllImport("Assimp", EntryPoint="CSharp_ASSIMP_CFLAGS_DEBUG_get")] - public static extern int ASSIMP_CFLAGS_DEBUG_get(); - - [DllImport("Assimp", EntryPoint="CSharp_ASSIMP_CFLAGS_NOBOOST_get")] - public static extern int ASSIMP_CFLAGS_NOBOOST_get(); - - [DllImport("Assimp", EntryPoint="CSharp_ASSIMP_CFLAGS_SINGLETHREADED_get")] - public static extern int ASSIMP_CFLAGS_SINGLETHREADED_get(); - - [DllImport("Assimp", EntryPoint="CSharp_aiGetCompileFlags")] - public static extern uint aiGetCompileFlags(); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mName_set")] - public static extern void aiCamera_mName_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mName_get")] - public static extern IntPtr aiCamera_mName_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mPosition_set")] - public static extern void aiCamera_mPosition_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mPosition_get")] - public static extern IntPtr aiCamera_mPosition_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mUp_set")] - public static extern void aiCamera_mUp_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mUp_get")] - public static extern IntPtr aiCamera_mUp_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mLookAt_set")] - public static extern void aiCamera_mLookAt_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mLookAt_get")] - public static extern IntPtr aiCamera_mLookAt_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mHorizontalFOV_set")] - public static extern void aiCamera_mHorizontalFOV_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mHorizontalFOV_get")] - public static extern float aiCamera_mHorizontalFOV_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mClipPlaneNear_set")] - public static extern void aiCamera_mClipPlaneNear_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mClipPlaneNear_get")] - public static extern float aiCamera_mClipPlaneNear_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mClipPlaneFar_set")] - public static extern void aiCamera_mClipPlaneFar_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mClipPlaneFar_get")] - public static extern float aiCamera_mClipPlaneFar_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mAspect_set")] - public static extern void aiCamera_mAspect_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_mAspect_get")] - public static extern float aiCamera_mAspect_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiCamera")] - public static extern IntPtr new_aiCamera(); - - [DllImport("Assimp", EntryPoint="CSharp_aiCamera_GetCameraMatrix")] - public static extern void aiCamera_GetCameraMatrix(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiCamera")] - public static extern void delete_aiCamera(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mName_set")] - public static extern void aiLight_mName_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mName_get")] - public static extern IntPtr aiLight_mName_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mType_set")] - public static extern void aiLight_mType_set(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mType_get")] - public static extern int aiLight_mType_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mPosition_set")] - public static extern void aiLight_mPosition_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mPosition_get")] - public static extern IntPtr aiLight_mPosition_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mDirection_set")] - public static extern void aiLight_mDirection_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mDirection_get")] - public static extern IntPtr aiLight_mDirection_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mAttenuationConstant_set")] - public static extern void aiLight_mAttenuationConstant_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mAttenuationConstant_get")] - public static extern float aiLight_mAttenuationConstant_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mAttenuationLinear_set")] - public static extern void aiLight_mAttenuationLinear_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mAttenuationLinear_get")] - public static extern float aiLight_mAttenuationLinear_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mAttenuationQuadratic_set")] - public static extern void aiLight_mAttenuationQuadratic_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mAttenuationQuadratic_get")] - public static extern float aiLight_mAttenuationQuadratic_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mColorDiffuse_set")] - public static extern void aiLight_mColorDiffuse_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mColorDiffuse_get")] - public static extern IntPtr aiLight_mColorDiffuse_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mColorSpecular_set")] - public static extern void aiLight_mColorSpecular_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mColorSpecular_get")] - public static extern IntPtr aiLight_mColorSpecular_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mColorAmbient_set")] - public static extern void aiLight_mColorAmbient_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mColorAmbient_get")] - public static extern IntPtr aiLight_mColorAmbient_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mAngleInnerCone_set")] - public static extern void aiLight_mAngleInnerCone_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mAngleInnerCone_get")] - public static extern float aiLight_mAngleInnerCone_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mAngleOuterCone_set")] - public static extern void aiLight_mAngleOuterCone_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLight_mAngleOuterCone_get")] - public static extern float aiLight_mAngleOuterCone_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiLight")] - public static extern IntPtr new_aiLight(); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiLight")] - public static extern void delete_aiLight(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKey_mTime_set")] - public static extern void aiVectorKey_mTime_set(HandleRef jarg1, double jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKey_mTime_get")] - public static extern double aiVectorKey_mTime_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKey_mValue_set")] - public static extern void aiVectorKey_mValue_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKey_mValue_get")] - public static extern IntPtr aiVectorKey_mValue_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVectorKey__SWIG_0")] - public static extern IntPtr new_aiVectorKey__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVectorKey__SWIG_1")] - public static extern IntPtr new_aiVectorKey__SWIG_1(double jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKey___equal__")] - public static extern bool aiVectorKey___equal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKey___nequal__")] - public static extern bool aiVectorKey___nequal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKey___smaller__")] - public static extern bool aiVectorKey___smaller__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKey___greater__")] - public static extern bool aiVectorKey___greater__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiVectorKey")] - public static extern void delete_aiVectorKey(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKey_mTime_set")] - public static extern void aiQuatKey_mTime_set(HandleRef jarg1, double jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKey_mTime_get")] - public static extern double aiQuatKey_mTime_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKey_mValue_set")] - public static extern void aiQuatKey_mValue_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKey_mValue_get")] - public static extern IntPtr aiQuatKey_mValue_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiQuatKey__SWIG_0")] - public static extern IntPtr new_aiQuatKey__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiQuatKey__SWIG_1")] - public static extern IntPtr new_aiQuatKey__SWIG_1(double jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKey___equal__")] - public static extern bool aiQuatKey___equal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKey___nequal__")] - public static extern bool aiQuatKey___nequal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKey___smaller__")] - public static extern bool aiQuatKey___smaller__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKey___greater__")] - public static extern bool aiQuatKey___greater__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiQuatKey")] - public static extern void delete_aiQuatKey(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKey_mTime_set")] - public static extern void aiMeshKey_mTime_set(HandleRef jarg1, double jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKey_mTime_get")] - public static extern double aiMeshKey_mTime_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKey_mValue_set")] - public static extern void aiMeshKey_mValue_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKey_mValue_get")] - public static extern uint aiMeshKey_mValue_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMeshKey__SWIG_0")] - public static extern IntPtr new_aiMeshKey__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMeshKey__SWIG_1")] - public static extern IntPtr new_aiMeshKey__SWIG_1(double jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKey___equal__")] - public static extern bool aiMeshKey___equal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKey___nequal__")] - public static extern bool aiMeshKey___nequal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKey___smaller__")] - public static extern bool aiMeshKey___smaller__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKey___greater__")] - public static extern bool aiMeshKey___greater__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiMeshKey")] - public static extern void delete_aiMeshKey(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_mNodeName_set")] - public static extern void aiNodeAnim_mNodeName_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_mNodeName_get")] - public static extern IntPtr aiNodeAnim_mNodeName_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_mNumPositionKeys_set")] - public static extern void aiNodeAnim_mNumPositionKeys_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_mNumPositionKeys_get")] - public static extern uint aiNodeAnim_mNumPositionKeys_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_mNumRotationKeys_set")] - public static extern void aiNodeAnim_mNumRotationKeys_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_mNumRotationKeys_get")] - public static extern uint aiNodeAnim_mNumRotationKeys_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_mNumScalingKeys_set")] - public static extern void aiNodeAnim_mNumScalingKeys_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_mNumScalingKeys_get")] - public static extern uint aiNodeAnim_mNumScalingKeys_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_mPreState_set")] - public static extern void aiNodeAnim_mPreState_set(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_mPreState_get")] - public static extern int aiNodeAnim_mPreState_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_mPostState_set")] - public static extern void aiNodeAnim_mPostState_set(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_mPostState_get")] - public static extern int aiNodeAnim_mPostState_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiNodeAnim")] - public static extern IntPtr new_aiNodeAnim(); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiNodeAnim")] - public static extern void delete_aiNodeAnim(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_GetmPositionKeys")] - public static extern IntPtr aiNodeAnim_GetmPositionKeys(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_GetmRotationKeys")] - public static extern IntPtr aiNodeAnim_GetmRotationKeys(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnim_GetmScalingKeys")] - public static extern IntPtr aiNodeAnim_GetmScalingKeys(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnim_mName_set")] - public static extern void aiMeshAnim_mName_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnim_mName_get")] - public static extern IntPtr aiMeshAnim_mName_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnim_mNumKeys_set")] - public static extern void aiMeshAnim_mNumKeys_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnim_mNumKeys_get")] - public static extern uint aiMeshAnim_mNumKeys_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMeshAnim")] - public static extern IntPtr new_aiMeshAnim(); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiMeshAnim")] - public static extern void delete_aiMeshAnim(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnim_GetmKeys")] - public static extern IntPtr aiMeshAnim_GetmKeys(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimation_mName_set")] - public static extern void aiAnimation_mName_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimation_mName_get")] - public static extern IntPtr aiAnimation_mName_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimation_mDuration_set")] - public static extern void aiAnimation_mDuration_set(HandleRef jarg1, double jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimation_mDuration_get")] - public static extern double aiAnimation_mDuration_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimation_mTicksPerSecond_set")] - public static extern void aiAnimation_mTicksPerSecond_set(HandleRef jarg1, double jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimation_mTicksPerSecond_get")] - public static extern double aiAnimation_mTicksPerSecond_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimation_mNumChannels_set")] - public static extern void aiAnimation_mNumChannels_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimation_mNumChannels_get")] - public static extern uint aiAnimation_mNumChannels_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimation_mNumMeshChannels_set")] - public static extern void aiAnimation_mNumMeshChannels_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimation_mNumMeshChannels_get")] - public static extern uint aiAnimation_mNumMeshChannels_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiAnimation")] - public static extern IntPtr new_aiAnimation(); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiAnimation")] - public static extern void delete_aiAnimation(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimation_GetmChannels")] - public static extern IntPtr aiAnimation_GetmChannels(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimation_GetmMeshChannels")] - public static extern IntPtr aiAnimation_GetmMeshChannels(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_AI_MAX_FACE_INDICES_get")] - public static extern int AI_MAX_FACE_INDICES_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_MAX_BONE_WEIGHTS_get")] - public static extern int AI_MAX_BONE_WEIGHTS_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_MAX_VERTICES_get")] - public static extern int AI_MAX_VERTICES_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_MAX_FACES_get")] - public static extern int AI_MAX_FACES_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_MAX_NUMBER_OF_COLOR_SETS_get")] - public static extern int AI_MAX_NUMBER_OF_COLOR_SETS_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_MAX_NUMBER_OF_TEXTURECOORDS_get")] - public static extern int AI_MAX_NUMBER_OF_TEXTURECOORDS_get(); - - [DllImport("Assimp", EntryPoint="CSharp_aiFace_mNumIndices_set")] - public static extern void aiFace_mNumIndices_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiFace_mNumIndices_get")] - public static extern uint aiFace_mNumIndices_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiFace__SWIG_0")] - public static extern IntPtr new_aiFace__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiFace")] - public static extern void delete_aiFace(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiFace__SWIG_1")] - public static extern IntPtr new_aiFace__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiFace___set__")] - public static extern IntPtr aiFace___set__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiFace___equal__")] - public static extern bool aiFace___equal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiFace___nequal__")] - public static extern bool aiFace___nequal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiFace_GetmIndices")] - public static extern IntPtr aiFace_GetmIndices(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeight_mVertexId_set")] - public static extern void aiVertexWeight_mVertexId_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeight_mVertexId_get")] - public static extern uint aiVertexWeight_mVertexId_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeight_mWeight_set")] - public static extern void aiVertexWeight_mWeight_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeight_mWeight_get")] - public static extern float aiVertexWeight_mWeight_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVertexWeight__SWIG_0")] - public static extern IntPtr new_aiVertexWeight__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVertexWeight__SWIG_1")] - public static extern IntPtr new_aiVertexWeight__SWIG_1(uint jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiVertexWeight")] - public static extern void delete_aiVertexWeight(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiBone_mName_set")] - public static extern void aiBone_mName_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiBone_mName_get")] - public static extern IntPtr aiBone_mName_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiBone_mNumWeights_set")] - public static extern void aiBone_mNumWeights_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiBone_mNumWeights_get")] - public static extern uint aiBone_mNumWeights_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiBone_mOffsetMatrix_set")] - public static extern void aiBone_mOffsetMatrix_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiBone_mOffsetMatrix_get")] - public static extern IntPtr aiBone_mOffsetMatrix_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiBone__SWIG_0")] - public static extern IntPtr new_aiBone__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiBone__SWIG_1")] - public static extern IntPtr new_aiBone__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiBone")] - public static extern void delete_aiBone(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiBone_GetmWeights")] - public static extern IntPtr aiBone_GetmWeights(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMesh_mBitangents_set")] - public static extern void aiAnimMesh_mBitangents_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMesh_mBitangents_get")] - public static extern IntPtr aiAnimMesh_mBitangents_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMesh_mNumVertices_set")] - public static extern void aiAnimMesh_mNumVertices_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMesh_mNumVertices_get")] - public static extern uint aiAnimMesh_mNumVertices_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiAnimMesh")] - public static extern IntPtr new_aiAnimMesh(); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiAnimMesh")] - public static extern void delete_aiAnimMesh(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMesh_HasPositions")] - public static extern bool aiAnimMesh_HasPositions(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMesh_HasNormals")] - public static extern bool aiAnimMesh_HasNormals(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMesh_HasTangentsAndBitangents")] - public static extern bool aiAnimMesh_HasTangentsAndBitangents(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMesh_HasVertexColors")] - public static extern bool aiAnimMesh_HasVertexColors(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMesh_HasTextureCoords")] - public static extern bool aiAnimMesh_HasTextureCoords(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_mPrimitiveTypes_set")] - public static extern void aiMesh_mPrimitiveTypes_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_mPrimitiveTypes_get")] - public static extern uint aiMesh_mPrimitiveTypes_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_mNumVertices_set")] - public static extern void aiMesh_mNumVertices_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_mNumVertices_get")] - public static extern uint aiMesh_mNumVertices_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_mNumFaces_set")] - public static extern void aiMesh_mNumFaces_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_mNumFaces_get")] - public static extern uint aiMesh_mNumFaces_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_mNumBones_set")] - public static extern void aiMesh_mNumBones_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_mNumBones_get")] - public static extern uint aiMesh_mNumBones_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_mMaterialIndex_set")] - public static extern void aiMesh_mMaterialIndex_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_mMaterialIndex_get")] - public static extern uint aiMesh_mMaterialIndex_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_mName_set")] - public static extern void aiMesh_mName_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_mName_get")] - public static extern IntPtr aiMesh_mName_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_mNumAnimMeshes_set")] - public static extern void aiMesh_mNumAnimMeshes_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_mNumAnimMeshes_get")] - public static extern uint aiMesh_mNumAnimMeshes_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMesh")] - public static extern IntPtr new_aiMesh(); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiMesh")] - public static extern void delete_aiMesh(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_HasPositions")] - public static extern bool aiMesh_HasPositions(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_HasFaces")] - public static extern bool aiMesh_HasFaces(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_HasNormals")] - public static extern bool aiMesh_HasNormals(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_HasTangentsAndBitangents")] - public static extern bool aiMesh_HasTangentsAndBitangents(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_HasVertexColors")] - public static extern bool aiMesh_HasVertexColors(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_HasTextureCoords")] - public static extern bool aiMesh_HasTextureCoords(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_GetNumUVChannels")] - public static extern uint aiMesh_GetNumUVChannels(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_GetNumColorChannels")] - public static extern uint aiMesh_GetNumColorChannels(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_HasBones")] - public static extern bool aiMesh_HasBones(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_GetmAnimMeshes")] - public static extern IntPtr aiMesh_GetmAnimMeshes(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_GetmBitangents")] - public static extern IntPtr aiMesh_GetmBitangents(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_GetmBones")] - public static extern IntPtr aiMesh_GetmBones(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_GetmColors")] - public static extern IntPtr aiMesh_GetmColors(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_GetmFaces")] - public static extern IntPtr aiMesh_GetmFaces(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_GetmNormals")] - public static extern IntPtr aiMesh_GetmNormals(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_GetmTangents")] - public static extern IntPtr aiMesh_GetmTangents(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_GetmTextureCoords")] - public static extern IntPtr aiMesh_GetmTextureCoords(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_GetmNumUVComponents")] - public static extern IntPtr aiMesh_GetmNumUVComponents(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMesh_GetmVertices")] - public static extern IntPtr aiMesh_GetmVertices(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_AI_DEFAULT_MATERIAL_NAME_get")] - public static extern string AI_DEFAULT_MATERIAL_NAME_get(); - - [DllImport("Assimp", EntryPoint="CSharp_aiUVTransform_mTranslation_set")] - public static extern void aiUVTransform_mTranslation_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiUVTransform_mTranslation_get")] - public static extern IntPtr aiUVTransform_mTranslation_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiUVTransform_mScaling_set")] - public static extern void aiUVTransform_mScaling_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiUVTransform_mScaling_get")] - public static extern IntPtr aiUVTransform_mScaling_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiUVTransform_mRotation_set")] - public static extern void aiUVTransform_mRotation_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiUVTransform_mRotation_get")] - public static extern float aiUVTransform_mRotation_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiUVTransform")] - public static extern IntPtr new_aiUVTransform(); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiUVTransform")] - public static extern void delete_aiUVTransform(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialProperty_mKey_set")] - public static extern void aiMaterialProperty_mKey_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialProperty_mKey_get")] - public static extern IntPtr aiMaterialProperty_mKey_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialProperty_mSemantic_set")] - public static extern void aiMaterialProperty_mSemantic_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialProperty_mSemantic_get")] - public static extern uint aiMaterialProperty_mSemantic_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialProperty_mIndex_set")] - public static extern void aiMaterialProperty_mIndex_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialProperty_mIndex_get")] - public static extern uint aiMaterialProperty_mIndex_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialProperty_mDataLength_set")] - public static extern void aiMaterialProperty_mDataLength_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialProperty_mDataLength_get")] - public static extern uint aiMaterialProperty_mDataLength_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialProperty_mType_set")] - public static extern void aiMaterialProperty_mType_set(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialProperty_mType_get")] - public static extern int aiMaterialProperty_mType_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialProperty_mData_set")] - public static extern void aiMaterialProperty_mData_set(HandleRef jarg1, string jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialProperty_mData_get")] - public static extern string aiMaterialProperty_mData_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMaterialProperty")] - public static extern IntPtr new_aiMaterialProperty(); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiMaterialProperty")] - public static extern void delete_aiMaterialProperty(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMaterial")] - public static extern IntPtr new_aiMaterial(); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiMaterial")] - public static extern void delete_aiMaterial(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetTextureCount")] - public static extern uint aiMaterial_GetTextureCount(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_AddBinaryProperty")] - public static extern int aiMaterial_AddBinaryProperty(HandleRef jarg1, HandleRef jarg2, uint jarg3, string jarg4, uint jarg5, uint jarg6, int jarg7); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_AddProperty__SWIG_0")] - public static extern int aiMaterial_AddProperty__SWIG_0(HandleRef jarg1, HandleRef jarg2, string jarg3, uint jarg4, uint jarg5); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_AddProperty__SWIG_1")] - public static extern int aiMaterial_AddProperty__SWIG_1(HandleRef jarg1, HandleRef jarg2, string jarg3, uint jarg4); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_AddProperty__SWIG_2")] - public static extern int aiMaterial_AddProperty__SWIG_2(HandleRef jarg1, HandleRef jarg2, string jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_RemoveProperty__SWIG_0")] - public static extern int aiMaterial_RemoveProperty__SWIG_0(HandleRef jarg1, string jarg2, uint jarg3, uint jarg4); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_RemoveProperty__SWIG_1")] - public static extern int aiMaterial_RemoveProperty__SWIG_1(HandleRef jarg1, string jarg2, uint jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_RemoveProperty__SWIG_2")] - public static extern int aiMaterial_RemoveProperty__SWIG_2(HandleRef jarg1, string jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_Clear")] - public static extern void aiMaterial_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_CopyPropertyList")] - public static extern void aiMaterial_CopyPropertyList(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetDiffuse")] - public static extern bool aiMaterial_GetDiffuse(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetSpecular")] - public static extern bool aiMaterial_GetSpecular(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetAmbient")] - public static extern bool aiMaterial_GetAmbient(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetEmissive")] - public static extern bool aiMaterial_GetEmissive(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetOpacity")] - public static extern bool aiMaterial_GetOpacity(HandleRef jarg1, ref float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetShininessStrength")] - public static extern bool aiMaterial_GetShininessStrength(HandleRef jarg1, ref float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetShadingModel")] - public static extern bool aiMaterial_GetShadingModel(HandleRef jarg1, ref int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetTexFlagsDiffuse0")] - public static extern bool aiMaterial_GetTexFlagsDiffuse0(HandleRef jarg1, ref int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetMappingModeUDiffuse0")] - public static extern bool aiMaterial_GetMappingModeUDiffuse0(HandleRef jarg1, ref int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetMappingModeVDiffuse0")] - public static extern bool aiMaterial_GetMappingModeVDiffuse0(HandleRef jarg1, ref int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetTextureDiffuse0")] - public static extern bool aiMaterial_GetTextureDiffuse0(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetTextureSpecular0")] - public static extern bool aiMaterial_GetTextureSpecular0(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetTextureOpacity0")] - public static extern bool aiMaterial_GetTextureOpacity0(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetTextureAmbient0")] - public static extern bool aiMaterial_GetTextureAmbient0(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetTextureEmissive0")] - public static extern bool aiMaterial_GetTextureEmissive0(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetTextureShininess0")] - public static extern bool aiMaterial_GetTextureShininess0(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetTextureLightmap0")] - public static extern bool aiMaterial_GetTextureLightmap0(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetTextureNormals0")] - public static extern bool aiMaterial_GetTextureNormals0(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetTextureHeight0")] - public static extern bool aiMaterial_GetTextureHeight0(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetGlobalBackgroundImage")] - public static extern bool aiMaterial_GetGlobalBackgroundImage(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterial_GetTwoSided")] - public static extern bool aiMaterial_GetTwoSided(HandleRef jarg1, ref int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp__AI_MATKEY_TEXTURE_BASE_get")] - public static extern string _AI_MATKEY_TEXTURE_BASE_get(); - - [DllImport("Assimp", EntryPoint="CSharp__AI_MATKEY_UVWSRC_BASE_get")] - public static extern string _AI_MATKEY_UVWSRC_BASE_get(); - - [DllImport("Assimp", EntryPoint="CSharp__AI_MATKEY_TEXOP_BASE_get")] - public static extern string _AI_MATKEY_TEXOP_BASE_get(); - - [DllImport("Assimp", EntryPoint="CSharp__AI_MATKEY_MAPPING_BASE_get")] - public static extern string _AI_MATKEY_MAPPING_BASE_get(); - - [DllImport("Assimp", EntryPoint="CSharp__AI_MATKEY_TEXBLEND_BASE_get")] - public static extern string _AI_MATKEY_TEXBLEND_BASE_get(); - - [DllImport("Assimp", EntryPoint="CSharp__AI_MATKEY_MAPPINGMODE_U_BASE_get")] - public static extern string _AI_MATKEY_MAPPINGMODE_U_BASE_get(); - - [DllImport("Assimp", EntryPoint="CSharp__AI_MATKEY_MAPPINGMODE_V_BASE_get")] - public static extern string _AI_MATKEY_MAPPINGMODE_V_BASE_get(); - - [DllImport("Assimp", EntryPoint="CSharp__AI_MATKEY_TEXMAP_AXIS_BASE_get")] - public static extern string _AI_MATKEY_TEXMAP_AXIS_BASE_get(); - - [DllImport("Assimp", EntryPoint="CSharp__AI_MATKEY_UVTRANSFORM_BASE_get")] - public static extern string _AI_MATKEY_UVTRANSFORM_BASE_get(); - - [DllImport("Assimp", EntryPoint="CSharp__AI_MATKEY_TEXFLAGS_BASE_get")] - public static extern string _AI_MATKEY_TEXFLAGS_BASE_get(); - - [DllImport("Assimp", EntryPoint="CSharp_aiNode_mName_set")] - public static extern void aiNode_mName_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNode_mName_get")] - public static extern IntPtr aiNode_mName_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNode_mTransformation_set")] - public static extern void aiNode_mTransformation_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNode_mTransformation_get")] - public static extern IntPtr aiNode_mTransformation_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNode_mParent_set")] - public static extern void aiNode_mParent_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNode_mParent_get")] - public static extern IntPtr aiNode_mParent_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNode_mNumChildren_set")] - public static extern void aiNode_mNumChildren_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNode_mNumChildren_get")] - public static extern uint aiNode_mNumChildren_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNode_mNumMeshes_set")] - public static extern void aiNode_mNumMeshes_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNode_mNumMeshes_get")] - public static extern uint aiNode_mNumMeshes_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiNode__SWIG_0")] - public static extern IntPtr new_aiNode__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiNode__SWIG_1")] - public static extern IntPtr new_aiNode__SWIG_1(string jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiNode")] - public static extern void delete_aiNode(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNode_FindNode__SWIG_0")] - public static extern IntPtr aiNode_FindNode__SWIG_0(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNode_FindNode__SWIG_1")] - public static extern IntPtr aiNode_FindNode__SWIG_1(HandleRef jarg1, string jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNode_GetmChildren")] - public static extern IntPtr aiNode_GetmChildren(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNode_GetmMeshes")] - public static extern IntPtr aiNode_GetmMeshes(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_AI_SCENE_FLAGS_INCOMPLETE_get")] - public static extern int AI_SCENE_FLAGS_INCOMPLETE_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_SCENE_FLAGS_VALIDATED_get")] - public static extern int AI_SCENE_FLAGS_VALIDATED_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_SCENE_FLAGS_VALIDATION_WARNING_get")] - public static extern int AI_SCENE_FLAGS_VALIDATION_WARNING_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_SCENE_FLAGS_NON_VERBOSE_FORMAT_get")] - public static extern int AI_SCENE_FLAGS_NON_VERBOSE_FORMAT_get(); - - [DllImport("Assimp", EntryPoint="CSharp_AI_SCENE_FLAGS_TERRAIN_get")] - public static extern int AI_SCENE_FLAGS_TERRAIN_get(); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mFlags_set")] - public static extern void aiScene_mFlags_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mFlags_get")] - public static extern uint aiScene_mFlags_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mRootNode_set")] - public static extern void aiScene_mRootNode_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mRootNode_get")] - public static extern IntPtr aiScene_mRootNode_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mNumMeshes_set")] - public static extern void aiScene_mNumMeshes_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mNumMeshes_get")] - public static extern uint aiScene_mNumMeshes_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mNumMaterials_set")] - public static extern void aiScene_mNumMaterials_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mNumMaterials_get")] - public static extern uint aiScene_mNumMaterials_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mNumAnimations_set")] - public static extern void aiScene_mNumAnimations_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mNumAnimations_get")] - public static extern uint aiScene_mNumAnimations_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mNumTextures_set")] - public static extern void aiScene_mNumTextures_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mNumTextures_get")] - public static extern uint aiScene_mNumTextures_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mNumLights_set")] - public static extern void aiScene_mNumLights_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mNumLights_get")] - public static extern uint aiScene_mNumLights_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mNumCameras_set")] - public static extern void aiScene_mNumCameras_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mNumCameras_get")] - public static extern uint aiScene_mNumCameras_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiScene")] - public static extern IntPtr new_aiScene(); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiScene")] - public static extern void delete_aiScene(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_HasMeshes")] - public static extern bool aiScene_HasMeshes(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_HasMaterials")] - public static extern bool aiScene_HasMaterials(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_HasLights")] - public static extern bool aiScene_HasLights(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_HasTextures")] - public static extern bool aiScene_HasTextures(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_HasCameras")] - public static extern bool aiScene_HasCameras(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_HasAnimations")] - public static extern bool aiScene_HasAnimations(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mPrivate_set")] - public static extern void aiScene_mPrivate_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_mPrivate_get")] - public static extern IntPtr aiScene_mPrivate_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_GetmAnimations")] - public static extern IntPtr aiScene_GetmAnimations(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_GetmCameras")] - public static extern IntPtr aiScene_GetmCameras(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_GetmLights")] - public static extern IntPtr aiScene_GetmLights(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_GetmMaterials")] - public static extern IntPtr aiScene_GetmMaterials(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_GetmMeshes")] - public static extern IntPtr aiScene_GetmMeshes(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiScene_GetmTextures")] - public static extern IntPtr aiScene_GetmTextures(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexel_b_set")] - public static extern void aiTexel_b_set(HandleRef jarg1, byte jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexel_b_get")] - public static extern byte aiTexel_b_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexel_g_set")] - public static extern void aiTexel_g_set(HandleRef jarg1, byte jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexel_g_get")] - public static extern byte aiTexel_g_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexel_r_set")] - public static extern void aiTexel_r_set(HandleRef jarg1, byte jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexel_r_get")] - public static extern byte aiTexel_r_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexel_a_set")] - public static extern void aiTexel_a_set(HandleRef jarg1, byte jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexel_a_get")] - public static extern byte aiTexel_a_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexel___equal__")] - public static extern bool aiTexel___equal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexel___nequal__")] - public static extern bool aiTexel___nequal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiTexel")] - public static extern IntPtr new_aiTexel(); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiTexel")] - public static extern void delete_aiTexel(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexture_mWidth_set")] - public static extern void aiTexture_mWidth_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexture_mWidth_get")] - public static extern uint aiTexture_mWidth_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexture_mHeight_set")] - public static extern void aiTexture_mHeight_set(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexture_mHeight_get")] - public static extern uint aiTexture_mHeight_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexture_achFormatHint_set")] - public static extern void aiTexture_achFormatHint_set(HandleRef jarg1, string jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexture_achFormatHint_get")] - public static extern string aiTexture_achFormatHint_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexture_pcData_set")] - public static extern void aiTexture_pcData_set(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexture_pcData_get")] - public static extern IntPtr aiTexture_pcData_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTexture_CheckFormat")] - public static extern bool aiTexture_CheckFormat(HandleRef jarg1, string jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiTexture")] - public static extern IntPtr new_aiTexture(); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiTexture")] - public static extern void delete_aiTexture(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_AI_PROPERTY_WAS_NOT_EXISTING_get")] - public static extern int AI_PROPERTY_WAS_NOT_EXISTING_get(); - - [DllImport("Assimp", EntryPoint="CSharp_new_Importer__SWIG_0")] - public static extern IntPtr new_Importer__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_Importer__SWIG_1")] - public static extern IntPtr new_Importer__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_Importer")] - public static extern void delete_Importer(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetPropertyInteger__SWIG_0")] - public static extern int Importer_GetPropertyInteger__SWIG_0(HandleRef jarg1, string jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetPropertyInteger__SWIG_1")] - public static extern int Importer_GetPropertyInteger__SWIG_1(HandleRef jarg1, string jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetPropertyBool__SWIG_0")] - public static extern bool Importer_GetPropertyBool__SWIG_0(HandleRef jarg1, string jarg2, bool jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetPropertyBool__SWIG_1")] - public static extern bool Importer_GetPropertyBool__SWIG_1(HandleRef jarg1, string jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetPropertyFloat__SWIG_0")] - public static extern float Importer_GetPropertyFloat__SWIG_0(HandleRef jarg1, string jarg2, float jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetPropertyFloat__SWIG_1")] - public static extern float Importer_GetPropertyFloat__SWIG_1(HandleRef jarg1, string jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetPropertyString__SWIG_0")] - public static extern string Importer_GetPropertyString__SWIG_0(HandleRef jarg1, string jarg2, string jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetPropertyString__SWIG_1")] - public static extern string Importer_GetPropertyString__SWIG_1(HandleRef jarg1, string jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_IsDefaultIOHandler")] - public static extern bool Importer_IsDefaultIOHandler(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_SetProgressHandler")] - public static extern void Importer_SetProgressHandler(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetProgressHandler")] - public static extern IntPtr Importer_GetProgressHandler(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_IsDefaultProgressHandler")] - public static extern bool Importer_IsDefaultProgressHandler(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_ValidateFlags")] - public static extern bool Importer_ValidateFlags(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_ReadFile__SWIG_0")] - public static extern IntPtr Importer_ReadFile__SWIG_0(HandleRef jarg1, string jarg2, uint jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_FreeScene")] - public static extern void Importer_FreeScene(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetErrorString")] - public static extern string Importer_GetErrorString(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetScene")] - public static extern IntPtr Importer_GetScene(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetOrphanedScene")] - public static extern IntPtr Importer_GetOrphanedScene(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_IsExtensionSupported__SWIG_0")] - public static extern bool Importer_IsExtensionSupported__SWIG_0(HandleRef jarg1, string jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetExtensionList__SWIG_0")] - public static extern void Importer_GetExtensionList__SWIG_0(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetExtensionList__SWIG_1")] - public static extern void Importer_GetExtensionList__SWIG_1(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetImporterCount")] - public static extern uint Importer_GetImporterCount(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetImporterInfo")] - public static extern IntPtr Importer_GetImporterInfo(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetImporter__SWIG_0")] - public static extern IntPtr Importer_GetImporter__SWIG_0(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetImporter__SWIG_1")] - public static extern IntPtr Importer_GetImporter__SWIG_1(HandleRef jarg1, string jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetImporterIndex")] - public static extern uint Importer_GetImporterIndex(HandleRef jarg1, string jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetMemoryRequirements")] - public static extern void Importer_GetMemoryRequirements(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_SetExtraVerbose")] - public static extern void Importer_SetExtraVerbose(HandleRef jarg1, bool jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_Pimpl__SWIG_0")] - public static extern IntPtr Importer_Pimpl__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_Importer_GetExtensionList__SWIG_2")] - public static extern string Importer_GetExtensionList__SWIG_2(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_ProgressHandler")] - public static extern void delete_ProgressHandler(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_ProgressHandler_Update__SWIG_0")] - public static extern bool ProgressHandler_Update__SWIG_0(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_ProgressHandler_Update__SWIG_1")] - public static extern bool ProgressHandler_Update__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiColor4D__SWIG_0")] - public static extern IntPtr new_aiColor4D__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiColor4D__SWIG_1")] - public static extern IntPtr new_aiColor4D__SWIG_1(float jarg1, float jarg2, float jarg3, float jarg4); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiColor4D__SWIG_2")] - public static extern IntPtr new_aiColor4D__SWIG_2(float jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiColor4D__SWIG_3")] - public static extern IntPtr new_aiColor4D__SWIG_3(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D___addnset__")] - public static extern IntPtr aiColor4D___addnset__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D___subnset__")] - public static extern IntPtr aiColor4D___subnset__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D___mulnset__")] - public static extern IntPtr aiColor4D___mulnset__(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D___divnset__")] - public static extern IntPtr aiColor4D___divnset__(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D___equal__")] - public static extern bool aiColor4D___equal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D___nequal__")] - public static extern bool aiColor4D___nequal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D___idx____SWIG_0")] - public static extern float aiColor4D___idx____SWIG_0(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D_IsBlack")] - public static extern bool aiColor4D_IsBlack(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D_r_set")] - public static extern void aiColor4D_r_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D_r_get")] - public static extern float aiColor4D_r_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D_g_set")] - public static extern void aiColor4D_g_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D_g_get")] - public static extern float aiColor4D_g_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D_b_set")] - public static extern void aiColor4D_b_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D_b_get")] - public static extern float aiColor4D_b_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D_a_set")] - public static extern void aiColor4D_a_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4D_a_get")] - public static extern float aiColor4D_a_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiColor4D")] - public static extern void delete_aiColor4D(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVector3D__SWIG_0")] - public static extern IntPtr new_aiVector3D__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVector3D__SWIG_1")] - public static extern IntPtr new_aiVector3D__SWIG_1(float jarg1, float jarg2, float jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVector3D__SWIG_2")] - public static extern IntPtr new_aiVector3D__SWIG_2(float jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVector3D__SWIG_3")] - public static extern IntPtr new_aiVector3D__SWIG_3(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D___addnset__")] - public static extern IntPtr aiVector3D___addnset__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D___subnset__")] - public static extern IntPtr aiVector3D___subnset__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D___mulnset____SWIG_0")] - public static extern IntPtr aiVector3D___mulnset____SWIG_0(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D___divnset__")] - public static extern IntPtr aiVector3D___divnset__(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D___mulnset____SWIG_1")] - public static extern IntPtr aiVector3D___mulnset____SWIG_1(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D___mulnset____SWIG_2")] - public static extern IntPtr aiVector3D___mulnset____SWIG_2(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D___idx____SWIG_0")] - public static extern float aiVector3D___idx____SWIG_0(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D___equal__")] - public static extern bool aiVector3D___equal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D___nequal__")] - public static extern bool aiVector3D___nequal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D_Set")] - public static extern void aiVector3D_Set(HandleRef jarg1, float jarg2, float jarg3, float jarg4); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D_SquareLength")] - public static extern float aiVector3D_SquareLength(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D_Length")] - public static extern float aiVector3D_Length(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D_Normalize")] - public static extern IntPtr aiVector3D_Normalize(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D_SymMul")] - public static extern IntPtr aiVector3D_SymMul(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D_x_set")] - public static extern void aiVector3D_x_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D_x_get")] - public static extern float aiVector3D_x_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D_y_set")] - public static extern void aiVector3D_y_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D_y_get")] - public static extern float aiVector3D_y_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D_z_set")] - public static extern void aiVector3D_z_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3D_z_get")] - public static extern float aiVector3D_z_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiVector3D")] - public static extern void delete_aiVector3D(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVector2D__SWIG_0")] - public static extern IntPtr new_aiVector2D__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVector2D__SWIG_1")] - public static extern IntPtr new_aiVector2D__SWIG_1(float jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVector2D__SWIG_2")] - public static extern IntPtr new_aiVector2D__SWIG_2(float jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVector2D__SWIG_3")] - public static extern IntPtr new_aiVector2D__SWIG_3(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D_Set")] - public static extern void aiVector2D_Set(HandleRef jarg1, float jarg2, float jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D_SquareLength")] - public static extern float aiVector2D_SquareLength(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D_Length")] - public static extern float aiVector2D_Length(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D_Normalize")] - public static extern IntPtr aiVector2D_Normalize(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D___addnset__")] - public static extern IntPtr aiVector2D___addnset__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D___subnset__")] - public static extern IntPtr aiVector2D___subnset__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D___mulnset__")] - public static extern IntPtr aiVector2D___mulnset__(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D___divnset__")] - public static extern IntPtr aiVector2D___divnset__(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D___idx____SWIG_0")] - public static extern float aiVector2D___idx____SWIG_0(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D___equal__")] - public static extern bool aiVector2D___equal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D___nequal__")] - public static extern bool aiVector2D___nequal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D___set__")] - public static extern IntPtr aiVector2D___set__(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D_SymMul")] - public static extern IntPtr aiVector2D_SymMul(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D_x_set")] - public static extern void aiVector2D_x_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D_x_get")] - public static extern float aiVector2D_x_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D_y_set")] - public static extern void aiVector2D_y_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector2D_y_get")] - public static extern float aiVector2D_y_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiVector2D")] - public static extern void delete_aiVector2D(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiQuaternion__SWIG_0")] - public static extern IntPtr new_aiQuaternion__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiQuaternion__SWIG_1")] - public static extern IntPtr new_aiQuaternion__SWIG_1(float jarg1, float jarg2, float jarg3, float jarg4); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiQuaternion__SWIG_2")] - public static extern IntPtr new_aiQuaternion__SWIG_2(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiQuaternion__SWIG_3")] - public static extern IntPtr new_aiQuaternion__SWIG_3(float jarg1, float jarg2, float jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiQuaternion__SWIG_4")] - public static extern IntPtr new_aiQuaternion__SWIG_4(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiQuaternion__SWIG_5")] - public static extern IntPtr new_aiQuaternion__SWIG_5(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion_GetMatrix")] - public static extern IntPtr aiQuaternion_GetMatrix(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion___equal__")] - public static extern bool aiQuaternion___equal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion___nequal__")] - public static extern bool aiQuaternion___nequal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion_Normalize")] - public static extern IntPtr aiQuaternion_Normalize(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion_Conjugate")] - public static extern IntPtr aiQuaternion_Conjugate(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion_Rotate")] - public static extern IntPtr aiQuaternion_Rotate(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion___mul__")] - public static extern IntPtr aiQuaternion___mul__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion_Interpolate")] - public static extern void aiQuaternion_Interpolate(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3, float jarg4); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion_w_set")] - public static extern void aiQuaternion_w_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion_w_get")] - public static extern float aiQuaternion_w_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion_x_set")] - public static extern void aiQuaternion_x_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion_x_get")] - public static extern float aiQuaternion_x_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion_y_set")] - public static extern void aiQuaternion_y_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion_y_get")] - public static extern float aiQuaternion_y_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion_z_set")] - public static extern void aiQuaternion_z_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuaternion_z_get")] - public static extern float aiQuaternion_z_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiQuaternion")] - public static extern void delete_aiQuaternion(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMatrix3x3__SWIG_0")] - public static extern IntPtr new_aiMatrix3x3__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMatrix3x3__SWIG_1")] - public static extern IntPtr new_aiMatrix3x3__SWIG_1(float jarg1, float jarg2, float jarg3, float jarg4, float jarg5, float jarg6, float jarg7, float jarg8, float jarg9); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3___mulnset__")] - public static extern IntPtr aiMatrix3x3___mulnset__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3___mul__")] - public static extern IntPtr aiMatrix3x3___mul__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3___idx____SWIG_0")] - public static extern IntPtr aiMatrix3x3___idx____SWIG_0(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3___equal__")] - public static extern bool aiMatrix3x3___equal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3___nequal__")] - public static extern bool aiMatrix3x3___nequal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMatrix3x3__SWIG_2")] - public static extern IntPtr new_aiMatrix3x3__SWIG_2(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_Transpose")] - public static extern IntPtr aiMatrix3x3_Transpose(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_Inverse")] - public static extern IntPtr aiMatrix3x3_Inverse(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_Determinant")] - public static extern float aiMatrix3x3_Determinant(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_RotationZ")] - public static extern IntPtr aiMatrix3x3_RotationZ(float jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_Rotation")] - public static extern IntPtr aiMatrix3x3_Rotation(float jarg1, HandleRef jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_Translation")] - public static extern IntPtr aiMatrix3x3_Translation(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_FromToMatrix")] - public static extern IntPtr aiMatrix3x3_FromToMatrix(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_a1_set")] - public static extern void aiMatrix3x3_a1_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_a1_get")] - public static extern float aiMatrix3x3_a1_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_a2_set")] - public static extern void aiMatrix3x3_a2_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_a2_get")] - public static extern float aiMatrix3x3_a2_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_a3_set")] - public static extern void aiMatrix3x3_a3_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_a3_get")] - public static extern float aiMatrix3x3_a3_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_b1_set")] - public static extern void aiMatrix3x3_b1_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_b1_get")] - public static extern float aiMatrix3x3_b1_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_b2_set")] - public static extern void aiMatrix3x3_b2_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_b2_get")] - public static extern float aiMatrix3x3_b2_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_b3_set")] - public static extern void aiMatrix3x3_b3_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_b3_get")] - public static extern float aiMatrix3x3_b3_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_c1_set")] - public static extern void aiMatrix3x3_c1_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_c1_get")] - public static extern float aiMatrix3x3_c1_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_c2_set")] - public static extern void aiMatrix3x3_c2_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_c2_get")] - public static extern float aiMatrix3x3_c2_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_c3_set")] - public static extern void aiMatrix3x3_c3_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix3x3_c3_get")] - public static extern float aiMatrix3x3_c3_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiMatrix3x3")] - public static extern void delete_aiMatrix3x3(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMatrix4x4__SWIG_0")] - public static extern IntPtr new_aiMatrix4x4__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMatrix4x4__SWIG_1")] - public static extern IntPtr new_aiMatrix4x4__SWIG_1(float jarg1, float jarg2, float jarg3, float jarg4, float jarg5, float jarg6, float jarg7, float jarg8, float jarg9, float jarg10, float jarg11, float jarg12, float jarg13, float jarg14, float jarg15, float jarg16); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMatrix4x4__SWIG_2")] - public static extern IntPtr new_aiMatrix4x4__SWIG_2(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4___idx____SWIG_0")] - public static extern IntPtr aiMatrix4x4___idx____SWIG_0(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4___equal__")] - public static extern bool aiMatrix4x4___equal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4___nequal__")] - public static extern bool aiMatrix4x4___nequal__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4___mulnset__")] - public static extern IntPtr aiMatrix4x4___mulnset__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4___mul__")] - public static extern IntPtr aiMatrix4x4___mul__(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_Transpose")] - public static extern IntPtr aiMatrix4x4_Transpose(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_Inverse")] - public static extern IntPtr aiMatrix4x4_Inverse(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_Determinant")] - public static extern float aiMatrix4x4_Determinant(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_IsIdentity")] - public static extern bool aiMatrix4x4_IsIdentity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_Decompose")] - public static extern void aiMatrix4x4_Decompose(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3, HandleRef jarg4); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_DecomposeNoScaling")] - public static extern void aiMatrix4x4_DecomposeNoScaling(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_FromEulerAnglesXYZ__SWIG_0")] - public static extern IntPtr aiMatrix4x4_FromEulerAnglesXYZ__SWIG_0(HandleRef jarg1, float jarg2, float jarg3, float jarg4); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_FromEulerAnglesXYZ__SWIG_1")] - public static extern IntPtr aiMatrix4x4_FromEulerAnglesXYZ__SWIG_1(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_RotationX")] - public static extern IntPtr aiMatrix4x4_RotationX(float jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_RotationY")] - public static extern IntPtr aiMatrix4x4_RotationY(float jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_RotationZ")] - public static extern IntPtr aiMatrix4x4_RotationZ(float jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_Rotation")] - public static extern IntPtr aiMatrix4x4_Rotation(float jarg1, HandleRef jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_Translation")] - public static extern IntPtr aiMatrix4x4_Translation(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_Scaling")] - public static extern IntPtr aiMatrix4x4_Scaling(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_FromToMatrix")] - public static extern IntPtr aiMatrix4x4_FromToMatrix(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_a1_set")] - public static extern void aiMatrix4x4_a1_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_a1_get")] - public static extern float aiMatrix4x4_a1_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_a2_set")] - public static extern void aiMatrix4x4_a2_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_a2_get")] - public static extern float aiMatrix4x4_a2_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_a3_set")] - public static extern void aiMatrix4x4_a3_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_a3_get")] - public static extern float aiMatrix4x4_a3_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_a4_set")] - public static extern void aiMatrix4x4_a4_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_a4_get")] - public static extern float aiMatrix4x4_a4_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_b1_set")] - public static extern void aiMatrix4x4_b1_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_b1_get")] - public static extern float aiMatrix4x4_b1_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_b2_set")] - public static extern void aiMatrix4x4_b2_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_b2_get")] - public static extern float aiMatrix4x4_b2_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_b3_set")] - public static extern void aiMatrix4x4_b3_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_b3_get")] - public static extern float aiMatrix4x4_b3_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_b4_set")] - public static extern void aiMatrix4x4_b4_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_b4_get")] - public static extern float aiMatrix4x4_b4_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_c1_set")] - public static extern void aiMatrix4x4_c1_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_c1_get")] - public static extern float aiMatrix4x4_c1_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_c2_set")] - public static extern void aiMatrix4x4_c2_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_c2_get")] - public static extern float aiMatrix4x4_c2_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_c3_set")] - public static extern void aiMatrix4x4_c3_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_c3_get")] - public static extern float aiMatrix4x4_c3_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_c4_set")] - public static extern void aiMatrix4x4_c4_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_c4_get")] - public static extern float aiMatrix4x4_c4_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_d1_set")] - public static extern void aiMatrix4x4_d1_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_d1_get")] - public static extern float aiMatrix4x4_d1_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_d2_set")] - public static extern void aiMatrix4x4_d2_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_d2_get")] - public static extern float aiMatrix4x4_d2_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_d3_set")] - public static extern void aiMatrix4x4_d3_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_d3_get")] - public static extern float aiMatrix4x4_d3_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_d4_set")] - public static extern void aiMatrix4x4_d4_set(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMatrix4x4_d4_get")] - public static extern float aiMatrix4x4_d4_get(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiMatrix4x4")] - public static extern void delete_aiMatrix4x4(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_Clear")] - public static extern void FloatVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_Add")] - public static extern void FloatVector_Add(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_size")] - public static extern uint FloatVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_capacity")] - public static extern uint FloatVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_reserve")] - public static extern void FloatVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_FloatVector__SWIG_0")] - public static extern IntPtr new_FloatVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_FloatVector__SWIG_1")] - public static extern IntPtr new_FloatVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_FloatVector__SWIG_2")] - public static extern IntPtr new_FloatVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_getitemcopy")] - public static extern float FloatVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_getitem")] - public static extern float FloatVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_setitem")] - public static extern void FloatVector_setitem(HandleRef jarg1, int jarg2, float jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_AddRange")] - public static extern void FloatVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_GetRange")] - public static extern IntPtr FloatVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_Insert")] - public static extern void FloatVector_Insert(HandleRef jarg1, int jarg2, float jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_InsertRange")] - public static extern void FloatVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_RemoveAt")] - public static extern void FloatVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_RemoveRange")] - public static extern void FloatVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_Repeat")] - public static extern IntPtr FloatVector_Repeat(float jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_Reverse__SWIG_0")] - public static extern void FloatVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_Reverse__SWIG_1")] - public static extern void FloatVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_SetRange")] - public static extern void FloatVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_Contains")] - public static extern bool FloatVector_Contains(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_IndexOf")] - public static extern int FloatVector_IndexOf(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_LastIndexOf")] - public static extern int FloatVector_LastIndexOf(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_FloatVector_Remove")] - public static extern bool FloatVector_Remove(HandleRef jarg1, float jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_FloatVector")] - public static extern void delete_FloatVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_Clear")] - public static extern void UintVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_Add")] - public static extern void UintVector_Add(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_size")] - public static extern uint UintVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_capacity")] - public static extern uint UintVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_reserve")] - public static extern void UintVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_UintVector__SWIG_0")] - public static extern IntPtr new_UintVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_UintVector__SWIG_1")] - public static extern IntPtr new_UintVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_UintVector__SWIG_2")] - public static extern IntPtr new_UintVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_getitemcopy")] - public static extern uint UintVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_getitem")] - public static extern uint UintVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_setitem")] - public static extern void UintVector_setitem(HandleRef jarg1, int jarg2, uint jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_AddRange")] - public static extern void UintVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_GetRange")] - public static extern IntPtr UintVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_Insert")] - public static extern void UintVector_Insert(HandleRef jarg1, int jarg2, uint jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_InsertRange")] - public static extern void UintVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_RemoveAt")] - public static extern void UintVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_RemoveRange")] - public static extern void UintVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_Repeat")] - public static extern IntPtr UintVector_Repeat(uint jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_Reverse__SWIG_0")] - public static extern void UintVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_Reverse__SWIG_1")] - public static extern void UintVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_SetRange")] - public static extern void UintVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_Contains")] - public static extern bool UintVector_Contains(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_IndexOf")] - public static extern int UintVector_IndexOf(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_LastIndexOf")] - public static extern int UintVector_LastIndexOf(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_UintVector_Remove")] - public static extern bool UintVector_Remove(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_UintVector")] - public static extern void delete_UintVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_Clear")] - public static extern void aiAnimationVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_Add")] - public static extern void aiAnimationVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_size")] - public static extern uint aiAnimationVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_capacity")] - public static extern uint aiAnimationVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_reserve")] - public static extern void aiAnimationVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiAnimationVector__SWIG_0")] - public static extern IntPtr new_aiAnimationVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiAnimationVector__SWIG_1")] - public static extern IntPtr new_aiAnimationVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiAnimationVector__SWIG_2")] - public static extern IntPtr new_aiAnimationVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_getitemcopy")] - public static extern IntPtr aiAnimationVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_getitem")] - public static extern IntPtr aiAnimationVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_setitem")] - public static extern void aiAnimationVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_AddRange")] - public static extern void aiAnimationVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_GetRange")] - public static extern IntPtr aiAnimationVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_Insert")] - public static extern void aiAnimationVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_InsertRange")] - public static extern void aiAnimationVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_RemoveAt")] - public static extern void aiAnimationVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_RemoveRange")] - public static extern void aiAnimationVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_Repeat")] - public static extern IntPtr aiAnimationVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_Reverse__SWIG_0")] - public static extern void aiAnimationVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_Reverse__SWIG_1")] - public static extern void aiAnimationVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_SetRange")] - public static extern void aiAnimationVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_Contains")] - public static extern bool aiAnimationVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_IndexOf")] - public static extern int aiAnimationVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_LastIndexOf")] - public static extern int aiAnimationVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimationVector_Remove")] - public static extern bool aiAnimationVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiAnimationVector")] - public static extern void delete_aiAnimationVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_Clear")] - public static extern void aiAnimMeshVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_Add")] - public static extern void aiAnimMeshVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_size")] - public static extern uint aiAnimMeshVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_capacity")] - public static extern uint aiAnimMeshVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_reserve")] - public static extern void aiAnimMeshVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiAnimMeshVector__SWIG_0")] - public static extern IntPtr new_aiAnimMeshVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiAnimMeshVector__SWIG_1")] - public static extern IntPtr new_aiAnimMeshVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiAnimMeshVector__SWIG_2")] - public static extern IntPtr new_aiAnimMeshVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_getitemcopy")] - public static extern IntPtr aiAnimMeshVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_getitem")] - public static extern IntPtr aiAnimMeshVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_setitem")] - public static extern void aiAnimMeshVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_AddRange")] - public static extern void aiAnimMeshVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_GetRange")] - public static extern IntPtr aiAnimMeshVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_Insert")] - public static extern void aiAnimMeshVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_InsertRange")] - public static extern void aiAnimMeshVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_RemoveAt")] - public static extern void aiAnimMeshVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_RemoveRange")] - public static extern void aiAnimMeshVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_Repeat")] - public static extern IntPtr aiAnimMeshVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_Reverse__SWIG_0")] - public static extern void aiAnimMeshVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_Reverse__SWIG_1")] - public static extern void aiAnimMeshVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_SetRange")] - public static extern void aiAnimMeshVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_Contains")] - public static extern bool aiAnimMeshVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_IndexOf")] - public static extern int aiAnimMeshVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_LastIndexOf")] - public static extern int aiAnimMeshVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiAnimMeshVector_Remove")] - public static extern bool aiAnimMeshVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiAnimMeshVector")] - public static extern void delete_aiAnimMeshVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_Clear")] - public static extern void aiBoneVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_Add")] - public static extern void aiBoneVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_size")] - public static extern uint aiBoneVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_capacity")] - public static extern uint aiBoneVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_reserve")] - public static extern void aiBoneVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiBoneVector__SWIG_0")] - public static extern IntPtr new_aiBoneVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiBoneVector__SWIG_1")] - public static extern IntPtr new_aiBoneVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiBoneVector__SWIG_2")] - public static extern IntPtr new_aiBoneVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_getitemcopy")] - public static extern IntPtr aiBoneVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_getitem")] - public static extern IntPtr aiBoneVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_setitem")] - public static extern void aiBoneVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_AddRange")] - public static extern void aiBoneVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_GetRange")] - public static extern IntPtr aiBoneVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_Insert")] - public static extern void aiBoneVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_InsertRange")] - public static extern void aiBoneVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_RemoveAt")] - public static extern void aiBoneVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_RemoveRange")] - public static extern void aiBoneVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_Repeat")] - public static extern IntPtr aiBoneVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_Reverse__SWIG_0")] - public static extern void aiBoneVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_Reverse__SWIG_1")] - public static extern void aiBoneVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_SetRange")] - public static extern void aiBoneVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_Contains")] - public static extern bool aiBoneVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_IndexOf")] - public static extern int aiBoneVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_LastIndexOf")] - public static extern int aiBoneVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiBoneVector_Remove")] - public static extern bool aiBoneVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiBoneVector")] - public static extern void delete_aiBoneVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_Clear")] - public static extern void aiCameraVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_Add")] - public static extern void aiCameraVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_size")] - public static extern uint aiCameraVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_capacity")] - public static extern uint aiCameraVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_reserve")] - public static extern void aiCameraVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiCameraVector__SWIG_0")] - public static extern IntPtr new_aiCameraVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiCameraVector__SWIG_1")] - public static extern IntPtr new_aiCameraVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiCameraVector__SWIG_2")] - public static extern IntPtr new_aiCameraVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_getitemcopy")] - public static extern IntPtr aiCameraVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_getitem")] - public static extern IntPtr aiCameraVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_setitem")] - public static extern void aiCameraVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_AddRange")] - public static extern void aiCameraVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_GetRange")] - public static extern IntPtr aiCameraVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_Insert")] - public static extern void aiCameraVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_InsertRange")] - public static extern void aiCameraVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_RemoveAt")] - public static extern void aiCameraVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_RemoveRange")] - public static extern void aiCameraVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_Repeat")] - public static extern IntPtr aiCameraVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_Reverse__SWIG_0")] - public static extern void aiCameraVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_Reverse__SWIG_1")] - public static extern void aiCameraVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_SetRange")] - public static extern void aiCameraVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_Contains")] - public static extern bool aiCameraVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_IndexOf")] - public static extern int aiCameraVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_LastIndexOf")] - public static extern int aiCameraVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiCameraVector_Remove")] - public static extern bool aiCameraVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiCameraVector")] - public static extern void delete_aiCameraVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_Clear")] - public static extern void aiColor4DVectorVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_Add")] - public static extern void aiColor4DVectorVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_size")] - public static extern uint aiColor4DVectorVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_capacity")] - public static extern uint aiColor4DVectorVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_reserve")] - public static extern void aiColor4DVectorVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiColor4DVectorVector__SWIG_0")] - public static extern IntPtr new_aiColor4DVectorVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiColor4DVectorVector__SWIG_1")] - public static extern IntPtr new_aiColor4DVectorVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiColor4DVectorVector__SWIG_2")] - public static extern IntPtr new_aiColor4DVectorVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_getitemcopy")] - public static extern IntPtr aiColor4DVectorVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_getitem")] - public static extern IntPtr aiColor4DVectorVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_setitem")] - public static extern void aiColor4DVectorVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_AddRange")] - public static extern void aiColor4DVectorVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_GetRange")] - public static extern IntPtr aiColor4DVectorVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_Insert")] - public static extern void aiColor4DVectorVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_InsertRange")] - public static extern void aiColor4DVectorVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_RemoveAt")] - public static extern void aiColor4DVectorVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_RemoveRange")] - public static extern void aiColor4DVectorVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_Repeat")] - public static extern IntPtr aiColor4DVectorVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_Reverse__SWIG_0")] - public static extern void aiColor4DVectorVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_Reverse__SWIG_1")] - public static extern void aiColor4DVectorVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVectorVector_SetRange")] - public static extern void aiColor4DVectorVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiColor4DVectorVector")] - public static extern void delete_aiColor4DVectorVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_Clear")] - public static extern void aiColor4DVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_Add")] - public static extern void aiColor4DVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_size")] - public static extern uint aiColor4DVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_capacity")] - public static extern uint aiColor4DVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_reserve")] - public static extern void aiColor4DVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiColor4DVector__SWIG_0")] - public static extern IntPtr new_aiColor4DVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiColor4DVector__SWIG_1")] - public static extern IntPtr new_aiColor4DVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiColor4DVector__SWIG_2")] - public static extern IntPtr new_aiColor4DVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_getitemcopy")] - public static extern IntPtr aiColor4DVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_getitem")] - public static extern IntPtr aiColor4DVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_setitem")] - public static extern void aiColor4DVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_AddRange")] - public static extern void aiColor4DVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_GetRange")] - public static extern IntPtr aiColor4DVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_Insert")] - public static extern void aiColor4DVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_InsertRange")] - public static extern void aiColor4DVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_RemoveAt")] - public static extern void aiColor4DVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_RemoveRange")] - public static extern void aiColor4DVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_Repeat")] - public static extern IntPtr aiColor4DVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_Reverse__SWIG_0")] - public static extern void aiColor4DVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_Reverse__SWIG_1")] - public static extern void aiColor4DVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_SetRange")] - public static extern void aiColor4DVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_Contains")] - public static extern bool aiColor4DVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_IndexOf")] - public static extern int aiColor4DVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_LastIndexOf")] - public static extern int aiColor4DVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiColor4DVector_Remove")] - public static extern bool aiColor4DVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiColor4DVector")] - public static extern void delete_aiColor4DVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_Clear")] - public static extern void aiFaceVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_Add")] - public static extern void aiFaceVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_size")] - public static extern uint aiFaceVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_capacity")] - public static extern uint aiFaceVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_reserve")] - public static extern void aiFaceVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiFaceVector__SWIG_0")] - public static extern IntPtr new_aiFaceVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiFaceVector__SWIG_1")] - public static extern IntPtr new_aiFaceVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiFaceVector__SWIG_2")] - public static extern IntPtr new_aiFaceVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_getitemcopy")] - public static extern IntPtr aiFaceVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_getitem")] - public static extern IntPtr aiFaceVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_setitem")] - public static extern void aiFaceVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_AddRange")] - public static extern void aiFaceVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_GetRange")] - public static extern IntPtr aiFaceVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_Insert")] - public static extern void aiFaceVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_InsertRange")] - public static extern void aiFaceVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_RemoveAt")] - public static extern void aiFaceVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_RemoveRange")] - public static extern void aiFaceVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_Repeat")] - public static extern IntPtr aiFaceVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_Reverse__SWIG_0")] - public static extern void aiFaceVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_Reverse__SWIG_1")] - public static extern void aiFaceVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_SetRange")] - public static extern void aiFaceVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_Contains")] - public static extern bool aiFaceVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_IndexOf")] - public static extern int aiFaceVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_LastIndexOf")] - public static extern int aiFaceVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiFaceVector_Remove")] - public static extern bool aiFaceVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiFaceVector")] - public static extern void delete_aiFaceVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_Clear")] - public static extern void aiLightVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_Add")] - public static extern void aiLightVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_size")] - public static extern uint aiLightVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_capacity")] - public static extern uint aiLightVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_reserve")] - public static extern void aiLightVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiLightVector__SWIG_0")] - public static extern IntPtr new_aiLightVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiLightVector__SWIG_1")] - public static extern IntPtr new_aiLightVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiLightVector__SWIG_2")] - public static extern IntPtr new_aiLightVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_getitemcopy")] - public static extern IntPtr aiLightVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_getitem")] - public static extern IntPtr aiLightVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_setitem")] - public static extern void aiLightVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_AddRange")] - public static extern void aiLightVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_GetRange")] - public static extern IntPtr aiLightVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_Insert")] - public static extern void aiLightVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_InsertRange")] - public static extern void aiLightVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_RemoveAt")] - public static extern void aiLightVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_RemoveRange")] - public static extern void aiLightVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_Repeat")] - public static extern IntPtr aiLightVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_Reverse__SWIG_0")] - public static extern void aiLightVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_Reverse__SWIG_1")] - public static extern void aiLightVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_SetRange")] - public static extern void aiLightVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_Contains")] - public static extern bool aiLightVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_IndexOf")] - public static extern int aiLightVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_LastIndexOf")] - public static extern int aiLightVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiLightVector_Remove")] - public static extern bool aiLightVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiLightVector")] - public static extern void delete_aiLightVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_Clear")] - public static extern void aiMaterialVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_Add")] - public static extern void aiMaterialVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_size")] - public static extern uint aiMaterialVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_capacity")] - public static extern uint aiMaterialVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_reserve")] - public static extern void aiMaterialVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMaterialVector__SWIG_0")] - public static extern IntPtr new_aiMaterialVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMaterialVector__SWIG_1")] - public static extern IntPtr new_aiMaterialVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMaterialVector__SWIG_2")] - public static extern IntPtr new_aiMaterialVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_getitemcopy")] - public static extern IntPtr aiMaterialVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_getitem")] - public static extern IntPtr aiMaterialVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_setitem")] - public static extern void aiMaterialVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_AddRange")] - public static extern void aiMaterialVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_GetRange")] - public static extern IntPtr aiMaterialVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_Insert")] - public static extern void aiMaterialVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_InsertRange")] - public static extern void aiMaterialVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_RemoveAt")] - public static extern void aiMaterialVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_RemoveRange")] - public static extern void aiMaterialVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_Repeat")] - public static extern IntPtr aiMaterialVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_Reverse__SWIG_0")] - public static extern void aiMaterialVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_Reverse__SWIG_1")] - public static extern void aiMaterialVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_SetRange")] - public static extern void aiMaterialVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_Contains")] - public static extern bool aiMaterialVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_IndexOf")] - public static extern int aiMaterialVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_LastIndexOf")] - public static extern int aiMaterialVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMaterialVector_Remove")] - public static extern bool aiMaterialVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiMaterialVector")] - public static extern void delete_aiMaterialVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_Clear")] - public static extern void aiMeshAnimVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_Add")] - public static extern void aiMeshAnimVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_size")] - public static extern uint aiMeshAnimVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_capacity")] - public static extern uint aiMeshAnimVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_reserve")] - public static extern void aiMeshAnimVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMeshAnimVector__SWIG_0")] - public static extern IntPtr new_aiMeshAnimVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMeshAnimVector__SWIG_1")] - public static extern IntPtr new_aiMeshAnimVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMeshAnimVector__SWIG_2")] - public static extern IntPtr new_aiMeshAnimVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_getitemcopy")] - public static extern IntPtr aiMeshAnimVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_getitem")] - public static extern IntPtr aiMeshAnimVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_setitem")] - public static extern void aiMeshAnimVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_AddRange")] - public static extern void aiMeshAnimVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_GetRange")] - public static extern IntPtr aiMeshAnimVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_Insert")] - public static extern void aiMeshAnimVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_InsertRange")] - public static extern void aiMeshAnimVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_RemoveAt")] - public static extern void aiMeshAnimVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_RemoveRange")] - public static extern void aiMeshAnimVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_Repeat")] - public static extern IntPtr aiMeshAnimVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_Reverse__SWIG_0")] - public static extern void aiMeshAnimVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_Reverse__SWIG_1")] - public static extern void aiMeshAnimVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_SetRange")] - public static extern void aiMeshAnimVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_Contains")] - public static extern bool aiMeshAnimVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_IndexOf")] - public static extern int aiMeshAnimVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_LastIndexOf")] - public static extern int aiMeshAnimVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshAnimVector_Remove")] - public static extern bool aiMeshAnimVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiMeshAnimVector")] - public static extern void delete_aiMeshAnimVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_Clear")] - public static extern void aiMeshKeyVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_Add")] - public static extern void aiMeshKeyVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_size")] - public static extern uint aiMeshKeyVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_capacity")] - public static extern uint aiMeshKeyVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_reserve")] - public static extern void aiMeshKeyVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMeshKeyVector__SWIG_0")] - public static extern IntPtr new_aiMeshKeyVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMeshKeyVector__SWIG_1")] - public static extern IntPtr new_aiMeshKeyVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMeshKeyVector__SWIG_2")] - public static extern IntPtr new_aiMeshKeyVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_getitemcopy")] - public static extern IntPtr aiMeshKeyVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_getitem")] - public static extern IntPtr aiMeshKeyVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_setitem")] - public static extern void aiMeshKeyVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_AddRange")] - public static extern void aiMeshKeyVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_GetRange")] - public static extern IntPtr aiMeshKeyVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_Insert")] - public static extern void aiMeshKeyVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_InsertRange")] - public static extern void aiMeshKeyVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_RemoveAt")] - public static extern void aiMeshKeyVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_RemoveRange")] - public static extern void aiMeshKeyVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_Repeat")] - public static extern IntPtr aiMeshKeyVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_Reverse__SWIG_0")] - public static extern void aiMeshKeyVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_Reverse__SWIG_1")] - public static extern void aiMeshKeyVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_SetRange")] - public static extern void aiMeshKeyVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_Contains")] - public static extern bool aiMeshKeyVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_IndexOf")] - public static extern int aiMeshKeyVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_LastIndexOf")] - public static extern int aiMeshKeyVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshKeyVector_Remove")] - public static extern bool aiMeshKeyVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiMeshKeyVector")] - public static extern void delete_aiMeshKeyVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_Clear")] - public static extern void aiMeshVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_Add")] - public static extern void aiMeshVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_size")] - public static extern uint aiMeshVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_capacity")] - public static extern uint aiMeshVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_reserve")] - public static extern void aiMeshVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMeshVector__SWIG_0")] - public static extern IntPtr new_aiMeshVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMeshVector__SWIG_1")] - public static extern IntPtr new_aiMeshVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiMeshVector__SWIG_2")] - public static extern IntPtr new_aiMeshVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_getitemcopy")] - public static extern IntPtr aiMeshVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_getitem")] - public static extern IntPtr aiMeshVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_setitem")] - public static extern void aiMeshVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_AddRange")] - public static extern void aiMeshVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_GetRange")] - public static extern IntPtr aiMeshVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_Insert")] - public static extern void aiMeshVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_InsertRange")] - public static extern void aiMeshVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_RemoveAt")] - public static extern void aiMeshVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_RemoveRange")] - public static extern void aiMeshVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_Repeat")] - public static extern IntPtr aiMeshVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_Reverse__SWIG_0")] - public static extern void aiMeshVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_Reverse__SWIG_1")] - public static extern void aiMeshVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_SetRange")] - public static extern void aiMeshVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_Contains")] - public static extern bool aiMeshVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_IndexOf")] - public static extern int aiMeshVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_LastIndexOf")] - public static extern int aiMeshVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiMeshVector_Remove")] - public static extern bool aiMeshVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiMeshVector")] - public static extern void delete_aiMeshVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_Clear")] - public static extern void aiNodeVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_Add")] - public static extern void aiNodeVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_size")] - public static extern uint aiNodeVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_capacity")] - public static extern uint aiNodeVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_reserve")] - public static extern void aiNodeVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiNodeVector__SWIG_0")] - public static extern IntPtr new_aiNodeVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiNodeVector__SWIG_1")] - public static extern IntPtr new_aiNodeVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiNodeVector__SWIG_2")] - public static extern IntPtr new_aiNodeVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_getitemcopy")] - public static extern IntPtr aiNodeVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_getitem")] - public static extern IntPtr aiNodeVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_setitem")] - public static extern void aiNodeVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_AddRange")] - public static extern void aiNodeVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_GetRange")] - public static extern IntPtr aiNodeVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_Insert")] - public static extern void aiNodeVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_InsertRange")] - public static extern void aiNodeVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_RemoveAt")] - public static extern void aiNodeVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_RemoveRange")] - public static extern void aiNodeVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_Repeat")] - public static extern IntPtr aiNodeVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_Reverse__SWIG_0")] - public static extern void aiNodeVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_Reverse__SWIG_1")] - public static extern void aiNodeVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_SetRange")] - public static extern void aiNodeVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_Contains")] - public static extern bool aiNodeVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_IndexOf")] - public static extern int aiNodeVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_LastIndexOf")] - public static extern int aiNodeVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeVector_Remove")] - public static extern bool aiNodeVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiNodeVector")] - public static extern void delete_aiNodeVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_Clear")] - public static extern void aiNodeAnimVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_Add")] - public static extern void aiNodeAnimVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_size")] - public static extern uint aiNodeAnimVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_capacity")] - public static extern uint aiNodeAnimVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_reserve")] - public static extern void aiNodeAnimVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiNodeAnimVector__SWIG_0")] - public static extern IntPtr new_aiNodeAnimVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiNodeAnimVector__SWIG_1")] - public static extern IntPtr new_aiNodeAnimVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiNodeAnimVector__SWIG_2")] - public static extern IntPtr new_aiNodeAnimVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_getitemcopy")] - public static extern IntPtr aiNodeAnimVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_getitem")] - public static extern IntPtr aiNodeAnimVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_setitem")] - public static extern void aiNodeAnimVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_AddRange")] - public static extern void aiNodeAnimVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_GetRange")] - public static extern IntPtr aiNodeAnimVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_Insert")] - public static extern void aiNodeAnimVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_InsertRange")] - public static extern void aiNodeAnimVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_RemoveAt")] - public static extern void aiNodeAnimVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_RemoveRange")] - public static extern void aiNodeAnimVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_Repeat")] - public static extern IntPtr aiNodeAnimVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_Reverse__SWIG_0")] - public static extern void aiNodeAnimVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_Reverse__SWIG_1")] - public static extern void aiNodeAnimVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_SetRange")] - public static extern void aiNodeAnimVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_Contains")] - public static extern bool aiNodeAnimVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_IndexOf")] - public static extern int aiNodeAnimVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_LastIndexOf")] - public static extern int aiNodeAnimVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiNodeAnimVector_Remove")] - public static extern bool aiNodeAnimVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiNodeAnimVector")] - public static extern void delete_aiNodeAnimVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_Clear")] - public static extern void aiQuatKeyVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_Add")] - public static extern void aiQuatKeyVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_size")] - public static extern uint aiQuatKeyVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_capacity")] - public static extern uint aiQuatKeyVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_reserve")] - public static extern void aiQuatKeyVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiQuatKeyVector__SWIG_0")] - public static extern IntPtr new_aiQuatKeyVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiQuatKeyVector__SWIG_1")] - public static extern IntPtr new_aiQuatKeyVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiQuatKeyVector__SWIG_2")] - public static extern IntPtr new_aiQuatKeyVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_getitemcopy")] - public static extern IntPtr aiQuatKeyVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_getitem")] - public static extern IntPtr aiQuatKeyVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_setitem")] - public static extern void aiQuatKeyVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_AddRange")] - public static extern void aiQuatKeyVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_GetRange")] - public static extern IntPtr aiQuatKeyVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_Insert")] - public static extern void aiQuatKeyVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_InsertRange")] - public static extern void aiQuatKeyVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_RemoveAt")] - public static extern void aiQuatKeyVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_RemoveRange")] - public static extern void aiQuatKeyVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_Repeat")] - public static extern IntPtr aiQuatKeyVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_Reverse__SWIG_0")] - public static extern void aiQuatKeyVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_Reverse__SWIG_1")] - public static extern void aiQuatKeyVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_SetRange")] - public static extern void aiQuatKeyVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_Contains")] - public static extern bool aiQuatKeyVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_IndexOf")] - public static extern int aiQuatKeyVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_LastIndexOf")] - public static extern int aiQuatKeyVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiQuatKeyVector_Remove")] - public static extern bool aiQuatKeyVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiQuatKeyVector")] - public static extern void delete_aiQuatKeyVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_Clear")] - public static extern void aiTextureVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_Add")] - public static extern void aiTextureVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_size")] - public static extern uint aiTextureVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_capacity")] - public static extern uint aiTextureVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_reserve")] - public static extern void aiTextureVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiTextureVector__SWIG_0")] - public static extern IntPtr new_aiTextureVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiTextureVector__SWIG_1")] - public static extern IntPtr new_aiTextureVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiTextureVector__SWIG_2")] - public static extern IntPtr new_aiTextureVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_getitemcopy")] - public static extern IntPtr aiTextureVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_getitem")] - public static extern IntPtr aiTextureVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_setitem")] - public static extern void aiTextureVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_AddRange")] - public static extern void aiTextureVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_GetRange")] - public static extern IntPtr aiTextureVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_Insert")] - public static extern void aiTextureVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_InsertRange")] - public static extern void aiTextureVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_RemoveAt")] - public static extern void aiTextureVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_RemoveRange")] - public static extern void aiTextureVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_Repeat")] - public static extern IntPtr aiTextureVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_Reverse__SWIG_0")] - public static extern void aiTextureVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_Reverse__SWIG_1")] - public static extern void aiTextureVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_SetRange")] - public static extern void aiTextureVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_Contains")] - public static extern bool aiTextureVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_IndexOf")] - public static extern int aiTextureVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_LastIndexOf")] - public static extern int aiTextureVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiTextureVector_Remove")] - public static extern bool aiTextureVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiTextureVector")] - public static extern void delete_aiTextureVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_Clear")] - public static extern void aiVector3DVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_Add")] - public static extern void aiVector3DVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_size")] - public static extern uint aiVector3DVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_capacity")] - public static extern uint aiVector3DVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_reserve")] - public static extern void aiVector3DVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVector3DVector__SWIG_0")] - public static extern IntPtr new_aiVector3DVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVector3DVector__SWIG_1")] - public static extern IntPtr new_aiVector3DVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVector3DVector__SWIG_2")] - public static extern IntPtr new_aiVector3DVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_getitemcopy")] - public static extern IntPtr aiVector3DVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_getitem")] - public static extern IntPtr aiVector3DVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_setitem")] - public static extern void aiVector3DVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_AddRange")] - public static extern void aiVector3DVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_GetRange")] - public static extern IntPtr aiVector3DVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_Insert")] - public static extern void aiVector3DVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_InsertRange")] - public static extern void aiVector3DVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_RemoveAt")] - public static extern void aiVector3DVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_RemoveRange")] - public static extern void aiVector3DVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_Repeat")] - public static extern IntPtr aiVector3DVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_Reverse__SWIG_0")] - public static extern void aiVector3DVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_Reverse__SWIG_1")] - public static extern void aiVector3DVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_SetRange")] - public static extern void aiVector3DVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_Contains")] - public static extern bool aiVector3DVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_IndexOf")] - public static extern int aiVector3DVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_LastIndexOf")] - public static extern int aiVector3DVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVector_Remove")] - public static extern bool aiVector3DVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiVector3DVector")] - public static extern void delete_aiVector3DVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_Clear")] - public static extern void aiVector3DVectorVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_Add")] - public static extern void aiVector3DVectorVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_size")] - public static extern uint aiVector3DVectorVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_capacity")] - public static extern uint aiVector3DVectorVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_reserve")] - public static extern void aiVector3DVectorVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVector3DVectorVector__SWIG_0")] - public static extern IntPtr new_aiVector3DVectorVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVector3DVectorVector__SWIG_1")] - public static extern IntPtr new_aiVector3DVectorVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVector3DVectorVector__SWIG_2")] - public static extern IntPtr new_aiVector3DVectorVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_getitemcopy")] - public static extern IntPtr aiVector3DVectorVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_getitem")] - public static extern IntPtr aiVector3DVectorVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_setitem")] - public static extern void aiVector3DVectorVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_AddRange")] - public static extern void aiVector3DVectorVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_GetRange")] - public static extern IntPtr aiVector3DVectorVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_Insert")] - public static extern void aiVector3DVectorVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_InsertRange")] - public static extern void aiVector3DVectorVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_RemoveAt")] - public static extern void aiVector3DVectorVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_RemoveRange")] - public static extern void aiVector3DVectorVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_Repeat")] - public static extern IntPtr aiVector3DVectorVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_Reverse__SWIG_0")] - public static extern void aiVector3DVectorVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_Reverse__SWIG_1")] - public static extern void aiVector3DVectorVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVector3DVectorVector_SetRange")] - public static extern void aiVector3DVectorVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiVector3DVectorVector")] - public static extern void delete_aiVector3DVectorVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_Clear")] - public static extern void aiVectorKeyVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_Add")] - public static extern void aiVectorKeyVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_size")] - public static extern uint aiVectorKeyVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_capacity")] - public static extern uint aiVectorKeyVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_reserve")] - public static extern void aiVectorKeyVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVectorKeyVector__SWIG_0")] - public static extern IntPtr new_aiVectorKeyVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVectorKeyVector__SWIG_1")] - public static extern IntPtr new_aiVectorKeyVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVectorKeyVector__SWIG_2")] - public static extern IntPtr new_aiVectorKeyVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_getitemcopy")] - public static extern IntPtr aiVectorKeyVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_getitem")] - public static extern IntPtr aiVectorKeyVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_setitem")] - public static extern void aiVectorKeyVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_AddRange")] - public static extern void aiVectorKeyVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_GetRange")] - public static extern IntPtr aiVectorKeyVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_Insert")] - public static extern void aiVectorKeyVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_InsertRange")] - public static extern void aiVectorKeyVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_RemoveAt")] - public static extern void aiVectorKeyVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_RemoveRange")] - public static extern void aiVectorKeyVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_Repeat")] - public static extern IntPtr aiVectorKeyVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_Reverse__SWIG_0")] - public static extern void aiVectorKeyVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_Reverse__SWIG_1")] - public static extern void aiVectorKeyVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_SetRange")] - public static extern void aiVectorKeyVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_Contains")] - public static extern bool aiVectorKeyVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_IndexOf")] - public static extern int aiVectorKeyVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_LastIndexOf")] - public static extern int aiVectorKeyVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVectorKeyVector_Remove")] - public static extern bool aiVectorKeyVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiVectorKeyVector")] - public static extern void delete_aiVectorKeyVector(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_Clear")] - public static extern void aiVertexWeightVector_Clear(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_Add")] - public static extern void aiVertexWeightVector_Add(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_size")] - public static extern uint aiVertexWeightVector_size(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_capacity")] - public static extern uint aiVertexWeightVector_capacity(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_reserve")] - public static extern void aiVertexWeightVector_reserve(HandleRef jarg1, uint jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVertexWeightVector__SWIG_0")] - public static extern IntPtr new_aiVertexWeightVector__SWIG_0(); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVertexWeightVector__SWIG_1")] - public static extern IntPtr new_aiVertexWeightVector__SWIG_1(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_new_aiVertexWeightVector__SWIG_2")] - public static extern IntPtr new_aiVertexWeightVector__SWIG_2(int jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_getitemcopy")] - public static extern IntPtr aiVertexWeightVector_getitemcopy(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_getitem")] - public static extern IntPtr aiVertexWeightVector_getitem(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_setitem")] - public static extern void aiVertexWeightVector_setitem(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_AddRange")] - public static extern void aiVertexWeightVector_AddRange(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_GetRange")] - public static extern IntPtr aiVertexWeightVector_GetRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_Insert")] - public static extern void aiVertexWeightVector_Insert(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_InsertRange")] - public static extern void aiVertexWeightVector_InsertRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_RemoveAt")] - public static extern void aiVertexWeightVector_RemoveAt(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_RemoveRange")] - public static extern void aiVertexWeightVector_RemoveRange(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_Repeat")] - public static extern IntPtr aiVertexWeightVector_Repeat(HandleRef jarg1, int jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_Reverse__SWIG_0")] - public static extern void aiVertexWeightVector_Reverse__SWIG_0(HandleRef jarg1); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_Reverse__SWIG_1")] - public static extern void aiVertexWeightVector_Reverse__SWIG_1(HandleRef jarg1, int jarg2, int jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_SetRange")] - public static extern void aiVertexWeightVector_SetRange(HandleRef jarg1, int jarg2, HandleRef jarg3); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_Contains")] - public static extern bool aiVertexWeightVector_Contains(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_IndexOf")] - public static extern int aiVertexWeightVector_IndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_LastIndexOf")] - public static extern int aiVertexWeightVector_LastIndexOf(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_aiVertexWeightVector_Remove")] - public static extern bool aiVertexWeightVector_Remove(HandleRef jarg1, HandleRef jarg2); - - [DllImport("Assimp", EntryPoint="CSharp_delete_aiVertexWeightVector")] - public static extern void delete_aiVertexWeightVector(HandleRef jarg1); -} diff --git a/port/Assimp.NET/Assimp.NET_CS/FloatVector.cs b/port/Assimp.NET/Assimp.NET_CS/FloatVector.cs deleted file mode 100644 index d8e9f212f..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/FloatVector.cs +++ /dev/null @@ -1,346 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class FloatVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal FloatVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(FloatVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~FloatVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_FloatVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public FloatVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (float element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public float this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(float[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(float[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, float[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new FloatVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new FloatVectorEnumerator(this); - } - - public FloatVectorEnumerator GetEnumerator() { - return new FloatVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class FloatVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private FloatVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public FloatVectorEnumerator(FloatVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public float Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (float)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.FloatVector_Clear(swigCPtr); - } - - public void Add(float x) { - AssimpPINVOKE.FloatVector_Add(swigCPtr, x); - } - - private uint size() { - uint ret = AssimpPINVOKE.FloatVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.FloatVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.FloatVector_reserve(swigCPtr, n); - } - - public FloatVector() : this(AssimpPINVOKE.new_FloatVector__SWIG_0(), true) { - } - - public FloatVector(FloatVector other) : this(AssimpPINVOKE.new_FloatVector__SWIG_1(FloatVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public FloatVector(int capacity) : this(AssimpPINVOKE.new_FloatVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private float getitemcopy(int index) { - float ret = AssimpPINVOKE.FloatVector_getitemcopy(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private float getitem(int index) { - float ret = AssimpPINVOKE.FloatVector_getitem(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, float val) { - AssimpPINVOKE.FloatVector_setitem(swigCPtr, index, val); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(FloatVector values) { - AssimpPINVOKE.FloatVector_AddRange(swigCPtr, FloatVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public FloatVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.FloatVector_GetRange(swigCPtr, index, count); - FloatVector ret = (cPtr == IntPtr.Zero) ? null : new FloatVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, float x) { - AssimpPINVOKE.FloatVector_Insert(swigCPtr, index, x); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, FloatVector values) { - AssimpPINVOKE.FloatVector_InsertRange(swigCPtr, index, FloatVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.FloatVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.FloatVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static FloatVector Repeat(float value, int count) { - IntPtr cPtr = AssimpPINVOKE.FloatVector_Repeat(value, count); - FloatVector ret = (cPtr == IntPtr.Zero) ? null : new FloatVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.FloatVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.FloatVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, FloatVector values) { - AssimpPINVOKE.FloatVector_SetRange(swigCPtr, index, FloatVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(float value) { - bool ret = AssimpPINVOKE.FloatVector_Contains(swigCPtr, value); - return ret; - } - - public int IndexOf(float value) { - int ret = AssimpPINVOKE.FloatVector_IndexOf(swigCPtr, value); - return ret; - } - - public int LastIndexOf(float value) { - int ret = AssimpPINVOKE.FloatVector_LastIndexOf(swigCPtr, value); - return ret; - } - - public bool Remove(float value) { - bool ret = AssimpPINVOKE.FloatVector_Remove(swigCPtr, value); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/Importer.cs b/port/Assimp.NET/Assimp.NET_CS/Importer.cs deleted file mode 100644 index 9709b38c2..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/Importer.cs +++ /dev/null @@ -1,206 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class Importer : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal Importer(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(Importer obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~Importer() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_Importer(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public Importer() : this(AssimpPINVOKE.new_Importer__SWIG_0(), true) { - } - - public Importer(Importer other) : this(AssimpPINVOKE.new_Importer__SWIG_1(Importer.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public int GetPropertyInteger(string szName, int iErrorReturn) { - int ret = AssimpPINVOKE.Importer_GetPropertyInteger__SWIG_0(swigCPtr, szName, iErrorReturn); - return ret; - } - - public int GetPropertyInteger(string szName) { - int ret = AssimpPINVOKE.Importer_GetPropertyInteger__SWIG_1(swigCPtr, szName); - return ret; - } - - public bool GetPropertyBool(string szName, bool bErrorReturn) { - bool ret = AssimpPINVOKE.Importer_GetPropertyBool__SWIG_0(swigCPtr, szName, bErrorReturn); - return ret; - } - - public bool GetPropertyBool(string szName) { - bool ret = AssimpPINVOKE.Importer_GetPropertyBool__SWIG_1(swigCPtr, szName); - return ret; - } - - public float GetPropertyFloat(string szName, float fErrorReturn) { - float ret = AssimpPINVOKE.Importer_GetPropertyFloat__SWIG_0(swigCPtr, szName, fErrorReturn); - return ret; - } - - public float GetPropertyFloat(string szName) { - float ret = AssimpPINVOKE.Importer_GetPropertyFloat__SWIG_1(swigCPtr, szName); - return ret; - } - - public string GetPropertyString(string szName, string sErrorReturn) { - string ret = AssimpPINVOKE.Importer_GetPropertyString__SWIG_0(swigCPtr, szName, sErrorReturn); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public string GetPropertyString(string szName) { - string ret = AssimpPINVOKE.Importer_GetPropertyString__SWIG_1(swigCPtr, szName); - return ret; - } - - public bool IsDefaultIOHandler() { - bool ret = AssimpPINVOKE.Importer_IsDefaultIOHandler(swigCPtr); - return ret; - } - - public void SetProgressHandler(ProgressHandler pHandler) { - AssimpPINVOKE.Importer_SetProgressHandler(swigCPtr, ProgressHandler.getCPtr(pHandler)); - } - - public ProgressHandler GetProgressHandler() { - IntPtr cPtr = AssimpPINVOKE.Importer_GetProgressHandler(swigCPtr); - ProgressHandler ret = (cPtr == IntPtr.Zero) ? null : new ProgressHandler(cPtr, false); - return ret; - } - - public bool IsDefaultProgressHandler() { - bool ret = AssimpPINVOKE.Importer_IsDefaultProgressHandler(swigCPtr); - return ret; - } - - public bool ValidateFlags(aiPostProcessSteps pFlags) { - bool ret = AssimpPINVOKE.Importer_ValidateFlags(swigCPtr, (uint)pFlags); - return ret; - } - - public aiScene ReadFile(string pFile, aiPostProcessSteps pFlags) { - IntPtr cPtr = AssimpPINVOKE.Importer_ReadFile__SWIG_0(swigCPtr, pFile, (uint)pFlags); - aiScene ret = (cPtr == IntPtr.Zero) ? null : new aiScene(cPtr, false); - return ret; - } - - public void FreeScene() { - AssimpPINVOKE.Importer_FreeScene(swigCPtr); - } - - public string GetErrorString() { - string ret = AssimpPINVOKE.Importer_GetErrorString(swigCPtr); - return ret; - } - - public aiScene GetScene() { - IntPtr cPtr = AssimpPINVOKE.Importer_GetScene(swigCPtr); - aiScene ret = (cPtr == IntPtr.Zero) ? null : new aiScene(cPtr, false); - return ret; - } - - public aiScene GetOrphanedScene() { - IntPtr cPtr = AssimpPINVOKE.Importer_GetOrphanedScene(swigCPtr); - aiScene ret = (cPtr == IntPtr.Zero) ? null : new aiScene(cPtr, false); - return ret; - } - - public bool IsExtensionSupported(string szExtension) { - bool ret = AssimpPINVOKE.Importer_IsExtensionSupported__SWIG_0(swigCPtr, szExtension); - return ret; - } - - public void GetExtensionList(aiString szOut) { - AssimpPINVOKE.Importer_GetExtensionList__SWIG_0(swigCPtr, aiString.getCPtr(szOut)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void GetExtensionList(SWIGTYPE_p_std__string szOut) { - AssimpPINVOKE.Importer_GetExtensionList__SWIG_1(swigCPtr, SWIGTYPE_p_std__string.getCPtr(szOut)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public uint GetImporterCount() { - uint ret = AssimpPINVOKE.Importer_GetImporterCount(swigCPtr); - return ret; - } - - public SWIGTYPE_p_aiImporterDesc GetImporterInfo(uint index) { - IntPtr cPtr = AssimpPINVOKE.Importer_GetImporterInfo(swigCPtr, index); - SWIGTYPE_p_aiImporterDesc ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_aiImporterDesc(cPtr, false); - return ret; - } - - public SWIGTYPE_p_Assimp__BaseImporter GetImporter(uint index) { - IntPtr cPtr = AssimpPINVOKE.Importer_GetImporter__SWIG_0(swigCPtr, index); - SWIGTYPE_p_Assimp__BaseImporter ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_Assimp__BaseImporter(cPtr, false); - return ret; - } - - public SWIGTYPE_p_Assimp__BaseImporter GetImporter(string szExtension) { - IntPtr cPtr = AssimpPINVOKE.Importer_GetImporter__SWIG_1(swigCPtr, szExtension); - SWIGTYPE_p_Assimp__BaseImporter ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_Assimp__BaseImporter(cPtr, false); - return ret; - } - - public uint GetImporterIndex(string szExtension) { - uint ret = AssimpPINVOKE.Importer_GetImporterIndex(swigCPtr, szExtension); - return ret; - } - - public void GetMemoryRequirements(aiMemoryInfo arg0) { - AssimpPINVOKE.Importer_GetMemoryRequirements(swigCPtr, aiMemoryInfo.getCPtr(arg0)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetExtraVerbose(bool bDo) { - AssimpPINVOKE.Importer_SetExtraVerbose(swigCPtr, bDo); - } - - public SWIGTYPE_p_Assimp__ImporterPimpl Pimpl() { - IntPtr cPtr = AssimpPINVOKE.Importer_Pimpl__SWIG_0(swigCPtr); - SWIGTYPE_p_Assimp__ImporterPimpl ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_Assimp__ImporterPimpl(cPtr, false); - return ret; - } - - public string GetExtensionList() { - string ret = AssimpPINVOKE.Importer_GetExtensionList__SWIG_2(swigCPtr); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/ProgressHandler.cs b/port/Assimp.NET/Assimp.NET_CS/ProgressHandler.cs deleted file mode 100644 index 4493930f3..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/ProgressHandler.cs +++ /dev/null @@ -1,53 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class ProgressHandler : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal ProgressHandler(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(ProgressHandler obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~ProgressHandler() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_ProgressHandler(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public virtual bool Update(float percentage) { - bool ret = AssimpPINVOKE.ProgressHandler_Update__SWIG_0(swigCPtr, percentage); - return ret; - } - - public virtual bool Update() { - bool ret = AssimpPINVOKE.ProgressHandler_Update__SWIG_1(swigCPtr); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_Assimp__BaseImporter.cs b/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_Assimp__BaseImporter.cs deleted file mode 100644 index a6b0c4d74..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_Assimp__BaseImporter.cs +++ /dev/null @@ -1,27 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_Assimp__BaseImporter { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_Assimp__BaseImporter(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_Assimp__BaseImporter() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_Assimp__BaseImporter obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} diff --git a/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_Assimp__ImporterPimpl.cs b/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_Assimp__ImporterPimpl.cs deleted file mode 100644 index 45900e9ec..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_Assimp__ImporterPimpl.cs +++ /dev/null @@ -1,27 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_Assimp__ImporterPimpl { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_Assimp__ImporterPimpl(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_Assimp__ImporterPimpl() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_Assimp__ImporterPimpl obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} diff --git a/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_aiImporterDesc.cs b/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_aiImporterDesc.cs deleted file mode 100644 index 90e310079..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_aiImporterDesc.cs +++ /dev/null @@ -1,27 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_aiImporterDesc { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_aiImporterDesc(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_aiImporterDesc() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_aiImporterDesc obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} diff --git a/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_float.cs b/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_float.cs deleted file mode 100644 index 7d117d2a7..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_float.cs +++ /dev/null @@ -1,27 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_float { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_float(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_float() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_float obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} diff --git a/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_std__string.cs b/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_std__string.cs deleted file mode 100644 index e539303f1..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_std__string.cs +++ /dev/null @@ -1,27 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_std__string { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_std__string(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_std__string() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_std__string obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} diff --git a/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_void.cs b/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_void.cs deleted file mode 100644 index f87f7e5ee..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_void.cs +++ /dev/null @@ -1,27 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} diff --git a/port/Assimp.NET/Assimp.NET_CS/UintVector.cs b/port/Assimp.NET/Assimp.NET_CS/UintVector.cs deleted file mode 100644 index def1a50de..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/UintVector.cs +++ /dev/null @@ -1,346 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class UintVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal UintVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(UintVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~UintVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_UintVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public UintVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (uint element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public uint this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(uint[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(uint[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, uint[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new UintVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new UintVectorEnumerator(this); - } - - public UintVectorEnumerator GetEnumerator() { - return new UintVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class UintVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private UintVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public UintVectorEnumerator(UintVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public uint Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (uint)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.UintVector_Clear(swigCPtr); - } - - public void Add(uint x) { - AssimpPINVOKE.UintVector_Add(swigCPtr, x); - } - - private uint size() { - uint ret = AssimpPINVOKE.UintVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.UintVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.UintVector_reserve(swigCPtr, n); - } - - public UintVector() : this(AssimpPINVOKE.new_UintVector__SWIG_0(), true) { - } - - public UintVector(UintVector other) : this(AssimpPINVOKE.new_UintVector__SWIG_1(UintVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public UintVector(int capacity) : this(AssimpPINVOKE.new_UintVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private uint getitemcopy(int index) { - uint ret = AssimpPINVOKE.UintVector_getitemcopy(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private uint getitem(int index) { - uint ret = AssimpPINVOKE.UintVector_getitem(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, uint val) { - AssimpPINVOKE.UintVector_setitem(swigCPtr, index, val); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(UintVector values) { - AssimpPINVOKE.UintVector_AddRange(swigCPtr, UintVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public UintVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.UintVector_GetRange(swigCPtr, index, count); - UintVector ret = (cPtr == IntPtr.Zero) ? null : new UintVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, uint x) { - AssimpPINVOKE.UintVector_Insert(swigCPtr, index, x); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, UintVector values) { - AssimpPINVOKE.UintVector_InsertRange(swigCPtr, index, UintVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.UintVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.UintVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static UintVector Repeat(uint value, int count) { - IntPtr cPtr = AssimpPINVOKE.UintVector_Repeat(value, count); - UintVector ret = (cPtr == IntPtr.Zero) ? null : new UintVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.UintVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.UintVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, UintVector values) { - AssimpPINVOKE.UintVector_SetRange(swigCPtr, index, UintVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(uint value) { - bool ret = AssimpPINVOKE.UintVector_Contains(swigCPtr, value); - return ret; - } - - public int IndexOf(uint value) { - int ret = AssimpPINVOKE.UintVector_IndexOf(swigCPtr, value); - return ret; - } - - public int LastIndexOf(uint value) { - int ret = AssimpPINVOKE.UintVector_LastIndexOf(swigCPtr, value); - return ret; - } - - public bool Remove(uint value) { - bool ret = AssimpPINVOKE.UintVector_Remove(swigCPtr, value); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiAnimBehaviour.cs b/port/Assimp.NET/Assimp.NET_CS/aiAnimBehaviour.cs deleted file mode 100644 index 0483fd585..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiAnimBehaviour.cs +++ /dev/null @@ -1,15 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiAnimBehaviour { - aiAnimBehaviour_DEFAULT = 0x0, - aiAnimBehaviour_CONSTANT = 0x1, - aiAnimBehaviour_LINEAR = 0x2, - aiAnimBehaviour_REPEAT = 0x3 -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiAnimMesh.cs b/port/Assimp.NET/Assimp.NET_CS/aiAnimMesh.cs deleted file mode 100644 index b61b4da19..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiAnimMesh.cs +++ /dev/null @@ -1,92 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiAnimMesh : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiAnimMesh(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiAnimMesh obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiAnimMesh() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiAnimMesh(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiVector3D mBitangents { - set { - AssimpPINVOKE.aiAnimMesh_mBitangents_set(swigCPtr, aiVector3D.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiAnimMesh_mBitangents_get(swigCPtr); - aiVector3D ret = (cPtr == IntPtr.Zero) ? null : new aiVector3D(cPtr, false); - return ret; - } - } - - public uint mNumVertices { - set { - AssimpPINVOKE.aiAnimMesh_mNumVertices_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiAnimMesh_mNumVertices_get(swigCPtr); - return ret; - } - } - - public aiAnimMesh() : this(AssimpPINVOKE.new_aiAnimMesh(), true) { - } - - public bool HasPositions() { - bool ret = AssimpPINVOKE.aiAnimMesh_HasPositions(swigCPtr); - return ret; - } - - public bool HasNormals() { - bool ret = AssimpPINVOKE.aiAnimMesh_HasNormals(swigCPtr); - return ret; - } - - public bool HasTangentsAndBitangents() { - bool ret = AssimpPINVOKE.aiAnimMesh_HasTangentsAndBitangents(swigCPtr); - return ret; - } - - public bool HasVertexColors(uint pIndex) { - bool ret = AssimpPINVOKE.aiAnimMesh_HasVertexColors(swigCPtr, pIndex); - return ret; - } - - public bool HasTextureCoords(uint pIndex) { - bool ret = AssimpPINVOKE.aiAnimMesh_HasTextureCoords(swigCPtr, pIndex); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiAnimMeshVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiAnimMeshVector.cs deleted file mode 100644 index 0a4445949..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiAnimMeshVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiAnimMeshVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiAnimMeshVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiAnimMeshVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiAnimMeshVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiAnimMeshVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiAnimMeshVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiAnimMesh element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiAnimMesh this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiAnimMesh[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiAnimMesh[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiAnimMesh[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiAnimMeshVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiAnimMeshVectorEnumerator(this); - } - - public aiAnimMeshVectorEnumerator GetEnumerator() { - return new aiAnimMeshVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiAnimMeshVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiAnimMeshVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiAnimMeshVectorEnumerator(aiAnimMeshVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiAnimMesh Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiAnimMesh)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiAnimMeshVector_Clear(swigCPtr); - } - - public void Add(aiAnimMesh x) { - AssimpPINVOKE.aiAnimMeshVector_Add(swigCPtr, aiAnimMesh.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiAnimMeshVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiAnimMeshVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiAnimMeshVector_reserve(swigCPtr, n); - } - - public aiAnimMeshVector() : this(AssimpPINVOKE.new_aiAnimMeshVector__SWIG_0(), true) { - } - - public aiAnimMeshVector(aiAnimMeshVector other) : this(AssimpPINVOKE.new_aiAnimMeshVector__SWIG_1(aiAnimMeshVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiAnimMeshVector(int capacity) : this(AssimpPINVOKE.new_aiAnimMeshVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiAnimMesh getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiAnimMeshVector_getitemcopy(swigCPtr, index); - aiAnimMesh ret = (cPtr == IntPtr.Zero) ? null : new aiAnimMesh(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiAnimMesh getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiAnimMeshVector_getitem(swigCPtr, index); - aiAnimMesh ret = (cPtr == IntPtr.Zero) ? null : new aiAnimMesh(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiAnimMesh val) { - AssimpPINVOKE.aiAnimMeshVector_setitem(swigCPtr, index, aiAnimMesh.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiAnimMeshVector values) { - AssimpPINVOKE.aiAnimMeshVector_AddRange(swigCPtr, aiAnimMeshVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiAnimMeshVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiAnimMeshVector_GetRange(swigCPtr, index, count); - aiAnimMeshVector ret = (cPtr == IntPtr.Zero) ? null : new aiAnimMeshVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiAnimMesh x) { - AssimpPINVOKE.aiAnimMeshVector_Insert(swigCPtr, index, aiAnimMesh.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiAnimMeshVector values) { - AssimpPINVOKE.aiAnimMeshVector_InsertRange(swigCPtr, index, aiAnimMeshVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiAnimMeshVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiAnimMeshVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiAnimMeshVector Repeat(aiAnimMesh value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiAnimMeshVector_Repeat(aiAnimMesh.getCPtr(value), count); - aiAnimMeshVector ret = (cPtr == IntPtr.Zero) ? null : new aiAnimMeshVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiAnimMeshVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiAnimMeshVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiAnimMeshVector values) { - AssimpPINVOKE.aiAnimMeshVector_SetRange(swigCPtr, index, aiAnimMeshVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiAnimMesh value) { - bool ret = AssimpPINVOKE.aiAnimMeshVector_Contains(swigCPtr, aiAnimMesh.getCPtr(value)); - return ret; - } - - public int IndexOf(aiAnimMesh value) { - int ret = AssimpPINVOKE.aiAnimMeshVector_IndexOf(swigCPtr, aiAnimMesh.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiAnimMesh value) { - int ret = AssimpPINVOKE.aiAnimMeshVector_LastIndexOf(swigCPtr, aiAnimMesh.getCPtr(value)); - return ret; - } - - public bool Remove(aiAnimMesh value) { - bool ret = AssimpPINVOKE.aiAnimMeshVector_Remove(swigCPtr, aiAnimMesh.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiAnimation.cs b/port/Assimp.NET/Assimp.NET_CS/aiAnimation.cs deleted file mode 100644 index e9b30800f..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiAnimation.cs +++ /dev/null @@ -1,112 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiAnimation : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiAnimation(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiAnimation obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiAnimation() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiAnimation(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiNodeAnimVector mChannels { get { return GetmChannels(); } } - public aiMeshAnimVector mMeshChannels { get { return GetmMeshChannels(); } } - - public aiString mName { - set { - AssimpPINVOKE.aiAnimation_mName_set(swigCPtr, aiString.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiAnimation_mName_get(swigCPtr); - aiString ret = (cPtr == IntPtr.Zero) ? null : new aiString(cPtr, false); - return ret; - } - } - - public double mDuration { - set { - AssimpPINVOKE.aiAnimation_mDuration_set(swigCPtr, value); - } - get { - double ret = AssimpPINVOKE.aiAnimation_mDuration_get(swigCPtr); - return ret; - } - } - - public double mTicksPerSecond { - set { - AssimpPINVOKE.aiAnimation_mTicksPerSecond_set(swigCPtr, value); - } - get { - double ret = AssimpPINVOKE.aiAnimation_mTicksPerSecond_get(swigCPtr); - return ret; - } - } - - public uint mNumChannels { - set { - AssimpPINVOKE.aiAnimation_mNumChannels_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiAnimation_mNumChannels_get(swigCPtr); - return ret; - } - } - - public uint mNumMeshChannels { - set { - AssimpPINVOKE.aiAnimation_mNumMeshChannels_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiAnimation_mNumMeshChannels_get(swigCPtr); - return ret; - } - } - - public aiAnimation() : this(AssimpPINVOKE.new_aiAnimation(), true) { - } - - private aiNodeAnimVector GetmChannels() { - IntPtr cPtr = AssimpPINVOKE.aiAnimation_GetmChannels(swigCPtr); - aiNodeAnimVector ret = (cPtr == IntPtr.Zero) ? null : new aiNodeAnimVector(cPtr, true); - return ret; - } - - private aiMeshAnimVector GetmMeshChannels() { - IntPtr cPtr = AssimpPINVOKE.aiAnimation_GetmMeshChannels(swigCPtr); - aiMeshAnimVector ret = (cPtr == IntPtr.Zero) ? null : new aiMeshAnimVector(cPtr, true); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiAnimationVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiAnimationVector.cs deleted file mode 100644 index 6a21f1242..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiAnimationVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiAnimationVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiAnimationVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiAnimationVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiAnimationVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiAnimationVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiAnimationVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiAnimation element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiAnimation this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiAnimation[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiAnimation[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiAnimation[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiAnimationVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiAnimationVectorEnumerator(this); - } - - public aiAnimationVectorEnumerator GetEnumerator() { - return new aiAnimationVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiAnimationVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiAnimationVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiAnimationVectorEnumerator(aiAnimationVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiAnimation Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiAnimation)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiAnimationVector_Clear(swigCPtr); - } - - public void Add(aiAnimation x) { - AssimpPINVOKE.aiAnimationVector_Add(swigCPtr, aiAnimation.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiAnimationVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiAnimationVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiAnimationVector_reserve(swigCPtr, n); - } - - public aiAnimationVector() : this(AssimpPINVOKE.new_aiAnimationVector__SWIG_0(), true) { - } - - public aiAnimationVector(aiAnimationVector other) : this(AssimpPINVOKE.new_aiAnimationVector__SWIG_1(aiAnimationVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiAnimationVector(int capacity) : this(AssimpPINVOKE.new_aiAnimationVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiAnimation getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiAnimationVector_getitemcopy(swigCPtr, index); - aiAnimation ret = (cPtr == IntPtr.Zero) ? null : new aiAnimation(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiAnimation getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiAnimationVector_getitem(swigCPtr, index); - aiAnimation ret = (cPtr == IntPtr.Zero) ? null : new aiAnimation(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiAnimation val) { - AssimpPINVOKE.aiAnimationVector_setitem(swigCPtr, index, aiAnimation.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiAnimationVector values) { - AssimpPINVOKE.aiAnimationVector_AddRange(swigCPtr, aiAnimationVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiAnimationVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiAnimationVector_GetRange(swigCPtr, index, count); - aiAnimationVector ret = (cPtr == IntPtr.Zero) ? null : new aiAnimationVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiAnimation x) { - AssimpPINVOKE.aiAnimationVector_Insert(swigCPtr, index, aiAnimation.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiAnimationVector values) { - AssimpPINVOKE.aiAnimationVector_InsertRange(swigCPtr, index, aiAnimationVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiAnimationVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiAnimationVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiAnimationVector Repeat(aiAnimation value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiAnimationVector_Repeat(aiAnimation.getCPtr(value), count); - aiAnimationVector ret = (cPtr == IntPtr.Zero) ? null : new aiAnimationVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiAnimationVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiAnimationVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiAnimationVector values) { - AssimpPINVOKE.aiAnimationVector_SetRange(swigCPtr, index, aiAnimationVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiAnimation value) { - bool ret = AssimpPINVOKE.aiAnimationVector_Contains(swigCPtr, aiAnimation.getCPtr(value)); - return ret; - } - - public int IndexOf(aiAnimation value) { - int ret = AssimpPINVOKE.aiAnimationVector_IndexOf(swigCPtr, aiAnimation.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiAnimation value) { - int ret = AssimpPINVOKE.aiAnimationVector_LastIndexOf(swigCPtr, aiAnimation.getCPtr(value)); - return ret; - } - - public bool Remove(aiAnimation value) { - bool ret = AssimpPINVOKE.aiAnimationVector_Remove(swigCPtr, aiAnimation.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiBlendMode.cs b/port/Assimp.NET/Assimp.NET_CS/aiBlendMode.cs deleted file mode 100644 index ab8e563a6..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiBlendMode.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiBlendMode { - aiBlendMode_Default = 0x0, - aiBlendMode_Additive = 0x1 -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiBone.cs b/port/Assimp.NET/Assimp.NET_CS/aiBone.cs deleted file mode 100644 index 226ce943e..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiBone.cs +++ /dev/null @@ -1,88 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiBone : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiBone(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiBone obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiBone() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiBone(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiString mName { - set { - AssimpPINVOKE.aiBone_mName_set(swigCPtr, aiString.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiBone_mName_get(swigCPtr); - aiString ret = (cPtr == IntPtr.Zero) ? null : new aiString(cPtr, false); - return ret; - } - } - - public uint mNumWeights { - set { - AssimpPINVOKE.aiBone_mNumWeights_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiBone_mNumWeights_get(swigCPtr); - return ret; - } - } - - public aiMatrix4x4 mOffsetMatrix { - set { - AssimpPINVOKE.aiBone_mOffsetMatrix_set(swigCPtr, aiMatrix4x4.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiBone_mOffsetMatrix_get(swigCPtr); - aiMatrix4x4 ret = (cPtr == IntPtr.Zero) ? null : new aiMatrix4x4(cPtr, false); - return ret; - } - } - - public aiBone() : this(AssimpPINVOKE.new_aiBone__SWIG_0(), true) { - } - - public aiBone(aiBone other) : this(AssimpPINVOKE.new_aiBone__SWIG_1(aiBone.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiVertexWeightVector GetmWeights() { - IntPtr cPtr = AssimpPINVOKE.aiBone_GetmWeights(swigCPtr); - aiVertexWeightVector ret = (cPtr == IntPtr.Zero) ? null : new aiVertexWeightVector(cPtr, true); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiBoneVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiBoneVector.cs deleted file mode 100644 index a6feb46ff..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiBoneVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiBoneVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiBoneVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiBoneVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiBoneVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiBoneVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiBoneVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiBone element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiBone this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiBone[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiBone[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiBone[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiBoneVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiBoneVectorEnumerator(this); - } - - public aiBoneVectorEnumerator GetEnumerator() { - return new aiBoneVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiBoneVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiBoneVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiBoneVectorEnumerator(aiBoneVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiBone Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiBone)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiBoneVector_Clear(swigCPtr); - } - - public void Add(aiBone x) { - AssimpPINVOKE.aiBoneVector_Add(swigCPtr, aiBone.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiBoneVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiBoneVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiBoneVector_reserve(swigCPtr, n); - } - - public aiBoneVector() : this(AssimpPINVOKE.new_aiBoneVector__SWIG_0(), true) { - } - - public aiBoneVector(aiBoneVector other) : this(AssimpPINVOKE.new_aiBoneVector__SWIG_1(aiBoneVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiBoneVector(int capacity) : this(AssimpPINVOKE.new_aiBoneVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiBone getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiBoneVector_getitemcopy(swigCPtr, index); - aiBone ret = (cPtr == IntPtr.Zero) ? null : new aiBone(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiBone getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiBoneVector_getitem(swigCPtr, index); - aiBone ret = (cPtr == IntPtr.Zero) ? null : new aiBone(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiBone val) { - AssimpPINVOKE.aiBoneVector_setitem(swigCPtr, index, aiBone.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiBoneVector values) { - AssimpPINVOKE.aiBoneVector_AddRange(swigCPtr, aiBoneVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiBoneVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiBoneVector_GetRange(swigCPtr, index, count); - aiBoneVector ret = (cPtr == IntPtr.Zero) ? null : new aiBoneVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiBone x) { - AssimpPINVOKE.aiBoneVector_Insert(swigCPtr, index, aiBone.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiBoneVector values) { - AssimpPINVOKE.aiBoneVector_InsertRange(swigCPtr, index, aiBoneVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiBoneVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiBoneVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiBoneVector Repeat(aiBone value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiBoneVector_Repeat(aiBone.getCPtr(value), count); - aiBoneVector ret = (cPtr == IntPtr.Zero) ? null : new aiBoneVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiBoneVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiBoneVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiBoneVector values) { - AssimpPINVOKE.aiBoneVector_SetRange(swigCPtr, index, aiBoneVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiBone value) { - bool ret = AssimpPINVOKE.aiBoneVector_Contains(swigCPtr, aiBone.getCPtr(value)); - return ret; - } - - public int IndexOf(aiBone value) { - int ret = AssimpPINVOKE.aiBoneVector_IndexOf(swigCPtr, aiBone.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiBone value) { - int ret = AssimpPINVOKE.aiBoneVector_LastIndexOf(swigCPtr, aiBone.getCPtr(value)); - return ret; - } - - public bool Remove(aiBone value) { - bool ret = AssimpPINVOKE.aiBoneVector_Remove(swigCPtr, aiBone.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiCamera.cs b/port/Assimp.NET/Assimp.NET_CS/aiCamera.cs deleted file mode 100644 index 3c96d0d21..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiCamera.cs +++ /dev/null @@ -1,135 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiCamera : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiCamera(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiCamera obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiCamera() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiCamera(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiString mName { - set { - AssimpPINVOKE.aiCamera_mName_set(swigCPtr, aiString.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiCamera_mName_get(swigCPtr); - aiString ret = (cPtr == IntPtr.Zero) ? null : new aiString(cPtr, false); - return ret; - } - } - - public aiVector3D mPosition { - set { - AssimpPINVOKE.aiCamera_mPosition_set(swigCPtr, aiVector3D.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiCamera_mPosition_get(swigCPtr); - aiVector3D ret = (cPtr == IntPtr.Zero) ? null : new aiVector3D(cPtr, false); - return ret; - } - } - - public aiVector3D mUp { - set { - AssimpPINVOKE.aiCamera_mUp_set(swigCPtr, aiVector3D.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiCamera_mUp_get(swigCPtr); - aiVector3D ret = (cPtr == IntPtr.Zero) ? null : new aiVector3D(cPtr, false); - return ret; - } - } - - public aiVector3D mLookAt { - set { - AssimpPINVOKE.aiCamera_mLookAt_set(swigCPtr, aiVector3D.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiCamera_mLookAt_get(swigCPtr); - aiVector3D ret = (cPtr == IntPtr.Zero) ? null : new aiVector3D(cPtr, false); - return ret; - } - } - - public float mHorizontalFOV { - set { - AssimpPINVOKE.aiCamera_mHorizontalFOV_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiCamera_mHorizontalFOV_get(swigCPtr); - return ret; - } - } - - public float mClipPlaneNear { - set { - AssimpPINVOKE.aiCamera_mClipPlaneNear_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiCamera_mClipPlaneNear_get(swigCPtr); - return ret; - } - } - - public float mClipPlaneFar { - set { - AssimpPINVOKE.aiCamera_mClipPlaneFar_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiCamera_mClipPlaneFar_get(swigCPtr); - return ret; - } - } - - public float mAspect { - set { - AssimpPINVOKE.aiCamera_mAspect_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiCamera_mAspect_get(swigCPtr); - return ret; - } - } - - public aiCamera() : this(AssimpPINVOKE.new_aiCamera(), true) { - } - - public void GetCameraMatrix(aiMatrix4x4 arg0) { - AssimpPINVOKE.aiCamera_GetCameraMatrix(swigCPtr, aiMatrix4x4.getCPtr(arg0)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiCameraVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiCameraVector.cs deleted file mode 100644 index 1cbc857e1..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiCameraVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiCameraVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiCameraVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiCameraVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiCameraVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiCameraVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiCameraVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiCamera element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiCamera this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiCamera[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiCamera[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiCamera[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiCameraVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiCameraVectorEnumerator(this); - } - - public aiCameraVectorEnumerator GetEnumerator() { - return new aiCameraVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiCameraVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiCameraVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiCameraVectorEnumerator(aiCameraVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiCamera Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiCamera)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiCameraVector_Clear(swigCPtr); - } - - public void Add(aiCamera x) { - AssimpPINVOKE.aiCameraVector_Add(swigCPtr, aiCamera.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiCameraVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiCameraVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiCameraVector_reserve(swigCPtr, n); - } - - public aiCameraVector() : this(AssimpPINVOKE.new_aiCameraVector__SWIG_0(), true) { - } - - public aiCameraVector(aiCameraVector other) : this(AssimpPINVOKE.new_aiCameraVector__SWIG_1(aiCameraVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiCameraVector(int capacity) : this(AssimpPINVOKE.new_aiCameraVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiCamera getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiCameraVector_getitemcopy(swigCPtr, index); - aiCamera ret = (cPtr == IntPtr.Zero) ? null : new aiCamera(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiCamera getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiCameraVector_getitem(swigCPtr, index); - aiCamera ret = (cPtr == IntPtr.Zero) ? null : new aiCamera(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiCamera val) { - AssimpPINVOKE.aiCameraVector_setitem(swigCPtr, index, aiCamera.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiCameraVector values) { - AssimpPINVOKE.aiCameraVector_AddRange(swigCPtr, aiCameraVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiCameraVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiCameraVector_GetRange(swigCPtr, index, count); - aiCameraVector ret = (cPtr == IntPtr.Zero) ? null : new aiCameraVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiCamera x) { - AssimpPINVOKE.aiCameraVector_Insert(swigCPtr, index, aiCamera.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiCameraVector values) { - AssimpPINVOKE.aiCameraVector_InsertRange(swigCPtr, index, aiCameraVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiCameraVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiCameraVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiCameraVector Repeat(aiCamera value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiCameraVector_Repeat(aiCamera.getCPtr(value), count); - aiCameraVector ret = (cPtr == IntPtr.Zero) ? null : new aiCameraVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiCameraVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiCameraVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiCameraVector values) { - AssimpPINVOKE.aiCameraVector_SetRange(swigCPtr, index, aiCameraVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiCamera value) { - bool ret = AssimpPINVOKE.aiCameraVector_Contains(swigCPtr, aiCamera.getCPtr(value)); - return ret; - } - - public int IndexOf(aiCamera value) { - int ret = AssimpPINVOKE.aiCameraVector_IndexOf(swigCPtr, aiCamera.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiCamera value) { - int ret = AssimpPINVOKE.aiCameraVector_LastIndexOf(swigCPtr, aiCamera.getCPtr(value)); - return ret; - } - - public bool Remove(aiCamera value) { - bool ret = AssimpPINVOKE.aiCameraVector_Remove(swigCPtr, aiCamera.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiColor3D.cs b/port/Assimp.NET/Assimp.NET_CS/aiColor3D.cs deleted file mode 100644 index 8590b614f..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiColor3D.cs +++ /dev/null @@ -1,131 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiColor3D : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiColor3D(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiColor3D obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiColor3D() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiColor3D(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiColor3D() : this(AssimpPINVOKE.new_aiColor3D__SWIG_0(), true) { - } - - public aiColor3D(float _r, float _g, float _b) : this(AssimpPINVOKE.new_aiColor3D__SWIG_1(_r, _g, _b), true) { - } - - public aiColor3D(float _r) : this(AssimpPINVOKE.new_aiColor3D__SWIG_2(_r), true) { - } - - public aiColor3D(aiColor3D o) : this(AssimpPINVOKE.new_aiColor3D__SWIG_3(aiColor3D.getCPtr(o)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool __equal__(aiColor3D other) { - bool ret = AssimpPINVOKE.aiColor3D___equal__(swigCPtr, aiColor3D.getCPtr(other)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __nequal__(aiColor3D other) { - bool ret = AssimpPINVOKE.aiColor3D___nequal__(swigCPtr, aiColor3D.getCPtr(other)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiColor3D __add__(aiColor3D c) { - aiColor3D ret = new aiColor3D(AssimpPINVOKE.aiColor3D___add__(swigCPtr, aiColor3D.getCPtr(c)), true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiColor3D __sub__(aiColor3D c) { - aiColor3D ret = new aiColor3D(AssimpPINVOKE.aiColor3D___sub__(swigCPtr, aiColor3D.getCPtr(c)), true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiColor3D __mul__(aiColor3D c) { - aiColor3D ret = new aiColor3D(AssimpPINVOKE.aiColor3D___mul____SWIG_0(swigCPtr, aiColor3D.getCPtr(c)), true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiColor3D __mul__(float f) { - aiColor3D ret = new aiColor3D(AssimpPINVOKE.aiColor3D___mul____SWIG_1(swigCPtr, f), true); - return ret; - } - - public float __idx__(uint i) { - float ret = AssimpPINVOKE.aiColor3D___idx____SWIG_0(swigCPtr, i); - return ret; - } - - public bool IsBlack() { - bool ret = AssimpPINVOKE.aiColor3D_IsBlack(swigCPtr); - return ret; - } - - public float r { - set { - AssimpPINVOKE.aiColor3D_r_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiColor3D_r_get(swigCPtr); - return ret; - } - } - - public float g { - set { - AssimpPINVOKE.aiColor3D_g_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiColor3D_g_get(swigCPtr); - return ret; - } - } - - public float b { - set { - AssimpPINVOKE.aiColor3D_b_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiColor3D_b_get(swigCPtr); - return ret; - } - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiColor4D.cs b/port/Assimp.NET/Assimp.NET_CS/aiColor4D.cs deleted file mode 100644 index 435ec505a..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiColor4D.cs +++ /dev/null @@ -1,140 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiColor4D : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiColor4D(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiColor4D obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiColor4D() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiColor4D(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiColor4D() : this(AssimpPINVOKE.new_aiColor4D__SWIG_0(), true) { - } - - public aiColor4D(float _r, float _g, float _b, float _a) : this(AssimpPINVOKE.new_aiColor4D__SWIG_1(_r, _g, _b, _a), true) { - } - - public aiColor4D(float _r) : this(AssimpPINVOKE.new_aiColor4D__SWIG_2(_r), true) { - } - - public aiColor4D(aiColor4D o) : this(AssimpPINVOKE.new_aiColor4D__SWIG_3(aiColor4D.getCPtr(o)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiColor4D __addnset__(aiColor4D o) { - aiColor4D ret = new aiColor4D(AssimpPINVOKE.aiColor4D___addnset__(swigCPtr, aiColor4D.getCPtr(o)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiColor4D __subnset__(aiColor4D o) { - aiColor4D ret = new aiColor4D(AssimpPINVOKE.aiColor4D___subnset__(swigCPtr, aiColor4D.getCPtr(o)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiColor4D __mulnset__(float f) { - aiColor4D ret = new aiColor4D(AssimpPINVOKE.aiColor4D___mulnset__(swigCPtr, f), false); - return ret; - } - - public aiColor4D __divnset__(float f) { - aiColor4D ret = new aiColor4D(AssimpPINVOKE.aiColor4D___divnset__(swigCPtr, f), false); - return ret; - } - - public bool __equal__(aiColor4D other) { - bool ret = AssimpPINVOKE.aiColor4D___equal__(swigCPtr, aiColor4D.getCPtr(other)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __nequal__(aiColor4D other) { - bool ret = AssimpPINVOKE.aiColor4D___nequal__(swigCPtr, aiColor4D.getCPtr(other)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public float __idx__(uint i) { - float ret = AssimpPINVOKE.aiColor4D___idx____SWIG_0(swigCPtr, i); - return ret; - } - - public bool IsBlack() { - bool ret = AssimpPINVOKE.aiColor4D_IsBlack(swigCPtr); - return ret; - } - - public float r { - set { - AssimpPINVOKE.aiColor4D_r_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiColor4D_r_get(swigCPtr); - return ret; - } - } - - public float g { - set { - AssimpPINVOKE.aiColor4D_g_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiColor4D_g_get(swigCPtr); - return ret; - } - } - - public float b { - set { - AssimpPINVOKE.aiColor4D_b_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiColor4D_b_get(swigCPtr); - return ret; - } - } - - public float a { - set { - AssimpPINVOKE.aiColor4D_a_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiColor4D_a_get(swigCPtr); - return ret; - } - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiColor4DVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiColor4DVector.cs deleted file mode 100644 index 3b1b76920..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiColor4DVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiColor4DVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiColor4DVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiColor4DVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiColor4DVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiColor4DVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiColor4DVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiColor4D element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiColor4D this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiColor4D[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiColor4D[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiColor4D[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiColor4DVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiColor4DVectorEnumerator(this); - } - - public aiColor4DVectorEnumerator GetEnumerator() { - return new aiColor4DVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiColor4DVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiColor4DVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiColor4DVectorEnumerator(aiColor4DVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiColor4D Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiColor4D)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiColor4DVector_Clear(swigCPtr); - } - - public void Add(aiColor4D x) { - AssimpPINVOKE.aiColor4DVector_Add(swigCPtr, aiColor4D.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiColor4DVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiColor4DVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiColor4DVector_reserve(swigCPtr, n); - } - - public aiColor4DVector() : this(AssimpPINVOKE.new_aiColor4DVector__SWIG_0(), true) { - } - - public aiColor4DVector(aiColor4DVector other) : this(AssimpPINVOKE.new_aiColor4DVector__SWIG_1(aiColor4DVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiColor4DVector(int capacity) : this(AssimpPINVOKE.new_aiColor4DVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiColor4D getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiColor4DVector_getitemcopy(swigCPtr, index); - aiColor4D ret = (cPtr == IntPtr.Zero) ? null : new aiColor4D(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiColor4D getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiColor4DVector_getitem(swigCPtr, index); - aiColor4D ret = (cPtr == IntPtr.Zero) ? null : new aiColor4D(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiColor4D val) { - AssimpPINVOKE.aiColor4DVector_setitem(swigCPtr, index, aiColor4D.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiColor4DVector values) { - AssimpPINVOKE.aiColor4DVector_AddRange(swigCPtr, aiColor4DVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiColor4DVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiColor4DVector_GetRange(swigCPtr, index, count); - aiColor4DVector ret = (cPtr == IntPtr.Zero) ? null : new aiColor4DVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiColor4D x) { - AssimpPINVOKE.aiColor4DVector_Insert(swigCPtr, index, aiColor4D.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiColor4DVector values) { - AssimpPINVOKE.aiColor4DVector_InsertRange(swigCPtr, index, aiColor4DVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiColor4DVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiColor4DVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiColor4DVector Repeat(aiColor4D value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiColor4DVector_Repeat(aiColor4D.getCPtr(value), count); - aiColor4DVector ret = (cPtr == IntPtr.Zero) ? null : new aiColor4DVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiColor4DVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiColor4DVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiColor4DVector values) { - AssimpPINVOKE.aiColor4DVector_SetRange(swigCPtr, index, aiColor4DVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiColor4D value) { - bool ret = AssimpPINVOKE.aiColor4DVector_Contains(swigCPtr, aiColor4D.getCPtr(value)); - return ret; - } - - public int IndexOf(aiColor4D value) { - int ret = AssimpPINVOKE.aiColor4DVector_IndexOf(swigCPtr, aiColor4D.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiColor4D value) { - int ret = AssimpPINVOKE.aiColor4DVector_LastIndexOf(swigCPtr, aiColor4D.getCPtr(value)); - return ret; - } - - public bool Remove(aiColor4D value) { - bool ret = AssimpPINVOKE.aiColor4DVector_Remove(swigCPtr, aiColor4D.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiColor4DVectorVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiColor4DVectorVector.cs deleted file mode 100644 index ffe291d0e..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiColor4DVectorVector.cs +++ /dev/null @@ -1,327 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiColor4DVectorVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerable -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiColor4DVectorVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiColor4DVectorVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiColor4DVectorVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiColor4DVectorVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiColor4DVectorVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiColor4DVector element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiColor4DVector this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiColor4DVector[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiColor4DVector[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiColor4DVector[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiColor4DVectorVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiColor4DVectorVectorEnumerator(this); - } - - public aiColor4DVectorVectorEnumerator GetEnumerator() { - return new aiColor4DVectorVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiColor4DVectorVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiColor4DVectorVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiColor4DVectorVectorEnumerator(aiColor4DVectorVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiColor4DVector Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiColor4DVector)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiColor4DVectorVector_Clear(swigCPtr); - } - - public void Add(aiColor4DVector x) { - AssimpPINVOKE.aiColor4DVectorVector_Add(swigCPtr, aiColor4DVector.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiColor4DVectorVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiColor4DVectorVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiColor4DVectorVector_reserve(swigCPtr, n); - } - - public aiColor4DVectorVector() : this(AssimpPINVOKE.new_aiColor4DVectorVector__SWIG_0(), true) { - } - - public aiColor4DVectorVector(aiColor4DVectorVector other) : this(AssimpPINVOKE.new_aiColor4DVectorVector__SWIG_1(aiColor4DVectorVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiColor4DVectorVector(int capacity) : this(AssimpPINVOKE.new_aiColor4DVectorVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiColor4DVector getitemcopy(int index) { - aiColor4DVector ret = new aiColor4DVector(AssimpPINVOKE.aiColor4DVectorVector_getitemcopy(swigCPtr, index), true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiColor4DVector getitem(int index) { - aiColor4DVector ret = new aiColor4DVector(AssimpPINVOKE.aiColor4DVectorVector_getitem(swigCPtr, index), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiColor4DVector val) { - AssimpPINVOKE.aiColor4DVectorVector_setitem(swigCPtr, index, aiColor4DVector.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiColor4DVectorVector values) { - AssimpPINVOKE.aiColor4DVectorVector_AddRange(swigCPtr, aiColor4DVectorVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiColor4DVectorVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiColor4DVectorVector_GetRange(swigCPtr, index, count); - aiColor4DVectorVector ret = (cPtr == IntPtr.Zero) ? null : new aiColor4DVectorVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiColor4DVector x) { - AssimpPINVOKE.aiColor4DVectorVector_Insert(swigCPtr, index, aiColor4DVector.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiColor4DVectorVector values) { - AssimpPINVOKE.aiColor4DVectorVector_InsertRange(swigCPtr, index, aiColor4DVectorVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiColor4DVectorVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiColor4DVectorVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiColor4DVectorVector Repeat(aiColor4DVector value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiColor4DVectorVector_Repeat(aiColor4DVector.getCPtr(value), count); - aiColor4DVectorVector ret = (cPtr == IntPtr.Zero) ? null : new aiColor4DVectorVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiColor4DVectorVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiColor4DVectorVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiColor4DVectorVector values) { - AssimpPINVOKE.aiColor4DVectorVector_SetRange(swigCPtr, index, aiColor4DVectorVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiComponent.cs b/port/Assimp.NET/Assimp.NET_CS/aiComponent.cs deleted file mode 100644 index 63e94d36a..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiComponent.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiComponent { - aiComponent_NORMALS = 0x2, - aiComponent_TANGENTS_AND_BITANGENTS = 0x4, - aiComponent_COLORS = 0x8, - aiComponent_TEXCOORDS = 0x10, - aiComponent_BONEWEIGHTS = 0x20, - aiComponent_ANIMATIONS = 0x40, - aiComponent_TEXTURES = 0x80, - aiComponent_LIGHTS = 0x100, - aiComponent_CAMERAS = 0x200, - aiComponent_MESHES = 0x400, - aiComponent_MATERIALS = 0x800 -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiDefaultLogStream.cs b/port/Assimp.NET/Assimp.NET_CS/aiDefaultLogStream.cs deleted file mode 100644 index a39efdbd3..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiDefaultLogStream.cs +++ /dev/null @@ -1,16 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiDefaultLogStream { - aiDefaultLogStream_FILE = 0x1, - aiDefaultLogStream_STDOUT = 0x2, - aiDefaultLogStream_STDERR = 0x4, - aiDefaultLogStream_DEBUGGER = 0x8, - _AI_DLS_ENFORCE_ENUM_SIZE = 0x7fffffff -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiFace.cs b/port/Assimp.NET/Assimp.NET_CS/aiFace.cs deleted file mode 100644 index 5d2a2528f..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiFace.cs +++ /dev/null @@ -1,86 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiFace : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiFace(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiFace obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiFace() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiFace(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public UintVector mIndices { get { return GetmIndices(); } } - - public uint mNumIndices { - set { - AssimpPINVOKE.aiFace_mNumIndices_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiFace_mNumIndices_get(swigCPtr); - return ret; - } - } - - public aiFace() : this(AssimpPINVOKE.new_aiFace__SWIG_0(), true) { - } - - public aiFace(aiFace o) : this(AssimpPINVOKE.new_aiFace__SWIG_1(aiFace.getCPtr(o)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiFace __set__(aiFace o) { - aiFace ret = new aiFace(AssimpPINVOKE.aiFace___set__(swigCPtr, aiFace.getCPtr(o)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __equal__(aiFace o) { - bool ret = AssimpPINVOKE.aiFace___equal__(swigCPtr, aiFace.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __nequal__(aiFace o) { - bool ret = AssimpPINVOKE.aiFace___nequal__(swigCPtr, aiFace.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private UintVector GetmIndices() { - IntPtr cPtr = AssimpPINVOKE.aiFace_GetmIndices(swigCPtr); - UintVector ret = (cPtr == IntPtr.Zero) ? null : new UintVector(cPtr, true); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiFaceVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiFaceVector.cs deleted file mode 100644 index 9c612e6e0..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiFaceVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiFaceVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiFaceVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiFaceVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiFaceVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiFaceVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiFaceVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiFace element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiFace this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiFace[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiFace[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiFace[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiFaceVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiFaceVectorEnumerator(this); - } - - public aiFaceVectorEnumerator GetEnumerator() { - return new aiFaceVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiFaceVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiFaceVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiFaceVectorEnumerator(aiFaceVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiFace Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiFace)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiFaceVector_Clear(swigCPtr); - } - - public void Add(aiFace x) { - AssimpPINVOKE.aiFaceVector_Add(swigCPtr, aiFace.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiFaceVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiFaceVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiFaceVector_reserve(swigCPtr, n); - } - - public aiFaceVector() : this(AssimpPINVOKE.new_aiFaceVector__SWIG_0(), true) { - } - - public aiFaceVector(aiFaceVector other) : this(AssimpPINVOKE.new_aiFaceVector__SWIG_1(aiFaceVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiFaceVector(int capacity) : this(AssimpPINVOKE.new_aiFaceVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiFace getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiFaceVector_getitemcopy(swigCPtr, index); - aiFace ret = (cPtr == IntPtr.Zero) ? null : new aiFace(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiFace getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiFaceVector_getitem(swigCPtr, index); - aiFace ret = (cPtr == IntPtr.Zero) ? null : new aiFace(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiFace val) { - AssimpPINVOKE.aiFaceVector_setitem(swigCPtr, index, aiFace.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiFaceVector values) { - AssimpPINVOKE.aiFaceVector_AddRange(swigCPtr, aiFaceVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiFaceVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiFaceVector_GetRange(swigCPtr, index, count); - aiFaceVector ret = (cPtr == IntPtr.Zero) ? null : new aiFaceVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiFace x) { - AssimpPINVOKE.aiFaceVector_Insert(swigCPtr, index, aiFace.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiFaceVector values) { - AssimpPINVOKE.aiFaceVector_InsertRange(swigCPtr, index, aiFaceVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiFaceVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiFaceVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiFaceVector Repeat(aiFace value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiFaceVector_Repeat(aiFace.getCPtr(value), count); - aiFaceVector ret = (cPtr == IntPtr.Zero) ? null : new aiFaceVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiFaceVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiFaceVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiFaceVector values) { - AssimpPINVOKE.aiFaceVector_SetRange(swigCPtr, index, aiFaceVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiFace value) { - bool ret = AssimpPINVOKE.aiFaceVector_Contains(swigCPtr, aiFace.getCPtr(value)); - return ret; - } - - public int IndexOf(aiFace value) { - int ret = AssimpPINVOKE.aiFaceVector_IndexOf(swigCPtr, aiFace.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiFace value) { - int ret = AssimpPINVOKE.aiFaceVector_LastIndexOf(swigCPtr, aiFace.getCPtr(value)); - return ret; - } - - public bool Remove(aiFace value) { - bool ret = AssimpPINVOKE.aiFaceVector_Remove(swigCPtr, aiFace.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiFile.cs b/port/Assimp.NET/Assimp.NET_CS/aiFile.cs deleted file mode 100644 index 32c6d2063..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiFile.cs +++ /dev/null @@ -1,122 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 1.3.40 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiFile : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiFile(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiFile obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiFile() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - Assimp_NETPINVOKE.delete_aiFile(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public SWIGTYPE_p_f_p_aiFile_p_char_size_t_size_t__size_t ReadProc { - set { - Assimp_NETPINVOKE.aiFile_ReadProc_set(swigCPtr, SWIGTYPE_p_f_p_aiFile_p_char_size_t_size_t__size_t.getCPtr(value)); - } - get { - IntPtr cPtr = Assimp_NETPINVOKE.aiFile_ReadProc_get(swigCPtr); - SWIGTYPE_p_f_p_aiFile_p_char_size_t_size_t__size_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_aiFile_p_char_size_t_size_t__size_t(cPtr, false); - return ret; - } - } - - public SWIGTYPE_p_f_p_aiFile_p_q_const__char_size_t_size_t__size_t WriteProc { - set { - Assimp_NETPINVOKE.aiFile_WriteProc_set(swigCPtr, SWIGTYPE_p_f_p_aiFile_p_q_const__char_size_t_size_t__size_t.getCPtr(value)); - } - get { - IntPtr cPtr = Assimp_NETPINVOKE.aiFile_WriteProc_get(swigCPtr); - SWIGTYPE_p_f_p_aiFile_p_q_const__char_size_t_size_t__size_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_aiFile_p_q_const__char_size_t_size_t__size_t(cPtr, false); - return ret; - } - } - - public SWIGTYPE_p_f_p_aiFile__size_t TellProc { - set { - Assimp_NETPINVOKE.aiFile_TellProc_set(swigCPtr, SWIGTYPE_p_f_p_aiFile__size_t.getCPtr(value)); - } - get { - IntPtr cPtr = Assimp_NETPINVOKE.aiFile_TellProc_get(swigCPtr); - SWIGTYPE_p_f_p_aiFile__size_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_aiFile__size_t(cPtr, false); - return ret; - } - } - - public SWIGTYPE_p_f_p_aiFile__size_t FileSizeProc { - set { - Assimp_NETPINVOKE.aiFile_FileSizeProc_set(swigCPtr, SWIGTYPE_p_f_p_aiFile__size_t.getCPtr(value)); - } - get { - IntPtr cPtr = Assimp_NETPINVOKE.aiFile_FileSizeProc_get(swigCPtr); - SWIGTYPE_p_f_p_aiFile__size_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_aiFile__size_t(cPtr, false); - return ret; - } - } - - public SWIGTYPE_p_f_p_aiFile_size_t_enum_aiOrigin__aiReturn SeekProc { - set { - Assimp_NETPINVOKE.aiFile_SeekProc_set(swigCPtr, SWIGTYPE_p_f_p_aiFile_size_t_enum_aiOrigin__aiReturn.getCPtr(value)); - } - get { - IntPtr cPtr = Assimp_NETPINVOKE.aiFile_SeekProc_get(swigCPtr); - SWIGTYPE_p_f_p_aiFile_size_t_enum_aiOrigin__aiReturn ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_aiFile_size_t_enum_aiOrigin__aiReturn(cPtr, false); - return ret; - } - } - - public SWIGTYPE_p_f_p_aiFile__void FlushProc { - set { - Assimp_NETPINVOKE.aiFile_FlushProc_set(swigCPtr, SWIGTYPE_p_f_p_aiFile__void.getCPtr(value)); - } - get { - IntPtr cPtr = Assimp_NETPINVOKE.aiFile_FlushProc_get(swigCPtr); - SWIGTYPE_p_f_p_aiFile__void ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_aiFile__void(cPtr, false); - return ret; - } - } - - public string UserData { - set { - Assimp_NETPINVOKE.aiFile_UserData_set(swigCPtr, value); - } - get { - string ret = Assimp_NETPINVOKE.aiFile_UserData_get(swigCPtr); - return ret; - } - } - - public aiFile() : this(Assimp_NETPINVOKE.new_aiFile(), true) { - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiFileIO.cs b/port/Assimp.NET/Assimp.NET_CS/aiFileIO.cs deleted file mode 100644 index d08e33ab2..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiFileIO.cs +++ /dev/null @@ -1,78 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 1.3.40 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiFileIO : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiFileIO(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiFileIO obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiFileIO() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - Assimp_NETPINVOKE.delete_aiFileIO(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public SWIGTYPE_p_f_p_aiFileIO_p_q_const__char_p_q_const__char__p_aiFile OpenProc { - set { - Assimp_NETPINVOKE.aiFileIO_OpenProc_set(swigCPtr, SWIGTYPE_p_f_p_aiFileIO_p_q_const__char_p_q_const__char__p_aiFile.getCPtr(value)); - } - get { - IntPtr cPtr = Assimp_NETPINVOKE.aiFileIO_OpenProc_get(swigCPtr); - SWIGTYPE_p_f_p_aiFileIO_p_q_const__char_p_q_const__char__p_aiFile ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_aiFileIO_p_q_const__char_p_q_const__char__p_aiFile(cPtr, false); - return ret; - } - } - - public SWIGTYPE_p_f_p_aiFileIO_p_aiFile__void CloseProc { - set { - Assimp_NETPINVOKE.aiFileIO_CloseProc_set(swigCPtr, SWIGTYPE_p_f_p_aiFileIO_p_aiFile__void.getCPtr(value)); - } - get { - IntPtr cPtr = Assimp_NETPINVOKE.aiFileIO_CloseProc_get(swigCPtr); - SWIGTYPE_p_f_p_aiFileIO_p_aiFile__void ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_aiFileIO_p_aiFile__void(cPtr, false); - return ret; - } - } - - public string UserData { - set { - Assimp_NETPINVOKE.aiFileIO_UserData_set(swigCPtr, value); - } - get { - string ret = Assimp_NETPINVOKE.aiFileIO_UserData_get(swigCPtr); - return ret; - } - } - - public aiFileIO() : this(Assimp_NETPINVOKE.new_aiFileIO(), true) { - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiLight.cs b/port/Assimp.NET/Assimp.NET_CS/aiLight.cs deleted file mode 100644 index 8207ef21a..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiLight.cs +++ /dev/null @@ -1,172 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiLight : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiLight(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiLight obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiLight() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiLight(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiString mName { - set { - AssimpPINVOKE.aiLight_mName_set(swigCPtr, aiString.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiLight_mName_get(swigCPtr); - aiString ret = (cPtr == IntPtr.Zero) ? null : new aiString(cPtr, false); - return ret; - } - } - - public aiLightSourceType mType { - set { - AssimpPINVOKE.aiLight_mType_set(swigCPtr, (int)value); - } - get { - aiLightSourceType ret = (aiLightSourceType)AssimpPINVOKE.aiLight_mType_get(swigCPtr); - return ret; - } - } - - public aiVector3D mPosition { - set { - AssimpPINVOKE.aiLight_mPosition_set(swigCPtr, aiVector3D.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiLight_mPosition_get(swigCPtr); - aiVector3D ret = (cPtr == IntPtr.Zero) ? null : new aiVector3D(cPtr, false); - return ret; - } - } - - public aiVector3D mDirection { - set { - AssimpPINVOKE.aiLight_mDirection_set(swigCPtr, aiVector3D.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiLight_mDirection_get(swigCPtr); - aiVector3D ret = (cPtr == IntPtr.Zero) ? null : new aiVector3D(cPtr, false); - return ret; - } - } - - public float mAttenuationConstant { - set { - AssimpPINVOKE.aiLight_mAttenuationConstant_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiLight_mAttenuationConstant_get(swigCPtr); - return ret; - } - } - - public float mAttenuationLinear { - set { - AssimpPINVOKE.aiLight_mAttenuationLinear_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiLight_mAttenuationLinear_get(swigCPtr); - return ret; - } - } - - public float mAttenuationQuadratic { - set { - AssimpPINVOKE.aiLight_mAttenuationQuadratic_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiLight_mAttenuationQuadratic_get(swigCPtr); - return ret; - } - } - - public aiColor3D mColorDiffuse { - set { - AssimpPINVOKE.aiLight_mColorDiffuse_set(swigCPtr, aiColor3D.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiLight_mColorDiffuse_get(swigCPtr); - aiColor3D ret = (cPtr == IntPtr.Zero) ? null : new aiColor3D(cPtr, false); - return ret; - } - } - - public aiColor3D mColorSpecular { - set { - AssimpPINVOKE.aiLight_mColorSpecular_set(swigCPtr, aiColor3D.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiLight_mColorSpecular_get(swigCPtr); - aiColor3D ret = (cPtr == IntPtr.Zero) ? null : new aiColor3D(cPtr, false); - return ret; - } - } - - public aiColor3D mColorAmbient { - set { - AssimpPINVOKE.aiLight_mColorAmbient_set(swigCPtr, aiColor3D.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiLight_mColorAmbient_get(swigCPtr); - aiColor3D ret = (cPtr == IntPtr.Zero) ? null : new aiColor3D(cPtr, false); - return ret; - } - } - - public float mAngleInnerCone { - set { - AssimpPINVOKE.aiLight_mAngleInnerCone_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiLight_mAngleInnerCone_get(swigCPtr); - return ret; - } - } - - public float mAngleOuterCone { - set { - AssimpPINVOKE.aiLight_mAngleOuterCone_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiLight_mAngleOuterCone_get(swigCPtr); - return ret; - } - } - - public aiLight() : this(AssimpPINVOKE.new_aiLight(), true) { - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiLightSourceType.cs b/port/Assimp.NET/Assimp.NET_CS/aiLightSourceType.cs deleted file mode 100644 index aedc03417..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiLightSourceType.cs +++ /dev/null @@ -1,15 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiLightSourceType { - aiLightSource_UNDEFINED = 0x0, - aiLightSource_DIRECTIONAL = 0x1, - aiLightSource_POINT = 0x2, - aiLightSource_SPOT = 0x3 -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiLightVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiLightVector.cs deleted file mode 100644 index 6bf566e1e..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiLightVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiLightVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiLightVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiLightVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiLightVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiLightVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiLightVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiLight element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiLight this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiLight[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiLight[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiLight[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiLightVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiLightVectorEnumerator(this); - } - - public aiLightVectorEnumerator GetEnumerator() { - return new aiLightVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiLightVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiLightVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiLightVectorEnumerator(aiLightVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiLight Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiLight)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiLightVector_Clear(swigCPtr); - } - - public void Add(aiLight x) { - AssimpPINVOKE.aiLightVector_Add(swigCPtr, aiLight.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiLightVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiLightVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiLightVector_reserve(swigCPtr, n); - } - - public aiLightVector() : this(AssimpPINVOKE.new_aiLightVector__SWIG_0(), true) { - } - - public aiLightVector(aiLightVector other) : this(AssimpPINVOKE.new_aiLightVector__SWIG_1(aiLightVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiLightVector(int capacity) : this(AssimpPINVOKE.new_aiLightVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiLight getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiLightVector_getitemcopy(swigCPtr, index); - aiLight ret = (cPtr == IntPtr.Zero) ? null : new aiLight(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiLight getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiLightVector_getitem(swigCPtr, index); - aiLight ret = (cPtr == IntPtr.Zero) ? null : new aiLight(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiLight val) { - AssimpPINVOKE.aiLightVector_setitem(swigCPtr, index, aiLight.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiLightVector values) { - AssimpPINVOKE.aiLightVector_AddRange(swigCPtr, aiLightVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiLightVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiLightVector_GetRange(swigCPtr, index, count); - aiLightVector ret = (cPtr == IntPtr.Zero) ? null : new aiLightVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiLight x) { - AssimpPINVOKE.aiLightVector_Insert(swigCPtr, index, aiLight.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiLightVector values) { - AssimpPINVOKE.aiLightVector_InsertRange(swigCPtr, index, aiLightVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiLightVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiLightVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiLightVector Repeat(aiLight value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiLightVector_Repeat(aiLight.getCPtr(value), count); - aiLightVector ret = (cPtr == IntPtr.Zero) ? null : new aiLightVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiLightVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiLightVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiLightVector values) { - AssimpPINVOKE.aiLightVector_SetRange(swigCPtr, index, aiLightVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiLight value) { - bool ret = AssimpPINVOKE.aiLightVector_Contains(swigCPtr, aiLight.getCPtr(value)); - return ret; - } - - public int IndexOf(aiLight value) { - int ret = AssimpPINVOKE.aiLightVector_IndexOf(swigCPtr, aiLight.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiLight value) { - int ret = AssimpPINVOKE.aiLightVector_LastIndexOf(swigCPtr, aiLight.getCPtr(value)); - return ret; - } - - public bool Remove(aiLight value) { - bool ret = AssimpPINVOKE.aiLightVector_Remove(swigCPtr, aiLight.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiMaterial.cs b/port/Assimp.NET/Assimp.NET_CS/aiMaterial.cs deleted file mode 100644 index 11e9354c3..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiMaterial.cs +++ /dev/null @@ -1,227 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiMaterial : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiMaterial(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiMaterial obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiMaterial() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiMaterial(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - 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; - - public aiMaterial() : this(AssimpPINVOKE.new_aiMaterial(), true) { - } - - public uint GetTextureCount(aiTextureType type) { - uint ret = AssimpPINVOKE.aiMaterial_GetTextureCount(swigCPtr, (int)type); - return ret; - } - - public aiReturn AddBinaryProperty(SWIGTYPE_p_void pInput, uint pSizeInBytes, string pKey, uint type, uint index, aiPropertyTypeInfo pType) { - aiReturn ret = (aiReturn)AssimpPINVOKE.aiMaterial_AddBinaryProperty(swigCPtr, SWIGTYPE_p_void.getCPtr(pInput), pSizeInBytes, pKey, type, index, (int)pType); - return ret; - } - - public aiReturn AddProperty(aiString pInput, string pKey, uint type, uint index) { - aiReturn ret = (aiReturn)AssimpPINVOKE.aiMaterial_AddProperty__SWIG_0(swigCPtr, aiString.getCPtr(pInput), pKey, type, index); - return ret; - } - - public aiReturn AddProperty(aiString pInput, string pKey, uint type) { - aiReturn ret = (aiReturn)AssimpPINVOKE.aiMaterial_AddProperty__SWIG_1(swigCPtr, aiString.getCPtr(pInput), pKey, type); - return ret; - } - - public aiReturn AddProperty(aiString pInput, string pKey) { - aiReturn ret = (aiReturn)AssimpPINVOKE.aiMaterial_AddProperty__SWIG_2(swigCPtr, aiString.getCPtr(pInput), pKey); - return ret; - } - - public aiReturn RemoveProperty(string pKey, uint type, uint index) { - aiReturn ret = (aiReturn)AssimpPINVOKE.aiMaterial_RemoveProperty__SWIG_0(swigCPtr, pKey, type, index); - return ret; - } - - public aiReturn RemoveProperty(string pKey, uint type) { - aiReturn ret = (aiReturn)AssimpPINVOKE.aiMaterial_RemoveProperty__SWIG_1(swigCPtr, pKey, type); - return ret; - } - - public aiReturn RemoveProperty(string pKey) { - aiReturn ret = (aiReturn)AssimpPINVOKE.aiMaterial_RemoveProperty__SWIG_2(swigCPtr, pKey); - return ret; - } - - public void Clear() { - AssimpPINVOKE.aiMaterial_Clear(swigCPtr); - } - - public static void CopyPropertyList(aiMaterial pcDest, aiMaterial pcSrc) { - AssimpPINVOKE.aiMaterial_CopyPropertyList(aiMaterial.getCPtr(pcDest), aiMaterial.getCPtr(pcSrc)); - } - - public bool GetDiffuse(aiColor4D INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetDiffuse(swigCPtr, aiColor4D.getCPtr(INOUT)); - return ret; - } - - public bool GetSpecular(aiColor4D INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetSpecular(swigCPtr, aiColor4D.getCPtr(INOUT)); - return ret; - } - - public bool GetAmbient(aiColor4D INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetAmbient(swigCPtr, aiColor4D.getCPtr(INOUT)); - return ret; - } - - public bool GetEmissive(aiColor4D INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetEmissive(swigCPtr, aiColor4D.getCPtr(INOUT)); - return ret; - } - - public bool GetOpacity(ref float INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetOpacity(swigCPtr, ref INOUT); - return ret; - } - - public bool GetShininessStrength(ref float INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetShininessStrength(swigCPtr, ref INOUT); - return ret; - } - - public bool GetShadingModel(ref int INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetShadingModel(swigCPtr, ref INOUT); - return ret; - } - - public bool GetTexFlagsDiffuse0(ref int INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetTexFlagsDiffuse0(swigCPtr, ref INOUT); - return ret; - } - - public bool GetMappingModeUDiffuse0(ref int INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetMappingModeUDiffuse0(swigCPtr, ref INOUT); - return ret; - } - - public bool GetMappingModeVDiffuse0(ref int INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetMappingModeVDiffuse0(swigCPtr, ref INOUT); - return ret; - } - - public bool GetTextureDiffuse0(aiString INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetTextureDiffuse0(swigCPtr, aiString.getCPtr(INOUT)); - return ret; - } - - public bool GetTextureSpecular0(aiString INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetTextureSpecular0(swigCPtr, aiString.getCPtr(INOUT)); - return ret; - } - - public bool GetTextureOpacity0(aiString INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetTextureOpacity0(swigCPtr, aiString.getCPtr(INOUT)); - return ret; - } - - public bool GetTextureAmbient0(aiString INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetTextureAmbient0(swigCPtr, aiString.getCPtr(INOUT)); - return ret; - } - - public bool GetTextureEmissive0(aiString INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetTextureEmissive0(swigCPtr, aiString.getCPtr(INOUT)); - return ret; - } - - public bool GetTextureShininess0(aiString INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetTextureShininess0(swigCPtr, aiString.getCPtr(INOUT)); - return ret; - } - - public bool GetTextureLightmap0(aiString INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetTextureLightmap0(swigCPtr, aiString.getCPtr(INOUT)); - return ret; - } - - public bool GetTextureNormals0(aiString INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetTextureNormals0(swigCPtr, aiString.getCPtr(INOUT)); - return ret; - } - - public bool GetTextureHeight0(aiString INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetTextureHeight0(swigCPtr, aiString.getCPtr(INOUT)); - return ret; - } - - public bool GetGlobalBackgroundImage(aiString INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetGlobalBackgroundImage(swigCPtr, aiString.getCPtr(INOUT)); - return ret; - } - - public bool GetTwoSided(ref int INOUT) { - bool ret = AssimpPINVOKE.aiMaterial_GetTwoSided(swigCPtr, ref INOUT); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiMaterialProperty.cs b/port/Assimp.NET/Assimp.NET_CS/aiMaterialProperty.cs deleted file mode 100644 index b32e11a6b..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiMaterialProperty.cs +++ /dev/null @@ -1,107 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiMaterialProperty : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiMaterialProperty(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiMaterialProperty obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiMaterialProperty() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiMaterialProperty(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiString mKey { - set { - AssimpPINVOKE.aiMaterialProperty_mKey_set(swigCPtr, aiString.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiMaterialProperty_mKey_get(swigCPtr); - aiString ret = (cPtr == IntPtr.Zero) ? null : new aiString(cPtr, false); - return ret; - } - } - - public uint mSemantic { - set { - AssimpPINVOKE.aiMaterialProperty_mSemantic_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMaterialProperty_mSemantic_get(swigCPtr); - return ret; - } - } - - public uint mIndex { - set { - AssimpPINVOKE.aiMaterialProperty_mIndex_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMaterialProperty_mIndex_get(swigCPtr); - return ret; - } - } - - public uint mDataLength { - set { - AssimpPINVOKE.aiMaterialProperty_mDataLength_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMaterialProperty_mDataLength_get(swigCPtr); - return ret; - } - } - - public aiPropertyTypeInfo mType { - set { - AssimpPINVOKE.aiMaterialProperty_mType_set(swigCPtr, (int)value); - } - get { - aiPropertyTypeInfo ret = (aiPropertyTypeInfo)AssimpPINVOKE.aiMaterialProperty_mType_get(swigCPtr); - return ret; - } - } - - public string mData { - set { - AssimpPINVOKE.aiMaterialProperty_mData_set(swigCPtr, value); - } - get { - string ret = AssimpPINVOKE.aiMaterialProperty_mData_get(swigCPtr); - return ret; - } - } - - public aiMaterialProperty() : this(AssimpPINVOKE.new_aiMaterialProperty(), true) { - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiMaterialVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiMaterialVector.cs deleted file mode 100644 index 13c19ce1a..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiMaterialVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiMaterialVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiMaterialVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiMaterialVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiMaterialVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiMaterialVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiMaterialVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiMaterial element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiMaterial this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiMaterial[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiMaterial[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiMaterial[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiMaterialVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiMaterialVectorEnumerator(this); - } - - public aiMaterialVectorEnumerator GetEnumerator() { - return new aiMaterialVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiMaterialVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiMaterialVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiMaterialVectorEnumerator(aiMaterialVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiMaterial Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiMaterial)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiMaterialVector_Clear(swigCPtr); - } - - public void Add(aiMaterial x) { - AssimpPINVOKE.aiMaterialVector_Add(swigCPtr, aiMaterial.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiMaterialVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiMaterialVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiMaterialVector_reserve(swigCPtr, n); - } - - public aiMaterialVector() : this(AssimpPINVOKE.new_aiMaterialVector__SWIG_0(), true) { - } - - public aiMaterialVector(aiMaterialVector other) : this(AssimpPINVOKE.new_aiMaterialVector__SWIG_1(aiMaterialVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiMaterialVector(int capacity) : this(AssimpPINVOKE.new_aiMaterialVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiMaterial getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiMaterialVector_getitemcopy(swigCPtr, index); - aiMaterial ret = (cPtr == IntPtr.Zero) ? null : new aiMaterial(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiMaterial getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiMaterialVector_getitem(swigCPtr, index); - aiMaterial ret = (cPtr == IntPtr.Zero) ? null : new aiMaterial(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiMaterial val) { - AssimpPINVOKE.aiMaterialVector_setitem(swigCPtr, index, aiMaterial.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiMaterialVector values) { - AssimpPINVOKE.aiMaterialVector_AddRange(swigCPtr, aiMaterialVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiMaterialVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiMaterialVector_GetRange(swigCPtr, index, count); - aiMaterialVector ret = (cPtr == IntPtr.Zero) ? null : new aiMaterialVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiMaterial x) { - AssimpPINVOKE.aiMaterialVector_Insert(swigCPtr, index, aiMaterial.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiMaterialVector values) { - AssimpPINVOKE.aiMaterialVector_InsertRange(swigCPtr, index, aiMaterialVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiMaterialVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiMaterialVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiMaterialVector Repeat(aiMaterial value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiMaterialVector_Repeat(aiMaterial.getCPtr(value), count); - aiMaterialVector ret = (cPtr == IntPtr.Zero) ? null : new aiMaterialVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiMaterialVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiMaterialVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiMaterialVector values) { - AssimpPINVOKE.aiMaterialVector_SetRange(swigCPtr, index, aiMaterialVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiMaterial value) { - bool ret = AssimpPINVOKE.aiMaterialVector_Contains(swigCPtr, aiMaterial.getCPtr(value)); - return ret; - } - - public int IndexOf(aiMaterial value) { - int ret = AssimpPINVOKE.aiMaterialVector_IndexOf(swigCPtr, aiMaterial.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiMaterial value) { - int ret = AssimpPINVOKE.aiMaterialVector_LastIndexOf(swigCPtr, aiMaterial.getCPtr(value)); - return ret; - } - - public bool Remove(aiMaterial value) { - bool ret = AssimpPINVOKE.aiMaterialVector_Remove(swigCPtr, aiMaterial.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiMatrix3x3.cs b/port/Assimp.NET/Assimp.NET_CS/aiMatrix3x3.cs deleted file mode 100644 index 633f06721..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiMatrix3x3.cs +++ /dev/null @@ -1,212 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiMatrix3x3 : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiMatrix3x3(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiMatrix3x3 obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiMatrix3x3() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiMatrix3x3(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiMatrix3x3() : this(AssimpPINVOKE.new_aiMatrix3x3__SWIG_0(), true) { - } - - public aiMatrix3x3(float _a1, float _a2, float _a3, float _b1, float _b2, float _b3, float _c1, float _c2, float _c3) : this(AssimpPINVOKE.new_aiMatrix3x3__SWIG_1(_a1, _a2, _a3, _b1, _b2, _b3, _c1, _c2, _c3), true) { - } - - public aiMatrix3x3 __mulnset__(aiMatrix3x3 m) { - aiMatrix3x3 ret = new aiMatrix3x3(AssimpPINVOKE.aiMatrix3x3___mulnset__(swigCPtr, aiMatrix3x3.getCPtr(m)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiMatrix3x3 __mul__(aiMatrix3x3 m) { - aiMatrix3x3 ret = new aiMatrix3x3(AssimpPINVOKE.aiMatrix3x3___mul__(swigCPtr, aiMatrix3x3.getCPtr(m)), true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public SWIGTYPE_p_float __idx__(uint p_iIndex) { - IntPtr cPtr = AssimpPINVOKE.aiMatrix3x3___idx____SWIG_0(swigCPtr, p_iIndex); - SWIGTYPE_p_float ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_float(cPtr, false); - return ret; - } - - public bool __equal__(aiMatrix4x4 m) { - bool ret = AssimpPINVOKE.aiMatrix3x3___equal__(swigCPtr, aiMatrix4x4.getCPtr(m)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __nequal__(aiMatrix4x4 m) { - bool ret = AssimpPINVOKE.aiMatrix3x3___nequal__(swigCPtr, aiMatrix4x4.getCPtr(m)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiMatrix3x3(aiMatrix4x4 pMatrix) : this(AssimpPINVOKE.new_aiMatrix3x3__SWIG_2(aiMatrix4x4.getCPtr(pMatrix)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiMatrix3x3 Transpose() { - aiMatrix3x3 ret = new aiMatrix3x3(AssimpPINVOKE.aiMatrix3x3_Transpose(swigCPtr), false); - return ret; - } - - public aiMatrix3x3 Inverse() { - aiMatrix3x3 ret = new aiMatrix3x3(AssimpPINVOKE.aiMatrix3x3_Inverse(swigCPtr), false); - return ret; - } - - public float Determinant() { - float ret = AssimpPINVOKE.aiMatrix3x3_Determinant(swigCPtr); - return ret; - } - - public static aiMatrix3x3 RotationZ(float a, aiMatrix3x3 arg1) { - aiMatrix3x3 ret = new aiMatrix3x3(AssimpPINVOKE.aiMatrix3x3_RotationZ(a, aiMatrix3x3.getCPtr(arg1)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public static aiMatrix3x3 Rotation(float a, aiVector3D axis, aiMatrix3x3 arg2) { - aiMatrix3x3 ret = new aiMatrix3x3(AssimpPINVOKE.aiMatrix3x3_Rotation(a, aiVector3D.getCPtr(axis), aiMatrix3x3.getCPtr(arg2)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public static aiMatrix3x3 Translation(aiVector2D v, aiMatrix3x3 arg1) { - aiMatrix3x3 ret = new aiMatrix3x3(AssimpPINVOKE.aiMatrix3x3_Translation(aiVector2D.getCPtr(v), aiMatrix3x3.getCPtr(arg1)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public static aiMatrix3x3 FromToMatrix(aiVector3D from, aiVector3D to, aiMatrix3x3 arg2) { - aiMatrix3x3 ret = new aiMatrix3x3(AssimpPINVOKE.aiMatrix3x3_FromToMatrix(aiVector3D.getCPtr(from), aiVector3D.getCPtr(to), aiMatrix3x3.getCPtr(arg2)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public float a1 { - set { - AssimpPINVOKE.aiMatrix3x3_a1_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix3x3_a1_get(swigCPtr); - return ret; - } - } - - public float a2 { - set { - AssimpPINVOKE.aiMatrix3x3_a2_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix3x3_a2_get(swigCPtr); - return ret; - } - } - - public float a3 { - set { - AssimpPINVOKE.aiMatrix3x3_a3_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix3x3_a3_get(swigCPtr); - return ret; - } - } - - public float b1 { - set { - AssimpPINVOKE.aiMatrix3x3_b1_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix3x3_b1_get(swigCPtr); - return ret; - } - } - - public float b2 { - set { - AssimpPINVOKE.aiMatrix3x3_b2_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix3x3_b2_get(swigCPtr); - return ret; - } - } - - public float b3 { - set { - AssimpPINVOKE.aiMatrix3x3_b3_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix3x3_b3_get(swigCPtr); - return ret; - } - } - - public float c1 { - set { - AssimpPINVOKE.aiMatrix3x3_c1_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix3x3_c1_get(swigCPtr); - return ret; - } - } - - public float c2 { - set { - AssimpPINVOKE.aiMatrix3x3_c2_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix3x3_c2_get(swigCPtr); - return ret; - } - } - - public float c3 { - set { - AssimpPINVOKE.aiMatrix3x3_c3_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix3x3_c3_get(swigCPtr); - return ret; - } - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiMatrix4x4.cs b/port/Assimp.NET/Assimp.NET_CS/aiMatrix4x4.cs deleted file mode 100644 index aae451646..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiMatrix4x4.cs +++ /dev/null @@ -1,326 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiMatrix4x4 : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiMatrix4x4(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiMatrix4x4 obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiMatrix4x4() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiMatrix4x4(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiMatrix4x4() : this(AssimpPINVOKE.new_aiMatrix4x4__SWIG_0(), true) { - } - - public aiMatrix4x4(float _a1, float _a2, float _a3, float _a4, float _b1, float _b2, float _b3, float _b4, float _c1, float _c2, float _c3, float _c4, float _d1, float _d2, float _d3, float _d4) : this(AssimpPINVOKE.new_aiMatrix4x4__SWIG_1(_a1, _a2, _a3, _a4, _b1, _b2, _b3, _b4, _c1, _c2, _c3, _c4, _d1, _d2, _d3, _d4), true) { - } - - public aiMatrix4x4(aiMatrix3x3 m) : this(AssimpPINVOKE.new_aiMatrix4x4__SWIG_2(aiMatrix3x3.getCPtr(m)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public SWIGTYPE_p_float __idx__(uint p_iIndex) { - IntPtr cPtr = AssimpPINVOKE.aiMatrix4x4___idx____SWIG_0(swigCPtr, p_iIndex); - SWIGTYPE_p_float ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_float(cPtr, false); - return ret; - } - - public bool __equal__(aiMatrix4x4 m) { - bool ret = AssimpPINVOKE.aiMatrix4x4___equal__(swigCPtr, aiMatrix4x4.getCPtr(m)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __nequal__(aiMatrix4x4 m) { - bool ret = AssimpPINVOKE.aiMatrix4x4___nequal__(swigCPtr, aiMatrix4x4.getCPtr(m)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiMatrix4x4 __mulnset__(aiMatrix4x4 m) { - aiMatrix4x4 ret = new aiMatrix4x4(AssimpPINVOKE.aiMatrix4x4___mulnset__(swigCPtr, aiMatrix4x4.getCPtr(m)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiMatrix4x4 __mul__(aiMatrix4x4 m) { - aiMatrix4x4 ret = new aiMatrix4x4(AssimpPINVOKE.aiMatrix4x4___mul__(swigCPtr, aiMatrix4x4.getCPtr(m)), true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiMatrix4x4 Transpose() { - aiMatrix4x4 ret = new aiMatrix4x4(AssimpPINVOKE.aiMatrix4x4_Transpose(swigCPtr), false); - return ret; - } - - public aiMatrix4x4 Inverse() { - aiMatrix4x4 ret = new aiMatrix4x4(AssimpPINVOKE.aiMatrix4x4_Inverse(swigCPtr), false); - return ret; - } - - public float Determinant() { - float ret = AssimpPINVOKE.aiMatrix4x4_Determinant(swigCPtr); - return ret; - } - - public bool IsIdentity() { - bool ret = AssimpPINVOKE.aiMatrix4x4_IsIdentity(swigCPtr); - return ret; - } - - public void Decompose(aiVector3D scaling, aiQuaternion rotation, aiVector3D position) { - AssimpPINVOKE.aiMatrix4x4_Decompose(swigCPtr, aiVector3D.getCPtr(scaling), aiQuaternion.getCPtr(rotation), aiVector3D.getCPtr(position)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void DecomposeNoScaling(aiQuaternion rotation, aiVector3D position) { - AssimpPINVOKE.aiMatrix4x4_DecomposeNoScaling(swigCPtr, aiQuaternion.getCPtr(rotation), aiVector3D.getCPtr(position)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiMatrix4x4 FromEulerAnglesXYZ(float x, float y, float z) { - aiMatrix4x4 ret = new aiMatrix4x4(AssimpPINVOKE.aiMatrix4x4_FromEulerAnglesXYZ__SWIG_0(swigCPtr, x, y, z), false); - return ret; - } - - public aiMatrix4x4 FromEulerAnglesXYZ(aiVector3D blubb) { - aiMatrix4x4 ret = new aiMatrix4x4(AssimpPINVOKE.aiMatrix4x4_FromEulerAnglesXYZ__SWIG_1(swigCPtr, aiVector3D.getCPtr(blubb)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public static aiMatrix4x4 RotationX(float a, aiMatrix4x4 arg1) { - aiMatrix4x4 ret = new aiMatrix4x4(AssimpPINVOKE.aiMatrix4x4_RotationX(a, aiMatrix4x4.getCPtr(arg1)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public static aiMatrix4x4 RotationY(float a, aiMatrix4x4 arg1) { - aiMatrix4x4 ret = new aiMatrix4x4(AssimpPINVOKE.aiMatrix4x4_RotationY(a, aiMatrix4x4.getCPtr(arg1)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public static aiMatrix4x4 RotationZ(float a, aiMatrix4x4 arg1) { - aiMatrix4x4 ret = new aiMatrix4x4(AssimpPINVOKE.aiMatrix4x4_RotationZ(a, aiMatrix4x4.getCPtr(arg1)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public static aiMatrix4x4 Rotation(float a, aiVector3D axis, aiMatrix4x4 arg2) { - aiMatrix4x4 ret = new aiMatrix4x4(AssimpPINVOKE.aiMatrix4x4_Rotation(a, aiVector3D.getCPtr(axis), aiMatrix4x4.getCPtr(arg2)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public static aiMatrix4x4 Translation(aiVector3D v, aiMatrix4x4 arg1) { - aiMatrix4x4 ret = new aiMatrix4x4(AssimpPINVOKE.aiMatrix4x4_Translation(aiVector3D.getCPtr(v), aiMatrix4x4.getCPtr(arg1)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public static aiMatrix4x4 Scaling(aiVector3D v, aiMatrix4x4 arg1) { - aiMatrix4x4 ret = new aiMatrix4x4(AssimpPINVOKE.aiMatrix4x4_Scaling(aiVector3D.getCPtr(v), aiMatrix4x4.getCPtr(arg1)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public static aiMatrix4x4 FromToMatrix(aiVector3D from, aiVector3D to, aiMatrix4x4 arg2) { - aiMatrix4x4 ret = new aiMatrix4x4(AssimpPINVOKE.aiMatrix4x4_FromToMatrix(aiVector3D.getCPtr(from), aiVector3D.getCPtr(to), aiMatrix4x4.getCPtr(arg2)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public float a1 { - set { - AssimpPINVOKE.aiMatrix4x4_a1_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_a1_get(swigCPtr); - return ret; - } - } - - public float a2 { - set { - AssimpPINVOKE.aiMatrix4x4_a2_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_a2_get(swigCPtr); - return ret; - } - } - - public float a3 { - set { - AssimpPINVOKE.aiMatrix4x4_a3_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_a3_get(swigCPtr); - return ret; - } - } - - public float a4 { - set { - AssimpPINVOKE.aiMatrix4x4_a4_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_a4_get(swigCPtr); - return ret; - } - } - - public float b1 { - set { - AssimpPINVOKE.aiMatrix4x4_b1_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_b1_get(swigCPtr); - return ret; - } - } - - public float b2 { - set { - AssimpPINVOKE.aiMatrix4x4_b2_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_b2_get(swigCPtr); - return ret; - } - } - - public float b3 { - set { - AssimpPINVOKE.aiMatrix4x4_b3_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_b3_get(swigCPtr); - return ret; - } - } - - public float b4 { - set { - AssimpPINVOKE.aiMatrix4x4_b4_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_b4_get(swigCPtr); - return ret; - } - } - - public float c1 { - set { - AssimpPINVOKE.aiMatrix4x4_c1_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_c1_get(swigCPtr); - return ret; - } - } - - public float c2 { - set { - AssimpPINVOKE.aiMatrix4x4_c2_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_c2_get(swigCPtr); - return ret; - } - } - - public float c3 { - set { - AssimpPINVOKE.aiMatrix4x4_c3_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_c3_get(swigCPtr); - return ret; - } - } - - public float c4 { - set { - AssimpPINVOKE.aiMatrix4x4_c4_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_c4_get(swigCPtr); - return ret; - } - } - - public float d1 { - set { - AssimpPINVOKE.aiMatrix4x4_d1_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_d1_get(swigCPtr); - return ret; - } - } - - public float d2 { - set { - AssimpPINVOKE.aiMatrix4x4_d2_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_d2_get(swigCPtr); - return ret; - } - } - - public float d3 { - set { - AssimpPINVOKE.aiMatrix4x4_d3_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_d3_get(swigCPtr); - return ret; - } - } - - public float d4 { - set { - AssimpPINVOKE.aiMatrix4x4_d4_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiMatrix4x4_d4_get(swigCPtr); - return ret; - } - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiMemoryInfo.cs b/port/Assimp.NET/Assimp.NET_CS/aiMemoryInfo.cs deleted file mode 100644 index 734f00606..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiMemoryInfo.cs +++ /dev/null @@ -1,126 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiMemoryInfo : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiMemoryInfo(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiMemoryInfo obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiMemoryInfo() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiMemoryInfo(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiMemoryInfo() : this(AssimpPINVOKE.new_aiMemoryInfo(), true) { - } - - public uint textures { - set { - AssimpPINVOKE.aiMemoryInfo_textures_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMemoryInfo_textures_get(swigCPtr); - return ret; - } - } - - public uint materials { - set { - AssimpPINVOKE.aiMemoryInfo_materials_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMemoryInfo_materials_get(swigCPtr); - return ret; - } - } - - public uint meshes { - set { - AssimpPINVOKE.aiMemoryInfo_meshes_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMemoryInfo_meshes_get(swigCPtr); - return ret; - } - } - - public uint nodes { - set { - AssimpPINVOKE.aiMemoryInfo_nodes_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMemoryInfo_nodes_get(swigCPtr); - return ret; - } - } - - public uint animations { - set { - AssimpPINVOKE.aiMemoryInfo_animations_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMemoryInfo_animations_get(swigCPtr); - return ret; - } - } - - public uint cameras { - set { - AssimpPINVOKE.aiMemoryInfo_cameras_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMemoryInfo_cameras_get(swigCPtr); - return ret; - } - } - - public uint lights { - set { - AssimpPINVOKE.aiMemoryInfo_lights_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMemoryInfo_lights_get(swigCPtr); - return ret; - } - } - - public uint total { - set { - AssimpPINVOKE.aiMemoryInfo_total_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMemoryInfo_total_get(swigCPtr); - return ret; - } - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiMesh.cs b/port/Assimp.NET/Assimp.NET_CS/aiMesh.cs deleted file mode 100644 index bf55782ce..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiMesh.cs +++ /dev/null @@ -1,227 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiMesh : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiMesh(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiMesh obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiMesh() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiMesh(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - 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(); } } - - public aiPrimitiveType mPrimitiveTypes { - set { - AssimpPINVOKE.aiMesh_mPrimitiveTypes_set(swigCPtr, (uint)value); - } get { return (aiPrimitiveType)AssimpPINVOKE.aiMesh_mPrimitiveTypes_get(swigCPtr); } - } - - public uint mNumVertices { - set { - AssimpPINVOKE.aiMesh_mNumVertices_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMesh_mNumVertices_get(swigCPtr); - return ret; - } - } - - public uint mNumFaces { - set { - AssimpPINVOKE.aiMesh_mNumFaces_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMesh_mNumFaces_get(swigCPtr); - return ret; - } - } - - public uint mNumBones { - set { - AssimpPINVOKE.aiMesh_mNumBones_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMesh_mNumBones_get(swigCPtr); - return ret; - } - } - - public uint mMaterialIndex { - set { - AssimpPINVOKE.aiMesh_mMaterialIndex_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMesh_mMaterialIndex_get(swigCPtr); - return ret; - } - } - - public aiString mName { - set { - AssimpPINVOKE.aiMesh_mName_set(swigCPtr, aiString.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiMesh_mName_get(swigCPtr); - aiString ret = (cPtr == IntPtr.Zero) ? null : new aiString(cPtr, false); - return ret; - } - } - - public uint mNumAnimMeshes { - set { - AssimpPINVOKE.aiMesh_mNumAnimMeshes_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMesh_mNumAnimMeshes_get(swigCPtr); - return ret; - } - } - - public aiMesh() : this(AssimpPINVOKE.new_aiMesh(), true) { - } - - public bool HasPositions() { - bool ret = AssimpPINVOKE.aiMesh_HasPositions(swigCPtr); - return ret; - } - - public bool HasFaces() { - bool ret = AssimpPINVOKE.aiMesh_HasFaces(swigCPtr); - return ret; - } - - public bool HasNormals() { - bool ret = AssimpPINVOKE.aiMesh_HasNormals(swigCPtr); - return ret; - } - - public bool HasTangentsAndBitangents() { - bool ret = AssimpPINVOKE.aiMesh_HasTangentsAndBitangents(swigCPtr); - return ret; - } - - public bool HasVertexColors(uint pIndex) { - bool ret = AssimpPINVOKE.aiMesh_HasVertexColors(swigCPtr, pIndex); - return ret; - } - - public bool HasTextureCoords(uint pIndex) { - bool ret = AssimpPINVOKE.aiMesh_HasTextureCoords(swigCPtr, pIndex); - return ret; - } - - public uint GetNumUVChannels() { - uint ret = AssimpPINVOKE.aiMesh_GetNumUVChannels(swigCPtr); - return ret; - } - - public uint GetNumColorChannels() { - uint ret = AssimpPINVOKE.aiMesh_GetNumColorChannels(swigCPtr); - return ret; - } - - public bool HasBones() { - bool ret = AssimpPINVOKE.aiMesh_HasBones(swigCPtr); - return ret; - } - - private aiAnimMeshVector GetmAnimMeshes() { - IntPtr cPtr = AssimpPINVOKE.aiMesh_GetmAnimMeshes(swigCPtr); - aiAnimMeshVector ret = (cPtr == IntPtr.Zero) ? null : new aiAnimMeshVector(cPtr, true); - return ret; - } - - private aiVector3DVector GetmBitangents() { - IntPtr cPtr = AssimpPINVOKE.aiMesh_GetmBitangents(swigCPtr); - aiVector3DVector ret = (cPtr == IntPtr.Zero) ? null : new aiVector3DVector(cPtr, true); - return ret; - } - - private aiBoneVector GetmBones() { - IntPtr cPtr = AssimpPINVOKE.aiMesh_GetmBones(swigCPtr); - aiBoneVector ret = (cPtr == IntPtr.Zero) ? null : new aiBoneVector(cPtr, true); - return ret; - } - - private aiColor4DVectorVector GetmColors() { - IntPtr cPtr = AssimpPINVOKE.aiMesh_GetmColors(swigCPtr); - aiColor4DVectorVector ret = (cPtr == IntPtr.Zero) ? null : new aiColor4DVectorVector(cPtr, true); - return ret; - } - - private aiFaceVector GetmFaces() { - IntPtr cPtr = AssimpPINVOKE.aiMesh_GetmFaces(swigCPtr); - aiFaceVector ret = (cPtr == IntPtr.Zero) ? null : new aiFaceVector(cPtr, true); - return ret; - } - - private aiVector3DVector GetmNormals() { - IntPtr cPtr = AssimpPINVOKE.aiMesh_GetmNormals(swigCPtr); - aiVector3DVector ret = (cPtr == IntPtr.Zero) ? null : new aiVector3DVector(cPtr, true); - return ret; - } - - private aiVector3DVector GetmTangents() { - IntPtr cPtr = AssimpPINVOKE.aiMesh_GetmTangents(swigCPtr); - aiVector3DVector ret = (cPtr == IntPtr.Zero) ? null : new aiVector3DVector(cPtr, true); - return ret; - } - - private aiVector3DVectorVector GetmTextureCoords() { - IntPtr cPtr = AssimpPINVOKE.aiMesh_GetmTextureCoords(swigCPtr); - aiVector3DVectorVector ret = (cPtr == IntPtr.Zero) ? null : new aiVector3DVectorVector(cPtr, true); - return ret; - } - - private UintVector GetmNumUVComponents() { - IntPtr cPtr = AssimpPINVOKE.aiMesh_GetmNumUVComponents(swigCPtr); - UintVector ret = (cPtr == IntPtr.Zero) ? null : new UintVector(cPtr, true); - return ret; - } - - private aiVector3DVector GetmVertices() { - IntPtr cPtr = AssimpPINVOKE.aiMesh_GetmVertices(swigCPtr); - aiVector3DVector ret = (cPtr == IntPtr.Zero) ? null : new aiVector3DVector(cPtr, true); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiMeshAnim.cs b/port/Assimp.NET/Assimp.NET_CS/aiMeshAnim.cs deleted file mode 100644 index 78237a555..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiMeshAnim.cs +++ /dev/null @@ -1,75 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiMeshAnim : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiMeshAnim(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiMeshAnim obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiMeshAnim() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiMeshAnim(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiMeshKeyVector mKeys { get { return GetmKeys(); } } - - public aiString mName { - set { - AssimpPINVOKE.aiMeshAnim_mName_set(swigCPtr, aiString.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiMeshAnim_mName_get(swigCPtr); - aiString ret = (cPtr == IntPtr.Zero) ? null : new aiString(cPtr, false); - return ret; - } - } - - public uint mNumKeys { - set { - AssimpPINVOKE.aiMeshAnim_mNumKeys_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMeshAnim_mNumKeys_get(swigCPtr); - return ret; - } - } - - public aiMeshAnim() : this(AssimpPINVOKE.new_aiMeshAnim(), true) { - } - - private aiMeshKeyVector GetmKeys() { - IntPtr cPtr = AssimpPINVOKE.aiMeshAnim_GetmKeys(swigCPtr); - aiMeshKeyVector ret = (cPtr == IntPtr.Zero) ? null : new aiMeshKeyVector(cPtr, true); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiMeshAnimVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiMeshAnimVector.cs deleted file mode 100644 index c862c258c..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiMeshAnimVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiMeshAnimVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiMeshAnimVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiMeshAnimVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiMeshAnimVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiMeshAnimVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiMeshAnimVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiMeshAnim element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiMeshAnim this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiMeshAnim[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiMeshAnim[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiMeshAnim[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiMeshAnimVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiMeshAnimVectorEnumerator(this); - } - - public aiMeshAnimVectorEnumerator GetEnumerator() { - return new aiMeshAnimVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiMeshAnimVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiMeshAnimVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiMeshAnimVectorEnumerator(aiMeshAnimVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiMeshAnim Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiMeshAnim)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiMeshAnimVector_Clear(swigCPtr); - } - - public void Add(aiMeshAnim x) { - AssimpPINVOKE.aiMeshAnimVector_Add(swigCPtr, aiMeshAnim.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiMeshAnimVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiMeshAnimVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiMeshAnimVector_reserve(swigCPtr, n); - } - - public aiMeshAnimVector() : this(AssimpPINVOKE.new_aiMeshAnimVector__SWIG_0(), true) { - } - - public aiMeshAnimVector(aiMeshAnimVector other) : this(AssimpPINVOKE.new_aiMeshAnimVector__SWIG_1(aiMeshAnimVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiMeshAnimVector(int capacity) : this(AssimpPINVOKE.new_aiMeshAnimVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiMeshAnim getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiMeshAnimVector_getitemcopy(swigCPtr, index); - aiMeshAnim ret = (cPtr == IntPtr.Zero) ? null : new aiMeshAnim(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiMeshAnim getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiMeshAnimVector_getitem(swigCPtr, index); - aiMeshAnim ret = (cPtr == IntPtr.Zero) ? null : new aiMeshAnim(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiMeshAnim val) { - AssimpPINVOKE.aiMeshAnimVector_setitem(swigCPtr, index, aiMeshAnim.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiMeshAnimVector values) { - AssimpPINVOKE.aiMeshAnimVector_AddRange(swigCPtr, aiMeshAnimVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiMeshAnimVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiMeshAnimVector_GetRange(swigCPtr, index, count); - aiMeshAnimVector ret = (cPtr == IntPtr.Zero) ? null : new aiMeshAnimVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiMeshAnim x) { - AssimpPINVOKE.aiMeshAnimVector_Insert(swigCPtr, index, aiMeshAnim.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiMeshAnimVector values) { - AssimpPINVOKE.aiMeshAnimVector_InsertRange(swigCPtr, index, aiMeshAnimVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiMeshAnimVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiMeshAnimVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiMeshAnimVector Repeat(aiMeshAnim value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiMeshAnimVector_Repeat(aiMeshAnim.getCPtr(value), count); - aiMeshAnimVector ret = (cPtr == IntPtr.Zero) ? null : new aiMeshAnimVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiMeshAnimVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiMeshAnimVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiMeshAnimVector values) { - AssimpPINVOKE.aiMeshAnimVector_SetRange(swigCPtr, index, aiMeshAnimVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiMeshAnim value) { - bool ret = AssimpPINVOKE.aiMeshAnimVector_Contains(swigCPtr, aiMeshAnim.getCPtr(value)); - return ret; - } - - public int IndexOf(aiMeshAnim value) { - int ret = AssimpPINVOKE.aiMeshAnimVector_IndexOf(swigCPtr, aiMeshAnim.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiMeshAnim value) { - int ret = AssimpPINVOKE.aiMeshAnimVector_LastIndexOf(swigCPtr, aiMeshAnim.getCPtr(value)); - return ret; - } - - public bool Remove(aiMeshAnim value) { - bool ret = AssimpPINVOKE.aiMeshAnimVector_Remove(swigCPtr, aiMeshAnim.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiMeshKey.cs b/port/Assimp.NET/Assimp.NET_CS/aiMeshKey.cs deleted file mode 100644 index af16589ff..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiMeshKey.cs +++ /dev/null @@ -1,93 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiMeshKey : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiMeshKey(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiMeshKey obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiMeshKey() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiMeshKey(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public double mTime { - set { - AssimpPINVOKE.aiMeshKey_mTime_set(swigCPtr, value); - } - get { - double ret = AssimpPINVOKE.aiMeshKey_mTime_get(swigCPtr); - return ret; - } - } - - public uint mValue { - set { - AssimpPINVOKE.aiMeshKey_mValue_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiMeshKey_mValue_get(swigCPtr); - return ret; - } - } - - public aiMeshKey() : this(AssimpPINVOKE.new_aiMeshKey__SWIG_0(), true) { - } - - public aiMeshKey(double time, uint value) : this(AssimpPINVOKE.new_aiMeshKey__SWIG_1(time, value), true) { - } - - public bool __equal__(aiMeshKey o) { - bool ret = AssimpPINVOKE.aiMeshKey___equal__(swigCPtr, aiMeshKey.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __nequal__(aiMeshKey o) { - bool ret = AssimpPINVOKE.aiMeshKey___nequal__(swigCPtr, aiMeshKey.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __smaller__(aiMeshKey o) { - bool ret = AssimpPINVOKE.aiMeshKey___smaller__(swigCPtr, aiMeshKey.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __greater__(aiMeshKey o) { - bool ret = AssimpPINVOKE.aiMeshKey___greater__(swigCPtr, aiMeshKey.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiMeshKeyVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiMeshKeyVector.cs deleted file mode 100644 index 73039be46..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiMeshKeyVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiMeshKeyVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiMeshKeyVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiMeshKeyVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiMeshKeyVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiMeshKeyVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiMeshKeyVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiMeshKey element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiMeshKey this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiMeshKey[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiMeshKey[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiMeshKey[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiMeshKeyVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiMeshKeyVectorEnumerator(this); - } - - public aiMeshKeyVectorEnumerator GetEnumerator() { - return new aiMeshKeyVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiMeshKeyVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiMeshKeyVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiMeshKeyVectorEnumerator(aiMeshKeyVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiMeshKey Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiMeshKey)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiMeshKeyVector_Clear(swigCPtr); - } - - public void Add(aiMeshKey x) { - AssimpPINVOKE.aiMeshKeyVector_Add(swigCPtr, aiMeshKey.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiMeshKeyVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiMeshKeyVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiMeshKeyVector_reserve(swigCPtr, n); - } - - public aiMeshKeyVector() : this(AssimpPINVOKE.new_aiMeshKeyVector__SWIG_0(), true) { - } - - public aiMeshKeyVector(aiMeshKeyVector other) : this(AssimpPINVOKE.new_aiMeshKeyVector__SWIG_1(aiMeshKeyVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiMeshKeyVector(int capacity) : this(AssimpPINVOKE.new_aiMeshKeyVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiMeshKey getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiMeshKeyVector_getitemcopy(swigCPtr, index); - aiMeshKey ret = (cPtr == IntPtr.Zero) ? null : new aiMeshKey(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiMeshKey getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiMeshKeyVector_getitem(swigCPtr, index); - aiMeshKey ret = (cPtr == IntPtr.Zero) ? null : new aiMeshKey(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiMeshKey val) { - AssimpPINVOKE.aiMeshKeyVector_setitem(swigCPtr, index, aiMeshKey.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiMeshKeyVector values) { - AssimpPINVOKE.aiMeshKeyVector_AddRange(swigCPtr, aiMeshKeyVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiMeshKeyVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiMeshKeyVector_GetRange(swigCPtr, index, count); - aiMeshKeyVector ret = (cPtr == IntPtr.Zero) ? null : new aiMeshKeyVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiMeshKey x) { - AssimpPINVOKE.aiMeshKeyVector_Insert(swigCPtr, index, aiMeshKey.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiMeshKeyVector values) { - AssimpPINVOKE.aiMeshKeyVector_InsertRange(swigCPtr, index, aiMeshKeyVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiMeshKeyVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiMeshKeyVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiMeshKeyVector Repeat(aiMeshKey value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiMeshKeyVector_Repeat(aiMeshKey.getCPtr(value), count); - aiMeshKeyVector ret = (cPtr == IntPtr.Zero) ? null : new aiMeshKeyVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiMeshKeyVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiMeshKeyVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiMeshKeyVector values) { - AssimpPINVOKE.aiMeshKeyVector_SetRange(swigCPtr, index, aiMeshKeyVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiMeshKey value) { - bool ret = AssimpPINVOKE.aiMeshKeyVector_Contains(swigCPtr, aiMeshKey.getCPtr(value)); - return ret; - } - - public int IndexOf(aiMeshKey value) { - int ret = AssimpPINVOKE.aiMeshKeyVector_IndexOf(swigCPtr, aiMeshKey.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiMeshKey value) { - int ret = AssimpPINVOKE.aiMeshKeyVector_LastIndexOf(swigCPtr, aiMeshKey.getCPtr(value)); - return ret; - } - - public bool Remove(aiMeshKey value) { - bool ret = AssimpPINVOKE.aiMeshKeyVector_Remove(swigCPtr, aiMeshKey.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiMeshVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiMeshVector.cs deleted file mode 100644 index 8ea841cf2..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiMeshVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiMeshVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiMeshVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiMeshVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiMeshVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiMeshVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiMeshVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiMesh element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiMesh this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiMesh[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiMesh[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiMesh[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiMeshVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiMeshVectorEnumerator(this); - } - - public aiMeshVectorEnumerator GetEnumerator() { - return new aiMeshVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiMeshVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiMeshVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiMeshVectorEnumerator(aiMeshVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiMesh Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiMesh)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiMeshVector_Clear(swigCPtr); - } - - public void Add(aiMesh x) { - AssimpPINVOKE.aiMeshVector_Add(swigCPtr, aiMesh.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiMeshVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiMeshVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiMeshVector_reserve(swigCPtr, n); - } - - public aiMeshVector() : this(AssimpPINVOKE.new_aiMeshVector__SWIG_0(), true) { - } - - public aiMeshVector(aiMeshVector other) : this(AssimpPINVOKE.new_aiMeshVector__SWIG_1(aiMeshVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiMeshVector(int capacity) : this(AssimpPINVOKE.new_aiMeshVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiMesh getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiMeshVector_getitemcopy(swigCPtr, index); - aiMesh ret = (cPtr == IntPtr.Zero) ? null : new aiMesh(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiMesh getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiMeshVector_getitem(swigCPtr, index); - aiMesh ret = (cPtr == IntPtr.Zero) ? null : new aiMesh(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiMesh val) { - AssimpPINVOKE.aiMeshVector_setitem(swigCPtr, index, aiMesh.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiMeshVector values) { - AssimpPINVOKE.aiMeshVector_AddRange(swigCPtr, aiMeshVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiMeshVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiMeshVector_GetRange(swigCPtr, index, count); - aiMeshVector ret = (cPtr == IntPtr.Zero) ? null : new aiMeshVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiMesh x) { - AssimpPINVOKE.aiMeshVector_Insert(swigCPtr, index, aiMesh.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiMeshVector values) { - AssimpPINVOKE.aiMeshVector_InsertRange(swigCPtr, index, aiMeshVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiMeshVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiMeshVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiMeshVector Repeat(aiMesh value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiMeshVector_Repeat(aiMesh.getCPtr(value), count); - aiMeshVector ret = (cPtr == IntPtr.Zero) ? null : new aiMeshVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiMeshVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiMeshVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiMeshVector values) { - AssimpPINVOKE.aiMeshVector_SetRange(swigCPtr, index, aiMeshVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiMesh value) { - bool ret = AssimpPINVOKE.aiMeshVector_Contains(swigCPtr, aiMesh.getCPtr(value)); - return ret; - } - - public int IndexOf(aiMesh value) { - int ret = AssimpPINVOKE.aiMeshVector_IndexOf(swigCPtr, aiMesh.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiMesh value) { - int ret = AssimpPINVOKE.aiMeshVector_LastIndexOf(swigCPtr, aiMesh.getCPtr(value)); - return ret; - } - - public bool Remove(aiMesh value) { - bool ret = AssimpPINVOKE.aiMeshVector_Remove(swigCPtr, aiMesh.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiNode.cs b/port/Assimp.NET/Assimp.NET_CS/aiNode.cs deleted file mode 100644 index 0e650c0d4..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiNode.cs +++ /dev/null @@ -1,131 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiNode : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiNode(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiNode obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiNode() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiNode(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiNodeVector mChildren { get { return GetmChildren(); } } - public UintVector mMeshes { get { return GetmMeshes(); } } - - public aiString mName { - set { - AssimpPINVOKE.aiNode_mName_set(swigCPtr, aiString.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiNode_mName_get(swigCPtr); - aiString ret = (cPtr == IntPtr.Zero) ? null : new aiString(cPtr, false); - return ret; - } - } - - public aiMatrix4x4 mTransformation { - set { - AssimpPINVOKE.aiNode_mTransformation_set(swigCPtr, aiMatrix4x4.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiNode_mTransformation_get(swigCPtr); - aiMatrix4x4 ret = (cPtr == IntPtr.Zero) ? null : new aiMatrix4x4(cPtr, false); - return ret; - } - } - - public aiNode mParent { - set { - AssimpPINVOKE.aiNode_mParent_set(swigCPtr, aiNode.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiNode_mParent_get(swigCPtr); - aiNode ret = (cPtr == IntPtr.Zero) ? null : new aiNode(cPtr, false); - return ret; - } - } - - public uint mNumChildren { - set { - AssimpPINVOKE.aiNode_mNumChildren_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiNode_mNumChildren_get(swigCPtr); - return ret; - } - } - - public uint mNumMeshes { - set { - AssimpPINVOKE.aiNode_mNumMeshes_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiNode_mNumMeshes_get(swigCPtr); - return ret; - } - } - - public aiNode() : this(AssimpPINVOKE.new_aiNode__SWIG_0(), true) { - } - - public aiNode(string name) : this(AssimpPINVOKE.new_aiNode__SWIG_1(name), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiNode FindNode(aiString name) { - IntPtr cPtr = AssimpPINVOKE.aiNode_FindNode__SWIG_0(swigCPtr, aiString.getCPtr(name)); - aiNode ret = (cPtr == IntPtr.Zero) ? null : new aiNode(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiNode FindNode(string name) { - IntPtr cPtr = AssimpPINVOKE.aiNode_FindNode__SWIG_1(swigCPtr, name); - aiNode ret = (cPtr == IntPtr.Zero) ? null : new aiNode(cPtr, false); - return ret; - } - - private aiNodeVector GetmChildren() { - IntPtr cPtr = AssimpPINVOKE.aiNode_GetmChildren(swigCPtr); - aiNodeVector ret = (cPtr == IntPtr.Zero) ? null : new aiNodeVector(cPtr, true); - return ret; - } - - private UintVector GetmMeshes() { - IntPtr cPtr = AssimpPINVOKE.aiNode_GetmMeshes(swigCPtr); - UintVector ret = (cPtr == IntPtr.Zero) ? null : new UintVector(cPtr, true); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiNodeAnim.cs b/port/Assimp.NET/Assimp.NET_CS/aiNodeAnim.cs deleted file mode 100644 index 629f4f2a9..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiNodeAnim.cs +++ /dev/null @@ -1,129 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiNodeAnim : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiNodeAnim(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiNodeAnim obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiNodeAnim() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiNodeAnim(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiVectorKeyVector mPositionKeys { get { return GetmPositionKeys(); } } - public aiQuatKeyVector mRotationKeys { get { return GetmRotationKeys(); } } - public aiVectorKeyVector mScalingKeys { get { return GetmScalingKeys(); } } - - public aiString mNodeName { - set { - AssimpPINVOKE.aiNodeAnim_mNodeName_set(swigCPtr, aiString.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiNodeAnim_mNodeName_get(swigCPtr); - aiString ret = (cPtr == IntPtr.Zero) ? null : new aiString(cPtr, false); - return ret; - } - } - - public uint mNumPositionKeys { - set { - AssimpPINVOKE.aiNodeAnim_mNumPositionKeys_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiNodeAnim_mNumPositionKeys_get(swigCPtr); - return ret; - } - } - - public uint mNumRotationKeys { - set { - AssimpPINVOKE.aiNodeAnim_mNumRotationKeys_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiNodeAnim_mNumRotationKeys_get(swigCPtr); - return ret; - } - } - - public uint mNumScalingKeys { - set { - AssimpPINVOKE.aiNodeAnim_mNumScalingKeys_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiNodeAnim_mNumScalingKeys_get(swigCPtr); - return ret; - } - } - - public aiAnimBehaviour mPreState { - set { - AssimpPINVOKE.aiNodeAnim_mPreState_set(swigCPtr, (int)value); - } - get { - aiAnimBehaviour ret = (aiAnimBehaviour)AssimpPINVOKE.aiNodeAnim_mPreState_get(swigCPtr); - return ret; - } - } - - public aiAnimBehaviour mPostState { - set { - AssimpPINVOKE.aiNodeAnim_mPostState_set(swigCPtr, (int)value); - } - get { - aiAnimBehaviour ret = (aiAnimBehaviour)AssimpPINVOKE.aiNodeAnim_mPostState_get(swigCPtr); - return ret; - } - } - - public aiNodeAnim() : this(AssimpPINVOKE.new_aiNodeAnim(), true) { - } - - private aiVectorKeyVector GetmPositionKeys() { - IntPtr cPtr = AssimpPINVOKE.aiNodeAnim_GetmPositionKeys(swigCPtr); - aiVectorKeyVector ret = (cPtr == IntPtr.Zero) ? null : new aiVectorKeyVector(cPtr, true); - return ret; - } - - private aiQuatKeyVector GetmRotationKeys() { - IntPtr cPtr = AssimpPINVOKE.aiNodeAnim_GetmRotationKeys(swigCPtr); - aiQuatKeyVector ret = (cPtr == IntPtr.Zero) ? null : new aiQuatKeyVector(cPtr, true); - return ret; - } - - private aiVectorKeyVector GetmScalingKeys() { - IntPtr cPtr = AssimpPINVOKE.aiNodeAnim_GetmScalingKeys(swigCPtr); - aiVectorKeyVector ret = (cPtr == IntPtr.Zero) ? null : new aiVectorKeyVector(cPtr, true); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiNodeAnimVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiNodeAnimVector.cs deleted file mode 100644 index 08ba41850..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiNodeAnimVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiNodeAnimVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiNodeAnimVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiNodeAnimVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiNodeAnimVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiNodeAnimVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiNodeAnimVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiNodeAnim element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiNodeAnim this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiNodeAnim[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiNodeAnim[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiNodeAnim[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiNodeAnimVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiNodeAnimVectorEnumerator(this); - } - - public aiNodeAnimVectorEnumerator GetEnumerator() { - return new aiNodeAnimVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiNodeAnimVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiNodeAnimVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiNodeAnimVectorEnumerator(aiNodeAnimVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiNodeAnim Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiNodeAnim)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiNodeAnimVector_Clear(swigCPtr); - } - - public void Add(aiNodeAnim x) { - AssimpPINVOKE.aiNodeAnimVector_Add(swigCPtr, aiNodeAnim.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiNodeAnimVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiNodeAnimVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiNodeAnimVector_reserve(swigCPtr, n); - } - - public aiNodeAnimVector() : this(AssimpPINVOKE.new_aiNodeAnimVector__SWIG_0(), true) { - } - - public aiNodeAnimVector(aiNodeAnimVector other) : this(AssimpPINVOKE.new_aiNodeAnimVector__SWIG_1(aiNodeAnimVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiNodeAnimVector(int capacity) : this(AssimpPINVOKE.new_aiNodeAnimVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiNodeAnim getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiNodeAnimVector_getitemcopy(swigCPtr, index); - aiNodeAnim ret = (cPtr == IntPtr.Zero) ? null : new aiNodeAnim(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiNodeAnim getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiNodeAnimVector_getitem(swigCPtr, index); - aiNodeAnim ret = (cPtr == IntPtr.Zero) ? null : new aiNodeAnim(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiNodeAnim val) { - AssimpPINVOKE.aiNodeAnimVector_setitem(swigCPtr, index, aiNodeAnim.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiNodeAnimVector values) { - AssimpPINVOKE.aiNodeAnimVector_AddRange(swigCPtr, aiNodeAnimVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiNodeAnimVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiNodeAnimVector_GetRange(swigCPtr, index, count); - aiNodeAnimVector ret = (cPtr == IntPtr.Zero) ? null : new aiNodeAnimVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiNodeAnim x) { - AssimpPINVOKE.aiNodeAnimVector_Insert(swigCPtr, index, aiNodeAnim.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiNodeAnimVector values) { - AssimpPINVOKE.aiNodeAnimVector_InsertRange(swigCPtr, index, aiNodeAnimVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiNodeAnimVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiNodeAnimVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiNodeAnimVector Repeat(aiNodeAnim value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiNodeAnimVector_Repeat(aiNodeAnim.getCPtr(value), count); - aiNodeAnimVector ret = (cPtr == IntPtr.Zero) ? null : new aiNodeAnimVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiNodeAnimVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiNodeAnimVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiNodeAnimVector values) { - AssimpPINVOKE.aiNodeAnimVector_SetRange(swigCPtr, index, aiNodeAnimVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiNodeAnim value) { - bool ret = AssimpPINVOKE.aiNodeAnimVector_Contains(swigCPtr, aiNodeAnim.getCPtr(value)); - return ret; - } - - public int IndexOf(aiNodeAnim value) { - int ret = AssimpPINVOKE.aiNodeAnimVector_IndexOf(swigCPtr, aiNodeAnim.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiNodeAnim value) { - int ret = AssimpPINVOKE.aiNodeAnimVector_LastIndexOf(swigCPtr, aiNodeAnim.getCPtr(value)); - return ret; - } - - public bool Remove(aiNodeAnim value) { - bool ret = AssimpPINVOKE.aiNodeAnimVector_Remove(swigCPtr, aiNodeAnim.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiNodeVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiNodeVector.cs deleted file mode 100644 index 5f7e0c7fd..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiNodeVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiNodeVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiNodeVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiNodeVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiNodeVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiNodeVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiNodeVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiNode element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiNode this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiNode[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiNode[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiNode[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiNodeVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiNodeVectorEnumerator(this); - } - - public aiNodeVectorEnumerator GetEnumerator() { - return new aiNodeVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiNodeVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiNodeVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiNodeVectorEnumerator(aiNodeVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiNode Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiNode)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiNodeVector_Clear(swigCPtr); - } - - public void Add(aiNode x) { - AssimpPINVOKE.aiNodeVector_Add(swigCPtr, aiNode.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiNodeVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiNodeVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiNodeVector_reserve(swigCPtr, n); - } - - public aiNodeVector() : this(AssimpPINVOKE.new_aiNodeVector__SWIG_0(), true) { - } - - public aiNodeVector(aiNodeVector other) : this(AssimpPINVOKE.new_aiNodeVector__SWIG_1(aiNodeVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiNodeVector(int capacity) : this(AssimpPINVOKE.new_aiNodeVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiNode getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiNodeVector_getitemcopy(swigCPtr, index); - aiNode ret = (cPtr == IntPtr.Zero) ? null : new aiNode(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiNode getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiNodeVector_getitem(swigCPtr, index); - aiNode ret = (cPtr == IntPtr.Zero) ? null : new aiNode(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiNode val) { - AssimpPINVOKE.aiNodeVector_setitem(swigCPtr, index, aiNode.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiNodeVector values) { - AssimpPINVOKE.aiNodeVector_AddRange(swigCPtr, aiNodeVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiNodeVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiNodeVector_GetRange(swigCPtr, index, count); - aiNodeVector ret = (cPtr == IntPtr.Zero) ? null : new aiNodeVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiNode x) { - AssimpPINVOKE.aiNodeVector_Insert(swigCPtr, index, aiNode.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiNodeVector values) { - AssimpPINVOKE.aiNodeVector_InsertRange(swigCPtr, index, aiNodeVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiNodeVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiNodeVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiNodeVector Repeat(aiNode value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiNodeVector_Repeat(aiNode.getCPtr(value), count); - aiNodeVector ret = (cPtr == IntPtr.Zero) ? null : new aiNodeVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiNodeVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiNodeVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiNodeVector values) { - AssimpPINVOKE.aiNodeVector_SetRange(swigCPtr, index, aiNodeVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiNode value) { - bool ret = AssimpPINVOKE.aiNodeVector_Contains(swigCPtr, aiNode.getCPtr(value)); - return ret; - } - - public int IndexOf(aiNode value) { - int ret = AssimpPINVOKE.aiNodeVector_IndexOf(swigCPtr, aiNode.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiNode value) { - int ret = AssimpPINVOKE.aiNodeVector_LastIndexOf(swigCPtr, aiNode.getCPtr(value)); - return ret; - } - - public bool Remove(aiNode value) { - bool ret = AssimpPINVOKE.aiNodeVector_Remove(swigCPtr, aiNode.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiOrigin.cs b/port/Assimp.NET/Assimp.NET_CS/aiOrigin.cs deleted file mode 100644 index 8dded0e55..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiOrigin.cs +++ /dev/null @@ -1,15 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiOrigin { - aiOrigin_SET = 0x0, - aiOrigin_CUR = 0x1, - aiOrigin_END = 0x2, - _AI_ORIGIN_ENFORCE_ENUM_SIZE = 0x7fffffff -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiPlane.cs b/port/Assimp.NET/Assimp.NET_CS/aiPlane.cs deleted file mode 100644 index e19fd572a..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiPlane.cs +++ /dev/null @@ -1,93 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiPlane : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiPlane(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiPlane obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiPlane() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiPlane(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiPlane() : this(AssimpPINVOKE.new_aiPlane__SWIG_0(), true) { - } - - public aiPlane(float _a, float _b, float _c, float _d) : this(AssimpPINVOKE.new_aiPlane__SWIG_1(_a, _b, _c, _d), true) { - } - - public aiPlane(aiPlane o) : this(AssimpPINVOKE.new_aiPlane__SWIG_2(aiPlane.getCPtr(o)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public float a { - set { - AssimpPINVOKE.aiPlane_a_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiPlane_a_get(swigCPtr); - return ret; - } - } - - public float b { - set { - AssimpPINVOKE.aiPlane_b_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiPlane_b_get(swigCPtr); - return ret; - } - } - - public float c { - set { - AssimpPINVOKE.aiPlane_c_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiPlane_c_get(swigCPtr); - return ret; - } - } - - public float d { - set { - AssimpPINVOKE.aiPlane_d_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiPlane_d_get(swigCPtr); - return ret; - } - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiPostProcessSteps.cs b/port/Assimp.NET/Assimp.NET_CS/aiPostProcessSteps.cs deleted file mode 100644 index e5e0d18a8..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiPostProcessSteps.cs +++ /dev/null @@ -1,39 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiPostProcessSteps { - aiProcess_CalcTangentSpace = 0x1, - aiProcess_JoinIdenticalVertices = 0x2, - aiProcess_MakeLeftHanded = 0x4, - aiProcess_Triangulate = 0x8, - aiProcess_RemoveComponent = 0x10, - aiProcess_GenNormals = 0x20, - aiProcess_GenSmoothNormals = 0x40, - aiProcess_SplitLargeMeshes = 0x80, - aiProcess_PreTransformVertices = 0x100, - aiProcess_LimitBoneWeights = 0x200, - aiProcess_ValidateDataStructure = 0x400, - aiProcess_ImproveCacheLocality = 0x800, - aiProcess_RemoveRedundantMaterials = 0x1000, - aiProcess_FixInfacingNormals = 0x2000, - aiProcess_SortByPType = 0x8000, - aiProcess_FindDegenerates = 0x10000, - aiProcess_FindInvalidData = 0x20000, - aiProcess_GenUVCoords = 0x40000, - aiProcess_TransformUVCoords = 0x80000, - aiProcess_FindInstances = 0x100000, - aiProcess_OptimizeMeshes = 0x200000, - aiProcess_OptimizeGraph = 0x400000, - aiProcess_FlipUVs = 0x800000, - aiProcess_FlipWindingOrder = 0x1000000, - aiProcess_SplitByBoneCount = 0x2000000, - aiProcess_Debone = 0x4000000 - - , aiProcess_ConvertToLeftHanded = aiProcess_MakeLeftHanded|aiProcess_FlipUVs|aiProcess_FlipWindingOrder, -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiPrimitiveType.cs b/port/Assimp.NET/Assimp.NET_CS/aiPrimitiveType.cs deleted file mode 100644 index 7c1411611..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiPrimitiveType.cs +++ /dev/null @@ -1,15 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiPrimitiveType { - aiPrimitiveType_POINT = 0x1, - aiPrimitiveType_LINE = 0x2, - aiPrimitiveType_TRIANGLE = 0x4, - aiPrimitiveType_POLYGON = 0x8 -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiPropertyTypeInfo.cs b/port/Assimp.NET/Assimp.NET_CS/aiPropertyTypeInfo.cs deleted file mode 100644 index efac6be5e..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiPropertyTypeInfo.cs +++ /dev/null @@ -1,15 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiPropertyTypeInfo { - aiPTI_Float = 0x1, - aiPTI_String = 0x3, - aiPTI_Integer = 0x4, - aiPTI_Buffer = 0x5 -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiQuatKey.cs b/port/Assimp.NET/Assimp.NET_CS/aiQuatKey.cs deleted file mode 100644 index 62c31f803..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiQuatKey.cs +++ /dev/null @@ -1,95 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiQuatKey : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiQuatKey(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiQuatKey obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiQuatKey() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiQuatKey(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public double mTime { - set { - AssimpPINVOKE.aiQuatKey_mTime_set(swigCPtr, value); - } - get { - double ret = AssimpPINVOKE.aiQuatKey_mTime_get(swigCPtr); - return ret; - } - } - - public aiQuaternion mValue { - set { - AssimpPINVOKE.aiQuatKey_mValue_set(swigCPtr, aiQuaternion.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiQuatKey_mValue_get(swigCPtr); - aiQuaternion ret = (cPtr == IntPtr.Zero) ? null : new aiQuaternion(cPtr, false); - return ret; - } - } - - public aiQuatKey() : this(AssimpPINVOKE.new_aiQuatKey__SWIG_0(), true) { - } - - public aiQuatKey(double time, aiQuaternion value) : this(AssimpPINVOKE.new_aiQuatKey__SWIG_1(time, aiQuaternion.getCPtr(value)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool __equal__(aiQuatKey o) { - bool ret = AssimpPINVOKE.aiQuatKey___equal__(swigCPtr, aiQuatKey.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __nequal__(aiQuatKey o) { - bool ret = AssimpPINVOKE.aiQuatKey___nequal__(swigCPtr, aiQuatKey.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __smaller__(aiQuatKey o) { - bool ret = AssimpPINVOKE.aiQuatKey___smaller__(swigCPtr, aiQuatKey.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __greater__(aiQuatKey o) { - bool ret = AssimpPINVOKE.aiQuatKey___greater__(swigCPtr, aiQuatKey.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiQuatKeyVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiQuatKeyVector.cs deleted file mode 100644 index eac1fde9c..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiQuatKeyVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiQuatKeyVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiQuatKeyVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiQuatKeyVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiQuatKeyVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiQuatKeyVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiQuatKeyVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiQuatKey element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiQuatKey this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiQuatKey[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiQuatKey[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiQuatKey[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiQuatKeyVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiQuatKeyVectorEnumerator(this); - } - - public aiQuatKeyVectorEnumerator GetEnumerator() { - return new aiQuatKeyVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiQuatKeyVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiQuatKeyVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiQuatKeyVectorEnumerator(aiQuatKeyVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiQuatKey Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiQuatKey)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiQuatKeyVector_Clear(swigCPtr); - } - - public void Add(aiQuatKey x) { - AssimpPINVOKE.aiQuatKeyVector_Add(swigCPtr, aiQuatKey.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiQuatKeyVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiQuatKeyVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiQuatKeyVector_reserve(swigCPtr, n); - } - - public aiQuatKeyVector() : this(AssimpPINVOKE.new_aiQuatKeyVector__SWIG_0(), true) { - } - - public aiQuatKeyVector(aiQuatKeyVector other) : this(AssimpPINVOKE.new_aiQuatKeyVector__SWIG_1(aiQuatKeyVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiQuatKeyVector(int capacity) : this(AssimpPINVOKE.new_aiQuatKeyVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiQuatKey getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiQuatKeyVector_getitemcopy(swigCPtr, index); - aiQuatKey ret = (cPtr == IntPtr.Zero) ? null : new aiQuatKey(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiQuatKey getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiQuatKeyVector_getitem(swigCPtr, index); - aiQuatKey ret = (cPtr == IntPtr.Zero) ? null : new aiQuatKey(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiQuatKey val) { - AssimpPINVOKE.aiQuatKeyVector_setitem(swigCPtr, index, aiQuatKey.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiQuatKeyVector values) { - AssimpPINVOKE.aiQuatKeyVector_AddRange(swigCPtr, aiQuatKeyVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiQuatKeyVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiQuatKeyVector_GetRange(swigCPtr, index, count); - aiQuatKeyVector ret = (cPtr == IntPtr.Zero) ? null : new aiQuatKeyVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiQuatKey x) { - AssimpPINVOKE.aiQuatKeyVector_Insert(swigCPtr, index, aiQuatKey.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiQuatKeyVector values) { - AssimpPINVOKE.aiQuatKeyVector_InsertRange(swigCPtr, index, aiQuatKeyVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiQuatKeyVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiQuatKeyVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiQuatKeyVector Repeat(aiQuatKey value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiQuatKeyVector_Repeat(aiQuatKey.getCPtr(value), count); - aiQuatKeyVector ret = (cPtr == IntPtr.Zero) ? null : new aiQuatKeyVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiQuatKeyVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiQuatKeyVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiQuatKeyVector values) { - AssimpPINVOKE.aiQuatKeyVector_SetRange(swigCPtr, index, aiQuatKeyVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiQuatKey value) { - bool ret = AssimpPINVOKE.aiQuatKeyVector_Contains(swigCPtr, aiQuatKey.getCPtr(value)); - return ret; - } - - public int IndexOf(aiQuatKey value) { - int ret = AssimpPINVOKE.aiQuatKeyVector_IndexOf(swigCPtr, aiQuatKey.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiQuatKey value) { - int ret = AssimpPINVOKE.aiQuatKeyVector_LastIndexOf(swigCPtr, aiQuatKey.getCPtr(value)); - return ret; - } - - public bool Remove(aiQuatKey value) { - bool ret = AssimpPINVOKE.aiQuatKeyVector_Remove(swigCPtr, aiQuatKey.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiQuaternion.cs b/port/Assimp.NET/Assimp.NET_CS/aiQuaternion.cs deleted file mode 100644 index 2a0ebccf4..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiQuaternion.cs +++ /dev/null @@ -1,148 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiQuaternion : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiQuaternion(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiQuaternion obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiQuaternion() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiQuaternion(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiQuaternion() : this(AssimpPINVOKE.new_aiQuaternion__SWIG_0(), true) { - } - - public aiQuaternion(float w, float x, float y, float z) : this(AssimpPINVOKE.new_aiQuaternion__SWIG_1(w, x, y, z), true) { - } - - public aiQuaternion(aiMatrix3x3 pRotMatrix) : this(AssimpPINVOKE.new_aiQuaternion__SWIG_2(aiMatrix3x3.getCPtr(pRotMatrix)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiQuaternion(float rotx, float roty, float rotz) : this(AssimpPINVOKE.new_aiQuaternion__SWIG_3(rotx, roty, rotz), true) { - } - - public aiQuaternion(aiVector3D axis, float angle) : this(AssimpPINVOKE.new_aiQuaternion__SWIG_4(aiVector3D.getCPtr(axis), angle), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiQuaternion(aiVector3D normalized) : this(AssimpPINVOKE.new_aiQuaternion__SWIG_5(aiVector3D.getCPtr(normalized)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiMatrix3x3 GetMatrix() { - aiMatrix3x3 ret = new aiMatrix3x3(AssimpPINVOKE.aiQuaternion_GetMatrix(swigCPtr), true); - return ret; - } - - public bool __equal__(aiQuaternion o) { - bool ret = AssimpPINVOKE.aiQuaternion___equal__(swigCPtr, aiQuaternion.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __nequal__(aiQuaternion o) { - bool ret = AssimpPINVOKE.aiQuaternion___nequal__(swigCPtr, aiQuaternion.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiQuaternion Normalize() { - aiQuaternion ret = new aiQuaternion(AssimpPINVOKE.aiQuaternion_Normalize(swigCPtr), false); - return ret; - } - - public aiQuaternion Conjugate() { - aiQuaternion ret = new aiQuaternion(AssimpPINVOKE.aiQuaternion_Conjugate(swigCPtr), false); - return ret; - } - - public aiVector3D Rotate(aiVector3D arg0) { - aiVector3D ret = new aiVector3D(AssimpPINVOKE.aiQuaternion_Rotate(swigCPtr, aiVector3D.getCPtr(arg0)), true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiQuaternion __mul__(aiQuaternion two) { - aiQuaternion ret = new aiQuaternion(AssimpPINVOKE.aiQuaternion___mul__(swigCPtr, aiQuaternion.getCPtr(two)), true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public static void Interpolate(aiQuaternion pOut, aiQuaternion pStart, aiQuaternion pEnd, float pFactor) { - AssimpPINVOKE.aiQuaternion_Interpolate(aiQuaternion.getCPtr(pOut), aiQuaternion.getCPtr(pStart), aiQuaternion.getCPtr(pEnd), pFactor); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public float w { - set { - AssimpPINVOKE.aiQuaternion_w_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiQuaternion_w_get(swigCPtr); - return ret; - } - } - - public float x { - set { - AssimpPINVOKE.aiQuaternion_x_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiQuaternion_x_get(swigCPtr); - return ret; - } - } - - public float y { - set { - AssimpPINVOKE.aiQuaternion_y_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiQuaternion_y_get(swigCPtr); - return ret; - } - } - - public float z { - set { - AssimpPINVOKE.aiQuaternion_z_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiQuaternion_z_get(swigCPtr); - return ret; - } - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiRay.cs b/port/Assimp.NET/Assimp.NET_CS/aiRay.cs deleted file mode 100644 index 85a1c986e..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiRay.cs +++ /dev/null @@ -1,76 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiRay : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiRay(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiRay obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiRay() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiRay(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiRay() : this(AssimpPINVOKE.new_aiRay__SWIG_0(), true) { - } - - public aiRay(aiVector3D _pos, aiVector3D _dir) : this(AssimpPINVOKE.new_aiRay__SWIG_1(aiVector3D.getCPtr(_pos), aiVector3D.getCPtr(_dir)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiRay(aiRay o) : this(AssimpPINVOKE.new_aiRay__SWIG_2(aiRay.getCPtr(o)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiVector3D pos { - set { - AssimpPINVOKE.aiRay_pos_set(swigCPtr, aiVector3D.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiRay_pos_get(swigCPtr); - aiVector3D ret = (cPtr == IntPtr.Zero) ? null : new aiVector3D(cPtr, false); - return ret; - } - } - - public aiVector3D dir { - set { - AssimpPINVOKE.aiRay_dir_set(swigCPtr, aiVector3D.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiRay_dir_get(swigCPtr); - aiVector3D ret = (cPtr == IntPtr.Zero) ? null : new aiVector3D(cPtr, false); - return ret; - } - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiReturn.cs b/port/Assimp.NET/Assimp.NET_CS/aiReturn.cs deleted file mode 100644 index 4e4fde423..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiReturn.cs +++ /dev/null @@ -1,15 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiReturn { - aiReturn_SUCCESS = 0x0, - aiReturn_FAILURE = -0x1, - aiReturn_OUTOFMEMORY = -0x3, - _AI_ENFORCE_ENUM_SIZE = 0x7fffffff -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiScene.cs b/port/Assimp.NET/Assimp.NET_CS/aiScene.cs deleted file mode 100644 index d7048cbc1..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiScene.cs +++ /dev/null @@ -1,211 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiScene : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiScene(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiScene obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiScene() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiScene(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - 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(); } } - - public uint mFlags { - set { - AssimpPINVOKE.aiScene_mFlags_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiScene_mFlags_get(swigCPtr); - return ret; - } - } - - public aiNode mRootNode { - set { - AssimpPINVOKE.aiScene_mRootNode_set(swigCPtr, aiNode.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiScene_mRootNode_get(swigCPtr); - aiNode ret = (cPtr == IntPtr.Zero) ? null : new aiNode(cPtr, false); - return ret; - } - } - - public uint mNumMeshes { - set { - AssimpPINVOKE.aiScene_mNumMeshes_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiScene_mNumMeshes_get(swigCPtr); - return ret; - } - } - - public uint mNumMaterials { - set { - AssimpPINVOKE.aiScene_mNumMaterials_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiScene_mNumMaterials_get(swigCPtr); - return ret; - } - } - - public uint mNumAnimations { - set { - AssimpPINVOKE.aiScene_mNumAnimations_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiScene_mNumAnimations_get(swigCPtr); - return ret; - } - } - - public uint mNumTextures { - set { - AssimpPINVOKE.aiScene_mNumTextures_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiScene_mNumTextures_get(swigCPtr); - return ret; - } - } - - public uint mNumLights { - set { - AssimpPINVOKE.aiScene_mNumLights_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiScene_mNumLights_get(swigCPtr); - return ret; - } - } - - public uint mNumCameras { - set { - AssimpPINVOKE.aiScene_mNumCameras_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiScene_mNumCameras_get(swigCPtr); - return ret; - } - } - - public aiScene() : this(AssimpPINVOKE.new_aiScene(), true) { - } - - public bool HasMeshes() { - bool ret = AssimpPINVOKE.aiScene_HasMeshes(swigCPtr); - return ret; - } - - public bool HasMaterials() { - bool ret = AssimpPINVOKE.aiScene_HasMaterials(swigCPtr); - return ret; - } - - public bool HasLights() { - bool ret = AssimpPINVOKE.aiScene_HasLights(swigCPtr); - return ret; - } - - public bool HasTextures() { - bool ret = AssimpPINVOKE.aiScene_HasTextures(swigCPtr); - return ret; - } - - public bool HasCameras() { - bool ret = AssimpPINVOKE.aiScene_HasCameras(swigCPtr); - return ret; - } - - public bool HasAnimations() { - bool ret = AssimpPINVOKE.aiScene_HasAnimations(swigCPtr); - return ret; - } - - public SWIGTYPE_p_void mPrivate { - set { - AssimpPINVOKE.aiScene_mPrivate_set(swigCPtr, SWIGTYPE_p_void.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiScene_mPrivate_get(swigCPtr); - SWIGTYPE_p_void ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_void(cPtr, false); - return ret; - } - } - - private aiAnimationVector GetmAnimations() { - IntPtr cPtr = AssimpPINVOKE.aiScene_GetmAnimations(swigCPtr); - aiAnimationVector ret = (cPtr == IntPtr.Zero) ? null : new aiAnimationVector(cPtr, true); - return ret; - } - - private aiCameraVector GetmCameras() { - IntPtr cPtr = AssimpPINVOKE.aiScene_GetmCameras(swigCPtr); - aiCameraVector ret = (cPtr == IntPtr.Zero) ? null : new aiCameraVector(cPtr, true); - return ret; - } - - private aiLightVector GetmLights() { - IntPtr cPtr = AssimpPINVOKE.aiScene_GetmLights(swigCPtr); - aiLightVector ret = (cPtr == IntPtr.Zero) ? null : new aiLightVector(cPtr, true); - return ret; - } - - private aiMaterialVector GetmMaterials() { - IntPtr cPtr = AssimpPINVOKE.aiScene_GetmMaterials(swigCPtr); - aiMaterialVector ret = (cPtr == IntPtr.Zero) ? null : new aiMaterialVector(cPtr, true); - return ret; - } - - private aiMeshVector GetmMeshes() { - IntPtr cPtr = AssimpPINVOKE.aiScene_GetmMeshes(swigCPtr); - aiMeshVector ret = (cPtr == IntPtr.Zero) ? null : new aiMeshVector(cPtr, true); - return ret; - } - - private aiTextureVector GetmTextures() { - IntPtr cPtr = AssimpPINVOKE.aiScene_GetmTextures(swigCPtr); - aiTextureVector ret = (cPtr == IntPtr.Zero) ? null : new aiTextureVector(cPtr, true); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiShadingMode.cs b/port/Assimp.NET/Assimp.NET_CS/aiShadingMode.cs deleted file mode 100644 index 775417918..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiShadingMode.cs +++ /dev/null @@ -1,21 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiShadingMode { - aiShadingMode_Flat = 0x1, - aiShadingMode_Gouraud = 0x2, - aiShadingMode_Phong = 0x3, - aiShadingMode_Blinn = 0x4, - aiShadingMode_Toon = 0x5, - aiShadingMode_OrenNayar = 0x6, - aiShadingMode_Minnaert = 0x7, - aiShadingMode_CookTorrance = 0x8, - aiShadingMode_NoShading = 0x9, - aiShadingMode_Fresnel = 0xa -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiString.cs b/port/Assimp.NET/Assimp.NET_CS/aiString.cs deleted file mode 100644 index f55ea8197..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiString.cs +++ /dev/null @@ -1,98 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiString : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiString(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiString obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiString() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiString(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public override string ToString() { return Data; } - - public aiString() : this(AssimpPINVOKE.new_aiString__SWIG_0(), true) { - } - - public aiString(aiString rOther) : this(AssimpPINVOKE.new_aiString__SWIG_1(aiString.getCPtr(rOther)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiString(string pString) : this(AssimpPINVOKE.new_aiString__SWIG_2(pString), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiString __set__(string sz) { - aiString ret = new aiString(AssimpPINVOKE.aiString___set____SWIG_0(swigCPtr, sz), false); - return ret; - } - - public bool __equal__(aiString other) { - bool ret = AssimpPINVOKE.aiString___equal__(swigCPtr, aiString.getCPtr(other)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __nequal__(aiString other) { - bool ret = AssimpPINVOKE.aiString___nequal__(swigCPtr, aiString.getCPtr(other)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public string C_Str() { - string ret = AssimpPINVOKE.aiString_C_Str(swigCPtr); - return ret; - } - - public uint Length { - set { - AssimpPINVOKE.aiString_Length_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiString_Length_get(swigCPtr); - return ret; - } - } - - public string Data { - set { - AssimpPINVOKE.aiString_Data_set(swigCPtr, value); - } - get { - string ret = AssimpPINVOKE.aiString_Data_get(swigCPtr); - return ret; - } - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiTexel.cs b/port/Assimp.NET/Assimp.NET_CS/aiTexel.cs deleted file mode 100644 index bfd42ce84..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiTexel.cs +++ /dev/null @@ -1,98 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiTexel : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiTexel(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiTexel obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiTexel() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiTexel(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public byte b { - set { - AssimpPINVOKE.aiTexel_b_set(swigCPtr, value); - } - get { - byte ret = AssimpPINVOKE.aiTexel_b_get(swigCPtr); - return ret; - } - } - - public byte g { - set { - AssimpPINVOKE.aiTexel_g_set(swigCPtr, value); - } - get { - byte ret = AssimpPINVOKE.aiTexel_g_get(swigCPtr); - return ret; - } - } - - public byte r { - set { - AssimpPINVOKE.aiTexel_r_set(swigCPtr, value); - } - get { - byte ret = AssimpPINVOKE.aiTexel_r_get(swigCPtr); - return ret; - } - } - - public byte a { - set { - AssimpPINVOKE.aiTexel_a_set(swigCPtr, value); - } - get { - byte ret = AssimpPINVOKE.aiTexel_a_get(swigCPtr); - return ret; - } - } - - public bool __equal__(aiTexel other) { - bool ret = AssimpPINVOKE.aiTexel___equal__(swigCPtr, aiTexel.getCPtr(other)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __nequal__(aiTexel other) { - bool ret = AssimpPINVOKE.aiTexel___nequal__(swigCPtr, aiTexel.getCPtr(other)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiTexel() : this(AssimpPINVOKE.new_aiTexel(), true) { - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiTexture.cs b/port/Assimp.NET/Assimp.NET_CS/aiTexture.cs deleted file mode 100644 index 87f756edc..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiTexture.cs +++ /dev/null @@ -1,92 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiTexture : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiTexture(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiTexture obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiTexture() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiTexture(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public uint mWidth { - set { - AssimpPINVOKE.aiTexture_mWidth_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiTexture_mWidth_get(swigCPtr); - return ret; - } - } - - public uint mHeight { - set { - AssimpPINVOKE.aiTexture_mHeight_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiTexture_mHeight_get(swigCPtr); - return ret; - } - } - - public string achFormatHint { - set { - AssimpPINVOKE.aiTexture_achFormatHint_set(swigCPtr, value); - } - get { - string ret = AssimpPINVOKE.aiTexture_achFormatHint_get(swigCPtr); - return ret; - } - } - - public aiTexel pcData { - set { - AssimpPINVOKE.aiTexture_pcData_set(swigCPtr, aiTexel.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiTexture_pcData_get(swigCPtr); - aiTexel ret = (cPtr == IntPtr.Zero) ? null : new aiTexel(cPtr, false); - return ret; - } - } - - public bool CheckFormat(string s) { - bool ret = AssimpPINVOKE.aiTexture_CheckFormat(swigCPtr, s); - return ret; - } - - public aiTexture() : this(AssimpPINVOKE.new_aiTexture(), true) { - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiTextureFlags.cs b/port/Assimp.NET/Assimp.NET_CS/aiTextureFlags.cs deleted file mode 100644 index 7f58f533b..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiTextureFlags.cs +++ /dev/null @@ -1,14 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiTextureFlags { - aiTextureFlags_Invert = 0x1, - aiTextureFlags_UseAlpha = 0x2, - aiTextureFlags_IgnoreAlpha = 0x4 -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiTextureMapMode.cs b/port/Assimp.NET/Assimp.NET_CS/aiTextureMapMode.cs deleted file mode 100644 index dfd7c8821..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiTextureMapMode.cs +++ /dev/null @@ -1,15 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiTextureMapMode { - aiTextureMapMode_Wrap = 0x0, - aiTextureMapMode_Clamp = 0x1, - aiTextureMapMode_Decal = 0x3, - aiTextureMapMode_Mirror = 0x2 -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiTextureMapping.cs b/port/Assimp.NET/Assimp.NET_CS/aiTextureMapping.cs deleted file mode 100644 index f1f58d416..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiTextureMapping.cs +++ /dev/null @@ -1,17 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiTextureMapping { - aiTextureMapping_UV = 0x0, - aiTextureMapping_SPHERE = 0x1, - aiTextureMapping_CYLINDER = 0x2, - aiTextureMapping_BOX = 0x3, - aiTextureMapping_PLANE = 0x4, - aiTextureMapping_OTHER = 0x5 -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiTextureOp.cs b/port/Assimp.NET/Assimp.NET_CS/aiTextureOp.cs deleted file mode 100644 index bf844aacf..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiTextureOp.cs +++ /dev/null @@ -1,17 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiTextureOp { - aiTextureOp_Multiply = 0x0, - aiTextureOp_Add = 0x1, - aiTextureOp_Subtract = 0x2, - aiTextureOp_Divide = 0x3, - aiTextureOp_SmoothAdd = 0x4, - aiTextureOp_SignedAdd = 0x5 -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiTextureType.cs b/port/Assimp.NET/Assimp.NET_CS/aiTextureType.cs deleted file mode 100644 index 0b9ffb14f..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiTextureType.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -public enum aiTextureType { - aiTextureType_NONE = 0x0, - aiTextureType_DIFFUSE = 0x1, - aiTextureType_SPECULAR = 0x2, - aiTextureType_AMBIENT = 0x3, - aiTextureType_EMISSIVE = 0x4, - aiTextureType_HEIGHT = 0x5, - aiTextureType_NORMALS = 0x6, - aiTextureType_SHININESS = 0x7, - aiTextureType_OPACITY = 0x8, - aiTextureType_DISPLACEMENT = 0x9, - aiTextureType_LIGHTMAP = 0xA, - aiTextureType_REFLECTION = 0xB, - aiTextureType_UNKNOWN = 0xC -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiTextureVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiTextureVector.cs deleted file mode 100644 index 745a44ec8..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiTextureVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiTextureVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiTextureVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiTextureVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiTextureVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiTextureVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiTextureVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiTexture element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiTexture this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiTexture[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiTexture[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiTexture[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiTextureVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiTextureVectorEnumerator(this); - } - - public aiTextureVectorEnumerator GetEnumerator() { - return new aiTextureVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiTextureVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiTextureVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiTextureVectorEnumerator(aiTextureVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiTexture Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiTexture)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiTextureVector_Clear(swigCPtr); - } - - public void Add(aiTexture x) { - AssimpPINVOKE.aiTextureVector_Add(swigCPtr, aiTexture.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiTextureVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiTextureVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiTextureVector_reserve(swigCPtr, n); - } - - public aiTextureVector() : this(AssimpPINVOKE.new_aiTextureVector__SWIG_0(), true) { - } - - public aiTextureVector(aiTextureVector other) : this(AssimpPINVOKE.new_aiTextureVector__SWIG_1(aiTextureVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiTextureVector(int capacity) : this(AssimpPINVOKE.new_aiTextureVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiTexture getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiTextureVector_getitemcopy(swigCPtr, index); - aiTexture ret = (cPtr == IntPtr.Zero) ? null : new aiTexture(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiTexture getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiTextureVector_getitem(swigCPtr, index); - aiTexture ret = (cPtr == IntPtr.Zero) ? null : new aiTexture(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiTexture val) { - AssimpPINVOKE.aiTextureVector_setitem(swigCPtr, index, aiTexture.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiTextureVector values) { - AssimpPINVOKE.aiTextureVector_AddRange(swigCPtr, aiTextureVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiTextureVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiTextureVector_GetRange(swigCPtr, index, count); - aiTextureVector ret = (cPtr == IntPtr.Zero) ? null : new aiTextureVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiTexture x) { - AssimpPINVOKE.aiTextureVector_Insert(swigCPtr, index, aiTexture.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiTextureVector values) { - AssimpPINVOKE.aiTextureVector_InsertRange(swigCPtr, index, aiTextureVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiTextureVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiTextureVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiTextureVector Repeat(aiTexture value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiTextureVector_Repeat(aiTexture.getCPtr(value), count); - aiTextureVector ret = (cPtr == IntPtr.Zero) ? null : new aiTextureVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiTextureVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiTextureVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiTextureVector values) { - AssimpPINVOKE.aiTextureVector_SetRange(swigCPtr, index, aiTextureVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiTexture value) { - bool ret = AssimpPINVOKE.aiTextureVector_Contains(swigCPtr, aiTexture.getCPtr(value)); - return ret; - } - - public int IndexOf(aiTexture value) { - int ret = AssimpPINVOKE.aiTextureVector_IndexOf(swigCPtr, aiTexture.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiTexture value) { - int ret = AssimpPINVOKE.aiTextureVector_LastIndexOf(swigCPtr, aiTexture.getCPtr(value)); - return ret; - } - - public bool Remove(aiTexture value) { - bool ret = AssimpPINVOKE.aiTextureVector_Remove(swigCPtr, aiTexture.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiUVTransform.cs b/port/Assimp.NET/Assimp.NET_CS/aiUVTransform.cs deleted file mode 100644 index 0452ee461..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiUVTransform.cs +++ /dev/null @@ -1,78 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiUVTransform : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiUVTransform(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiUVTransform obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiUVTransform() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiUVTransform(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiVector2D mTranslation { - set { - AssimpPINVOKE.aiUVTransform_mTranslation_set(swigCPtr, aiVector2D.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiUVTransform_mTranslation_get(swigCPtr); - aiVector2D ret = (cPtr == IntPtr.Zero) ? null : new aiVector2D(cPtr, false); - return ret; - } - } - - public aiVector2D mScaling { - set { - AssimpPINVOKE.aiUVTransform_mScaling_set(swigCPtr, aiVector2D.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiUVTransform_mScaling_get(swigCPtr); - aiVector2D ret = (cPtr == IntPtr.Zero) ? null : new aiVector2D(cPtr, false); - return ret; - } - } - - public float mRotation { - set { - AssimpPINVOKE.aiUVTransform_mRotation_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiUVTransform_mRotation_get(swigCPtr); - return ret; - } - } - - public aiUVTransform() : this(AssimpPINVOKE.new_aiUVTransform(), true) { - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiVector2D.cs b/port/Assimp.NET/Assimp.NET_CS/aiVector2D.cs deleted file mode 100644 index 98074e6d1..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiVector2D.cs +++ /dev/null @@ -1,145 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiVector2D : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiVector2D(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiVector2D obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiVector2D() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiVector2D(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiVector2D() : this(AssimpPINVOKE.new_aiVector2D__SWIG_0(), true) { - } - - public aiVector2D(float _x, float _y) : this(AssimpPINVOKE.new_aiVector2D__SWIG_1(_x, _y), true) { - } - - public aiVector2D(float _xyz) : this(AssimpPINVOKE.new_aiVector2D__SWIG_2(_xyz), true) { - } - - public aiVector2D(aiVector2D o) : this(AssimpPINVOKE.new_aiVector2D__SWIG_3(aiVector2D.getCPtr(o)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void Set(float pX, float pY) { - AssimpPINVOKE.aiVector2D_Set(swigCPtr, pX, pY); - } - - public float SquareLength() { - float ret = AssimpPINVOKE.aiVector2D_SquareLength(swigCPtr); - return ret; - } - - public float Length() { - float ret = AssimpPINVOKE.aiVector2D_Length(swigCPtr); - return ret; - } - - public aiVector2D Normalize() { - aiVector2D ret = new aiVector2D(AssimpPINVOKE.aiVector2D_Normalize(swigCPtr), false); - return ret; - } - - public aiVector2D __addnset__(aiVector2D o) { - aiVector2D ret = new aiVector2D(AssimpPINVOKE.aiVector2D___addnset__(swigCPtr, aiVector2D.getCPtr(o)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiVector2D __subnset__(aiVector2D o) { - aiVector2D ret = new aiVector2D(AssimpPINVOKE.aiVector2D___subnset__(swigCPtr, aiVector2D.getCPtr(o)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiVector2D __mulnset__(float f) { - aiVector2D ret = new aiVector2D(AssimpPINVOKE.aiVector2D___mulnset__(swigCPtr, f), false); - return ret; - } - - public aiVector2D __divnset__(float f) { - aiVector2D ret = new aiVector2D(AssimpPINVOKE.aiVector2D___divnset__(swigCPtr, f), false); - return ret; - } - - public float __idx__(uint i) { - float ret = AssimpPINVOKE.aiVector2D___idx____SWIG_0(swigCPtr, i); - return ret; - } - - public bool __equal__(aiVector2D other) { - bool ret = AssimpPINVOKE.aiVector2D___equal__(swigCPtr, aiVector2D.getCPtr(other)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __nequal__(aiVector2D other) { - bool ret = AssimpPINVOKE.aiVector2D___nequal__(swigCPtr, aiVector2D.getCPtr(other)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiVector2D __set__(float f) { - aiVector2D ret = new aiVector2D(AssimpPINVOKE.aiVector2D___set__(swigCPtr, f), false); - return ret; - } - - public aiVector2D SymMul(aiVector2D o) { - aiVector2D ret = new aiVector2D(AssimpPINVOKE.aiVector2D_SymMul(swigCPtr, aiVector2D.getCPtr(o)), true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public float x { - set { - AssimpPINVOKE.aiVector2D_x_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiVector2D_x_get(swigCPtr); - return ret; - } - } - - public float y { - set { - AssimpPINVOKE.aiVector2D_y_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiVector2D_y_get(swigCPtr); - return ret; - } - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiVector3D.cs b/port/Assimp.NET/Assimp.NET_CS/aiVector3D.cs deleted file mode 100644 index c09201dbf..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiVector3D.cs +++ /dev/null @@ -1,162 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiVector3D : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiVector3D(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiVector3D obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiVector3D() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiVector3D(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiVector3D() : this(AssimpPINVOKE.new_aiVector3D__SWIG_0(), true) { - } - - public aiVector3D(float _x, float _y, float _z) : this(AssimpPINVOKE.new_aiVector3D__SWIG_1(_x, _y, _z), true) { - } - - public aiVector3D(float _xyz) : this(AssimpPINVOKE.new_aiVector3D__SWIG_2(_xyz), true) { - } - - public aiVector3D(aiVector3D o) : this(AssimpPINVOKE.new_aiVector3D__SWIG_3(aiVector3D.getCPtr(o)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiVector3D __addnset__(aiVector3D o) { - aiVector3D ret = new aiVector3D(AssimpPINVOKE.aiVector3D___addnset__(swigCPtr, aiVector3D.getCPtr(o)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiVector3D __subnset__(aiVector3D o) { - aiVector3D ret = new aiVector3D(AssimpPINVOKE.aiVector3D___subnset__(swigCPtr, aiVector3D.getCPtr(o)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiVector3D __mulnset__(float f) { - aiVector3D ret = new aiVector3D(AssimpPINVOKE.aiVector3D___mulnset____SWIG_0(swigCPtr, f), false); - return ret; - } - - public aiVector3D __divnset__(float f) { - aiVector3D ret = new aiVector3D(AssimpPINVOKE.aiVector3D___divnset__(swigCPtr, f), false); - return ret; - } - - public aiVector3D __mulnset__(aiMatrix3x3 mat) { - aiVector3D ret = new aiVector3D(AssimpPINVOKE.aiVector3D___mulnset____SWIG_1(swigCPtr, aiMatrix3x3.getCPtr(mat)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public aiVector3D __mulnset__(aiMatrix4x4 mat) { - aiVector3D ret = new aiVector3D(AssimpPINVOKE.aiVector3D___mulnset____SWIG_2(swigCPtr, aiMatrix4x4.getCPtr(mat)), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public float __idx__(uint i) { - float ret = AssimpPINVOKE.aiVector3D___idx____SWIG_0(swigCPtr, i); - return ret; - } - - public bool __equal__(aiVector3D other) { - bool ret = AssimpPINVOKE.aiVector3D___equal__(swigCPtr, aiVector3D.getCPtr(other)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __nequal__(aiVector3D other) { - bool ret = AssimpPINVOKE.aiVector3D___nequal__(swigCPtr, aiVector3D.getCPtr(other)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Set(float pX, float pY, float pZ) { - AssimpPINVOKE.aiVector3D_Set(swigCPtr, pX, pY, pZ); - } - - public float SquareLength() { - float ret = AssimpPINVOKE.aiVector3D_SquareLength(swigCPtr); - return ret; - } - - public float Length() { - float ret = AssimpPINVOKE.aiVector3D_Length(swigCPtr); - return ret; - } - - public aiVector3D Normalize() { - aiVector3D ret = new aiVector3D(AssimpPINVOKE.aiVector3D_Normalize(swigCPtr), false); - return ret; - } - - public aiVector3D SymMul(aiVector3D o) { - aiVector3D ret = new aiVector3D(AssimpPINVOKE.aiVector3D_SymMul(swigCPtr, aiVector3D.getCPtr(o)), true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public float x { - set { - AssimpPINVOKE.aiVector3D_x_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiVector3D_x_get(swigCPtr); - return ret; - } - } - - public float y { - set { - AssimpPINVOKE.aiVector3D_y_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiVector3D_y_get(swigCPtr); - return ret; - } - } - - public float z { - set { - AssimpPINVOKE.aiVector3D_z_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiVector3D_z_get(swigCPtr); - return ret; - } - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiVector3DVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiVector3DVector.cs deleted file mode 100644 index 19e6c958c..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiVector3DVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiVector3DVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiVector3DVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiVector3DVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiVector3DVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiVector3DVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiVector3DVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiVector3D element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiVector3D this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiVector3D[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiVector3D[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiVector3D[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiVector3DVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiVector3DVectorEnumerator(this); - } - - public aiVector3DVectorEnumerator GetEnumerator() { - return new aiVector3DVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiVector3DVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiVector3DVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiVector3DVectorEnumerator(aiVector3DVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiVector3D Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiVector3D)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiVector3DVector_Clear(swigCPtr); - } - - public void Add(aiVector3D x) { - AssimpPINVOKE.aiVector3DVector_Add(swigCPtr, aiVector3D.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiVector3DVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiVector3DVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiVector3DVector_reserve(swigCPtr, n); - } - - public aiVector3DVector() : this(AssimpPINVOKE.new_aiVector3DVector__SWIG_0(), true) { - } - - public aiVector3DVector(aiVector3DVector other) : this(AssimpPINVOKE.new_aiVector3DVector__SWIG_1(aiVector3DVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiVector3DVector(int capacity) : this(AssimpPINVOKE.new_aiVector3DVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiVector3D getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiVector3DVector_getitemcopy(swigCPtr, index); - aiVector3D ret = (cPtr == IntPtr.Zero) ? null : new aiVector3D(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiVector3D getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiVector3DVector_getitem(swigCPtr, index); - aiVector3D ret = (cPtr == IntPtr.Zero) ? null : new aiVector3D(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiVector3D val) { - AssimpPINVOKE.aiVector3DVector_setitem(swigCPtr, index, aiVector3D.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiVector3DVector values) { - AssimpPINVOKE.aiVector3DVector_AddRange(swigCPtr, aiVector3DVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiVector3DVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiVector3DVector_GetRange(swigCPtr, index, count); - aiVector3DVector ret = (cPtr == IntPtr.Zero) ? null : new aiVector3DVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiVector3D x) { - AssimpPINVOKE.aiVector3DVector_Insert(swigCPtr, index, aiVector3D.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiVector3DVector values) { - AssimpPINVOKE.aiVector3DVector_InsertRange(swigCPtr, index, aiVector3DVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiVector3DVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiVector3DVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiVector3DVector Repeat(aiVector3D value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiVector3DVector_Repeat(aiVector3D.getCPtr(value), count); - aiVector3DVector ret = (cPtr == IntPtr.Zero) ? null : new aiVector3DVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiVector3DVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiVector3DVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiVector3DVector values) { - AssimpPINVOKE.aiVector3DVector_SetRange(swigCPtr, index, aiVector3DVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiVector3D value) { - bool ret = AssimpPINVOKE.aiVector3DVector_Contains(swigCPtr, aiVector3D.getCPtr(value)); - return ret; - } - - public int IndexOf(aiVector3D value) { - int ret = AssimpPINVOKE.aiVector3DVector_IndexOf(swigCPtr, aiVector3D.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiVector3D value) { - int ret = AssimpPINVOKE.aiVector3DVector_LastIndexOf(swigCPtr, aiVector3D.getCPtr(value)); - return ret; - } - - public bool Remove(aiVector3D value) { - bool ret = AssimpPINVOKE.aiVector3DVector_Remove(swigCPtr, aiVector3D.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiVector3DVectorVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiVector3DVectorVector.cs deleted file mode 100644 index 6326be345..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiVector3DVectorVector.cs +++ /dev/null @@ -1,327 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiVector3DVectorVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerable -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiVector3DVectorVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiVector3DVectorVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiVector3DVectorVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiVector3DVectorVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiVector3DVectorVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiVector3DVector element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiVector3DVector this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiVector3DVector[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiVector3DVector[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiVector3DVector[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiVector3DVectorVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiVector3DVectorVectorEnumerator(this); - } - - public aiVector3DVectorVectorEnumerator GetEnumerator() { - return new aiVector3DVectorVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiVector3DVectorVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiVector3DVectorVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiVector3DVectorVectorEnumerator(aiVector3DVectorVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiVector3DVector Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiVector3DVector)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiVector3DVectorVector_Clear(swigCPtr); - } - - public void Add(aiVector3DVector x) { - AssimpPINVOKE.aiVector3DVectorVector_Add(swigCPtr, aiVector3DVector.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiVector3DVectorVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiVector3DVectorVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiVector3DVectorVector_reserve(swigCPtr, n); - } - - public aiVector3DVectorVector() : this(AssimpPINVOKE.new_aiVector3DVectorVector__SWIG_0(), true) { - } - - public aiVector3DVectorVector(aiVector3DVectorVector other) : this(AssimpPINVOKE.new_aiVector3DVectorVector__SWIG_1(aiVector3DVectorVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiVector3DVectorVector(int capacity) : this(AssimpPINVOKE.new_aiVector3DVectorVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiVector3DVector getitemcopy(int index) { - aiVector3DVector ret = new aiVector3DVector(AssimpPINVOKE.aiVector3DVectorVector_getitemcopy(swigCPtr, index), true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiVector3DVector getitem(int index) { - aiVector3DVector ret = new aiVector3DVector(AssimpPINVOKE.aiVector3DVectorVector_getitem(swigCPtr, index), false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiVector3DVector val) { - AssimpPINVOKE.aiVector3DVectorVector_setitem(swigCPtr, index, aiVector3DVector.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiVector3DVectorVector values) { - AssimpPINVOKE.aiVector3DVectorVector_AddRange(swigCPtr, aiVector3DVectorVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiVector3DVectorVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiVector3DVectorVector_GetRange(swigCPtr, index, count); - aiVector3DVectorVector ret = (cPtr == IntPtr.Zero) ? null : new aiVector3DVectorVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiVector3DVector x) { - AssimpPINVOKE.aiVector3DVectorVector_Insert(swigCPtr, index, aiVector3DVector.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiVector3DVectorVector values) { - AssimpPINVOKE.aiVector3DVectorVector_InsertRange(swigCPtr, index, aiVector3DVectorVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiVector3DVectorVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiVector3DVectorVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiVector3DVectorVector Repeat(aiVector3DVector value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiVector3DVectorVector_Repeat(aiVector3DVector.getCPtr(value), count); - aiVector3DVectorVector ret = (cPtr == IntPtr.Zero) ? null : new aiVector3DVectorVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiVector3DVectorVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiVector3DVectorVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiVector3DVectorVector values) { - AssimpPINVOKE.aiVector3DVectorVector_SetRange(swigCPtr, index, aiVector3DVectorVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiVectorKey.cs b/port/Assimp.NET/Assimp.NET_CS/aiVectorKey.cs deleted file mode 100644 index 13eb78c8f..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiVectorKey.cs +++ /dev/null @@ -1,95 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiVectorKey : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiVectorKey(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiVectorKey obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiVectorKey() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiVectorKey(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public double mTime { - set { - AssimpPINVOKE.aiVectorKey_mTime_set(swigCPtr, value); - } - get { - double ret = AssimpPINVOKE.aiVectorKey_mTime_get(swigCPtr); - return ret; - } - } - - public aiVector3D mValue { - set { - AssimpPINVOKE.aiVectorKey_mValue_set(swigCPtr, aiVector3D.getCPtr(value)); - } - get { - IntPtr cPtr = AssimpPINVOKE.aiVectorKey_mValue_get(swigCPtr); - aiVector3D ret = (cPtr == IntPtr.Zero) ? null : new aiVector3D(cPtr, false); - return ret; - } - } - - public aiVectorKey() : this(AssimpPINVOKE.new_aiVectorKey__SWIG_0(), true) { - } - - public aiVectorKey(double time, aiVector3D value) : this(AssimpPINVOKE.new_aiVectorKey__SWIG_1(time, aiVector3D.getCPtr(value)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool __equal__(aiVectorKey o) { - bool ret = AssimpPINVOKE.aiVectorKey___equal__(swigCPtr, aiVectorKey.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __nequal__(aiVectorKey o) { - bool ret = AssimpPINVOKE.aiVectorKey___nequal__(swigCPtr, aiVectorKey.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __smaller__(aiVectorKey o) { - bool ret = AssimpPINVOKE.aiVectorKey___smaller__(swigCPtr, aiVectorKey.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public bool __greater__(aiVectorKey o) { - bool ret = AssimpPINVOKE.aiVectorKey___greater__(swigCPtr, aiVectorKey.getCPtr(o)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiVectorKeyVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiVectorKeyVector.cs deleted file mode 100644 index aee1d002e..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiVectorKeyVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiVectorKeyVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiVectorKeyVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiVectorKeyVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiVectorKeyVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiVectorKeyVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiVectorKeyVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiVectorKey element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiVectorKey this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiVectorKey[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiVectorKey[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiVectorKey[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiVectorKeyVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiVectorKeyVectorEnumerator(this); - } - - public aiVectorKeyVectorEnumerator GetEnumerator() { - return new aiVectorKeyVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiVectorKeyVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiVectorKeyVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiVectorKeyVectorEnumerator(aiVectorKeyVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiVectorKey Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiVectorKey)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiVectorKeyVector_Clear(swigCPtr); - } - - public void Add(aiVectorKey x) { - AssimpPINVOKE.aiVectorKeyVector_Add(swigCPtr, aiVectorKey.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiVectorKeyVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiVectorKeyVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiVectorKeyVector_reserve(swigCPtr, n); - } - - public aiVectorKeyVector() : this(AssimpPINVOKE.new_aiVectorKeyVector__SWIG_0(), true) { - } - - public aiVectorKeyVector(aiVectorKeyVector other) : this(AssimpPINVOKE.new_aiVectorKeyVector__SWIG_1(aiVectorKeyVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiVectorKeyVector(int capacity) : this(AssimpPINVOKE.new_aiVectorKeyVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiVectorKey getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiVectorKeyVector_getitemcopy(swigCPtr, index); - aiVectorKey ret = (cPtr == IntPtr.Zero) ? null : new aiVectorKey(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiVectorKey getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiVectorKeyVector_getitem(swigCPtr, index); - aiVectorKey ret = (cPtr == IntPtr.Zero) ? null : new aiVectorKey(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiVectorKey val) { - AssimpPINVOKE.aiVectorKeyVector_setitem(swigCPtr, index, aiVectorKey.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiVectorKeyVector values) { - AssimpPINVOKE.aiVectorKeyVector_AddRange(swigCPtr, aiVectorKeyVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiVectorKeyVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiVectorKeyVector_GetRange(swigCPtr, index, count); - aiVectorKeyVector ret = (cPtr == IntPtr.Zero) ? null : new aiVectorKeyVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiVectorKey x) { - AssimpPINVOKE.aiVectorKeyVector_Insert(swigCPtr, index, aiVectorKey.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiVectorKeyVector values) { - AssimpPINVOKE.aiVectorKeyVector_InsertRange(swigCPtr, index, aiVectorKeyVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiVectorKeyVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiVectorKeyVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiVectorKeyVector Repeat(aiVectorKey value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiVectorKeyVector_Repeat(aiVectorKey.getCPtr(value), count); - aiVectorKeyVector ret = (cPtr == IntPtr.Zero) ? null : new aiVectorKeyVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiVectorKeyVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiVectorKeyVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiVectorKeyVector values) { - AssimpPINVOKE.aiVectorKeyVector_SetRange(swigCPtr, index, aiVectorKeyVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiVectorKey value) { - bool ret = AssimpPINVOKE.aiVectorKeyVector_Contains(swigCPtr, aiVectorKey.getCPtr(value)); - return ret; - } - - public int IndexOf(aiVectorKey value) { - int ret = AssimpPINVOKE.aiVectorKeyVector_IndexOf(swigCPtr, aiVectorKey.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiVectorKey value) { - int ret = AssimpPINVOKE.aiVectorKeyVector_LastIndexOf(swigCPtr, aiVectorKey.getCPtr(value)); - return ret; - } - - public bool Remove(aiVectorKey value) { - bool ret = AssimpPINVOKE.aiVectorKeyVector_Remove(swigCPtr, aiVectorKey.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiVertexWeight.cs b/port/Assimp.NET/Assimp.NET_CS/aiVertexWeight.cs deleted file mode 100644 index ddb2c4efb..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiVertexWeight.cs +++ /dev/null @@ -1,69 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiVertexWeight : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiVertexWeight(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiVertexWeight obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiVertexWeight() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiVertexWeight(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public uint mVertexId { - set { - AssimpPINVOKE.aiVertexWeight_mVertexId_set(swigCPtr, value); - } - get { - uint ret = AssimpPINVOKE.aiVertexWeight_mVertexId_get(swigCPtr); - return ret; - } - } - - public float mWeight { - set { - AssimpPINVOKE.aiVertexWeight_mWeight_set(swigCPtr, value); - } - get { - float ret = AssimpPINVOKE.aiVertexWeight_mWeight_get(swigCPtr); - return ret; - } - } - - public aiVertexWeight() : this(AssimpPINVOKE.new_aiVertexWeight__SWIG_0(), true) { - } - - public aiVertexWeight(uint pID, float pWeight) : this(AssimpPINVOKE.new_aiVertexWeight__SWIG_1(pID, pWeight), true) { - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/aiVertexWeightVector.cs b/port/Assimp.NET/Assimp.NET_CS/aiVertexWeightVector.cs deleted file mode 100644 index bcdb1ca92..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/aiVertexWeightVector.cs +++ /dev/null @@ -1,348 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.8 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -using System; -using System.Runtime.InteropServices; - -public class aiVertexWeightVector : IDisposable, System.Collections.IEnumerable -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IList -#endif - { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal aiVertexWeightVector(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(aiVertexWeightVector obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~aiVertexWeightVector() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - AssimpPINVOKE.delete_aiVertexWeightVector(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public aiVertexWeightVector(System.Collections.ICollection c) : this() { - if (c == null) - throw new ArgumentNullException("c"); - foreach (aiVertexWeight element in c) { - this.Add(element); - } - } - - public bool IsFixedSize { - get { - return false; - } - } - - public bool IsReadOnly { - get { - return false; - } - } - - public aiVertexWeight this[int index] { - get { - return getitem(index); - } - set { - setitem(index, value); - } - } - - public int Capacity { - get { - return (int)capacity(); - } - set { - if (value < size()) - throw new ArgumentOutOfRangeException("Capacity"); - reserve((uint)value); - } - } - - public int Count { - get { - return (int)size(); - } - } - - public bool IsSynchronized { - get { - return false; - } - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array) -#else - public void CopyTo(aiVertexWeight[] array) -#endif - { - CopyTo(0, array, 0, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(System.Array array, int arrayIndex) -#else - public void CopyTo(aiVertexWeight[] array, int arrayIndex) -#endif - { - CopyTo(0, array, arrayIndex, this.Count); - } - -#if SWIG_DOTNET_1 - public void CopyTo(int index, System.Array array, int arrayIndex, int count) -#else - public void CopyTo(int index, aiVertexWeight[] array, int arrayIndex, int count) -#endif - { - if (array == null) - throw new ArgumentNullException("array"); - if (index < 0) - throw new ArgumentOutOfRangeException("index", "Value is less than zero"); - if (arrayIndex < 0) - throw new ArgumentOutOfRangeException("arrayIndex", "Value is less than zero"); - if (count < 0) - throw new ArgumentOutOfRangeException("count", "Value is less than zero"); - if (array.Rank > 1) - throw new ArgumentException("Multi dimensional array.", "array"); - if (index+count > this.Count || arrayIndex+count > array.Length) - throw new ArgumentException("Number of elements to copy is too large."); - for (int i=0; i System.Collections.Generic.IEnumerable.GetEnumerator() { - return new aiVertexWeightVectorEnumerator(this); - } -#endif - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { - return new aiVertexWeightVectorEnumerator(this); - } - - public aiVertexWeightVectorEnumerator GetEnumerator() { - return new aiVertexWeightVectorEnumerator(this); - } - - // Type-safe enumerator - /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown - /// whenever the collection is modified. This has been done for changes in the size of the - /// collection but not when one of the elements of the collection is modified as it is a bit - /// tricky to detect unmanaged code that modifies the collection under our feet. - public sealed class aiVertexWeightVectorEnumerator : System.Collections.IEnumerator -#if !SWIG_DOTNET_1 - , System.Collections.Generic.IEnumerator -#endif - { - private aiVertexWeightVector collectionRef; - private int currentIndex; - private object currentObject; - private int currentSize; - - public aiVertexWeightVectorEnumerator(aiVertexWeightVector collection) { - collectionRef = collection; - currentIndex = -1; - currentObject = null; - currentSize = collectionRef.Count; - } - - // Type-safe iterator Current - public aiVertexWeight Current { - get { - if (currentIndex == -1) - throw new InvalidOperationException("Enumeration not started."); - if (currentIndex > currentSize - 1) - throw new InvalidOperationException("Enumeration finished."); - if (currentObject == null) - throw new InvalidOperationException("Collection modified."); - return (aiVertexWeight)currentObject; - } - } - - // Type-unsafe IEnumerator.Current - object System.Collections.IEnumerator.Current { - get { - return Current; - } - } - - public bool MoveNext() { - int size = collectionRef.Count; - bool moveOkay = (currentIndex+1 < size) && (size == currentSize); - if (moveOkay) { - currentIndex++; - currentObject = collectionRef[currentIndex]; - } else { - currentObject = null; - } - return moveOkay; - } - - public void Reset() { - currentIndex = -1; - currentObject = null; - if (collectionRef.Count != currentSize) { - throw new InvalidOperationException("Collection modified."); - } - } - -#if !SWIG_DOTNET_1 - public void Dispose() { - currentIndex = -1; - currentObject = null; - } -#endif - } - - public void Clear() { - AssimpPINVOKE.aiVertexWeightVector_Clear(swigCPtr); - } - - public void Add(aiVertexWeight x) { - AssimpPINVOKE.aiVertexWeightVector_Add(swigCPtr, aiVertexWeight.getCPtr(x)); - } - - private uint size() { - uint ret = AssimpPINVOKE.aiVertexWeightVector_size(swigCPtr); - return ret; - } - - private uint capacity() { - uint ret = AssimpPINVOKE.aiVertexWeightVector_capacity(swigCPtr); - return ret; - } - - private void reserve(uint n) { - AssimpPINVOKE.aiVertexWeightVector_reserve(swigCPtr, n); - } - - public aiVertexWeightVector() : this(AssimpPINVOKE.new_aiVertexWeightVector__SWIG_0(), true) { - } - - public aiVertexWeightVector(aiVertexWeightVector other) : this(AssimpPINVOKE.new_aiVertexWeightVector__SWIG_1(aiVertexWeightVector.getCPtr(other)), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiVertexWeightVector(int capacity) : this(AssimpPINVOKE.new_aiVertexWeightVector__SWIG_2(capacity), true) { - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - private aiVertexWeight getitemcopy(int index) { - IntPtr cPtr = AssimpPINVOKE.aiVertexWeightVector_getitemcopy(swigCPtr, index); - aiVertexWeight ret = (cPtr == IntPtr.Zero) ? null : new aiVertexWeight(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private aiVertexWeight getitem(int index) { - IntPtr cPtr = AssimpPINVOKE.aiVertexWeightVector_getitem(swigCPtr, index); - aiVertexWeight ret = (cPtr == IntPtr.Zero) ? null : new aiVertexWeight(cPtr, false); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - private void setitem(int index, aiVertexWeight val) { - AssimpPINVOKE.aiVertexWeightVector_setitem(swigCPtr, index, aiVertexWeight.getCPtr(val)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void AddRange(aiVertexWeightVector values) { - AssimpPINVOKE.aiVertexWeightVector_AddRange(swigCPtr, aiVertexWeightVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public aiVertexWeightVector GetRange(int index, int count) { - IntPtr cPtr = AssimpPINVOKE.aiVertexWeightVector_GetRange(swigCPtr, index, count); - aiVertexWeightVector ret = (cPtr == IntPtr.Zero) ? null : new aiVertexWeightVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Insert(int index, aiVertexWeight x) { - AssimpPINVOKE.aiVertexWeightVector_Insert(swigCPtr, index, aiVertexWeight.getCPtr(x)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void InsertRange(int index, aiVertexWeightVector values) { - AssimpPINVOKE.aiVertexWeightVector_InsertRange(swigCPtr, index, aiVertexWeightVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveAt(int index) { - AssimpPINVOKE.aiVertexWeightVector_RemoveAt(swigCPtr, index); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void RemoveRange(int index, int count) { - AssimpPINVOKE.aiVertexWeightVector_RemoveRange(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public static aiVertexWeightVector Repeat(aiVertexWeight value, int count) { - IntPtr cPtr = AssimpPINVOKE.aiVertexWeightVector_Repeat(aiVertexWeight.getCPtr(value), count); - aiVertexWeightVector ret = (cPtr == IntPtr.Zero) ? null : new aiVertexWeightVector(cPtr, true); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - - public void Reverse() { - AssimpPINVOKE.aiVertexWeightVector_Reverse__SWIG_0(swigCPtr); - } - - public void Reverse(int index, int count) { - AssimpPINVOKE.aiVertexWeightVector_Reverse__SWIG_1(swigCPtr, index, count); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetRange(int index, aiVertexWeightVector values) { - AssimpPINVOKE.aiVertexWeightVector_SetRange(swigCPtr, index, aiVertexWeightVector.getCPtr(values)); - if (AssimpPINVOKE.SWIGPendingException.Pending) throw AssimpPINVOKE.SWIGPendingException.Retrieve(); - } - - public bool Contains(aiVertexWeight value) { - bool ret = AssimpPINVOKE.aiVertexWeightVector_Contains(swigCPtr, aiVertexWeight.getCPtr(value)); - return ret; - } - - public int IndexOf(aiVertexWeight value) { - int ret = AssimpPINVOKE.aiVertexWeightVector_IndexOf(swigCPtr, aiVertexWeight.getCPtr(value)); - return ret; - } - - public int LastIndexOf(aiVertexWeight value) { - int ret = AssimpPINVOKE.aiVertexWeightVector_LastIndexOf(swigCPtr, aiVertexWeight.getCPtr(value)); - return ret; - } - - public bool Remove(aiVertexWeight value) { - bool ret = AssimpPINVOKE.aiVertexWeightVector_Remove(swigCPtr, aiVertexWeight.getCPtr(value)); - return ret; - } - -} diff --git a/port/Assimp.NET/Assimp.NET_CS/app.config b/port/Assimp.NET/Assimp.NET_CS/app.config deleted file mode 100644 index b7db28170..000000000 --- a/port/Assimp.NET/Assimp.NET_CS/app.config +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/port/Assimp.NET/Assimp.NET_DEMO/Assimp.NET_DEMO.csproj b/port/Assimp.NET/Assimp.NET_DEMO/Assimp.NET_DEMO.csproj deleted file mode 100644 index b1df7341c..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/Assimp.NET_DEMO.csproj +++ /dev/null @@ -1,172 +0,0 @@ - - - - Debug - AnyCPU - 9.0.21022 - 2.0 - {B2813591-1491-4C99-B6E2-67B484411AFC} - WinExe - Properties - Assimp.Viewer - Assimp.Viewer - v3.5 - 512 - Assimp.Viewer.Program - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - - - - - - - - - - - 3.5 - - - - - 3.5 - - - 3.5 - - - - - - - - - - Form - - - AssimpView.cs - - - - - Form - - - - - AssimpView.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {A86A8AF2-3B4D-4381-BB01-9CA2AE88450E} - Assimp_NET - - - {A0CE9ED2-A27E-40AE-95F5-FEF94BB7E131} - Assimp.NET_CS - - - - - False - .NET Framework 2.0 %28x86%29 - false - - - False - .NET Framework 3.0 %28x86%29 - false - - - False - .NET Framework 3.5 - true - - - False - Windows Installer 3.1 - true - - - - - \ No newline at end of file diff --git a/port/Assimp.NET/Assimp.NET_DEMO/Assimp.NET_DEMO.csproj.user b/port/Assimp.NET/Assimp.NET_DEMO/Assimp.NET_DEMO.csproj.user deleted file mode 100644 index 3b27fb449..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/Assimp.NET_DEMO.csproj.user +++ /dev/null @@ -1,18 +0,0 @@ - - - false - - - publish\ - - - - - - - - - de-DE - false - - \ No newline at end of file diff --git a/port/Assimp.NET/Assimp.NET_DEMO/AssimpView.Designer.cs b/port/Assimp.NET/Assimp.NET_DEMO/AssimpView.Designer.cs deleted file mode 100644 index 8ab6aee57..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/AssimpView.Designer.cs +++ /dev/null @@ -1,90 +0,0 @@ -/* ---------------------------------------------------------------------------- -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. ---------------------------------------------------------------------------- -*/ -namespace Assimp.Viewer -{ - partial class AssimpView - { - /// - /// Erforderliche Designervariable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Verwendete Ressourcen bereinigen. - /// - /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Vom Windows Form-Designer generierter Code - - /// - /// Erforderliche Methode für die Designerunterstützung. - /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. - /// - private void InitializeComponent() - { - this.SuspendLayout(); - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(735, 380); - this.Name = "Form1"; - this.Text = "Form1"; - this.Load += new System.EventHandler(this.Form1_Load); - this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged); - this.ResumeLayout(false); - - } - - #endregion - - } -} - diff --git a/port/Assimp.NET/Assimp.NET_DEMO/AssimpView.cs b/port/Assimp.NET/Assimp.NET_DEMO/AssimpView.cs deleted file mode 100644 index 270494fa4..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/AssimpView.cs +++ /dev/null @@ -1,496 +0,0 @@ -/* ---------------------------------------------------------------------------- -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. ---------------------------------------------------------------------------- -*/ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Diagnostics; -using System.Drawing; -using System.IO; -using System.Text; -using System.Windows.Forms; -using Microsoft.DirectX; -using Microsoft.DirectX.Direct3D; - -namespace Assimp.Viewer -{ - public partial class AssimpView : Form - { - public AssimpView() - { - InitializeComponent(); - - // Window title - this.Text = "Assimp .NET Viewer"; - - // Ignore WM_ERASEBKGND messages to prevent flicker - this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); - - // Listen to mouse - this.MouseDown += new MouseEventHandler(AssimpView_MouseDown); - this.MouseMove += new MouseEventHandler(AssimpView_MouseMove); - this.MouseUp += new MouseEventHandler(AssimpView_MouseUp); - this.MouseWheel += new MouseEventHandler(AssimpView_MouseWheel); - } - - void AssimpView_MouseWheel(object sender, MouseEventArgs e) { - g_sCamera.vPos.Z *= 1.0f - (e.Delta / 1000.0f); - Refresh(); - } - - private void AssimpView_MouseDown(object sender, MouseEventArgs e) { - UpdateMouseState(e); - } - - private void AssimpView_MouseMove(object sender, MouseEventArgs e) { - UpdateMouseState(e); - } - - private void AssimpView_MouseUp(object sender, MouseEventArgs e) { - UpdateMouseState(e); - } - - private void UpdateMouseState(MouseEventArgs e) { - g_bMousePressed = (e.Button == MouseButtons.Left); - g_bMousePressedR = (e.Button == MouseButtons.Right); - g_bMousePressedM = (e.Button == MouseButtons.Middle); - g_bMousePressedBoth = (e.Button == (MouseButtons.Left | MouseButtons.Right)); - Refresh(); - } - - protected override void OnPaintBackground(PaintEventArgs pevent) { - /* Do nothing to prevent flicker during resize */ - } - - private void Form1_Load(object sender, EventArgs e) - { - InitializeDevice(); - InitializeAssimp(); - } - - private void Form1_SizeChanged(object sender, EventArgs e) { - presentParams.BackBufferWidth = Width; - presentParams.BackBufferHeight = Height; - device.Reset(presentParams); - Invalidate(); - } - - public void InitializeDevice() - { - // Improve Performance - // http://blogs.msdn.com/b/tmiller/archive/2003/11/14/57531.aspx - Device.IsUsingEventHandlers = false; - - // For Windowed mode leave Width and Height at 0 - var adapter = Manager.Adapters.Default; - presentParams = new PresentParameters(); - presentParams.AutoDepthStencilFormat = DepthFormat.D16; - presentParams.EnableAutoDepthStencil = true; - presentParams.Windowed = true; - presentParams.SwapEffect = SwapEffect.Discard; - - // Keep precision in floating point calculations - // http://blogs.msdn.com/b/tmiller/archive/2004/06/01/145596.aspx - var createFlags = CreateFlags.FpuPreserve; - - // Pure device for performance - all device render states are now write only - var deviceType = DeviceType.Hardware; - var caps = Manager.GetDeviceCaps(adapter.Adapter, deviceType); - if (caps.DeviceCaps.SupportsPureDevice) { - createFlags |= CreateFlags.PureDevice; - } - - // Warning: some drivers lie about supporting HT&L. Use Software if you see problems. - if (caps.DeviceCaps.SupportsHardwareTransformAndLight) { - createFlags |= CreateFlags.HardwareVertexProcessing; - } - else { - createFlags |= CreateFlags.SoftwareVertexProcessing; - } - - // Create Device - device = new Device(adapter.Adapter, deviceType, this, createFlags, presentParams); - - // Add event handlers - device.DeviceResizing += new CancelEventHandler(device_DeviceResizing); - } - - private void device_DeviceResizing(object sender, CancelEventArgs e) { - device.Reset(); - } - - // default pp steps - private static aiPostProcessSteps ppsteps = - aiPostProcessSteps.aiProcess_CalcTangentSpace | // calculate tangents and bitangents if possible - aiPostProcessSteps.aiProcess_JoinIdenticalVertices | // join identical vertices/ optimize indexing - aiPostProcessSteps.aiProcess_ValidateDataStructure | // perform a full validation of the loader's output - aiPostProcessSteps.aiProcess_ImproveCacheLocality | // improve the cache locality of the output vertices - aiPostProcessSteps.aiProcess_RemoveRedundantMaterials | // remove redundant materials - aiPostProcessSteps.aiProcess_FindDegenerates | // remove degenerated polygons from the import - aiPostProcessSteps.aiProcess_FindInvalidData | // detect invalid model data, such as invalid normal vectors - aiPostProcessSteps.aiProcess_GenUVCoords | // convert spherical, cylindrical, box and planar mapping to proper UVs - aiPostProcessSteps.aiProcess_TransformUVCoords | // preprocess UV transformations (scaling, translation ...) - aiPostProcessSteps.aiProcess_FindInstances | // search for instanced meshes and remove them by references to one master - aiPostProcessSteps.aiProcess_LimitBoneWeights | // limit bone weights to 4 per vertex - aiPostProcessSteps.aiProcess_OptimizeMeshes | // join small meshes, if possible; - (aiPostProcessSteps)0; - - - public void InitializeAssimp() { - var flags = ( ppsteps | - aiPostProcessSteps.aiProcess_GenSmoothNormals | // generate smooth normal vectors if not existing - aiPostProcessSteps.aiProcess_SplitLargeMeshes | // split large, unrenderable meshes into submeshes - aiPostProcessSteps.aiProcess_Triangulate | // triangulate polygons with more than 3 edges - aiPostProcessSteps.aiProcess_ConvertToLeftHanded | // convert everything to D3D left handed space - aiPostProcessSteps.aiProcess_SortByPType | // make 'clean' meshes which consist of a single typ of primitives - (aiPostProcessSteps)0); - - // default model - var path = "../../../../../test/models/3DS/test1.3ds"; - - importer = new Importer(); - string[] args = Environment.GetCommandLineArgs(); - if (args.Length > 1) { - path = args[1]; - } - - - //var path = "man.3ds"; - scene = importer.ReadFile(path, flags); - if (scene != null) - { - directory = Path.GetDirectoryName(path); - CacheMaterials(scene.mMaterials); - CacheMeshes(scene.mMeshes); - SetupCamera(scene.mCameras); - } - else { - MessageBox.Show("Failed to open file: " + path + ". Either Assimp screwed up or the path is not valid."); - Application.Exit(); - } - } - - private void CacheMeshes(aiMeshVector meshes) { - var numMeshes = meshes.Count; - meshCache = new Mesh[numMeshes]; - meshBoundsMin = new Vector3[numMeshes]; - meshBoundsMax = new Vector3[numMeshes]; - - for (int i = 0; i < numMeshes; ++i) { - var mesh = meshes[i]; - - switch (mesh.mPrimitiveTypes) { - case aiPrimitiveType.aiPrimitiveType_TRIANGLE: - Vector3 min, max; - meshCache[i] = CreateMesh(mesh, out min, out max); - meshBoundsMin[i] = min; - meshBoundsMax[i] = max; - break; - } - } - } - - private void CacheMaterials(aiMaterialVector materials) { - var numMaterials = materials.Count; - materialCache = new ExtendedMaterial[numMaterials]; - textureCache = new Dictionary(); - - for (int i = 0; i < numMaterials; ++i) { - var material = materials[i]; - var dxExtendedMaterial = new ExtendedMaterial(); - var dxMaterial = new Material(); - dxMaterial.AmbientColor = material.Ambient.ToColorValue(); - dxMaterial.DiffuseColor = material.Diffuse.ToColorValue(); - dxMaterial.EmissiveColor = material.Emissive.ToColorValue(); - dxMaterial.SpecularColor = material.Specular.ToColorValue(); - dxMaterial.SpecularSharpness = material.ShininessStrength; - dxExtendedMaterial.Material3D = dxMaterial; - dxExtendedMaterial.TextureFilename = material.TextureDiffuse0; - - materialCache[i] = dxExtendedMaterial; - - var textureFilename = dxExtendedMaterial.TextureFilename; - if (!string.IsNullOrEmpty(textureFilename) && !textureCache.ContainsKey(textureFilename)) { - textureCache.Add(textureFilename, CreateTexture(textureFilename)); - } - } - } - - private Texture CreateTexture(string fileName) { - var path = Path.Combine(directory, fileName); - try { - using (var data = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)) { - var dxTexture = Texture.FromStream(device, data, Usage.None, Pool.Managed); - textureCache[path] = dxTexture; - return dxTexture; - } - } - catch (Exception) { - return null; - } - } - - private Mesh CreateMesh(aiMesh aiMesh, out Vector3 min, out Vector3 max) { - var numFaces = (int) aiMesh.mNumFaces; - var numVertices = (int) aiMesh.mNumVertices; - - var dxMesh = new Mesh(numFaces, numVertices, MeshFlags.Managed | MeshFlags.Use32Bit, - CustomVertex.PositionNormalTextured.Format, device); - - var aiPositions = aiMesh.mVertices; - var aiNormals = aiMesh.mNormals; - var aiTextureCoordsAll = aiMesh.mTextureCoords; - var aiTextureCoords = (aiTextureCoordsAll!=null) ? aiTextureCoordsAll[0] : null; - var dxVertices = new CustomVertex.PositionNormalTextured[numVertices]; - for (int i = 0; i < numVertices; ++i) { - dxVertices[i].Position = aiPositions[i].ToVector3(); - if (aiNormals != null) { - dxVertices[i].Normal = aiNormals[i].ToVector3(); - } - if (aiTextureCoords != null) { - var uv = aiTextureCoords[i]; - dxVertices[i].Tu = uv.x; - dxVertices[i].Tv = uv.y; - } - } - dxMesh.VertexBuffer.SetData(dxVertices, 0, LockFlags.None); - - var aiFaces = aiMesh.mFaces; - var dxIndices = new uint[numFaces * 3]; - for (int i = 0; i < numFaces; ++i) { - var aiFace = aiFaces[i]; - var aiIndices = aiFace.mIndices; - for (int j = 0; j < 3; ++j) { - dxIndices[i * 3 + j] = aiIndices[j]; - } - } - dxMesh.IndexBuffer.SetData(dxIndices, 0, LockFlags.None); - - var dxAttributes = dxMesh.LockAttributeBufferArray(LockFlags.None); - // TODO: Set face material index for attributes - dxMesh.UnlockAttributeBuffer(dxAttributes); - - var adjacency = new int[numFaces * 3]; - dxMesh.GenerateAdjacency(0.0f, adjacency); - dxMesh.OptimizeInPlace(MeshFlags.OptimizeAttributeSort, adjacency); - - Geometry.ComputeBoundingBox(dxVertices, CustomVertex.PositionNormalTextured.StrideSize, out min, out max); - - return dxMesh; - } - - //------------------------------------------------------------------------------- - // Calculate the boundaries of a given node and all of its children - // The boundaries are in Worldspace (AABB) - // piNode Input node - // min/max Receives the min/max boundaries - // piMatrix Transformation matrix of the graph at this position - //------------------------------------------------------------------------------- - private void CalculateBounds(aiNode piNode, ref Vector3 min, ref Vector3 max, Matrix piMatrix) { - Debug.Assert(null != piNode); - - var mTemp = piNode.mTransformation.ToMatrix(); - var aiMe = mTemp * piMatrix; - - var meshes = piNode.mMeshes; - var numMeshes = meshes.Count; - for (int i = 0; i < numMeshes; ++i) { - var mesh = meshes[i]; - var meshMin = Vector3.TransformCoordinate(meshBoundsMin[mesh], aiMe); - var meshMax = Vector3.TransformCoordinate(meshBoundsMax[mesh], aiMe); - min.X = Math.Min(min.X, meshMin.X); - min.Y = Math.Min(min.Y, meshMin.Y); - min.Z = Math.Min(min.Z, meshMin.Z); - max.X = Math.Max(max.X, meshMax.X); - max.Y = Math.Max(max.Y, meshMax.Y); - max.Z = Math.Max(max.Z, meshMax.Z); - } - var children = piNode.mChildren; - var numChildren = children.Count; - for (int i = 0; i < numChildren; ++i) { - CalculateBounds(children[i], ref min, ref max, aiMe); - } - } - - protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) { - HandleMouseInputLocal(); - Render(); - } - - private void Render() { - device.Clear(ClearFlags.Target|ClearFlags.ZBuffer, Color.DarkSlateBlue, 1.0f, 0); - device.BeginScene(); - - SetupMatrices(); - - if (scene != null && scene.mRootNode != null) { - SetupLights(scene.mLights); - RenderNode(scene.mRootNode, g_mWorldRotate); - } - - device.EndScene(); - device.Present(); - } - - private void SetupMatrices() { - var fovy = Geometry.DegreeToRadian(45.0f); - var aspect = ((float)this.Width / (float)this.Height); - device.Transform.Projection = Matrix.PerspectiveFovLH(fovy, aspect, g_zNear, g_zFar); - device.Transform.View = g_sCamera.GetMatrix(); - } - - private void SetupCamera(aiCameraVector cameras) { - // Get scene bounds - var min = new Vector3(float.MaxValue, float.MaxValue, float.MaxValue); - var max = new Vector3(float.MinValue, float.MinValue, float.MinValue); - CalculateBounds(scene.mRootNode, ref min, ref max, Matrix.Identity); - - // Projection Depth - var size = (max-min); - g_zFar = Math.Max(Math.Max(size.X, size.Y), size.Z) * 100; - - // Starting View Position - var center = min + size * 0.5f; - var lookAt = new Vector3(0,0,1); // Unit vector not coordinate - var position = new Vector3(center.X, center.Y, center.Z-(size.Z*10)); - var up = new Vector3(0, 1, 0); - if (cameras.Count > 0) { - var camera = cameras[0]; - lookAt = camera.mLookAt.ToVector3(); - position = camera.mPosition.ToVector3(); - up = camera.mUp.ToVector3(); - } - g_sCamera.vLookAt = lookAt; - g_sCamera.vPos = position; - g_sCamera.vUp = up; - } - - private void SetupLights(aiLightVector lights) { - var numLights = lights.Count; - - if (numLights == 0) { - var light = device.Lights[0]; - light.Type = LightType.Directional; - light.Diffuse = Color.LightGray; - light.Direction = new Vector3(-1, -1, 1); - light.Enabled = true; - } - else { - // TODO: setup lights - } - - // Enables lighting - device.RenderState.Lighting = true; - device.RenderState.Ambient = Color.DarkGray; - device.RenderState.SpecularEnable = true; - } - - private void RenderNode(aiNode node, Matrix parentMatrix) { - var nodeMatrix = node.mTransformation.ToMatrix() * parentMatrix; - - var children = node.mChildren; - var numChildren = node.mNumChildren; - for (int i = 0; i < numChildren; ++i) { - var child = children[i]; - RenderNode(child, nodeMatrix); - } - - device.Transform.World = nodeMatrix; - var meshes = node.mMeshes; - var numMeshes = meshes.Count; - for (int i = 0; i < numMeshes; ++i) { - var meshId = (int)meshes[i]; - var mesh = scene.mMeshes[meshId]; - var materialId = (int)mesh.mMaterialIndex; - - var dxMaterial = materialCache[materialId]; - device.Material = dxMaterial.Material3D; - - Texture dxTexture = null; - if (!string.IsNullOrEmpty(dxMaterial.TextureFilename)) { - textureCache.TryGetValue(dxMaterial.TextureFilename, out dxTexture); - } - device.SetTexture(0, dxTexture); - - var dxMesh = meshCache[meshId]; - RenderMesh(dxMesh); - } - } - - private void RenderMesh(Mesh mesh) { - for (int i = 0; i < mesh.NumberAttributes; ++i) { - mesh.DrawSubset(i); - } - } - - private Device device; - private PresentParameters presentParams; - - private Importer importer; - private string directory; - private aiScene scene; - private Mesh[] meshCache; - private ExtendedMaterial[] materialCache; - private Dictionary textureCache; - private Vector3[] meshBoundsMin; - private Vector3[] meshBoundsMax; - - private Camera g_sCamera = new Camera(); - private float g_zNear = 0.2f; - private float g_zFar = 1000.0f; - private Matrix g_mProjection = Matrix.Identity; - private Matrix g_mWorldRotate = Matrix.Identity; - } - - //------------------------------------------------------------------------------- - // Position of the cursor relative to the 3ds max' like control circle - //------------------------------------------------------------------------------- - public enum EClickPos { - // The click was inside the inner circle (x,y axis) - Circle, - // The click was inside one of tghe vertical snap-ins - CircleVert, - // The click was inside onf of the horizontal snap-ins - CircleHor, - // the cklick was outside the circle (z-axis) - Outside - }; -} diff --git a/port/Assimp.NET/Assimp.NET_DEMO/AssimpView.resx b/port/Assimp.NET/Assimp.NET_DEMO/AssimpView.resx deleted file mode 100644 index ff31a6db5..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/AssimpView.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/port/Assimp.NET/Assimp.NET_DEMO/Camera.cs b/port/Assimp.NET/Assimp.NET_DEMO/Camera.cs deleted file mode 100644 index 5decff307..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/Camera.cs +++ /dev/null @@ -1,100 +0,0 @@ -/* ---------------------------------------------------------------------------- -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. ---------------------------------------------------------------------------- -*/ -using Microsoft.DirectX; - -namespace Assimp.Viewer { - public class Camera { - public Camera () { - vPos = new Vector3(0.0f,0.0f,-10.0f); - vLookAt = new Vector3(0.0f, 0.0f, 1.0f); - vUp = new Vector3(0.0f,1.0f,0.0f); - vRight = new Vector3(0.0f,1.0f,0.0f); - } - - // position of the camera - public Vector3 vPos; - - // up-vector of the camera - public Vector3 vUp; - - // camera's looking point is vPos + vLookAt - public Vector3 vLookAt; - - // right vector of the camera - public Vector3 vRight; - - - // Equation - // (vRight ^ vUp) - vLookAt == 0 - // needn't apply - - public Matrix GetMatrix() { - vLookAt.Normalize(); - vRight = Vector3.Cross(vUp, vLookAt); - vRight.Normalize(); - vUp = Vector3.Cross(vLookAt, vRight); - vUp.Normalize(); - - var view = Matrix.Identity; - view.M11 = vRight.X; - view.M12 = vUp.X; - view.M13 = vLookAt.X; - view.M14 = 0.0f; - - view.M21 = vRight.Y; - view.M22 = vUp.Y; - view.M23 = vLookAt.Y; - view.M24 = 0.0f; - - view.M31 = vRight.Z; - view.M32 = vUp.Z; - view.M33 = vLookAt.Z; - view.M34 = 0.0f; - - view.M41 = -Vector3.Dot(vPos, vRight); - view.M42 = -Vector3.Dot(vPos, vUp); - view.M43 = -Vector3.Dot(vPos, vLookAt); - view.M44 = 1.0f; - - return view; - } - } -} diff --git a/port/Assimp.NET/Assimp.NET_DEMO/Display.cs b/port/Assimp.NET/Assimp.NET_DEMO/Display.cs deleted file mode 100644 index 677d8daa9..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/Display.cs +++ /dev/null @@ -1,2314 +0,0 @@ -/* ---------------------------------------------------------------------------- -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. ---------------------------------------------------------------------------- -*/ - - -namespace Assimp.Viewer { - - public struct SVertex - { - float x,y,z,w,u,v; - }; - - partial class AssimpView { -#if false -extern COLORREF g_aclCustomColors[16] /*= {0}*/; -extern HKEY g_hRegistry; -extern float g_fLoadTime; - -//------------------------------------------------------------------------------- -// Table of colors used for normal vectors. -//------------------------------------------------------------------------------- -D3DXVECTOR4 g_aclNormalColors[14] = -{ - D3DXVECTOR4(0xFF / 255.0f,0xFF / 255.0f,0xFF / 255.0f, 1.0f), // white - - D3DXVECTOR4(0xFF / 255.0f,0x00 / 255.0f,0x00 / 255.0f,1.0f), // red - D3DXVECTOR4(0x00 / 255.0f,0xFF / 255.0f,0x00 / 255.0f,1.0f), // green - D3DXVECTOR4(0x00 / 255.0f,0x00 / 255.0f,0xFF / 255.0f,1.0f), // blue - - D3DXVECTOR4(0xFF / 255.0f,0xFF / 255.0f,0x00 / 255.0f,1.0f), // yellow - D3DXVECTOR4(0xFF / 255.0f,0x00 / 255.0f,0xFF / 255.0f,1.0f), // magenta - D3DXVECTOR4(0x00 / 255.0f,0xFF / 255.0f,0xFF / 255.0f,1.0f), // wtf - - D3DXVECTOR4(0xFF / 255.0f,0x60 / 255.0f,0x60 / 255.0f,1.0f), // light red - D3DXVECTOR4(0x60 / 255.0f,0xFF / 255.0f,0x60 / 255.0f,1.0f), // light green - D3DXVECTOR4(0x60 / 255.0f,0x60 / 255.0f,0xFF / 255.0f,1.0f), // light blue - - D3DXVECTOR4(0xA0 / 255.0f,0x00 / 255.0f,0x00 / 255.0f,1.0f), // dark red - D3DXVECTOR4(0x00 / 255.0f,0xA0 / 255.0f,0x00 / 255.0f,1.0f), // dark green - D3DXVECTOR4(0x00 / 255.0f,0x00 / 255.0f,0xA0 / 255.0f,1.0f), // dark blue - - D3DXVECTOR4(0x88 / 255.0f,0x88 / 255.0f,0x88 / 255.0f, 1.0f) // gray -}; - - -//------------------------------------------------------------------------------- -// Recursivly count the number of nodes in an asset's node graph -// Used by LoadAsset() -//------------------------------------------------------------------------------- -void GetNodeCount(aiNode* pcNode, unsigned int* piCnt) -{ - *piCnt = *piCnt+1; - for (unsigned int i = 0; i < pcNode->mNumChildren;++i) - GetNodeCount(pcNode->mChildren[i],piCnt); -} - -//------------------------------------------------------------------------------- -int CDisplay::EnableAnimTools(BOOL hm) -{ - EnableWindow(GetDlgItem(g_hDlg,IDC_PLAY),hm); - EnableWindow(GetDlgItem(g_hDlg,IDC_SLIDERANIM),hm); - return 1; -} - -//------------------------------------------------------------------------------- -// Fill animation combo box -int CDisplay::FillAnimList(void) -{ - if (0 != g_pcAsset->pcScene->mNumAnimations) - { - // now fill in all animation names - for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumAnimations;++i) { - SendDlgItemMessage(g_hDlg,IDC_COMBO1,CB_ADDSTRING,0, - ( LPARAM ) g_pcAsset->pcScene->mAnimations[i]->mName.data); - } - - // also add a dummy - 'none' - SendDlgItemMessage(g_hDlg,IDC_COMBO1,CB_ADDSTRING,0,(LPARAM)"none"); - - // select first - SendDlgItemMessage(g_hDlg,IDC_COMBO1,CB_SETCURSEL,0,0); - - EnableAnimTools(TRUE); - } - else // tools remain disabled - EnableAnimTools(FALSE); - - return 1; -} -//------------------------------------------------------------------------------- -// Clear the list of animations -int CDisplay::ClearAnimList(void) -{ - // clear the combo box - SendDlgItemMessage(g_hDlg,IDC_COMBO1,CB_RESETCONTENT,0,0); - return 1; -} -//------------------------------------------------------------------------------- -// Clear the tree view -int CDisplay::ClearDisplayList(void) -{ - // clear the combo box - TreeView_DeleteAllItems(GetDlgItem(g_hDlg,IDC_TREE1)); - this->Reset(); - return 1; -} -//------------------------------------------------------------------------------- -// Add a specific node to the display list -int CDisplay::AddNodeToDisplayList( - unsigned int iIndex, - unsigned int iDepth, - aiNode* pcNode, - HTREEITEM hRoot) -{ - ai_assert(NULL != pcNode); - ai_assert(NULL != hRoot); - - char chTemp[MAXLEN]; - - if(0 == pcNode->mName.length) { - if (iIndex >= 100) { - iIndex += iDepth * 1000; - } - else if (iIndex >= 10) - { - iIndex += iDepth * 100; - } - else iIndex += iDepth * 10; - sprintf(chTemp,"Node %i",iIndex); - } - else { - sprintf(chTemp,"%s",pcNode->mName.data); - } - sprintf(chTemp+strlen(chTemp), iIndex ? " (%i)" : " (%i meshes)",pcNode->mNumMeshes); - - TVITEMEXW tvi; - TVINSERTSTRUCTW sNew; - - wchar_t tmp[512]; - int t = MultiByteToWideChar(CP_UTF8,0,chTemp,-1,tmp,512); - - tvi.pszText = tmp; - tvi.cchTextMax = (int)t; - - tvi.mask = TVIF_TEXT | TVIF_SELECTEDIMAGE | TVIF_IMAGE | TVIF_HANDLE | TVIF_PARAM; - tvi.iImage = this->m_aiImageList[AI_VIEW_IMGLIST_NODE]; - tvi.iSelectedImage = this->m_aiImageList[AI_VIEW_IMGLIST_NODE]; - tvi.lParam = (LPARAM)5; - - sNew.itemex = tvi; - sNew.hInsertAfter = TVI_LAST; - sNew.hParent = hRoot; - - // add the item to the list - HTREEITEM hTexture = (HTREEITEM)SendMessage(GetDlgItem(g_hDlg,IDC_TREE1), - TVM_INSERTITEMW, - 0, - (LPARAM)(LPTVINSERTSTRUCT)&sNew); - - // recursively add all child nodes - ++iDepth; - for (unsigned int i = 0; i< pcNode->mNumChildren;++i){ - AddNodeToDisplayList(i,iDepth,pcNode->mChildren[i],hTexture); - } - - // add the node to the list - NodeInfo info; - info.hTreeItem = hTexture; - info.psNode = pcNode; - this->AddNode(info); - return 1; -} - -//------------------------------------------------------------------------------- -int CDisplay::AddMeshToDisplayList(unsigned int iIndex, HTREEITEM hRoot) -{ - aiMesh* pcMesh = g_pcAsset->pcScene->mMeshes[iIndex]; - - char chTemp[MAXLEN]; - - if(0 == pcMesh->mName.length) { - sprintf(chTemp,"Mesh %i",iIndex); - } - else { - sprintf(chTemp,"%s",pcMesh->mName.data); - } - sprintf(chTemp+strlen(chTemp), iIndex ? " (%i)" : " (%i faces)",pcMesh->mNumFaces); - - TVITEMEXW tvi; - TVINSERTSTRUCTW sNew; - - wchar_t tmp[512]; - int t = MultiByteToWideChar(CP_UTF8,0,chTemp,-1,tmp,512); - - tvi.pszText = tmp; - tvi.cchTextMax = (int)t; - - tvi.mask = TVIF_TEXT | TVIF_SELECTEDIMAGE | TVIF_IMAGE | TVIF_HANDLE | TVIF_PARAM; - tvi.iImage = this->m_aiImageList[AI_VIEW_IMGLIST_NODE]; - tvi.iSelectedImage = this->m_aiImageList[AI_VIEW_IMGLIST_NODE]; - tvi.lParam = (LPARAM)5; - - sNew.itemex = tvi; - sNew.hInsertAfter = TVI_LAST; - sNew.hParent = hRoot; - - // add the item to the list - HTREEITEM hTexture = (HTREEITEM)SendMessage(GetDlgItem(g_hDlg,IDC_TREE1), - TVM_INSERTITEMW, - 0, - (LPARAM)(LPTVINSERTSTRUCT)&sNew); - - // add the mesh to the list of all mesh entries in the scene browser - MeshInfo info; - info.hTreeItem = hTexture; - info.psMesh = pcMesh; - AddMesh(info); - return 1; -} - -//------------------------------------------------------------------------------- -// Replace the currently selected texture by another one -int CDisplay::ReplaceCurrentTexture(const char* szPath) -{ - ai_assert(NULL != szPath); - - // well ... try to load it - IDirect3DTexture9* piTexture = NULL; - aiString szString; - strcpy(szString.data,szPath); - szString.length = strlen(szPath); - CMaterialManager::Instance().LoadTexture(&piTexture,&szString); - - if (!piTexture) { - CLogDisplay::Instance().AddEntry("[ERROR] Unable to load this texture", - D3DCOLOR_ARGB(0xFF,0xFF,0x0,0x0)); - return 0; - } - - // we must also change the icon of the corresponding tree - // view item if the default texture was previously set - TVITEMEX tvi; - tvi.mask = TVIF_SELECTEDIMAGE | TVIF_IMAGE; - tvi.iImage = m_aiImageList[AI_VIEW_IMGLIST_MATERIAL]; - tvi.iSelectedImage = m_aiImageList[AI_VIEW_IMGLIST_MATERIAL]; - - TreeView_SetItem(GetDlgItem(g_hDlg,IDC_TREE1), - m_pcCurrentTexture->hTreeItem); - - // change this in the old aiMaterial structure, too - Assimp::MaterialHelper* pcMat = (Assimp::MaterialHelper*) - g_pcAsset->pcScene->mMaterials[m_pcCurrentTexture->iMatIndex]; - - // update all meshes referencing this material - for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumMeshes;++i) - { - if (this->m_pcCurrentTexture->iMatIndex != g_pcAsset->pcScene->mMeshes[i]->mMaterialIndex) - continue; - - AssetHelper::MeshHelper* pcMesh = g_pcAsset->apcMeshes[i]; - IDirect3DTexture9** tex = NULL; - const char* tex_string = NULL; - - switch (this->m_pcCurrentTexture->iType) - { - case aiTextureType_DIFFUSE: - tex = &pcMesh->piDiffuseTexture; - tex_string = "DIFFUSE_TEXTURE"; - break; - case aiTextureType_AMBIENT: - tex = &pcMesh->piAmbientTexture; - tex_string = "AMBIENT_TEXTURE"; - break; - case aiTextureType_SPECULAR: - tex = &pcMesh->piSpecularTexture; - tex_string = "SPECULAR_TEXTURE"; - break; - case aiTextureType_EMISSIVE: - tex = &pcMesh->piEmissiveTexture; - tex_string = "EMISSIVE_TEXTURE"; - break; - case aiTextureType_LIGHTMAP: - tex = &pcMesh->piLightmapTexture; - tex_string = "LIGHTMAP_TEXTURE"; - break; - case aiTextureType_DISPLACEMENT: - case aiTextureType_REFLECTION: - case aiTextureType_UNKNOWN: - break; - case aiTextureType_SHININESS: - tex = &pcMesh->piShininessTexture; - tex_string = "SHININESS_TEXTURE"; - break; - case aiTextureType_NORMALS: - case aiTextureType_HEIGHT: - - // special handling here - if (pcMesh->piNormalTexture && pcMesh->piNormalTexture != piTexture) { - piTexture->AddRef(); - pcMesh->piNormalTexture->Release(); - pcMesh->piNormalTexture = piTexture; - CMaterialManager::Instance().HMtoNMIfNecessary(pcMesh->piNormalTexture,&pcMesh->piNormalTexture,true); - m_pcCurrentTexture->piTexture = &pcMesh->piNormalTexture; - - if (!pcMesh->bSharedFX) { - pcMesh->piEffect->SetTexture("NORMAL_TEXTURE",piTexture); - } - } - break; - default: //case aiTextureType_OPACITY && case aiTextureType_OPACITY | 0x40000000: - - tex = &pcMesh->piOpacityTexture; - tex_string = "OPACITY_TEXTURE"; - break; - }; - if (tex && *tex && *tex != piTexture) - { - (**tex).Release(); - *tex = piTexture; - m_pcCurrentTexture->piTexture = tex; - - //if (!pcMesh->bSharedFX){ - pcMesh->piEffect->SetTexture(tex_string,piTexture); - //} - } - } - // now update the material itself - aiString szOld; - - aiGetMaterialString(pcMat,AI_MATKEY_TEXTURE(m_pcCurrentTexture->iType,0),&szOld); - pcMat->AddProperty(&szString,AI_MATKEY_TEXTURE(m_pcCurrentTexture->iType,0)); - -#if 0 - char szBuffer[512]; - sprintf(szBuffer,"%s%s",szKey,"_old"); - - if (AI_SUCCESS != aiGetMaterialString(pcMat, szBuffer, &szOld)) - { - pcMat->AddProperty(&szOld,szBuffer ); - } - else if (szString.length == szOld.length && - 0 == ASSIMP_stricmp(szString.data,szOld.data)) - { - pcMat->RemoveProperty(szBuffer); - } -#endif - return 1; -} -//------------------------------------------------------------------------------- -int CDisplay::AddTextureToDisplayList(unsigned int iType, - unsigned int iIndex, - const aiString* szPath, - HTREEITEM hFX, - unsigned int iUVIndex /*= 0*/, - const float fBlendFactor /*= 0.0f*/, - aiTextureOp eTextureOp /*= aiTextureOp_Multiply*/, - unsigned int iMesh /*= 0*/) -{ - ai_assert(NULL != szPath); - ai_assert(NULL != pcMat); - - char chTemp[512]; - char chTempEmb[256]; - const char* sz = strrchr(szPath->data,'\\'); - if (!sz)sz = strrchr(szPath->data,'/'); - if (!sz) - { - if ('*' == *szPath->data) - { - int iIndex = atoi(szPath->data+1); - sprintf(chTempEmb,"Embedded #%i",iIndex); - sz = chTempEmb; - } - else - { - sz = szPath->data; - } - } - - bool bIsExtraOpacity = 0 != (iType & 0x40000000); - const char* szType; - IDirect3DTexture9** piTexture; - switch (iType) - { - case aiTextureType_DIFFUSE: - piTexture = &g_pcAsset->apcMeshes[iMesh]->piDiffuseTexture; - szType = "Diffuse"; - break; - case aiTextureType_SPECULAR: - piTexture = &g_pcAsset->apcMeshes[iMesh]->piSpecularTexture; - szType = "Specular"; - break; - case aiTextureType_AMBIENT: - piTexture = &g_pcAsset->apcMeshes[iMesh]->piAmbientTexture; - szType = "Ambient"; - break; - case aiTextureType_EMISSIVE: - piTexture = &g_pcAsset->apcMeshes[iMesh]->piEmissiveTexture; - szType = "Emissive"; - break; - case aiTextureType_HEIGHT: - piTexture = &g_pcAsset->apcMeshes[iMesh]->piNormalTexture; - szType = "Heightmap"; - break; - case aiTextureType_NORMALS: - piTexture = &g_pcAsset->apcMeshes[iMesh]->piNormalTexture; - szType = "Normalmap"; - break; - case aiTextureType_SHININESS: - piTexture = &g_pcAsset->apcMeshes[iMesh]->piShininessTexture; - szType = "Shininess"; - break; - case aiTextureType_LIGHTMAP: - piTexture = &g_pcAsset->apcMeshes[iMesh]->piLightmapTexture; - szType = "Lightmap"; - break; - case aiTextureType_DISPLACEMENT: - piTexture = NULL; - szType = "Displacement"; - break; - case aiTextureType_REFLECTION: - piTexture = NULL; - szType = "Reflection"; - break; - case aiTextureType_UNKNOWN: - piTexture = NULL; - szType = "Unknown"; - break; - default: // opacity + opacity | mask - piTexture = &g_pcAsset->apcMeshes[iMesh]->piOpacityTexture; - szType = "Opacity"; - break; - }; - if (bIsExtraOpacity) { - sprintf(chTemp,"%s %i ()",szType,iIndex+1); - } - else - sprintf(chTemp,"%s %i (%s)",szType,iIndex+1,sz); - - TVITEMEX tvi; - TVINSERTSTRUCT sNew; - tvi.pszText = chTemp; - tvi.cchTextMax = (int)strlen(chTemp); - tvi.mask = TVIF_TEXT | TVIF_SELECTEDIMAGE | TVIF_IMAGE | TVIF_HANDLE | TVIF_HANDLE; - tvi.lParam = (LPARAM)20; - - // find out whether this is the default texture or not - - if (piTexture && *piTexture) { - // {9785DA94-1D96-426b-B3CB-BADC36347F5E} - static const GUID guidPrivateData = - { 0x9785da94, 0x1d96, 0x426b, - { 0xb3, 0xcb, 0xba, 0xdc, 0x36, 0x34, 0x7f, 0x5e } }; - - uint32_t iData = 0; - DWORD dwSize = 4; - (*piTexture)->GetPrivateData(guidPrivateData,&iData,&dwSize); - - if (0xFFFFFFFF == iData) - { - tvi.iImage = m_aiImageList[AI_VIEW_IMGLIST_TEXTURE_INVALID]; - tvi.iSelectedImage = m_aiImageList[AI_VIEW_IMGLIST_TEXTURE_INVALID]; - } - else - { - tvi.iImage = m_aiImageList[AI_VIEW_IMGLIST_TEXTURE]; - tvi.iSelectedImage = m_aiImageList[AI_VIEW_IMGLIST_TEXTURE]; - } - } - else - { - tvi.iImage = m_aiImageList[AI_VIEW_IMGLIST_TEXTURE_INVALID]; - tvi.iSelectedImage = m_aiImageList[AI_VIEW_IMGLIST_TEXTURE_INVALID]; - } - - sNew.itemex = tvi; - sNew.hInsertAfter = TVI_LAST; - sNew.hParent = hFX; - - // add the item to the list - HTREEITEM hTexture = (HTREEITEM)SendMessage(GetDlgItem(g_hDlg,IDC_TREE1), - TVM_INSERTITEM, - 0, - (LPARAM)(LPTVINSERTSTRUCT)&sNew); - - // add it to the list - CDisplay::TextureInfo sInfo; - sInfo.iUV = iUVIndex; - sInfo.fBlend = fBlendFactor; - sInfo.eOp = eTextureOp; - sInfo.szPath = szPath->data; - sInfo.hTreeItem = hTexture; - sInfo.piTexture = piTexture; - sInfo.iType = iType; - sInfo.iMatIndex = g_pcAsset->pcScene->mMeshes[iMesh]->mMaterialIndex; - AddTexture(sInfo); - return 1; -} -//------------------------------------------------------------------------------- -int CDisplay::AddMaterialToDisplayList(HTREEITEM hRoot, - unsigned int iIndex) -{ - ai_assert(NULL != hRoot); - - aiMaterial* pcMat = g_pcAsset->pcScene->mMaterials[iIndex]; - - - // find the first mesh using this material index - unsigned int iMesh = 0; - for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumMeshes;++i) - { - if (iIndex == g_pcAsset->pcScene->mMeshes[i]->mMaterialIndex) - { - iMesh = i; - break; - } - } - - // use the name of the material, if possible - char chTemp[512]; - aiString szOut; - if (AI_SUCCESS != aiGetMaterialString(pcMat,AI_MATKEY_NAME,&szOut)) - { - sprintf(chTemp,"Material %i",iIndex+1); - } - else - { - sprintf(chTemp,"%s (%i)",szOut.data,iIndex+1); - } - TVITEMEXW tvi; - TVINSERTSTRUCTW sNew; - - wchar_t tmp[512]; - int t = MultiByteToWideChar(CP_UTF8,0,chTemp,-1,tmp,512); - - tvi.pszText = tmp; - tvi.cchTextMax = (int)t; - tvi.mask = TVIF_TEXT | TVIF_SELECTEDIMAGE | TVIF_IMAGE | TVIF_HANDLE | TVIF_PARAM ; - tvi.iImage = m_aiImageList[AI_VIEW_IMGLIST_MATERIAL]; - tvi.iSelectedImage = m_aiImageList[AI_VIEW_IMGLIST_MATERIAL]; - tvi.lParam = (LPARAM)10; - //tvi.state = TVIS_EXPANDED | TVIS_EXPANDEDONCE ; - - sNew.itemex = tvi; - sNew.hInsertAfter = TVI_LAST; - sNew.hParent = hRoot; - - // add the item to the list - HTREEITEM hTexture = (HTREEITEM)SendMessage(GetDlgItem(g_hDlg,IDC_TREE1), - TVM_INSERTITEMW, - 0, - (LPARAM)(LPTVINSERTSTRUCT)&sNew); - - // for each texture in the list ... add it - unsigned int iUV; - float fBlend; - aiTextureOp eOp; - aiString szPath; - bool bNoOpacity = true; - for (unsigned int i = 0; i <= AI_TEXTURE_TYPE_MAX;++i) - { - unsigned int iNum = 0; - while (true) - { - if (AI_SUCCESS != aiGetMaterialTexture(pcMat,(aiTextureType)i,iNum, - &szPath,NULL, &iUV,&fBlend,&eOp)) - { - break; - } - if (aiTextureType_OPACITY == i)bNoOpacity = false; - AddTextureToDisplayList(i,iNum,&szPath,hTexture,iUV,fBlend,eOp,iMesh); - ++iNum; - } - } - - AssetHelper::MeshHelper* pcMesh = g_pcAsset->apcMeshes[iMesh]; - - if (pcMesh->piDiffuseTexture && pcMesh->piDiffuseTexture == pcMesh->piOpacityTexture && bNoOpacity) - { - // check whether the diffuse texture is not a default texture - - // {9785DA94-1D96-426b-B3CB-BADC36347F5E} - static const GUID guidPrivateData = - { 0x9785da94, 0x1d96, 0x426b, - { 0xb3, 0xcb, 0xba, 0xdc, 0x36, 0x34, 0x7f, 0x5e } }; - - uint32_t iData = 0; - DWORD dwSize = 4; - if(FAILED( pcMesh->piDiffuseTexture->GetPrivateData(guidPrivateData,&iData,&dwSize) || - 0xffffffff == iData)) - { - // seems the diffuse texture contains alpha, therefore it has been - // added to the opacity channel, too. Add a special value ... - AddTextureToDisplayList(aiTextureType_OPACITY | 0x40000000, - 0,&szPath,hTexture,iUV,fBlend,eOp,iMesh); - } - } - - // add the material to the list - MaterialInfo info; - info.hTreeItem = hTexture; - info.psMaterial = pcMat; - info.iIndex = iIndex; - info.piEffect = g_pcAsset->apcMeshes[iMesh]->piEffect; - this->AddMaterial(info); - return 1; -} -//------------------------------------------------------------------------------- -// Expand all elements in the treeview -int CDisplay::ExpandTree() -{ - // expand all materials - for (std::vector< MaterialInfo >::iterator - i = m_asMaterials.begin(); - i != m_asMaterials.end();++i) - { - TreeView_Expand(GetDlgItem(g_hDlg,IDC_TREE1),(*i).hTreeItem,TVE_EXPAND); - } - // expand all nodes - for (std::vector< NodeInfo >::iterator - i = m_asNodes.begin(); - i != m_asNodes.end();++i) - { - TreeView_Expand(GetDlgItem(g_hDlg,IDC_TREE1),(*i).hTreeItem,TVE_EXPAND); - } - TreeView_Expand(GetDlgItem(g_hDlg,IDC_TREE1),m_hRoot,TVE_EXPAND); - return 1; -} -//------------------------------------------------------------------------------- -// Get image list for tree view -int CDisplay::LoadImageList(void) -{ - if (!m_hImageList) - { - // First, create the image list we will need. - // FIX: Need RGB888 color space to display all colors correctly - HIMAGELIST hIml = ImageList_Create( 16,16,ILC_COLOR24, 5, 0 ); - - // Load the bitmaps and add them to the image lists. - HBITMAP hBmp = LoadBitmap(g_hInstance, MAKEINTRESOURCE(IDB_BFX)); - m_aiImageList[AI_VIEW_IMGLIST_MATERIAL] = ImageList_Add(hIml, hBmp, NULL); - DeleteObject(hBmp); - - hBmp = LoadBitmap(g_hInstance, MAKEINTRESOURCE(IDB_BNODE)); - m_aiImageList[AI_VIEW_IMGLIST_NODE] = ImageList_Add(hIml, hBmp, NULL); - DeleteObject(hBmp); - - hBmp = LoadBitmap(g_hInstance, MAKEINTRESOURCE(IDB_BTX)); - m_aiImageList[AI_VIEW_IMGLIST_TEXTURE] = ImageList_Add(hIml, hBmp, NULL); - DeleteObject(hBmp); - - hBmp = LoadBitmap(g_hInstance, MAKEINTRESOURCE(IDB_BTXI)); - m_aiImageList[AI_VIEW_IMGLIST_TEXTURE_INVALID] = ImageList_Add(hIml, hBmp, NULL); - DeleteObject(hBmp); - - hBmp = LoadBitmap(g_hInstance, MAKEINTRESOURCE(IDB_BROOT)); - m_aiImageList[AI_VIEW_IMGLIST_MODEL] = ImageList_Add(hIml, hBmp, NULL); - DeleteObject(hBmp); - - // Associate the image list with the tree. - TreeView_SetImageList(GetDlgItem(g_hDlg,IDC_TREE1), hIml, TVSIL_NORMAL); - - m_hImageList = hIml; - } - return 1; -} -//------------------------------------------------------------------------------- -// Fill tree view -int CDisplay::FillDisplayList(void) -{ - LoadImageList(); - - // Initialize the tree view window. - // fill in the first entry - TVITEMEX tvi; - TVINSERTSTRUCT sNew; - tvi.pszText = "Model"; - tvi.cchTextMax = (int)strlen(tvi.pszText); - tvi.mask = TVIF_TEXT | TVIF_SELECTEDIMAGE | TVIF_IMAGE | TVIF_HANDLE | TVIF_STATE; - tvi.state = TVIS_EXPANDED; - tvi.iImage = m_aiImageList[AI_VIEW_IMGLIST_MODEL]; - tvi.iSelectedImage = m_aiImageList[AI_VIEW_IMGLIST_MODEL]; - tvi.lParam = (LPARAM)0; - - sNew.itemex = tvi; - sNew.hInsertAfter = TVI_ROOT; - sNew.hParent = 0; - - // add the root item to the tree - m_hRoot = (HTREEITEM)SendMessage(GetDlgItem(g_hDlg,IDC_TREE1), - TVM_INSERTITEM, - 0, - (LPARAM)(LPTVINSERTSTRUCT)&sNew); - - // add each loaded material to the tree - for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumMaterials;++i) - AddMaterialToDisplayList(m_hRoot,i); - - // add each mesh to the tree - for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumMeshes;++i) - AddMeshToDisplayList(i,m_hRoot); - - // now add all loaded nodes recursively - AddNodeToDisplayList(0,0,g_pcAsset->pcScene->mRootNode,m_hRoot); - - // now expand all parent nodes in the tree - ExpandTree(); - - // everything reacts a little bit slowly if D3D is rendering, - // so give GDI a small hint to leave the couch and work ;-) - UpdateWindow(g_hDlg); - return 1; -} -//------------------------------------------------------------------------------- -// Main render loop -int CDisplay::OnRender() -{ - // update possible animation - if( g_pcAsset) - { - static double lastPlaying = 0.; - - ai_assert( g_pcAsset->mAnimator); - if (g_bPlay) { - g_dCurrent += clock()/ double( CLOCKS_PER_SEC) -lastPlaying; - - double time = g_dCurrent; - aiAnimation* mAnim = g_pcAsset->mAnimator->CurrentAnim(); - if( mAnim && mAnim->mDuration > 0.0) { - double tps = mAnim->mTicksPerSecond ? mAnim->mTicksPerSecond : 25.f; - time = fmod( time, mAnim->mDuration/tps); - SendDlgItemMessage(g_hDlg,IDC_SLIDERANIM,TBM_SETPOS,TRUE,LPARAM(10000 * (time/(mAnim->mDuration/tps)))); - } - - g_pcAsset->mAnimator->Calculate( time ); - lastPlaying = g_dCurrent; - } - } - // begin the frame - g_piDevice->BeginScene(); - - switch (m_iViewMode) - { - case VIEWMODE_FULL: - case VIEWMODE_NODE: - RenderFullScene(); - break; - case VIEWMODE_MATERIAL: - RenderMaterialView(); - break; - case VIEWMODE_TEXTURE: - RenderTextureView(); - break; - }; - - // Now render the log display in the upper right corner of the window - CLogDisplay::Instance().OnRender(); - - // present the backbuffer - g_piDevice->EndScene(); - g_piDevice->Present(NULL,NULL,NULL,NULL); - - // don't remove this, problems on some older machines (AMD timing bug) - Sleep(10); - return 1; -} -//------------------------------------------------------------------------------- -// Update UI -void UpdateColorFieldsInUI() -{ - InvalidateRect(GetDlgItem(g_hDlg,IDC_LCOLOR1),NULL,TRUE); - InvalidateRect(GetDlgItem(g_hDlg,IDC_LCOLOR2),NULL,TRUE); - InvalidateRect(GetDlgItem(g_hDlg,IDC_LCOLOR3),NULL,TRUE); - - UpdateWindow(GetDlgItem(g_hDlg,IDC_LCOLOR1)); - UpdateWindow(GetDlgItem(g_hDlg,IDC_LCOLOR2)); - UpdateWindow(GetDlgItem(g_hDlg,IDC_LCOLOR3)); -} -//------------------------------------------------------------------------------- -// FIll statistics UI -int CDisplay::FillDefaultStatistics(void) -{ - if (!g_pcAsset) - { - // clear all stats edit controls - SetDlgItemText(g_hDlg,IDC_EVERT,"0"); - SetDlgItemText(g_hDlg,IDC_EFACE,"0"); - SetDlgItemText(g_hDlg,IDC_EMAT,"0"); - SetDlgItemText(g_hDlg,IDC_ENODE,"0"); - SetDlgItemText(g_hDlg,IDC_ESHADER,"0"); - SetDlgItemText(g_hDlg,IDC_ETEX,"0"); - return 1; - } - - // get the number of vertices/faces in the model - unsigned int iNumVert = 0; - unsigned int iNumFaces = 0; - for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumMeshes;++i) - { - iNumVert += g_pcAsset->pcScene->mMeshes[i]->mNumVertices; - iNumFaces += g_pcAsset->pcScene->mMeshes[i]->mNumFaces; - } - // and fill the statistic edit controls - char szOut[1024]; - sprintf(szOut,"%i",(int)iNumVert); - SetDlgItemText(g_hDlg,IDC_EVERT,szOut); - sprintf(szOut,"%i",(int)iNumFaces); - SetDlgItemText(g_hDlg,IDC_EFACE,szOut); - sprintf(szOut,"%i",(int)g_pcAsset->pcScene->mNumMaterials); - SetDlgItemText(g_hDlg,IDC_EMAT,szOut); - sprintf(szOut,"%i",(int)g_pcAsset->pcScene->mNumMeshes); - SetDlgItemText(g_hDlg,IDC_EMESH,szOut); - - // need to get the number of nodes - iNumVert = 0; - GetNodeCount(g_pcAsset->pcScene->mRootNode,&iNumVert); - sprintf(szOut,"%i",(int)iNumVert); - SetDlgItemText(g_hDlg,IDC_ENODEWND,szOut); - - // now get the number of unique shaders generated for the asset - // (even if the environment changes this number won't change) - sprintf(szOut,"%i", CMaterialManager::Instance().GetShaderCount()); - SetDlgItemText(g_hDlg,IDC_ESHADER,szOut); - - sprintf(szOut,"%.5f",(float)g_fLoadTime); - SetDlgItemText(g_hDlg,IDC_ELOAD,szOut); - - UpdateColorFieldsInUI(); - UpdateWindow(g_hDlg); - return 1; -} -//------------------------------------------------------------------------------- -// Reset UI -int CDisplay::Reset(void) -{ - // clear all lists - m_asMaterials.clear(); - m_asTextures.clear(); - m_asNodes.clear(); - m_asMeshes.clear(); - - m_hRoot = NULL; - - return OnSetupNormalView(); -} -//------------------------------------------------------------------------------- -// reset to standard statistics view -void ShowNormalUIComponents() -{ - ShowWindow(GetDlgItem(g_hDlg,IDC_NUMNODES),SW_SHOW); - ShowWindow(GetDlgItem(g_hDlg,IDC_ENODEWND),SW_SHOW); - ShowWindow(GetDlgItem(g_hDlg,IDC_NUMSHADERS),SW_SHOW); - ShowWindow(GetDlgItem(g_hDlg,IDC_LOADTIME),SW_SHOW); - ShowWindow(GetDlgItem(g_hDlg,IDC_ESHADER),SW_SHOW); - ShowWindow(GetDlgItem(g_hDlg,IDC_ELOAD),SW_SHOW); - ShowWindow(GetDlgItem(g_hDlg,IDC_VIEWMATRIX),SW_HIDE); -} -//------------------------------------------------------------------------------- -int CDisplay::OnSetupNormalView() -{ - if (VIEWMODE_NODE == m_iViewMode) - { - ShowNormalUIComponents(); - } - - // now ... change the meaning of the statistics fields back - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMVERTS),"Verts:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMNODES),"Nodes:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMFACES),"Faces:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMSHADERS),"Shd:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMMATS),"Mats:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMMESHES),"Mesh:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_LOADTIME),"Time:"); - - FillDefaultStatistics(); - SetViewMode(VIEWMODE_FULL); - - // for debugging - m_pcCurrentMaterial = NULL; - m_pcCurrentTexture = NULL; - m_pcCurrentNode = NULL; - - // redraw the color fields in the UI --- their purpose has possibly changed - UpdateColorFieldsInUI(); - UpdateWindow(g_hDlg); - return 1; -} -//------------------------------------------------------------------------------- -int CDisplay::OnSetupNodeView(NodeInfo* pcNew) -{ - ai_assert(NULL != pcNew); - - if (m_pcCurrentNode == pcNew)return 2; - - // now ... change the meaning of the statistics fields back - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMVERTS),"Verts:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMFACES),"Faces:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMMATS),"Mats:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMMESHES),"Mesh:"); - - ShowWindow(GetDlgItem(g_hDlg,IDC_NUMNODES),SW_HIDE); - ShowWindow(GetDlgItem(g_hDlg,IDC_ENODEWND),SW_HIDE); - ShowWindow(GetDlgItem(g_hDlg,IDC_NUMSHADERS),SW_HIDE); - ShowWindow(GetDlgItem(g_hDlg,IDC_LOADTIME),SW_HIDE); - ShowWindow(GetDlgItem(g_hDlg,IDC_ESHADER),SW_HIDE); - ShowWindow(GetDlgItem(g_hDlg,IDC_ELOAD),SW_HIDE); - ShowWindow(GetDlgItem(g_hDlg,IDC_VIEWMATRIX),SW_SHOW); - - char szTemp[1024]; - sprintf(szTemp, - "%.2f %.2f %.2f\r\n" - "%.2f %.2f %.2f\r\n" - "%.2f %.2f %.2f\r\n" - "%.2f %.2f %.2f\r\n", - pcNew->psNode->mTransformation.a1, - pcNew->psNode->mTransformation.b1, - pcNew->psNode->mTransformation.c1, - pcNew->psNode->mTransformation.a2, - pcNew->psNode->mTransformation.b2, - pcNew->psNode->mTransformation.c2, - pcNew->psNode->mTransformation.a3, - pcNew->psNode->mTransformation.b3, - pcNew->psNode->mTransformation.c3, - pcNew->psNode->mTransformation.a4, - pcNew->psNode->mTransformation.b4, - pcNew->psNode->mTransformation.c4); - SetWindowText(GetDlgItem(g_hDlg,IDC_VIEWMATRIX),szTemp); - - - m_pcCurrentNode = pcNew; - SetViewMode(VIEWMODE_NODE); - - return 1; -} -//------------------------------------------------------------------------------- -int CDisplay::OnSetupMaterialView(MaterialInfo* pcNew) -{ - ai_assert(NULL != pcNew); - - if (m_pcCurrentMaterial == pcNew)return 2; - - if (VIEWMODE_NODE == m_iViewMode) - ShowNormalUIComponents(); - - m_pcCurrentMaterial = pcNew; - SetViewMode(VIEWMODE_MATERIAL); - - // redraw the color fields in the UI --- their purpose has possibly changed - UpdateColorFieldsInUI(); - UpdateWindow(g_hDlg); - return 1; -} -//------------------------------------------------------------------------------- -int CDisplay::OnSetupTextureView(TextureInfo* pcNew) -{ - ai_assert(NULL != pcNew); - - if (this->m_pcCurrentTexture == pcNew)return 2; - - if (VIEWMODE_NODE == this->m_iViewMode) - { - ShowNormalUIComponents(); - } - - if ((aiTextureType_OPACITY | 0x40000000) == pcNew->iType) - { - // for opacity textures display a warn message - CLogDisplay::Instance().AddEntry("[INFO] This texture is not existing in the " - "original mesh",D3DCOLOR_ARGB(0xFF,0xFF,0xFF,0)); - CLogDisplay::Instance().AddEntry("It is a copy of the alpha channel of the first " - "diffuse texture",D3DCOLOR_ARGB(0xFF,0xFF,0xFF,0)); - } - - // check whether the pattern background effect is supported - if (g_sCaps.PixelShaderVersion < D3DPS_VERSION(3,0)) - { - CLogDisplay::Instance().AddEntry("[WARN] The background shader won't work " - "on your system, it required PS 3.0 hardware. A default color is used ...", - D3DCOLOR_ARGB(0xFF,0xFF,0x00,0)); - } - - this->m_fTextureZoom = 1000.0f; - this->m_vTextureOffset.x = this->m_vTextureOffset.y = 0.0f; - - this->m_pcCurrentTexture = pcNew; - this->SetViewMode(VIEWMODE_TEXTURE); - - // now ... change the meaning of the statistics fields - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMVERTS),"Width:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMNODES),"Height:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMFACES),"Format:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMSHADERS),"MIPs:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMMATS),"UV:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_NUMMESHES),"Blend:"); - SetWindowText(GetDlgItem(g_hDlg,IDC_LOADTIME),"Op:"); - - // and fill them with data - D3DSURFACE_DESC sDesc; - if (pcNew->piTexture && *pcNew->piTexture) { - (*pcNew->piTexture)->GetLevelDesc(0,&sDesc); - char szTemp[128]; - - sprintf(szTemp,"%i",sDesc.Width); - SetWindowText(GetDlgItem(g_hDlg,IDC_EVERT),szTemp); - - sprintf(szTemp,"%i",sDesc.Height); - SetWindowText(GetDlgItem(g_hDlg,IDC_ENODEWND),szTemp); - - sprintf(szTemp,"%i",(*pcNew->piTexture)->GetLevelCount()); - SetWindowText(GetDlgItem(g_hDlg,IDC_ESHADER),szTemp); - - sprintf(szTemp,"%i",pcNew->iUV); - SetWindowText(GetDlgItem(g_hDlg,IDC_EMAT),szTemp); - - sprintf(szTemp,"%f",pcNew->fBlend); - SetWindowText(GetDlgItem(g_hDlg,IDC_EMESH),szTemp); - - const char* szOp; - switch (pcNew->eOp) - { - case aiTextureOp_Add: - szOp = "add";break; - case aiTextureOp_Subtract: - szOp = "sub";break; - case aiTextureOp_Divide: - szOp = "div";break; - case aiTextureOp_SignedAdd: - szOp = "addsign";break; - case aiTextureOp_SmoothAdd: - szOp = "addsmooth";break; - default: szOp = "mul"; - }; - SetWindowText(GetDlgItem(g_hDlg,IDC_ELOAD),szOp); - - // NOTE: Format is always ARGB8888 since other formats are - // converted to this format ... - SetWindowText(GetDlgItem(g_hDlg,IDC_EFACE),"ARGB8"); - - // check whether this is the default texture - if (pcNew->piTexture) - { - // {9785DA94-1D96-426b-B3CB-BADC36347F5E} - static const GUID guidPrivateData = - { 0x9785da94, 0x1d96, 0x426b, - { 0xb3, 0xcb, 0xba, 0xdc, 0x36, 0x34, 0x7f, 0x5e } }; - - uint32_t iData = 0; - DWORD dwSize = 4; - (*pcNew->piTexture)->GetPrivateData(guidPrivateData,&iData,&dwSize); - - if (0xFFFFFFFF == iData) - { - CLogDisplay::Instance().AddEntry("[ERROR] Texture could not be loaded. " - "The displayed texture is a default texture", - D3DCOLOR_ARGB(0xFF,0xFF,0,0)); - return 0; - } - } - } - // redraw the color fields in the UI --- their purpose has possibly changed - UpdateColorFieldsInUI(); - UpdateWindow(g_hDlg); - return 1; -} -//------------------------------------------------------------------------------- -int CDisplay::OnSetup(HTREEITEM p_hTreeItem) -{ - // search in our list for the item - union { - TextureInfo* pcNew; - NodeInfo* pcNew2; - MaterialInfo* pcNew3; - }; - - pcNew = NULL; - for (std::vector::iterator i = m_asTextures.begin();i != m_asTextures.end();++i){ - if (p_hTreeItem == (*i).hTreeItem) { - pcNew = &(*i); - break; - } - } - if (pcNew) { - return OnSetupTextureView(pcNew); - } - - // seach the node list - for (std::vector::iterator i = m_asNodes.begin(); i != m_asNodes.end();++i){ - if (p_hTreeItem == (*i).hTreeItem) { - pcNew2 = &(*i); - break; - } - } - if (pcNew2) { - return OnSetupNodeView(pcNew2); - } - - // seach the material list - for (std::vector::iterator i = m_asMaterials.begin();i != m_asMaterials.end();++i){ - if (p_hTreeItem == (*i).hTreeItem){ - pcNew3 = &(*i); - break; - } - } - if (pcNew3) { - return OnSetupMaterialView(pcNew3); - } - return OnSetupNormalView(); -} -//------------------------------------------------------------------------------- -int CDisplay::ShowTreeViewContextMenu(HTREEITEM hItem) -{ - ai_assert(NULL != hItem); - - HMENU hDisplay = NULL; - - // search in our list for the item - TextureInfo* pcNew = NULL; - for (std::vector::iterator - i = m_asTextures.begin(); - i != m_asTextures.end();++i) - { - if (hItem == (*i).hTreeItem) { - pcNew = &(*i); - break; - } - } - if (pcNew) - { - HMENU hMenu = LoadMenu(g_hInstance,MAKEINTRESOURCE(IDR_TXPOPUP)); - hDisplay = GetSubMenu(hMenu,0); - } - - // search in the material list for the item - MaterialInfo* pcNew2 = NULL; - for (std::vector::iterator - i = m_asMaterials.begin(); - i != m_asMaterials.end();++i) - { - if (hItem == (*i).hTreeItem) { - pcNew2 = &(*i); - break; - } - } - if (pcNew2) - { - HMENU hMenu = LoadMenu(g_hInstance,MAKEINTRESOURCE(IDR_MATPOPUP)); - hDisplay = GetSubMenu(hMenu,0); - } - if (NULL != hDisplay) - { - // select this entry (this should all OnSetup()) - TreeView_Select(GetDlgItem(g_hDlg,IDC_TREE1),hItem,TVGN_CARET); - - // FIX: Render the scene once that the correct texture/material - // is displayed while the context menu is active - OnRender(); - - POINT sPoint; - GetCursorPos(&sPoint); - TrackPopupMenu(hDisplay, TPM_LEFTALIGN, sPoint.x, sPoint.y, 0, - g_hDlg,NULL); - } - return 1; -} -//------------------------------------------------------------------------------- -int CDisplay::HandleTreeViewPopup(WPARAM wParam,LPARAM lParam) -{ - // get the current selected material - std::vector apclrOut; - const char* szMatKey; - - switch (LOWORD(wParam)) - { - case ID_SOLONG_CLEARDIFFUSECOLOR: - for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumMeshes;++i) - { - if (this->m_pcCurrentMaterial->iIndex == g_pcAsset->pcScene->mMeshes[i]->mMaterialIndex) - { - apclrOut.push_back( Info( &g_pcAsset->apcMeshes[i]->vDiffuseColor, - g_pcAsset->apcMeshes[i],"DIFFUSE_COLOR")); - } - } - szMatKey = "$clr.diffuse"; - break; - case ID_SOLONG_CLEARSPECULARCOLOR: - for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumMeshes;++i) - { - if (this->m_pcCurrentMaterial->iIndex == g_pcAsset->pcScene->mMeshes[i]->mMaterialIndex) - { - apclrOut.push_back( Info( &g_pcAsset->apcMeshes[i]->vSpecularColor, - g_pcAsset->apcMeshes[i],"SPECULAR_COLOR")); - } - } - szMatKey = "$clr.specular"; - break; - case ID_SOLONG_CLEARAMBIENTCOLOR: - for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumMeshes;++i) - { - if (this->m_pcCurrentMaterial->iIndex == g_pcAsset->pcScene->mMeshes[i]->mMaterialIndex) - { - apclrOut.push_back( Info( &g_pcAsset->apcMeshes[i]->vAmbientColor, - g_pcAsset->apcMeshes[i],"AMBIENT_COLOR")); - } - } - szMatKey = "$clr.ambient"; - break; - case ID_SOLONG_CLEAREMISSIVECOLOR: - for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumMeshes;++i) - { - if (this->m_pcCurrentMaterial->iIndex == g_pcAsset->pcScene->mMeshes[i]->mMaterialIndex) - { - apclrOut.push_back( Info( &g_pcAsset->apcMeshes[i]->vEmissiveColor, - g_pcAsset->apcMeshes[i],"EMISSIVE_COLOR")); - } - } - szMatKey = "$clr.emissive"; - break; - default: - - // let the next function do this ... no spaghetti code ;-) - HandleTreeViewPopup2(wParam,lParam); - }; - if (!apclrOut.empty()) - { - aiColor4D clrOld = *((aiColor4D*)(apclrOut.front().pclrColor)); - - CHOOSECOLOR clr; - clr.lStructSize = sizeof(CHOOSECOLOR); - clr.hwndOwner = g_hDlg; - clr.Flags = CC_RGBINIT | CC_FULLOPEN; - clr.rgbResult = RGB( - clamp(clrOld.r * 255.0f), - clamp(clrOld.g * 255.0f), - clamp(clrOld.b * 255.0f)); - clr.lpCustColors = g_aclCustomColors; - clr.lpfnHook = NULL; - clr.lpTemplateName = NULL; - clr.lCustData = NULL; - - ChooseColor(&clr); - - clrOld.r = (float)(((unsigned int)clr.rgbResult) & 0xFF) / 255.0f; - clrOld.g = (float)(((unsigned int)clr.rgbResult >> 8) & 0xFF) / 255.0f; - clrOld.b = (float)(((unsigned int)clr.rgbResult >> 16) & 0xFF) / 255.0f; - - // update the color values in the mesh instances and - // update all shaders ... - for (std::vector::iterator - i = apclrOut.begin(); - i != apclrOut.end();++i) - { - *((*i).pclrColor) = *((D3DXVECTOR4*)&clrOld); - if (!(*i).pMesh->bSharedFX) - { - (*i).pMesh->piEffect->SetVector((*i).szShaderParam,(*i).pclrColor); - } - } - - // change the material key ... - Assimp::MaterialHelper* pcMat = (Assimp::MaterialHelper*)g_pcAsset->pcScene->mMaterials[ - this->m_pcCurrentMaterial->iIndex]; - pcMat->AddProperty(&clrOld,1,szMatKey,0,0); - - if (ID_SOLONG_CLEARSPECULARCOLOR == LOWORD(wParam) && - aiShadingMode_Gouraud == apclrOut.front().pMesh->eShadingMode) - { - CLogDisplay::Instance().AddEntry("[INFO] You have just changed the specular " - "material color",D3DCOLOR_ARGB(0xFF,0xFF,0xFF,0)); - CLogDisplay::Instance().AddEntry( - "This is great, especially since there is currently no specular shading", - D3DCOLOR_ARGB(0xFF,0xFF,0xFF,0)); - } - } - return 1; -} -//------------------------------------------------------------------------------- -int CALLBACK TreeViewCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) -{ - if (lParamSort == lParam1)return -1; - if (lParamSort == lParam2)return 1; - return 0; -} -//------------------------------------------------------------------------------- -int CDisplay::HandleTreeViewPopup2(WPARAM wParam,LPARAM lParam) -{ - char szFileName[MAX_PATH]; - DWORD dwTemp = MAX_PATH; - - switch (LOWORD(wParam)) - { - case ID_HEY_REPLACE: - { - // get a path to a new texture - if(ERROR_SUCCESS != RegQueryValueEx(g_hRegistry,"ReplaceTextureSrc",NULL,NULL, - (BYTE*)szFileName,&dwTemp)) - { - // Key was not found. Use C: - strcpy(szFileName,""); - } - else - { - // need to remove the file name - char* sz = strrchr(szFileName,'\\'); - if (!sz)sz = strrchr(szFileName,'/'); - if (!sz)*sz = 0; - } - OPENFILENAME sFilename1 = { - sizeof(OPENFILENAME), - g_hDlg,GetModuleHandle(NULL), - "Textures\0*.png;*.dds;*.tga;*.bmp;*.tif;*.ppm;*.ppx;*.jpg;*.jpeg;*.exr\0*.*\0", - NULL, 0, 1, - szFileName, MAX_PATH, NULL, 0, NULL, - "Replace this texture", - OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY | OFN_NOCHANGEDIR, - 0, 1, ".jpg", 0, NULL, NULL - }; - if(GetOpenFileName(&sFilename1) == 0) return 0; - - // Now store the file in the registry - RegSetValueExA(g_hRegistry,"ReplaceTextureSrc",0,REG_SZ,(const BYTE*)szFileName,MAX_PATH); - this->ReplaceCurrentTexture(szFileName); - } - return 1; - - case ID_HEY_EXPORT: - { - if(ERROR_SUCCESS != RegQueryValueEx(g_hRegistry,"TextureExportDest",NULL,NULL, - (BYTE*)szFileName,&dwTemp)) - { - // Key was not found. Use C: - strcpy(szFileName,""); - } - else - { - // need to remove the file name - char* sz = strrchr(szFileName,'\\'); - if (!sz)sz = strrchr(szFileName,'/'); - if (!sz)*sz = 0; - } - OPENFILENAME sFilename1 = { - sizeof(OPENFILENAME), - g_hDlg,GetModuleHandle(NULL), - "Textures\0*.png;*.dds;*.bmp;*.tif;*.pfm;*.jpg;*.jpeg;*.hdr\0*.*\0", NULL, 0, 1, - szFileName, MAX_PATH, NULL, 0, NULL, - "Export texture to file", - OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY | OFN_NOCHANGEDIR, - 0, 1, ".png", 0, NULL, NULL - }; - if(GetSaveFileName(&sFilename1) == 0) return 0; - - // Now store the file in the registry - RegSetValueExA(g_hRegistry,"TextureExportDest",0,REG_SZ,(const BYTE*)szFileName,MAX_PATH); - - // determine the file format ... - D3DXIMAGE_FILEFORMAT eFormat = D3DXIFF_PNG; - const char* sz = strrchr(szFileName,'.'); - if (sz) - { - ++sz; - if (0 == Assimp::ASSIMP_stricmp(sz,"pfm"))eFormat = D3DXIFF_PFM; - else if (0 == Assimp::ASSIMP_stricmp(sz,"dds"))eFormat = D3DXIFF_DDS; - else if (0 == Assimp::ASSIMP_stricmp(sz,"jpg"))eFormat = D3DXIFF_JPG; - else if (0 == Assimp::ASSIMP_stricmp(sz,"jpeg"))eFormat = D3DXIFF_JPG; - else if (0 == Assimp::ASSIMP_stricmp(sz,"hdr"))eFormat = D3DXIFF_HDR; - else if (0 == Assimp::ASSIMP_stricmp(sz,"bmp"))eFormat = D3DXIFF_BMP; - } - - // get a pointer to the first surface of the current texture - IDirect3DSurface9* pi = NULL; - (*this->m_pcCurrentTexture->piTexture)->GetSurfaceLevel(0,&pi); - if(!pi || FAILED(D3DXSaveSurfaceToFile(szFileName,eFormat,pi,NULL,NULL))) - { - CLogDisplay::Instance().AddEntry("[ERROR] Unable to export texture", - D3DCOLOR_ARGB(0xFF,0xFF,0,0)); - } - else - { - CLogDisplay::Instance().AddEntry("[INFO] The texture has been exported", - D3DCOLOR_ARGB(0xFF,0xFF,0xFF,0)); - } - if(pi)pi->Release(); - } - return 1; - - case ID_HEY_REMOVE: - { - - if(IDYES != MessageBox(g_hDlg,"To recover the texture you need to reload the model. Do you wish to continue?", - "Remove texture",MB_YESNO)) { - return 1; - } - - Assimp::MaterialHelper* pcMat = (Assimp::MaterialHelper*)g_pcAsset->pcScene->mMaterials[ - m_pcCurrentTexture->iMatIndex]; - - unsigned int s; - if (m_pcCurrentTexture->iType == (aiTextureType_OPACITY | 0x40000000)) - { - // set a special property to indicate that no alpha channel is required - int iVal = 1; - pcMat->AddProperty(&iVal,1,"no_a_from_d",0,0); - s = aiTextureType_OPACITY; - } - else s = m_pcCurrentTexture->iType; - pcMat->RemoveProperty(AI_MATKEY_TEXTURE(m_pcCurrentTexture->iType,0)); - - // need to update all meshes associated with this material - for (unsigned int i = 0;i < g_pcAsset->pcScene->mNumMeshes;++i) - { - if (m_pcCurrentTexture->iMatIndex == g_pcAsset->pcScene->mMeshes[i]->mMaterialIndex) - { - CMaterialManager::Instance().DeleteMaterial(g_pcAsset->apcMeshes[i]); - CMaterialManager::Instance().CreateMaterial(g_pcAsset->apcMeshes[i],g_pcAsset->pcScene->mMeshes[i]); - } - } - // find the corresponding MaterialInfo structure - const unsigned int iMatIndex = m_pcCurrentTexture->iMatIndex; - for (std::vector::iterator - a = m_asMaterials.begin(); - a != m_asMaterials.end();++a) - { - if (iMatIndex == (*a).iIndex) - { - // good news. we will also need to find all other textures - // associated with this item ... - for (std::vector::iterator - n = m_asTextures.begin(); - n != m_asTextures.end();++n) - { - if ((*n).iMatIndex == iMatIndex) - { - n = m_asTextures.erase(n); - if (m_asTextures.end() == n)break; - } - } - // delete this material from all lists ... - TreeView_DeleteItem(GetDlgItem(g_hDlg,IDC_TREE1),(*a).hTreeItem); - this->m_asMaterials.erase(a); - break; - } - } - - // add the new material to the list and make sure it will be fully expanded - AddMaterialToDisplayList(m_hRoot,iMatIndex); - HTREEITEM hNewItem = m_asMaterials.back().hTreeItem; - TreeView_Expand(GetDlgItem(g_hDlg,IDC_TREE1),hNewItem,TVE_EXPAND); - - // we need to sort the list, materials come first, then nodes - TVSORTCB sSort; - sSort.hParent = m_hRoot; - sSort.lParam = 10; - sSort.lpfnCompare = &TreeViewCompareFunc; - TreeView_SortChildrenCB(GetDlgItem(g_hDlg,IDC_TREE1),&sSort,0); - - // the texture was selected, but the silly user has just deleted it - // ... go back to normal viewing mode - TreeView_Select(GetDlgItem(g_hDlg,IDC_TREE1),m_hRoot,TVGN_CARET); - return 1; - } - } - return 0; -} -//------------------------------------------------------------------------------- -// Setup stereo view -int CDisplay::SetupStereoView() -{ - if (NULL != g_pcAsset && NULL != g_pcAsset->pcScene->mRootNode) - { - // enable the RED, GREEN and ALPHA channels - g_piDevice->SetRenderState(D3DRS_COLORWRITEENABLE, - D3DCOLORWRITEENABLE_RED | - D3DCOLORWRITEENABLE_ALPHA | - D3DCOLORWRITEENABLE_GREEN); - - // move the camera a little bit to the left - g_sCamera.vPos -= g_sCamera.vRight * 0.03f; - } - return 1; -} -//------------------------------------------------------------------------------- -// Do the actual rendering pass for the stereo view -int CDisplay::RenderStereoView(const aiMatrix4x4& m) -{ - // and rerender the scene - if (NULL != g_pcAsset && NULL != g_pcAsset->pcScene->mRootNode) - { - // enable the BLUE, GREEN and ALPHA channels - g_piDevice->SetRenderState(D3DRS_COLORWRITEENABLE, - D3DCOLORWRITEENABLE_GREEN | - D3DCOLORWRITEENABLE_ALPHA | - D3DCOLORWRITEENABLE_BLUE); - - // clear the z-buffer - g_piDevice->Clear(0,NULL,D3DCLEAR_ZBUFFER,0,1.0f,0); - - // move the camera a little bit to the right - g_sCamera.vPos += g_sCamera.vRight * 0.06f; - - RenderNode(g_pcAsset->pcScene->mRootNode,m,false); - g_piDevice->SetRenderState(D3DRS_ZWRITEENABLE,FALSE); - RenderNode(g_pcAsset->pcScene->mRootNode,m,true); - g_piDevice->SetRenderState(D3DRS_ZWRITEENABLE,TRUE); - - // (move back to the original position) - g_sCamera.vPos -= g_sCamera.vRight * 0.03f; - - // reenable all channels - g_piDevice->SetRenderState(D3DRS_COLORWRITEENABLE, - D3DCOLORWRITEENABLE_RED | - D3DCOLORWRITEENABLE_GREEN | - D3DCOLORWRITEENABLE_ALPHA | - D3DCOLORWRITEENABLE_BLUE); - } - return 1; -} -//------------------------------------------------------------------------------- -// Process input for the texture view -int CDisplay::HandleInputTextureView() -{ - HandleMouseInputTextureView(); - HandleKeyboardInputTextureView(); - return 1; -} -#endif - -//------------------------------------------------------------------------------- -// Get input for the current state - private int HandleInput() - { - //if(CBackgroundPainter::TEXTURE_CUBE == CBackgroundPainter::Instance().GetMode()) - // HandleMouseInputSkyBox(); - - // handle input commands - //HandleMouseInputLightRotate(); - //HandleMouseInputLightIntensityAndColor(); - //if(g_bFPSView) - //{ - // HandleMouseInputFPS(); - // HandleKeyboardInputFPS(); - //} - //else - HandleMouseInputLocal(); - - // compute auto rotation depending on the time which has passed - if (g_sOptions.bRotate) - { - aiMatrix4x4 mMat; - D3DXMatrixRotationYawPitchRoll((D3DXMATRIX*)&mMat, - g_vRotateSpeed.x * g_fElpasedTime, - g_vRotateSpeed.y * g_fElpasedTime, - g_vRotateSpeed.z * g_fElpasedTime); - g_mWorldRotate = g_mWorldRotate * mMat; - } - - // Handle rotations of light source(s) - if (g_sOptions.bLightRotate) - { - aiMatrix4x4 mMat; - D3DXMatrixRotationYawPitchRoll((D3DXMATRIX*)&mMat, - g_vRotateSpeed.x * g_fElpasedTime * 0.5f, - g_vRotateSpeed.y * g_fElpasedTime * 0.5f, - g_vRotateSpeed.z * g_fElpasedTime * 0.5f); - - D3DXVec3TransformNormal((D3DXVECTOR3*)&g_avLightDirs[0], - (D3DXVECTOR3*)&g_avLightDirs[0],(D3DXMATRIX*)&mMat); - - // 2 lights to rotate? - if (g_sOptions.b3Lights) - { - D3DXVec3TransformNormal((D3DXVECTOR3*)&g_avLightDirs[1], - (D3DXVECTOR3*)&g_avLightDirs[1],(D3DXMATRIX*)&mMat); - - g_avLightDirs[1].Normalize(); - } - g_avLightDirs[0].Normalize(); - } - return 1; - } -#if false -//------------------------------------------------------------------------------- -// Process input for an empty scen view to allow for skybox rotations -int CDisplay::HandleInputEmptyScene() -{ - if(CBackgroundPainter::TEXTURE_CUBE == CBackgroundPainter::Instance().GetMode()) - { - if (g_bFPSView) - { - HandleMouseInputFPS(); - HandleKeyboardInputFPS(); - } - HandleMouseInputSkyBox(); - - // need to store the last mouse position in the global variable - // HandleMouseInputFPS() is doing this internally - if (!g_bFPSView) - { - g_LastmousePos.x = g_mousePos.x; - g_LastmousePos.y = g_mousePos.y; - } - } - return 1; -} -//------------------------------------------------------------------------------- -// Draw the HUD on top of the scene -int CDisplay::DrawHUD() -{ - // HACK: (thom) can't get the effect to work on non-shader cards, therefore deactivated for the moment - if( g_sCaps.PixelShaderVersion < D3DPS_VERSION(2,0)) - return 1; - - // get the dimension of the back buffer - RECT sRect; - GetWindowRect(GetDlgItem(g_hDlg,IDC_RT),&sRect); - sRect.right -= sRect.left; - sRect.bottom -= sRect.top; - - // commit the texture to the shader - // FIX: Necessary because the texture view is also using this shader - g_piPassThroughEffect->SetTexture("TEXTURE_2D",g_pcTexture); - - // NOTE: The shader might be used for other purposes, too. - // So ensure the right technique is there - if( g_sCaps.PixelShaderVersion < D3DPS_VERSION(2,0)) - g_piPassThroughEffect->SetTechnique( "PassThrough_FF"); - else - g_piPassThroughEffect->SetTechnique("PassThrough"); - - // build vertices for drawing from system memory - UINT dw; - g_piPassThroughEffect->Begin(&dw,0); - g_piPassThroughEffect->BeginPass(0); - - D3DSURFACE_DESC sDesc; - g_pcTexture->GetLevelDesc(0,&sDesc); - SVertex as[4]; - float fHalfX = ((float)sRect.right-(float)sDesc.Width) / 2.0f; - float fHalfY = ((float)sRect.bottom-(float)sDesc.Height) / 2.0f; - as[1].x = fHalfX; - as[1].y = fHalfY; - as[1].z = 0.2f; - as[1].w = 1.0f; - as[1].u = 0.0f; - as[1].v = 0.0f; - - as[3].x = (float)sRect.right-fHalfX; - as[3].y = fHalfY; - as[3].z = 0.2f; - as[3].w = 1.0f; - as[3].u = 1.0f; - as[3].v = 0.0f; - - as[0].x = fHalfX; - as[0].y = (float)sRect.bottom-fHalfY; - as[0].z = 0.2f; - as[0].w = 1.0f; - as[0].u = 0.0f; - as[0].v = 1.0f; - - as[2].x = (float)sRect.right-fHalfX; - as[2].y = (float)sRect.bottom-fHalfY; - as[2].z = 0.2f; - as[2].w = 1.0f; - as[2].u = 1.0f; - as[2].v = 1.0f; - - as[0].x -= 0.5f;as[1].x -= 0.5f;as[2].x -= 0.5f;as[3].x -= 0.5f; - as[0].y -= 0.5f;as[1].y -= 0.5f;as[2].y -= 0.5f;as[3].y -= 0.5f; - - g_piDevice->SetSamplerState(0,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR); - g_piDevice->SetSamplerState(0,D3DSAMP_MINFILTER,D3DTEXF_LINEAR); - - // draw the screen-filling squad - DWORD dw2;g_piDevice->GetFVF(&dw2); - g_piDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_TEX1); - g_piDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,2, - &as,sizeof(SVertex)); - - // end the effect and recover the old vertex format - g_piPassThroughEffect->EndPass(); - g_piPassThroughEffect->End(); - - g_piDevice->SetFVF(dw2); - return 1; -} -//------------------------------------------------------------------------------- -// Render the full scene, all nodes -int CDisplay::RenderFullScene() -{ - // reset the color index used for drawing normals - g_iCurrentColor = 0; - - aiMatrix4x4 pcProj; - GetProjectionMatrix(pcProj); - - vPos = GetCameraMatrix(mViewProjection); - mViewProjection = mViewProjection * pcProj; - - // setup wireframe/solid rendering mode - if (g_sOptions.eDrawMode == RenderOptions::WIREFRAME) - g_piDevice->SetRenderState(D3DRS_FILLMODE,D3DFILL_WIREFRAME); - else g_piDevice->SetRenderState(D3DRS_FILLMODE,D3DFILL_SOLID); - - if (g_sOptions.bCulling) - g_piDevice->SetRenderState(D3DRS_CULLMODE,D3DCULL_CCW); - else g_piDevice->SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE); - - // for high-quality mode, enable anisotropic texture filtering - if (g_sOptions.bLowQuality) { - for (DWORD d = 0; d < 8;++d) { - g_piDevice->SetSamplerState(d,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR); - g_piDevice->SetSamplerState(d,D3DSAMP_MINFILTER,D3DTEXF_LINEAR); - g_piDevice->SetSamplerState(d,D3DSAMP_MIPFILTER,D3DTEXF_LINEAR); - } - } - else { - for (DWORD d = 0; d < 8;++d) { - g_piDevice->SetSamplerState(d,D3DSAMP_MAGFILTER,D3DTEXF_ANISOTROPIC); - g_piDevice->SetSamplerState(d,D3DSAMP_MINFILTER,D3DTEXF_ANISOTROPIC); - g_piDevice->SetSamplerState(d,D3DSAMP_MIPFILTER,D3DTEXF_LINEAR); - - g_piDevice->SetSamplerState(d,D3DSAMP_MAXANISOTROPY,g_sCaps.MaxAnisotropy); - } - } - - // draw the scene background (clear and texture 2d) - CBackgroundPainter::Instance().OnPreRender(); - - // setup the stereo view if necessary - if (g_sOptions.bStereoView) - SetupStereoView(); - - - // draw all opaque objects in the scene - aiMatrix4x4 m; - if (NULL != g_pcAsset && NULL != g_pcAsset->pcScene->mRootNode) - { - HandleInput(); - m = g_mWorld * g_mWorldRotate; - RenderNode(g_pcAsset->pcScene->mRootNode,m,false); - } - - // if a cube texture is loaded as background image, the user - // should be able to rotate it even if no asset is loaded - HandleInputEmptyScene(); - - // draw the scene background - CBackgroundPainter::Instance().OnPostRender(); - - // draw all non-opaque objects in the scene - if (NULL != g_pcAsset && NULL != g_pcAsset->pcScene->mRootNode) - { - // disable the z-buffer - g_piDevice->SetRenderState(D3DRS_ZWRITEENABLE,FALSE); - RenderNode(g_pcAsset->pcScene->mRootNode,m,true); - g_piDevice->SetRenderState(D3DRS_ZWRITEENABLE,TRUE); - } - - // setup the stereo view if necessary - if (g_sOptions.bStereoView) - RenderStereoView(m); - - // render the skeleton if necessary - if (g_sOptions.bSkeleton && NULL != g_pcAsset && NULL != g_pcAsset->pcScene->mRootNode) { - // disable the z-buffer - g_piDevice->SetRenderState(D3DRS_ZWRITEENABLE,FALSE); - - if (g_sOptions.eDrawMode != RenderOptions::WIREFRAME) { - g_piDevice->SetRenderState(D3DRS_ZENABLE,FALSE); - } - - g_piDevice->SetVertexDeclaration( gDefaultVertexDecl); - // this is very similar to the code in SetupMaterial() - ID3DXEffect* piEnd = g_piNormalsEffect; - aiMatrix4x4 pcProj = m * mViewProjection; - - D3DXVECTOR4 vVector(1.f,0.f,0.f,1.f); - piEnd->SetVector("OUTPUT_COLOR",&vVector); - piEnd->SetMatrix("WorldViewProjection", (const D3DXMATRIX*)&pcProj); - - UINT dwPasses = 0; - piEnd->Begin(&dwPasses,0); - piEnd->BeginPass(0); - - RenderSkeleton(g_pcAsset->pcScene->mRootNode,m,m); - - piEnd->EndPass();piEnd->End(); - g_piDevice->SetRenderState(D3DRS_ZWRITEENABLE,TRUE); - g_piDevice->SetRenderState(D3DRS_ZENABLE,TRUE); - } - - // draw the HUD texture on top of the rendered scene using - // pre-projected vertices - if (!g_bFPSView && g_pcAsset && g_pcTexture) - DrawHUD(); - - return 1; -} -//------------------------------------------------------------------------------- -int CDisplay::RenderMaterialView() -{ - return 1; -} -//------------------------------------------------------------------------------- -// Render animation skeleton -int CDisplay::RenderSkeleton (aiNode* piNode,const aiMatrix4x4& piMatrix, const aiMatrix4x4& parent) -{ - aiMatrix4x4 me = g_pcAsset->mAnimator->GetGlobalTransform( piNode); - - me.Transpose(); - //me *= piMatrix; - - if (piNode->mParent) { - AssetHelper::LineVertex data[2]; - data[0].dColorDiffuse = data[1].dColorDiffuse = D3DCOLOR_ARGB(0xff,0xff,0,0); - - data[0].vPosition.x = parent.d1; - data[0].vPosition.y = parent.d2; - data[0].vPosition.z = parent.d3; - - data[1].vPosition.x = me.d1; - data[1].vPosition.y = me.d2; - data[1].vPosition.z = me.d3; - - g_piDevice->DrawPrimitiveUP(D3DPT_LINELIST,1,&data,sizeof(AssetHelper::LineVertex)); - } - - // render all child nodes - for (unsigned int i = 0; i < piNode->mNumChildren;++i) - RenderSkeleton(piNode->mChildren[i],piMatrix, me ); - - return 1; -} -//------------------------------------------------------------------------------- -// Render a single node -int CDisplay::RenderNode (aiNode* piNode,const aiMatrix4x4& piMatrix, - bool bAlpha /*= false*/) -{ - aiMatrix4x4 aiMe = g_pcAsset->mAnimator->GetGlobalTransform( piNode); - - aiMe.Transpose(); - aiMe *= piMatrix; - - bool bChangedVM = false; - if (VIEWMODE_NODE == m_iViewMode && m_pcCurrentNode) - { - if (piNode != m_pcCurrentNode->psNode) - { - // directly call our children - for (unsigned int i = 0; i < piNode->mNumChildren;++i) - RenderNode(piNode->mChildren[i],piMatrix,bAlpha ); - - return 1; - } - m_iViewMode = VIEWMODE_FULL; - bChangedVM = true; - } - - aiMatrix4x4 pcProj = aiMe * mViewProjection; - - aiMatrix4x4 pcCam = aiMe; - pcCam.Inverse().Transpose(); - - // VERY UNOPTIMIZED, much stuff is redundant. Who cares? - if (!g_sOptions.bRenderMats && !bAlpha) - { - // this is very similar to the code in SetupMaterial() - ID3DXEffect* piEnd = g_piDefaultEffect; - - // commit transformation matrices to the shader - piEnd->SetMatrix("WorldViewProjection", - (const D3DXMATRIX*)&pcProj); - - piEnd->SetMatrix("World",(const D3DXMATRIX*)&aiMe); - piEnd->SetMatrix("WorldInverseTranspose", - (const D3DXMATRIX*)&pcCam); - - if ( CBackgroundPainter::TEXTURE_CUBE == CBackgroundPainter::Instance().GetMode()) - { - pcCam = pcCam * pcProj; - piEnd->SetMatrix("ViewProj",(const D3DXMATRIX*)&pcCam); - pcCam.Inverse(); - piEnd->SetMatrix("InvViewProj",(const D3DXMATRIX*)&pcCam); - } - - // commit light colors and direction to the shader - D3DXVECTOR4 apcVec[5]; - apcVec[0].x = g_avLightDirs[0].x; - apcVec[0].y = g_avLightDirs[0].y; - apcVec[0].z = g_avLightDirs[0].z; - apcVec[0].w = 0.0f; - apcVec[1].x = g_avLightDirs[0].x * -1.0f; - apcVec[1].y = g_avLightDirs[0].y * -1.0f; - apcVec[1].z = g_avLightDirs[0].z * -1.0f; - apcVec[1].w = 0.0f; - - D3DXVec4Normalize(&apcVec[0],&apcVec[0]); - D3DXVec4Normalize(&apcVec[1],&apcVec[1]); - piEnd->SetVectorArray("afLightDir",apcVec,5); - - apcVec[0].x = ((g_avLightColors[0] >> 16) & 0xFF) / 255.0f; - apcVec[0].y = ((g_avLightColors[0] >> 8) & 0xFF) / 255.0f; - apcVec[0].z = ((g_avLightColors[0]) & 0xFF) / 255.0f; - apcVec[0].w = 1.0f; - - if( g_sOptions.b3Lights) - { - apcVec[1].x = ((g_avLightColors[1] >> 16) & 0xFF) / 255.0f; - apcVec[1].y = ((g_avLightColors[1] >> 8) & 0xFF) / 255.0f; - apcVec[1].z = ((g_avLightColors[1]) & 0xFF) / 255.0f; - apcVec[1].w = 0.0f; - } else - { - apcVec[1].x = 0.0f; - apcVec[1].y = 0.0f; - apcVec[1].z = 0.0f; - apcVec[1].w = 0.0f; - } - - apcVec[0] *= g_fLightIntensity; - apcVec[1] *= g_fLightIntensity; - piEnd->SetVectorArray("afLightColor",apcVec,5); - - apcVec[0].x = vPos.x; - apcVec[0].y = vPos.y; - apcVec[0].z = vPos.z; - piEnd->SetVector( "vCameraPos",&apcVec[0]); - - // setup the best technique - if( g_sCaps.PixelShaderVersion < D3DPS_VERSION(2,0)) - { - g_piDefaultEffect->SetTechnique( "DefaultFXSpecular_FF"); - } else - if (g_sCaps.PixelShaderVersion < D3DPS_VERSION(3,0) || g_sOptions.bLowQuality) - { - if (g_sOptions.b3Lights) - piEnd->SetTechnique("DefaultFXSpecular_PS20_D2"); - else piEnd->SetTechnique("DefaultFXSpecular_PS20_D1"); - } - else - { - if (g_sOptions.b3Lights) - piEnd->SetTechnique("DefaultFXSpecular_D2"); - else piEnd->SetTechnique("DefaultFXSpecular_D1"); - } - - // setup the default material - UINT dwPasses = 0; - piEnd->Begin(&dwPasses,0); - piEnd->BeginPass(0); - } - D3DXVECTOR4 vVector = g_aclNormalColors[g_iCurrentColor]; - if (++g_iCurrentColor == 14) - { - g_iCurrentColor = 0; - } - if (! (!g_sOptions.bRenderMats && bAlpha )) - { - for (unsigned int i = 0; i < piNode->mNumMeshes;++i) - { - const aiMesh* mesh = g_pcAsset->pcScene->mMeshes[piNode->mMeshes[i]]; - AssetHelper::MeshHelper* helper = g_pcAsset->apcMeshes[piNode->mMeshes[i]]; - - // don't render the mesh if the render pass is incorrect - if (g_sOptions.bRenderMats && (helper->piOpacityTexture || helper->fOpacity != 1.0f) && !mesh->HasBones()) - { - if (!bAlpha)continue; - } - else if (bAlpha)continue; - - // Upload bone matrices. This maybe is the wrong place to do it, but for the heck of it I don't understand this code flow - if( mesh->HasBones()) - { - if( helper->piEffect) - { - static float matrices[4*4*60]; - float* tempmat = matrices; - const std::vector& boneMats = g_pcAsset->mAnimator->GetBoneMatrices( piNode, i); - ai_assert( boneMats.size() == mesh->mNumBones); - - for( unsigned int a = 0; a < mesh->mNumBones; a++) - { - const aiMatrix4x4& mat = boneMats[a]; - *tempmat++ = mat.a1; *tempmat++ = mat.a2; *tempmat++ = mat.a3; *tempmat++ = mat.a4; - *tempmat++ = mat.b1; *tempmat++ = mat.b2; *tempmat++ = mat.b3; *tempmat++ = mat.b4; - *tempmat++ = mat.c1; *tempmat++ = mat.c2; *tempmat++ = mat.c3; *tempmat++ = mat.c4; - *tempmat++ = mat.d1; *tempmat++ = mat.d2; *tempmat++ = mat.d3; *tempmat++ = mat.d4; - //tempmat += 4; - } - - if( g_sOptions.bRenderMats) - { - helper->piEffect->SetMatrixTransposeArray( "gBoneMatrix", (D3DXMATRIX*)matrices, 60); - } else - { - g_piDefaultEffect->SetMatrixTransposeArray( "gBoneMatrix", (D3DXMATRIX*)matrices, 60); - g_piDefaultEffect->CommitChanges(); - } - } - } else - { - // upload identity matrices instead. Only the first is ever going to be used in meshes without bones - if( !g_sOptions.bRenderMats) - { - D3DXMATRIX identity( 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - g_piDefaultEffect->SetMatrixTransposeArray( "gBoneMatrix", &identity, 1); - g_piDefaultEffect->CommitChanges(); - } - } - - // now setup the material - if (g_sOptions.bRenderMats) - { - CMaterialManager::Instance().SetupMaterial( helper, pcProj, aiMe, pcCam, vPos); - } - g_piDevice->SetVertexDeclaration( gDefaultVertexDecl); - - if (bAlpha)CMeshRenderer::Instance().DrawSorted(piNode->mMeshes[i],aiMe); - else CMeshRenderer::Instance().DrawUnsorted(piNode->mMeshes[i]); - - // now end the material - if (g_sOptions.bRenderMats) - { - CMaterialManager::Instance().EndMaterial( helper); - } - - // render normal vectors? - if (g_sOptions.bRenderNormals && helper->piVBNormals) - { - // this is very similar to the code in SetupMaterial() - ID3DXEffect* piEnd = g_piNormalsEffect; - - piEnd->SetVector("OUTPUT_COLOR",&vVector); - piEnd->SetMatrix("WorldViewProjection", (const D3DXMATRIX*)&pcProj); - - UINT dwPasses = 0; - piEnd->Begin(&dwPasses,0); - piEnd->BeginPass(0); - - g_piDevice->SetStreamSource(0, helper->piVBNormals, 0, sizeof(AssetHelper::LineVertex)); - g_piDevice->DrawPrimitive(D3DPT_LINELIST,0, g_pcAsset->pcScene->mMeshes[piNode->mMeshes[i]]->mNumVertices); - - piEnd->EndPass(); - piEnd->End(); - } - } - // end the default material - if (!g_sOptions.bRenderMats) - { - g_piDefaultEffect->EndPass(); - g_piDefaultEffect->End(); - } - } - // render all child nodes - for (unsigned int i = 0; i < piNode->mNumChildren;++i) - RenderNode(piNode->mChildren[i],piMatrix,bAlpha ); - - // need to reset the viewmode? - if (bChangedVM) - m_iViewMode = VIEWMODE_NODE; - return 1; -} -//------------------------------------------------------------------------------- -int CDisplay::RenderPatternBG() -{ - if (!g_piPatternEffect) - { - // the pattern effect won't work on ps_2_0 cards - if (g_sCaps.PixelShaderVersion >= D3DPS_VERSION(3,0)) - { - // seems we have not yet compiled this shader. - // and NOW is the best time to do that ... - ID3DXBuffer* piBuffer = NULL; - if(FAILED( D3DXCreateEffect(g_piDevice, - g_szCheckerBackgroundShader.c_str(), - (UINT)g_szCheckerBackgroundShader.length(), - NULL, - NULL, - D3DXSHADER_USE_LEGACY_D3DX9_31_DLL, - NULL, - &g_piPatternEffect,&piBuffer))) - { - if( piBuffer) - { - MessageBox(g_hDlg,(LPCSTR)piBuffer->GetBufferPointer(),"HLSL",MB_OK); - piBuffer->Release(); - } - return 0; - } - if( piBuffer) - { - piBuffer->Release(); - piBuffer = NULL; - } - } - else - { - // clear the color buffer in magenta - // (hopefully this is ugly enough that every ps_2_0 cards owner - // runs to the next shop to buy himself a new card ...) - g_piDevice->Clear(0,NULL,D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, - D3DCOLOR_ARGB(0xFF,0xFF,0,0xFF), 1.0f,0 ); - return 1; - } - } - - // clear the depth buffer only - g_piDevice->Clear(0,NULL,D3DCLEAR_ZBUFFER, - D3DCOLOR_ARGB(0xFF,0xFF,0,0xFF), 1.0f,0 ); - - // setup the colors to be used ... - g_piPatternEffect->SetVector("COLOR_ONE",&m_avCheckerColors[0]); - g_piPatternEffect->SetVector("COLOR_TWO",&m_avCheckerColors[1]); - - // setup the shader - UINT dw; - g_piPatternEffect->Begin(&dw,0); - g_piPatternEffect->BeginPass(0); - - RECT sRect; - GetWindowRect(GetDlgItem(g_hDlg,IDC_RT),&sRect); - sRect.right -= sRect.left; - sRect.bottom -= sRect.top; - - struct SVertex - { - float x,y,z,w; - }; - // build the screen-filling rectangle - SVertex as[4]; - as[1].x = 0.0f; - as[1].y = 0.0f; - as[1].z = 0.2f; - as[3].x = (float)sRect.right; - as[3].y = 0.0f; - as[3].z = 0.2f; - as[0].x = 0.0f; - as[0].y = (float)sRect.bottom; - as[0].z = 0.2f; - as[2].x = (float)sRect.right; - as[2].y = (float)sRect.bottom; - as[2].z = 0.2f; - - as[0].w = 1.0f; - as[1].w = 1.0f; - as[2].w = 1.0f; - as[3].w = 1.0f; - - as[0].x -= 0.5f;as[1].x -= 0.5f;as[2].x -= 0.5f;as[3].x -= 0.5f; - as[0].y -= 0.5f;as[1].y -= 0.5f;as[2].y -= 0.5f;as[3].y -= 0.5f; - - // draw the rectangle - DWORD dw2;g_piDevice->GetFVF(&dw2); - g_piDevice->SetFVF(D3DFVF_XYZRHW); - g_piDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,2, - &as,sizeof(SVertex)); - g_piDevice->SetFVF(dw2); - - // cleanup - g_piPatternEffect->EndPass(); - g_piPatternEffect->End(); - return 1; -} -//------------------------------------------------------------------------------- -int CDisplay::RenderTextureView() -{ - if (!g_pcAsset || !g_pcAsset->pcScene)return 0; - - // handle input - this->HandleInputTextureView(); - - // render the background - RenderPatternBG(); - - // it might be that there is no texture ... - if (!m_pcCurrentTexture->piTexture) - { - // FIX: no such log message. it would be repeated to often - //CLogDisplay::Instance().AddEntry("Unable to display texture. Image is unreachable.", - // D3DCOLOR_ARGB(0xFF,0xFF,0,0)); - return 0; - } - - - RECT sRect; - GetWindowRect(GetDlgItem(g_hDlg,IDC_RT),&sRect); - sRect.right -= sRect.left; - sRect.bottom -= sRect.top; - - // commit the texture to the shader - g_piPassThroughEffect->SetTexture("TEXTURE_2D",*m_pcCurrentTexture->piTexture); - - if (aiTextureType_OPACITY == m_pcCurrentTexture->iType) - { - g_piPassThroughEffect->SetTechnique("PassThroughAlphaFromR"); - } - else if ((aiTextureType_OPACITY | 0x40000000) == m_pcCurrentTexture->iType) - { - g_piPassThroughEffect->SetTechnique("PassThroughAlphaFromA"); - } - else if( g_sCaps.PixelShaderVersion < D3DPS_VERSION(2,0)) - g_piPassThroughEffect->SetTechnique( "PassThrough_FF"); - else - g_piPassThroughEffect->SetTechnique("PassThrough"); - - UINT dw; - g_piPassThroughEffect->Begin(&dw,0); - g_piPassThroughEffect->BeginPass(0); - - if (aiTextureType_HEIGHT == m_pcCurrentTexture->iType || - aiTextureType_NORMALS == m_pcCurrentTexture->iType) - { - // manually disable alpha blending - g_piDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,FALSE); - } - - // build a rectangle which centers the texture - // scaling is OK, but no stretching - D3DSURFACE_DESC sDesc; - if ( m_pcCurrentTexture->piTexture && *m_pcCurrentTexture->piTexture) { /* just a dirty fix */ - (*m_pcCurrentTexture->piTexture)->GetLevelDesc(0,&sDesc); - - struct SVertex{float x,y,z,w,u,v;}; - SVertex as[4]; - - const float nx = (float)sRect.right; - const float ny = (float)sRect.bottom; - const float x = (float)sDesc.Width; - const float y = (float)sDesc.Height; - float f = std::min((nx-30) / x,(ny-30) / y) * (m_fTextureZoom/1000.0f); - - float fHalfX = (nx - (f * x)) / 2.0f; - float fHalfY = (ny - (f * y)) / 2.0f; - as[1].x = fHalfX + m_vTextureOffset.x; - as[1].y = fHalfY + m_vTextureOffset.y; - as[1].z = 0.2f; - as[1].w = 1.0f; - as[1].u = 0.0f; - as[1].v = 0.0f; - as[3].x = nx-fHalfX + m_vTextureOffset.x; - as[3].y = fHalfY + m_vTextureOffset.y; - as[3].z = 0.2f; - as[3].w = 1.0f; - as[3].u = 1.0f; - as[3].v = 0.0f; - as[0].x = fHalfX + m_vTextureOffset.x; - as[0].y = ny-fHalfY + m_vTextureOffset.y; - as[0].z = 0.2f; - as[0].w = 1.0f; - as[0].u = 0.0f; - as[0].v = 1.0f; - as[2].x = nx-fHalfX + m_vTextureOffset.x; - as[2].y = ny-fHalfY + m_vTextureOffset.y; - as[2].z = 0.2f; - as[2].w = 1.0f; - as[2].u = 1.0f; - as[2].v = 1.0f; - as[0].x -= 0.5f;as[1].x -= 0.5f;as[2].x -= 0.5f;as[3].x -= 0.5f; - as[0].y -= 0.5f;as[1].y -= 0.5f;as[2].y -= 0.5f;as[3].y -= 0.5f; - - // draw the rectangle - DWORD dw2;g_piDevice->GetFVF(&dw2); - g_piDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_TEX1); - g_piDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,2, - &as,sizeof(SVertex)); - g_piDevice->SetFVF(dw2); - } - - g_piPassThroughEffect->EndPass(); - g_piPassThroughEffect->End(); - - // do we need to draw UV coordinates? - return 1; -} -}; -#endif - } -} diff --git a/port/Assimp.NET/Assimp.NET_DEMO/ExtensionMethods.cs b/port/Assimp.NET/Assimp.NET_DEMO/ExtensionMethods.cs deleted file mode 100644 index 8f8e801a7..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/ExtensionMethods.cs +++ /dev/null @@ -1,70 +0,0 @@ -/* ---------------------------------------------------------------------------- -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. ---------------------------------------------------------------------------- -*/ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Microsoft.DirectX; -using Microsoft.DirectX.Direct3D; - -namespace Assimp.Viewer { - public static class ExtensionMethods { - public static Vector3 ToVector3(this aiVector3D v) { - return new Vector3(v.x, v.y, v.z); - } - - public static Matrix ToMatrix(this aiMatrix4x4 m) { - // Read and Transpose for DirectX - return new Matrix() { - M11 = m.a1, M12 = m.b1, M13 = m.c1, M14 = m.d1, - M21 = m.a2, M22 = m.b2, M23 = m.c2, M24 = m.d2, - M31 = m.a3, M32 = m.b3, M33 = m.c3, M34 = m.d3, - M41 = m.a4, M42 = m.b4, M43 = m.c4, M44 = m.d4, - }; - } - - public static ColorValue ToColorValue(this aiColor4D c) { - return new ColorValue() { - Alpha = c.a, Red = c.r, Green = c.g, Blue = c.b - }; - } - } -} diff --git a/port/Assimp.NET/Assimp.NET_DEMO/Input.cs b/port/Assimp.NET/Assimp.NET_DEMO/Input.cs deleted file mode 100644 index 7b34afe86..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/Input.cs +++ /dev/null @@ -1,390 +0,0 @@ -/* ---------------------------------------------------------------------------- -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. ---------------------------------------------------------------------------- -*/ -using System.Drawing; -using System.Windows.Forms; -using Microsoft.DirectX; -using Microsoft.DirectX.Direct3D; -using System; - -namespace Assimp.Viewer -{ - partial class AssimpView { - private EClickPos g_eClick = EClickPos.Circle; - - private bool g_bMousePressed; - private bool g_bMousePressedR; - private bool g_bMousePressedM; - private bool g_bMousePressedBoth; - - private Point g_mousePos; - private Point g_LastmousePos; - private bool g_bInvert; - -#if false - //------------------------------------------------------------------------------- - // Handle mouse input for the FPS input behaviour - // - // Movement in x and y axis is possible - //------------------------------------------------------------------------------- - private void HandleMouseInputFPS() - { - Point mousePos; - mousePos = Control.MousePosition; - mousePos = PointToClient(mousePos); - - g_mousePos.X = mousePos.X; - g_mousePos.Y = mousePos.Y; - - Matrix matRotation; - - if (g_bMousePressed) - { - int nXDiff = (g_mousePos.X - g_LastmousePos.X); - int nYDiff = (g_mousePos.Y - g_LastmousePos.Y); - - if( 0 != nYDiff) - { - D3DXMatrixRotationAxis( &matRotation, (D3DXVECTOR3*)& g_sCamera.vRight, D3DXToRadian((float)nYDiff / 6.0f)); - D3DXVec3TransformCoord( (D3DXVECTOR3*)&g_sCamera.vLookAt, (D3DXVECTOR3*)& g_sCamera.vLookAt, &matRotation ); - D3DXVec3TransformCoord( (D3DXVECTOR3*)&g_sCamera.vUp, (D3DXVECTOR3*)&g_sCamera.vUp, &matRotation ); - } - - if( 0 != nXDiff ) - { - D3DXVECTOR3 v(0,1,0); - D3DXMatrixRotationAxis( &matRotation, (D3DXVECTOR3*)&g_sCamera.vUp, D3DXToRadian((float)nXDiff / 6.0f) ); - D3DXVec3TransformCoord( (D3DXVECTOR3*)&g_sCamera.vLookAt, (D3DXVECTOR3*)&g_sCamera.vLookAt, &matRotation ); - D3DXVec3TransformCoord( (D3DXVECTOR3*)&g_sCamera.vRight,(D3DXVECTOR3*) &g_sCamera.vRight, &matRotation ); - } - } - - g_LastmousePos.X = g_mousePos.X; - g_LastmousePos.Y = g_mousePos.Y; - } - - - //------------------------------------------------------------------------------- - // Handle mouse input for the FPS input behaviour - // - // Movement in x and y axis is possible - //------------------------------------------------------------------------------- - void HandleMouseInputTextureView( void ) - { - POINT mousePos; - GetCursorPos( &mousePos ); - ScreenToClient( GetDlgItem(g_hDlg,IDC_RT), &mousePos ); - - g_mousePos.X = mousePos.X; - g_mousePos.Y = mousePos.Y; - - D3DXMATRIX matRotation; - - if (g_bMousePressed) - { - CDisplay::Instance().SetTextureViewOffsetX((float)(g_mousePos.X - g_LastmousePos.X)); - CDisplay::Instance().SetTextureViewOffsetY((float)(g_mousePos.Y - g_LastmousePos.Y)); - } - - g_LastmousePos.X = g_mousePos.X; - g_LastmousePos.Y = g_mousePos.Y; - } - - //------------------------------------------------------------------------------- - // handle mouse input for the light rotation - // - // Axes: global x/y axis - //------------------------------------------------------------------------------- - private void HandleMouseInputLightRotate() - { - Point mousePos; - mousePos = Control.MousePosition; - mousePos = PointToClient(mousePos); - - g_mousePos.X = mousePos.X; - g_mousePos.Y = mousePos.Y; - - if (g_bMousePressedR) - { - int nXDiff = -(g_mousePos.X - g_LastmousePos.X); - int nYDiff = -(g_mousePos.Y - g_LastmousePos.Y); - - Vector3 v = new Vector3(1.0f,0.0f,0.0f); - Matrix mTemp; - mTemp = Matrix.RotationAxis(v, Geometry.DegreeToRadian((float)nYDiff / 2.0f)); - D3DXMatrixRotationAxis( (D3DXMATRIX*) &mTemp, (D3DXVECTOR3*)&v, D3DXToRadian((float)nYDiff / 2.0f)); - Vector3.TransformCoordinate( - D3DXVec3TransformCoord((D3DXVECTOR3*)&g_avLightDirs[0], - (const D3DXVECTOR3*)&g_avLightDirs[0],(const D3DXMATRIX*)&mTemp); - - v = aiVector3D(0.0f,1.0f,0.0f); - D3DXMatrixRotationAxis( (D3DXMATRIX*) &mTemp, (D3DXVECTOR3*)&v, D3DXToRadian((float)nXDiff / 2.0f)); - D3DXVec3TransformCoord((D3DXVECTOR3*)&g_avLightDirs[0], - (const D3DXVECTOR3*)&g_avLightDirs[0],(const D3DXMATRIX*)&mTemp); - } - } - - - //------------------------------------------------------------------------------- - // Handle mouse input for movements of the skybox - // - // The skybox can be moved by holding both the left and the right mouse button - // pressed. Rotation is possible in x and y direction. - //------------------------------------------------------------------------------- - void HandleMouseInputSkyBox( void ) - { - POINT mousePos; - GetCursorPos( &mousePos ); - ScreenToClient( GetDlgItem(g_hDlg,IDC_RT), &mousePos ); - - g_mousePos.X = mousePos.X; - g_mousePos.Y = mousePos.Y; - - aiMatrix4x4 matRotation; - - if (g_bMousePressedBoth ) - { - int nXDiff = -(g_mousePos.X - g_LastmousePos.X); - int nYDiff = -(g_mousePos.Y - g_LastmousePos.Y); - - aiMatrix4x4 matWorld; - - if( 0 != nYDiff) - { - aiVector3D v = aiVector3D(1.0f,0.0f,0.0f); - D3DXMatrixRotationAxis( (D3DXMATRIX*) &matWorld, (D3DXVECTOR3*)&v, D3DXToRadian((float)nYDiff / 2.0f)); - CBackgroundPainter::Instance().RotateSB(&matWorld); - } - - if( 0 != nXDiff) - { - aiMatrix4x4 matWorldOld; - if( 0 != nYDiff) - { - matWorldOld = matWorld; - } - - aiVector3D v = aiVector3D(0.0f,1.0f,0.0f); - D3DXMatrixRotationAxis( (D3DXMATRIX*)&matWorld, (D3DXVECTOR3*)&v, D3DXToRadian((float)nXDiff / 2.0f) ); - matWorld = matWorldOld * matWorld; - CBackgroundPainter::Instance().RotateSB(&matWorld); - } - } - } - - //------------------------------------------------------------------------------- - //------------------------------------------------------------------------------- - void HandleMouseInputLightIntensityAndColor( void ) - { - POINT mousePos; - GetCursorPos( &mousePos ); - ScreenToClient( GetDlgItem(g_hDlg,IDC_RT), &mousePos ); - - g_mousePos.X = mousePos.X; - g_mousePos.Y = mousePos.Y; - - if (g_bMousePressedM) - { - int nXDiff = -(g_mousePos.X - g_LastmousePos.X); - int nYDiff = -(g_mousePos.Y - g_LastmousePos.Y); - - g_fLightIntensity -= (float)nXDiff / 400.0f; - if ((nYDiff > 2 || nYDiff < -2) && (nXDiff < 20 && nXDiff > -20)) - { - if (!g_bFPSView) - { - g_sCamera.vPos.Z += nYDiff / 120.0f; - } - else - { - g_sCamera.vPos += (nYDiff / 120.0f) * g_sCamera.vLookAt.Normalize(); - } - } - } - return; - } -#endif - - //------------------------------------------------------------------------------- - //------------------------------------------------------------------------------- - private void HandleMouseInputLocal() - { - Point mousePos; - mousePos = Control.MousePosition; - mousePos = PointToClient(mousePos); - - g_mousePos.X = mousePos.X; - g_mousePos.Y = mousePos.Y; - - if (g_bMousePressed) - { - int nXDiff = -(g_mousePos.X - g_LastmousePos.X); - int nYDiff = -(g_mousePos.Y - g_LastmousePos.Y); - - Matrix matWorld; - if (g_eClick != EClickPos.Outside) - { - if( 0 != nYDiff && g_eClick != EClickPos.CircleHor) - { - Vector3 v = new Vector3(1.0f,0.0f,0.0f); - matWorld = Matrix.RotationAxis(v, Geometry.DegreeToRadian((float)nYDiff / 2.0f)); - g_mWorldRotate = g_mWorldRotate * matWorld; - } - - if( 0 != nXDiff && g_eClick != EClickPos.CircleVert) - { - Vector3 v = new Vector3(0.0f,1.0f,0.0f); - matWorld = Matrix.RotationAxis(v, Geometry.DegreeToRadian((float)nXDiff / 2.0f)); - g_mWorldRotate = g_mWorldRotate * matWorld; - } - } - else - { - if(0 != nYDiff || 0 != nXDiff) - { - var sRect = new Rectangle(Point.Empty, this.Size); - - // rotate around the z-axis - int xPos = g_mousePos.X - sRect.Right/2; - int yPos = g_mousePos.Y - sRect.Bottom/2; - float fXDist = (float)xPos; - float fYDist = (float)yPos / (float)Math.Sqrt(yPos * yPos + xPos * xPos); - - bool bSign1; - if (fXDist < 0.0f)bSign1 = false; - else bSign1 = true; - float fAngle = (float)Math.Asin(fYDist); - - xPos = g_LastmousePos.X - sRect.Right/2; - yPos = g_LastmousePos.Y - sRect.Bottom/2; - - fXDist = (float)xPos; - fYDist = (float)yPos / (float)Math.Sqrt(yPos * yPos + xPos * xPos); - - bool bSign2; - if (fXDist < 0.0f)bSign2 = false; - else bSign2 = true; - float fAngle2 = (float)Math.Asin(fYDist); - fAngle -= fAngle2; - - if (bSign1 != bSign2) - { - g_bInvert = !g_bInvert; - } - if (g_bInvert)fAngle *= -1.0f; - - Vector3 v = new Vector3(0.0f, 0.0f, 1.0f); - matWorld = Matrix.RotationAxis(v, (float)(fAngle * 1.2)); - g_mWorldRotate = g_mWorldRotate * matWorld; - } - } - } - - g_LastmousePos.X = g_mousePos.X; - g_LastmousePos.Y = g_mousePos.Y; - } - -#if false - //------------------------------------------------------------------------------- - //------------------------------------------------------------------------------- - void HandleKeyboardInputFPS( void ) - { - unsigned char keys[256]; - GetKeyboardState( keys ); - - aiVector3D tmpLook = g_sCamera.vLookAt; - aiVector3D tmpRight = g_sCamera.vRight; - - aiVector3D vOldPos = g_sCamera.vPos; - - // Up Arrow Key - View moves forward - if( keys[VK_UP] & 0x80 ) - g_sCamera.vPos -= (tmpLook*-MOVE_SPEED)*g_fElpasedTime; - - // Down Arrow Key - View moves backward - if( keys[VK_DOWN] & 0x80 ) - g_sCamera.vPos += (tmpLook*-MOVE_SPEED)*g_fElpasedTime; - - // Left Arrow Key - View side-steps or strafes to the left - if( keys[VK_LEFT] & 0x80 ) - g_sCamera.vPos -= (tmpRight*MOVE_SPEED)*g_fElpasedTime; - - // Right Arrow Key - View side-steps or strafes to the right - if( keys[VK_RIGHT] & 0x80 ) - g_sCamera.vPos += (tmpRight*MOVE_SPEED)*g_fElpasedTime; - - // Home Key - View elevates up - if( keys[VK_HOME] & 0x80 ) - g_sCamera.vPos .Y += MOVE_SPEED*g_fElpasedTime; - - // End Key - View elevates down - if( keys[VK_END] & 0x80 ) - g_sCamera.vPos.Y -= MOVE_SPEED*g_fElpasedTime; - } - - - //------------------------------------------------------------------------------- - //------------------------------------------------------------------------------- - void HandleKeyboardInputTextureView( void ) - { - unsigned char keys[256]; - GetKeyboardState( keys ); - - // Up Arrow Key - if( keys[VK_UP] & 0x80 ) - CDisplay::Instance().SetTextureViewOffsetY ( g_fElpasedTime * 150.0f ); - - // Down Arrow Key - if( keys[VK_DOWN] & 0x80 ) - CDisplay::Instance().SetTextureViewOffsetY ( -g_fElpasedTime * 150.0f ); - - // Left Arrow Key - if( keys[VK_LEFT] & 0x80 ) - CDisplay::Instance().SetTextureViewOffsetX ( g_fElpasedTime * 150.0f ); - - // Right Arrow Key - if( keys[VK_RIGHT] & 0x80 ) - CDisplay::Instance().SetTextureViewOffsetX ( -g_fElpasedTime * 150.0f ); - } - }; -#endif - -} -} \ No newline at end of file diff --git a/port/Assimp.NET/Assimp.NET_DEMO/Program.cs b/port/Assimp.NET/Assimp.NET_DEMO/Program.cs deleted file mode 100644 index 0fb19a7bc..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/Program.cs +++ /dev/null @@ -1,62 +0,0 @@ -/* ---------------------------------------------------------------------------- -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. ---------------------------------------------------------------------------- -*/ -using System; -using System.Collections.Generic; -using System.Windows.Forms; -using System.Reflection; -using System.IO; - -namespace Assimp.Viewer -{ - static class Program - { - /// - /// Der Haupteinstiegspunkt für die Anwendung. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new AssimpView()); - } - } -} diff --git a/port/Assimp.NET/Assimp.NET_DEMO/Properties/AssemblyInfo.cs b/port/Assimp.NET/Assimp.NET_DEMO/Properties/AssemblyInfo.cs deleted file mode 100644 index eee3073b3..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// Allgemeine Informationen über eine Assembly werden über die folgenden -// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -// die mit einer Assembly verknüpft sind. -[assembly: AssemblyTitle("Assimp.NET_DEMO")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("Assimp.NET_DEMO")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar -// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von -// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest. -[assembly: ComVisible(false)] - -// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird -[assembly: Guid("bdbe5566-8c2f-4bef-9d1c-bcb9a916cf69")] - -// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -// -// Hauptversion -// Nebenversion -// Buildnummer -// Revision -// -// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern -// übernehmen, indem Sie "*" eingeben: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/port/Assimp.NET/Assimp.NET_DEMO/Properties/Resources.Designer.cs b/port/Assimp.NET/Assimp.NET_DEMO/Properties/Resources.Designer.cs deleted file mode 100644 index afd96b327..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4927 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Assimp.Viewer.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Assimp.Viewer.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/port/Assimp.NET/Assimp.NET_DEMO/Properties/Resources.resx b/port/Assimp.NET/Assimp.NET_DEMO/Properties/Resources.resx deleted file mode 100644 index ffecec851..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/port/Assimp.NET/Assimp.NET_DEMO/Properties/Settings.Designer.cs b/port/Assimp.NET/Assimp.NET_DEMO/Properties/Settings.Designer.cs deleted file mode 100644 index ab7b38f40..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4927 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Assimp.Viewer.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/port/Assimp.NET/Assimp.NET_DEMO/Properties/Settings.settings b/port/Assimp.NET/Assimp.NET_DEMO/Properties/Settings.settings deleted file mode 100644 index abf36c5d3..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/port/Assimp.NET/Assimp.NET_DEMO/app.config b/port/Assimp.NET/Assimp.NET_DEMO/app.config deleted file mode 100644 index b7db28170..000000000 --- a/port/Assimp.NET/Assimp.NET_DEMO/app.config +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/port/Assimp.NET/CSharpViewerScreenShot.PNG b/port/Assimp.NET/CSharpViewerScreenShot.PNG deleted file mode 100644 index a6a2b8f53c454303255c213babced321a13aed3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304642 zcmV)RK(oJzP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m?d01m?e$8V@)00007bV*G`2igl2 z5GEExN|sOn03ZNKL_t(|+El&YjwH$M-}fOI5n0tev*$>L0YML9*nkb$Z{!=_>EidW z0t{I;_MF}6uF8xc=?g~H9xbrIVyCCNGBbife*dNXpa0i?PEk-%GJ|7u&bd$xG6hJi z8HRCQ6Avdd0R@s~kaS3B4c1&}!j;L2LI_i33u{{6(oa9MJrRWnr(0bMnOGZS zIPQ*G!^06(6s;#J;BzusueB{ntVyQOM<*j{XDARsQfpgKBI`TvO@r?J5)p_bk@Xi% z_da<29aTtJYtdR`u32kOwLVB7Q&3fWT_nlvcB?%l%JM~KVgix1UlYi1R1LM-?~#ss zAS#Gxtr2%t2C?eTYW>0J9aTj|kQ7qt+N{~GL-O7OuYW`!JX!8&Qv~W-L-tSY`{WC2 zjmW^)qPGsnu4A>IBLgzg*6Kb4_+BsFtnP~mEXPck4sF*cj|3cRotO)?SKTqJ8ARY2 zm>Oh#??mvZ{Z;F%>V*gdwazjUl)WzN+TH!H+5m_eBJ3L3>beCYV%Mow_bs#P-fQg} zuxqKP;=X_c_xgLik(p?Kw#G`w63*q^k2|6QTKDjLKFJ6^K7Ukw%&fhTzzS5Q_6}8t z^K}y$~J$FOj^yorcs|MBN|#M;`=<$0Beev(_xk<4->TkHpHHs3 zUauOA)Si>9b(;brR`mjibX2H)9*c~+Ce@BdfC#2WMgaLQbt%bs)p^0)F%eX4uLZ}X z?KQghkklEPnY#uCsFJyBm?VGv@h9znyeE1LR0W^TF@nc;LUVG}&Axvs8pcy6E9;9M zeN<6ykkR?|>lbEDYsPUjd47LDS_?KHqYA4_HK9$E+i0X|HNl>cg6AR?$i?;i=I?*I^U*&z&nFUrXRZ}%U3w8qyX z;NF=l=xVgvfv3||X-7w;G1sD5k&)SUVFBo@_8y=H(yCYGJEov;kY8dI`-IPSa zCEvU0a<1#beX*<~S;K{>60wk1GaFJ(uo=spkU)0BUJY&3dJM4EP*cnru^Xx7lk;?J zbk4^KlC0}u+;13K1+*EzzP>oDVLw0dHS4gB;B=>(RdW(ig~}c4#^|>?t78(G)m%`; zXI_)29f69m=Ea}ifAZVUpWN?vVmAnLO_~V3ALJhX!WXfeKA1+d845{q)nMknsu43oB}tSOHOMU&VqI9PMh;Krx`9ycWyRKUpNzqSfIpB1FyDgx0~=dm{s`^+ah*pWKcc z^Z5XC9^WUod*}1Vzb8F#f?Tr><^*J6vC%zuB9q(gC#?@m0SO{Odrf7rs*(1nB0Rb> zuakLA#_dMm(;Fv~`|u#L82g-lrML^$W;n|>T` zG((&24O>Hpnjskwh3bgbpIJLLQdrZMs#N2;Q7zLtFsd1;rm?q<^|mKa15s2B(?W3O zb<%q$d~v%UTyrvP;Nq-3v48#g=D6P=_JkVFbcaa#82fjD?jfVLh7lwxM(-VIN;d&f z`q4RhXB-FG3kg=M26Ehv{cP)*T=SwyuVw%*lt-n|R#lcqtxsw{_M@&bvJUk^(XtRj z6}k=1>q+Yk_t^F5bx)-R5Kkhjpyw*YW)oP*y@Tfu3-8Wj1b%={>v@{44=J`ZT(bj7yP=j#L zhDwk*St%G&2T5k3ZcULaWPJHm=#}Ii92dPczP^5OJC3TS+VPlpOxESB6|^Rt*8?-d zv{1(t)f8qFq9;;_jaZ>tvCop^h49qgQL^>|LihqLgfeCzrd)o(wHS7Q3auZkd2yW& zh%avUpVbhkZNx!0BC*jDYnTc%YnX;=@@kk~>;hbkwFeQC-i+`>QfRHCR;X*b;_F$B zZxk98;pB@MifTFvEGwjGUkxh*^|cYhLS=NHjkS)7IT5LW7?N1eYBbqvDw7#=pBu^7 z*Mp4Ye!CGKtO%A*t~v2JImW?y58Tx(5lL$U>4t7bDOEND5$|)qo}-{z&v9kaR5uf# zbzPE3Gnxu))O*hPW{Avm4`;>hT-QY(tpN zjMfY8HR1VuqV3=q2R>`kp%sj~)}(b~j2~!MBp^~yI>+clCLf=lcwDr0t7kk0tu;p9 zi+Mx%5ka%Y^Z9_NB68dg%m&@6QkZsntH$P!-~Yk)*LOkGS&iL%eLt_~Cn_8A-xD`g zJV`N175YIv?+hDDUUz6|ii;v?IQRC0AU)=7uDmx;qn0Uf4Bh5%0 z6=C_@&~{Pp;YC68-dVoreZ$jH(_O?Sz;gc`DLOA=!KUPjmVVJM)kJ73YSP1r4d=6I z(KRPu-w)2~WS*1o#H``IFf)!Z@W`S#fNq1NzKe(=R?t&71#O7LrW15GsNl;9ivFCl zP(`!BoEO)8(t9gpFRO9#HPI%BSyA#L8|l$^LsWE)p$JVurPZMvulrOK>kEm<2(EAh zW9+r!>6<#0TE`KLV<0BXc_9L=ADeDywLYr5p_w6BwI+$8?`0oY)^;;kXpg9&YP8mh zvfO*?MP>ihmu-5AjWl`HO-z{AtfpD4`lkK4*P7&7g$`!XVYMgPCYFl!E%}3Nq_b$z zK*+42Yx&9A=t}J7FrpZUVS_#fmrt5m(Ja#5_xLzIs-~LNb5EsNLonEfu(nM%QD=*( zZ3-~(gl1bpv7d3qM6{7})4aQ>7<#KAT-_rjzp>UYZsQZP54s(-HY7>iOu9BQ zSFI5-RQkR@h4w}kMJl13^H~xRzO6VhTc3qIBKt6}wWtW+*LN{onTSOiJsEA(a6ys*VjYQmGbBQyS@*ZKzOS*@K)EF$kPty@ zR%qB}DcmO>AgPef{dO-F2gAfRz*N!((O~(aStq3EU)$iqZbf-MPrkn&G=}i>NxM!O zLbDBPuZ3sQhCx$4==^a8$)a1wN$$s;%b)bti7WBBN@ubrvK-rd@;JucLIGlgZ|cR1 zIuMf98X^tJ*ps@Wy_2gN5>i)ZP1A@MClmTf^!y~mudKN&NHzl2n)sd z_5H=|{!zsQAWJI|1R;)ZDu?4JZZ@fgDTDBd?g=xf2EYKK;aLrg#MbTT!kOqw&UK=Z zm>sNKwWxE^f<1+TEHJAnvbbD@a6}rXUuZ56vGoVHagceirkAEmf*DRT zxcn-Fqbuv0?*kuCT&fWi0W9Cet@R{lZSa-OiiMz@=aX>^KGX{4)}owdE>wkeUbJxo zui{>m*h#Ki@!(n7HqoMU)Dp`MsyxmIwm`UHz4N0V__~NyXxpHP+*w+7eRs-fz2h^)EsPD5WW)DQ2^h9zW z##zN)tqyfTaSv83kcNh^vWf%gs2Lvc{d}TQO?R_aO=>1;iYN^0HSn~e4>G{Rv1T+W z4aLz1GZ$htwT2{XEo=y}2dvf_mnWoSYMjp+&N7mw9c#C0E=)*Q1S<+4i#m%a3izdA ziRl|*PG&4}c5b8YyV{MlPR_@K%tFXhK#jJ9eizb|p#o3ijH(MWYHdz;@L)7!96w0$ zx4ucW8YpRo#2$=tv8zu}<+|!X(?aI$ttJX~wLnynwGl}v+E>I%Z@6_znIO$bkB!zJ zg_y>y&ypL0?0sJ->`SJ$WsJ2}Hf8#n-mM*=4Z;al=`AT8k-H(Eb0i?s{p`)^2j}jh4J<%s~36 zpN!JIg)i!|l_WThu|H#y+W0s=fS2qd3jNvuMd>K57=&0`?_2wNIka0Ny>wx^zt>{c zpzfff;g=KLiB*VcM6FvfrAb3uu|dNG)sh`Jj_8f16zaW-c9Up03y)$ZfK8);d1;Dg zl%6yZm>0BBLq=93yL>UMzpqE6ksCE^)^@!s?XT~;)_W^ShA63lxRBXPf+WI_8*9~B zt-Y}}_Li_Up*4h9ZfY>=yi%zKEjJPz1ZlM~!sD$U6%h`K0!%G*9}${1RxBdw`)l7? zHmT238iy9s)|#OVf{SZiHAww$|Lgz!Zy%%JuXtYEZ^Z-qf{(xbAl(o-86ThAK1M;S z8T6wgmiU}x80S@*7S%csrZ28*GOvr36Kw~+oH05khFIwiVn&JkUP3wwt$d&)kKyA(=FUGbdkvKKT4`W6eSlRh51mWER>Mk0rdQx(ePdnk(qX!JJnu{5i4SnUQFEX=Iw#2Du8M zNGK?q#d=)Gf{2Nl)gtX<9~Bc!=;OAr<0^pRg5adf}N$ln(OVFw{`MZ~X1WB|B8ijtzrn_p;2<{(0 z5DNM6xezJMgIYEIq6-zH*{H!pCaHxUb}KZdiqtkLNYPfyH`)ptaZGYkKXo0v5xVr6 z*iB3S(yb=CwaNrxs!U%zualoYKRIr9qzi&#QhU!z@CC8B=Aw0@%b?jt8zPwVL}?qT z-qYT!%s3xYaZRGOv5iYQTS?}b=h zi!nN>rL#y6j@!K^blr5JD5E#D4dyu!V~f(2(Fz$l4kKL|qbBNc|D@TVAEOTZO%W7Q zlSF{ei_yoXvZ9(660!Cc#!AAvPE?|(J9ukwR7)r?Dn!cGn-@)M7;8B}FwbY916x;C z0^k}9T0dB8>+qz|vM?#Jb0#7+Ko+88g;4v6h!=9RCUcb*<+qQ&(fc5!sNmiXZl53Z zT~jxm{`w5Zp(v8Vcy^Ot)MXir+GZ}~ZCu(dV9|Hm$Rn+4t!|T$r?YaQ8p~?^v8wl)wMJ439g4tLNnKPM*Sucs;9pwHQrVe2}}VB=@80-~MVz(wpD zX=0nTsdKv7i)Av*IvJDH($>9D>bw^Hey@A$xpiqZ_|6q|KX-$Ys`y&lG|&qX&C+?Q zCf9Y~?4tEQv$I)i24*CKPV=G?L;dz*m5 z3rX{s_zH5@o|Q?z-LTAUL}AOR6k0>A)`hR&aXx68&P{)iTkLvy(wZzaJrCano`O^$ZFVev79Ydwqi-e0b@J>hNs zI=4Q^vVf*xb)cGBHChw=x>&xr>_nR4D@xRM6&-m!z8D|((&DtncV-FK(~(}2OvJ+C zz@(!MgsX&b5i~og2g@$vy!J!^a_d!~vUCSc zUsJAF;`{1zO@aK2YqBBuzOmf5Kg-mp9VDNak_j4jqhs5*o ztf@$o5P47DzAnN`mm^KLD6|fW*hah;LSbfPDk-xjZ>5YBS}v{>sg0ytn-zjnjh1+l zK6jG^)1Os5@N!YkEY0HcyR-qZwMCRBD=4%gtl<$vz7W>>-5yaQ?i4}_$uqWq^EG{E zAe-jQ0MU+GiGV{DsA*rc=C@`=5A=QTg;djdofkx4UA8b-m@_!WK{2UO6JG|Y%36z( zxz&MLPSn~5sJ$IL3T2QwH;0EMX{)%3&uw4#>c4Q z{-P2^$)g;N&FXMpesP@_t~X*XK0ZHK>m(vem_3x+utHbwaGnn`8grd=8?}B|3>kQO z85DFM(9*U8ESc*hp1(LgK8TrUJ8FUHMnnQyyYcjeM`B5#v{LuDv`>M)G(SKajqmTT zt;gO?w+dYwYg0$o8lU|jDdU9MZsK;s%_5bNj!jY7s%1hk`8gQwZvBe5M{ zbM1qWO>cX-vQkP|To5lLb+4Bfg2F6gjTs>jKFQ?mfGZ2%3*{;;(%bbI+aha9I^_hD z`aUt8(TZg_Za)|(CxMNFm02`@CLs$#YhNa0thZ~u&YFg-Vnmh%SCs2hGVys<1L{{b zMA9&IQj}PMx$@kN?J-)(QzFm+kA?K3j8FM;N>;NbBBfu_l5XhULmn67^G7w?UiIPS zu)NMcImUtHXQB41YK+hCZGstCyH&061P$80#?qErA%k=zit5hRKpNKDHeHmy`ZXMh zvR%D~Y@MK)(#$w>3&5jHE9s?^jqMPebK)=esJz&ytl@s!qgC2AKGYyES71WP4B8#d ziy|DIxnA^fB2fsZ>8KiAGz@D6;n!adOxYT?O`m7#b}g1M>&%m6m5F6^VmTSc^dO}e zIF))f_c73f33M~Agk#*v2%2_Q&h2hqh%}nn4MdrLd~sN3twp+Grlq+sVLmTz<6ce_ z5$sT6o~-GdkHzs({C@9RNQ5Ro`X_w|e_R*0kB>qO)~bU(`@SGPz6rCLzMQxQfg)QbaVqQp=!1#N8 z^KpD`y~WnsY}>Vt@s|ae#I)djm$GWU8b?8B);3BKEOAr@xfWflkdCILlqMh|3T;~p zC%7`W^~C2Lv=OoRT8_nq&`T?EF20}tp!dP`{Nh_1{kX9>`Stv+4U`=-eIE`bdMzq2 z_u;M-+CUR>R)at<(PCt|lbST<7QfbsAGF)Skv|FROn-6vidhs* z`uc;v|Lxy#UXykVzP`ST4v(Pefp`hMSC(F(O9`;kCghGRpy2e3q89B%XKva~UgB6O zf-}6V*qKh6Y+XU2Iz|^Z*DS8=*Lm?ptaJ6Wa6x? z84^^JwXN`LE&6d(@r`7zSVMM396PHqZ+4Ji_uzXg)@){Z8v8PgqE z;Fr_e7N~1cS?*psOH)L*3ps_HlbMe6O~HhhmgHZkn4IUPwF|lP2(I&@Bre<5pTV4y zcIz05Q%G7c3jvRST*Q>JpsUnAp{9O|Ud{8S)-wzZ=>1MJ<96I|h2C@tmm)~ z$ZCw7h>OhazwZFR-5M2>la=v;si735`J#r%YVK?l?Nha@;ya2) zykKiyQK>)6gJvJBEXN=lWt44Z*q+RdNO+N=cAsF8XGPJCQ9!j~X+$~^6H;kSx8$XWj@LQ3qEuOUQM_vg>1(_Dl!&u*_L5Wp03ZNK zL_t)VtLFogLXJw`dgr{pcz*xR{r(%SuvU~V$#z7?7NggUe9`(Ri-t-^tx)es`Iop1 zrP-^|-&#jm+jSb4v_jE+K^t^C@Qk`{t$v}|*loSgjvH}4_Rwjh)p}1)M0`7e7t$#0 z)n4C`3zfm>%6SR*<0aTXE0)NsaSWtn8gZ4RkSqsgN+IsAsHP%%(7rX#qBMk%pfyEo zl&&&%A?-zph8WfhHESCf@^z6OoD!&x61?v?o%LLJoJGMhX-RN~Z!Jl1>!r5{OV-?u zH-zW&-0IB|PKO6`EyNU>F#4cL@tL>Hja$2MzkQ+-xWjcNw>t%qXCW5nwTKOQv!_(F zm632~$A~I@QwP_Ym?dotuALjybdaoq5m_iVvMJ~F;Big}=aG}!=Wj&?N^Zg4g)sR3 z`r4>dX|!S`Ze_Qw>rXTTOUJV&pckK?0VYvXsLIyMNa+hy=}qx4N={!8x4r6Lo|`I3 zXnjuyWtq?ETnqY#;#|z<#RgOAuvg>p{U<9xWgkE!>5f154_Toe)=LQM;at~~k6Xd$ zFTG23{DIMSR!CXDGo{=rvcUSDQp-u!W#=|!rO_OH6r~pBF!RmBy9D*I9aESy`SJ4y z&+EzkIGESOBlx)A_~Xw%X`>-2_?kSfC%17xlecT_JQt?QIE?Fg5_w^AK!4@PEW)!K zU~6tOL^)z)#~mEUV6M3j-=f&+;F8iAsq87Hrb<;QSJ^&z2`LAeFRo`zKkkAZjq~w% z>jKa7$>?|HRT_=9r~EE3#!=6#ch)uO+GsBq?RLkYf@nbMJIBpvsO(%B5zgzmr@&eq zxwDac=PI#XKe=6f;a;YJm8FSmr86@zQUu?QN!udeYn|`mq7?{IXjv3$CBAcoCiFIH zc%cruau2_~tPATOb#JwtPP*Nx>$3&kMCe1S>nO1~Pxe zF+|ezUr~RU{-Oi}i9$w^-JpBEGnlM(+I}YOcGN*W-ehy>2Yb1Zo9X+2%B&$de37;# z2g#<}Ub$$6Zh-C~yR>aZe>t*|X7v{$TI)ZfWD-y&B4Xz<24pMshp&o~(N>Wp60Mrw zZWVVxp{MD!Ke|=TuEVd@SsG>f&|JF-o~*2aKhrB`F%+b-)G3djE~i z$&$s|c~!0Hb{w}F!e|x0qJmS6W#xkH{I9k45L5R{MfR|yTOaH;`F2Q@exOwo0z0g%Ca~qcg=f4wXx)cjm%l8ZWZ-L-b+We# zcWhPyND(qGdhfJ$=l^zMMF)O!X=8jtsqv@cjq1rbbTomQk_djSVbkTA_rS2@A zUJaZi^So+OHD$(y^`fYH|128ly6F9bg)*ZwQOtM;rnO`TItoX>7fQL2o3$pMFB^1e zgVMALXVhU_PDl(=ZG#9Y7t?got8wkUaop~F-haIO$lw*` zb{m85^NC+UbcA6o7!Iu+JQ?a}PD?Q)gz3~z#i(tJ(w5Dyl>t5lim8;~lXyQal zkQ?RpLZFX(Y44)wiQHk1)d;jQ=O8tG@37=ZCpPsfXzA=$zQcyiZloB?S0PNQn|?cX zl!tEgB>r;v%0@OQ`Ndqb=)K+O7y6c!UAO-#Fkq^Y4cw%KAwzN)auqEm{++Qy2SwXWxrH7nYt?nzNm)_b7| zG%SR)GH1wcG(?pZCu_~p3%w=HjO%N6$0Y2_BUC&7Fi_{8QcU(lEvu6Dujh&JGOfyPl7;^uP#yIqA-|CTpI%22}Hv+q4s_%ps=A@BjFP?DRh#zy9FQ z-~VrdZ_e|J^YP91@Bd`ZFVZTEFV;l8#JUlQM&lTFwB0M9QIs=+$5le`y!;iuO7C@W z^)a@Mx1n1s*X^YhD7$I^GFMHWSwVcdoiQSn+AU(J7fRxD@x9J+jb(MZYhA2sZb5yo z1?PckO>d*P(LHU$?Wl-=wI=8F8_7Z;PLN(XKK))ngROPU1PkHT55(-<-1Ko{ zo)>FgyI2|hesDXEZ8hHl%~zWHa^`h0uX8sCZ2iY8S-B2td2QW&n5^(}Dp3wO$I+c; zezaaq-wxemYoco6jS{bF?V~dmvPEC9U5Z6>=RW9cTc>Tq_KCH9`1EoHNh@*ju*S#7 z587yD0%@b(y6{e9mVJo7lB;uzt&?#pXRk-;#WLphnjAY}Uf#*`RVb^Os)l+NHS`J* z&5fRJXKX)4i8#JjL32W@8IWmPF&?V?Yyns z1PQTsW*;H%)K4!cdv*l~M7dOg5$v0AZp&A*R zdM~|^8c55^BH9fjuZCRj7v&t%3NZOsn zV9rAKYYAXyLL+%oV0QSQ|+zCP2?Sm6tM$=>uT)uVf%WGhQp!fbZ;)n>x(Kn!D#5Lb}V0(JoO{fs7 zkkz)$80~ugVvG_CKEMCT{hrLnVzprX^A{hVO3cOAv_>e zIkcJ;LiYIM7y1LRJL!`v3xUfl0dEsHGq_t#Yr^95cB^o_?Oc4G6>Si&h9L!^p;|c@ z6>3_I3Q?ha@penGC(XZ7iP<5Ls$~x+EAjgJ{zVf54aWG1KA$C0JpbI?`fD=RiX}LH zAiZN_7N^{L2^;AI#gSj@gcaP5PXa58K9g%D-mVJvQ$=D2u2Bmsan$9Fs8nNH6UExE zFzDk2HcQMO7Bpr(qmJS_Qzm?O=%SC7V)jmz{{IqIH$2dqoQ7f2zO<}EX z)~p;R&)~QnJIOh*cCh?`NHTh7^r8>@?Z&)*?Kcyww=urNEPG1YDZU=%LY1syxHaor zVO#e>wi7C&v>f_!zMO%ytb)}PbJ-MbqYpz`C%+!sS+=7|H2FAgZ>?GxdbTTOA4nO3 zXnViTg$x426wFJXC-wf6YKC9Pz1D%MBJT#V^asA*zEOH9jU7UpFOj~yX#!Qny6u`# z!G*nz(ip~iqhF@mZDZv=T-8SvDq~7oX{6XDf_hy??3-IdO1*uiG&-}*62?k}GxpZt zO4d5@_1p)P06Smnwf~7i_%;NYAvFMG33c((Rz?KY3rSa}rfQNElUuJ>VJ$xy#}DQz z6fR^3{o5Xj_8NSlfu>d>YAVmnJunu&7SHc5j{A?T4eXmD%IzAhK-M`=M2bpziP72N znmMZ(C;_h`OX%9U{8{(bT1kHAx$~U%P#2W#KL2`^PN>qf9Lk#deie?q+@-q?h}CPk zVqL5`D_c;6E1aIPwL0;RdT3ifT(8}#EV9Uw2b89&Bp8L{_Bx>TUtUMEW(7;X-&&>H z<-D`amTY>v%n_l!LywaTMWW&YWG(vrV~d*0;9>C+G*@&E5ky`^2X2PM58lxSh$*5lpSCrY-g(CDbTpc_HToiHv@n`1?6gT}^^w-F_``9VVJ z6*hiV)C@&U+wGHne6VI|h0(QHor*Icl>6B`!!L((QiZs&+9?& zWdLbXA*@~cem#^DR_}Yz2DWyP@fO_2&Z{yTd!WlLg5MD_er~|y*bNZxm(9K0t0i=o z_W)_dufJc%WD5OI)~un~B{^t+Ig|CTmo3S#(64`^TO2OswCCP|mfmqg51x))YL~#CHTi%3n=K z#94?#EBeGeSUZv3-!~$+_^b*@ZYtBGy6@3PWmIM0&nKCa-r;$E)$4pRQ0=G;L`G>- zWHRT;zw38kF}C$Ta*>yFAN5L+wI+{ey{4yW!*|SsrToh)qv{5~bQ!ioLw79n8wGg< z#R)-%mfoqs&!7LklBKhf=YRg~?}&D8d1sy%LmR)=6E#N~uvS@~_kmNBz13@A;wmIe zjpKgjimOmNl8Npl=n8bxtsN+YEYV)CIw>bg+tY294R_U)HJUP4y?#WkUJa4Jbv^Mp zX}zQSFj~3DCHPu3{qNrcm5w~GMXV=tIUk=#QF%-0dREa_r?&y01w9|_AQaktz^Qao zPOqfq+_XvVSIG$NFSkn8#Ffd8t;nq>s0kyr1nVycOX+Q^+03m?ls%CabiMPYB8b!- zXR-5WErKX3v|A*Hd-MHAUc;)S|MWM#i(6{nOcZnB%8kP6K#bh2U{GG$wY zx0WUfIEpR6f9JbwN7rA|XkGf67i%t#amRC&+&Gi#d~)N?T1oi%4$d9cwkxOHnx1>@ zAiIfh?jNHp*}z)95213?6wU72-MHxmtwVD8WNd+ViQ`KukUMDerMnU-)J3fkbL*8< z|H=^DKkJdS-09q2>sdl6a6pjQVX3XxdkeFuLyv1CC3Dj`^%|lUJJDVLx|fAcdmScM zp(RA;ydL~I|H19&kBUrLvEAXxTu$#*C-D6aJ*~G*RQi4CrBs!S8fIcS$pQn*o&LXP z09wU{q|f)e)goWd9i)#kUTi((E2+LvvD)vWwf$O=O{MM_4`Z*(%y;nR%WX&I`~8)3 z&3eU>cCM>3>q>uH=Ac}H;G_jj`WsR9sDJg9C7xPA*UfO>PRcE7$k!kXZz;?4iWRW& z8s2?J5R}}+sA1MUwtMYGN0(JUUtyfSRhbd)fc>a`ifMsj%u)1W!sVD& z&UAjRlm@0=#NKW|pldcg`usR2#FBBkCdwlR+~|tlQ&Q73)~bwC{O*Wu=$c?I3K8E& z3e+1ML=YhWJFDQAp$uO~^sZ(fz`U^nE7qDh7w~vtUScW>d{mPay@P(6>%fl$2v2-0717Z zjauSlWg`_p<|oAu>f9GYPR5uyC+F9a2CyrZ+wscJy| zjKk(Dxvf933H&&3ukG(1Q0vK zF-ONJ>x3Y#U`}$kj`NUCOCgv=V#A=`smDO3;c=W8*F}4BYv^$UUBEFbC@sw(2YL}iF(Dci#AaOBW~X3S=@|haH3s+N3 zYn4c@w8(X2)jwjOq9bkt4(fMY%%GgiyLz^YkLMF^hV$`2DZq~(KT#hKol5w!zwx3H^QeGWlH!%_DqDJpH9g9m>$TTfxx$P&`I)h+Bdu>tlxV?v^G$hPTA&QB zG$}l_9dPa|lv%&WoQ%+Ty{y!F2aCUQ?#{o@F4!}t{nvG4%;a<)bk&W~k)4y+(&YU7 zeSOR2qTIa`^>`A{3`5mcgBy{xzM=&_^!%^nfFg>0EfqN$Wf)FJSt+Ncg*QqV^@+-^ zEJBF*bbek!ZFum#$lhrR&}mVOQ%WcqB-}7j$!Y|_($M7Dr5|HtTmq;ln7R`bT&^{# zS)wJKX5u>$`<5Ai%z_1z;)j+pP0R%=fHVz(hTQ{xtIfG$!*rT zAp?ig6-_h@C#lO-mvjQ56cet3)4>@7XFJiy#N97WmLN%n*604)>fRT|Ig^GM42(e% zyRDUDG7>6qgea4>EXiI&rLVs|oIL{rHC39w_A-ygU?n!?*=Rpc<>$iHTNDWi$=N z;Z(W0fGG;>Sx(eeb?ChXmh0!A^V)G2Gv6X$hTO8dFB;1h1&dk&o*~QwaMXg@Qou&$ zFi|&A#1d*aT0^ZBp3Ec6InXnZHgG%^OwKo$E|UewiK4(zO#$^FG2>}Ua|NvjNhzL_ z&X+MdLx;1Y&l~sMF$c%=U#~9+X~chS_O~T=1m+m%of%FsJ5UO$HMH{&wBsADuYX|< zX2P}F5aU8KYC)z2&XXpI*(dH>-MI=D7DJ>Ko4USY4nGP?E$ULsE|`dCXgkvj`;afv z0+x4-3Ls&kj0PzV%}OBFKXG5|Sl~`pR2urLc5x_Z8L@tvNpd=v9zVw)WLL) z{KP~?S7SynqL)INxeO2C!RdQ(H4Dr;to0y>*y#3M`mAC_6#U$dY|9X%t8cerMj(sh z*59>Yvy9{MUF1&b0!0(jI*ua$_0BBPlPRIYG#LsHfj~LcT{sexn{;Tx1Qd)(9g%}X z@Qg&M6l$Nx1Lxx#N@=L)1GO?{tQ5u`!8!5ROe;-yhE}(UAhKi$v*k8zwTS+n{Lh6` z^-?OMije z6Z%70u49K^aYBPu<1(_(mIDvZIfd~ZclXL08;z)(*VbA4~2 zf;*6LX;MR;nGa?K^6$cq&C;vHMhz0NmlgNMX%FMXIANplq~pF{823dzGX?xD3~yRw)IMMqr!AAjLrKmWz4U7h&#dBY#ykc05Y-UnJekr8+toTNG?tTyz1V~)g8`EtQK zYB_LC#tD@Q)U1e~OiK46ZAfyGH71!&OUATZRhi30fvvY%wp04~)^#&IiZ;DMy;@>kN|B#4|$10PL4lOm?}-Zp5r~K{@tHb52hCxT2fN zisMpn^qV}FMfnk4#d8Uz1x0m3Nlp~+$#CaLVn}LLD0vLjc1pWK{u3198cFsRfvW_H zW>TDM$^#qVr59j0`|4;TIUz1(>82Q0RBPKAV-ZW$?8?iOn^P+lsL&`d>I*fMT!n1H zw`Tz=(rR_g!KQ;k`~#2UK^^71N!SN9E8Y$@4nz0_IqqVTif${yXL3U1D|v~cFCk-U)BLekm%8T&#LL@gd+a z9LU?Y=--eEJMa8&x#$U8d-<9~>%5p4;xm!=2&H7WI}!|%o|DeCl&*?%1Fjg$ngb@| z#i&_YCL9M!foX!i^jVxda|Lg1=;=F0a52W_oaj*Tcz(xO|3rd>@>c8H;X7mNjQO)l zwqZKQl{U@cNtcvo(v=!1qZr-R?Kn2xp|t|{1O0xYSkp8U-*1kvWt z#*_p@&%uEKlZl0EavbMD_7=_8(sh#cbsh)JTFOO?Nc^%7g8!$(qsCAIu3Uid^cz%E4-O+Exz>EZ37klr4M|K{2gQm1B!NA*EN$;I=Vj3v?t%lML z9OsGi`GI;I{2A3r+6rkluG7{u^1fd{OjKLBcfW%TcwzSYM!zon{QGYTyL*>*iYt|S zTsUfxMVbof+8PX@Oia0;a^UV?xbMytkut!>oGQRl6N)J(3=4)aZ%t+<`h2O-3=9#_ z@B2l>g5aTKC@BF{OdiWA(f{0N0Egpj2Uh}>0IG<&wQUAq=Dm~bo9xVtp5f#+#c#?< zu1qmrHfw%jg%>O@m4;TNMG?tyMRBavS1N#e3h7d6+u_DgKAmgj;wFTMCCVXJ+L}p8 z{62T_wld|Q2qx?XZ`r^3E&=U)=m&g<)q0u)y&;z(#o7e64(f0S&*sGxbLVCbAuUEs z^xhGJg()!sEI=XP<(z{Td(l)_c6k0yEZWQ#Io)ZJS>1vegXyIKS%h#7bSJiQRFikx zg}tDz66cybtXAPgmPSYZvZ634tyflNWdXx=t(+=;$o3lZ<_cJ2otR7G$YRmkd%81? z1-64=;N?cMGJof;Gh0=;l;&&7=y;wV`1bq@mUV9&-1$4LwO2hJ%Bxfalu$rR9?+~v zi^pQ{>MuU)!7SY3RnM}f7%_178-3iIHnH@lnLr=j7`Gg0zTu~dxxu-qb#Dq+VA4W` z-iHZpjD&?22%NgHN25femWrc2$pXxQ^vTbB#%@gJ9MV4z5!G`Cqo+0Fi9VvHgCZ+}Mua_M4FPg2~6#3IM zwcvXEVs%ZZta9AbF<7(@4N?x?e+ZD%CW5;U;MUD>;#An;No&CzGGMt|ny(dELv zh$C0@eKMz*6SSj}{0^_Eb6#*u{I9?N#t{eFQSdw(ydGqFfFjX$HjH^{6c@1aO%~<> z13_)j`XM?aOL%4!>Ynb7B^QD%w$b93Bs&!4FU`g= zE(0wah2mO&nzS^tGAPmmz%eD*TP~vzL`{Lc)nR?20OXo^|x`1qj3 zIh;{R#c0VEQ!1t*?}46)<7@(mPC;D@zP?^8RGZ=Pcp#!7<|pQ?2n#yr{9q`pGw^gB zoNJ0WuAcPjeS4}UG>sLk~pr1pTb#rzAr?TZ_e_u|uSY|%1u-b7TULA8> z#M)jHfBy9ke0@&X!T-NuT#Gr#Zy9+}upfz98pd_OjQT|X?EtP-4}EYdiNfwP=F%ZL zhOuL9ia7~0jDBJC7iu~A_h?-eO0;+9`Z=(&{8-r+cOLAEn>AfC)DYHy7?>fsPDrB#9JC+ich-v zIbp(1!ADn+En+*ZQt1*2^5NKNr?Ladu2Os|^He2hX4(Qa<{%>2JSbmrB+rSrS%X=3 zK;6@NBrWs-eh$^C7b)jSWI?(_$Ah1{T&}=^Ov=HRUq~E#q8P>|hlN~2b$+%qV{jT5 zqw_q}M3Nk(ids%NO=;NhoJgxXmdW?JWibU=0AvRBcuP?!P%fN7?3f03%1Bl?IbsM% z!6KlTBc;D|5xq^|$l3W_1`=IjX7U2nL?Te^fWy(FV~&n~^Sx-i#kD!$`LiznQe5T; zpwEd~DS-*WYaO-?1twrHR&s zsYbY<-@h2`CCSE0MiGTX`Y_vp=5U8~#~2qf2G7^z$}y%Ud?OH;Vr((g+g5i~B4RB)wN{k!DD#o4o*S~(?^XE_QB_9ve;{k`^>-ECdePQOr zaU9yG7u4b?t>KQug(a9|SH>Egg;$^=#Lg(SQWw;}D2N*&nlJ}_HH&yee1WSsUIaN8 z_K@WI`T!=owbl;Q+6b_;n~3~U)SbI_xv`yFnSq(Nno4G;xp7+Jg$8cwO?VX401l@m zHDw%y4o?<*g0QOUo)P?__CzC?E%>@{#f@f$uj`B5L#J?$0{NvwN*o%yV{%PZTSfD- zA*m@xP5!3SKnBLRFf!l=^-v771(2PhV+povrFJFefP><6sEF180C(K%;)C{i#yu2R zt2mEB?SUDP1CPf8U!OmeYfxx`4N}Du0BYjn|F8XLL`p zgMC}5Q&#oGaYA70KGypSbv@KpEP=f56{>qd?;Vf!B$I1?alKO-Iam=m8`($jidq}a z^NCVc_h%~j+Xn2K(*XmqoEUwf)ww&0KM_`U#@v`M0E2i8TdDL|Y=5$n^d&nW*q*ws zrK3nrXx%G{oh+^fBWsqXFoTy??-%;KIbFkh#r}RL=AM?AIC4-(^OUwPz%+$ab3s=r zHIaREF?RT`8FR}4(g>wwaIedW33cW?I5`n}Pta;? zipAL!&0GvBnFspO-_^jS3)E`e~qbto#nVk)4>-k;$*L;L+D z8$Jt~g+7@{4euNwz^j0|-ca;TP>62Z08j+Alx0`^HZVL~&le9EPA8_cxWye-8i0x8 zpa{N}<<3+1d74;j1hp=GqiYK1#WBXjHJFKMkxYvid|rNieeFs1>;lbd>yb$GIdOF{ zmjoBhzFaP`%1@lG{DGj4dL@$d$>B5t8~Tx{0|NN(EUhou|3O$5b>P zr?U>`9oJG&(s7igm?KTU`^4*YYqF+yQ;y{&4azald#7wc`lt*JJ9ZA9imbrOA~gN8 z@9hLJh|4%pxba$Wb2SVWG|+ivG1i*zmARJ+#DLd|b~20d=hr8ZMy;Ygzx@ToFZglb zr~Qq{iNAk*q7(u+AMFDpxvL$$!)@ZxJ}_;nxj5+lQLMzcxYz#k&p%Ka!C)CS z(f}oY7cO&AwW?UuZrVqEUkolV=D><_k#~Qg z_=Dd^J@D=08~(@VzjH#+bvTIBEgplW98=x0?A1#YuHvM4Lypd#b``prc$^;^4>^wW zp$W;kGr(>D&$BA^UMnm`eWU_G*Wpe~L)8_eLP6bY+WRPDWdywfS1fmC(^#j;QdO&2#eDN{0p0;`$|VS!22 z_LX<&@|)vN*@2gjZQ3wlE18x}gksX66T6>>G3j4M-Qc!wOw^cgaQ zUJhDCWRRg4u8hGz$+9ob=8ef3a$lx)r71*^ZAKh*RIWseIVZV!raw#BmupREfQa90 zxL|Kg3A_>vTBX<3DsJhlYT@@$oG1e0=$cbW#kjciRw2DO{@Jk+Q!?wE@401+tF7twVekI*`8MW;<|2{N!vSf-yHmWaVA zH$u~FvF{+N`kXhD1Pa-HFT2s^0dIn2%VBz5FL-T=qY2b{2>Sr!csGQYb};h(mNAL&swBlpEEA4C=C!(#*0)V8)(K=bFBqg$u}grgvVZKj(M+$ zs6;Jw;Lm@4$LDq7&p-b}=8J_69NrG*8Qs3=rsF1b>-hF3EDN#@)Z~SIjW24s>;oAc zeeeU%BbX0$Q4D?HQ0|}zvGE3hxjIl&U@(xl`$VaH@TwW*PDjxwp8&}@2F5kGrkTl~ zdp1m)DBkcZe&NW%(KLWtERE3XRzp_zOcZap=Z!;}5nFnK0$|FuV7_X zJQ9;KSB;r}(CQ&!(z&sin7NKHjV}%8*C(~UNTkG`d2s^Ji{l}(dY=+6g0}4y_zI8WW{F z5aSE*kl2qz@R)(#FI2BM&J(Y%U+58vP~vxVNavFfkTL_WuOINnfM|A!($Zv+xKv@G z*)a!TF_7PAzaRIlxRHaCLunukj_S-|L?)sDMO|_!6%z#H<;EYlG-b9SG45-v#ZK&T zJohT8IwPBsNKjeqByco&Uvjg6^ZWS&10C{p@lQCH>wIObP870VS7@D8_Dy@ zVhBu1yE}6_LwXxVHuX7(G>HIgYW*lg0t{m+U>ba0y_w!sW~4>j$VpyXN7v_|;9Py) zUK)l()N4IDCyDlDJDn&^ptpiyyXkd@=H}=MndW(C)wcEojm2Uu^=&^DWHaOp4mEMh zNtQb`;9Wp0fG#gqIc|gNE2~peIXRB=ZA_?EaI{kwSE2PjhGv@@Vb{8~Z_xRMC~`IP z5?qZXSM%!K?KitUrkr2C(HX1A+_?+6Typar)UJYUal)7-Nu5_oLyk$^>KN#AP|5(q z^ZCT%Ja7l6jMWWxG>kE}Ycx`(fL7$<)^sWs3W1INv@R8&^o3aI>_q063fz%&znLZ6 z-VR6Wfr$?I1MUqallr*xiP<}y^b$iw4B>r>@+RqmD+l9$Jb_s`WoFoPg;f^QWA@!_ z@r)Axi@Rk>6#`*`);d)DvY?Iu0+mJPhdEv4WuT86)fydp^M=L2@4%f<(oxW*_bMiL zy@1rV9F_t>&qX%YTeY$wfr-b%(EGL5s+{23p4geK%txjktO*o)AeE$daNN2<74sRz)4Yc}Th-oluuQrGK z$yY~^wGDsEcQzB8SB;m+&M^5<*3xkG@fP7Kkanfj!yUC2?(B;b=B7h6b4`#cta8s? ztzekb!W%>R_KAD@e#J~v2UEQ~{ ziP?xQ7oC8QAZvwy!-<$Y?3Z18>tGD1>fB*;;qckOX?@fuGunz7Cr9hMFowe} zW?F@ZBFpn8{oKLiRptJ+kO*$C`YgesC7dNP1sD5r9%jnb=!RHo^BN%wT zrmL{uvIC`o$u)6|H^0Vapp+A}@*T5sE};V1HMtHU+5dG*`qBfgYU^s ze9nmyu~%^sg3SU5bWZ5g*g1RK~I-lgT99MHPgKO^9$9%CxzM zaxBd;W~Y!G?X7X!D|j*57CHu#t%=0uzBBMN-52S7O`sTKO+k8yAD&)ic3lBLnzi{N zba!N*a63^vHgtDI@sv`vZDBcd91ma);e&vbp+ehtf}2(Rnr}X)nprdBX$vatm zMZoIHczhT1j^87uxRaYJ^gD*KTeYE4AzI3TkdATm&TwWd1Cu^K={li+a~BWBg#3Ww zm@w5m%mHXHk-1oXzV%-^8rWGNZ#QkF@kcT37)&A75tj~M+7`>KKT|n+XH>9 zWCpJNKiVIh%z8n!DjnFA;Z8`M(l%yd49XWEQ@~=u*`mQI!frLKLuYzs%7IO{b7(z2 zV*mqWs@YRg3LuMP^nuoFgN%7h@jJaV1x zCp-h?Xmm%JW8N1g67@WhaGcAnRwxWKWo2b>#Q*sCK>SKvH($I*dtfLu*DY0)I;x1V z?!ZI^tZ(?^K$1=_bAT(G%NyMwrxo<#N+qZJY|eo?K^~Kz82$wt>}F;Xu$J?M5$t4E zuQBcmBPPmm;8D4TSlLdY9eYK^jhlKWUO78!E7CAJUxb*GznAE>7S!F$Ibgv*Hx@EL zc!$ydry^+xtb3eKw07d-;~PHC5B&T8SMc$8V%mZGb>Z9hzi_?2_yA_0mIKuae)Svo z>}c+&X1K?|eO-7Q2b37F4}-KM0|kN5iqv9aP8OB*d{7hTJVd8V4@GNVg7hj91FasY zR?+7LZ;sL{G6MIY-FJlHQ47-P=KKErAMgM^uTK_ut>K)chErtAPGQ_!UDfA_NMPI- zpPS>MiD=^bytYtrjtRr$WIzM4n1h{LO6!qZ8o||E$YJUQp5#4+8+>;B`R%)=AreL^ z__Ux(v`!t$9T!R@{7|C%GKUMudDezLJE}sSW5Ga!e>V0SOr&CI;HNI`oLwBCg4&EL zdE-e<{J#T!OkTn|;pQAlVfw+pC^I>chk>EznD?EE+8Ga9^d)!ItI3>PEGwtg%ny0zW3 zIl`ocTg9Y_k2M1$yIf;+7s+cazOufW7rD}=(lq378#f(jf=Fis`W*OreWA%f)bEbR z<4IT5ifz)$C@rY>Rg=wP%XfHuii>1BDZybDbdtI)FdPWC*NQp~)&kZ;RPePCaKsqs z_ZMrF;B(X`*ImU5(h|?sP)ftMkM9`wC6RKVI-AlSDVVD19a&npWeQQG%&nKk=hLpKdk zKv+4+)0kJuJz;%Mbs%HB5*|t+$af6>o*b|^A{<`nnzt(Fe4l8~#$knWDa{KDU!9es z4?Lb9+`80;lD7F-OB)!boKey9*Ih`JO?mU%@OH$GQ1i13`rHi*HCew2-jf@(Wc&ak zO!=b|uZx_<3Tm>cTNT{6cih%d>l3d_4(oowj)JeRTT?MM-u2tJCqC~RwKjMy81se5 zU+{J!`bEu)G4%B)g_l)r@II*@oSe{@lWJUWP*}G1ynVo`h_~8bW(E(IU7~^Mi3QN5K^xHY?C| zb9uqtJI0(SN9BmT4}@#<4t78}sjITG_#1RZlu9R_i=|=)j?-gGw{3W*uWFK4svu@c zlP?8^iO0tu`1|L-(2fIlbUf{`#duK+fBp4Ou9i?mJ~#9^(CPzbAd%i1=8KLo3}ArP z|HH}Q8WD)%I4a;-mC+Zw;6esYui2phOwW9Qu^ z7<@gxIwA<^d-X4j>yzt@tjN4Iu_R4Ay{UUGj4CLJ(*6)bW+L5j_rdI~aZ{%tP-i5A zt;sIKZ-@%@-^XYm?|* z@V}BSLiU^J&cm0*BqtHrMhDixw7@&$Zpq)Q>?s6D48@Ib>NVy>j++ieokG+OG5&~X z5`M?c9Dcak{Gkjxm5DLYLC%*q0sPW-2U*OK^$-J$$dvZ@#^=0n;C!499zv+NW@tTP zzmdpwu}ZgT`Ye{M-mtVRj_5=H)LNLVpyx3Zb{xqD@@y5Ka}b!>2#qv1Mh8X57}p!l z$(g12Vc79YrspY(W}Tvl z=0>_O1h|$$*S#lfz9+3Qr`90Sl-S~TiJSF1uoQ-AyeLD^Qd{w5gHya1EUJpd78}PT zY&J^45lt*XHl?*p0VfyCk$%fQ21>sO^Hn5hE-HnGbZXQr!6+H&Pf<@A45#0E)656J)u=IbT-%XK|g7*(d4sTwDwxMBj1gi zxe9pD=rqOP3J+lFoi$E$N0)hGbXesI&J@T_qC()PCrwVNl#eRo%QX}=rG@`whMtLO zR+3H77z5>~5~foNHZAsAGvTBISlOIB66DJpsO)4}jX5-RdQS!231Dr7nzX4&W-SF_ zboe4BiW}li_@k=U3Ai<35x$TUoQ}7mi7OiN$q``|5fi}4N}(`rbds{?2u|``!MCdHi#et#kaTfogs@n8nuXwJ zh^VlL_25CgSTyEau<7;Sh*-k$6h2@MK>?47tKa-$F&POXkt@49!^nYB#KKCsS}Om$ zWl@kZaIYkI5phE?4U5yVTwq*}yzshS?8HRT#?=1WNm{o6li3CAWEWPnpC%##!9TOl zj>8XpT{rP6m`Z790kL#?FbNx_A>k^Mqh1zBZ$YQ5PRIa`+T;XbH`_|xS$&c3@x0DB zu0+>P!xBSd`i!9vW|v+8Vj%I)?c>^io<*YhvGrGJ{0>(hp0Cx5EjZ)?dGb3NqcfEF zwXx*)k9tsKbMP69Df<1` z=@}tt?Q($bsVi2YE8{{^o66@Cn}m)1jMtr|xg3iGBSQ?N^>bm1oV5dEQ!K7tglO`m z;5-i0(&(0L#5wfQNk5+{F*^$|rX0v10z;b@)ao*1@q0~Wfku+dZ)scF zQWm%u@2IVrvC$YNU36KWKMJ!%1-~saNHO+nh|R}mymvZ)i&nv=37KQ1jIj8cW1t-e zyi#{*07|Xz`!?U)E+x-v0?&IX#$x&{r*ZBf#~5AAtM#rg$L18qg@yc>i7`VFQ3dcS ze~h7kZu6MQW^@Mn{fpmWDj?ktp^o_Om0HlsQ%>L_%Kb#Odg9R>*XVTWcthMj_u9=d z@#;6lYZ9J8fw%#YQpY7rYC!~@P8FnX!`2Hg{X{xyYkDaK=NyETrJG=OrecJhvzKGL zf6S=am<9k1CJXoUK*bsj2VF>td#JVHz6R0_$M>=)QD%f=V98E9e-4E~{uYoM z$r!vjhRR}Ax^pCsv$A_m;`2kXJlNS=%yi1piG_uUiz37TlnYi;LRsn^MkgkNS!Hw$ zMg&7UXQ0Oy&f`EIz~j;OzIn_1Iez3_Z|C~~48aOr0z3HW?I zw6+^S6cLOknpKPuD2B7!uPZ zve634x}rX6IYD(fC74W*z$;ewH1N8BYW0oCm^#W=7GW?h$lS?z5<#6<0c;>=j6@ni zn={6qI=WVyIq8U_V@J+GqnTk*uDyu)rAw@o_M4uETp?iSKx2|4|U460i~rB9FITX<3;zG#TI6}6@{qtXM?QNF0J3To2^S?myCpZ`ieO6 z5b%%OF65K|9(&3R5aQYzpU>4av6sAQ8@IV9mw;10Bi_{G`3;W;@cQ~f(F$(r(n6Z1 zq{{YN4UX9^_R^+colp!?a=M_^Ag%Od-MLlf0xph_#V&YKf>{GVqxRZ3Maglf%HHI8xfN`Hd12wBy^Hf6OKkrNdg%GD@7Ap0PTUeZz4UU?Hdb5 zyCyWn(JFUfdf+@|pg4f=wAFW}gA@z5du_i&6u`Uy}HOiOfjnWQH z?JAQebZ;#KK#YO;F!;E27Uh;CcsU4NJC6gcR-BEa!qytB8h(7fNFI(GF*~dlSk-ti zcwiS)C3>ecAPkyqhdRDN9ZXEVcp-<^bzPYAVm0d8Sxf)HYI9ONJ^6|b5w+WKQ1g+7 z(@&i3fp(mnu&I-j(b&_6HvAkU@Yn zX6hjsUr79nY zjTV-89tS=?zDYwcY16GmMC_CmI`#x$xvG2#)a{+6QzVw$i+x>SW{z=pL}z}NX^q$W zjh+)<*NwXmtyy^>-F;xh+#IU)v(G^yJFSXhpXGZBw<FoJ*zwQ&L+7_GKnmH5+@+Ju_!B*o&brmSA6Cb$MK=5?Hi;U z8FGXc;si$Ud@-6{pzeRIjB;tw44WjK8#E~#g5s(8ofUDQ%AU{!R#HR5(GCjQcT5uW z9=PHUIUPt%!D?w*<10!9`36%8OlbalxIHHgp`6tv+;<7CR|L*n6Oc%;qM*sZ)T$F( zKLUxr`*lfJ4OAI}+}G#9pQ&g?UCY6&OYxwvbaaWm%8R7Cm-pGwq(b~9iM-c2L{?S> ztTN+KnSExdEJseMOSRpcxb!lvwbMcN8=O(ud4%5DFb##b&+ zWbVAcHSJp2n{I&~63K^F!ee0EJiA~0#j_Y=yXnYITA)~J%+{KG&aSv9HUWKfyzVdD z{o=a~T`?M|X4;mBa9YfNC#-sHTVz7+1`xH8=t`Z{_O-UiXdH^}==ExbA`1*9+I{g&1=U zw^3_B*D4jxq?b~ut1gB4m8CYC*&=aYH||bYYsT18jo2g|odxc&TnP?(N2PPLgc?qo zvXBKM1P5PAmo#dy+o=hxat3$G0q=CH1!KIZEmaD^uh&lw(#$yZ$|;7R^t~JVFyHWO z;ZUm03q2Z8oT4;yoR3p~amB|6c}PQ0FE7j;B6H_`Y+YUS|YXim6 zLwieSg}NL%nTaW2r-fclaXsc_cTYZ6hnIt-`7}&v4PceplTzTGxULr-=abo4nJ9{E zvCJJ7y3k0AVROaA=pBdRTNa_ib6qBjVd5KJIp*Z9m}QP86ud~n965k`I8B$iEYt%z z3#{B+56l6ZiBSxX=YjL_vF+TnRRh=8g>f>)+@*YWKtZ&?*XxDvt>TW3Dq&v4h0%YZ zm2V_ZFUm>kd#b)yd6AtRjxyNh92f){kdWRE90zp|#SLB>?%wzGE0k-;j;bK~L_wpL zD-HMcLMaWI7g~EF`@q-r3&ozOinN(AP_uDV%g{{Bj4C{ zMiCwN1w4+Ygv24%mpDDaiG*jBkTu@{-gC+VOoy6ldQ;5ggmh%y$eAd|sRLdF>`03F z-L~muYrK+$PIWTn*ceRYS@*=!;Y1nevU7rfBt{jkMANFWqHB!PY$UlZZ{494 zI)`(u00ypm;91LNBgJx1Es}XI3$$&rGvhM&cT=Ft3GXT}hVt=ZPN1?#+B!2KHr8aq zX~v@mBphN6z0oO9PTjB9YGT@(Irgh+B%TQ%(ji|SkD`N z)BerG?3`A5Q2|@1yWtdQB8RdwZE1^?S-9SV_xNbX=!`K5Pc-Fa#w5Ed1~396zGw(Y zY&OwKwP=;#POP(D2A}|&EYr3FnmqX$I~h2Y$UvW6@iKM)%pt4^1F8je6(HAltk-)j zx_84nhK7TKu=iQp^&Hsg%&HwzG6kA!4*$To2*N#%ZwLpx7StdUX^yUkpzz#2{NQXv`ZKoQ%``%Hq>(0O@G8qW24DJvK<# zYlWA_wQ(dEg<3Rm&L!YugYLfvC`q8d?`OPoIsZ3ViS0-rv&Id;iel4w24w)ptcXc8 z)KtKBOs$lS`I%n1g+r<6eN8(FEUvS2Z+l%gfA&d@PMkpVhV!H0ekHs!%H@s;7Zn@D zsNGT+^P1T*_*92Xsfd2V=R`KS)j5JI2O|%s+M(>Ow!I!1psTPsB09$Gn0=r&T`Dthj|;6FD7B)`fOm)0 zf`|(R1xNiRxSOo<37|UeyQ6}g@aS~w&}}t#PGDe2REe$m+fx;FMY%2EDQ6QWZ?sOY zHP(Wn7FZ#lX3P~bZFrmqY$lzj{S&QJobA9p#=?dIHg~8hFQN%MjxAg#L^3#*PQZNZ zmGg2TEq&h%Mm5xOVmd{mK1my10_0L0W7u|4wZfGtO4&JRqo+)abikQ631)Mn2v$7D zE=ZHvTd8-$^v@HC;d)kRk1nBLVkE`XF*qHY24#)!Q**Dh)B!EXBdzPwPncF33bc&~ zWGl3p#{@?1PSw&d5R^j*ep-s*b#o%T0(mh4_xwT;kw2B)r<5$&+$kbnE0>}I2@2#T z{@~WPr4wo9p5`#l!8r~6J+M0I=5m=yQY$(_Q*V^UcdjTNC|vO-#gIKD84$l}Ztzz7r;98OJSCJ5_o^qpTT>w&Bjk2$7Kd$~C$BEakpJ=UO%s0>& zG4W`O%8F^IwK8%l4M%MVXA@<@+f$TY-nuwjd7rtT(G@y%&neE}(y1DYR3$S+9|ZRH zn@J#E;bT%JFohLDAcr(+;9#Nmf%9No(5v6v0v%5_^fmztwfPfcCcZxZMxb#L_4&ee zU-cLDpMU*?|nd11L#KK?~G!@_p2VGEL8~ zQI@fA6E-KZl9$ybiC_amqaBosS;}Hy#hwxp=34eMpIGbWw)K^iYj7G^j}Le@!iFPp z90$+;0!nJc)Iuokr!Xs+e8quU&lCNY^S}%G9B>qr7Kp>R0+CDWx^EODVgx?^{EKlk zg8YG~>!KCgXjoF+*%!F|lpCjPP4D?~Ru^do|qgC{)!%M~U z;{#@f<9tB;Rh*9pa#D0y0oq25-BWnMm=ovGs4J2Ecjk?u6=$i!{$s$)@7u5&u8hdE zB*i@@dPq=P#VU$G4%(|TDCnLOuz8`h16SObvy-we@pQt_?@KX74;H1Gs?0gr*&HWB zR4s9o1HJ2aJei5*RoonjjWdA(L+>y6o`&0=@?{1?wDlb<^8Q{k3I>TCm~5M!Vy^r? z;>{Hy6k5$OBg=#NndXHSYRFCFr;0lvf0Y|nMLFlxrfr*cDS8*(Igtf)h?HGmZPIor zINFn4tGk$83nfAlJv?_oHpK%YsFO^kkn@vOP3(dI;Cii`diPciXK}u-h3k*4-^h0_ zxz?!&d-IC|sG8i5;Ciu@0&fpl(s{sA?3>hN?umFHYyc>7DKCAbCIBP0*xJpt_O8gX zMCoET%?Ym!(^;UmT!;xn_*7mQ^?$C+wj~U9$JXym6)$5>YQ8ezPT@AZAkg;;6+um& z7vI^AwHEZ7QBb9p%_`$1K%E#88+qe}1xisu#26E4G~eV(LeL5~oefFvm-1sJ)b^F} zX8WshFVqX#ic^vfsnB^@{CuxL6J(;L0F#;kQ$7I|{?g64hI*P1FA0W;!Nl)F$qE5X zr`*Au5o)E@jZ9fiNa~(^14kEqGC_08nr8vb=vx|Eb3>~Q&+|c(jqVg^1=~#M0);{o zgOVEwVu~qpAwR|lx#ug!eN&sXV}!IGUKI6AX7y^aQ?;WVoo;6cO)@6+a9Kj1H+a4c zzM12`b#^*l*9+es2NHo_pPx8d!99S_UtI6y|nStj~(Z|hUPG=+J(z{NbN1@66 zgv@UG4!M_9x6nHPZTu)F~#Kb z$CetHIdzB;fsuj7d2;-CJW;CAu?ND&dhO`_3u6RYFh98>l~PA49RM(;YddbS3YUcE$ymTxN`4 zVV;vy%xn_jg6@c8#a!eH6b{UEtsj7U(5=@RHA=Mt^B(9kQ5y@DA3y%aKMZun)rxw2 zB3|PS^%MB;=dYiLeBx0axUbGImNL=rfxBPG;&?WoRIWpcALyPt2?a{GPYDO-XcE~0_QEK3r2dtPfwI&|l90dWC z12eu9vvKG%8)#{W!OMCKj%S(w7MnLT#*mhX&)RA#-a4~42Wx4CU~hv0*A)d`6bqs- z^LI6Ba*Z~LD?#i?LhC^4xIYpfVBhD25NiI%wda(6FYR;)+H^`v*~wOx{Yci zWxJwOQbx;SWQqA=&}cQ=FmwZV4w4D}rZE#%@Jo^#Kfu0#yI2iUj`%t54#1j;OgCPfTM6ibogF|$irVd&yUZMKs_*=KMP)hbt{uh%bl z3a=v#M89rauNRJk+{WYhz<>Ym|2O`x|MS1W>v!Du3;+H9 z`5*YlfBYx<&(EF4amN?_{No=R&OH&-t_frunre>d=-0*jH60z4F_pd6&MhI>ljC{P|!<79gyV(qjq?&C?&@) zbDph8u9_4*#?o_!ZbbxL8g!Nr3LiCPzK)7==iMU<(zlA`w<b5BU1)_egnx<;1FQ z+*jvxq>|8HH(&s*4Ln~8T4m0mj~;G6r7d17$EN_Yv32E|0Rvj=@n=dvihP9dg)3^% zT;MIVJ4vI($aSdqiBtrdO9X~BLZs9ZVLGNT55xCNgNUP~g4yXXJcOz$g1u3Tb6pdB zG5|~;9C=Gg6i8QmdihARJh)Ps?rd3&8Jre9Wxu>R9Lw8B9D5`kW$Zinbfx*hZ#`7Wx+rz%5ryGZa#ZsjqgT{M<&lqmu9!Sz#}a%xZj9!chmaWn z(xde?f$1G}2((pBrw6Am>Jpd$fp`y93(hH=loL!(Fl6XcV6iJYrZFOs$s?3fL;_Sh zdC-vrjX&e){Jo68OQhb;oSUGX8N=z(e2gN9`!Qiq^v)v8F|(85vDWKY^70EU4fCYO zA;x?JtnNg3Jy`tS4EZ#83W0T`k)C&qP)J(8d)g~ju|l+1WCqJcnQ6VEpN%3^MVzwQ9#&bDB|7%&W)ym;C%Yd!4)>CxIg;!`>^Y!=}U#I77wVJI28unuq&cP=~-;g~>u#-I&NK=gswKgn931 z`y*Nge6h^KYvp7V9WVGcdhA>I7luWyU`n9-*~IWMBIHOmkhX#9JKz(`tw3f*n>!X+ zcvu@-JbeL;6E9gB8SWczp+eOLE$|iS14#wQh4R~UG@3>n(&Eb;IzkohZCPX+@e(6h zdyaaxUBr)7lfb>7FKO1`Ip*}~KvtxZQTh$r{uz#EJoXJGFPLLsdvv6y4tPax4a>4% zyT1a{QMU~xE6gq!t)g|RLVPr+@B=dejLC<@=sRCRG3606`k~;kROp=RQ9bs-oQE=8 zJ;sPu5v9$2Jm4dpE;0uXs)t>VFM$k4532A1Kpapj1lx5->kTQyqG*k-#K{-ox?E7* z;ND>Q${TcqAjjzFPQYAmo$I!gPF~H3`a3Jkzu@htQfm~Bt{Ia>zVG~O&@qTA(YW#m zjSnaeIWeoxgvTDROaAX?RdIW(bq_m`xn;(s}H|`Jv;(mfeB@U^qEysT+ zrdK!`G{@TMfX2GxULVoMiI;>Z`rJs~HzHK#3`K}7SXLkvHlD^9$R)?xCvhqi5Mf8c zlm?9wi-$@_C4RQQaLvu>0pg7c_<@qjTL6T^8{u#dyl@DW)ejh~C* zL_o%%*vz=P1|5I^vmD25OfCGFqvP>-Ag482OoSvlVl^c8i$<=UvRhGJwk%d5nEj0^ zeKZx#f);PlFbtza6lk&}OyxmR44BqWwvib{@giI+iW*8W^u`~BTBg><9VQ7m$F$!& zo4LnoE>^-PDp2Dj9`TJCjH}}_rz#Q82*nQk#B!V%8XxDXasHBPWw99NUYIMPIQUM2~cW4tqu%Rhz#VE zF^1y4?P&Xs*1n)O;!|4Zgj-U=#M`!` zq)hH%sNLw&V@|K`8y>F@T1JE`#y|i0NBsQ{zs853KjGhg{0Vh*q($+YUw@Ck{q5f& zm4f^09n&Y)>lJ`wT~<6lze5XiN~;Z*>lLk5eERIx4#_H9ES9q*p56qXM% z#V)sk`^z2I^@44GpvOC2W@WZ`RGuzWkwlS{_bVTctQlS=Edxrkg~Kt`qqR-fFz-Ab zF$5Mpa-3xgZ2JQxFGxwyQ%2h!@I=2{wt|utWXs$~2T2!_;jTxSBlHjq zn>I|e8u=6pe$V&?#4+}#W6ra|1#<|DWAQ?A^FGh2d8qu4^WRdz7vEvRFnz@crN`L=`eQ!)=pefz>G8*l9T8}o@JW(I#c*5Vx4aXYp&_6)lUIYq<&vClt zj;0(lPn;T9ehY#h*(kx}M3_`9Ot%nf>#1LmQ+_*7O8oRw3d+1(G$JRM2bytGl;LL$ zpVI@%m6x?(wjG!2jg#HM?_Rb9sA18|DNFTZo^C$Bbuxp;q7pe9k)-FdH#Nmwr>jXV_I0g5i!OF1|`?M55Ozb z4BP#M(*vJGhYUmQmC~yS!TRV(y2dKbPY06aEE#Zyg{r$rXWi}(;a;_6fgW-=?oDx z*Jjh1S?YsLG#(TQ0qubjki<+L4o_)#BvZT>2~qB+)Ot=rbnlPK7x3)3KVH%LPw*M* z!#UXeetO2^amQY3Oo9}*=Nlf64apQwPgm?4FT*J(xXx(5$=h?lS%?uOG&NZQjO$Uh z1{X}9xIZ3P$`Xi=cqR)OPai&f#6SP@A28wAdPT|^E`pzb{(ujE`GS3KxNmoqHR1c; z{0iT`dykh-FZk#G_6OYC9n1BCB8K&PfdIH%Z+L$99-lva!sT*h{H5_C_PCRIC~&No z3o}qAp<^>>pSY}r(USw9i@`#T9C|FA-p@IMWfj{9afUrd6f%xgzPg;3)=?kWF_D)Q zDJ>Xz4G?kUAki_L(t8f1ICOE5h*RLanEPSdhT&9td?4O# z7q}%r6N@Bb0bZN1>1g{Mc6ov+Q3S;j`UE6#A~NQVR>}D|bW$CIaKui}R}XXorbiHV zo?qBD2FLP)GG&-RhF~bpTuf^_ay}kP2>2b_InabIPLZ`F%-%R<3;X#T%;famVRHbP zH+t*fM5nBffR!CJP(OS~^Z11d|IQIejYSSTAf+C=-VTQyFCmM-p)<#V*tz%Kkf1Ot zWINePyn$7W%)=v`Vd=-dA(w)3$w;|`^J_wF35jsWZN2crDUs*F;1^2`RuV=ZXmv-) zq@#-ksBJ0^LnDqRjS$Yq401mkc&7aSo?;kngGqtNB(+)v-MM;EIXq*WK9L2;wQ=1B z3=W@-D=-#!r+PI8Hw)LOn>uGfG)G8!qdGw_r6amI7!f;kY7@b@oR5NaU^N z|1TdB*FolZ@^NsUKvFhaH8Jvh1SD&Pu6lw9=bYrd^c~C03{6^s0T>b3oKdMh19`!5 z;zw&nMoCV%CneE`V=K5=kF@xnp+hWl)%%~d~I5{o2+@6>>*eXZsF?t`T z0NWus#dL@{gsFkB2+*P;>gPxCL!Ir!-qE8OJL%T~hLRg4gRo!^G(mt-rwaqP!OvoQ zF}PII&voHE)HSg9Uh;Q026L4f-+u(neN5r>qc?~T3=i#38!^2fL8}I?x2NDu#VY(D zO?k+fmC#$ZzZ7F|rI7=&D*>n^Ln<1R;>?-`L#s9hhl?HS#5dux1g1k{m76o!ay{63 z1fwc?o9Kg=m)RS9OqlZdIfEz0P0%=VQFHL1bkxPF2qf(hyEwd%XuUjZ-xh!AyWG6J{Cfz6PmWLP3jhs6B_ zDdg7anuDtEurcs-d&bk#R~WNH=RjVTD4|SjcfMz`^Ws|{4X?W6et*EHByF8K2K z1*U>!EvPNFLW9{*3p)G^8$%xlmVy^KiRr7lppV9Nb>vn@l#JwH5zYoJ8LsJ^40}wu zq2Y`?Ag!us`ySs>fn@$(W^c@5I@LQfGRkRaMNWb#iKA;MvN^nyDo#=<>8W|ifMoQ^ ze9TZmYXpUw17qJ{>k4;6kC6L_yh7^~)21b%_0G_xlXats&4}K6K;!xuqMV^PInn)- zH`J_#iou7_WRTaTW9+X`IP$V$j#pS(Nzo0`%IJ5jvcfZ81|_e!tXDvQ`~4L&0X7`d zJH~k6x~xH9b_U-PZ+trV;xiT4h!gBQRt<7Yo#&e3pH)zfp~K@ z<=_8uxuEurlF1Xv%asq!o0LWV}?MFuXWlcrzSjQx&!C zT!V^34%_*h=(S=OBVyqc-}QjvvDrc~b|e2OupDe!I3zOxsz`*YhB`+q2k;cIOM=Xa z*E_?GIzqo>9IxgjqwfuQiN=zEY6Tb?!kmoJ~$0J7jT z#ky|Ji56q^Lsg^7tOM*V1c~YA`tLB3%yG2MVnr7$rPet$(pk_tQ5D+bvppudP-$b@ zP~(8+itufvSj_=bXIKI%pg>9`g4-cmjpLsjY#|R2<8dH#ptT*-c}TCd#-uVpe>r2l za6Av6Fh~S#4`c<-_1dxC>iZW$8VfTvT$2TNdH`Y#E{Qq`pZpm*&_n>YD2Gf;JA~In z0`$Wv7l#-DAA&P3d!k0x9?r)Cp|x>PKlEIp4B4}76l-Hs9x_$XMvJ@-GgaPV0x%EN z4uifdrtqRy=Qx!w^y7sYz+#Fa3>}XMs_P+`#UV^SKBdmgmGbZAqrqD{MaOL58>|SU z2GgT;Xp!e&`9+O*iLP8n9v3~XybZNBSe#+i3>GU;61(3RREWds!NS6HG<1w%!C&(; zY)()w!|R&L`7BJ9;$q0j?lGZr37n1kxoTHSC%5gG%mIKU!yM@ZH1GR^mo(Mm9tg#8 zfthTOX+#xp=%Qj(?=eC5fhp~@dH7(M-7G`aE1zMf>(=<^?11)3f_u(bmz5;}mA96d zO{C*;7L8y7^Midl{^j@o9pZxJvY@txFJE3@DMgr^g^e%w2P`GrZck{9|JkxGSg&i4 z(R1j?*h*f?1-0*Z_tn=h&A42z`1I)`*6WI&fBq}78TQ(6zdxu%%LVIt!HCJ34TDc$ zSypH=SZgSmj43r`EBlzXD{#52_}%Y*!0ma(Pk;F<>To<>H}rXjLhzfv`5W3WeIe#ehL{sbuS-S=PP`RQF`+c;cNNt~t&&lfWeSko)|*pTuSQwa9P7+j|(h4&t^ z_Ka=&h|zak)*G|MIM%L&qaJ|Y(GXe3hS3_I)xrW>Dn^@#8TLxm8%A6_-H~QEsx&w% zLjcu`f&C1AiE#DSc0qnxBK*u7>$G2ll+*I&bep`B&j@_7x~#}qFkojW(2r5w0W6dl z(I)~#1r4SXibUmscAztlVL@EB%zgc3{TeU(pXt(@1KA23f_*eBm`IsZ78wpH%pK6X zmeA&eYQm6!y$NmLwKpm@Muj6|SqjvJw?!S)q=*8tGvgpD4_Cs&)A2kzR)Z!f-hW}H zkJ>gcV&$Y&gKGeM$gv!m}juJI5avjtS~AoX)Dmn`vjo)dce40GY>-6zxs zQZ8^O0|lt?5hQR+=ygZY6?LDH|B`TVRq9nbn{u@?cLs3EHe=;FeTEm1>&!6)>OFKR z%-YFO>yE?Cl!;UpU=r>(L#F9-!p%?D-5ewGO?pz#IkILBY@&1RIp*7eSOP>x<1pX~ z1*eNzu1Fx#0AZ%zdxZ`|M#79XQ$uB=bsowRu8qvuiqjdhsbeL0wra^G^5f+mxu_O2 z|Haw4Oi7R>GoKRF;;CG8Z>?bogF$Q<(Q1WdI~7&D!IeXMfLbe-R8Z>%u@VGwKSkla z50sR{7s+g;I9J`Sda}g^X^@=iDtCQJfT0Ieaz+l+Lhuq^y=f5~KE%8SIb4Ap#Bm=H z*fvt|BsgCw#R`+<8kq)70!tZvOcZ0;C+8A8vJtGQ(6Sut?3g5;g5wa(a%+6xG-kBm z82oOvV$8+@MwEd(6j%FwM+r{T937UGjjWvDjEu3#)*Q9oaaq~ow7dZ02<6Y<=JDWF zqX8KI7wDbLD^-O!e=Zu}Ohg{bgo`eI&Il?U-hk2Iemsj03xhYCIclqC_#X90FKU2i2P9b-A;R*Y^Z?#pUWoNjL%-k8N%`%1g^FTx@)lE0 zNGTK08Y_A=!S!-|vlO^v+o(sAB)ETh;NyqSxINvlw~8+xKH=&13=u(X)SxZPic;wH zt^1DkvSQyhynp{qlsWk4T}t8eXRk5Y6gKceK9bbR&v4!IP3{_+V=PfvL452zb{_5C-Pt|-d_fg)P~fZgza z|6l(Fzy0<1SeAybzWNs1V?N$`G0_Z^u!5PjuH|2ox%P5xkXOD(WZylHA9jeo{C7Llt z$C?XTeL<>UV91b65GgF-x?ax-h??SRE2izt5t%`)pzim$F%L**&Gz^KBZ%B-6q2~j zVDs3|A5?Juxz$0is2E&3rloU4Fr$un+?=})j7IqA7;%{B0E|u; zg|tJ~nb`PBz)XV6?Fp?nl;wgp?nqcp%tY#n(JM4(v`OYrR*p}%_6YAU(_Mj@zV$dPT5k*+a67Qf6 zGd9EzC~8hzFH!~_e#zC)T8%X<(L`&xz@i12Vm zcfa};Bk(hG43v~mmKAMsy2(c6#A*e5ZCIBz3=4wGg=P$&M>&8^(0#AOBqf8COwQIE z6noDB1y_Ba>MMG$Fj2gGx#Qit_vo{u_m1o3ia93sT5(w}*xHWA*pXuH-Df`)L(_qm zmsccF+J7IM-(Y3TS{>V>Af?;ZOX<% z+$6kLwv9BArxW94kJI3BgCnXw0nXJSn>=s6H*%%y1WxKyDnNcg9`2)KMuP(27+B-M zD&oktUCl z!L`Heo$KOgWRb$lsbwEK4@IYsR-+KWp!#*a#2Qp!g?gLMFRw^y=yOMHbm7(BFyce4 zB50kOk!^bkn53V;&6E>HttX7G^@^95`}yxUP!D5p-C)V$rV;DdP>Oi8IwA7rr;9Ar zoE;@4^k7=48utCpiHhR9O{r;23_45{mP&*%dAIfnlpJUVP4LK%^%-rOKy_qg^nR)deTP99u$=>z1Y>sOl<|6h zL?LAaAbZGcl5rTB`m0r1Kmc&r4%IWnq5r}3! zdt)-{N~}Qd9c5jSQi=&RUpmM449*-?&f%yG#6askpqex(n1j=_(3>Q);JeL8JWPz< z;~8dWUat2_m~=`pqY6?z!gD9%gr%|^^{;X9k)V(Bfe z5L2|Hq$3ghH%t8cMTrW|aQyLXcTwcL@HuZluN#IB>>Dram)jFvt;R<5-gahr#yDZw z;tp6sZ58*IJMJ$p@n_1`4riW0RYjwfpvf|sX-$CZU zzTNqb%NfhM;OXgxZ@&H}{{43yKA zD-WED;nRl?c)C9EeeVNHN}M8RJFyMR^UAi~^e|;)jJ6}o5|)LCxAYygKKS=l!5j^k zK<^t&OFTDrXkL)g1)4IFhCg_|6{^Mv)?@r^H7Q%fqoKCO3po@$3N@w)U%tHXpgP|G z)oE`8bIIIEl5I}luSJ6?M!q5$K^-{y#t>nCrOl%*UeK!}T_T+8WQfRQI;7SevyV7s z3;NW^#gMBsL;-Z3z$c)}Dsv<>&lxuseqE*kd5!6SqxA_g!4vY5Vci){j-7wUgmkV+#ZsUgGO61Z^j{HZ8tB0cVxl&H zrIwf_2#Kqu1Vw^iKc_Hm!umfH>U*dicmT3Rv3>dsQ{KjMVQ%5FtQhl->*b0*?l7!S zE!bs?Ltu(_$pmzX50yZ)gpbduSy6?ggc65^R`1Zs?3GCfH=V)A$G!vOK^E2&Y^`F< zft(7aFStKma9Ik5Pfm1vFfeKfNLW#wuxLgG_BbTm#9aeQ@_v_iFoXHR405z3dr)sca}r(tq}cs=O(bThs= zG~-*W6yH%v2|nm@qZ&!+APra_{fcrDAq6i@Y zFQ$b;&Mb#S`;!3JNpg2ISiM)0y7z-t&KIB|runBX$p9U|*pTxxX0%CFGylEavDcmK zxRT%2-g3Y`4JQ11HIo3S@-x+X$2e3*qQ4Ln&&US~WHhKdhH!JC5qmf^G~Nf0BWDVM ziAO#wfSb3FD)&{@u%pDi-!>%xpB%^6yV-Vah>AYw}LzX~LNB0iX^wzMn zf;Kng@KPRo1q+Od<1Nc2V8Gduy|E3|Fr_lDSsV1SLNTz{hMY2HYiNz!zV))={moIlb-JXNz2z>th1rVT=jN0P&KPO&afm{~swPB2oQg}ISy$7bnm`jc4 z;L(6f(Tc6LAz8wGyCZ8lJSr#a%HuO}(9lQksI?L-Dhf>jf}Rt<2ZP~L9RJ}T{~fNE z8~*iAf59LB^dm}1czV9#dR_7Es~gKQb;tX!zs9z0$mLtO3--r`FP}f-+i$^Mvj`kxVc(bFUwPP*EOwe6lrGYmFPpHJCZ1JX@^YEc6BlAYrX{l|J+9is!jI8qYSR)OAuNzmCiz;sz*UZE%u00j)fPj_s4MH>yb z8(%O3B#WCCxJkq{CVbWqv&O?diUq9^aUiCUL0H?c0Bjk@!`=*ib`CjJF(y5Gsbt7> z3~5*|Dcu3KhxoV14X7aGIH7a8NSs3 z#ZG6_)G{+JV@|ZO$C%Z4>sCj~1+CM>KDy)S_Jm$5zWMfByzXDPk`abkRRv4AAwf`b zA+=e_^pVhuOc>sk8y=4@*y}5ABAWS9h;|p+z`jpBw#P}!pCI&8p)5(XouEMslwz_A6wZDznf-(GrLB``mxaa)u)Sf~iRciczC%@XQHns)CMt#_Ck`q;3f1!9VAzhhmW z(0ZkF5x|%g(+84=w&d*ba1v7Y7ly($VQ7UVWqmr_hhi(#M<5Igb?)TT1l9S_&y4Eu zu_2WOiW^#QSgvbK(GtIF$^$8b?hc*2g!vqB;rhPy7M{d6H!Istb`~NCV#FD9a4oyjPgDxKtW?aM)6cR-I3VZFAwFKZMeU0U$>x-A&G1XSPt#czmD6 zKtfE!Ja!NXC`#`QFabMM_goLH8_qs zz_E^f6ZIY!Ujhp`q47SUWnpL;3tSq#st3T=NdM0MZ%*bu69`ppm52>!iS@c+ zwg&HxfrfzrpFmE$tZaJ?y%Qas`(wi&|MYKoeR)Jai&J9Ngv)xx7!AvEJ9CTTitFuy zr6fEadxIR5$^cI^A<3xB;@P2>XV=BhYP3s-&%8O&liA4L+p=;(eelRQj z`uTzT>t+u#A^-p&07*naRGmDmlCW=N-j$_bUAe)?IbqI(ycGQXzyCY@>Q~?3=bwH; zURPY7pYS(M4%)kSUva(Xj(_?6AMlqSf5OKvU+}ws|94n#E0Sg;N%-R*{tdtX*Wcsm z&ws-I^1uGiD3)i%s}nPsZvrk^tzqCNfSH8?K8xe zniSR*Ga@NR;p6k`7j&Pes6G(?NInf1LNI44Y}qJ++e5C%6hYDBi=?p0TUKq9G3QKh z9#6d!#R-h-fx7o-rxguAVFYt~A2@yJ0i`1_lKABQk-Kz#=v7Vs5C5PVS8@^Lo8ZRnX8Z4!jF{DXGgId7J6m}CIkp>jcUeh4@Nhq zpjXn&Z)?Hp{T00pXy_OEkr9EwGS7D@R7eUiTQ>)$H|%>uS&o-|JanSsy+1a%kT|^c z&J`e1RAk9L8c-CCmFrZzeEA9Qp1;F#AxosypJ92$UUw`hV;hyYhB0w}ydsy3=8o%y zw~m*W7fyL@D{?Vx_lYzeL-^uelET+Q4S^+eU6682jOK)Ch9$$2Gjh&&dHE78B1c)n zZeQ8|Nx7i=9xDwtJ~U~p0p37}8X?;w)N3B1^Vqx7MaUbChiDrJkmMN1YY8FrKpKS_ zm0+|%-bVI_c8ZxXlv!2=we3*CaH`~o?AR4YNhORi5OAGq5q(h?jCe1JbNVpiWj5x- z>-`>6BK~<=-T81)hKZ91X6slAvt;TM1CbM)4xNqb)ZWm+{G=#RE;2jD-dJ3j5B^-e zb6Q85C$l!e8#*uxT;tAjqNgAz(S&QZF&lcVTo>l+sof%gizSN1GFsc;VgqWNI@gBV z`b18YQ;OS1N0AGq3y(U5RbbN?o+`rA8NAAT~tb&@hvf{-bar($6&_03?l{U98XD54DfO&7qx7Fis+7 zfMzAk6&Ve0aRU$jmZ|~H+>VMOrwq}K6asA+e}*X)lx3or!U|Vh$#@Xunn{t%6)7id z_YK#}6|Gg|Trm2EvSgHHVa8dQ5hiAYZO5DoN-5EXOqi|Va=k$&aKC@%y0~!V`FelF z{jp(;iOc1J=cg-?Fac!6vcS}^l)_C_T+ZfnTrVrG>w>iueDlqBSl1O|is#!i0HBo1 z3ETYLKm0rV%@2QrPoF;H+wZ?d(l-FRfinkq(jh)vvmz^fuHjE{FU{_mQf$C zbRVY7+HkG#)KTKaWZ=}nH6dFKskaiS7Ocif7ER zL)6gr7Yt`;@w&c)iXbg)dAL!(p~eZAX~B9c!73UA;km<=>*N{4d*nYjcB z@iMT)B&}Q*n9CXDJXj@ygzEvG1S`_~5_8fpLTY?`E~!vq4Lw;p9atVWmZOI5K?)WR z=8-BhBcaFXtpncRB1m!YnK%Tw23W_UD?N-e1srdl{|@Gs2eN92OB>r+@y|y?YYayn zgkM?+bLRx=Ua?$&(ROM$))j3ya`3UvAaa`+iA3ZvDwgsDpA7gy$y_o~)X|VIk!*zs zMc`w0ES8WSS>+VLQqxI)-YOyn84N*TYE&PnX7LR=F!F&kVP;X^H$R-ZKg;ZZ+=6tz`)SH zvA;P%7$|_T?T}<=7RiFruVx|3#tEGSjJY&*?DZZ#x&p+6(^87lv9P!y7EL;j&pIFa zmK5u{aH0iaNM2aR!9cVd10$gxkXUEV%XqO?FlPz0fb4Q@%|5uF*)TSKLxUz0Mc0_f z$67AbQ6?JGN1P;gfxwh*$<`Xg6y`ayR7wN5gL$**^v9~iXFEjI7@X=V^LpM1Lp5WB zBFD7Tr$=L3p;N-bFi-BB3z*Mq6)p|Q$c9?hg%dkXNJ*fQ3A&EUOtu0GgF-UJ^|IjW zZ@xzU@`Ac;{H{8Q``>)?6<21pAuB&8DI2zZ$G+{jT`ySI1vzCrKR;pHHi&WcJci@( zc%e@0w&JfJ{)+qS4t2rpX~oBnACWZS-Sacn%YxP#)>824^B0s<@bdbCr`rvsFhkWF z!}r_1$Gb9}p2{(p1^e}{eudxu@B{j2xIP*7)*xNcw+aXgZz*vFf4lL|KFDZ6UJJg; z8K1v=!R4~xyYIfm$B&=!-FM&P^UEjv)Bp5OY^M%Rsy}}Ch(G+{kGNh}ENjO8TJb;r z^cU=HXV!R4Sk{cJKVW$(9I*5hKc83~S~`mr5|gLHH+z&$9Lm8FV(snB?9uAbp%Q_A z7s|VXFL^j=4k?+s!r-mK88Z+7e#&7c5Ig9eknI#~oHy zWHp#^_2n4I^8Chcn2O!$CQ5xl8xC~P7pT#=Qr@&%<^P^iS&4Sqh}!lDvpAV5BeF3% zI}j~FsT6$zLWN6j(QqV0Z@58hfe2xH7yxV_!>~JpaF!@#gz%P}OJR#+Oky7}2{5$; z%?s`uDZ0#O(2sZ+=ntg>L&yY2Y9KB8nAm$ot#`=n2DQSR#3WhSpw#=QB54T)Nuhwb z-5I7E6J-&)(z0Qh3z3yo2VR&^!=(bf;^pNP>t!Wx%M3Gw#Mf(za4bX03_fS{#`VUS0;nOcis$#w z`1seO^))eSk5*6ctwN9BF-`L6r){1-#t_rOAl?Id8O;(u95 zpzb>~Wdag|lSBb{gBd48vk%M;lpHw~aq71M#2b4;*4i=7zk>u-*iStoU)*Q5N1`p6 z4N|!hY@GnUT08Q(LM$OKYiN=ta!OcA#^={NRwYo=gI+nrQN+-NE7!eID>I#K$~pPc zc2!sjJVXmdSV*#G7#Z9>pqhMf>SU?J6?A_p;g-}T@dDQ8M8}9r2wh_ux5wTpC-8m8 z&~(CAld>l6UP);WEWl-9;er6zfjI@EZ3Nbij@m1h<-+xDfIRD7G2Kqb--y-ZbTZ4# zQjq;4utXv+26!{~FkdW}8#FJ$Ng6TxoG|eBhRCBaazoFWS*8^Jc$TW-^vsK(&&tET zbJa%6gu=|@Fjs=p#owhI!hsQ4!)b6Kj=>Mc*a1%E2q`YN5$1J4>-(GddUl|P{98t- z&fci;2;XN;ob0+cNHS(-O1Mom$E2ikTHNM|ULYzYyoca-9kI3^b6_UJlnt$R!t55auV6*Kf=qczn10gcJ|<9^4> z{S`M6EXxvJ+7YN8zWgtj0!xY#|L)7W;-|m2Twf!ga6)%WHd36SpqwDH&KV3og$W{P*Ag zg#Y?q{$Kp&*T2F){>T4_moG0UrNELQ%uff!{~rH>9#XQ#rH2SuoS`cX|UnQX@vsV9t;hqlHr!Z?r!iDq1U=YqH>HF zL%X-LZa(KEbW;wV4M({Ib57Ll1*u$_7fFg5AjT|!rV?Ru$23EZFIfj)-0lXm^~`Z; zPLOa)^)|3%!5no7@ea?qzW`3Yr;Nvh$~72+C8`>B8ob;7{x0|z=g!;QVP5lB-4;a z^I*CZhPb^qOz>rp(m*ps+Z!r&TneFSYD;KVI#ihl8i!oh9TEir2~u?(JIaNA$GY8t z;Mq*K7~eZeVhbwgjOh#NMpy7v%IY!#gYv^~vu}KnlmcGglP|2biJO3M~v=&N-Oriw2w- zZ(%-xVuC&`CT9776>(BQE(%{-Ck31zTuX@@I^Q9KvRzS5+TzWN0m{?szDIF|JT^@P zhI+V4Jr1$%6?1l8aKMWg6eLG$_z8WY3Rjbh@{ZS|bxY<^j?2`ss#o+zaeI%JoCGX2 zSw@ReOI|X@NEmHEz^vO^Rt)D9L)B1&FO^b8u|nL*01wJEy8@x;niIHOuka~&y?@4% zFKnrK9FSwpR4j3A)oQHn8blW)@HX9AM=lwo@qj2fMf5>2TRVZRv^aE_Q%N%1h)0nU zw09ofDPUF_CX{6YLVa^!Z1}q!fyxL&7Y`Ag|3Lq9aHeFyBy&508KGddR$J%Vc1D=m z$3$K(=rcow6SjU3{UeZ`lcJ9V>l2q{fnZ|acfOn~R8nE(m?2vxlH*V~Icy4FRKhuC zc*ssR8G^Zo6h(^=x)V8P0d!<>;=o@JMba@rBgGt!E(#584FEEdL^07g83HGPV+yJd z^xB{)p_GLYht^>>*_c$WcQwMz0P!Y|eZv?7>w3Xs-*JC^#j-5HP-CdS z=fC39=TFEv0J%MFrT9%CRobA zJjKNF=8A-4j!q=h30tOG%yL1GqK80YJHX)#yh0@7v2FBJgyK%ZNo@b;|M9>7=llJR z-Zxw?D{AW@o#ZLhJ9pUE^+sU#Xy{W;_+rV0&uUXfP{$52PKr2Q?$}!BQQ{9S0Sr8f z-fRW{kJmf;eurvDUf!WiHnd*12XZN-EUUppqBSE?ZS`Oi4J25s#h7Ps<(IzC3RnLB zZoLw+X^IwMO)3vGh~N@nB0?Vzhuj!!oLEw>{Un{7usH`XcS7_a*ta`o?^w(A6LqJ&bGl=D?66Yk+RGQ7+lnIR6?K2$ zvaTprqRq)KK`I&O6{A)-;$a<)M^R%w$9rHi5`Y|4?G~%Tw^3-xIc(&7dG@`+BqJ?+ zAl$bXHb&LK%JSn(9rY3XV9Y;Z2JSVZ@9nQqg6vNsTwKfDP;(ZzEJRG zD*-EKb_UQyX4}-zOhn*)bgo}(Z}84+%A@jSb9m&)3!?VKG=$5}+>PS+eefVSoUL2Q z1!~lLd6aBK_yW;vT+La?mHUWEA|bfUG9olA4tPf{E0Qh9fjT(+fOblILux%bwLwr$ z-x0*}-T`wIEAUQzl!TX(*-=N|H#o-m^E}vpJbV%zqJgV1Iq(*G{;c`?AeM#^&Hl!h z3YnAZy48+g#Q zL=2CGnAk&v>ya%}@BrQ>+q~+IlD@s~p0|TJ5RM7j3Y-@mlJ^o#TZRCC5(dvdd z3D><`FL-%<#fOhPkmQo^m!E#ds1r}m&-m)yGoEfwC~Lw}7Od-nufBed+wDf&%wQSi zPZ@E zpw^vOm&xgPDFyGIpYYvx-{JjN?_p-hIioc`$IDWXbHdA)mslb5pgIP(9v&#A929w| z;HMw|62WwCu2d85_ZQr5Hv*j}FL!yla(d4B@9FWBxK#4{5SGFbmY4%?qi@d`_uvz1 zVjggYe>A+q%+E3t?LrjPp7kfGZa!JW28m^I>=;!#hkB+hs$|=zT?4$Al zk`m_3Q73ogsc6s$^>v6X)Feip%fkm%AKNJ-ZnGl!5)WwVT52DW6G-TAToqO2gh8Q$)A~9=)3m?K09?d`FWaFr6PiM##yh;0TSSm1OP}m%(twTpgPYrYM0gTDD z>Lvx3336Emb4`{qbPkNRhs#f~?=MhY@YwITJ$(aB19Jc=*3s045R zBTMh7+TtD&_ugD;Lv;b*2&XwRqzL)Ir|AcZaJtEE@?YT(k}q6@&4x@j(1QZ9mR#-< z;qGRp%7>%wS;QhGfMjLejBq#8<(%&f7pT%XCI;w9v5padMI+pEU9sI>;3Wm!T91k2 z78!~n%rGN4IdOH}N#&Lx1P}X6^5njK&%i@WEdW^Ovuq1c@4$%bJrLRg9%PqS7SQP~m0bmp|D zu%VbH3Eo=eWD|_L5m9JXGy~wB)3GjLtL|`XNY3XdMR9~g1Bzq~eO&=6Cl#ldc(rX| zS6vE5L}jHc@D{+v!ocp)!L=QXjnkkkU^A{LIQ^j}28nu|tv{pI8JaSBq2^~6MC^`W zI?XJWB*Aflrov}>2Rp){*k$iAqKAg`n|9XW? zZy2=KQn=@ zAYLcZ2pk|Atlen#K>`xjF%Cd|aK)UsLD*^79`Xf^sgfBlF4Y97Eb?HEq!WeI0$_xW zFmfZ!4QgE3n>$`2vu>K^a9ipDyabq?iqY8!Cn5*P5{VU!k>-Be=unoRbE|U-jyB+< z!zH+0*tjAdL{9(&Pjda~KCF4FZ-;BJb%H~w@u3#Bcm72^sa>X>AFe2|S zWv(l8P9f>wcm4SEgr}z~UcY*U`-eNI0`pYST1PzG2uw zzJG_0*GGK$^_Tc}fBkQ9eZJxG-H)7r<$~pQBSyuDH7M~MfNC(pA+)&M!gJf82b3IPG!Y#EF-{>XF(9%u zQ+&48dFKyr7#^t`nN85H`EpnI0E#4x0d!wcg9CRYw1~t6OOV%<7z8Ncmr^*2Z@nR( zEBdW-^)Wck?Y9l7ILhe`B0{viMFpsi>@&~@_o(6!BvedT$CYAqD5M)a%faU8eFHo+ zNSWi|e*FY5GrBDVl=cW{45F)O@F;x4<^#!zs85=q?S^C-?gMw1*H~>s(~JrRx$a?) zMGBs-PjFGxnHMYV>>Gx6Bq^Ay?%56S;%Ht1gi5f9p@lP2Q1rwvOBD0W3&hF^j?R3x zk$I5>mH|c$TABcK#mEA+Mz>?%pjA+0f@nn>3%b+EFt!^?y%1p7HneRc2onu59K9Jy z+E$PgV}|-L+?EyR^BpUG2$EDxh*cBQ=rFW#4DZn?B*o~4(PKT<*=eXUgjvPW%#f!U zItn>D!{CWf*rW-!h2MRtcW_-$BS;#fLlU)qHD9nTH_YdP*AHK!Z_hxU@ci-#=jjYB z6Rb6uW+)Wi))2K;P7#Ic%$z5sXjk3{yO zrs(jvGVYNAuZi|>3}$_%lpr~XOriPlpix`5a2)1v={dv_k}6t%X8xE+1hq~WAS^el zp?89ItrVC8B~^3`8Zm;UqnQ?XMUKNQg3przU1%-{EoO@5!YzuZn6y#I4ZvHlu*j1k z+JK)i>ByX8(9oG8Bacy21|nCG1U7nvKa&$hO{t<3uCgt8Jnxi4m_=Z0Uqf`h0XQKg zI(khCWC6TTG`?&r?oJb|Z;(P$fEfrNOopt?knDZM<>3LN@lap3CnVuCF*%|UD-hXH z6c(*oL+c$Lz-5mJD(qc*q%D|rUJ|}Vx&^Ttq5|uCR$*Xigi}Y40v$c_Hbtm!0pIyr zE?CBbSt~>X7VCib8z=U4BCHY2bj!Iy%LFl}SqOs-q@)0sO6c~uBFv(6^l3sK!30zd zxyJzq<~ z=sa_B=CeH2i3M452x>U<2TCcpUT>(C_f^gbtq+t$2kg3DF-x`fw^GQ4dwhCAYa1?icgU(tg%~T|esPbt zU%X-7>vF@ktf+NDtrPy~AOBx?NtmaK-~Rg7JiA)Q_uv1BfBL8Ygu7RF`1ZSR@Y`R1 zhsRHkfFwMA{Dg15`4vPH*4s)m1h~4yJmYq~GIZVfJ(_ti)WY#EfI81V+txTksf~2u zeeZ5)5r*E!2K0ytvuJ``AkJLjX8Ssk&|4GbrpBp_MW)krL;&=*7|IlSS(PwiP@`+z zkpAKC|Mqv9*=@3m$;fFU%rA2dku&q>rcy(JFJxCmfHB=y5=;}v05v-)=Mb>&fw+DI z*EN8U!gW}pBhQbFtFUy3)mGvXnM)@8QFs7$FiqX#@Ghyu zxR6lInkI5JdV_W5Zn--t+d?@T)R2R`tqJTrbB0GSu(d71L)pb5f_yb)49T=*j}_K8 zWUbhIJFpEF@g*rMCp}P@ue6os3Tw28w6ZCB*?OZ z*oRbWU<)?XlIdQ{DMrSb5j-MLF(hFEdkU&MKyaInh9Os^q*zvVck?u%)Er=0kdEyg zIaQRT$a#j1E$|wS)9H-mJM!0g~N zAmQ3;Z4F_%#K=0>@$&ieb2GGK@)c89@ncc|F|wkBPF=IX^`;+bBtbY=8Z`OI6951p z07*naR51?NCG#v{4o!3Xvqr?3(8Z<7#(-AhhU@JHGvIQ*12W^RdfU+25=3F@V6@~A z)sx`wgUAlg6eLS;{A-wAMg)q(3@Hg*BEK*qO?q$CI2w+Gf}JHSDb`b(sXdg$=%y4p zM*w+0KoRQ=7*a60nuXpgupZ&@XYloCC?(csDFU=Z9BzGqrvz&o9D~_@W&x;8@$=-* z0@+#tEu5B#(BvZ#0Ny|$zdG-X=kUl4)L2JbYk=}+H(~KMI-{?~7=a!TA}E5>m4aGM zjEWv1$?lG}E=;uWy`T@0;fx!{&no+c6wIn^YuMH+FbwC38<7-f z9}y-Yn1qeK6Em~B3pEk7qk9Hu{e4pc>C#DQrHj zFSl4LC!9_veDUTrvmDz7SjY3zGhVJt8b~?ec3Thm!t?VZ#5+!BMg+Zj{Ti3kjIY1? z8ut(PG&QN7_M(IbWN~+6iyklFgiwzO;~enfa6~0DuLabAAy}1 z1{8L+Su(T&-UhsF@RTsrW3|{B?T|StJxv8$Yskt2nPnCd2H-0wSVqec9p%g)O;JI(OmphblLK_2p zY%ChQ2WJLHW)hr-)e*2gc&Q-RXFeRrifNi*$#J_5wA%}o+EL2{w-a-sM#oq;NG@pB zX^B?Hx(rC(Pztb(5NK{4S}I4=L2^%GScl>6?lq?M5$jM)(-}z(>uo^`+j)vj5&sr6A#3dN+RgMON zYqq1XV|*@6h?78U$B@Tmn*iGyVTqcswS}=)z2SPj(W+kQZd7noPvLk)Nh}VE zWKy*uXx<~0VCI@rfIb@b5>sL~W#J^tNzez+io6$AVIuL-kWU#JVqnq8)Y}a)ePA0N zD*_<(!3Z5Va+#3KIVBebtijOZdt?}!W?|!%PGs&S8dWq`q;i7Ul}x3?i&IVD;B%cS zQ8rp83|ELZOzDJ?fwnEUT_4eG!~NY`xUa}LVO?*inJ&drFGNu6tBg3HcQ;-RvN(jq z^0995ZqHD6Rzg{FaRqx_=m6#3BlAsnwMXNAJ@I6r1jT;I?{22&O&LVIrBrSA?75Cm_g*Px&jR-VqpDaSN)f&c#i6$~U zIj-vswNCNK#)=D+CuB8rwct}xe`TXXvT&;JiY(+y4Fe=GPQ}E-I4NPyh}G4e52=EZ zrzqsf8IzPyMVMWe7+d7V!pe}9LRGjdiE<3kJjo9})FbH`Na zO4pRIEH5~nFR;O_lC_Sx6s-Lgd@Y_`>$+f?CVcbFukhvTd;Iv*kI;ILb0_C=nr8rl zySoQ$>kT4`FW!8G$H$L&e!k)U;U20D^UNkehU4cCkEk`_>E#*c>5lO>-H@gUh6K$w z{D;5!@6ncl%fkgvkB);qEoSHVek)@Fi?Y@?YM>gmG%kP)M-Ani3)e1W43!WL8!RR6ng!6z&tYjRF6S93o#0!CtKquc za5-JrrK(0ZYREd^sgQY<$aGOr^iI80b|#j)G5&!nX09f>4Tfj-hOMobb3raM6XB;q zj#8NkaT7004KuWM!&GNXl8|eKxgbvkiiDD>BgrN4=k|ta zVt6%_7yspQPZ!9Z;wTB$7d$UFyj*Ww|78L&_sfNjkFeL<{`qiSvRl?Ar2y1vbelXR zODZTLkTk(mA`yTl3xrkQ(XgzI&dxo<%?G1U6ag|FA!LmJ^@9fn>UN@YRoUZLBnqz> z6~Y2+M;kwd@HpUx3^e5wVNU_rwswe1MGzezIYC5lut4eo(QGS&TQ&4Q9x&3|)??+9 zf?Od%5Dy+qm{LR{FOmP4h^!a%zMyZfpl?X4P_GllzLlX~gn4@41z1XGNEN9}$aN090y|yJ1t|f^>0&m}G%yEmk78Q@k&Ty}S)08N z)LMdI9f*~b&?1wQ8;3-~y$dv#1FG11=f%@w@~H{EuQ8DdZJM{x2&T}$)R@|g(1$U% zaM(DeZWb#{fgit4mCqifsLYr2?#y^pKeF;tCMsk{5$u_ufMN74qIHxjN=;!jYQW&M zYLEO;O_4PT292u&ZH5E3Zm>clZ4?m!_ zj)#W_62^1E^V2iaQEE9Nnf7qxJ_broSht2heg6*U$nl%!8Smb`!|R88TrPJgIpNKl zH#nVUK!Cfudm5~2#ky{oNR3JWK%8FMg8neg%BCyddt4#WA(GxOY%1ESSjLxic3`tk9fjPtBG|KgQi?|xDGNN*dk*$1Aq)!E#QSjfbN2E_egTTb&5~8r( zT;d=h&SD4PQJ)gfKmfT2+HIjQ6M{0$bZPY$EGxAT=gU3Zd*sy(+?_5M!lE`G;6tu& zhIeEs{H%;6l!22VlOWTYu^31ZanT#rSmW>?osKld(G2R*VsxyD`*uc~aAXXpM#_5!a#-|J z#^~&HRTU)_3Xsj9wIFE;N2Z3zU!o9^Ao()~lYeiH9gtxE_a57T-Q}_i@8$E_h4hF3 zD-Mg*doYu*QSamg4oW!GdLu#Jl*D>Qf$|bfak=*~kZXKSWfyqv?>`;5xlBi{U#=5z z7Ah#p28hxbf_a5JPh`oIC`^@s<*7n5osYYCJr_D-B|?9Xco*=30Q~5%OU*3a0>S&0fMwL*u$)6UdktWl{mDcqwSIfbN6Q^(o6VY)jb z=ZU%<-v!kCycL4cH%c9n2I}K;QiY_9l*7h!24ivhCn7&6LTcIiMzZ6Je?8%%WyE``(wd{Cih(~;oe|B72Oqa5TEAeo3 zB|uperj&qiWFORarQ5fMHn)w&jst=+(Pl3@V=O#|Ir1R^rREj9fE|7qEi{-}oLG>M zzin5foUsiF97#TkMY?7Yf%AliswcS9^f3k49h9*|Tq&lM>p{_n(hDrI61#u&KVU5LL)e1EPlFHlLS(}dxK-cBWlUWhrY z64U&B1)cVFcFw`~3b$(FVB;EjXWY}NyF0vZs9BMehjc1A+#FL} zZlRqqi+ns1X_F8$kuyKwr8o5ThFlc3-LS3;aydh)QmiT&^}-!>kpz?q^A!q43ecot z?1-IUx?D1yPEj1Xc&r5-t+8ViVT418DFv*>8c5N%^$=_7FhcB@PaO`$6y5AT2^_Kh zAZJRDFxm@%iDJBP5teCYAZ>EgG9Th?(G&$8^V4>e#%@n__(7u0WeRJzLvx{RwRdM)!lleCxJyP!Gr3j?fS#dwg9?G6x8)YajpKa22VBq{ zXxlT^l`ccNJ2~|m+Y3C+a2weA4H_ZReWgvBT|V`7xt`G5I7HuWP6unaOvdO(Tn#US z5f{jQ*7F_MIa3H?I-`Pi_*{Z1nN%7vQ@K>MZA0rD<~ngA;{)E;$P0`dITaWTC03XY zLD7j8-@*tM(G+y{ez@hJaxh``i%dm>#Ue+@u)7{wMTXy&u$zw%m@|gPTrk%f#dt=| z6_SCHS@0&|O6HmS6<5EbQLNx zox%XmxoD(XBm`(AEC4LxJG)2Cf?haj|4;Y`-qn1+?WQaHZ*&>}` zk5${YEtqYQGT{kGgjsW=7!y-tp_h(kJyw)PX^G|(pH+uy#x@vNR!fZtXrYdE3~Zxg zs#APtq0tdR)`UNO{|?t@LNy1Vwl=KG6`BfaNhs6AsY_rPUY?&RBMCR@ju+{Dp!bgR`NA-3Rq9nM z-`6@#NG0QZKI7r;E?~Z#es5dDa$T@o7p&`sZiaPja5Fr-dcZVKIG-l;F$muU3!u|! z!g9NzWWnX`0f6G$Z@+^Xfy-@OQBuO=<40U?*U*JJK7IIz`-d~il(8-ifTE3v!l6Ja z{(LMnQ=o;!!%4gAO!x52-6R5@m!pr+m{N`;(WGR}(SUrO)ud>Sb1ukQsMG5mH49kk z+kwxx-j+i$qMBL%jDhrbfA>HB?sQ^!GnrjH&^BT2oWvi(j1ShnZYn8aZCBjBPC!)PzR{%=!KGu2 zLqu4o8V?C#t*GIK>6p$H%X&r0CzR8fhf;hwDYFw4g0&8jWeSj8Ny=_|M+YEAvN37m z%4-~vIu?0V9x)TtFf^!EP}-DOd^x+X6y2Ys3RUp;GDG%^q!H$$hEylyJY%#MG*oQs zifJlnt>ONB2S;a=kvo}PB}Z3BQ88R#%Ff3fku*?yIiY#Ob-D472yO_Bqv^+|_c%Yi!3dU1N}QlV5~g~>h~VGeIk+hl18)&#<8LiWGuHEmaS3eg}Z4}2d(Ksurz5sAxg=hejb8k($BGPMzsiH#YYnwJ4==7Aar-Nx8rx|;(iNsNLh zV_{NU=+JN}3E5Xfd_*=Meqla9#A>-80q?04lv?Q=#6HFgqkzl7mqScI733hLm_Vk` z{_P}m2(YfPzRcl76_EQiMqDC>Hi!c#nxQpAqLDB-dK6j^4;GsS_h;gCHN{F4O6_Z8 zwW>HIC6qiN2lL9qb*HgLqM@lpK^cM3njonn$rL)>a4koSQ`X?h=^!oJ0Z$rnP`iW7 zLx(8G{h=Bewh_K7k!LspW72yIS0kH{6!9pWq%vH1>nx&*YUpeT5*~x$={3`HJwo?W zO2XEIEe6B$^9yAvS<$x*nlk2zwEDJfyo*YSdnt1b6}h}^V=m$}&2VEbCE{~|1IxPN z{{9}P^M!n@LeYOM6H5;fHWS7W;yO*}8;uC=hIyXZPza}0=D@oj-rJx_y3GP{PB-?{Pc)ER@~oRLKF5jG>`@J zTyZ)RE;`LKE)TD!(4{~X zC{j`9iudo|Qx6*}$ZpIlT-Fs?g^?Lr6k`BliXng^0Yk~SiPf7b82&s2OXmY;=D6No zFwHf_^%N58Fdz?@Bwl$+jS)iB2{>V&A{e5FMcD#Q=;F{Z&;hj0F7R+$j2@8%g5=Cs zGD#>=k#b}^!N5x}B|rzW1kE`yn_y_|in3JHRI!YP+&jwYgszUhti<|v!pr8egC5gy zka7hWx*hkpG&>3BJGXapagP#&!eB zfF;tGhcJvcY;V~51_QfynBjIEm|suv5q?C^Dn19XK(%Wwe2+j+##xFE?hkrG(|>898kj zV};oX2^!j_-DPTYZb31X2abDlL8%wC^%J(+3nUXZ+xo!y{04BvG#m7J1I7Z+`H0}) zA>MQfuz=?DVM=`UGg&n1a6H9;=ow$q@G8C2=mt_!)bwfSP z;XV^&G2FI}(a6usX@V(GRA8Qt%hN!}C}6NeJyr@RC!JsjOhW>!Aj`hiHI(U&)A-Jj ze^S91G^(VMAnrJ)Li|i5K%^|8&EPbe3@PeLbJ?SAVj2fBy$o{X>lGC&@qPGU6iJTD zcz2gc#5MWg`-B|dlTqBxqLE)R3k!!CgT-0%`w`m(;bo!DH3e5XVM;NkO|T2EVP+XH z2{{G=F9Hg@0h&f&)U-<0U~ci*$~v?7cWw#Xm`;&Om^%7^S!c82K=KSjz&IsQ{{(}| z#A(Cm#MDG|$v$5-2~5Qp$jH3&l+ewjAxez6C`C*u+~XYqT*Cx#tT2gUfe9K6Izo$- zQfym#OotT>fxc)Raw+iDG1`VSP3UUDU2`BMBxS=Rt_Ld-5X{qrZC%jDKrV%V>&Wh# z=9qd4HBWm%Iy&!^b#2HgB47py`O`c>M6qrg=BdH~thXCdPI!KN#B@4g87pqL+o4Nd z`T|^E@bvhEr>7TO&S#{QalSj_!}||tZQzTyuUJfY!mGOnthWtYYxv^LYy4M#{ckYW zigl&V^3&rZdVdcy!?(YBg_^#^vTVp&@b2AvynXWq|NH;;f8f*eCp}I4iN1OpOiX|rwiz17#4?`a>5b*B#{QOr8BjTk5 zv(7_Dh*ThbV~mo8PStr2?s=!u4Wkc8G#(zcla0>i=zsl(zyDq99a8|*R2`$OyvQSb zw#Oyo0Q%tJXzPYF%_x~ck}2g7w8n#D1H(fY%v*qZndn&D=#+5-hOq_9(DAA zDfC#k+Y?uATCi?6lrkStGz|_J4O2Y<0!*pkwk_-gb3upUlq!%Tb|P}b=8`asouH`F zrI>hut5&q`F{;lfGMFHrxN~lO!!Se17ieKL4aAT&vpX?I2_dYc49#5G*r07TV*okh zJY9eySli&FYB*{K^vpF1MCsCDq*s**l#c z&|tV;ujHTvzl;g;`OpHYq##Gzq0chk9k84fSp2oel#55ap^qCusLEnneB%@nobIF~ zk^Y`Te9kFE$_%F6^+h@UxvrpHJQD6lH*9@F->xV%V>sw~i}Cdy>bw{5oVF_ZdW}C% z4MDp{tVo0@8}sx==%0oesuH@JpqSfvdFnnC{O&t!04o8n^xulG~HOzU2jfP-rLa(^xp9 z1g&H|a*D&E3caIb>JPP4nvaITM&mi;hQ4i_$|VZJHPZmpw+8DSy)|lhO2+AY=9;}u zk$Wl;GbFez1W)Hc4j~L7^EBanxg!!Op1b+Pv+&2Cf5y*0eIPtk1kW$e_?JKa0YClt z9*yHe8g>Av8|22 z&s0#90P|_yOn334itNxA-^z#cxA|Uhw$%gbyD+V6=hLG~w051HSy? z8<-pZ`rrPS5IF8HXNWj{{OJS41nb)HfBoP850>i--o5(~A3lD-KmPs?xPSW^(&(i3 zNJMCTqv^?a15d}cE|hsVw`CNY?~xfDY8;kWY@bFnw>h(RvEE=~oa{k(%L@F9Fe`m~zS#w_c5GlfGSX zzPyE^p@%5YY~#-xG;gRNdBW-)Y6?q=xtws@8qyfp#(<1QEAL*~hGzf(AOJ~3K~(VI z5=GbO2FsaHIwTBnlq@h8v=9~&WVXW~6>T)sQZZ@9(it(4%ZYGIA6(t}4Q>?QlmC@4 zLP%M}Awp>C7z+ljsQMaaj+$qrNih~)s5?%;)Ue)G+`qj8u0Rgktr>tbY1POBI>K6D zKpzW6TTxO$<0Ayy<0^bt#{m|F6P)oLeOdT9rNB1?Y;!o!hhe)uqtr8|(+nGg$mT+O zybNF)E9QEEXP~dU-osG}pPl7t!K*iPes&0o1DNhG1gOZ^Y(o~HULLUCo;hJ@1LxBT zZEHvw7$d>A1(0V}D5)6!frpSI5 zmdC$#ca~wW0JDu6BdLVhLg-p*+o6Y%tg$+bj>|gMzVaf^6MAcbop6+rF* z8QuB(j+nd{hz{Y*mSL<}GwJ*8aH9oZOyj&jXu1lluaM5^0v)}66*3N>jIzivorLMb7pH4VAM zKH2A*FD2!A+#Qw}0nYEO9r`3P@J2Wab41rL)j>mm?7laMoB-~Fp4gDmOdyP)838n8 z6b#oyEQ%EC?FG4NxI;-uFPfuxaCibR6n(4+6Dr}ZofolZphujTL?C<31#Nf$GC5V= zR-zDmbmWrItw$&{CsA~12@;f;f{4o5wvDSyXOT3r+*tU+l%NbvP^Cf=x z;YWP<@Clj{zTUosnPDmwr|ATN;PLqxB7)z1_gmbSm3f7gP1MuV73PN9^>)OwL6m1U z9Ou)CxT4+_ZT&bNZ6}1*@%RNF!odI6seN{vz!tKrO{209|UJn}_zo{yLuPCuDe!1tB9auaGg z8G8em4rmGtgaAb=);2KghH09D@i!Q`Hum9*k>uX3Gv6o?0iQ|%>n!2f7c`+)#!__p`yo$;wF? zrU~8$v=m(G1$~<011>1WUHDvP9x6g(ilhu35zaguB7-|rbksScHwteB1&c*-S!W1< z*86erl+dLNV<2ym1Wha=0iov09q=6ME5Rw9!X_UlWCE(5u-u**mOC1?Hd8`bcHIDw z#Nd+vt03cqF;=8HK|4P`cB6u#32PgX83tx7rc6leRPp@$1kqPWQh6|EL*F`@HL_zc z0I85cUe!@nh3P=tI4z2NMiC)+G&7S4GLwKER$VAC)k?u>U=^ef3`uCbKAfN9s6-F+t z8!u@!i(uUpdLF_E=`3a5B#G+I&p6g#oa}KmAW0z+%Q0+&=!TL~U^OhBV=$Is7^&8S z?}tnd=>kT_HImMwK;dd=pbY|WMLh`fQ@pT_tS5}#P|`U#Jw|gv@Px9mV`6;DDTMEx z6c`KOVX2%9LEy@4G7AxK&Y3p&gah+n=q%EZj-o)u2;Nq#s8q3gii>2lVa#JhLDt~Q zXbL_TBUrY!g#+0S2%`kMYAu10BT(iZqiRLVGzjI{i|n zIUzF4cBT&39}(0IVpK&K-(5Vrd^;$NrhMghVz1QVZd}wkX)c!tX05CiWa&~A%dD&m`a3g??$N@ z_CY+%CC&m}ol{(Rf_gC3gwMLv1dIgJ4Ui0vpzxfDHknFA_ZHLX{nt*{}e(<$;q?QkEDL3dzlojROwk(N^Mmmhw>?YiRa z+t)}cczS-q4?n&~PKvL;`U0g?yngk-$(JU4_`ux4FW$Zhghy!OBw<-@oZPe?_ymTF zy9ip_AP~G;m^F<~T%S_~GN^IUM6D-4FGr}y~j-JgM! z@$Ij^4cMum)JzBAdd1V@GftN~I2@OpP((3T8eo>?hTE;doGaXi*KhFQ{Re#c)fX7O z4$7_jvX28uOGf)r!0O8LuABc>HulYYlxYu;D0k!oWbvfVG6->!A~+R3N6K z$_R19z9E$yJN$&4>7F?pfIDkK45Rg+{E`g5 zhoyRa;S6PECu||uR5SSc1nmQLI-!fho%a5+yI(XS7(`I_!%+4hX%F5OJ7L%eXO2Y@ zH>ZWWcwYdNG{Y4HSSAXJJ7}He`p5~CgC2DDoij4!iP(Js%2cV3iBM~92vQKP_m9wy zZZ;(i;Wou_DfBlU7TX+RM-Qw0?gmoO8Kw#GAZ=tq8F0BwXx*`G3+glxo?0i=nfwx! zglCoAz2-iRk3clmLmiO)Lg(I7UzZxm@7t@dAOtW-B_OGzjYe%=e3z;j(gzEn z!3nVMY`HiuZO7Ie>*`&nwIABloNz77>57ORE5hEQV~$mSi>x{aLLW*=LT`MAODfbl z`7bqPIAVjCMXD(I6ydppd69!Tn=Tn?%KZBw$b~d?-8oD6McP2DX9UzknSI7bxXQtW z)18Cs7J}kT5qhF)k#Nq2nof|MLx{L%*|O=wG5MPz5;l2+LoBDD&XdN?^oGRm!v`Yb zli85_58o|VSu8Y5PROSUK@N@^ze76e98b@W_~XC+3GaXU1T(|+dINl5o-5kgv282L zRB=9?a6X-=GXkgn5V}vd-Z4!RuGeeGZHRIps=-Q1$RU?HxWB4AvP;!0&lIgG;$lXl=O{CIYE zgA`3HDbC(d%A2FNHMFpL;7ddlpB_I&O|VbADkB(RC4Jn4KObLQR_e(p(C0dIL-!s|C@Kub*nR;p?E7^K4?!Ji z?oljR1$>02g$H)uI@A@ttx%A&Vf%C;6^ggrP!gv+y^o04N$>&mM6rIBLYJ|D#lQeu znc>)s5g<7yY`sCVQ^+1JHi4qf6J3T*aj#j!umTG=xjqB5$A%+p- z)g4X1Vj!i8sR~+evF>!_VR*TH!hLLMt7%XYVo>{ z14OHP5gp@m*|TX}Kf6RhNFjYy!TrevJvp@VlIosl=NCb;&*8gCNw!vykCr5%^&6%# zeLmO`=>-W8VP=`mrzp_*JXzn6W2$_(*`QIVN34%f^Cl`G4vuNA3fCndQ)+39aB(x7 zP9zhX^SQFkfJCm$7#rX-^XYo1(>fxsCP0H=Gm>*g9}PvwNE*kwUL!h)Qzin!edmS3 zFt9BP?jIh=!xMoIy7LsDn=~7o%xQpAS-Dws&4GhS3bhO|z?|-^>vf@4O8~XODcYdk z$jz~~fg}y{-9zjUsZSC(nh#V>A!6^$?^6bflf6fS1es1;1?}T`2{$U8mBbsQqOcZW z^*+$H4OtVkuo&rs;qFB(1okXd%mFp!I#mU=?6Dyp9tQ#~cLyBT*BhD}s`DAjn$Vol zHOzM9-!ouHzQ;q2(1LM7Brx=4g;;~)guZLUBL8uiVT>M{+i;=!I0{Hb5BfQ`6&Ml? z38zrx|7Hr)1NLmfriQUt^Jj-|Qebce3<-n85exKL2=4*gBplL^oiJa(fu=~agiBA5 z0o>Y(oF~SWVZu&7XyA9fMIW5BCvJ$i z+9oDNAgFnUlyt;ZnG5>59CS)g#;V3ep>xMBlhA4|7 zr-bH%4xNpoVOKwN0;MGM*5JOyE?tgT5t6ZSFo_7siUTiC&{#c{oT)Pq!MLr|csSU_ z@J++8#^0k0Pz%?N@!~7P+|c?JqBEBxk+HS|8_fo?fZ?P@M}nXnHt6JJc}bFEjUk|G zz!m5brd&!5;V35}nlnkVdo~>sdfyI_E1c{d5xQ!IXAE_IUT)CQF~kqFze|d)3{WjN zNk%FOV_Sj-Z&+^|*3rjqMxH2CoodCahgZ11Fek8iMA2{viJTQ? zfzk&KEB+3JM64%ZiI*una?a%726<;xk(3#&ac$_~W`O`E4vAc~E`!BgCq%X6U4+YH z(lQMlV^F9%Y>D&)u1mc0QW|d5HsLeWk!zXHfzJp+F;e9vYCRZJ0vQ<{E2jh^=)%jF z!OFy5Xo+c=3|>4+$K4nU6f`s>Pmt^f6AS>Iv|)CU}pXBg!XOslXu6S2RIP zgFWVfG@`Saq$!}eMC=YQ8eMUG?snU?#)Lct2Zuq#-aAZVg{XUAtVN8EGh{m^%sVaG ztELFT4V0lDxq;npL5mY57maDb9#SmL_E%`p@d?`r|lh%-h$XIomNLqx%%CB;OG zmvAYkSYw9f&chJD4=ht*K=R&1At5KeFA_-xy*K1spqXh2;)hp=+mm=)%m{e&XbQ}T zQORX5x;wbhj5VwAjDt9~wnpP>)VjsKXGdT-z;NK!;vWoHqtrpvphJUvPicxc(K_8J zfsvSXxHxXN1%LU=U-10+6c@RnR&t@vrOAA+c)7l? z>JdSiCKlYKU|lw7Vo_e}jN5WU8x3P9UT#;$uek>hyg^0q>i(WFY@=blu6TTULMavZ zcW0DZ@bY}cx~>5p)nM2qyxbNnOT*7Uf5adD^M9sOf9rU-zsIZlGhV-Wg;)1yI2`?Q z#-IQE6W;yhUokqH)UUpLi|fk^UcGt1+qYlg`tpK=jE7gRaeaBl-TfUte)>dlxpn;2 zH(z60HavR5c?kS#MZC8G$%!eV6-(RNgETmL%6ns`xu}rWKIb$y=e*p_2%%x7dYxY zv~6RYN-orwh+`caogb39gWqZKNTH!IP7xv=MIxd@ov{lN&__vvEOV@x2LIbTpaYsG zc(c%*8FJ!5y=_Ynr4>ky-WQ}g1-l7IH9_>mY)Bz5YUwM0gq$lN4af#W!6-iH;zR;E zFxm||cZg=>!nH4XT^VMKpBNZO8vGe)=zReqggALZo+jk(gu>bej1|K(AQ?HIp)S~L z$wdqied^<{c)AV849fBPIO%iXu)vyvb|f|%~Es?3ORH?wp2L)9z_3lYd*20c}o z5$f$yck zap5~1bXE>^n~diWnnVKBoC+d^!m~|6aTT{oN%h{fhNWmcxzV5?u2(7)s%Pbc6fK#o@hSM?~qf5lI-|ZPX<=b64C-W z?<;y}nud~*;@$c{65o&ftt2g_D}pNlCI_q5t~t@2O6QU;6G^}ZM{_Dr*u^6_^>$?y zc4Rg~X4p#A43-7<1hJaL{!a&L5$z>wOA(Bhf&oS*U$le5@pa>wDEFu4x~y9)e7UJp zrjC_{hXISKsYKV54-08wYQn}CNSe$+dbr$9j2IGWCyX9~KnJ!`$$|nWg*iP#fA_K@ z927@`Fw~rqG>*pNGZVLAnzYAYtkM|#y^$*Ktz<|>DaYA5e*W=C)KYN!xS_XG0&{9% zsXykl^?KRy>(6pBUlu>FpISFE4m}zN5Fc0M;~M@E&`#5B%YmA5iza zBDyY@7reZ^p==vE3_gJ0e*FzUetN~9|MY+18!!pkL9!{c!R^~ANjptTd(czLwP4VV1|Cl2`85gs^$yr`6`){I;;!KJkl z>nfBbXfikxSO|4~s)$n-!0sW%Q{!)UH(hYdD> zdp~fwTwvP;DFH9;@E{_rXOvAT8^(DehGW|Zl=N_%&9T>58JjUWGxKIpvIi{35@-W~?sB0> z#A-&kYtKAn7tbgRq3lM>1*sZf8P*M3m0Q&L{2rrY+pZ#KJK8w0*^aQG;)~NevmMcC zIiDIR0asW6gkztvD`QC6!uMJmB>4QjBoWB!{JMa7GaHbfL7?OfkK;tzIKeK72Zm)^ zS$$B16t_?m)k9|h3%bHdRU`o@jfcD5;aNPnqU!r_75Rb;2S^7mg@WqnwDu3`+=eBT zP&cVAbWBc|fRaJ31E+olfmw~(ET6F`1+W9ig&MKoIWdlofq`0>KF~#W4k%7aaXsgG z5-(u}0<1Ld529AcRU`9)`Y1y#G(Pm!pA>QF8(q_@1Vb^dz72G2bB&tFf~sVI!FXw7 zI#|U%o0=^oPQY9t=p175`>>JG$2<1x&u}@Oy&Fv!ku~{y8jr$)%(Ki%s%6t!rU~)E z;&_NzWpmr5hPlfSkiJ{h&4dnFo zK>-W4WECg}+DS+Dd}czZ3J8*##TDzLqkt>zycHr*D9*uF63{!HyeYxQx$-g1fZiI8 z`vZ^Lfp5QmA#UO2MefM}#&c7XO2+;1pa8lv^UghRxm?g&L(UnkHN1WLgk*-l{q1+$ z?g!pKKJd#gKV#oE{I7rcAE>ort1PDe{MWzZq;n!dA`o~(sTD(s3^NFt|6Iebzy6Ap zxq(E9`B?TXj8PspX<{@)`SlaIhwga)c*l=F{Dk-SckGuPwIuxYuYW=G z6F|n>r#F0jd;p2}AwY<8P69+5kw~0Q>#R^r&cexhJR!hI+ZP8AP4W>;ZC9~$MufLK#Kt!9ot?h`88cCg5W{H zhLHF-X{XD>r=V=Mh`K2iDfhL#_)bi1&Mr1loIqDsAIMdm)G-jn(9eczA&fBT59%?H z3rDh53>(nsg<)Nxp`jpAYA)L7>_(EIkA^c2A)<=k&yfpaTfxPZmaX;oWNnJvIjKU>CeFxVs}T~#U_%| zCeTC%4&fE}yPwAg$_rzEtOZ7D+)*3z{&LIF=tBy#b{(=$`B+tSvq{BX3BxD3m=($H9xY)C*Fos5MjD2cy$9S2^J30Y?FGD&_h4YK7DX-9gEKNChbd zYDs8a0Kl@tJ6E)f@(Fko9w1kWQ?s0VGJZgMpBM}@cLf?>@(zoHx?RZh>L4g*^FK3Nxu^_*Co~hw{YZ&`hl{l%M--Ao z+yf&4>`VwO&7$#{nGh+;$TO}nMnHwc1cU-LC)_*DJUIngb2PBYjZ{`FPPQzwl6X<` zdz|!s7>Y5{X6Q`cOHmkltaza%YKN_;rlbmeFe?qIB(ldqZPE-Y)9b$7`i z4Ia;g1B4@6p;otKO``~Y-Riz{X_KZulodx^n6342gc2Bnu~2Cc2S9gXz;eNsC*_+A zyIKmm1KZy5xZf2jozWX1qlShrU%#QXj@Q>0m|Ym!4C*O+AGlsF2zPwDzvK6>{~Hm3 zKmF+!?E8+(^@6ugpM+syQ~#Gg{Sl>ZE9Pi;V5C~MttyWLP;uIt=`)>Z91 zalKr~f)bFMuvKC+{`Fse#kYOK(N6T<@cASosUrXYAOJ~3K~&QxeER$ekNb)9d=S%c zHng3FmuweorKpf=`0clEL}YNSrHOULzHfMWB2rqfq0mIX(T zL<&F{C>JOhbud5J@LXp{5NJGt%r{?HpNxbd_dTEG{Qv#u|L4EtSH?ZjZbEEBx=8+Y$og`PjZ!N*(fsYs!T<9O`s0JI(1&tv6PHOP%0Uhdchb?&H)P0#{%00P^9TXT2$cx z!>KvupAkLeaSREJEoF?>SzHNT8c=%p;N@0w<+xt4D5lOf*Sc0fweDP@Wl@8d!Jr}A zjk6GbM$_&P-#!R#T3X}8t9GU_3rG<@>9aS3Mf}pPal0< zG}H&u4$sSF(zaK8FAEUydcs|6N1LW9O~$x(N{Y3t5jnL%z`)Wm;)ci7s zb#|vvj-f=sNP?~A=kJBNf{lgVFzM>1i+O%m240dD+$;?5(#6bZinNL#A!04&q}H5S>hl->*Y4^cs%g++c$jq`Yu2-SDY`eSN!>kEFE3Y^0oVPC>ve|%czb)J8Dc2PCoxAc*G*ZLhS%3u zL^wXaz2kb_@%sA4jL*iq+2=c)f&1gcpa1+5?)N(`HDlW@iq#Y1WOUqnpdW`CL`?;4 zny+T6!89asEjVj{=Tkc4^tyCbX)y#%&(k#Dguu8@bC<8?XBlrana@TsJ|n@>#8NMy zYt9Av|NYPZ_kXce#32cGi{6kU1BH9e{5^X`Ct6ONUd3>X#__o$Fq{Iz6pS4h&Ipp_ zB3sTZUk^@}n-1d9o_tl&J?Y<@%M(5NU|+ z?mAeY5Zy=#d%f^QsVvhxnC~_Lrc;MudijRLlc!=c*io9!)d?0-w>c(1ETfjp$zV)@ z=De^tNg5V(zI3i9P1-gGF#3sFF6_Lcqig*__l6^-j@Ab5qAG8qcOU1_MH8rX=ii+- zMUJ=_V*I_s2ckDk8>wgO<3Ml6>VWdh1XEX$G!;v^prndo)OeI!a5lOw$LJIUbM}Fw zHPr3GXRkZ9Qt@#-DD3SWm+Pyj-VQ4)iiR`hBbTH^^OK!-se}cV!kxSW{e0kY95~Oe z&NmiC-F+|eI2lri|B$(GloV*kf4FUU@&r~18BrRG#VAQ{mRIMT97w}l`~>U zx+(zqyOq?8Kew50xprvG7vm)|(50iBc3@aykncQb#7E+qS+P@w?{eIdF8^3G@uQtQ zyb`B?+odi6wk4qVKpPLfKSu-5)j{vl1?81O&*+M(4Aag=LV?sIS|`-1_fn>?m2L|P ztxf05sQ~Y-R+XrM=F-sQq`he9GPVWD9b$wHvFuFESs$ITNJ^fd(>XIRylzX3J-_eX z@3iwXBo(=2iP%}Z`9#_Tc;-2U`bk=*MQpbTB~~_M%KZ6!z${BDAjO(<3TA7)Ax(*j zhBPB$d~j-Mq|KA()sWDUf)Oyt%wU~)YdIxOCZ{%3A?>iq`7#wZ((h#!J?Lz%i4-D7 zX~IN9XZh$S^-7(SA|@uJbykL^rpc06SkD!XkEc0dp0SLmGBMOF2(?np*R>@19th^iP4 z)Kc(%yJ6odj@~t3VX{Ih9E_L{BU928;ks8;=&0$M5`vKI1^P}bz&~pSfs6k*b-Sia z;0UfBT}9s*UE%5(9w**EK6F;`dYJRq*-#fo6;LrWzZ3=|GjGZY$-lD+u%N@o!lx}b)R9ULqC92{s;*wXSUD4Fi~{_bjXBb3nKkT4D?X;mIrldW~jLW z-eHMEWW?0_it=i~8pn3D#{+>X@qR*&t_Tk>*Deu4n9Z_5uOWLI3y)Rq(Jg4&ZjRO#VNhR(GKi&rygnm$;fcA zG>c2>y0*&&W(W4Y;2bCFAlV)w>$Y}c%U7hWz)|!t63~_;7-pAN~%-6g!@UF^EpoBs7N&+N~o8msL%U8S9 zQ1O{^#u$y~fHX-dSoDx}gx8m{{*x=bM^p4k+1&ov(Pp;O$- z#%F-8wW2&c=ozDwLJ*%>CUP%_9EB@D1RZ$(bkWVj-(@p*DMWlC#x&wGxf;87A`8wt z()I!?o2JfuM)%A_0dqRf#yFJ^sKR2R4x}>+H4=mn543h7x})SB?R+5buViu^Cv(?I z;Uu%L+3IQxOD-#eHY|`L5JP5!pv9jB7M97xkXRs!G!6hAffNZ@%(Tfl>c>0E<*KP! zCR)V#|0^oqYBHR2&17V=^>7K6Cn4ChS`rh<)ogK7tfE)c`~c2&;C8!XIQ441G4AL3 zN}w#m)Tuw3(N@D9+g1^6VB191_t~rgm&=aJWrG2Df4}oy-I#VzYE=yFFig7Y}>_WDMBZv^UA(HhY=*ZqRO z{q1)=?swcC4UgkMg5$>@KjYJ{z0bMt&H$Bary5bA>yRrt^bj8A1YWBP_WQr#FR5mUpJWn_vqQ7cm%m()Ec zFh8n|hOmKDs^F1ht>~~(SX}oVRti$=gmXq(R$DVe-ZF|D9rkb5hl%@t*Vt{2h7lO^ zQV16gm6c^N#u<<&1nqrED(*fD`ShKBAS0~n3}lQ%&5U|T3JwkLE6tu_@rtc%tE;UU zw7#Z>TfrAh$&SSEl{HmYz2F$F_YJ$FuViqTyYAT+XWSMqhrD+UNg#0-j!NgWKFXj)as zi38fuqwEypCvskn^MM#A&UT_0iwWdFHXaCY<|SGY#InEo?n*6k*2~^2N8ypy73?+r- z!UbSN5A1yW+bZ%VY7r@7NNy5Isxk#M#< z>UIS{y1KElQfD|Y`cOukbSXni7$0!Z&K@yXbgE^NZDy?(08VRWVD7y&T(%4IHM1=N za`eDRokG%NXy-xL;5d=`0pGaF9Zo$520Oi|B+A2>qiEjYsMPmaLef9yV^F{y!2N94 zYC<0jovo?jx?d?sn+3n@`WRaOhw1$o6v2Av@nyqci4uePOiyTL$rbO9uh=D^riQ8G zCVgl4z!3)$IOPe~lvZnloDv48Et`|;Sp=90uVG~Fuq>hQ8!Ov*u6tR$Lfl`Z4T=pB}wFlNQm^wE(c7ztLXuWGj&<4w+nx^sQoUE*DV zpi>Tg){+{)uy0rLvz*Y%1)+xYh|0vCt_X+2oO)gh7F3)NK`X%l8-@`{f$n3ieL_)E zMJ_p$b1+8dTG=L>u5m@L4~))0;j|O;Y1u^DdJa;eNZK?oV1{Z_*!PA*q2@Jj{5~O5 z#Z6f2z zwiAE<5B~tmSKL1C_;3H?e_|_z*@a`k0sQvmSEOyj@o~qs6nuJn1Hy27-0)xj`~QM@ z;D;YRBl5{uqNA}6T; zRJeBCs+{7H7XcxB1}4SIuZ^jLbiSV@!_b|meum8Iph^|(eBe@teh{r2V6arN^g^CNs0u@cpL8Q7f=#QG^sRN&QZc$?FBu~lQYcy^O%0CW z^uW~}XCD~VP|fhIcWj#j11MX;53ir__5K9|O%shmE>kdJfr5^@0^?E?`MPCF7xrr99x1*vZlZpwJuNFSDND?sGHe%W!^E6z4_Ftdo9TlyK08pV&49U0NnFSDtxrnao$rln#pnv@m43Tw`m1NjdzVOjAR$mw#@p+gK2H{!zBn^e2iOtF z3v4;x$uURwa>KFs;(DizhS7uIsE~#(8`oL6sG-@B^U1;@Gg6CMGefEsXK&cF;_Mm~ zP9ZU^;Xu+fXs&$O9dq)PXGG1cK@vGr(}6doWNcDH`Ir2@^1?dAlP(>AnTvJC#+5<# zVubavWEVE$jWlf!OlSCbJ{G!EN-oO~VL79?FFjcH0u)0UL}paEs`=eF46s>30P5jYb5meA08{`yRo*e0xCV#r=n z{ehR47u@f6yuE$GFTecELaZ>Zr?qosW&Zu&|2yeN<*w{>^@p>N`oqsZDn1MgNSt!U zm*0PbA@KS21sDxK{-=M$X~qlY4u&snTQbR8`k-{6q_swb*1-Gq!ZSn8T$5pgIh=AooVKnZID-vK;;_{{rbs#}gBj-vH18dJ82`jn17OtBZb1^iPm^<8t zM?3Mhy#eNEQ@C%U8V5B8)U&XHEtb(|W|)aiZT{@aI`s32j|7L6j1)XDJnO+2yyQFw z?%r@kNS{GX7r932=!LFe=~FPqLyh`?r5z|;yLP@fk!+y}T;F9X7fo^q>GM8>gV3r8 zo!@C6)HIkgFtg7a~b z{EQ8+*EbQT6QVUWx??$)h?Z#RoeZ;Bmfo@AHoUSZY~wD0?9gPBF)0kl9gEf;a5>>( z85v-lX0jvl^$Z70xq{#d)eKe&a@Z;~0uD>DG%Xng6KP9uCD~RSZ3|zJO&uH7&y)+F zdroMcx-eVeSE1>M!RaNY*gbPC5>B2SQ+7JP%bawmyL5g-*=9fj-Fof=$Jw#v%0eP@ zN;MpuoX)fcOPbcQqRKkpn29%Z&?O3$ZSu*c%dE4LpJI5ejK+%iNl)k3{Ny86E@v|N za3@zwhKd;xgbDMEzVhTklft=5Bx1r)QbkH*G5#PVLe12YgiWpGQ%7T3Duf)3Hg%q+ zyfOgMr_{n!JmocEx0Jaa(JI1&joCCmOfFMku9tbD4%yVR{!UuXIq4=$K4ZvkKAoea z|8woH2Y2Nyrf0Gt+^Em<8R{+E#uB2ZLdRaNqPClwguH&wz?|l(sn7&3IU8vtN=}xP zLQy(%+5{ENMXbTORyXk&Emagva;IzqT03(3q$GwU!$|<)WP$NFf_@&Y24!BcQn(Qq zE*sK&rfR& zj|VlCmRMl^@b&|~-QMy3`|sHI9g!N|U1@Upib$>xl2``r&udgq-ecbS${=Nr5 zdM-o*NJ@^OdpTBZ($&xuOkvI}hUT;>w1t7YqMBqW(wdR~T`cU$d>$uiW11^M4M}hP zxfyV0Dnwz*Kp4;HGJg~XvolGW8%a5CJP^a^*3!lyL8}?#!3{n1OoV6W#kj&L#$>nc zvf{=VT1l}|=Q;zVmRms&$B@$_lr>cM3*vlGhz2^|h8$ex#;6kID?!mbNEtS;v|qj$ zKnW3DlO^(j&erKtN*u}NDKrN=QabxMsiM=p!Of9#C^t=>z7?A3Qlmf#Ot)YwvTp&u1#8snF>`4eA3%p_pk7#gBEDUs2Mli!}J|ulK=5e_x zKQ7>&V404s?*9Bv-ByP;W4dbH5nian!i36_+tt16;ZI9bkZr@TgR6`L4CmC$GMQtS z%Z|}bq`bq&1IPV93`aW(wrk+g-m$?@%ay>?nPrz*c)Ifv%h2U9*C$Bdtzz1m0Ob_x zP@H*iAuR@ZX;VDRF1F-EjaW)gOMJ?rcBfU~Bm={lolKO}$u9FLN}er>C$!N}vI;U3 zY8Yc$gzH3*`}_j6-a!=8j9*PzUu5 zE;nT<703x&+0Z>B?hK+$Ft{%6k~4aFFgNf1WKfB53lZl%JQ>AST6o%`Cto;AfZ%zRTt{ zPyUyXBe@ibZpYdzK$EYjry60x&^U6*Jii6NwRzraYBj=%kTCJ(Or`}*aYK!j3D*%a z!xU5awydnCY4mi>y3c$_(^TA7!Dw=iug_(=ucjR`Wko!(Sr4bqH|tNCO(*d)7X(zG z1L&Fxx-LTu^3Nevl3M_UVPL!QPQe#$W#OXJ-1E3pu%Q0Er4IoD8dh zp2+}n%AcZ$`HAlg2znl2(o;cezsd2Vynu6x>0EYgzIaEvI}i;%@>-jk0R@?z^cd{S zVi+%>0HO$0pNm!#a(S#DP7WDeHWtPaxH@`{o~gvQlu#3e)2>wu#oQb%vp8aharToH zp)@aNKRHP-tnNDUyd0-x)7QgO%eKH`#F zLFPp+jMH)1qUVYrreIpa(-@?=5839)?;tzFBanlkkRt^)D;Po*TS;0W7OrYF63v;e z8Q6vqUC|DVZMYo-Dir63Y7wIo=pr$jrp)-cPuDuP<7 z89sObt@UmUhE`j`VdpwnBglfuavxdUNv(H@j9Zs=J|Vo5{Ov)4wvV-{qoA{(Z0xwZ z2lDYiv7PcOg(90WBPSljy=z1(TeoF(=3mlGozSO9Sn;lZ^H zxi8F4)OE57#pmU&cUHM>)G+gR+9cqVq!ZZ;O_OX2!X10PV&4v=P0S-?hJ*LPOE6O+ z5OOq`h~<<<8A{N($ls-ip5BFpQNxg@+fFM`X%eY_WZ@8+^7Ww**EC&Va(4+Gf*8n! z=S2xReM7cN=50cSjiz8=aP;H20exW969F>N5|kW}4c;79Nr4YBm4KiYPKJP?=#>yx z&}Jl9@Jv`j`DwzD7#8|&0gidc{O5wx$dn3F_BGuh9zpuUnZ21aMsu$4q|Hlm{YA2+ zO;aWm&v1Q~F+-SFG3?L$&6K$kT+BY8`#=@<$5(8VucC1XGhzV+Rhx=YH9fwrs^_X^ zO#tKh*@Dj7FgYWGS&wu(>l|LwME!RIFp;;-iT)@7xM}L1q5MoB>tDyr=C-HBr%@6T{KEw1v|N`yHx+_#VUAPK?pfhGD2UdK?Ec zQZt{`pMLs`F&yW~LhN?CaRoUPKo24mIGG=~-?{!f&Qqc1NfSCl>jQo89cyR9<9^5a zxS>bj$DjW|H|WV?>VCU3aDAie_44w9O^GK6vM76N*v^J;@87VMif>=P@=o0{zI}V= zDz|mq?W5^|azYNq-?VWsCT1p_TR|IbburJtS`C%kDM%s^ zb)zj>yVvdmshwzz%&x8M2_k7W-{ zhI2GhTIDbZ?|QfbNDuS@ITy%N+1ACW6qS?^(U@ar4bHF~v1|$tiwrtsav^9mC7f-n z%rb_gb{Y?A2BbGZBEN=V#_Vu=Hl%GwdQhZ4$-%w5D99|JhB0Isy`bw+BSIiym@lYb z7ztoy>-t5iI%{OW^@Z@qJl`R}aUwZ`iL_;Okc{=B6tomT4*^ zK#t}JZ%E$Yxsa6wYGCMoR6>#fouNy6{!b2vJ0v)!-Y^C)_~;G$t|CnunJ6lt!s*h} z4-=h}9ZZIngzD~-qOLRn@#8F+bV`OuS#Kc^a?3<~KrX6TjD&bjrVE!Bvhp?+Gcp~G zTixiMtd;1FV7He_)xj$9yp8ST&nKE@(8 zPg_3=5(kuTS@K4bxpx&_NrGtdjNAi}GRkf+FYwV}`;1a@1S-6Bf-zIUa20oF2 z&Q+EP-NDIYXx&F1RFXMjlK*4$73Mvq7G`O2ttOkzy)%q@S-!Kxz0#7%y=KXm$lq!b zCEsA?s2g=po(7jFL7YY^8+AmbkYmQO5|(Bm?#h9DPLjrat^lOGQNbQu9dZIY^W3I5 zo@H59v)ns(6FG@Pl%&z~t{4)aBsO9_#)_v3GkDh-E{7)9dYrskGFV9%qBJK>*xkE| zY)!Ml7%3NWB58eX(~&%wWf__GLpz_YG_K)x-0u(KWpaY|j_tB5yVr5M-O)SKH@0m< zKO0VE2wEvP9*-xAD2cdk39Ts=B+XpbId#(-TSV}bGICD1-){?WdbWY%PC@;|p4{&@ z8A|~7I}CyCdcpBH*l6j!X{~X+SA-@gS>Fv|xaV=;7>=V+Zg72hqjV-5?;jsH9(UaD z4}AOffqlQ=<>iHUC?9nC&$`91)`w=9LD4q; zf0Ip{L@8pNRb2?B+4mQPcJvAj0U*O1yIG_|+ zVJ8w-oHBfx45wUVLHdfhdIe#f$(BX}nOR3;IO8{h(~KM)L!WB~50WuDs@9f0I;v;n zy~uL@fMp)4EQ1MbJKF<6uf4JynLy8I6@5QRt}UN&94uIh8L|Oqr$Ciq$%ir@X{+@< z7+PJZ4;w-Lk0T=+W%SV{ttk&7%Pg7Fk5Lr9#7WupFHxpf|cq2gr|rJwGsoOx-JM1L~a*5e7f%aen| z2?;M_S5WPsR>J$T*tgb+1qs(msHi{!#yE(fK;<;VrLVv<*f&iLWV7i_$4p?7Icx9lI3(7I$@wcm%?#~6z8OI7dU*mFQ_{1> z)-sFjm~&pSI$SqlVF-vLkzfSccB0U~)#b z=QEqKimt`OQUnk9ytvCP?*WG(q=n|2)=!+{02C~p;|Y%CVUbj;2$a+iQU=M8;4 zXuwgka=l!z?-$}o#Mo=$OR_+Y7tg1CJHEYt zpp=aJ{XiQ7zyJCh9$moZ4!l3^zzF>GqIM5nUwhIf9 z?^OD^R%DITxnWaB>5L?q6AT#R0Fn_4(epqb2S?Wu1jm4O`-7Y(&kTDsiq^%#wauA2j00tweMGHF=)9)LN|NTngzv)hYBC;wmw+X0!ukBSY}uVNEUITc%UasGR1YPe4K#0h1t1>K(o=Ui*8&n^OygQENd#K_X7XiAXe z91D`9y>(>_POWA_mZcy|WNmWtoac!?fa}YPzNaiU8O<%B?7B4d6#@)<@A|u+x(efb zShoMMV7bTr9mox}>?)p#BWdRY7UcT%-hhJ_;Z~~x;VE|Zl2@F}!Y*j~kJWVPxO7v4 zrzTRud-kZBl0(8+xv6cfk&+6wrCyV8^NG^%a0SLQGqg)=?YesU;N&F*n?;k}WLW}Z zD3dck*;|4z24b!1vSqoUryI+OUBH|I*jjzfA_B@ubiH3`3W-xF=T1eMj2ksONoOg;hr@+>pBEneXYejX;t^||bJoH=ZP!fH|?rP8IJWqdpJ%TT+Q@>4wtB{sF>lG z(E>=iw3CS%n+?%5(vA?3-qdYot!ZV$FB^f1LBaR(|sU zYL-AZYf__vAO>|t84A{AFA<%Sp=#yULds?1rMCP6Ec>F1pxpOc3p`taz30_?&Zz#fj_ z>6w%1Gmga;@5g=c#ml#bbT}53EwO0z%Rnf&M^pZb517LMnP=903iG|`E7-hm|z_TVM9IbL9Bf@=&y59d7 z1Mc~|t~`*(caAhosXW<26|88RIl-O3hhu5~`WONevOt_d`04f{Z>uBaO)F?yYt&?! zLT6!DpbL$YRSJJgt#Y>UJ*$}$Uvxt|zoL{2>ZLAH|D=n1B1o{Lj1f~v?@RL*2<1=G z%@=ch6+j;|Bz6K&pWjPpx~AJ>ITL5sKJ_9q?0Tj`06_F1ttu~}k`k@=&Z(P6Od}~= zS}BN}Z7FDRx3Q*|oKdAkruSgBCf#YiT(48-;`)wr&UC3Zt!UCTVA&J+JdIBv6EI=E z0%V1SQ(6(ppT!edbx7K7lHfj zwpeYYvfvt>1@=!r|A?P{{sERV3G)4cFTekWx3?dVN7DG}JTazmm-i!-#JR^f9wLPV08UzcXP|TJvHR2D3-n%q4lYHPgjTC|3 zFweAkR>f04sk@PS;x$&o7?j2o8?G0dv}4PJvbpTQKw$LFj_)bmCu+c$Jl#7f*>rM& z>GIUU>XMrex-X7UGLeGQm}!j^ui1Ptgo9j7j53xM zUvc#X{3q?vePe%1@HF$`#5k>O@qjzj+e_jwe5Rv$>_VYkH8ndFD z8Ur5#9SNo8<=!ZnJ7yRW5`K`~QU(XtGz|m{&dVYNBG~uy5>0vl9H!i_nJM=E@s3M4 zuF0?!x()B|Hy9jmpFacO1g+$TeZQdT=a?|WX&9J?_>5RdaySj|aC15>GheRrJSY-A z52SWtuS})qb5aoP#2B$Z!}s+;#z6 zXA#2Bq>l%3iWPUsY_qJFtV^{e5w#dZkh67-l{1U*m2C#Do1gI>wgkzuS6`8F69}!! zp4bRq-D}`EDKoKpW^_d|(;9M)#in**7D`wG;G`A0l`I4-Rv_>C9%o_o9q~Kqf}86b zu9(__cuo`vx1n^$A{qi9Xix95JFyE$b1DIhu!T*~C`rNKSV{E>h7m$S7*>bqW1#m& zmzx=m#~rm)fkMS(lSn*)MFiv;nwOW2So#SM7K~XrgR|3pNfohgoLY&OlygD0jE5-= zpk!F7T>n+svgf+_d%cD9YN2W2T=pf2-4|PW1;k2g>Cfk93dudbbJpp1m@B~VH7K(X zvsAcB1SdF=nDaUYSE}&A3$N_+M$pQGtJjp$Dy)E5jG#Fy8^g)65~5?wHd+PM>CA)+ z%WG9NSG0W$vGimvoH!CWdp!*I#{-w0Zsd-^;*2Grz^U^>oU2f6`W-OabTKCBbmy8s z2`QpzA(Ms{88xvnD3#~cTIXqU0x+Eg5rm zZyz5-1MNFPNQF=UIkMsP)62q3j4`BZ4Q$sdybt_xxlq6AbUC-y5YC+3Tnfg~F*1=n zeRN!}Z#cevG_>@YlfK%61!e2vz2-gGBE&o)gz|Ckq0Fr zl(}d!tF2FRIjDm({29YDH0dfl2W{EUxdJf)JzFP<-PoN$7rVQ!ODSOzsxwBM@NSF3 zo3<+KgZ7v{)-U2Pi92Twsx3W9QiM*<7cK6-EZz2Y1Pg_5;UG@TNvqHMe$ z$jW_ki5roK9%GK(bBF%@Zku4_WWpJ15u}6mkb(#slk|qIjo3b({^T0UUv{?QkQZ+l|7~ah_#q!O;$Eh52;dJBnqxlMskpkwynf!f~7^6}TAiI36tIO2+N|9aai1J2RjR z;95~rRu?CTV}H)uD2kmLsl?wo8&{V`r`BA@BtczQ0O$%|ep1j07%dpen=_SJvs({v zB@~v(dm`6;H72$+Zm#V-kAyKCB?}@srVd5j)qQlQ!S<^QLu4O+-o9KuH-XS6p9Q;%eb(V!D?#nTXDbz1W3Q^`FF;bHPz1 zuhk6fX*O_8Y{_CGree%O6AnY=6ix5OEXc>4K6}VC15GI>$I+IJ(#IgB{kqd!(VdZ5 zg;I}Ffw#9So^^30Hwn*+dk!9$k;@fkYjh~jt-=hJj|diXPQD*Qnhj6L1@DGrPhMq` zL}0a>G7cGx0}BIs2in;HH*B@8sdvo zQGJBta=BoPz_%~o;Nf&(iv#$6yD<|H8$5!+_lnaQ<|v6%^tVr+kQ98*Nvp5(%;Wp1 zq<40CozDx1>d8GSP!mgyjJ zrI@G5rf?F1r(?^(1Hywr&eN7keEo(TO%XZ;2FEbk{R@Bwe`*^5M5A^o@|@QA0@;~# zBRLh6l$Wz$YF2VG^!X4k*OfXPf$g@-8}`d9+IgplI}x@yMn}p+krN#`3U|JID;U}v zg>f%~Iva*$muC#eyrc!TEJcFXM7y$UEp@3ouGd%i*^$P;s2P{bhFpm+a6fRV1#TME z$BeEpl*G$^M4&9fe4#E4%)!fYf|{lw5rJA?&~eB9S_qvCV9Q*YCIe6|uwe0(YeJl5 zgb8vI(tB)RrB`1357$d#jnj z&ks)cE-zO^7xgSBRdD^fN6pphYoR`?y8ZKK!O5|dVb_Y;l z(PY<8Lci!|S%LGSDU9O`1#8FH8i=+rDao^aPB^Gc7tLdZFRH%>m+ zqyTF@!-^u5Z#b4_7y7PWUq4f)*}1-1z(-BjQYsitIGmDY3X={@XK{q|vFpm4uGD<^Zq(MH2o3bxBt!uPS9+7L9@ zm##0K?~-xzkp2yUeG*(4H^zd>*7-a2;50)}4wclz{Tuz`EZ9Pkc#{j~PyXl3k_^Rw zV!8Hc-ATfcS(F)`T z#nUD8z4#Us`;nTeiNF+(3PDd1hE~Je%Ge$?=Dxy{f+=k+Ttjiv+t}FOb!+F_Rt(xQo zi_MfU!UeW8eYte7(Yl*~Eg>2-Lhj0G14^#ATrN29AfM`S@?sQxk!uAxKogyh<^wrx z$f+RwKo1j@8R~F5veDu?Cb1q_4izSk*P-t)6QnrCT>@`8G)AKhz81!x1obJdOJ}ah zUSB_PKXS|r>X{^t5?w7QXnwOcTNtQWbOYVwE0`j)8;L%j54+?%u+1NEB zkcIH@0H+u+yL{2`U0Md2Pll$W4t>TxS1{B?jtR|F!8ZT3yIj8d9!2LQ4#mE+6HSSM z-oZ)h4#97?;AD0LyX2`CALGO*6=_f;>HT=KslKwtra4?*(1_@4ZKkN}r6yE8pqRhbzP?rsO=g{WEN+zn7Yd5Cnk zgQ&Ti* z4bzV^>HCQ8GjmKv8}F;*BLbDO(mGP7;yqMoOter#a^Fz5jwR=Z!9VbK@0|yup@gUg z#7zHIEd`n)vhRc4y`e*y8I?#OM#L0x+{bg|dsl0?-sx|mVtHqhvNf!y6Pmz(Cayy{ zMNVACfn5S}Vi2m91GkSWj;)}Jp&dKq1MUMhyuW|AuaN7)eLJ`=#eiBWN@=r#%52B! zawdrMWGMFoF+^OqJC0iL{l^>6A((;xr@Ht zgFXyBn7{?2iBYBXsCtUi+dn3Q4Sm*(v9`$`>@BYtlG-LoL0$BLK2+Ln2EY2u(IcmU z?Ch8lExfYCf=+N}Df^>lrF-;R)gR0us|q9vl7wki?v1}}t91gwM&#IZyzmAMHkA<3 zFs1A<;*s8%-jGo(K^ZQIVyneJ_yP@vgftba>d7ZqV`F{i_@W7`VKn7g!_lq#Nc5nx zklZt)^G-^GYoIB%`sp>qG#5HA{Ne4`#Qy+pAaBF7VNgp{Rdn2TAF77-vGF-=*r-sc zxSa0v_XtDng`)=_!MJ)|!kvYzoDT&TokhP&k@#l&`(Z<-6g=DS{ z_z0m@rlLl|$Q$YFaUe;C1=d7JDaeV3?zm(yt?l!2{|qt&{ixWt4eR*{)(U$7JGm@z z$%t`5*$2LC9;25$pMc;&kP)InV8&w`nTw=0@sy zDCJ@XmyGeLkQG1@$-x;Pl^P zRCDlv>SOvbt{wg-U!2)2pbq8h4k{&`+MI+f#>>HymN`~2Gvt_Am4WWe9z)DJ8CvEA zm>~v7TY2?MZ)kq_k?vJ5!`tNz17jp2ZeVY25*;0etyMob`w}=VSUr3)?1u-`c6gd> zc%ICADg9s@sLlZD3vr(nUc*2w^+2hFFT(pz(NcqmA{KM)@k z6|skTKyRb0c3ct$>cNJZ{@`x~Ux$X`)&{IqxJF9!w46WhF=eOU`z6EQJ?r#m#z1AG zyNMWXHYO5>EVgRY^SIW~D;%WzzJqBW8L&})e`gg!r{7RR{0C}0JX#Mk#LSM{-Wz&z z=(N&;Ut2{E>K8?GgLLyX!6qka#kN zuKAh^ynlRE%LrZo03ZNKL_t&#LY^XOqzZq#-H;@DU#!;+d?5r_RrK}$W?Qr99^9K9Q)Lu|=)u+Kw03G-{D8`Ze%r1@4!Ea8 z6A%0Al2DHg<){dm6)#cgwL`?G+6Qx=PMkOQ(s+~SB7YqHXX&)gFPg(!bmVE_DuxIF5TCaO*5VOdP(^D=rd`&32;JEQ9PM{BhfJD224UeYpae=D7 z*AsZ{ZN>d|Bfn~0QH~w=_Zxovc=JMK9}^{x>DILH@?R=StsG-^n%hgM=qD1^EjYUo zhEfV@ZL_6eJY&@-93e)e6d~pC?oeI|x`jvj#>L-lJ7%>E_iny3Ax7lW34j0o&K8iI zPDRlI$Cpw)(>6}8|#1k@g2*uB4&n5 zf(Y6{ghg^(g>;4Od`53KB9vagK0CbJmsJ^!OwBKdu5!9+JemO1{eJ_SFvi*xodlo8 z64UZAF4q`-Ku^Mo*Tr@BA`bGYh@c$B!xeodoW_(*93ZPfpdB4`K>j-KGiv>lK~`or z5})FVW`<@$4v|t8w$^+cGJbiN$ef-klhckzUBmdGn!#!%Y_L?{I2?K5H@V>BhGA;u zF9Jv$opf&A93L{gBQPeOY!!eM=N$2-+>Ntrq15ItctCNHUyX~B`J!RN)FuLPXr@8^ zMm~64aK22L=n9)aL6_~-9-uUjmkKJ;7$c=A-Crse*sA-&&_SxcN6+hVj1W7rCYVR% z8BJfD%VVth7@U;um>tpY`a1BjAwVqj-Vvn1wb!beV5x zVmcQ9<3Mc(+EGxg(mo|lD3?da6dZgydes6(O4O@UB>3(5Gkj7$ zjp`mI;dwCdqzIgK@?a}*L4+e5cnhl!3%RFMVn|GNx_V<8Ac5`h0nrKIHow0Nwt{uU zwBY6W3xg$bc~nj*M=cLf?HGnWoLv}x0XLfyALF=^-h2!;%+sFMby722I`7)~9)2># zi;qWXARZMj?J@Ebn`tih}O7y4rP%wLE!V?p3PZGKY|4F zeK)7vvqRLppjkZ8tghU}5at0a=R7?)IVL3Ug&Thp8%k&!W1#HbR04a4t-;)jXdSbM zaHJc@yEQjyW=U zRE&(4Kn4l&tc6h(547~p*88bIGw90xNrk|Xzy9YK%59rotf1;Z={~EAx{r^?^E~~G zqcTTEWe)=!%@2T%Gosg}Kb|j$BKmV5KE30-6bFa*sw<*?Z5V2^kI|ZU#ZEIiB9?U_ z>&+pz-5>V-IIwL6+fnfLal^J(9HnEs7ks>5al778TgSHTunv6OZnz&r*|5rqzg;;B zFR#b$I9(!y2#Nn~>mIqLZ>x<( zTRWtS`!UR^-s*{q>XpsvH@Hs!kw=3u(n#KIHGBpfXAZ!sqLsq$9TG}y=weJ}`FL#l zV7dX-YfYf2tr1Ws>YqnTnMm zpoIqX>f;w4{Im+197vj7Zsy-&)D`I1NoY(1Oi;^?xSV;&Yn5Zrz=LTo1tBITPKwj8 z2c*`&X7>saM$qAvK7nvMUsM?k0Pgny1a#N@q8GscHo(qxd#y*`KxQFQS`#?Xaa)hw-0{c(6*@E20Vpmp?LF+J2R zq1yqC$xXxxbdI;marnFA^y{HujP#^l>AZEfSx8Mn{kZLm zE2LvBo1@?H7x4{~mNfg+g+}!lpKuzqTr}5y6b~mj{huQhS-V$fL800nK*R9}jDt$6 z42w7dqV>TVYxD36?_+~CK$9O9#jA7_+BxPL4F$x}xEVai>?(v?19bYJbn?nb;eT*~ z#1RqQ8VTwHLE*};xf(RyE739WsBaeX6~P=bgd}iyAZ{36c2PzAq*;rA@O41mk?f{_!N~=XVq0RU|kYY zUXWrWG6F!#3CB@TYw`C3NaF$naQ`eFA3r{DyYJZV99^EyD=trGlw*WEI!-yE<&~*F z>o^@3^jh)!^2AG6H>71jS{A(h@f`>Om-7iZM7({x<95HZb}KJH26khTw^&0z4xH0U z&sYd7G;hAXI)jcr!SFcfk2TK8{R2QeUQ8Po?GgNO)kb}mIDChrU(#Id9d%11NocJB zAyU;EVvGA(&DXfG#%;o0ToioVC=I3q@#7Egbv;1?BybUtuJeW_(!HOMn|_XoyslnQ4nxe5Cv%}6Ca#&L>DI8yV1u+- zCnG}BZY>2VWts%d{Q?SfwRsvBiI1qS8S9w5qNI=5v#VvLnVVjfe5qbxJ-L#|LwIX- zcHE7QtQZq&DL7>&N9um?fF*)e#r+E%Ih{~E!P$*Bln|mH)_hZt5yA&*^Tmz&-K0qm z!({Mz|M*%mp2IOZ(c~MfE4#g;s~39;>ENT%#O#sqQ}_6wRahAR<^W%>2~qDg#3$TA zhzVu^)*1n&pFyufo#{Tefj-zk>dMXlJj$c6mw&%HKN}6^QT{lI+2Zl$vLEx{QCsn@ zO-F6SfOg|Mm4nQK1+fK8T@L6#Usw->!UI)p zNI6c!vACix-F+W})6@JSXu=WCAnW^>uD0rjY@NKUVG5SuZ4c%PyL~+Is$>{Y1Nxx2x?Lem(XQ5D2?6qRsuIP=22AS+Ney$o7F}cSxEVJV?1cj~( zlJlk@KrKWlltQ20x~{yutD?3(!!tnynv-`*I>tfNgCc?$1D16`trfLw$V*1*v{yvd zoM7)8Rp3T7NKLU9jt65*9E-P(S_@PIj%^2;;q3ga7y_2K5LXcdW#3Ut!ICq+eSN`E zI~EaKP8amn@cPROK0dDW((VUB3izkrUXjy+??10dIpWkRG$_7)c?Fc}Sv%mR=Dx4Z zA!y?ssqo;LS7WJ8rHRi#q@87=O&&^?xOKvu#HKn98#-^+V=O;Z=MV$Iym(9(AdeBZ z`lWwP2u3%dU(7`np}VO*@uCsUjjrMgb@%x>H^t(#+#Pv2In0umu_i39)tM{_K7OEQ zE4ncc&Fc&-vg*UVAI<7KiJLmbx`RDm%Gw9j2xZR(8rm!&md4aogds)+!h$FbO~DF> zsL%?M+WnRT^+T3)_m=iKN*d{!kRs4Xg6>{}p*H@|G&mxLS<54)o;GW99Ejl?aL)sY z-wyJ`CxvBlj7UKapzllFux&GqG?*piN$E(h!4Q(4++9MI0R zX#>{kH9OipnHOF4@Nt<_xNSa&;sw)uS)ds?((9!mV96^qE<6zBr+HA1G2;4hgNPvK zvwuDTdCk**MX|IZW<^XF9QP{%n7G;Ajm7P?1I?hCkz)1{28*T5cu>_L1&dC?vv}F{ zIDCj3WJk05Pz%(F-2zO{8m&$2x8x=%WSb42j`@Nhk$$7$xD$bzc^!!HOATes(^h>( zfDPTtyn}=8Y9ADBorf|62ZPS>&S1ohgP0HrF{?>rj+#c2mw#7Yp5_?pQ!>g1NYkN^ zJWUf`8IX9}9>EGVh$r;KQ?qan4-Zl9^~;ay2?jQlc^a=DGG`x2>yYS7sajCWf!a1i zWW=<1C!0;*SvS5nLuG93kwR1$&?|d5l^BQ+5_&(-TS3an@hKVT>Lbu`z{d1bL`O&v z%G$_p8<5JNQ$b@4z0Gv=v_Uv~iDTD@sB!33zJYd__D|$<(#g3ddKtC*JVyGd`Pka# zg75#ofxj8!?_oxF)i$C#{(}Hx{-BYE8NY~*YMa5ZYNLBnWL_?081wyvPHTy4xFfOZ z7mMBxs=tyx1xkFx->52e0ojGtQKdT`N9Ok$jUvHI@7p-YDi3&SK=la-_{ z?T7tPwRZyWx;blQc)ARE3C@mUQRKWG8LM;<0?@jX;5lj;H#AB9J3_oGsvs|mcZTg# zii9uD@WSK{0U~AP=7v%gf%b|P1Y6mmO_7!eXh$noSY5sJGk6CcaNVwa`Ex)$fMv<3 zr8p3eNw*>IkDG%SRTv4M7H7z8DyMO;k-=r=)cb&~0DIZcnqlef;Yspa1HF1YRQ28w z5zrJsX$YrfT_TNQh{0nj519XoxhMdP>Je&!M`R+YjL}O3@)zjrM`TQgW-5svt#%Rm{guA;y`8 z8%eaWnGMVBAZ@qSq3~vVzV@@#fhd6Ny?~gYOn@T=RFbJ-f>H}wdBoJAfR#S0j%xF9 zq?@p<8M?>v#oxQ`3MR*s(Kk+-ze%6x&zmEgAyUjZ3h^hW^~Aa>H%)7d^D_!#K^Jp- zfGa4oV^Jm;7N4vSOkLVk>ZYPUAe#6TYMLUCetH(i=#_yWL7Jo8@toRBvwDApvP^wk z3cHW`s#1CDR*}MK22)aq9z0>H+0Y&dD<3sBr=-K}6ull05WArBuqM2CI|045f?k<~ zWwPG6UxQob>Ts*{^Fhe5Qwi+g3xZY;uaDw%qG8knjk0zIW|+F}gAPXviP2{p2S`@~ z6LbdTe4)BpJNDzil21?pi<7ORwZqXQ5u%2aeC*aSFaG;|$L+cyW~L!E1e`8sLPJ|| zJAz@W_sNpg$TYeRaQ9K5ks+y<*DtP;8h-wKLoGMN7*QH8uqx!|ngTgzR555L5xo>D zuBX$A-VE2<%?}*vBUHiZv`(yo#^4^V#^kxzrybXVw;$iJ9S8QhV=o1z60|EZV?Cd+ zE(=OMP-{m%tvI#~>ym*luQ>L1l!=X$l2PLJncy_Fk{UZomL2{k1ci3^CesCC746tj&9JDO z-Xmw`69(oTaqwBW+TyeHz`3~}70ovu^#!T5j^HNzC;=hRx6{5_u%FeI?b_4{E`ZBJqKJMx6 zd~LNMB>Ik8tyof?<7cLdsH9HXs13rmptr*0qK|4Tyij*AvO+{}2c=(SF)K%&Lz(eS z4ZQIMhX)$OJw9;5{ozNn;RUm~aSxu;=*B`LHifBFj&24O-H%c9qG|N^Qs(cYW~g9C zWEeNrPDm#Yk7;5J-mmY7DdV&xh*IU~rl@5@^hK&$ z8f+)~Zvqm{F97cK@HIz=;-iBH^eK7hBW#Vy>Fe;CC2kfxbMe2e$IjCErMoKRxQt3x zUmulzK0_8abvHC0{h7C1cxuYwkW8C;?__lq*S&Mv0Mkg=?nt7Wp|tM%1btAdhG^ow zi9oLmBf(jB9S$*tBIG==1jIl@|5^<(q={%r;N_uthh+e~{GEGSj1hX!%M?O#NF-ZE zy6IE|Yps0tT%ic6NHHKrMN$O{(02M=B?xkg$SHV@lZy*Nkn|tle@?=BURQ*~_3Uy! zVObUg4S0IGpcazhORHG&@_0s!_=gYz(&d6)*~u!#10qDQKAjOfFj9N-oCOcUEk-Yd z?;av+_<6tM-+%v(QVNc3hfjKOY&+gRt_~0lSW?EaM3mA-kpcGYj{oU@_%Dbr9V#6O zf*&6r2r=M?TSH!+o)F>_8gHtIQE}{d-0vR{30M}z5-1RSyuahJp76Au@Lt|wj5^YdLYV1lDIe0+Q$h9Af=;rZni?Y80l z?I-THD{8ISl{l)S>@YQad40w8=N0?)hSTN5vFNEGYMTD5*{eD#)IhJIddN#f5QlkP z{Dr2E)J?J~eq#is_`p6RYYl11bJj1)L}4#GYWcth53g8*14gYb4tVz+MidoKfl+F%BBKq1ByH*3OYrvxXv@ z8)QM6bKhZM7}ml}51DUTy;qvdU41c8nD8dkYa#pNs3?bH3<6N4axv(b&_3(zPK1)l zqb)+b+%#!I?Hfe0n_{acaw4P^sC68*;V2tQxuKL3f<|2H9Z>?>eM38+aP%GD|Gpug zFFr2h&1T>3^vku5+7B#gb-xddeWE0@1D#_8t7w%TGmC^eqAAJu>x!rH5(pzS zBVoGqhP)={bt!Y7LI05Qr`huY*FJ?QS}onY6LxmhX?VdghZ#(16gG&W%aRFjW0 zd;|8H56Gk2jpy|0pNl8dB*NN04VT@$DKdbOZj&F-Q}Y8+aC3HZUR>`D%^F9m5Wc@= ze8#-YwDsl?)rK`GLIAe=#`t%jAzoFn9S1^a$T8t4cjRS#q!)*;vUeoY$N0>>LQI#E z#;yLlL;6f<#u(5W+Y)N;SdyYt@0nCQFd+l@7cdWU;)S8=>>#T9tZ=bb9^<&d4a$j$ zOjnA`F)ggwVREYv@NqLVRA`KoO*Bf*KZ9u1kF5Vtcw;tuUS)cibpD&VDh9~JP0&D# ziObOmWDZb27|e{5d!zQQs5;;^C>vpeRQ{j{eMuAf|xYoAVZhkXx$=F(Kwmtb(f+`%zHq zfxJY#JU?;0G{B4(%uUQ=W)-=iq;!)%-D~DKmGGR zW4qn4-EUYeATBGcHQcuyr5w0CKjYZB_rPnfLX5bN07#0+%ZV2RM?)NqEWxA^Z*T9o zzHQw*HJ2Jtw=H8fTENG_ie+^A3xmr$7eo8 zdhl|}Cdo$Y2cpu1cl3rHoPpGQ6LT`~UJ9ey)v4B{;%MX=B{M{4wA6O6S22*w0~n&3 z`*ON>hDE5ba2wYvZu<=}thn9Z*v}`5lmx9MDrCxJ-?Aj6u%eb7iiZ8R;dDOv=d9kv zD8xzls4%7kD=Q~F-3_Zk&rnPmL8!=S3`m*CiX}e*MbHxuS1Ba4NU5Ga20;j*q#Mo% z`os~1boO!lK8d2 z0&$o?t)m4$zm0x6S8P<2%p?Cffj0XGtq;DN%znR8d81RIT4asgnd@>wZ^g%lJj8_< zYF54~001BWNklNE$7M(=B6n5Am> zmU}mmnxT~gMS$AM1c~#c~V_~h6$eo0V-cQBXK_e=TIT|KygCu!z zntbnu93mAzjT0)`9YtWyENX37z4{!#u)oj!XP@HU!&qw`Yv+GEyl^^E4eA&Jj-BId zzN4GW)jkJhQh*iri+xgyW(}ENNYRmUoFh2%=Us!kN~PR9dqa%wXN+kY@yP(f}e>f~E#P=w*N)67xpP}#iFse+1C5EeeyTAg#|V@X#Lo2QEh@}&99w$}pn z8W?nr-D~rRb+7I*1NLJ_X*|g8_YFY>*B?LdalPT`asjO4C=JI^@ciU2;v>k0)>)z) z1K+cCWimD|8Ra-|yWep-udX(BSfzitmdc7N5!~+^?)Pn8ARwTzeZZg{2Qfg?&AL~R zac%gQfB9#8{q_n&!%=CCNs;TMX~20|U{HL#zv1cm2|s_lq1T3-GeiO|rxO~emer%+ zbUHzT&3d$y0)n?$bYa2~9e8~L7v?`V*pccjR z^96Y!L$g(0MlY8qlu~ft?hpmil6V-;3!()yGlz_}IUcXI`gr6YBhrCN770s| z3lMB>%DoFTCDi-jD0gIzN!5=>8n{TSX0iv!KcrHF?zzd(=b&EDFbC3e@gCoF)WQMkNw| z;3tRSQ-EMVtK1xy=!%mHd6&IGBx6YtM+MZOilsLQm^v{uXVGwzwQ8`)1*rCpkXamU zv7=XoA)umQAa$A!uNMuEIV9w~pdA}ZFUXn@V!&aB`*y?2^RIaO`Gb9mr9vcgyyHHN z$H-++xy8p2PDA#BZFoPWWLITc<#<^PQ37&I`1x@~%p0@=$8n`m`}9PwN?;x4^La!AfNk) zLI$CJC`Xc_o&v8)F5#|mWX>VXyRtu zdO-6+v$wb(&cBX9Axb5+dF2h!3?m(5^hw4s;gttv-c>G>1E0H-up(Zyn3BIxnjEm^V!& z-wgg$#MKq{tYRV=20lh-Z{<*tTCb0&_ot%g$-|n(vT-uxW_7j9Rdz6jOOzjE98ZWd#5mWGZe48kc!Nlv%CX6b$9UJb~ z8}{wM{eGXH-@YH%Zg-s46E9V@;`(vL`};eBDss+9-Y@t2-@dy=AUK)OlYzCNw~l?^ zJiDaWwjC+6tMTc4#@And#oO(Q<(#oy@A#L0`UM~NJAV241+^RQ?^j%&E{OY%m-K>^ zGis?g#ekQWXK0G}+mG+)w;MZpMX|0cVhoTDq9c^}ky0vBjFWeDbG9QI-~V-4s3z6} z>$<@Fpfx<5tv7F$;6-6cVUDTI+d)RHnLx0_j8f?#tF@yYEI__IzaXZ9;~-31lq?e=L=L7muFg87``Iy{p4)6lro;4pK)GK_}lM)MXLv% zE*Iow!N>at-ag(Dz;t#94EQW5;N$Iz+jVypJ0Yj+D2{?s3zl{93b=$21Sv#R6i8wN zO+dhX+vevHV?e3Z>H8l32?A~0J0gx9JppnAARXRNE~p)>F>%6i_gaSSIFN!)4?+_~ zFd+^hE!-3$Sxks5fR@%gt%TWL-d)}uH&=+^(Ra<;V(-q07%3JT^)ytN#2*Su*iQ z`YT0I!T5FSG=kUG$kZy_bjAocI&f9J@m)YgA+HN-Li~G_LPP>0!KtD=M4G2f&6p1J zr+to721JqLqyZ@9$fh25wu!~j+3_llPLQB}SvtIb zO_@S=_*?J_n8(l0P)&EG8>1w5j3&p}a-EW)*oML#x$>#Z{0L<4m^!f~_3* z@%Ba~OatU{hN$8MpdJ-5=Lwo#mIar~1xG2kJU_FtEH3!>|L?zHyKhu#YDLUM|8zfv zF6+ufxdwD)?_o|EG11Ob-G8>E1PKu@&(El(;_dw>541T^`Sa(vchdBU9dfXA2<|uL zzR_FbAtxtSD;4L{87*@3%D-hH!M%5sl6~Tw6|QhCXu64g;2^g*-|_PDXxNB>aFq>mZHS+K#9kH9UkT~BCi=tQqkg@GMVh4*M{dCL)2#8_9 zUfz&w#eUEmC5aJUYm{fVZG#3uHRIv}Ag2Y0f@3QPS+O6*y+#q+e)SmtJ5(dKQXm~j zi{H|vBgYd;yQ9{^o30IuZq9mjScEiW$R7sQw#HUN!Y${bui9vj9;nYm+k+@Qum zU@(a2gL5BF`$uX$y(DgEjYN=i|DuWr^IK0)_r__Q@Yn7hY4O6t$~ZWoxhXlQZ|cDrYfRsnS2JQH zh0U;Jg&FY#F#^`Sg2mGx1Nh1J+qLmPb*|Qm+8rHJyK|>p+4OW|tvgb_K&&G~vYrAZkK&hjChiDLZ;X3?~5bc4(Xw{&t!8H0aPQ^+@(5fLMZ=mpUa)UA%>D5!> zZ4o^P)GvDwc<{%u7`;M3FQOuFoGB0VhPnbRqA95o~w z1Ef?m7&&b^_BgKRm z0@6Y>$oaD3WGn9XI|M+A31ug$Cg(I29h;$pj_1n>m-CZ*?-U^=pzSbGJU>6dU|5$0 z;Y-AQzd=oq&nxPCLvRJGlnv!z4Nq$gy>zt5i|lD#(Q?PJA4oBw^@h`Fb?Xe-i^&f| zqEx+(T99+Xw%_sn?FWJ?N@eMEx6zvz<^@LF`^>SpzfUT&m-tPtlPOhOovP&MOtlWA zyh1-+HrA)#k(AXyISHO$Uhw+*f^}W-{_&3g{Qd8^Z#!x|5Y(`hitEP>rBlNiVp!)yv@;xp%!V5ujpVV<|2qMTS<0?1rR<`NeTh#ceJRY2Jb*2E3Aw2pN>bA$`v*f(SiXkyrof|SmP5>e`%W2%rQ{hR6veP`zM z{E!!fko@^kw8A-b4*|g%_U($N^NJ{npFe)$m&;eagpmw2la3U#gDDO7dPl8>)5@{q z?Y^<}xbp9ta->4J7o;USWoT*-U(fpwRvxCnG$nFF0RT|Nrz!!=Ba6qcnLc zKU613XXl8xdHJ_E_MuM&gC_TAVcw|KH)(6#Yn2R&GJP&QvpKmKjJ`&R-fhPlcpp82 z9s^cYn06;TEBR@`d1ubDV{e;Za{?GBFrBp(kj=etfrYn)evW{OQ^+uD$P$6bX!L$G ztfvc(R=rva{w{m^v3Eof^twaxnIm~LM5XcBy0c}}4Y?trj4_i_sugLLQWG8;&_qz{ zjuLhPHZ{y=2OjM=4~wvqfB@6xygMgH0U8k@xR!?2uE?rDPVBafK+}p|8@d!GqFp6e za`J>Kpgy)$2o;-wC-4!RI(N;iO)lM|i?92Qn(s~zv*m|eBMqLRcHgSV#2<9jahsTh zze8~dDmWUwG$AO;QBmwpP^7AtS`S{Idf3B{&aIHN)+? zd4M8JTDT~uD(H{IF(5dW9sk#V{jW$V;5ZH*C_*OJYCmww3&L{pZc)X{%MNaJqoW%~SNndTN<%`&-~af7{>4U-fS0L`)3Q?8^7kqPP6aNf6Z%ubc5Eoyfm$0s z&jv(INNe^rj|T5<9k=a1mC@ciR#)4$eVbKLqmE`-GJgBzD=Iqv`upz?3)oA+>+2Wn zWyAITj;}ATc>eN&tyFBshHXEP^ArC3m;c0%pC1z=lurxRn4!L>|NQwA-=4qWkMDor z>HLJP++kgCURNw@LW~h#zP{k?#~UpZQP3LL_5i`Utmpu?x>0!y5vS7`LAhU#^#&Mw zo+0ItY~}v<5+e_*z9!128o@^iJ7%Zo;OMa|J})?Wfq@kr1CVExWaDM zwIGG)o+>hbR3ofchqVfn;R^3@WPf2!-g#IXF6V@0UC~Q}T7$a(hW~v**8n6%P(x{j zj3aC4mSHMLX~FxCKaiKj6HYwf-)bTEBnpeig)anCPotvb;WdK$0%xs}#}!A4sW*AB zbLQd2$4sbHS7P$}g3%x2-F%Gg8`AJ(j56`wVZM-$L|JRx_K#9%IPQkh`=?C`2$7~$ zRi==RcDP?9v4X?>g5Af&>gl;|BPy+aZ3>S~UjvQUR_PgOyxqsZlJ#}HAX&#@mA6F% zNQ#K6*zP+}1iG*Tt@nmv8(L{VYs7+Br|)W@6GDR316>5x4@BkPGa{o~MU0suuqIYQ z)#}wv9ou$CE4zO$9wKUMNRfxwUK$RqSaTq3b~Ip&B&qvEg7Pw=uCj_y#k(tYR^XV^ zhguG-m(x_^`7`PSKt8(G-17orNP-2FTBy2W6wQZu$bsL=S!yfD!ju=fA|+S6yxs{y zHByXa_ru@CbR)3?Vjb1d5d`>FXowDKWr{dPg{FuUc#s}M^lls9(JQ~-^;DV zy^_|tt7qoksYX>yc;Gbmyfz2Pats;~Y%s+@HN*~-ZWCbut0+)tQ~dj%|BS!<`Oi=d zczgfAm*Vdq=o&uP_Dv`X9ez zJ+1iT=TAH>5x1^bPG`ur<8oQBA3LJbE4?h4U4YU1{aoD@GaS7lFDp{cXmY?d@q+r! z1h*#KZg(8V4ePpKNefNocy`JKlc$#By4YP7Bx5(}HzbaNjmOKR@ID{%`*eN7_>H zr+@kliimVXlv1&kg6F3*UcSAeHQ?j@N;X(G^tR)CUVsqr{relv%ZUfP^94CG63%N<&dbSxj&6Flp}2HdpfNRengK&dv+y!TdaFbQ{ismMh-lLf613yKUlDahzO3kV zfIE2xFRdU;LRXenOHgDFLa@wNvDFRd^@I@Eylw?pGLuN9HZKaLx!T;jCcV>}<%U*M zn@O)(JHv;~YjiMEguS;}FiL-krvqK#Quj^4Z~ifGgQ$&ZI_(`rywPTKWQC3%@Hm{g z53U%aya9?<3!urpCj{QAJibR)ugcIwADt@9D@UR$AdK15zY^5Pp&Hy*2}lEb4k0vX zTY>Bc0AQ6b*aFOnn+$9N)%n)|wjVg)WDmTKA zP_;UagK4$tVl!K@)rQG?B>zOcF~Mu8dYj#6ETS)dc=HAYRiu>skVxwHqYu%Lb7mJP3^8V} zA#1Lz%S_9{H%WC~6gnVL{{dJ#-~Yk?GeZ-q>$D6okqXBo)LIEVZgq}-TW^j8snqU- zBUta)LRW?obe2hXNaf{Lz%y?|6NEK~W_rw6Kcmd|q+AUdiBESEQ)8UhlK6?l=w{ zQaBbo4n!p-zFTG2rqQt7MUa>1K2yy8zt(ukP9b8eCrkcB5Y|C9KPW7$UZP$C6fFvNYm${rFTq&(V1)J4B+tTVoR9_LBeOfB)b9&vqP- zZnHpBplITYHlogAXvaYXAZD-AVKT(j-S)Mx?j%O1DvvP?H%#$ZC`P((!0LRIhfXNs zUJs-c5#r*7zzwAuYPoR)0yfFlqeHb#&Iv~al*DT*(9U98mJ|Y|6j&hZOB)v>L&pL@ zgLAor#$8cBllKyOAK@AtD(7QDdf&Z>H&6k9f`0cN{sm7@FId-w zw@+}~mhytE2{{IY9H1f77zzdvLg4(Fp0b1#5;W43N%_BHi5c%dzq6MvD1LtY#I{|r zE(?xrgM5b8kL!)&0_&)C_rn&|)~J!)ah>I|r4}zCesoi*2*=GHXMRNQ zSvIW0f2dx^AZ(nE&M-<|Ss}(kUi0{U45T?bBAqZ(@r@`&1Wj&!9#u4oAXJ=0;c1x& z_2zeiSbf|kd}ezmRz+2v9$j($c*nMFDD}Wmj#(vA`+<+!4=gdmdc*t22Na6l3ii6A z9Pbl}As|9wLR)3f=qroY+m7CV<0uSzxEa2d!UFl$c-S+=`Fv(-C@tjqga}ALhzY0D zis&%jq5e2PfuoiX9I2-~NDiNxgCoU&qtc!bLZSyKL?n&=H;T}>z#R-8tno5f?~Vkh z+`?FaBIGond&N%BFbk_c_oMYz-4UxE>LGNp_d3~Ft#h-qG2Znq(uWIv{7es)|49AT zUXjy6h0u$|M-SVm)}ngrb_BnL+qAE9JUHxb<{nLHJQ%C1Y3iS4Na<0GYyUq}Z`LDA zww~ubYl?`>tg1csX>m9lV1NQ_3x+NX=+ZI-$_D(S_zQg@!;mHMLL|@7-KTpGRh5|$ zYxKqYMeM#JNS@QXcU5M@THp7+&*SacKWy6&j4>xjsEbLW;j!mlB`0?{Vvx?IwQ@uz zhHIup;#dbC9K!CkGPUV%FI89*!#B8Hk2UmJb;Ay<_AI$PJSe9)2GbOcVy`?_&Y9o> zQ<@E|ZRGti@Il$5lqO<~Oer1jE){PK?rKGW?>>IuU;Wwlyu3W~hkyCK+Nncq!#8i= zaJgIhYCjs{L$Yu~+juX$Ly@btcPzsN^D-UM7}wa%OOZ+Q3NE#JNWKxI(2Oh}IN!-bdYt4apvnbY~g>6EzM?rissX`VS> zRK&?yoW9_qiQZKTXk7!H-c7Y;TQ{}r{jq9~F|wq{_4$kanS=GdX+qix*>E);&uKm} zFG-o{5IH|S=ouU%xn$OL)#tN*vzqL!?H#`Etw9_9&%gf<|KPpaVz|tlCVWUlKhvFV zF$0KRm1!R*5z~F3$EYllQFgtTgtZ%e+&fPoC>S{!y>{bG=>avoYX8w*Ffj(Jl?#86 zW;Gl-3b3biIzCK06U6yww@3(65~s-9`15em1yb@6r#K@Y@+lWvP3-3M4G!escG}?UdxTss$47me?)RHyqkU!cjgBJ*_bcdZ#2aKY_&^_-ycO0hv#y!m3(ucF zk#pwx`3paP`An~wDa_n&E4dU}ePNnrmgSqFi$=D>O=P^iqsnrs-XX)Rp#AQQXB6XP zU{)tErLLTMkT->soiTbeEl}WmAfIOMomw>s3(mY(0|r%-Omo^vHe9H-w%89UeGI$c z3=pb&IW0Q2zYjYHZyMx)W~&?qph_nJP|QV1dN>FXDAQEmF^@ri-w^UE)k zQt^H!7cqhQ@T}!3SuLuEpO&*;cssMGY}Rh|rZUoZBmg1lhL@5KrZLTG4oyi#4T}&c zu&&k5X|^`v7|iqe(EJGV&Z>etX0`vq+vJOGSix--ma<}6??rIYa!OxcC8)#RD<7R=>n z8|v_8nF3>{X=T?BUCurM>%EiG3?6E)Y<3w1FF5ed+j2WbqA4$HVsOdG#W-^|O>-`) z?HZtNS^3x$EcEXUkh?F#zo}MtMU{8Ke%=yw>t(O+UJ40k1(%N2a=VgiSo^~}wXM}Q ztOp{X*UmK0;$3-J9K2KZaMwlEtq@Y+G5cYO5Zb*0uuik{2EMbpmx8E|}7BLKia zKfmY8qG_icuI293v$m9c(B+3U2l;iw)q?G~Ver^*|G)3vJ#k*n#FU^r?)MwG!Fpfm zqm#2ND}88M)T~6b-BuXz{^JLpuP;n7QflShyZ2&u_0IE`FPcmuwpZ(wX!mwJJ>?qmAOK#`>7kX{QeAcx8l!Gv}Ya zNb9yr?m0R?fBDSiat80Y<~yxsUT#-X@_f!khX5bRdE=d%xNjT7ZJbXqrIS7wabmPW zD>nYOjKn}~lQ_+UFfpCaq&Sn-S3b@&^J(F7x!|Umb8x)e0`q((PEo8IHz@gzPZP!I zkP-2atS-Ds)zDod^hTT#+g8<#YF+s-?+Gc=a$!{Eiku6Kp0zFwdgKRN$GP1PxKB-u z&4QCr!1a8**cjegfZiH8O$}M+jgRyz;4Il4Ef-=;oEJ~-3;AVZn$N`KnSvoA5Qe4Ut+nWx9MtwJU`JD{RtHQE ztxDn^qv|hV*d@-BQUC*E*6sjZZh}j8Q`7|PXwMyBSx*e>E>>k+f^;<@?wOww^p%%gzW&6cM)&6w63)(0&FS@vE!`i%#`Lw81(RA?Ficvb4 zUWG<*s8|uK2$D<1xo-_j=d3+x7wut9;p8OMb~w@$DZO&N-6=KWo#S+QV7tpeP;z1R z`p$+JNG@>)a?aGP5}j7>d-(fM50yd#riVv^drBL1#0>gS1jb@4+j^trif@^xH*fJD z-cm~=P7~8SF~!8|^(*rdczXCqH4MPEt$g>J-|&C`r~gM~rJ{+B+<2NaF3XA5E9cXR zd6|`o?b?b2Ag_hxw6GO1ztR+$(yT&FF2oecTegXBv8%-33VI%wlS$c(YG z#*8}Ty1_3{33((F6s;(=QK&E zy&En;!Rp?>X=vht(z05GQ)mxN^-`ypN<2C}lHPVOO2rIZ~VmNr1L_nRtA7 zOW9Wb@biyccqFDXx6*k$PZZy{mREAQu}o)TP)N}CZb4z?Cx%YJcoX2xb2KK@;BHj<((z!?E609+xxGcV2I*TCeNIoC0No>AZlC^z}|#zq0x>oxx?g$eou9r}K%N zGp-fVG}CLQZks~ekB{KHUUbzCK0^WUQL844rUYtssPXQbmg0ai?uU~71$49lJI?C> zT#6=N&hIxB9pZ=ONw6A!^8(Pye;1gMaC?puOqxXOo;nqr^lJ%^v)Bb z;E`^!6*7Zr7oFxiDXI<$`|YEc~@jZ1=J1aO>;^ z#>4B9WR67L-aVsMqFZp24g=e^F-^<9EhIN(e^Z*MtuR{ShaY}C;xFOzS9}P3`tk)I z0{Nba!7-f@Db0NS{H(RHWvO0nw<9N}Nu5@qZFIiAKC>(f@87?}IRju@w)S@4gq6uF z^E~tU`ZM=!<ejs|GPi%SAY3i*7eGU$0x^6 zU%!$<;LW=?q$oFUZjFEW-9J-m;qwEb{%`;FfW89E^Fm%XVob;6 z(a#fkT`5)8m6w11{Q)e$oG*$6c$r+9(d9j!KmYUZfX;f|czAj`+Tx`YX~lZSrC=-Q zel*Fo%GL#m;fTsgRr6%&K(RL6=;h@|%Bgfu$qnZ+Aw5xACc2<0N6+Lo2u^Dnci)K1 zWUVZ4VVHx>TTpl$Ka_nBKlVnL4{`|RmFT0Oou;kueyEb}ZLA%v!pt|_&VFNOzm0Vc z;9>|0*H_n2)JFh2*Hyvxn6hH1O%uX|i;i4Ze3%Jiu;r_!8GdKHKp~q(VvNF{%KSd8hFj z`TO1b544g=VKzO?g=Jm{KJfJBJ#U|$cyNwi8q_g3U*7SsOa?A&Fx2o9DSWnvc7_I9 zF8CxjWsG874UB5s2O(-VeXW_;Hu)L*%pZ+V^Zj53Kg^(;GWKqODtYwNES39L@Y8Qj4 zMNFaMT{G9&FyEim@qNIBNU+J(Xm*g_b9t_7`eG9fk*C!@R7+F9Q*2TT2x90LC5w6` z*Jj9*WU7pVy-e%hCR1??!vkodE1#VePnrQ(?PgxlB<6fN>3AO#DLJ-sr>qXU-Cpw11)&%EAlU_|*#T--aQSJrI6!9%b9Huwqt^m%Cny_< z+T$73*l1yZGf&*m)J4bRz!;U>SE;zV+KD0P<%!k z?V_`D~~WHA}ZFbHr~x zeowP!bZgZho_eu+V*}>A(Oc(syR&6+`i`xR52k8qy!-w){O0@L;60?I3E{Gw$X23x zdVCZrASTvT&b^0+2X5CJC1=(w2j8E5{u5it++MG0c_#gP#3^!qxKP%73?fP`oE}cL z{z}~MIv~zdBEEaehY#-wF0y6)clL5vH~h@)cH{N+PHR<@*eMW0Jf1HltH}+6c@oZP zUK0QI-~5lnpl4g&vOux(WJVAj5Irz2C$XkZf6156zc5cTfA+8bjQe^uvq9ta<&`&2 zZ~51M_jkl}rqxwV$v9E-##Rb3s^Iqc^oC^8@9Xmm^Q`aeeZ3ucjMtY}`glWco#*El z8iU8jC#|Th1k|cjZ#Xr5FP976d7huIO!jjQAsl6aJ)RM4P3~+p9n6Lx5`#&taoWFE zS8!2&zZhl%+Uda(oL63Ip2)AS^l9Z3FA7T97bSvrRR zm0#sbT-W3$^vE<#Y{N@2GBkr|Z4ly#)-v7)Rk~d`oQ2iosiTRq9a5l|PIpxw7Th5t z)%r$yikypx^g&YM6y+6c!I8UmxCAG8XAi`X=yfF!i1UfzJ@`&-`!r1y<`@)+-Abd? z3|;HOZB&*p^SWK>OQMz=Q=F`ACht-AgW!{44fLYQ+s0&5kx?_v>fzVzPH>H0GUs&S z;r%<>Z6%k=U;g=DLxt1%%qS~44nhR)B2N!bq~s{MnA#-~ooHk(>Ot<}q}#lc(xi`0 z%bl<^Qab5?v=$aT;iLmG=|ro8>@rhYNMWIkRqgGlSyD)6p&pE_RdObzMDP>1hTp_A z8M~A>I8Mt+4Zya;Li53`VpM9$xHy?FPCTsO94>mhv9x1*+1NR@Nd|i9?E@z=D?_)SPkTA&}1r3GoyIM z$b=YKmXqN&l$RQI81OCFGz1uhF$@o4!uE;8atemyfH^2j*qb1&DNUSC3&{;e+(q6y z53CZVXeAaQKLiYIw4RxLJhDx-RUIm)L`;z}CIivh&AT-<4!bT9ZFC}$=7I&Zz2Q@| zhU$kKFqqcRnTy_;4^tCc(E6V-bG-+QS^v*s z+jqynrQRB_q0)E2?-0Hw5g{1Fv^9FmhBb&dYfdWEuDos=P4Z$>1%;g=<^sWKav+y! z(job}sWc+vFu_CF1|w?1H^qrGCtCHKmlL_@ceGVI1o%YmnQ2lcH+Ts1#Jb)|DdBw( zOV2K@&U@x%CU2R?rw1O!1M9X~ws1P8u>F4H`|mz*d3>N(WrptS%InLO$EQcm=d-4z zQO1(<>BLLTc$XN%$rb|mC~n^9gEw#A(rijuY8LO$d3uU^XE{f^NftfL3$0a_MJu$e zWw~4z%P5C$2kqVmwPa;2L*RT_bYQHVI7Pz{i4i&Gg%Gup-5aCdef+@N_iv$BO6|;x z+N8L^d0uppw5;0G`*&=&m6{uGpWd@>E2q=KG$(Q?lu}4(=HcnBGM3)6Ws9T)PsQ`* z@zLbUD$-nEUwJrRczC>MVwXF;7S_DddSf{)Hh~+=OXU0SKj56QUUy@CwbCfHG0l-y z)vk2j@%Z>?&jUlJ?0lt%^yS_@fbbW`YqY>h;2eLuw>}6JJ(TLZ~=048! zQt7T9`2ZcB{d}*`F)5O@}lfXd#%l)ozy> zA*)U=8urdol9It6HF5c}0>0~ZgR3+;2@57Wg~hwqgd(qn^OOjaz?jW{%b&q6S`NmN z(e7A31FbD;tt2BGS2`Y@sC|n1(geqxF4UYE?C{gU<>3TksAC z{3JTD_m1Wqt~OcTJ$6%dOet|Woq6;4jy@cx$4A=hSG=DfbmlqI8zK<9V$eB<%1nY$ zI=ZcQwI;ypWk+vx*R0Xu6ab8Y&>^}+O_|&ase7ackPmEoz0*&QB}E1W=T5ZRi7An{ z8$Kkqob@w~n)bw?d|z;4j06|)aU40G+NwZt9bzz)fgAKDZc8$%bMKv=GcH9C!%f&1-3}EoB^ZS~6kZQ@Yo0>TOJqPB5s%h_ z&W%HGo|a_JJ^8!5b4=l+36ED!tG97TMOD<$)NX5)lxAyLeWM6tnIKWx^-xVA={Dv? z7LVqSb2v&7%rYb$TILvpp{U+ke^ocekfBObGMpN)&Usb&eKYpe5U(tZW1SV;WI+3N zQ02XW78#nfO@30+&3gk}S`fS0OWn9Wy;Wtd!tP2_5Ih8pmTGBg6*@hjL(oB?H))4r zjEn}Qcc$bG=pT-db?udD67Nn^bVse$%-e~@10DR@u$!#VAH@y=)`?NpsN00qlrh6r zie_jsB*PAeb>F6sO>1dqx}zO#*gGbFH~6xJ%7^7;uvLXxUpro;e_J&g&SE%cQy+Ka z5F08X`RMVRE)&(N{2d2%*a}boY!?Hrdwkc6*aaOC#8$fa-vwnIRuBF1e314vEDaI$<$KS$WB2Tv|l-Ey>~o3z2U=$@A&b@ zANa?A{72rsearigA4w_j`tr*8bk=ukbk3I(_w~+~ub-Ibi8t|yHX5~bPRohuG_zX! zxmq@EnfHshx3bc{mg@F78dCS17i&uExv=Gp;GC`L)!^JOmMLjkr7607zV`!lmk_(P zA%#$HHbl_()}cw+R^aLJk=_Q|x+ynTE3L!*>oZ}V8Ljbpy;*oaAK`H49GCNn;kq); zO%{ps<;1q#Nt0|Q50^)JP-GxB$GTo=qw)3gFHDP?#;)l(QF`Y7@~YfhOnS!GW|O_y zgw~$uJ3Ti-jI4R(>+@9w6z{n_U1&CN>8+X1*Bx56zMo~-O$wR}w%Q2)*Z=YN{~%Mh zLY`Av$gLheFNe1Wu#L29#&O$8P;{jmxhP0&wqHtaS%D!vU<*qEvSWe~z%Medr`jG;V+ z51!~ci`_g7)1uL}!dZ|^DgAfVRghOAjfdt`uu0RBMVGG2iX?D2KWa)Ol zQ|dR4(EfYwUG;nCcfqm#8M?OUbJj+;hS0Yc6vlQTc+=)|yz7)E;kZM8FC}9PifXlS z=L61O{&55a+;Q}#pNYeKgI%6Cx(-D<$zC_mX3fy>%N9eD%gkDUbu`iAw=CXWmu72N zF3+`Hpl-qXIEnUellW#K*=~oRZuu15Uad7}zwg!>ljX&N-?0n^RyOw8?rh#0tAaA? z_qVSBodH3+HPpTdygRKHyjK&fHf8%lN|p=Mw12-%tJx&{LrTJ$xULH$Asnv2HoBfE zog=Q{`nPGX6KI`)p7r~|5A=+2rsIizG79~k3$u{azF9chj2JLghs#{DI+;#~$Y{C8 zS~cz46<0na!@Y>o-mE0$4qv-xIEk45<)8kAj~_p>%rn>9&0emK%jKfg7+MEnE#WP1 zY$aPWRc%`zJSj~W$JKID?O4_K)(j6655MkqzvFu6;qk(s|Jk4O_UVE5@86Sq7>c2y>n8E%xOM=yEtc;T&=;kZKLL5?pKQ)pg$*X#Y$<_%3p>1{m%7z7V|Emrq|gUoONcQF5l%Do5fxD=#-X??1fb_4Sq8?XGu7%_-)=0Pah($+&xpln{YEs(gs`o~& zD&X9=8@)G{Y2x905+NWd(-*w{^DoaY);hMvZ?{Hs2!UOL&+zv?H1Et+sP&M0nLUP$D z>?@%xwTkU^b1j6Ch*P2!)p9F?Xs)=)NZ{A|jmv4Fb~*7hMxVIfZ%nhY4aqy^`GoTc zk{+g z;-jZ*n^qsr(__NdB3NuGoR*243&RVNN)zaCIwfOsnMZ2;3IOVcE&=F}*GiEcCq?pB zc)i}}1~g=69N9Xs)}l3(NqxOD)riwN$(dU&SZmFD1?lw%80pw<{$cEa^J-Hidx2VZ zgxb{sjZ(W**YSooINoSBF*PZSGoaeKnRHtq>Yd>>l+MLQ1@{7M2G2xyqz1j zZN>f)(%qy)ifSa8>W@~+0orpWw(dkB2T08+A6#3`Qb;nl_83qrKGv8$Z)dnX3vGkaGEeso+) zhHD5%up8eGs&g({Uv2lh4%wzU8oAoHQ zc6!?0Y!wD1Srg49^Q|efxwF)|N)@B`V>++GLM7S?Z-?LZ*39Qwjzh0FYg#XR7hr#h zIvr-c^LR6lA9xRgKo5fQWC2F6CK1#GcnobW_U0_!>9S)-<-YU4>|p4361|V+cWi_q zEKc;!uqZ~(4xTjY=Q4ToNqSET!6wZd%%O3(LcLuZJgsN`_`@Ih{`=o3OV=9nq$%|M zzEVmx)?MfNdS%;ITB+u!;|O}+Z!6EwujG=ceW-mI&BeRxf($F+y(4d#|M`FV*ZeR4 z_TTX3^~Udi|2u0-im<%Qi=fI=WUK)~KcNdb^Ty;d;Nbty+VgmoqU2e);m5 z=jRuul=SX%idF1WKSg51^ir!(OtBc_fr_Z55>5K;3^tLzr~m*U07*naR2!sh735NM z32Kc}nthLzO$|OU&oe1TmStg{C#EU#yWjr-*9X6O|AF6p{~MzBJUu@0^z@eV<-+6R zBd62C?|%1te*EcAx^<95C3(Cm~UdwqSSmT%8K=~&&t$lK#h^U z!Y-L()4Ol~Ebn*cs=1KIAnxJvF$CW$CDVJP2R*Px(^$TCF-%BNf$*WVoCyupBpQh& zMxyJ66VS?G?2VXVfWY95)V=@T2QG-p+pN8|Uwm30mJ5nx3Sm0Yt$`zVnm8h*R7MJn zpv;p-)d_m1>WF-_CH5%~4n6qu6+b*_4&?2bDP36GMvAk9yG>ICMv)7xRh(;7HweSl z2fdNPBz6-)|M^-;Awh7Y;Bmu~oaZGMN>_`k)9GC=(N-%Rs3|iuA6%qnIE&~{)S79w z2E#={cTA^=-~z1;dak^Ad?Lgd&$nP=n&9E#frs;nWm(wndV!TOm{X#bjp#joii8Lg zGp&H@3h%k#)WGwaluf1{3eKy!7!&L5nUb^7ztxaiU!QS4X-eWX?Fe|bwz2q`lJ9m% z4bY0dOr=t~Fb!=KdQ%obx13Jf5_!FmmIrFfxQ+#dgRRjdTCOeYMc#l?nNna%QQ^-J zb=fz{c5iAQHruaP%dLz7y%$3}><~!~Iy%ndy{&-99$a<|-_1KH9#ZU0pF^V!4<~8# zzSa)r5A&68)$nf2neG(okAdN$LZi-;(#$BEUV@`Q4|LxZp)nMNH)q)1kc@G!-Dy2{ z-|pP5uXLy8)_F>-TV+a7Ij<4$BXgb~sJ#+rdEshn#B^ec`i%K7E5uyo$<)tP>l5b& zOG=b1H{^EDY}?8*PdvYTW{f~-gsORz0xH*>QM2;yGS4!4{C274jo+VFrqA(4*$(^Rr@f=nQfpOI%J+_dfN*$0q^zs z-{*S!+6!;K!4Qr^{P4jJWkSz{0((o* z?b#bcnsf)l4+BRJMo@Vv?%Bs7eOe&Uoo8~MK^4*_d8ood#E@(fVGY)1-(Q1WH>$@%zKzx^$~WVWsF`uR!cmFF7m$R*| zyAD%7{K(56e$U6ZZ^1j(_0H+MaJii51AhMU={RIzaf_{Fe){PrvE0g_{qP68wO{A? zL~xGN>CAomOlyTDP2BG5k!2mD^V~bP`<-PuaatB)@GPe@wN~ad6DMiQO0CM*^}!E6 z{K%ItUymvO7>>M28vpL?6U*ZR=X54GWnaIo`rWa0Yo(A*C;L8i*1R%%FW!LzrjWRo z45JEU*mT=!2FdHg)(tT*3bdlNpa{{%u5u=owcA@59PBKuV@$5=EaTGp0W|Z@Q7stU zTC*F00?IBVMyqOegvh{rK&8@+E8~Vc)DXezfD=Qs`eejW=~a1(fYcYgWzmUKz;!ek z>W}!CxFm%$6~-U5;qcw6mlnX@6ErD!CMJg2*(I^AmJQN}v-!=|kSBpc>s2@CJy0AY zjVu^in;}W+n%9-n!-M{$Fet^bc#oe>cnW=*X;mS{5FBxtNk~~TQo^@RjEQBL>HVhm zk<+f(4QuDbnJ^r+t|~6%s#{@5%12aT0-~4uaog0Sz@`(WWqkGg^5qN3>2UDJKYfyd zXEah+2|kj$V~#V`!#piIAWjo~U+D~S)OzruWQUm)8@KgU(?`06NrAdii-M}1E(mV$ z)S?4Q?TuD4wHJ+Tdmv7cDFth0?bTYPLz6Mbgkh;=I(0W`kl0eZyVZhlMt&YYr zCpE7OLxC}jhWzdNPV_*h5S`OOz@(<#fR(vaT+rv}RtwLsUrAxslpzFizCwts_e#un z=CBX}KQ&wvX?It?z47q)hIw9iefi3iPSov29Zo0( z4|7bEQi!u%BF647b-x0|CKXkHS~mSpgdXU*-~$E`wg7rlpmt8tT7474cU*-q&6F)e z7{mz06evWG>t0G4r)6*Nngr^zF>F$#@0B;>z&-`-)pS0+tNGluF6&m>X{~*uki$Wv zK7gVIdGzcTkV41Nhi6VRIagt9x(*jOO;LAUR4>KW;zk|sjoK7t7_~CIV@XNRU_7(jp)(v72u)55ylczXASHxCcYvp(mae)<_76U*s=*XI|Wzka2b!n$sxY3A~9;?xIkp3an7 z?SS2ReSWrfokb^lj0b32~TC*Hn)OEsA1KG83wajSPqDZIRV z(KEsX;oo?Fp8xIN|L^?%rysfBo@oR={qzgHiXVAiPOzCuZNS&(uYCXAZ)mMB*>gM$ zc?6g9#O1Wmy6{cY+u3j%jpygjtm~ayF8uiEM}mvo)*II^cP^JFYQBSaJUu<~w}1OL z2X5hdyHQK#@!^5fI>C0L_cb&7bc~eU zP_TV8Po*h;K`={~9xiU|N&$4IjJgH3S}Cp5N@2LpGM%_yU&y_28ck$qd&zYp4e#MR z7j)>!>&A3mY~ADa(4!KVEaWK}#5yV`51z?9Zi8HpGzu|R!)oo4R8g6uHJ}&;oN`aj zloPFWF_3~G{f^v5ptn_+03yz}W1UEAdN5f_Z7T)mDvn5Cri`jA*u3b$+p02FlU`D! zKr7Ik;n5JoExmSFXVjJsw(QCNB71|)8RaXKwu{Lz;v3p-Bf|b zehxWrhuUCYYqd5kY}pvy5!0kKjOAtQ9%Ad6-O=V5wTK&38p|}>i`~(;yAI?nGkhcT zKyZoCE2Sx{Tf6cXy>H5Q2&`tgzs|i@PWU5ZrMw8#Tr?qYQPZ-~to3EB-w+N*U2QsK zc*~-d-hQR063Kl^6FJ;*UUd8zC(f6_n}@gj>6f2*m=_+-3lHZfdVQt$jf^H)xBNng zXYzHWg+_9T8rq@m@zGi9(X=#uqIpN00*jlh*iuO$5+C2vdu1i!dSIHgs_w0EJ}dXN zbLc?Rwc#8s%|u^uUUmsLFN_XTuxX(xP=+9Il%bpn9%>zW88va|+R#YchXhW-<7U{B zUaH#Gtr1hS-_tmpZMk*gP6`iN88r*QPH84KTjo1WT3dtKii#j13YIz4{&aTeKh|!e z%ZC|_$>iIi-rA|#`+6dTWLzH1$S`!k^^(-n2dzs>lzXPs)_EO`>cssAcbs zYy0EfFbA#fTUK*Xs+xC#Lwwz1*0ViMGMx!xOz19(_Donxl1Y>&m)H z$u%#FLf&R-XjN<9`E=66(24_NC=g#tA;iQqO{S$1n{I1OQtxGAIVG;^E76GIAp~ys z8*k!-bB@#Ld-{;ePMNyM^6hc#z?p_ZFcD zg2A?xzx(Z9@$=_TOjBh2_>o)+=jE*I*zGEVLQMR{Uw$XtN1C{;SqG^pl0R?e(?nuw zBi8$I#ihu@!z1tBy{FVhE*l{xmJlet8>rOY!?kj`Ty$ymo;W9d`Q>NBtY}(27%b<7 zm{hpA7_wtsH)`7(*vbSBx*)^Ot3+lNh0%rA3C>em(Sa^acF8hRMVRD3{rms$@BhKu z7teX^4RyGR`WNk5f9=S-ZuzOvP3vJ+celUfti_^`W`H)1Nzbl=@aBaIhlsK$qtn}= z%y1^kr3)bDjj`OS>iN;!gS}T<&-o+B<_x<)lZrm1lwIS*X4nN9NeUc86;_8pko3Gqk?rcE7P%_Q;tttq-VmCB#{| zrJ#qK9-dJTrJ=k{v(Y$p$4r1HDuXgS+x?YKpFb0T`?hg9J+Q4eUY@VaDf0Q{GkL9Q zbk;`Nb5=2sg6WCO(YJ4FcWJK2F~>v399w^OF3I-l5-5N~FueCM^DH2>Ts8k(|iY`^~QQN(#!uV5Na>S;XW6y~9?tR@-;y3R8;>Rhw3r;$0PMng&`c_Cj-Z z`!Y|Vtuc~=F}x5X$i;Y?CzjKLN(W2ivYZJq5o038!1;8R?70s{xid`*xfd?W1Em+` zFP*2Rz?&YN;&xmqsMe3Pw`OQu;M-jX(qQT4J&Rz$$i6}>Zz z>*u^D4P_*qS7Xo*XZf^1Yxy{whaj(-xAkM|g()R5=2}1eoWWdYqqp53q0gK%WCy}Q zi2W2TE>Nwh6b>~{@744+lUB_~KFh1w6iugN?bZPXVjSk^Gu{-a0Mr}NfT;Urz&S@Z zUs~;5Ogw|Kc5`Zq`5mZrJ6@o{J3^Rjs-fH{JH_33s@V}RVfFAG+OH53R*cyXiavO2 zvQ_)vgHgQ0u_E;$i9u!I^&Q|C669vaffy}Q7Az~M7o2jyjhGhZm>_z^NNVQm%PZTq z;zLvz+A?Z8zQvpTc#O{dzL9e#MLGNCSU{k8 zfyeWS(`jb0SVl~V<#c9B6Z0}NO^H&Z6iaF1;qt)OuZmfC=h<@Me!Fr$o$0NzEN3|k z2TW-qO;$3hYWJ?|YO-)maHeUZ=1Q(wKj)&gS7}=B^*-=PEUxpsC~DKXX}Q#{%UPwi z5QIbOU1}%qv|3zFCzg{gmoG2Rl)N!dGcGyu)_8e&wx)Vu%^UZUsYRb<7aXt8S8mr= zrr?;DGjHC$Aq2|%A2PrdZ|3UeGg6l{E!mY*JrkM!+AY>MpKh_ zSx(em`TF@2_ia-IsXJxVXryTp_9#a1j_tncb29Ank#reS15-GQZqH|BSHG3QJkXu; zp|!2rrv1mi|M&lpl6{#Rlv<5yE&tl+ket?F+6p;?!ex88$0MvALbT$$?Zfeh7j36l zkMXVI>4V(t&v63rN%vsk>Rt#y3JcLEyc5@{H*rF|lhX)W^?XcLk4E<^YZ#T?3r)UldN(2*ujs{`KyC0}`2S6;54 zc)h)_ZZF(#FZ}T1AE>SJ`O_y#z4NEfA`FKZS#LKjo`QmXwPbM3R(0MQdAcRkrb$~0 z3aUFF`R?O)OjBeEiQX!2-n`-MyElYz;`}7{Q>#@0!XX@kLlWKQ9iG56C&mz6ytU3& zHfk%((`1vTN*@AbZtKdNCb=T5Db@i}udJ)_dv&UC|8 z-n+Q-Xtf`Wv9M2xf^IPkgVEX{LKBv1glhCsHI|HmzoI28>ocT4GNzK`qsr%`kdEnu zrPVd@NTO(W&mqCZYicV*K@s3IPR!FHy^Hfimm~%cVj4MP;!G~sA>AErKTO;^dY1@1 zIa=vjIpE3pu1q75$&^2>$a3$kY+)XB4M^<3APA{5m!?(`ILKwQOOql5-bw>|NPCwM zhZqeeY~Dy0bQxmMO4fx3PpQK|uVxV3TbrX(Om;hZGfA+@8?9!oom!KeJSw`-YB8d9 zIC6Q1f6kh2LSz&Lo$>b14Yo$ILxVFrh4;qUlLX#7{r<29QcUTntv5Ra9Ae(XI3Rvt ztHttq?OS7T@9){~uh)J!UxSajd<@I81wq_uYxLUiQ8H!khZ?6t7cU%SY0eB)`J`0a21f@N9w{N)Q{z>h!vKq(b!3lkIIiHogUhnweSQcHN)|_=Pa#B3q?|0U9)nT;SDZ>qZ`spVV zOZVe>uow11OqRHQW+ZZVtm^3g-rjKlmmP8$u&^#e6 zFdD6P(in0X0mDVhMCewW5I-o!K_gN|V`f08+U@pEnsn ze14$iJJU4dD#SFAw*n+W3T#^@x6W2p^1U34lr)`jF7fr{mFOH#W_VxM)#$X*oOw3+ z3z0e?G_i(;@0`<_%Sm~X^K#5d{nbY=#Xfk_NFkawZU9)IO9}ldKNU048jX&GUf2Y+p18v zac5Qe{c<4YRwRTO$jUw?9ZYUtU%5QKQ;^tK+-SPh1g#KUYjSjYB?3o8{IRq*TED4L z(v&D$QD(_FM|!XdOc-LI6-|O%2&$9VA*_vtOM?`YpAyqnb?fB4WW`}hn5#q#oIm3jy~xZiGS z&ZUXo1&*$3CFiU|yptnx^iG;4YSF}NUM9}-EQx)tT(7UhqttODyXLZ|FN-dn{2Y&kc1M9l-m=a&Ue!&Chheuwnue^Kro-u}HwzS16 zdBx#)_x?M!^`=AEJoEJC9iumL&OCp8k-zaYb2=^Lty=D|QF5h}EbNl=%=Uf{A#yoC zXnPcOn7-cSO^rbZ)tql8J6B;N1QmI9$18SDaAPo>BRa2<=@dO}h$}NqGj+?R9!Zv0 z&;@Z6)y-%lhe71LDtI#`T6lxtd1{Og%ud7Xu zECgTmVy>g(S|Fj@$>^18HyV*(C%rgvTG2R1bHUnGJJ=+@+GP=FIr;_dx_U9nC29rfRD~@ags&5t_NpwP7|VR zuE8jZahwxv-9({g&|hEwf2!VfNs=Ww(o-{ck4t7&Rrk5f%oz+Ji(PX0BK$$V6<=`q z0!s=-b^$Cf=hk(}jElRQ@rPPO9b*1rM!LHyGs4Z)R6m7u$I{*~UoPk>xLl5eUcvS9 z1-%Kz`G)7)7yS0^S6r`GT*fPQQ*3QRQN>yx@XDfI^NQq&)ir?)=x#{4M5>79)Mgc8 zKp6+TKOShYrt(mNaxpB?MxT0XfwD{?b3iCx)KuGj}qWSQ*IK0CxUlV81B*d=fe#J4xKKi zakcI%B$OBll|x-IlncEw%G6kE5i3Thayn2&bi!DBQm840GD12d-21k}rVD+Q5`LoI zqjR*uo1u3a_btmAlo4-eZAWag2+EWOwE}exL>BcfSraU92>Gb{DH(h1C+o_LFKRiv zBZG_NhJ+HU;uhv@Me^YHc9DKZh zN?0MPw=)zpDA#I;C_B|550E0FxEX*tk|pfmsvXS$X}FHp6aL%-&}p`Dz_X|jJBjid zO$4laauJAe^6UX+mZP+u5sedtLIOE400yf81N9qW-C4f9LZ&qBX<+{2%`j|JQ%{FK7<sTH;rkQGPDP(79JagiXG9)q;Bl)?kD^w+#FBBulHaomXni7U- z#PYFVxh{|?Avv%vE6TA_+*W*hWtZ?clP=$*)OcA5N4Q=FZT{_6}6M%TGDaDGN6-?dlXArt5NO1 zWDelSLxKh~i-Qqhkr0#MpP(!9K#xi)8NG&oMjcsrNF*7N9BATjtN2*nFl#{>sVodC zs7`=tnP!Mb|CeOsk?YSS3UP}EetT5 zh_5KZ(qA!3;#Sx2ZWthjy7Ew4dxdJjzOQI2Rf7Baz-_vs!m+FmND|~o0Zz9YraEA$ zg6Z;tERMGiL089onQ*z>h*vP6WKP}ahP`i)JY&EF7_kWuO8YQ}X@izP9CWUflQ{ZH z#DONoCp8x<9qdeRbBoxBFH?DIG zVH9VLLyx+Kk`ETxu~Ie+V~#^9b2Z~MKEsU4N)+_6;-m+J6hTf0ELPw-lh({Z?v81? zzy_8ns{(7^0{)mV#sTW;K~M(VGiq;4GJ>6j8bg&bq$3@%2Ucio&)M9;%XG5DF3u>(ZgvcO@tGXHt78=(Ph<*&NjJW~Nw_b_ zIo6*rltgo}M;%Jmk*oWl|6gx6tosIU9oBLv7PQ19MSv|0_xnA(O( z`-7L8q2T#?K}rcP&o6xU6ux`bb)gz*&VO&Tf#l3yM=JCh;s&=S2bfd9BI*N20kC%H z<8eoC(Si|>U`rX>)?kl!Jik2QV_D9sDkNUK)@8$=|NJAN+duwwu<-nH)vAK^UN;6i9xux*HY0XB?q3NabS?b+fKkZ*)=Gqe@ZQN8 zbU3Va+#gh7Xu8KqcxODB35e!QZnVnIyW=*WN&pYTK;O~u`}-?CwuS({KtaDh|K)EG zt=QWNk%Ura?5oF@hqqYi6FJYZC-?Qiq0j^fsx7Nc7~${d;Yq}VL9jQ2^aaJ8H89E# zuvZ?QgL0}aDWh%%!;V%L4CO-QBVdeWn9yCYynjPZ12E2zG(`EZ;Ci`2C8O;d%8)VC zgfu*%KUTDTM;=GKJb#DUDs*H^MOFg*IwI}k$FL_z1Ep#2iYX7VqbK4bi((5{=a2_d z-bFABbNECyBsf=fu?A|bqYONtJXU6&nF1`5$P|cMTGe13xue7_4Po%#`-W~Emoi~* zYixl@lJ1>pNiAGkG;7FU6dn%jYiCbjlIUo&fC?V|z<9w3)vFf#sO~&OEP#@3M+DuV z&d`K9RlXI5lFCVG=D`e9aE(3;N3pYz_MQu@(TkBJ7(Q7bon96dt_2yQi1k-YX?yrt z@-XuE&}iUHh00D3Dz<_gqoXg+m6O3ivG3Mc+UCRbsbfD9B=;fdqyY5>rLfh|zdMJ`_b-5!lH|{u|Bnh=OS9 zB5}z9;9WwcMySbA>!CEDrc}ek>T6X&A!T z&&%hrKDTbCzvuAOvh4c+^H?-X#Go0$1BvfvERLSA716P$z0vnB8ZF#l6gNWpZ&iTgOzFRo;mP$VQ6FyF90 zJ}_TzYy~L^+ZKMhNZg5VIJ#c1kXWBlwN{$MYeP4~x;$v;cSlOVJWbeZ7{!%pT@J76 z+v_X-_76Xyw1QvWe#7NzxINwYyKN2kj|U!jpbQ0X_Yahuv2F~*AbhZwX~aMO+rML5 zSEMrFcD-Ww`Xzi@f**hQ0UsX^l)Q&YKI8i@Pk=J0v+Wxoihuw6&lpO<`}+sJy}c24 zp$Xr8_Z^mH#kTPsO31XZLe01~|LadbK|mf|j&vfT{9IJ=a=Ag=ust5QUao*wq=B}J z$NdA(&o6Kntjod%jKnZSGQo7c;gMGS{pY{qzy0@rh9<{QX8inX$Fl5re|w;|8sB-t z^?HjUZW`C0pRO3D8TXGnmd64!!{v6t{o@1cvg70afq5Qrz0BwiyuQ9;+cwPeh`;^q zAF%HmzI}T|YaOqz@0iCKKmO@^%+rhaFlYJc>O!Sqk%NyqO zjF&IpK|2V1T?8c&YUhKaZiewXqnY745U$xKhgU~!J6s!Jz;$Ng%e!Iqj$S>wrtZjP zMyne%3sN3}3SQyHh`LFG*c{0@he0u>i7U}C%9eb^+b@5IPVA9l445tSnwV}wQVs-& zbzM>vEf7D3HjBf*BbS2v@_~YaahmXEZ&>$+q$62Z3S?z9LUBQDE1-<^FUv+$foAl& zV;nLrx2H4Zjf$}Tt1cKM8;X)?Np6LK3@dt zIaUHxG`u@{U(liGwP9Zu0E}d(M7No>qd>Sux8=m|s8ai-C04UI`E#~x zoZn-QmHPVF@UQ>!Zy4v1wLrn9gz<8?ZX5pTpZ)`GPcQiGw_otz|M{Pp*oQEzV!&_T zzTtjfPI|rrC?(_ha>erVZ>%f>@VCGI4g30z*Y^c~`O}~H?7!@gl<@xkj#fLSX~HxO zxGyU%(@4Bit(c|}-+lRtec!Qe3tpaI@O*Rpr~mj*=tiN3f=0#H=NEkW@`C&0j#?Y8 z^A*+&Pq*g)BC{>ShXEh&cjS^WI%3v{!sj>}=p8I4qQl~Prx03IK$=1NKmPas?f-0B z$9%hB+bdE)^jNM80xH`HCkQ2-r=IP2F!p_NY9LKYjUc#f&E&8J9^kjlCQe)m2>2>e)LWBc8J1O&Z zzca;^^I7vFU3mjaO46~>oJn^TW$ccARw*!1#7&l)AjgfoSqH#af7XONjI0Dm!qj0D z&Pq}qIAE_7TE}IYBaud_*^VNeQ>hHTtS{WGw-7_0uPmw7?=@pi$0i#SQg!{hxCD$I@{&(PjNfokVV*W<&uFAu0B z48x4pD`VIqTv2t$7Gz|C4O^_((rF&fv4)}-CYsUxaG)4^KX3^+t4vt_869v+CK>Fg za5-vff;cYg=vn7htKg+AB0NQ!XA}HF? zWPreKxWHVnuJ3sN_(1DBvLt*g?|9sKGpu!|57G!0t~Gkl6oG~ym^SBprn=at7)p`= z7XBPXii=og#N8U#o@QuugS+FtE_}xX)v)dx$~ZF78`N`0R1zhwLN(+TKTMs@)F9Cg ze37REE29ay0DY$_qls9Qd7P0TDB}osqC1dM#QORAOqrvFNaFWZNCr1|EbA68)&w;< z(|;0a?A}|f)ij{6P6UP$GtxZ5Mu995Il4>f@v#^bsM1-alMj+P*rWJ|3Md5FmDaT# z-uTS9d9VRftnDNQd>k(_B&74OHRIZp!c{ys7Nq08PPk7Rc$z z>OHy#qc2mPs2g+Vvl8oD(e&B(7=Nc~Vmb7f&S%`i*XHh69}mDC?;m&mt^>RA?e!h& zV?{0*FE20j^Z`_Peka(oTg5z2H0~Rpzhzk&u8R7poakFRYPNc(iTZZCVk`;kx}a9W zG|lu~M*knegLq$8>@jpdzq|zH{VTi+e);uR?E8k-Uw`L!JupN(cOXHS|U z9XBE+#SjTVCQ+i$OLNI7BM7JNK*T(1{oE!b)$4#5p>z&H(n zfalWF6=fKZa>ncHE0*O!e%`vFwvJj`aIF^HKknG~#=%d(I;^;~mXvY5UGeqHS0ZSV z;(DFQ#dF8?I!6kT7K6RED6j6J%lF;t{Ewhkj|pU zR1`3pl-u61Z#!=}+e#LeJ6f}oongI2>VY@|_WER^>7%o!)_SgHdasPPr-6PdRd{qy zi6jgWSEuPSvfs{#H#-z}ST3k0uYg&> zJY1u28K_S4syi@DGv;!^?uJ|vhB0Gr0h^3%ql8U2;M9j@lhb zEQS^uDwFUAYv5X#`|6H{j=?fo3k69K41#><(v2x269b98lV z>xz;GU?BfWOTi~4g#HsqC{a-uEh!AVaiaqS;?c#hFq&m}|sJ7<%pO$5VwLgIJi^HN}lR zltu)R+H-lMR%WlBugch@R=-UJ}rHWa&~FOsgO4p-L9q{?C1kA!mY z^bm#LN7r22R&)pQG$FYY#Hxs)OBl8}0s_{_+!BQb@&ifHdJ7n6s70}oZAL$yyHT0V z0`~yT0!S&NH$9OY#Cot`+2zyMVZAfBllbiRNLu@`{&k=$kq=Cm9%bJ^uhDlZ04)0F zPyp>=?(ay##4`C{VfxRC27?G=^Kw)xx$vf}el9`W;=;m@r@02bSev zkVS!gpej;gsxv1h=H%#f97nbxOc(t5FMmbfDs0~%$}Yg16Ry`8H6^rW7*oPL4}s$_ z)V<-$*DoB5S(bv|e*GQ$Q;Sk>V7)JR{`$;8x>mpqb*soj!OuVc!XTUqo?pJ=ald0( zSG;`r9`iKfx8Hujzy9_+o^BUjuv*6t-~Rwnu7SsKgqh>_Z{OIfI1N}H%h|8^-FII@ zRj+(6yPy79cYM}l9T=Cxn|quuBB;G1s|ZXv^i1=F_3qFFl;MK@sHoMTsfF1r@B~Kl z;xLR*p#nt%XWWdfvUVb6q)db00e5R{<8EFu=IaD+9h*5T6`}-^qp+j)4ZSs_F}C?~ zp!evzI?lVHjEwaLpT^Lkt}tx$J((a&MwO1%$=m20m&ol zWVB%#F9BGMg6&T8vbjK#@pjreOfw7}BMMRi`#NIzWIieZE zP~fej#n0Hf1vHYy(nX^tz)8w>H#AguYfK|_!|n~Zf1s#g7_U(8Sf#PwtSE{MNHDa< zK`Mdq@U}OM*BRa!aCoeD4D(DjlSG4hYb1uNLc_<@O^~Z$E+Z9>tY|y?;Zn(wV&u!G zwH^huH1j$<0v>@yIDBAmxGHjZ<+y_xhxOnJML*-;RrG&aus^;yUAp{pHASF_U zKqA8?WsJG7^Q+7lhYLRLZMm8Vxbh0wU<>R&=S>M&Wi)XpYi(>JqKC?(3TZ73rZf5Jl3qu;Mk#Qj;4hU z@eB(UIZMXgHe~D(s-e-F;Mw?&hmSL5Vh`MVv`b{v{ej!`jFu}eOQO)i5_|TmR{oxy zX*|7hV2sBL8{p50m-_bjAE+`OKWss`J z+NGGoQlt{&`+OLMts7K0$RpesFWM48Z@(pwMq(vEQ=XDdZPvWE%YobRsd?S?O3Ux+iPG>$Ki2ZoaI+qd8F z@&19@DyI2@+mC;O=8T{I`V(5EN+x*#dc*V6g`a2J@#XmizyA6wT61D^5GC5o8bvTH zY$(1#oas&#A;dZpnW0fQo-|ro+KyT~dS5v#h23QwhX7`3RE{-zuZm%sCMr$K8W38+ zI1QLCGv;Z8isOA-(XF9vT=9?dgtyl>4C8>?ZH6k}#d#>$*A3U}6+=mQ@3bQQ_~i+Y z`-(5$e~0_~`$?)-WVBlG{_%m55?)@uVy_KfUcTV{@qv$z74!1IJk6Mf3Gd4Xe*f)f zm>Hg)p6CJF8w7@JUtun|%vZEX4!*p6A&9r`z|4g6JPhzwL%nKLQ-fT9ct$k_*^}#O z0y%2JqPG!l$Thqm#Rnel6BP`zhCGj`7%`3s-UVyivaCA?kEH0e!?B0in>|o)#kzN- z;&>V_&@BA0M9}^KGCcN~yoJlj!%87dw)ml>Ihr~or=$J{CWMgg+s3+&x}ShJjigiW zonDDdSviI5yetnq%{LO33vu|AQW}y>OjX9qq*>#^o`S>B0eP=w}VI5PM0Rg7zf>H|B^#iK(k+j+|4vP75rD0nV`c_Y}z6Ag_fu0rvjj50f zZw-Cl=uev_^nJ&=E_l7a;(ED2L3w(Zt}#psTH-)fN}|6&fqkzS#)MXbv~7xYzoXWT z6&9MY?hlllFy;blgca7louusogAT)~s&ajk(RV|cGV5fp;dCI1BFP^Hq+?Hl|#MsSUm~4QmN_P8R->+bf8K__TivwAti-wE07Wojbqr5!gY^16!dIK zj-gj*f=7?)no5*EWF^4Cd6<{7s14#s?42C34FyGNtqy8sOZBvL zq*Ez9o`+*lG{EY~FSID5?va$#SYOu8KEaYlK6;tHNvphYn;A@wWFapryLaT+oOpc4 zRfI6(J-+|gk+egD#NR{3`y_t}YTHQ{7vSl74NMN1f+@vkk%T04<8Xhdu_bDePJ0Td zf}Sk1*75f7fmRbPml*=VJQjTW{Tpu2H~R5}F^pj-fF4A2h9TIGsVL(W*H$skGnV@U zANLQ`y&{hpukUYI))hl3`0KJy#`TOs!W1I)5D!#saVH3-?;Mbr3j?49mm*?k5 z(mGzgd_gW5B^P{r+_6_y;+26U`)%Klat>A=2)V5drNl~b7-+0kF0Zj!4U|S!7-579RHo$><`oJ)5~c0vW#w%zxIwCb#et|$42e?y0kAZ%2e4a4nF>;45{brJ3E4C% zi6ndrDyY_=&h(KcfoHBFVT~(=-mxwVraZ#EqP32FUC{Ohoih5qQi-vd>jGY*Koy!ZvL^JlA=+%&wr)T!#0(tXIk#h3 z5pC>>&qQIYzr+MJ(se1Z&x)%VIboz0)g%$lgVhZkG?{np$R5m;VEfRt9EaL5`=oN3 zCrcnCVC*NW-M9u7`mH*^%SN!eL^Bz2y&VNT#BPK_2NRe)NLAN(YY3M!+<;TD=@th5 zP*G}c7$d0)>*&rkVai}aH`r2xDtfFi7(yZENK@j=)_{@~t?xh&%6L2^XVp*ukI$gn z;Y_zk9Ov|zK=v3YB0uP{u0YWl`QJNggG?xSmPGNZQX~0zpIO^dW!AWB88tgY1lb9YVqyW1S z_N<ycG3@0ONF=q?9G00dm7xH= zMv=5|*!9lh?a+^NE<97*FwFz%-m%4ZG3SJj`v=@Q#tEmnJ?BJ490JJ%XAk2L#%DR- z@mA@{#Gw)g*5b>T=kTj`q?Fh`k~2O&7Hm<^GY%sj%T6fobUTN&b)yyIa`}pED!qJIyq;vU6C`@gSkI?}ep^xx*#uFKr>k_j_yhF@+*@m(8K%l67 z$KEL4cW=hbT}t>>BK<4*dN0 zf5S9Scq}{a_gAV`V?oKo8bws1HV& z1P9ESz|EjqN~DR$VfG0i1~>??BsqPO(81@YcHuAsmRdW2Ax|d?!di#-9<^D9YCF*B z3sYr{h?`-nJ3IS^AykPSGG3WR&6z99zQawSWn^0NyzDh36cYR0fzC_Uwl|DZ=E`^+ ziTnt}fb~w!Uw|I1cdlKAkx4n@04QeYFtq3yB+iCq^PgT1zVCXslL~H#sWy}%YyII0Z6W&N+>)kR6Ot)$KV&{YZV|mJ^lC&2=M_L7hewu zui58CMTF{5Dg%QE=4Tbs0m*VG2O?)^2KycX5JMBdYDXy|nimq0%t=oC#9Om>|X=Klt?~~2;P%H>fbrDo=cq}XKPBnO2 zSA2PXB9wDo@Wa=yxXd@~b;l1se8I9Va2IS_Wd|z^PnReBOZ|7O)iBK$e7wCua>iwv zPA_OlvEm*ER^XW7?c)PeRQ~+KU;i8h;QY+znJZC*II(Rz9?KHo-5y*#JD+z5FbzzO zKh_mn1USYq!dd{)ec92SaMER6dFgD9X`Z5)WWd*Pz`9i`q2BTK{*KFZ!7so5 zhUNZ1$_XhA$islQ_jjyeDF4&ryJ~x^XG%3j0rE#Ur=(!^>T&vhHcxh?Hd!%N~}=I1-&~fhy^E%)Q;{^i}LF~ z_%Dy`8p9tMS-NuA7z$czn6FnX+ZL_jK;J5KC}CXWU?dJC1XxnymMM->Ml^5q34sLZ z);hcO5|B)zMLmbQQV%Hdx!+_Lp~rz84>J-n6g6O^J$l}b2iFe*wj8%6CLqLFfZS44 z_0$d|;LFPk89ouiM;NxvGZR0^a7ifQsK&&{;hYn42_}+Zvc#5og;xJZjl6{ z@5cgPLHYc`AC-1m7PSI-p2y9X5NEMH5g?H9)Tyo($RtUxGwV@0OF`A%T@STz; z{POlI)^$Y!P=}0;hHa_nbwkQm;vTZ%u|F^l6MLTo(Q#&xVoWD}8xn?66+#9bD3z?V z9-JPF;j8TpGUhn&cWClZLx8>AF=Zkg#&N>8T`@aQ(ug!D5V7E-13v5yTi3V|6bKrY zrQtHo$YX=`9a2WPHw<}V5>+|4nb8~6`yQTLpf_f+pQ6j3DxQZ~ToBWY3 zWM^?QcmFBiu*aJ4=qn^`+~PnGQ9uvp7vYgPV3%$do*}9{c^Hwvl3~@vbnRJ0%=L;z zm5%ovrc?O(xUTAxcjuw?TN9S539CIq? z?OvP)dq3PC(U#y5+Gu?XB{tYW&ec$gXX*IfN~F*IXj~AdLJ=$}c&ODj!fJ)3#IIxm zzc1~9zx?^fxC{#NI6wh>TyHQ`tPc(X>$>9o?Stm>k(cWG4EuU`XPxuSIj zyx!h-%+riAWVR#B;m3)K4im}-O&LG@_yhKR!?rJYetN=mxj=)f!Z5x*DI5@ zQEk+HN2?uss~AR}%j@HT%S=YoaRKVhFqDyK7H4nZIB>1k7e}iN!^rcfHTo~D8TNgL znc;ewPvEc_l{^uRL6YS9%VmywDTbK#7*f}DMbUpo8JK3@*B$@k?>~npSuhR*{`R-O zq6`Dx-X0hR!dXkn_{V?zM?CH;e*g9j|M1gaF^th)3h>|J9c^#%9&{`p_oxaBFswPA zUY_v3-u@Tt0ghhx9qZ$Pc^q)L-q6|(nBjK2@lqX%n>o&lm5AeC|Hr=o?)dWc1vx3o zbP3f}D0(!mQhTu9>}Xmzd?JBnu+YCF2N70}j@~f z-yJ~jK^*5|!g>t?tj0|yaW~&AjPoTZvV2m8p#V+8G&Zo6J@^r=HI_MMWz6#EGHge> zj^^fO9ewYBb@-5>Qo{Qo;VA%8r-Id$z8i@_p;<*U!-SFQMzbgdPDlqeIdlEvy#bXH za&|$j6}5M=k`R8fFwk}|ag!x6{c=P&C862|$cB_I@lxY~+iHcWQ)bQ;jubalgV?ba zr2pe%+c1m+THOO!+0Yx;P*zFI-o2s(R8rG`%k6@v+Xd^sqpls>zToBMg%oHAwrywK zf(T?7Q1y@CL5m$ef6oRdaoh;;T#bGe53fw^4J8ey`XlDBIF!9RI(97Eius9&vsM>e z$`x7$^qnA367MsrR1D=3hp`}!6QtiU<^d%qtSvFU7q^S8u7C_MCsvEtFVO>ub7;b%Hjixm7Xi+_js!32sR zLp&p@#73l?p$4pN$B@QQ`5fqnu%P65sRDWAO4+GUQ8EX*^!WM7PLp6e!TGt^f!v4z zhSBuk%mj)9#(E*Zk@HA}vF}JaMs!@!+5$;qn05J{^5~9pcWBNLH|O7#=P_7%#4(5} zx;avSSg}`xi7DQDWVzMWBI%cjWN|`Fdnl)*jB1V)vHT(DgE4*ZnwjoQ8f#Y|Njiv$+yWG; zfvq)|10}qzeylB(!?~IggA)nOQ>_dS4<7>}E(nkf>8-o#aXC*@P&XB|29^a z(W84DVBy4oMZHh&4Mj)f@(k5)?3b-vT@RO;-)T#@TrOCa1<$u9yga|~f)i`=pMLsF zhy#sjwrwMKs_s}euHbH$5z{_YGs2FwPT(%nRr3 z`HFq7xPQE(8$Y{m-+srJmoK>Q^oNcq9p#3`h!KidF%M{=WL@MH@y8-w#-~4gdK+{}ZO6 zKvKr*#|Nxd-0zR5;)%rJUU9jOSe7Lk6AXX<`BywYzu@W14R61{qE>DM%nb81Ivc806+0dDokf!pK+4)0L=0J@P_+etH>ZFs3Rg{)FH+4KH+~*qOvsJc>-u>c zii5xr#nABsb#v5SG2{}}DxI|)WjqUMHEyy!Iu0c(tafAt$-$8lfeTO^Ru%A$+B(Y7 zWDmfdhYf$hK-Y|Bl(HQu4uCy&^JIj0=V9i|v@!)I3Jqy@uR9bKgXEKf4^4b2i^Ay8 z2MlQ5px}U78<3|905WYTXBMt;l{eY8ZAg^aR;8 zr3^Hvy7Av5EV@N&fOFlYvG$SZN3)pXTdx?B0_hkuxJFX|d!?f3CcM>0+HT4t566_@ zNzq%4LzYJEX}V(FYoyOsNEsomah=x;@Q!Wcdcfcm<@Ou{Hl zm26!pxx<0FtSIvcSc9SP&yCfixWoV?al;&7-p=8{;_{&>>R+H?7l>q@cZMbKxf*S4 zgF#SJh90s-R0)yV9VksbI7>K#7+kOM7bNk*gBh&z=RMMxs!SS2B$29W-=Gi-(~UNT zW=N8m&uzY3 z-llZgKLkZ{hz($(+{iwow@xt*d^gOO3x59Pcl`S6??@sTO2Rl!98w@)i<1Nki|@`} zcPx)PZqH9>mmMO4ecv&RH%!wAO^Uj$_*mHb;W<+=%L(&5VH^tH9~)Xf*qn-&+Y@pr zczV8~?mPBv#gHy2Wx$s&C5o(pbz6{CFpdK})}VrfeXoScisG>>A;8#K@{VX9=)Dt| z9B0{)m(mEPe1Zu1ZqKz=$Xt+W25jf#r3#e>u>{o$aRMaG6)rnv{^Zyn8_Ff~1|BcE z)*1}dh;tO3B5U-n#mgLri8;ixkFSMGFQ{626R*urUkD;puSGq~0+q zL6F`1nL@BgV;`&|ocx}sod{n=+Ud$k8pATvKO!lVf(CWIY(0Aa+!o^=2L?NvqmA%L;t5w3=DykYNTt@VB9`oP&MD6vX482Y+k zyv+1@*api3&>VfIr!3`Tt*o#Zz9pcPC!X^Uuuc^!Ag9q4f*b>g9BEh&Z(&rwc(AAB z_`bt=z#b12gXfgbiXt~diM2!$s!chbbJWUzSKvDkDutMF z&}$7Qic+FpE5L<<1IQ_7TYx}A#%;B5U@Ot=>ybR^hypm2X{62_r?Kh?|QrkG8 zjVI0L@coHL4`>X*l(b@K6$~2Pgu)~vQY5DO=X&ILzU1&v2I1Xf80KKZOQFM|MUf=M zvlbU^d@8D(j009{kq!ngSZ0mVnir6fGxo?w=6f85~)%;OOKgca+$!OSsD z1Jc0DJUMXuPPW=v+-}B(33!A(=rPhr18HIc)8Z^`y-#&t zdwHQHLIjVG2Y&eeDEx{ed~u6)sK?^LPk{#NGw>UpDtFPk<7~}Lll^1uKs~1ma&?ll#$Q0 z206b`f$U&(Ut+Cu2yiXZWAsSzR+o;SH)h(T6LAUq4)2vf<6Pn}?q|H5>+o`}oGeOK zy&Ft+9>?whu&u}{sQb=;yEq#r(gtxp1N*j;m6c00uhW#R!O?5Av9hT%sDZYHSCnWH zSDN(?g}&{_LAAmaq4))@ywW=*(O_}%t$P0qH-tCqxO|#_`W-b2r2Pn$P)bKfN0CVO ziJ_}OjDE?(2*u=ThC019DON2wRB!0%uT)obp zzQ5ykyJ3XGixV(8@cY0t`G(7-K%i)?V~Zl>RTM+X*w!5%_Xkp}l@CP+(IV1Xi=mAF zS8HXr9~8M{$fm3jGO_|6%Yy6Wg3FaShiZ}Pt~>HT&*M-yh~!dGN?|YIJTWEbj{E(N zFVD|-e!5~^h{xI6g7=R*y@Ov~FiZnpKQ=7)2UHZ(G!R*EzXyaiLvw=dJGON_3!jIQ z0}`G2nI^?J4z$m7s`a8&S92~@^4;;}`76vj=F5nznZ?nX@bc52U}hMyVjOS$w{9FB z%Q#^ui8h~FF<)l19!(j0i<+znsw{n0;WnTK=Pc*Mfhn^l=&`J9ILR5yW5MIGV7V`N zdpsaY-*hP)z!idVWLwKLJvhfS_LagriSmU_4r+(h%Fc_3#A@E-d6n~GA?JI@|ZmN=vhspPTcQMnf=6X-qlDVwdmj)LORsA8U}oYLG6P|iwR80 zi?PZ*cem^SS@OoB3d{;xr#ZP<#ux>?H)Lz*UC_}Gm9-Et(No74VS}^?i2&O0BH@J6 zIuor^LN}!cE=4!ua$Os9L?0b8l)fTgiHKiIXIcoC!YB;Hdld;pNg=GiC4vl=&868@EZfW+rkJ4At6RZ&K!KoJYR$480y`F_%wB@VD!LLuzRw) z)B4rHmbTrjSquL6j&u~NDu~ACymTUKe*5-?pHtXZ`?xK5 zf36q+<|*Si3RHH)OmE}19hXskT{k?RE5-oL>}M*zHOzHJPMJwJhyUi35Mw}|7IGw8 z0j%Nvc;NoHbA34kwXv7?Ox?1IsL@*&=^@KgX5tTC>*dPrnX*hFkQ?dzvXlb;m;d;$ zD23g8tyO$^dBtD9ePih}6mM^Dc>DG4YsFWy3p{1I=R}rjzihHG_0{-Q1e+Lv;KUQ`x)&hm%`P?8%b#R)pui&X_=bUkDOpc}y@YV{gA&q#Y5SWJD zkBV(G53O+HaKGOv42^;1?%r490X)V8$mU5`Jp-+L&-px{A^KM1GqBXHA-3)kIGUI4 z2AamfhtRqn(8!`q6EDE+hW*$PB2O5tP(o+JAMyO+Lr5P$bUxN8v73|Mp?mx~^M#ezO_)PR4Uv6sV*>_LkJYGh&>UQ0qX3eiGCVoaVKMOZ ziq2DsM&vP2WAxJ}bDJ@^QV=uLI#+WJPaLCPz{g=MtLAIY(CSW;^%ywX3adaKO0#+0 zF(hK3pjE@L52VNB4f2BR_&^9VVveYF18gRXB?L$e=*9fxQehGiRS^PET65o^U^Kqa zCC-jppl|B((26<)lIzbgxLP=SGevzhF<9p^f}8UPfvvSwt{TTDN&wEpQqWk>;{d)Rdj=Bq%Tr~*Fo{SZPK|0^HrBe1sos2Qd$THwwNa}#mtS^g3IFu zcpHT?f@5H{3O#I*W%7eX+LI_obcHztsxjc&T)gx*g~V!|5F94y^;#jonxhm3l^j4W zF59Jr$hjWGWq}yNf7jXV$~0y~M|TptuhaaxQ3Y%$q!s=?p^))eH#WwA1#=uua!W$L zQc=Sd+TfpcxJt|WCD8ln%snx2Sgg7Eym<|kdf%pVxFq;`g#>)Ld|?Ak1v(O+`;7;a z;9ZnKqE`UWPZvXiNxz&GqJraS2pOmY1d%pF&Jzb*4;wV=^bR?LYMEyYbnF|;s^?{K zg`FJ5y%hA)s1kedDkveWwG#u=tTT88!TWQ?fBi528MRdWU;pR-jmOIibn5u|_Kv@N z`+{t~h0Fi|AOJ~3K~%@%1xG1(JRW#^`-NHyrYRvnkweCFT@f_k=l5SkNbDO@o>42I zy3JKj%@d!;Cx0(y_k(hPiy@*L*_I-L5F=h*9(deuJS>cX<2dm3mHe*bV7tk_Z79d? z*JsCoV%=7hqX43qr-^-=ZUK0GysP)56-a5qZMh>v#r=NA^pX*jLQk#aEt+-wdi#l^R96ud%WXjj>_wht*1Dw- z@bY+pP7!~zfqBZf-S0?=hu%`z$5?80&mjM>Em5~^`1jxi=2`-b~1q7Fgz{;iIV6dUTk;pNNZJS%!mVj$N^?4U_m6fq=s(9>{R zkLEj0=SH~9ERIrW2JV=1LnJ`$NB>_XG70(Tzs|{vQv~!un)k`V z5)Tzv=YfgJi$c4hwt^gHu0tHJ(*5U7KHxc1gCeM}H_wPA z*aLUs#YE-uV5)nV&Xp&(gnB`WhYyl^HAZ~)Zk`y2AOTGpy1!uQE#dbf1N85Bm#Dz)9=v3{Zdy-V$H`P6|9@sL_|Ad|pXJ`#Ky%P&TI{ZoV zH4k_M8D81O<^d)Zxk+x7wIyBbs!#bmU@+~~TSbo?3}T2l99$Vv!1koYBE<-q)H#d% zS!$_NQT(vZ;^Y8@;(l9DW4i((bDoeAnSZr4l%o<;lajY6Fj(@(KmUN4p)`Z!CnP9t zH!7928_+6#{P+ot+)OO@v(n{&j)3>)2g?{Pz1_fB~cwQCe|MB*Oz^P-$zOOwDP| z_;`OuJvQj$&ihokIjOZ_4goo{7O7dsesHZg`oM^C`Q)~Jzo5P+wAXylXZg9?70yE> zkFrFVO!Lg*-Y~)HM%;nZ$47B_zZo=6G=3@9Q%qBlIW$ib5f7DRofd}oSg~I$ME3KU zdActs%y|$Q3abM>^lRT~@~7yd%gixQRcOUfyCFtaVT3TDyH863(E(x$ighG+T~hJ~ zx*OC_%tY_Ju>&&3aDb#k>#Pr0IHTl@5qAL^DrC?M-`x=08_nZwDCD3DP}tp=#{xlxgdik_Z)%D|-{L`96=w>unjnyM=M4HXCosC^&~^38IZPzMKZ34*KvE#%8YA7kL4FT!=3bzeh!qSaW9qcNiF zPn2>X!~>&M_w#VYaSs*o>*NClspB>R`D-D#iX|5byLE#C*c))06QyM#yJdg_Q16D6 z7~7{YJHlGM3Wwptsc3Ky4DSO%(pl}1B{1gilqpRSt$2AehHu7#7otZ#khbEufN-VH zM5!Y8deC5EJnp-S~o0_^CIt+Y+77UlBq+EhJcPBy_8g^XAe@t%8&Q7)|)S z(@@TrBfV=^d3*Owrm*nzD|Y9B#a(`sEKZU*q&{mqJ21K36W} z$q6umuWPs#5A$@H|AX=+Vy<9`$Jx1pW1uJH$$gW<8yLo=#sJE6RyT||AbxG1?6KkA zZyM;sg~b?t|M|@Xb8w{DxWW`?HtDokh(zy}W1zwWh!W7y5JeHy)wU44u8F@3n4t|r z{8Qhii$)$Xw@cv*qKK}Ls%A%2LVYOWHm{=_*Yv{uQog5szJKYqU9>&pXHE4pR+0t>ID zJTdvMfyzuu3CDhLhzsOK_0}&l`;;?cq9K~a&m7o-C(A?>kJ}w71pMVM-|%?3BPV*9 z0tRxNI2_dj|NQX>=J^gN@O*y)&lNw9pKJu^12G4@y}u);gmr(yn&I`!>s6>;Yxy)$ zhff5Fs344Rxw>r*T)09rzjB=bBa`$+_zkgf>ImyeM7Akx7!Sni0vq7-r#Wd zTaMoGQ4X})E`M8V^k3dz?*!iZVc~3n5Z_#wE3d;P>T|dfe`b+=2Sj*jvzaoQE((l* ztb$q&ggl|c&~4`prNNDg;zm#L{XJ=@ni9f@SCOrG6qjx9Mq{AYJOGsG&fX{3AcyBn zBZcVk>*4d(S!UtnYy{*GP)0*lW`) zvT>$(GTLx2lp9aazDD?IF8Z3Y>zSX{tCSaGpw@RFWXQ-cF^DNN2KuGqbag(#3p~*y z%yz=cVnlNaZf^q;f#cY`H!8tA;Uoh0bSPB|A&ZM1p8@Sa?G;ou^E3ga z8tEqkI!uA+l_6~y3~u}rK)ncd2qpOu=zCk{3ET6H>*CHeMjnE;cZ|rFP!dJm3%XD# zKp#jNP|tdm-Vg>bf*|FHFoe}C5Uj^LPnZfE&!1>V!89#AF~o?Y@CGW|2Q<)+QjV2{ z+mQy+c~Z>NLQg}lgz#OyCO&+5^Xqk5>D};HGDua+ypr9eSwT_e$ ztCW1r-ul4~$NB!*K|S6*NiF&B3r^pw@nMU0(JMC@lsKkL3zKxZ>o^9&U{oCwRrEnDG5T zPvKCS!R35zhX5OLRnS0yn3F4N`dRAj32u!MqcadPoVRvDtv`K^hL~pr42*Ihc~#C{ z3Vy!5^S~j3ZQW5Dy&iRuUhtG2D=!aug&rr%f zyK}$(_KkzFAEwsl2VS7anb*PX@nBb^8Rpx>?+${p?YQ0V_{TqMdq0lU-z2GP-BjAneyp%t?vqJC_yO5zZjAfx3NF5J@wI$8F_Xr2{$#e{!7*vtY zX#a3}gLoLv>5k?-Y@!Mzzc~?o*a_YPNMr)c>kNjvI``Q#cDB)rD+0q5ZB&<>XBub& zA6)0ju(;qK=&C{_=*`*+2~;IU+$Lx_6wFQeo(qEWSS95ORddKpg|w z=LX4 z{vbZP^D@n?B4Wy! zg{In>7)rk8yLkirI3P+72c){0-#knJ#KBZ#J!KH(Jxxm*kp>|K)WpPMh=d)UeV}}3 zb114_ana3b(?Qjzln zm3AG{rm6Gf>wwRgB1Yo6hrhiB%Pe>g?!P&Xf|NR9JZbV=3$wJmL(ovP`I>oL0Lqy7 zpl=2|QF%a7Mb1psR%u8vULKm^lzIM6xpK6@BxsD0A)|I6-nY7EO@{Nd)xP(Wh~p;Lqo*dCBs54a9~Um z6$)Q1zT6+E-NRNelv0s$MsGV!+$uO?V~7dBl$n&SwIRlcd7iNC6|K^gew=JCWfD_W zxvHxUp@g6`A_pd~nGpr@vS0}C+*Yp6Jy4Kch0iwvOYiq@IQD{jF3aU2KXxt*kh*Vk9X6ushZ(6cL4XUNaucht`$;aN`xg(!!#Zsw5U1~I;IhdeV!<=5QT0=v}6f(A2ph=OZfYA$72By5ALeNS@o+qAq>X}06 z?nB{0ECfY2`lV<>KNA%mS3mchP%@rWz46MKH8OCtia7>aE0ycW+AEUNuthRpob(Ch z6Tbk>smY2C`l_ITDp&~I)&8k|WcZ1TEQ`I6(tr$}wfcKlNWmhY0p=fOdLf z{Qd#R<_Q`gXsDH^xp>|OJ^_|eprS|)3T~A>cim0!8mNSB`-XjG<3mzMaty*oRj9P7 z8{icIAguSJ%S4{1*+I=7a~K_2s^d}wVh7L;+;hgfB))hyLXpoBSGlxYD^pEB#QGGN4IS}Rbo71yw|rHUtM z(Avv^7@{k@RCiL0$T_35hLEDSkPO5Wn1XjD@AQ_b((6a8L&dsRw9@eXk6-xtVJ{_*Z@35NBkFyk8Ygo2)f z^cV&c9)!RA_RUdKm8AOG&}+psC48*h3{6W$2ou-de)JW5S~Qrd51;dZBY#dsmtkK; z4DL6Xa;Cyl4M*A7QP=1b2s+T(hWU1fMj(ZZlnYFnTU_a9YG#m-(5ygvN03M=xiO{F z1|KvuyOL+++VAB>8a7xN(>(#G2^iH^k#aU>ur{D~m#t~`3_g^Fz{}4(6&Ql|VS!a5 zDvBKg(T$y1sJyhnn~O2j466qdU}NBD1?Wt)guzwdnXWml!`GJ$MUVtVMH7V}0*-i) zA&^LAP6HEEt&`s|9G4J+qF84_Xox>r-NWWk!e)bYLBo7MY|t1mS_hh7L{8!|1Qr#w zabG><49zpL54cA=Al;C|1Pu|bxuMUv0N_^CuI@SY-`5cG%c5p_WnxD&PiVrB(n5g6 zaR8%21|z(ER7hY%y0;bW5ZvxJNZSz55Y4+AyDK_Y5pzQHli9$44tiQfC!WC~R~*Yc zbCu@uEFTgMkOMfBfG@t@JNEU7S)A4{!&QfZ5CWEYLiLyN*_GLQLp^rHlu?h$WU44y z+0ZKo>&MFrj-Bz~*OwPc@;e{Or527THBi&yihmAMbCUOd=)jq5AbU03Jln6-b^?3V&ZV49o2f5mt5F?_Xf8 z;<oVb?QjH-r+BBcoeey(L+u&y8enK~81 z$QMUS*_8`+r^S%2-^UQRDtGz~gRdW12Npua?amcG#()IDa(`SN&KT4Q$W(kTJTb)s^T5D7FF20l^2QmcuBF6h z@)>8aKXvT^4rL7tq3rw4mFGG1C3YZ|THM<+E)@pu3*|xEupb;?g9J=&x=v7pKok3v z5{}-GG8Iu7=GO=Zz$knZsh$*g`edsNgcPotqGg%sb$dRUJ{tqYJ06dNJ&7r?#^=}z zVu+Y$4sP4Fv4$p|bw1v*kRnTwpDXHqVB1$L(~Rx8;rk!o@%DToq{QK+cSKdp_XQ~> zJZ=wc?<;fwKmYj7A-fjDm`G#~0XnHeVh3yMmKhBVwN&IpcxUYlckKI)TG*a(zs;nu z`{#UpePxH`Aiwg2iN+8yW!eQ&wy)9eqFWUbsfww-3C1eBk~4 ziPk&PG~w;v{t1kM-@koBo@d;=DoRBVQbULVDVzhpVcIqThG|)tc8>um#|!PzddKs* zA}Ekk#xe_15KM`di5M0b8lKPQj6&L@T5D9ffKOi|;7uV^w$KFOzy0t3>wiyqf(n?V z10TKyO0%sr9ce7_%E?+0GtQLhXKH7IAMBQ(79%VJte%&XG>WFFrbH ze1J7Cy*G4E@SO@%l)#tD84VxiAV}}MQ$Una&5N3^9CXIG=rDXJq>0rVPCd5X(E33Y zCPogoh%O5gZg`egG)LONkqLIz|0;*0kh2$5pUfjg6vly71r0zuc+z1!+uO|CFT~LCqMr}MWm&u|*N_6eHr+wB z=UR@$@bd&e2x*Lw=Jg?%mmAB%&vl6_m}3w)c&!FL;8OF>Ecdhzvk`JQ?u z+;a4G!6@N{r8#H%HGIv>Q*`mJI1VG-_}^!&SVC|G7)~r_S$H?Ywr?n{a&U2D_PKg? zK$t5okv)h0`D0F8?}2qK8mS(&R#A=uk%4{RuRgUixumMT-u!g53{Uq4Cn<~Hd&BFA zg2P75=qYKnVxAKO1INDObf*uGZl471lrllI6JzWwx#deJgupm?Oo$tM>RchsYDrRBxGXQ~o|f3Ml8+H!C|YVj8s z{~f2dv-J~1>fSXESE!Trtyjm2@IE?@ljX$U&pdHm$!jF~DxTNFa=SYlI=Nag93qYD zo(Uo}d#m`GxVyJ&;MfoR^T!ka{I_5D`j@Xx>NYPE_Kr<(kUFspF;U&U-xjoPpRi#Y zDAgNIjKA*~qlZocrg`#p6Rj^v0?Wla4-&uD4gdJ#Ct5SSKUaJ_H?-P4jL|*m$9lT= zj}L^Ht}qzAr0kuQpqG+o-V@4J4^L}$XW@D8U`Px*nJZCKo>0op=Syo>n*6N8N|`FU z_+fz0Vy?_Ju)mLLcf`7H_)q`oU-9MfLKPXnaqMI!3f~jkzQfG$@#_P>-rg}U6Ut7U zPRZK2PWbiqfwzx$XKxx_Utbtf>Fg|wDI#TdLf&sT+?N|3 zk2~gNfgK4j(ojw}`Kgi2I^=y-#>qGG6cG0R|b^ zYjvEIU$Q5s&20?g$zK_UI0TrN8=fB@uwDse3=!zy$v1Xr6da}Cs1@_%B-@mr2f=;n z#`h?!QyFRCXa`B@-G6`(91zDHh533Tdjz;wf-D;X+tmXNjKg=H0f2=9D?Huz!5Ofag-|_Ey>Vm|pt1+d7ItJmFXgChy5MoqhWPiak zRjE#aFTHSGDuNtn^lQB`cpw3-6CkPrhqXHINra~GGcK=yRj&^UMpj7OQH~v=0XaLM zv3T9e`%k=kdgxRdM18g6MVK*?d6T2k6E@iA*hlx1bK=TY=?8&7xWx|w(t)n$%1lsd zbs!uwcroc^rW98Ot9vOv-hO%^xm~}T);nt{d?4ui>JRqd0ff#fkHHo5qBn#@q=AA# z06-8@Ml-O33X>d3`fGi$COoDCuK%O$DDWM!b zd}jJ+U<3Pckk0<^6r#+kC-7n4TScn{_s5I#y2#0qKMkv;(~KK5GQoTjXS@Pv48uHS zl!H}BDJ8F5>8Qtst-X6{m}*Cm^MD0j7r^y!HTM((9K@D|Wx!L;T%8Wm#ZAsU9MFcL zmIH9oJu5TdZ3Ilw*7}(c?5!gND*g0e5+r#Vs1Nt!ahT>>iTopac823?9BR#HMmJ1T zzCtxIrR!QCNK(*i#em>;yJ6qx=i9fPD?w*~HPFC+f)aaah&j<0YE<=VZ7734W-Ar| z03ZNKL_t)3HqnS_%GkCQ&72V!!&M%xi=&%lBw(!FX$UAc-WA?57X9iM@%7QTq5 zggz#y1kB5flp@~W-Z3u=Vodn;>jwwE(NIdgQhtxe1Hb*&@IU|UjrXPq*1Z6&;&xl` zv972`#ka3tFi)A!0!PjOg8Oa87>1*?ljK7WXr9o9Q9QW7pY5s$nx_ddCsZ5w~QHIV!$>d*O9r za(TjP>$s%_rJsnI;P%t@wO)+?E@HQoTEU z*Gy9m2(l+$3wlfVcwcF?$pOpbhP_ujZg(tsfhY&593uO6T@kFkA>{;#ipiDh+ik)9 z_09vAQK9|I^cBw!68B4~9BdnL8DnsZ0}*WNhTHvyecLdUs&zf;)sNg8tpO4OQqKO} z8MgHUQ^=U}gelUC`FczE_Q+T=-;M9Qb?KF)leWo*r?fLtT*?UbZYQm&cfpLSj8bP_Hgfgh8$nhYb2%dh1jY zdP4)_(8E)I@#G>6j|7`|bu2r*qA2RuQMP>jHJ;aPIaKPd>2J$c-Uy3av{ zLx>ZQyVWZp>3&JKemhg^BqKX*UI%$1eYA7_y8JNk@9tFHfsiK@SqJO5CCQQ=|vw>-zV4bYApwT>NdMY2ag{~I!Ms`C*T4N!(KwCH z*LrCTf8k_$ch3H?5PdLfUNFv;iK@85=v{Rpm*S=&c(0a2Drr)1sNhcTfvbhfJn@C5 z>OmDgu&g)d3pJEu_wK)ODW1`d_NU*7C9q72-P{)<-t%|V1M@ti9tVzngZQu_?u`)t zv(`^ybnxURnMUeABL}|EB3?6Ar$~rEh=?&GrU@ZrS_|-L{^rS@r|=My``v=CeBwpQ zjw$)iLhsZGWK}N+cl)JR`J8K5;MjLedA{&6Avk|doUk70b+R*&h$KeUX z!j)>CxN;oBQ;~`(XY^LF?>lA>a&)gPo9EfpS`NLfyB|>G;;)tCz`(%me!C!^GDy&m zLA^H2Nmso&V7R+Y!u_9v-${rO(16F|g$dD|G3AKAe0$*Kk@5P-$caq2-@d)#s9xUg z%I>!92&$Nu8NXaHndiw>@JNrOdlJXx%XM}5EWvgb-plJ9|MK_W@#WiB9Qy$)0Q{-O<^#78HGSbZIb0J_N~tDw=zg zV4X2m2XC4x%ZEe9EoTh#7c6KxmJxvvusuI;yZedKL60XLd%#=Z#e7Xg1#8%F50+E6 zhXQKOt?@OVRk%&t!JFeGSy2HLK%DUk^_|6(L8jZa(J26P;a(F$X|8m6JhWUmxZQ7(9Iyu1XGp!s-rd2ajH@p!Wg-IboCe3%}`;hQ18oTrpfO66K4aOK%gfZ`z5Km$qOxBHz8GYm4xy!&qb zct@4Jz?1RE6XkGqs?k3aYQr>T9LMgU)PQN8vF|(f z^@$MU^=HGmemE<9PS|Ad__`|-(@cif@CO7R8u3~&5o1D(28=Ilf@1&w-^b~T;n459 zy6Zc&vja@I8UTP}+lVFTTy3Vz{>oZ7z_#9i0@OlyV<`uwoV*%}5$}{TS4@LGqw2%& z*wo9sdDp>mb_E#tlKE1 zTw#Edi56nIlAGP=bqQX#bb45q+wBv;89ChUJE6a|HH^bM%;@iS1=sNee)_h-m+xtU z_O}+l6LZ(Q$fwfj2TJ_>HCwe3GMxfbe!W72V4f$a@}3!B2qLG5kLT*c9fM#&3F(y~=(S&- zQutg^3J;2iMAhUeyOpRRO&Rm#U}p8iXT0%V9D^#_#Cv{QS047^VVcM?XftCfFq}|U zal8zz7LSDom@oGkqJo!&+l9aWc1LR+zn&Gb6hp@o%YDHJtYQf%`5KQCpeVUGjP0M2 zP`^%p>JKRl@WmGjro8Zr>5XPrHy)3{!d@GcudTB-;WX68l%XlW+JSE37ah|S_29|9 zdlD&x#iPRR)le#CSp#a;&+=3NNzV_iPDRE^HANF34TD&}%)&I#j%$5~(XL)JQ6L5Q zL+BIGW{r?WbC78a)78NxLA^hU7Xvpg0&6T@B^VFyO9Fqg`03`D;u!%6%0 z6(%KQS9=V8`e^h>_)a?bO?j?$di4q>U!$0x#M3;ZwZkQPLyDQ{jKPbzcu8(6Oy8Mx zY@5F@j4Mb=#iSRXgMba^lU%hp{9GxK_0n5&Wz~~#&U?|wZYvDK=oN48?^u=_Ye#y; z`?})w%L_ta>h5GHJzidsQpWwx)7h*V6%?h>njR(ec&o~}4jykX&1+`Snd2)pnn5K+%-|_MB#J;b9b=)2|eEISP zzyA1vfBx|u@B5CpB)mRekW#>HPKaY5-51~hMm5}~8Nk52O!#(Xj1QB3o^EeR*J-CoCGU?K`%8_vdQByeyv#Cy;%Zr+nRu z!w+RAa5JWa95Zh7467X}8TL|PW#_OKc{tag&_N(>?-eO4?)TeOOLmll*IMm}DdK*+ z(dyx?Fy<@Ov*bHZ8Ivyb7{&w529T&G_GZ`laNSlM+s;JgQ6WJwO*|~k%gn${Zm35^ zIVyCy;n%M>jMfk}LfZoQ`wbc+2Y>Yzm#Ao^_jH>aL!I^XCdAxF9RV@ zH1E4S-b+Ks3j`G*PH4^m(-C>H35l?Z^~o9$6_mIC*NwvplMXE_`tv{?1F8v{5+Vk+ z^~qDS!#o9~UxyH#?ctR={=eDV_b0ExfIkSUpFAk#ck39&270KXRtzRD&oFSo zJwHnVcxV`nCz;l~q*VC8N-@Dkf&p%nC-FW{8Ljc5Eh?C2sutB*Oy@do4EFy;9e6(9 zalhXg-SA{!*$BJV>p6CA zraU`#f~&LM93*UBz%En`rYT>LPL+Y=YGZKTk_|)IcMjS{<@PKEr$476UH-bx$h&?T z#Ybz{&zQQKmjxbp5%V}cJyOdu`4Hvm>``!zxUJZAeU3qpj(Cbx2Jq$a!p~C<#L)ev z=}NPgr5|qAKjD}m1RCs*<2s<#S}#-w|33y1L$!L9d$U5u`BUbruzH|3hEC|SqxzBj z_jg|=+~*0Ziog8!dL7z+doCBUqnlm#Vrd=wUdU6bw4T&vc&>%tS4h~7ipTwqIVH@~ zgm%BP?k7c<0*`q@j)Jc*HylSn2*PK7Gv05W%FQ{W_l9lTke3;%Y)xUJcHrav2|KE< zU>P9T*3AzS0sB#CTzC7xejHc*(v&9;B~fXGQ{wZKQ3oNjvwP#jP3~Of^BpkM*N{P- zj$WZrFyH1Y;4|EYk|a4iSFx`cmlswgFloTby zsFVi8MB=SP)WOalYXLPFre6Bt+41Vf7D?7yhcWdR^XV-Rk@8W<4Dqp42c&JcxH~O1(1e}G+OquNaP80Dodt%Yo zx90tT%4A9m0ohfKTFeJw!MYPlD@uxSnx-o+d-Vzip0K6!1UC9`4-J3D<}LD~f;=&S zMY)|Xg4^u{9VBj467J!gB>Aa8>6ZTZC{i@mP&ynCAI1_o}a)*X`-P!9Xq&;0&h26JQM;hSvCZ)r|-au8j)R zn22KfZN5IUnc@C;VB0qq=Qcj8LJZjV4KdO0B_Uv2*URg*ZJT>{49CF;dQ1*tHp6l3 z^vftN>UZ)1GI>&y45Eg4nX$|P$9{NK4cAdQF}!f>hx=^2sCG^q`urZ=_Ty>*2(FZc zsMyvWJ%}^a)G7blg)-rK*1R8+*8?#a9!qzu#xO&kS)kqfKnfW)fN7?RDn3ZDV|4gH zOJy#2IAsjiX+3T0XCHq#rE8@XRG=wxJAmPxx1Fa__ zg9HQs+w;SHllf{|U=p?=B}LBZYA)$5xDuU^e}9E_!?yG9YptVp!?52y2ox~Q0Z|W# zR(yRmJeCFBs9>@yRnhy3*L%Vk)j_KTG7hK;wyk1bCLI3qj{fet0KKClB!*ii|1N8- zu)#s9Tff+MEPw8rL`;BuICoO502gawDUAUQ^5AV^7>m>pfC~qd|&bX z`yY@L@&EkK?=TpaWkGEQSi}A0f!pf~e*EJ*Zqo#Ga#C z2Y&wi0~iBeU%y~UifOr_*M^uQ3QzI$L8pjx=YU#!#mnmp>cQbl;^#baxW5ypH!CEj zQTO7CYvL+imF+HNcv3hq4Ap6gFdKN>?`$i8UFZ<&&8yG4GueQM;4jYO@D}@s(1{uy zgFRnr9J-nc3Cre577{~|L3Yhr9_E;;YCw@gaW}&=%v% zY>M3Ba&g3XHl$$K(&FW1`*1E5nQ*K z42T7wgT=hY{knP_xi|9)2u5fFI6MGeRH}q{HtQE`Z(VmNSfJbuNHC01FzSwBm2yn0 zgx1XoRtl;OK>R{1Lfp>Xrh9n zc0dzq2Ya|sI6RGpX`!rMN_7=SNwKaKt#d6x>_c!L$ncj%^VMiXJL%6M0@7h#Le9F0 zj?tR)>^f>|xWzj(Wv3has=p7^-Z`v!vT)ls_pJDTqWc;z}88IbHF<)@f81=#uoG?)cF0yoR7F101Pwe}KuV266C_C2Y z6Dbi>P;1ARudmql-P;a`axf#g{Tza}eZ$u;U+}oUcukJLYC{UqY3xjzmeQS)-LG1e zIcH20!xiQOCfhIk5D6+I<5C@GVDJE#a_0KSLm|agr&f zm~y_Lon&8yKlO>)6`*LnUn&%fawk4_B8}L!u^%r+Pe42NXIYkOEq}X3_Y%3SMS1_9 zl~E_^;!NA-oXL;cR(kI+$b>v`6V_?0K3Di>N3IB!y;^`wwL{z&$3!DZ;oJ5>B_uK| zwJezh$-QHHu9$LkPo#24?G69@$9KHmAGkm6czZr^Pcw$wNX``Kd}E(q*$=$Dyj;)c z6M$-t0qJH)Ua50F*CbGB;Z|ZGy4NYjPxb#K_Nxv@n6SrjS!OirsEt9MYJ%IBFX+a4 zq35<@Ku~wS!$vctP_dVvNE-0}QS~mpmSuZ(*O;&M+Iyc95t&uDsIn;o5~5EF2_rBr z8MkO5#8&_bxrIQuacu-hfa&lB4G6pH-i*wMbN1eAt@)%e#+)ZAOC{aP%A0Y{-fPYI ze~j@P`wlP+%NGJNqGG3`M@)f>8xLNhB_kq}|d_NhX(Lj73lBm3zuM zM){OhIV#L2c`E4%lb^8lgh@MEdZ4BQEgkT-5Ga{W2JUKF260nzN}3u_`$2PQ83g%^o7vwQaT$k{WvzX^qKQHwoooTZlJ6#qUze1_;&U=|02uV$eV$bK} zF@&eoPNboufuRQLjFF+v^TMf_Geeui!xzXkA;y!JjdyYe8Zm?XfD@u}g5)$6tECH% z&0tv#Cs=pC3R;;GI}Iz?W@|30g~g zvDRqWjVU7L@{!**Ob0yh_*thh^((EQ^k@t7TW_Bo^mq&`M!f zUV0o<8w@5!0qN&23}v^DtS3$;s$iNPs1?uW1KY|joOyRn`EJtX^+0XGK4*oxR_Q6G zc~)Uftn=|(-C1`tvC#YYxw{BAD*%^(*@Agq5auAxPZNiW-*+y| zUybP_K_O{X7lOw$%}8g$88aC=VZ!ZpQ$}3^T0uMxm|D=l=k7T7A-1%REv+#XYaaZy=P!Qf}Y5QnGp#H_woYw4EtmJ^yOc;?Io zu5KTXr@StaIGkEB1zr5sD7H!DvRe2v)ry+4*2ERLL^VDMDV}nw){#$0C}R(QR#vLk zQa;Rp@BA)0+ft!Pq?9@)nd`b@nij?mRaUf>trG#+0KOZWz06OJ?D&wg5PT_>a* z2g;&J57y6U=e&wkHq5OOk+jLvzubgDK3lizxynBNw{a zChL(~)kVh(-#C6y4EpRLv}S0ZI%mB9mVw4lSIoP zZN=h%0^yu?lybr&!K58E-VygV)bxO939Xz+=Y!N?!&sB&ekX#$7|hEB_s78i-DYsc zo$fg8*{iJ7%eL`gR*{)gl>4!0Qbnhdu@=V>Nh`MwFSnNw3Th3<>rK?}ehE2C?Ta-I zFRz~np_|C7p{+Y>v`j&*?a?!GGNqK|ObN(Y@i>#Bh76GhEcEh6XJ3n^5tFntg#UTL z09mAYg()X2>nb6oLs1-uRq^M%R}sT$*gW%4E+u20X3Wz>y6-em?A*vNndVg*4hqRh zb|O1gm*4`L)+^*zCFuzTeME)(0piMFP`xuHQ{b-EUAN4$Aga28 z+t5q79|DKz(E1=VC#`0J>wLEML!1Nu4E`Qrh)Deur01z0Sb`?7XGwT}e^;~+r;TSk z6c5GZgyT2_vOEX=z#7A~j0DiMkP{B-tRvY!XKBaUSRGMGd6!cF03ZNKL_t&o$0=W* zpfaw7&t8B2IyJpE1#KHPJ$-VXWRWkW4A`hOT=i5nCVjH)JsXdCUgb zyMeG}@4dc9;!HX@zX%U#eNc0&)h{ZKK%U8S433!Ex+bebOLcVQ|I+Q}Aew*cT@*-3O14 z6Sy-*u7|ZD=^Uw&3#NG<=V(!w@b!A-%2E?{t|c2{JW*T0x@~|pI8(yyGUIlga9te! z^3T8E&;I0wFRvE_Z}1nt`w8FPPn6OyhXp=Zyxkvo-XFMLHvHk2Uvb8W%erEkC#5nd zXu29$=drBIXxg3dGK@ZI!<57IA)kewJxMoe!=L}f@8Cngu@e@(E-Q?+IL`!_CVkZb z(=6tR+SO^Du-X~MI)YolhRd{urqqF$GnQ%L+2Slr@VIO%#}}62^j;3q(kjw%z#HK8 zdc}IXz}SXVGq!a_JR+*#!eFwf&^tkAsD-xQ7d4L$LFhqLmBHtqbAe#CPs~` z(L34!!vLt|6{+e6XW!TdmD96|-1LE_F>eK@&rono9N9Qi~x1+6rk#}hT( z+0nqzu5Q3UWXoxusSORDg7?-itIJBcVxB#$3li7`81S;_(-tpISjri0ndMrvxIf-S zAP%S!YFiPOuh$FCGvYXtLPRfI(HW2X{T(JkJ=5m=0XF6~+b} z`wnZwifW9jaE{jV*UzuC%{G#lQ_h&?1+J)*t&Jc;?e|-&%KoBOWSYqInWq_VZ{Kix zc|}SYFRw3%F)~TLa^2-Monq0JW%K2KpFcPY9MZJurlEsw{$L(yMcnmI^E`9yTQXXX zC<6B_3&qLDz7I!Y(FNZr@4ZVd8sF4bfTAft?GaFn$Y?!Xz&VM|gF5dC@Ar2C4d)sA z@i7qzik2|O%hu27PVii%I-ynQY~-3W#S?qZgqrFy^oqi%4X81rv`Cynpst{Ej;@z0 zzJC3R>-8$_Uc>czWqeRdSf&Xv0^TtOhp|7i^fnY#&-28!iw|%!3!$76A{bnLf($4$ z;BvVtJ}BcncckwAH3kpq@Oq)r1*h>m5YwqirA6r+Ijwv<(f&A3O)xmUHUPHmieo=; zoI9@98=lWQS|v$8#uMp0V4cOw^@129&Um5@ryM8T=xGdI6GZRv_Vyi<8V5)RWE2eC zb&SRu_^|MtYX+@Zq}*U!fVVRyrA?%I!cPkpedaxA_KXo{PNRTJF~S(Gx-#f&-S;PI zEqK4btI%~^&+F$2A+WJfJk#U@Me#16dFTKuLDaq+puUy`EO5q;Zoh%tFBl;BiGgv} zFzZc56dx@7)c*`kf-DB{92rUoaANy0e~`&)0%WQox6T2r;2!TPqB*6Jz=W%Gtqxlw zk1^$f+Gqw?)(Nc@_z)0dLD27xX2O1FASRKdCi41^K5mYIjYRdSmGq*Hh zT~}D=M%l`M*K>t zRiT@HxXU0ybdxQYn0pUX`P!zOQPYEQH7x?^9W@=u#~t~&10}*D!_)Ka%Q!K-rtBPLp-CB3hzeDH{o5d!lv56x1E3Gq0P&WI@SwzHg|SZgq; ztDH1xBCpCwKpqDHd!7Q0{oqUJxOVG;Vrw0q`%^j*gJoHfa>lxDIF5+@c_Mha`?$(w zP$^24o0aR~p4ZhB?rX$@s)f!DD-nFt*q>1qWIZ)8kVeRwux%GO z7f?#Wc~XyIM`TIT>XX`ls&!?P$UUW`_s?n-;|F}NJNGOMo{y&{7<{%`DdJXyJ-($8klWY(yItnRd?KcxY5f-X955xg7t2j@7&(MLCmA)^)9JWpKXcqdI!Q6o~} zEYTmm*fW*_@e|G)8gtvN4u*oZIt&Kd&J{@FI2S4ksbDTuKwxE5zEAO4oF&1w@ zH1|{}2JfZ=?;R%_F^xze54G-2uab4{rY^RmKNH>Uix zmNB7@De}CYX5>mLJPS>(+?@CP4xAOMkQtOcIK1nI(17dhhGm}N9I$N!TyEQppI$Hc z>1D;A{&c}#{`pV%H~;(-w#i{zXS`fCeEs&+#>V1uy|5UH2{|U5IpN#)H=tJH6I8VK zDRz&w>+Vyob3Il+^KNZSB{*xwJbC>3$8Y$q3;g2o^7EPm&>C`0 zKx#;?BDk4B$*rPgk)&G!jKT9baJ{_=0FRpKnKQRzGNaPF4>Fb)x=`;dg`nofQ7khCCsaGA{Gl8qV{?yevqO zg2da)jbiB>VU;*maG!U zGTer?$__wck5x#DfS9KVDP@tT3sT9L!ZbSDWnGansk`xv5~5n^^r+Q|kq(e$nf2L! zaFJNNEAyD{PnG>y<^Nu?F!tupdwH%=moG(~NDq z=;CFzWEUZKJ(c%PjYl4+m;T(59PdB6Yti^Sc(qRvXoV-KzNCaO&7wIspiv8Y9tYiB z6Zu%NAC}7uXB|F&`U!vh<1Z{G3S|n`Se)?`my2fw3v`EVyWstCmjQ$Y&Uv0(MTux$ zOMz{QAJN*c|J8&{$sH=H)fDsd5{ceHAYpFEux=Y6!nKWw0<`Mo+E5g1F-ucQNGWo9 zTs}nkeBStH2FE6@I|>`xh(?3BWM~Ap^5-{XH#v{T^Etw!`;@%9lDomgs>t)6Vc#*v zab9if0vMfLn*PL;##-50i&A(V&&z~TDuVABlU@jzj<2XHeE9tZ-AzeF?G(aT$9K0_ zP9)X$WCTusyJ^b|AvtjhW!wkexsf1{V&*^~gfTGi;=1(!Y6C+zU1m{JDu2IiTZeJM zd5X0|2zWjplFN{Czbvbe7g<|}EQfDJZTx*>F8Eh}_=e}1@Hf9a1T1A?(3>W%SREca zwON;WAurIdi1(iEy}$Qw{0=|=^b-oW!En=z`}-a7IB~>??Rr5xc3f{a20iajIOlQQ zR-8G*8;@!!>nLZ!w9Keyf$v_?Q3B|BH2*V3#0iPQ&%(hTD2Y z;DLc(e)$z?Kapy|GoF~k!pJp4Wy|S(w0t#NX0t-6P zV~kjq1;KmV9}mpSjCq=wB2Z;avD|E&F=D%1u&x)JJtFR(|BwHqEtd_ZHuxnV?iuTL zRn8Damra7*QVLKb{JiSnf*2u1jvoG^txy-@og474?#Qr%I7iJvtAGzPnsqRSd3b<9 zwGF;mzz_mxn?-FL#X@10KtrqzPI-p8Ww>floJUCyxK?0nK#n_FO_$(DXci2C*w3y zV%K5_dGwxL#X8S8_5;&QjS=bQ6qWDKC#Go{`B6D#k!mLiu*(n$&-1Lk^hcCM-@(JQ zL6dfxf-yJGaJ{7!O{YmiOd2wwR_yx|udlCkV?6F-oipMV8bf4j!C1MDQJ*@i?uaTm ze@q;~Zjc=u-Fn^8Qyb*aQ|NI?s6rfc0dX0uE)1Oxt=N8icTNJ{H5P-N4S-j(}$CJTBXX#Y>DxIbqVX?d57TmID8- z7m6uy@{maXO9S_)-d%WlF-W6zS?8JhyBRtMgNvDuhshSH~8Fbjdfq9Lmo z()8K~yuQ5P`FtuP*W>wklIIi?GZ$w%F-xgf6lGP*54u_X zFB-6TnE&;E`X8FN9=2rI)uQD9V?B~a;8tDGw63TzBPBW|TnNampq2(xAX_dk+zQz| zTSG0RuzKeh^sFfaaz$+k%@{Z{!%ZH>H?+(QpJEzpX#>+wu{xtFOg4b?NRO{58qs?< z;r-h$xLhvy{P_#MzkS0YVsaN^&l6X1EQ~C|MA3Au#0At+l?leR-;es5s^X$Mq&lhC zyS_Fe{IVIt!$$)1R4Aa%nMCZ~6&tX=tLlOWdgfxN~rLp_xIx?iW8-Np`rOdZK;pZdEb0YM(ktz@BsBC0!U= zU8D=lDdGKoXG*-D1#5}C$hw3t*DH33!RLisoOtXag*$Bhxzz=)07AL>3|ydXy_6*P zD-WFKbBCY8&;zdPiu?N;sxCK9i9V?G#u@}gBHeCR@{~03Yg*TsPUH{MC?dD`g}x=dR4rsyEQ8k8DY zq&bV6dKO|Em*}Z{ypl5JbsZCio~#i3B>f!$$bFjK-GNmFeA4?^D$PHPl=8gj1Tf@; zNzq5s%XR+5N5eb~x9+;Fc)Z=&Y^JO{$%>c@KE1vUGX|qixJG$- zdByYb97dRBnQ$H_rezjyE)r<`13sZ^5CLA^r9?PuFojubwkr24&&z3^=+5GMijiuqjBU zk_4{Hxt@+^9IUura6$UCzMbgs-9B-f6crR>6p(llFN%U_>OKQfjN=@cCdxbZW5+ZJ zdZ`RlG+<4C`13#c8Q053Zkqzfb18tc zc)Y!{DU-~?JBMvyFm;oza=UDJy}gY0-&C%2C+~q8u`QGr)xwGSyi7RugLiIlALcV- zMgzwPI_4Rs1OcD3@cQ^}SJx(Qsd<3!g^|$vlSoKWNCKo%v0YP_@b_@=+ ze^t8aCI_d(vaB%w$N%>GhSE^ef#4gAyGcmxH2$WZAJ8Mw- zj=q%J**P8SMF+)+_+-B#S6 z55)a|wVp0P$0<;!O1mCHYAkp4=A%<_&cRztaj&fWy;$fY)1D3wiJ`m0W^~P>0~jK>vBj#mBJkP-^LaSPN zn_+S0bG;6v!_>j2;)F2>+v>kl82zHK)&6(7t#!(H2ooNUcWQwO^)}P8 zaOI}Z+FS~(O+i+9~NhJB|K>#`__Hwjuw2P)r@ z3}YSUX(nM_#lt*J3d&8xNqHWev~Jsq-@bi=X~4E^)G^8-XpP0={?5?mWmVjcAMC1; zRjKnm#{DCpyH;X)s&r8C#JX%qXBs+Do`oOK&Rw9@rjYq8xq?xWMRzD#Z5ukT%Q@=3 zxIRq-2HaOhJx--4=aVb8IN+ZlP?y@9f)Az{gw{~VwWgvhx;#?)(Aj3iBEg8oD4nQx z4$pnZG?O%*CDkwnW8F?n4KQmO+t0_GmGfAEQ}1~yEWS#n=5Ai-nyuZ8AeUiLGw-~| zysVO%d=!7Ba#|FECpS@(B6Px$X+xu(3(uUs`LT}CSDXddful(&4UHioyZbl?Lhvl6 z;yFwmMpJYvxN}NLOgBI7jUH0oL%}K0fSL@F6FPLX|KCogr5I0~XT-K`aDVlm{>Q(E zCN;s+x*et&wQx;W!I*`hKY*A8=6u<%S5al!YD2RmpI1?{y@FEFdNd7Dk0dWE11$uY zy3>u=GSLQ)KO&d}lXo1CZ?H8XpYM1+zDu-BEf=%#JZ1@vtJay;7)%SX{nN7Ga%F0} zQ1QbhQ5z5ft=rBsr>T?zSc33!tD|$v0=0!{hIJEQJe;363ba735e9s?o%NWe1=ScV z+ZEHiAm)O3+4N=7$+KCeI?K zBnoaz&d50;$pzF8zg7$XemvQ!R!%EA5R;;C3MW%eq=`$=2yo=@6i)2iNAh}qpGr=O z;K7(2DMcI*89u4Aw$3wVV?SxOFb>l^V-Ax5qjcDjvdv;PrxU0w;O_UkFd1SYN$d37 z4;~Cc0a%4X_q9Z49Gxepy-pk#Yb{qR$~{YoRQ_Cw{+^S#-^*P@z^{`)*IJ9qWv=TFb#^EieKAeW5G^~Uw4^H`P@F>?hN z<0<0+b&gOZSa(S7$AO$#cmWP)%*eIEib-W)K8XHm96Csru*^G(vRSQV24u?V!^u|a zXw>F;!TbBWM9pm=IFj6O=Xv7PSvaYI=sGa!PJ^_!AKibcMTQ49uHA7&oklmyv5|XU0JkYFml(P#}4y< z{)_*))tG>mP+Eo$S9t4?i$O(Fh;SRDvUHv(HNyIdJgdSJ;e|C#6MUdG|2TG(Tt7N>={>A< zIL-spyr9;GmzUQeL_CfiAxz9`I(Bv2d1$U;Jn59w_@70h*J`b4q|5^{Xp~q={#YN? z2CEDxr)dwd4AirAfo%`VP7)ONt}ExPHCWITfRm*z0){je)65A&%0;$;HZHu$2UxEx z$WpQI$C$cc1UU0BYWM*>89bJmgxn-+cFIXwIcdM7PjV7}b_Nsa(Hd>bE!nkc#!){) zT@+COkDW}RnhRb&ePX6uP9xLJX^mtgJ`HY0GlZ*BOJuRjdd|X^pE)sWULwx&QT%ro zn)ky<;GAWSoj#9#QJ&|aGTth3`XD!E`5KZbg& zJc!y?iPazXJHkBSJWm)Gw8qu?q=|-cm#m!d9;qAS?D>)h3|2S)I849tZAJl zfpS@0whNNth*|}L4$PACKy5VHq&aQ!f{E6l)MV9+001BWNklYgP7P_<>OV z@mFiWvdl6isL(cDH`1MjjD7jgCNT`RH!jv1t>1wA{axmmFoficC`m(8NVlGq*#Cg{ z9`EmW+^$zni=5{QO8AnJd$yg!cG)z^Z{rzXmIXy(bYnPu%9)K3wSj(wK&O<4R`+(h zz{y=o&KjHJuD|T-!v;f+ls-@AC+z!^@kTL?$QTPc{L&eRE7E8R*q`0!m&8>wR5>4W)baKaW5P2cJ7tBW^bGh6`0zghlA?w_X^vz1l z1?zg@q+2M2byXsVFccwplr!SDZ(o%n!L*Q^61MG%$Nd3g8Dt;jKJIYYZt!uM823q1 z9qX(QW?VOqa+0M;JH1~`&U>T(rNbCw?Kn0aU6$}e)7+6}%e3&F*J`$}V2$l7XX>mt z1?$jLI;qe75W~#Ld0Tatv|)f4*p$F2)Okd@{e}sKVAvj|))On5MB+_GwCDcBDQ)79 zQDc2o%t<)k#o&4OcUIyuO$Bb=Vkc*HA5;Xh3s=paB z%US(;7-wMMWG${FvzLmp-;vKZSX7kbJL30$jrjNqqz6nrkk2P-d`Rb{+$&{Z)tVUe zC>@kR)BaUpFXgReO>}w;&$n;C(at$9%uuR;^OMGuqHFh@HUrceVNiftF!heBeWZyG zQML|fC$W1vkB=@kY;;0_J*q!MbjkmvtBoMiJSX;$e8G8h{$SW(FUL zFDoYuJ=4x!0rx~UJmoXOiXvU5_FQ<`vKRk=NAR{Lu6cJRE zB}p@d?Bu;Db}SA$9-&V&$OJMvz|Y~3><4sK)>vs=Tfy`c20CS$HO#OK6W7=Spej9q zr}f!7x(b6PZ$uT+2r+)?pR>=TXoG`1v%T>a2e+tx8-k#5=v z^D+%RYEgk4!bI(;3Ne}t93Iby0 zdShKTRLLe5AtF*tgXr%(8<3v-;dRMcO;x(vxkGXLDvr}}ukDc185;GYMtV+po^k9? zo=4}7$J;kJXW$(h|EAgLJS+0(JS4d1JGV$n6=VkKyumRk`dblUVvO|_vRAQ~(htU@ zHYS(-yzK7V-~+rqmw8$FUWW_2rXrd-V44H0WfWR9pF;f56zxZETNm0Zp~*CCyX>q8iMP+Sk` zq3qm~+Q#mgjTE!cqHOh>#NkyAlU`xN7`>$9$y{rMQK_R4kr+&f>W6O&k*&c23iofUZlJn#3>Q5nZDWa|uG zUtiH`QC=ZN*sF17P~urEa9Y%h;J(`HPO5mGqgzWoyG|oxu0*)X@XC?v->)^aI`{Qi zHwA>i7u~?feHez|HW%tpre$V+R;|*pc@g0`1v_KpT3g|@A#kmce~5q~N`dRon4)5O zC_qR1z*$RlN@IZ_l;<^U|HuOf_BCs<~Y{hAp}g0thS{01>JPQ zohF=kI5{W4R$&H$_22 z7w*$wQ-|ZMPY$QakM&s-3A{6zx|yQ8n@;_^mxYtL^Niyijq$`huM$riA_@`%ypQw1 z6vD_4Es7#BiXCf)lQ2%DR+OCZRAH79S36Ufu&#?ZLV*+M171J}(V|1FdN_{#?3|)T?c^2hD$g^`EudgpSW5jRYzu|JZ3`)Jx z1P`?$=~6zAlN>Ffcc`iIL+ko-yTLk#{fr-Zh1Ma)jLYRBy%*0`NG4Dl5k4t(M2{Uh zsDbma4&Jj!?_y~_7f#Vj5F@LOfr0I7e(COL5L)OQO>wxqdoH9E3ov*BmzQ}(YlOtM z;o#?#6hEw1yY{Qf72ZkpL5}qI_jlfDAz+zjO~(1YJ8MO=r@5q7#(hoG%xz8Oc4S!= zq(XPyaU9fmi4S)k$A{)AXN2HJj&7Lx%5FwXCw}|&S1ik-BAvSBqDgT_nDld{0nE~! zXKG88PYE?rz0PpTbVaLb)CdiZDGO4}`XEK}KmEia{(gT$N#d@JiMtck~)6}22V-@YL}-VmSP@czrcgvn2s_>Q-)e+_RkYTl902WsU5mD0gn zGd)aGm`CA2!5_PErh>D&?3VRKu)JxW6(LfF;M5s|Qsir14$#VMCb&WirXnYy5oV7-A00Wl|7 z&q-C7X3~zQfK(EkGjuL$B15;J!|i&*x@?%H8OL*HLV2w!O7X)5Mtw~w8P5lcx=*j4 zQA*XNO;8_Qf$S8FM1vjI!F)#`=ZJY)@HigIs-%{w%B_@g!S&^aFwK~jRYnPiWxc8^ z0gR?1lk|O7g-(>NtdxRWN$y_Og$J+PAwBrHzhJF)ehuW}vq~Z0rQThp^Sq1~xKGAv zs|t@caBf1a2A9iaz*o1pIR(Qrhgy7{YGWs6)|1UWsI8NNWgt)b2T(-;jo_l5(j5s@$C=rS} zC#@*$pt^TG)TE!SUy^{uvZ`QANg0bq3@6&>YvbqNJM9!1DBT@~5HpDDq6XtV-F?P< zfG;bv9<60`jj;_eotWoYS|>iYlMko@#CD;2E(Mp{4KJ^^v6|SnMMed3$hLLUinwP` zI!s|E+1y%8(?a373e#43=*E+AK&D}63Z3l^RCd>F9x2Msxemc?OvEMdauLwevfJ;) z?Hm|-Z@c(kXNmd2E!G{%M*O}o`44=9uodTVVt+o7QpQhTev)>E-}SmK!_HqMFz>;@ z=XtW>kgz|?95Q*2b9c{t zwM)&o-|v{GSz+}~cYqttZ>}PZiUthV_OdJ^5SZA6jQ!Y=PO{3VQ7zP%8m?GVJjjQP zC*t|UxpM{B)I8-J<+_Gqv%&xw_uNr_mPR_;4^u!%ls!yg9%1D<74*>`wU9;AFA9jK zX{Jcsduoz3A&oJSs|8EE422V%D9y8C(Mb0{W8`{T`rNK33t__R>kGm}NN3M)?2?*X zGUj#0a@jDgGcLDRoRNCik_%#vavuk@QYh#b0Uy#18WnwKOt`+>us?SMN0~}IqUh~A z=4nQlXIK|-z20CQi!dV?auAEL)Q0WCiPtm{LG;{rglWPu&v-l^sHI?C7H%s{!!$F= z;BvVlrh?~A@H3MIXy!A{ON%MTcs1CrSJcKq)V!{PUH98>->_X)yuQA`{PX|*zi!@f zw3SkXRqj`?>`)%hJJ6UZW{kz{c2lGT<0J@&J2^Vm!<=*0OKnux@Po{HNtkOijd&cR z%e900a^VB(wE}56=)3l$SBZTM)Pq`iiMla4qZ4Yyah$TrXIW+sOggyR51D80_d7xe zxIdl)c<8;AX#T@)?yRMiT{@CpRCGJImv*F&Sew=s1}vgpUq30}IN|&E@A&lT6~}Sl zJP%EqDvo2vmoHyrl{WbP?K`cgiqe2awOJ6?pMLszxPLljy4EU^aU1-h?tmE(NAERl zpw`F9S&>s>morV$gA_dX=YaA>2?={~xIcFZquJ%~JFH`h1E?!=oTPC2lJNPbpRhll zIF6*L%&gJuEV6tWnO!~Yo{mQ!C@O+yP}jU~224aPJD9C8t!$1y~@MfClq zqBEW!SP;medVf5Ji?1_jdV|#`k3X&lj{P|}SiNAK=b57KLii%xm%udnK@<-@2relK zIXcnXW8a^6JRS&Bz&y=Z)*0t{ARbZR$UO9n-RQuHh(zm#xq3!c`UWGT2sIVP7<_yC zj^HWA?a@wW%8E9j7`!7$mSq{|T{k)~(729CN=JWmGC6S@dE_#7r{+iSu2&%NA#H2J z`9o%2|E&Ax8dKsLGkCJEMs!vl=fS#e0x1&r@a6L-yuW{^!&XFWYdyT>xqrVuXo#7n zaru>;ai)YXUp}MMg74qIkA|Q}L6zL|;65OrA@o9sy3(c)_O2M{&69O*h_t&qZ<+!x zS^dv6bJa|36eox&(M?MiW`>brCYQp7P@mN_O`L3%O!dgi7QDQ?;@h|1cy<6| zKoF)NJWLw0i*91fzKFW{^@`7U$mz6UFTs~7X}8P>j^$c+U(gwpvbR?2D`2c zS4ncM00c3jwQ=Fa7{!DM9K$P~BZ`JxRhSixEJyOZZ1J7M-C0%B!fHIlG%D|HS@8AO zU*(#k!)v>2cs}m9Kc86El@D{ta(m>FVMe$lMV5>MD`ft5a3cE-|&1siSrNK>-)e1BgS+5Onp=K`O_;Nj|Y69NVRiedfZ5d=)K?H zv8)@ew;S&FcO3vc)E@5-wAS#u-~DbB7o0k9g<4CMC?B|7iH3MSpL9?dng@E!M`yyM zl!+?v0oDMI#~nFmT&@?a>nu$QMT-=hQ`DPt!gjr?;HzV&PO|jOB1H~J3NraS#4~AH z<9-mV^6=gFlU-+zE2xzk80id5$0%rIoO8yyELy$h5ssS``C$Y-^p1P_m@~F@lgJSo zhkFsOF~;mpFu)Fzq+5{!;3J)wd?264JK;3KFynRtdB-4hoJdy0OxDFn<{b5iJpek! zG{n{H&bhAYfv4NHv4K)Jb=2X~N9|z>SmtG1`kW$EHB1zY_V>7pt2;=s7v??$IudJB zJk)~czH4fj#+u}IyAGjnhyA9UQKXsi_CwDDW#5(h0f(HIWfU-{bU9g{*{pRINPO za=qa3B&Ol{d`fS*49fSmZn(d{saT5x0({vnDvUpb{B+V5(e#^$ShgNH-Y=q5|5 z*E>;a8CuuJ<4OM4d5#socLAlOkx5ESj6qJ6+He(YM{v8fMjS1!?K<0#4ZMSMeMO70 zw(Z4W`=NpR(aqXgBZp6sTroymE_COu+dAYgkLO)lyv>A9st zoD4z@S(GixCW`}`<4F@kX9o5=nnidUk{J8La3_QbewwKDYGvdIZtI43X)>pI9x@?9 zo+rd(A9}EqIcay!;@h`xSeA99s90yPi~fI}5$2!$lmDvqBB092(MjEx%Vk`mrQ`uk z8`C0Xdy#DJ(2O0-iq7)jWkZccQG`mVe4wGKxq~oA4%QE$u9bSaK{q}`n70Bt)>5#} zJW%(2$EQ!9#(0?#3Jdo0#J=yiUaxq6f74-PW#^_&$e52fiY~b1?_mdB*f~4GT)RWf z{J>+WHGkNs&5!m|Kc-*vJo8e~M1~jBfpuB2tQ+ESQpnsIQjWteTPiP~e&HIB<56Vs zetrFf_xnS@x)Yy2eL|@jSMhhge*MZKY+X=m!R>Ov`~9w<-ep7r?fZ^(rI2}75f-J{ zn&%nU%Y~iY$rM&H#WkZ6oaDFj@#Ubc&}#+E^}=Y%Jr#g2U+_=MJgb)I3w%Q^a_C%D1#0ytISYS_ZtfLto3X&G*sS~He~q13(6=-@>I zBWLb3;!ya`nDNi_!*8A!=4|GSX(1bq-;+~N@P|WaFxOH-n3N^~gLP$cfQ21Ax9+5h zaud$WJlt8QV6A<1)C<{M>ToYvK^wPi!(-ovGdZ3o)@>aJxtBKP`M68_!h+|F=ZK!7 z2%U83`}-Zid&Ldqp}FgSbxM2>aPFTKC;T6|jeSbeqn~cK8=j8`8%t$frYxpUASl## zrrA7?Kg-Ek#VN^?Jhl7#(3%xZ3D#v9Q9E6Kw@P!yX(|i(`~A*|#x!#+uA%~lK;f>H z>_Y$A>fZ_#?$7#poa6VK<_?|}$v-Bs>+G0{X;jh!jPYSPM?41&6&{ zZwf`{9nz%v3(~Rm>Fl;`*tLT9GQLnK%}d#hDO?`K3U$0?6eHc~T5DBaBm>VUg;Vzl zrBfr6OTlF$z%!S^!pb{bFIQOa@q9k9Eb9Pmp67x6`7Vv$2daQ9z{m)%C-X{;fpld4 z!`#zjw@OAXRe;|f1yofK*Wuvp8wlru+~Iuoy_%lZSm0kS7sWhf-K`&g|9-zK9b?f} zz+m6+N;KhGv}-ea!axW#DbPI_@Z6tR*A=fXFR;$y4}bUr_I<~)EOgN(p6i4lQ*uL1 zB!oLkL+tMq^OtkMmoH!7oW%1E+iCuuQ^bwf~2 zVYtUtBJY?IVlIGozP(sU>41@i-$-1&tP5UVNrj!418NRz+ z23)OwaND}6tFh8`Iiz&zK&CLZb9MR%zON~pLR^pY6q~2#Tw#2U{lyE@1ZQYNwG#c7 zT3Aq(jM|ERX1b$lE91cGE5yF)3&CMo*CFiw^m5aFziZwIZ2RfwpP83*9GK@t`UpRY z-^cyVsE28icBA03UD&Nx9{#}x^n{xp^V8G?q!jUZJjVf5@<)JhQLu6Utk09S+Z5A? z_<25dIO}k|Ua_t#e*5;@fB-gi!>e3q)(7}7VY}Sm!z2gf!qtT$j*7ZcZ>(5XhxAYx zIi5K8CywV6@pvM~9gt(SYq*FUX+!G+ts%k`nBx@_(s{DTYDLqoj9QZTF&4*hqLhYh zyRw+J4z1b2S?QwlPHykbNo_!GBy-1}T=4DvQHO$6umAYM*NS2@9GyKWV7&lu(p)&v-f zbzAZN{*KG-10LalN79<>iKN-+sl*%LT0wXgW=v#!Un4 z&j(&ESDgC;%xJD$A$iYrQ>(CskWKF#j+0e^9bn4?-!!ui}W3o?vav2B|it8Iw?-3Y+ubJ7h5y=oQ&Ow%&5pi9ENe$$4M#Q8&dxrAOCwxGC5DR>16uO;(t&UC3~p=7r~&54dbs7NGlq z?Xrm{$wH=~DVLNnK)xr36fp`zkXDY_oL%w}V;V*Wmd%v!XS)db?mz#>fB*N7$77^~LqIQdje=&^Rf6*n=7FR)Ru)%9zc?k&r+5-R zm$N1Ve1TEhu&^4vsHX&lP5-$RvQvsg)rTm%r(k}Q_U4Kp!@fVU?>mm;!1M7yJPxwD zQld^w9hgD@g z&a6OtAGFvAAGBtb^COpx$MZpAzF>$|T_=U8JUov*A?Jp9Ug5)x_qPXpm=FRV{4Za= zz>5j?eB4nqiJ~@w2h!tlr@k#`pccHpzaynQA~&3)rr{$D*5J_OuM4Gn_$(>AdU>Uh z=#w>TIb~%2T0*HwSyov^na8$WxsIL}=Bnk7#QMG>DeBVaX&FwR9?fzdC#P7Aom`Bh zG<#1dTyWjAkgy*+N-J3Ad2}&etHlwvstHJ6XN*VYH2XXGSs|U}Q*IA2roCEH- zXkrx=+}n!`>nPT5#=(UJXJ&q=+241DAJcJl#z?2$G>g~OOLZ1T zr7{@X;A0)zVYPi4_hZO&{=xm(FPN?k>=U{w-OD6!ac_>+brILi;PH6ZG$ta)gjNZF zyj>X3+r{dw6uiH`@hmSzPF+qc&}dw80(=@vo*(&yN-$8GLFa_^-=pV9T4zTNV#m_- zONr}bW#Bdg2McE`yydiKa+FoXV@E9++cM#ZCmxUcfJ%1mRjy^Y;JT2$f;vV~aZoF9 z8fd)dS_6z#L!>F~NdEXiH`m?MBQ~tGv36@{BSNT8aGT*7*Qxx*F!snv&eEquQ}Foo z=@YzP@cHv+Y7z~Gd;(HtTtZ3qF&GUIx^;MZS&#r1mShGOChw*5$@mzJ={ zk$tRPv-EHc`~K7fi!zw!BysKl001BWNkl%d9|b=ASypCbo^OSs9wq!KD)Po9QEjH5((Nnsum|1_lGev(XylbfPu#vZ}T% z>$(mjL(ucY;>*!s6}XA`{Q0v!TLRc&9Kt-~@q7}#+$wT9kd=C4WLlVlLn|5PpZ>T1 zW$WqaO&?ZYO9bgloa5oz8f5+Dcoy1`Ryhm+3_)z^ba9P*Lzu)b!H1Tr(ecx}_YSwS z*5dyD4%Cl$fsVHC+JjwLYDsXrbf%%ru+oIg(}eruF4Z3SX+Ino-BR5{gCU%LUy)j6RCPgZ&*W;gjWFW%vLVMZKy#h(_4f9L%k_fm z^@6vzcaoXa$@KALjx1nnm0eeH9Luuc`FIM1Hw%}u zLH~V9DM)9M_6Gyx*M2}j^yy3&Co)4V=tTzBZNvBPZ$uFk7S1*2QMlyHVt$%Fa_vI! zI1{tdMzq2Y6SXc>eLNn6d1a+pF&YIAhh+PJtM>1TrVMt1ok}w=ba-{`L)S-DH3I$O zyFZ>oq)**K8Sv5&0?y+cPL{sf+xO>Kv-Oo{2%$TPHGLr8Cxjq$gICu^)Po!P96@Vi zWPr26%wY`92&d^aA(m~%yz)pB=b=E=Py*80AA8RIwBZI$4> z%=0WEM)~~sFg%1Om>4>{*~TlXKp~6LWA5QP`p1)qg*Z*HjtQZ?!;^8+NClAO5weo?kSZWfOXc50TBf`&Pk~##K#0!X^K$}im%_^-{s%@o4=KLxtMMg*^tSmXx<~o zQK$NFNmg;L$&do`TY<4M6fbUL#nHTu|=KO%CJ)N1~h!w6e#Fdd1va1 zYZ+WNp=rIh5dOcpDq8XUu&sP3qDnhKJ^rM+pE#LoX(s^p4^fAo-~yy|E5 z-ByW1p&(wP$tFq_-fr*mcznq)PUh5G*Nwr}SZ%dlO;dO58z-SSuOIh^xXv(bAI!-v z4la8oo*%@jNMkN7Hy!%9h7cHcg$ZA6$P>mm`&{*Tk9A%?R!qhC3~4-@n!UzxwxLZe zjoQ~L(>&RkU2^#iq*gV*%L3F8ObgL8bNR@YKbT^Yk`G(cY8I%cyScsm_l^_PT(V>$ zHH1l{l@3_B0|^;_-OOI1Uz@QpvX3$(;&;FLOV`gdg{>(?-wyI_L#1 z6k#GAz2q#9#{&Xs0^6R?r<9zHInr9S{eB1$;h+KTq33gzd0Chg?tc^Z8)B4o-C&2M z<|Kw7A$mqNpwhnG-lTQ0K;vygLOei}-6nb_UgwL~sRi^%F>*mi`an1Uf~d?S71Vm#-obT&)w$LziGjqWW&#qS z)hk6a^YG6PJohjDVE>m5WjXEGq^f{WRej$^3 zJx?=4*uBe08@EQ990v~g%LU`-b=?5wKpDU2T4|=!^IQwZ=#6)z2els7&vhlCI~vEP zHDp&!(}dCV3zrRRFgS~p!v%g!wS&TQrR02&7@`bgVl;&N4Jc3p%XK=rZM&3O8Rw)8 zLo*?LsVE}SkmT$0Q+n_6?fp$wIyQAWpob%jD*@rb(g7b#(E?F-I*fJY5(x0rDa>&k zG7f``!zlOX;|%6b(HKy}01>`Ak<_7ykYBhQ8ymY6BG=%GhB;Rts-v8yN$yW1KtP+s zVtSmJ(dp&u>r4LPFaA=#zCLB!p0X^b>+16ZjZbT;n}SXd=!tGf8gU}aG@A)x90vp# zv%xd%AGI#)^C{wlP|*%@IRn-eE-J2r9mHvft(-*YMg+K6UYJ@bB*Isr3;Ou@kjrwB z+Kb$7h{b88iH`vqI_ELTC{0|zsueCjBzcSsW3PN>QD|g)E)-`1Il#__JfDRS-yL<| zIe%tbDw<)W7{Ak9s-K7cr#4~(LNqggzWZLsJ)-iDNGgA~wSNr3iY)KFan%~77y8dP z!SmPnUaKZYi(nrBgUvZhuGt{L8t($>Otl8J7U*`t{Qzo0$AXAIiWZ!H9EFoyIpLs| z;?Qi%5EOdZyKL(&Z*On1u1}L6jLcWuU*OKAK(FVzlQ=|fr94+*ha?|m9>F<89_v{o zd+#OJlSg<)^@uq~)p4v^Jv8)@PR&Xk7~^6Cwm`a}P-oyU46;6-V4=11%*Xqr95pn> zK6n|4bJEqLo->-S*d27^<1iWlK^XL`+l^8&RnEDZqa6$_Pu(t7pK#iKl1FzC^1a(L zH1qj)fAc^8lYShBeEas3JRWzlG@NzJ*XtF9)-ayB3ktL!>rr)Y z)m*XSrK|G({ti)}f%BThCg=g>oR@iC#5t^@6v{YFh%_1obo}_t@a(MX!#c>EGof)_ z$Ct9vX)*Hf(s3}HpU|-!`QS@0#%S>#FVsQnbfmeUzPNjIg{?1oRosEYO0P5GMo|Kq zYo<|5p8B2EJ2i=39?v^h1VO%k|COi+6}oqG1PSp1I!#L{iMPY+oD%DEB@|&hh0>OS z^Zqzxy5EZLHDMC&@Ks*Vwq=+FZIa^_> z@haYXNokVj^C7p}g^sCmhACHk4&}(QZch{6EALLHx}MS!{WF_|Yd4!lzZM_J5$z_P z*1t~+V-4)K{1poBpX(F)&|yF``f_G#v`+{yeOSOaC!%7}E_B-(ek54~pN)l+)(WXf!pTjWP1X1M?I>B+`?EFhZk{>@l zunA}ovfm#c{2r5qnQP%vnb+Fcc&o__0~TOVRKr@?OgRsZVv2zT{%%_x-6$P&H!HVH zu_C$|iwRf-T_vACN4522dx7yrI=|ILABRMSCcX>(%ys&y#dSssVhp7BCof05>y+Ad$s$YgImee3$pPH**C4{^y_N*YAJA@7A5T|L3p& zyWR<^o2N;B{P-b9M$qaoj&i+R<@vnZ2pWJeREmYk<;b`CVgw92NdMx7Ndu-6rDVBY zFZ}Nr+Df70`grgcI_;6$x^mJ0D`-|rI$ea0F0P$gp=DW+?RJ^XDG2ob8O*D(B-^^l zvdm|mn(O?4>kFesEb2yIq(bniV*#L;0Jx&6WbW3Li2^{LV_XB6Vfxay)?~TNCtQz= zDRmef`5;ec1aB)>u1{8CEvjj}lo2J)G0zQp0>vN*FZD!lVQW>^?P+Ws;bcU+MqMA^ zugM9DEtmp0j>pyIg|Or^NnQ8+nS1zQ7?9Uik>xZDqZJ9A+Ky7ul|bB!wD!-hPiDWV z!yYRJuXgTjJ4w3i04P9l7lCQeX5JIyKM#ej^rBA*}N+2An81*8rf?U0ZCFxL%x zI-8C_1f6V`>YaZvNi^#W6%+9O{$__>if$qAoTL9_nn$XUF=WCLB^xjx4CdamnJ z0xkOc_g|%Ekp2}VkPLT>|hcifMh%(d}oMmzhn~L34m(#(B4kF;LR++Dst5<763`PU^*G zub0~ACswed(eAOlT=1RR@FXYLA=spmKgUKN#u3-HM0mYic z;g}oP&v&{uTY+PeTcLkyc-|6=h(t-sX+#1f_}F(@E*I&&$@Bg&{Kl~X@u3ra;lCrl z0C}A!=B9(LzRZhUZ!iRDlZ2JyjAx2W%fS4-bz1@Xi~%lbT?xiulW_(5LPuGx!E`i? zK})ui^O(+zLfptKxU#I<1KOolt$Ei7E<}?hgPD%Q2(u978!-iIIu$I7iJq85NWTv! z*zD9+`JM(du7L`0(h=2^CHtc$-3?Ya}Bm8E43mQiiiJmd(ydvsuaZbWcncQL|PZvGmngPcXm8F zq6STVV160bO+*D8Im2P|8|$VASdZ!QnxhpW@~xoBDdd7d&>N|{I`WR4HAmapwIP0B z#M*;eB|8Acy)b1^7^RqG-8SjH$@O}boOh`t<4VJyePoCoHHgy_a#Tve?wf+qn4(R_ zx^#Iw9t>=Dw#EdzCs=s3qn1j+l}Z`c!#cz$qPb|^zvL;3ICoA5fa-`8C3h=Y$8lo! zUC%-mzH~zDCJ7!ZE$7e$Ez2U$bv2=7A)^Y#Z?ڗyD*s&r^G0Dgk-M(#HM>K}( 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 Wc@J%3z~G_)0000Options->Projects and Solutions->VC++ Directories - Set "Platform:" to "Win32" - Set "Show directories for:" to "Executable Files" - - Add the swig directory to this list (C:\Program Files\swigwin-2.0.0). - Set "Show directories for:" to "Include Files" - - Add the boost directory to this list (C:\Program Files\Boost\boost_1_43_0). - -3) Open the "Assimp.NET.sln" solution file in Visual Studio - -4) Build and run Assimp.NET_DEMO. - - -By default, the viewer application loads a pre-defined 3DS test file from -the /test/models/3DS folder. To load another file, pass it on the -command line. - -The viewer is very minimalistic, don't expect all files to be displayed -properly. Feel free to extend it ;-) - - - -License -------- - -The license for Assimp.NET is the same as the main Assimp license. diff --git a/port/AssimpNET/Readme.md b/port/AssimpNET/Readme.md new file mode 100644 index 000000000..d251cecc3 --- /dev/null +++ b/port/AssimpNET/Readme.md @@ -0,0 +1 @@ +See https://code.google.com/p/assimp-net/ and https://github.com/assimp/assimp-net for a Github mirror. \ No newline at end of file From 11af8d9e6066559325ec67fba479ba3b30daaa46 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Thu, 16 Apr 2015 12:41:02 +0200 Subject: [PATCH 06/62] Forgot semicolon in .travis.yml file. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d559d4fff..88251204f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -43,5 +43,5 @@ script: echo "==========================================================" ; echo "REGRESSION TEST FAILURES (results/run_regression_suite_failures.csv)" ; cat ../results/run_regression_suite_failures.csv; - diff ../results/run_regression_suite_failures.csv ../regression/run_regression_suite_failures_whitelisted.csv + diff ../results/run_regression_suite_failures.csv ../regression/run_regression_suite_failures_whitelisted.csv ; fi From d55034351fb63372402d92a943764cda30757b24 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Thu, 16 Apr 2015 14:00:23 +0200 Subject: [PATCH 07/62] Introduce regression to see if new Travis regression diff catches it. --- code/3DSConverter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/3DSConverter.cpp b/code/3DSConverter.cpp index d5a83461c..8e528815f 100644 --- a/code/3DSConverter.cpp +++ b/code/3DSConverter.cpp @@ -823,7 +823,7 @@ void Discreet3DSImporter::GenerateNodeGraph(aiScene* pcOut) if (::strstr( pcOut->mRootNode->mName.data, "UNNAMED" ) || (pcOut->mRootNode->mName.data[0] == '$' && pcOut->mRootNode->mName.data[1] == '$') ) { - pcOut->mRootNode->mName.Set("<3DSRoot>"); + pcOut->mRootNode->mName.Set("<3DSRoot_broken>"); } } From a1c0be54890f4674590719a31f5bec1973a3b35e Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Thu, 16 Apr 2015 14:10:59 +0200 Subject: [PATCH 08/62] Revert "Introduce regression to see if new Travis regression diff catches it." This reverts commit d55034351fb63372402d92a943764cda30757b24. --- code/3DSConverter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/3DSConverter.cpp b/code/3DSConverter.cpp index 8e528815f..d5a83461c 100644 --- a/code/3DSConverter.cpp +++ b/code/3DSConverter.cpp @@ -823,7 +823,7 @@ void Discreet3DSImporter::GenerateNodeGraph(aiScene* pcOut) if (::strstr( pcOut->mRootNode->mName.data, "UNNAMED" ) || (pcOut->mRootNode->mName.data[0] == '$' && pcOut->mRootNode->mName.data[1] == '$') ) { - pcOut->mRootNode->mName.Set("<3DSRoot_broken>"); + pcOut->mRootNode->mName.Set("<3DSRoot>"); } } From 3ded2d9123f43890bd03a88567c26082bbb68c20 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Fri, 1 May 2015 23:24:25 +0200 Subject: [PATCH 09/62] Add script to determine if regression suite failures are considered acceptable as per the whitelist or not. --- .travis.yml | 4 +- test/regression/result_checker.py | 112 ++++++++++++++++++ ...failures_whitelisted.csv => whitelist.csv} | 0 3 files changed, 114 insertions(+), 2 deletions(-) create mode 100644 test/regression/result_checker.py rename test/regression/{run_regression_suite_failures_whitelisted.csv => whitelist.csv} (100%) diff --git a/.travis.yml b/.travis.yml index 88251204f..df6a72f6c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,6 +42,6 @@ script: ./run.py ; echo "==========================================================" ; echo "REGRESSION TEST FAILURES (results/run_regression_suite_failures.csv)" ; - cat ../results/run_regression_suite_failures.csv; - diff ../results/run_regression_suite_failures.csv ../regression/run_regression_suite_failures_whitelisted.csv ; + chmod 755 result_checker.py + ./result_checker.py; fi diff --git a/test/regression/result_checker.py b/test/regression/result_checker.py new file mode 100644 index 000000000..b619ce12b --- /dev/null +++ b/test/regression/result_checker.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python3 +# -*- Coding: UTF-8 -*- + +# --------------------------------------------------------------------------- +# Open Asset Import Library (ASSIMP) +# --------------------------------------------------------------------------- +# +# Copyright (c) 2006-2015, 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. +# --------------------------------------------------------------------------- + +""" +This script runs as part of the Travis CI build on Github and controls +whether a patch passes the regression test suite. + +Given the failures encountered by the regression suite runner (run.py) in + ../results/whitelist.csv +and the current whitelist of failures considered acceptable in + ./run_regression_suite_failures_whitelisted.csv +determine PASSED or FAILED. + +""" + +import sys +import os + +RESULTS_FILE = os.path.join('..', 'results', 'run_regression_suite_failures.csv') +WHITELIST_FILE = os.path.join('whitelist.csv') + +BANNER = """ +***************************************************************** +Regression suite result checker +(test/regression/result_checker.py) +***************************************************************** +""" + +def passed(message): + print('\n\n**PASSED: {0}.\n'.format(message)) + return 0 + +def failed(message): + print('\n\n**FAILED: {0}. \nFor more information see test/regression/README.\n' + .format(message)) + return -1 + +def read_results_csv(filename): + parse = lambda line: map(str.strip, line.split(';')[:2]) + try: + with open(filename, 'rt') as results: + return dict(parse(line) for line in results.readlines()[1:]) + except IOError: + print('Failed to read {0}.'.format(filename)) + return None + +def run(): + print(BANNER) + print('Reading input files.') + + result_dict = read_results_csv(RESULTS_FILE) + whitelist_dict = read_results_csv(WHITELIST_FILE) + if result_dict is None or whitelist_dict is None: + return failed('Could not locate input files') + + if not result_dict: + return passed('No failures encountered') + + print('Failures:\n' + '\n'.join(result_dict.keys())) + print('Whitelisted:\n' + '\n'.join(whitelist_dict.keys())) + non_whitelisted_failures = set(result_dict.keys()) - set(whitelist_dict.keys()) + if not non_whitelisted_failures: + return passed('All failures are whitelisted and considered acceptable \n' + + 'due to implementation differences, library shortcomings and bugs \n' + + 'that have not been fixed for a long time') + return failed('Encountered new regression failures that are not whitelisted. \n' + + 'Please carefully review the changes you made and use the gen_db.py script\n' + + 'to update the regression database for the affected files.') + +if __name__ == "__main__": + sys.exit(run()) + +# vim: ai ts=4 sts=4 et sw=4 \ No newline at end of file diff --git a/test/regression/run_regression_suite_failures_whitelisted.csv b/test/regression/whitelist.csv similarity index 100% rename from test/regression/run_regression_suite_failures_whitelisted.csv rename to test/regression/whitelist.csv From 09d1e53955cbddb3b27013b2759e32365d840803 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sat, 2 May 2015 00:10:00 +0200 Subject: [PATCH 10/62] Forgot semicolon. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index df6a72f6c..b03423bf8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,6 +42,6 @@ script: ./run.py ; echo "==========================================================" ; echo "REGRESSION TEST FAILURES (results/run_regression_suite_failures.csv)" ; - chmod 755 result_checker.py + chmod 755 result_checker.py ; ./result_checker.py; fi From 8fb9e84aeaf155e0ece32eb9b790f53b4c591bd9 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sat, 2 May 2015 00:10:51 +0200 Subject: [PATCH 11/62] Cleanup old messages. --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index b03423bf8..ccc6ff815 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,8 +40,6 @@ script: cd ../regression ; chmod 755 run.py ; ./run.py ; - echo "==========================================================" ; - echo "REGRESSION TEST FAILURES (results/run_regression_suite_failures.csv)" ; chmod 755 result_checker.py ; ./result_checker.py; fi From 7eb5586c056f261f44bf4ee56eca8178aac0938d Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sat, 2 May 2015 00:33:29 +0200 Subject: [PATCH 12/62] Output files in alphabetical order. --- test/regression/result_checker.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/regression/result_checker.py b/test/regression/result_checker.py index b619ce12b..cc8c08f95 100644 --- a/test/regression/result_checker.py +++ b/test/regression/result_checker.py @@ -95,16 +95,17 @@ def run(): if not result_dict: return passed('No failures encountered') - print('Failures:\n' + '\n'.join(result_dict.keys())) - print('Whitelisted:\n' + '\n'.join(whitelist_dict.keys())) + print('Failures:\n' + '\n'.join(sorted(result_dict.keys()))) + print('Whitelisted:\n' + '\n'.join(sorted(whitelist_dict.keys())) non_whitelisted_failures = set(result_dict.keys()) - set(whitelist_dict.keys()) + print('Failures not whitelisted:\n' + '\n'.join(sorted(non_whitelisted_failures)) if not non_whitelisted_failures: return passed('All failures are whitelisted and considered acceptable \n' + 'due to implementation differences, library shortcomings and bugs \n' + 'that have not been fixed for a long time') return failed('Encountered new regression failures that are not whitelisted. \n' + 'Please carefully review the changes you made and use the gen_db.py script\n' + - 'to update the regression database for the affected files.') + 'to update the regression database for the affected files') if __name__ == "__main__": sys.exit(run()) From 068778953ab07ab8a7d97960eef849f6171db595 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sat, 2 May 2015 00:48:04 +0200 Subject: [PATCH 13/62] Updated regression db for Collada. --- test/regression/db.zip | Bin 1466916 -> 1467844 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/regression/db.zip b/test/regression/db.zip index 6c1358d154be49de66aeb36463a6e980d662610e..d1a4edf7632a5d765696128f191a10855771b876 100644 GIT binary patch delta 218607 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 z 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 SqZoz@`IaN{!~0DM{O|vzng9;~ delta 216539 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

xuS@50GTDtJdvCsM`r96^?i}PJ!MQ1~y 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 ViFz4tpL~0HQo#bH9+ktt{tv2v4zmCN From 0fe8e739c3fcfbf690821145498e9bbaeb24a519 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Tue, 12 May 2015 21:51:27 +0200 Subject: [PATCH 20/62] Use "wb" when writing binary STL exports, fixes #556. --- code/STLExporter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/STLExporter.cpp b/code/STLExporter.cpp index 1bc631ef7..13684fecc 100644 --- a/code/STLExporter.cpp +++ b/code/STLExporter.cpp @@ -75,7 +75,7 @@ void ExportSceneSTLBinary(const char* pFile,IOSystem* pIOSystem, const aiScene* STLExporter exporter(pFile, pScene, true); // we're still here - export successfully completed. Write the file. - boost::scoped_ptr outfile (pIOSystem->Open(pFile,"wt")); + boost::scoped_ptr outfile (pIOSystem->Open(pFile,"wb")); if(outfile == NULL) { throw DeadlyExportError("could not open output .stl file: " + std::string(pFile)); } From af54bf4c423a591b90be1af32b55036f6c9dd939 Mon Sep 17 00:00:00 2001 From: wise86Android Date: Sat, 16 May 2015 12:28:49 +0200 Subject: [PATCH 21/62] test fail, fix file path --- test/unit/utImporter.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test/unit/utImporter.cpp b/test/unit/utImporter.cpp index c7094229a..164c51bff 100644 --- a/test/unit/utImporter.cpp +++ b/test/unit/utImporter.cpp @@ -1,7 +1,7 @@ #include "UnitTestPCH.h" - + #include "../../include/assimp/postprocess.h" -#include "../../include/assimp/scene.h" +#include "../../include/assimp/scene.h" #include #include @@ -219,13 +219,13 @@ TEST_F(ImporterTest, testMultipleReads) aiProcess_OptimizeMeshes | aiProcess_OptimizeGraph; - EXPECT_TRUE(pImp->ReadFile("../../test/models/X/test.x",flags)); + EXPECT_TRUE(pImp->ReadFile("../test/models/X/test.x",flags)); //EXPECT_TRUE(pImp->ReadFile("../../test/models/X/dwarf.x",flags)); # is in nonbsd - EXPECT_TRUE(pImp->ReadFile("../../test/models/X/Testwuson.X",flags)); - EXPECT_TRUE(pImp->ReadFile("../../test/models/X/anim_test.x",flags)); + EXPECT_TRUE(pImp->ReadFile("../test/models/X/Testwuson.X",flags)); + EXPECT_TRUE(pImp->ReadFile("../test/models/X/anim_test.x",flags)); //EXPECT_TRUE(pImp->ReadFile("../../test/models/X/dwarf.x",flags)); # is in nonbsd - EXPECT_TRUE(pImp->ReadFile("../../test/models/X/anim_test.x",flags)); - EXPECT_TRUE(pImp->ReadFile("../../test/models/X/BCN_Epileptic.X",flags)); + EXPECT_TRUE(pImp->ReadFile("../test/models/X/anim_test.x",flags)); + EXPECT_TRUE(pImp->ReadFile("../test/models/X/BCN_Epileptic.X",flags)); //EXPECT_TRUE(pImp->ReadFile("../../test/models/X/dwarf.x",flags)); # is in nonbsd } From 98b234020b45ee7adbd09e41b52d75ce1f01fd39 Mon Sep 17 00:00:00 2001 From: shin_mbpr_late2013 Date: Sat, 16 May 2015 23:27:55 +0900 Subject: [PATCH 22/62] Fixed AssBin loader. File reads were used in ai_assert. The function has side effects, so it should not be used in an assert. Fixed AddGTest.cmake. There was an issue regarding Xcode project file. The path of libgtest.a was incorrectly set. --- cmake-modules/AddGTest.cmake | 4 ++-- code/AssbinLoader.cpp | 37 +++++++++++++++++++++++------------- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/cmake-modules/AddGTest.cmake b/cmake-modules/AddGTest.cmake index 5257148c9..c106cc303 100644 --- a/cmake-modules/AddGTest.cmake +++ b/cmake-modules/AddGTest.cmake @@ -11,8 +11,8 @@ if (MSVC) set(RELEASE_LIB_DIR ReleaseLibs) set(DEBUG_LIB_DIR DebugLibs) else() - set(RELEASE_LIB_DIR "") - set(DEBUG_LIB_DIR "") + set(RELEASE_LIB_DIR "Release") + set(DEBUG_LIB_DIR "Debug") endif() set(GTEST_CMAKE_ARGS diff --git a/code/AssbinLoader.cpp b/code/AssbinLoader.cpp index 6818929fb..8788adbd7 100644 --- a/code/AssbinLoader.cpp +++ b/code/AssbinLoader.cpp @@ -51,8 +51,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AssbinLoader.h" #include "assbin_chunks.h" #include "MemoryIOWrapper.h" -#include "../include/assimp/mesh.h" -#include "../include/assimp/anim.h" +#include "../include/assimp/mesh.h" +#include "../include/assimp/anim.h" #include "../include/assimp/scene.h" #include @@ -199,7 +199,8 @@ template void ReadBounds( IOStream * stream, T* /*p*/, unsigned int void AssbinImporter::ReadBinaryNode( IOStream * stream, aiNode** node ) { - ai_assert( Read(stream) == ASSBIN_CHUNK_AINODE); + uint32_t chunkID = Read(stream); + ai_assert(chunkID == ASSBIN_CHUNK_AINODE); /*uint32_t size =*/ Read(stream); *node = new aiNode(); @@ -230,7 +231,8 @@ void AssbinImporter::ReadBinaryNode( IOStream * stream, aiNode** node ) // ----------------------------------------------------------------------------------- void AssbinImporter::ReadBinaryBone( IOStream * stream, aiBone* b ) { - ai_assert( Read(stream) == ASSBIN_CHUNK_AIBONE ); + uint32_t chunkID = Read(stream); + ai_assert(chunkID == ASSBIN_CHUNK_AIBONE); /*uint32_t size =*/ Read(stream); b->mName = Read(stream); @@ -253,7 +255,8 @@ void AssbinImporter::ReadBinaryBone( IOStream * stream, aiBone* b ) void AssbinImporter::ReadBinaryMesh( IOStream * stream, aiMesh* mesh ) { - ai_assert( Read(stream) == ASSBIN_CHUNK_AIMESH); + uint32_t chunkID = Read(stream); + ai_assert(chunkID == ASSBIN_CHUNK_AIMESH); /*uint32_t size =*/ Read(stream); mesh->mPrimitiveTypes = Read(stream); @@ -377,7 +380,8 @@ void AssbinImporter::ReadBinaryMesh( IOStream * stream, aiMesh* mesh ) void AssbinImporter::ReadBinaryMaterialProperty(IOStream * stream, aiMaterialProperty* prop) { - ai_assert( Read(stream) == ASSBIN_CHUNK_AIMATERIALPROPERTY); + uint32_t chunkID = Read(stream); + ai_assert(chunkID == ASSBIN_CHUNK_AIMATERIALPROPERTY); /*uint32_t size =*/ Read(stream); prop->mKey = Read(stream); @@ -393,7 +397,8 @@ void AssbinImporter::ReadBinaryMaterialProperty(IOStream * stream, aiMaterialPro // ----------------------------------------------------------------------------------- void AssbinImporter::ReadBinaryMaterial(IOStream * stream, aiMaterial* mat) { - ai_assert( Read(stream) == ASSBIN_CHUNK_AIMATERIAL); + uint32_t chunkID = Read(stream); + ai_assert(chunkID == ASSBIN_CHUNK_AIMATERIAL); /*uint32_t size =*/ Read(stream); mat->mNumAllocated = mat->mNumProperties = Read(stream); @@ -414,7 +419,8 @@ void AssbinImporter::ReadBinaryMaterial(IOStream * stream, aiMaterial* mat) // ----------------------------------------------------------------------------------- void AssbinImporter::ReadBinaryNodeAnim(IOStream * stream, aiNodeAnim* nd) { - ai_assert( Read(stream) == ASSBIN_CHUNK_AINODEANIM); + uint32_t chunkID = Read(stream); + ai_assert(chunkID == ASSBIN_CHUNK_AINODEANIM); /*uint32_t size =*/ Read(stream); nd->mNodeName = Read(stream); @@ -462,7 +468,8 @@ void AssbinImporter::ReadBinaryNodeAnim(IOStream * stream, aiNodeAnim* nd) // ----------------------------------------------------------------------------------- void AssbinImporter::ReadBinaryAnim( IOStream * stream, aiAnimation* anim ) { - ai_assert( Read(stream) == ASSBIN_CHUNK_AIANIMATION); + uint32_t chunkID = Read(stream); + ai_assert(chunkID == ASSBIN_CHUNK_AIANIMATION); /*uint32_t size =*/ Read(stream); anim->mName = Read (stream); @@ -482,7 +489,8 @@ void AssbinImporter::ReadBinaryAnim( IOStream * stream, aiAnimation* anim ) void AssbinImporter::ReadBinaryTexture(IOStream * stream, aiTexture* tex) { - ai_assert( Read(stream) == ASSBIN_CHUNK_AITEXTURE); + uint32_t chunkID = Read(stream); + ai_assert(chunkID == ASSBIN_CHUNK_AITEXTURE); /*uint32_t size =*/ Read(stream); tex->mWidth = Read(stream); @@ -505,7 +513,8 @@ void AssbinImporter::ReadBinaryTexture(IOStream * stream, aiTexture* tex) // ----------------------------------------------------------------------------------- void AssbinImporter::ReadBinaryLight( IOStream * stream, aiLight* l ) { - ai_assert( Read(stream) == ASSBIN_CHUNK_AILIGHT); + uint32_t chunkID = Read(stream); + ai_assert(chunkID == ASSBIN_CHUNK_AILIGHT); /*uint32_t size =*/ Read(stream); l->mName = Read(stream); @@ -531,7 +540,8 @@ void AssbinImporter::ReadBinaryLight( IOStream * stream, aiLight* l ) // ----------------------------------------------------------------------------------- void AssbinImporter::ReadBinaryCamera( IOStream * stream, aiCamera* cam ) { - ai_assert( Read(stream) == ASSBIN_CHUNK_AICAMERA); + uint32_t chunkID = Read(stream); + ai_assert(chunkID == ASSBIN_CHUNK_AICAMERA); /*uint32_t size =*/ Read(stream); cam->mName = Read(stream); @@ -546,7 +556,8 @@ void AssbinImporter::ReadBinaryCamera( IOStream * stream, aiCamera* cam ) void AssbinImporter::ReadBinaryScene( IOStream * stream, aiScene* scene ) { - ai_assert( Read(stream) == ASSBIN_CHUNK_AISCENE); + uint32_t chunkID = Read(stream); + ai_assert(chunkID == ASSBIN_CHUNK_AISCENE); /*uint32_t size =*/ Read(stream); scene->mFlags = Read(stream); From 6c01bcff538a72261a900c91fea0fd07bb0f2217 Mon Sep 17 00:00:00 2001 From: shin_mbpr_late2013 Date: Sun, 17 May 2015 00:36:19 +0900 Subject: [PATCH 23/62] Reverted AddGTest.cmake. Changes to the file caused CI build broken. --- cmake-modules/AddGTest.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake-modules/AddGTest.cmake b/cmake-modules/AddGTest.cmake index c106cc303..5257148c9 100644 --- a/cmake-modules/AddGTest.cmake +++ b/cmake-modules/AddGTest.cmake @@ -11,8 +11,8 @@ if (MSVC) set(RELEASE_LIB_DIR ReleaseLibs) set(DEBUG_LIB_DIR DebugLibs) else() - set(RELEASE_LIB_DIR "Release") - set(DEBUG_LIB_DIR "Debug") + set(RELEASE_LIB_DIR "") + set(DEBUG_LIB_DIR "") endif() set(GTEST_CMAKE_ARGS From fb4eb83e84119ab42bae5ad2ad6c7430868fcc0a Mon Sep 17 00:00:00 2001 From: wise86Android Date: Sun, 17 May 2015 20:54:45 +0200 Subject: [PATCH 24/62] add the ability to export cameras information in a collada file --- code/ColladaExporter.cpp | 64 +++++++++++++++++++++-- code/ColladaExporter.h | 5 ++ test/CMakeLists.txt | 1 + test/models/Collada/cameras.dae | 93 +++++++++++++++++++++++++++++++++ 4 files changed, 160 insertions(+), 3 deletions(-) create mode 100644 test/models/Collada/cameras.dae diff --git a/code/ColladaExporter.cpp b/code/ColladaExporter.cpp index 078ac0a56..c5d904c07 100644 --- a/code/ColladaExporter.cpp +++ b/code/ColladaExporter.cpp @@ -127,6 +127,7 @@ void ColladaExporter::WriteFile() WriteTextures(); WriteHeader(); + WriteCamerasLibrary(); WriteMaterials(); WriteGeometryLibrary(); @@ -286,6 +287,61 @@ void ColladaExporter::WriteTextures() { } } +// ------------------------------------------------------------------------------------------------ +// Write the embedded textures +void ColladaExporter::WriteCamerasLibrary() { + if(mScene->HasCameras()) { + + mOutput << startstr << "" << endstr; + PushTag(); + + for( size_t a = 0; a < mScene->mNumCameras; ++a) + WriteCamera( a); + + PopTag(); + mOutput << startstr << "" << endstr; + + } +} + +void ColladaExporter::WriteCamera(size_t pIndex){ + + const aiCamera *cam = mScene->mCameras[pIndex]; + const std::string idstrEscaped = XMLEscape(cam->mName.C_Str()); + + mOutput << startstr << "" << endstr; + PushTag(); + mOutput << startstr << "" << endstr; + PushTag(); + mOutput << startstr << "" << endstr; + PushTag(); + //assimp doesn't support the import of orthographic cameras! se we write + //always perspective + mOutput << startstr << "" << endstr; + PushTag(); + mOutput << startstr << ""<< + AI_RAD_TO_DEG(cam->mHorizontalFOV) + <<"" << endstr; + mOutput << startstr << "" + << cam->mAspect + << "" << endstr; + mOutput << startstr << "" + << cam->mClipPlaneNear + << "" << endstr; + mOutput << startstr << "" + << cam->mClipPlaneFar + << "" << endstr; + PopTag(); + mOutput << startstr << "" << endstr; + PopTag(); + mOutput << startstr << "" << endstr; + PopTag(); + mOutput << startstr << "" << endstr; + PopTag(); + mOutput << startstr << "" << endstr; + +} + // ------------------------------------------------------------------------------------------------ // Reads a single surface entry from the given material keys void ColladaExporter::ReadMaterialSurface( Surface& poSurface, const aiMaterial* pSrcMat, aiTextureType pTexture, const char* pKey, size_t pType, size_t pIndex) @@ -847,6 +903,9 @@ void ColladaExporter::WriteNode(aiNode* pNode) mOutput << mat.d1 << " " << mat.d2 << " " << mat.d3 << " " << mat.d4; mOutput << "" << endstr; + if(pNode->mNumMeshes==0){ + mOutput << startstr <<"" << endstr; + }else // instance every geometry for( size_t a = 0; a < pNode->mNumMeshes; ++a ) { @@ -854,9 +913,8 @@ void ColladaExporter::WriteNode(aiNode* pNode) // do not instanciate mesh if empty. I wonder how this could happen if( mesh->mNumFaces == 0 || mesh->mNumVertices == 0 ) continue; - - mOutput << startstr << "mMeshes[a])) << "\">" << endstr; - PushTag(); + mOutput << startstr << "mMeshes[a])) << "\">" << endstr; + PushTag(); mOutput << startstr << "" << endstr; PushTag(); mOutput << startstr << "" << endstr; diff --git a/code/ColladaExporter.h b/code/ColladaExporter.h index 9456508ce..4ded0d13d 100644 --- a/code/ColladaExporter.h +++ b/code/ColladaExporter.h @@ -83,6 +83,11 @@ protected: /// Writes the material setup void WriteMaterials(); + /// Writes the cameras library + void WriteCamerasLibrary(); + + void WriteCamera(size_t pIndex); + /// Writes the geometry library void WriteGeometryLibrary(); diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index f4b67bad6..9053f66d8 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -40,6 +40,7 @@ SET( TEST_SRCS unit/utTriangulate.cpp unit/utVertexTriangleAdjacency.cpp unit/utNoBoostTest.cpp + unit/utColladaExportCamera.cpp ) SOURCE_GROUP( tests FILES ${TEST_SRCS} ) diff --git a/test/models/Collada/cameras.dae b/test/models/Collada/cameras.dae new file mode 100644 index 000000000..d514b0f3d --- /dev/null +++ b/test/models/Collada/cameras.dae @@ -0,0 +1,93 @@ + + + + + Blender User + Blender 2.74.0 commit date:2015-03-31, commit time:13:39, hash:000dfc0 + + 2015-05-17T19:24:51 + 2015-05-17T19:24:51 + + Z_UP + + + + + + + 49.13434 + 1.777778 + 0.1 + 100 + + + + + + 0 + 0 + 0 + + + + + + + + 3 + 1.777778 + 0.1 + 100 + + + + + + 0 + 0 + 0 + + + + + + + + 29.86284 + 1.777778 + 0.1 + 50 + + + + + + 0 + 0 + 0 + + + + + + + + + + 7.54979e-8 0 1 10 0 1 0 0 -1 0 7.54979e-8 0 0 0 0 1 + + + + 7.54979e-8 0 -1 -10 0 1 0 0 1 0 7.54979e-8 0 0 0 0 1 + + + + 3.09086e-8 -1 1.58933e-8 0 -3.09086e-8 1.58933e-8 1 5 -1 -3.09086e-8 -3.09086e-8 0 0 0 0 1 + + + + + + + + From 08499dbd0b722089b3dcfbd95c0ce5882a1b20c2 Mon Sep 17 00:00:00 2001 From: wise86Android Date: Sun, 17 May 2015 21:25:47 +0200 Subject: [PATCH 25/62] add test file --- test/unit/utColladaExportCamera.cpp | 80 +++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 test/unit/utColladaExportCamera.cpp diff --git a/test/unit/utColladaExportCamera.cpp b/test/unit/utColladaExportCamera.cpp new file mode 100644 index 000000000..c647684b6 --- /dev/null +++ b/test/unit/utColladaExportCamera.cpp @@ -0,0 +1,80 @@ +/* + * ColladaCameraExporter.cpp + * + * Created on: May 17, 2015 + * Author: wise + */ + + +#include "UnitTestPCH.h" + +#include +#include +#include +#include + +#ifndef ASSIMP_BUILD_NO_EXPORT + +class ColladaExportCamera : public ::testing::Test { +public: + + virtual void SetUp() + { + ex = new Assimp::Exporter(); + im = new Assimp::Importer(); + + } + + virtual void TearDown() + { + delete ex; + delete im; + } + +protected: + + + Assimp::Exporter* ex; + Assimp::Importer* im; +}; + +// ------------------------------------------------------------------------------------------------ +TEST_F(ColladaExportCamera, testExportCamera) +{ + const char* file = "cameraExp.dae"; + + const aiScene* pTest = im->ReadFile("../test/models/Collada/cameras.dae",0); + ASSERT_TRUE(pTest!=NULL); + ASSERT_TRUE(pTest->HasCameras()); + + + EXPECT_EQ(AI_SUCCESS,ex->Export(pTest,"collada",file)); + + const aiScene* imported = im->ReadFile(file,0); + + ASSERT_TRUE(imported!=NULL); + + EXPECT_TRUE(imported->HasCameras()); + EXPECT_EQ(pTest->mNumCameras,imported->mNumCameras); + + for(size_t i=0; i< pTest->mNumCameras;i++){ + + const aiCamera *orig = pTest->mCameras[i]; + const aiCamera *read = imported->mCameras[i]; + + EXPECT_TRUE(orig->mName==read->mName); + EXPECT_FLOAT_EQ(orig->mHorizontalFOV,read->mHorizontalFOV); + EXPECT_FLOAT_EQ(orig->mClipPlaneNear,read->mClipPlaneNear); + EXPECT_FLOAT_EQ(orig->mClipPlaneFar,read->mClipPlaneFar); + + EXPECT_FLOAT_EQ(orig->mPosition.x,read->mPosition.x); + EXPECT_FLOAT_EQ(orig->mPosition.y,read->mPosition.y); + EXPECT_FLOAT_EQ(orig->mPosition.z,read->mPosition.z); + } + +} + + +#endif + + From c014bb977c290a578131b39d31de8bbdab68424f Mon Sep 17 00:00:00 2001 From: Andy Maloney Date: Sat, 16 May 2015 15:13:22 -0400 Subject: [PATCH 26/62] - add missing initialization of several class members - prefer check for empty() over check for size() in OptimizeGraph (empty() is guaranteed to be constant time, size() is not) - fix a couple of incorrect indentations --- code/BaseImporter.cpp | 4 +++- code/ColladaExporter.h | 7 +++++-- code/ColladaHelper.h | 26 ++++++++++++++++++-------- code/ColladaLoader.cpp | 5 ++++- code/FindInvalidDataProcess.cpp | 1 + code/OptimizeGraph.cpp | 8 ++++++-- code/OptimizeMeshes.cpp | 8 +++++--- 7 files changed, 42 insertions(+), 17 deletions(-) diff --git a/code/BaseImporter.cpp b/code/BaseImporter.cpp index 1bb0a1cee..38de47432 100644 --- a/code/BaseImporter.cpp +++ b/code/BaseImporter.cpp @@ -480,7 +480,9 @@ namespace Assimp struct Assimp::BatchData { BatchData() - : next_id(0xffff) + : pIOSystem() + , pImporter() + , next_id(0xffff) {} // IO system to be used for all imports diff --git a/code/ColladaExporter.h b/code/ColladaExporter.h index 9456508ce..7ba32f9ea 100644 --- a/code/ColladaExporter.h +++ b/code/ColladaExporter.h @@ -144,8 +144,11 @@ protected: struct Property { bool exist; - float value; - Property() { exist = false; } + float value; + Property() + : exist(false) + , value(0.0f) + {} }; // summarize a material in an convinient way. diff --git a/code/ColladaHelper.h b/code/ColladaHelper.h index 71ccd2dfc..8a4e38d53 100644 --- a/code/ColladaHelper.h +++ b/code/ColladaHelper.h @@ -47,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include #include -#include "../include/assimp/types.h" +#include "../include/assimp/light.h" #include "../include/assimp/mesh.h" #include "../include/assimp/material.h" @@ -134,7 +134,8 @@ struct Camera struct Light { Light() - : mAttConstant (1.f) + : mType (aiLightSource_UNDEFINED) + , mAttConstant (1.f) , mAttLinear (0.f) , mAttQuadratic (0.f) , mFalloffAngle (180.f) @@ -172,13 +173,14 @@ struct Light struct InputSemanticMapEntry { InputSemanticMapEntry() - : mSet (0) + : mSet(0) + , mType(IT_Invalid) {} //! Index of set, optional unsigned int mSet; - //! Name of referenced vertex input + //! Type of referenced vertex input InputType mType; }; @@ -235,7 +237,7 @@ struct Node { std::string mName; std::string mID; - std::string mSID; + std::string mSID; Node* mParent; std::vector mChildren; @@ -384,8 +386,8 @@ struct Controller // accessor URL of the joint names std::string mJointNameSource; - ///< The bind shape matrix, as array of floats. I'm not sure what this matrix actually describes, but it can't be ignored in all cases - float mBindShapeMatrix[16]; + ///< The bind shape matrix, as array of floats. I'm not sure what this matrix actually describes, but it can't be ignored in all cases + float mBindShapeMatrix[16]; // accessor URL of the joint inverse bind matrices std::string mJointOffsetMatrixSource; @@ -609,7 +611,15 @@ struct ChannelEntry const Collada::Accessor* mValueAccessor; ///> Collada accessor to the key value values const Collada::Data* mValueData; ///> Source datat array for the key value values - ChannelEntry() { mChannel = NULL; mSubElement = 0; } + ChannelEntry() + : mChannel() + , mTransformIndex() + , mSubElement() + , mTimeAccessor() + , mTimeData() + , mValueAccessor() + , mValueData() + {} }; } // end of namespace Collada diff --git a/code/ColladaLoader.cpp b/code/ColladaLoader.cpp index 735eede18..b2d4d4869 100644 --- a/code/ColladaLoader.cpp +++ b/code/ColladaLoader.cpp @@ -81,7 +81,10 @@ static const aiImporterDesc desc = { // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer ColladaLoader::ColladaLoader() -: noSkeletonMesh(), ignoreUpDirection(false), mNodeNameCounter() + : noSkeletonMesh() + , ignoreUpDirection(false) + , invertTransparency(false) + , mNodeNameCounter() {} // ------------------------------------------------------------------------------------------------ diff --git a/code/FindInvalidDataProcess.cpp b/code/FindInvalidDataProcess.cpp index 450c5f873..e82aedc36 100644 --- a/code/FindInvalidDataProcess.cpp +++ b/code/FindInvalidDataProcess.cpp @@ -58,6 +58,7 @@ using namespace Assimp; // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer FindInvalidDataProcess::FindInvalidDataProcess() + : configEpsilon(0.0f) { // nothing to do here } diff --git a/code/OptimizeGraph.cpp b/code/OptimizeGraph.cpp index d418655bf..25dca7923 100644 --- a/code/OptimizeGraph.cpp +++ b/code/OptimizeGraph.cpp @@ -71,6 +71,10 @@ using namespace Assimp; // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer OptimizeGraphProcess::OptimizeGraphProcess() + : mScene() + , nodes_in() + , nodes_out() + , count_merged() {} // ------------------------------------------------------------------------------------------------ @@ -122,7 +126,7 @@ void OptimizeGraphProcess::CollectNewChildren(aiNode* nd, std::list& no ++it; } - if (nd->mNumMeshes || child_nodes.size()) { + if (nd->mNumMeshes || !child_nodes.empty()) { nodes.push_back(nd); } else { @@ -172,7 +176,7 @@ void OptimizeGraphProcess::CollectNewChildren(aiNode* nd, std::list& no } ++it; } - if (join_master && join.size()) { + if (join_master && !join.empty()) { join_master->mName.length = sprintf(join_master->mName.data,"$MergedNode_%i",count_merged++); unsigned int out_meshes = 0; diff --git a/code/OptimizeMeshes.cpp b/code/OptimizeMeshes.cpp index cbd5ea693..1e33f7356 100644 --- a/code/OptimizeMeshes.cpp +++ b/code/OptimizeMeshes.cpp @@ -60,9 +60,11 @@ static const unsigned int DeadBeef = 0xdeadbeef; // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer OptimizeMeshesProcess::OptimizeMeshesProcess() -: pts (false) -, max_verts( NotSet ) -, max_faces( NotSet ) { + : mScene() + , mesh() + , pts(false) + , max_verts( NotSet ) + , max_faces( NotSet ) { // empty } From bf4a73e42e089601e132f6086c495a49fbe06bd5 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 19:42:07 -0600 Subject: [PATCH 27/62] Refactor: Remove unused member variable --- code/OptimizeMeshes.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/OptimizeMeshes.h b/code/OptimizeMeshes.h index 88e81629c..38c06e221 100644 --- a/code/OptimizeMeshes.h +++ b/code/OptimizeMeshes.h @@ -164,9 +164,6 @@ private: //! Per mesh info std::vector meshes; - //! Next output mesh - aiMesh* mesh; - //! Output meshes std::vector output; From 63520d562a4d2e6e2ebe50591deaac17dd52bb56 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 19:42:30 -0600 Subject: [PATCH 28/62] Refactor: Initialize members in declaration order; prefer initialization over assignment --- code/StepExporter.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/code/StepExporter.cpp b/code/StepExporter.cpp index 0ce273313..65e165afb 100644 --- a/code/StepExporter.cpp +++ b/code/StepExporter.cpp @@ -152,7 +152,7 @@ namespace { // ------------------------------------------------------------------------------------------------ // Constructor for a specific scene to export -StepExporter::StepExporter(const aiScene* pScene, IOSystem* pIOSystem, const std::string& path, const std::string& file, const ExportProperties* pProperties) : mIOSystem(pIOSystem), mPath(path), mFile(file), mProperties(pProperties) +StepExporter::StepExporter(const aiScene* pScene, IOSystem* pIOSystem, const std::string& path, const std::string& file, const ExportProperties* pProperties) : mProperties(pProperties), mIOSystem(pIOSystem), mFile(file), mPath(path), mScene(pScene), endstr(";\n") { CollectTrafos(pScene->mRootNode, trafos); CollectMeshes(pScene->mRootNode, meshes); @@ -160,11 +160,6 @@ StepExporter::StepExporter(const aiScene* pScene, IOSystem* pIOSystem, const std // make sure that all formatting happens using the standard, C locale and not the user's current locale mOutput.imbue( std::locale("C") ); - mScene = pScene; - - // set up strings - endstr = ";\n"; - // start writing WriteFile(); } From fbf90a28ffb2aace358c25d06d7eed65ccadce39 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 19:46:01 -0600 Subject: [PATCH 29/62] Fixed: Ensure variable is always initialized before use --- code/3DSExporter.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/3DSExporter.cpp b/code/3DSExporter.cpp index b16a3b2c7..1bd341c78 100644 --- a/code/3DSExporter.cpp +++ b/code/3DSExporter.cpp @@ -47,9 +47,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "SceneCombiner.h" #include "SplitLargeMeshes.h" #include "StringComparison.h" -#include "../include/assimp/IOSystem.hpp" -#include "../include/assimp/DefaultLogger.hpp" -#include "../include/assimp/Exporter.hpp" +#include "../include/assimp/IOSystem.hpp" +#include "../include/assimp/DefaultLogger.hpp" +#include "../include/assimp/Exporter.hpp" #include using namespace Assimp; @@ -324,6 +324,7 @@ void Discreet3DSExporter::WriteMaterials() break; default: + shading_mode_out = Discreet3DS::Flat; ai_assert(false); }; writer.PutU2(static_cast(shading_mode_out)); From 8c94e51e90971c8bed5cb2a35292215fa7232633 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 19:47:13 -0600 Subject: [PATCH 30/62] Refactor: Delete unused functions --- code/StepExporter.cpp | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/code/StepExporter.cpp b/code/StepExporter.cpp index 65e165afb..845396780 100644 --- a/code/StepExporter.cpp +++ b/code/StepExporter.cpp @@ -115,21 +115,6 @@ void ExportSceneStep(const char* pFile,IOSystem* pIOSystem, const aiScene* pScen namespace { - inline uint64_t toIndexHash(int32_t id1, int32_t id2) - { - // dont wonder that -1/-1 -> hash=-1 - uint64_t hash = (uint32_t) id1; - hash = (hash << 32); - hash += (uint32_t) id2; - return hash; - } - - inline void fromIndexHash(uint64_t hash, int32_t &id1, int32_t &id2) - { - id1 = (hash & 0xFFFFFFFF00000000) >> 32; - id2 = (hash & 0xFFFFFFFF); - } - // Collect world transformations for each node void CollectTrafos(const aiNode* node, std::map& trafos) { const aiMatrix4x4& parent = node->mParent ? trafos[node->mParent] : aiMatrix4x4(); From d25c36960a1e49dba2e204e08c68b74a6f372988 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 19:56:01 -0600 Subject: [PATCH 31/62] Refactor: Initialize all POD members --- code/OpenGEXImporter.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/OpenGEXImporter.cpp b/code/OpenGEXImporter.cpp index fde5e3d45..be82db84f 100644 --- a/code/OpenGEXImporter.cpp +++ b/code/OpenGEXImporter.cpp @@ -47,6 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include +#include #include static const aiImporterDesc desc = { @@ -183,12 +184,11 @@ USE_ODDLPARSER_NS //------------------------------------------------------------------------------------------------ OpenGEXImporter::VertexContainer::VertexContainer() : m_numVerts( 0 ) -, m_vertices() +, m_vertices(NULL) , m_numNormals( 0 ) -, m_normals() -, m_textureCoords() -, m_numUVComps() { - // empty +, m_normals(NULL) { + std::fill(&m_numUVComps[0], &m_numUVComps[AI_MAX_NUMBER_OF_TEXTURECOORDS], 0U); + std::fill(&m_textureCoords[0], &m_textureCoords[AI_MAX_NUMBER_OF_TEXTURECOORDS], static_cast(NULL)); } //------------------------------------------------------------------------------------------------ From 6ae97976482522a49669d996a3406c7e29a39ce2 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:01:51 -0600 Subject: [PATCH 32/62] Refactor: Initialize members in declaration order; initialize POD arrays --- code/OpenGEXImporter.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/OpenGEXImporter.cpp b/code/OpenGEXImporter.cpp index be82db84f..5b8209ed7 100644 --- a/code/OpenGEXImporter.cpp +++ b/code/OpenGEXImporter.cpp @@ -215,9 +215,9 @@ OpenGEXImporter::RefInfo::~RefInfo() { //------------------------------------------------------------------------------------------------ OpenGEXImporter::OpenGEXImporter() -: m_meshCache() -, m_root( NULL ) +: m_root( NULL ) , m_nodeChildMap() +, m_meshCache() , m_mesh2refMap() , m_ctx( NULL ) , m_currentNode( NULL ) @@ -226,7 +226,7 @@ OpenGEXImporter::OpenGEXImporter() , m_tokenType( Grammar::NoneType ) , m_nodeStack() , m_unresolvedRefStack() { - // empty + std::fill(&m_metrics[0], &m_metrics[MetricInfo::Max], MetricInfo()); } //------------------------------------------------------------------------------------------------ From 2de6dd49732579adbd24b4216308eee5ebaad207 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:02:58 -0600 Subject: [PATCH 33/62] Refactor: Delete unused variable --- code/OpenGEXImporter.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/code/OpenGEXImporter.cpp b/code/OpenGEXImporter.cpp index 5b8209ed7..a568f925e 100644 --- a/code/OpenGEXImporter.cpp +++ b/code/OpenGEXImporter.cpp @@ -665,7 +665,6 @@ void OpenGEXImporter::handleVertexArrayNode( ODDLParser::DDLNode *node, aiScene } const size_t numItems( countDataArrayListItems( vaList ) ); - Value *next( vaList->m_dataList ); if( Position == attribType ) { m_currentVertices.m_numVerts = numItems; m_currentVertices.m_vertices = new aiVector3D[ numItems ]; From 79c916daf4cd44f433c37d883a51990ea21a5a55 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:05:05 -0600 Subject: [PATCH 34/62] Refactor: Remove unused variable --- code/PlyExporter.cpp | 15 +++++++-------- code/PlyExporter.h | 1 - 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/code/PlyExporter.cpp b/code/PlyExporter.cpp index 0a4c94a48..12e59f2b6 100644 --- a/code/PlyExporter.cpp +++ b/code/PlyExporter.cpp @@ -43,14 +43,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #if !defined(ASSIMP_BUILD_NO_EXPORT) && !defined(ASSIMP_BUILD_NO_PLY_EXPORTER) #include "PlyExporter.h" -#include +#include #include -#include "Exceptional.h" -#include "../include/assimp/scene.h" -#include "../include/assimp/version.h" -#include "../include/assimp/IOSystem.hpp" +#include "Exceptional.h" +#include "../include/assimp/scene.h" +#include "../include/assimp/version.h" +#include "../include/assimp/IOSystem.hpp" #include "../include/assimp/Exporter.hpp" -#include "qnan.h" +#include "qnan.h" using namespace Assimp; @@ -96,8 +96,7 @@ void ExportScenePlyBinary(const char* pFile, IOSystem* pIOSystem, const aiScene* // ------------------------------------------------------------------------------------------------ PlyExporter::PlyExporter(const char* _filename, const aiScene* pScene, bool binary) : filename(_filename) -, pScene(pScene) -, endl("\n") +, endl("\n") { // make sure that all formatting happens using the standard, C locale and not the user's current locale const std::locale& l = std::locale("C"); diff --git a/code/PlyExporter.h b/code/PlyExporter.h index ec20903d7..64649d7cc 100644 --- a/code/PlyExporter.h +++ b/code/PlyExporter.h @@ -78,7 +78,6 @@ private: private: const std::string filename; - const aiScene* const pScene; // obviously, this endl() doesn't flush() the stream const std::string endl; From 7b3fa5ebc2b1c2ad8266f0d920a379f1d666bd20 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:22:31 -0600 Subject: [PATCH 35/62] Refactor: Delete unused forward decls, delete unused function --- code/IFCLoader.cpp | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/code/IFCLoader.cpp b/code/IFCLoader.cpp index 34f176c89..8ffefcb91 100644 --- a/code/IFCLoader.cpp +++ b/code/IFCLoader.cpp @@ -60,9 +60,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "StreamReader.h" #include "MemoryIOWrapper.h" -#include "../include/assimp/scene.h" -#include "../include/assimp/Importer.hpp" - +#include "../include/assimp/scene.h" +#include "../include/assimp/Importer.hpp" + namespace Assimp { template<> const std::string LogFunctions::log_prefix = "IFC: "; @@ -93,8 +93,6 @@ namespace { void SetUnits(ConversionData& conv); void SetCoordinateSpace(ConversionData& conv); void ProcessSpatialStructures(ConversionData& conv); -aiNode* ProcessSpatialStructure(aiNode* parent, const IfcProduct& el ,ConversionData& conv); -void ProcessProductRepresentation(const IfcProduct& el, aiNode* nd, ConversionData& conv); void MakeTreeRelative(ConversionData& conv); void ConvertUnit(const EXPRESS::DataType& dt,ConversionData& conv); @@ -421,16 +419,6 @@ void ResolveObjectPlacement(aiMatrix4x4& m, const IfcObjectPlacement& place, Con } } -// ------------------------------------------------------------------------------------------------ -void GetAbsTransform(aiMatrix4x4& out, const aiNode* nd, ConversionData& conv) -{ - aiMatrix4x4 t; - if (nd->mParent) { - GetAbsTransform(t,nd->mParent,conv); - } - out = t*nd->mTransformation; -} - // ------------------------------------------------------------------------------------------------ bool ProcessMappedItem(const IfcMappedItem& mapped, aiNode* nd_src, std::vector< aiNode* >& subnodes_src, unsigned int matid, ConversionData& conv) { @@ -682,14 +670,14 @@ aiNode* ProcessSpatialStructure(aiNode* parent, const IfcProduct& el, Conversion // skip over space and annotation nodes - usually, these have no meaning in Assimp's context bool skipGeometry = false; if(conv.settings.skipSpaceRepresentations) { - if(const IfcSpace* const space = el.ToPtr()) { + if(el.ToPtr()) { IFCImporter::LogDebug("skipping IfcSpace entity due to importer settings"); skipGeometry = true; } } if(conv.settings.skipAnnotations) { - if(const IfcAnnotation* const ann = el.ToPtr()) { + if(el.ToPtr()) { IFCImporter::LogDebug("skipping IfcAnnotation entity due to importer settings"); return NULL; } @@ -764,7 +752,7 @@ aiNode* ProcessSpatialStructure(aiNode* parent, const IfcProduct& el, Conversion continue; } BOOST_FOREACH(const IfcProduct& pro, cont->RelatedElements) { - if(const IfcOpeningElement* const open = pro.ToPtr()) { + if(pro.ToPtr()) { // IfcOpeningElement is handled below. Sadly we can't use it here as is: // The docs say that opening elements are USUALLY attached to building storey, // but we want them for the building elements to which they belong. From 5bb09377cb24557a2dc9f3ba1191d220c8e6a090 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:40:35 -0600 Subject: [PATCH 36/62] Refactor: Delete unused variable --- code/IFCProfile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/IFCProfile.cpp b/code/IFCProfile.cpp index 42d090d9d..9e70c2ac1 100644 --- a/code/IFCProfile.cpp +++ b/code/IFCProfile.cpp @@ -114,7 +114,7 @@ void ProcessParametrizedProfile(const IfcParameterizedProfileDef& def, TempMesh& meshout.vertcnt.push_back(4); } else if( const IfcCircleProfileDef* const circle = def.ToPtr()) { - if( const IfcCircleHollowProfileDef* const hollow = def.ToPtr()) { + if(def.ToPtr()) { // TODO } const size_t segments = 32; From 814ef32dce482176797e142548f2583d76ea8d1f Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:43:25 -0600 Subject: [PATCH 37/62] Refactor: Delete unused fields --- code/IFCCurve.cpp | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/code/IFCCurve.cpp b/code/IFCCurve.cpp index 0625ea631..aca350fc9 100644 --- a/code/IFCCurve.cpp +++ b/code/IFCCurve.cpp @@ -173,7 +173,6 @@ public: // -------------------------------------------------- Line(const IfcLine& entity, ConversionData& conv) : Curve(entity,conv) - , entity(entity) { ConvertCartesianPoint(p,entity.Pnt); ConvertVector(v,entity.Dir); @@ -221,7 +220,6 @@ public: } private: - const IfcLine& entity; IfcVector3 p,v; }; @@ -238,7 +236,6 @@ public: // -------------------------------------------------- CompositeCurve(const IfcCompositeCurve& entity, ConversionData& conv) : BoundedCurve(entity,conv) - , entity(entity) , total() { curves.reserve(entity.Segments.size()); @@ -331,7 +328,6 @@ public: } private: - const IfcCompositeCurve& entity; std::vector< CurveEntry > curves; IfcFloat total; @@ -349,8 +345,6 @@ public: // -------------------------------------------------- TrimmedCurve(const IfcTrimmedCurve& entity, ConversionData& conv) : BoundedCurve(entity,conv) - , entity(entity) - , ok() { base = boost::shared_ptr(Curve::Convert(entity.BasisCurve,conv)); @@ -448,11 +442,9 @@ private: private: - const IfcTrimmedCurve& entity; ParamRange range; IfcFloat maxval; bool agree_sense; - bool ok; boost::shared_ptr base; }; @@ -469,7 +461,6 @@ public: // -------------------------------------------------- PolyLine(const IfcPolyline& entity, ConversionData& conv) : BoundedCurve(entity,conv) - , entity(entity) { points.reserve(entity.Points.size()); @@ -507,7 +498,6 @@ public: } private: - const IfcPolyline& entity; std::vector points; }; From a34adb84502c2f9b4c25dedeaccf5a5e6f14f7b2 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:45:16 -0600 Subject: [PATCH 38/62] Refactor: Delete unused functions --- code/STEPFileReader.cpp | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/code/STEPFileReader.cpp b/code/STEPFileReader.cpp index 113ab50a1..d7780e317 100644 --- a/code/STEPFileReader.cpp +++ b/code/STEPFileReader.cpp @@ -46,7 +46,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "STEPFileReader.h" #include "STEPFileEncoding.h" #include "TinyFormatter.h" -#include "fast_atof.h" +#include "fast_atof.h" #include @@ -55,28 +55,6 @@ namespace EXPRESS = STEP::EXPRESS; #include -// ------------------------------------------------------------------------------------------------ -// From http://stackoverflow.com/questions/216823/whats-the-best-way-to-trim-stdstring - -// trim from start -static inline std::string <rim(std::string &s) { - s.erase(s.begin(), std::find_if(s.begin(), s.end(), std::not1( std::ptr_fun(Assimp::IsSpace)))); - return s; -} - -// trim from end -static inline std::string &rtrim(std::string &s) { - s.erase(std::find_if(s.rbegin(), s.rend(), std::not1( std::ptr_fun(Assimp::IsSpace))).base(),s.end()); - return s; -} -// trim from both ends -static inline std::string &trim(std::string &s) { - return ltrim(rtrim(s)); -} - - - - // ------------------------------------------------------------------------------------------------ std::string AddLineNumber(const std::string& s,uint64_t line /*= LINE_NOT_SPECIFIED*/, const std::string& prefix = "") { From 4a5e9352d6cc134c6ec936bc9103c99dcd472c78 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:46:56 -0600 Subject: [PATCH 39/62] Refactor: Delete unused functions --- code/FBXParser.cpp | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/code/FBXParser.cpp b/code/FBXParser.cpp index f77c24a8d..4e4668902 100644 --- a/code/FBXParser.cpp +++ b/code/FBXParser.cpp @@ -86,27 +86,6 @@ namespace { } - // ------------------------------------------------------------------------------------------------ - // print warning, do return - void ParseWarning(const std::string& message, const Token& token) - { - if(DefaultLogger::get()) { - DefaultLogger::get()->warn(Util::AddTokenText("FBX-Parser",message,&token)); - } - } - - // ------------------------------------------------------------------------------------------------ -/* void ParseWarning(const std::string& message, const Element* element = NULL) - { - if(element) { - ParseWarning(message,element->KeyToken()); - return; - } - if(DefaultLogger::get()) { - DefaultLogger::get()->warn("FBX-Parser: " + message); - } - } -*/ // ------------------------------------------------------------------------------------------------ void ParseError(const std::string& message, TokenPtr token) { From cac87071214ba21e1cfce00f896e41066d0d8f89 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:48:04 -0600 Subject: [PATCH 40/62] Refactor: Delete unused field --- code/STLExporter.cpp | 17 ++++++++--------- code/STLExporter.h | 1 - 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/code/STLExporter.cpp b/code/STLExporter.cpp index 13684fecc..f1ac8a53c 100644 --- a/code/STLExporter.cpp +++ b/code/STLExporter.cpp @@ -43,13 +43,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #if !defined(ASSIMP_BUILD_NO_EXPORT) && !defined(ASSIMP_BUILD_NO_STL_EXPORTER) #include "STLExporter.h" -#include "../include/assimp/version.h" -#include "../include/assimp/IOSystem.hpp" -#include "../include/assimp/scene.h" -#include "../include/assimp/Exporter.hpp" -#include -#include "Exceptional.h" -#include "ByteSwapper.h" +#include "../include/assimp/version.h" +#include "../include/assimp/IOSystem.hpp" +#include "../include/assimp/scene.h" +#include "../include/assimp/Exporter.hpp" +#include +#include "Exceptional.h" +#include "ByteSwapper.h" using namespace Assimp; namespace Assimp { @@ -89,8 +89,7 @@ void ExportSceneSTLBinary(const char* pFile,IOSystem* pIOSystem, const aiScene* // ------------------------------------------------------------------------------------------------ STLExporter :: STLExporter(const char* _filename, const aiScene* pScene, bool binary) : filename(_filename) -, pScene(pScene) -, endl("\n") +, endl("\n") { // make sure that all formatting happens using the standard, C locale and not the user's current locale const std::locale& l = std::locale("C"); diff --git a/code/STLExporter.h b/code/STLExporter.h index 3284650c3..de7fce43e 100644 --- a/code/STLExporter.h +++ b/code/STLExporter.h @@ -75,7 +75,6 @@ private: private: const std::string filename; - const aiScene* const pScene; // this endl() doesn't flush() the stream const std::string endl; From 9cbef8cba35762ab0cabf6717883d8c6d8704a21 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 17 May 2015 20:50:58 -0600 Subject: [PATCH 41/62] Refactor: Initialize members in declaration order; prefer initialization over assignment --- code/XFileExporter.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/code/XFileExporter.cpp b/code/XFileExporter.cpp index 276b309dd..278bf12a8 100644 --- a/code/XFileExporter.cpp +++ b/code/XFileExporter.cpp @@ -95,17 +95,18 @@ void ExportSceneXFile(const char* pFile,IOSystem* pIOSystem, const aiScene* pSce // ------------------------------------------------------------------------------------------------ // Constructor for a specific scene to export -XFileExporter::XFileExporter(const aiScene* pScene, IOSystem* pIOSystem, const std::string& path, const std::string& file, const ExportProperties* pProperties) : mIOSystem(pIOSystem), mPath(path), mFile(file), mProperties(pProperties) +XFileExporter::XFileExporter(const aiScene* pScene, IOSystem* pIOSystem, const std::string& path, const std::string& file, const ExportProperties* pProperties) + : mProperties(pProperties), + mIOSystem(pIOSystem), + mPath(path), + mFile(file), + mScene(pScene), + mSceneOwned(false), + endstr("\n") { // make sure that all formatting happens using the standard, C locale and not the user's current locale mOutput.imbue( std::locale("C") ); - mScene = pScene; - mSceneOwned = false; - - // set up strings - endstr = "\n"; - // start writing WriteFile(); } From 28cc934bb937c8430a73752c19e0eee0e501981f Mon Sep 17 00:00:00 2001 From: Andy Maloney Date: Mon, 18 May 2015 09:51:09 -0400 Subject: [PATCH 42/62] Fix overlapping merges --- code/OptimizeMeshes.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/code/OptimizeMeshes.cpp b/code/OptimizeMeshes.cpp index 1e33f7356..870369315 100644 --- a/code/OptimizeMeshes.cpp +++ b/code/OptimizeMeshes.cpp @@ -61,7 +61,6 @@ static const unsigned int DeadBeef = 0xdeadbeef; // Constructor to be privately used by Importer OptimizeMeshesProcess::OptimizeMeshesProcess() : mScene() - , mesh() , pts(false) , max_verts( NotSet ) , max_faces( NotSet ) { From 2c194f629a93f6809efd75591f7b6a791277efaa Mon Sep 17 00:00:00 2001 From: wise86Android Date: Tue, 19 May 2015 21:57:51 +0200 Subject: [PATCH 43/62] fix macro for be uesed with expression --- code/ColladaExporter.cpp | 140 ++++++++++- code/ColladaExporter.h | 12 + include/assimp/defs.h | 6 +- test/CMakeLists.txt | 1 + test/models/Collada/lights.dae | 380 +++++++++++++++++++++++++++++ test/unit/utColladaExportLight.cpp | 81 ++++++ 6 files changed, 616 insertions(+), 4 deletions(-) create mode 100644 test/models/Collada/lights.dae create mode 100644 test/unit/utColladaExportLight.cpp diff --git a/code/ColladaExporter.cpp b/code/ColladaExporter.cpp index c5d904c07..ba3530491 100644 --- a/code/ColladaExporter.cpp +++ b/code/ColladaExporter.cpp @@ -51,7 +51,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "XMLTools.h" #include "../include/assimp/IOSystem.hpp" #include "../include/assimp/Exporter.hpp" -#include "../include/assimp/scene.h" +#include "../include/assimp/scene.h" #include "Exceptional.h" @@ -128,6 +128,7 @@ void ColladaExporter::WriteFile() WriteHeader(); WriteCamerasLibrary(); + WriteLightsLibrary(); WriteMaterials(); WriteGeometryLibrary(); @@ -342,6 +343,143 @@ void ColladaExporter::WriteCamera(size_t pIndex){ } + +// ------------------------------------------------------------------------------------------------ +// Write the embedded textures +void ColladaExporter::WriteLightsLibrary() { + if(mScene->HasLights()) { + + mOutput << startstr << "" << endstr; + PushTag(); + + for( size_t a = 0; a < mScene->mNumLights; ++a) + WriteLight( a); + + PopTag(); + mOutput << startstr << "" << endstr; + + } +} + +void ColladaExporter::WriteLight(size_t pIndex){ + + const aiLight *light = mScene->mLights[pIndex]; + const std::string idstrEscaped = XMLEscape(light->mName.C_Str()); + + mOutput << startstr << "" << endstr; + PushTag(); + mOutput << startstr << "" << endstr; + PushTag(); + switch(light->mType){ + case aiLightSource_AMBIENT: + WriteAmbienttLight(light); + break; + case aiLightSource_DIRECTIONAL: + WriteDirectionalLight(light); + break; + case aiLightSource_POINT: + WritePointLight(light); + break; + case aiLightSource_SPOT: + WriteSpotLight(light); + break; + case aiLightSource_UNDEFINED: + case _aiLightSource_Force32Bit: + break; + } + PopTag(); + mOutput << startstr << "" << endstr; + + PopTag(); + mOutput << startstr << "" << endstr; + +} + +void ColladaExporter::WritePointLight(const aiLight *const light){ + const aiColor3D &color= light->mColorDiffuse; + mOutput << startstr << "" << endstr; + PushTag(); + mOutput << startstr << "" + << color.r<<" "<" << endstr; + mOutput << startstr << "" + << light->mAttenuationConstant + <<"" << endstr; + mOutput << startstr << "" + << light->mAttenuationLinear + <<"" << endstr; + mOutput << startstr << "" + << light->mAttenuationQuadratic + <<"" << endstr; + + PopTag(); + mOutput << startstr << "" << endstr; + +} +void ColladaExporter::WriteDirectionalLight(const aiLight *const light){ + const aiColor3D &color= light->mColorDiffuse; + mOutput << startstr << "" << endstr; + PushTag(); + mOutput << startstr << "" + << color.r<<" "<" << endstr; + + PopTag(); + mOutput << startstr << "" << endstr; + +} +void ColladaExporter::WriteSpotLight(const aiLight *const light){ + /* + 1 1 1 + 1 + 0 + 0.001599967 + 45 + 0.15 + + */ + const aiColor3D &color= light->mColorDiffuse; + mOutput << startstr << "" << endstr; + PushTag(); + mOutput << startstr << "" + << color.r<<" "<" << endstr; + mOutput << startstr << "" + << light->mAttenuationConstant + <<"" << endstr; + mOutput << startstr << "" + << light->mAttenuationLinear + <<"" << endstr; + mOutput << startstr << "" + << light->mAttenuationQuadratic + <<"" << endstr; +/* mOutput << startstr << "" + << light-> + <<"" << endstr; + mOutput << startstr << "" + << light->mAttenuationLinear + <<"" << endstr; +*/ + + PopTag(); + mOutput << startstr << "" << endstr; + +} + +void ColladaExporter::WriteAmbienttLight(const aiLight *const light){ + + const aiColor3D &color= light->mColorAmbient; + mOutput << startstr << "" << endstr; + PushTag(); + mOutput << startstr << "" + << color.r<<" "<" << endstr; + + PopTag(); + mOutput << startstr << "" << endstr; +} + // ------------------------------------------------------------------------------------------------ // Reads a single surface entry from the given material keys void ColladaExporter::ReadMaterialSurface( Surface& poSurface, const aiMaterial* pSrcMat, aiTextureType pTexture, const char* pKey, size_t pType, size_t pIndex) diff --git a/code/ColladaExporter.h b/code/ColladaExporter.h index 4ded0d13d..73dc497fa 100644 --- a/code/ColladaExporter.h +++ b/code/ColladaExporter.h @@ -47,6 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "../include/assimp/ai_assert.h" #include "../include/assimp/material.h" #include "../include/assimp/mesh.h" +#include "../include/assimp/light.h" #include "../include/assimp/Exporter.hpp" #include #include @@ -86,8 +87,19 @@ protected: /// Writes the cameras library void WriteCamerasLibrary(); + // Write a camera entry void WriteCamera(size_t pIndex); + /// Writes the cameras library + void WriteLightsLibrary(); + + // Write a camera entry + void WriteLight(size_t pIndex); + void WritePointLight(const aiLight *const light); + void WriteDirectionalLight(const aiLight *const light); + void WriteSpotLight(const aiLight *const light); + void WriteAmbienttLight(const aiLight *const light); + /// Writes the geometry library void WriteGeometryLibrary(); diff --git a/include/assimp/defs.h b/include/assimp/defs.h index 6b8ac3416..c21b3cf2b 100644 --- a/include/assimp/defs.h +++ b/include/assimp/defs.h @@ -209,7 +209,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #if (defined(__BORLANDC__) || defined (__BCPLUSPLUS__)) #error Currently, Borland is unsupported. Feel free to port Assimp. -// "W8059 Packgröße der Struktur geändert" +// "W8059 Packgr��e der Struktur ge�ndert" #endif ////////////////////////////////////////////////////////////////////////// @@ -257,8 +257,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define AI_MATH_HALF_PI_F (AI_MATH_PI_F * 0.5f) /* Tiny macro to convert from radians to degrees and back */ -#define AI_DEG_TO_RAD(x) (x*0.0174532925f) -#define AI_RAD_TO_DEG(x) (x*57.2957795f) +#define AI_DEG_TO_RAD(x) ((x)*0.0174532925f) +#define AI_RAD_TO_DEG(x) ((x)*57.2957795f) /* Support for big-endian builds */ #if defined(__BYTE_ORDER__) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 9053f66d8..287f51698 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -41,6 +41,7 @@ SET( TEST_SRCS unit/utVertexTriangleAdjacency.cpp unit/utNoBoostTest.cpp unit/utColladaExportCamera.cpp + unit/utColladaExportLight.cpp ) SOURCE_GROUP( tests FILES ${TEST_SRCS} ) diff --git a/test/models/Collada/lights.dae b/test/models/Collada/lights.dae new file mode 100644 index 000000000..9e040aac6 --- /dev/null +++ b/test/models/Collada/lights.dae @@ -0,0 +1,380 @@ + + + + + Blender User + Blender 2.74.0 commit date:2015-03-31, commit time:13:39, hash:000dfc0 + + 2015-05-17T21:55:44 + 2015-05-17T21:55:44 + + Z_UP + + + + + + 1 1 1 + 1 + 0 + 0.00111109 + + + + + 0.000999987 + 1 + 0.1 + 0.1 + 1 + 1 + 1 + 2 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 2880 + 2 + 30.002 + 1.000799 + 0.04999995 + 29.99998 + 1 + 2 + 0 + 0 + 1 + 1 + 1 + 1 + 8192 + 1 + 1 + 0 + 1 + 1 + 1 + 3 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 3 + 0.15 + 75 + 1 + 1 + 0 + 1 + 1 + 0 + + + + + + + 1 1 1 + + + + + 0.000999987 + 0 + 0.1 + 0.1 + 0.1 + 1 + 1 + 2 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 512 + 2 + 40 + 0.5 + 0.04999995 + 25 + 1 + 2 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 3 + 0 + 0 + 0 + 0 + 2 + 1 + 1 + 1 + 3 + 0.15 + 45 + 1 + 1 + 0 + 1 + 1 + 1 + + + + + + + 1 1 1 + 1 + 0 + 0.001599967 + 45 + 0.15 + + + + + 0.000999987 + 0 + 0.1 + 0.1 + 0.1 + 1 + 1 + 2 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 512 + 2 + 40 + 0.5 + 0.04999995 + 25 + 1 + 2 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 3 + 0 + 0 + 0 + 0 + 2 + 1 + 1 + 1 + 3 + 0.15 + 45 + 1 + 1 + 0 + 1 + 1 + 2 + + + + + + + 1 1 1 + + + + + 0.000999987 + 0 + 0.1 + 0.1 + 0.1 + 1 + 1 + 2 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 512 + 2 + 40 + 0.5 + 0.04999995 + 25 + 1 + 2 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 3 + 0 + 0 + 0 + 0 + 2 + 1 + 1 + 1 + 3 + 0.15 + 45 + 1 + 1 + 0 + 1 + 1 + 3 + + + + + + + 1 1 1 + 1 + 0 + 0.001599967 + + + + + 0.000999987 + 0 + 0.1 + 0.1 + 0.1 + 1 + 1 + 2 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 512 + 2 + 40 + 0.5 + 0.04999995 + 25 + 1 + 2 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 3 + 0 + 0 + 0 + 0 + 2 + 1 + 1 + 1 + 3 + 0.15 + 45 + 1 + 1 + 0 + 1 + 1 + 4 + + + + + + + + + + 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 + + + + 1 0 0 7.076701 0 1 0 -5.572294 0 0 1 5.147222 0 0 0 1 + + + + 1 0 0 8.888217 0 1 0 -5.016863 0 0 1 5.336025 0 0 0 1 + + + + 1 0 0 7.326984 0 1 0 -4.602942 0 0 1 5.554852 0 0 0 1 + + + + 1 0 0 8.063721 0 1 0 -4.19857 0 0 1 5.273283 0 0 0 1 + + + + + + + + \ No newline at end of file diff --git a/test/unit/utColladaExportLight.cpp b/test/unit/utColladaExportLight.cpp new file mode 100644 index 000000000..044770be3 --- /dev/null +++ b/test/unit/utColladaExportLight.cpp @@ -0,0 +1,81 @@ +/* + * ColladaCameraExporter.cpp + * + * Created on: May 17, 2015 + * Author: wise + */ + + +#include "UnitTestPCH.h" + +#include +#include +#include +#include + +#ifndef ASSIMP_BUILD_NO_EXPORT + +class ColladaExportLight : public ::testing::Test { +public: + + virtual void SetUp() + { + ex = new Assimp::Exporter(); + im = new Assimp::Importer(); + + } + + virtual void TearDown() + { + delete ex; + delete im; + } + +protected: + + + Assimp::Exporter* ex; + Assimp::Importer* im; +}; + +// ------------------------------------------------------------------------------------------------ +TEST_F(ColladaExportLight, testExportLight) +{ + const char* file = "cameraExp.dae"; + + const aiScene* pTest = im->ReadFile("../test/models/Collada/lights.dae",0); + ASSERT_TRUE(pTest!=NULL); + ASSERT_TRUE(pTest->HasLights()); + + + EXPECT_EQ(AI_SUCCESS,ex->Export(pTest,"collada",file)); + EXPECT_EQ(AI_SUCCESS,ex->Export(pTest,"collada","/home/wise/lightsExp.dae")); + + const aiScene* imported = im->ReadFile(file,0); + + ASSERT_TRUE(imported!=NULL); + + EXPECT_TRUE(imported->HasLights()); + EXPECT_EQ(pTest->mNumLights,imported->mNumLights); +/* + for(size_t i=0; i< pTest->mNumCameras;i++){ + + const aiCamera *orig = pTest->mCameras[i]; + const aiCamera *read = imported->mCameras[i]; + + EXPECT_TRUE(orig->mName==read->mName); + EXPECT_FLOAT_EQ(orig->mHorizontalFOV,read->mHorizontalFOV); + EXPECT_FLOAT_EQ(orig->mClipPlaneNear,read->mClipPlaneNear); + EXPECT_FLOAT_EQ(orig->mClipPlaneFar,read->mClipPlaneFar); + + EXPECT_FLOAT_EQ(orig->mPosition.x,read->mPosition.x); + EXPECT_FLOAT_EQ(orig->mPosition.y,read->mPosition.y); + EXPECT_FLOAT_EQ(orig->mPosition.z,read->mPosition.z); + } +*/ +} + + +#endif + + From b1d085b6a9acc719a0ac044148bb359d66226bd6 Mon Sep 17 00:00:00 2001 From: wise86Android Date: Tue, 19 May 2015 23:08:31 +0200 Subject: [PATCH 44/62] fix the foruma for compute the mAngleOuterCone values --- code/ColladaLoader.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/ColladaLoader.cpp b/code/ColladaLoader.cpp index 735eede18..86c40d9c2 100644 --- a/code/ColladaLoader.cpp +++ b/code/ColladaLoader.cpp @@ -346,8 +346,8 @@ void ColladaLoader::BuildLightsForNode( const ColladaParser& pParser, const Coll { // Need to rely on falloff_exponent. I don't know how to interpret it, so I need to guess .... // epsilon chosen to be 0.1 - out->mAngleOuterCone = AI_DEG_TO_RAD (std::acos(std::pow(0.1f,1.f/srcLight->mFalloffExponent))+ - srcLight->mFalloffAngle); + out->mAngleOuterCone = std::acos(std::pow(0.1f,1.f/srcLight->mFalloffExponent))+ + out->mAngleInnerCone; } else { out->mAngleOuterCone = out->mAngleInnerCone + AI_DEG_TO_RAD( srcLight->mPenumbraAngle ); From 5ad6179bc531210df148c9031a616a0f976ef989 Mon Sep 17 00:00:00 2001 From: wise86Android Date: Tue, 19 May 2015 23:15:18 +0200 Subject: [PATCH 45/62] export the light in the collada file --- code/ColladaExporter.cpp | 41 ++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/code/ColladaExporter.cpp b/code/ColladaExporter.cpp index ba3530491..0f9bdc868 100644 --- a/code/ColladaExporter.cpp +++ b/code/ColladaExporter.cpp @@ -454,13 +454,24 @@ void ColladaExporter::WriteSpotLight(const aiLight *const light){ mOutput << startstr << "" << light->mAttenuationQuadratic <<"" << endstr; -/* mOutput << startstr << "" - << light-> - <<"" << endstr; - mOutput << startstr << "" - << light->mAttenuationLinear - <<"" << endstr; -*/ + /* + out->mAngleOuterCone = AI_DEG_TO_RAD (std::acos(std::pow(0.1f,1.f/srcLight->mFalloffExponent))+ + srcLight->mFalloffAngle); + */ + + const float fallOffAngle = AI_RAD_TO_DEG(light->mAngleInnerCone); + mOutput << startstr <<"" + << fallOffAngle + <<"" << endstr; + double temp = light->mAngleOuterCone-light->mAngleInnerCone; + + temp = std::cos(temp); + temp = std::log(temp)/std::log(0.1); + temp = 1/temp; + mOutput << startstr << "" + << temp + <<"" << endstr; + PopTag(); mOutput << startstr << "" << endstr; @@ -1042,7 +1053,21 @@ void ColladaExporter::WriteNode(aiNode* pNode) mOutput << "" << endstr; if(pNode->mNumMeshes==0){ - mOutput << startstr <<"" << endstr; + //check if it is a camera node + for(size_t i=0; imNumCameras; i++){ + if(mScene->mCameras[i]->mName == pNode->mName){ + mOutput << startstr <<"" << endstr; + break; + } + } + //check if it is a light node + for(size_t i=0; imNumLights; i++){ + if(mScene->mLights[i]->mName == pNode->mName){ + mOutput << startstr <<"" << endstr; + break; + } + } + }else // instance every geometry for( size_t a = 0; a < pNode->mNumMeshes; ++a ) From baddcc2f3405cf307bf3bf6be245252af74bebe7 Mon Sep 17 00:00:00 2001 From: Andy Maloney Date: Mon, 18 May 2015 09:40:40 -0400 Subject: [PATCH 46/62] - use markdown for coding convention - rewrite it --- CodeConventions.md | 31 +++++++++++++++++++++++++++++++ CodeConventions.txt | 14 -------------- 2 files changed, 31 insertions(+), 14 deletions(-) create mode 100644 CodeConventions.md delete mode 100644 CodeConventions.txt diff --git a/CodeConventions.md b/CodeConventions.md new file mode 100644 index 000000000..3f1885819 --- /dev/null +++ b/CodeConventions.md @@ -0,0 +1,31 @@ + +Open Asset Import Library Coding Conventions +== + +If you want to participate as a developer in the **Open Asset Import Library** please read and respect the following coding conventions. This will ensure consistency throughout the codebase and help all the Open Asset Import Library users. + +Spacing +== + +* No spaces between parentheses and arguments - i.e. ```foo(bar)```, not ```foo( bar )``` + +Tabs +-- + +The tab width shall be 4 spaces. Use spaces instead of tabs. + +Class/Struct Initialization +== +Constructors shall use initializer lists as follows: +```cpp +SomeClass() + : mExists(false) + , mCounter() + , mPtr() +{} +``` + +* Initializations are one-per-line +* Commas go at the beginning of the line rather than the end +* The order of the list must match the order of declaration in the class +* Any member with a default value should leave out the optional *NULL* or *0* - e.g. ```foo()```, not ```foo(NULL)``` diff --git a/CodeConventions.txt b/CodeConventions.txt deleted file mode 100644 index dcbe17ed6..000000000 --- a/CodeConventions.txt +++ /dev/null @@ -1,14 +0,0 @@ - =============================================== - The Asset-Importer-Library Coding conventions - =============================================== - - If you want to participate to the Asset-Importer_Library please have a look - onto these coding conventions and try to follow them. They are more or less - some kind of guide line to help others coming into the code and help all - the Asset-Importer-Library users. - - Tab width - =========== - The tab width shall be 4 spaces. - - \ No newline at end of file From 796289754905d53d1f4d4260e0e361070955bdd6 Mon Sep 17 00:00:00 2001 From: Andy Maloney Date: Thu, 21 May 2015 09:00:34 -0400 Subject: [PATCH 47/62] Change to what seems to be agreed upon (in line with PR #566) --- CodeConventions.md | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/CodeConventions.md b/CodeConventions.md index 3f1885819..e80e04ec4 100644 --- a/CodeConventions.md +++ b/CodeConventions.md @@ -7,25 +7,6 @@ If you want to participate as a developer in the **Open Asset Import Library** p Spacing == -* No spaces between parentheses and arguments - i.e. ```foo(bar)```, not ```foo( bar )``` - -Tabs --- - -The tab width shall be 4 spaces. Use spaces instead of tabs. - -Class/Struct Initialization -== -Constructors shall use initializer lists as follows: -```cpp -SomeClass() - : mExists(false) - , mCounter() - , mPtr() -{} -``` - -* Initializations are one-per-line -* Commas go at the beginning of the line rather than the end -* The order of the list must match the order of declaration in the class -* Any member with a default value should leave out the optional *NULL* or *0* - e.g. ```foo()```, not ```foo(NULL)``` +* Use UNIX-style line endings (LF) +* Remove any trailing whitespace +* Expand tabs to 4 spaces From 26b3328f3b8e1a96b27ada67519824afdd6336d0 Mon Sep 17 00:00:00 2001 From: wise86Android Date: Sat, 23 May 2015 11:03:56 +0200 Subject: [PATCH 48/62] fix xml syntax + more deap test --- code/ColladaExporter.cpp | 14 +++---------- test/unit/utColladaExportLight.cpp | 33 ++++++++++++++++++++---------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/code/ColladaExporter.cpp b/code/ColladaExporter.cpp index 0f9bdc868..bcd4518e4 100644 --- a/code/ColladaExporter.cpp +++ b/code/ColladaExporter.cpp @@ -430,15 +430,7 @@ void ColladaExporter::WriteDirectionalLight(const aiLight *const light){ } void ColladaExporter::WriteSpotLight(const aiLight *const light){ - /* - 1 1 1 - 1 - 0 - 0.001599967 - 45 - 0.15 - - */ + const aiColor3D &color= light->mColorDiffuse; mOutput << startstr << "" << endstr; PushTag(); @@ -1056,14 +1048,14 @@ void ColladaExporter::WriteNode(aiNode* pNode) //check if it is a camera node for(size_t i=0; imNumCameras; i++){ if(mScene->mCameras[i]->mName == pNode->mName){ - mOutput << startstr <<"" << endstr; + mOutput << startstr <<"" << endstr; break; } } //check if it is a light node for(size_t i=0; imNumLights; i++){ if(mScene->mLights[i]->mName == pNode->mName){ - mOutput << startstr <<"" << endstr; + mOutput << startstr <<"" << endstr; break; } } diff --git a/test/unit/utColladaExportLight.cpp b/test/unit/utColladaExportLight.cpp index 044770be3..510be7ee2 100644 --- a/test/unit/utColladaExportLight.cpp +++ b/test/unit/utColladaExportLight.cpp @@ -57,22 +57,33 @@ TEST_F(ColladaExportLight, testExportLight) EXPECT_TRUE(imported->HasLights()); EXPECT_EQ(pTest->mNumLights,imported->mNumLights); -/* - for(size_t i=0; i< pTest->mNumCameras;i++){ - const aiCamera *orig = pTest->mCameras[i]; - const aiCamera *read = imported->mCameras[i]; + for(size_t i=0; i< pTest->mNumLights;i++){ + + const aiLight *orig = pTest->mLights[i]; + const aiLight *read = imported->mLights[i]; EXPECT_TRUE(orig->mName==read->mName); - EXPECT_FLOAT_EQ(orig->mHorizontalFOV,read->mHorizontalFOV); - EXPECT_FLOAT_EQ(orig->mClipPlaneNear,read->mClipPlaneNear); - EXPECT_FLOAT_EQ(orig->mClipPlaneFar,read->mClipPlaneFar); + EXPECT_EQ(orig->mType,read->mType); + EXPECT_FLOAT_EQ(orig->mAttenuationConstant,read->mAttenuationConstant); + EXPECT_FLOAT_EQ(orig->mAttenuationLinear,read->mAttenuationLinear); + EXPECT_FLOAT_EQ(orig->mAttenuationQuadratic,read->mAttenuationQuadratic); - EXPECT_FLOAT_EQ(orig->mPosition.x,read->mPosition.x); - EXPECT_FLOAT_EQ(orig->mPosition.y,read->mPosition.y); - EXPECT_FLOAT_EQ(orig->mPosition.z,read->mPosition.z); + EXPECT_FLOAT_EQ(orig->mColorAmbient.r,read->mColorAmbient.r); + EXPECT_FLOAT_EQ(orig->mColorAmbient.g,read->mColorAmbient.g); + EXPECT_FLOAT_EQ(orig->mColorAmbient.b,read->mColorAmbient.b); + + EXPECT_FLOAT_EQ(orig->mColorDiffuse.r,read->mColorDiffuse.r); + EXPECT_FLOAT_EQ(orig->mColorDiffuse.g,read->mColorDiffuse.g); + EXPECT_FLOAT_EQ(orig->mColorDiffuse.b,read->mColorDiffuse.b); + + EXPECT_FLOAT_EQ(orig->mColorSpecular.r,read->mColorSpecular.r); + EXPECT_FLOAT_EQ(orig->mColorSpecular.g,read->mColorSpecular.g); + EXPECT_FLOAT_EQ(orig->mColorSpecular.b,read->mColorSpecular.b); + + EXPECT_NEAR(orig->mAngleInnerCone,read->mAngleInnerCone,0.001); + EXPECT_NEAR(orig->mAngleOuterCone,read->mAngleOuterCone,0.001); } -*/ } From ef306d5666b5f8a362370b23fa3fe4b3345dd31a Mon Sep 17 00:00:00 2001 From: Jared Duke Date: Sat, 23 May 2015 13:46:35 -0700 Subject: [PATCH 49/62] Fix issue with CMAKE_CXX_FLAGS initialization Append the necessary flags to CMAKE_CXX_FLAGS, rather than replacing the previous values. It's critical that that flags are preserved to ensure proper and consistent compilation. --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9829cd306..50159bb2e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,9 +62,9 @@ if( CMAKE_COMPILER_IS_MINGW ) endif() if((CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) AND NOT CMAKE_COMPILER_IS_MINGW) - set(CMAKE_CXX_FLAGS "-fPIC") # this is a very important switch and some libraries seem now to have it.... + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") # this is a very important switch and some libraries seem now to have it.... # hide all not-exported symbols - set(CMAKE_CXX_FLAGS "-fvisibility=hidden -Wall" ) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -Wall" ) elseif(MSVC) # enable multi-core compilation with MSVC add_definitions(/MP) From 4cbce374b684c751530ac9a0dbcfcc69c6252677 Mon Sep 17 00:00:00 2001 From: Andy Maloney Date: Sun, 24 May 2015 11:48:15 -0400 Subject: [PATCH 50/62] Code Cleanups - add initializers to classes - fix %i/%u for unsigned ints - remove unused vars - pass by reference --- code/ColladaExporter.cpp | 4 ---- code/ColladaLoader.cpp | 2 +- code/ColladaLoader.h | 2 +- code/ComputeUVMappingProcess.cpp | 2 +- code/FixNormalsStep.cpp | 2 +- code/ImproveCacheLocality.cpp | 6 +++--- code/RemoveVCProcess.cpp | 4 +++- code/SortByPTypeProcess.cpp | 10 +++++----- code/TextureTransform.cpp | 3 ++- code/ValidateDataStructure.cpp | 6 +++--- include/assimp/Exporter.hpp | 9 ++++++++- 11 files changed, 28 insertions(+), 22 deletions(-) diff --git a/code/ColladaExporter.cpp b/code/ColladaExporter.cpp index bcd4518e4..6c87c3de8 100644 --- a/code/ColladaExporter.cpp +++ b/code/ColladaExporter.cpp @@ -167,8 +167,6 @@ void ColladaExporter::WriteHeader() std::time_t date = std::time(NULL); std::strftime(date_str, date_nb_chars, "%Y-%m-%dT%H:%M:%S", std::localtime(&date)); - std::string scene_name = mScene->mRootNode->mName.C_Str(); - aiVector3D scaling; aiQuaternion rotation; aiVector3D position; @@ -622,8 +620,6 @@ void ColladaExporter::WriteMaterials() { materials.resize( mScene->mNumMaterials); - std::set material_names; - /// collect all materials from the scene size_t numTextures = 0; for( size_t a = 0; a < mScene->mNumMaterials; ++a ) diff --git a/code/ColladaLoader.cpp b/code/ColladaLoader.cpp index 833e428ac..3a981b538 100644 --- a/code/ColladaLoader.cpp +++ b/code/ColladaLoader.cpp @@ -919,7 +919,7 @@ void ColladaLoader::StoreAnimations( aiScene* pScene, const ColladaParser& pPars // ------------------------------------------------------------------------------------------------ // Constructs the animations for the given source anim -void ColladaLoader::StoreAnimations( aiScene* pScene, const ColladaParser& pParser, const Collada::Animation* pSrcAnim, const std::string pPrefix) +void ColladaLoader::StoreAnimations( aiScene* pScene, const ColladaParser& pParser, const Collada::Animation* pSrcAnim, const std::string &pPrefix) { std::string animName = pPrefix.empty() ? pSrcAnim->mName : pPrefix + "_" + pSrcAnim->mName; diff --git a/code/ColladaLoader.h b/code/ColladaLoader.h index 4ff0a667d..5e1098727 100644 --- a/code/ColladaLoader.h +++ b/code/ColladaLoader.h @@ -155,7 +155,7 @@ protected: * @param pSrcAnim the source animation to process * @param pPrefix Prefix to the name in case of nested animations */ - void StoreAnimations( aiScene* pScene, const ColladaParser& pParser, const Collada::Animation* pSrcAnim, const std::string pPrefix); + void StoreAnimations( aiScene* pScene, const ColladaParser& pParser, const Collada::Animation* pSrcAnim, const std::string& pPrefix); /** Constructs the animation for the given source anim */ void CreateAnimation( aiScene* pScene, const ColladaParser& pParser, const Collada::Animation* pSrcAnim, const std::string& pName); diff --git a/code/ComputeUVMappingProcess.cpp b/code/ComputeUVMappingProcess.cpp index 172268b66..3ed8f9a9e 100644 --- a/code/ComputeUVMappingProcess.cpp +++ b/code/ComputeUVMappingProcess.cpp @@ -412,7 +412,7 @@ void ComputeUVMappingProcess::Execute( aiScene* pScene) { if (!DefaultLogger::isNullLogger()) { - sprintf(buffer, "Found non-UV mapped texture (%s,%i). Mapping type: %s", + sprintf(buffer, "Found non-UV mapped texture (%s,%u). Mapping type: %s", TextureTypeToString((aiTextureType)prop->mSemantic),prop->mIndex, MappingTypeToString(mapping)); diff --git a/code/FixNormalsStep.cpp b/code/FixNormalsStep.cpp index d3d53ac15..608a145e0 100644 --- a/code/FixNormalsStep.cpp +++ b/code/FixNormalsStep.cpp @@ -158,7 +158,7 @@ bool FixInfacingNormalsProcess::ProcessMesh( aiMesh* pcMesh, unsigned int index) if (!DefaultLogger::isNullLogger()) { char buffer[128]; // should be sufficiently large - ::sprintf(buffer,"Mesh %i: Normals are facing inwards (or the mesh is planar)",index); + ::sprintf(buffer,"Mesh %u: Normals are facing inwards (or the mesh is planar)",index); DefaultLogger::get()->info(buffer); } diff --git a/code/ImproveCacheLocality.cpp b/code/ImproveCacheLocality.cpp index 81617cc49..0f2ecc13a 100644 --- a/code/ImproveCacheLocality.cpp +++ b/code/ImproveCacheLocality.cpp @@ -110,7 +110,7 @@ void ImproveCacheLocalityProcess::Execute( aiScene* pScene) } if (!DefaultLogger::isNullLogger()) { char szBuff[128]; // should be sufficiently large in every case - ::sprintf(szBuff,"Cache relevant are %i meshes (%i faces). Average output ACMR is %f", + ::sprintf(szBuff,"Cache relevant are %u meshes (%u faces). Average output ACMR is %f", numm,numf,out/numf); DefaultLogger::get()->info(szBuff); @@ -182,7 +182,7 @@ float ImproveCacheLocalityProcess::ProcessMesh( aiMesh* pMesh, unsigned int mesh // the JoinIdenticalVertices process has not been executed on this // mesh, otherwise this value would normally be at least minimally // smaller than 3.0 ... - sprintf(szBuff,"Mesh %i: Not suitable for vcache optimization",meshNum); + sprintf(szBuff,"Mesh %u: Not suitable for vcache optimization",meshNum); DefaultLogger::get()->warn(szBuff); return 0.f; } @@ -361,7 +361,7 @@ float ImproveCacheLocalityProcess::ProcessMesh( aiMesh* pMesh, unsigned int mesh if ( DefaultLogger::get()->getLogSeverity() == Logger::VERBOSE) { char szBuff[128]; // should be sufficiently large in every case - ::sprintf(szBuff,"Mesh %i | ACMR in: %f out: %f | ~%.1f%%",meshNum,fACMR,fACMR2, + ::sprintf(szBuff,"Mesh %u | ACMR in: %f out: %f | ~%.1f%%",meshNum,fACMR,fACMR2, ((fACMR - fACMR2) / fACMR) * 100.f); DefaultLogger::get()->debug(szBuff); } diff --git a/code/RemoveVCProcess.cpp b/code/RemoveVCProcess.cpp index 2b551bacf..9fe4e8de2 100644 --- a/code/RemoveVCProcess.cpp +++ b/code/RemoveVCProcess.cpp @@ -54,7 +54,9 @@ using namespace Assimp; // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer -RemoveVCProcess::RemoveVCProcess() +RemoveVCProcess::RemoveVCProcess() : + configDeleteFlags() + , mScene() {} // ------------------------------------------------------------------------------------------------ diff --git a/code/SortByPTypeProcess.cpp b/code/SortByPTypeProcess.cpp index 096b3fcf1..34bb830fd 100644 --- a/code/SortByPTypeProcess.cpp +++ b/code/SortByPTypeProcess.cpp @@ -397,11 +397,11 @@ void SortByPTypeProcess::Execute( aiScene* pScene) if (!DefaultLogger::isNullLogger()) { char buffer[1024]; - ::sprintf(buffer,"Points: %i%s, Lines: %i%s, Triangles: %i%s, Polygons: %i%s (Meshes, X = removed)", - aiNumMeshesPerPType[0], (configRemoveMeshes & aiPrimitiveType_POINT ? "X" : ""), - aiNumMeshesPerPType[1], (configRemoveMeshes & aiPrimitiveType_LINE ? "X" : ""), - aiNumMeshesPerPType[2], (configRemoveMeshes & aiPrimitiveType_TRIANGLE ? "X" : ""), - aiNumMeshesPerPType[3], (configRemoveMeshes & aiPrimitiveType_POLYGON ? "X" : "")); + ::sprintf(buffer,"Points: %u%s, Lines: %u%s, Triangles: %u%s, Polygons: %u%s (Meshes, X = removed)", + aiNumMeshesPerPType[0], ((configRemoveMeshes & aiPrimitiveType_POINT) ? "X" : ""), + aiNumMeshesPerPType[1], ((configRemoveMeshes & aiPrimitiveType_LINE) ? "X" : ""), + aiNumMeshesPerPType[2], ((configRemoveMeshes & aiPrimitiveType_TRIANGLE) ? "X" : ""), + aiNumMeshesPerPType[3], ((configRemoveMeshes & aiPrimitiveType_POLYGON) ? "X" : "")); DefaultLogger::get()->info(buffer); DefaultLogger::get()->debug("SortByPTypeProcess finished"); } diff --git a/code/TextureTransform.cpp b/code/TextureTransform.cpp index 98e1becb9..29257404d 100644 --- a/code/TextureTransform.cpp +++ b/code/TextureTransform.cpp @@ -54,7 +54,8 @@ using namespace Assimp; // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer -TextureTransformStep::TextureTransformStep() +TextureTransformStep::TextureTransformStep() : + configFlags() { // nothing to do here } diff --git a/code/ValidateDataStructure.cpp b/code/ValidateDataStructure.cpp index 98d16be5e..2a2e1a0d6 100644 --- a/code/ValidateDataStructure.cpp +++ b/code/ValidateDataStructure.cpp @@ -60,7 +60,8 @@ using namespace Assimp; // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer -ValidateDSProcess::ValidateDSProcess() +ValidateDSProcess::ValidateDSProcess() : + mScene() {} // ------------------------------------------------------------------------------------------------ @@ -690,8 +691,7 @@ void ValidateDSProcess::Validate( const aiMaterial* pMaterial) if (aiPTI_String == prop->mType) { // FIX: strings are now stored in a less expensive way, but we can't use the // validation routine for 'normal' aiStrings - uint32_t len; - if (prop->mDataLength < 5 || prop->mDataLength < 4 + (len=*reinterpret_cast(prop->mData)) + 1) { + if (prop->mDataLength < 5 || prop->mDataLength < 4 + (*reinterpret_cast(prop->mData)) + 1) { ReportError("aiMaterial::mProperties[%i].mDataLength is " "too small to contain a string (%i, needed: %i)", i,prop->mDataLength,sizeof(aiString)); diff --git a/include/assimp/Exporter.hpp b/include/assimp/Exporter.hpp index fb890129e..4e5a1131a 100644 --- a/include/assimp/Exporter.hpp +++ b/include/assimp/Exporter.hpp @@ -109,7 +109,14 @@ public: mEnforcePP = pEnforcePP; } - ExportFormatEntry() : mExportFunction(), mEnforcePP() {} + ExportFormatEntry() : + mExportFunction() + , mEnforcePP() + { + mDescription.id = NULL; + mDescription.description = NULL; + mDescription.fileExtension = NULL; + } }; From de6f0f2a7d810c8e4cae8e28d77b2a9c312f27c9 Mon Sep 17 00:00:00 2001 From: Jaime Machado Neto Date: Tue, 26 May 2015 08:40:43 -0300 Subject: [PATCH 51/62] Creating the functionality to list all Importer descriptions and the number of importers available. --- code/Assimp.cpp | 15 +++++++++++++++ include/assimp/cimport.h | 14 ++++++++++++++ include/assimp/importerdesc.h | 2 +- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/code/Assimp.cpp b/code/Assimp.cpp index f8df73415..ec5fd7ab7 100644 --- a/code/Assimp.cpp +++ b/code/Assimp.cpp @@ -423,6 +423,21 @@ const char* aiGetErrorString() return gLastErrorString.c_str(); } +// ----------------------------------------------------------------------------------------------- +// Return the description of a importer given its index +const aiImporterDesc* aiGetImportFormatDescription( size_t pIndex) +{ + return Importer().GetImporterInfo(pIndex); +} + +// ----------------------------------------------------------------------------------------------- +// Return the number of importers +size_t aiGetImportFormatCount(void) +{ + return Importer().GetImporterCount(); +} + + // ------------------------------------------------------------------------------------------------ // Returns the error text of the last failed import process. aiBool aiIsExtensionSupported(const char* szExtension) diff --git a/include/assimp/cimport.h b/include/assimp/cimport.h index 6e85882d1..3dc95c00b 100644 --- a/include/assimp/cimport.h +++ b/include/assimp/cimport.h @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifndef AI_ASSIMP_H_INC #define AI_ASSIMP_H_INC #include "types.h" +#include #ifdef __cplusplus extern "C" { @@ -539,7 +540,20 @@ ASSIMP_API void aiIdentityMatrix3( ASSIMP_API void aiIdentityMatrix4( C_STRUCT aiMatrix4x4* mat); +// -------------------------------------------------------------------------------- +/** Returns the number of import file formats available in the current Assimp build. + * Use aiGetImportFormatDescription() to retrieve infos of a specific import format. + */ +ASSIMP_API size_t aiGetImportFormatCount(void); +// -------------------------------------------------------------------------------- +/** Returns a description of the nth import file format. Use #aiGetImportFormatCount() + * to learn how many import formats are supported. + * @param pIndex Index of the import format to retrieve information for. Valid range is + * 0 to #aiGetImportFormatCount() + * @return A description of that specific import format. NULL if pIndex is out of range. + */ +ASSIMP_API const C_STRUCT aiImporterDesc* aiGetImportFormatDescription( size_t pIndex); #ifdef __cplusplus } #endif diff --git a/include/assimp/importerdesc.h b/include/assimp/importerdesc.h index e61112a17..a7bbb4da1 100644 --- a/include/assimp/importerdesc.h +++ b/include/assimp/importerdesc.h @@ -138,6 +138,6 @@ Will return a NULL-pointer if no assigned importer desc. was found for the given \param extension [in] The extension to look for \return A pointer showing to the ImporterDesc, \see aiImporterDesc. */ -ASSIMP_API C_STRUCT const aiImporterDesc* aiGetImporterDesc( const char *extension ); +ASSIMP_API const C_STRUCT aiImporterDesc* aiGetImporterDesc( const char *extension ); #endif From 5e1fc3944899af747d74a67a914f01fe2c5e74c9 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Fri, 29 May 2015 20:45:31 +0200 Subject: [PATCH 52/62] Add parsing of texture nodes of OpenGEX-format importer. --- code/OpenGEXImporter.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/code/OpenGEXImporter.cpp b/code/OpenGEXImporter.cpp index fde5e3d45..20da427fd 100644 --- a/code/OpenGEXImporter.cpp +++ b/code/OpenGEXImporter.cpp @@ -83,6 +83,7 @@ namespace Grammar { static const std::string DiffuseColorToken = "diffuse"; static const std::string SpecularColorToken = "specular"; static const std::string EmissionColorToken = "emission"; + static const std::string DiffuseTextureToken = "diffuse"; static const char *TextureType = "Texture"; @@ -808,7 +809,23 @@ void OpenGEXImporter::handleColorNode( ODDLParser::DDLNode *node, aiScene *pScen //------------------------------------------------------------------------------------------------ void OpenGEXImporter::handleTextureNode( ODDLParser::DDLNode *node, aiScene *pScene ) { + if( NULL == node ) { + return; + } + Property *prop = node->findPropertyByName( "attrib" ); + if( NULL != prop ) { + if( NULL != prop->m_value ) { + if( prop->m_value->getString() == Grammar::DiffuseTextureToken ) { + aiString tex; + Value *val( node->getValue() ); + if( NULL != val ) { + tex.Set( val->getString() ); + m_currentMaterial->AddProperty( &tex, AI_MATKEY_TEXTURE_DIFFUSE( 0 ) ); + } + } + } + } } //------------------------------------------------------------------------------------------------ From 6cc32a946b9a115baafb1f3ce1845e87a739e9e9 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Fri, 29 May 2015 20:50:09 +0200 Subject: [PATCH 53/62] Fix transformation parsing for OpenGEX-parser. --- code/OpenGEXImporter.cpp | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/code/OpenGEXImporter.cpp b/code/OpenGEXImporter.cpp index c68bfe2b7..cce58d3cd 100644 --- a/code/OpenGEXImporter.cpp +++ b/code/OpenGEXImporter.cpp @@ -497,24 +497,25 @@ static void setMatrix( aiNode *node, DataArrayList *transformData ) { } node->mTransformation.a1 = m[ 0 ]; - node->mTransformation.a2 = m[ 1 ]; - node->mTransformation.a3 = m[ 2 ]; - node->mTransformation.a4 = m[ 3 ]; + node->mTransformation.a2 = m[ 4 ]; + node->mTransformation.a3 = m[ 8 ]; + node->mTransformation.a4 = m[ 12 ]; - node->mTransformation.b1 = m[ 4 ]; + node->mTransformation.b1 = m[ 1 ]; node->mTransformation.b2 = m[ 5 ]; - node->mTransformation.b3 = m[ 6 ]; - node->mTransformation.b4 = m[ 7 ]; + node->mTransformation.b3 = m[ 9 ]; + node->mTransformation.b4 = m[ 13 ]; - node->mTransformation.c1 = m[ 8 ]; - node->mTransformation.c2 = m[ 9 ]; + node->mTransformation.c1 = m[ 2 ]; + node->mTransformation.c2 = m[ 6 ]; node->mTransformation.c3 = m[ 10 ]; - node->mTransformation.c4 = m[ 11 ]; + node->mTransformation.c4 = m[ 14 ]; - node->mTransformation.d1 = m[ 12 ]; - node->mTransformation.d2 = m[ 13 ]; - node->mTransformation.d3 = m[ 14 ]; + node->mTransformation.d1 = m[ 3 ]; + node->mTransformation.d2 = m[ 7 ]; + node->mTransformation.d3 = m[ 11 ]; node->mTransformation.d4 = m[ 15 ]; + } //------------------------------------------------------------------------------------------------ From ab95b1a3c12ef3299e407ebf8e98e91dcbd4b3a2 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Sat, 30 May 2015 18:13:08 +0200 Subject: [PATCH 54/62] Replace tabs with whitespaces in CMake-file. --- CMakeLists.txt | 74 +++++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 50159bb2e..eb021dc57 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ PROJECT( Assimp ) option(BUILD_SHARED_LIBS "Build package with shared libraries." ON) if(NOT BUILD_SHARED_LIBS) #set(CMAKE_EXE_LINKER_FLAGS "-static") - set(LINK_SEARCH_START_STATIC TRUE) + set(LINK_SEARCH_START_STATIC TRUE) endif(NOT BUILD_SHARED_LIBS) # Define here the needed parameters @@ -191,46 +191,46 @@ MARK_AS_ADVANCED ( ASSIMP_BUILD_ARCHITECTURE ASSIMP_BUILD_COMPILER ) SET ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER OFF CACHE BOOL - "Build the C4D importer, which relies on the non-free Melange SDK." + "Build the C4D importer, which relies on the non-free Melange SDK." ) IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) - IF ( MSVC ) - SET(C4D_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Melange/_melange/includes") - - # pick the correct prebuilt library - IF(MSVC11) - SET(C4D_LIB_POSTFIX "_2012md") - ELSEIF(MSVC10) - SET(C4D_LIB_POSTFIX "_2010md") - ELSEIF(MSVC90) - SET(C4D_LIB_POSTFIX "_2008md") - ELSE() - MESSAGE( FATAL_ERROR - "C4D is currently only supported with MSVC 9, 10, 11" - ) - ENDIF() - - IF(CMAKE_CL_64) - SET(C4D_LIB_ARCH_POSTFIX "_x64") - ELSE() - SET(C4D_LIB_ARCH_POSTFIX "") - ENDIF() - - SET(C4D_LIB_BASE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Melange/_melange/lib/WIN") - - SET(C4D_DEBUG_LIBRARY "${C4D_LIB_BASE_PATH}/debug/_melange_lib${C4D_LIB_ARCH_POSTFIX}${C4D_LIB_POSTFIX}.lib") - SET(C4D_RELEASE_LIBRARY "${C4D_LIB_BASE_PATH}/release/_melange_lib${C4D_LIB_ARCH_POSTFIX}${C4D_LIB_POSTFIX}.lib") - - # winsock and winmm are necessary dependencies of melange (this is undocumented, but true.) - SET(C4D_EXTRA_LIBRARIES WSock32.lib Winmm.lib) - ELSE () - MESSAGE( FATAL_ERROR - "C4D is currently only available on Windows with melange SDK installed in contrib/Melange" - ) - ENDIF ( MSVC ) + IF ( MSVC ) + SET(C4D_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Melange/_melange/includes") + + # pick the correct prebuilt library + IF(MSVC11) + SET(C4D_LIB_POSTFIX "_2012md") + ELSEIF(MSVC10) + SET(C4D_LIB_POSTFIX "_2010md") + ELSEIF(MSVC90) + SET(C4D_LIB_POSTFIX "_2008md") + ELSE() + MESSAGE( FATAL_ERROR + "C4D is currently only supported with MSVC 9, 10, 11" + ) + ENDIF() + + IF(CMAKE_CL_64) + SET(C4D_LIB_ARCH_POSTFIX "_x64") + ELSE() + SET(C4D_LIB_ARCH_POSTFIX "") + ENDIF() + + SET(C4D_LIB_BASE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Melange/_melange/lib/WIN") + + SET(C4D_DEBUG_LIBRARY "${C4D_LIB_BASE_PATH}/debug/_melange_lib${C4D_LIB_ARCH_POSTFIX}${C4D_LIB_POSTFIX}.lib") + SET(C4D_RELEASE_LIBRARY "${C4D_LIB_BASE_PATH}/release/_melange_lib${C4D_LIB_ARCH_POSTFIX}${C4D_LIB_POSTFIX}.lib") + + # winsock and winmm are necessary dependencies of melange (this is undocumented, but true.) + SET(C4D_EXTRA_LIBRARIES WSock32.lib Winmm.lib) + ELSE () + MESSAGE( FATAL_ERROR + "C4D is currently only available on Windows with melange SDK installed in contrib/Melange" + ) + ENDIF ( MSVC ) else (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) - ADD_DEFINITIONS( -DASSIMP_BUILD_NO_C4D_IMPORTER ) + ADD_DEFINITIONS( -DASSIMP_BUILD_NO_C4D_IMPORTER ) ENDIF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) From 6ddb67b321903d1af690a7268de194a176ef31bc Mon Sep 17 00:00:00 2001 From: Peter LaValle Date: Sat, 30 May 2015 23:40:17 +0100 Subject: [PATCH 55/62] corrected misinformation in the documentation > corrected note saying that the header was 500 bytes long (512 bytes are written and the number 512 is given elsewhere) > altered confusing language about how long the chunks are ("length of chunk" implies the number includes the chunk-header. chunk-data-length less so, and reflects the fact that the number written doesn't include the chunk-header) > removed mistake about how texture coordinates are encoded (the last release, and the current head both write texture coordinates as 3 float components regardless of what they actually are) --- code/assbin_chunks.h | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/code/assbin_chunks.h b/code/assbin_chunks.h index 1c3255fbe..7612601c5 100644 --- a/code/assbin_chunks.h +++ b/code/assbin_chunks.h @@ -47,7 +47,7 @@ in <root>/tools/assimp_cmd/WriteDumb.cpp (yes, the 'b' is no typo ------------------------------------------------------------------------------- ---------------------- -| Header (500 bytes) | +| Header (512 bytes) | ---------------------- | Variable chunks | ---------------------- @@ -100,11 +100,12 @@ byte[64] Reserved for future use integer Magic chunk ID (ASSBIN_CHUNK_XXX) integer Chunk data length, in bytes (unknown chunks are possible, a good reader skips over them) + (chunk-data-length does not include the first two integers) -byte[n] length-of-chunk bytes of data, depending on the chunk type +byte[n] chunk-data-length bytes of data, depending on the chunk type Chunks can contain nested chunks. Nested chunks are ALWAYS at the end of the chunk, -their size is included in length-of-chunk. +their size is included in chunk-data-length. The chunk layout for all ASSIMP data structures is derived from their C declarations. The general 'rule' to get from Assimp headers to the serialized layout is: @@ -133,14 +134,14 @@ The general 'rule' to get from Assimp headers to the serialized layout is: [number of used uv channels times] integer mNumUVComponents[n] - float mTextureCoords[n][mNumUVComponents[n]] + float mTextureCoords[n][3] -> more than AI_MAX_TEXCOORD_CHANNELS can be stored. This allows Assimp builds with different settings for AI_MAX_TEXCOORD_CHANNELS to exchange - data. Unlike the in-memory format, only the used components of the - UV coordinates are written to disk. If mNumUVComponents[0] is 1, the - corresponding mTextureCoords array consists of mNumTextureCoords*1 - single floats. + data. + -> the on-disk format always uses 3 floats to write UV coordinates. + If mNumUVComponents[0] is 1, the corresponding mTextureCoords array + consists of 3 floats. - The array member block of aiMesh is prefixed with an integer that specifies the kinds of vertex components actually present in the mesh. This is a From db8b973aecd0d9aed600d4a4cdb4cc5f643f84fd Mon Sep 17 00:00:00 2001 From: Peter LaValle Date: Sun, 31 May 2015 11:52:04 +0100 Subject: [PATCH 56/62] wrapped the CRT warning macro I already have these in an outer-script --- tools/assimp_cmd/Main.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/assimp_cmd/Main.h b/tools/assimp_cmd/Main.h index 01bd74530..96b0684c3 100644 --- a/tools/assimp_cmd/Main.h +++ b/tools/assimp_cmd/Main.h @@ -46,7 +46,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifndef AICMD_MAIN_INCLUDED #define AICMD_MAIN_INCLUDED +#ifndef _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS +#endif #include #include @@ -203,4 +205,4 @@ int Assimp_TestBatchLoad ( unsigned int num); -#endif // !! AICMD_MAIN_INCLUDED \ No newline at end of file +#endif // !! AICMD_MAIN_INCLUDED From a00101cc021c43827ccdf24375d602c1fe10f970 Mon Sep 17 00:00:00 2001 From: Peter LaValle Date: Sun, 31 May 2015 11:57:33 +0100 Subject: [PATCH 57/62] changes to allow embedding changes several usages of CMAKE_SOURCE_DIR to CMAKE_CURRENT_SOURCE_DIR which allow embedding the assimp build in a larger CMake project ... as an alternative to dependency-hell --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index eb021dc57..03073f644 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,7 @@ add_definitions( -DOPENDDL_NO_USE_CPP11 ) # Get the current working branch execute_process( COMMAND git rev-parse --abbrev-ref HEAD - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE ) @@ -31,7 +31,7 @@ execute_process( # Get the latest abbreviated commit hash of the working branch execute_process( COMMAND git log -1 --format=%h - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE GIT_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ) From 99e45b995b0469cf261bdfd83eb00717d1e4f5ba Mon Sep 17 00:00:00 2001 From: Peter LaValle Date: Sun, 31 May 2015 12:56:17 +0100 Subject: [PATCH 58/62] fixed warning --- contrib/openddlparser/code/Value.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/openddlparser/code/Value.cpp b/contrib/openddlparser/code/Value.cpp index f94ef081f..cbe28caab 100644 --- a/contrib/openddlparser/code/Value.cpp +++ b/contrib/openddlparser/code/Value.cpp @@ -46,7 +46,7 @@ void Value::setBool( bool value ) { bool Value::getBool() { assert( ddl_bool == m_type ); - return ( bool ) ( *m_data ); + return ( *m_data ) ? true : false; } void Value::setInt8( int8 value ) { From 69b9bfec51fdf9c885bb1a5485980fc9744fa185 Mon Sep 17 00:00:00 2001 From: Peter LaValle Date: Sun, 31 May 2015 13:14:16 +0100 Subject: [PATCH 59/62] skips tests on systems without git --- cmake-modules/AddGTest.cmake | 64 ++++++++++++++++++++---------------- test/CMakeLists.txt | 2 ++ 2 files changed, 38 insertions(+), 28 deletions(-) diff --git a/cmake-modules/AddGTest.cmake b/cmake-modules/AddGTest.cmake index 5257148c9..8dd77415d 100644 --- a/cmake-modules/AddGTest.cmake +++ b/cmake-modules/AddGTest.cmake @@ -30,35 +30,43 @@ endif() set(GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/gtest") -ExternalProject_Add(gtest - GIT_REPOSITORY https://chromium.googlesource.com/external/googletest - TIMEOUT 10 - PREFIX "${GTEST_PREFIX}" - CMAKE_ARGS "${GTEST_CMAKE_ARGS}" - LOG_DOWNLOAD ON - LOG_CONFIGURE ON - LOG_BUILD ON - # Disable install - INSTALL_COMMAND "" -) +# try to find git - if found, setup gtest +find_package(Git) +if(NOT GIT_FOUND) + set(AddGTest_FOUND false CACHE BOOL "Was gtest setup correctly?") +else(NOT GIT_FOUND) + set(AddGTest_FOUND true CACHE BOOL "Was gtest setup correctly?") + + ExternalProject_Add(gtest + GIT_REPOSITORY https://chromium.googlesource.com/external/googletest + TIMEOUT 10 + PREFIX "${GTEST_PREFIX}" + CMAKE_ARGS "${GTEST_CMAKE_ARGS}" + LOG_DOWNLOAD ON + LOG_CONFIGURE ON + LOG_BUILD ON + # Disable install + INSTALL_COMMAND "" + ) -set(LIB_PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}") -set(LIB_SUFFIX "${CMAKE_STATIC_LIBRARY_SUFFIX}") -set(GTEST_LOCATION "${GTEST_PREFIX}/src/gtest-build") -set(GTEST_DEBUG_LIBRARIES - "${GTEST_LOCATION}/${DEBUG_LIB_DIR}/${LIB_PREFIX}gtest${LIB_SUFFIX}" - "${CMAKE_THREAD_LIBS_INIT}") -SET(GTEST_RELEASE_LIBRARIES - "${GTEST_LOCATION}/${RELEASE_LIB_DIR}/${LIB_PREFIX}gtest${LIB_SUFFIX}" - "${CMAKE_THREAD_LIBS_INIT}") + set(LIB_PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}") + set(LIB_SUFFIX "${CMAKE_STATIC_LIBRARY_SUFFIX}") + set(GTEST_LOCATION "${GTEST_PREFIX}/src/gtest-build") + set(GTEST_DEBUG_LIBRARIES + "${GTEST_LOCATION}/${DEBUG_LIB_DIR}/${LIB_PREFIX}gtest${LIB_SUFFIX}" + "${CMAKE_THREAD_LIBS_INIT}") + SET(GTEST_RELEASE_LIBRARIES + "${GTEST_LOCATION}/${RELEASE_LIB_DIR}/${LIB_PREFIX}gtest${LIB_SUFFIX}" + "${CMAKE_THREAD_LIBS_INIT}") -if(MSVC_VERSION EQUAL 1700) - add_definitions(-D_VARIADIC_MAX=10) -endif() + if(MSVC_VERSION EQUAL 1700) + add_definitions(-D_VARIADIC_MAX=10) + endif() -ExternalProject_Get_Property(gtest source_dir) -include_directories(${source_dir}/include) -include_directories(${source_dir}/gtest/include) + ExternalProject_Get_Property(gtest source_dir) + include_directories(${source_dir}/include) + include_directories(${source_dir}/gtest/include) -ExternalProject_Get_Property(gtest binary_dir) -link_directories(${binary_dir}) + ExternalProject_Get_Property(gtest binary_dir) + link_directories(${binary_dir}) +endif(NOT GIT_FOUND) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 287f51698..967dfd313 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -46,6 +46,7 @@ SET( TEST_SRCS SOURCE_GROUP( tests FILES ${TEST_SRCS} ) +if(AddGTest_FOUND) add_executable( unit unit/CCompilerTest.c unit/Main.cpp @@ -60,5 +61,6 @@ target_link_libraries( unit assimp debug ${GTEST_DEBUG_LIBRARIES} optimized ${GTEST_RELEASE_LIBRARIES} ) +endif(AddGTest_FOUND) add_subdirectory(headercheck) From 72b87ec526b1a71961d87e00a9453930074c98e5 Mon Sep 17 00:00:00 2001 From: Peter LaValle Date: Sun, 31 May 2015 13:35:10 +0100 Subject: [PATCH 60/62] removed x64 warnings --- code/BaseImporter.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/BaseImporter.cpp b/code/BaseImporter.cpp index 38de47432..6d073c5a7 100644 --- a/code/BaseImporter.cpp +++ b/code/BaseImporter.cpp @@ -155,11 +155,11 @@ void BaseImporter::GetExtensionList(std::set& extensions) boost::scoped_array _buffer (new char[searchBytes+1 /* for the '\0' */]); char* buffer = _buffer.get(); - const unsigned int read = pStream->Read(buffer,1,searchBytes); + const size_t read = pStream->Read(buffer,1,searchBytes); if (!read) return false; - for (unsigned int i = 0; i < read;++i) + for (size_t i = 0; i < read; ++i) buffer[i] = ::tolower(buffer[i]); // It is not a proper handling of unicode files here ... @@ -392,11 +392,11 @@ void BaseImporter::ConvertToUTF8(std::vector& data) // Convert to UTF8 data to ISO-8859-1 void BaseImporter::ConvertUTF8toISO8859_1(std::string& data) { - unsigned int size = data.size(); - unsigned int i = 0, j = 0; + size_t size = data.size(); + size_t i = 0, j = 0; while(i < size) { - if((unsigned char) data[i] < 0x80) { + if ((unsigned char) data[i] < (size_t) 0x80) { data[j] = data[i]; } else if(i < size - 1) { if((unsigned char) data[i] == 0xC2) { From 9c26f229a351600e7f3f764bb736eef9956b4883 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Sun, 31 May 2015 20:36:55 +0200 Subject: [PATCH 61/62] - OpenDDL-Parser: latest greatest. - Add support of OpenGEX-texture types. --- code/OpenGEXImporter.cpp | 33 +++++++- contrib/openddlparser/code/Value.cpp | 40 +++++++++- .../include/openddlparser/DDLNode.h | 76 ++++++++++++++++++- .../include/openddlparser/OpenDDLCommon.h | 74 +++++++++++++----- .../include/openddlparser/Value.h | 46 ++++++++++- 5 files changed, 239 insertions(+), 30 deletions(-) diff --git a/code/OpenGEXImporter.cpp b/code/OpenGEXImporter.cpp index cce58d3cd..7065bbe81 100644 --- a/code/OpenGEXImporter.cpp +++ b/code/OpenGEXImporter.cpp @@ -84,7 +84,14 @@ namespace Grammar { static const std::string DiffuseColorToken = "diffuse"; static const std::string SpecularColorToken = "specular"; static const std::string EmissionColorToken = "emission"; + static const std::string DiffuseTextureToken = "diffuse"; + static const std::string DiffuseSpecularTextureToken = "specular"; + static const std::string SpecularPowerTextureToken = "specular_power"; + static const std::string EmissionTextureToken = "emission"; + static const std::string OpacyTextureToken = "opacity"; + static const std::string TransparencyTextureToken = "transparency"; + static const std::string NormalTextureToken = "normal"; static const char *TextureType = "Texture"; @@ -816,12 +823,30 @@ void OpenGEXImporter::handleTextureNode( ODDLParser::DDLNode *node, aiScene *pSc Property *prop = node->findPropertyByName( "attrib" ); if( NULL != prop ) { if( NULL != prop->m_value ) { - if( prop->m_value->getString() == Grammar::DiffuseTextureToken ) { + Value *val( node->getValue() ); + if( NULL != val ) { aiString tex; - Value *val( node->getValue() ); - if( NULL != val ) { - tex.Set( val->getString() ); + tex.Set( val->getString() ); + if( prop->m_value->getString() == Grammar::DiffuseTextureToken ) { m_currentMaterial->AddProperty( &tex, AI_MATKEY_TEXTURE_DIFFUSE( 0 ) ); + } else if( prop->m_value->getString() == Grammar::SpecularPowerTextureToken ) { + m_currentMaterial->AddProperty( &tex, AI_MATKEY_TEXTURE_SPECULAR( 0 ) ); + + } else if( prop->m_value->getString() == Grammar::EmissionTextureToken ) { + m_currentMaterial->AddProperty( &tex, AI_MATKEY_TEXTURE_EMISSIVE( 0 ) ); + + } else if( prop->m_value->getString() == Grammar::OpacyTextureToken ) { + m_currentMaterial->AddProperty( &tex, AI_MATKEY_TEXTURE_OPACITY( 0 ) ); + + } else if( prop->m_value->getString() == Grammar::TransparencyTextureToken ) { + // ToDo! + // m_currentMaterial->AddProperty( &tex, AI_MATKEY_TEXTURE_DIFFUSE( 0 ) ); + } else if( prop->m_value->getString() == Grammar::NormalTextureToken ) { + m_currentMaterial->AddProperty( &tex, AI_MATKEY_TEXTURE_NORMALS( 0 ) ); + + } + else { + ai_assert( false ); } } } diff --git a/contrib/openddlparser/code/Value.cpp b/contrib/openddlparser/code/Value.cpp index f94ef081f..4106cea2c 100644 --- a/contrib/openddlparser/code/Value.cpp +++ b/contrib/openddlparser/code/Value.cpp @@ -27,8 +27,42 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. BEGIN_ODDLPARSER_NS -Value::Value() -: m_type( ddl_none ) +Value::Iterator::Iterator() +: m_start( ddl_nullptr ) +, m_current( ddl_nullptr ) { + // empty +} + +Value::Iterator::Iterator( Value *start ) +: m_start( start ) +, m_current( start ) { + // empty +} + +Value::Iterator::~Iterator() { + // empty +} + +bool Value::Iterator::hasNext() const { + if( ddl_nullptr == m_current ) { + return false; + } + return ( ddl_nullptr != m_current->getNext() ); +} + +Value *Value::Iterator::getNext() { + if( !hasNext() ) { + return ddl_nullptr; + } + + Value *v( m_current->getNext() ); + m_current = v; + + return v; +} + +Value::Value( ValueType type ) +: m_type( type ) , m_size( 0 ) , m_data( ddl_nullptr ) , m_next( ddl_nullptr ) { @@ -230,7 +264,7 @@ Value *ValueAllocator::allocPrimData( Value::ValueType type, size_t len ) { return ddl_nullptr; } - Value *data = new Value; + Value *data = new Value( type ); data->m_type = type; switch( type ) { case Value::ddl_bool: diff --git a/contrib/openddlparser/include/openddlparser/DDLNode.h b/contrib/openddlparser/include/openddlparser/DDLNode.h index cb69ab357..8fce95f53 100644 --- a/contrib/openddlparser/include/openddlparser/DDLNode.h +++ b/contrib/openddlparser/include/openddlparser/DDLNode.h @@ -37,32 +37,104 @@ struct Reference; struct Property; struct DataArrayList; +/// +/// @ingroup OpenDDLParser +/// @brief This class represents one single instance in the object tree of the parsed OpenDDL-file. +/// +/// A DDLNode represents one leaf in the OpenDDL-node tree. It can have one parent node and multiple children. +/// You can assign special properties to a single DDLNode instance. +/// A node instance can store values via a linked list. You can get the first value from the DDLNode. +/// A node can store data-array-lists and references as well. +/// class DLL_ODDLPARSER_EXPORT DDLNode { public: friend class OpenDDLParser; + /// @brief The child-node-list type. typedef std::vector DllNodeList; public: + /// @brief The class destructor. ~DDLNode(); + + /// @brief Will attach a parent node instance, an older one will be released. + /// @param parent [in] The parent node instance. void attachParent( DDLNode *parent ); + + /// @brief Will try to detach a parent node instance, if there is any. void detachParent(); + + /// @brief Returns the assigned parent node instance, will return ddl_nullptr id no parent is assigned. + /// @return The parent node instance. DDLNode *getParent() const; + + /// @brief Returns the child node list. + /// @return The list of child nodes. const DllNodeList &getChildNodeList() const; - void setType( const std::string &name ); + + /// Set the type of the DDLNode instance. + /// @param type [in] The type. + void setType( const std::string &type ); + + /// @brief Returns the type of the DDLNode instance. + /// @return The type of the DDLNode instance. const std::string &getType() const; + + /// Set the name of the DDLNode instance. + /// @param type [in] The name. void setName( const std::string &name ); + + /// @brief Returns the name of the DDLNode instance. + /// @return The name of the DDLNode instance. const std::string &getName() const; + + /// @brief Set a new property set. + /// @param prop [in] The first element of the property set. void setProperties( Property *prop ); + + /// @brief Returns the first element of the assigned property set. + /// @return The first property of the assigned property set. Property *getProperties() const; + + /// @brief Looks for a given property. + /// @param name [in] The name for the property to look for. + /// @return true, if a corresponding property is assigned to the node, false if not. bool hasProperty( const std::string &name ); + + /// @brief Search for a given property and returns it. Will return ddl_nullptr if no property was found. + /// @param name [in] The name for the property to look for. + /// @return The property or ddl_nullptr if no property was found. Property *findPropertyByName( const std::string &name ); + + /// @brief Set a new value set. + /// @param val [in] The first value instance of the value set. void setValue( Value *val ); + + /// @brief Returns the first element of the assigned value set. + /// @return The first property of the assigned value set. Value *getValue() const; - void setDataArrayList( DataArrayList *dtArrayList ); + + /// @brief Set a new DataArrayList. + /// @param val [in] The DataArrayList instance. + void setDataArrayList( DataArrayList *dtArrayList ); + + /// @brief Returns the DataArrayList. + /// @return The DataArrayList. DataArrayList *getDataArrayList() const; + + /// @brief Set a new Reference set. + /// @param val [in] The first value instance of the Reference set. void setReferences( Reference *refs ); + + /// @brief Returns the first element of the assigned Reference set. + /// @return The first property of the assigned Reference set. Reference *getReferences() const; + + /// @brief The creation method. + /// @param type [in] The DDLNode type. + /// @param name [in] The name for the new DDLNode instance. + /// @param parent [in] The parent node instance or ddl_nullptr if no parent node is there. + /// @return The new created node instance. static DDLNode *create( const std::string &type, const std::string &name, DDLNode *parent = ddl_nullptr ); private: diff --git a/contrib/openddlparser/include/openddlparser/OpenDDLCommon.h b/contrib/openddlparser/include/openddlparser/OpenDDLCommon.h index 6dea65b9c..e5fe77777 100644 --- a/contrib/openddlparser/include/openddlparser/OpenDDLCommon.h +++ b/contrib/openddlparser/include/openddlparser/OpenDDLCommon.h @@ -44,15 +44,19 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # define DLL_ODDLPARSER_EXPORT #endif // _WIN32 +// Namespace declarations, override this to avoid any conflicts #define BEGIN_ODDLPARSER_NS namespace ODDLParser { #define END_ODDLPARSER_NS } // namespace ODDLParser #define USE_ODDLPARSER_NS using namespace ODDLParser; BEGIN_ODDLPARSER_NS +// We will use C++11 optional #ifndef OPENDDL_NO_USE_CPP11 + // All C++11 constructs # define ddl_nullptr nullptr #else + // Fallback for older compilers # define ddl_nullptr NULL #endif // OPENDDL_NO_USE_CPP11 @@ -65,26 +69,31 @@ struct Reference; struct Property; struct DataArrayList; -typedef char int8; -typedef short int16; -typedef int int32; -typedef unsigned char uint8; -typedef unsigned short uint16; -typedef unsigned int uint32; - #ifdef _WIN32 -typedef __int64 int64; -typedef unsigned __int64 uint64; +typedef signed __int64 int64_impl; +typedef unsigned __int64 uint64_impl; #else -typedef int64_t int64; -typedef uint64_t uint64; +typedef int64_t int64_impl; +typedef uint64_t uint64_impl; #endif +// OpenDDL-specific data typedefs +typedef signed char int8; ///< Signed integer, 1 byte +typedef signed short int16; ///< Signed integer, 2 byte +typedef signed int int32; ///< Signed integer, 4 byte +typedef int64_impl int64; ///< Signed integer, 8 byte +typedef unsigned char uint8; ///< Unsigned integer, 1 byte +typedef unsigned short uint16; ///< Unsigned integer, 2 byte +typedef unsigned int uint32; ///< Unsigned integer, 4 byte +typedef uint64_impl uint64; ///< Unsigned integer, 8 byte + +/// @brief Description of the type of a name. enum NameType { - GlobalName, - LocalName + GlobalName, ///< Name is global. + LocalName ///< Name is local. }; +/// @brief Stores a text struct Text { size_t m_capacity; size_t m_len; @@ -124,8 +133,8 @@ struct Text { return false; } const int res( strncmp( m_buffer, name.c_str(), name.size() ) ); + return ( 0 == res ); - } bool operator == ( const Text &rhs ) const { @@ -133,7 +142,8 @@ struct Text { return false; } - const int res ( strncmp( m_buffer, rhs.m_buffer, m_len ) ); + const int res( strncmp( m_buffer, rhs.m_buffer, m_len ) ); + return ( 0 == res ); } @@ -142,6 +152,7 @@ private: Text &operator = ( const Text & ); }; +/// @brief Stores an OpenDDL-specific identifier type. struct Identifier { Text m_text; @@ -164,6 +175,7 @@ private: Identifier &operator = ( const Identifier & ); }; +/// @brief Stores an OpenDDL-specific name struct Name { NameType m_type; Identifier *m_id; @@ -179,6 +191,7 @@ private: Name &operator = ( const Name& ); }; +/// @brief Stores a bundle of references. struct Reference { size_t m_numRefs; Name **m_referencedName; @@ -199,11 +212,20 @@ struct Reference { } } + ~Reference() { + for( size_t i = 0; i < m_numRefs; i++ ) { + delete m_referencedName[ i ]; + } + m_numRefs = 0; + m_referencedName = ddl_nullptr; + } + private: Reference( const Reference & ); Reference &operator = ( const Reference & ); }; +/// @brief Stores a property list. struct Property { Identifier *m_key; Value *m_value; @@ -211,18 +233,26 @@ struct Property { Property *m_next; Property( Identifier *id ) - : m_key( id ) - , m_value( ddl_nullptr ) - , m_ref( ddl_nullptr ) - , m_next( ddl_nullptr ) { + : m_key( id ) + , m_value( ddl_nullptr ) + , m_ref( ddl_nullptr ) + , m_next( ddl_nullptr ) { // empty } + ~Property() { + m_key = ddl_nullptr; + m_value = ddl_nullptr; + m_ref = ddl_nullptr;; + m_next = ddl_nullptr;; + } + private: Property( const Property & ); Property &operator = ( const Property & ); }; +/// @brief Stores a data array list. struct DataArrayList { size_t m_numItems; Value *m_dataList; @@ -238,9 +268,9 @@ struct DataArrayList { private: DataArrayList( const DataArrayList & ); DataArrayList &operator = ( const DataArrayList & ); - }; +/// @brief Stores the context of a parsed OpenDDL declaration. struct Context { DDLNode *m_root; @@ -249,6 +279,10 @@ struct Context { // empty } + ~Context() { + m_root = ddl_nullptr; + } + private: Context( const Context & ); Context &operator = ( const Context & ); diff --git a/contrib/openddlparser/include/openddlparser/Value.h b/contrib/openddlparser/include/openddlparser/Value.h index 54ccf51ba..fc8cc1ee1 100644 --- a/contrib/openddlparser/include/openddlparser/Value.h +++ b/contrib/openddlparser/include/openddlparser/Value.h @@ -28,6 +28,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. BEGIN_ODDLPARSER_NS +struct ValueAllocator; + ///------------------------------------------------------------------------------------------------ /// @brief This class implements a value. /// @@ -36,7 +38,49 @@ BEGIN_ODDLPARSER_NS /// Values can be single items or lists of items. They are implemented as linked lists. ///------------------------------------------------------------------------------------------------ class DLL_ODDLPARSER_EXPORT Value { + friend struct ValueAllocator; + public: + /// @brief This class implements an iterator through a Value list. + /// + /// When getting a new value you need to know how to iterate through it. The Value::Iterator + /// will help you here: + /// @code + /// Value *val = node->getValue(); + /// Value::Iterator it( val ); + /// while( it.hasNext() ) { + /// Value v( it.getNext ); + /// } + /// @endcode + class DLL_ODDLPARSER_EXPORT Iterator { + public: + /// @brief The default class constructor. + Iterator(); + + /// @brief The class constructor with the start value. + /// @param start [in] The first value for iteration, + Iterator( Value *start ); + + /// @brief The class destructor. + ~Iterator(); + + /// @brief Will return true, if another value is in the list. + /// @return true if another value is there. + bool hasNext() const; + + /// @brief Returns the next item and moves the iterator to it. + /// @return The next value, is ddl_nullptr in case of being the last item. + Value *getNext(); + + private: + Value *m_start; + Value *m_current; + + private: + Iterator( const Iterator & ); + Iterator &operator = ( const Iterator & ); + }; + /// @brief This enum describes the data type stored in the value. enum ValueType { ddl_none = -1, ///< Nothing specified @@ -57,7 +101,7 @@ public: ddl_types_max }; - Value(); + Value( ValueType type ); ~Value(); void setBool( bool value ); bool getBool(); From b8c12fdc6f9ed32084e2439ec903b922bd295c65 Mon Sep 17 00:00:00 2001 From: rob100 Date: Fri, 5 Jun 2015 09:52:06 +0200 Subject: [PATCH 62/62] CodeQuality improvements Several small code improvements based on a cppcheck result --- code/3DSConverter.cpp | 2 +- code/ASEParser.cpp | 12 ++++++------ code/DeboneProcess.cpp | 2 +- code/DefaultLogger.cpp | 8 ++++---- code/IRRLoader.cpp | 2 +- code/LWOLoader.cpp | 2 +- code/LWSLoader.cpp | 2 +- code/LimitBoneWeightsProcess.cpp | 2 +- code/MD3Loader.cpp | 4 ++-- code/MD5Parser.cpp | 4 ++-- code/MDLLoader.cpp | 4 ++-- code/MS3DLoader.cpp | 2 +- code/NFFLoader.cpp | 2 +- code/ObjExporter.cpp | 2 +- code/ObjFileParser.h | 5 +++++ code/OgreImporter.h | 2 +- code/OgreMaterial.cpp | 2 +- code/OpenGEXImporter.cpp | 2 +- code/OptimizeGraph.cpp | 4 ++-- code/OptimizeMeshes.cpp | 2 +- code/PretransformVertices.cpp | 12 ++++++------ code/RemoveRedundantMaterials.cpp | 4 ++-- code/SMDLoader.cpp | 6 +++--- code/StepExporter.cpp | 2 +- code/UnrealLoader.cpp | 2 +- 25 files changed, 49 insertions(+), 44 deletions(-) diff --git a/code/3DSConverter.cpp b/code/3DSConverter.cpp index d5a83461c..00ea6deda 100644 --- a/code/3DSConverter.cpp +++ b/code/3DSConverter.cpp @@ -757,7 +757,7 @@ void Discreet3DSImporter::GenerateNodeGraph(aiScene* pcOut) pcNode->mNumMeshes = 1; // Build a name for the node - pcNode->mName.length = sprintf(pcNode->mName.data,"3DSMesh_%i",i); + pcNode->mName.length = sprintf(pcNode->mName.data,"3DSMesh_%u",i); } // Build dummy nodes for all cameras diff --git a/code/ASEParser.cpp b/code/ASEParser.cpp index 7e16c43ed..7c254f8ba 100644 --- a/code/ASEParser.cpp +++ b/code/ASEParser.cpp @@ -143,9 +143,9 @@ void Parser::LogWarning(const char* szWarn) char szTemp[1024]; #if _MSC_VER >= 1400 - sprintf_s(szTemp,"Line %i: %s",iLineNumber,szWarn); + sprintf_s(szTemp,"Line %u: %s",iLineNumber,szWarn); #else - snprintf(szTemp,1024,"Line %i: %s",iLineNumber,szWarn); + snprintf(szTemp,1024,"Line %u: %s",iLineNumber,szWarn); #endif // output the warning to the logger ... @@ -159,9 +159,9 @@ void Parser::LogInfo(const char* szWarn) char szTemp[1024]; #if _MSC_VER >= 1400 - sprintf_s(szTemp,"Line %i: %s",iLineNumber,szWarn); + sprintf_s(szTemp,"Line %u: %s",iLineNumber,szWarn); #else - snprintf(szTemp,1024,"Line %i: %s",iLineNumber,szWarn); + snprintf(szTemp,1024,"Line %u: %s",iLineNumber,szWarn); #endif // output the information to the logger ... @@ -175,9 +175,9 @@ AI_WONT_RETURN void Parser::LogError(const char* szWarn) char szTemp[1024]; #if _MSC_VER >= 1400 - sprintf_s(szTemp,"Line %i: %s",iLineNumber,szWarn); + sprintf_s(szTemp,"Line %u: %s",iLineNumber,szWarn); #else - snprintf(szTemp,1024,"Line %i: %s",iLineNumber,szWarn); + snprintf(szTemp,1024,"Line %u: %s",iLineNumber,szWarn); #endif // throw an exception diff --git a/code/DeboneProcess.cpp b/code/DeboneProcess.cpp index 025a2ca76..05d33a464 100644 --- a/code/DeboneProcess.cpp +++ b/code/DeboneProcess.cpp @@ -147,7 +147,7 @@ void DeboneProcess::Execute( aiScene* pScene) if(!DefaultLogger::isNullLogger()) { char buffer[1024]; - ::sprintf(buffer,"Removed %i bones. Input bones: %i. Output bones: %i",in-out,in,out); + ::sprintf(buffer,"Removed %u bones. Input bones: %u. Output bones: %u",in-out,in,out); DefaultLogger::get()->info(buffer); } diff --git a/code/DefaultLogger.cpp b/code/DefaultLogger.cpp index b78b2abd6..f1bbd0c9f 100644 --- a/code/DefaultLogger.cpp +++ b/code/DefaultLogger.cpp @@ -258,7 +258,7 @@ void DefaultLogger::OnDebug( const char* message ) return; char msg[MAX_LOG_MESSAGE_LENGTH + 16]; - ::sprintf(msg,"Debug, T%i: %s", GetThreadID(), message ); + ::sprintf(msg,"Debug, T%u: %s", GetThreadID(), message ); WriteToStreams( msg, Logger::Debugging ); } @@ -268,7 +268,7 @@ void DefaultLogger::OnDebug( const char* message ) void DefaultLogger::OnInfo( const char* message ) { char msg[MAX_LOG_MESSAGE_LENGTH + 16]; - ::sprintf(msg,"Info, T%i: %s", GetThreadID(), message ); + ::sprintf(msg,"Info, T%u: %s", GetThreadID(), message ); WriteToStreams( msg , Logger::Info ); } @@ -278,7 +278,7 @@ void DefaultLogger::OnInfo( const char* message ) void DefaultLogger::OnWarn( const char* message ) { char msg[MAX_LOG_MESSAGE_LENGTH + 16]; - ::sprintf(msg,"Warn, T%i: %s", GetThreadID(), message ); + ::sprintf(msg,"Warn, T%u: %s", GetThreadID(), message ); WriteToStreams( msg, Logger::Warn ); } @@ -288,7 +288,7 @@ void DefaultLogger::OnWarn( const char* message ) void DefaultLogger::OnError( const char* message ) { char msg[MAX_LOG_MESSAGE_LENGTH + 16]; - ::sprintf(msg,"Error, T%i: %s", GetThreadID(), message ); + ::sprintf(msg,"Error, T%u: %s", GetThreadID(), message ); WriteToStreams( msg, Logger::Err ); } diff --git a/code/IRRLoader.cpp b/code/IRRLoader.cpp index b082168c1..d3890b601 100644 --- a/code/IRRLoader.cpp +++ b/code/IRRLoader.cpp @@ -194,7 +194,7 @@ void IRRImporter::BuildSkybox(std::vector& meshes, std::vectorAddProperty(&s,AI_MATKEY_NAME); int shading = aiShadingMode_NoShading; diff --git a/code/LWOLoader.cpp b/code/LWOLoader.cpp index fd29f23f1..188afc5f4 100644 --- a/code/LWOLoader.cpp +++ b/code/LWOLoader.cpp @@ -209,7 +209,7 @@ void LWOImporter::InternReadFile( const std::string& pFile, // we need to check now whether the requested layer has been found. if (UINT_MAX != configLayerIndex) { unsigned int layerCount = 0; - for(std::list::iterator itLayers=mLayers->begin(); itLayers!=mLayers->end(); itLayers++) + for(std::list::iterator itLayers=mLayers->begin(); itLayers!=mLayers->end(); ++itLayers) if (!itLayers->skip) layerCount++; if (layerCount!=2) diff --git a/code/LWSLoader.cpp b/code/LWSLoader.cpp index cb0daf2e9..161d90fa6 100644 --- a/code/LWSLoader.cpp +++ b/code/LWSLoader.cpp @@ -450,7 +450,7 @@ void LWSImporter::BuildGraph(aiNode* nd, LWS::NodeDesc& src, std::vectormChildren = new aiNode*[src.children.size()]; for (std::list::iterator it = src.children.begin(); it != src.children.end(); ++it) { aiNode* ndd = nd->mChildren[nd->mNumChildren++] = new aiNode(); diff --git a/code/LimitBoneWeightsProcess.cpp b/code/LimitBoneWeightsProcess.cpp index 3f46dd100..53e5ce360 100644 --- a/code/LimitBoneWeightsProcess.cpp +++ b/code/LimitBoneWeightsProcess.cpp @@ -193,7 +193,7 @@ void LimitBoneWeightsProcess::ProcessMesh( aiMesh* pMesh) if (!DefaultLogger::isNullLogger()) { char buffer[1024]; - ::sprintf(buffer,"Removed %i weights. Input bones: %i. Output bones: %i",removed,old_bones,pMesh->mNumBones); + ::sprintf(buffer,"Removed %u weights. Input bones: %u. Output bones: %u",removed,old_bones,pMesh->mNumBones); DefaultLogger::get()->info(buffer); } } diff --git a/code/MD3Loader.cpp b/code/MD3Loader.cpp index a78a5e3f2..cf07f295f 100644 --- a/code/MD3Loader.cpp +++ b/code/MD3Loader.cpp @@ -791,7 +791,7 @@ void MD3Importer::InternReadFile( const std::string& pFile, // Adjust all texture paths in the shader const char* header_name = pcHeader->NAME; - if (shaders.blocks.size()) { + if (!shaders.blocks.empty()) { for (std::list< Q3Shader::ShaderDataBlock >::iterator dit = shaders.blocks.begin(); dit != shaders.blocks.end(); ++dit) { ConvertPath((*dit).name.c_str(),header_name,(*dit).name); @@ -881,7 +881,7 @@ void MD3Importer::InternReadFile( const std::string& pFile, // Now search the current shader for a record with this name ( // excluding texture file extension) - if (shaders.blocks.size()) { + if (!shaders.blocks.empty()) { std::string::size_type s = convertedPath.find_last_of('.'); if (s == std::string::npos) diff --git a/code/MD5Parser.cpp b/code/MD5Parser.cpp index 6be956593..395dedd14 100644 --- a/code/MD5Parser.cpp +++ b/code/MD5Parser.cpp @@ -95,7 +95,7 @@ MD5Parser::MD5Parser(char* _buffer, unsigned int _fileSize ) /*static*/ AI_WONT_RETURN void MD5Parser::ReportError (const char* error, unsigned int line) { char szBuffer[1024]; - ::sprintf(szBuffer,"[MD5] Line %i: %s",line,error); + ::sprintf(szBuffer,"[MD5] Line %u: %s",line,error); throw DeadlyImportError(szBuffer); } @@ -104,7 +104,7 @@ MD5Parser::MD5Parser(char* _buffer, unsigned int _fileSize ) /*static*/ void MD5Parser::ReportWarning (const char* warn, unsigned int line) { char szBuffer[1024]; - ::sprintf(szBuffer,"[MD5] Line %i: %s",line,warn); + ::sprintf(szBuffer,"[MD5] Line %u: %s",line,warn); DefaultLogger::get()->warn(szBuffer); } diff --git a/code/MDLLoader.cpp b/code/MDLLoader.cpp index b2de6bfe5..320956cc1 100644 --- a/code/MDLLoader.cpp +++ b/code/MDLLoader.cpp @@ -264,7 +264,7 @@ void MDLImporter::SizeCheck(const void* szPos, const char* szFile, unsigned int char szBuffer[1024]; ::sprintf(szBuffer,"Invalid MDL file. The file is too small " - "or contains invalid data (File: %s Line: %i)",szFilePtr,iLine); + "or contains invalid data (File: %s Line: %u)",szFilePtr,iLine); throw DeadlyImportError(szBuffer); } @@ -1536,7 +1536,7 @@ void MDLImporter::InternReadFile_3DGS_MDL7( ) // setup the name of the node char* const szBuffer = &aszGroupNameBuffer[i*AI_MDL7_MAX_GROUPNAMESIZE]; if ('\0' == *szBuffer) - pcNode->mName.length = ::sprintf(szBuffer,"Group_%i",p); + pcNode->mName.length = ::sprintf(szBuffer,"Group_%u",p); else pcNode->mName.length = ::strlen(szBuffer); ::strcpy(pcNode->mName.data,szBuffer); ++p; diff --git a/code/MS3DLoader.cpp b/code/MS3DLoader.cpp index 341ee6674..e7ad85881 100644 --- a/code/MS3DLoader.cpp +++ b/code/MS3DLoader.cpp @@ -531,7 +531,7 @@ void MS3DImporter::InternReadFile( const std::string& pFile, } // allocate storage for bones - if(mybones.size()) { + if(!mybones.empty()) { std::vector bmap(joints.size()); m->mBones = new aiBone*[mybones.size()](); for(BoneSet::const_iterator it = mybones.begin(); it != mybones.end(); ++it) { diff --git a/code/NFFLoader.cpp b/code/NFFLoader.cpp index f180ba988..2d8c0d5da 100644 --- a/code/NFFLoader.cpp +++ b/code/NFFLoader.cpp @@ -1115,7 +1115,7 @@ void NFFImporter::InternReadFile( const std::string& pFile, aiNode* nd = *ppcChildren = new aiNode(); nd->mParent = root; - nd->mName.length = ::sprintf(nd->mName.data,"",i); + nd->mName.length = ::sprintf(nd->mName.data,"",i); // allocate the light in the scene data structure aiLight* out = pScene->mLights[i] = new aiLight(); diff --git a/code/ObjExporter.cpp b/code/ObjExporter.cpp index 099b337da..90f4241eb 100644 --- a/code/ObjExporter.cpp +++ b/code/ObjExporter.cpp @@ -288,7 +288,7 @@ int ObjExporter::vecIndexMap::getIndex(const aiVector3D& vec) void ObjExporter::vecIndexMap::getVectors( std::vector& vecs ) { vecs.resize(vecMap.size()); - for(vecIndexMap::dataType::iterator it = vecMap.begin(); it != vecMap.end(); it++){ + for(vecIndexMap::dataType::iterator it = vecMap.begin(); it != vecMap.end(); ++it){ vecs[it->second-1] = it->first; } } diff --git a/code/ObjFileParser.h b/code/ObjFileParser.h index 1883b7260..8a8a51306 100644 --- a/code/ObjFileParser.h +++ b/code/ObjFileParser.h @@ -122,6 +122,11 @@ private: void reportErrorTokenInFace(); private: + // Copy and assignment constructor should be private + // because the class contains pointer to allocated memory + ObjFileParser(const ObjFileParser& rhs); + ObjFileParser& operator=(const ObjFileParser& rhs); + /// Default material name static const std::string DEFAULT_MATERIAL; //! Iterator to current position in buffer diff --git a/code/OgreImporter.h b/code/OgreImporter.h index 1b4b608f6..b37ec2d75 100644 --- a/code/OgreImporter.h +++ b/code/OgreImporter.h @@ -81,7 +81,7 @@ private: void AssignMaterials(aiScene *pScene, std::vector &materials); /// Reads material - aiMaterial* ReadMaterial(const std::string &pFile, Assimp::IOSystem *pIOHandler, const std::string MaterialName); + aiMaterial* ReadMaterial(const std::string &pFile, Assimp::IOSystem *pIOHandler, const std::string &MaterialName); // These functions parse blocks from a material file from @c ss. Starting parsing from "{" and ending it to "}". bool ReadTechnique(const std::string &techniqueName, std::stringstream &ss, aiMaterial *material); diff --git a/code/OgreMaterial.cpp b/code/OgreMaterial.cpp index cf8951549..a5eb6fb19 100644 --- a/code/OgreMaterial.cpp +++ b/code/OgreMaterial.cpp @@ -120,7 +120,7 @@ void OgreImporter::AssignMaterials(aiScene *pScene, std::vector &ma } } -aiMaterial* OgreImporter::ReadMaterial(const std::string &pFile, Assimp::IOSystem *pIOHandler, const std::string materialName) +aiMaterial* OgreImporter::ReadMaterial(const std::string &pFile, Assimp::IOSystem *pIOHandler, const std::string &materialName) { if (materialName.empty()) { return 0; diff --git a/code/OpenGEXImporter.cpp b/code/OpenGEXImporter.cpp index 7065bbe81..a5736ce0f 100644 --- a/code/OpenGEXImporter.cpp +++ b/code/OpenGEXImporter.cpp @@ -300,7 +300,7 @@ void OpenGEXImporter::handleNodes( DDLNode *node, aiScene *pScene ) { } DDLNode::DllNodeList childs = node->getChildNodeList(); - for( DDLNode::DllNodeList::iterator it = childs.begin(); it != childs.end(); it++ ) { + for( DDLNode::DllNodeList::iterator it = childs.begin(); it != childs.end(); ++it ) { Grammar::TokenType tokenType( Grammar::matchTokenType( ( *it )->getType().c_str() ) ); switch( tokenType ) { case Grammar::MetricToken: diff --git a/code/OptimizeGraph.cpp b/code/OptimizeGraph.cpp index 25dca7923..22e27bfac 100644 --- a/code/OptimizeGraph.cpp +++ b/code/OptimizeGraph.cpp @@ -225,7 +225,7 @@ void OptimizeGraphProcess::CollectNewChildren(aiNode* nd, std::list& no delete[] nd->mChildren; - if (child_nodes.size()) + if (!child_nodes.empty()) nd->mChildren = new aiNode*[child_nodes.size()]; else nd->mChildren = NULL; } @@ -335,7 +335,7 @@ void OptimizeGraphProcess::Execute( aiScene* pScene) if ( nodes_in != nodes_out) { char buf[512]; - sprintf(buf,"OptimizeGraphProcess finished; Input nodes: %i, Output nodes: %i",nodes_in,nodes_out); + sprintf(buf,"OptimizeGraphProcess finished; Input nodes: %u, Output nodes: %u",nodes_in,nodes_out); DefaultLogger::get()->info(buf); } else DefaultLogger::get()->debug("OptimizeGraphProcess finished"); diff --git a/code/OptimizeMeshes.cpp b/code/OptimizeMeshes.cpp index 870369315..f17fb5a20 100644 --- a/code/OptimizeMeshes.cpp +++ b/code/OptimizeMeshes.cpp @@ -150,7 +150,7 @@ void OptimizeMeshesProcess::Execute( aiScene* pScene) if (output.size() != num_old) { char tmp[512]; - ::sprintf(tmp,"OptimizeMeshesProcess finished. Input meshes: %i, Output meshes: %i",num_old,pScene->mNumMeshes); + ::sprintf(tmp,"OptimizeMeshesProcess finished. Input meshes: %u, Output meshes: %u",num_old,pScene->mNumMeshes); DefaultLogger::get()->info(tmp); } else { DefaultLogger::get()->debug( "OptimizeMeshesProcess finished" ); diff --git a/code/PretransformVertices.cpp b/code/PretransformVertices.cpp index 1c7a9a4e0..c98647c1a 100644 --- a/code/PretransformVertices.cpp +++ b/code/PretransformVertices.cpp @@ -644,7 +644,7 @@ void PretransformVertices::Execute( aiScene* pScene) { aiNode* pcNode = *nodes = new aiNode(); pcNode->mParent = pScene->mRootNode; - pcNode->mName.length = ::sprintf(pcNode->mName.data,"mesh_%i",i); + pcNode->mName.length = ::sprintf(pcNode->mName.data,"mesh_%u",i); // setup mesh indices pcNode->mNumMeshes = 1; @@ -656,7 +656,7 @@ void PretransformVertices::Execute( aiScene* pScene) { aiNode* pcNode = *nodes = new aiNode(); pcNode->mParent = pScene->mRootNode; - pcNode->mName.length = ::sprintf(pcNode->mName.data,"light_%i",i); + pcNode->mName.length = ::sprintf(pcNode->mName.data,"light_%u",i); pScene->mLights[i]->mName = pcNode->mName; } // generate camera nodes @@ -664,7 +664,7 @@ void PretransformVertices::Execute( aiScene* pScene) { aiNode* pcNode = *nodes = new aiNode(); pcNode->mParent = pScene->mRootNode; - pcNode->mName.length = ::sprintf(pcNode->mName.data,"cam_%i",i); + pcNode->mName.length = ::sprintf(pcNode->mName.data,"cam_%u",i); pScene->mCameras[i]->mName = pcNode->mName; } } @@ -707,15 +707,15 @@ void PretransformVertices::Execute( aiScene* pScene) DefaultLogger::get()->debug("PretransformVerticesProcess finished"); - sprintf(buffer,"Removed %i nodes and %i animation channels (%i output nodes)", + sprintf(buffer,"Removed %u nodes and %u animation channels (%u output nodes)", iOldNodes,iOldAnimationChannels,CountNodes(pScene->mRootNode)); DefaultLogger::get()->info(buffer); - sprintf(buffer,"Kept %i lights and %i cameras", + sprintf(buffer,"Kept %u lights and %u cameras", pScene->mNumLights,pScene->mNumCameras); DefaultLogger::get()->info(buffer); - sprintf(buffer,"Moved %i meshes to WCS (number of output meshes: %i)", + sprintf(buffer,"Moved %u meshes to WCS (number of output meshes: %u)", iOldMeshes,pScene->mNumMeshes); DefaultLogger::get()->info(buffer); } diff --git a/code/RemoveRedundantMaterials.cpp b/code/RemoveRedundantMaterials.cpp index 2c760db0c..d3dfb6cae 100644 --- a/code/RemoveRedundantMaterials.cpp +++ b/code/RemoveRedundantMaterials.cpp @@ -180,7 +180,7 @@ void RemoveRedundantMatsProcess::Execute( aiScene* pScene) if (ppcMaterials[idx]) { aiString sz; - sz.length = ::sprintf(sz.data,"JoinedMaterial_#%i",p); + sz.length = ::sprintf(sz.data,"JoinedMaterial_#%u",p); ((aiMaterial*)ppcMaterials[idx])->AddProperty(&sz,AI_MATKEY_NAME); } else @@ -207,7 +207,7 @@ void RemoveRedundantMatsProcess::Execute( aiScene* pScene) else { char szBuffer[128]; // should be sufficiently large - ::sprintf(szBuffer,"RemoveRedundantMatsProcess finished. Removed %i redundant and %i unused materials.", + ::sprintf(szBuffer,"RemoveRedundantMatsProcess finished. Removed %u redundant and %u unused materials.", redundantRemoved,unreferencedRemoved); DefaultLogger::get()->info(szBuffer); } diff --git a/code/SMDLoader.cpp b/code/SMDLoader.cpp index 31c8c4fda..78c33e8c2 100644 --- a/code/SMDLoader.cpp +++ b/code/SMDLoader.cpp @@ -208,7 +208,7 @@ void SMDImporter::InternReadFile( const std::string& pFile, aiScene* pScene, IOS void SMDImporter::LogErrorNoThrow(const char* msg) { char szTemp[1024]; - sprintf(szTemp,"Line %i: %s",iLineNumber,msg); + sprintf(szTemp,"Line %u: %s",iLineNumber,msg); DefaultLogger::get()->error(szTemp); } @@ -218,7 +218,7 @@ void SMDImporter::LogWarning(const char* msg) { char szTemp[1024]; ai_assert(strlen(msg) < 1000); - sprintf(szTemp,"Line %i: %s",iLineNumber,msg); + sprintf(szTemp,"Line %u: %s",iLineNumber,msg); DefaultLogger::get()->warn(szTemp); } @@ -647,7 +647,7 @@ void SMDImporter::CreateOutputMaterials() pScene->mMaterials[iMat] = pcMat; aiString szName; - szName.length = (size_t)::sprintf(szName.data,"Texture_%i",iMat); + szName.length = (size_t)::sprintf(szName.data,"Texture_%u",iMat); pcMat->AddProperty(&szName,AI_MATKEY_NAME); if (aszTextures[iMat].length()) diff --git a/code/StepExporter.cpp b/code/StepExporter.cpp index 845396780..58e0aa69e 100644 --- a/code/StepExporter.cpp +++ b/code/StepExporter.cpp @@ -251,7 +251,7 @@ void StepExporter::WriteFile() mOutput << "))" << endstr; // write all the unique transformed CARTESIAN and VERTEX - for (MeshesByNodeMap::const_iterator it2 = meshes.begin(); it2 != meshes.end(); it2++) + for (MeshesByNodeMap::const_iterator it2 = meshes.begin(); it2 != meshes.end(); ++it2) { const aiNode& node = *(*it2).first; unsigned int mesh_idx = (*it2).second; diff --git a/code/UnrealLoader.cpp b/code/UnrealLoader.cpp index 163af55a4..19b42b196 100644 --- a/code/UnrealLoader.cpp +++ b/code/UnrealLoader.cpp @@ -377,7 +377,7 @@ void UnrealImporter::InternReadFile( const std::string& pFile, aiColor3D color(1.f,1.f,1.f); aiString s; - ::sprintf(s.data,"mat%i_tx%i_",i,materials[i].tex); + ::sprintf(s.data,"mat%u_tx%u_",i,materials[i].tex); // set the two-sided flag if (materials[i].type == Unreal::MF_NORMAL_TS) {

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%0A=+4kS;KhatODy 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 m>h^tTJNq8vxA*nGJIXfxT<`3;lanXi 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 m9&%BQU$4;rA<-qmZHN-U Date: Sat, 2 May 2015 00:59:21 +0200 Subject: [PATCH 14/62] Fix syntax errors. --- test/regression/result_checker.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/regression/result_checker.py b/test/regression/result_checker.py index cc8c08f95..5e5ab81d1 100644 --- a/test/regression/result_checker.py +++ b/test/regression/result_checker.py @@ -96,9 +96,9 @@ def run(): return passed('No failures encountered') print('Failures:\n' + '\n'.join(sorted(result_dict.keys()))) - print('Whitelisted:\n' + '\n'.join(sorted(whitelist_dict.keys())) + print('Whitelisted:\n' + '\n'.join(sorted(whitelist_dict.keys()))) non_whitelisted_failures = set(result_dict.keys()) - set(whitelist_dict.keys()) - print('Failures not whitelisted:\n' + '\n'.join(sorted(non_whitelisted_failures)) + print('Failures not whitelisted:\n' + '\n'.join(sorted(non_whitelisted_failures))) if not non_whitelisted_failures: return passed('All failures are whitelisted and considered acceptable \n' + 'due to implementation differences, library shortcomings and bugs \n' + From 2c60da38f30b9fb97731217ced3f647b003eb610 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Tue, 5 May 2015 22:26:40 +0200 Subject: [PATCH 15/62] openddl-parser: V0.2.0 Signed-off-by: Kim Kulling --- contrib/openddlparser/code/Value.cpp | 19 ++++++++++++------- .../include/openddlparser/DDLNode.h | 4 ---- .../include/openddlparser/OpenDDLCommon.h | 18 +++++++++++------- .../include/openddlparser/OpenDDLParser.h | 4 ---- .../openddlparser/OpenDDLParserUtils.h | 9 --------- .../include/openddlparser/Value.h | 4 ---- 6 files changed, 23 insertions(+), 35 deletions(-) diff --git a/contrib/openddlparser/code/Value.cpp b/contrib/openddlparser/code/Value.cpp index 39f4c32b7..f94ef081f 100644 --- a/contrib/openddlparser/code/Value.cpp +++ b/contrib/openddlparser/code/Value.cpp @@ -101,12 +101,11 @@ uint8 Value::getUnsignedInt8() const { void Value::setUnsignedInt16( uint16 value ) { assert( ddl_unsigned_int16 == m_type ); ::memcpy( m_data, &value, m_size ); - } + uint16 Value::getUnsignedInt16() const { assert( ddl_unsigned_int16 == m_type ); return ( uint8 ) ( *m_data ); - } void Value::setUnsignedInt32( uint32 value ) { @@ -135,9 +134,15 @@ void Value::setFloat( float value ) { } float Value::getFloat() const { - float v; - ::memcpy( &v, m_data, m_size ); - return v; + if( m_type == ddl_float ) { + float v; + ::memcpy( &v, m_data, m_size ); + return ( float ) v; + } else { + float tmp; + ::memcpy( &tmp, m_data, 4 ); + return ( float ) tmp; + } } void Value::setDouble( double value ) { @@ -241,7 +246,7 @@ Value *ValueAllocator::allocPrimData( Value::ValueType type, size_t len ) { data->m_size = sizeof( int ); break; case Value::ddl_int64: - data->m_size = sizeof( long ); + data->m_size = sizeof( int64 ); break; case Value::ddl_unsigned_int8: data->m_size = sizeof( unsigned char ); @@ -250,7 +255,7 @@ Value *ValueAllocator::allocPrimData( Value::ValueType type, size_t len ) { data->m_size = sizeof( unsigned int ); break; case Value::ddl_unsigned_int64: - data->m_size = sizeof( unsigned long ); + data->m_size = sizeof( uint64 ); break; case Value::ddl_half: data->m_size = sizeof( short ); diff --git a/contrib/openddlparser/include/openddlparser/DDLNode.h b/contrib/openddlparser/include/openddlparser/DDLNode.h index 5ecf41e9a..cb69ab357 100644 --- a/contrib/openddlparser/include/openddlparser/DDLNode.h +++ b/contrib/openddlparser/include/openddlparser/DDLNode.h @@ -21,8 +21,6 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -----------------------------------------------------------------------------------------------*/ #pragma once -#ifndef OPENDDLPARSER_DDLNODE_H_INC -#define OPENDDLPARSER_DDLNODE_H_INC #include @@ -88,5 +86,3 @@ private: }; END_ODDLPARSER_NS - -#endif // OPENDDLPARSER_DDLNODE_H_INC diff --git a/contrib/openddlparser/include/openddlparser/OpenDDLCommon.h b/contrib/openddlparser/include/openddlparser/OpenDDLCommon.h index a9c7716cf..6dea65b9c 100644 --- a/contrib/openddlparser/include/openddlparser/OpenDDLCommon.h +++ b/contrib/openddlparser/include/openddlparser/OpenDDLCommon.h @@ -21,14 +21,15 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -----------------------------------------------------------------------------------------------*/ #pragma once -#ifndef OPENDDLPARSER_OPENDDLPARSERCOMMON_H_INC -#define OPENDDLPARSER_OPENDDLPARSERCOMMON_H_INC #include #include #include #include +#ifndef _WIN32 +# include +#endif #ifdef _MSC_VER # define TAG_DLL_EXPORT __declspec(dllexport) @@ -67,11 +68,17 @@ struct DataArrayList; typedef char int8; typedef short int16; typedef int int32; -typedef long int64; typedef unsigned char uint8; typedef unsigned short uint16; typedef unsigned int uint32; -typedef unsigned long uint64; + +#ifdef _WIN32 +typedef __int64 int64; +typedef unsigned __int64 uint64; +#else +typedef int64_t int64; +typedef uint64_t uint64; +#endif enum NameType { GlobalName, @@ -248,6 +255,3 @@ private: }; END_ODDLPARSER_NS - -#endif // OPENDDLPARSER_OPENDDLPARSERCOMMON_H_INC - diff --git a/contrib/openddlparser/include/openddlparser/OpenDDLParser.h b/contrib/openddlparser/include/openddlparser/OpenDDLParser.h index 3ba68370f..607dcf90c 100644 --- a/contrib/openddlparser/include/openddlparser/OpenDDLParser.h +++ b/contrib/openddlparser/include/openddlparser/OpenDDLParser.h @@ -21,8 +21,6 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -----------------------------------------------------------------------------------------------*/ #pragma once -#ifndef OPENDDLPARSER_OPENDDLPARSER_H_INC -#define OPENDDLPARSER_OPENDDLPARSER_H_INC #include #include @@ -127,5 +125,3 @@ private: }; END_ODDLPARSER_NS - -#endif // OPENDDLPARSER_OPENDDLPARSER_H_INC diff --git a/contrib/openddlparser/include/openddlparser/OpenDDLParserUtils.h b/contrib/openddlparser/include/openddlparser/OpenDDLParserUtils.h index 3e8455bcc..8572a37ed 100644 --- a/contrib/openddlparser/include/openddlparser/OpenDDLParserUtils.h +++ b/contrib/openddlparser/include/openddlparser/OpenDDLParserUtils.h @@ -21,8 +21,6 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -----------------------------------------------------------------------------------------------*/ #pragma once -#ifndef OPENDDLPARSER_OPENDDLPARSERUTILS_H_INC -#define OPENDDLPARSER_OPENDDLPARSERUTILS_H_INC #include @@ -124,7 +122,6 @@ bool isInteger( T *in, T *end ) { bool result( false ); while( isNotEndOfToken( in, end ) ) { - //while( '}' != *in && ',' != *in && !isSpace( *in ) && in != end ) { result = isNumeric( *in ); if( !result ) { break; @@ -147,8 +144,6 @@ bool isFloat( T *in, T *end ) { // check for <1>.0f bool result( false ); while( isNotEndOfToken( in, end ) ) { - -// while( !isSpace( *in ) && in != end ) { if( *in == '.' ) { result = true; break; @@ -169,8 +164,6 @@ bool isFloat( T *in, T *end ) { // check for 1.<0>f while( isNotEndOfToken( in, end ) ) { - -// while( !isSpace( *in ) && in != end && *in != ',' && *in != '}' ) { result = isNumeric( *in ); if( !result ) { return false; @@ -257,5 +250,3 @@ int hex2Decimal( char in ) { } END_ODDLPARSER_NS - -#endif // OPENDDLPARSER_OPENDDLPARSERUTILS_H_INC diff --git a/contrib/openddlparser/include/openddlparser/Value.h b/contrib/openddlparser/include/openddlparser/Value.h index bb974fb74..54ccf51ba 100644 --- a/contrib/openddlparser/include/openddlparser/Value.h +++ b/contrib/openddlparser/include/openddlparser/Value.h @@ -21,8 +21,6 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -----------------------------------------------------------------------------------------------*/ #pragma once -#ifndef OPENDDLPARSER_VALUE_H_INC -#define OPENDDLPARSER_VALUE_H_INC #include @@ -101,5 +99,3 @@ struct DLL_ODDLPARSER_EXPORT ValueAllocator { }; END_ODDLPARSER_NS - -#endif // OPENDDLPARSER_VALUE_H_INC From fd3a0d4a9dcbfff9277660d3c666f4783ec70038 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Tue, 5 May 2015 22:27:05 +0200 Subject: [PATCH 16/62] fix name handling of geoemtryobjectname nodes Signed-off-by: Kim Kulling --- code/OpenGEXImporter.cpp | 12 +++++++++--- code/OpenGEXImporter.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/code/OpenGEXImporter.cpp b/code/OpenGEXImporter.cpp index 6e4fb33af..fde5e3d45 100644 --- a/code/OpenGEXImporter.cpp +++ b/code/OpenGEXImporter.cpp @@ -223,6 +223,7 @@ OpenGEXImporter::OpenGEXImporter() , m_currentNode( NULL ) , m_currentMesh( NULL ) , m_currentMaterial( NULL ) +, m_tokenType( Grammar::NoneType ) , m_nodeStack() , m_unresolvedRefStack() { // empty @@ -406,7 +407,12 @@ void OpenGEXImporter::handleNameNode( DDLNode *node, aiScene *pScene ) { } const std::string name( val->getString() ); - m_currentNode->mName.Set( name.c_str() ); + if( m_tokenType == Grammar::GeometryNodeToken ) { + m_currentNode->mName.Set( name.c_str() ); + } else if( m_tokenType == Grammar::MaterialToken ) { + + } + } } @@ -462,6 +468,7 @@ void OpenGEXImporter::handleMaterialRefNode( ODDLParser::DDLNode *node, aiScene void OpenGEXImporter::handleGeometryNode( DDLNode *node, aiScene *pScene ) { aiNode *newNode = new aiNode; pushNode( newNode, pScene ); + m_tokenType = Grammar::GeometryNodeToken; m_currentNode = newNode; handleNodes( node, pScene ); @@ -768,9 +775,8 @@ static ColorType getColorType( Identifier *id ) { void OpenGEXImporter::handleMaterialNode( ODDLParser::DDLNode *node, aiScene *pScene ) { m_currentMaterial = new aiMaterial; m_materialCache.push_back( m_currentMaterial ); - + m_tokenType = Grammar::MaterialToken; handleNodes( node, pScene ); - } //------------------------------------------------------------------------------------------------ diff --git a/code/OpenGEXImporter.h b/code/OpenGEXImporter.h index ac72e8224..d187c4ac4 100644 --- a/code/OpenGEXImporter.h +++ b/code/OpenGEXImporter.h @@ -179,6 +179,7 @@ private: VertexContainer m_currentVertices; aiMesh *m_currentMesh; aiMaterial *m_currentMaterial; + int m_tokenType; std::vector m_materialCache; std::vector m_nodeStack; std::vector m_unresolvedRefStack; From b4f5c57b3e7d9c20b001fb5484b5552f00527cf9 Mon Sep 17 00:00:00 2001 From: abma Date: Wed, 6 May 2015 23:15:15 +0200 Subject: [PATCH 17/62] allow to compile only enabled loaders --- code/CMakeLists.txt | 193 ++++++++++++++++---------------------------- 1 file changed, 68 insertions(+), 125 deletions(-) diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index 55e69f8b2..d4ca754a2 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -157,7 +157,27 @@ IF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER ) SOURCE_GROUP( C4D FILES ${C4D_SRCS}) ENDIF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER ) -SET( 3DS_SRCS +# macro to add the CMake Option ADD_ASSIMP_IMPORTER_ which enables compile of loader +# this way selective loaders can be compiled (reduces filesize + compile time) +MACRO(ADD_ASSIMP_IMPORTER name) + OPTION(ASSIMP_BUILD_${name}_IMPORTER "build the ${name} importer" TRUE) + IF(ASSIMP_BUILD_${name}_IMPORTER) + LIST(APPEND ASSIMP_LOADER_SRCS ${ARGN}) + SET(ASSIMP_IMPORTERS_ENABLED "${ASSIMP_IMPORTERS_ENABLED} ${name}") + SET(${name}_SRCS ${ARGN}) + SOURCE_GROUP(${name} FILES ${ARGN}) + ELSE() + SET(${name}_SRC "") + SET(ASSIMP_IMPORTERS_DISABLED "${ASSIMP_IMPORTERS_DISABLED} ${name}") + add_definitions(-DASSIMP_BUILD_NO_${name}_IMPORTER) + ENDIF() +ENDMACRO() + +SET(ASSIMP_LOADER_SRCS "") +SET(ASSIMP_IMPORTERS_ENABLED "") # list of enabled importers +SET(ASSIMP_IMPORTERS_DISABLED "") # disabled list (used to print) + +ADD_ASSIMP_IMPORTER(3DS 3DSConverter.cpp 3DSHelper.h 3DSLoader.cpp @@ -165,49 +185,42 @@ SET( 3DS_SRCS 3DSExporter.h 3DSExporter.cpp ) -SOURCE_GROUP(3DS FILES ${3DS_SRCS}) -SET( AC_SRCS +ADD_ASSIMP_IMPORTER(AC ACLoader.cpp ACLoader.h ) -SOURCE_GROUP( AC FILES ${AC_SRCS}) -SET( ASE_SRCS +ADD_ASSIMP_IMPORTER(ASE ASELoader.cpp ASELoader.h ASEParser.cpp ASEParser.h ) -SOURCE_GROUP( ASE FILES ${ASE_SRCS}) -SET( ASSBIN_SRCS +ADD_ASSIMP_IMPORTER(ASSBIN AssbinExporter.h AssbinExporter.cpp AssbinLoader.h AssbinLoader.cpp ) -SOURCE_GROUP( Assbin FILES ${ASSBIN_SRCS}) -SET( ASSXML_SRCS +ADD_ASSIMP_IMPORTER(ASSXML AssxmlExporter.h AssxmlExporter.cpp ) -SOURCE_GROUP( Assxml FILES ${ASSXML_SRCS}) -SET( B3D_SRCS +ADD_ASSIMP_IMPORTER(B3D B3DImporter.cpp B3DImporter.h ) -SOURCE_GROUP( B3D FILES ${B3D_SRCS}) -SET( BVH_SRCS +ADD_ASSIMP_IMPORTER(BVH BVHLoader.cpp BVHLoader.h ) -SOURCE_GROUP( BVH FILES ${BVH_SRCS}) -SET( Collada_SRCS +ADD_ASSIMP_IMPORTER(COLLADA ColladaHelper.h ColladaLoader.cpp ColladaLoader.h @@ -216,30 +229,27 @@ SET( Collada_SRCS ColladaExporter.h ColladaExporter.cpp ) -SOURCE_GROUP( Collada FILES ${Collada_SRCS}) -SET( DXF_SRCS +ADD_ASSIMP_IMPORTER(DXF DXFLoader.cpp DXFLoader.h DXFHelper.h ) -SOURCE_GROUP( DXF FILES ${DXF_SRCS}) -SET( CSM_SRCS +ADD_ASSIMP_IMPORTER(CSM CSMLoader.cpp CSMLoader.h ) -SOURCE_GROUP( CSM FILES ${CSM_SRCS}) -SET( HMP_SRCS +ADD_ASSIMP_IMPORTER(HMP HMPFileData.h HMPLoader.cpp HMPLoader.h HalfLifeFileData.h ) -SOURCE_GROUP( HMP FILES ${HMP_SRCS}) -SET( Irr_SRCS +#FIXME: allow to set IRRMESH by option +ADD_ASSIMP_IMPORTER(IRR IRRLoader.cpp IRRLoader.h IRRMeshLoader.cpp @@ -247,9 +257,8 @@ SET( Irr_SRCS IRRShared.cpp IRRShared.h ) -SOURCE_GROUP( Irr FILES ${Irr_SRCS}) -SET( LWO_SRCS +ADD_ASSIMP_IMPORTER(LWO LWOAnimation.cpp LWOAnimation.h LWOBLoader.cpp @@ -258,53 +267,46 @@ SET( LWO_SRCS LWOLoader.h LWOMaterial.cpp ) -SOURCE_GROUP( LWO FILES ${LWO_SRCS}) -SET( LWS_SRCS +ADD_ASSIMP_IMPORTER(LWS LWSLoader.cpp LWSLoader.h ) -SOURCE_GROUP( LWS FILES ${LWS_SRCS}) -SET( MD2_SRCS +ADD_ASSIMP_IMPORTER(MD2 MD2FileData.h MD2Loader.cpp MD2Loader.h MD2NormalTable.h ) -SOURCE_GROUP( MD2 FILES ${MD2_SRCS}) -SET( MD3_SRCS +ADD_ASSIMP_IMPORTER(MD3 MD3FileData.h MD3Loader.cpp MD3Loader.h ) -SOURCE_GROUP( MD3 FILES ${MD3_SRCS}) -SET( MD5_SRCS +ADD_ASSIMP_IMPORTER(MD5 MD5Loader.cpp MD5Loader.h MD5Parser.cpp MD5Parser.h ) -SOURCE_GROUP( MD5 FILES ${MD5_SRCS}) -SET( MDC_SRCS +ADD_ASSIMP_IMPORTER(MDC MDCFileData.h MDCLoader.cpp MDCLoader.h MDCNormalTable.h ) -SOURCE_GROUP( MDC FILES ${MDC_SRCS}) -SET( MDL_SRCS +ADD_ASSIMP_IMPORTER(MDL MDLDefaultColorMap.h MDLFileData.h MDLLoader.cpp MDLLoader.h MDLMaterialLoader.cpp ) -SOURCE_GROUP( MDL FILES ${MDL_SRCS}) SET( MaterialSystem_SRCS MaterialSystem.cpp @@ -312,25 +314,22 @@ SET( MaterialSystem_SRCS ) SOURCE_GROUP( MaterialSystem FILES ${MaterialSystem_SRCS}) -SET( NFF_SRCS +ADD_ASSIMP_IMPORTER(NFF NFFLoader.cpp NFFLoader.h ) -SOURCE_GROUP( NFF FILES ${NFF_SRCS}) -SET( NDO_SRCS +ADD_ASSIMP_IMPORTER(NDO NDOLoader.cpp NDOLoader.h ) -SOURCE_GROUP( NDO FILES ${NDO_SRCS}) -SET( OFFFormat_SRCS +ADD_ASSIMP_IMPORTER(OFF OFFLoader.cpp OFFLoader.h ) -SOURCE_GROUP( OFFFormat FILES ${OFFFormat_SRCS}) -SET( Obj_SRCS +ADD_ASSIMP_IMPORTER(OBJ ObjFileData.h ObjFileImporter.cpp ObjFileImporter.h @@ -343,9 +342,8 @@ SET( Obj_SRCS ObjExporter.h ObjExporter.cpp ) -SOURCE_GROUP( Obj FILES ${Obj_SRCS}) -SET( Ogre_SRCS +ADD_ASSIMP_IMPORTER(OGRE OgreImporter.h OgreStructs.h OgreParsingUtils.h @@ -357,16 +355,14 @@ SET( Ogre_SRCS OgreXmlSerializer.cpp OgreMaterial.cpp ) -SOURCE_GROUP( Ogre FILES ${Ogre_SRCS}) -SET( OpenGEX_SRCS +ADD_ASSIMP_IMPORTER(OPENGEX OpenGEXImporter.cpp OpenGEXImporter.h OpenGEXStructs.h ) -SOURCE_GROUP( OpenGEX FILES ${OpenGEX_SRCS}) -SET( Ply_SRCS +ADD_ASSIMP_IMPORTER(PLY PlyLoader.cpp PlyLoader.h PlyParser.cpp @@ -374,22 +370,19 @@ SET( Ply_SRCS PlyExporter.cpp PlyExporter.h ) -SOURCE_GROUP( Ply FILES ${Ply_SRCS}) -SET(MS3D_SRCS +ADD_ASSIMP_IMPORTER(MS3D MS3DLoader.cpp MS3DLoader.h ) -SOURCE_GROUP( MS3D FILES ${MS3D_SRCS}) -SET(COB_SRCS +ADD_ASSIMP_IMPORTER(COB COBLoader.cpp COBLoader.h COBScene.h ) -SOURCE_GROUP( COB FILES ${COB_SRCS}) -SET(BLENDER_SRCS +ADD_ASSIMP_IMPORTER(BLEND BlenderLoader.cpp BlenderLoader.h BlenderDNA.cpp @@ -406,9 +399,8 @@ SET(BLENDER_SRCS BlenderTessellator.h BlenderTessellator.cpp ) -SOURCE_GROUP( BLENDER FILES ${BLENDER_SRCS}) -SET(IFC_SRCS +ADD_ASSIMP_IMPORTER(IFC IFCLoader.cpp IFCLoader.h IFCReaderGen.cpp @@ -427,16 +419,14 @@ SET(IFC_SRCS STEPFileEncoding.cpp STEPFileEncoding.h ) -SOURCE_GROUP( IFC FILES ${IFC_SRCS}) -SET( XGL_SRCS +ADD_ASSIMP_IMPORTER(XGL XGLLoader.cpp XGLLoader.h ) -SOURCE_GROUP( XGL FILES ${XGL_SRCS}) -SET(FBX_SRCS +ADD_ASSIMP_IMPORTER(FBX FBXImporter.cpp FBXCompileConfig.h FBXImporter.h @@ -462,8 +452,6 @@ SET(FBX_SRCS FBXBinaryTokenizer.cpp FBXDocumentUtil.cpp ) -SOURCE_GROUP( FBX FILES ${FBX_SRCS}) - SET( PostProcessing_SRCS CalcTangentsProcess.cpp @@ -520,13 +508,12 @@ SET( PostProcessing_SRCS ) SOURCE_GROUP( PostProcessing FILES ${PostProcessing_SRCS}) -SET( Q3D_SRCS +ADD_ASSIMP_IMPORTER(Q3D Q3DLoader.cpp Q3DLoader.h ) -SOURCE_GROUP( Q3D FILES ${Q3D_SRCS}) -SET( Q3BSP_SRCS +ADD_ASSIMP_IMPORTER(Q3BSP Q3BSPFileData.h Q3BSPFileParser.h Q3BSPFileParser.cpp @@ -535,41 +522,35 @@ SET( Q3BSP_SRCS Q3BSPZipArchive.h Q3BSPZipArchive.cpp ) -SOURCE_GROUP( Q3BSP FILES ${Q3BSP_SRCS}) -SET( Raw_SRCS +ADD_ASSIMP_IMPORTER(RAW RawLoader.cpp RawLoader.h ) -SOURCE_GROUP( Raw FILES ${Raw_SRCS}) -SET( SMD_SRCS +ADD_ASSIMP_IMPORTER(SMD SMDLoader.cpp SMDLoader.h ) -SOURCE_GROUP( SMD FILES ${SMD_SRCS}) -SET( STL_SRCS +ADD_ASSIMP_IMPORTER(STL STLLoader.cpp STLLoader.h STLExporter.h STLExporter.cpp ) -SOURCE_GROUP( STL FILES ${STL_SRCS}) -SET( Terragen_SRCS +ADD_ASSIMP_IMPORTER(TERRAGEN TerragenLoader.cpp TerragenLoader.h ) -SOURCE_GROUP( Terragen FILES ${Terragen_SRCS}) -SET( Unreal_SRCS +ADD_ASSIMP_IMPORTER(3D UnrealLoader.cpp UnrealLoader.h ) -SOURCE_GROUP( Unreal FILES ${Unreal_SRCS}) -SET( XFile_SRCS +ADD_ASSIMP_IMPORTER(X XFileHelper.h XFileImporter.cpp XFileImporter.h @@ -578,7 +559,6 @@ SET( XFile_SRCS XFileExporter.h XFileExporter.cpp ) -SOURCE_GROUP( XFile FILES ${XFile_SRCS}) SET( Step_SRCS StepExporter.h @@ -680,6 +660,9 @@ else (UNZIP_FOUND) SET (unzip_compile_SRCS ${unzip_SRCS}) endif (UNZIP_FOUND) +MESSAGE(STATUS "Enabled formats:${ASSIMP_IMPORTERS_ENABLED}") +MESSAGE(STATUS "Disabled formats:${ASSIMP_IMPORTERS_DISABLED}") + SET( assimp_src # Assimp Files ${Core_SRCS} @@ -687,51 +670,11 @@ SET( assimp_src ${Logging_SRCS} ${Exporter_SRCS} ${PostProcessing_SRCS} + ${MaterialSystem_SRCS} + ${Step_SRCS} # Model Support - ${3DS_SRCS} - ${AC_SRCS} - ${ASE_SRCS} - ${ASSBIN_SRCS} - ${ASSXML_SRCS} - ${B3D_SRCS} - ${BVH_SRCS} - ${Collada_SRCS} - ${DXF_SRCS} - ${CSM_SRCS} - ${HMP_SRCS} - ${Irr_SRCS} - ${LWO_SRCS} - ${LWS_SRCS} - ${MD2_SRCS} - ${MD3_SRCS} - ${MD5_SRCS} - ${MDC_SRCS} - ${MDL_SRCS} - ${MaterialSystem_SRCS} - ${NFF_SRCS} - ${OFFFormat_SRCS} - ${Obj_SRCS} - ${Ogre_SRCS} - ${OpenGEX_SRCS} - ${Ply_SRCS} - ${Q3D_SRCS} - ${Q3BSP_SRCS} - ${Raw_SRCS} - ${SMD_SRCS} - ${STL_SRCS} - ${Terragen_SRCS} - ${Unreal_SRCS} - ${XFile_SRCS} - ${Step_SRCS} - ${Extra_SRCS} - ${MS3D_SRCS} - ${COB_SRCS} - ${BLENDER_SRCS} - ${NDO_SRCS} - ${IFC_SRCS} - ${XGL_SRCS} - ${FBX_SRCS} + ${ASSIMP_LOADER_SRCS} # Third-party libraries ${IrrXML_SRCS} @@ -739,7 +682,7 @@ SET( assimp_src ${unzip_compile_SRCS} ${Poly2Tri_SRCS} ${Clipper_SRCS} - ${openddl_parser_SRCS} + ${openddl_parser_SRCS} # Necessary to show the headers in the project when using the VC++ generator: ${Boost_SRCS} From faea2eccccf20b4115227268ace599dd00c59574 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sun, 10 May 2015 23:50:18 +0200 Subject: [PATCH 18/62] OBJ: Support spaces in material names, fixes #545. Adding test file. --- code/ObjFileMtlImporter.cpp | 23 ++++--- code/ObjFileParser.cpp | 2 +- test/models/OBJ/space_in_material_name.mtl | 13 ++++ test/models/OBJ/space_in_material_name.obj | 77 ++++++++++++++++++++++ 4 files changed, 105 insertions(+), 10 deletions(-) create mode 100644 test/models/OBJ/space_in_material_name.mtl create mode 100644 test/models/OBJ/space_in_material_name.obj diff --git a/code/ObjFileMtlImporter.cpp b/code/ObjFileMtlImporter.cpp index 80d0416d3..244027036 100644 --- a/code/ObjFileMtlImporter.cpp +++ b/code/ObjFileMtlImporter.cpp @@ -263,16 +263,21 @@ void ObjFileMtlImporter::createMaterial() } std::vector token; - const unsigned int numToken = tokenize( line, token, " " ); - std::string name( "" ); - if ( numToken == 1 ) { - name = AI_DEFAULT_MATERIAL_NAME; - } else { - name = token[ 1 ]; - } + const unsigned int numToken = tokenize( line, token, " \t" ); + std::string name( "" ); + if ( numToken == 1 ) { + name = AI_DEFAULT_MATERIAL_NAME; + } else { + // skip newmtl and all following white spaces + std::size_t first_ws_pos = line.find_first_of(" \t"); + std::size_t first_non_ws_pos = line.find_first_not_of(" \t", first_ws_pos); + if (first_non_ws_pos != std::string::npos) { + name = line.substr(first_non_ws_pos); + } + } - std::map::iterator it = m_pModel->m_MaterialMap.find( name ); - if ( m_pModel->m_MaterialMap.end() == it) { + std::map::iterator it = m_pModel->m_MaterialMap.find( name ); + if ( m_pModel->m_MaterialMap.end() == it) { // New Material created m_pModel->m_pCurrentMaterial = new ObjFile::Material(); m_pModel->m_pCurrentMaterial->MaterialName.Set( name ); diff --git a/code/ObjFileParser.cpp b/code/ObjFileParser.cpp index 9c5982861..a185ff249 100644 --- a/code/ObjFileParser.cpp +++ b/code/ObjFileParser.cpp @@ -469,7 +469,7 @@ void ObjFileParser::getMaterialDesc() return; char *pStart = &(*m_DataIt); - while( m_DataIt != m_DataItEnd && !IsSpaceOrNewLine( *m_DataIt ) ) { + while( m_DataIt != m_DataItEnd && !IsLineEnd( *m_DataIt ) ) { ++m_DataIt; } diff --git a/test/models/OBJ/space_in_material_name.mtl b/test/models/OBJ/space_in_material_name.mtl new file mode 100644 index 000000000..2f210fd48 --- /dev/null +++ b/test/models/OBJ/space_in_material_name.mtl @@ -0,0 +1,13 @@ + +# Example for github issue #545: spaces in material names. + +newmtl Hard Shiny Plastic White +Ka 0 0 0 +Kd 0.141176 0.184314 0.411765 +Ks 0 0 0 +Ni 1 +Ns 400 +Tf 1 1 1 +d 1 + + diff --git a/test/models/OBJ/space_in_material_name.obj b/test/models/OBJ/space_in_material_name.obj new file mode 100644 index 000000000..d5824e113 --- /dev/null +++ b/test/models/OBJ/space_in_material_name.obj @@ -0,0 +1,77 @@ +#### +# +# OBJ File Generated by LightWave3D +# LightWave3D OBJ Export v2.3 +# +#### +o concave_test.obj +mtllib space_in_material_name.mtl +g default +v -1.146 1.6575 2.348 +v -1.146 1.67177 2.49285 +v -1.146 1.67177 2.20315 +v -1.146 1.7125 2.35 +v -1.146 1.71402 2.63214 +v -1.146 1.71402 2.06386 +v -1.146 1.72571 2.48412 +v -1.146 1.72571 2.21588 +v -1.146 1.76483 2.61309 +v -1.146 1.76483 2.08691 +v -1.146 1.78263 2.76051 +v -1.146 1.78263 1.93549 +v -1.146 1.82836 2.73195 +v -1.146 1.82836 1.96805 +v -1.146 1.87497 2.87303 +v -1.146 1.87497 1.82297 +v -1.146 1.91386 2.83614 +v -1.146 1.91386 1.86386 +v -1.146 1.98749 2.96537 +v -1.146 1.98749 1.73063 +v -1.146 2.01805 2.92164 +v -1.146 2.01805 1.77836 +v -1.146 2.11586 3.03398 +v -1.146 2.11586 1.66202 +v -1.146 2.13691 2.98517 +v -1.146 2.13691 1.71483 +v -1.146 2.25515 3.07623 +v -1.146 2.25515 1.61977 +v -1.146 2.26588 3.02429 +v -1.146 2.26588 1.67571 +v -1.146 2.4 3.0905 +v -1.146 2.4 3.0375 +v -1.146 2.4 1.6625 +v -1.146 2.4 1.6055 +v -1.146 2.53412 3.02429 +v -1.146 2.53412 1.67571 +v -1.146 2.54485 3.07623 +v -1.146 2.54485 1.61977 +v -1.146 2.66309 2.98517 +v -1.146 2.66309 1.71483 +v -1.146 2.68414 3.03398 +v -1.146 2.68414 1.66202 +v -1.146 2.78195 2.92164 +v -1.146 2.78195 1.77836 +v -1.146 2.81251 2.96537 +v -1.146 2.81251 1.73063 +v -1.146 2.88614 2.83614 +v -1.146 2.88614 1.86386 +v -1.146 2.92503 2.87303 +v -1.146 2.92503 1.82297 +v -1.146 2.97164 2.73195 +v -1.146 2.97164 1.96805 +v -1.146 3.01737 2.76051 +v -1.146 3.01737 1.93549 +v -1.146 3.03517 2.61309 +v -1.146 3.03517 2.08691 +v -1.146 3.07429 2.48412 +v -1.146 3.07429 2.21588 +v -1.146 3.08598 2.63214 +v -1.146 3.08598 2.06386 +v -1.146 3.0875 2.35 +v -1.146 3.12823 2.49285 +v -1.146 3.12823 2.20315 +v -1.146 3.1425 2.348 +vn 1 0 -0 +usemtl Hard Shiny Plastic White +s 1 +f 27//1 23//1 19//1 15//1 11//1 5//1 2//1 1//1 3//1 6//1 12//1 16//1 20//1 24//1 28//1 34//1 38//1 42//1 46//1 50//1 54//1 60//1 63//1 64//1 62//1 59//1 53//1 49//1 45//1 41//1 37//1 31//1 32//1 35//1 39//1 43//1 47//1 51//1 55//1 57//1 61//1 58//1 56//1 52//1 48//1 44//1 40//1 36//1 33//1 30//1 26//1 22//1 18//1 14//1 10//1 8//1 4//1 7//1 9//1 13//1 17//1 21//1 25//1 29//1 32//1 31//1 From 7771ce5db2ca6b7dad4a5755a76674a1e7d5b58a Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Tue, 12 May 2015 20:59:54 +0200 Subject: [PATCH 19/62] Update regression db. --- test/regression/db.zip | Bin 1467844 -> 1470745 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/regression/db.zip b/test/regression/db.zip index d1a4edf7632a5d765696128f191a10855771b876..ee68fc8cdf83b5c3975770a8dafe257fe206e332 100644 GIT binary patch delta 130159 zcmb@ubzD|Y*DuT!bSWt*4IfFn#!i>gytCXJ6r)3F|JO-=?IqA%bE%{CC9Gq~bwl2h%@ zE;c8#Jwjs;VQB4O(O*RV4Uvd1HIL{2mNlBk7tb&6Ur-!q_jAkY7T1(>l)=P2B1|KG zkk2xb=tQvjYz2|PtbdVCcmKcy=K1GZWYZP4QH6bh(OUs8gn)0T?ElV_g?Zf|E}eDFZh5XW&ybTM_g*Q@(8yz`bd0^ zSwTzh$7sE;LZMSsvA<})Qdw6?>R7VN=Ur%8KKl}XO|r@>w9IYxL~4X+&lD3xvTGbc zvsJ?wlY{j5X+cP~so$(=HDeb3>F(lL9VOMR%{c}b#%akMPN3+a#&N+qJWYOLsWNe+ zH(??qb>=Ds_YC_nhVNZnxCN@%s>;YgZp!I*4GMpT(=zZW<|J854o|&)220U(^2T>B*W$}Mo4PU8O}7Pl~tw@q6)oI}8o+i(d1rtbb(AGd2~hreT^DKdWLmN@`wMM3oTG_{(J^LRy;B z_zj}Bq3p9LZ#&wkouBqrubwr{RDu1X^=E2!7huJ?_*eUF{8b5`>JN6e4UMKG-m|SO zHSE+~9;{=Y(9exo-nb`XF<^hUncB;H&6UFLx)5QfS!i_d_`Imfo6X};Ab1v;bb6QD za+pzEI5Aw1iE|hp}7ROsbz!MS6-n)CTL$esV5CJ{(s?8oyuDfwNry9FsK2p$dO) z;C!8zPb2xtXC?Q@T13dX%uPfyfcCJ}Utn{!(5mQ{T$oN_fpVX95go_V@1^?{OD}79 zKDEBLHGGC7ih6B&@N()k5vuWqpy8^UIolX1%j?Xxdb&NXGR9ZsO*-A5nGiSLznXap zd(1rv&M18waN#z+B)WaQ@gYx_?J4{gj~176fD~gnnNmo-hON)%?U~k9obKfIz*BDp z?5d!z^*7JAkq2J#{T3vSZ*$qCeLJ%Jbz^o*-wTCN2v&__o6NqH-I)_ksa15WYb#z<*Ihh9Wb%w< z{<0$1yE|F6f1&u!<#rn)9{Qf+_m7(6ZL%w@;?SkmsM9s_i|b2Qt4U}Rg9^W%8S%9c zwqmiz#dVaxP;qtBizoFtZ&OzS7HY$kRQs1?NHK6ZOFMAfHhh&g-n&VYW~Yy3F2cC- zhpF`Dd@{S|JV`gCdA`-%4P#`_@BGw}rZ&{F;Y8Q&*ijYku3g~8$7&&-p(e24QK;$Q z*R4>ZYt^ZO^wcj?@mDg&@TAY^3bn&y+m;BQ&CA?b&FI_?p`EQ~^Pe|rd zeY)CSj0#Sk=;Nvu73;Ccc;mx9c}9$(y6MsUZ1@4i<8g4L7&dkOgzjO78h5zp_2K<} zUqqDk{FDW&1eqBM~(4)eiXoCxN`2S zPEE2=BqDF3&^%(MKEBhFR{cTZ$R9#cahp^F-RY}Ee0`f5Wsi%`t?U@FHWE-CYjDk$ z{g}t@ef4X{hau{aA9K+s|BIhR@!RBHL7X_-5qBZEonww&@?&QO*+%+h(SNhW(%+|Y zrpdtw2$(hAw7h_&t*5sK03+iVU@Whn17?(li5#%OQY-+$mSrAjs=$5=m|jKBH~=hj zX#zliCmjHDy#4?%;7tRRY+Ee7D%6ADYh?PlH$T>xDH`=#s1sk+~W4@xtVV2~6W{ zekCfYRm)Y;Up@KNYjH4MgFMz2Q2CRDZ{D1p2NAI|KthC$sLie|eVCkwnEuph(O3l4 zGX>X^?1rPDLD^%b$k@cQ9%&4zqJpHhk(5|!Z@W%4h^gJBbsG_DJ;xpP-g)k`f9iAc zbLLU65@b!1o2zlAGSo7MG8eKhw$r_^Uw4;7GtVeb5@jrrBL5_({;Wby1Fg}Dz3=ws zEIoHux{!+w?^!yxRsTqAicV~oGvSL9h{w4sRA|VE@#E?KAMq=2o;CyN#~@^qwp8*^ z=S(*ZZXF~=5CN!vik3YZ_KPNmlG=+w&+k$wiz;v>g>Tr-U0x`iBD0}PoJGERL?Ydd zAlE0aLF(h1m(r_j-y;#pz6&kDl@N<3rn2*-or}nvaC|IIq$GvupgZPieNv?{gd+VG zB6{SMUynD{cEeJnsspg9w5Ns~ugo|4gQhS;$*Sbmu>UF-65#38T)qqi{H`F)RX|iW z+EDv1UD)O51UTdr%&APxIxEN94`J3l{Tz+2#3v#0Oo zKU*6fd0FT**G9pEZTW=c-P+lJS&w~c-;9m16U?F#ag6TWyQK179QoHf7d{n8-0t*w zJ7;=yrf1jZWu-|P{>Tw0ySgW=iAE+8#uA3zhg6gY23PGWjqgiQygxopk=Yhfz!m!A zcMPrtKS@96V62A03R>fCU#r3qSdJ}e@SH88Ql=5s!L|Vd1R7riFmy-QIY+Ir5~Yu` z4`J>IYrGW99i5cBN*{kSXENfbW^PND`Vw`Z{iIR)S`ZeP7MA@fHouJig}cNXa=j}Z zq15cO#Sy2Kat+r8kSiEue4~%#Q;Af4hJtNS-+tC$7 z@{i2Jv=dhQ?qv=`{3~-lPJUB9J~-tsFuw9LrB??^Wg2W;YHXiBaUfEeAW}ml)LEpF zP}ml=#^_M<#Jz-DlNPQ&PNl6pfzekct@!t>O`Q+7oGK)QFX`JmkV3g!BII@-}s%Hxs^VuA~QC` ze6VvoJ}x;?QztE~qR`&ockx1)=e;YG^-VPdzUzv_f-U(Sl`zH%KgmF>m!6K=*g6EpL3X3JAmuq^s+ z>dw2b)Sudtv&Nv1oJL+?O;{JtQJ4Q{>4tk4<6=h_XZEA;}Gwh2}LQ)RdK(O|$fzimt zGZ1rh$#m(YR1>4GlO1Z=KmY6|BE{}9D>;zx`VD!CBwqxQypsZhXh~Y1N!wF7fns-$ zvKiv4zVWB{)~3--kLj0Hq)n(8lRlPZI;G&*ioLms8Uvrl<_&MKn$EmRr!{x=>@l;7 z*~Hpg=na~}4lSMG`k!m|@4g%VCmvXu~J10c5HJNQ8xzBkV9`oudl;{n>B^b|$@ zl`8MzNKO++r)JoGK^RHz{r>I8AxGyz6aQg2FDBszQ|f@^8cbMmg~)P)boOH=B07(P zs^K86yOn6P(c(ATuur|`6#t~+uVpsPy%5AXcS%*`{-PgZrz3lGUOPoqns%djA04>% zD+@|u;$cdhNp`q!l0q1AKT^1!I0Sy;=F8m0z0{&{>smyo#;^7!56RefO5`lY3RSC0 z>4fk$*Pw6OKW72IzZLCSbrm`(#F4gmIqXvd;boiUvq9Cd8dx3O4Nu1^)R9Paa5wj4 z6mD5h`(8R6JO04=>Zk=-_-Xb8SCOvj_XLM>P9`pFPAbeqwRo6&2c-ks!U`4vP2P+* zE=%_%Q&u9%1!7(CcMCN=<(GdbJ*u0jgkgObCFW(`mq@e`_KsS-rRAg(?UL$p4shQzJG$F0Q>) zcYEAdr2Pg8`T2O3;qvH3oiB>N=E>-Yjn~cA^A&B&J_}Q;ux*xm?fB6&eC3<3z)Ij& zgiQM5F#p;gVFZsIUi@Mo{Y*|x&0toxit+0yX zvk1E-i6+cqn|YLT4Wx^l`3SzwFz0d?J`MhJ{TtY^b&d(bLh3>;W{FfAd23X^I5P&} znw+F2G6Le7jyO$Fnkn5;*8cOB=uCh`U1Ky}&X8~>o-5Cr z--vk)g*Y;K(HDRBP`9Ki4x?g@)aK1mA2ry(3Sq0@}elZ{T+ zqI8T+9{vuxSY_o>k55f!Hpi(%IwHq^j2`)}bCXUhU^oXu*(RfHM)6=~v!d2Ncr8&l znvT0lZ>&I0$>vp>M10CjQ|1F#q#QNxB`unZM1f;`PBe7KMtQRqj!|`W!)eC1Nv2}}8hdrdJn&G@IL}5JqbMFYy zyS`^%sqiCwV%Q_-Y+}XM6Rv*GDhW%d&Bk&T?)H5TLvOl6_&C3aD85C(RnXh0_F3(B zgw++kZ4IPTl8CN+{s@ zw9dVk(FiAsu*zRx)Y)#uo(_szQ?C4Gt`C|0^Zk97dvL{v zf~u0zb}l78qC`penBGM4%6|G?aLHoqX?b@D!IY^C@lABc!PD0r?IMC0BsbBW$@3@H zx{$_~w$_Hz2z%9%-Z-J%t;dG1m#FOp@3=6|=8RzJtig+;qUiDB*M6I}?!Ps!cI+LZ zh0oCAzw$(SPn~j|cu{tItkZM8*i9_gp6_ZLnxFS*8=dL1=sCzsh(35v_E(J1)adS)^be{P#LbW;X?B(+)9r=%oC&chP0Pi${{*u=gLR7q?EN}pIauB zFfv@3p!bHjckbX=O)F?cnV_)4AWqP5ANPmgXGJ*VVw;Lt-CF8x-fcGWPvsu2*2T`*bB2^peL*(T)Z#Fs-ICN2(>wY+Q_zi&{nYavcMZ(wo=oA$G5K z-gsy<^J?O*T&jMp@GlYVwsufz5Y@!Z;nQ{>6`#AXbQn%V{Hl*>;B$0V!I+jeS=b(% z6t8+S%(4JER=)FoQQGT12!+&E)~{SGeOOMuiSkZ3x@B;hAWyp7xeCWUJ;ul)gBiR@ zISf1_n>IQ_XJ;Oqyu?r82SszI>%3Lo`Z|n?G}pVTWBZ!;JJMW2A2<2XuLc(TqPgcW zb%JugW$s#mx1T&|@oa;{gYjY#4P zLgznJ*Ry(%++O=yKMKr#*QeQ5UWG%A`Ih!}l~0Q4rb(q9wiYmo7b17A}k4jyxUIOq`c|9jvomidSVJv#}}n1Def z`O}OM++Gk$g2<$l4B3MRw4$=p`XSka5qEuUB#=<%$&&<5#ZYlK@E#Y@UW@IK2d5M61_eFDG4)wcP~C(3S+9)*LV55u>rLR-X9YC6oK^YIj)t}*kfGDWmln|r}aO;UcqQJ-(#Gn)aC6a=?0YpF!dIq$6K>;EH zkUkY?9^eYmfXE*F<$65^5KynI|I7#yd1wbeW%~Q^WXzyIpld!W$OK@bbAamp@uKT{ zI6#pAQ-d261fWG;Pzr!N1VBKlv>rzYR06!UT^RHn;O>cn-~cUH9JC0~EF?j}0PRo; zln&5hW$)+bA=ma1%dp_xz4~qb&9!lGaGCS+u$e5XDJk41OqF)(H4qQK&XbqW*WBkz zA>1hXl8nZ}f2!qpnyOPjF6NEL-;i9gLifpqu1H!gIn!)w9^r~-BX?3p&tmM4qz-K4 zP4ZhC7)MJNtxMFKu$6@{!B;56B)5g8TGCSKoby(W%CJXouVvWD5 zi&Xf~oBR*h68({sNIhMrMX~24>R#~3z}D_~jCLz^rafI2O5?Jh1b4UxwO}y(_&v^i z3^U+-H@A#dP2TgKZqMrdL=}3vE5#UO8iAAFyw820ll#1ZFH;b__dJFm%O1nxi4Dy8 zJ))ewB$PYSdG*qG zjsOenTWSki0u%K|k6ZZG*yER5y*U*e7k1KJSe4*XGy|V9kNn&d)TU^Os&&513BoM9 zYa(@YH9d=s6?1N!>pvlBx26_!n`8!cHS+Ph(%^HLKIS$#n?5J>d-DOYi?R#CFWJCK z^+6bwY)J~X{7-(|?nz&R0Dozmi2#=0s#rxavB=|$H}nonf@Rmj-8B{59liu7fe7^w=b`bKh|85?;CPCcmv_NuR3uI*T*+hZ@XmA zDfNPV-e6{ZSP433`sKu&G4^ug4bL&jTMr{+oZlS8awFv<4Fhp~7UD5z0_E;rS~c7s zk#@2_N@EnkgJ>>Bx57gl>7XQuX$4XwF>ulE7LTt7Uf`Wo;>{?vh8y=oR@ljs6B??iQeAfPK8I~YX!pabK7Kz_dWI#Bp89pL8UU^6!6T2y-| zk|>wrC6r{5@7iL2i$^U`gN5;EX{a)xebdddiL-q(pfd0-On6r2z)IW;DKiUs%o}g1 zGjzb%293%eIrt`N;K2K84};%^OL+$#CjMsk%=Edvz~Cz}RkE`fofoiQ@A5G$&=YvR z9qCDjvJ{QAk$Cq*y3ZGGIFG}AIa{b=YCh)S}x$SrG<2femB8tVkZ}uQ8V!-`N?V(HYu5-NZB%>gNM@6vD>S-OP!RPnv8>aP_)w* zPTyBzES+g#U)exPSsXera=I*3Av0Ago~T`3yUQL*vg4dKCm!CY3V71cgV-u3%TdvMDEzlcjQlfn~)(M-8d;l_zE zdoG{k+*wEVtc!au^VUt`C*{^$|4k+87ehc2fH|R#1Z6)67TzBP>UxlCL^NpP!C)B1 zfTSLlIlL$iMDsuzivzs|R{paD&@}gh3W10Isu1H42n%2ej)0y4>S8epibZ_rdNm2! z0c@?&1qc^@{T+n!Kz}>~+Ch0hcRxWRfVz#Xfe0}kXxj&%x4@XMjzNb2lKTU~|DPiP zRy*|KU)H$o3Ump)y7>kKf9O#A3JkQbw}pU#%v8N8B3K$|R*nSDfIMUq*_@F(>){$` zV0y{_c3~iA>Lka_1eaO?U4j}Y2Vlcto#^CfZlA=4!M*gj1cLDB8AKu_b^f=;pCrw& zKKDRnj}h1f<0PJBpG&mWl?Qnww@Pe*=DGDn>LxQ2W;2ChUDMk~6&7`3t-*d_e15x!dF;o; zpU1%IdeHNf#!P~3;?VWNJWm*7Qs|bH)DjPdf$<+c5iHJi zf`J*A#RZo?%r5*K|1XJx0Q?P*(D@TEH^5{g`ODNI0XqQ9VKVR^fZ0m{2GnYo0xSwJ zS*XFX0CJ}VGjc!ZK!FZ;9iTlZA+b^uM;8f^VgXR2>;1V;c0r|=&9>46Ksb^H5GwC-RUU^qn&@D$LM+8b;H(1Lxy z&H%cFfjt1^=?7*7+LZ@@fs}WBR3LZ_pt*#AwSjgMp+J?SEPV}ta$xi8u+gd8I}R&1p0Pl-IoR*rpzrD4AfidXA8ilz$jux z;9~&slz_D#+QH+>{!U&~8TcK*d|mBsE}U;G<~kz<=Fdod&QNz)f!g zYmz^__RkDB7NCXAgSj5oJ-qWL81O$mmci%%Gi3E&FS}R+|Mf)uH^CnOF6uAvDDWwB zJK!*YX7L-m{8v&(;3j~EatihUP~aJu0^k;1f^`6dcncl{wz%p0MnF4uM92`py+eU~ z2chcThe=Zbre#myOK6b)ebM9o->ZSfi!IkJc`F|uih?=ApVR)<0I}g&iWnrqkBrO= ze;WGs{Il$Be64uEZUeh=ens}H}_C$eNoK7}8F*zR1sT9gJ_rXs~ z#Xv=6X@*uyl$TtiXPb7NfDPf_w+?BIID%c}d;6~s0YXmBdPYnLaCEXh0t>a5a94deFhbz5}>KlK>n8UyHFa^Jnmoh=dY{5 z$-&RY!)TR!y%U}_n~6fj^Xx$ zfnjH@!OyR)f@eS2iEL8+Ul97k8~Njx(>xvNu0}Rqu1+~?$x8Mg;QZhj!wDnF3n*u- zgYnc`f10*;`BtJtsH#)jKR+NPcKR-bncST#raV4iRWr#xI1F7BC#~meM4I)<*pU4v z%BsgdMUP-aHFX=0Jy;8B(6q6?W7%hbK;uQC3$@27OPOzF)*Z3B6-`JKN}bE(yUZVd+cuzb(xm+o zN1r|5-|FU)3+T~c!|_6eSAWE({rI}aWSRE+irRGVuo>c~vM=u_6uZczyS1E#81A|q ziK8!ksJ1_C+`gNbF6RomWyp`U{Y3|QEJ}nK!eF6RotifJ$&$$akDv&;wru|Hn86m4 z$!lkV-l(}AGY9&yy}8D4{3*ho$XSLX`u}n={z*U>8y|bK!#x=wq%iq>RRu(MOL0SW z9r6T0&p<}*lLF5dl3M}egG0Fu-{+fIc7;8n+p@5;@rt-DKOCqQQ#>(9xJ2=v8Qmj( zk;PnxBBdlnHD#fSVJI0OP*blv`on>F+e+4cvT;%0ylu(r_-<);Sao(b+HCmy6K#?` zrkANgn!$Aa-7!SYsKqcPs#;ERWog*tmpn;Z$GotEHv{_`7!l&G*X`0KpXQV>HaSeU zH;MJIrhE9f->;&r@H9?ItL;&JBQ0j(%DzIYi@8?0D8Fe@`%M>e$qr>l=_QUD?4XE9 zE>d=Yic98LzyhC(8!ooNco$eNah#t<+#jciAN|xPX$uQjRhflVJc$YTy-Y=6ouO9s z3Y7kxvrH*$Q2*JCP2%FU!D`(vg8zUdVgg^dLn-^m3X9ucV&bbpTkP+^+M~5HaT+t z#>6{1cI{^^qUakZxwA5828M!Kyu^rv;7|pk78I6r*GE`S5 zs@yg{As03eHh{I51w`S#I|!LX>hl^6Yw0*ViQG<|o-A)Y)HEZ*3o7VCV-+UYQQ{Mp zV{4g{;#OwgfwgY=1#oJg@7#j5h6FmJm)5|Z$b@lcbJnj@Jy*@@ED`(1;sbLymAWz- z*kaHA)YW=9$?#uOd__82TkFacT<6CCt+tWe9xU6(zxg|9- zs{3UvTI$<8?Vy^TinU!S?`LI7sb%nHdjC3T^g6Kr@>{a#(FST|fzeIVmd8z+dh) zYb}aLmv~`YV;PKrxP&u?@78VjB-B9}3qAhUuEBpS430{fW+{(&b{FY)^=q`(zOi_G zfV+oGj7aRJ4r1FP_VD**);oAcs`|7?jV*G=8Q2d~b2XC}`Uu8<V2;(=ebFEX745}r*D0v^{}sb8g=inZl}LxE3dI? z;=#M-aF5cYJONU~gGFp@x5!MycHKB&tsY_YjpLHw zJFBTYHT^&6M<_zf|1`@p@Hmpr<#@TWNO_3mCLj36L+~5vj}7LQrWfZ;9_R^)ZXo^N zOu?lhx>&k%1l{yeu;OOTTGA=fL)pvx{7ba962Ho9)6(^4>Z3-_mDakh)Al&$oNf46hkP?P&)ndbYLnF!DJ1=(5#!;{!A=%g z-y-Al`Ku`PNq;7&kiOd*EL18RF-{-}R-jePQKa=6T5b>;EzT~NPONHNZ+h8ty4U1| z_?f-Ryr#eR#HPl?6C(!wU2dXaAZ)&YR52qsH@(&Gb|R#znuSpJiP*1MlpQ>8Vejd_ zxhL=;QCNb(9v?rU-u&;ZV=Y%X!$tW=Y@d|-cJq!GY(5QY4L)aFVv+l;ruys<4$14A zeXc#&n96E>yNY3Z(jm0)B`2Xb#~S2&uub z2I-NCmeV_0$gZ_4w6dK8WCMGaF!(bA$(X5K5nc=*LD*;PzFK|`_I7k|G~!vPP`p_UAY#bkYE*k7H%Yout8VIVsV+!n03-RmxKx9lnjh71{$x2BVOF<5KY0}V1uFidE%+@TnA@h&ttNdD4 zPDz1je+V^<s8~Epr%EZu(`+3?=df&sa1PWHJrd^X&vX1<%)e520I3~0sTy_{*NLkQ7lNUY2HQg zaBZxx3#OxV;h&X1Zz1xC^8Rxcq$_0*0Bin9x6Fh_s30ZY3FG2BhFNJ>M2KM+Wu$z- zt?kjTBJ=174$TkyXVo)6!&X1T*@ z?{`t$M^M|KJe$&4+8zWU?*2AzZ2Z zNM_cQ{uAB_=~w%10E_gXo(yJTm+e9lj6zwxZh6Dz9gda0o(IbgK~83Pkp`Y*DKZQV z!1}$^Xou3dS%CPFxT3W*m`K;zJ}Wy4R+cqDQA$5?%R4t{pSkZ74GrowB|=_Z*ns9Sk?5- zwyZ{h1ktt?N(L+js{y;R-#xqbJgsGp=(JhhA1PCz;yq96k`FJslGduf{Zq*{qBmY$ zN&P|op4>>%$0x{UpJMn-R!Y;@KP{%HgrsG%^^J-ENWF z4x^N|?GD`PBw+S(r6q48OMSPpqix_6xsx(@Tz>JH=e#;ce%naM;IbR;9T~qvH(u3S z?q4kzYSeyRB*hY|b~3b$_mN&HaNn*H*{mEx;I3E(zioEw>$>6;5gawp3Ui^M2)rP( zY-Htp8%F?3=g&aOXQl7zER7SnSeSoGUcI4E)k&z0uUP7nBwNT$v_*C2L)QjdYnOgC z{cD2gH6mk}cJ!PWcI+Wehz|XSJSH-o;>jF#>+d9h7%I~uaj6U2Wb;`;|$k7rHn zjQeGK6lE6qMHvjVU8tEqt=mwa|H=6$^+hGt&vEHO*b5Vj8BBSCai*A%vk&XbwfYT8 zLE!Jf)XR~I_6G}4!MdHF?^J|tLd6%H?*Dl~Fa7PsxuD@7+f*ewl|#O1#CSl;sCFbkw1<&O4)$S3KSz@zl5 z83~oI&S`Cz1z*wTJ!z{+!sc{2G}1gL+|cbidSiBxmt;4wt5igA)m_Ynif`DqYUbdp zeYN(SaMZzP?y|JCI(3eWKgDNLu7+L6KGV?nKnW(kx|(jp+deG03V%L+If6c}$b#z7 zoIk$I61bk>u~y9u*?SY`=l>b4fkO((PGBheH$UQBk*rv3=UdCKC5oy)l#zrARNBgJ zXje1(>iJD7L+v)RO-}rn_mj?#G)HooypoE;v1_{2689yB&ot-g8X_+Kw89Z)SuH0j z2cfXF1|~%Q8n2|&!~HG?Xr@E@nEHwLA_MZ zE(g|QDXVopNRvJ4yn@SLg!_!~Z1-A;tZd@19VPR5n&_SfZi;Z8?kt_@8Kp-%G`PDC z^;et?d+eYK7q8>%G^w?|Fq~+1eaB&ZQdb63^qs`k^PL##&Jb)E#Jt$2npln(XqeaO zh;}PZx~q+buK%E%$kpZ!GDxM3iND)U%S!a{aTQUHq_*$UQM{Q=PbbVw#D03p)71AC zTSKz8vwPd&%&4jP{XNyrNGrWCeuMaip1WvkKy2Ev4 zosFFY^2Qj}?hYbB!^b=#j=cmL~a5SMkkjTgQ-qCoflodba14E=_byra$_@NKU`6lo=*}pUU-); zQI<##rbN5HKiTT*7c%%fOsMW&J2FL5%0hJW^dM4SCLKy|LYSLIfTN_tNwn8A2kX>5 zC?T0d-iNnjjnIP0NZZQFYSTZYpX>cTFl%XOc@hwJB4H7Ah;Vj+_O){7B8Ru_Xm3eV z$ojUrF41M3bteVeY~blAQS}=3W;Mnp#@@4EY-u(OJU{hbc#V*LTC;mLnrR`C?>Dd% z%?G3IkNO?IAArd@P*{FeN7B62=M57}`24#tQIY0tiMxg6!Uav(;VSzsY*&13@bal= zjmjM^c>=r2al6$!Ww?F^8#D7x1i@B5YtjjE)g4hQ-t=7r`6`U;59~yt7pd>g}a@yBpTi>c~El%!_F9zK#-CnSC%kAFT&fJ~r zBQTfUnQRgg3w^p{HNLBdY4-07-AM(2-)kLTtny^6?~EO#e>4BeEtB9c-*2^AAVadP zJHLeg0clZUFVf@Vt9H;U*sDtEO1+Dqr79Q5n%>tgI}nY4i;jt#$c@~r?l+nS>_-PM z!53XIR>F=pR1-4G?m=6`IBf=vv1h3}M$>oMLQW=8dxr0z6C8F^Dq~%6dL;s`hTjEG zL`=Ho{S)#hJ_Z6?l$-xWTbEb+Q_9EPn~@h8dBV$$Ms1*^F_`!=H?;LXzk zUZ3_t671ufUBe$uKbuo8l3WlSvx7<>4fYb~Hhmf|V3i+G3w-O0V03%AH5Q>skBXaz z7P{aVNIid9m7PgH+)Q|TSglc^$`TibPducx;l1&EdA-EGE&sHEPCO;4=v8>LfzwU6 zWrJST6Ba!!gkc!B9|6M#ajiUQWdf>tvw^AiNrNmCyyV+gCE<@v20b)Gd!mzY#yqqt z9a~`-a_PivVk28_0;5rjM*M`+uK8B%jD~}837bCko~=EKE;%fcFFlnZA(Xjftcu&@ z4{k%%+ZVGDgn`8*Q;yk+eTzkLj~2s4lehBEC1%8igA!qHzY9vI-EL|l^vnDI{30&u zw%^ST8$o=ecv6iZG}FZH`EFsxa`H~Xe!D5`uA}5UK14rEGzqiIYl>~Y3RW_=T4nea zHZX_$xOK{hPnRbsmLxSMC9Ob%PH~U%ru%OCZ1_*^i{rbwyHG39^sW3q)U!?Og5MUj zs$TeC;5cyL_H-6p{%71!stL)WdT^PQ-64PL6TY61zeiiby&->VD^9);`G>SDyu<%* zRI%j`Ap$}UXb^-JU^0dLWom>#2!J%MZ5YJ*;p~6?d@|&3eeG*1BoPQhtkWSlKs(<| z$lrwhO*X_8pt+^YEQ^pAy;W*Txb5t!SFXFLv_31wc~ysy1@@yhnkK1Mzq3y564xJ64? zU#1OxKkYf;Dx4hQIH?;&Z3gLp6_+t?r9$1eiw#dp#%0w&#jO9jW3+ALXKY@yEN~wj z=JD|t%HEeQpW!Cm8d#`t>rS@F2&WOa6zqscJF!a(L)Zv%m0M77ygS6N-z4~SQ!7O902^# z5=0`cm_+o1?+L}>Ku9mv|EJL39*Jfw3Bqg%`pP7>i*~Y&C-Onw9PW9EMG8+S2MfYe zWFb8d^D-^~1#W%SO9(^nfH{y7g-Rhka3iIlxj@{n{Kb391Vl0*Yr3vtKM7-4OEsi_LQHXgVhN&G%}#$b(`i@- z57!4%!MOyWPY56`t@8hQ%PztQZgcY30G=#@h5pZ92p^Y&HUWRCJoN8TJ6k2_p9gh= zn;SxVADApgP)k6@$tF+@V3rO{p?^11MGNTP;%xL=s29)<%LcjwpzC-4LcbiKf4Bdy z&QKdbx5eF{uYo(x^>u6>@GMU#0ZjD%%pPg$G!^41_P6|b%x?ow^=DQu16FdhG=6Et zC^#0=!}HeSj0^t=@@?1K+yDNlC+ZuJ*)7*%?fB%rs@B;_9Ss-!an*XY4iE6SX?R~j z+#}^9Q}v=SUq9%{v?{WdS&{AQ=hw3z)-lUD;Gl^Tq4$O1X}$WdNTMu^28m%7!StBj z&8;~Z^LahJB^C?5uy#BMBL*WLV*!~O+MNK5ZF%k)!a)Y2A(G_raKymOdJ6rh0_isD z*~#bCGYbwCQ@x&xxjZTHoLFZ4^N&tgl1go~0%>7InZ7J9$(Ybj5cNfx94p)FTAPLS zkCVSAuXo*a9dvcOE{gm8qC$oZ`6lq0#;&5wGvtY5BF@ltt*cvS2IJWg4DHgq z3(F|tv$|Yv0rx1n!5%LBP9uW$YK&%zb~aqqli4&bD}MUV$yD%Z)gCntC&g+{=D+0w z;Zokv;Rk)e^ML~YU?$_67T;6&3m@n+m_GUoCCIKYJmPI)F*H~Gursi=S$`J!H;a~f zp;(-9v2B?-9g#zhF}0Kxhmw_lZO~{F*N8I`v0&{tX^XtO9#gu=Ke5+Fg-T=1jlc%qs=Yt^_lMmyXZVn~`-Tx^Z1n(NYmvH<#=jK6}og@zx)22)t`=gyl`? zsWoPk-qfThgewdxIf!{Aw9h7gjQnwUhmKzF>4o)!Y~~hoV`u)RWynBJZOi%xWMg3H zt4$qrn4o_4>$2Fs=Lam#ZYs@i-~WCjvvOryvhA1c0KxxP|q zdwpdg^2!-X@rUlaUO-7~ebyNb=@e|(9+V+zYKEXH_U@5?Pt0nBf!Nam87 z-it7S3_6!*&wfEurZm;2Lb-~EWM7IJ(wt&ZCygM)Vc_8$3-*j%R=h6+$ z*3tOJ%P)3q-uLsT=Hck(0p*``B{Mx9Zj7&Nj28t*WOt=0YQu-F@isAZ7NDN6ffx5z zb(#jK?w^+f#`jOUPUohD^}GhoEyqgw-gG&5vp?P$PSZj{UISch4eL=_d%Gk&b>_Nt zSoZf82dg8pw{6}hI7#RT=xtk=v93_d{D`OQgawgYJHG5ZEp*iW$C{d1*_A!9xm+sa z&Sjhy7JvRPjDtUWHnxK!pwS|(wvQHQ>UT@us^MDi=%q~cX!Zu*V_m{y%ljwM_a|~> zi-R+dx$RILCA&;Uy#y9?`Re<>4!Q^AHGC%?AY1egU4W)uJr;n?r1HaQADvvt8C7!P zcoN2BFj3k3*x!U!2H4Rytl*7X(AWLe+WKU-KCZ{$)+#iRX^*yDgKK?8MLnBalk?@b zH8zg*@jvr62V8$@^M+ozJ$v)cc+WO}NQvoxu=dt*RdwCkFu9vcE)kXP zP)bT=6VgcQrli}TLlF>Z2^A43NkOCpQ9$xrd#~;D-1mLX`=0lF=lsKOFy@+btvz$h z5!WaL!k=^nO0m&T0*|lXr1ig4V$X9y{vO*JeShvb^&vFD^5b?Q6ZgC&IDN>|viQlf z33qab3IPW;F3+8rta^2x}IM)QqP%cAw#ryj0HSr%~=w~G2E_B2|U z1YipHH`?roUkQA=N)pbt`|?6_16zSUx5p=f7nbF!lRzOsage^syIWK%ALbiU>TM^# zeN5<|kYY(d7wX1MRFs51sMEUY^06SOd8k99Wq$W#h3N#78+6ex=Smjkd-6B8I6N*t z9jG*&bc%Bp4Yzzc)=*=1xRF}F$}P_0{2}+A`wR>3?2EY`oBh=KwGy{elWBp>)B7LR zkH_oYzQi!Rzp!oDDzvVCTbBy>^TF4}->Qv}Zhd2Q0d0`DbMY?v;_ZT91I&&q72A7D z!5_=RC2M<0hIRbsFF5^lMyGkbDRHK7I_xS@N3Mu>kk3#t?yrdk?Ec_h-fSW93DWDh zoHIE;TCo1pNxkmTu_;YmmXdEy_B-BW8HomR^3O6v6k9zu&I1URmMd!<$EJ)FwpIbt z50^If3oFswgY>%-`ZvU5TKdNs9`)oOP!Q>?4XS-Qxjl7J_Qw2!TUF~zDVx3CEIKc3 zBc6Ahv$;GywZK{-9P(MZ<~6Zu;_Jq_$~kSttAx8pJ0sZ((-zibisyPf;I!?9%=4@P zUk?jwyA*0y&nNpe8T~wU3iZg=jNw$a`1j{Ewei%u*U;maB2A_qDa=HiPraSq+Gf^H zjBX|I=Vo*G5!ojFwaF<=c1}%pqod?<#v|r=SC^TN^KBlh%NHnWYu7ewDInJByO(@h zbQ!*1H#z2?`4w_%SMRz@y8iX<*7OOA%hxNNv@Olsm#pN(?WVYQ+D^P0ngZ(sH;Ht@ zWp0GGPzPtCbBbj*Ox)-%SPKjZ20Ufyd2T>KtP(=H5O7zqcc5bT z5X^PduZ5z}BK3k`Q~$;E=A5V(>Fxa}0$mQnxF5VDG_E5SUBuayOT81c9S_>DvJ?7v3DqhDamBKPd=&Kc_%Zb;> zjwGhDpBa7rhX>2qS7x_8`^D;|bh~Ijp8ZW{uy{+dA?d>xBexHx(-~(bj-BvlaaPrv#7vKvKy3O~HFg}L?cGg@zSR&9SiF6)fXsW-Xf zZ$4}WxXLI$mF&Cqxc;Ue5F{0rpY1jI+|>o0);cF~4eit5G~;_DPgd6RDarND+}$XL z?jseGxQTL?T35YScDjXT*))+RK4A$#TTNywbUpP6L0w+=duqgRz zE&0igu)2J^$vPjiz3DAb-7!Z3RrIwFes$nU{kX#FRavLj+*stfbN+OR!^_F7F*xH6#6<-iDhPZ zW9hKgR6@D)_B|z~<#ZF{C$JOeM!x-Dq?NOa#Du?g6OBJVdVGiBPGjYLH>$7$-kC{L zg>svtmml8NlSGsQQBub$4%}*)!&-+nVFL6gFZ65CXt;5p=zX+Z;m+A&=U>8Rg?);p zAFe!23;fD<9LLmgNYnFvY`Ki}gvWX55t_l|_-V$FV(J>nkX08DCDpA|tozi=t=^2- zPI7zbl~o05Ab04M$v8aQe7>XgWvD9Ur%E5hqr41%a!V80COzvDVijSFrU-S7k1S5RO`K{w40;z?j97fG%jku_Q;JoE&_g1n=!UmPm3M* zBvT;IZ-Jzl5-06T{3N*q^6va1VFvF%Rac#i!!fzLB+TdrBNJEBUq&z2@`JFz2Nre8 zTLtE{E20KceGSjP#I2Q#86Qahod5XPKOg$`7jFzrYS#qqMG^|~z=5^R>DGayQ}q_5 zgW4ahh2Zqn6Q~te@b6N4Y;;Lrb^-Y;5d5VA`j-7N_My(1#(T@>&eH3d!QWpFGvIz#hN!C*a?^EwewfOCXyLAOo=}uD z>ryb(KpXiN$jL^P-`G*cTI_ufNSwhd)yy%8EbfwyVId|3?bnOMq`TmV&XAIJ;V4Wg zloSl4s0`?g3|3dG2Sy0Y*NEdL(N@@rQLygZX6W>sN94iI~XUVBt2dgGWPNkDq3B zUXmYK3klr65@LglsImzEc>ihSA$p~%!OUZTR!M@HVmDPgq!^j@R~ z1_$&dRqhV3Y_dfQ|#RG0K!_(BYrHbWWcbF+r zo$xPb!Nt#zJRjtC&^?#(wRM75NYJaA^4l?z{}%T*hdm+%dn&~Nw*$2eYgs>;nmb}z zhw#7eAAWGsX>h?`)*$Tx2b4pLR0>qdSm=@BL;3s+NOQna1|w3uX0*zf^b>BTU}DWk z!M&%(j1<48B$|^BfYZqGDk=U3|M@y8-e29_hIIG>POq~iew7r3QO_g&Z~1ooP2u@h z|7G7)THiQ2UmsdX?{O_Hkv0beLS+_xC2!9jr}`XJV;_WfY8XyhCzhuLh??6HF|h*h zU?Bi-(P!!qBOe=9LPDRsaan`f#wx<~Fia7WSb=-F;>Wgw_vAhIP(N13dn6A}Cwaig zWDce}savq(uM9bk=&xv%ntM8}u*LQtkFMMqtt3Pa{44vlJli3t-eqjNup#e9rx zZafH4%Mzhn{kHn;8%s0E>eue@SecfhDI&-}lzy^g*U5JPrJokwds#xfF}i>h0*+d8 zAt^pQlE0V~1@dG{NbycL^yQ?f;7C4sOv;5@{2v~Z-Ub)HVI`>==pLUrNSX>n{{g&;w!i|vhj(9=kdzR&mBnl#i0S`F$}DWiiNuJA@__9gwziFr8}QU@v8Yt6QrFW4>e6%4afD!tFNSUV2z@0q()$m z{Dwl_fjl5!y#k!?fhfo!Aq?xAKmJ{r3Uiknatd7$tz}Bd;3plo@&@%!n5Ptm49)y= zaV%}hZSD81-bJ{fJ1aL6`jp%e2vTWF?ogq8BL9U@;gZLn6Xdx26$by+*)J)Gi+*vYQbgs$wAk`+nQ zKw-J?oZnKfCYb@puu%Him)msyPhSnlb`S~NkLtm+Q#sE7_*>APDk;N;2BNc?8pI{S z7Nk0W0mbP`3jG6txe@dU^|P=1t6F>;W&ItKN^wr!I*USC?;gjl?ZNXy2e0r+Hpaf` zIO}q4Be2}MF!O6^W^ukmWH5g*m8g$VE{`J9U7G3;WczLIQp5Ly+U8*ijm%FypKNV`aUj^T$UeUOa@Xu|Io)RJrj*bB}!~xXAHZel*<{U{DNH#c% zBc~u#;B(8YkWr9o=YSM|bHR}tf)9&P=Y^PpHFEhNAOKL~{j-o2utty|#1W(xgdwj% zs!R+*2DZ{93BgAa3CKWW$tcD=qW-)eSL zc=>g`;{4@+o&hCYk_e$|0ljlWSXi;FKCepu(Uwlu1um8`W!BQYv!!L)kX{!KCx3Js zu|7+E!=oYF!L#oInTDkEDipepWZ=$R`wYBa?`lTq&~z8Sit)dBL_Ee?Lt4Z6Q~mc% zW80e_Yo?uIEhPuV$d$w+U!VkLHhZ70pwW)QCa)z&xUH2`Q`D(n7+dMFSa%zZg(fvj zSGqAf4+exin;YEBU<=!&yNLAkBysCOpB=rS!?na!Qu3bJlfH>aUXbS-wWhdQf&M~d zPEC3Id;&@QOn0|@scfNfL*D3vu|zQ)+eAa5`wcftg&)tu%^8=%9xCW3l6^7=bl*05 z!)dhgm8vfov2R--N)x7FlJcfR_wnBSpL_A*dJ*Z_ZBqF+GOwh`X~w+$l2>v1`2$9Z ztoI_Et@bl9ivQSV1}{Ngg0muC9byEI?40JG`SDg8f{#IW(Se)5k3E8Rx%HwQ+o`bZfj8##8NA)90qlDB{ zcVkigc;*3Azb7#Os-MPaS`j_Qpo84L^5WkeA0y|gJjJ0Fv&6tzIYt<3L%=wI!Vs>a zXoOzzUxsqkvLua5TmIB*AkBOpPBrg*p8YD>3gN#`NYZQrZKa3dD&&}_+LR1pVa!j7 zivpEmQ+;B8Qv0Ne8EgLrBvs?!Y+aMt23bzyp*Nqii%3OA1{a&|uzYUuj`B_JG{1;%hrteG&QWg(2QS@7LJM?9taB;k0Z0mazAW3SE- z)!$=_zRn)JjWOCnNRnt=2q(lC)+1>#mMCI9%$_=w>>LJ|386Ms0w7 zhEdl8z%OMN3R8_-u@7_MKYqoG7SxJUIZcA}))Wfz*6g@`#{T`W!i@wya=D2%4QQL2 z_ZUxDSa>*F;LGNPmhX$r_Klw}xIbE^-=d0>b9tu=2*^rS+e5TF!%&hFIvj? z-A=PoCDz>|bcrf}IqCOn1##h%-x(+xLZ??WAxG)dGwo}QEsIJ8qj_kWCN8N<4)$+s z3((AAns43ChmH5I&+3T0LhHO8=<1%lOB{4THCNN~X2*ms-X!flscfmwoP zz5?JHlTLLJ+Re@Vd^}d<$GI<*C&Q^rMzOY;HAL6wZL`Eq2hz6(^VK_WpZxY_jcU5l z={5QR?U70Sy08yJ&B|(hz99N8gM{sC*17DdFDW%84zn3=w_^0~4E#R3c^JWQ>(Y?e z9x<_fs>qPrZO08;CO@Vc)gKS`{(`)M9Wa}42q45`sS6PhAgmNiZAC#?K#C$3LQ9P0 zVR-HX%M4qncON1~f}_HdAx_jdYP}G9dSOcwiXl(HstRQgW{|R|fOLYT98Vy#AdjRH z;(=?p(YFSBGUHxb2MNbLhw*QKwBT6MjSye3@Y!<+pmM-IhIt8b0I8E!$Oo|DkFOxz zl(^EI_mJ!0=N*5<9?aMpPGgW>kP@4OKtSsJXY9d@Ev=k^w1KU7%|UoTUgiP>ux0|K zn4l&6?=Dz^09HzDg~erv8b}GPV&w+xW6%x!W5OGdG_bIH^Useh--bwlZ6UYkq9Fh>KgrhKeL{MD6WBmRQIe4P6n+OWPreMEFfD{@7K0XV9 z(qaZ6P%7M40sn#4w(s5PMH?7$DD?lwG4r2Ai(>;vq2}#xUcDlez*MS1wOwpNF47}Y z-dc~Mdp|XNG!U-!hbdS$clY=B?bnJO)PB_;i(G114*5p<&5kGU({g<2)1P|L(~~}} z7aB-c6i_CBW4RO5p11=w(C}7Q;C;XLfNq4W0g0=OB4snU74GpoEF$XQz^sSU2obaY zCcv~^Mg|gbvSZ}Tk*r|c8+$qelp__@~QbJOIK*pYVe9bwkUg;btwS z65zsgw|B89(&}E9bpH3ahJyI`GY3uz-x{H;KnD{jC;_lu`X6MVss)ncj9;xa#^KtrSY0L?KK7EEfOeeaNda)d>M z-?CQ(^L))d>)!~df^Ww>mFi0C+I7zPz`Nw zW4zZgv$<^!2ph_x7GzxvY}8N7xqEIP60r|xpKl`HEE{WGBC~YGi04vm~Hag z+c#@(a};e@GItAzOBjk0GeRs2#d8{l&vOLbeEWNUjJ|AF#DI#|;L+(MGL*Q;T)X+TlG>!%KtQ0`E zibaf-l$Ep*v9(*o;!=q)4wXc|F=4dyOAg86Wm)sx3$>sXMyT3MXGhfyN)&!mOC|UB zo*hKzoxHYUpC6x@fB!hfqpBe+JfFd8f3swL`=$Q0^thV@`6_R3$p!NLNR}EQIWqW@ zg$ojo-%X*%D*Bx0%q|a1_>x~Vyxo+;*Y{+a%C#mzTYg%8TG18pnzZn8=cUulWXGzE zQW7!}^3Ff6WlYvV0ab%T=a>MI=XuDhq9+fa?=wp5u6oliCNe$O1CZd~3`dg@AdYXX%G-o2*ocUwco5!PiT@w);_4>}H1ls*I-? z6w>nDyX%y{@cqhNJtdzVPMh0YFRfns9$iQec;+7WXrV3WcKXDkhmEyY_3$sho95`% zHRaL3$@AuHgXTAgYka;9GT%<9vZ!Kd@rxkIdGVrQl76|HO$h+X>jDrcbe)wZ|8)yG zH9*`sz#c{HWh-VNHBInDnXdOM0DF`aIUnDdHt_Q2wR9eOKF6@kXT*{k+<3Q7>=`*u zWYDXd$>T`T!5CzO7W*))6=(eZ7kd;n;4U>_$ga>uTHaSI8*^znlT|^tKFS8ATmC$w zt1H97++BqriRT|apZPDYDOH$S2NRYL32W#K36yu5Ah(FM{skI1Z{&`+FZCd01kqAA zkZqEFl{@b}52`b0KPYIwTd19B|M^zlogz%y)mMK7v%u~h%z02jaL#BILIIT$mPb?q zy#r2*&{F7U5cq6v(k&EgtN86`vnyr;fp z*9%Lg2Fb*mp0^G4qoW$>79D=9F@ru|)^S<&5!;q6J%MEWl&*JydAjdb>e?L?+lCz1!|CXdR{yyCAk zZg;CKER++9TiFZ|m1P;MY8kQo2n|Y49F=TGd_<4amlZI(f_xt z20MDN$4~&h2TQp>f#!fCN>&LK1u5lfs0v<3=TAh6H9uY+cTbHK9+3h4R)9!9Sj z+#@i4e~6rB=xf~Lb}yj-j1jhCaVxYAZ0y=A=qr%N)&cDUsnss140uuDc>~4YfLsQk z06HV~1;2;zn-Iras4UpX^>c0x&sPigOfd2=e^Lpny6I%OjnH zHh@&?XDDEg#PT+0pt)d;lsV`aNO>$kzk;Qgm!O#-@8?%2CCG!WK-)m7ZwC#zfr7M}_4YUy%Vz-D z(Vcp^@0jd}A?)(j>^Pcz?{cL!MbBp)%k7k_W3(4+XcnlNFU%PP5SY9t=8x=?<64=byJaBSXx0yf6 ztycsl_T)-)!E09NyFfOF1AYP8blI=<1Xt}=3x9hfCeT0z71cS^kjU7cJCZt!kjg}Q zf@FYjl#pSB7oK>YtAvX4j)1$$UAlJ$DuL?q^iv2B?az<>6Ycn7vgW-GXG*slWDjnZ z6>X(|=S|UbWo27wh#Y1N0#H|oS9r27Vm0-K?M3!3eJ)0I_iNC+R=K1Cc}DbDxIeNM z&N$mB;`y2Y^QDBf;i&s%Y*f;YA9}6+KFhCcLl?j~tGEj_0Y~rQ?>}>(_W%mOECI6t zqkoK_X8r&H%Bs027&ln8hXMv9WWr9G3@TUzNO91>zJnAE9Sq3Mge{d|fa!oW!kJ^fMw!wPc;DF+T13WclTD+mK3Nw9UZg<*hSJC<4yg$05wTZzMZKpwvoY#XH5 zWMOk4MJx{s1D}glfTe)%J*^DO#g$^(RAF4W=9W}pH^2&))nFX>!`lgQEff=~0pnHs zr=Icu_3-{nTu7u1IS%Lvy4N>^yRWa5k}IK!xw?Zwn}{k9Tu{WYQU6GbPtEj(=_*4b zag9etipTE81NZvdH0IU0-?Wd8%|9$2gt#9}MTzf+N@QS>%I=W?x9*Uww3 zuDOjQO`f^8HVR=kQ}S^;$u~;MxGiC~hYc@D`hEV3#d>VQ$oh=ibOYT*;_4$yA1QIl zmgn=m^jGsTqC&|RNLCsfH_FJ#z%J(0hJ}N@Sgs4h?-8j6uvj>*kJ&9?dSI#7H5h)6 z5VwMz$MbAp_;Yg876#~vu%?%02VipHM%w{40O~X2Z{&P+1-6nTyb(r9T3SlRMoe-s z^(`Qa)ArQzht=?-gqs0BhYZ`&4z{vOTLmJtOJ1zQQjd~LPV34o_sv~8Aw3d4M9K&3 z%%Z=+_!GW54ceZ~}2aT;h@_kE|1(nc>W{J!9q7t7fhD%M3O`)gPUp0nK zt~xs9ht(|0e;$zJDD~-Bj(g|Ox|VzT(GFeeo3Di8DhJF*aqLn&)HH0Vo&?nC@z-Kb zo*l0W+m(jCyDK^QIK@qDC*=7(AnD{lVRhx~-Hbv?=Bo~ePHrz|>1oIBW#<%=y3+P$ z2MYBLzi58iwoZIV^iE#j)T^UaFOlouU-xx z+g!C7x_w*QFzr6|Vy)B?)84q;^=*P+2mZLD%LrfX-IU?EB)Mzc4u0+rgy^MgEiaz# zDsBJ%_uWIu6($3Y;ca&q45T7&!0@U_UQd_^$g}Wn~BTkKki3V_^8>>V6!|5v;ItA4UqQF7!R^pc5F9BpA>C4)h`r)WL)%7DnRYws;^K z*#%g93bnj@1WEUqI>>g?<)Rtv)M_}HHGGJ@UZ@zldTZKR2I-wG?iObcgnx`pDbT4R ziyWy5qjJ3@6G^8wQbj~E5ZZk}-~!0BDn_J;UW(rn4a_SJJLLIL_fG-8$Mn!iK-DAx4hJBwHz&jgmj=a zpOj;7{io@h&_Uh*%HLEDrCp;$4HqJPXf^b`lwG}D^lYhKl=Mq;uG=uG8oS@IV&cDF z#npgYH31O;29g2;m5974FgtJ-+)stw2PL1==`j4^fKyV>;ry+h0TL!6(W*FdmfaMLh zz_dUf+bdWN*vd!;3=Z;UyI@Y>cBR#epTgd~ux@aY8ux$u>55VA2mDliAc$%ILxACb zX=mYQm;%_yl_?ki?1}Bi8fG;JS8GJsO8vY)n9O&Q!;I~OIz-7QU04`-J z$LgoL&(kSqAm-aYd#C5PSACdc8z~4dWJGMsMAYdz6=`axlKV|01d|?-SRRo8(CLrv zxY1;%e6OuWo4iCaSRo=3J4kVtS{DVqImWOZfqonSwDXNY7&sTc4{aMf`c?1w#@ zbKK-2Z$Cg3$Od=;UI}MMh0weRp&%W`mJ~y0B35gMs zUSb+d(;E-59PA2Cvwf|g79lpVa__M~AQ63JM$tk}PgJH`uR_D`vMElQ6(=gqHYDJb zkgeGlR9xisLGEYQ+pP@iFfCa*w8O>g(zRb!WH>GuAJzCRKNONGw$Y-w)5Q}rL-_Xt z(OCfQ2aemE5F9|`$Btl|2z(#py%dK7{!3V1q9lCfG>*Ds3=afL_e|kdAZ1|=e++IS zXL&#U^u&-~h5yf@7P00K)uy4&SFhR$V)WGn{Kg1AJ|P@lQ$i)q0WhNx0Ln=o8%H>_Xy{ODIHaf;HI@~@X3y<{U3?Pn3iywLELBOUV{TD@YtV{U%GB{6~U+aLwK1OEV0pM&ARu8FOx9tzI@1;m9|csIyh2UH1IK^2XMg3if!&F9UcuJ>n2M7M4^VuCYhSZ$eyRmbJQ+-@zn8l^%!O8oqJX^u~gFYBwkREdBybIgF`PC2fKnrG`Y*3RC#I4`#C+*w_nNc27B^|AB_Fpp5u6b z%%vy(McL*3YWnU~9vTiN19gEf+_tHm^wCc_>0V?SN0Qfwi~xz>+jD16(M>cPw09>A zbvhBBr@45AEC}P~{E+0AoLXeZo#&P(=ZKj}A6K{)R+W6POvy03-z#@X(vL>+8kq%J zopgnUPc#lG^CX7U z+|)E)zte(VWMJDd|$(}6V>0k-5mVp#|QJcZ^8N)-g zl&-O^bc{{q9nF;Vi?sk4V{fM3|XvDiPLnoKMvxcHYDoMACBp-)y;7 zvdV_fiTTee>%C@vz^?3A=4imfD8F_2@8;RP^MHAF?;o;oV__>CFSW|I!)w4k-Fgkj z--`M=;l?13ts71aZn_em;T_oB3bX$i4u%8dW$G=K12Vx1J{&+=Rzh4xTGn}QW8w3SB5g!z|EjqOFOn6Fa{>O1H_Zf&fyF^tI8F5t2=VVQ& zBtddQ6Z}vx^`6LlAUcCdFeWomlEyHu!}p9$FQ4Vt8Lr1LzZd#DD@)ab;|hMM)b4Vx zdD?8)HonRwi`b_PR>zSwd=(dGwRx>;#-L=*B2@GOdYy}`!ePn1NTJ$NFkk>|bnEHm?knvt-%?&ez^uv!S4(Ubl)V^QmEYc0(dR#^u~I50>io z{ob8?O)ufC^Z#0OxHY#m11|w(z|1f3eQ*X~mf-B*N_(*kPXu{7D{vsk4t6q(uHw(h z<5hSt_!xQvju+71Z^E-dp652a6|5@y3+@c^vUlO8;Hmd>AFc`Vl#c!!#f2yEbQ}+J zfd~N#!Hz_TkKkh$ND+7?P$v|j4)Vwm2)y#V5`_>4t1glwigDWELNBCP7%){&@G2c? zds}IHDOu6aMxt03H2^}uq9W{tZ*#s}hV@zHt0U}9F#1k8zvo;G3eUB*g!p}H6x&Tt zB4(%CpSN|lw|9NdB(XI%;FAgXvL)1Wd*-0^+R%&7aYGMoi09r@9lU?Zsx5|pBZ)&Q zb4&*9nzeaqcB$3IOq=h@Qh$f{Y4euVAbk>{#hRW&!nuKU`0EyS+7XYH(7TDpzlYtQ zXaY&nWi1C}k5>=-!XDShyi;e&r%Ri1a?$G+b+!!sL|EH+z9x2mCfC8`>>M*AvvOv& zvuRq^0_9mNqRR$ic9Nynw4AfU9}ovsrrSmApzZsKa^`)0$jF6e-lVKTWEzjDc6?~z z)+jo-_)ft3JlQxwwsB&o{7O=EWc+5i7j)mW=taP6{h(QgKGmyYp4f<|7GDUPqCYGf?x|Zg>7eQ7lD;K!78vN`u%2clKLN zPGjL1MLNWv{K^+70qfO`7dRaCr?hO&SHX=%DT6CjE=BV-Hor1Hr7rT>5fLUh+^wY= zK8j1JE5_^ZE$cKi)xYL1r@k)!*`Ae(c#u3WFE@&|v5(-gThohrqC zC6dyg79GPh3b`?{5@LB~%hX%gw7QErTBC1eig79KC!JWg%hFPhzVeJcD8fXqLpyC< zlNQOdGTIR0x6TT2>clza}F^8ZU*MUh)|H45<>vEHrQ9#Ng?od?_p`gJUBZV?-6I$uQI7!)Sg@D+`8l$3beq| z7yaNXQ7kY8x`k#0+;J5qp)l(`(g8SMu*__mu;eG_Ts~P77@UlXN6vC9k&5IR4s}Tk zDZM3Vd62mPd)ik*F5k7f_NgQ#f1Zn~mAY3YvO)rbcnC2`NxJolzZUH>TSjg= z@O31ExpDRmok3jukB1gh>v1F3vhydn6Or*Ttq?3cjPzlRoAhHJfAV!J zzoIl+p6jTrmlHaGI<6i`np|h)S!bEoEA_l!f*#@btK{pI8dX}2tII(3F8pexKXT+L*Vr)HuwL` zVzng1JUH6tQV_*p)emV1{84IxLEueBT^R@gu=HmZA_1%s@dz;jQrB`355Q^pvj73A zcp8n15nsU%P$)z6Vm|-_D+i}GMg&hZnwKN+8Zq%F2+)$;NL7i*$2E(oufi{d&s7Le zsnuvzgTR2_@w*Oj0i@&_5j)^_h(AZX2fqW_f*_<}!N!zz5Qb+i07vg1XG|Gs5phRp z8C=50|Gu0)AJ+M0WN+Z*-c)DGNWnm7_8vA?52v=YLHsA;I`3b_btwZQL~l0(R$LE? zVF({b$<+t~@;ZT+cd(_m?G@KMnyy}O$u*@NL$0JHl6l{Vw2`{b;cRMGM)LkMOG?N) zArer^^BghZ&W`LDwkdK3LH3N#Ap_H1%JHA+otJFXq6-0|mTDPvEz~d{8cUk~Z(+Xm z-53!*jPS2s`4Wz7>HFf^XGK2(t~Dg?hOQQdw%(dNQeAmv^5L`(%zzL>qlbjl52%&a zlFic!C{eyQi&d2LY`rucYg7W%95q*FV?Mlw6Zw7J9UJ@H;@fw_v-=yIA+wAB@4D|s zK2q5wf zyKyqFAufT<*=``}K(xE&#S4T@7`9Es{~XlI>LQHQ`EokDqo|6gToqwO49Re|QuebX zFg@q%SMRV9pAw?!4#4nOgh(JMzrT01PJbO`(1$YlS-bVCHE`=pGrfR98(VL~&yzQ>6@yxQAuf^) zks;(04JZ6)a}=euJJc7{d|5maz|3oSv^3yRtNQHYvt^CX!6m`~#<>LL!qHu#K^_w7qe5AnS}l++OGyx1?aTL}{mVHCH{KxG40AAsu}UroEVo4M9}P zq$5Z%a=8}>#_cDk#Z>iC=~*xsnYfC~Mr+-GXqbfkh(j9!cCxcuqP_8gQe}+cEJyC^ zR{Yl*uhwf%C8ROdMcFX-;TOU40#Ss3FrSkMQA`Q0~ zN-rMaB~kSg#2avZ&=MmbfJ6L*6p7awQoxV_ATJhy#5>7;MIr}rJWL}w61=|5kR$P` zb|ESx-VJAw8VLY6VAl~T9TLC)E-)bRP6PogNc{bYffb35gg~<+Ey0yH%Yg(CEU|Te zaU$^|Qy?!AZyk8ZkHot%d_ITF0-w7rgal%qur)4-Am_n=4o+2MGmeLuyNLf#_$4GG z`0W6T1|zMG1RvE=M^1qaozp^YgAH-$Ap5|cS=UFBgQdrY$a^3aVS@Y!N-L6W*#@65 zc4o-`rLY8CYF~~V(!Ztlb-<K8Kl@hT`=stEA08#`0+d&wc92gV&9YKo+&ifVd58%9%M4Nw4 z)2j%MOBv6@d5_uoSuuw&C>yTtubLzC!7e+wid+CYYS9uoc>!12@dzmj@^*8P8ics0 z&<>rsN^H{FKS@kwMI`N|WkrFgP|%kTNMdSANwL!qwbDmcQnwc>#b-$ytD*n_T=`bC z{Ag;jRP@#dXY$%!J;r7+JxQg>!r^QPlOLpy14&FXIC@&9uj~%{X0U5U9;NjxnQ9qg z?0a3$xP8we@Qi%3W`V{nl$|{Wz}RpB zFgBd&cJC9(A%^-%-0!c>rOM#a*5skrVKU7h_=}GepDf@_&t7>a;VlV`$(z34=V;a^o<`2kRjkunHMARa#~+0G7U5$T0cd4gQXuUkr5zuy#|T*C>pQ*Gt6WS z$YF3T%{L-vL8|LH60}1!YBwW8LEhV!$Wo9BYz3lWz=i(`xe4-?Un2qB4(!sN??mc? zep6x}{;XH3Q6%2zKsb)XdpWpHA`QVBty4$?usy07BwiZbnME?8a7Yg46(ldTU>Mht z|MSEAJryAnn!SDCuhyY8l3{tJc$^Bg0xOe|iYZb9&c=ZEgO;m>t&1MKI1=!E=mv6g zK!DsFwwLqtOE)=8h>nIf|KCsd;PL9>WEJ^Di|L@xn5WEyOzf>d042pZHh}W&zmwMq zFoep5U;`+Rcd!AJXBdD;r{sUEZ(_$0+rI!~Vmo|y1Nj7uNGmx(T7Vr%OoYMuMj%G98}M^@ZX(pFZ&VI6ZM7o)4G)n%#f>nNGlBD9sbN_<+st!iC+zu~oD_lEbJra7xy^KH*a$^8!&Z>D(G zB%vv!KyD{B=dMDQ^8|(+-M^G zjgj1YI+=YkpE=vn#T`#&JWO6QX(vPoGH?adH?+FTZKsQtcxhi5`0}3I4x+TzmGVri z;JZ(Oov5sI%5%cbrFVnTbx~fNx7_skX4yE+60+lSY0fcGZ3%Q-BHr!|qOZOtYcSR& zW1iUm6yipwZCLS=#8$s{N-m+4sqxVzR>NN(Lz~}{-{R_&F-Mnv5YD@8H~r0m)HK!Z zX9b_E+Gf6-V$bG@+44>0-a!P>WSYUZ>AdON8*m8!oReAUJTMJuF}w(4otM5i-V>*fS@1-H)}{8EqA zQJYwqWyx%@RBuP^E3*D+FzM;u?e(rN?mu_fkJ+4te}gvKGHuWTN6cBF98*6O3@jBwTnXNnpbB2Jd?q&vlUmRaiv-squ zn7aag-jx+aa2ML*uy{AtjjU&p!{+;iX=*<;lf<$Q?Iq5f$wnwwYU?c&I4o~lZMmQn zQz*L*9}rEBT%m3L)I<0nT+Dy@A-NQXVHmMy8z=hjmnXHdM$dC7I&gTR1ySapHEBT< zbqD0xN}%vMD_JR&2{`IW(tm1{$)fNMRT>H?MX*M!A_{+L(N#v_wNP(WQ1W0Y`6bi` zaAJK?!_OF$I%*Lt{Hck;dwFr|pz!*NAG#=ITq#D%0AIn<0EJi9-Y`OWgWt4Z{D-$~ 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 GfBhe=xZvvm delta 127121 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%0A+1q$&TLK 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