├── .gitattributes ├── .github └── workflows │ ├── python-package.yml │ ├── python-publish-manylinux.yml │ ├── python-publish-winmac.yml │ └── python-publish.yml ├── .gitignore ├── CMakeLists.txt ├── LICENSE ├── MANIFEST.in ├── Makefile ├── README.md ├── pyproject.toml ├── scripts └── memprof.py ├── setup.py ├── src ├── assimp │ ├── CMakeLists.txt │ ├── CREDITS │ ├── LICENSE │ ├── assimp.pc.in │ ├── cmake-modules │ │ ├── Coveralls.cmake │ │ ├── CoverallsClear.cmake │ │ ├── CoverallsGenerateGcov.cmake │ │ ├── DebSourcePPA.cmake │ │ ├── FindDevIL.cmake │ │ ├── FindDirectX.cmake │ │ ├── FindPkgMacros.cmake │ │ ├── FindRT.cmake │ │ ├── FindZLIB.cmake │ │ ├── Findassimp.cmake │ │ ├── HunterGate.cmake │ │ ├── MinGW_x86_64.cmake │ │ ├── PrecompiledHeader.cmake │ │ ├── assimp-hunter-config.cmake.in │ │ ├── assimp-plain-config.cmake.in │ │ └── cmake_uninstall.cmake.in │ ├── code │ │ ├── .editorconfig │ │ ├── AssetLib │ │ │ ├── 3DS │ │ │ │ ├── 3DSConverter.cpp │ │ │ │ ├── 3DSExporter.cpp │ │ │ │ ├── 3DSExporter.h │ │ │ │ ├── 3DSHelper.h │ │ │ │ ├── 3DSLoader.cpp │ │ │ │ └── 3DSLoader.h │ │ │ ├── 3MF │ │ │ │ ├── 3MFTypes.h │ │ │ │ ├── 3MFXmlTags.h │ │ │ │ ├── D3MFExporter.cpp │ │ │ │ ├── D3MFExporter.h │ │ │ │ ├── D3MFImporter.cpp │ │ │ │ ├── D3MFImporter.h │ │ │ │ ├── D3MFOpcPackage.cpp │ │ │ │ ├── D3MFOpcPackage.h │ │ │ │ ├── XmlSerializer.cpp │ │ │ │ └── XmlSerializer.h │ │ │ ├── AC │ │ │ │ ├── ACLoader.cpp │ │ │ │ └── ACLoader.h │ │ │ ├── AMF │ │ │ │ ├── AMFImporter.cpp │ │ │ │ ├── AMFImporter.hpp │ │ │ │ ├── AMFImporter_Geometry.cpp │ │ │ │ ├── AMFImporter_Material.cpp │ │ │ │ ├── AMFImporter_Node.hpp │ │ │ │ └── AMFImporter_Postprocess.cpp │ │ │ ├── ASE │ │ │ │ ├── ASELoader.cpp │ │ │ │ ├── ASELoader.h │ │ │ │ ├── ASEParser.cpp │ │ │ │ └── ASEParser.h │ │ │ ├── Assbin │ │ │ │ ├── AssbinExporter.cpp │ │ │ │ ├── AssbinExporter.h │ │ │ │ ├── AssbinFileWriter.cpp │ │ │ │ ├── AssbinFileWriter.h │ │ │ │ ├── AssbinLoader.cpp │ │ │ │ └── AssbinLoader.h │ │ │ ├── Assjson │ │ │ │ ├── cencode.c │ │ │ │ ├── cencode.h │ │ │ │ ├── json_exporter.cpp │ │ │ │ ├── mesh_splitter.cpp │ │ │ │ └── mesh_splitter.h │ │ │ ├── Assxml │ │ │ │ ├── AssxmlExporter.cpp │ │ │ │ ├── AssxmlExporter.h │ │ │ │ ├── AssxmlFileWriter.cpp │ │ │ │ └── AssxmlFileWriter.h │ │ │ ├── B3D │ │ │ │ ├── B3DImporter.cpp │ │ │ │ └── B3DImporter.h │ │ │ ├── BVH │ │ │ │ ├── BVHLoader.cpp │ │ │ │ └── BVHLoader.h │ │ │ ├── Blender │ │ │ │ ├── BlenderBMesh.cpp │ │ │ │ ├── BlenderBMesh.h │ │ │ │ ├── BlenderCustomData.cpp │ │ │ │ ├── BlenderCustomData.h │ │ │ │ ├── BlenderDNA.cpp │ │ │ │ ├── BlenderDNA.h │ │ │ │ ├── BlenderDNA.inl │ │ │ │ ├── BlenderIntermediate.h │ │ │ │ ├── BlenderLoader.cpp │ │ │ │ ├── BlenderLoader.h │ │ │ │ ├── BlenderModifier.cpp │ │ │ │ ├── BlenderModifier.h │ │ │ │ ├── BlenderScene.cpp │ │ │ │ ├── BlenderScene.h │ │ │ │ ├── BlenderSceneGen.h │ │ │ │ ├── BlenderTessellator.cpp │ │ │ │ └── BlenderTessellator.h │ │ │ ├── C4D │ │ │ │ ├── C4DImporter.cpp │ │ │ │ └── C4DImporter.h │ │ │ ├── COB │ │ │ │ ├── COBLoader.cpp │ │ │ │ ├── COBLoader.h │ │ │ │ └── COBScene.h │ │ │ ├── CSM │ │ │ │ ├── CSMLoader.cpp │ │ │ │ └── CSMLoader.h │ │ │ ├── Collada │ │ │ │ ├── ColladaExporter.cpp │ │ │ │ ├── ColladaExporter.h │ │ │ │ ├── ColladaHelper.cpp │ │ │ │ ├── ColladaHelper.h │ │ │ │ ├── ColladaLoader.cpp │ │ │ │ ├── ColladaLoader.h │ │ │ │ ├── ColladaParser.cpp │ │ │ │ └── ColladaParser.h │ │ │ ├── DXF │ │ │ │ ├── DXFHelper.h │ │ │ │ ├── DXFLoader.cpp │ │ │ │ └── DXFLoader.h │ │ │ ├── FBX │ │ │ │ ├── FBXAnimation.cpp │ │ │ │ ├── FBXBinaryTokenizer.cpp │ │ │ │ ├── FBXCommon.h │ │ │ │ ├── FBXCompileConfig.h │ │ │ │ ├── FBXConverter.cpp │ │ │ │ ├── FBXConverter.h │ │ │ │ ├── FBXDeformer.cpp │ │ │ │ ├── FBXDocument.cpp │ │ │ │ ├── FBXDocument.h │ │ │ │ ├── FBXDocumentUtil.cpp │ │ │ │ ├── FBXDocumentUtil.h │ │ │ │ ├── FBXExportNode.cpp │ │ │ │ ├── FBXExportNode.h │ │ │ │ ├── FBXExportProperty.cpp │ │ │ │ ├── FBXExportProperty.h │ │ │ │ ├── FBXExporter.cpp │ │ │ │ ├── FBXExporter.h │ │ │ │ ├── FBXImportSettings.h │ │ │ │ ├── FBXImporter.cpp │ │ │ │ ├── FBXImporter.h │ │ │ │ ├── FBXMaterial.cpp │ │ │ │ ├── FBXMeshGeometry.cpp │ │ │ │ ├── FBXMeshGeometry.h │ │ │ │ ├── FBXModel.cpp │ │ │ │ ├── FBXNodeAttribute.cpp │ │ │ │ ├── FBXParser.cpp │ │ │ │ ├── FBXParser.h │ │ │ │ ├── FBXProperties.cpp │ │ │ │ ├── FBXProperties.h │ │ │ │ ├── FBXTokenizer.cpp │ │ │ │ ├── FBXTokenizer.h │ │ │ │ ├── FBXUtil.cpp │ │ │ │ └── FBXUtil.h │ │ │ ├── HMP │ │ │ │ ├── HMPFileData.h │ │ │ │ ├── HMPLoader.cpp │ │ │ │ ├── HMPLoader.h │ │ │ │ └── HalfLifeFileData.h │ │ │ ├── IFC │ │ │ │ ├── IFCBoolean.cpp │ │ │ │ ├── IFCCurve.cpp │ │ │ │ ├── IFCGeometry.cpp │ │ │ │ ├── IFCLoader.cpp │ │ │ │ ├── IFCLoader.h │ │ │ │ ├── IFCMaterial.cpp │ │ │ │ ├── IFCOpenings.cpp │ │ │ │ ├── IFCProfile.cpp │ │ │ │ ├── IFCReaderGen1_2x3.cpp │ │ │ │ ├── IFCReaderGen2_2x3.cpp │ │ │ │ ├── IFCReaderGen_2x3.h │ │ │ │ ├── IFCReaderGen_4.cpp │ │ │ │ ├── IFCReaderGen_4.h │ │ │ │ ├── IFCUtil.cpp │ │ │ │ └── IFCUtil.h │ │ │ ├── IQM │ │ │ │ ├── IQMImporter.cpp │ │ │ │ ├── IQMImporter.h │ │ │ │ └── iqm.h │ │ │ ├── Irr │ │ │ │ ├── IRRLoader.cpp │ │ │ │ ├── IRRLoader.h │ │ │ │ ├── IRRMeshLoader.cpp │ │ │ │ ├── IRRMeshLoader.h │ │ │ │ ├── IRRShared.cpp │ │ │ │ └── IRRShared.h │ │ │ ├── LWO │ │ │ │ ├── LWOAnimation.cpp │ │ │ │ ├── LWOAnimation.h │ │ │ │ ├── LWOBLoader.cpp │ │ │ │ ├── LWOFileData.h │ │ │ │ ├── LWOLoader.cpp │ │ │ │ ├── LWOLoader.h │ │ │ │ └── LWOMaterial.cpp │ │ │ ├── LWS │ │ │ │ ├── LWSLoader.cpp │ │ │ │ └── LWSLoader.h │ │ │ ├── M3D │ │ │ │ ├── M3DExporter.cpp │ │ │ │ ├── M3DExporter.h │ │ │ │ ├── M3DImporter.cpp │ │ │ │ ├── M3DImporter.h │ │ │ │ ├── M3DMaterials.h │ │ │ │ ├── M3DWrapper.cpp │ │ │ │ ├── M3DWrapper.h │ │ │ │ └── m3d.h │ │ │ ├── MD2 │ │ │ │ ├── MD2FileData.h │ │ │ │ ├── MD2Loader.cpp │ │ │ │ ├── MD2Loader.h │ │ │ │ └── MD2NormalTable.h │ │ │ ├── MD3 │ │ │ │ ├── MD3FileData.h │ │ │ │ ├── MD3Loader.cpp │ │ │ │ └── MD3Loader.h │ │ │ ├── MD4 │ │ │ │ └── MD4FileData.h │ │ │ ├── MD5 │ │ │ │ ├── MD5Loader.cpp │ │ │ │ ├── MD5Loader.h │ │ │ │ ├── MD5Parser.cpp │ │ │ │ └── MD5Parser.h │ │ │ ├── MDC │ │ │ │ ├── MDCFileData.h │ │ │ │ ├── MDCLoader.cpp │ │ │ │ ├── MDCLoader.h │ │ │ │ └── MDCNormalTable.h │ │ │ ├── MDL │ │ │ │ ├── HalfLife │ │ │ │ │ ├── HL1FileData.h │ │ │ │ │ ├── HL1ImportDefinitions.h │ │ │ │ │ ├── HL1ImportSettings.h │ │ │ │ │ ├── HL1MDLLoader.cpp │ │ │ │ │ ├── HL1MDLLoader.h │ │ │ │ │ ├── HL1MeshTrivert.h │ │ │ │ │ ├── HalfLifeMDLBaseHeader.h │ │ │ │ │ ├── LogFunctions.h │ │ │ │ │ ├── UniqueNameGenerator.cpp │ │ │ │ │ └── UniqueNameGenerator.h │ │ │ │ ├── MDLDefaultColorMap.h │ │ │ │ ├── MDLFileData.h │ │ │ │ ├── MDLLoader.cpp │ │ │ │ ├── MDLLoader.h │ │ │ │ └── MDLMaterialLoader.cpp │ │ │ ├── MMD │ │ │ │ ├── MMDCpp14.h │ │ │ │ ├── MMDImporter.cpp │ │ │ │ ├── MMDImporter.h │ │ │ │ ├── MMDPmdParser.h │ │ │ │ ├── MMDPmxParser.cpp │ │ │ │ ├── MMDPmxParser.h │ │ │ │ └── MMDVmdParser.h │ │ │ ├── MS3D │ │ │ │ ├── MS3DLoader.cpp │ │ │ │ └── MS3DLoader.h │ │ │ ├── NDO │ │ │ │ ├── NDOLoader.cpp │ │ │ │ └── NDOLoader.h │ │ │ ├── NFF │ │ │ │ ├── NFFLoader.cpp │ │ │ │ └── NFFLoader.h │ │ │ ├── OFF │ │ │ │ ├── OFFLoader.cpp │ │ │ │ └── OFFLoader.h │ │ │ ├── Obj │ │ │ │ ├── ObjExporter.cpp │ │ │ │ ├── ObjExporter.h │ │ │ │ ├── ObjFileData.h │ │ │ │ ├── ObjFileImporter.cpp │ │ │ │ ├── ObjFileImporter.h │ │ │ │ ├── ObjFileMtlImporter.cpp │ │ │ │ ├── ObjFileMtlImporter.h │ │ │ │ ├── ObjFileParser.cpp │ │ │ │ ├── ObjFileParser.h │ │ │ │ └── ObjTools.h │ │ │ ├── Ogre │ │ │ │ ├── OgreBinarySerializer.cpp │ │ │ │ ├── OgreBinarySerializer.h │ │ │ │ ├── OgreImporter.cpp │ │ │ │ ├── OgreImporter.h │ │ │ │ ├── OgreMaterial.cpp │ │ │ │ ├── OgreParsingUtils.h │ │ │ │ ├── OgreStructs.cpp │ │ │ │ ├── OgreStructs.h │ │ │ │ ├── OgreXmlSerializer.cpp │ │ │ │ └── OgreXmlSerializer.h │ │ │ ├── OpenGEX │ │ │ │ ├── OpenGEXExporter.cpp │ │ │ │ ├── OpenGEXExporter.h │ │ │ │ ├── OpenGEXImporter.cpp │ │ │ │ ├── OpenGEXImporter.h │ │ │ │ └── OpenGEXStructs.h │ │ │ ├── Ply │ │ │ │ ├── PlyExporter.cpp │ │ │ │ ├── PlyExporter.h │ │ │ │ ├── PlyLoader.cpp │ │ │ │ ├── PlyLoader.h │ │ │ │ ├── PlyParser.cpp │ │ │ │ └── PlyParser.h │ │ │ ├── Q3BSP │ │ │ │ ├── Q3BSPFileData.h │ │ │ │ ├── Q3BSPFileImporter.cpp │ │ │ │ ├── Q3BSPFileImporter.h │ │ │ │ ├── Q3BSPFileParser.cpp │ │ │ │ └── Q3BSPFileParser.h │ │ │ ├── Q3D │ │ │ │ ├── Q3DLoader.cpp │ │ │ │ └── Q3DLoader.h │ │ │ ├── Raw │ │ │ │ ├── RawLoader.cpp │ │ │ │ └── RawLoader.h │ │ │ ├── SIB │ │ │ │ ├── SIBImporter.cpp │ │ │ │ └── SIBImporter.h │ │ │ ├── SMD │ │ │ │ ├── SMDLoader.cpp │ │ │ │ └── SMDLoader.h │ │ │ ├── STEPParser │ │ │ │ ├── STEPFileEncoding.cpp │ │ │ │ ├── STEPFileEncoding.h │ │ │ │ ├── STEPFileReader.cpp │ │ │ │ └── STEPFileReader.h │ │ │ ├── STL │ │ │ │ ├── STLExporter.cpp │ │ │ │ ├── STLExporter.h │ │ │ │ ├── STLLoader.cpp │ │ │ │ └── STLLoader.h │ │ │ ├── Step │ │ │ │ ├── STEPFile.h │ │ │ │ ├── StepExporter.cpp │ │ │ │ └── StepExporter.h │ │ │ ├── Terragen │ │ │ │ ├── TerragenLoader.cpp │ │ │ │ └── TerragenLoader.h │ │ │ ├── USD │ │ │ │ ├── USDLoader.cpp │ │ │ │ ├── USDLoader.h │ │ │ │ ├── USDLoaderImplTinyusdz.cpp │ │ │ │ ├── USDLoaderImplTinyusdz.h │ │ │ │ ├── USDLoaderImplTinyusdzHelper.cpp │ │ │ │ ├── USDLoaderImplTinyusdzHelper.h │ │ │ │ ├── USDLoaderUtil.cpp │ │ │ │ ├── USDLoaderUtil.h │ │ │ │ └── USDPreprocessor.h │ │ │ ├── Unreal │ │ │ │ ├── UnrealLoader.cpp │ │ │ │ └── UnrealLoader.h │ │ │ ├── X │ │ │ │ ├── XFileExporter.cpp │ │ │ │ ├── XFileExporter.h │ │ │ │ ├── XFileHelper.h │ │ │ │ ├── XFileImporter.cpp │ │ │ │ ├── XFileImporter.h │ │ │ │ ├── XFileParser.cpp │ │ │ │ └── XFileParser.h │ │ │ ├── X3D │ │ │ │ ├── X3DExporter.cpp │ │ │ │ ├── X3DExporter.hpp │ │ │ │ ├── X3DGeoHelper.cpp │ │ │ │ ├── X3DGeoHelper.h │ │ │ │ ├── X3DImporter.cpp │ │ │ │ ├── X3DImporter.hpp │ │ │ │ ├── X3DImporter_Geometry2D.cpp │ │ │ │ ├── X3DImporter_Geometry3D.cpp │ │ │ │ ├── X3DImporter_Group.cpp │ │ │ │ ├── X3DImporter_Light.cpp │ │ │ │ ├── X3DImporter_Macro.hpp │ │ │ │ ├── X3DImporter_Metadata.cpp │ │ │ │ ├── X3DImporter_Networking.cpp │ │ │ │ ├── X3DImporter_Node.hpp │ │ │ │ ├── X3DImporter_Postprocess.cpp │ │ │ │ ├── X3DImporter_Rendering.cpp │ │ │ │ ├── X3DImporter_Shape.cpp │ │ │ │ ├── X3DImporter_Texturing.cpp │ │ │ │ ├── X3DXmlHelper.cpp │ │ │ │ └── X3DXmlHelper.h │ │ │ ├── XGL │ │ │ │ ├── XGLLoader.cpp │ │ │ │ └── XGLLoader.h │ │ │ ├── glTF │ │ │ │ ├── glTFAsset.h │ │ │ │ ├── glTFAsset.inl │ │ │ │ ├── glTFAssetWriter.h │ │ │ │ ├── glTFAssetWriter.inl │ │ │ │ ├── glTFCommon.cpp │ │ │ │ ├── glTFCommon.h │ │ │ │ ├── glTFExporter.cpp │ │ │ │ ├── glTFExporter.h │ │ │ │ ├── glTFImporter.cpp │ │ │ │ └── glTFImporter.h │ │ │ └── glTF2 │ │ │ │ ├── glTF2Asset.h │ │ │ │ ├── glTF2Asset.inl │ │ │ │ ├── glTF2AssetWriter.h │ │ │ │ ├── glTF2AssetWriter.inl │ │ │ │ ├── glTF2Exporter.cpp │ │ │ │ ├── glTF2Exporter.h │ │ │ │ ├── glTF2Importer.cpp │ │ │ │ └── glTF2Importer.h │ │ ├── CApi │ │ │ ├── AssimpCExport.cpp │ │ │ ├── CInterfaceIOWrapper.cpp │ │ │ └── CInterfaceIOWrapper.h │ │ ├── CMakeLists.txt │ │ ├── Common │ │ │ ├── AssertHandler.cpp │ │ │ ├── Assimp.cpp │ │ │ ├── Base64.cpp │ │ │ ├── BaseImporter.cpp │ │ │ ├── BaseProcess.cpp │ │ │ ├── BaseProcess.h │ │ │ ├── Bitmap.cpp │ │ │ ├── Compression.cpp │ │ │ ├── Compression.h │ │ │ ├── CreateAnimMesh.cpp │ │ │ ├── DefaultIOStream.cpp │ │ │ ├── DefaultIOSystem.cpp │ │ │ ├── DefaultLogger.cpp │ │ │ ├── DefaultProgressHandler.h │ │ │ ├── Exceptional.cpp │ │ │ ├── Exporter.cpp │ │ │ ├── FileLogStream.h │ │ │ ├── FileSystemFilter.h │ │ │ ├── IFF.h │ │ │ ├── IOSystem.cpp │ │ │ ├── Importer.cpp │ │ │ ├── Importer.h │ │ │ ├── ImporterRegistry.cpp │ │ │ ├── Maybe.h │ │ │ ├── PolyTools.h │ │ │ ├── PostStepRegistry.cpp │ │ │ ├── RemoveComments.cpp │ │ │ ├── SGSpatialSort.cpp │ │ │ ├── SceneCombiner.cpp │ │ │ ├── ScenePreprocessor.cpp │ │ │ ├── ScenePreprocessor.h │ │ │ ├── ScenePrivate.h │ │ │ ├── SkeletonMeshBuilder.cpp │ │ │ ├── SpatialSort.cpp │ │ │ ├── StackAllocator.h │ │ │ ├── StackAllocator.inl │ │ │ ├── StandardShapes.cpp │ │ │ ├── StbCommon.h │ │ │ ├── StdOStreamLogStream.h │ │ │ ├── Subdivision.cpp │ │ │ ├── TargetAnimation.cpp │ │ │ ├── TargetAnimation.h │ │ │ ├── Version.cpp │ │ │ ├── VertexTriangleAdjacency.cpp │ │ │ ├── VertexTriangleAdjacency.h │ │ │ ├── Win32DebugLogStream.h │ │ │ ├── ZipArchiveIOSystem.cpp │ │ │ ├── assbin_chunks.h │ │ │ ├── material.cpp │ │ │ ├── scene.cpp │ │ │ ├── simd.cpp │ │ │ └── simd.h │ │ ├── Geometry │ │ │ ├── GeometryUtils.cpp │ │ │ └── GeometryUtils.h │ │ ├── Material │ │ │ ├── MaterialSystem.cpp │ │ │ └── MaterialSystem.h │ │ ├── Pbrt │ │ │ ├── PbrtExporter.cpp │ │ │ └── PbrtExporter.h │ │ ├── PostProcessing │ │ │ ├── ArmaturePopulate.cpp │ │ │ ├── ArmaturePopulate.h │ │ │ ├── CalcTangentsProcess.cpp │ │ │ ├── CalcTangentsProcess.h │ │ │ ├── ComputeUVMappingProcess.cpp │ │ │ ├── ComputeUVMappingProcess.h │ │ │ ├── ConvertToLHProcess.cpp │ │ │ ├── ConvertToLHProcess.h │ │ │ ├── DeboneProcess.cpp │ │ │ ├── DeboneProcess.h │ │ │ ├── DropFaceNormalsProcess.cpp │ │ │ ├── DropFaceNormalsProcess.h │ │ │ ├── EmbedTexturesProcess.cpp │ │ │ ├── EmbedTexturesProcess.h │ │ │ ├── FindDegenerates.cpp │ │ │ ├── FindDegenerates.h │ │ │ ├── FindInstancesProcess.cpp │ │ │ ├── FindInstancesProcess.h │ │ │ ├── FindInvalidDataProcess.cpp │ │ │ ├── FindInvalidDataProcess.h │ │ │ ├── FixNormalsStep.cpp │ │ │ ├── FixNormalsStep.h │ │ │ ├── GenBoundingBoxesProcess.cpp │ │ │ ├── GenBoundingBoxesProcess.h │ │ │ ├── GenFaceNormalsProcess.cpp │ │ │ ├── GenFaceNormalsProcess.h │ │ │ ├── GenVertexNormalsProcess.cpp │ │ │ ├── GenVertexNormalsProcess.h │ │ │ ├── ImproveCacheLocality.cpp │ │ │ ├── ImproveCacheLocality.h │ │ │ ├── JoinVerticesProcess.cpp │ │ │ ├── JoinVerticesProcess.h │ │ │ ├── LimitBoneWeightsProcess.cpp │ │ │ ├── LimitBoneWeightsProcess.h │ │ │ ├── MakeVerboseFormat.cpp │ │ │ ├── MakeVerboseFormat.h │ │ │ ├── OptimizeGraph.cpp │ │ │ ├── OptimizeGraph.h │ │ │ ├── OptimizeMeshes.cpp │ │ │ ├── OptimizeMeshes.h │ │ │ ├── PretransformVertices.cpp │ │ │ ├── PretransformVertices.h │ │ │ ├── ProcessHelper.cpp │ │ │ ├── ProcessHelper.h │ │ │ ├── RemoveRedundantMaterials.cpp │ │ │ ├── RemoveRedundantMaterials.h │ │ │ ├── RemoveVCProcess.cpp │ │ │ ├── RemoveVCProcess.h │ │ │ ├── ScaleProcess.cpp │ │ │ ├── ScaleProcess.h │ │ │ ├── SortByPTypeProcess.cpp │ │ │ ├── SortByPTypeProcess.h │ │ │ ├── SplitByBoneCountProcess.cpp │ │ │ ├── SplitByBoneCountProcess.h │ │ │ ├── SplitLargeMeshes.cpp │ │ │ ├── SplitLargeMeshes.h │ │ │ ├── TextureTransform.cpp │ │ │ ├── TextureTransform.h │ │ │ ├── TriangulateProcess.cpp │ │ │ ├── TriangulateProcess.h │ │ │ ├── ValidateDataStructure.cpp │ │ │ └── ValidateDataStructure.h │ │ └── res │ │ │ └── assimp.rc │ ├── contrib │ │ ├── Open3DGC │ │ │ ├── o3dgcAdjacencyInfo.h │ │ │ ├── o3dgcArithmeticCodec.cpp │ │ │ ├── o3dgcArithmeticCodec.h │ │ │ ├── o3dgcBinaryStream.h │ │ │ ├── o3dgcCommon.h │ │ │ ├── o3dgcDVEncodeParams.h │ │ │ ├── o3dgcDynamicVector.h │ │ │ ├── o3dgcDynamicVectorDecoder.cpp │ │ │ ├── o3dgcDynamicVectorDecoder.h │ │ │ ├── o3dgcDynamicVectorEncoder.cpp │ │ │ ├── o3dgcDynamicVectorEncoder.h │ │ │ ├── o3dgcFIFO.h │ │ │ ├── o3dgcIndexedFaceSet.h │ │ │ ├── o3dgcIndexedFaceSet.inl │ │ │ ├── o3dgcSC3DMCDecoder.h │ │ │ ├── o3dgcSC3DMCDecoder.inl │ │ │ ├── o3dgcSC3DMCEncodeParams.h │ │ │ ├── o3dgcSC3DMCEncoder.h │ │ │ ├── o3dgcSC3DMCEncoder.inl │ │ │ ├── o3dgcTimer.h │ │ │ ├── o3dgcTools.cpp │ │ │ ├── o3dgcTriangleFans.cpp │ │ │ ├── o3dgcTriangleFans.h │ │ │ ├── o3dgcTriangleListDecoder.h │ │ │ ├── o3dgcTriangleListDecoder.inl │ │ │ ├── o3dgcTriangleListEncoder.h │ │ │ ├── o3dgcTriangleListEncoder.inl │ │ │ ├── o3dgcVector.h │ │ │ └── o3dgcVector.inl │ │ ├── clipper │ │ │ ├── License.txt │ │ │ ├── clipper.cpp │ │ │ └── clipper.hpp │ │ ├── openddlparser │ │ │ ├── CMakeLists.txt │ │ │ ├── CREDITS │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── code │ │ │ │ ├── DDLNode.cpp │ │ │ │ ├── OpenDDLCommon.cpp │ │ │ │ ├── OpenDDLExport.cpp │ │ │ │ ├── OpenDDLParser.cpp │ │ │ │ ├── OpenDDLStream.cpp │ │ │ │ └── Value.cpp │ │ │ └── include │ │ │ │ └── openddlparser │ │ │ │ ├── DDLNode.h │ │ │ │ ├── OpenDDLCommon.h │ │ │ │ ├── OpenDDLExport.h │ │ │ │ ├── OpenDDLParser.h │ │ │ │ ├── OpenDDLParserUtils.h │ │ │ │ ├── OpenDDLStream.h │ │ │ │ ├── TPoolAllocator.h │ │ │ │ └── Value.h │ │ ├── poly2tri │ │ │ ├── AUTHORS │ │ │ ├── LICENSE │ │ │ ├── README │ │ │ ├── README.md │ │ │ └── poly2tri │ │ │ │ ├── common │ │ │ │ ├── dll_symbol.h │ │ │ │ ├── shapes.cc │ │ │ │ ├── shapes.h │ │ │ │ └── utils.h │ │ │ │ ├── poly2tri.h │ │ │ │ └── sweep │ │ │ │ ├── advancing_front.cc │ │ │ │ ├── advancing_front.h │ │ │ │ ├── cdt.cc │ │ │ │ ├── cdt.h │ │ │ │ ├── sweep.cc │ │ │ │ ├── sweep.h │ │ │ │ ├── sweep_context.cc │ │ │ │ └── sweep_context.h │ │ ├── poly2tri_patch.txt │ │ ├── pugixml │ │ │ ├── CMakeLists.txt │ │ │ ├── readme.txt │ │ │ └── src │ │ │ │ ├── pugiconfig.hpp │ │ │ │ ├── pugixml.cpp │ │ │ │ └── pugixml.hpp │ │ ├── rapidjson │ │ │ ├── include │ │ │ │ └── rapidjson │ │ │ │ │ ├── allocators.h │ │ │ │ │ ├── cursorstreamwrapper.h │ │ │ │ │ ├── document.h │ │ │ │ │ ├── encodedstream.h │ │ │ │ │ ├── encodings.h │ │ │ │ │ ├── error │ │ │ │ │ ├── en.h │ │ │ │ │ └── error.h │ │ │ │ │ ├── filereadstream.h │ │ │ │ │ ├── filewritestream.h │ │ │ │ │ ├── fwd.h │ │ │ │ │ ├── internal │ │ │ │ │ ├── biginteger.h │ │ │ │ │ ├── clzll.h │ │ │ │ │ ├── diyfp.h │ │ │ │ │ ├── dtoa.h │ │ │ │ │ ├── ieee754.h │ │ │ │ │ ├── itoa.h │ │ │ │ │ ├── meta.h │ │ │ │ │ ├── pow10.h │ │ │ │ │ ├── regex.h │ │ │ │ │ ├── stack.h │ │ │ │ │ ├── strfunc.h │ │ │ │ │ ├── strtod.h │ │ │ │ │ └── swap.h │ │ │ │ │ ├── istreamwrapper.h │ │ │ │ │ ├── memorybuffer.h │ │ │ │ │ ├── memorystream.h │ │ │ │ │ ├── msinttypes │ │ │ │ │ ├── inttypes.h │ │ │ │ │ └── stdint.h │ │ │ │ │ ├── ostreamwrapper.h │ │ │ │ │ ├── pointer.h │ │ │ │ │ ├── prettywriter.h │ │ │ │ │ ├── rapidjson.h │ │ │ │ │ ├── reader.h │ │ │ │ │ ├── schema.h │ │ │ │ │ ├── stream.h │ │ │ │ │ ├── stringbuffer.h │ │ │ │ │ ├── uri.h │ │ │ │ │ └── writer.h │ │ │ ├── license.txt │ │ │ └── readme.md │ │ ├── stb │ │ │ └── stb_image.h │ │ ├── unzip │ │ │ ├── MiniZip64_info.txt │ │ │ ├── crypt.c │ │ │ ├── crypt.h │ │ │ ├── ioapi.c │ │ │ ├── ioapi.h │ │ │ ├── unzip.c │ │ │ └── unzip.h │ │ ├── utf8cpp │ │ │ ├── doc │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── ReleaseNotes │ │ │ │ └── utf8cpp.html │ │ │ └── source │ │ │ │ ├── utf8.h │ │ │ │ └── utf8 │ │ │ │ ├── checked.h │ │ │ │ ├── core.h │ │ │ │ ├── cpp11.h │ │ │ │ ├── cpp17.h │ │ │ │ └── unchecked.h │ │ ├── zip │ │ │ ├── .travis.sh │ │ │ ├── .travis.yml │ │ │ ├── CMakeLists.txt │ │ │ ├── CONTRIBUTING.md │ │ │ ├── Doxyfile.in │ │ │ ├── README.md │ │ │ ├── UNLICENSE │ │ │ ├── appveyor.yml │ │ │ ├── cmake │ │ │ │ ├── Config.cmake.in │ │ │ │ ├── asan-wrapper │ │ │ │ └── cmake_uninstall.cmake.in │ │ │ ├── src │ │ │ │ ├── miniz.h │ │ │ │ ├── zip.c │ │ │ │ └── zip.h │ │ │ ├── test │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── minunit.h │ │ │ │ ├── test.c │ │ │ │ ├── test_append.c │ │ │ │ ├── test_entry.c │ │ │ │ ├── test_extract.c │ │ │ │ ├── test_miniz.c │ │ │ │ ├── test_open.c │ │ │ │ ├── test_permissions.c │ │ │ │ ├── test_read.c │ │ │ │ └── test_write.c │ │ │ └── zip.png │ │ ├── zlib │ │ │ ├── CMakeLists.txt │ │ │ ├── ChangeLog │ │ │ ├── LICENSE │ │ │ ├── README │ │ │ ├── adler32.c │ │ │ ├── compress.c │ │ │ ├── contrib │ │ │ │ ├── README.contrib │ │ │ │ ├── ada │ │ │ │ │ ├── buffer_demo.adb │ │ │ │ │ ├── mtest.adb │ │ │ │ │ ├── read.adb │ │ │ │ │ ├── readme.txt │ │ │ │ │ ├── test.adb │ │ │ │ │ ├── zlib-streams.adb │ │ │ │ │ ├── zlib-streams.ads │ │ │ │ │ ├── zlib-thin.adb │ │ │ │ │ ├── zlib-thin.ads │ │ │ │ │ ├── zlib.adb │ │ │ │ │ ├── zlib.ads │ │ │ │ │ └── zlib.gpr │ │ │ │ ├── amd64 │ │ │ │ │ └── amd64-match.S │ │ │ │ ├── asm686 │ │ │ │ │ ├── README.686 │ │ │ │ │ └── match.S │ │ │ │ ├── blast │ │ │ │ │ ├── README │ │ │ │ │ ├── blast.c │ │ │ │ │ ├── blast.h │ │ │ │ │ ├── test.pk │ │ │ │ │ └── test.txt │ │ │ │ ├── delphi │ │ │ │ │ ├── ZLib.pas │ │ │ │ │ ├── ZLibConst.pas │ │ │ │ │ ├── readme.txt │ │ │ │ │ └── zlibd32.mak │ │ │ │ ├── dotzlib │ │ │ │ │ ├── DotZLib.build │ │ │ │ │ ├── DotZLib.chm │ │ │ │ │ ├── DotZLib │ │ │ │ │ │ ├── AssemblyInfo.cs │ │ │ │ │ │ ├── ChecksumImpl.cs │ │ │ │ │ │ ├── CircularBuffer.cs │ │ │ │ │ │ ├── CodecBase.cs │ │ │ │ │ │ ├── Deflater.cs │ │ │ │ │ │ ├── DotZLib.cs │ │ │ │ │ │ ├── DotZLib.csproj │ │ │ │ │ │ ├── GZipStream.cs │ │ │ │ │ │ ├── Inflater.cs │ │ │ │ │ │ └── UnitTests.cs │ │ │ │ │ ├── LICENSE_1_0.txt │ │ │ │ │ └── readme.txt │ │ │ │ ├── gcc_gvmat64 │ │ │ │ │ └── gvmat64.S │ │ │ │ ├── infback9 │ │ │ │ │ ├── README │ │ │ │ │ ├── infback9.c │ │ │ │ │ ├── infback9.h │ │ │ │ │ ├── inffix9.h │ │ │ │ │ ├── inflate9.h │ │ │ │ │ ├── inftree9.c │ │ │ │ │ └── inftree9.h │ │ │ │ ├── inflate86 │ │ │ │ │ ├── inffas86.c │ │ │ │ │ └── inffast.S │ │ │ │ ├── iostream │ │ │ │ │ ├── test.cpp │ │ │ │ │ ├── zfstream.cpp │ │ │ │ │ └── zfstream.h │ │ │ │ ├── iostream2 │ │ │ │ │ ├── zstream.h │ │ │ │ │ └── zstream_test.cpp │ │ │ │ ├── iostream3 │ │ │ │ │ ├── README │ │ │ │ │ ├── TODO │ │ │ │ │ ├── test.cc │ │ │ │ │ ├── zfstream.cc │ │ │ │ │ └── zfstream.h │ │ │ │ ├── masmx64 │ │ │ │ │ ├── bld_ml64.bat │ │ │ │ │ ├── gvmat64.asm │ │ │ │ │ ├── inffas8664.c │ │ │ │ │ ├── inffasx64.asm │ │ │ │ │ └── readme.txt │ │ │ │ ├── masmx86 │ │ │ │ │ ├── bld_ml32.bat │ │ │ │ │ ├── inffas32.asm │ │ │ │ │ ├── match686.asm │ │ │ │ │ └── readme.txt │ │ │ │ ├── minizip │ │ │ │ │ ├── Makefile.am │ │ │ │ │ ├── MiniZip64_Changes.txt │ │ │ │ │ ├── MiniZip64_info.txt │ │ │ │ │ ├── configure.ac │ │ │ │ │ ├── crypt.h │ │ │ │ │ ├── ioapi.c │ │ │ │ │ ├── ioapi.h │ │ │ │ │ ├── iowin32.c │ │ │ │ │ ├── iowin32.h │ │ │ │ │ ├── make_vms.com │ │ │ │ │ ├── miniunz.c │ │ │ │ │ ├── miniunzip.1 │ │ │ │ │ ├── minizip.1 │ │ │ │ │ ├── minizip.c │ │ │ │ │ ├── minizip.pc.in │ │ │ │ │ ├── mztools.c │ │ │ │ │ ├── mztools.h │ │ │ │ │ ├── unzip.c │ │ │ │ │ ├── unzip.h │ │ │ │ │ ├── zip.c │ │ │ │ │ └── zip.h │ │ │ │ ├── pascal │ │ │ │ │ ├── example.pas │ │ │ │ │ ├── readme.txt │ │ │ │ │ ├── zlibd32.mak │ │ │ │ │ └── zlibpas.pas │ │ │ │ ├── puff │ │ │ │ │ ├── README │ │ │ │ │ ├── puff.c │ │ │ │ │ ├── puff.h │ │ │ │ │ ├── pufftest.c │ │ │ │ │ └── zeros.raw │ │ │ │ ├── testzlib │ │ │ │ │ ├── testzlib.c │ │ │ │ │ └── testzlib.txt │ │ │ │ ├── untgz │ │ │ │ │ ├── Makefile.msc │ │ │ │ │ └── untgz.c │ │ │ │ └── vstudio │ │ │ │ │ ├── readme.txt │ │ │ │ │ ├── vc10 │ │ │ │ │ ├── zlib.rc │ │ │ │ │ └── zlibvc.def │ │ │ │ │ ├── vc11 │ │ │ │ │ ├── zlib.rc │ │ │ │ │ └── zlibvc.def │ │ │ │ │ ├── vc12 │ │ │ │ │ ├── zlib.rc │ │ │ │ │ └── zlibvc.def │ │ │ │ │ ├── vc14 │ │ │ │ │ ├── zlib.rc │ │ │ │ │ └── zlibvc.def │ │ │ │ │ └── vc9 │ │ │ │ │ ├── zlib.rc │ │ │ │ │ └── zlibvc.def │ │ │ ├── crc32.c │ │ │ ├── crc32.h │ │ │ ├── deflate.c │ │ │ ├── deflate.h │ │ │ ├── gzclose.c │ │ │ ├── gzguts.h │ │ │ ├── gzlib.c │ │ │ ├── gzread.c │ │ │ ├── gzwrite.c │ │ │ ├── infback.c │ │ │ ├── inffast.c │ │ │ ├── inffast.h │ │ │ ├── inffixed.h │ │ │ ├── inflate.c │ │ │ ├── inflate.h │ │ │ ├── inftrees.c │ │ │ ├── inftrees.h │ │ │ ├── trees.c │ │ │ ├── trees.h │ │ │ ├── uncompr.c │ │ │ ├── win32 │ │ │ │ ├── DLL_FAQ.txt │ │ │ │ ├── Makefile.bor │ │ │ │ ├── Makefile.gcc │ │ │ │ ├── Makefile.msc │ │ │ │ ├── README-WIN32.txt │ │ │ │ ├── VisualC.txt │ │ │ │ ├── zlib.def │ │ │ │ └── zlib1.rc │ │ │ ├── zconf.h.cmakein │ │ │ ├── zconf.h.in │ │ │ ├── zconf.h.included │ │ │ ├── zlib.h │ │ │ ├── zlib.pc.cmakein │ │ │ ├── zutil.c │ │ │ └── zutil.h │ │ └── zlib_note.txt │ ├── include │ │ └── assimp │ │ │ ├── .editorconfig │ │ │ ├── AssertHandler.h │ │ │ ├── Base64.hpp │ │ │ ├── BaseImporter.h │ │ │ ├── Bitmap.h │ │ │ ├── BlobIOSystem.h │ │ │ ├── ByteSwapper.h │ │ │ ├── ColladaMetaData.h │ │ │ ├── Compiler │ │ │ ├── poppack1.h │ │ │ ├── pstdint.h │ │ │ └── pushpack1.h │ │ │ ├── CreateAnimMesh.h │ │ │ ├── DefaultIOStream.h │ │ │ ├── DefaultIOSystem.h │ │ │ ├── DefaultLogger.hpp │ │ │ ├── Exceptional.h │ │ │ ├── Exporter.hpp │ │ │ ├── GenericProperty.h │ │ │ ├── GltfMaterial.h │ │ │ ├── Hash.h │ │ │ ├── IOStream.hpp │ │ │ ├── IOStreamBuffer.h │ │ │ ├── IOSystem.hpp │ │ │ ├── Importer.hpp │ │ │ ├── LineSplitter.h │ │ │ ├── LogAux.h │ │ │ ├── LogStream.hpp │ │ │ ├── Logger.hpp │ │ │ ├── MathFunctions.h │ │ │ ├── MemoryIOWrapper.h │ │ │ ├── NullLogger.hpp │ │ │ ├── ObjMaterial.h │ │ │ ├── ParsingUtils.h │ │ │ ├── Profiler.h │ │ │ ├── ProgressHandler.hpp │ │ │ ├── RemoveComments.h │ │ │ ├── SGSpatialSort.h │ │ │ ├── SceneCombiner.h │ │ │ ├── SkeletonMeshBuilder.h │ │ │ ├── SmallVector.h │ │ │ ├── SmoothingGroups.h │ │ │ ├── SmoothingGroups.inl │ │ │ ├── SpatialSort.h │ │ │ ├── StandardShapes.h │ │ │ ├── StreamReader.h │ │ │ ├── StreamWriter.h │ │ │ ├── StringComparison.h │ │ │ ├── StringUtils.h │ │ │ ├── Subdivision.h │ │ │ ├── TinyFormatter.h │ │ │ ├── Vertex.h │ │ │ ├── XMLTools.h │ │ │ ├── XmlParser.h │ │ │ ├── ZipArchiveIOSystem.h │ │ │ ├── aabb.h │ │ │ ├── ai_assert.h │ │ │ ├── anim.h │ │ │ ├── camera.h │ │ │ ├── cexport.h │ │ │ ├── cfileio.h │ │ │ ├── cimport.h │ │ │ ├── color4.h │ │ │ ├── color4.inl │ │ │ ├── commonMetaData.h │ │ │ ├── config.h.in │ │ │ ├── defs.h │ │ │ ├── fast_atof.h │ │ │ ├── importerdesc.h │ │ │ ├── light.h │ │ │ ├── material.h │ │ │ ├── material.inl │ │ │ ├── matrix3x3.h │ │ │ ├── matrix3x3.inl │ │ │ ├── matrix4x4.h │ │ │ ├── matrix4x4.inl │ │ │ ├── mesh.h │ │ │ ├── metadata.h │ │ │ ├── module.modulemap │ │ │ ├── pbrmaterial.h │ │ │ ├── port │ │ │ └── AndroidJNI │ │ │ │ ├── AndroidJNIIOSystem.h │ │ │ │ └── BundledAssetIOSystem.h │ │ │ ├── postprocess.h │ │ │ ├── qnan.h │ │ │ ├── quaternion.h │ │ │ ├── quaternion.inl │ │ │ ├── revision.h.in │ │ │ ├── scene.h │ │ │ ├── texture.h │ │ │ ├── types.h │ │ │ ├── vector2.h │ │ │ ├── vector2.inl │ │ │ ├── vector3.h │ │ │ ├── vector3.inl │ │ │ └── version.h │ └── revision.h.in └── assimp_py │ ├── __init__.py │ ├── assimp_py.c │ └── assimp_py.pyi └── tests ├── models ├── cyborg │ ├── LICENSE.txt │ ├── cyborg.blend │ ├── cyborg.blend1 │ ├── cyborg.mtl │ ├── cyborg.obj │ ├── cyborg_diffuse.png │ ├── cyborg_normal.png │ └── cyborg_specular.png └── planet │ ├── planet.mtl │ ├── planet.obj │ └── planet_Quom1200.png ├── test_assimp.py └── test_models.py /.gitattributes: -------------------------------------------------------------------------------- 1 | assimp/* linguist-vendored 2 | -------------------------------------------------------------------------------- /.github/workflows/python-package.yml: -------------------------------------------------------------------------------- 1 | # This workflow will install Python dependencies, run tests and lint with a variety of Python versions 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions 3 | 4 | name: Build Package 5 | 6 | on: 7 | pull_request: 8 | branches: [ master ] 9 | 10 | jobs: 11 | build: 12 | 13 | runs-on: ${{ matrix.os }} 14 | strategy: 15 | matrix: 16 | os: [windows-latest, ubuntu-latest, macos-latest] 17 | python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] 18 | 19 | steps: 20 | - uses: actions/checkout@v4 21 | - name: Set up Python ${{ matrix.python-version }} 22 | uses: actions/setup-python@v5 23 | with: 24 | python-version: ${{ matrix.python-version }} 25 | 26 | - name: Install dependencies 27 | run: | 28 | python -m pip install --upgrade pip 29 | pip install pytest 30 | - name: Install Package 31 | run: | 32 | python -m pip install . 33 | - name: Test with pytest 34 | run: | 35 | pytest tests 36 | # - name: Setup tmate session 37 | # if: ${{ failure() }} 38 | # uses: mxschmitt/action-tmate@v3 39 | -------------------------------------------------------------------------------- /.github/workflows/python-publish-manylinux.yml: -------------------------------------------------------------------------------- 1 | name: PyPI ManyLinux 2 | 3 | on: 4 | workflow_dispatch: 5 | # release: 6 | # types: [created] 7 | 8 | 9 | jobs: 10 | deploy: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v3 14 | - name: Set up Python 15 | uses: actions/setup-python@v3 16 | with: 17 | python-version: 3.11 18 | 19 | - name: Install build dependencies on ubuntu 20 | run: | 21 | sudo apt-get update 22 | sudo apt-get install cmake python3-dev 23 | cmake --version 24 | 25 | - name: Install dependencies 26 | run: | 27 | python -m pip install --upgrade pip 28 | pip install twine 29 | 30 | - name: Build manylinux Python wheels 31 | uses: RalfG/python-wheels-manylinux-build@v0.7.1-manylinux2014_x86_64 32 | with: 33 | python-versions: 'cp39-cp39 cp310-cp310 cp311-cp311' 34 | 35 | - name: Publish wheels to PyPI 36 | env: 37 | TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} 38 | TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} 39 | run: | 40 | twine upload --skip-existing dist/*-manylinux*.whl 41 | -------------------------------------------------------------------------------- /.github/workflows/python-publish-winmac.yml: -------------------------------------------------------------------------------- 1 | # This workflows will upload a Python Package using Twine when a release is created 2 | # For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries 3 | 4 | name: PyPI WinMac 5 | 6 | on: 7 | workflow_dispatch: 8 | 9 | jobs: 10 | deploy: 11 | 12 | runs-on: ${{ matrix.os }} 13 | strategy: 14 | matrix: 15 | os: [macos-latest, windows-latest] 16 | python-version: ['3.9', '3.10', '3.11'] 17 | 18 | steps: 19 | - uses: actions/checkout@v2 20 | - name: Set up Python 21 | uses: actions/setup-python@v2 22 | with: 23 | python-version: ${{ matrix.python-version }} 24 | 25 | - name: Install build dependencies on windows 26 | if: startsWith(matrix.os, 'windows') 27 | run: | 28 | choco install cmake 29 | cmake --version 30 | 31 | - name: Install build dependencies on macos 32 | if: startsWith(matrix.os, 'macos') 33 | run: | 34 | brew install cmake 35 | cmake --version 36 | 37 | - name: Install dependencies 38 | run: | 39 | python -m pip install --upgrade pip 40 | pip install setuptools wheel twine 41 | 42 | - name: Build and publish 43 | env: 44 | TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} 45 | TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} 46 | run: | 47 | python setup.py sdist bdist_wheel 48 | twine upload --skip-existing dist/* 49 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### Python template 3 | # Byte-compiled / optimized / DLL files 4 | __pycache__/ 5 | *.py[cod] 6 | *$py.class 7 | 8 | # C extensions 9 | *.so 10 | 11 | # Distribution / packaging 12 | .Python 13 | env/ 14 | build/ 15 | develop-eggs/ 16 | dist/ 17 | downloads/ 18 | eggs/ 19 | .eggs/ 20 | lib/ 21 | lib64/ 22 | parts/ 23 | sdist/ 24 | var/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | 29 | # PyInstaller 30 | # Usually these files are written by a python script from a template 31 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 32 | *.manifest 33 | *.spec 34 | 35 | # Installer logs 36 | pip-log.txt 37 | pip-delete-this-directory.txt 38 | 39 | # Unit test / coverage reports 40 | htmlcov/ 41 | .tox/ 42 | .coverage 43 | .coverage.* 44 | .cache 45 | nosetests.xml 46 | coverage.xml 47 | *,cover 48 | .hypothesis/ 49 | 50 | # Translations 51 | *.mo 52 | *.pot 53 | 54 | # Django stuff: 55 | *.log 56 | local_settings.py 57 | 58 | # Flask stuff: 59 | instance/ 60 | .webassets-cache 61 | 62 | # Scrapy stuff: 63 | .scrapy 64 | 65 | # Sphinx documentation 66 | docs/_build/ 67 | 68 | # PyBuilder 69 | target/ 70 | 71 | # IPython Notebook 72 | .ipynb_checkpoints 73 | 74 | # pyenv 75 | .python-version 76 | 77 | # celery beat schedule file 78 | celerybeat-schedule 79 | 80 | # dotenv 81 | .env 82 | 83 | # virtualenv 84 | venv/ 85 | ENV/ 86 | .venv/ 87 | 88 | # Spyder project settings 89 | .spyderproject 90 | 91 | # Rope project settings 92 | .ropeproject 93 | 94 | # Pycharm project files 95 | .idea 96 | 97 | .vscode 98 | 99 | # pytest 100 | .pytest_cache 101 | *.config 102 | *.creator 103 | *.user 104 | *.files 105 | *.includes -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 4.0) 2 | 3 | project(assimp_py) 4 | set(CMAKE_C_STANDARD 99) 5 | if(UNIX AND NOT APPLE) 6 | # https://pybind11.readthedocs.io/en/stable/compiling.html#findpython-mode 7 | # XXX Gotcha for building manylinux wheels. 8 | find_package(Python REQUIRED COMPONENTS Interpreter Development.Module) 9 | # Uncomment for local builds 😩 10 | # find_package(Python REQUIRED COMPONENTS Interpreter Development) 11 | else() 12 | # XXX Gotcha for building multiple python versions on windows. 13 | find_package(Python ${REQUESTED_PYTHON_VERSION} EXACT REQUIRED COMPONENTS Interpreter Development) 14 | endif() 15 | 16 | # build for universal2 17 | set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64") 18 | 19 | # use ccache to speed up builds if it is available 20 | find_program(CCACHE_FOUND ccache) 21 | if(CCACHE_FOUND) 22 | set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) 23 | endif(CCACHE_FOUND) 24 | 25 | # needed for python lib 26 | if(CMAKE_COMPILER_IS_GNUCC) 27 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -funsigned-char") 28 | endif() 29 | 30 | if(MSVC) 31 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /J") 32 | endif() 33 | 34 | add_subdirectory(src/assimp) 35 | 36 | # build for universal2 37 | set_property(DIRECTORY src/assimp PROPERTY CMAKE_OSX_ARCHITECTURES "x86_64;arm64") 38 | 39 | # -- build the python extension 40 | include_directories(src/assimp/include ${PROJECT_BINARY_DIR}/src/assimp/include ${Python_INCLUDE_DIRS}) 41 | link_directories(${Python_LIBRARY_DIRS}) 42 | add_library(assimp_py SHARED src/assimp_py/assimp_py.c) 43 | 44 | if(UNIX AND NOT APPLE) 45 | # For some reason, by default, we link to static zlib and rt, 46 | # explicitly linking z and rt prevents the error related to that 47 | target_link_libraries(assimp_py assimp z rt) 48 | elseif(APPLE) 49 | target_link_libraries(assimp_py assimp "-undefined dynamic_lookup") 50 | else() 51 | target_link_libraries(assimp_py assimp) 52 | endif() 53 | 54 | 55 | # -- set the name of the build extension module 56 | # EXTENSION_NAME is defined in setup.py 57 | set_target_properties( 58 | assimp_py 59 | PROPERTIES 60 | PREFIX "" 61 | SUFFIX "" 62 | OUTPUT_NAME "${EXTENSION_NAME}" 63 | ) -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Ian Karanja 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | prune **/ __pycache__ 2 | 3 | graft scripts 4 | graft src/assimp -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | all: clean install test 2 | 3 | develop: 4 | @pip install -e . 5 | 6 | install: 7 | @pip install . -v 8 | 9 | test: 10 | @pytest tests/ 11 | 12 | profile: 13 | python scripts/memprof.py 14 | 15 | .PHONY: clean 16 | 17 | clean: 18 | @rm -f *.so 19 | @rm -rf dist 20 | @rm -rf build 21 | @rm -rf src/*.egg-info 22 | @rm -rf .pytest_cache 23 | @rm -rf tests/__pycache__ -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = [ 3 | "setuptools>=61", 4 | "wheel", 5 | "cmake>=4.0", 6 | ] 7 | build-backend = "setuptools.build_meta" 8 | 9 | [project] 10 | name = "assimp_py" 11 | version = "1.1.0" 12 | description = "Minimal Python Bindings for ASSIMP Library using C-API" 13 | readme = "README.md" 14 | license-files = ["LICENSE", "src/assimp/LICENSE"] 15 | requires-python = ">=3.9" 16 | 17 | authors = [ 18 | { name = "Ian Ichung'wa", email = "karanjaichungwa@gmail.com" } 19 | ] 20 | 21 | classifiers = [ 22 | "Programming Language :: Python :: 3", 23 | "Programming Language :: Python :: 3.9", 24 | "Programming Language :: Python :: 3.10", 25 | "Programming Language :: Python :: 3.11", 26 | "Programming Language :: Python :: 3.12", 27 | "Programming Language :: Python :: 3.13" 28 | ] 29 | 30 | keywords = ["ASSIMP", "3D", "Graphics"] 31 | 32 | [project.urls] 33 | Homepage = "https://github.com/ranjian0/assimp_py" 34 | Repository = "https://github.com/ranjian0/assimp_py" 35 | 36 | 37 | [project.optional-dependencies] 38 | test = ["pytest", "memory-profiler"] 39 | -------------------------------------------------------------------------------- /scripts/memprof.py: -------------------------------------------------------------------------------- 1 | import assimp_py 2 | from pathlib import Path 3 | from memory_profiler import profile 4 | 5 | 6 | model_a = Path(__file__).parent.parent.joinpath("tests/models/cyborg/cyborg.obj") 7 | model_b = Path(__file__).parent.parent.joinpath("tests/models/planet/planet.obj") 8 | 9 | @profile 10 | def func(model): 11 | post_flags = ( 12 | assimp_py.Process_GenNormals | assimp_py.Process_CalcTangentSpace 13 | ) 14 | scn = assimp_py.import_file(str(model.absolute()), post_flags) 15 | del scn 16 | 17 | for _ in range(10): 18 | func(model_a) 19 | func(model_b) -------------------------------------------------------------------------------- /src/assimp/assimp.pc.in: -------------------------------------------------------------------------------- 1 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@ 2 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ 3 | 4 | Name: @CMAKE_PROJECT_NAME@ 5 | Description: Import various well-known 3D model formats in an uniform manner. 6 | Version: @PROJECT_VERSION@ 7 | Libs: -L${libdir} -lassimp@ASSIMP_LIBRARY_SUFFIX@ 8 | Libs.private: @LIBSTDC++_LIBRARIES@ @ZLIB_LIBRARIES_LINKED@ 9 | Cflags: -I${includedir} 10 | -------------------------------------------------------------------------------- /src/assimp/cmake-modules/CoverallsClear.cmake: -------------------------------------------------------------------------------- 1 | # 2 | # The MIT License (MIT) 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy 5 | # of this software and associated documentation files (the "Software"), to deal 6 | # in the Software without restriction, including without limitation the rights 7 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | # copies of the Software, and to permit persons to whom the Software is 9 | # furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in all 12 | # copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 20 | # SOFTWARE. 21 | # 22 | # Copyright (C) 2014 Joakim Söderberg 23 | # 24 | 25 | # do not follow symlinks in file(GLOB_RECURSE ...) 26 | cmake_policy(SET CMP0009 NEW) 27 | 28 | file(GLOB_RECURSE GCDA_FILES "${PROJECT_BINARY_DIR}/*.gcda") 29 | if(NOT GCDA_FILES STREQUAL "") 30 | file(REMOVE ${GCDA_FILES}) 31 | endif() -------------------------------------------------------------------------------- /src/assimp/cmake-modules/FindDevIL.cmake: -------------------------------------------------------------------------------- 1 | # Distributed under the OSI-approved BSD 3-Clause License. See accompanying 2 | # file Copyright.txt or https://cmake.org/licensing for details. 3 | 4 | #.rst: 5 | # FindDevIL 6 | # --------- 7 | # 8 | # 9 | # 10 | # This module locates the developer's image library. 11 | # http://openil.sourceforge.net/ 12 | # 13 | # This module sets: 14 | # 15 | # :: 16 | # 17 | # IL_LIBRARIES - the name of the IL library. These include the full path to 18 | # the core DevIL library. This one has to be linked into the 19 | # application. 20 | # ILU_LIBRARIES - the name of the ILU library. Again, the full path. This 21 | # library is for filters and effects, not actual loading. It 22 | # doesn't have to be linked if the functionality it provides 23 | # is not used. 24 | # ILUT_LIBRARIES - the name of the ILUT library. Full path. This part of the 25 | # library interfaces with OpenGL. It is not strictly needed 26 | # in applications. 27 | # IL_INCLUDE_DIR - where to find the il.h, ilu.h and ilut.h files. 28 | # IL_FOUND - this is set to TRUE if all the above variables were set. 29 | # This will be set to false if ILU or ILUT are not found, 30 | # even if they are not needed. In most systems, if one 31 | # library is found all the others are as well. That's the 32 | # way the DevIL developers release it. 33 | 34 | # TODO: Add version support. 35 | # Tested under Linux and Windows (MSVC) 36 | 37 | #include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) 38 | include(FindPackageHandleStandardArgs) 39 | 40 | find_path(IL_INCLUDE_DIR il.h 41 | PATH_SUFFIXES include IL 42 | DOC "The path to the directory that contains il.h" 43 | ) 44 | 45 | #message("IL_INCLUDE_DIR is ${IL_INCLUDE_DIR}") 46 | 47 | find_library(IL_LIBRARIES 48 | NAMES IL DEVIL 49 | PATH_SUFFIXES lib64 lib lib32 50 | DOC "The file that corresponds to the base il library." 51 | ) 52 | 53 | #message("IL_LIBRARIES is ${IL_LIBRARIES}") 54 | 55 | find_library(ILUT_LIBRARIES 56 | NAMES ILUT 57 | PATH_SUFFIXES lib64 lib lib32 58 | DOC "The file that corresponds to the il (system?) utility library." 59 | ) 60 | 61 | #message("ILUT_LIBRARIES is ${ILUT_LIBRARIES}") 62 | 63 | find_library(ILU_LIBRARIES 64 | NAMES ILU 65 | PATH_SUFFIXES lib64 lib lib32 66 | DOC "The file that corresponds to the il utility library." 67 | ) 68 | 69 | #message("ILU_LIBRARIES is ${ILU_LIBRARIES}") 70 | 71 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(IL DEFAULT_MSG 72 | IL_LIBRARIES IL_INCLUDE_DIR) 73 | -------------------------------------------------------------------------------- /src/assimp/cmake-modules/FindRT.cmake: -------------------------------------------------------------------------------- 1 | # Try to find real time libraries 2 | # Once done, this will define 3 | # 4 | # RT_FOUND - system has rt library 5 | # RT_LIBRARIES - rt libraries directory 6 | # 7 | # Source: https://gitlab.cern.ch/dss/eos/commit/44070e575faaa46bd998708ef03eedb381506ff0 8 | # 9 | 10 | if(RT_LIBRARIES) 11 | set(RT_FIND_QUIETLY TRUE) 12 | endif(RT_LIBRARIES) 13 | 14 | find_library(RT_LIBRARY rt) 15 | set(RT_LIBRARIES ${RT_LIBRARY}) 16 | # handle the QUIETLY and REQUIRED arguments and set 17 | # RT_FOUND to TRUE if all listed variables are TRUE 18 | include(FindPackageHandleStandardArgs) 19 | find_package_handle_standard_args(RT DEFAULT_MSG RT_LIBRARY) 20 | mark_as_advanced(RT_LIBRARY) 21 | -------------------------------------------------------------------------------- /src/assimp/cmake-modules/FindZLIB.cmake: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------- 2 | # This file is part of the CMake build system for OGRE 3 | # (Object-oriented Graphics Rendering Engine) 4 | # For the latest info, see http://www.ogre3d.org/ 5 | # 6 | # The contents of this file are placed in the public domain. Feel 7 | # free to make use of it in any way you like. 8 | #------------------------------------------------------------------- 9 | 10 | # - Try to find ZLIB 11 | # Once done, this will define 12 | # 13 | # ZLIB_FOUND - system has ZLIB 14 | # ZLIB_INCLUDE_DIRS - the ZLIB include directories 15 | # ZLIB_LIBRARIES - link these to use ZLIB 16 | 17 | include(FindPkgMacros) 18 | findpkg_begin(ZLIB) 19 | 20 | # Get path, convert backslashes as ${ENV_${var}} 21 | getenv_path(ZLIB_HOME) 22 | 23 | # construct search paths 24 | set(ZLIB_PREFIX_PATH ${ZLIB_HOME} ${ENV_ZLIB_HOME}) 25 | create_search_paths(ZLIB) 26 | # redo search if prefix path changed 27 | clear_if_changed(ZLIB_PREFIX_PATH 28 | ZLIB_LIBRARY_FWK 29 | ZLIB_LIBRARY_REL 30 | ZLIB_LIBRARY_DBG 31 | ZLIB_INCLUDE_DIR 32 | ) 33 | 34 | set(ZLIB_LIBRARY_NAMES z zlib zdll) 35 | get_debug_names(ZLIB_LIBRARY_NAMES) 36 | 37 | use_pkgconfig(ZLIB_PKGC zzip-zlib-config) 38 | 39 | findpkg_framework(ZLIB) 40 | 41 | find_path(ZLIB_INCLUDE_DIR NAMES zlib.h HINTS ${ZLIB_INC_SEARCH_PATH} ${ZLIB_PKGC_INCLUDE_DIRS}) 42 | find_library(ZLIB_LIBRARY_REL NAMES ${ZLIB_LIBRARY_NAMES} HINTS ${ZLIB_LIB_SEARCH_PATH} ${ZLIB_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" release relwithdebinfo minsizerel) 43 | find_library(ZLIB_LIBRARY_DBG NAMES ${ZLIB_LIBRARY_NAMES_DBG} HINTS ${ZLIB_LIB_SEARCH_PATH} ${ZLIB_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" debug) 44 | 45 | make_library_set(ZLIB_LIBRARY) 46 | 47 | findpkg_finish(ZLIB) 48 | 49 | -------------------------------------------------------------------------------- /src/assimp/cmake-modules/Findassimp.cmake: -------------------------------------------------------------------------------- 1 | if(CMAKE_SIZEOF_VOID_P EQUAL 8) 2 | set(ASSIMP_ARCHITECTURE "64") 3 | elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) 4 | set(ASSIMP_ARCHITECTURE "32") 5 | endif(CMAKE_SIZEOF_VOID_P EQUAL 8) 6 | 7 | if(WIN32) 8 | set(ASSIMP_ROOT_DIR CACHE PATH "ASSIMP root directory") 9 | 10 | # Find path of each library 11 | find_path(ASSIMP_INCLUDE_DIR 12 | NAMES 13 | assimp/anim.h 14 | HINTS 15 | ${ASSIMP_ROOT_DIR}/include 16 | ) 17 | 18 | if(MSVC12) 19 | set(ASSIMP_MSVC_VERSION "vc120") 20 | elseif(MSVC14) 21 | set(ASSIMP_MSVC_VERSION "vc140") 22 | endif(MSVC12) 23 | 24 | if(MSVC12 OR MSVC14) 25 | 26 | find_path(ASSIMP_LIBRARY_DIR 27 | NAMES 28 | assimp-${ASSIMP_MSVC_VERSION}-mt.lib 29 | HINTS 30 | ${ASSIMP_ROOT_DIR}/lib${ASSIMP_ARCHITECTURE} 31 | ) 32 | 33 | find_library(ASSIMP_LIBRARY_RELEASE assimp-${ASSIMP_MSVC_VERSION}-mt.lib PATHS ${ASSIMP_LIBRARY_DIR}) 34 | find_library(ASSIMP_LIBRARY_DEBUG assimp-${ASSIMP_MSVC_VERSION}-mtd.lib PATHS ${ASSIMP_LIBRARY_DIR}) 35 | 36 | set(ASSIMP_LIBRARY 37 | optimized ${ASSIMP_LIBRARY_RELEASE} 38 | debug ${ASSIMP_LIBRARY_DEBUG} 39 | ) 40 | 41 | set(ASSIMP_LIBRARIES "ASSIMP_LIBRARY_RELEASE" "ASSIMP_LIBRARY_DEBUG") 42 | 43 | FUNCTION(ASSIMP_COPY_BINARIES TargetDirectory) 44 | ADD_CUSTOM_TARGET(AssimpCopyBinaries 45 | COMMAND ${CMAKE_COMMAND} -E copy ${ASSIMP_ROOT_DIR}/bin${ASSIMP_ARCHITECTURE}/assimp-${ASSIMP_MSVC_VERSION}-mtd.dll ${TargetDirectory}/Debug/assimp-${ASSIMP_MSVC_VERSION}-mtd.dll 46 | COMMAND ${CMAKE_COMMAND} -E copy ${ASSIMP_ROOT_DIR}/bin${ASSIMP_ARCHITECTURE}/assimp-${ASSIMP_MSVC_VERSION}-mt.dll ${TargetDirectory}/Release/assimp-${ASSIMP_MSVC_VERSION}-mt.dll 47 | COMMENT "Copying Assimp binaries to '${TargetDirectory}'" 48 | VERBATIM) 49 | ENDFUNCTION(ASSIMP_COPY_BINARIES) 50 | 51 | endif() 52 | 53 | else(WIN32) 54 | 55 | find_path( 56 | assimp_INCLUDE_DIRS 57 | NAMES assimp/postprocess.h assimp/scene.h assimp/version.h assimp/config.h assimp/cimport.h 58 | PATHS /usr/local/include 59 | PATHS /usr/include/ 60 | 61 | ) 62 | 63 | find_library( 64 | assimp_LIBRARIES 65 | NAMES assimp 66 | PATHS /usr/local/lib/ 67 | PATHS /usr/lib64/ 68 | PATHS /usr/lib/ 69 | ) 70 | 71 | if (assimp_INCLUDE_DIRS AND assimp_LIBRARIES) 72 | SET(assimp_FOUND TRUE) 73 | ENDIF (assimp_INCLUDE_DIRS AND assimp_LIBRARIES) 74 | 75 | if (assimp_FOUND) 76 | if (NOT assimp_FIND_QUIETLY) 77 | message(STATUS "Found asset importer library: ${assimp_LIBRARIES}") 78 | endif (NOT assimp_FIND_QUIETLY) 79 | else (assimp_FOUND) 80 | if (assimp_FIND_REQUIRED) 81 | message(FATAL_ERROR "Could not find asset importer library") 82 | endif (assimp_FIND_REQUIRED) 83 | endif (assimp_FOUND) 84 | 85 | endif(WIN32) 86 | -------------------------------------------------------------------------------- /src/assimp/cmake-modules/MinGW_x86_64.cmake: -------------------------------------------------------------------------------- 1 | # this one sets internal to crosscompile (in theory) 2 | SET(CMAKE_SYSTEM_NAME Windows) 3 | 4 | # the minimalistic settings 5 | SET(CMAKE_C_COMPILER "/usr/bin/x86_64-w64-mingw32-gcc") 6 | SET(CMAKE_CXX_COMPILER "/usr/bin/x86_64-w64-mingw32-g++") 7 | SET(CMAKE_RC_COMPILER "/usr/bin/x86_64-w64-mingw32-windres") 8 | 9 | # where is the target (so called staging) environment 10 | SET(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32) 11 | 12 | # search for programs in the build host directories (default BOTH) 13 | #SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 14 | # for libraries and headers in the target directories 15 | SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 16 | SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 17 | -------------------------------------------------------------------------------- /src/assimp/cmake-modules/PrecompiledHeader.cmake: -------------------------------------------------------------------------------- 1 | MACRO(ADD_MSVC_PRECOMPILED_HEADER PrecompiledHeader PrecompiledSource SourcesVar) 2 | IF(MSVC) 3 | GET_FILENAME_COMPONENT(PrecompiledBasename ${PrecompiledHeader} NAME_WE) 4 | SET(PrecompiledBinary "${CMAKE_CFG_INTDIR}/${PrecompiledBasename}.pch") 5 | SET(Sources ${${SourcesVar}}) 6 | 7 | SET_SOURCE_FILES_PROPERTIES(${PrecompiledSource} 8 | PROPERTIES COMPILE_FLAGS "/Yc\"${PrecompiledHeader}\" /Fp\"${PrecompiledBinary}\"" 9 | OBJECT_OUTPUTS "${PrecompiledBinary}") 10 | 11 | # Do not consider .c files 12 | foreach(fname ${Sources}) 13 | GET_FILENAME_COMPONENT(fext ${fname} EXT) 14 | if(fext STREQUAL ".cpp") 15 | SET_SOURCE_FILES_PROPERTIES(${fname} 16 | PROPERTIES COMPILE_FLAGS "/Yu\"${PrecompiledBinary}\" /FI\"${PrecompiledBinary}\" /Fp\"${PrecompiledBinary}\"" 17 | OBJECT_DEPENDS "${PrecompiledBinary}") 18 | endif(fext STREQUAL ".cpp") 19 | endforeach(fname) 20 | 21 | ENDIF(MSVC) 22 | # Add precompiled header to SourcesVar 23 | LIST(APPEND ${SourcesVar} ${PrecompiledSource}) 24 | 25 | ENDMACRO(ADD_MSVC_PRECOMPILED_HEADER) 26 | -------------------------------------------------------------------------------- /src/assimp/cmake-modules/assimp-hunter-config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | find_package(RapidJSON CONFIG REQUIRED) 4 | find_package(ZLIB CONFIG REQUIRED) 5 | find_package(utf8cpp CONFIG REQUIRED) 6 | find_package(minizip CONFIG REQUIRED) 7 | find_package(openddlparser CONFIG REQUIRED) 8 | find_package(poly2tri CONFIG REQUIRED) 9 | find_package(polyclipping CONFIG REQUIRED) 10 | find_package(zip CONFIG REQUIRED) 11 | find_package(pugixml CONFIG REQUIRED) 12 | find_package(stb CONFIG REQUIRED) 13 | 14 | if(@ASSIMP_BUILD_DRACO@) 15 | find_package(draco CONFIG REQUIRED) 16 | endif() 17 | 18 | include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") 19 | check_required_components("@PROJECT_NAME@") 20 | -------------------------------------------------------------------------------- /src/assimp/cmake-modules/assimp-plain-config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") 4 | 5 | set(ASSIMP_ROOT_DIR ${PACKAGE_PREFIX_DIR}) 6 | set(ASSIMP_LIBRARIES assimp::assimp) 7 | set(ASSIMP_BUILD_SHARED_LIBS @BUILD_SHARED_LIBS@) 8 | get_property(ASSIMP_INCLUDE_DIRS TARGET assimp::assimp PROPERTY INTERFACE_INCLUDE_DIRECTORIES) 9 | set(ASSIMP_LIBRARY_DIRS "") 10 | -------------------------------------------------------------------------------- /src/assimp/cmake-modules/cmake_uninstall.cmake.in: -------------------------------------------------------------------------------- 1 | IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") 2 | MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") 3 | ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") 4 | 5 | FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) 6 | STRING(REGEX REPLACE "\n" ";" files "${files}") 7 | FOREACH(file ${files}) 8 | MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") 9 | EXEC_PROGRAM( 10 | "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" 11 | OUTPUT_VARIABLE rm_out 12 | RETURN_VALUE rm_retval 13 | ) 14 | IF(NOT "${rm_retval}" STREQUAL 0) 15 | MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") 16 | ENDIF(NOT "${rm_retval}" STREQUAL 0) 17 | ENDFOREACH(file) 18 | -------------------------------------------------------------------------------- /src/assimp/code/.editorconfig: -------------------------------------------------------------------------------- 1 | # See for details 2 | 3 | [*.{h,hpp,c,cpp}] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | trim_trailing_whitespace = true 7 | indent_size = 4 8 | indent_style = space 9 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/Assbin/AssbinExporter.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Open Asset Import Library (assimp) 3 | ---------------------------------------------------------------------- 4 | 5 | Copyright (c) 2006-2024, assimp team 6 | 7 | All rights reserved. 8 | 9 | Redistribution and use of this software in source and binary forms, 10 | with or without modification, are permitted provided that the 11 | following conditions are met: 12 | 13 | * Redistributions of source code must retain the above 14 | copyright notice, this list of conditions and the 15 | following disclaimer. 16 | 17 | * Redistributions in binary form must reproduce the above 18 | copyright notice, this list of conditions and the 19 | following disclaimer in the documentation and/or other 20 | materials provided with the distribution. 21 | 22 | * Neither the name of the assimp team, nor the names of its 23 | contributors may be used to endorse or promote products 24 | derived from this software without specific prior 25 | written permission of the assimp team. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | ---------------------------------------------------------------------- 40 | */ 41 | /** @file AssbinExporter.cpp 42 | * ASSBIN exporter main code 43 | */ 44 | 45 | #ifndef ASSIMP_BUILD_NO_EXPORT 46 | #ifndef ASSIMP_BUILD_NO_ASSBIN_EXPORTER 47 | 48 | #include "AssbinFileWriter.h" 49 | 50 | #include 51 | #include 52 | #include 53 | 54 | namespace Assimp { 55 | 56 | void ExportSceneAssbin(const char *pFile, IOSystem *pIOSystem, const aiScene *pScene, const ExportProperties * /*pProperties*/) { 57 | DumpSceneToAssbin( 58 | pFile, 59 | "\0", // no command(s). 60 | pIOSystem, 61 | pScene, 62 | false, // shortened? 63 | false); // compressed? 64 | } 65 | } // end of namespace Assimp 66 | 67 | #endif // ASSIMP_BUILD_NO_ASSBIN_EXPORTER 68 | #endif // ASSIMP_BUILD_NO_EXPORT 69 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/Assbin/AssbinExporter.h: -------------------------------------------------------------------------------- 1 | /* 2 | Open Asset Import Library (assimp) 3 | ---------------------------------------------------------------------- 4 | 5 | Copyright (c) 2006-2024, assimp team 6 | 7 | All rights reserved. 8 | 9 | Redistribution and use of this software in source and binary forms, 10 | with or without modification, are permitted provided that the 11 | following conditions are met: 12 | 13 | * Redistributions of source code must retain the above 14 | copyright notice, this list of conditions and the 15 | following disclaimer. 16 | 17 | * Redistributions in binary form must reproduce the above 18 | copyright notice, this list of conditions and the 19 | following disclaimer in the documentation and/or other 20 | materials provided with the distribution. 21 | 22 | * Neither the name of the assimp team, nor the names of its 23 | contributors may be used to endorse or promote products 24 | derived from this software without specific prior 25 | written permission of the assimp team. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | ---------------------------------------------------------------------- 40 | */ 41 | 42 | /** @file AssbinExporter.h 43 | * ASSBIN Exporter Main Header 44 | */ 45 | #pragma once 46 | #ifndef AI_ASSBINEXPORTER_H_INC 47 | #define AI_ASSBINEXPORTER_H_INC 48 | 49 | #include 50 | 51 | #ifndef ASSIMP_BUILD_NO_EXPORT 52 | 53 | // nothing really needed here - reserved for future use like properties 54 | namespace Assimp { 55 | 56 | void ASSIMP_API ExportSceneAssbin(const char* pFile, IOSystem* pIOSystem, const aiScene* pScene, const ExportProperties* /*pProperties*/); 57 | 58 | } 59 | #endif 60 | #endif // AI_ASSBINEXPORTER_H_INC 61 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/Assbin/AssbinFileWriter.h: -------------------------------------------------------------------------------- 1 | /* 2 | Open Asset Import Library (assimp) 3 | ---------------------------------------------------------------------- 4 | 5 | Copyright (c) 2006-2024, assimp team 6 | 7 | All rights reserved. 8 | 9 | Redistribution and use of this software in source and binary forms, 10 | with or without modification, are permitted provided that the 11 | following conditions are met: 12 | 13 | * Redistributions of source code must retain the above 14 | copyright notice, this list of conditions and the 15 | following disclaimer. 16 | 17 | * Redistributions in binary form must reproduce the above 18 | copyright notice, this list of conditions and the 19 | following disclaimer in the documentation and/or other 20 | materials provided with the distribution. 21 | 22 | * Neither the name of the assimp team, nor the names of its 23 | contributors may be used to endorse or promote products 24 | derived from this software without specific prior 25 | written permission of the assimp team. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | ---------------------------------------------------------------------- 40 | */ 41 | 42 | /** @file AssbinFileWriter.h 43 | * @brief Declaration of Assbin file writer. 44 | */ 45 | 46 | #ifndef AI_ASSBINFILEWRITER_H_INC 47 | #define AI_ASSBINFILEWRITER_H_INC 48 | 49 | #include 50 | #include 51 | #include 52 | 53 | namespace Assimp { 54 | 55 | void ASSIMP_API DumpSceneToAssbin( 56 | const char *pFile, 57 | const char *cmd, 58 | IOSystem *pIOSystem, 59 | const aiScene *pScene, 60 | bool shortened, 61 | bool compressed); 62 | 63 | } 64 | 65 | #endif // AI_ASSBINFILEWRITER_H_INC 66 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/Assjson/cencode.h: -------------------------------------------------------------------------------- 1 | /* 2 | cencode.h - c header for a base64 encoding algorithm 3 | 4 | This is part of the libb64 project, and has been placed in the public domain. 5 | For details, see http://sourceforge.net/projects/libb64 6 | */ 7 | 8 | #ifndef BASE64_CENCODE_H 9 | #define BASE64_CENCODE_H 10 | 11 | #ifdef _MSC_VER 12 | #pragma warning(disable : 4127 ) 13 | #endif // _MSC_VER 14 | 15 | typedef enum 16 | { 17 | step_A, step_B, step_C 18 | } base64_encodestep; 19 | 20 | typedef struct 21 | { 22 | base64_encodestep step; 23 | char result; 24 | int stepcount; 25 | } base64_encodestate; 26 | 27 | void base64_init_encodestate(base64_encodestate* state_in); 28 | 29 | char base64_encode_value(char value_in); 30 | 31 | int base64_encode_block(const char* plaintext_in, int length_in, char* code_out, base64_encodestate* state_in); 32 | 33 | int base64_encode_blockend(char* code_out, base64_encodestate* state_in); 34 | 35 | #endif /* BASE64_CENCODE_H */ 36 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/Assjson/mesh_splitter.h: -------------------------------------------------------------------------------- 1 | /* 2 | Assimp2Json 3 | Copyright (c) 2011, Alexander C. Gessler 4 | 5 | Licensed under a 3-clause BSD license. See the LICENSE file for more information. 6 | 7 | */ 8 | 9 | #ifndef INCLUDED_MESH_SPLITTER 10 | #define INCLUDED_MESH_SPLITTER 11 | 12 | // ---------------------------------------------------------------------------- 13 | // Note: this is largely based on assimp's SplitLargeMeshes_Vertex process. 14 | // it is refactored and the coding style is slightly improved, though. 15 | // ---------------------------------------------------------------------------- 16 | 17 | #include 18 | 19 | struct aiScene; 20 | struct aiMesh; 21 | struct aiNode; 22 | 23 | // --------------------------------------------------------------------------- 24 | /** Splits meshes of unique vertices into meshes with no more vertices than 25 | * a given, configurable threshold value. 26 | */ 27 | class MeshSplitter { 28 | public: 29 | unsigned int LIMIT; 30 | 31 | void SetLimit(unsigned int l) { 32 | LIMIT = l; 33 | } 34 | 35 | unsigned int GetLimit() const { 36 | return LIMIT; 37 | } 38 | 39 | // ------------------------------------------------------------------- 40 | /** Executes the post processing step on the given imported data. 41 | * At the moment a process is not supposed to fail. 42 | * @param pScene The imported data to work at. 43 | */ 44 | void Execute(aiScene *pScene); 45 | 46 | private: 47 | void UpdateNode(aiNode *pcNode, const std::vector> &source_mesh_map); 48 | void SplitMesh(unsigned int index, aiMesh *mesh, std::vector> &source_mesh_map); 49 | 50 | }; 51 | 52 | #endif // INCLUDED_MESH_SPLITTER 53 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/Assxml/AssxmlExporter.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Open Asset Import Library (assimp) 3 | ---------------------------------------------------------------------- 4 | 5 | Copyright (c) 2006-2024, assimp team 6 | 7 | 8 | All rights reserved. 9 | 10 | Redistribution and use of this software in source and binary forms, 11 | with or without modification, are permitted provided that the 12 | following conditions are met: 13 | 14 | * Redistributions of source code must retain the above 15 | copyright notice, this list of conditions and the 16 | following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above 19 | copyright notice, this list of conditions and the 20 | following disclaimer in the documentation and/or other 21 | materials provided with the distribution. 22 | 23 | * Neither the name of the assimp team, nor the names of its 24 | contributors may be used to endorse or promote products 25 | derived from this software without specific prior 26 | written permission of the assimp team. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 31 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 32 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 33 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 34 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 35 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 36 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 | 40 | ---------------------------------------------------------------------- 41 | */ 42 | /** @file AssxmlExporter.cpp 43 | * ASSXML exporter main code 44 | */ 45 | 46 | #ifndef ASSIMP_BUILD_NO_EXPORT 47 | #ifndef ASSIMP_BUILD_NO_ASSXML_EXPORTER 48 | 49 | #include "AssxmlFileWriter.h" 50 | #include 51 | #include 52 | 53 | namespace Assimp { 54 | 55 | void ExportSceneAssxml(const char* pFile, IOSystem* pIOSystem, const aiScene* pScene, const ExportProperties* /*pProperties*/) 56 | { 57 | DumpSceneToAssxml( 58 | pFile, 59 | "\0", // command(s) 60 | pIOSystem, 61 | pScene, 62 | false); // shortened? 63 | } 64 | 65 | } // end of namespace Assimp 66 | 67 | #endif // ASSIMP_BUILD_NO_ASSXML_EXPORTER 68 | #endif // ASSIMP_BUILD_NO_EXPORT 69 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/Assxml/AssxmlExporter.h: -------------------------------------------------------------------------------- 1 | /* 2 | Open Asset Import Library (assimp) 3 | ---------------------------------------------------------------------- 4 | 5 | Copyright (c) 2006-2024, assimp team 6 | 7 | 8 | All rights reserved. 9 | 10 | Redistribution and use of this software in source and binary forms, 11 | with or without modification, are permitted provided that the 12 | following conditions are met: 13 | 14 | * Redistributions of source code must retain the above 15 | copyright notice, this list of conditions and the 16 | following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above 19 | copyright notice, this list of conditions and the 20 | following disclaimer in the documentation and/or other 21 | materials provided with the distribution. 22 | 23 | * Neither the name of the assimp team, nor the names of its 24 | contributors may be used to endorse or promote products 25 | derived from this software without specific prior 26 | written permission of the assimp team. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 31 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 32 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 33 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 34 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 35 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 36 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 | 40 | ---------------------------------------------------------------------- 41 | */ 42 | 43 | /** @file AssxmlExporter.h 44 | * ASSXML Exporter Main Header 45 | */ 46 | #pragma once 47 | #ifndef AI_ASSXMLEXPORTER_H_INC 48 | #define AI_ASSXMLEXPORTER_H_INC 49 | 50 | // nothing really needed here - reserved for future use like properties 51 | 52 | #endif 53 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/Assxml/AssxmlFileWriter.h: -------------------------------------------------------------------------------- 1 | /* 2 | Open Asset Import Library (assimp) 3 | ---------------------------------------------------------------------- 4 | 5 | Copyright (c) 2006-2024, assimp team 6 | 7 | All rights reserved. 8 | 9 | Redistribution and use of this software in source and binary forms, 10 | with or without modification, are permitted provided that the 11 | following conditions are met: 12 | 13 | * Redistributions of source code must retain the above 14 | copyright notice, this list of conditions and the 15 | following disclaimer. 16 | 17 | * Redistributions in binary form must reproduce the above 18 | copyright notice, this list of conditions and the 19 | following disclaimer in the documentation and/or other 20 | materials provided with the distribution. 21 | 22 | * Neither the name of the assimp team, nor the names of its 23 | contributors may be used to endorse or promote products 24 | derived from this software without specific prior 25 | written permission of the assimp team. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | ---------------------------------------------------------------------- 40 | */ 41 | 42 | /** @file AssxmlFileWriter.h 43 | * @brief Declaration of Assxml file writer. 44 | */ 45 | #pragma once 46 | #ifndef AI_ASSXMLFILEWRITER_H_INC 47 | #define AI_ASSXMLFILEWRITER_H_INC 48 | 49 | #include 50 | #include 51 | #include 52 | 53 | namespace Assimp { 54 | 55 | void ASSIMP_API DumpSceneToAssxml( 56 | const char* pFile, 57 | const char* cmd, 58 | IOSystem* pIOSystem, 59 | const aiScene* pScene, 60 | bool shortened); 61 | 62 | } 63 | 64 | #endif // AI_ASSXMLFILEWRITER_H_INC 65 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/MDL/HalfLife/HalfLifeMDLBaseHeader.h: -------------------------------------------------------------------------------- 1 | /* 2 | --------------------------------------------------------------------------- 3 | Open Asset Import Library (assimp) 4 | --------------------------------------------------------------------------- 5 | 6 | Copyright (c) 2006-2024, assimp team 7 | 8 | All rights reserved. 9 | 10 | Redistribution and use of this software in source and binary forms, 11 | with or without modification, are permitted provided that the following 12 | conditions are met: 13 | 14 | * Redistributions of source code must retain the above 15 | copyright notice, this list of conditions and the 16 | following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above 19 | copyright notice, this list of conditions and the 20 | following disclaimer in the documentation and/or other 21 | materials provided with the distribution. 22 | 23 | * Neither the name of the assimp team, nor the names of its 24 | contributors may be used to endorse or promote products 25 | derived from this software without specific prior 26 | written permission of the assimp team. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 31 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 32 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 33 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 34 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 35 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 36 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 | --------------------------------------------------------------------------- 40 | */ 41 | 42 | /** @file HalfLifeMDLBaseHeader.h */ 43 | 44 | #ifndef AI_HALFLIFEMDLBASEHEADER_INCLUDED 45 | #define AI_HALFLIFEMDLBASEHEADER_INCLUDED 46 | 47 | #include 48 | 49 | namespace Assimp { 50 | namespace MDL { 51 | namespace HalfLife { 52 | 53 | /** Used to interface different Valve MDL formats. */ 54 | struct HalfLifeMDLBaseHeader 55 | { 56 | //! Magic number: "IDST"/"IDSQ" 57 | char ident[4]; 58 | 59 | //! The file format version. 60 | int32_t version; 61 | }; 62 | 63 | } 64 | } 65 | } 66 | 67 | #endif // AI_HALFLIFEMDLBASEHEADER_INCLUDED 68 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/OpenGEX/OpenGEXExporter.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Open Asset Import Library (assimp) 3 | ---------------------------------------------------------------------- 4 | 5 | Copyright (c) 2006-2024, assimp team 6 | 7 | 8 | All rights reserved. 9 | 10 | Redistribution and use of this software in source and binary forms, 11 | with or without modification, are permitted provided that the 12 | following conditions are met: 13 | 14 | * Redistributions of source code must retain the above 15 | copyright notice, this list of conditions and the 16 | following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above 19 | copyright notice, this list of conditions and the 20 | following disclaimer in the documentation and/or other 21 | materials provided with the distribution. 22 | 23 | * Neither the name of the assimp team, nor the names of its 24 | contributors may be used to endorse or promote products 25 | derived from this software without specific prior 26 | written permission of the assimp team. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 31 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 32 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 33 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 34 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 35 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 36 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 | 40 | ---------------------------------------------------------------------- 41 | */ 42 | #include "OpenGEXExporter.h" 43 | 44 | namespace Assimp { 45 | namespace OpenGEX { 46 | 47 | #ifndef ASSIMP_BUILD_NO_OPENGEX_EXPORTER 48 | 49 | OpenGEXExporter::OpenGEXExporter() = default; 50 | 51 | 52 | 53 | bool OpenGEXExporter::exportScene( const char * /*filename*/, const aiScene* /*pScene*/ ) { 54 | return true; 55 | } 56 | 57 | #endif // ASSIMP_BUILD_NO_OPENGEX_EXPORTER 58 | 59 | } // Namespace OpenGEX 60 | } // Namespace Assimp 61 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/OpenGEX/OpenGEXExporter.h: -------------------------------------------------------------------------------- 1 | /* 2 | Open Asset Import Library (assimp) 3 | ---------------------------------------------------------------------- 4 | 5 | Copyright (c) 2006-2024, assimp team 6 | 7 | All rights reserved. 8 | 9 | Redistribution and use of this software in source and binary forms, 10 | with or without modification, are permitted provided that the 11 | following conditions are met: 12 | 13 | * Redistributions of source code must retain the above 14 | copyright notice, this list of conditions and the 15 | following disclaimer. 16 | 17 | * Redistributions in binary form must reproduce the above 18 | copyright notice, this list of conditions and the 19 | following disclaimer in the documentation and/or other 20 | materials provided with the distribution. 21 | 22 | * Neither the name of the assimp team, nor the names of its 23 | contributors may be used to endorse or promote products 24 | derived from this software without specific prior 25 | written permission of the assimp team. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | ---------------------------------------------------------------------- 40 | */ 41 | #pragma once 42 | #ifndef AI_OPENGEX_EXPORTER_H 43 | #define AI_OPENGEX_EXPORTER_H 44 | 45 | #include 46 | 47 | #ifndef ASSIMP_BUILD_NO_OPENGEX_EXPORTER 48 | 49 | namespace Assimp { 50 | 51 | struct aiScene; 52 | 53 | namespace OpenGEX { 54 | 55 | class OpenGEXExporter { 56 | public: 57 | OpenGEXExporter(); 58 | ~OpenGEXExporter() = default; 59 | bool exportScene( const char *filename, const aiScene* pScene ); 60 | }; 61 | 62 | } // Namespace OpenGEX 63 | } // Namespace Assimp 64 | 65 | #endif // ASSIMP_BUILD_NO_OPENGEX_EXPORTER 66 | 67 | #endif // AI_OPENGEX_EXPORTER_H 68 | 69 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/STEPParser/STEPFileEncoding.h: -------------------------------------------------------------------------------- 1 | /* 2 | Open Asset Import Library (assimp) 3 | ---------------------------------------------------------------------- 4 | 5 | Copyright (c) 2006-2024, assimp team 6 | 7 | 8 | All rights reserved. 9 | 10 | Redistribution and use of this software in source and binary forms, 11 | with or without modification, are permitted provided that the 12 | following conditions are met: 13 | 14 | * Redistributions of source code must retain the above 15 | copyright notice, this list of conditions and the 16 | following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above 19 | copyright notice, this list of conditions and the 20 | following disclaimer in the documentation and/or other 21 | materials provided with the distribution. 22 | 23 | * Neither the name of the assimp team, nor the names of its 24 | contributors may be used to endorse or promote products 25 | derived from this software without specific prior 26 | written permission of the assimp team. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 31 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 32 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 33 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 34 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 35 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 36 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 | 40 | ---------------------------------------------------------------------- 41 | */ 42 | 43 | #ifndef INCLUDED_AI_STEPFILEENCODING_H 44 | #define INCLUDED_AI_STEPFILEENCODING_H 45 | 46 | #include 47 | 48 | namespace Assimp { 49 | namespace STEP { 50 | 51 | 52 | // -------------------------------------------------------------------------- 53 | // Convert an ASCII STEP identifier with possibly escaped character 54 | // sequences using foreign encodings to plain UTF8. 55 | // 56 | // Return false if an error occurs, s may or may not be modified in 57 | // this case and could still contain escape sequences (even partly 58 | // escaped ones). 59 | bool StringToUTF8(std::string& s); 60 | 61 | 62 | } // ! STEP 63 | } // ! Assimp 64 | 65 | #endif 66 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/USD/USDLoaderUtil.h: -------------------------------------------------------------------------------- 1 | /* 2 | Open Asset Import Library (assimp) 3 | ---------------------------------------------------------------------- 4 | 5 | Copyright (c) 2006-2024, assimp team 6 | 7 | All rights reserved. 8 | 9 | Redistribution and use of this software in source and binary forms, 10 | with or without modification, are permitted provided that the 11 | following conditions are met: 12 | 13 | * Redistributions of source code must retain the above 14 | copyright notice, this list of conditions and the 15 | following disclaimer. 16 | 17 | * Redistributions in binary form must reproduce the above 18 | copyright notice, this list of conditions and the 19 | following disclaimer in the documentation and/or other 20 | materials provided with the distribution. 21 | 22 | * Neither the name of the assimp team, nor the names of its 23 | contributors may be used to endorse or promote products 24 | derived from this software without specific prior 25 | written permission of the assimp team. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | ---------------------------------------------------------------------- 40 | */ 41 | 42 | /** @file USDLoader.h 43 | * @brief Declaration of the USD importer class. 44 | */ 45 | #pragma once 46 | #ifndef AI_USDLOADER_UTIL_H_INCLUDED 47 | #define AI_USDLOADER_UTIL_H_INCLUDED 48 | 49 | #include 50 | 51 | namespace Assimp { 52 | 53 | bool isUsda(const std::string &pFile); 54 | bool isUsdc(const std::string &pFile); 55 | bool isUsdz(const std::string &pFile); 56 | bool isUsd(const std::string &pFile); 57 | 58 | } // namespace Assimp 59 | 60 | #endif // AI_USDLOADER_UTIL_H_INCLUDED 61 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/USD/USDPreprocessor.h: -------------------------------------------------------------------------------- 1 | /* 2 | Open Asset Import Library (assimp) 3 | ---------------------------------------------------------------------- 4 | 5 | Copyright (c) 2006-2024, assimp team 6 | 7 | All rights reserved. 8 | 9 | Redistribution and use of this software in source and binary forms, 10 | with or without modification, are permitted provided that the 11 | following conditions are met: 12 | 13 | * Redistributions of source code must retain the above 14 | copyright notice, this list of conditions and the 15 | following disclaimer. 16 | 17 | * Redistributions in binary form must reproduce the above 18 | copyright notice, this list of conditions and the 19 | following disclaimer in the documentation and/or other 20 | materials provided with the distribution. 21 | 22 | * Neither the name of the assimp team, nor the names of its 23 | contributors may be used to endorse or promote products 24 | derived from this software without specific prior 25 | written permission of the assimp team. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | ---------------------------------------------------------------------- 39 | */ 40 | 41 | /** @file USDLoader.h 42 | * @brief Declaration of the USD importer class. 43 | */ 44 | #pragma once 45 | #ifndef AI_USDPREPROCESSOR_H_INCLUDED 46 | #define AI_USDPREPROCESSOR_H_INCLUDED 47 | 48 | #define UNUSED(x) (void) x 49 | 50 | #endif // AI_USDPREPROCESSOR_H_INCLUDED 51 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/X3D/X3DGeoHelper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | 11 | struct aiFace; 12 | struct aiMesh; 13 | 14 | namespace Assimp { 15 | 16 | class X3DGeoHelper { 17 | public: 18 | static aiVector3D make_point2D(float angle, float radius); 19 | static void make_arc2D(float pStartAngle, float pEndAngle, float pRadius, size_t numSegments, std::list &pVertices); 20 | static void extend_point_to_line(const std::list &pPoint, std::list &pLine); 21 | static void polylineIdx_to_lineIdx(const std::list &pPolylineCoordIdx, std::list &pLineCoordIdx); 22 | static void rect_parallel_epiped(const aiVector3D &pSize, std::list &pVertices); 23 | static void coordIdx_str2faces_arr(const std::vector &pCoordIdx, std::vector &pFaces, unsigned int &pPrimitiveTypes); 24 | static void coordIdx_str2lines_arr(const std::vector &pCoordIdx, std::vector &pFaces); 25 | static void add_color(aiMesh &pMesh, const std::list &pColors, const bool pColorPerVertex); 26 | static void add_color(aiMesh &pMesh, const std::list &pColors, const bool pColorPerVertex); 27 | static void add_color(aiMesh &pMesh, const std::vector &pCoordIdx, const std::vector &pColorIdx, 28 | const std::list &pColors, const bool pColorPerVertex); 29 | static void add_color(aiMesh &pMesh, const std::vector &pCoordIdx, const std::vector &pColorIdx, 30 | const std::list &pColors, const bool pColorPerVertex); 31 | static void add_normal(aiMesh &pMesh, const std::vector &pCoordIdx, const std::vector &pNormalIdx, 32 | const std::list &pNormals, const bool pNormalPerVertex); 33 | static void add_normal(aiMesh &pMesh, const std::list &pNormals, const bool pNormalPerVertex); 34 | static void add_tex_coord(aiMesh &pMesh, const std::vector &pCoordIdx, const std::vector &pTexCoordIdx, 35 | const std::list &pTexCoords); 36 | static void add_tex_coord(aiMesh &pMesh, const std::list &pTexCoords); 37 | static aiMesh *make_mesh(const std::vector &pCoordIdx, const std::list &pVertices); 38 | static aiMesh *make_line_mesh(const std::vector &pCoordIdx, const std::list &pVertices); 39 | }; 40 | 41 | } // namespace Assimp 42 | -------------------------------------------------------------------------------- /src/assimp/code/AssetLib/X3D/X3DXmlHelper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace Assimp { 8 | 9 | class X3DXmlHelper { 10 | public: 11 | static bool getColor3DAttribute(XmlNode &node, const char *attributeName, aiColor3D &color); 12 | static bool getVector2DAttribute(XmlNode &node, const char *attributeName, aiVector2D &vector); 13 | static bool getVector3DAttribute(XmlNode &node, const char *attributeName, aiVector3D &vector); 14 | 15 | static bool getBooleanArrayAttribute(XmlNode &node, const char *attributeName, std::vector &boolArray); 16 | static bool getDoubleArrayAttribute(XmlNode &node, const char *attributeName, std::vector &doubleArray); 17 | static bool getFloatArrayAttribute(XmlNode &node, const char *attributeName, std::vector &floatArray); 18 | static bool getInt32ArrayAttribute(XmlNode &node, const char *attributeName, std::vector &intArray); 19 | static bool getStringListAttribute(XmlNode &node, const char *attributeName, std::list &stringArray); 20 | static bool getStringArrayAttribute(XmlNode &node, const char *attributeName, std::vector &stringArray); 21 | 22 | static bool getVector2DListAttribute(XmlNode &node, const char *attributeName, std::list &vectorList); 23 | static bool getVector2DArrayAttribute(XmlNode &node, const char *attributeName, std::vector &vectorArray); 24 | static bool getVector3DListAttribute(XmlNode &node, const char *attributeName, std::list &vectorList); 25 | static bool getVector3DArrayAttribute(XmlNode &node, const char *attributeName, std::vector &vectorArray); 26 | static bool getColor3DListAttribute(XmlNode &node, const char *attributeName, std::list &colorList); 27 | static bool getColor4DListAttribute(XmlNode &node, const char *attributeName, std::list &colorList); 28 | }; 29 | 30 | } // namespace Assimp 31 | -------------------------------------------------------------------------------- /src/assimp/code/Common/AssertHandler.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | --------------------------------------------------------------------------- 3 | Open Asset Import Library (assimp) 4 | --------------------------------------------------------------------------- 5 | 6 | Copyright (c) 2006-2024, assimp team 7 | 8 | All rights reserved. 9 | 10 | Redistribution and use of this software in source and binary forms, 11 | with or without modification, are permitted provided that the following 12 | conditions are met: 13 | 14 | * Redistributions of source code must retain the above 15 | copyright notice, this list of conditions and the 16 | following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above 19 | copyright notice, this list of conditions and the 20 | following disclaimer in the documentation and/or other 21 | materials provided with the distribution. 22 | 23 | * Neither the name of the assimp team, nor the names of its 24 | contributors may be used to endorse or promote products 25 | derived from this software without specific prior 26 | written permission of the assimp team. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 31 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 32 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 33 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 34 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 35 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 36 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 | --------------------------------------------------------------------------- 40 | */ 41 | 42 | /** @file AssertHandler.cpp 43 | * @brief Implementation of assert handling logic. 44 | */ 45 | 46 | #include 47 | 48 | #include 49 | #include 50 | 51 | void Assimp::defaultAiAssertHandler(const char* failedExpression, const char* file, int line) { 52 | std::cerr << "ai_assert failure in " << file << "(" << line << "): " << failedExpression << std::endl; 53 | std::abort(); 54 | } 55 | 56 | namespace { 57 | Assimp::AiAssertHandler s_handler = Assimp::defaultAiAssertHandler; 58 | } 59 | 60 | void Assimp::setAiAssertHandler(AiAssertHandler handler) { 61 | if (handler != nullptr) { 62 | s_handler = handler; 63 | } else { 64 | s_handler = Assimp::defaultAiAssertHandler; 65 | } 66 | } 67 | 68 | void Assimp::aiAssertViolation(const char* failedExpression, const char* file, int line) { 69 | s_handler(failedExpression, file, line); 70 | } 71 | -------------------------------------------------------------------------------- /src/assimp/code/Common/DefaultProgressHandler.h: -------------------------------------------------------------------------------- 1 | /* 2 | Open Asset Import Library (assimp) 3 | ---------------------------------------------------------------------- 4 | 5 | Copyright (c) 2006-2024, assimp team 6 | 7 | All rights reserved. 8 | 9 | Redistribution and use of this software in source and binary forms, 10 | with or without modification, are permitted provided that the 11 | following conditions are met: 12 | 13 | * Redistributions of source code must retain the above 14 | copyright notice, this list of conditions and the 15 | following disclaimer. 16 | 17 | * Redistributions in binary form must reproduce the above 18 | copyright notice, this list of conditions and the 19 | following disclaimer in the documentation and/or other 20 | materials provided with the distribution. 21 | 22 | * Neither the name of the assimp team, nor the names of its 23 | contributors may be used to endorse or promote products 24 | derived from this software without specific prior 25 | written permission of the assimp team. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | ---------------------------------------------------------------------- 40 | */ 41 | 42 | /** @file ProgressHandler.hpp 43 | * @brief Abstract base class 'ProgressHandler'. 44 | */ 45 | #ifndef INCLUDED_AI_DEFAULTPROGRESSHANDLER_H 46 | #define INCLUDED_AI_DEFAULTPROGRESSHANDLER_H 47 | 48 | #include 49 | 50 | namespace Assimp { 51 | 52 | // ------------------------------------------------------------------------------------ 53 | /** 54 | * @brief Internal default implementation of the #ProgressHandler interface. 55 | */ 56 | class DefaultProgressHandler : public ProgressHandler { 57 | public: 58 | /// @brief Ignores the update callback. 59 | bool Update(float) override { 60 | return false; 61 | } 62 | }; 63 | 64 | } // Namespace Assimp 65 | 66 | #endif // INCLUDED_AI_DEFAULTPROGRESSHANDLER_H 67 | -------------------------------------------------------------------------------- /src/assimp/code/Common/Exceptional.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | --------------------------------------------------------------------------- 3 | Open Asset Import Library (assimp) 4 | --------------------------------------------------------------------------- 5 | 6 | Copyright (c) 2006-2024, assimp team 7 | 8 | All rights reserved. 9 | 10 | Redistribution and use of this software in source and binary forms, 11 | with or without modification, are permitted provided that the following 12 | conditions are met: 13 | 14 | * Redistributions of source code must retain the above 15 | copyright notice, this list of conditions and the 16 | following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above 19 | copyright notice, this list of conditions and the 20 | following disclaimer in the documentation and/or other 21 | materials provided with the distribution. 22 | 23 | * Neither the name of the assimp team, nor the names of its 24 | contributors may be used to endorse or promote products 25 | derived from this software without specific prior 26 | written permission of the assimp team. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 31 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 32 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 33 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 34 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 35 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 36 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 | --------------------------------------------------------------------------- 40 | */ 41 | 42 | /** @file Exceptional.cpp 43 | 44 | Implementations of the exception classes. 45 | 46 | */ 47 | 48 | #include 49 | #include 50 | 51 | DeadlyErrorBase::DeadlyErrorBase(Assimp::Formatter::format f) : 52 | runtime_error(std::string(f)){} 53 | -------------------------------------------------------------------------------- /src/assimp/code/Common/IOSystem.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | --------------------------------------------------------------------------- 3 | Open Asset Import Library (assimp) 4 | --------------------------------------------------------------------------- 5 | 6 | Copyright (c) 2006-2024, assimp team 7 | 8 | All rights reserved. 9 | 10 | Redistribution and use of this software in source and binary forms, 11 | with or without modification, are permitted provided that the following 12 | conditions are met: 13 | 14 | * Redistributions of source code must retain the above 15 | copyright notice, this list of conditions and the 16 | following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above 19 | copyright notice, this list of conditions and the 20 | following disclaimer in the documentation and/or other 21 | materials provided with the distribution. 22 | 23 | * Neither the name of the assimp team, nor the names of its 24 | contributors may be used to endorse or promote products 25 | derived from this software without specific prior 26 | written permission of the assimp team. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 31 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 32 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 33 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 34 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 35 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 36 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 | --------------------------------------------------------------------------- 40 | */ 41 | /** @file Default implementation of IOSystem using the standard C file functions */ 42 | 43 | #include 44 | 45 | using namespace Assimp; 46 | 47 | const std::string &IOSystem::CurrentDirectory() const { 48 | if ( m_pathStack.empty() ) { 49 | static const std::string Dummy = std::string(); 50 | return Dummy; 51 | } 52 | return m_pathStack[ m_pathStack.size()-1 ]; 53 | } 54 | -------------------------------------------------------------------------------- /src/assimp/code/Common/simd.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | --------------------------------------------------------------------------- 3 | Open Asset Import Library (assimp) 4 | --------------------------------------------------------------------------- 5 | 6 | Copyright (c) 2006-2024, assimp team 7 | 8 | All rights reserved. 9 | 10 | Redistribution and use of this software in source and binary forms, 11 | with or without modification, are permitted provided that the following 12 | conditions are met: 13 | 14 | * Redistributions of source code must retain the above 15 | copyright notice, this list of conditions and the 16 | following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above 19 | copyright notice, this list of conditions and the 20 | following disclaimer in the documentation and/or other 21 | materials provided with the distribution. 22 | 23 | * Neither the name of the assimp team, nor the names of its 24 | contributors may be used to endorse or promote products 25 | derived from this software without specific prior 26 | written permission of the assimp team. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 31 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 32 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 33 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 34 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 35 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 36 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 | --------------------------------------------------------------------------- 40 | */ 41 | #include "simd.h" 42 | 43 | namespace Assimp { 44 | 45 | bool CPUSupportsSSE2() { 46 | #if defined(__x86_64__) || defined(_M_X64) 47 | //* x86_64 always has SSE2 instructions */ 48 | return true; 49 | #elif defined(__GNUC__) && defined(i386) 50 | // for GCC x86 we check cpuid 51 | unsigned int d; 52 | __asm__( 53 | "pushl %%ebx\n\t" 54 | "cpuid\n\t" 55 | "popl %%ebx\n\t" 56 | : "=d" ( d ) 57 | :"a" ( 1 ) ); 58 | return ( d & 0x04000000 ) != 0; 59 | #elif (defined(_MSC_VER) && defined(_M_IX86)) 60 | // also check cpuid for MSVC x86 61 | unsigned int d; 62 | __asm { 63 | xor eax, eax 64 | inc eax 65 | push ebx 66 | cpuid 67 | pop ebx 68 | mov d, edx 69 | } 70 | return ( d & 0x04000000 ) != 0; 71 | #else 72 | return false; 73 | #endif 74 | } 75 | 76 | 77 | } // Namespace Assimp 78 | -------------------------------------------------------------------------------- /src/assimp/code/Common/simd.h: -------------------------------------------------------------------------------- 1 | /* 2 | --------------------------------------------------------------------------- 3 | Open Asset Import Library (assimp) 4 | --------------------------------------------------------------------------- 5 | 6 | Copyright (c) 2006-2024, assimp team 7 | 8 | All rights reserved. 9 | 10 | Redistribution and use of this software in source and binary forms, 11 | with or without modification, are permitted provided that the following 12 | conditions are met: 13 | 14 | * Redistributions of source code must retain the above 15 | copyright notice, this list of conditions and the 16 | following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above 19 | copyright notice, this list of conditions and the 20 | following disclaimer in the documentation and/or other 21 | materials provided with the distribution. 22 | 23 | * Neither the name of the assimp team, nor the names of its 24 | contributors may be used to endorse or promote products 25 | derived from this software without specific prior 26 | written permission of the assimp team. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 31 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 32 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 33 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 34 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 35 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 36 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 | --------------------------------------------------------------------------- 40 | */ 41 | #pragma once 42 | 43 | #include 44 | 45 | namespace Assimp { 46 | 47 | /// @brief Checks if the platform supports SSE2 optimization 48 | /// @return true, if SSE2 is supported. false if SSE2 is not supported. 49 | bool ASSIMP_API CPUSupportsSSE2(); 50 | 51 | } // Namespace Assimp 52 | -------------------------------------------------------------------------------- /src/assimp/code/res/assimp.rc: -------------------------------------------------------------------------------- 1 | #include 2 | #ifdef __GNUC__ 3 | #include "winresrc.h" 4 | #else 5 | #include "winres.h" 6 | #endif 7 | 8 | LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL 9 | #pragma code_page(1252) 10 | 11 | VS_VERSION_INFO VERSIONINFO 12 | FILEVERSION VER_FILEVERSION 13 | PRODUCTVERSION VER_FILEVERSION 14 | FILEFLAGSMASK VS_FF_DEBUG 15 | #ifdef _DEBUG 16 | FILEFLAGS VS_FF_DEBUG 17 | #endif 18 | FILEOS VOS_NT 19 | FILETYPE VFT_DLL 20 | BEGIN 21 | BLOCK "StringFileInfo" 22 | BEGIN 23 | BLOCK "000004B0" 24 | BEGIN 25 | VALUE "Comments", "Licensed under a 3-clause BSD license" 26 | VALUE "CompanyName", "ASSIMP Team" 27 | VALUE "FileDescription", "Open Asset Import Library" 28 | VALUE "FileVersion", VER_FILEVERSION_STR 29 | VALUE "InternalName", "assimp" 30 | VALUE "LegalCopyright", VER_COPYRIGHT_STR 31 | VALUE "OriginalFilename", VER_ORIGINAL_FILENAME_STR 32 | VALUE "ProductName", "Open Asset Import Library" 33 | VALUE "ProductVersion", VER_FILEVERSION_STR 34 | END 35 | END 36 | BLOCK "VarFileInfo" 37 | BEGIN 38 | VALUE "Translation", 0x0, 65001 39 | END 40 | END 41 | 42 | -------------------------------------------------------------------------------- /src/assimp/contrib/Open3DGC/o3dgcDVEncodeParams.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2013 Khaled Mammou - Advanced Micro Devices, Inc. 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | 24 | #pragma once 25 | #ifndef O3DGC_DV_ENCODE_PARAMS_H 26 | #define O3DGC_DV_ENCODE_PARAMS_H 27 | 28 | #include "o3dgcCommon.h" 29 | 30 | namespace o3dgc 31 | { 32 | class DVEncodeParams 33 | { 34 | public: 35 | //! Constructor. 36 | DVEncodeParams(void) 37 | { 38 | m_quantBits = 10; 39 | m_streamTypeMode = O3DGC_STREAM_TYPE_ASCII; 40 | m_encodeMode = O3DGC_DYNAMIC_VECTOR_ENCODE_MODE_LIFT; 41 | }; 42 | //! Destructor. 43 | ~DVEncodeParams(void) {}; 44 | 45 | unsigned long GetQuantBits() const { return m_quantBits;} 46 | O3DGCStreamType GetStreamType() const { return m_streamTypeMode;} 47 | O3DGCDVEncodingMode GetEncodeMode() const { return m_encodeMode;} 48 | 49 | void SetQuantBits (unsigned long quantBits ) { m_quantBits = quantBits;} 50 | 51 | void SetStreamType(O3DGCStreamType streamTypeMode) { m_streamTypeMode = streamTypeMode;} 52 | void SetEncodeMode(O3DGCDVEncodingMode encodeMode ) { m_encodeMode = encodeMode ;} 53 | 54 | 55 | private: 56 | unsigned long m_quantBits; 57 | O3DGCStreamType m_streamTypeMode; 58 | O3DGCDVEncodingMode m_encodeMode; 59 | }; 60 | } 61 | #endif // O3DGC_DV_ENCODE_PARAMS_H 62 | 63 | -------------------------------------------------------------------------------- /src/assimp/contrib/Open3DGC/o3dgcIndexedFaceSet.inl: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2013 Khaled Mammou - Advanced Micro Devices, Inc. 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #pragma once 24 | #ifndef O3DGC_INDEXED_FACE_SET_INL 25 | #define O3DGC_INDEXED_FACE_SET_INL 26 | 27 | #include 28 | namespace o3dgc 29 | { 30 | template 31 | void IndexedFaceSet::ComputeMinMax(O3DGCSC3DMCQuantizationMode quantMode) 32 | { 33 | ComputeVectorMinMax(m_coord , m_nCoord , 3, 3, m_coordMin , m_coordMax , quantMode); 34 | ComputeVectorMinMax(m_normal , m_nNormal , 3, 3, m_normalMin , m_normalMax , quantMode); 35 | unsigned long numFloatAttributes = GetNumFloatAttributes(); 36 | for(unsigned long a = 0; a < numFloatAttributes; ++a) 37 | { 38 | ComputeVectorMinMax(m_floatAttribute[a], 39 | m_nFloatAttribute[a], 40 | m_dimFloatAttribute[a], 41 | m_dimFloatAttribute[a], // stride 42 | m_minFloatAttribute + (a * O3DGC_SC3DMC_MAX_DIM_ATTRIBUTES), 43 | m_maxFloatAttribute + (a * O3DGC_SC3DMC_MAX_DIM_ATTRIBUTES), quantMode); 44 | } 45 | } 46 | } 47 | #endif // O3DGC_INDEXED_FACE_SET_INL 48 | -------------------------------------------------------------------------------- /src/assimp/contrib/Open3DGC/o3dgcTools.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2013 Khaled Mammou - Advanced Micro Devices, Inc. 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | -------------------------------------------------------------------------------- /src/assimp/contrib/clipper/License.txt: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | http://www.boost.org/LICENSE_1_0.txt 3 | 4 | Permission is hereby granted, free of charge, to any person or organization 5 | obtaining a copy of the software and accompanying documentation covered by 6 | this license (the "Software") to use, reproduce, display, distribute, 7 | execute, and transmit the Software, and to prepare derivative works of the 8 | Software, and to permit third-parties to whom the Software is furnished to 9 | do so, all subject to the following: 10 | 11 | The copyright notices in the Software and this entire statement, including 12 | the above license grant, this restriction and the following disclaimer, 13 | must be included in all copies of the Software, in whole or in part, and 14 | all derivative works of the Software, unless such copies or derivative 15 | works are solely in the form of machine-executable object code generated by 16 | a source language processor. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 21 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 22 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 23 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /src/assimp/contrib/openddlparser/CREDITS: -------------------------------------------------------------------------------- 1 | =============================================================== 2 | OpenDDL-Parser 3 | Developers and Contributors 4 | =============================================================== 5 | 6 | - Kim Kulling ( kimmi ): 7 | Founder 8 | 9 | - Fredrik Hansson ( FredrikHson ): 10 | Improvements value interface, serveral bugfixes. 11 | 12 | - Henry Read ( henrya2 ): 13 | Static build option, Interface improvements 14 | 15 | - (wise86-android) 16 | fix several mem-leaks 17 | 18 | - Paul Holland ( pkholland ): 19 | Bugfixes. 20 | -------------------------------------------------------------------------------- /src/assimp/contrib/openddlparser/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Kim Kulling 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /src/assimp/contrib/poly2tri/AUTHORS: -------------------------------------------------------------------------------- 1 | Primary Contributors: 2 | 3 | Mason Green (C++, Python) 4 | Thomas Åhlén (Java) 5 | 6 | Other Contributors: 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/assimp/contrib/poly2tri/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009-2018, Poly2Tri Contributors 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, 5 | are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, 8 | this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright notice, 10 | this list of conditions and the following disclaimer in the documentation 11 | and/or other materials provided with the distribution. 12 | * Neither the name of Poly2Tri nor the names of its contributors may be 13 | used to endorse or promote products derived from this software without specific 14 | prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 18 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 19 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 20 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 21 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 22 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | -------------------------------------------------------------------------------- /src/assimp/contrib/poly2tri/README: -------------------------------------------------------------------------------- 1 | ================== 2 | INSTALLATION GUIDE 3 | ================== 4 | 5 | ------------ 6 | Dependencies 7 | ------------ 8 | 9 | Core poly2tri lib: 10 | - Standard Template Library (STL) 11 | 12 | Testbed: 13 | - gcc 14 | - OpenGL 15 | - GLFW (http://glfw.sf.net) 16 | - Python 17 | 18 | Waf (http://code.google.com/p/waf/) is used to compile the testbed. 19 | A waf script (86kb) is included in the repositoty. 20 | 21 | ---------------------------------------------- 22 | Building the Testbed 23 | ---------------------------------------------- 24 | 25 | Posix/MSYS environment: 26 | 27 | ./waf configure 28 | ./waf build 29 | 30 | Windows command line: 31 | 32 | python waf configure 33 | python waf build 34 | 35 | ---------------------------------------------- 36 | Running the Examples 37 | ---------------------------------------------- 38 | 39 | Load data points from a file: 40 | p2t 41 | 42 | Random distribution of points inside a consrained box: 43 | p2t random 44 | 45 | Examples: 46 | 47 | ./p2t dude.dat 300 500 2 48 | ./p2t nazca_monkey.dat 0 0 9 49 | 50 | ./p2t random 10 100 5.0 51 | ./p2t random 1000 20000 0.025 52 | -------------------------------------------------------------------------------- /src/assimp/contrib/poly2tri/poly2tri/common/dll_symbol.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Poly2Tri Copyright (c) 2009-2022, Poly2Tri Contributors 3 | * https://github.com/jhasse/poly2tri 4 | * 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without modification, 8 | * are permitted provided that the following conditions are met: 9 | * 10 | * * Redistributions of source code must retain the above copyright notice, 11 | * this list of conditions and the following disclaimer. 12 | * * Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * * Neither the name of Poly2Tri nor the names of its contributors may be 16 | * used to endorse or promote products derived from this software without specific 17 | * prior written permission. 18 | * 19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 23 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 24 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 25 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 26 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 27 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 28 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 29 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | */ 31 | 32 | #pragma once 33 | 34 | #if defined(_WIN32) 35 | # pragma warning( disable: 4273) 36 | # define P2T_COMPILER_DLLEXPORT __declspec(dllexport) 37 | # define P2T_COMPILER_DLLIMPORT __declspec(dllimport) 38 | #elif defined(__GNUC__) 39 | # define P2T_COMPILER_DLLEXPORT __attribute__ ((visibility ("default"))) 40 | # define P2T_COMPILER_DLLIMPORT __attribute__ ((visibility ("default"))) 41 | #else 42 | # define P2T_COMPILER_DLLEXPORT 43 | # define P2T_COMPILER_DLLIMPORT 44 | #endif 45 | 46 | // We need to enable shard linkage explicitely 47 | #ifdef ASSIMP_BUILD_DLL_EXPORT 48 | # define P2T_SHARED_EXPORTS 1 49 | #endif 50 | 51 | #ifndef P2T_DLL_SYMBOL 52 | # if defined(P2T_STATIC_EXPORTS) 53 | # define P2T_DLL_SYMBOL 54 | # elif defined(P2T_SHARED_EXPORTS) 55 | # define P2T_DLL_SYMBOL P2T_COMPILER_DLLEXPORT 56 | # elif defined(BUILD_SHARED_LIBS) 57 | # define P2T_DLL_SYMBOL P2T_COMPILER_DLLIMPORT 58 | # else 59 | # define P2T_DLL_SYMBOL 60 | # endif 61 | #endif 62 | -------------------------------------------------------------------------------- /src/assimp/contrib/poly2tri/poly2tri/poly2tri.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Poly2Tri Copyright (c) 2009-2018, Poly2Tri Contributors 3 | * https://github.com/jhasse/poly2tri 4 | * 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without modification, 8 | * are permitted provided that the following conditions are met: 9 | * 10 | * * Redistributions of source code must retain the above copyright notice, 11 | * this list of conditions and the following disclaimer. 12 | * * Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * * Neither the name of Poly2Tri nor the names of its contributors may be 16 | * used to endorse or promote products derived from this software without specific 17 | * prior written permission. 18 | * 19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 23 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 24 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 25 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 26 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 27 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 28 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 29 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | */ 31 | 32 | #pragma once 33 | 34 | #include "common/shapes.h" 35 | #include "sweep/cdt.h" 36 | -------------------------------------------------------------------------------- /src/assimp/contrib/poly2tri/poly2tri/sweep/cdt.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Poly2Tri Copyright (c) 2009-2021, Poly2Tri Contributors 3 | * https://github.com/jhasse/poly2tri 4 | * 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without modification, 8 | * are permitted provided that the following conditions are met: 9 | * 10 | * * Redistributions of source code must retain the above copyright notice, 11 | * this list of conditions and the following disclaimer. 12 | * * Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * * Neither the name of Poly2Tri nor the names of its contributors may be 16 | * used to endorse or promote products derived from this software without specific 17 | * prior written permission. 18 | * 19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 23 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 24 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 25 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 26 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 27 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 28 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 29 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | */ 31 | #include "cdt.h" 32 | 33 | namespace p2t { 34 | 35 | CDT::CDT(const std::vector& polyline) 36 | { 37 | sweep_context_ = new SweepContext(polyline); 38 | sweep_ = new Sweep; 39 | } 40 | 41 | void CDT::AddHole(const std::vector& polyline) 42 | { 43 | sweep_context_->AddHole(polyline); 44 | } 45 | 46 | void CDT::AddPoint(Point* point) { 47 | sweep_context_->AddPoint(point); 48 | } 49 | 50 | void CDT::Triangulate() 51 | { 52 | sweep_->Triangulate(*sweep_context_); 53 | } 54 | 55 | std::vector CDT::GetTriangles() 56 | { 57 | return sweep_context_->GetTriangles(); 58 | } 59 | 60 | std::list CDT::GetMap() 61 | { 62 | return sweep_context_->GetMap(); 63 | } 64 | 65 | CDT::~CDT() 66 | { 67 | delete sweep_context_; 68 | delete sweep_; 69 | } 70 | 71 | } // namespace p2t 72 | -------------------------------------------------------------------------------- /src/assimp/contrib/poly2tri_patch.txt: -------------------------------------------------------------------------------- 1 | diff -r 5de9623d6a50 poly2tri/common/shapes.h 2 | --- a/poly2tri/common/shapes.h Mon Aug 08 22:26:41 2011 -0400 3 | +++ b/poly2tri/common/shapes.h Tue Jan 17 02:36:52 2012 +0100 4 | @@ -35,6 +35,7 @@ 5 | 6 | #include 7 | #include 8 | +#include 9 | #include 10 | #include 11 | 12 | @@ -136,7 +137,9 @@ 13 | p = &p2; 14 | } else if (p1.x == p2.x) { 15 | // Repeat points 16 | - assert(false); 17 | + // ASSIMP_CHANGE (aramis_acg) 18 | + throw std::runtime_error("repeat points"); 19 | + //assert(false); 20 | } 21 | } 22 | 23 | diff -r 5de9623d6a50 poly2tri/sweep/sweep.cc 24 | --- a/poly2tri/sweep/sweep.cc Mon Aug 08 22:26:41 2011 -0400 25 | +++ b/poly2tri/sweep/sweep.cc Tue Jan 17 02:36:52 2012 +0100 26 | @@ -113,6 +113,8 @@ 27 | Point* p1 = triangle->PointCCW(point); 28 | Orientation o1 = Orient2d(eq, *p1, ep); 29 | if (o1 == COLLINEAR) { 30 | + // ASSIMP_CHANGE (aramis_acg) 31 | + throw std::runtime_error("EdgeEvent - collinear points not supported"); 32 | if( triangle->Contains(&eq, p1)) { 33 | triangle->MarkConstrainedEdge(&eq, p1 ); 34 | // We are modifying the constraint maybe it would be better to 35 | @@ -121,8 +123,8 @@ 36 | triangle = &triangle->NeighborAcross(point); 37 | EdgeEvent( tcx, ep, *p1, triangle, *p1 ); 38 | } else { 39 | + // ASSIMP_CHANGE (aramis_acg) 40 | std::runtime_error("EdgeEvent - collinear points not supported"); 41 | - assert(0); 42 | } 43 | return; 44 | } 45 | @@ -130,6 +132,9 @@ 46 | Point* p2 = triangle->PointCW(point); 47 | Orientation o2 = Orient2d(eq, *p2, ep); 48 | if (o2 == COLLINEAR) { 49 | + // ASSIMP_CHANGE (aramis_acg) 50 | + throw std::runtime_error("EdgeEvent - collinear points not supported"); 51 | + 52 | if( triangle->Contains(&eq, p2)) { 53 | triangle->MarkConstrainedEdge(&eq, p2 ); 54 | // We are modifying the constraint maybe it would be better to 55 | @@ -138,8 +143,8 @@ 56 | triangle = &triangle->NeighborAcross(point); 57 | EdgeEvent( tcx, ep, *p2, triangle, *p2 ); 58 | } else { 59 | - std::runtime_error("EdgeEvent - collinear points not supported"); 60 | - assert(0); 61 | + // ASSIMP_CHANGE (aramis_acg) 62 | + throw std::runtime_error("EdgeEvent - collinear points not supported"); 63 | } 64 | return; 65 | } 66 | @@ -712,7 +717,8 @@ 67 | return *ot.PointCW(op); 68 | } else{ 69 | //throw new RuntimeException("[Unsupported] Opposing point on constrained edge"); 70 | - assert(0); 71 | + // ASSIMP_CHANGE (aramis_acg) 72 | + throw std::runtime_error("[Unsupported] Opposing point on constrained edge"); 73 | } 74 | } 75 | 76 | -------------------------------------------------------------------------------- /src/assimp/contrib/pugixml/readme.txt: -------------------------------------------------------------------------------- 1 | pugixml 1.13 - an XML processing library 2 | 3 | Copyright (c) 2006-2024, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) 4 | Report bugs and download new versions at https://pugixml.org/ 5 | 6 | This is the distribution of pugixml, which is a C++ XML processing library, 7 | which consists of a DOM-like interface with rich traversal/modification 8 | capabilities, an extremely fast XML parser which constructs the DOM tree from 9 | an XML file/buffer, and an XPath 1.0 implementation for complex data-driven 10 | tree queries. Full Unicode support is also available, with Unicode interface 11 | variants and conversions between different Unicode encodings (which happen 12 | automatically during parsing/saving). 13 | 14 | The distribution contains the following folders: 15 | 16 | docs/ - documentation 17 | docs/samples - pugixml usage examples 18 | docs/quickstart.html - quick start guide 19 | docs/manual.html - complete manual 20 | 21 | scripts/ - project files for IDE/build systems 22 | 23 | src/ - header and source files 24 | 25 | readme.txt - this file. 26 | 27 | This library is distributed under the MIT License: 28 | 29 | Copyright (c) 2006-2024 Arseny Kapoulkine 30 | 31 | Permission is hereby granted, free of charge, to any person 32 | obtaining a copy of this software and associated documentation 33 | files (the "Software"), to deal in the Software without 34 | restriction, including without limitation the rights to use, 35 | copy, modify, merge, publish, distribute, sublicense, and/or sell 36 | copies of the Software, and to permit persons to whom the 37 | Software is furnished to do so, subject to the following 38 | conditions: 39 | 40 | The above copyright notice and this permission notice shall be 41 | included in all copies or substantial portions of the Software. 42 | 43 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 44 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 45 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 46 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 47 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 48 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 49 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 50 | OTHER DEALINGS IN THE SOFTWARE. 51 | -------------------------------------------------------------------------------- /src/assimp/contrib/rapidjson/include/rapidjson/cursorstreamwrapper.h: -------------------------------------------------------------------------------- 1 | // Tencent is pleased to support the open source community by making RapidJSON available. 2 | // 3 | // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. 4 | // 5 | // Licensed under the MIT License (the "License"); you may not use this file except 6 | // in compliance with the License. You may obtain a copy of the License at 7 | // 8 | // http://opensource.org/licenses/MIT 9 | // 10 | // Unless required by applicable law or agreed to in writing, software distributed 11 | // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 12 | // CONDITIONS OF ANY KIND, either express or implied. See the License for the 13 | // specific language governing permissions and limitations under the License. 14 | 15 | #ifndef RAPIDJSON_CURSORSTREAMWRAPPER_H_ 16 | #define RAPIDJSON_CURSORSTREAMWRAPPER_H_ 17 | 18 | #include "stream.h" 19 | 20 | #if defined(__GNUC__) 21 | RAPIDJSON_DIAG_PUSH 22 | RAPIDJSON_DIAG_OFF(effc++) 23 | #endif 24 | 25 | #if defined(_MSC_VER) && _MSC_VER <= 1800 26 | RAPIDJSON_DIAG_PUSH 27 | RAPIDJSON_DIAG_OFF(4702) // unreachable code 28 | RAPIDJSON_DIAG_OFF(4512) // assignment operator could not be generated 29 | #endif 30 | 31 | RAPIDJSON_NAMESPACE_BEGIN 32 | 33 | 34 | //! Cursor stream wrapper for counting line and column number if error exists. 35 | /*! 36 | \tparam InputStream Any stream that implements Stream Concept 37 | */ 38 | template > 39 | class CursorStreamWrapper : public GenericStreamWrapper { 40 | public: 41 | typedef typename Encoding::Ch Ch; 42 | 43 | CursorStreamWrapper(InputStream& is): 44 | GenericStreamWrapper(is), line_(1), col_(0) {} 45 | 46 | // counting line and column number 47 | Ch Take() { 48 | Ch ch = this->is_.Take(); 49 | if(ch == '\n') { 50 | line_ ++; 51 | col_ = 0; 52 | } else { 53 | col_ ++; 54 | } 55 | return ch; 56 | } 57 | 58 | //! Get the error line number, if error exists. 59 | size_t GetLine() const { return line_; } 60 | //! Get the error column number, if error exists. 61 | size_t GetColumn() const { return col_; } 62 | 63 | private: 64 | size_t line_; //!< Current Line 65 | size_t col_; //!< Current Column 66 | }; 67 | 68 | #if defined(_MSC_VER) && _MSC_VER <= 1800 69 | RAPIDJSON_DIAG_POP 70 | #endif 71 | 72 | #if defined(__GNUC__) 73 | RAPIDJSON_DIAG_POP 74 | #endif 75 | 76 | RAPIDJSON_NAMESPACE_END 77 | 78 | #endif // RAPIDJSON_CURSORSTREAMWRAPPER_H_ 79 | -------------------------------------------------------------------------------- /src/assimp/contrib/rapidjson/include/rapidjson/internal/clzll.h: -------------------------------------------------------------------------------- 1 | // Tencent is pleased to support the open source community by making RapidJSON available. 2 | // 3 | // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. 4 | // 5 | // Licensed under the MIT License (the "License"); you may not use this file except 6 | // in compliance with the License. You may obtain a copy of the License at 7 | // 8 | // http://opensource.org/licenses/MIT 9 | // 10 | // Unless required by applicable law or agreed to in writing, software distributed 11 | // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 12 | // CONDITIONS OF ANY KIND, either express or implied. See the License for the 13 | // specific language governing permissions and limitations under the License. 14 | 15 | #ifndef RAPIDJSON_CLZLL_H_ 16 | #define RAPIDJSON_CLZLL_H_ 17 | 18 | #include "../rapidjson.h" 19 | 20 | #if defined(_MSC_VER) && !defined(UNDER_CE) 21 | #include 22 | #if defined(_WIN64) 23 | #pragma intrinsic(_BitScanReverse64) 24 | #else 25 | #pragma intrinsic(_BitScanReverse) 26 | #endif 27 | #endif 28 | 29 | RAPIDJSON_NAMESPACE_BEGIN 30 | namespace internal { 31 | 32 | inline uint32_t clzll(uint64_t x) { 33 | // Passing 0 to __builtin_clzll is UB in GCC and results in an 34 | // infinite loop in the software implementation. 35 | RAPIDJSON_ASSERT(x != 0); 36 | 37 | #if defined(_MSC_VER) && !defined(UNDER_CE) 38 | unsigned long r = 0; 39 | #if defined(_WIN64) 40 | _BitScanReverse64(&r, x); 41 | #else 42 | // Scan the high 32 bits. 43 | if (_BitScanReverse(&r, static_cast(x >> 32))) 44 | return 63 - (r + 32); 45 | 46 | // Scan the low 32 bits. 47 | _BitScanReverse(&r, static_cast(x & 0xFFFFFFFF)); 48 | #endif // _WIN64 49 | 50 | return 63 - r; 51 | #elif (defined(__GNUC__) && __GNUC__ >= 4) || RAPIDJSON_HAS_BUILTIN(__builtin_clzll) 52 | // __builtin_clzll wrapper 53 | return static_cast(__builtin_clzll(x)); 54 | #else 55 | // naive version 56 | uint32_t r = 0; 57 | while (!(x & (static_cast(1) << 63))) { 58 | x <<= 1; 59 | ++r; 60 | } 61 | 62 | return r; 63 | #endif // _MSC_VER 64 | } 65 | 66 | #define RAPIDJSON_CLZLL RAPIDJSON_NAMESPACE::internal::clzll 67 | 68 | } // namespace internal 69 | RAPIDJSON_NAMESPACE_END 70 | 71 | #endif // RAPIDJSON_CLZLL_H_ 72 | -------------------------------------------------------------------------------- /src/assimp/contrib/rapidjson/include/rapidjson/internal/swap.h: -------------------------------------------------------------------------------- 1 | // Tencent is pleased to support the open source community by making RapidJSON available. 2 | // 3 | // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. 4 | // 5 | // Licensed under the MIT License (the "License"); you may not use this file except 6 | // in compliance with the License. You may obtain a copy of the License at 7 | // 8 | // http://opensource.org/licenses/MIT 9 | // 10 | // Unless required by applicable law or agreed to in writing, software distributed 11 | // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 12 | // CONDITIONS OF ANY KIND, either express or implied. See the License for the 13 | // specific language governing permissions and limitations under the License. 14 | 15 | #ifndef RAPIDJSON_INTERNAL_SWAP_H_ 16 | #define RAPIDJSON_INTERNAL_SWAP_H_ 17 | 18 | #include "../rapidjson.h" 19 | 20 | #if defined(__clang__) 21 | RAPIDJSON_DIAG_PUSH 22 | RAPIDJSON_DIAG_OFF(c++98-compat) 23 | #endif 24 | 25 | RAPIDJSON_NAMESPACE_BEGIN 26 | namespace internal { 27 | 28 | //! Custom swap() to avoid dependency on C++ header 29 | /*! \tparam T Type of the arguments to swap, should be instantiated with primitive C++ types only. 30 | \note This has the same semantics as std::swap(). 31 | */ 32 | template 33 | inline void Swap(T& a, T& b) RAPIDJSON_NOEXCEPT { 34 | T tmp = a; 35 | a = b; 36 | b = tmp; 37 | } 38 | 39 | } // namespace internal 40 | RAPIDJSON_NAMESPACE_END 41 | 42 | #if defined(__clang__) 43 | RAPIDJSON_DIAG_POP 44 | #endif 45 | 46 | #endif // RAPIDJSON_INTERNAL_SWAP_H_ 47 | -------------------------------------------------------------------------------- /src/assimp/contrib/rapidjson/include/rapidjson/memorybuffer.h: -------------------------------------------------------------------------------- 1 | // Tencent is pleased to support the open source community by making RapidJSON available. 2 | // 3 | // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. 4 | // 5 | // Licensed under the MIT License (the "License"); you may not use this file except 6 | // in compliance with the License. You may obtain a copy of the License at 7 | // 8 | // http://opensource.org/licenses/MIT 9 | // 10 | // Unless required by applicable law or agreed to in writing, software distributed 11 | // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 12 | // CONDITIONS OF ANY KIND, either express or implied. See the License for the 13 | // specific language governing permissions and limitations under the License. 14 | 15 | #ifndef RAPIDJSON_MEMORYBUFFER_H_ 16 | #define RAPIDJSON_MEMORYBUFFER_H_ 17 | 18 | #include "stream.h" 19 | #include "internal/stack.h" 20 | 21 | RAPIDJSON_NAMESPACE_BEGIN 22 | 23 | //! Represents an in-memory output byte stream. 24 | /*! 25 | This class is mainly for being wrapped by EncodedOutputStream or AutoUTFOutputStream. 26 | 27 | It is similar to FileWriteBuffer but the destination is an in-memory buffer instead of a file. 28 | 29 | Differences between MemoryBuffer and StringBuffer: 30 | 1. StringBuffer has Encoding but MemoryBuffer is only a byte buffer. 31 | 2. StringBuffer::GetString() returns a null-terminated string. MemoryBuffer::GetBuffer() returns a buffer without terminator. 32 | 33 | \tparam Allocator type for allocating memory buffer. 34 | \note implements Stream concept 35 | */ 36 | template 37 | struct GenericMemoryBuffer { 38 | typedef char Ch; // byte 39 | 40 | GenericMemoryBuffer(Allocator* allocator = 0, size_t capacity = kDefaultCapacity) : stack_(allocator, capacity) {} 41 | 42 | void Put(Ch c) { *stack_.template Push() = c; } 43 | void Flush() {} 44 | 45 | void Clear() { stack_.Clear(); } 46 | void ShrinkToFit() { stack_.ShrinkToFit(); } 47 | Ch* Push(size_t count) { return stack_.template Push(count); } 48 | void Pop(size_t count) { stack_.template Pop(count); } 49 | 50 | const Ch* GetBuffer() const { 51 | return stack_.template Bottom(); 52 | } 53 | 54 | size_t GetSize() const { return stack_.GetSize(); } 55 | 56 | static const size_t kDefaultCapacity = 256; 57 | mutable internal::Stack stack_; 58 | }; 59 | 60 | typedef GenericMemoryBuffer<> MemoryBuffer; 61 | 62 | //! Implement specialized version of PutN() with memset() for better performance. 63 | template<> 64 | inline void PutN(MemoryBuffer& memoryBuffer, char c, size_t n) { 65 | std::memset(memoryBuffer.stack_.Push(n), c, n * sizeof(c)); 66 | } 67 | 68 | RAPIDJSON_NAMESPACE_END 69 | 70 | #endif // RAPIDJSON_MEMORYBUFFER_H_ 71 | -------------------------------------------------------------------------------- /src/assimp/contrib/rapidjson/include/rapidjson/ostreamwrapper.h: -------------------------------------------------------------------------------- 1 | // Tencent is pleased to support the open source community by making RapidJSON available. 2 | // 3 | // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. 4 | // 5 | // Licensed under the MIT License (the "License"); you may not use this file except 6 | // in compliance with the License. You may obtain a copy of the License at 7 | // 8 | // http://opensource.org/licenses/MIT 9 | // 10 | // Unless required by applicable law or agreed to in writing, software distributed 11 | // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 12 | // CONDITIONS OF ANY KIND, either express or implied. See the License for the 13 | // specific language governing permissions and limitations under the License. 14 | 15 | #ifndef RAPIDJSON_OSTREAMWRAPPER_H_ 16 | #define RAPIDJSON_OSTREAMWRAPPER_H_ 17 | 18 | #include "stream.h" 19 | #include 20 | 21 | #ifdef __clang__ 22 | RAPIDJSON_DIAG_PUSH 23 | RAPIDJSON_DIAG_OFF(padded) 24 | #endif 25 | 26 | RAPIDJSON_NAMESPACE_BEGIN 27 | 28 | //! Wrapper of \c std::basic_ostream into RapidJSON's Stream concept. 29 | /*! 30 | The classes can be wrapped including but not limited to: 31 | 32 | - \c std::ostringstream 33 | - \c std::stringstream 34 | - \c std::wpstringstream 35 | - \c std::wstringstream 36 | - \c std::ifstream 37 | - \c std::fstream 38 | - \c std::wofstream 39 | - \c std::wfstream 40 | 41 | \tparam StreamType Class derived from \c std::basic_ostream. 42 | */ 43 | 44 | template 45 | class BasicOStreamWrapper { 46 | public: 47 | typedef typename StreamType::char_type Ch; 48 | BasicOStreamWrapper(StreamType& stream) : stream_(stream) {} 49 | 50 | void Put(Ch c) { 51 | stream_.put(c); 52 | } 53 | 54 | void Flush() { 55 | stream_.flush(); 56 | } 57 | 58 | // Not implemented 59 | char Peek() const { RAPIDJSON_ASSERT(false); return 0; } 60 | char Take() { RAPIDJSON_ASSERT(false); return 0; } 61 | size_t Tell() const { RAPIDJSON_ASSERT(false); return 0; } 62 | char* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } 63 | size_t PutEnd(char*) { RAPIDJSON_ASSERT(false); return 0; } 64 | 65 | private: 66 | BasicOStreamWrapper(const BasicOStreamWrapper&); 67 | BasicOStreamWrapper& operator=(const BasicOStreamWrapper&); 68 | 69 | StreamType& stream_; 70 | }; 71 | 72 | typedef BasicOStreamWrapper OStreamWrapper; 73 | typedef BasicOStreamWrapper WOStreamWrapper; 74 | 75 | #ifdef __clang__ 76 | RAPIDJSON_DIAG_POP 77 | #endif 78 | 79 | RAPIDJSON_NAMESPACE_END 80 | 81 | #endif // RAPIDJSON_OSTREAMWRAPPER_H_ 82 | -------------------------------------------------------------------------------- /src/assimp/contrib/utf8cpp/doc/LICENSE: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /src/assimp/contrib/utf8cpp/doc/ReleaseNotes: -------------------------------------------------------------------------------- 1 | utf8 cpp library 2 | Release 2.3.4 3 | 4 | A minor bug fix release. Thanks to all who reported bugs. 5 | 6 | Note: Version 2.3.3 contained a regression, and therefore was removed. 7 | 8 | Changes from version 2.3.2 9 | - Bug fix [39]: checked.h Line 273 and unchecked.h Line 182 have an extra ';' 10 | - Bug fix [36]: replace_invalid() only works with back_inserter 11 | 12 | Files included in the release: utf8.h, core.h, checked.h, unchecked.h, utf8cpp.html, ReleaseNotes 13 | -------------------------------------------------------------------------------- /src/assimp/contrib/utf8cpp/source/utf8.h: -------------------------------------------------------------------------------- 1 | // Copyright 2006 Nemanja Trifunovic 2 | 3 | /* 4 | Permission is hereby granted, free of charge, to any person or organization 5 | obtaining a copy of the software and accompanying documentation covered by 6 | this license (the "Software") to use, reproduce, display, distribute, 7 | execute, and transmit the Software, and to prepare derivative works of the 8 | Software, and to permit third-parties to whom the Software is furnished to 9 | do so, all subject to the following: 10 | 11 | The copyright notices in the Software and this entire statement, including 12 | the above license grant, this restriction and the following disclaimer, 13 | must be included in all copies of the Software, in whole or in part, and 14 | all derivative works of the Software, unless such copies or derivative 15 | works are solely in the form of machine-executable object code generated by 16 | a source language processor. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 21 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 22 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 23 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | 28 | #ifndef UTF8_FOR_CPP_2675DCD0_9480_4c0c_B92A_CC14C027B731 29 | #define UTF8_FOR_CPP_2675DCD0_9480_4c0c_B92A_CC14C027B731 30 | 31 | #include "utf8/checked.h" 32 | #include "utf8/unchecked.h" 33 | 34 | #endif // header guard 35 | -------------------------------------------------------------------------------- /src/assimp/contrib/zip/.travis.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Build script for travis-ci.org builds. 4 | # 5 | if [ $ANALYZE = "true" ] && [ "$CC" = "clang" ]; then 6 | # scan-build -h 7 | scan-build cmake -G "Unix Makefiles" 8 | scan-build -enable-checker security.FloatLoopCounter \ 9 | -enable-checker security.insecureAPI.UncheckedReturn \ 10 | --status-bugs -v \ 11 | make -j 8 \ 12 | make -j 8 test 13 | else 14 | cmake -DCMAKE_BUILD_TYPE=Debug -DSANITIZE_ADDRESS=On -DCMAKE_INSTALL_PREFIX=_install 15 | make -j 8 16 | make install 17 | ASAN_OPTIONS=detect_leaks=0 LSAN_OPTIONS=verbosity=1:log_threads=1 ctest -V 18 | fi 19 | -------------------------------------------------------------------------------- /src/assimp/contrib/zip/.travis.yml: -------------------------------------------------------------------------------- 1 | language: c 2 | addons: 3 | apt: 4 | packages: &1 5 | - lcov 6 | # Compiler selection 7 | compiler: 8 | - clang 9 | - gcc 10 | env: 11 | - ANALYZE=false 12 | - ANALYZE=true 13 | # Build steps 14 | script: 15 | - ./.travis.sh 16 | after_success: 17 | # Creating report 18 | - cmake -DENABLE_COVERAGE=ON 19 | - make 20 | - make test 21 | # Uploading report to CodeCov 22 | - bash <(curl -s https://codecov.io/bash) 23 | -------------------------------------------------------------------------------- /src/assimp/contrib/zip/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Rules/Coding Standards 2 | No need to throw away your coding style, just do your best to follow default clang-format style. 3 | Apply `clang-format` to the source files before commit: 4 | ```sh 5 | for file in $(git ls-files | \grep -E '\.(c|h)$' | \grep -v -- '#') 6 | do 7 | clang-format -i $file 8 | done 9 | ``` 10 | -------------------------------------------------------------------------------- /src/assimp/contrib/zip/UNLICENSE: -------------------------------------------------------------------------------- 1 | /* 2 | This is free and unencumbered software released into the public domain. 3 | 4 | Anyone is free to copy, modify, publish, use, compile, sell, or 5 | distribute this software, either in source code form or as a compiled 6 | binary, for any purpose, commercial or non-commercial, and by any 7 | means. 8 | 9 | In jurisdictions that recognize copyright laws, the author or authors 10 | of this software dedicate any and all copyright interest in the 11 | software to the public domain. We make this dedication for the benefit 12 | of the public at large and to the detriment of our heirs and 13 | successors. We intend this dedication to be an overt act of 14 | relinquishment in perpetuity of all present and future rights to this 15 | software under copyright law. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 21 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 23 | OTHER DEALINGS IN THE SOFTWARE. 24 | 25 | For more information, please refer to 26 | */ 27 | -------------------------------------------------------------------------------- /src/assimp/contrib/zip/appveyor.yml: -------------------------------------------------------------------------------- 1 | version: zip-0.1.15.{build} 2 | build_script: 3 | - cmd: >- 4 | cd c:\projects\zip 5 | 6 | mkdir build 7 | 8 | cd build 9 | 10 | cmake -G"Visual Studio 14" -DCMAKE_BUILD_TYPE=Debug .. 11 | 12 | cmake --build . --config %CMAKE_BUILD_TYPE% 13 | 14 | ctest --verbose -C "Debug" 15 | -------------------------------------------------------------------------------- /src/assimp/contrib/zip/cmake/Config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") 4 | check_required_components("@PROJECT_NAME@") 5 | -------------------------------------------------------------------------------- /src/assimp/contrib/zip/cmake/asan-wrapper: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # The MIT License (MIT) 4 | # 5 | # Copyright (c) 6 | # 2013 Matthew Arsenault 7 | # 2015-2016 RWTH Aachen University, Federal Republic of Germany 8 | # 9 | # Permission is hereby granted, free of charge, to any person obtaining a copy 10 | # of this software and associated documentation files (the "Software"), to deal 11 | # in the Software without restriction, including without limitation the rights 12 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | # copies of the Software, and to permit persons to whom the Software is 14 | # furnished to do so, subject to the following conditions: 15 | # 16 | # The above copyright notice and this permission notice shall be included in all 17 | # copies or substantial portions of the Software. 18 | # 19 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 25 | # SOFTWARE. 26 | 27 | # This script is a wrapper for AddressSanitizer. In some special cases you need 28 | # to preload AddressSanitizer to avoid error messages - e.g. if you're 29 | # preloading another library to your application. At the moment this script will 30 | # only do something, if we're running on a Linux platform. OSX might not be 31 | # affected. 32 | 33 | 34 | # Exit immediately, if platform is not Linux. 35 | if [ "$(uname)" != "Linux" ] 36 | then 37 | exec $@ 38 | fi 39 | 40 | 41 | # Get the used libasan of the application ($1). If a libasan was found, it will 42 | # be prepended to LD_PRELOAD. 43 | libasan=$(ldd $1 | grep libasan | sed "s/^[[:space:]]//" | cut -d' ' -f1) 44 | if [ -n "$libasan" ] 45 | then 46 | if [ -n "$LD_PRELOAD" ] 47 | then 48 | export LD_PRELOAD="$libasan:$LD_PRELOAD" 49 | else 50 | export LD_PRELOAD="$libasan" 51 | fi 52 | fi 53 | 54 | # Execute the application. 55 | exec $@ 56 | -------------------------------------------------------------------------------- /src/assimp/contrib/zip/cmake/cmake_uninstall.cmake.in: -------------------------------------------------------------------------------- 1 | # copied from https://gitlab.kitware.com/cmake/community/wikis/FAQ#can-i-do-make-uninstall-with-cmake 2 | if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") 3 | message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt") 4 | endif(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") 5 | 6 | file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files) 7 | string(REGEX REPLACE "\n" ";" files "${files}") 8 | foreach(file ${files}) 9 | message(STATUS "Uninstalling $ENV{DESTDIR}${file}") 10 | if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") 11 | exec_program( 12 | "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" 13 | OUTPUT_VARIABLE rm_out 14 | RETURN_VALUE rm_retval 15 | ) 16 | if(NOT "${rm_retval}" STREQUAL 0) 17 | message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") 18 | endif(NOT "${rm_retval}" STREQUAL 0) 19 | else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") 20 | message(STATUS "File $ENV{DESTDIR}${file} does not exist.") 21 | endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") 22 | endforeach(file) 23 | 24 | -------------------------------------------------------------------------------- /src/assimp/contrib/zip/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14) 2 | 3 | find_package(Sanitizers) 4 | 5 | # tests 6 | set(test_write_out test_write.out) 7 | add_executable(${test_write_out} test_write.c) 8 | target_link_libraries(${test_write_out} zip) 9 | add_test(NAME ${test_write_out} COMMAND ${test_write_out}) 10 | add_sanitizers(${test_write_out}) 11 | 12 | set(test_append_out test_append.out) 13 | add_executable(${test_append_out} test_append.c) 14 | target_link_libraries(${test_append_out} zip) 15 | add_test(NAME ${test_append_out} COMMAND ${test_append_out}) 16 | add_sanitizers(${test_append_out}) 17 | 18 | set(test_read_out test_read.out) 19 | add_executable(${test_read_out} test_read.c) 20 | target_link_libraries(${test_read_out} zip) 21 | add_test(NAME ${test_read_out} COMMAND ${test_read_out}) 22 | add_sanitizers(${test_read_out}) 23 | 24 | set(test_extract_out test_extract.out) 25 | add_executable(${test_extract_out} test_extract.c) 26 | target_link_libraries(${test_extract_out} zip) 27 | add_test(NAME ${test_extract_out} COMMAND ${test_extract_out}) 28 | add_sanitizers(${test_extract_out}) 29 | 30 | set(test_entry_out test_entry.out) 31 | add_executable(${test_entry_out} test_entry.c) 32 | target_link_libraries(${test_entry_out} zip) 33 | add_test(NAME ${test_entry_out} COMMAND ${test_entry_out}) 34 | add_sanitizers(${test_entry_out}) 35 | 36 | set(test_permissions_out test_permissions.out) 37 | add_executable(${test_permissions_out} test_permissions.c) 38 | target_link_libraries(${test_permissions_out} zip) 39 | add_test(NAME ${test_permissions_out} COMMAND ${test_permissions_out}) 40 | add_sanitizers(${test_permissions_out}) 41 | 42 | set(test_open_out test_open.out) 43 | add_executable(${test_open_out} test_open.c) 44 | target_link_libraries(${test_open_out} zip) 45 | add_test(NAME ${test_open_out} COMMAND ${test_open_out}) 46 | add_sanitizers(${test_open_out}) 47 | -------------------------------------------------------------------------------- /src/assimp/contrib/zip/test/test_open.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include 5 | 6 | #include "minunit.h" 7 | 8 | #if defined(_WIN32) || defined(_WIN64) 9 | #define MKTEMP _mktemp 10 | #else 11 | #define MKTEMP mkstemp 12 | #endif 13 | 14 | static char ZIPNAME[L_tmpnam + 1] = {0}; 15 | 16 | void test_setup(void) { 17 | strncpy(ZIPNAME, "z-XXXXXX\0", L_tmpnam); 18 | MKTEMP(ZIPNAME); 19 | } 20 | 21 | void test_teardown(void) { remove(ZIPNAME); } 22 | 23 | MU_TEST(test_openwitherror) { 24 | int errnum; 25 | struct zip_t *zip = 26 | zip_openwitherror(ZIPNAME, ZIP_DEFAULT_COMPRESSION_LEVEL, 'r', &errnum); 27 | mu_check(zip == NULL); 28 | mu_assert_int_eq(ZIP_ERINIT, errnum); 29 | 30 | zip = zip_openwitherror(ZIPNAME, ZIP_DEFAULT_COMPRESSION_LEVEL, 'w', &errnum); 31 | mu_check(zip != NULL); 32 | mu_assert_int_eq(0, errnum); 33 | 34 | zip_close(zip); 35 | } 36 | 37 | MU_TEST(test_stream_openwitherror) { 38 | int errnum; 39 | struct zip_t *zip = zip_stream_openwitherror( 40 | NULL, 0, ZIP_DEFAULT_COMPRESSION_LEVEL, 'r', &errnum); 41 | mu_check(zip == NULL); 42 | mu_assert_int_eq(ZIP_EINVMODE, errnum); 43 | 44 | zip = zip_stream_openwitherror(NULL, 0, ZIP_DEFAULT_COMPRESSION_LEVEL, 'w', 45 | &errnum); 46 | mu_check(zip != NULL); 47 | mu_assert_int_eq(0, errnum); 48 | 49 | zip_stream_close(zip); 50 | } 51 | 52 | MU_TEST_SUITE(test_entry_suite) { 53 | MU_SUITE_CONFIGURE(&test_setup, &test_teardown); 54 | 55 | MU_RUN_TEST(test_openwitherror); 56 | MU_RUN_TEST(test_stream_openwitherror); 57 | } 58 | 59 | #define UNUSED(x) (void)x 60 | 61 | int main(int argc, char *argv[]) { 62 | UNUSED(argc); 63 | UNUSED(argv); 64 | 65 | MU_RUN_SUITE(test_entry_suite); 66 | MU_REPORT(); 67 | return MU_EXIT_CODE; 68 | } -------------------------------------------------------------------------------- /src/assimp/contrib/zip/zip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/src/assimp/contrib/zip/zip.png -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright notice: 2 | 3 | (C) 1995-2022 Jean-loup Gailly and Mark Adler 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | 21 | Jean-loup Gailly Mark Adler 22 | jloup@gzip.org madler@alumni.caltech.edu 23 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/README.contrib: -------------------------------------------------------------------------------- 1 | All files under this contrib directory are UNSUPPORTED. They were 2 | provided by users of zlib and were not tested by the authors of zlib. 3 | Use at your own risk. Please contact the authors of the contributions 4 | for help about these, not the zlib authors. Thanks. 5 | 6 | 7 | ada/ by Dmitriy Anisimkov 8 | Support for Ada 9 | See http://zlib-ada.sourceforge.net/ 10 | 11 | blast/ by Mark Adler 12 | Decompressor for output of PKWare Data Compression Library (DCL) 13 | 14 | delphi/ by Cosmin Truta 15 | Support for Delphi and C++ Builder 16 | 17 | dotzlib/ by Henrik Ravn 18 | Support for Microsoft .Net and Visual C++ .Net 19 | 20 | gcc_gvmat64/by Gilles Vollant 21 | GCC Version of x86 64-bit (AMD64 and Intel EM64t) code for x64 22 | assembler to replace longest_match() and inflate_fast() 23 | 24 | infback9/ by Mark Adler 25 | Unsupported diffs to infback to decode the deflate64 format 26 | 27 | iostream/ by Kevin Ruland 28 | A C++ I/O streams interface to the zlib gz* functions 29 | 30 | iostream2/ by Tyge Løvset 31 | Another C++ I/O streams interface 32 | 33 | iostream3/ by Ludwig Schwardt 34 | and Kevin Ruland 35 | Yet another C++ I/O streams interface 36 | 37 | minizip/ by Gilles Vollant 38 | Mini zip and unzip based on zlib 39 | Includes Zip64 support by Mathias Svensson 40 | See http://www.winimage.com/zLibDll/minizip.html 41 | 42 | pascal/ by Bob Dellaca et al. 43 | Support for Pascal 44 | 45 | puff/ by Mark Adler 46 | Small, low memory usage inflate. Also serves to provide an 47 | unambiguous description of the deflate format. 48 | 49 | testzlib/ by Gilles Vollant 50 | Example of the use of zlib 51 | 52 | untgz/ by Pedro A. Aranda Gutierrez 53 | A very simple tar.gz file extractor using zlib 54 | 55 | vstudio/ by Gilles Vollant 56 | Building a minizip-enhanced zlib with Microsoft Visual Studio 57 | Includes vc11 from kreuzerkrieg and vc12 from davispuh 58 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/ada/readme.txt: -------------------------------------------------------------------------------- 1 | ZLib for Ada thick binding (ZLib.Ada) 2 | Release 1.3 3 | 4 | ZLib.Ada is a thick binding interface to the popular ZLib data 5 | compression library, available at http://www.gzip.org/zlib/. 6 | It provides Ada-style access to the ZLib C library. 7 | 8 | 9 | Here are the main changes since ZLib.Ada 1.2: 10 | 11 | - Attension: ZLib.Read generic routine have a initialization requirement 12 | for Read_Last parameter now. It is a bit incompartible with previous version, 13 | but extends functionality, we could use new parameters Allow_Read_Some and 14 | Flush now. 15 | 16 | - Added Is_Open routines to ZLib and ZLib.Streams packages. 17 | 18 | - Add pragma Assert to check Stream_Element is 8 bit. 19 | 20 | - Fix extraction to buffer with exact known decompressed size. Error reported by 21 | Steve Sangwine. 22 | 23 | - Fix definition of ULong (changed to unsigned_long), fix regression on 64 bits 24 | computers. Patch provided by Pascal Obry. 25 | 26 | - Add Status_Error exception definition. 27 | 28 | - Add pragma Assertion that Ada.Streams.Stream_Element size is 8 bit. 29 | 30 | 31 | How to build ZLib.Ada under GNAT 32 | 33 | You should have the ZLib library already build on your computer, before 34 | building ZLib.Ada. Make the directory of ZLib.Ada sources current and 35 | issue the command: 36 | 37 | gnatmake test -largs -L -lz 38 | 39 | Or use the GNAT project file build for GNAT 3.15 or later: 40 | 41 | gnatmake -Pzlib.gpr -L 42 | 43 | 44 | How to build ZLib.Ada under Aonix ObjectAda for Win32 7.2.2 45 | 46 | 1. Make a project with all *.ads and *.adb files from the distribution. 47 | 2. Build the libz.a library from the ZLib C sources. 48 | 3. Rename libz.a to z.lib. 49 | 4. Add the library z.lib to the project. 50 | 5. Add the libc.lib library from the ObjectAda distribution to the project. 51 | 6. Build the executable using test.adb as a main procedure. 52 | 53 | 54 | How to use ZLib.Ada 55 | 56 | The source files test.adb and read.adb are small demo programs that show 57 | the main functionality of ZLib.Ada. 58 | 59 | The routines from the package specifications are commented. 60 | 61 | 62 | Homepage: http://zlib-ada.sourceforge.net/ 63 | Author: Dmitriy Anisimkov 64 | 65 | Contributors: Pascal Obry , Steve Sangwine 66 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/ada/zlib.gpr: -------------------------------------------------------------------------------- 1 | project Zlib is 2 | 3 | for Languages use ("Ada"); 4 | for Source_Dirs use ("."); 5 | for Object_Dir use "."; 6 | for Main use ("test.adb", "mtest.adb", "read.adb", "buffer_demo"); 7 | 8 | package Compiler is 9 | for Default_Switches ("ada") use ("-gnatwcfilopru", "-gnatVcdfimorst", "-gnatyabcefhiklmnoprst"); 10 | end Compiler; 11 | 12 | package Linker is 13 | for Default_Switches ("ada") use ("-lz"); 14 | end Linker; 15 | 16 | package Builder is 17 | for Default_Switches ("ada") use ("-s", "-gnatQ"); 18 | end Builder; 19 | 20 | end Zlib; 21 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/asm686/README.686: -------------------------------------------------------------------------------- 1 | This is a patched version of zlib, modified to use 2 | Pentium-Pro-optimized assembly code in the deflation algorithm. The 3 | files changed/added by this patch are: 4 | 5 | README.686 6 | match.S 7 | 8 | The speedup that this patch provides varies, depending on whether the 9 | compiler used to build the original version of zlib falls afoul of the 10 | PPro's speed traps. My own tests show a speedup of around 10-20% at 11 | the default compression level, and 20-30% using -9, against a version 12 | compiled using gcc 2.7.2.3. Your mileage may vary. 13 | 14 | Note that this code has been tailored for the PPro/PII in particular, 15 | and will not perform particuarly well on a Pentium. 16 | 17 | If you are using an assembler other than GNU as, you will have to 18 | translate match.S to use your assembler's syntax. (Have fun.) 19 | 20 | Brian Raiter 21 | breadbox@muppetlabs.com 22 | April, 1998 23 | 24 | 25 | Added for zlib 1.1.3: 26 | 27 | The patches come from 28 | http://www.muppetlabs.com/~breadbox/software/assembly.html 29 | 30 | To compile zlib with this asm file, copy match.S to the zlib directory 31 | then do: 32 | 33 | CFLAGS="-O3 -DASMV" ./configure 34 | make OBJA=match.o 35 | 36 | 37 | Update: 38 | 39 | I've been ignoring these assembly routines for years, believing that 40 | gcc's generated code had caught up with it sometime around gcc 2.95 41 | and the major rearchitecting of the Pentium 4. However, I recently 42 | learned that, despite what I believed, this code still has some life 43 | in it. On the Pentium 4 and AMD64 chips, it continues to run about 8% 44 | faster than the code produced by gcc 4.1. 45 | 46 | In acknowledgement of its continuing usefulness, I've altered the 47 | license to match that of the rest of zlib. Share and Enjoy! 48 | 49 | Brian Raiter 50 | breadbox@muppetlabs.com 51 | April, 2007 52 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/blast/README: -------------------------------------------------------------------------------- 1 | Read blast.h for purpose and usage. 2 | 3 | Mark Adler 4 | madler@alumni.caltech.edu 5 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/blast/test.pk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/src/assimp/contrib/zlib/contrib/blast/test.pk -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/blast/test.txt: -------------------------------------------------------------------------------- 1 | AIAIAIAIAIAIA -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/delphi/ZLibConst.pas: -------------------------------------------------------------------------------- 1 | unit ZLibConst; 2 | 3 | interface 4 | 5 | resourcestring 6 | sTargetBufferTooSmall = 'ZLib error: target buffer may be too small'; 7 | sInvalidStreamOp = 'Invalid stream operation'; 8 | 9 | implementation 10 | 11 | end. 12 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/delphi/readme.txt: -------------------------------------------------------------------------------- 1 | 2 | Overview 3 | ======== 4 | 5 | This directory contains an update to the ZLib interface unit, 6 | distributed by Borland as a Delphi supplemental component. 7 | 8 | The original ZLib unit is Copyright (c) 1997,99 Borland Corp., 9 | and is based on zlib version 1.0.4. There are a series of bugs 10 | and security problems associated with that old zlib version, and 11 | we recommend the users to update their ZLib unit. 12 | 13 | 14 | Summary of modifications 15 | ======================== 16 | 17 | - Improved makefile, adapted to zlib version 1.2.1. 18 | 19 | - Some field types from TZStreamRec are changed from Integer to 20 | Longint, for consistency with the zlib.h header, and for 64-bit 21 | readiness. 22 | 23 | - The zlib_version constant is updated. 24 | 25 | - The new Z_RLE strategy has its corresponding symbolic constant. 26 | 27 | - The allocation and deallocation functions and function types 28 | (TAlloc, TFree, zlibAllocMem and zlibFreeMem) are now cdecl, 29 | and _malloc and _free are added as C RTL stubs. As a result, 30 | the original C sources of zlib can be compiled out of the box, 31 | and linked to the ZLib unit. 32 | 33 | 34 | Suggestions for improvements 35 | ============================ 36 | 37 | Currently, the ZLib unit provides only a limited wrapper around 38 | the zlib library, and much of the original zlib functionality is 39 | missing. Handling compressed file formats like ZIP/GZIP or PNG 40 | cannot be implemented without having this functionality. 41 | Applications that handle these formats are either using their own, 42 | duplicated code, or not using the ZLib unit at all. 43 | 44 | Here are a few suggestions: 45 | 46 | - Checksum class wrappers around adler32() and crc32(), similar 47 | to the Java classes that implement the java.util.zip.Checksum 48 | interface. 49 | 50 | - The ability to read and write raw deflate streams, without the 51 | zlib stream header and trailer. Raw deflate streams are used 52 | in the ZIP file format. 53 | 54 | - The ability to read and write gzip streams, used in the GZIP 55 | file format, and normally produced by the gzip program. 56 | 57 | - The ability to select a different compression strategy, useful 58 | to PNG and MNG image compression, and to multimedia compression 59 | in general. Besides the compression level 60 | 61 | TCompressionLevel = (clNone, clFastest, clDefault, clMax); 62 | 63 | which, in fact, could have used the 'z' prefix and avoided 64 | TColor-like symbols 65 | 66 | TCompressionLevel = (zcNone, zcFastest, zcDefault, zcMax); 67 | 68 | there could be a compression strategy 69 | 70 | TCompressionStrategy = (zsDefault, zsFiltered, zsHuffmanOnly, zsRle); 71 | 72 | - ZIP and GZIP stream handling via TStreams. 73 | 74 | 75 | -- 76 | Cosmin Truta 77 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/delphi/zlibd32.mak: -------------------------------------------------------------------------------- 1 | # Makefile for zlib 2 | # For use with Delphi and C++ Builder under Win32 3 | # Updated for zlib 1.2.x by Cosmin Truta 4 | 5 | # ------------ Borland C++ ------------ 6 | 7 | # This project uses the Delphi (fastcall/register) calling convention: 8 | LOC = -DZEXPORT=__fastcall -DZEXPORTVA=__cdecl 9 | 10 | CC = bcc32 11 | LD = bcc32 12 | AR = tlib 13 | # do not use "-pr" in CFLAGS 14 | CFLAGS = -a -d -k- -O2 $(LOC) 15 | LDFLAGS = 16 | 17 | 18 | # variables 19 | ZLIB_LIB = zlib.lib 20 | 21 | OBJ1 = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj 22 | OBJ2 = gzwrite.obj infback.obj inffast.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj 23 | OBJP1 = +adler32.obj+compress.obj+crc32.obj+deflate.obj+gzclose.obj+gzlib.obj+gzread.obj 24 | OBJP2 = +gzwrite.obj+infback.obj+inffast.obj+inflate.obj+inftrees.obj+trees.obj+uncompr.obj+zutil.obj 25 | 26 | 27 | # targets 28 | all: $(ZLIB_LIB) example.exe minigzip.exe 29 | 30 | .c.obj: 31 | $(CC) -c $(CFLAGS) $*.c 32 | 33 | adler32.obj: adler32.c zlib.h zconf.h 34 | 35 | compress.obj: compress.c zlib.h zconf.h 36 | 37 | crc32.obj: crc32.c zlib.h zconf.h crc32.h 38 | 39 | deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h 40 | 41 | gzclose.obj: gzclose.c zlib.h zconf.h gzguts.h 42 | 43 | gzlib.obj: gzlib.c zlib.h zconf.h gzguts.h 44 | 45 | gzread.obj: gzread.c zlib.h zconf.h gzguts.h 46 | 47 | gzwrite.obj: gzwrite.c zlib.h zconf.h gzguts.h 48 | 49 | infback.obj: infback.c zutil.h zlib.h zconf.h inftrees.h inflate.h \ 50 | inffast.h inffixed.h 51 | 52 | inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h inflate.h \ 53 | inffast.h 54 | 55 | inflate.obj: inflate.c zutil.h zlib.h zconf.h inftrees.h inflate.h \ 56 | inffast.h inffixed.h 57 | 58 | inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h 59 | 60 | trees.obj: trees.c zutil.h zlib.h zconf.h deflate.h trees.h 61 | 62 | uncompr.obj: uncompr.c zlib.h zconf.h 63 | 64 | zutil.obj: zutil.c zutil.h zlib.h zconf.h 65 | 66 | example.obj: test/example.c zlib.h zconf.h 67 | 68 | minigzip.obj: test/minigzip.c zlib.h zconf.h 69 | 70 | 71 | # For the sake of the old Borland make, 72 | # the command line is cut to fit in the MS-DOS 128 byte limit: 73 | $(ZLIB_LIB): $(OBJ1) $(OBJ2) 74 | -del $(ZLIB_LIB) 75 | $(AR) $(ZLIB_LIB) $(OBJP1) 76 | $(AR) $(ZLIB_LIB) $(OBJP2) 77 | 78 | 79 | # testing 80 | test: example.exe minigzip.exe 81 | example 82 | echo hello world | minigzip | minigzip -d 83 | 84 | example.exe: example.obj $(ZLIB_LIB) 85 | $(LD) $(LDFLAGS) example.obj $(ZLIB_LIB) 86 | 87 | minigzip.exe: minigzip.obj $(ZLIB_LIB) 88 | $(LD) $(LDFLAGS) minigzip.obj $(ZLIB_LIB) 89 | 90 | 91 | # cleanup 92 | clean: 93 | -del *.obj 94 | -del *.exe 95 | -del *.lib 96 | -del *.tds 97 | -del zlib.bak 98 | -del foo.gz 99 | 100 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/dotzlib/DotZLib.build: -------------------------------------------------------------------------------- 1 |  2 | 3 | A .Net wrapper library around ZLib1.dll 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/dotzlib/DotZLib.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/src/assimp/contrib/zlib/contrib/dotzlib/DotZLib.chm -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | 4 | // 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | // 9 | [assembly: AssemblyTitle("DotZLib")] 10 | [assembly: AssemblyDescription(".Net bindings for ZLib compression dll 1.2.x")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("Henrik Ravn")] 13 | [assembly: AssemblyProduct("")] 14 | [assembly: AssemblyCopyright("(c) 2004 by Henrik Ravn")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | 18 | // 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | // 26 | // You can specify all the values or you can default the Revision and Build Numbers 27 | // by using the '*' as shown below: 28 | 29 | [assembly: AssemblyVersion("1.0.*")] 30 | 31 | // 32 | // In order to sign your assembly you must specify a key to use. Refer to the 33 | // Microsoft .NET Framework documentation for more information on assembly signing. 34 | // 35 | // Use the attributes below to control which key is used for signing. 36 | // 37 | // Notes: 38 | // (*) If no key is specified, the assembly is not signed. 39 | // (*) KeyName refers to a key that has been installed in the Crypto Service 40 | // Provider (CSP) on your machine. KeyFile refers to a file which contains 41 | // a key. 42 | // (*) If the KeyFile and the KeyName values are both specified, the 43 | // following processing occurs: 44 | // (1) If the KeyName can be found in the CSP, that key is used. 45 | // (2) If the KeyName does not exist and the KeyFile does exist, the key 46 | // in the KeyFile is installed into the CSP and used. 47 | // (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. 48 | // When specifying the KeyFile, the location of the KeyFile should be 49 | // relative to the project output directory which is 50 | // %Project Directory%\obj\. For example, if your KeyFile is 51 | // located in the project directory, you would specify the AssemblyKeyFile 52 | // attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] 53 | // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework 54 | // documentation for more information on this. 55 | // 56 | [assembly: AssemblyDelaySign(false)] 57 | [assembly: AssemblyKeyFile("")] 58 | [assembly: AssemblyKeyName("")] 59 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/CodecBase.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/CodecBase.cs -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/Deflater.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/Deflater.cs -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/DotZLib.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/DotZLib.cs -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/GZipStream.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/GZipStream.cs -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/Inflater.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/src/assimp/contrib/zlib/contrib/dotzlib/DotZLib/Inflater.cs -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/dotzlib/LICENSE_1_0.txt: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/dotzlib/readme.txt: -------------------------------------------------------------------------------- 1 | This directory contains a .Net wrapper class library for the ZLib1.dll 2 | 3 | The wrapper includes support for inflating/deflating memory buffers, 4 | .Net streaming wrappers for the gz streams part of zlib, and wrappers 5 | for the checksum parts of zlib. See DotZLib/UnitTests.cs for examples. 6 | 7 | Directory structure: 8 | -------------------- 9 | 10 | LICENSE_1_0.txt - License file. 11 | readme.txt - This file. 12 | DotZLib.chm - Class library documentation 13 | DotZLib.build - NAnt build file 14 | DotZLib.sln - Microsoft Visual Studio 2003 solution file 15 | 16 | DotZLib\*.cs - Source files for the class library 17 | 18 | Unit tests: 19 | ----------- 20 | The file DotZLib/UnitTests.cs contains unit tests for use with NUnit 2.1 or higher. 21 | To include unit tests in the build, define nunit before building. 22 | 23 | 24 | Build instructions: 25 | ------------------- 26 | 27 | 1. Using Visual Studio.Net 2003: 28 | Open DotZLib.sln in VS.Net and build from there. Output file (DotZLib.dll) 29 | will be found ./DotZLib/bin/release or ./DotZLib/bin/debug, depending on 30 | you are building the release or debug version of the library. Check 31 | DotZLib/UnitTests.cs for instructions on how to include unit tests in the 32 | build. 33 | 34 | 2. Using NAnt: 35 | Open a command prompt with access to the build environment and run nant 36 | in the same directory as the DotZLib.build file. 37 | You can define 2 properties on the nant command-line to control the build: 38 | debug={true|false} to toggle between release/debug builds (default=true). 39 | nunit={true|false} to include or esclude unit tests (default=true). 40 | Also the target clean will remove binaries. 41 | Output file (DotZLib.dll) will be found in either ./DotZLib/bin/release 42 | or ./DotZLib/bin/debug, depending on whether you are building the release 43 | or debug version of the library. 44 | 45 | Examples: 46 | nant -D:debug=false -D:nunit=false 47 | will build a release mode version of the library without unit tests. 48 | nant 49 | will build a debug version of the library with unit tests 50 | nant clean 51 | will remove all previously built files. 52 | 53 | 54 | --------------------------------- 55 | Copyright (c) Henrik Ravn 2004 56 | 57 | Use, modification and distribution are subject to the Boost Software License, Version 1.0. 58 | (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 59 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/infback9/README: -------------------------------------------------------------------------------- 1 | See infback9.h for what this is and how to use it. 2 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/infback9/infback9.h: -------------------------------------------------------------------------------- 1 | /* infback9.h -- header for using inflateBack9 functions 2 | * Copyright (C) 2003 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* 7 | * This header file and associated patches provide a decoder for PKWare's 8 | * undocumented deflate64 compression method (method 9). Use with infback9.c, 9 | * inftree9.h, inftree9.c, and inffix9.h. These patches are not supported. 10 | * This should be compiled with zlib, since it uses zutil.h and zutil.o. 11 | * This code has not yet been tested on 16-bit architectures. See the 12 | * comments in zlib.h for inflateBack() usage. These functions are used 13 | * identically, except that there is no windowBits parameter, and a 64K 14 | * window must be provided. Also if int's are 16 bits, then a zero for 15 | * the third parameter of the "out" function actually means 65536UL. 16 | * zlib.h must be included before this header file. 17 | */ 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | ZEXTERN int ZEXPORT inflateBack9 OF((z_stream FAR *strm, 24 | in_func in, void FAR *in_desc, 25 | out_func out, void FAR *out_desc)); 26 | ZEXTERN int ZEXPORT inflateBack9End OF((z_stream FAR *strm)); 27 | ZEXTERN int ZEXPORT inflateBack9Init_ OF((z_stream FAR *strm, 28 | unsigned char FAR *window, 29 | const char *version, 30 | int stream_size)); 31 | #define inflateBack9Init(strm, window) \ 32 | inflateBack9Init_((strm), (window), \ 33 | ZLIB_VERSION, sizeof(z_stream)) 34 | 35 | #ifdef __cplusplus 36 | } 37 | #endif 38 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/infback9/inflate9.h: -------------------------------------------------------------------------------- 1 | /* inflate9.h -- internal inflate state definition 2 | * Copyright (C) 1995-2003 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | /* Possible inflate modes between inflate() calls */ 12 | typedef enum { 13 | TYPE, /* i: waiting for type bits, including last-flag bit */ 14 | STORED, /* i: waiting for stored size (length and complement) */ 15 | TABLE, /* i: waiting for dynamic block table lengths */ 16 | LEN, /* i: waiting for length/lit code */ 17 | DONE, /* finished check, done -- remain here until reset */ 18 | BAD /* got a data error -- remain here until reset */ 19 | } inflate_mode; 20 | 21 | /* 22 | State transitions between above modes - 23 | 24 | (most modes can go to the BAD mode -- not shown for clarity) 25 | 26 | Read deflate blocks: 27 | TYPE -> STORED or TABLE or LEN or DONE 28 | STORED -> TYPE 29 | TABLE -> LENLENS -> CODELENS -> LEN 30 | Read deflate codes: 31 | LEN -> LEN or TYPE 32 | */ 33 | 34 | /* state maintained between inflate() calls. Approximately 7K bytes. */ 35 | struct inflate_state { 36 | /* sliding window */ 37 | unsigned char FAR *window; /* allocated sliding window, if needed */ 38 | /* dynamic table building */ 39 | unsigned ncode; /* number of code length code lengths */ 40 | unsigned nlen; /* number of length code lengths */ 41 | unsigned ndist; /* number of distance code lengths */ 42 | unsigned have; /* number of code lengths in lens[] */ 43 | code FAR *next; /* next available space in codes[] */ 44 | unsigned short lens[320]; /* temporary storage for code lengths */ 45 | unsigned short work[288]; /* work area for code table building */ 46 | code codes[ENOUGH]; /* space for code tables */ 47 | }; 48 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/iostream/test.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "zfstream.h" 3 | 4 | int main() { 5 | 6 | // Construct a stream object with this filebuffer. Anything sent 7 | // to this stream will go to standard out. 8 | gzofstream os( 1, ios::out ); 9 | 10 | // This text is getting compressed and sent to stdout. 11 | // To prove this, run 'test | zcat'. 12 | os << "Hello, Mommy" << endl; 13 | 14 | os << setcompressionlevel( Z_NO_COMPRESSION ); 15 | os << "hello, hello, hi, ho!" << endl; 16 | 17 | setcompressionlevel( os, Z_DEFAULT_COMPRESSION ) 18 | << "I'm compressing again" << endl; 19 | 20 | os.close(); 21 | 22 | return 0; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/iostream2/zstream_test.cpp: -------------------------------------------------------------------------------- 1 | #include "zstream.h" 2 | #include 3 | #include 4 | #include 5 | 6 | void main() { 7 | char h[256] = "Hello"; 8 | char* g = "Goodbye"; 9 | ozstream out("temp.gz"); 10 | out < "This works well" < h < g; 11 | out.close(); 12 | 13 | izstream in("temp.gz"); // read it back 14 | char *x = read_string(in), *y = new char[256], z[256]; 15 | in > y > z; 16 | in.close(); 17 | cout << x << endl << y << endl << z << endl; 18 | 19 | out.open("temp.gz"); // try ascii output; zcat temp.gz to see the results 20 | out << setw(50) << setfill('#') << setprecision(20) << x << endl << y << endl << z << endl; 21 | out << z << endl << y << endl << x << endl; 22 | out << 1.1234567890123456789 << endl; 23 | 24 | delete[] x; delete[] y; 25 | } 26 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/iostream3/README: -------------------------------------------------------------------------------- 1 | These classes provide a C++ stream interface to the zlib library. It allows you 2 | to do things like: 3 | 4 | gzofstream outf("blah.gz"); 5 | outf << "These go into the gzip file " << 123 << endl; 6 | 7 | It does this by deriving a specialized stream buffer for gzipped files, which is 8 | the way Stroustrup would have done it. :-> 9 | 10 | The gzifstream and gzofstream classes were originally written by Kevin Ruland 11 | and made available in the zlib contrib/iostream directory. The older version still 12 | compiles under gcc 2.xx, but not under gcc 3.xx, which sparked the development of 13 | this version. 14 | 15 | The new classes are as standard-compliant as possible, closely following the 16 | approach of the standard library's fstream classes. It compiles under gcc versions 17 | 3.2 and 3.3, but not under gcc 2.xx. This is mainly due to changes in the standard 18 | library naming scheme. The new version of gzifstream/gzofstream/gzfilebuf differs 19 | from the previous one in the following respects: 20 | - added showmanyc 21 | - added setbuf, with support for unbuffered output via setbuf(0,0) 22 | - a few bug fixes of stream behavior 23 | - gzipped output file opened with default compression level instead of maximum level 24 | - setcompressionlevel()/strategy() members replaced by single setcompression() 25 | 26 | The code is provided "as is", with the permission to use, copy, modify, distribute 27 | and sell it for any purpose without fee. 28 | 29 | Ludwig Schwardt 30 | 31 | 32 | DSP Lab 33 | Electrical & Electronic Engineering Department 34 | University of Stellenbosch 35 | South Africa 36 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/iostream3/TODO: -------------------------------------------------------------------------------- 1 | Possible upgrades to gzfilebuf: 2 | 3 | - The ability to do putback (e.g. putbackfail) 4 | 5 | - The ability to seek (zlib supports this, but could be slow/tricky) 6 | 7 | - Simultaneous read/write access (does it make sense?) 8 | 9 | - Support for ios_base::ate open mode 10 | 11 | - Locale support? 12 | 13 | - Check public interface to see which calls give problems 14 | (due to dependence on library internals) 15 | 16 | - Override operator<<(ostream&, gzfilebuf*) to allow direct copying 17 | of stream buffer to stream ( i.e. os << is.rdbuf(); ) 18 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/iostream3/test.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Test program for gzifstream and gzofstream 3 | * 4 | * by Ludwig Schwardt 5 | * original version by Kevin Ruland 6 | */ 7 | 8 | #include "zfstream.h" 9 | #include // for cout 10 | 11 | int main() { 12 | 13 | gzofstream outf; 14 | gzifstream inf; 15 | char buf[80]; 16 | 17 | outf.open("test1.txt.gz"); 18 | outf << "The quick brown fox sidestepped the lazy canine\n" 19 | << 1.3 << "\nPlan " << 9 << std::endl; 20 | outf.close(); 21 | std::cout << "Wrote the following message to 'test1.txt.gz' (check with zcat or zless):\n" 22 | << "The quick brown fox sidestepped the lazy canine\n" 23 | << 1.3 << "\nPlan " << 9 << std::endl; 24 | 25 | std::cout << "\nReading 'test1.txt.gz' (buffered) produces:\n"; 26 | inf.open("test1.txt.gz"); 27 | while (inf.getline(buf,80,'\n')) { 28 | std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n"; 29 | } 30 | inf.close(); 31 | 32 | outf.rdbuf()->pubsetbuf(0,0); 33 | outf.open("test2.txt.gz"); 34 | outf << setcompression(Z_NO_COMPRESSION) 35 | << "The quick brown fox sidestepped the lazy canine\n" 36 | << 1.3 << "\nPlan " << 9 << std::endl; 37 | outf.close(); 38 | std::cout << "\nWrote the same message to 'test2.txt.gz' in uncompressed form"; 39 | 40 | std::cout << "\nReading 'test2.txt.gz' (unbuffered) produces:\n"; 41 | inf.rdbuf()->pubsetbuf(0,0); 42 | inf.open("test2.txt.gz"); 43 | while (inf.getline(buf,80,'\n')) { 44 | std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n"; 45 | } 46 | inf.close(); 47 | 48 | return 0; 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/masmx64/bld_ml64.bat: -------------------------------------------------------------------------------- 1 | ml64.exe /Flinffasx64 /c /Zi inffasx64.asm 2 | ml64.exe /Flgvmat64 /c /Zi gvmat64.asm 3 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/masmx64/readme.txt: -------------------------------------------------------------------------------- 1 | Summary 2 | ------- 3 | This directory contains ASM implementations of the functions 4 | longest_match() and inflate_fast(), for 64 bits x86 (both AMD64 and Intel EM64t), 5 | for use with Microsoft Macro Assembler (x64) for AMD64 and Microsoft C++ 64 bits. 6 | 7 | gvmat64.asm is written by Gilles Vollant (2005), by using Brian Raiter 686/32 bits 8 | assembly optimized version from Jean-loup Gailly original longest_match function 9 | 10 | inffasx64.asm and inffas8664.c were written by Chris Anderson, by optimizing 11 | original function from Mark Adler 12 | 13 | Use instructions 14 | ---------------- 15 | Assemble the .asm files using MASM and put the object files into the zlib source 16 | directory. You can also get object files here: 17 | 18 | http://www.winimage.com/zLibDll/zlib124_masm_obj.zip 19 | 20 | define ASMV and ASMINF in your project. Include inffas8664.c in your source tree, 21 | and inffasx64.obj and gvmat64.obj as object to link. 22 | 23 | 24 | Build instructions 25 | ------------------ 26 | run bld_64.bat with Microsoft Macro Assembler (x64) for AMD64 (ml64.exe) 27 | 28 | ml64.exe is given with Visual Studio 2005, Windows 2003 server DDK 29 | 30 | You can get Windows 2003 server DDK with ml64 and cl for AMD64 from 31 | http://www.microsoft.com/whdc/devtools/ddk/default.mspx for low price) 32 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/masmx86/bld_ml32.bat: -------------------------------------------------------------------------------- 1 | ml /coff /Zi /c /Flmatch686.lst match686.asm 2 | ml /coff /Zi /c /Flinffas32.lst inffas32.asm 3 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/masmx86/readme.txt: -------------------------------------------------------------------------------- 1 | 2 | Summary 3 | ------- 4 | This directory contains ASM implementations of the functions 5 | longest_match() and inflate_fast(). 6 | 7 | 8 | Use instructions 9 | ---------------- 10 | Assemble using MASM, and copy the object files into the zlib source 11 | directory, then run the appropriate makefile, as suggested below. You can 12 | donwload MASM from here: 13 | 14 | http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64 15 | 16 | You can also get objects files here: 17 | 18 | http://www.winimage.com/zLibDll/zlib124_masm_obj.zip 19 | 20 | Build instructions 21 | ------------------ 22 | * With Microsoft C and MASM: 23 | nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj" 24 | 25 | * With Borland C and TASM: 26 | make -f win32/Makefile.bor LOCAL_ZLIB="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj" OBJPA="+match686c.obj+match686.obj+inffas32.obj" 27 | 28 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/minizip/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = libminizip.la 2 | 3 | if COND_DEMOS 4 | bin_PROGRAMS = miniunzip minizip 5 | endif 6 | 7 | zlib_top_srcdir = $(top_srcdir)/../.. 8 | zlib_top_builddir = $(top_builddir)/../.. 9 | 10 | AM_CPPFLAGS = -I$(zlib_top_srcdir) 11 | AM_LDFLAGS = -L$(zlib_top_builddir) 12 | 13 | if WIN32 14 | iowin32_src = iowin32.c 15 | iowin32_h = iowin32.h 16 | endif 17 | 18 | libminizip_la_SOURCES = \ 19 | ioapi.c \ 20 | mztools.c \ 21 | unzip.c \ 22 | zip.c \ 23 | ${iowin32_src} 24 | 25 | libminizip_la_LDFLAGS = $(AM_LDFLAGS) -version-info 1:0:0 -lz 26 | 27 | minizip_includedir = $(includedir)/minizip 28 | minizip_include_HEADERS = \ 29 | crypt.h \ 30 | ioapi.h \ 31 | mztools.h \ 32 | unzip.h \ 33 | zip.h \ 34 | ${iowin32_h} 35 | 36 | pkgconfigdir = $(libdir)/pkgconfig 37 | pkgconfig_DATA = minizip.pc 38 | 39 | EXTRA_PROGRAMS = miniunzip minizip 40 | 41 | miniunzip_SOURCES = miniunz.c 42 | miniunzip_LDADD = libminizip.la 43 | 44 | minizip_SOURCES = minizip.c 45 | minizip_LDADD = libminizip.la -lz 46 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/minizip/MiniZip64_Changes.txt: -------------------------------------------------------------------------------- 1 | 2 | MiniZip 1.1 was derrived from MiniZip at version 1.01f 3 | 4 | Change in 1.0 (Okt 2009) 5 | - **TODO - Add history** 6 | 7 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/minizip/configure.ac: -------------------------------------------------------------------------------- 1 | # -*- Autoconf -*- 2 | # Process this file with autoconf to produce a configure script. 3 | 4 | AC_INIT([minizip], [1.2.13], [bugzilla.redhat.com]) 5 | AC_CONFIG_SRCDIR([minizip.c]) 6 | AM_INIT_AUTOMAKE([foreign]) 7 | LT_INIT 8 | 9 | AC_MSG_CHECKING([whether to build example programs]) 10 | AC_ARG_ENABLE([demos], AC_HELP_STRING([--enable-demos], [build example programs])) 11 | AM_CONDITIONAL([COND_DEMOS], [test "$enable_demos" = yes]) 12 | if test "$enable_demos" = yes 13 | then 14 | AC_MSG_RESULT([yes]) 15 | else 16 | AC_MSG_RESULT([no]) 17 | fi 18 | 19 | case "${host}" in 20 | *-mingw* | mingw*) 21 | WIN32="yes" 22 | ;; 23 | *) 24 | ;; 25 | esac 26 | AM_CONDITIONAL([WIN32], [test "${WIN32}" = "yes"]) 27 | 28 | 29 | AC_SUBST([HAVE_UNISTD_H], [0]) 30 | AC_CHECK_HEADER([unistd.h], [HAVE_UNISTD_H=1], []) 31 | AC_CONFIG_FILES([Makefile minizip.pc]) 32 | AC_OUTPUT 33 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/minizip/iowin32.h: -------------------------------------------------------------------------------- 1 | /* iowin32.h -- IO base function header for compress/uncompress .zip 2 | Version 1.1, February 14h, 2010 3 | part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) 4 | 5 | Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) 6 | 7 | Modifications for Zip64 support 8 | Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) 9 | 10 | For more info read MiniZip_info.txt 11 | 12 | */ 13 | 14 | #include 15 | 16 | 17 | #ifdef __cplusplus 18 | extern "C" { 19 | #endif 20 | 21 | void fill_win32_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def)); 22 | void fill_win32_filefunc64 OF((zlib_filefunc64_def* pzlib_filefunc_def)); 23 | void fill_win32_filefunc64A OF((zlib_filefunc64_def* pzlib_filefunc_def)); 24 | void fill_win32_filefunc64W OF((zlib_filefunc64_def* pzlib_filefunc_def)); 25 | 26 | #ifdef __cplusplus 27 | } 28 | #endif 29 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/minizip/make_vms.com: -------------------------------------------------------------------------------- 1 | $ if f$search("ioapi.h_orig") .eqs. "" then copy ioapi.h ioapi.h_orig 2 | $ open/write zdef vmsdefs.h 3 | $ copy sys$input: zdef 4 | $ deck 5 | #define unix 6 | #define fill_zlib_filefunc64_32_def_from_filefunc32 fillzffunc64from 7 | #define Write_Zip64EndOfCentralDirectoryLocator Write_Zip64EoDLocator 8 | #define Write_Zip64EndOfCentralDirectoryRecord Write_Zip64EoDRecord 9 | #define Write_EndOfCentralDirectoryRecord Write_EoDRecord 10 | $ eod 11 | $ close zdef 12 | $ copy vmsdefs.h,ioapi.h_orig ioapi.h 13 | $ cc/include=[--]/prefix=all ioapi.c 14 | $ cc/include=[--]/prefix=all miniunz.c 15 | $ cc/include=[--]/prefix=all unzip.c 16 | $ cc/include=[--]/prefix=all minizip.c 17 | $ cc/include=[--]/prefix=all zip.c 18 | $ link miniunz,unzip,ioapi,[--]libz.olb/lib 19 | $ link minizip,zip,ioapi,[--]libz.olb/lib 20 | $ mcr []minizip test minizip_info.txt 21 | $ mcr []miniunz -l test.zip 22 | $ rename minizip_info.txt; minizip_info.txt_old 23 | $ mcr []miniunz test.zip 24 | $ delete test.zip;* 25 | $exit 26 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/minizip/miniunzip.1: -------------------------------------------------------------------------------- 1 | .\" Hey, EMACS: -*- nroff -*- 2 | .TH miniunzip 1 "Nov 7, 2001" 3 | .\" Please adjust this date whenever revising the manpage. 4 | .\" 5 | .\" Some roff macros, for reference: 6 | .\" .nh disable hyphenation 7 | .\" .hy enable hyphenation 8 | .\" .ad l left justify 9 | .\" .ad b justify to both left and right margins 10 | .\" .nf disable filling 11 | .\" .fi enable filling 12 | .\" .br insert line break 13 | .\" .sp insert n+1 empty lines 14 | .\" for manpage-specific macros, see man(7) 15 | .SH NAME 16 | miniunzip - uncompress and examine ZIP archives 17 | .SH SYNOPSIS 18 | .B miniunzip 19 | .RI [ -exvlo ] 20 | zipfile [ files_to_extract ] [-d tempdir] 21 | .SH DESCRIPTION 22 | .B minizip 23 | is a simple tool which allows the extraction of compressed file 24 | archives in the ZIP format used by the MS-DOS utility PKZIP. It was 25 | written as a demonstration of the 26 | .IR zlib (3) 27 | library and therefore lack many of the features of the 28 | .IR unzip (1) 29 | program. 30 | .SH OPTIONS 31 | A number of options are supported. With the exception of 32 | .BI \-d\ tempdir 33 | these must be supplied before any 34 | other arguments and are: 35 | .TP 36 | .BI \-l\ ,\ \-\-v 37 | List the files in the archive without extracting them. 38 | .TP 39 | .B \-o 40 | Overwrite files without prompting for confirmation. 41 | .TP 42 | .B \-x 43 | Extract files (default). 44 | .PP 45 | The 46 | .I zipfile 47 | argument is the name of the archive to process. The next argument can be used 48 | to specify a single file to extract from the archive. 49 | 50 | Lastly, the following option can be specified at the end of the command-line: 51 | .TP 52 | .BI \-d\ tempdir 53 | Extract the archive in the directory 54 | .I tempdir 55 | rather than the current directory. 56 | .SH SEE ALSO 57 | .BR minizip (1), 58 | .BR zlib (3), 59 | .BR unzip (1). 60 | .SH AUTHOR 61 | This program was written by Gilles Vollant. This manual page was 62 | written by Mark Brown . The -d tempdir option 63 | was added by Dirk Eddelbuettel . 64 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/minizip/minizip.1: -------------------------------------------------------------------------------- 1 | .\" Hey, EMACS: -*- nroff -*- 2 | .TH minizip 1 "May 2, 2001" 3 | .\" Please adjust this date whenever revising the manpage. 4 | .\" 5 | .\" Some roff macros, for reference: 6 | .\" .nh disable hyphenation 7 | .\" .hy enable hyphenation 8 | .\" .ad l left justify 9 | .\" .ad b justify to both left and right margins 10 | .\" .nf disable filling 11 | .\" .fi enable filling 12 | .\" .br insert line break 13 | .\" .sp insert n+1 empty lines 14 | .\" for manpage-specific macros, see man(7) 15 | .SH NAME 16 | minizip - create ZIP archives 17 | .SH SYNOPSIS 18 | .B minizip 19 | .RI [ -o ] 20 | zipfile [ " files" ... ] 21 | .SH DESCRIPTION 22 | .B minizip 23 | is a simple tool which allows the creation of compressed file archives 24 | in the ZIP format used by the MS-DOS utility PKZIP. It was written as 25 | a demonstration of the 26 | .IR zlib (3) 27 | library and therefore lack many of the features of the 28 | .IR zip (1) 29 | program. 30 | .SH OPTIONS 31 | The first argument supplied is the name of the ZIP archive to create or 32 | .RI -o 33 | in which case it is ignored and the second argument treated as the 34 | name of the ZIP file. If the ZIP file already exists it will be 35 | overwritten. 36 | .PP 37 | Subsequent arguments specify a list of files to place in the ZIP 38 | archive. If none are specified then an empty archive will be created. 39 | .SH SEE ALSO 40 | .BR miniunzip (1), 41 | .BR zlib (3), 42 | .BR zip (1). 43 | .SH AUTHOR 44 | This program was written by Gilles Vollant. This manual page was 45 | written by Mark Brown . 46 | 47 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/minizip/minizip.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@/minizip 5 | 6 | Name: minizip 7 | Description: Minizip zip file manipulation library 8 | Requires: 9 | Version: @PACKAGE_VERSION@ 10 | Libs: -L${libdir} -lminizip 11 | Libs.private: -lz 12 | Cflags: -I${includedir} 13 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/minizip/mztools.h: -------------------------------------------------------------------------------- 1 | /* 2 | Additional tools for Minizip 3 | Code: Xavier Roche '2004 4 | License: Same as ZLIB (www.gzip.org) 5 | */ 6 | 7 | #ifndef _zip_tools_H 8 | #define _zip_tools_H 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | #ifndef _ZLIB_H 15 | #include "zlib.h" 16 | #endif 17 | 18 | #include "unzip.h" 19 | 20 | /* Repair a ZIP file (missing central directory) 21 | file: file to recover 22 | fileOut: output file after recovery 23 | fileOutTmp: temporary file name used for recovery 24 | */ 25 | extern int ZEXPORT unzRepair(const char* file, 26 | const char* fileOut, 27 | const char* fileOutTmp, 28 | uLong* nRecovered, 29 | uLong* bytesRecovered); 30 | 31 | 32 | #ifdef __cplusplus 33 | } 34 | #endif 35 | 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/pascal/zlibd32.mak: -------------------------------------------------------------------------------- 1 | # Makefile for zlib 2 | # For use with Delphi and C++ Builder under Win32 3 | # Updated for zlib 1.2.x by Cosmin Truta 4 | 5 | # ------------ Borland C++ ------------ 6 | 7 | # This project uses the Delphi (fastcall/register) calling convention: 8 | LOC = -DZEXPORT=__fastcall -DZEXPORTVA=__cdecl 9 | 10 | CC = bcc32 11 | LD = bcc32 12 | AR = tlib 13 | # do not use "-pr" in CFLAGS 14 | CFLAGS = -a -d -k- -O2 $(LOC) 15 | LDFLAGS = 16 | 17 | 18 | # variables 19 | ZLIB_LIB = zlib.lib 20 | 21 | OBJ1 = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj 22 | OBJ2 = gzwrite.obj infback.obj inffast.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj 23 | OBJP1 = +adler32.obj+compress.obj+crc32.obj+deflate.obj+gzclose.obj+gzlib.obj+gzread.obj 24 | OBJP2 = +gzwrite.obj+infback.obj+inffast.obj+inflate.obj+inftrees.obj+trees.obj+uncompr.obj+zutil.obj 25 | 26 | 27 | # targets 28 | all: $(ZLIB_LIB) example.exe minigzip.exe 29 | 30 | .c.obj: 31 | $(CC) -c $(CFLAGS) $*.c 32 | 33 | adler32.obj: adler32.c zlib.h zconf.h 34 | 35 | compress.obj: compress.c zlib.h zconf.h 36 | 37 | crc32.obj: crc32.c zlib.h zconf.h crc32.h 38 | 39 | deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h 40 | 41 | gzclose.obj: gzclose.c zlib.h zconf.h gzguts.h 42 | 43 | gzlib.obj: gzlib.c zlib.h zconf.h gzguts.h 44 | 45 | gzread.obj: gzread.c zlib.h zconf.h gzguts.h 46 | 47 | gzwrite.obj: gzwrite.c zlib.h zconf.h gzguts.h 48 | 49 | infback.obj: infback.c zutil.h zlib.h zconf.h inftrees.h inflate.h \ 50 | inffast.h inffixed.h 51 | 52 | inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h inflate.h \ 53 | inffast.h 54 | 55 | inflate.obj: inflate.c zutil.h zlib.h zconf.h inftrees.h inflate.h \ 56 | inffast.h inffixed.h 57 | 58 | inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h 59 | 60 | trees.obj: trees.c zutil.h zlib.h zconf.h deflate.h trees.h 61 | 62 | uncompr.obj: uncompr.c zlib.h zconf.h 63 | 64 | zutil.obj: zutil.c zutil.h zlib.h zconf.h 65 | 66 | example.obj: test/example.c zlib.h zconf.h 67 | 68 | minigzip.obj: test/minigzip.c zlib.h zconf.h 69 | 70 | 71 | # For the sake of the old Borland make, 72 | # the command line is cut to fit in the MS-DOS 128 byte limit: 73 | $(ZLIB_LIB): $(OBJ1) $(OBJ2) 74 | -del $(ZLIB_LIB) 75 | $(AR) $(ZLIB_LIB) $(OBJP1) 76 | $(AR) $(ZLIB_LIB) $(OBJP2) 77 | 78 | 79 | # testing 80 | test: example.exe minigzip.exe 81 | example 82 | echo hello world | minigzip | minigzip -d 83 | 84 | example.exe: example.obj $(ZLIB_LIB) 85 | $(LD) $(LDFLAGS) example.obj $(ZLIB_LIB) 86 | 87 | minigzip.exe: minigzip.obj $(ZLIB_LIB) 88 | $(LD) $(LDFLAGS) minigzip.obj $(ZLIB_LIB) 89 | 90 | 91 | # cleanup 92 | clean: 93 | -del *.obj 94 | -del *.exe 95 | -del *.lib 96 | -del *.tds 97 | -del zlib.bak 98 | -del foo.gz 99 | 100 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/puff/puff.h: -------------------------------------------------------------------------------- 1 | /* puff.h 2 | Copyright (C) 2002-2013 Mark Adler, all rights reserved 3 | version 2.3, 21 Jan 2013 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the author be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | 21 | Mark Adler madler@alumni.caltech.edu 22 | */ 23 | 24 | 25 | /* 26 | * See puff.c for purpose and usage. 27 | */ 28 | #ifndef NIL 29 | # define NIL ((unsigned char *)0) /* for no output option */ 30 | #endif 31 | 32 | int puff(unsigned char *dest, /* pointer to destination pointer */ 33 | unsigned long *destlen, /* amount of output space */ 34 | const unsigned char *source, /* pointer to source data pointer */ 35 | unsigned long *sourcelen); /* amount of input available */ 36 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/puff/zeros.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/src/assimp/contrib/zlib/contrib/puff/zeros.raw -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/testzlib/testzlib.txt: -------------------------------------------------------------------------------- 1 | To build testzLib with Visual Studio 2005: 2 | 3 | copy to a directory file from : 4 | - root of zLib tree 5 | - contrib/testzlib 6 | - contrib/masmx86 7 | - contrib/masmx64 8 | - contrib/vstudio/vc7 9 | 10 | and open testzlib8.sln -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/untgz/Makefile.msc: -------------------------------------------------------------------------------- 1 | CC=cl 2 | CFLAGS=-MD 3 | 4 | untgz.exe: untgz.obj ..\..\zlib.lib 5 | $(CC) $(CFLAGS) untgz.obj ..\..\zlib.lib 6 | 7 | untgz.obj: untgz.c ..\..\zlib.h 8 | $(CC) $(CFLAGS) -c -I..\.. untgz.c 9 | 10 | ..\..\zlib.lib: 11 | cd ..\.. 12 | $(MAKE) -f win32\makefile.msc 13 | cd contrib\untgz 14 | 15 | clean: 16 | -del untgz.obj 17 | -del untgz.exe 18 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/vstudio/vc10/zlib.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define IDR_VERSION1 1 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 5 | FILEVERSION 1, 2, 13, 0 6 | PRODUCTVERSION 1, 2, 13, 0 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 8 | FILEFLAGS 0 9 | FILEOS VOS_DOS_WINDOWS32 10 | FILETYPE VFT_DLL 11 | FILESUBTYPE 0 // not used 12 | BEGIN 13 | BLOCK "StringFileInfo" 14 | BEGIN 15 | BLOCK "040904E4" 16 | //language ID = U.S. English, char set = Windows, Multilingual 17 | 18 | BEGIN 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" 20 | VALUE "FileVersion", "1.2.13\0" 21 | VALUE "InternalName", "zlib\0" 22 | VALUE "OriginalFilename", "zlibwapi.dll\0" 23 | VALUE "ProductName", "ZLib.DLL\0" 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" 25 | VALUE "LegalCopyright", "(C) 1995-2022 Jean-loup Gailly & Mark Adler\0" 26 | END 27 | END 28 | BLOCK "VarFileInfo" 29 | BEGIN 30 | VALUE "Translation", 0x0409, 1252 31 | END 32 | END 33 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/vstudio/vc11/zlib.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define IDR_VERSION1 1 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 5 | FILEVERSION 1, 2, 13, 0 6 | PRODUCTVERSION 1, 2, 13, 0 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 8 | FILEFLAGS 0 9 | FILEOS VOS_DOS_WINDOWS32 10 | FILETYPE VFT_DLL 11 | FILESUBTYPE 0 // not used 12 | BEGIN 13 | BLOCK "StringFileInfo" 14 | BEGIN 15 | BLOCK "040904E4" 16 | //language ID = U.S. English, char set = Windows, Multilingual 17 | 18 | BEGIN 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" 20 | VALUE "FileVersion", "1.2.13\0" 21 | VALUE "InternalName", "zlib\0" 22 | VALUE "OriginalFilename", "zlibwapi.dll\0" 23 | VALUE "ProductName", "ZLib.DLL\0" 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" 25 | VALUE "LegalCopyright", "(C) 1995-2022 Jean-loup Gailly & Mark Adler\0" 26 | END 27 | END 28 | BLOCK "VarFileInfo" 29 | BEGIN 30 | VALUE "Translation", 0x0409, 1252 31 | END 32 | END 33 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/vstudio/vc12/zlib.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define IDR_VERSION1 1 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 5 | FILEVERSION 1, 2, 13, 0 6 | PRODUCTVERSION 1, 2, 13, 0 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 8 | FILEFLAGS 0 9 | FILEOS VOS_DOS_WINDOWS32 10 | FILETYPE VFT_DLL 11 | FILESUBTYPE 0 // not used 12 | BEGIN 13 | BLOCK "StringFileInfo" 14 | BEGIN 15 | BLOCK "040904E4" 16 | //language ID = U.S. English, char set = Windows, Multilingual 17 | 18 | BEGIN 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" 20 | VALUE "FileVersion", "1.2.13\0" 21 | VALUE "InternalName", "zlib\0" 22 | VALUE "OriginalFilename", "zlibwapi.dll\0" 23 | VALUE "ProductName", "ZLib.DLL\0" 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" 25 | VALUE "LegalCopyright", "(C) 1995-2022 Jean-loup Gailly & Mark Adler\0" 26 | END 27 | END 28 | BLOCK "VarFileInfo" 29 | BEGIN 30 | VALUE "Translation", 0x0409, 1252 31 | END 32 | END 33 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/vstudio/vc14/zlib.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define IDR_VERSION1 1 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 5 | FILEVERSION 1, 2, 13, 0 6 | PRODUCTVERSION 1, 2, 13, 0 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 8 | FILEFLAGS 0 9 | FILEOS VOS_DOS_WINDOWS32 10 | FILETYPE VFT_DLL 11 | FILESUBTYPE 0 // not used 12 | BEGIN 13 | BLOCK "StringFileInfo" 14 | BEGIN 15 | BLOCK "040904E4" 16 | //language ID = U.S. English, char set = Windows, Multilingual 17 | 18 | BEGIN 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" 20 | VALUE "FileVersion", "1.2.13\0" 21 | VALUE "InternalName", "zlib\0" 22 | VALUE "OriginalFilename", "zlibwapi.dll\0" 23 | VALUE "ProductName", "ZLib.DLL\0" 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" 25 | VALUE "LegalCopyright", "(C) 1995-2022 Jean-loup Gailly & Mark Adler\0" 26 | END 27 | END 28 | BLOCK "VarFileInfo" 29 | BEGIN 30 | VALUE "Translation", 0x0409, 1252 31 | END 32 | END 33 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/contrib/vstudio/vc9/zlib.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define IDR_VERSION1 1 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 5 | FILEVERSION 1, 2, 13, 0 6 | PRODUCTVERSION 1, 2, 13, 0 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 8 | FILEFLAGS 0 9 | FILEOS VOS_DOS_WINDOWS32 10 | FILETYPE VFT_DLL 11 | FILESUBTYPE 0 // not used 12 | BEGIN 13 | BLOCK "StringFileInfo" 14 | BEGIN 15 | BLOCK "040904E4" 16 | //language ID = U.S. English, char set = Windows, Multilingual 17 | 18 | BEGIN 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" 20 | VALUE "FileVersion", "1.2.13\0" 21 | VALUE "InternalName", "zlib\0" 22 | VALUE "OriginalFilename", "zlibwapi.dll\0" 23 | VALUE "ProductName", "ZLib.DLL\0" 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" 25 | VALUE "LegalCopyright", "(C) 1995-2022 Jean-loup Gailly & Mark Adler\0" 26 | END 27 | END 28 | BLOCK "VarFileInfo" 29 | BEGIN 30 | VALUE "Translation", 0x0409, 1252 31 | END 32 | END 33 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/gzclose.c: -------------------------------------------------------------------------------- 1 | /* gzclose.c -- zlib gzclose() function 2 | * Copyright (C) 2004, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | #include "gzguts.h" 7 | 8 | /* gzclose() is in a separate file so that it is linked in only if it is used. 9 | That way the other gzclose functions can be used instead to avoid linking in 10 | unneeded compression or decompression routines. */ 11 | int ZEXPORT gzclose(file) 12 | gzFile file; 13 | { 14 | #ifndef NO_GZCOMPRESS 15 | gz_statep state; 16 | 17 | if (file == NULL) 18 | return Z_STREAM_ERROR; 19 | state = (gz_statep)file; 20 | 21 | return state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file); 22 | #else 23 | return gzclose_r(file); 24 | #endif 25 | } 26 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/inffast.h: -------------------------------------------------------------------------------- 1 | /* inffast.h -- header to use inffast.c 2 | * Copyright (C) 1995-2003, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start)); 12 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/win32/VisualC.txt: -------------------------------------------------------------------------------- 1 | 2 | To build zlib using the Microsoft Visual C++ environment, 3 | use the appropriate project from the contrib/vstudio/ directory. 4 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/win32/zlib.def: -------------------------------------------------------------------------------- 1 | ; zlib data compression library 2 | EXPORTS 3 | ; basic functions 4 | zlibVersion 5 | deflate 6 | deflateEnd 7 | inflate 8 | inflateEnd 9 | ; advanced functions 10 | deflateSetDictionary 11 | deflateGetDictionary 12 | deflateCopy 13 | deflateReset 14 | deflateParams 15 | deflateTune 16 | deflateBound 17 | deflatePending 18 | deflatePrime 19 | deflateSetHeader 20 | inflateSetDictionary 21 | inflateGetDictionary 22 | inflateSync 23 | inflateCopy 24 | inflateReset 25 | inflateReset2 26 | inflatePrime 27 | inflateMark 28 | inflateGetHeader 29 | inflateBack 30 | inflateBackEnd 31 | zlibCompileFlags 32 | ; utility functions 33 | compress 34 | compress2 35 | compressBound 36 | uncompress 37 | uncompress2 38 | gzopen 39 | gzdopen 40 | gzbuffer 41 | gzsetparams 42 | gzread 43 | gzfread 44 | gzwrite 45 | gzfwrite 46 | gzprintf 47 | gzvprintf 48 | gzputs 49 | gzgets 50 | gzputc 51 | gzgetc 52 | gzungetc 53 | gzflush 54 | gzseek 55 | gzrewind 56 | gztell 57 | gzoffset 58 | gzeof 59 | gzdirect 60 | gzclose 61 | gzclose_r 62 | gzclose_w 63 | gzerror 64 | gzclearerr 65 | ; large file functions 66 | gzopen64 67 | gzseek64 68 | gztell64 69 | gzoffset64 70 | adler32_combine64 71 | crc32_combine64 72 | crc32_combine_gen64 73 | ; checksum functions 74 | adler32 75 | adler32_z 76 | crc32 77 | crc32_z 78 | adler32_combine 79 | crc32_combine 80 | crc32_combine_gen 81 | crc32_combine_op 82 | ; various hacks, don't look :) 83 | deflateInit_ 84 | deflateInit2_ 85 | inflateInit_ 86 | inflateInit2_ 87 | inflateBackInit_ 88 | gzgetc_ 89 | zError 90 | inflateSyncPoint 91 | get_crc_table 92 | inflateUndermine 93 | inflateValidate 94 | inflateCodesUsed 95 | inflateResetKeep 96 | deflateResetKeep 97 | gzopen_w 98 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/win32/zlib1.rc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "../zlib.h" 3 | 4 | #ifdef GCC_WINDRES 5 | VS_VERSION_INFO VERSIONINFO 6 | #else 7 | VS_VERSION_INFO VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 8 | #endif 9 | FILEVERSION ZLIB_VER_MAJOR,ZLIB_VER_MINOR,ZLIB_VER_REVISION,0 10 | PRODUCTVERSION ZLIB_VER_MAJOR,ZLIB_VER_MINOR,ZLIB_VER_REVISION,0 11 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 12 | #ifdef _DEBUG 13 | FILEFLAGS 1 14 | #else 15 | FILEFLAGS 0 16 | #endif 17 | FILEOS VOS__WINDOWS32 18 | FILETYPE VFT_DLL 19 | FILESUBTYPE 0 // not used 20 | BEGIN 21 | BLOCK "StringFileInfo" 22 | BEGIN 23 | BLOCK "040904E4" 24 | //language ID = U.S. English, char set = Windows, Multilingual 25 | BEGIN 26 | VALUE "FileDescription", "zlib data compression library\0" 27 | VALUE "FileVersion", ZLIB_VERSION "\0" 28 | VALUE "InternalName", "zlib1.dll\0" 29 | VALUE "LegalCopyright", "(C) 1995-2022 Jean-loup Gailly & Mark Adler\0" 30 | VALUE "OriginalFilename", "zlib1.dll\0" 31 | VALUE "ProductName", "zlib\0" 32 | VALUE "ProductVersion", ZLIB_VERSION "\0" 33 | VALUE "Comments", "For more information visit http://www.zlib.net/\0" 34 | END 35 | END 36 | BLOCK "VarFileInfo" 37 | BEGIN 38 | VALUE "Translation", 0x0409, 1252 39 | END 40 | END 41 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib/zlib.pc.cmakein: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=@CMAKE_INSTALL_PREFIX@ 3 | libdir=@INSTALL_LIB_DIR@ 4 | sharedlibdir=@INSTALL_LIB_DIR@ 5 | includedir=@INSTALL_INC_DIR@ 6 | 7 | Name: zlib 8 | Description: zlib compression library 9 | Version: @VERSION@ 10 | 11 | Requires: 12 | Libs: -L${libdir} -L${sharedlibdir} -lz 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /src/assimp/contrib/zlib_note.txt: -------------------------------------------------------------------------------- 1 | This is a heavily modified and shrinked version of zlib 1.2.3 2 | 3 | - Removed comments from zlib.h 4 | - Removed gzip/zip archive I/O 5 | - Removed infback.c 6 | - Added Assimp #idefs to exclude it if not needed 7 | - Disabled debug macros in zutil.h 8 | 9 | Assimp itself does not use the compression part yet, so 10 | it needn't be compiled (trees.c, deflate.c, compress.c). 11 | Currently these units are just used by assimp_cmd. 12 | -------------------------------------------------------------------------------- /src/assimp/include/assimp/.editorconfig: -------------------------------------------------------------------------------- 1 | # See for details 2 | 3 | [*.{h,hpp,inl}] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | trim_trailing_whitespace = true 7 | indent_size = 4 8 | indent_style = space 9 | -------------------------------------------------------------------------------- /src/assimp/include/assimp/ColladaMetaData.h: -------------------------------------------------------------------------------- 1 | /* 2 | Open Asset Import Library (assimp) 3 | ---------------------------------------------------------------------- 4 | 5 | Copyright (c) 2006-2024, assimp team 6 | 7 | All rights reserved. 8 | 9 | Redistribution and use of this software in source and binary forms, 10 | with or without modification, are permitted provided that the 11 | following conditions are met: 12 | 13 | * Redistributions of source code must retain the above 14 | copyright notice, this list of conditions and the 15 | following disclaimer. 16 | 17 | * Redistributions in binary form must reproduce the above 18 | copyright notice, this list of conditions and the 19 | following disclaimer in the documentation and/or other 20 | materials provided with the distribution. 21 | 22 | * Neither the name of the assimp team, nor the names of its 23 | contributors may be used to endorse or promote products 24 | derived from this software without specific prior 25 | written permission of the assimp team. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | ---------------------------------------------------------------------- 40 | */ 41 | 42 | /** @file ColladaMetaData.h 43 | * Declares common metadata constants used by Collada files 44 | */ 45 | #pragma once 46 | #ifndef AI_COLLADAMETADATA_H_INC 47 | #define AI_COLLADAMETADATA_H_INC 48 | 49 | #ifdef __GNUC__ 50 | #pragma GCC system_header 51 | #endif 52 | 53 | #define AI_METADATA_COLLADA_ID "Collada_id" 54 | #define AI_METADATA_COLLADA_SID "Collada_sid" 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /src/assimp/include/assimp/Compiler/poppack1.h: -------------------------------------------------------------------------------- 1 | 2 | // =============================================================================== 3 | // May be included multiple times - resets structure packing to the defaults 4 | // for all supported compilers. Reverts the changes made by #include 5 | // 6 | // Currently this works on the following compilers: 7 | // MSVC 7,8,9 8 | // GCC 9 | // BORLAND (complains about 'pack state changed but not reverted', but works) 10 | // =============================================================================== 11 | 12 | #ifndef AI_PUSHPACK_IS_DEFINED 13 | # error pushpack1.h must be included after poppack1.h 14 | #endif 15 | 16 | // reset packing to the original value 17 | #if (defined(_MSC_VER) && !defined(__clang__)) || defined(__BORLANDC__) || defined (__BCPLUSPLUS__) 18 | # pragma pack( pop ) 19 | #endif 20 | #undef PACK_STRUCT 21 | 22 | #undef AI_PUSHPACK_IS_DEFINED 23 | -------------------------------------------------------------------------------- /src/assimp/include/assimp/Compiler/pushpack1.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | // =============================================================================== 4 | // May be included multiple times - sets structure packing to 1 5 | // for all supported compilers. #include reverts the changes. 6 | // 7 | // Currently this works on the following compilers: 8 | // MSVC 7,8,9 9 | // GCC 10 | // BORLAND (complains about 'pack state changed but not reverted', but works) 11 | // Clang 12 | // 13 | // 14 | // USAGE: 15 | // 16 | // struct StructToBePacked { 17 | // } PACK_STRUCT; 18 | // 19 | // =============================================================================== 20 | 21 | #ifdef AI_PUSHPACK_IS_DEFINED 22 | # error poppack1.h must be included after pushpack1.h 23 | #endif 24 | 25 | #if (defined(_MSC_VER) && !defined(__clang__)) || defined(__BORLANDC__) || defined (__BCPLUSPLUS__) 26 | # pragma pack(push,1) 27 | # define PACK_STRUCT 28 | #elif defined( __GNUC__ ) || defined(__clang__) 29 | # if !defined(HOST_MINGW) 30 | # define PACK_STRUCT __attribute__((__packed__)) 31 | # else 32 | # define PACK_STRUCT __attribute__((gcc_struct, __packed__)) 33 | # endif 34 | #else 35 | # error Compiler not supported 36 | #endif 37 | 38 | #if defined(_MSC_VER) 39 | // C4103: Packing was changed after the inclusion of the header, probably missing #pragma pop 40 | # pragma warning (disable : 4103) 41 | #endif 42 | 43 | #define AI_PUSHPACK_IS_DEFINED 44 | -------------------------------------------------------------------------------- /src/assimp/include/assimp/aabb.h: -------------------------------------------------------------------------------- 1 | /* 2 | --------------------------------------------------------------------------- 3 | Open Asset Import Library (assimp) 4 | --------------------------------------------------------------------------- 5 | 6 | Copyright (c) 2006-2024, assimp team 7 | 8 | All rights reserved. 9 | 10 | Redistribution and use of this software in source and binary forms, 11 | with or without modification, are permitted provided that the following 12 | conditions are met: 13 | 14 | * Redistributions of source code must retain the above 15 | copyright notice, this list of conditions and the 16 | following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above 19 | copyright notice, this list of conditions and the 20 | following disclaimer in the documentation and/or other 21 | materials provided with the distribution. 22 | 23 | * Neither the name of the assimp team, nor the names of its 24 | contributors may be used to endorse or promote products 25 | derived from this software without specific prior 26 | written permission of the assimp team. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 31 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 32 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 33 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 34 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 35 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 36 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 | --------------------------------------------------------------------------- 40 | */ 41 | 42 | #pragma once 43 | #ifndef AI_AABB_H_INC 44 | #define AI_AABB_H_INC 45 | 46 | #ifdef __GNUC__ 47 | #pragma GCC system_header 48 | #endif 49 | 50 | #include 51 | 52 | // --------------------------------------------------------------------------- 53 | /** 54 | * An axis-aligned bounding box. 55 | */ 56 | struct aiAABB { 57 | C_STRUCT aiVector3D mMin; 58 | C_STRUCT aiVector3D mMax; 59 | 60 | #ifdef __cplusplus 61 | /// @brief The default class constructor. 62 | aiAABB() = default; 63 | 64 | /// @brief The class constructor with the minimum and maximum. 65 | /// @param min The minimum dimension. 66 | /// @param max The maximum dimension. 67 | aiAABB(const aiVector3D &min, const aiVector3D &max) : mMin(min), mMax(max) {} 68 | 69 | /// @brief The class destructor. 70 | ~aiAABB() = default; 71 | 72 | #endif // __cplusplus 73 | }; 74 | 75 | #endif // AI_AABB_H_INC 76 | -------------------------------------------------------------------------------- /src/assimp/include/assimp/module.modulemap: -------------------------------------------------------------------------------- 1 | // Export headers for Swift (iOS) 2 | module libassimp { 3 | header "ColladaMetaData.h" 4 | header "GltfMaterial.h" 5 | header "ObjMaterial.h" 6 | header "anim.h" 7 | header "camera.h" 8 | header "cexport.h" 9 | header "cfileio.h" 10 | header "cimport.h" 11 | header "color4.h" 12 | header "commonMetaData.h" 13 | header "config.h" 14 | header "defs.h" 15 | header "importerdesc.h" 16 | header "light.h" 17 | header "material.h" 18 | header "matrix3x3.h" 19 | header "matrix4x4.h" 20 | header "mesh.h" 21 | header "metadata.h" 22 | header "pbrmaterial.h" 23 | header "postprocess.h" 24 | header "quaternion.h" 25 | header "revision.h" 26 | header "scene.h" 27 | header "texture.h" 28 | header "types.h" 29 | header "vector2.h" 30 | header "vector3.h" 31 | header "version.h" 32 | export * 33 | } 34 | -------------------------------------------------------------------------------- /src/assimp/include/assimp/revision.h.in: -------------------------------------------------------------------------------- 1 | #ifndef ASSIMP_REVISION_H_INC 2 | #define ASSIMP_REVISION_H_INC 3 | 4 | #define GitVersion 0x@GIT_COMMIT_HASH@ 5 | #define GitBranch "@GIT_BRANCH@" 6 | 7 | #define VER_MAJOR @ASSIMP_VERSION_MAJOR@ 8 | #define VER_MINOR @ASSIMP_VERSION_MINOR@ 9 | #define VER_PATCH @ASSIMP_VERSION_PATCH@ 10 | #define VER_BUILD @ASSIMP_PACKAGE_VERSION@ 11 | 12 | #define STR_HELP(x) #x 13 | #define STR(x) STR_HELP(x) 14 | 15 | #define VER_FILEVERSION VER_MAJOR,VER_MINOR,VER_PATCH,VER_BUILD 16 | #if (GitVersion == 0) 17 | #define VER_FILEVERSION_STR STR(VER_MAJOR) "." STR(VER_MINOR) "." STR(VER_PATCH) "." STR(VER_BUILD) 18 | #else 19 | #define VER_FILEVERSION_STR STR(VER_MAJOR) "." STR(VER_MINOR) "." STR(VER_PATCH) "." STR(VER_BUILD) " (Commit @GIT_COMMIT_HASH@)" 20 | #endif 21 | #define VER_COPYRIGHT_STR "\xA9 2006-2023" 22 | 23 | #ifdef NDEBUG 24 | #define VER_ORIGINAL_FILENAME_STR "@CMAKE_SHARED_LIBRARY_PREFIX@assimp@LIBRARY_SUFFIX@.dll" 25 | #else 26 | #define VER_ORIGINAL_FILENAME_STR "@CMAKE_SHARED_LIBRARY_PREFIX@assimp@LIBRARY_SUFFIX@@CMAKE_DEBUG_POSTFIX@.dll" 27 | #endif // NDEBUG 28 | 29 | #endif // ASSIMP_REVISION_H_INC 30 | -------------------------------------------------------------------------------- /src/assimp/revision.h.in: -------------------------------------------------------------------------------- 1 | #ifndef ASSIMP_REVISION_H_INC 2 | #define ASSIMP_REVISION_H_INC 3 | 4 | #define GitVersion 0x@GIT_COMMIT_HASH@ 5 | #define GitBranch "@GIT_BRANCH@" 6 | 7 | #define VER_MAJOR @ASSIMP_VERSION_MAJOR@ 8 | #define VER_MINOR @ASSIMP_VERSION_MINOR@ 9 | #define VER_PATCH @ASSIMP_VERSION_PATCH@ 10 | #define VER_BUILD @ASSIMP_PACKAGE_VERSION@ 11 | 12 | #define STR_HELP(x) #x 13 | #define STR(x) STR_HELP(x) 14 | 15 | #define VER_FILEVERSION VER_MAJOR,VER_MINOR,VER_PATCH,VER_BUILD 16 | #if (GitVersion == 0) 17 | #define VER_FILEVERSION_STR STR(VER_MAJOR) "." STR(VER_MINOR) "." STR(VER_PATCH) "." STR(VER_BUILD) 18 | #else 19 | #define VER_FILEVERSION_STR STR(VER_MAJOR) "." STR(VER_MINOR) "." STR(VER_PATCH) "." STR(VER_BUILD) " (Commit @GIT_COMMIT_HASH@)" 20 | #endif 21 | #define VER_COPYRIGHT_STR "\xA9 2006-2023" 22 | 23 | #ifdef NDEBUG 24 | #define VER_ORIGINAL_FILENAME_STR "@CMAKE_SHARED_LIBRARY_PREFIX@assimp@LIBRARY_SUFFIX@.dll" 25 | #else 26 | #define VER_ORIGINAL_FILENAME_STR "@CMAKE_SHARED_LIBRARY_PREFIX@assimp@LIBRARY_SUFFIX@@CMAKE_DEBUG_POSTFIX@.dll" 27 | #endif // NDEBUG 28 | 29 | #endif // ASSIMP_REVISION_H_INC 30 | -------------------------------------------------------------------------------- /src/assimp_py/__init__.py: -------------------------------------------------------------------------------- 1 | from .assimp_py import * -------------------------------------------------------------------------------- /src/assimp_py/assimp_py.pyi: -------------------------------------------------------------------------------- 1 | Process_CalcTangentSpace: int 2 | Process_Debone: int 3 | Process_FindDegenerates: int 4 | Process_FindInstances: int 5 | Process_FindInvalidData: int 6 | Process_FixInfacingNormals: int 7 | Process_FlipUVs: int 8 | Process_FlipWindingOrder: int 9 | Process_GenNormals: int 10 | Process_GenSmoothNormals: int 11 | Process_GenUVCoords: int 12 | Process_GlobalScale: int 13 | Process_ImproveCacheLocality: int 14 | Process_JoinIdenticalVertices: int 15 | Process_LimitBoneWeights: int 16 | Process_MakeLeftHanded: int 17 | Process_OptimizeGraph: int 18 | Process_OptimizeMeshes: int 19 | Process_PreTransformVertices: int 20 | Process_RemoveComponent: int 21 | Process_RemoveRedundantMaterials: int 22 | Process_SortByPType: int 23 | Process_SplitByBoneCount: int 24 | Process_SplitLargeMeshes: int 25 | Process_TransformUVCoords: int 26 | Process_Triangulate: int 27 | Process_ValidateDataStructure: int 28 | TextureType_AMBIENT: int 29 | TextureType_DIFFUSE: int 30 | TextureType_DISPLACEMENT: int 31 | TextureType_EMISSIVE: int 32 | TextureType_HEIGHT: int 33 | TextureType_LIGHTMAP: int 34 | TextureType_NONE: int 35 | TextureType_NORMALS: int 36 | TextureType_OPACITY: int 37 | TextureType_REFLECTION: int 38 | TextureType_SHININESS: int 39 | TextureType_SPECULAR: int 40 | TextureType_UNKNOWN: int 41 | 42 | class Mesh: 43 | bitangents: memoryview 44 | colors: list[memoryview] 45 | indices: memoryview 46 | material_index: int 47 | name: str 48 | normals: memoryview 49 | num_faces: int 50 | num_indices: int 51 | num_uv_components: int 52 | num_vertices: int 53 | tangents: memoryview 54 | texcoords: list[memoryview] 55 | vertices: memoryview 56 | def __init__(self, *args, **kwargs) -> None: ... 57 | 58 | class Node: 59 | children: list['Node'] 60 | mesh_indices: list[int] 61 | name: str 62 | num_children: int 63 | num_meshes: int 64 | parent_name: str 65 | transformation: tuple[tuple] 66 | def __init__(self, *args, **kwargs) -> None: ... 67 | 68 | class Scene: 69 | materials: list[dict] 70 | meshes: list[Mesh] 71 | num_materials: int 72 | num_meshes: int 73 | root_node: Node 74 | def __init__(self, *args, **kwargs) -> None: ... 75 | 76 | def import_file(filename: str, flags: int) -> Scene: ... 77 | -------------------------------------------------------------------------------- /tests/models/cyborg/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Slightly adapted version (by Joey de Vries) of Cyborg model. 2 | 3 | From: 3dregenerator 4 | Downloaded at: http://tf3dm.com/3d-model/cyborg-78.html 5 | 6 | For Personal Use Only. -------------------------------------------------------------------------------- /tests/models/cyborg/cyborg.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/tests/models/cyborg/cyborg.blend -------------------------------------------------------------------------------- /tests/models/cyborg/cyborg.blend1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/tests/models/cyborg/cyborg.blend1 -------------------------------------------------------------------------------- /tests/models/cyborg/cyborg.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL File: 'cyborg.blend' 2 | # Material Count: 1 3 | 4 | newmtl Cyborg 5 | Ns 92.156863 6 | Ka 0.000000 0.000000 0.000000 7 | Kd 0.512000 0.512000 0.512000 8 | Ks 0.000000 0.000000 0.000000 9 | Ni 1.000000 10 | d 1.000000 11 | illum 2 12 | map_Kd cyborg_diffuse.png 13 | map_Bump cyborg_normal.png 14 | map_Ks cyborg_specular.png 15 | -------------------------------------------------------------------------------- /tests/models/cyborg/cyborg_diffuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/tests/models/cyborg/cyborg_diffuse.png -------------------------------------------------------------------------------- /tests/models/cyborg/cyborg_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/tests/models/cyborg/cyborg_normal.png -------------------------------------------------------------------------------- /tests/models/cyborg/cyborg_specular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/tests/models/cyborg/cyborg_specular.png -------------------------------------------------------------------------------- /tests/models/planet/planet.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL 2 | # Material Count: 1 3 | 4 | newmtl Material.001 5 | Ns 96.078431 6 | Ka 0.000000 0.000000 0.000000 7 | Kd 0.640000 0.640000 0.640000 8 | Ks 0.087302 0.087302 0.087302 9 | Ni 1.000000 10 | d 1.000000 11 | illum 2 12 | map_Kd planet_Quom1200.png 13 | map_Bump planet_Quom1200.png 14 | -------------------------------------------------------------------------------- /tests/models/planet/planet_Quom1200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ranjian0/assimp_py/25f7a593a45dd997077f6abd8347fe8f1685c523/tests/models/planet/planet_Quom1200.png -------------------------------------------------------------------------------- /tests/test_models.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | from pathlib import Path 3 | 4 | try: 5 | import assimp_py 6 | except ImportError as e: 7 | pytest.fail(f"Failed to import the compiled assimp_py module: {e}", pytrace=False) 8 | 9 | 10 | @pytest.fixture(scope="module") 11 | def cyborg(): 12 | model = Path(__file__).parent.joinpath("models/cyborg/cyborg.obj") 13 | post_flags = ( 14 | assimp_py.Process_GenNormals | assimp_py.Process_CalcTangentSpace 15 | ) 16 | scn = assimp_py.import_file(str(model.absolute()), post_flags) 17 | yield scn 18 | 19 | 20 | @pytest.fixture(scope="module") 21 | def planet(): 22 | model = Path(__file__).parent.joinpath("models/planet/planet.obj") 23 | post_flags = ( 24 | assimp_py.Process_GenNormals | assimp_py.Process_CalcTangentSpace 25 | ) 26 | scn = assimp_py.import_file(str(model.absolute()), post_flags) 27 | yield scn 28 | 29 | class TestCyborg: 30 | def test_cyborg_nodes(self, cyborg): 31 | assert isinstance(cyborg, assimp_py.Scene) 32 | 33 | root_node = cyborg.root_node 34 | assert isinstance(root_node, assimp_py.Node) 35 | 36 | assert len(root_node.children) == 1 37 | assert root_node.num_meshes == 0 38 | assert root_node.children[0].num_meshes == 1 39 | 40 | def test_cyborg_mesh(self, cyborg): 41 | assert cyborg.num_meshes == 1 42 | 43 | me = cyborg.meshes[0] 44 | assert isinstance(me, assimp_py.Mesh) 45 | assert me.num_vertices == 16647 46 | 47 | def test_cyborg_material(self, cyborg): 48 | assert cyborg.num_materials == 2 # Assimp creates a default material 49 | 50 | mat = cyborg.materials[1] 51 | assert isinstance(mat, dict) 52 | assert "NAME" in mat 53 | assert "TEXTURES" in mat 54 | assert "COLOR_DIFFUSE" in mat 55 | assert len(mat['TEXTURES'].values()) == 3 56 | 57 | 58 | class TestPlanet: 59 | def test_cyborg_nodes(self, planet): 60 | assert isinstance(planet, assimp_py.Scene) 61 | 62 | root_node = planet.root_node 63 | assert isinstance(root_node, assimp_py.Node) 64 | 65 | assert len(root_node.children) == 1 66 | assert root_node.num_meshes == 0 67 | assert root_node.children[0].num_meshes == 1 68 | 69 | def test_planet_mesh(self, planet): 70 | assert planet.num_meshes == 1 71 | 72 | me = planet.meshes[0] 73 | assert isinstance(me, assimp_py.Mesh) 74 | assert me.num_vertices == 24576 75 | 76 | def test_planet_material(self, planet): 77 | assert planet.num_materials == 2 # Assimp creates a default material 78 | 79 | mat = planet.materials[1] 80 | assert isinstance(mat, dict) 81 | assert "NAME" in mat 82 | assert "TEXTURES" in mat 83 | assert "COLOR_DIFFUSE" in mat 84 | assert len(mat['TEXTURES'].values()) == 2 --------------------------------------------------------------------------------