├── README.md ├── qgl_tutorial01_first_window ├── qgl_tutorial01.cpp ├── qgl_tutorial01.h └── qgl_tutorial01.pro ├── qgl_tutorial02_red_triangle ├── GLShaders.qrc ├── SimpleFragmentShader.frag ├── SimpleVertexShader.vert ├── qgl_tutorial02.cpp ├── qgl_tutorial02.h ├── qgl_tutorial02.pro └── qgl_tutorial02.pro.user ├── qgl_tutorial03_matrices ├── GLShaders.qrc ├── SimpleTransform.vert ├── SingleColor.frag ├── qgl_tutorial03.cpp ├── qgl_tutorial03.h ├── qgl_tutorial03.pro ├── qgl_tutorial03.pro.user └── qgl_tutorial03.pro.user.2.7pre1 ├── qgl_tutorial03a_matrices ├── CMakeLists.txt ├── GLShaders.qrc ├── SimpleTransform.vert ├── SingleColor.frag ├── qgl_tutorial03a.cpp ├── qgl_tutorial03a.h ├── qgl_tutorial03a.pro └── qgl_tutorial03a.pro.user ├── qgl_tutorial04_colored_cube ├── ColorFragmentShader.frag ├── GLShaders.qrc ├── TransformVertexShader.vert ├── qgl_tutorial04.cpp ├── qgl_tutorial04.h ├── qgl_tutorial04.pro └── qgl_tutorial04.pro.user ├── qgl_tutorial05_textured_cube ├── ColorFragmentShader.fragmentshader ├── GLShaders.qrc ├── TextureFragmentShader.frag ├── TransformVertexShader.vert ├── mainwindow.cpp ├── mainwindow.h ├── mainwindow.ui ├── qgl_tutorial05.cpp ├── qgl_tutorial05.h ├── qgl_tutorial05.pro └── uvtemplate.bmp ├── qgl_tutorial06_mouse ├── GLShaders.qrc ├── TextureFragmentShader.frag ├── TransformVertexShader.vert ├── qgl_tutorial06.cpp ├── qgl_tutorial06.h ├── qgl_tutorial06.pro ├── scene.cpp ├── scene.h ├── screenshots │ ├── inside_the_cube.png │ ├── large_fov.png │ ├── moveanim.gif │ └── z_near.png ├── uvtemplate.DDS └── uvtemplate.bmp └── qgl_tutorial07_model_loading ├── CMakeLists.txt ├── FragShader.fsh ├── README ├── VertShader.vsh ├── assimp-3.1.1 ├── .gitignore ├── .travis.yml ├── AssimpBuildTreeSettings.cmake.in ├── AssimpConfig.cmake.in ├── AssimpConfigVersion.cmake.in ├── CHANGES ├── CMakeLists.txt ├── CREDITS ├── CodeConventions.txt ├── INSTALL ├── LICENSE ├── README ├── Readme.md ├── assimp-config-version.cmake.in ├── assimp-config.cmake.in ├── assimp.pc.in ├── cmake-modules │ ├── DebSourcePPA.cmake │ ├── FindDirectX.cmake │ ├── FindPkgMacros.cmake │ ├── FindZLIB.cmake │ ├── Findassimp.cmake │ ├── PrecompiledHeader.cmake │ └── cmake_uninstall.cmake.in ├── code │ ├── 3DSConverter.cpp │ ├── 3DSHelper.h │ ├── 3DSLoader.cpp │ ├── 3DSLoader.h │ ├── ACLoader.cpp │ ├── ACLoader.h │ ├── ASELoader.cpp │ ├── ASELoader.h │ ├── ASEParser.cpp │ ├── ASEParser.h │ ├── Assimp.cpp │ ├── AssimpCExport.cpp │ ├── AssimpPCH.cpp │ ├── AssimpPCH.h │ ├── B3DImporter.cpp │ ├── B3DImporter.h │ ├── BVHLoader.cpp │ ├── BVHLoader.h │ ├── BaseImporter.cpp │ ├── BaseImporter.h │ ├── BaseProcess.cpp │ ├── BaseProcess.h │ ├── Bitmap.cpp │ ├── Bitmap.h │ ├── BlenderBMesh.cpp │ ├── BlenderBMesh.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 │ ├── BlobIOSystem.h │ ├── BoostWorkaround │ │ └── boost │ │ │ ├── LICENSE_1_0.txt │ │ │ ├── foreach.hpp │ │ │ ├── format.hpp │ │ │ ├── lexical_cast.hpp │ │ │ ├── make_shared.hpp │ │ │ ├── math │ │ │ └── common_factor_rt.hpp │ │ │ ├── noncopyable.hpp │ │ │ ├── pointer_cast.hpp │ │ │ ├── scoped_array.hpp │ │ │ ├── scoped_ptr.hpp │ │ │ ├── shared_array.hpp │ │ │ ├── shared_ptr.hpp │ │ │ ├── static_assert.hpp │ │ │ ├── timer.hpp │ │ │ └── tuple │ │ │ └── tuple.hpp │ ├── ByteSwap.h │ ├── CInterfaceIOWrapper.h │ ├── CMakeLists.txt │ ├── COBLoader.cpp │ ├── COBLoader.h │ ├── COBScene.h │ ├── CSMLoader.cpp │ ├── CSMLoader.h │ ├── CalcTangentsProcess.cpp │ ├── CalcTangentsProcess.h │ ├── ColladaExporter.cpp │ ├── ColladaExporter.h │ ├── ColladaHelper.h │ ├── ColladaLoader.cpp │ ├── ColladaLoader.h │ ├── ColladaParser.cpp │ ├── ColladaParser.h │ ├── ComputeUVMappingProcess.cpp │ ├── ComputeUVMappingProcess.h │ ├── ConvertToLHProcess.cpp │ ├── ConvertToLHProcess.h │ ├── DXFHelper.h │ ├── DXFLoader.cpp │ ├── DXFLoader.h │ ├── DeboneProcess.cpp │ ├── DeboneProcess.h │ ├── DefaultIOStream.cpp │ ├── DefaultIOStream.h │ ├── DefaultIOSystem.cpp │ ├── DefaultIOSystem.h │ ├── DefaultLogger.cpp │ ├── DefaultProgressHandler.h │ ├── Exceptional.h │ ├── Exporter.cpp │ ├── FBXAnimation.cpp │ ├── FBXBinaryTokenizer.cpp │ ├── FBXCompileConfig.h │ ├── FBXConverter.cpp │ ├── FBXConverter.h │ ├── FBXDeformer.cpp │ ├── FBXDocument.cpp │ ├── FBXDocument.h │ ├── FBXDocumentUtil.cpp │ ├── FBXDocumentUtil.h │ ├── FBXImportSettings.h │ ├── FBXImporter.cpp │ ├── FBXImporter.h │ ├── FBXMaterial.cpp │ ├── FBXMeshGeometry.cpp │ ├── FBXModel.cpp │ ├── FBXNodeAttribute.cpp │ ├── FBXParser.cpp │ ├── FBXParser.h │ ├── FBXProperties.cpp │ ├── FBXProperties.h │ ├── FBXTokenizer.cpp │ ├── FBXTokenizer.h │ ├── FBXUtil.cpp │ ├── FBXUtil.h │ ├── FileLogStream.h │ ├── FileSystemFilter.h │ ├── FindDegenerates.cpp │ ├── FindDegenerates.h │ ├── FindInstancesProcess.cpp │ ├── FindInstancesProcess.h │ ├── FindInvalidDataProcess.cpp │ ├── FindInvalidDataProcess.h │ ├── FixNormalsStep.cpp │ ├── FixNormalsStep.h │ ├── GenFaceNormalsProcess.cpp │ ├── GenFaceNormalsProcess.h │ ├── GenVertexNormalsProcess.cpp │ ├── GenVertexNormalsProcess.h │ ├── GenericProperty.h │ ├── HMPFileData.h │ ├── HMPLoader.cpp │ ├── HMPLoader.h │ ├── HalfLifeFileData.h │ ├── Hash.h │ ├── IFCBoolean.cpp │ ├── IFCCurve.cpp │ ├── IFCGeometry.cpp │ ├── IFCLoader.cpp │ ├── IFCLoader.h │ ├── IFCMaterial.cpp │ ├── IFCOpenings.cpp │ ├── IFCProfile.cpp │ ├── IFCReaderGen.cpp │ ├── IFCReaderGen.h │ ├── IFCUtil.cpp │ ├── IFCUtil.h │ ├── IFF.h │ ├── IRRLoader.cpp │ ├── IRRLoader.h │ ├── IRRMeshLoader.cpp │ ├── IRRMeshLoader.h │ ├── IRRShared.cpp │ ├── IRRShared.h │ ├── Importer.cpp │ ├── Importer.h │ ├── ImporterRegistry.cpp │ ├── ImproveCacheLocality.cpp │ ├── ImproveCacheLocality.h │ ├── JoinVerticesProcess.cpp │ ├── JoinVerticesProcess.h │ ├── LWOAnimation.cpp │ ├── LWOAnimation.h │ ├── LWOBLoader.cpp │ ├── LWOFileData.h │ ├── LWOLoader.cpp │ ├── LWOLoader.h │ ├── LWOMaterial.cpp │ ├── LWSLoader.cpp │ ├── LWSLoader.h │ ├── LimitBoneWeightsProcess.cpp │ ├── LimitBoneWeightsProcess.h │ ├── LineSplitter.h │ ├── LogAux.h │ ├── MD2FileData.h │ ├── MD2Loader.cpp │ ├── MD2Loader.h │ ├── MD2NormalTable.h │ ├── MD3FileData.h │ ├── MD3Loader.cpp │ ├── MD3Loader.h │ ├── MD4FileData.h │ ├── MD5Loader.cpp │ ├── MD5Loader.h │ ├── MD5Parser.cpp │ ├── MD5Parser.h │ ├── MDCFileData.h │ ├── MDCLoader.cpp │ ├── MDCLoader.h │ ├── MDCNormalTable.h │ ├── MDLDefaultColorMap.h │ ├── MDLFileData.h │ ├── MDLLoader.cpp │ ├── MDLLoader.h │ ├── MDLMaterialLoader.cpp │ ├── MS3DLoader.cpp │ ├── MS3DLoader.h │ ├── MakeVerboseFormat.cpp │ ├── MakeVerboseFormat.h │ ├── MaterialSystem.cpp │ ├── MaterialSystem.h │ ├── MemoryIOWrapper.h │ ├── NDOLoader.cpp │ ├── NDOLoader.h │ ├── NFFLoader.cpp │ ├── NFFLoader.h │ ├── OFFLoader.cpp │ ├── OFFLoader.h │ ├── ObjExporter.cpp │ ├── ObjExporter.h │ ├── ObjFileData.h │ ├── ObjFileImporter.cpp │ ├── ObjFileImporter.h │ ├── ObjFileMtlImporter.cpp │ ├── ObjFileMtlImporter.h │ ├── ObjFileParser.cpp │ ├── ObjFileParser.h │ ├── ObjTools.h │ ├── OgreBinarySerializer.cpp │ ├── OgreBinarySerializer.h │ ├── OgreImporter.cpp │ ├── OgreImporter.h │ ├── OgreMaterial.cpp │ ├── OgreParsingUtils.h │ ├── OgreStructs.cpp │ ├── OgreStructs.h │ ├── OgreXmlSerializer.cpp │ ├── OgreXmlSerializer.h │ ├── OptimizeGraph.cpp │ ├── OptimizeGraph.h │ ├── OptimizeMeshes.cpp │ ├── OptimizeMeshes.h │ ├── ParsingUtils.h │ ├── PlyExporter.cpp │ ├── PlyExporter.h │ ├── PlyLoader.cpp │ ├── PlyLoader.h │ ├── PlyParser.cpp │ ├── PlyParser.h │ ├── PolyTools.h │ ├── PostStepRegistry.cpp │ ├── PretransformVertices.cpp │ ├── PretransformVertices.h │ ├── ProcessHelper.cpp │ ├── ProcessHelper.h │ ├── Profiler.h │ ├── Q3BSPFileData.h │ ├── Q3BSPFileImporter.cpp │ ├── Q3BSPFileImporter.h │ ├── Q3BSPFileParser.cpp │ ├── Q3BSPFileParser.h │ ├── Q3BSPZipArchive.cpp │ ├── Q3BSPZipArchive.h │ ├── Q3DLoader.cpp │ ├── Q3DLoader.h │ ├── RawLoader.cpp │ ├── RawLoader.h │ ├── RemoveComments.cpp │ ├── RemoveComments.h │ ├── RemoveRedundantMaterials.cpp │ ├── RemoveRedundantMaterials.h │ ├── RemoveVCProcess.cpp │ ├── RemoveVCProcess.h │ ├── SGSpatialSort.cpp │ ├── SGSpatialSort.h │ ├── SMDLoader.cpp │ ├── SMDLoader.h │ ├── STEPFile.h │ ├── STEPFileEncoding.cpp │ ├── STEPFileEncoding.h │ ├── STEPFileReader.cpp │ ├── STEPFileReader.h │ ├── STLExporter.cpp │ ├── STLExporter.h │ ├── STLLoader.cpp │ ├── STLLoader.h │ ├── SceneCombiner.cpp │ ├── SceneCombiner.h │ ├── ScenePreprocessor.cpp │ ├── ScenePreprocessor.h │ ├── ScenePrivate.h │ ├── SkeletonMeshBuilder.cpp │ ├── SkeletonMeshBuilder.h │ ├── SmoothingGroups.h │ ├── SmoothingGroups.inl │ ├── SortByPTypeProcess.cpp │ ├── SortByPTypeProcess.h │ ├── SpatialSort.cpp │ ├── SpatialSort.h │ ├── SplitByBoneCountProcess.cpp │ ├── SplitByBoneCountProcess.h │ ├── SplitLargeMeshes.cpp │ ├── SplitLargeMeshes.h │ ├── StandardShapes.cpp │ ├── StandardShapes.h │ ├── StdOStreamLogStream.h │ ├── StreamReader.h │ ├── StringComparison.h │ ├── Subdivision.cpp │ ├── Subdivision.h │ ├── TargetAnimation.cpp │ ├── TargetAnimation.h │ ├── TerragenLoader.cpp │ ├── TerragenLoader.h │ ├── TextureTransform.cpp │ ├── TextureTransform.h │ ├── TinyFormatter.h │ ├── TriangulateProcess.cpp │ ├── TriangulateProcess.h │ ├── UnrealLoader.cpp │ ├── UnrealLoader.h │ ├── ValidateDataStructure.cpp │ ├── ValidateDataStructure.h │ ├── Vertex.h │ ├── VertexTriangleAdjacency.cpp │ ├── VertexTriangleAdjacency.h │ ├── Win32DebugLogStream.h │ ├── XFileHelper.h │ ├── XFileImporter.cpp │ ├── XFileImporter.h │ ├── XFileParser.cpp │ ├── XFileParser.h │ ├── XGLLoader.cpp │ ├── XGLLoader.h │ ├── assbin_chunks.h │ ├── fast_atof.h │ ├── irrXMLWrapper.h │ ├── makefile.mingw │ ├── qnan.h │ └── res │ │ ├── assimp.rc │ │ └── resource.h ├── doc │ ├── AssimpCmdDoc_Html │ │ ├── AssimpCmdDoc.chm │ │ └── dragonsplash.png │ ├── AssimpDoc_Html │ │ ├── AnimationOverview.png │ │ ├── AnimationOverview.svg │ │ ├── AssimpDoc.chm │ │ └── dragonsplash.png │ ├── Doxyfile │ ├── Doxyfile_Cmd │ ├── Preamble.txt │ ├── datastructure.xml │ ├── dox.h │ └── dox_cmd.h ├── include │ └── assimp │ │ ├── Compiler │ │ ├── poppack1.h │ │ ├── pstdint.h │ │ └── pushpack1.h │ │ ├── DefaultLogger.hpp │ │ ├── Exporter.hpp │ │ ├── IOStream.hpp │ │ ├── IOSystem.hpp │ │ ├── Importer.hpp │ │ ├── LogStream.hpp │ │ ├── Logger.hpp │ │ ├── NullLogger.hpp │ │ ├── ProgressHandler.hpp │ │ ├── ai_assert.h │ │ ├── anim.h │ │ ├── camera.h │ │ ├── cexport.h │ │ ├── cfileio.h │ │ ├── cimport.h │ │ ├── color4.h │ │ ├── color4.inl │ │ ├── config.h │ │ ├── defs.h │ │ ├── importerdesc.h │ │ ├── light.h │ │ ├── material.h │ │ ├── material.inl │ │ ├── matrix3x3.h │ │ ├── matrix3x3.inl │ │ ├── matrix4x4.h │ │ ├── matrix4x4.inl │ │ ├── mesh.h │ │ ├── metadata.h │ │ ├── postprocess.h │ │ ├── quaternion.h │ │ ├── quaternion.inl │ │ ├── scene.h │ │ ├── texture.h │ │ ├── types.h │ │ ├── vector2.h │ │ ├── vector2.inl │ │ ├── vector3.h │ │ ├── vector3.inl │ │ └── version.h ├── packaging │ ├── windows-innosetup │ │ ├── LICENSE.rtf │ │ ├── WEB │ │ ├── howto-build-setup.txt │ │ ├── readme_installer.txt │ │ ├── readme_installer_vieweronly.txt │ │ ├── script.iss │ │ └── script_vieweronly.iss │ └── windows-mkzip │ │ ├── bin_readme.txt │ │ ├── mkfinal.bat │ │ └── mkrev.bat ├── port │ ├── Assimp.NET │ │ ├── Assimp.NET │ │ │ ├── AssimpSwigPort.i │ │ │ └── AssimpSwigPort_wrap.cxx │ │ ├── Assimp.NET_CS │ │ │ ├── Assimp.NET_CS.csproj │ │ │ ├── Assimp.cs │ │ │ ├── AssimpPINVOKE.cs │ │ │ ├── FloatVector.cs │ │ │ ├── Importer.cs │ │ │ ├── ProgressHandler.cs │ │ │ ├── SWIGTYPE_p_Assimp__BaseImporter.cs │ │ │ ├── SWIGTYPE_p_Assimp__ImporterPimpl.cs │ │ │ ├── SWIGTYPE_p_aiImporterDesc.cs │ │ │ ├── SWIGTYPE_p_float.cs │ │ │ ├── SWIGTYPE_p_std__string.cs │ │ │ ├── SWIGTYPE_p_void.cs │ │ │ ├── UintVector.cs │ │ │ ├── aiAnimBehaviour.cs │ │ │ ├── aiAnimMesh.cs │ │ │ ├── aiAnimMeshVector.cs │ │ │ ├── aiAnimation.cs │ │ │ ├── aiAnimationVector.cs │ │ │ ├── aiBlendMode.cs │ │ │ ├── aiBone.cs │ │ │ ├── aiBoneVector.cs │ │ │ ├── aiCamera.cs │ │ │ ├── aiCameraVector.cs │ │ │ ├── aiColor3D.cs │ │ │ ├── aiColor4D.cs │ │ │ ├── aiColor4DVector.cs │ │ │ ├── aiColor4DVectorVector.cs │ │ │ ├── aiComponent.cs │ │ │ ├── aiDefaultLogStream.cs │ │ │ ├── aiFace.cs │ │ │ ├── aiFaceVector.cs │ │ │ ├── aiFile.cs │ │ │ ├── aiFileIO.cs │ │ │ ├── aiLight.cs │ │ │ ├── aiLightSourceType.cs │ │ │ ├── aiLightVector.cs │ │ │ ├── aiMaterial.cs │ │ │ ├── aiMaterialProperty.cs │ │ │ ├── aiMaterialVector.cs │ │ │ ├── aiMatrix3x3.cs │ │ │ ├── aiMatrix4x4.cs │ │ │ ├── aiMemoryInfo.cs │ │ │ ├── aiMesh.cs │ │ │ ├── aiMeshAnim.cs │ │ │ ├── aiMeshAnimVector.cs │ │ │ ├── aiMeshKey.cs │ │ │ ├── aiMeshKeyVector.cs │ │ │ ├── aiMeshVector.cs │ │ │ ├── aiNode.cs │ │ │ ├── aiNodeAnim.cs │ │ │ ├── aiNodeAnimVector.cs │ │ │ ├── aiNodeVector.cs │ │ │ ├── aiOrigin.cs │ │ │ ├── aiPlane.cs │ │ │ ├── aiPostProcessSteps.cs │ │ │ ├── aiPrimitiveType.cs │ │ │ ├── aiPropertyTypeInfo.cs │ │ │ ├── aiQuatKey.cs │ │ │ ├── aiQuatKeyVector.cs │ │ │ ├── aiQuaternion.cs │ │ │ ├── aiRay.cs │ │ │ ├── aiReturn.cs │ │ │ ├── aiScene.cs │ │ │ ├── aiShadingMode.cs │ │ │ ├── aiString.cs │ │ │ ├── aiTexel.cs │ │ │ ├── aiTexture.cs │ │ │ ├── aiTextureFlags.cs │ │ │ ├── aiTextureMapMode.cs │ │ │ ├── aiTextureMapping.cs │ │ │ ├── aiTextureOp.cs │ │ │ ├── aiTextureType.cs │ │ │ ├── aiTextureVector.cs │ │ │ ├── aiUVTransform.cs │ │ │ ├── aiVector2D.cs │ │ │ ├── aiVector3D.cs │ │ │ ├── aiVector3DVector.cs │ │ │ ├── aiVector3DVectorVector.cs │ │ │ ├── aiVectorKey.cs │ │ │ ├── aiVectorKeyVector.cs │ │ │ ├── aiVertexWeight.cs │ │ │ ├── aiVertexWeightVector.cs │ │ │ └── app.config │ │ ├── Assimp.NET_DEMO │ │ │ ├── Assimp.NET_DEMO.csproj │ │ │ ├── Assimp.NET_DEMO.csproj.user │ │ │ ├── AssimpView.Designer.cs │ │ │ ├── AssimpView.cs │ │ │ ├── AssimpView.resx │ │ │ ├── Camera.cs │ │ │ ├── Display.cs │ │ │ ├── ExtensionMethods.cs │ │ │ ├── Input.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ │ ├── AssemblyInfo.cs │ │ │ │ ├── Resources.Designer.cs │ │ │ │ ├── Resources.resx │ │ │ │ ├── Settings.Designer.cs │ │ │ │ └── Settings.settings │ │ │ └── app.config │ │ ├── CSharpViewerScreenShot.PNG │ │ └── README.txt │ ├── AssimpDelphi │ │ ├── Readme.txt │ │ ├── aiColor4D.pas │ │ ├── aiMaterial.pas │ │ ├── aiMatrix3x3.pas │ │ ├── aiMatrix4x4.pas │ │ ├── aiMesh.pas │ │ ├── aiQuaternion.pas │ │ ├── aiScene.pas │ │ ├── aiTexture.pas │ │ ├── aiTypes.pas │ │ ├── aiVector2D.pas │ │ ├── aiVector3D.pas │ │ └── assimp.pas │ ├── PyAssimp │ │ ├── README.md │ │ ├── gen │ │ │ └── structsgen.py │ │ ├── pyassimp │ │ │ ├── __init__.py │ │ │ ├── core.py │ │ │ ├── errors.py │ │ │ ├── helper.py │ │ │ ├── postprocess.py │ │ │ └── structs.py │ │ ├── scripts │ │ │ ├── 3d_viewer.py │ │ │ ├── README.md │ │ │ ├── fixed_pipeline_3d_viewer.py │ │ │ ├── quicktest.py │ │ │ └── sample.py │ │ └── setup.py │ ├── dAssimp │ │ ├── README │ │ └── assimp │ │ │ ├── animation.d │ │ │ ├── api.d │ │ │ ├── assimp.d │ │ │ ├── camera.d │ │ │ ├── config.d │ │ │ ├── fileIO.d │ │ │ ├── light.d │ │ │ ├── loader.d │ │ │ ├── material.d │ │ │ ├── math.d │ │ │ ├── mesh.d │ │ │ ├── postprocess.d │ │ │ ├── scene.d │ │ │ ├── texture.d │ │ │ ├── types.d │ │ │ └── versionInfo.d │ ├── iOS │ │ ├── IPHONEOS_ARM64_TOOLCHAIN.cmake │ │ ├── IPHONEOS_ARMV6_TOOLCHAIN.cmake │ │ ├── IPHONEOS_ARMV7S_TOOLCHAIN.cmake │ │ ├── IPHONEOS_ARMV7_TOOLCHAIN.cmake │ │ ├── IPHONEOS_I386_TOOLCHAIN.cmake │ │ ├── IPHONEOS_X86_64_TOOLCHAIN.cmake │ │ ├── README.md │ │ └── build.sh │ ├── jassimp │ │ ├── README │ │ ├── build.xml │ │ ├── jassimp-native │ │ │ └── src │ │ │ │ ├── jassimp.cpp │ │ │ │ └── jassimp.h │ │ └── jassimp │ │ │ └── src │ │ │ └── jassimp │ │ │ ├── AiAnimBehavior.java │ │ │ ├── AiAnimation.java │ │ │ ├── AiBlendMode.java │ │ │ ├── AiBone.java │ │ │ ├── AiBoneWeight.java │ │ │ ├── AiBuiltInWrapperProvider.java │ │ │ ├── AiCamera.java │ │ │ ├── AiColor.java │ │ │ ├── AiConfig.java │ │ │ ├── AiConfigOptions.java │ │ │ ├── AiLight.java │ │ │ ├── AiLightType.java │ │ │ ├── AiMaterial.java │ │ │ ├── AiMatrix4f.java │ │ │ ├── AiMesh.java │ │ │ ├── AiMeshAnim.java │ │ │ ├── AiNode.java │ │ │ ├── AiNodeAnim.java │ │ │ ├── AiPostProcessSteps.java │ │ │ ├── AiPrimitiveType.java │ │ │ ├── AiQuaternion.java │ │ │ ├── AiScene.java │ │ │ ├── AiSceneFlag.java │ │ │ ├── AiShadingMode.java │ │ │ ├── AiTextureInfo.java │ │ │ ├── AiTextureMapMode.java │ │ │ ├── AiTextureMapping.java │ │ │ ├── AiTextureOp.java │ │ │ ├── AiTextureType.java │ │ │ ├── AiVector.java │ │ │ ├── AiWrapperProvider.java │ │ │ ├── JaiDebug.java │ │ │ ├── Jassimp.java │ │ │ ├── JassimpConfig.java │ │ │ └── package-info.java │ └── swig │ │ ├── DONOTUSEYET │ │ ├── assimp.i │ │ ├── d │ │ ├── build.sh │ │ └── generate.sh │ │ └── interface │ │ ├── DefaultLogger.i │ │ ├── IOStream.i │ │ ├── IOSystem.i │ │ ├── LogStream.i │ │ ├── Logger.i │ │ ├── NullLogger.i │ │ ├── aiAnim.i │ │ ├── aiAssert.i │ │ ├── aiCamera.i │ │ ├── aiColor4D.i │ │ ├── aiConfig.i │ │ ├── aiDefines.i │ │ ├── aiFileIO.i │ │ ├── aiLight.i │ │ ├── aiMaterial.i │ │ ├── aiMatrix3x3.i │ │ ├── aiMatrix4x4.i │ │ ├── aiMesh.i │ │ ├── aiPostProcess.i │ │ ├── aiQuaternion.i │ │ ├── aiScene.i │ │ ├── aiTexture.i │ │ ├── aiTypes.i │ │ ├── aiVector2D.i │ │ ├── aiVector3D.i │ │ ├── aiVersion.i │ │ └── assimp.i ├── revision.h.in ├── samples │ ├── DevIL │ │ ├── AUTHORS │ │ ├── COPYING │ │ ├── CREDITS │ │ ├── ChangeLog │ │ ├── DevIL Website.url │ │ ├── Libraries.txt │ │ ├── README │ │ ├── README.win │ │ └── include │ │ │ └── IL │ │ │ ├── config.h │ │ │ ├── config.h.win │ │ │ ├── devil_internal_exports.h │ │ │ ├── il.h │ │ │ ├── il_wrap.h │ │ │ ├── ilu.h │ │ │ ├── ilu_region.h │ │ │ ├── ilut.h │ │ │ └── ilut_config.h │ ├── README │ ├── SimpleAssimpViewX │ │ ├── English.lproj │ │ │ ├── Credits.rtf │ │ │ ├── InfoPlist.strings │ │ │ ├── MainMenu.xib │ │ │ └── MyDocument.xib │ │ ├── ModelLoaderHelperClasses.h │ │ ├── ModelLoaderHelperClasses.mm │ │ ├── MyDocument.h │ │ ├── MyDocument.mm │ │ ├── MyDocument.xcdatamodel │ │ │ ├── elements │ │ │ └── layout │ │ ├── README │ │ ├── SimpleAssimpViewX-Info.plist │ │ ├── SimpleAssimpViewX.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── vade.mode1v3 │ │ │ └── vade.pbxuser │ │ ├── SimpleAssimpViewX_Prefix.pch │ │ ├── include │ │ │ └── copy_assimp_headers_here.txt │ │ └── main.m │ ├── SimpleOpenGL │ │ ├── CMakeLists.txt │ │ ├── Sample_SimpleOpenGL.c │ │ └── makefile │ ├── SimpleTexturedOpenGL │ │ ├── CMakeLists.txt │ │ └── SimpleTexturedOpenGL │ │ │ ├── include │ │ │ └── boost_includes.h │ │ │ └── src │ │ │ └── model_loading.cpp │ └── glut │ │ ├── GL │ │ └── glut.h │ │ ├── README-win32.txt │ │ ├── glut.def │ │ └── glut32.lib ├── scripts │ ├── BlenderImporter │ │ ├── BlenderScene.cpp.template │ │ ├── BlenderSceneGen.h.template │ │ └── genblenddna.py │ ├── IFCImporter │ │ ├── CppGenerator.py │ │ ├── ExpressReader.py │ │ ├── IFCReaderGen.cpp.template │ │ ├── IFCReaderGen.h.template │ │ ├── entitylist.txt │ │ └── genentitylist.sh │ └── OgreImporter │ │ └── assimp.tpl ├── test │ ├── CMakeLists.txt │ ├── RunSingleUnitTestSuite.bat │ ├── RunUnitTestSuite.bat │ ├── other │ │ └── streamload.py │ ├── regression │ │ ├── .pydevproject │ │ ├── README │ │ ├── db.zip │ │ ├── gen_db.py │ │ ├── run.py │ │ ├── settings.py │ │ └── utils.py │ └── unit │ │ ├── BoostWorkaround │ │ └── tupletest.cpp │ │ ├── CCompilerTest.c │ │ ├── Main.cpp │ │ ├── UnitTestPCH.cpp │ │ ├── UnitTestPCH.h │ │ ├── utExport.cpp │ │ ├── utExport.h │ │ ├── utFindDegenerates.cpp │ │ ├── utFindDegenerates.h │ │ ├── utFindInvalidData.cpp │ │ ├── utFindInvalidData.h │ │ ├── utFixInfacingNormals.cpp │ │ ├── utGenNormals.cpp │ │ ├── utGenNormals.h │ │ ├── utImporter.cpp │ │ ├── utImporter.h │ │ ├── utImproveCacheLocality.cpp │ │ ├── utJoinVertices.cpp │ │ ├── utJoinVertices.h │ │ ├── utLimitBoneWeights.cpp │ │ ├── utLimitBoneWeights.h │ │ ├── utMaterialSystem.cpp │ │ ├── utMaterialSystem.h │ │ ├── utNoBoostTest.cpp │ │ ├── utNoBoostTest.h │ │ ├── utPretransformVertices.cpp │ │ ├── utPretransformVertices.h │ │ ├── utRemoveComments.cpp │ │ ├── utRemoveComments.h │ │ ├── utRemoveComponent.cpp │ │ ├── utRemoveComponent.h │ │ ├── utRemoveRedundantMaterials.cpp │ │ ├── utRemoveRedundantMaterials.h │ │ ├── utScenePreprocessor.cpp │ │ ├── utScenePreprocessor.h │ │ ├── utSharedPPData.cpp │ │ ├── utSharedPPData.h │ │ ├── utSortByPType.cpp │ │ ├── utSortByPType.h │ │ ├── utSplitLargeMeshes.cpp │ │ ├── utSplitLargeMeshes.h │ │ ├── utTargetAnimation.cpp │ │ ├── utTargetAnimation.h │ │ ├── utTextureTransform.cpp │ │ ├── utTriangulate.cpp │ │ ├── utTriangulate.h │ │ ├── utVertexTriangleAdjacency.cpp │ │ └── utVertexTriangleAdjacency.h ├── tools │ ├── assimp_cmd │ │ ├── CMakeLists.txt │ │ ├── CompareDump.cpp │ │ ├── Export.cpp │ │ ├── ImageExtractor.cpp │ │ ├── Info.cpp │ │ ├── Main.cpp │ │ ├── Main.h │ │ ├── WriteDumb.cpp │ │ ├── assimp_cmd.rc │ │ ├── generic_inserter.hpp │ │ └── resource.h │ ├── assimp_view │ │ ├── AnimEvaluator.cpp │ │ ├── AnimEvaluator.h │ │ ├── AssetHelper.h │ │ ├── Background.cpp │ │ ├── Background.h │ │ ├── CMakeLists.txt │ │ ├── Camera.h │ │ ├── Display.cpp │ │ ├── Display.h │ │ ├── HUD.png │ │ ├── HUDMask.png │ │ ├── HelpDialog.cpp │ │ ├── Input.cpp │ │ ├── LogDisplay.cpp │ │ ├── LogDisplay.h │ │ ├── LogWindow.cpp │ │ ├── LogWindow.h │ │ ├── Material.cpp │ │ ├── MaterialManager.h │ │ ├── MeshRenderer.cpp │ │ ├── MeshRenderer.h │ │ ├── MessageProc.cpp │ │ ├── NOTE@help.rtf.txt │ │ ├── Normals.cpp │ │ ├── RenderOptions.h │ │ ├── SceneAnimator.cpp │ │ ├── SceneAnimator.h │ │ ├── Shaders.cpp │ │ ├── Shaders.h │ │ ├── assimp_view.cpp │ │ ├── assimp_view.h │ │ ├── assimp_view.rc │ │ ├── banner.bmp │ │ ├── banner_pure.bmp │ │ ├── base.PNG │ │ ├── base_anim.bmp │ │ ├── base_display.bmp │ │ ├── base_inter.bmp │ │ ├── base_rendering.bmp │ │ ├── base_stats.bmp │ │ ├── fx.bmp │ │ ├── help.rtf │ │ ├── n.bmp │ │ ├── resource.h │ │ ├── root.bmp │ │ ├── stdafx.cpp │ │ ├── stdafx.h │ │ ├── test.xcf │ │ ├── text1.bin │ │ ├── tx.bmp │ │ └── txi.bmp │ └── shared │ │ ├── assimp_tools_icon.ico │ │ ├── assimp_tools_icon.png │ │ ├── assimp_tools_icon.svg │ │ └── default_icon.xcf └── workspaces │ └── xcode3 │ ├── assimp.xcodeproj │ └── project.pbxproj │ └── info.txt ├── cube.obj ├── myresources.qrc ├── qgl_tutorial07.cpp ├── qgl_tutorial07.h ├── suzanne.obj ├── uvmap.DDS └── uvtemplate.bmp /README.md: -------------------------------------------------------------------------------- 1 | 2 | This is a translation from the GLFW window system to Qt5. 3 | 4 | The first 7 tutorials have already been translated. 5 | 6 | I am using QOpenGLWidget because I want a widget that can be easily embedded 7 | in another window. 8 | 9 | The translation process requires the creation of a base class derived 10 | from QGLWidget and implementation of the required methods. The only methods 11 | that really need to change from the other translations are initializeGL() 12 | and paintGL(). Basically, the code inside the do while loop goes in the 13 | paintGL() method and the gl code prior to that goes in the initializeGL() 14 | method. Delete any code that references glfw. Also, there is typically 15 | a little bit of code that should go in the destructor. 16 | 17 | I chose to use the QOpenGLShaderProgram to load the shader files but I 18 | am using straight OpenGL for the rest of it. IMO, there are more examples 19 | out there of using OpenGL than there are of using the wrapper methods 20 | in QOpenGLShaderProgram. This also accomplishes my goal of teaching both 21 | a C++ API and a C style API. 22 | 23 | Now, I may reconsider this. Using QOpenGLTexture may convince me to 24 | use the Qt wrappers. They are much easier! 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /qgl_tutorial01_first_window/qgl_tutorial01.cpp: -------------------------------------------------------------------------------- 1 | #include "qgl_tutorial01.h" 2 | 3 | #include 4 | 5 | void Tutorial01::initializeGL(void) 6 | { 7 | // initialize OpenGL 8 | initializeOpenGLFunctions(); 9 | 10 | // Dark blue background 11 | glClearColor(0.0f, 0.0f, 0.3f, 0.0f); 12 | } 13 | 14 | // just clear the screen to start with 15 | void Tutorial01::paintGL(void) 16 | { 17 | glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); 18 | } 19 | 20 | void Tutorial01::resizeGL(int w, int h) 21 | { 22 | // just do this to supress warnings. 23 | // Later the resize method becomes important 24 | Q_UNUSED(w); 25 | Q_UNUSED(h); 26 | } 27 | 28 | // capture a keypress event in the QGLWindow 29 | void Tutorial01::keyPressEvent(QKeyEvent *e) 30 | { 31 | switch (e->key()) 32 | { 33 | case Qt::Key_Escape: /* Escape Key */ 34 | exit(0); 35 | break; 36 | default: 37 | break; 38 | } 39 | e->accept(); // Don't pass any key events to parent 40 | } 41 | 42 | /* Main Loop 43 | * Open window with initial window size, title bar, 44 | * and handle input events. 45 | */ 46 | int main( int argc, char **argv ) 47 | { 48 | QApplication::setColorSpec( QApplication::CustomColor ); 49 | QApplication a( argc, argv ); 50 | 51 | Tutorial01 w; 52 | w.show(); 53 | return a.exec(); 54 | } 55 | 56 | -------------------------------------------------------------------------------- /qgl_tutorial01_first_window/qgl_tutorial01.h: -------------------------------------------------------------------------------- 1 | #ifndef QGL_TUTORIAL01_H 2 | #define QGL_TUTORIAL01_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | class Tutorial01 : public QOpenGLWidget, protected QOpenGLFunctions 9 | { 10 | public: 11 | Tutorial01( QWidget *parent=0 ) : QOpenGLWidget(parent) {} 12 | 13 | protected: 14 | void initializeGL(void); 15 | void resizeGL( int w, int h ); 16 | void paintGL(); 17 | void keyPressEvent( QKeyEvent *e); 18 | }; 19 | 20 | #endif // QGL_TUTORIAL01_H 21 | -------------------------------------------------------------------------------- /qgl_tutorial01_first_window/qgl_tutorial01.pro: -------------------------------------------------------------------------------- 1 | #------------------------------------------------- 2 | # 3 | # Project created by QtCreator 2013-10-01T22:45:38 4 | # 5 | #------------------------------------------------- 6 | 7 | QT += core gui widgets opengl 8 | 9 | TARGET = qgl_tutorial01 10 | TEMPLATE = app 11 | 12 | 13 | SOURCES +=\ 14 | qgl_tutorial01.cpp 15 | 16 | HEADERS += qgl_tutorial01.h 17 | -------------------------------------------------------------------------------- /qgl_tutorial02_red_triangle/GLShaders.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | SimpleVertexShader.vert 4 | SimpleFragmentShader.frag 5 | 6 | 7 | -------------------------------------------------------------------------------- /qgl_tutorial02_red_triangle/SimpleFragmentShader.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | void main() 4 | { 5 | 6 | // Output color = red 7 | gl_FragColor = vec4(1,0,0,1); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /qgl_tutorial02_red_triangle/SimpleVertexShader.vert: -------------------------------------------------------------------------------- 1 | #version 120 2 | // Input vertex data, different for all executions of this shader. 3 | attribute vec3 vertexPosition_modelspace; 4 | 5 | void main(){ 6 | 7 | gl_Position = vec4(vertexPosition_modelspace, 1); 8 | 9 | } 10 | 11 | -------------------------------------------------------------------------------- /qgl_tutorial02_red_triangle/qgl_tutorial02.h: -------------------------------------------------------------------------------- 1 | #ifndef QGL_TUTORIAL02_H 2 | #define QGL_TUTORIAL02_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | class Tutorial02 : public QOpenGLWidget, protected QOpenGLFunctions 9 | { 10 | public: 11 | Tutorial02( QWidget *parent=0 ); 12 | ~Tutorial02(); 13 | 14 | protected: 15 | void initializeGL(void); 16 | void resizeGL( int w, int h ); 17 | void paintGL(); 18 | void keyPressEvent( QKeyEvent *e); 19 | 20 | private: 21 | QOpenGLShaderProgram shaderProgram; 22 | GLuint vertexPosition_modelspaceID; 23 | GLuint vertexbuffer; 24 | }; 25 | 26 | 27 | #endif // QGL_TUTORIAL02_H 28 | 29 | -------------------------------------------------------------------------------- /qgl_tutorial02_red_triangle/qgl_tutorial02.pro: -------------------------------------------------------------------------------- 1 | #------------------------------------------------- 2 | # 3 | # Project created by QtCreator 2013-10-01T21:39:26 4 | # 5 | #------------------------------------------------- 6 | 7 | QT += core gui opengl widgets 8 | 9 | TARGET = qgl_tutorial02 10 | TEMPLATE = app 11 | 12 | mac { 13 | CONFIG -= app_bundle 14 | } 15 | 16 | SOURCES +=\ 17 | qgl_tutorial02.cpp 18 | 19 | HEADERS += qgl_tutorial02.h 20 | 21 | RESOURCES += GLShaders.qrc 22 | 23 | -------------------------------------------------------------------------------- /qgl_tutorial03_matrices/GLShaders.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | SimpleTransform.vert 4 | SingleColor.frag 5 | 6 | 7 | -------------------------------------------------------------------------------- /qgl_tutorial03_matrices/SimpleTransform.vert: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | // Input vertex data, different for all executions of this shader. 4 | attribute vec3 vertexPosition_modelspace; 5 | 6 | // Values that stay constant for the whole mesh. 7 | uniform mat4 MVP; 8 | 9 | void main(){ 10 | 11 | // Output position of the vertex, in clip space : MVP * position 12 | gl_Position = MVP * vec4(vertexPosition_modelspace,1); 13 | 14 | } 15 | 16 | -------------------------------------------------------------------------------- /qgl_tutorial03_matrices/SingleColor.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | // Ouput data 4 | //out vec3 color; 5 | 6 | void main() 7 | { 8 | 9 | // Output color = red, full opacity 10 | gl_FragColor = vec4(1,0,0, 1); 11 | 12 | } -------------------------------------------------------------------------------- /qgl_tutorial03_matrices/qgl_tutorial03.h: -------------------------------------------------------------------------------- 1 | #ifndef QGL_TUTORIAL03_H 2 | #define QGL_TUTORIAL03_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | class Tutorial03 : public QOpenGLWidget, protected QOpenGLFunctions 11 | { 12 | public: 13 | Tutorial03( QWidget *parent=0 ); 14 | ~Tutorial03(); 15 | 16 | protected: 17 | void initializeGL(void); 18 | void resizeGL( int w, int h ); 19 | void paintGL(); 20 | void keyPressEvent( QKeyEvent *e); 21 | void timerEvent(QTimerEvent*); 22 | 23 | private: 24 | QOpenGLShaderProgram shaderProgram; 25 | GLuint MatrixID; 26 | GLuint vertexPosition_modelspaceID; 27 | GLuint vertexbuffer; 28 | GLuint color_location; 29 | GLuint colorbuffer; 30 | QMatrix4x4 MVP; 31 | }; 32 | 33 | 34 | #endif // QGL_TUTORIAL03_H 35 | -------------------------------------------------------------------------------- /qgl_tutorial03_matrices/qgl_tutorial03.pro: -------------------------------------------------------------------------------- 1 | #------------------------------------------------- 2 | # 3 | # Project created by QtCreator 2013-10-01T22:54:39 4 | # 5 | #------------------------------------------------- 6 | 7 | QT += core gui widgets opengl 8 | 9 | TARGET = qgl_tutorial03 10 | TEMPLATE = app 11 | 12 | mac { 13 | CONFIG -= app_bundle 14 | } 15 | 16 | 17 | SOURCES +=\ 18 | qgl_tutorial03.cpp 19 | 20 | HEADERS += qgl_tutorial03.h 21 | 22 | RESOURCES += GLShaders.qrc 23 | 24 | -------------------------------------------------------------------------------- /qgl_tutorial03a_matrices/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(tutorial03) 2 | 3 | cmake_minimum_required(VERSION 2.8.11) 4 | 5 | # set this to point to your Qt5 installation 6 | set(CMAKE_PREFIX_PATH "/Users/karl/Qt5/5.1.1/clang_64") 7 | 8 | # include the current directory in the include search path 9 | set(CMAKE_INCLUDE_CURRENT_DIR ON) 10 | 11 | # automatically run the Qt Meta-Object Compiler (moc) 12 | set(CMAKE_AUTOMOC ON) 13 | 14 | # find the required packages 15 | find_package(Qt5Widgets REQUIRED) 16 | find_package(OpenGL REQUIRED) 17 | 18 | # define your source and header files 19 | set(SOURCES 20 | tutorial03.cpp 21 | ) 22 | 23 | set(HEADERS 24 | ) 25 | 26 | # ceate an executable based on your files 27 | add_executable( tutorial03 ${SOURCES} ${HDRS}) 28 | 29 | # link to the correct libraries 30 | qt5_use_modules(tutorial03 Widgets Gui OpenGL OpenGLExtensions) 31 | target_link_libraries( tutorial03 ${OPENGL_gl_LIBRARY} 32 | ${OPENGL_glu_LIBRARY} 33 | ) 34 | 35 | -------------------------------------------------------------------------------- /qgl_tutorial03a_matrices/GLShaders.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | SimpleTransform.vert 4 | SingleColor.frag 5 | 6 | 7 | -------------------------------------------------------------------------------- /qgl_tutorial03a_matrices/SimpleTransform.vert: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | 4 | // Input vertex data, different for all executions of this shader. 5 | attribute vec3 vertexPosition_modelspace; 6 | 7 | // Values that stay constant for the whole mesh. 8 | uniform mat4 MVP; 9 | 10 | // vertex color 11 | varying vec3 f_color; 12 | attribute vec3 v_color; 13 | 14 | void main() 15 | { 16 | // Output position of the vertex, in clip space : MVP * position 17 | gl_Position = MVP * vec4(vertexPosition_modelspace, 1); 18 | f_color = v_color; 19 | } 20 | 21 | -------------------------------------------------------------------------------- /qgl_tutorial03a_matrices/SingleColor.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | // Ouput data 4 | 5 | varying vec3 f_color; 6 | void main() 7 | { 8 | // Output color = red, full opacity 9 | gl_FragColor = vec4(f_color.x, f_color.y, f_color.z, 1.0); 10 | } 11 | 12 | -------------------------------------------------------------------------------- /qgl_tutorial03a_matrices/qgl_tutorial03a.h: -------------------------------------------------------------------------------- 1 | #ifndef QGL_TUTORIAL04_H 2 | #define QGL_TUTORIAL04_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | class Tutorial03 : public QOpenGLWidget, protected QOpenGLFunctions 10 | { 11 | public: 12 | Tutorial03( QWidget *parent=0 ); 13 | ~Tutorial03(); 14 | 15 | protected: 16 | void initializeGL(void); 17 | void resizeGL( int w, int h ); 18 | void paintGL(); 19 | void keyPressEvent( QKeyEvent *e); 20 | void timerEvent(QTimerEvent*); 21 | 22 | private: 23 | QOpenGLShaderProgram shaderProgram; 24 | GLuint MatrixID; 25 | GLuint vertexPosition_modelspaceID; 26 | GLuint vertexbuffer; 27 | GLuint color_location; 28 | GLuint colorbuffer; 29 | QMatrix4x4 MVP; 30 | }; 31 | 32 | #endif 33 | 34 | -------------------------------------------------------------------------------- /qgl_tutorial03a_matrices/qgl_tutorial03a.pro: -------------------------------------------------------------------------------- 1 | #------------------------------------------------- 2 | # 3 | # Project created by QtCreator 2013-10-01T22:54:39 4 | # 5 | #------------------------------------------------- 6 | 7 | QT += core gui widgets opengl 8 | 9 | TARGET = qgl_tutorial03 10 | TEMPLATE = app 11 | 12 | mac { 13 | CONFIG -= app_bundle 14 | } 15 | 16 | 17 | SOURCES +=\ 18 | qgl_tutorial03a.cpp 19 | 20 | HEADERS += qgl_tutorial03a.h 21 | 22 | RESOURCES += GLShaders.qrc 23 | -------------------------------------------------------------------------------- /qgl_tutorial04_colored_cube/ColorFragmentShader.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | // Interpolated values from the vertex shaders 4 | varying vec3 fragmentColor; 5 | 6 | void main(){ 7 | 8 | // Output color = color specified in the vertex shader, 9 | // interpolated between all 3 surrounding vertices 10 | gl_FragColor = vec4(fragmentColor, 1); 11 | 12 | } -------------------------------------------------------------------------------- /qgl_tutorial04_colored_cube/GLShaders.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | TransformVertexShader.vert 4 | ColorFragmentShader.frag 5 | 6 | 7 | -------------------------------------------------------------------------------- /qgl_tutorial04_colored_cube/TransformVertexShader.vert: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | // Input vertex data, different for all executions of this shader. 4 | attribute vec3 vertexPosition_modelspace; 5 | attribute vec3 vertexColor; 6 | 7 | // Output data ; will be interpolated for each fragment. 8 | varying vec3 fragmentColor; 9 | // Values that stay constant for the whole mesh. 10 | uniform mat4 MVP; 11 | 12 | void main(){ 13 | 14 | // Output position of the vertex, in clip space : MVP * position 15 | gl_Position = MVP * vec4(vertexPosition_modelspace,1); 16 | 17 | // The color of each vertex will be interpolated 18 | // to produce the color of each fragment 19 | fragmentColor = vertexColor; 20 | } 21 | 22 | -------------------------------------------------------------------------------- /qgl_tutorial04_colored_cube/qgl_tutorial04.h: -------------------------------------------------------------------------------- 1 | #ifndef QGL_TUTORIAL04_H 2 | #define QGL_TUTORIAL04_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | class Tutorial04 : public QOpenGLWidget, protected QOpenGLFunctions 10 | { 11 | public: 12 | Tutorial04( QWidget *parent=0 ); 13 | ~Tutorial04(); 14 | 15 | protected: 16 | void initializeGL(void); 17 | void resizeGL( int w, int h ); 18 | void paintGL(); 19 | void keyPressEvent( QKeyEvent *e); 20 | void timerEvent(QTimerEvent*); 21 | 22 | private: 23 | QOpenGLShaderProgram shaderProgram; 24 | GLuint MatrixID; 25 | GLuint vertexPosition_modelspaceID; 26 | GLuint vertexbuffer; 27 | GLuint vertexColorID; 28 | GLuint color_location; 29 | GLuint colorbuffer; 30 | QMatrix4x4 MVP; 31 | }; 32 | 33 | #endif // QGL_TUTORIAL04_H 34 | -------------------------------------------------------------------------------- /qgl_tutorial04_colored_cube/qgl_tutorial04.pro: -------------------------------------------------------------------------------- 1 | #------------------------------------------------- 2 | # 3 | # Project created by QtCreator 2013-10-02T21:21:25 4 | # 5 | #------------------------------------------------- 6 | 7 | QT += core gui opengl widgets 8 | 9 | 10 | TARGET = qgl_tutorial04 11 | TEMPLATE = app 12 | 13 | mac { 14 | CONFIG -= app_bundle 15 | } 16 | 17 | SOURCES +=\ 18 | qgl_tutorial04.cpp 19 | 20 | HEADERS += qgl_tutorial04.h 21 | 22 | RESOURCES += \ 23 | GLShaders.qrc 24 | 25 | -------------------------------------------------------------------------------- /qgl_tutorial05_textured_cube/ColorFragmentShader.fragmentshader: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | // Interpolated values from the vertex shaders 4 | varying vec3 fragmentColor; 5 | 6 | void main(){ 7 | 8 | // Output color = color specified in the vertex shader, 9 | // interpolated between all 3 surrounding vertices 10 | gl_FragColor = vec4(fragmentColor, 1); 11 | 12 | } -------------------------------------------------------------------------------- /qgl_tutorial05_textured_cube/GLShaders.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | TextureFragmentShader.frag 4 | TransformVertexShader.vert 5 | uvtemplate.bmp 6 | 7 | 8 | -------------------------------------------------------------------------------- /qgl_tutorial05_textured_cube/TextureFragmentShader.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | // Interpolated values from the vertex shaders 4 | varying vec2 UV; 5 | 6 | // Values that stay constant for the whole mesh. 7 | uniform sampler2D myTextureSampler; 8 | 9 | void main(){ 10 | 11 | // Output color = color of the texture at the specified UV 12 | gl_FragColor = texture2D( myTextureSampler, UV ); 13 | } -------------------------------------------------------------------------------- /qgl_tutorial05_textured_cube/TransformVertexShader.vert: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | // Input vertex data, different for all executions of this shader. 4 | attribute vec3 vertexPosition_modelspace; 5 | attribute vec2 vertexUV; 6 | 7 | // Output data ; will be interpolated for each fragment. 8 | varying vec2 UV; 9 | 10 | // Values that stay constant for the whole mesh. 11 | uniform mat4 MVP; 12 | 13 | void main(){ 14 | 15 | // Output position of the vertex, in clip space : MVP * position 16 | gl_Position = MVP * vec4(vertexPosition_modelspace,1); 17 | 18 | // UV of the vertex. No special space for this one. 19 | UV = vertexUV; 20 | } 21 | 22 | -------------------------------------------------------------------------------- /qgl_tutorial05_textured_cube/mainwindow.cpp: -------------------------------------------------------------------------------- 1 | #include "mainwindow.h" 2 | #include "ui_mainwindow.h" 3 | 4 | MainWindow::MainWindow(QWidget *parent) : 5 | QMainWindow(parent), 6 | ui(new Ui::MainWindow) 7 | { 8 | ui->setupUi(this); 9 | } 10 | 11 | MainWindow::~MainWindow() 12 | { 13 | delete ui; 14 | } 15 | -------------------------------------------------------------------------------- /qgl_tutorial05_textured_cube/mainwindow.h: -------------------------------------------------------------------------------- 1 | #ifndef MAINWINDOW_H 2 | #define MAINWINDOW_H 3 | 4 | #include 5 | 6 | namespace Ui { 7 | class MainWindow; 8 | } 9 | 10 | class MainWindow : public QMainWindow 11 | { 12 | Q_OBJECT 13 | 14 | public: 15 | explicit MainWindow(QWidget *parent = 0); 16 | ~MainWindow(); 17 | 18 | private: 19 | Ui::MainWindow *ui; 20 | }; 21 | 22 | #endif // MAINWINDOW_H 23 | -------------------------------------------------------------------------------- /qgl_tutorial05_textured_cube/mainwindow.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | MainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 800 10 | 600 11 | 12 | 13 | 14 | MainWindow 15 | 16 | 17 | 18 | 19 | 20 | 21 | QFrame::StyledPanel 22 | 23 | 24 | QFrame::Raised 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 0 34 | 0 35 | 800 36 | 22 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | Tutorial05 45 | QFrame 46 |
qgl_tutorial05.h
47 | 1 48 |
49 |
50 | 51 | 52 |
53 | -------------------------------------------------------------------------------- /qgl_tutorial05_textured_cube/qgl_tutorial05.h: -------------------------------------------------------------------------------- 1 | #ifndef QGL_TUTORIAL05_H 2 | #define QGL_TUTORIAL05_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | class QOpenGLTexture; 10 | 11 | class Tutorial05 : public QOpenGLWidget, protected QOpenGLFunctions 12 | { 13 | public: 14 | Tutorial05( QWidget *parent=0 ); 15 | ~Tutorial05(); 16 | 17 | protected: 18 | void initializeGL(void); 19 | void resizeGL( int w, int h ); 20 | void paintGL(); 21 | void keyPressEvent( QKeyEvent *e); 22 | void timerEvent(QTimerEvent*); 23 | 24 | private: 25 | QOpenGLShaderProgram shaderProgram; 26 | QMatrix4x4 MVP; 27 | QOpenGLTexture* mTexture; 28 | GLuint programID; 29 | GLuint MatrixID; 30 | GLuint vertexPosition_modelspaceID; 31 | GLuint vertexUVID; 32 | GLuint TextureID; 33 | GLuint vertexbuffer; 34 | GLuint uvbuffer; 35 | }; 36 | 37 | 38 | #endif // QGL_TUTORIAL05_H 39 | -------------------------------------------------------------------------------- /qgl_tutorial05_textured_cube/qgl_tutorial05.pro: -------------------------------------------------------------------------------- 1 | #------------------------------------------------- 2 | # 3 | # Project created by QtCreator 2013-10-02T22:05:16 4 | # 5 | #------------------------------------------------- 6 | 7 | QT += core gui widgets opengl 8 | 9 | TARGET = qgl_tutorial05 10 | TEMPLATE = app 11 | 12 | mac { 13 | CONFIG -= app_bundle 14 | } 15 | 16 | SOURCES +=\ 17 | qgl_tutorial05.cpp \ 18 | mainwindow.cpp 19 | 20 | HEADERS += qgl_tutorial05.h \ 21 | mainwindow.h 22 | 23 | FORMS += \ 24 | mainwindow.ui 25 | 26 | RESOURCES += \ 27 | GLShaders.qrc 28 | -------------------------------------------------------------------------------- /qgl_tutorial05_textured_cube/uvtemplate.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial05_textured_cube/uvtemplate.bmp -------------------------------------------------------------------------------- /qgl_tutorial06_mouse/GLShaders.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | TextureFragmentShader.frag 4 | TransformVertexShader.vert 5 | uvtemplate.bmp 6 | 7 | 8 | -------------------------------------------------------------------------------- /qgl_tutorial06_mouse/TextureFragmentShader.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | // Interpolated values from the vertex shaders 4 | varying vec2 UV; 5 | 6 | // Ouput data 7 | //out vec3 color; 8 | 9 | // Values that stay constant for the whole mesh. 10 | uniform sampler2D myTextureSampler; 11 | 12 | void main(){ 13 | 14 | // Output color = color of the texture at the specified UV 15 | gl_FragColor = texture2D( myTextureSampler, UV ); 16 | } -------------------------------------------------------------------------------- /qgl_tutorial06_mouse/TransformVertexShader.vert: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | // Input vertex data, different for all executions of this shader. 4 | attribute vec3 vertexPosition_modelspace; 5 | attribute vec2 vertexUV; 6 | 7 | // Output data ; will be interpolated for each fragment. 8 | varying vec2 UV; 9 | 10 | // Values that stay constant for the whole mesh. 11 | uniform mat4 MVP; 12 | 13 | void main(){ 14 | 15 | // Output position of the vertex, in clip space : MVP * position 16 | gl_Position = MVP * vec4(vertexPosition_modelspace,1); 17 | 18 | // UV of the vertex. No special space for this one. 19 | UV = vertexUV; 20 | } 21 | 22 | -------------------------------------------------------------------------------- /qgl_tutorial06_mouse/qgl_tutorial06.h: -------------------------------------------------------------------------------- 1 | #ifndef QGL_TUTORIAL06_H 2 | #define QGL_TUTORIAL06_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | class Tutorial06 : public QOpenGLWidget, protected QOpenGLFunctions 15 | { 16 | public: 17 | Tutorial06( QWidget *parent=0 ); 18 | ~Tutorial06(); 19 | 20 | QVector3D getArcBallVector(int x, int y); 21 | 22 | protected: 23 | void initializeGL(void); 24 | void resizeGL( int w, int h ); 25 | void paintGL(); 26 | void keyPressEvent( QKeyEvent *e); 27 | void mouseMoveEvent(QMouseEvent* e); 28 | void mousePressEvent(QMouseEvent* e); 29 | void mouseReleaseEvent(QMouseEvent *e); 30 | void wheelEvent(QWheelEvent *e); 31 | void timerEvent(QTimerEvent*); 32 | void updateMouse(); 33 | 34 | private: 35 | QOpenGLShaderProgram shaderProgram; 36 | GLuint programID; 37 | QMatrix4x4 mModelMatrix; 38 | QMatrix4x4 mRotate; 39 | QMatrix4x4 mViewMatrix; 40 | QMatrix4x4 mProjectionMatrix; 41 | 42 | QVector3D cameraPos; 43 | QVector3D mPosition; 44 | QOpenGLTexture* mTexture; 45 | GLuint MatrixID; 46 | GLuint vertexPosition_modelspaceID; 47 | GLuint vertexUVID; 48 | GLuint vertexbuffer; 49 | GLuint uvbuffer; 50 | 51 | int mWidth; 52 | int mHeight; 53 | 54 | int oldX, oldY; 55 | int newX, newY; 56 | 57 | bool rotate; 58 | bool useArcBall; 59 | }; 60 | 61 | 62 | #endif // QGL_TUTORIAL06_H 63 | -------------------------------------------------------------------------------- /qgl_tutorial06_mouse/qgl_tutorial06.pro: -------------------------------------------------------------------------------- 1 | #------------------------------------------------- 2 | # 3 | # Project created by QtCreator 2013-10-02T22:05:16 4 | # 5 | #------------------------------------------------- 6 | 7 | QT += core gui widgets opengl 8 | 9 | TARGET = qgl_tutorial06 10 | TEMPLATE = app 11 | 12 | mac { 13 | CONFIG -= app_bundle 14 | } 15 | 16 | SOURCES +=\ 17 | qgl_tutorial06b.cpp 18 | 19 | HEADERS += qgl_tutorial06.h 20 | 21 | RESOURCES += GLShaders.qrc 22 | 23 | -------------------------------------------------------------------------------- /qgl_tutorial06_mouse/screenshots/inside_the_cube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial06_mouse/screenshots/inside_the_cube.png -------------------------------------------------------------------------------- /qgl_tutorial06_mouse/screenshots/large_fov.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial06_mouse/screenshots/large_fov.png -------------------------------------------------------------------------------- /qgl_tutorial06_mouse/screenshots/moveanim.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial06_mouse/screenshots/moveanim.gif -------------------------------------------------------------------------------- /qgl_tutorial06_mouse/screenshots/z_near.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial06_mouse/screenshots/z_near.png -------------------------------------------------------------------------------- /qgl_tutorial06_mouse/uvtemplate.DDS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial06_mouse/uvtemplate.DDS -------------------------------------------------------------------------------- /qgl_tutorial06_mouse/uvtemplate.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial06_mouse/uvtemplate.bmp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.2.0) 2 | project(qgl_tutorial07) 3 | 4 | # Tell CMake to run moc when necessary: 5 | set(CMAKE_AUTOMOC ON) 6 | set(CMAKE_AUTORCC ON) 7 | # As moc files are generated in the binary dir, tell CMake 8 | # to always look for includes there: 9 | set(CMAKE_INCLUDE_CURRENT_DIR ON) 10 | 11 | # Widgets finds its own dependencies. 12 | find_package(Qt5Widgets REQUIRED) 13 | 14 | add_subdirectory(assimp-3.1.1) 15 | set(ASSIMP_ROOT_DIR ${CMAKE_SOURCE_DIR}/assimp-3.1.1) 16 | include_directories(${ASSIMP_ROOT_DIR}/include) 17 | #link_directories(${ASSIMP_ROOT_DIR}/lib) 18 | 19 | add_executable(qgl_tutorial07 qgl_tutorial07.cpp myresources.qrc) 20 | target_link_libraries(qgl_tutorial07 assimp) 21 | 22 | qt5_use_modules(qgl_tutorial07 Widgets) 23 | 24 | 25 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/README: -------------------------------------------------------------------------------- 1 | This project uses CMake instead of qmake because the 2 | assimp library builds with qmake. You must have CMake 3 | installed . Run the cmake-gui and point 4 | to the CMakeList.txt in this directory. The assimp library 5 | doesn't read from a Qt resource file so you will have to 6 | make sure that the .obj file (suzanne.obj) resides in the 7 | same directory as the executable. 8 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/VertShader.vsh: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | #define highp 4 | #define mediump 5 | #define lowp 6 | 7 | // Inputs 8 | attribute highp vec3 vertexPosition_modelspace; 9 | attribute vec2 vertexUV; 10 | attribute vec3 vertexNormal_modelspace; 11 | 12 | // Values that stay constant for the whole mesh 13 | uniform highp mat4 MVP; 14 | uniform mat4 V; 15 | uniform mat4 M; 16 | uniform vec3 LightPosition_worldspace; 17 | 18 | // Output data 19 | varying vec2 UV; 20 | varying vec3 Position_worldspace; 21 | varying vec3 Normal_cameraspace; 22 | varying vec3 EyeDirection_cameraspace; 23 | varying vec3 LightDirection_cameraspace; 24 | 25 | void main(void) 26 | { 27 | gl_Position = MVP * vec4(vertexPosition_modelspace, 1); 28 | 29 | // Position of the vertex, in worldspace : M * position 30 | Position_worldspace = vec4(M * vec4(vertexPosition_modelspace, 1)).xyz; 31 | 32 | // Vector that goes from the vertex to the camera, in camera space. 33 | // In camera space, the camera is at the origin (0, 0, 0). 34 | vec3 vertexPosition_cameraspace = vec4( V * M * vec4(vertexPosition_modelspace,1)).xyz; 35 | EyeDirection_cameraspace = vec3(0,0,0) - vertexPosition_cameraspace; 36 | 37 | // Vector that goes from the vertex to the light, in camera space. 38 | vec3 LightPosition_cameraspace = vec4(V * M * vec4(LightPosition_worldspace, 1)).xyz; 39 | LightDirection_cameraspace = LightPosition_cameraspace + EyeDirection_cameraspace; 40 | 41 | // Normal of the vertex, in camera space 42 | Normal_cameraspace = vec4(V * M * vec4(vertexNormal_modelspace, 0)).xyz; 43 | 44 | UV = vertexUV; 45 | } 46 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | .project 3 | *.kdev4* 4 | 5 | # Visual Studio 6 | *.sln 7 | *.ncb 8 | *.vcproj 9 | 10 | # Output 11 | bin/ 12 | lib/ 13 | contrib/ 14 | 15 | # Generated 16 | assimp.pc 17 | revision.h 18 | contrib/zlib/zconf.h 19 | contrib/zlib/zlib.pc 20 | 21 | # CMake 22 | CMakeCache.txt 23 | CMakeFiles 24 | cmake_install.cmake 25 | cmake_uninstall.cmake 26 | *.dir/ 27 | assimp-config.cmake 28 | assimp-config-version.cmake 29 | 30 | # Tests 31 | test/results 32 | 33 | # Python 34 | __pycache__ 35 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/.travis.yml: -------------------------------------------------------------------------------- 1 | before_install: 2 | - sudo apt-get install cmake 3 | 4 | env: 5 | - TRAVIS_NO_EXPORT=YES 6 | - TRAVIS_NO_EXPORT=NO 7 | - TRAVIS_STATIC_BUILD=ON 8 | - TRAVIS_STATIC_BUILD=OFF 9 | 10 | language: cpp 11 | 12 | compiler: 13 | - gcc 14 | - clang 15 | 16 | script: cmake -G "Unix Makefiles" -DASSIMP_ENABLE_BOOST_WORKAROUND=YES -DASSIMP_NO_EXPORT=$TRAVIS_NO_EXPORT -STATIC_BUILD=$TRAVIS_STATIC_BUILD && make 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/AssimpBuildTreeSettings.cmake.in: -------------------------------------------------------------------------------- 1 | set(ASSIMP_INCLUDE_DIRS 2 | "@PROJECT_SOURCE_DIR@" 3 | "@PROJECT_BINARY_DIR@") 4 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/AssimpConfig.cmake.in: -------------------------------------------------------------------------------- 1 | # - Config file for the FooBar package 2 | # It defines the following variables 3 | # FOOBAR_INCLUDE_DIRS - include directories for FooBar 4 | # FOOBAR_LIBRARIES - libraries to link against 5 | # FOOBAR_EXECUTABLE - the bar executable 6 | 7 | # Compute paths 8 | get_filename_component(FOOBAR_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) 9 | if(EXISTS "${FOOBAR_CMAKE_DIR}/CMakeCache.txt") 10 | # In build tree 11 | include("${FOOBAR_CMAKE_DIR}/FooBarBuildTreeSettings.cmake") 12 | else() 13 | set(FOOBAR_INCLUDE_DIRS "${FOOBAR_CMAKE_DIR}/@CONF_REL_INCLUDE_DIR@") 14 | endif() 15 | 16 | # Our library dependencies (contains definitions for IMPORTED targets) 17 | include("${FOOBAR_CMAKE_DIR}/FooBarLibraryDepends.cmake") 18 | 19 | # These are IMPORTED targets created by FooBarLibraryDepends.cmake 20 | set(FOOBAR_LIBRARIES foo) 21 | set(FOOBAR_EXECUTABLE bar) 22 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/AssimpConfigVersion.cmake.in: -------------------------------------------------------------------------------- 1 | set(ASSIMP_PACKAGE_VERSION "@ASSIMP_SOVERSION@") 2 | 3 | # Check whether the requested PACKAGE_FIND_VERSION is compatible 4 | if("${ASSIMP_PACKAGE_VERSION}" VERSION_LESS "${ASSIMP_PACKAGE_FIND_VERSION}") 5 | set(ASSIMP_PACKAGE_VERSION_COMPATIBLE FALSE) 6 | else() 7 | set(ASSIMP_PACKAGE_VERSION_COMPATIBLE TRUE) 8 | if ("${ASSIMP_PACKAGE_VERSION}" VERSION_EQUAL "${ASSIMP_PACKAGE_FIND_VERSION}") 9 | set(ASSIMP_PACKAGE_VERSION_EXACT TRUE) 10 | endif() 11 | endif() 12 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/CodeConventions.txt: -------------------------------------------------------------------------------- 1 | =============================================== 2 | The Asset-Importer-Library Coding conventions 3 | =============================================== 4 | 5 | If you want to participate to the Asset-Importer_Library please have a look 6 | onto these coding conventions and try to follow them. They are more or less 7 | some kind of guide line to help others coming into the code and help all 8 | the Asset-Importer-Library users. 9 | 10 | Tab width 11 | =========== 12 | The tab width shall be 4 spaces. 13 | 14 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/INSTALL: -------------------------------------------------------------------------------- 1 | 2 | ======================================================================== 3 | Open Asset Import Library (assimp) INSTALL 4 | ======================================================================== 5 | 6 | ------------------------------ 7 | Getting the documentation 8 | ------------------------------ 9 | 10 | A regularly-updated copy is available at 11 | http://assimp.sourceforge.net/lib_html/index.html 12 | 13 | A CHM file is included in the SVN repos: ./doc/AssimpDoc_Html/AssimpDoc.chm. 14 | To build the doxygen documentation on your own, follow these steps: 15 | 16 | a) download & install latest doxygen 17 | b) make sure doxygen is in the executable search path 18 | c) navigate to ./doc 19 | d) and run 'doxygen' 20 | 21 | Open the generated HTML (AssimpDoc_Html/index.html) in the browser of your choice. 22 | Windows only: To generate the CHM doc, install 'Microsoft HTML Workshop' 23 | and configure the path to it in the DOXYFILE first. 24 | 25 | ------------------------------ 26 | Building Assimp 27 | ------------------------------ 28 | 29 | More detailed build instructions can be found in the documentation, 30 | this section is just for the inpatient among you. 31 | 32 | CMake is the preferred build system for Assimp. The minimum required version 33 | is 2.6. If you don't have it yet, downloads for CMake can be found on 34 | http://www.cmake.org/. 35 | 36 | Building Assimp with CMake is 'business as usual' if you've used CMake 37 | before. All steps can be done either on the command line / shell or 38 | by using the CMake GUI tool, the choice is up to you. 39 | 40 | First, invoke CMake to generate build files for a particular 41 | toolchain (for standard GNU makefiles: cmake -G 'Unix Makefiles'). 42 | Afterwards, use the generated build files to perform the actual 43 | build. 44 | 45 | 46 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/README: -------------------------------------------------------------------------------- 1 | See Readme.md 2 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/assimp-config-version.cmake.in: -------------------------------------------------------------------------------- 1 | set( PACKAGE_VERSION "@ASSIMP_VERSION@" ) 2 | if( "${PACKAGE_FIND_VERSION}" VERSION_EQUAL "@ASSIMP_VERSION@") 3 | set(PACKAGE_VERSION_EXACT 1) 4 | endif() 5 | if( "${PACKAGE_FIND_VERSION_MAJOR}.${PACKAGE_FIND_VERSION_MINOR}" EQUAL "@ASSIMP_SOVERSION@" ) 6 | set(PACKAGE_VERSION_COMPATIBLE 1) 7 | elseif( "${PACKAGE_FIND_VERSION_MAJOR}" EQUAL "@ASSIMP_VERSION_MAJOR@" ) 8 | # for now backward compatible if minor version is less 9 | if( ${PACKAGE_FIND_VERSION_MINOR} LESS @ASSIMP_VERSION_MINOR@ ) 10 | set(PACKAGE_VERSION_COMPATIBLE 1) 11 | endif() 12 | endif() 13 | set( ASSIMP_STATIC_LIB "@ASSIMP_BUILD_STATIC_LIB@") 14 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/assimp.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=@CMAKE_INSTALL_PREFIX@/@ASSIMP_BIN_INSTALL_DIR@ 3 | libdir=@CMAKE_INSTALL_PREFIX@/@ASSIMP_LIB_INSTALL_DIR@ 4 | includedir=@CMAKE_INSTALL_PREFIX@/@ASSIMP_INCLUDE_INSTALL_DIR@/assimp 5 | 6 | Name: @CMAKE_PROJECT_NAME@ 7 | Description: Import various well-known 3D model formats in an uniform manner. 8 | Version: @PROJECT_VERSION@ 9 | Libs: -L${libdir} -lassimp@ASSIMP_LIBRARY_SUFFIX@ 10 | Cflags: -I${includedir} 11 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/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 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/cmake-modules/Findassimp.cmake: -------------------------------------------------------------------------------- 1 | FIND_PATH( 2 | assimp_INCLUDE_DIRS 3 | NAMES postprocess.h scene.h version.h config.h cimport.h 4 | PATHS /usr/local/include/ 5 | ) 6 | 7 | FIND_LIBRARY( 8 | assimp_LIBRARIES 9 | NAMES assimp 10 | PATHS /usr/local/lib/ 11 | ) 12 | 13 | IF (assimp_INCLUDE_DIRS AND assimp_LIBRARIES) 14 | SET(assimp_FOUND TRUE) 15 | ENDIF (assimp_INCLUDE_DIRS AND assimp_LIBRARIES) 16 | 17 | IF (assimp_FOUND) 18 | IF (NOT assimp_FIND_QUIETLY) 19 | MESSAGE(STATUS "Found asset importer library: ${assimp_LIBRARIES}") 20 | ENDIF (NOT assimp_FIND_QUIETLY) 21 | ELSE (assimp_FOUND) 22 | IF (assimp_FIND_REQUIRED) 23 | MESSAGE(FATAL_ERROR "Could not find asset importer library") 24 | ENDIF (assimp_FIND_REQUIRED) 25 | ENDIF (assimp_FOUND) 26 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/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) -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/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 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/ASEParser.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/code/ASEParser.cpp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/BoostWorkaround/boost/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. -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/BoostWorkaround/boost/format.hpp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | /* DEPRECATED! - use code/TinyFormatter.h instead. 5 | * 6 | * 7 | * */ 8 | 9 | #ifndef AI_BOOST_FORMAT_DUMMY_INCLUDED 10 | #define AI_BOOST_FORMAT_DUMMY_INCLUDED 11 | 12 | #if (!defined BOOST_FORMAT_HPP) || (defined ASSIMP_FORCE_NOBOOST) 13 | 14 | #include 15 | #include 16 | 17 | namespace boost 18 | { 19 | 20 | 21 | class format 22 | { 23 | public: 24 | format (const std::string& _d) 25 | : d(_d) 26 | { 27 | } 28 | 29 | template 30 | format& operator % (T in) 31 | { 32 | // XXX add replacement for boost::lexical_cast? 33 | 34 | std::ostringstream ss; 35 | ss << in; // note: ss cannot be an rvalue, or the global operator << (const char*) is not called for T == const char*. 36 | chunks.push_back( ss.str()); 37 | return *this; 38 | } 39 | 40 | 41 | operator std::string () const { 42 | std::string res; // pray for NRVO to kick in 43 | 44 | size_t start = 0, last = 0; 45 | 46 | std::vector::const_iterator chunkin = chunks.begin(); 47 | 48 | for ( start = d.find('%');start != std::string::npos; start = d.find('%',last)) { 49 | res += d.substr(last,start-last); 50 | last = start+2; 51 | if (d[start+1] == '%') { 52 | res += "%"; 53 | continue; 54 | } 55 | 56 | if (chunkin == chunks.end()) { 57 | break; 58 | } 59 | 60 | res += *chunkin++; 61 | } 62 | res += d.substr(last); 63 | return res; 64 | } 65 | 66 | private: 67 | std::string d; 68 | std::vector chunks; 69 | }; 70 | 71 | inline std::string str(const std::string& s) { 72 | return s; 73 | } 74 | } 75 | 76 | 77 | #else 78 | # error "format.h was already included" 79 | #endif // 80 | #endif // !! AI_BOOST_FORMAT_DUMMY_INCLUDED 81 | 82 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/BoostWorkaround/boost/lexical_cast.hpp: -------------------------------------------------------------------------------- 1 | /// A quick replacement for boost::lexical_cast for all the Boost haters out there 2 | 3 | #ifndef __AI_BOOST_WORKAROUND_LEXICAL_CAST 4 | #define __AI_BOOST_WORKAROUND_LEXICAL_CAST 5 | 6 | #include 7 | 8 | namespace boost 9 | { 10 | 11 | /// A quick replacement for boost::lexical_cast - should work for all types a stringstream can handle 12 | template 13 | TargetType lexical_cast( const SourceType& source) 14 | { 15 | std::stringstream stream; 16 | TargetType result; 17 | 18 | stream << source; 19 | stream >> result; 20 | return result; 21 | } 22 | 23 | } // namespace boost 24 | 25 | #endif // __AI_BOOST_WORKAROUND_LEXICAL_CAST 26 | 27 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/BoostWorkaround/boost/math/common_factor_rt.hpp: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ifndef BOOST_MATH_COMMON_FACTOR_RT_HPP 4 | #define BOOST_MATH_COMMON_FACTOR_RT_HPP 5 | 6 | 7 | namespace boost { 8 | namespace math { 9 | 10 | // TODO: use binary GCD for unsigned integers .... 11 | template < typename IntegerType > 12 | IntegerType gcd( IntegerType a, IntegerType b ) 13 | { 14 | const IntegerType zero = (IntegerType)0; 15 | while ( true ) 16 | { 17 | if ( a == zero ) 18 | return b; 19 | b %= a; 20 | 21 | if ( b == zero ) 22 | return a; 23 | a %= b; 24 | } 25 | } 26 | 27 | template < typename IntegerType > 28 | IntegerType lcm( IntegerType a, IntegerType b ) 29 | { 30 | const IntegerType t = gcd (a,b); 31 | if (!t)return t; 32 | return a / t * b; 33 | } 34 | 35 | }} 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/BoostWorkaround/boost/noncopyable.hpp: -------------------------------------------------------------------------------- 1 | // Boost noncopyable.hpp header file --------------------------------------// 2 | 3 | // (C) Copyright Beman Dawes 1999-2003. Distributed under the Boost 4 | // Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org/libs/utility for documentation. 8 | 9 | #ifndef BOOST_NONCOPYABLE_HPP_INCLUDED 10 | #define BOOST_NONCOPYABLE_HPP_INCLUDED 11 | 12 | namespace boost { 13 | 14 | // Private copy constructor and copy assignment ensure classes derived from 15 | // class noncopyable cannot be copied. 16 | 17 | // Contributed by Dave Abrahams 18 | 19 | namespace noncopyable_ // protection from unintended ADL 20 | { 21 | class noncopyable 22 | { 23 | protected: 24 | noncopyable() {} 25 | ~noncopyable() {} 26 | private: // emphasize the following members are private 27 | noncopyable( const noncopyable& ); 28 | const noncopyable& operator=( const noncopyable& ); 29 | }; 30 | } 31 | 32 | typedef noncopyable_::noncopyable noncopyable; 33 | 34 | } // namespace boost 35 | 36 | #endif // BOOST_NONCOPYABLE_HPP_INCLUDED 37 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/BoostWorkaround/boost/pointer_cast.hpp: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright Ion Gaztanaga 2005. 4 | // Distributed under the Boost Software License, Version 1.0. 5 | // (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | ////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef BOOST_POINTER_CAST_HPP 11 | #define BOOST_POINTER_CAST_HPP 12 | 13 | namespace boost { 14 | 15 | //static_pointer_cast overload for raw pointers 16 | template 17 | inline T* static_pointer_cast(U *ptr) 18 | { 19 | return static_cast(ptr); 20 | } 21 | 22 | //dynamic_pointer_cast overload for raw pointers 23 | template 24 | inline T* dynamic_pointer_cast(U *ptr) 25 | { 26 | return dynamic_cast(ptr); 27 | } 28 | 29 | //const_pointer_cast overload for raw pointers 30 | template 31 | inline T* const_pointer_cast(U *ptr) 32 | { 33 | return const_cast(ptr); 34 | } 35 | 36 | //reinterpret_pointer_cast overload for raw pointers 37 | template 38 | inline T* reinterpret_pointer_cast(U *ptr) 39 | { 40 | return reinterpret_cast(ptr); 41 | } 42 | 43 | } // namespace boost 44 | 45 | #endif //BOOST_POINTER_CAST_HPP 46 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/BoostWorkaround/boost/scoped_array.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __AI_BOOST_SCOPED_ARRAY_INCLUDED 3 | #define __AI_BOOST_SCOPED_ARRAY_INCLUDED 4 | 5 | #ifndef BOOST_SCOPED_ARRAY_HPP_INCLUDED 6 | 7 | namespace boost { 8 | 9 | // small replacement for boost::scoped_array 10 | template 11 | class scoped_array 12 | { 13 | public: 14 | 15 | // provide a default construtctor 16 | scoped_array() 17 | : ptr(0) 18 | { 19 | } 20 | 21 | // construction from an existing heap object of type T 22 | scoped_array(T* _ptr) 23 | : ptr(_ptr) 24 | { 25 | } 26 | 27 | // automatic destruction of the wrapped object at the 28 | // end of our lifetime 29 | ~scoped_array() 30 | { 31 | delete[] ptr; 32 | } 33 | 34 | inline T* get() 35 | { 36 | return ptr; 37 | } 38 | 39 | inline T* operator-> () 40 | { 41 | return ptr; 42 | } 43 | 44 | inline void reset (T* t = 0) 45 | { 46 | delete[] ptr; 47 | ptr = t; 48 | } 49 | 50 | T & operator[](std::ptrdiff_t i) const 51 | { 52 | return ptr[i]; 53 | } 54 | 55 | void swap(scoped_array & b) 56 | { 57 | std::swap(ptr, b.ptr); 58 | } 59 | 60 | private: 61 | 62 | // encapsulated object pointer 63 | T* ptr; 64 | 65 | }; 66 | 67 | template 68 | inline void swap(scoped_array & a, scoped_array & b) 69 | { 70 | a.swap(b); 71 | } 72 | 73 | } // end of namespace boost 74 | 75 | #else 76 | # error "scoped_array.h was already included" 77 | #endif 78 | #endif // __AI_BOOST_SCOPED_ARRAY_INCLUDED 79 | 80 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/BoostWorkaround/boost/scoped_ptr.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __AI_BOOST_SCOPED_PTR_INCLUDED 3 | #define __AI_BOOST_SCOPED_PTR_INCLUDED 4 | 5 | #ifndef BOOST_SCOPED_PTR_HPP_INCLUDED 6 | 7 | namespace boost { 8 | 9 | // small replacement for boost::scoped_ptr 10 | template 11 | class scoped_ptr 12 | { 13 | public: 14 | 15 | // provide a default construtctor 16 | scoped_ptr() 17 | : ptr(0) 18 | { 19 | } 20 | 21 | // construction from an existing heap object of type T 22 | scoped_ptr(T* _ptr) 23 | : ptr(_ptr) 24 | { 25 | } 26 | 27 | // automatic destruction of the wrapped object at the 28 | // end of our lifetime 29 | ~scoped_ptr() 30 | { 31 | delete ptr; 32 | } 33 | 34 | inline T* get() const 35 | { 36 | return ptr; 37 | } 38 | 39 | inline operator T*() 40 | { 41 | return ptr; 42 | } 43 | 44 | inline T* operator-> () 45 | { 46 | return ptr; 47 | } 48 | 49 | inline void reset (T* t = 0) 50 | { 51 | delete ptr; 52 | ptr = t; 53 | } 54 | 55 | void swap(scoped_ptr & b) 56 | { 57 | std::swap(ptr, b.ptr); 58 | } 59 | 60 | private: 61 | 62 | // encapsulated object pointer 63 | T* ptr; 64 | 65 | }; 66 | 67 | template 68 | inline void swap(scoped_ptr & a, scoped_ptr & b) 69 | { 70 | a.swap(b); 71 | } 72 | 73 | } // end of namespace boost 74 | 75 | #else 76 | # error "scoped_ptr.h was already included" 77 | #endif 78 | #endif // __AI_BOOST_SCOPED_PTR_INCLUDED 79 | 80 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/BoostWorkaround/boost/static_assert.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef AI_BOOST_STATIC_ASSERT_INCLUDED 3 | #define AI_BOOST_STATIC_ASSERT_INCLUDED 4 | 5 | #ifndef BOOST_STATIC_ASSERT 6 | 7 | namespace boost { 8 | namespace detail { 9 | 10 | template class static_assertion_failure; 11 | template <> class static_assertion_failure {}; 12 | } 13 | } 14 | 15 | 16 | #define BOOST_STATIC_ASSERT(eval) \ 17 | {boost::detail::static_assertion_failure<(eval)> assert_dummy;(void)assert_dummy;} 18 | 19 | #endif 20 | #endif // !! AI_BOOST_STATIC_ASSERT_INCLUDED 21 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/FileLogStream.h: -------------------------------------------------------------------------------- 1 | #ifndef ASSIMP_FILELOGSTREAM_H_INC 2 | #define ASSIMP_FILELOGSTREAM_H_INC 3 | 4 | #include "../include/assimp/LogStream.hpp" 5 | #include "../include/assimp/IOStream.hpp" 6 | 7 | namespace Assimp { 8 | 9 | // ---------------------------------------------------------------------------------- 10 | /** @class FileLogStream 11 | * @brief Logstream to write into a file. 12 | */ 13 | class FileLogStream : 14 | public LogStream 15 | { 16 | public: 17 | FileLogStream( const char* file, IOSystem* io = NULL ); 18 | ~FileLogStream(); 19 | void write( const char* message ); 20 | 21 | private: 22 | IOStream *m_pStream; 23 | }; 24 | 25 | // ---------------------------------------------------------------------------------- 26 | // Constructor 27 | inline FileLogStream::FileLogStream( const char* file, IOSystem* io ) : 28 | m_pStream(NULL) 29 | { 30 | if ( !file || 0 == *file ) 31 | return; 32 | 33 | // If no IOSystem is specified: take a default one 34 | if (!io) 35 | { 36 | DefaultIOSystem FileSystem; 37 | m_pStream = FileSystem.Open( file, "wt"); 38 | } 39 | else m_pStream = io->Open( file, "wt" ); 40 | } 41 | 42 | // ---------------------------------------------------------------------------------- 43 | // Destructor 44 | inline FileLogStream::~FileLogStream() 45 | { 46 | // The virtual d'tor should destroy the underlying file 47 | delete m_pStream; 48 | } 49 | 50 | // ---------------------------------------------------------------------------------- 51 | // Write method 52 | inline void FileLogStream::write( const char* message ) 53 | { 54 | if (m_pStream != NULL) 55 | { 56 | m_pStream->Write(message, sizeof(char), ::strlen(message)); 57 | m_pStream->Flush(); 58 | } 59 | } 60 | 61 | // ---------------------------------------------------------------------------------- 62 | } // !Namespace Assimp 63 | 64 | #endif // !! ASSIMP_FILELOGSTREAM_H_INC 65 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/LWOMaterial.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/code/LWOMaterial.cpp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/SMDLoader.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/code/SMDLoader.cpp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/SpatialSort.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/code/SpatialSort.cpp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/StdOStreamLogStream.h: -------------------------------------------------------------------------------- 1 | #ifndef AI_STROSTREAMLOGSTREAM_H_INC 2 | #define AI_STROSTREAMLOGSTREAM_H_INC 3 | 4 | #include "../include/assimp/LogStream.hpp" 5 | #include 6 | 7 | namespace Assimp { 8 | 9 | // --------------------------------------------------------------------------- 10 | /** @class StdOStreamLogStream 11 | * @brief Logs into a std::ostream 12 | */ 13 | class StdOStreamLogStream : public LogStream 14 | { 15 | public: 16 | /** @brief Construction from an existing std::ostream 17 | * @param _ostream Output stream to be used 18 | */ 19 | StdOStreamLogStream(std::ostream& _ostream); 20 | 21 | /** @brief Destructor */ 22 | ~StdOStreamLogStream(); 23 | 24 | /** @brief Writer */ 25 | void write(const char* message); 26 | private: 27 | std::ostream& ostream; 28 | }; 29 | 30 | // --------------------------------------------------------------------------- 31 | // Default constructor 32 | inline StdOStreamLogStream::StdOStreamLogStream(std::ostream& _ostream) 33 | : ostream (_ostream) 34 | {} 35 | 36 | // --------------------------------------------------------------------------- 37 | // Default constructor 38 | inline StdOStreamLogStream::~StdOStreamLogStream() 39 | {} 40 | 41 | // --------------------------------------------------------------------------- 42 | // Write method 43 | inline void StdOStreamLogStream::write(const char* message) 44 | { 45 | ostream << message; 46 | ostream.flush(); 47 | } 48 | 49 | // --------------------------------------------------------------------------- 50 | } // Namespace Assimp 51 | 52 | #endif // guard 53 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/Win32DebugLogStream.h: -------------------------------------------------------------------------------- 1 | #ifndef AI_WIN32DEBUGLOGSTREAM_H_INC 2 | #define AI_WIN32DEBUGLOGSTREAM_H_INC 3 | 4 | #ifdef WIN32 5 | 6 | #include "../include/assimp/LogStream.hpp" 7 | #include "windows.h" 8 | 9 | namespace Assimp { 10 | 11 | // --------------------------------------------------------------------------- 12 | /** @class Win32DebugLogStream 13 | * @brief Logs into the debug stream from win32. 14 | */ 15 | class Win32DebugLogStream : 16 | public LogStream 17 | { 18 | public: 19 | /** @brief Default constructor */ 20 | Win32DebugLogStream(); 21 | 22 | /** @brief Destructor */ 23 | ~Win32DebugLogStream(); 24 | 25 | /** @brief Writer */ 26 | void write(const char* messgae); 27 | }; 28 | 29 | // --------------------------------------------------------------------------- 30 | // Default constructor 31 | inline Win32DebugLogStream::Win32DebugLogStream() 32 | {} 33 | 34 | // --------------------------------------------------------------------------- 35 | // Default constructor 36 | inline Win32DebugLogStream::~Win32DebugLogStream() 37 | {} 38 | 39 | // --------------------------------------------------------------------------- 40 | // Write method 41 | inline void Win32DebugLogStream::write(const char* message) 42 | { 43 | OutputDebugStringA( message); 44 | } 45 | 46 | // --------------------------------------------------------------------------- 47 | } // Namespace Assimp 48 | 49 | #endif // ! WIN32 50 | #endif // guard 51 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/code/res/resource.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/code/res/resource.h -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/doc/AssimpCmdDoc_Html/AssimpCmdDoc.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/doc/AssimpCmdDoc_Html/AssimpCmdDoc.chm -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/doc/AssimpCmdDoc_Html/dragonsplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/doc/AssimpCmdDoc_Html/dragonsplash.png -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/doc/AssimpDoc_Html/AnimationOverview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/doc/AssimpDoc_Html/AnimationOverview.png -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/doc/AssimpDoc_Html/AssimpDoc.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/doc/AssimpDoc_Html/AssimpDoc.chm -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/doc/AssimpDoc_Html/dragonsplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/doc/AssimpDoc_Html/dragonsplash.png -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/doc/Preamble.txt: -------------------------------------------------------------------------------- 1 | /* 2 | --------------------------------------------------------------------------- 3 | Open Asset Import Library (assimp) 4 | --------------------------------------------------------------------------- 5 | 6 | Copyright (c) 2006-2012, 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 | */ -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/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(__BORLANDC__) || defined (__BCPLUSPLUS__) 18 | # pragma pack( pop ) 19 | #endif 20 | #undef PACK_STRUCT 21 | 22 | #undef AI_PUSHPACK_IS_DEFINED 23 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/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(__BORLANDC__) || defined (__BCPLUSPLUS__) 26 | # pragma pack(push,1) 27 | # define PACK_STRUCT 28 | #elif defined( __GNUC__ ) 29 | # if defined(__clang__) 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 | 40 | // C4103: Packing was changed after the inclusion of the header, propably missing #pragma pop 41 | # pragma warning (disable : 4103) 42 | #endif 43 | 44 | #define AI_PUSHPACK_IS_DEFINED 45 | 46 | 47 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/include/assimp/ai_assert.h: -------------------------------------------------------------------------------- 1 | /** @file assert.h 2 | */ 3 | #ifndef AI_DEBUG_H_INC 4 | #define AI_DEBUG_H_INC 5 | 6 | #ifdef ASSIMP_BUILD_DEBUG 7 | # include 8 | # define ai_assert(expression) assert(expression) 9 | #else 10 | # define ai_assert(expression) 11 | #endif 12 | 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/include/assimp/defs.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/include/assimp/defs.h -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/include/assimp/matrix3x3.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/include/assimp/matrix3x3.h -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/include/assimp/matrix3x3.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/include/assimp/matrix3x3.inl -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/include/assimp/matrix4x4.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/include/assimp/matrix4x4.h -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/include/assimp/matrix4x4.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/include/assimp/matrix4x4.inl -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/packaging/windows-innosetup/WEB: -------------------------------------------------------------------------------- 1 | 2 | Project home page: 3 | http://assimp.sourceforge.net 4 | 5 | Sourceforge.net project page: 6 | http://www.sourceforge.net/projects/assimp 7 | 8 | 9 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/packaging/windows-innosetup/howto-build-setup.txt: -------------------------------------------------------------------------------- 1 | 2 | How to build the Assimp installer using Inno Setup 3 | 4 | 5 | 1) Get MS VC 2008 SP1 redist packages for x86 and amd64 and copy 'em right here. 6 | 7 | vcredist_x86.exe 8 | vcredist_x64.exe 9 | 10 | 2) Get D3DCompiler_NN.dll and D3DX9_NN.dll from a) your system32 folder and b) your SysWOW64 folder. Copy all 4 here. Rename the 64 bit files to _x64.dll. NN is the D3DX version targeted by your DX SDK. If it is not 42, you need to update the Inno setup script (script.iss) as well. If you don't have a 64 bit Windows, get the DLLs from somebody else. Please don't ask google because many DLL downloads are infected. 11 | 12 | 3) Build assimp, assimpcmd and assimpview for the 'release-dll' target and both the Win32 and x64 architectures. 13 | 14 | 4) Get Inno Setup 15 | 5) Compile, output is written to the 'out' folder. 16 | 17 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/packaging/windows-innosetup/readme_installer.txt: -------------------------------------------------------------------------------- 1 | 2 | ------------------------------------------------------------------------------------ 3 | Open Asset Import Library (Assimp) SDK Installer 4 | Release Notes 5 | ------------------------------------------------------------------------------------ 6 | 7 | http://assimp.sf.net 8 | 9 | 10 | Troubleshooting 11 | =============== 12 | 13 | 1. Missing d3dx9_(some-number).dll? 14 | Install the latest DirectX runtime or grab the file from somewhere (that's evil but mostly fine). 15 | 16 | 2. Application configuration not correct / missing msvcr***.dll? 17 | Reinstall Microsoft Visual C++ 2005 SP1 Redistributable (x86 or x64, depending on your system) 18 | 19 | 3. assimp.exe not in PATH 20 | Add it to PATH. That's not a bug, the installer does not alter the PATH. 21 | 22 | 4. Crashes immediately 23 | You CPU lacks SSE2 support. Build Assimp from scratch to suit your CPU, sorry. 24 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/packaging/windows-innosetup/readme_installer_vieweronly.txt: -------------------------------------------------------------------------------- 1 | 2 | ------------------------------------------------------------------------------------ 3 | Open Asset Import Library (Assimp) Viewer Installer 4 | Release Notes 5 | ------------------------------------------------------------------------------------ 6 | 7 | http://assimp.sf.net 8 | 9 | Known Bugs & Limitations 10 | ======================== 11 | 12 | Viewer 13 | 14 | - Normals appear flipped from time to time when either of the normals-related menu items was hit. 15 | - Alpha-sorting is implemented, but still causes artifacts when models are moved quickly. 16 | - Several important texture file formats (such as GIF) are not supported. 17 | - HUD is blurred on the right side. ATI/AMD hardware only. 18 | 19 | Troubleshooting 20 | =============== 21 | 22 | 1. Missing d3dx9_(number).dll? 23 | Install the latest DirectX runtime or grab the file from somewhere (that's evil but mostly fine). 24 | 25 | 2. Application configuration not correct / missing msvcr***.dll? 26 | Reinstall Microsoft Visual C++ 2005 SP1 Redistributable (x86 or x64, depending on your system) 27 | 28 | 3. assimp.exe not in PATH 29 | Add it to PATH. That's not a bug, the installer does not alter the PATH. 30 | 31 | 4. Crashes immediately 32 | You CPU lacks SSE2 support. Build Assimp from scratch to suit your CPU, sorry. -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/packaging/windows-mkzip/bin_readme.txt: -------------------------------------------------------------------------------- 1 | 2 | ------------------------------------------------------------------------------------ 3 | Open Asset Import Library (Assimp) Tools/Binaries for Windows 4 | Release Notes 5 | ------------------------------------------------------------------------------------ 6 | 7 | 8 | Known Bugs & Limitations 9 | ======================== 10 | 11 | Viewer 12 | 13 | - For files more than one embedded texture, only the first is loaded. 14 | - Normals appear flipped from time to time when either of the normals-related menu items was hit. 15 | - Alpha-sorting is implemented, but still causes artifacts when models are moved quickly. 16 | - Several important texture file formats (such as GIF) are not supported. 17 | - HUD is blurred on the right side. ATI/AMD hardware only. 18 | 19 | Troubleshooting 20 | =============== 21 | 22 | 1. Missing d3dx9_42.dll? 23 | Install the latest DirectX runtime or grab the file from somewhere (that's evil but mostly fine). 24 | 25 | 2. Application configuration not correct / missing msv*** DLLs? 26 | (Re)install Microsoft Visual C++ 2005 SP1 Redistributable (x86 or x64, depending on your system) 27 | 28 | 3. Crashes immediately 29 | You CPU lacks SSE2 support. Build Assimp from scratch to suit your CPU, sorry. -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/packaging/windows-mkzip/mkrev.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem ----------------------------------------------------- 4 | rem Tiny batch script to build the input file revision.h 5 | rem revision.h contains the revision number of the wc. 6 | rem It is included by assimp.rc. 7 | rem ----------------------------------------------------- 8 | 9 | rem This is not very elegant, but it works. 10 | rem ./bin shouldn't have any local modifications 11 | 12 | svnversion > tmpfile.txt 13 | set /p addtext= < tmpfile.txt 14 | del /q tmpfile.txt 15 | 16 | echo #define SVNRevision > tmpfile.txt 17 | 18 | if exist ..\..\revision.h del /q ..\..\revision.h 19 | for /f "delims=" %%l in (tmpfile.txt) Do ( 20 | for /f "delims=M:" %%r in ("%addtext%") Do ( 21 | echo %%l %%r >> ..\..\revision.h 22 | ) 23 | ) 24 | del /q tmpfile.txt 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET/AssimpSwigPort.i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET/AssimpSwigPort.i -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/ProgressHandler.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | using System; 11 | using System.Runtime.InteropServices; 12 | 13 | public class ProgressHandler : IDisposable { 14 | private HandleRef swigCPtr; 15 | protected bool swigCMemOwn; 16 | 17 | internal ProgressHandler(IntPtr cPtr, bool cMemoryOwn) { 18 | swigCMemOwn = cMemoryOwn; 19 | swigCPtr = new HandleRef(this, cPtr); 20 | } 21 | 22 | internal static HandleRef getCPtr(ProgressHandler obj) { 23 | return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; 24 | } 25 | 26 | ~ProgressHandler() { 27 | Dispose(); 28 | } 29 | 30 | public virtual void Dispose() { 31 | lock(this) { 32 | if (swigCPtr.Handle != IntPtr.Zero) { 33 | if (swigCMemOwn) { 34 | swigCMemOwn = false; 35 | AssimpPINVOKE.delete_ProgressHandler(swigCPtr); 36 | } 37 | swigCPtr = new HandleRef(null, IntPtr.Zero); 38 | } 39 | GC.SuppressFinalize(this); 40 | } 41 | } 42 | 43 | public virtual bool Update(float percentage) { 44 | bool ret = AssimpPINVOKE.ProgressHandler_Update__SWIG_0(swigCPtr, percentage); 45 | return ret; 46 | } 47 | 48 | public virtual bool Update() { 49 | bool ret = AssimpPINVOKE.ProgressHandler_Update__SWIG_1(swigCPtr); 50 | return ret; 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_Assimp__BaseImporter.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | using System; 11 | using System.Runtime.InteropServices; 12 | 13 | public class SWIGTYPE_p_Assimp__BaseImporter { 14 | private HandleRef swigCPtr; 15 | 16 | internal SWIGTYPE_p_Assimp__BaseImporter(IntPtr cPtr, bool futureUse) { 17 | swigCPtr = new HandleRef(this, cPtr); 18 | } 19 | 20 | protected SWIGTYPE_p_Assimp__BaseImporter() { 21 | swigCPtr = new HandleRef(null, IntPtr.Zero); 22 | } 23 | 24 | internal static HandleRef getCPtr(SWIGTYPE_p_Assimp__BaseImporter obj) { 25 | return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_Assimp__ImporterPimpl.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | using System; 11 | using System.Runtime.InteropServices; 12 | 13 | public class SWIGTYPE_p_Assimp__ImporterPimpl { 14 | private HandleRef swigCPtr; 15 | 16 | internal SWIGTYPE_p_Assimp__ImporterPimpl(IntPtr cPtr, bool futureUse) { 17 | swigCPtr = new HandleRef(this, cPtr); 18 | } 19 | 20 | protected SWIGTYPE_p_Assimp__ImporterPimpl() { 21 | swigCPtr = new HandleRef(null, IntPtr.Zero); 22 | } 23 | 24 | internal static HandleRef getCPtr(SWIGTYPE_p_Assimp__ImporterPimpl obj) { 25 | return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_aiImporterDesc.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | using System; 11 | using System.Runtime.InteropServices; 12 | 13 | public class SWIGTYPE_p_aiImporterDesc { 14 | private HandleRef swigCPtr; 15 | 16 | internal SWIGTYPE_p_aiImporterDesc(IntPtr cPtr, bool futureUse) { 17 | swigCPtr = new HandleRef(this, cPtr); 18 | } 19 | 20 | protected SWIGTYPE_p_aiImporterDesc() { 21 | swigCPtr = new HandleRef(null, IntPtr.Zero); 22 | } 23 | 24 | internal static HandleRef getCPtr(SWIGTYPE_p_aiImporterDesc obj) { 25 | return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_float.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | using System; 11 | using System.Runtime.InteropServices; 12 | 13 | public class SWIGTYPE_p_float { 14 | private HandleRef swigCPtr; 15 | 16 | internal SWIGTYPE_p_float(IntPtr cPtr, bool futureUse) { 17 | swigCPtr = new HandleRef(this, cPtr); 18 | } 19 | 20 | protected SWIGTYPE_p_float() { 21 | swigCPtr = new HandleRef(null, IntPtr.Zero); 22 | } 23 | 24 | internal static HandleRef getCPtr(SWIGTYPE_p_float obj) { 25 | return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_std__string.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | using System; 11 | using System.Runtime.InteropServices; 12 | 13 | public class SWIGTYPE_p_std__string { 14 | private HandleRef swigCPtr; 15 | 16 | internal SWIGTYPE_p_std__string(IntPtr cPtr, bool futureUse) { 17 | swigCPtr = new HandleRef(this, cPtr); 18 | } 19 | 20 | protected SWIGTYPE_p_std__string() { 21 | swigCPtr = new HandleRef(null, IntPtr.Zero); 22 | } 23 | 24 | internal static HandleRef getCPtr(SWIGTYPE_p_std__string obj) { 25 | return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/SWIGTYPE_p_void.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | using System; 11 | using System.Runtime.InteropServices; 12 | 13 | public class SWIGTYPE_p_void { 14 | private HandleRef swigCPtr; 15 | 16 | internal SWIGTYPE_p_void(IntPtr cPtr, bool futureUse) { 17 | swigCPtr = new HandleRef(this, cPtr); 18 | } 19 | 20 | protected SWIGTYPE_p_void() { 21 | swigCPtr = new HandleRef(null, IntPtr.Zero); 22 | } 23 | 24 | internal static HandleRef getCPtr(SWIGTYPE_p_void obj) { 25 | return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiAnimBehaviour.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiAnimBehaviour { 11 | aiAnimBehaviour_DEFAULT = 0x0, 12 | aiAnimBehaviour_CONSTANT = 0x1, 13 | aiAnimBehaviour_LINEAR = 0x2, 14 | aiAnimBehaviour_REPEAT = 0x3 15 | } 16 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiBlendMode.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiBlendMode { 11 | aiBlendMode_Default = 0x0, 12 | aiBlendMode_Additive = 0x1 13 | } 14 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiComponent.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiComponent { 11 | aiComponent_NORMALS = 0x2, 12 | aiComponent_TANGENTS_AND_BITANGENTS = 0x4, 13 | aiComponent_COLORS = 0x8, 14 | aiComponent_TEXCOORDS = 0x10, 15 | aiComponent_BONEWEIGHTS = 0x20, 16 | aiComponent_ANIMATIONS = 0x40, 17 | aiComponent_TEXTURES = 0x80, 18 | aiComponent_LIGHTS = 0x100, 19 | aiComponent_CAMERAS = 0x200, 20 | aiComponent_MESHES = 0x400, 21 | aiComponent_MATERIALS = 0x800 22 | } 23 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiDefaultLogStream.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiDefaultLogStream { 11 | aiDefaultLogStream_FILE = 0x1, 12 | aiDefaultLogStream_STDOUT = 0x2, 13 | aiDefaultLogStream_STDERR = 0x4, 14 | aiDefaultLogStream_DEBUGGER = 0x8, 15 | _AI_DLS_ENFORCE_ENUM_SIZE = 0x7fffffff 16 | } 17 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiLightSourceType.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiLightSourceType { 11 | aiLightSource_UNDEFINED = 0x0, 12 | aiLightSource_DIRECTIONAL = 0x1, 13 | aiLightSource_POINT = 0x2, 14 | aiLightSource_SPOT = 0x3 15 | } 16 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiOrigin.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiOrigin { 11 | aiOrigin_SET = 0x0, 12 | aiOrigin_CUR = 0x1, 13 | aiOrigin_END = 0x2, 14 | _AI_ORIGIN_ENFORCE_ENUM_SIZE = 0x7fffffff 15 | } 16 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiPostProcessSteps.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiPostProcessSteps { 11 | aiProcess_CalcTangentSpace = 0x1, 12 | aiProcess_JoinIdenticalVertices = 0x2, 13 | aiProcess_MakeLeftHanded = 0x4, 14 | aiProcess_Triangulate = 0x8, 15 | aiProcess_RemoveComponent = 0x10, 16 | aiProcess_GenNormals = 0x20, 17 | aiProcess_GenSmoothNormals = 0x40, 18 | aiProcess_SplitLargeMeshes = 0x80, 19 | aiProcess_PreTransformVertices = 0x100, 20 | aiProcess_LimitBoneWeights = 0x200, 21 | aiProcess_ValidateDataStructure = 0x400, 22 | aiProcess_ImproveCacheLocality = 0x800, 23 | aiProcess_RemoveRedundantMaterials = 0x1000, 24 | aiProcess_FixInfacingNormals = 0x2000, 25 | aiProcess_SortByPType = 0x8000, 26 | aiProcess_FindDegenerates = 0x10000, 27 | aiProcess_FindInvalidData = 0x20000, 28 | aiProcess_GenUVCoords = 0x40000, 29 | aiProcess_TransformUVCoords = 0x80000, 30 | aiProcess_FindInstances = 0x100000, 31 | aiProcess_OptimizeMeshes = 0x200000, 32 | aiProcess_OptimizeGraph = 0x400000, 33 | aiProcess_FlipUVs = 0x800000, 34 | aiProcess_FlipWindingOrder = 0x1000000, 35 | aiProcess_SplitByBoneCount = 0x2000000, 36 | aiProcess_Debone = 0x4000000 37 | 38 | , aiProcess_ConvertToLeftHanded = aiProcess_MakeLeftHanded|aiProcess_FlipUVs|aiProcess_FlipWindingOrder, 39 | } 40 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiPrimitiveType.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiPrimitiveType { 11 | aiPrimitiveType_POINT = 0x1, 12 | aiPrimitiveType_LINE = 0x2, 13 | aiPrimitiveType_TRIANGLE = 0x4, 14 | aiPrimitiveType_POLYGON = 0x8 15 | } 16 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiPropertyTypeInfo.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiPropertyTypeInfo { 11 | aiPTI_Float = 0x1, 12 | aiPTI_String = 0x3, 13 | aiPTI_Integer = 0x4, 14 | aiPTI_Buffer = 0x5 15 | } 16 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiReturn.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiReturn { 11 | aiReturn_SUCCESS = 0x0, 12 | aiReturn_FAILURE = -0x1, 13 | aiReturn_OUTOFMEMORY = -0x3, 14 | _AI_ENFORCE_ENUM_SIZE = 0x7fffffff 15 | } 16 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiShadingMode.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiShadingMode { 11 | aiShadingMode_Flat = 0x1, 12 | aiShadingMode_Gouraud = 0x2, 13 | aiShadingMode_Phong = 0x3, 14 | aiShadingMode_Blinn = 0x4, 15 | aiShadingMode_Toon = 0x5, 16 | aiShadingMode_OrenNayar = 0x6, 17 | aiShadingMode_Minnaert = 0x7, 18 | aiShadingMode_CookTorrance = 0x8, 19 | aiShadingMode_NoShading = 0x9, 20 | aiShadingMode_Fresnel = 0xa 21 | } 22 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiTextureFlags.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiTextureFlags { 11 | aiTextureFlags_Invert = 0x1, 12 | aiTextureFlags_UseAlpha = 0x2, 13 | aiTextureFlags_IgnoreAlpha = 0x4 14 | } 15 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiTextureMapMode.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiTextureMapMode { 11 | aiTextureMapMode_Wrap = 0x0, 12 | aiTextureMapMode_Clamp = 0x1, 13 | aiTextureMapMode_Decal = 0x3, 14 | aiTextureMapMode_Mirror = 0x2 15 | } 16 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiTextureMapping.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiTextureMapping { 11 | aiTextureMapping_UV = 0x0, 12 | aiTextureMapping_SPHERE = 0x1, 13 | aiTextureMapping_CYLINDER = 0x2, 14 | aiTextureMapping_BOX = 0x3, 15 | aiTextureMapping_PLANE = 0x4, 16 | aiTextureMapping_OTHER = 0x5 17 | } 18 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiTextureOp.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiTextureOp { 11 | aiTextureOp_Multiply = 0x0, 12 | aiTextureOp_Add = 0x1, 13 | aiTextureOp_Subtract = 0x2, 14 | aiTextureOp_Divide = 0x3, 15 | aiTextureOp_SmoothAdd = 0x4, 16 | aiTextureOp_SignedAdd = 0x5 17 | } 18 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/aiTextureType.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.8 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | 10 | public enum aiTextureType { 11 | aiTextureType_NONE = 0x0, 12 | aiTextureType_DIFFUSE = 0x1, 13 | aiTextureType_SPECULAR = 0x2, 14 | aiTextureType_AMBIENT = 0x3, 15 | aiTextureType_EMISSIVE = 0x4, 16 | aiTextureType_HEIGHT = 0x5, 17 | aiTextureType_NORMALS = 0x6, 18 | aiTextureType_SHININESS = 0x7, 19 | aiTextureType_OPACITY = 0x8, 20 | aiTextureType_DISPLACEMENT = 0x9, 21 | aiTextureType_LIGHTMAP = 0xA, 22 | aiTextureType_REFLECTION = 0xB, 23 | aiTextureType_UNKNOWN = 0xC 24 | } 25 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_CS/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_DEMO/Assimp.NET_DEMO.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | false 4 | 5 | 6 | publish\ 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | de-DE 16 | false 17 | 18 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_DEMO/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Allgemeine Informationen über eine Assembly werden über die folgenden 6 | // Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, 7 | // die mit einer Assembly verknüpft sind. 8 | [assembly: AssemblyTitle("Assimp.NET_DEMO")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("Assimp.NET_DEMO")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2010")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar 18 | // für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von 19 | // COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest. 20 | [assembly: ComVisible(false)] 21 | 22 | // Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird 23 | [assembly: Guid("bdbe5566-8c2f-4bef-9d1c-bcb9a916cf69")] 24 | 25 | // Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: 26 | // 27 | // Hauptversion 28 | // Nebenversion 29 | // Buildnummer 30 | // Revision 31 | // 32 | // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern 33 | // übernehmen, indem Sie "*" eingeben: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_DEMO/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:2.0.50727.4927 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Assimp.Viewer.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_DEMO/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/Assimp.NET_DEMO/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/CSharpViewerScreenShot.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/port/Assimp.NET/CSharpViewerScreenShot.PNG -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/AssimpDelphi/Readme.txt: -------------------------------------------------------------------------------- 1 | This is a set of Delphi units for using the Assimp C DLL. This was created for use with Delphi 7, but should be usable as-is or with minimal modifications with later Delphi versions. 2 | 3 | This set of headers is enough to load and display a model with external textures. Since I'm not familiar with animated models and some of the other functionality of the assimp library, I did not convert the headers for those features. 4 | 5 | See http://sourceforge.net/tracker/?func=detail&aid=3212646&group_id=226462&atid=1067634 for the original patch 6 | 7 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/AssimpDelphi/aiColor4D.pas: -------------------------------------------------------------------------------- 1 | unit aiColor4D; 2 | 3 | interface 4 | 5 | const AI_MAX_NUMBER_OF_COLOR_SETS = $04; 6 | 7 | type TaiColor4D = packed record 8 | r, g, b, a: single; 9 | end; 10 | type PaiColor4D = ^TaiColor4D; 11 | 12 | type TaiColor4DArray = array[0..0] of TaiColor4D; 13 | type PTaiColor4DArray = ^TaiColor4DArray; 14 | 15 | implementation 16 | 17 | end. 18 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/AssimpDelphi/aiMatrix3x3.pas: -------------------------------------------------------------------------------- 1 | unit aiMatrix3x3; 2 | 3 | interface 4 | 5 | type TaiMatrix3x3 = packed record 6 | a1, a2, a3, a4: single; 7 | b1, b2, b3, b4: single; 8 | c1, c2, c3, c4: single; 9 | end; 10 | PaiMatrix3x3 = ^TaiMatrix3x3; 11 | 12 | 13 | 14 | implementation 15 | 16 | end. 17 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/AssimpDelphi/aiMatrix4x4.pas: -------------------------------------------------------------------------------- 1 | unit aiMatrix4x4; 2 | 3 | interface 4 | 5 | type TaiMatrix4x4 = packed record 6 | a1, a2, a3, a4: single; 7 | b1, b2, b3, b4: single; 8 | c1, c2, c3, c4: single; 9 | d1, d2, d3, d4: single; 10 | end; 11 | PaiMatrix4x4 = ^TaiMatrix4x4; 12 | 13 | 14 | implementation 15 | 16 | end. 17 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/AssimpDelphi/aiMesh.pas: -------------------------------------------------------------------------------- 1 | unit aiMesh; 2 | 3 | interface 4 | 5 | uses aiTypes, aiMatrix4x4, aiVector3D, aiColor4D; 6 | 7 | const 8 | AI_MAX_NUMBER_OF_COLOR_SETS = $4; 9 | AI_MAX_NUMBER_OF_TEXTURECOORDS = $4; 10 | 11 | type TaiFace = packed record 12 | mNumIndicies: cardinal; 13 | mIndices: PCardinalArray; 14 | end; 15 | type PaiFace = ^TaiFace; 16 | type PaiFaceArray = array [0..0] of PaiFace; 17 | 18 | type TaiFaceArray = array [0..0] of TaiFace; 19 | type PTaiFaceArray = ^TaiFaceArray; 20 | 21 | type TaiVertexWeight = packed record 22 | mVertexId: cardinal; 23 | mWeight: single; 24 | end; 25 | 26 | type TaiBone = packed record 27 | mName: aiString; 28 | mNumWeights: cardinal; 29 | mWeights: Pointer; 30 | mOffsetMatrix: TaiMatrix4x4; 31 | end; 32 | type PaiBone = ^TaiBone; 33 | 34 | type TaiPrimitiveType = 35 | ( 36 | aiPrimitiveType_POINT = $1, 37 | aiPrimitiveType_LINE = $2, 38 | aiPrimitiveType_TRIANGLE = $4, 39 | aiPrimitiveType_POLYGON = $8 40 | //,_aiPrimitiveType_Force32Bit = $9fffffff 41 | ); 42 | 43 | type TaiMesh = packed record 44 | mPrimitiveTypes: cardinal; 45 | mNumVertices: cardinal; 46 | mNumFaces: cardinal; 47 | mVertices: PTaiVector3DArray; 48 | mNormals: PTaiVector3DArray; 49 | mTangents: PaiVector3DArray; 50 | mBitangents: PaiVector3DArray; 51 | mColors: array[0..3] of PTaiColor4Darray; //array [0..3] of PaiColor4DArray; //array of 4 52 | mTextureCoords: array [0..3] of PTaiVector3DArray; //array of 4 53 | mNumUVComponents: array[0..AI_MAX_NUMBER_OF_TEXTURECOORDS -1] of cardinal; 54 | mFaces: PTaiFaceArray; 55 | mNumBones: cardinal; 56 | mBones: PaiBone; 57 | mMaterialIndex: cardinal; 58 | mName: aiString; 59 | mNumAniMeshes: cardinal; 60 | mAniMeshes: pointer; 61 | end; 62 | type PaiMesh = ^TaiMesh; 63 | type PPaiMesh = ^PaiMesh; 64 | type PaiMeshArray = array [0..0] of PaiMesh; 65 | type PPaiMeshArray = ^PaiMeshArray; 66 | 67 | 68 | 69 | implementation 70 | 71 | end. 72 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/AssimpDelphi/aiQuaternion.pas: -------------------------------------------------------------------------------- 1 | unit aiQuaternion; 2 | 3 | interface 4 | 5 | type TaiQuaternion = packed record 6 | w, x, y, z: single; 7 | end; 8 | type PaiQuaternion = ^TaiQuaternion; 9 | 10 | implementation 11 | 12 | end. 13 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/AssimpDelphi/aiScene.pas: -------------------------------------------------------------------------------- 1 | unit aiScene; 2 | 3 | interface 4 | 5 | uses aiTypes, aiMatrix4x4, aiMesh, aiMaterial, aiTexture; 6 | 7 | 8 | type 9 | PaiNode = ^TaiNode; 10 | PPaiNode = ^PaiNode; 11 | PaiNodeArray = array[0..0] of PaiNode; 12 | PPaiNodeArray = ^PaiNodeArray; 13 | 14 | TaiNode = packed record 15 | mName: aiString; 16 | mTransformation: TaiMatrix4x4; 17 | mParent: PPaiNode; 18 | mNumChildren: cardinal; 19 | mChildren: PPaiNodeArray; 20 | mNumMeshes: cardinal; 21 | mMeshes: PCardinalArray; 22 | end; 23 | 24 | 25 | 26 | type TaiScene = packed record 27 | mFlags: cardinal; 28 | mRootNode: PaiNode; 29 | mNumMeshes: Cardinal; 30 | mMeshes: PPaiMeshArray; //? 31 | mNumMaterials: Cardinal; 32 | mMaterials: PPaiMaterialArray; 33 | mNumAnimations: Cardinal; 34 | mAnimations: Pointer; 35 | mNumTextures: Cardinal; 36 | mTextures: PPaiTextureArray; 37 | mNumLights: Cardinal; 38 | mLights: Pointer; 39 | mNumCameras: Cardinal; 40 | mCameras: Pointer; 41 | end; 42 | type PaiScene = ^TaiScene; 43 | 44 | implementation 45 | 46 | end. 47 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/AssimpDelphi/aiTexture.pas: -------------------------------------------------------------------------------- 1 | unit aiTexture; 2 | 3 | interface 4 | 5 | type TaiTexel = packed record 6 | b, g, r, a: byte; 7 | end; 8 | PaiTexel = ^TaiTexel; 9 | TaiTexelArray = array[0..0] of TaiTexel; 10 | PaiTexelArray = ^TaiTexelArray; 11 | 12 | type TaiTexture = packed record 13 | mWidth: Cardinal; //width in pixels, OR total embedded file size if texture is a jpg/png/etc 14 | mHeight: Cardinal; //0 if texture is an embedded file 15 | achFormatHint: array[0..3] of byte; 16 | pcData: PaiTexelArray; 17 | end; 18 | PaiTexture = ^TaiTexture; 19 | PaiTextureArray = array [0..0] of PaiTexture; 20 | PPaiTextureArray = ^PaiTextureArray; 21 | 22 | 23 | 24 | implementation 25 | 26 | end. 27 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/AssimpDelphi/aiTypes.pas: -------------------------------------------------------------------------------- 1 | unit aiTypes; 2 | 3 | interface 4 | 5 | //added for Delphi interface 6 | type 7 | TCardinalArray = array [0..0] of Cardinal; 8 | PCardinalArray = ^TCardinalArray; 9 | 10 | TSingleArray = array[0..0] of Single; 11 | PSingleArray = ^TSingleArray; 12 | 13 | type aiString = packed record 14 | length: Cardinal; 15 | data: array [0..1023] of char; 16 | end; 17 | type PaiString = ^aiString; 18 | 19 | type aiReturn = ( 20 | aiReturn_SUCCESS = $0, 21 | aiReturn_FAILURE = -$1, 22 | aiReturn_OUTOFMEMORY = -$3, 23 | _AI_ENFORCE_ENUM_SIZE = $7fffffff 24 | ); 25 | 26 | const AI_SUCCESS = aiReturn_SUCCESS; 27 | const AI_FAILURE = aiReturn_FAILURE; 28 | const AI_OUTOFMEMORY = aiReturn_OUTOFMEMORY; 29 | 30 | 31 | 32 | 33 | function aiStringToDelphiString( a: aiString): AnsiString; 34 | 35 | 36 | implementation 37 | 38 | function aiStringToDelphiString( a: aiString): AnsiString; 39 | var 40 | i: integer; 41 | begin 42 | result := ''; 43 | if a.length > 0 then 44 | begin 45 | SetLength( result, a.length); 46 | for i := 1 to a.length do 47 | begin 48 | result[i] := a.data[i-1]; 49 | end; 50 | end; 51 | end; 52 | 53 | end. 54 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/AssimpDelphi/aiVector2D.pas: -------------------------------------------------------------------------------- 1 | unit aiVector2D; 2 | 3 | interface 4 | 5 | type TaiVector2D = packed record 6 | x, y: single; 7 | end; 8 | type PaiVector2D = ^TaiVector2D; 9 | 10 | 11 | implementation 12 | 13 | end. 14 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/AssimpDelphi/aiVector3D.pas: -------------------------------------------------------------------------------- 1 | unit aiVector3D; 2 | 3 | interface 4 | 5 | type TaiVector3D = packed record 6 | x, y, z: single; 7 | end; 8 | type PaiVector3D = ^TaiVector3D; 9 | type PaiVector3DArray = array [0..0] of PaiVector3D; 10 | 11 | type TaiVector3DArray = array[0..0] of TaiVector3D; 12 | type PTaiVector3DArray = ^TaiVector3DArray; 13 | 14 | implementation 15 | 16 | end. 17 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/PyAssimp/pyassimp/__init__.py: -------------------------------------------------------------------------------- 1 | from .core import * 2 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/PyAssimp/pyassimp/errors.py: -------------------------------------------------------------------------------- 1 | #-*- coding: UTF-8 -*- 2 | 3 | """ 4 | All possible errors. 5 | """ 6 | 7 | class AssimpError(BaseException): 8 | """ 9 | If an internal error occures. 10 | """ 11 | pass -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/PyAssimp/scripts/README.md: -------------------------------------------------------------------------------- 1 | pyassimp examples 2 | ================= 3 | 4 | - `sample.py`: shows how to load a model with pyassimp, and display some statistics. 5 | - `3d_viewer.py`: an OpenGL 3D viewer that requires shaders 6 | - `fixed_pipeline_3d_viewer`: an OpenGL 3D viewer using the old fixed-pipeline. 7 | Only for illustration example. Base new projects on `3d_viewer.py`. 8 | 9 | 10 | Requirements for the 3D viewers: 11 | 12 | - `pyopengl` (on Ubuntu/Debian, `sudo apt-get install python-opengl`) 13 | - `pygame` (on Ubuntu/Debian, `sudo apt-get install python-pygame`) 14 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/PyAssimp/scripts/quicktest.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | #-*- coding: UTF-8 -*- 3 | 4 | """ 5 | This module uses the sample.py script to load all test models it finds. 6 | 7 | Note: this is not an exhaustive test suite, it does not check the 8 | data structures in detail. It just verifies whether basic 9 | loading and querying of 3d models using pyassimp works. 10 | """ 11 | 12 | 13 | import sys,os 14 | import sample 15 | from pyassimp import errors 16 | 17 | # paths to be walkd recursively 18 | basepaths = [os.path.join('..','..','..','test','models'), os.path.join('..','..','..','test','models-nonbsd')] 19 | 20 | # file extensions to be considered 21 | extensions = ['.3ds','.x','.lwo','.obj','.md5mesh','.dxf','.ply','.stl','.dae','.md5anim','.lws','.irrmesh','.nff','.off','.blend'] 22 | 23 | def run_tests(): 24 | ok,err = 0,0 25 | for path in basepaths: 26 | print("Looking for models in %s..." % path) 27 | for root, dirs, files in os.walk(path): 28 | for afile in files: 29 | base,ext = os.path.splitext(afile) 30 | if ext in extensions: 31 | try: 32 | sample.main(os.path.join(root,afile)) 33 | ok += 1 34 | except errors.AssimpError as error: 35 | # assimp error is fine, this is a controlled case 36 | print error 37 | err += 1 38 | except Exception: 39 | print("Error encountered while loading <%s>"%os.path.join(root,afile)) 40 | print('** Loaded %s models, got controlled errors for %s files' % (ok,err)) 41 | 42 | 43 | if __name__ == '__main__': 44 | run_tests() 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/PyAssimp/setup.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import os 3 | from distutils.core import setup 4 | 5 | setup(name='pyassimp', 6 | version='0.1', 7 | license='ISC', 8 | description='Python bindings for the Open Asset Import Library (ASSIMP)', 9 | url='http://assimp.sourceforge.net/', 10 | packages=['pyassimp'], 11 | data_files=[('share/pyassimp', ['README.md']), 12 | ('share/examples/pyassimp', ['scripts/' + f for f in os.listdir('scripts/')])] 13 | ) 14 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/dAssimp/README: -------------------------------------------------------------------------------- 1 | D bindings for the Assimp library (http://assimp.sf.net). 2 | --- 3 | 4 | These bindings provide access to Assimp's C API. They were directly created 5 | from the C header files. 6 | 7 | You should be able to create sufficient DDoc documentation for the bindings 8 | using your favourite build tool (such as Rebuild). Please refer to the main 9 | (Doxygen-generated) documentation for general topics. 10 | 11 | Please note that the bindings have only been tested on 32 bit systems, they have 12 | yet to be adapted for the different size of the integer types in 64 bit builds 13 | of Assimp. 14 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/iOS/IPHONEOS_ARM64_TOOLCHAIN.cmake: -------------------------------------------------------------------------------- 1 | INCLUDE(CMakeForceCompiler) 2 | 3 | SET (CMAKE_CROSSCOMPILING TRUE) 4 | SET (CMAKE_SYSTEM_NAME "Darwin") 5 | SET (CMAKE_SYSTEM_PROCESSOR "arm64") 6 | 7 | SET (SDKVER "7.1") 8 | SET (DEVROOT "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain") 9 | SET (SDKROOT "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS${SDKVER}.sdk") 10 | SET (CC "${DEVROOT}/usr/bin/llvm-gcc") 11 | SET (CXX "${DEVROOT}/usr/bin/llvm-g++") 12 | 13 | CMAKE_FORCE_C_COMPILER (${CC} LLVM) 14 | CMAKE_FORCE_CXX_COMPILER (${CXX} LLVM) 15 | 16 | SET (CMAKE_FIND_ROOT_PATH "${SDKROOT}" "${DEVROOT}") 17 | SET (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 18 | SET (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 19 | SET (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/iOS/IPHONEOS_ARMV6_TOOLCHAIN.cmake: -------------------------------------------------------------------------------- 1 | INCLUDE(CMakeForceCompiler) 2 | 3 | SET (CMAKE_CROSSCOMPILING TRUE) 4 | SET (CMAKE_SYSTEM_NAME "Darwin") 5 | SET (CMAKE_SYSTEM_PROCESSOR "armv6") 6 | 7 | SET (SDKVER "7.1") 8 | SET (DEVROOT "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain") 9 | SET (SDKROOT "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS${SDKVER}.sdk") 10 | SET (CC "${DEVROOT}/usr/bin/clang") 11 | SET (CXX "${DEVROOT}/usr/bin/clang++") 12 | 13 | CMAKE_FORCE_C_COMPILER (${CC} LLVM) 14 | CMAKE_FORCE_CXX_COMPILER (${CXX} LLVM) 15 | 16 | SET (CMAKE_FIND_ROOT_PATH "${SDKROOT}" "${DEVROOT}") 17 | SET (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 18 | SET (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 19 | SET (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/iOS/IPHONEOS_ARMV7S_TOOLCHAIN.cmake: -------------------------------------------------------------------------------- 1 | INCLUDE(CMakeForceCompiler) 2 | 3 | SET (CMAKE_CROSSCOMPILING TRUE) 4 | SET (CMAKE_SYSTEM_NAME "Darwin") 5 | SET (CMAKE_SYSTEM_PROCESSOR "armv7s") 6 | 7 | SET (SDKVER "7.1") 8 | SET (DEVROOT "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain") 9 | SET (SDKROOT "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS${SDKVER}.sdk") 10 | SET (CC "${DEVROOT}/usr/bin/clang") 11 | SET (CXX "${DEVROOT}/usr/bin/clang++") 12 | 13 | CMAKE_FORCE_C_COMPILER (${CC} LLVM) 14 | CMAKE_FORCE_CXX_COMPILER (${CXX} LLVM) 15 | 16 | SET (CMAKE_FIND_ROOT_PATH "${SDKROOT}" "${DEVROOT}") 17 | SET (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 18 | SET (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 19 | SET (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/iOS/IPHONEOS_ARMV7_TOOLCHAIN.cmake: -------------------------------------------------------------------------------- 1 | INCLUDE(CMakeForceCompiler) 2 | 3 | SET (CMAKE_CROSSCOMPILING TRUE) 4 | SET (CMAKE_SYSTEM_NAME "Darwin") 5 | SET (CMAKE_SYSTEM_PROCESSOR "armv7") 6 | 7 | SET (SDKVER "7.1") 8 | SET (DEVROOT "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain") 9 | SET (SDKROOT "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS${SDKVER}.sdk") 10 | SET (CC "${DEVROOT}/usr/bin/clang") 11 | SET (CXX "${DEVROOT}/usr/bin/clang++") 12 | 13 | CMAKE_FORCE_C_COMPILER (${CC} LLVM) 14 | CMAKE_FORCE_CXX_COMPILER (${CXX} LLVM) 15 | 16 | SET (CMAKE_FIND_ROOT_PATH "${SDKROOT}" "${DEVROOT}") 17 | SET (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 18 | SET (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 19 | SET (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/iOS/IPHONEOS_I386_TOOLCHAIN.cmake: -------------------------------------------------------------------------------- 1 | INCLUDE(CMakeForceCompiler) 2 | 3 | SET (CMAKE_CROSSCOMPILING TRUE) 4 | SET (CMAKE_SYSTEM_NAME "Darwin") 5 | SET (CMAKE_SYSTEM_PROCESSOR "i386") 6 | 7 | SET (SDKVER "7.1") 8 | 9 | SET (DEVROOT "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain") 10 | SET (SDKROOT "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator${SDKVER}.sdk") 11 | SET (CC "${DEVROOT}/usr/bin/clang") 12 | SET (CXX "${DEVROOT}/usr/bin/clang++") 13 | 14 | CMAKE_FORCE_C_COMPILER (${CC} LLVM) 15 | CMAKE_FORCE_CXX_COMPILER (${CXX} LLVM) 16 | 17 | SET (CMAKE_FIND_ROOT_PATH "${SDKROOT}" "${DEVROOT}") 18 | SET (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 19 | SET (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 20 | SET (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/iOS/IPHONEOS_X86_64_TOOLCHAIN.cmake: -------------------------------------------------------------------------------- 1 | INCLUDE(CMakeForceCompiler) 2 | 3 | SET (CMAKE_CROSSCOMPILING TRUE) 4 | SET (CMAKE_SYSTEM_NAME "Darwin") 5 | SET (CMAKE_SYSTEM_PROCESSOR "x86_64") 6 | 7 | SET (SDKVER "7.1") 8 | 9 | SET (DEVROOT "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain") 10 | SET (SDKROOT "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator${SDKVER}.sdk") 11 | SET (CC "${DEVROOT}/usr/bin/clang") 12 | SET (CXX "${DEVROOT}/usr/bin/clang++") 13 | 14 | CMAKE_FORCE_C_COMPILER (${CC} LLVM) 15 | CMAKE_FORCE_CXX_COMPILER (${CXX} LLVM) 16 | 17 | SET (CMAKE_FIND_ROOT_PATH "${SDKROOT}" "${DEVROOT}") 18 | SET (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 19 | SET (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 20 | SET (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/iOS/README.md: -------------------------------------------------------------------------------- 1 | # assimp for iOS-SDK 7.1 2 | (deployment target 6.0+, 32/64bit) 3 | 4 | Builds assimp libraries for several iOS CPU architectures at once, and outputs a fat binary from the result. 5 | 6 | Run the **build.sh** script from the ```./port/iOS/``` directory. See **./build.sh --help** for information about command line options. 7 | 8 | ```bash 9 | shadeds-Mac:iOS arul$ ./build.sh --help 10 | [!] ./build.sh - assimp iOS build script 11 | - don't build fat library (--no-fat) 12 | - supported architectures(--archs): armv7, armv7s, arm64, i386, x86_64 13 | - supported C++ STD libs.(--stdlib): libc++, libstdc++ 14 | ``` 15 | Example: 16 | ```bash 17 | cd ./port/iOS/ 18 | ./build.sh --stdlib=libc++ --archs="armv7 arm64 i386" 19 | ``` 20 | Supported architectures/devices: 21 | 22 | ### Simulator 23 | - i386 24 | - x86_64 25 | 26 | ### Device 27 | - ~~ARMv6 (dropped after iOS 6.0)~~ 28 | - ARMv7 29 | - ARMv7-s 30 | - ARM64 31 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/jassimp/README: -------------------------------------------------------------------------------- 1 | jassimp 2 | ------- 3 | 4 | Java binding for assimp. 5 | 6 | The class model used by jassimp is not a one-to-one mapping of assimps class/ 7 | structure model (due to performance considerations). Please read the javadoc 8 | descriptions of AiMesh and AiWrapperProvider. 9 | 10 | The jassimp.lwjgl package contains a LWJGL specific wrapper provider and some 11 | application examples using this wrapper 12 | 13 | 14 | 15 | How To Build 16 | ------------ 17 | 18 | I) native library 19 | 20 | II) Java binding 21 | The java library is built using ant. Executing "ant" in the port/jassimp 22 | directory should be sufficient to build the library including docs. You 23 | still need to build the native library separately, see above 24 | 25 | The java build is configured to create java 1.6 classes 26 | 27 | 28 | 29 | Limitations 30 | ----------- 31 | 32 | Not all data imports have been tested yet, especially the countless texture 33 | parameters. If you find bugs please report them. 34 | 35 | jassimp supports most of assimps features. Current limitations are 36 | * only importing scenes is supported. There are some methods that allow a 37 | modification of the returned objects, but these should be considered as 38 | work in progress. Full blown export support is planned for a future release 39 | * no support for mesh animations 40 | * no support for embedded textures 41 | * no support for importer configurations 42 | * no support for the custom I/O API of assimp 43 | * some texture related material properties are not exposed via the API but only 44 | accessible by traversing the list of properties. However this limitation is 45 | also present in the c-API ... 46 | 47 | 48 | License 49 | ------- 50 | 51 | The license for jassimp is the same as the main Assimp license. 52 | 53 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/jassimp/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/jassimp/jassimp-native/src/jassimp.h: -------------------------------------------------------------------------------- 1 | /* DO NOT EDIT THIS FILE - it is machine generated */ 2 | #include 3 | /* Header for class jassimp_Jassimp */ 4 | 5 | #ifndef _Included_jassimp_Jassimp 6 | #define _Included_jassimp_Jassimp 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | /* Inaccessible static: BUILTIN */ 11 | /* Inaccessible static: s_wrapperProvider */ 12 | /* 13 | * Class: jassimp_Jassimp 14 | * Method: getErrorString 15 | * Signature: ()Ljava/lang/String; 16 | */ 17 | JNIEXPORT jstring JNICALL Java_jassimp_Jassimp_getErrorString 18 | (JNIEnv *, jclass); 19 | 20 | /* 21 | * Class: jassimp_Jassimp 22 | * Method: aiImportFile 23 | * Signature: (Ljava/lang/String;J)Ljassimp/AiScene; 24 | */ 25 | JNIEXPORT jobject JNICALL Java_jassimp_Jassimp_aiImportFile 26 | (JNIEnv *, jclass, jstring, jlong); 27 | 28 | #ifdef __cplusplus 29 | } 30 | #endif 31 | #endif 32 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/jassimp/jassimp/src/jassimp/AiConfig.java: -------------------------------------------------------------------------------- 1 | /* 2 | * $Revision$ 3 | * $Date$ 4 | */ 5 | package jassimp; 6 | 7 | 8 | /** 9 | * Configuration interface for assimp importer.

10 | * 11 | * This class is work-in-progress 12 | */ 13 | public class AiConfig { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/jassimp/jassimp/src/jassimp/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | --------------------------------------------------------------------------- 3 | Open Asset Import Library - Java Binding (jassimp) 4 | --------------------------------------------------------------------------- 5 | 6 | Copyright (c) 2006-2012, 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 | /** 43 | * Java binding for the Open Asset Import Library. 44 | */ 45 | package jassimp; 46 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/DONOTUSEYET: -------------------------------------------------------------------------------- 1 | The interface files are by no means complete yet and only work with the not-yet-released D SWIG backend, although adding support for other languages should not be too much of problem via #ifdefs. 2 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/d/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | gcc -shared -fPIC -g3 -I../../../include/ -lassimp -olibassimp_wrap.so assimp_wrap.cxx 3 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/d/generate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | rm -rf assimp/ 3 | mkdir assimp 4 | swig -c++ -d -outcurrentdir -I../../../include -splitproxy -package assimp $@ ../assimp.i 5 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/DefaultLogger.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "DefaultLogger.h" 3 | %} 4 | 5 | %include "DefaultLogger.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/IOStream.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "IOStream.h" 3 | %} 4 | 5 | %include "IOStream.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/IOSystem.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "IOSystem.h" 3 | %} 4 | 5 | // The const char* overload is used instead. 6 | %ignore Assimp::IOSystem::Exists(const std::string&) const; 7 | %ignore Assimp::IOSystem::Open(const std::string& pFile); 8 | %ignore Assimp::IOSystem::Open(const std::string& pFile, const std::string& pMode); 9 | %ignore Assimp::IOSystem::ComparePaths(const std::string& one, const std::string& second) const; 10 | 11 | %include "IOSystem.h" 12 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/LogStream.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "LogStream.h" 3 | %} 4 | 5 | %include "LogStream.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/Logger.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "Logger.h" 3 | %} 4 | 5 | %include "Logger.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/NullLogger.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "NullLogger.h" 3 | %} 4 | 5 | %include "NullLogger.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiAnim.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiAnim.h" 3 | %} 4 | 5 | ASSIMP_ARRAY(aiAnimation, aiNodeAnim*, mChannels, $self->mNumChannels); 6 | ASSIMP_ARRAY(aiAnimation, aiMeshAnim*, mMeshChannels, $self->mNumMeshChannels); 7 | 8 | %include "aiAnim.h" 9 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiAssert.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiAssert.h" 3 | %} 4 | 5 | %include "aiAssert.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiCamera.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiCamera.h" 3 | %} 4 | 5 | %include "aiCamera.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiColor4D.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiColor4D.h" 3 | %} 4 | 5 | %include "aiColor4D.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiConfig.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiConfig.h" 3 | %} 4 | 5 | %include "aiConfig.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiDefines.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiDefines.h" 3 | %} 4 | 5 | %include "aiDefines.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiFileIO.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiFileIO.h" 3 | %} 4 | 5 | %include "aiFileIO.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiLight.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiLight.h" 3 | %} 4 | 5 | %include "aiLight.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiMaterial.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiMaterial.h" 3 | %} 4 | 5 | ASSIMP_ARRAY(aiMaterial, aiMaterialProperty*, mProperties, $self->mNumProperties) 6 | 7 | %include 8 | %apply enum SWIGTYPE *OUTPUT { aiTextureMapping* mapping }; 9 | %apply unsigned int *OUTPUT { unsigned int* uvindex }; 10 | %apply float *OUTPUT { float* blend }; 11 | %apply enum SWIGTYPE *OUTPUT { aiTextureOp* op }; 12 | %apply unsigned int *OUTPUT { unsigned int* flags }; 13 | 14 | %include "aiMaterial.h" 15 | 16 | %clear unsigned int* flags; 17 | %clear aiTextureOp* op; 18 | %clear float *blend; 19 | %clear unsigned int* uvindex; 20 | %clear aiTextureMapping* mapping; 21 | 22 | 23 | %apply int &OUTPUT { int &pOut }; 24 | %apply float &OUTPUT { float &pOut }; 25 | 26 | %template(GetInteger) aiMaterial::Get; 27 | %template(GetFloat) aiMaterial::Get; 28 | %template(GetColor4D) aiMaterial::Get; 29 | %template(GetColor3D) aiMaterial::Get; 30 | %template(GetString) aiMaterial::Get; 31 | 32 | %clear int &pOut; 33 | %clear float &pOut; 34 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiMatrix3x3.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiMatrix3x3.h" 3 | %} 4 | 5 | %include "aiMatrix3x3.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiMatrix4x4.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiMatrix4x4.h" 3 | %} 4 | 5 | %include "aiMatrix4x4.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiMesh.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiMesh.h" 3 | %} 4 | 5 | 6 | ASSIMP_ARRAY(aiFace, unsigned int, mIndices, $self->mNumIndices); 7 | 8 | ASSIMP_POINTER_ARRAY(aiBone, aiVertexWeight, mWeights, $self->mNumWeights); 9 | 10 | ASSIMP_POINTER_ARRAY(aiAnimMesh, aiVector3D, mVertices, $self->mNumVertices); 11 | ASSIMP_POINTER_ARRAY(aiAnimMesh, aiVector3D, mNormals, $self->mNumVertices); 12 | ASSIMP_POINTER_ARRAY(aiAnimMesh, aiVector3D, mTangents, $self->mNumVertices); 13 | ASSIMP_POINTER_ARRAY(aiAnimMesh, aiVector3D, mBitangents, $self->mNumVertices); 14 | ASSIMP_POINTER_ARRAY_ARRAY(aiAnimMesh, aiVector3D, mTextureCoords, AI_MAX_NUMBER_OF_TEXTURECOORDS, $self->mNumVertices); 15 | ASSIMP_POINTER_ARRAY_ARRAY(aiAnimMesh, aiColor4D, mColors, AI_MAX_NUMBER_OF_COLOR_SETS, $self->mNumVertices); 16 | 17 | ASSIMP_ARRAY(aiMesh, aiAnimMesh*, mAnimMeshes, $self->mNumAnimMeshes); 18 | ASSIMP_ARRAY(aiMesh, aiBone*, mBones, $self->mNumBones); 19 | ASSIMP_ARRAY(aiMesh, unsigned int, mNumUVComponents, AI_MAX_NUMBER_OF_TEXTURECOORDS); 20 | ASSIMP_POINTER_ARRAY(aiMesh, aiVector3D, mVertices, $self->mNumVertices); 21 | ASSIMP_POINTER_ARRAY(aiMesh, aiVector3D, mNormals, $self->mNumVertices); 22 | ASSIMP_POINTER_ARRAY(aiMesh, aiVector3D, mTangents, $self->mNumVertices); 23 | ASSIMP_POINTER_ARRAY(aiMesh, aiVector3D, mBitangents, $self->mNumVertices); 24 | ASSIMP_POINTER_ARRAY(aiMesh, aiFace, mFaces, $self->mNumFaces); 25 | ASSIMP_POINTER_ARRAY_ARRAY(aiMesh, aiVector3D, mTextureCoords, AI_MAX_NUMBER_OF_TEXTURECOORDS, $self->mNumVertices); 26 | ASSIMP_POINTER_ARRAY_ARRAY(aiMesh, aiColor4D, mColors, AI_MAX_NUMBER_OF_COLOR_SETS, $self->mNumVertices); 27 | 28 | 29 | %include "aiMesh.h" 30 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiPostProcess.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiPostProcess.h" 3 | %} 4 | 5 | %feature("d:stripprefix", "aiProcess_") aiPostProcessSteps; 6 | 7 | %include "aiPostProcess.h" 8 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiQuaternion.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiQuaternion.h" 3 | %} 4 | 5 | %include "aiQuaternion.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiScene.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiScene.h" 3 | %} 4 | 5 | 6 | ASSIMP_ARRAY(aiScene, aiAnimation*, mAnimations, $self->mNumAnimations); 7 | ASSIMP_ARRAY(aiScene, aiCamera*, mCameras, $self->mNumCameras); 8 | ASSIMP_ARRAY(aiScene, aiLight*, mLights, $self->mNumLights); 9 | ASSIMP_ARRAY(aiScene, aiMaterial*, mMaterials, $self->mNumMaterials); 10 | ASSIMP_ARRAY(aiScene, aiMesh*, mMeshes, $self->mNumMeshes); 11 | ASSIMP_ARRAY(aiScene, aiTexture*, mTextures, $self->mNumTextures); 12 | 13 | ASSIMP_ARRAY(aiNode, aiNode*, mChildren, $self->mNumChildren); 14 | ASSIMP_ARRAY(aiNode, unsigned int, mMeshes, $self->mNumMeshes); 15 | 16 | 17 | %include "aiScene.h" 18 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiTexture.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiTexture.h" 3 | %} 4 | 5 | %include "aiTexture.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiTypes.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiTypes.h" 3 | %} 4 | 5 | // The const char* overload is used instead. 6 | %ignore aiString::Set(const std::string& pString); 7 | 8 | %include "aiTypes.h" 9 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiVector2D.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiVector2D.h" 3 | %} 4 | 5 | %include "aiVector2D.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiVector3D.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiVector3D.h" 3 | %} 4 | 5 | %include "aiVector3D.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/aiVersion.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "aiVersion.h" 3 | %} 4 | 5 | %include "aiVersion.h" 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/port/swig/interface/assimp.i: -------------------------------------------------------------------------------- 1 | %{ 2 | #include "assimp.hpp" 3 | %} 4 | 5 | 6 | namespace Assimp { 7 | 8 | // See docs in assimp.hpp. 9 | %ignore Importer::ReadFile(const std::string& pFile, unsigned int pFlags); 10 | %ignore Importer::GetExtensionList(std::string& szOut); 11 | %ignore Importer::IsExtensionSupported(const std::string& szExtension); 12 | 13 | // These are only neccessary for extending Assimp with custom importers or post 14 | // processing steps, which would require wrapping the internal BaseImporter and 15 | // BaseProcess classes. 16 | %ignore Importer::RegisterLoader(BaseImporter* pImp); 17 | %ignore Importer::UnregisterLoader(BaseImporter* pImp); 18 | %ignore Importer::RegisterPPStep(BaseProcess* pImp); 19 | %ignore Importer::UnregisterPPStep(BaseProcess* pImp); 20 | %ignore Importer::FindLoader(const char* szExtension); 21 | 22 | } 23 | 24 | 25 | // Each aiScene has to keep a reference to the Importer to prevent it from 26 | // being garbage collected, whose destructor would release the underlying 27 | // C++ memory the scene is stored in. 28 | %typemap(dcode) aiScene "package Object m_importer;" 29 | %typemap(dout) 30 | aiScene* GetScene, 31 | aiScene* ReadFile, 32 | aiScene* ApplyPostProcessing, 33 | aiScene* ReadFileFromMemory { 34 | void* cPtr = $wcall; 35 | $dclassname ret = (cPtr is null) ? null : new $dclassname(cPtr, $owner);$excode 36 | ret.m_importer = this; 37 | return ret; 38 | } 39 | 40 | %include 41 | %apply bool *OUTPUT { bool *bWasExisting }; 42 | 43 | %include "assimp.hpp" 44 | 45 | %clear bool *bWasExisting; 46 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/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 | #endif // ASSIMP_REVISION_H_INC 8 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/DevIL/AUTHORS: -------------------------------------------------------------------------------- 1 | The main programmer is Denton Woods, but this could not have been possible 2 | without contributions and some pieces of code from other projects. 3 | 4 | For contributors and credits, read the CREDITS file. 5 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/DevIL/CREDITS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/samples/DevIL/CREDITS -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/DevIL/DevIL Website.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=http://openil.sf.net/ 3 | IDList= 4 | [{000214A0-0000-0000-C000-000000000046}] 5 | Prop3=19,2 6 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/DevIL/Libraries.txt: -------------------------------------------------------------------------------- 1 | Libraries needed to compile DevIL* : 2 | ---------------------------------- 3 | 4 | (Most of these are optional) 5 | 6 | 7 | Libpng for .png (and some .ico) support available at http://www.libpng.org/pub/png/libpng.html 8 | ZLib for .png (and some .ico) support available at http://www.gzip.org/zlib/ 9 | Libjpeg for .jpg (and some .blp) support from http://www.ijg.org/ 10 | Libtiff for .tif support from http://www.libtiff.org/ 11 | Libmng for .mng and .jng support from http://www.libmng.com/ 12 | JasPer for .jp2 (and some .icns) support available at http://www.ece.uvic.ca/~mdadams/jasper/ 13 | HD Photo Device Porting Kit for .wdp/.hdp support from http://www.microsoft.com/Downloads/details.aspx?FamilyID=285eeffd-d86c-48c3-ab93-3abd5ee7f1ce&displaylang=en. 14 | Little CMS for color profiles (ILU) from http://www.littlecms.com/ 15 | Colour Picker lib for WindowsTest from http://www.fluidstudios.com/freeware.html 16 | Freeglut (or glut) for GLTest from http://freeglut.sourceforge.net 17 | glext.h from http://oss.sgi.com/projects/ogl-sample/ABI/glext.h (as if using OpenGL) 18 | libsquish for DXT compression from http://code.google.com/p/libsquish/ 19 | nVidia Texture Tools for DXT compression from http://developer.nvidia.com/object/nv_texture_tools.html. 20 | 21 | MSVC++ precompiled versions of libpng, zlib, libjpeg, libtiff, lcms and JasPer can be found 22 | at http://openil.sourceforge.net/libs/LibCompiled-vc8.zip or 23 | http://openil.sourceforge.net/libs/LibCompiled-vc9.zip. 24 | 25 | Sources of libpng, zlib, libjpeg, libmng, libungif, libtiff, lcms and JasPer can be 26 | found at http://openil.sourceforge.net/libs/LibSrc.zip 27 | 28 | Intel Jpeg Library from 29 | http://developer.intel.com/software/products/perflib/ijl/index.htm 30 | 31 | 32 | MAC OS X 33 | These library are not still uploaded! 34 | To learn how to install these libraries, read README.macosx 35 | 36 | Source of external framework, downloaded from the previous sites 37 | http://openil.sourceforge.net/libs/ExternFrameworksSrc.sitx 38 | 39 | Complete Compiled Library 40 | http://openil.sourceforge.net/libs/OpenILBin.sitx -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/DevIL/README.win: -------------------------------------------------------------------------------- 1 | Where do I find the project files ? 2 | ----------------------------------------- 3 | 4 | MSVC++ projects are in DevIL\projects\vc8 and DevIL\projects\vc9. 5 | If compiling with Cygwin or MinGW, use the instructions in README.unix. 6 | 7 | 8 | The IL_NO_XXX #define's: 9 | ------------------------ 10 | 11 | A user can recompile this library without complete image support in it. For 12 | example, if your project does not use .jpg files, you can uncomment 13 | #define IL_NO_JPG at the top of il/il.h, recompile the library, and no .jpg 14 | support will be added, meaning quicker compiles and a smaller library. 15 | 16 | 17 | The ILUT_USE_XXX #define's: 18 | --------------------------- 19 | 20 | To disable support for a specific API, edit IL/ilut.h and comment the 21 | corresponding #define. Per example, to disable OpenGL functions support, 22 | add // in front of the line that reads: 23 | 24 | #define ILUT_USE_OPENGL 25 | 26 | 27 | Libraries needed to compile DevIL* : 28 | ----------------------------------- 29 | 30 | Libraries.txt (included with the DevIL distribution) lists all libraries needed 31 | to properly compile DevIL. 32 | 33 | Precompiled versions and sources of all libraries needed to compile DevIL are 34 | available at http://openil.sourceforge.net/libs/LibCompiled.zip and 35 | http://openil.sourceforge.net/libs/LibSrc.zip , respectively. 36 | 37 | 38 | Installation: 39 | ------------- 40 | 41 | Just unzip and compile other libs included if needed. 42 | 43 | Please also refer to MSVC++.txt for further instructions if you are using 44 | Microsoft Visual C++. 45 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/DevIL/include/IL/config.h.win: -------------------------------------------------------------------------------- 1 | #ifndef __CONFIG_H__ 2 | #define __CONFIG_H__ 3 | 4 | #define IL_USE_PRAGMA_LIBS // Links to only the libraries that are requested. 5 | #define IL_INLINE_ASM 1 // Define if you can support at least some ASM 6 | 7 | // Supported images formats (IL) 8 | 9 | // #define IL_NO_BLP 10 | // #define IL_NO_BMP 11 | // #define IL_NO_CUT 12 | // #define IL_NO_CHEAD 13 | // #define IL_NO_DCX 14 | // #define IL_NO_DDS 15 | // #define IL_NO_DICOM 16 | // #define IL_NO_DOOM 17 | // #define IL_NO_EXR 18 | // #define IL_NO_FITS 19 | // #define IL_NO_FTX 20 | // #define IL_NO_GIF 21 | // #define IL_NO_HDR 22 | // #define IL_NO_ICO 23 | // #define IL_NO_ICNS 24 | // #define IL_NO_IWI 25 | // #define IL_NO_JP2 26 | // #define IL_NO_JPG 27 | // #define IL_NO_LCMS 28 | // #define IL_NO_LIF 29 | // #define IL_NO_MDL 30 | // #define IL_NO_MNG 31 | // #define IL_NO_PCD 32 | // #define IL_NO_PCX 33 | // #define IL_NO_PIC 34 | // #define IL_NO_PIX 35 | // #define IL_NO_PNG 36 | // #define IL_NO_PNM 37 | // #define IL_NO_PSD 38 | // #define IL_NO_PSP 39 | // #define IL_NO_PXR 40 | // #define IL_NO_RAW 41 | // #define IL_NO_ROT 42 | // #define IL_NO_SGI 43 | // #define IL_NO_SUN 44 | // #define IL_NO_TGA 45 | // #define IL_NO_TIF 46 | // #define IL_NO_TPL 47 | // #define IL_NO_WAL 48 | // #define IL_NO_WDP 49 | // #define IL_NO_XPM 50 | 51 | #define IL_USE_JPEGLIB_UNMODIFIED 1 52 | #define IL_USE_DXTC_NVIDIA 53 | #define IL_USE_DXTC_SQUISH 54 | 55 | //#define IL_NO_GAMES 56 | 57 | /* Supported api (ilut) */ 58 | 59 | 60 | // 61 | // sorry just 62 | // cant get this one to work under windows 63 | // have disabled for the now 64 | // 65 | // will look at it some more later 66 | // 67 | // Kriss 68 | // 69 | #undef ILUT_USE_ALLEGRO 70 | 71 | #undef ILUT_USE_DIRECTX8 72 | #define ILUT_USE_DIRECTX9 73 | #define ILUT_USE_DIRECTX10 74 | #define ILUT_USE_OPENGL 75 | #define ILUT_USE_SDL 76 | #define ILUT_USE_WIN32 77 | 78 | 79 | #endif /* __CONFIG_H__ */ 80 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/DevIL/include/IL/ilu_region.h: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // ImageLib Utility Sources 4 | // Copyright (C) 2000-2002 by Denton Woods 5 | // Last modified: 07/09/2002 <--Y2K Compliant! =] 6 | // 7 | // Filename: src-ILU/src/ilu_region.h 8 | // 9 | // Description: Creates an image region. 10 | // 11 | //----------------------------------------------------------------------------- 12 | 13 | #ifndef ILU_REGION_H 14 | #define ILU_REGION_H 15 | 16 | typedef struct Edge 17 | { 18 | ILint yUpper; 19 | ILfloat xIntersect, dxPerScan; 20 | struct Edge *next; 21 | } Edge; 22 | 23 | 24 | #endif//ILU_REGION_H 25 | 26 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/DevIL/include/IL/ilut_config.h: -------------------------------------------------------------------------------- 1 | #ifndef __ILUT_CONFIG_H__ 2 | #define __ILUT_CONFIG_H__ 3 | 4 | #define IL_USE_PRAGMA_LIBS 5 | 6 | // Supported APIs (ILUT) 7 | 8 | // 9 | // sorry just 10 | // cant get this one to work under windows 11 | // have disabled for the now 12 | // 13 | // will look at it some more later 14 | // 15 | // Kriss 16 | // 17 | #undef ILUT_USE_ALLEGRO 18 | 19 | #undef ILUT_USE_DIRECTX8 20 | //#define ILUT_USE_DIRECTX9 21 | //#define ILUT_USE_DIRECTX10 22 | #define ILUT_USE_OPENGL 23 | //#define ILUT_USE_SDL 24 | #define ILUT_USE_WIN32 25 | 26 | #endif//__ILUT_CONFIG_H__ 27 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/README: -------------------------------------------------------------------------------- 1 | 2 | 3 | ASSIMP SAMPLES README 4 | ===================== 5 | 6 | 7 | 1. General 8 | ---------- 9 | 10 | This directory contains various samples to illustrate Assimp's 11 | use in various real-world environments. Workspaces to build the 12 | samples can be found in the respective directories. The VC workspaces 13 | copy the created executables to the ./bin directory. 14 | 15 | All GL-based samples depend on GLUT, some on DevIL. For convenience, 16 | these libraries are included in the repository in their respective 17 | Windows/x86 prebuilt versions. To build on linux, install the 18 | required packages using the package manager of your choice. 19 | 20 | Also note that the VS workspaces link against the DLL version of the 21 | Assimp library, thus you need to build it in the first place ( 22 | assimp-release-dll build configuration). The Assimp DLL needs to be 23 | copied to ./bin as well (the VS workspaces will try to do this 24 | automatically). 25 | 26 | 27 | 2. List of samples 28 | ------------------ 29 | 30 | 31 | SimpleOpenGL 32 | 33 | A very simple and straightforward OpenGL sample. It loads a 34 | model (gets the path to it on the command line, default is dwarf.x) 35 | and displays the model as wireframe. Animations and materials are 36 | not evaluated at all. This samples uses the C interface to Assimp. 37 | Basic materials are displayed, but no textures. 38 | 39 | This sample should work virtually everywhere, provided glut 40 | is available. 41 | 42 | 43 | SimpleTexturedOpenGL 44 | 45 | An extended OpenGL sample, featuring texturing using the DevIL 46 | library. Based on SimpleOpenGL and the NeHe GL tutorial style. 47 | 48 | This is a Windows-only sample. 49 | 50 | This sample was kindly provided by SamHayne (http://sf.net/users/samhayne/) 51 | See http://sourceforge.net/projects/assimp/forums/forum/817654/topic/3736373 52 | 53 | 54 | SimpleAssimpViewX 55 | 56 | A Mac OSX-based viewer app. This sample was kindly provided by drparallax. 57 | See http://sourceforge.net/projects/assimp/forums/forum/817654/topic/3917829 58 | 59 | 60 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleAssimpViewX/English.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} 2 | {\colortbl;\red255\green255\blue255;} 3 | \paperw9840\paperh8400 4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 5 | 6 | \f0\b\fs24 \cf0 Engineering: 7 | \b0 \ 8 | Some people\ 9 | \ 10 | 11 | \b Human Interface Design: 12 | \b0 \ 13 | Some other people\ 14 | \ 15 | 16 | \b Testing: 17 | \b0 \ 18 | Hopefully not nobody\ 19 | \ 20 | 21 | \b Documentation: 22 | \b0 \ 23 | Whoever\ 24 | \ 25 | 26 | \b With special thanks to: 27 | \b0 \ 28 | Mom\ 29 | } 30 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleAssimpViewX/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleAssimpViewX/English.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleAssimpViewX/MyDocument.h: -------------------------------------------------------------------------------- 1 | // 2 | // MyDocument.h 3 | // DisplayLinkAsyncMoviePlayer 4 | // 5 | // Created by vade on 10/26/10. 6 | // Copyright __MyCompanyName__ 2010 . All rights reserved. 7 | // 8 | 9 | 10 | #import "ModelLoaderHelperClasses.h" 11 | 12 | // assimp include files. These three are usually needed. 13 | #import "cimport.h" 14 | #import "postprocess.h" 15 | #import "scene.h" 16 | #import "types.h" 17 | 18 | #import 19 | #import 20 | #import 21 | 22 | 23 | @interface MyDocument : NSPersistentDocument 24 | { 25 | CVDisplayLinkRef _displayLink; 26 | NSOpenGLContext* _glContext; 27 | NSOpenGLPixelFormat* _glPixelFormat; 28 | 29 | NSView* _view; 30 | 31 | // Assimp Stuff 32 | aiScene* _scene; 33 | aiVector3D scene_min, scene_max, scene_center; 34 | double normalizedScale; 35 | 36 | // Our array of textures. 37 | GLuint *textureIds; 38 | 39 | // only used if we use 40 | NSMutableArray* modelMeshes; 41 | BOOL builtBuffers; 42 | 43 | NSMutableDictionary* textureDictionary; // Array of Dicionaries that map image filenames to textureIds 44 | } 45 | 46 | @property (retain) IBOutlet NSView* _view; 47 | 48 | 49 | - (CVReturn)displayLinkRenderCallback:(const CVTimeStamp *)timeStamp; 50 | - (void) render; 51 | 52 | - (void) drawMeshesInContext:(CGLContextObj)cgl_ctx; 53 | - (void) createGLResourcesInContext:(CGLContextObj)cgl_ctx; 54 | - (void) deleteGLResourcesInContext:(CGLContextObj)cgl_ctx; 55 | 56 | - (void) loadTexturesInContext:(CGLContextObj)cgl_ctx withModelPath:(NSString*) modelPath; 57 | - (void) getBoundingBoxWithMinVector:(aiVector3D*) min maxVectr:(aiVector3D*) max; 58 | - (void) getBoundingBoxForNode:(const aiNode*)nd minVector:(aiVector3D*) min maxVector:(aiVector3D*) max matrix:(aiMatrix4x4*) trafo; 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleAssimpViewX/MyDocument.xcdatamodel/elements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleAssimpViewX/MyDocument.xcdatamodel/elements -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleAssimpViewX/MyDocument.xcdatamodel/layout: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleAssimpViewX/MyDocument.xcdatamodel/layout -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleAssimpViewX/README: -------------------------------------------------------------------------------- 1 | Mac OSX Assimp Sample, using OpenGL with VBOs 2 | ============================================= 3 | 4 | Written & donated by drparallax. 5 | See http://sourceforge.net/projects/assimp/forums/forum/817654/topic/3917829 6 | 7 | 8 | How to build: 9 | ------------- 10 | 11 | - compile Assimp as static library, copy the generated libassimp.a right here. 12 | - copy the Assimp headers from ./../../include to ./include 13 | - open the XCode project file and build it 14 | 15 | 16 | Troubleshooting: 17 | ---------------- 18 | 19 | - OSX workspaces are not updated too frequently, so same files may be missing. 20 | 21 | If you have any problems which you can't solve on your own, 22 | please report them on the thread above. -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleAssimpViewX/SimpleAssimpViewX_Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'DisplayLinkAsyncMoviePlayer' target in the 'DisplayLinkAsyncMoviePlayer' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #import 8 | #import 9 | #endif 10 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleAssimpViewX/include/copy_assimp_headers_here.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleAssimpViewX/include/copy_assimp_headers_here.txt -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleAssimpViewX/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // DisplayLinkAsyncMoviePlayer 4 | // 5 | // Created by vade on 10/26/10. 6 | // Copyright __MyCompanyName__ 2010 . All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) 12 | { 13 | return NSApplicationMain(argc, (const char **) argv); 14 | } 15 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleOpenGL/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FIND_PACKAGE(OpenGL) 2 | FIND_PACKAGE(GLUT) 3 | 4 | IF ( NOT GLUT_FOUND ) 5 | IF ( MSVC ) 6 | SET ( GLUT_FOUND 1 ) 7 | SET ( GLUT_INCLUDE_DIR ${Assimp_SOURCE_DIR}/samples/glut/ ) 8 | SET ( GLUT_LIBRARIES ${Assimp_SOURCE_DIR}/samples/glut/glut32.lib ) 9 | ELSE ( MSVC ) 10 | MESSAGE( WARNING "Please install glut." ) 11 | ENDIF ( MSVC ) 12 | ENDIF ( NOT GLUT_FOUND ) 13 | 14 | INCLUDE_DIRECTORIES( 15 | ${Assimp_SOURCE_DIR}/include 16 | ${Assimp_SOURCE_DIR}/code 17 | ${OPENGL_INCLUDE_DIR} 18 | ${GLUT_INCLUDE_DIR} 19 | ) 20 | 21 | LINK_DIRECTORIES( 22 | ${Assimp_BINARY_DIR} 23 | ${Assimp_BINARY_DIR}/lib 24 | ) 25 | 26 | ADD_EXECUTABLE( assimp_simpleogl 27 | Sample_SimpleOpenGL.c 28 | ) 29 | 30 | SET_PROPERTY(TARGET assimp_simpleogl PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX}) 31 | 32 | TARGET_LINK_LIBRARIES( assimp_simpleogl assimp ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) 33 | SET_TARGET_PROPERTIES( assimp_simpleogl PROPERTIES 34 | OUTPUT_NAME assimp_simpleogl 35 | ) 36 | 37 | INSTALL( TARGETS assimp_simpleogl 38 | DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-dev 39 | ) 40 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleOpenGL/makefile: -------------------------------------------------------------------------------- 1 | 2 | # --------------------------------------------------------------------------- 3 | # Makefile for assimp/Sample_SimpleOpenGL 4 | # aramis_acg@users.sourceforge.net 5 | # 6 | # Usage: make 7 | 8 | # TARGETS: 9 | # all Build the sample + assimp itself 10 | # clean Cleanup all object files 11 | # --------------------------------------------------------------------------- 12 | 13 | VPATH = ./usr/include/ 14 | # Include flags for gcc 15 | INCLUDEFLAGS = -I../../include 16 | 17 | # Library flags for gcc 18 | LIBFLAGS = -L../../bin/gcc 19 | 20 | # Output name of executable 21 | OUTPUT = samplegl 22 | 23 | all: $(OBJECTS) 24 | cd ../../code/ && $(MAKE) static 25 | gcc -o $(OUTPUT) $(INCLUDEFLAGS) -s Sample_SimpleOpenGL.c $(LIBFLAGS) -Wl,-Bstatic -lassimp -Wl,-Bdynamic -lstdc++ -lglut 26 | .PHONY: clean 27 | clean: 28 | -rm *.o 29 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleTexturedOpenGL/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | FIND_PACKAGE(OpenGL) 2 | FIND_PACKAGE(GLUT) 3 | 4 | IF ( NOT GLUT_FOUND ) 5 | IF ( MSVC ) 6 | SET ( GLUT_FOUND 1 ) 7 | SET ( GLUT_INCLUDE_DIR ${Assimp_SOURCE_DIR}/samples/glut/ ) 8 | SET ( GLUT_LIBRARIES ${Assimp_SOURCE_DIR}/samples/glut/glut32.lib ) 9 | ELSE ( MSVC ) 10 | MESSAGE( WARNING "Please install glut." ) 11 | ENDIF ( MSVC ) 12 | ENDIF ( NOT GLUT_FOUND ) 13 | 14 | INCLUDE_DIRECTORIES( 15 | ${Assimp_SOURCE_DIR}/include 16 | ${Assimp_SOURCE_DIR}/code 17 | ${OPENGL_INCLUDE_DIR} 18 | ${GLUT_INCLUDE_DIR} 19 | ${Assimp_SOURCE_DIR}/samples/DevIL/include/ 20 | ) 21 | 22 | LINK_DIRECTORIES( 23 | ${Assimp_BINARY_DIR} 24 | ${Assimp_BINARY_DIR}/lib/ 25 | ${Assimp_SOURCE_DIR}/samples/DevIL/lib/ 26 | ) 27 | 28 | ADD_EXECUTABLE( assimp_simpletexturedogl WIN32 29 | SimpleTexturedOpenGL/include/boost_includes.h 30 | SimpleTexturedOpenGL/src/model_loading.cpp 31 | ) 32 | 33 | SET_PROPERTY(TARGET assimp_simpletexturedogl PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX}) 34 | 35 | TARGET_LINK_LIBRARIES( assimp_simpletexturedogl assimp ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} DevIL.lib ) 36 | 37 | SET_TARGET_PROPERTIES( assimp_simpletexturedogl PROPERTIES 38 | OUTPUT_NAME assimp_simpletexturedogl 39 | ) 40 | 41 | INSTALL( TARGETS assimp_simpletexturedogl 42 | DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-dev 43 | ) 44 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/SimpleTexturedOpenGL/SimpleTexturedOpenGL/include/boost_includes.h: -------------------------------------------------------------------------------- 1 | #include -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/samples/glut/glut32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/samples/glut/glut32.lib -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/scripts/IFCImporter/genentitylist.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd ../../code 3 | grep -E 'Ifc([A-Z][a-z]*)+' -o IFCLoader.cpp IFCGeometry.cpp IFCCurve.cpp IFCProfile.cpp IFCMaterial.cpp | uniq | sed s/.*:// > ../scripts/IFCImporter/output.txt 4 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/scripts/OgreImporter/assimp.tpl: -------------------------------------------------------------------------------- 1 | 2 | material %_materialName 3 | { 4 | set $specular %_specular 5 | set $diffuse %_diffuse 6 | set $ambient %_ambient 7 | 8 | set $colormap %color._texture 9 | set $normalmap %normal._texture 10 | } 11 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/RunSingleUnitTestSuite.bat: -------------------------------------------------------------------------------- 1 | 2 | rem ------------------------------------------------------------------------------ 3 | rem Tiny script to execute a single unit test suite. 4 | rem 5 | rem Usage: 6 | rem SET OUTDIR= 7 | rem SET BINDIR= 8 | rem 9 | rem CALL RunSingleUnitTestSuite 10 | rem 11 | rem Post: 12 | rem FIRSTUTNA - if the test wasn't found, receives the test name 13 | rem FIRSTUTFAILUR - if the test failed, receives the test name 14 | rem 15 | rem ------------------------------------------------------------------------------ 16 | IF NOT EXIST %BINDIR%\%1\unit.exe ( 17 | 18 | echo NOT AVAILABLE. Please rebuild this configuration 19 | echo Unable to find %BINDIR%\%1\unit.exe > %OUTDIR%%2 20 | SET FIRSTUTNA=%2 21 | ) ELSE ( 22 | 23 | %BINDIR%\%1\unit.exe > %OUTDIR%%2 24 | IF errorlevel == 0 ( 25 | echo SUCCESS 26 | ) ELSE ( 27 | echo FAILURE, check output file: %2 28 | SET FIRSTUTFAILURE=%2 29 | ) 30 | ) 31 | 32 | echo. 33 | echo. -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/other/streamload.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | """Read all test files for a particular file format using a single 4 | importer instance. Read them again in reversed order. This is used 5 | to verify that a loader does proper cleanup and can be called 6 | repeatedly.""" 7 | 8 | import sys 9 | import os 10 | import subprocess 11 | 12 | # hack-load utils.py and settings.py from ../regression 13 | sys.path.append(os.path.join('..','regression')) 14 | 15 | import utils 16 | import settings 17 | 18 | 19 | def process_dir(thisdir): 20 | """Process /thisdir/ recursively""" 21 | res = [] 22 | shellparams = {'stdin':subprocess.PIPE,'stdout':sys.stdout,'shell':True} 23 | 24 | command = [utils.assimp_bin_path,"testbatchload"] 25 | for f in os.listdir(thisdir): 26 | if os.path.splitext(f)[-1] in settings.exclude_extensions: 27 | continue 28 | fullpath = os.path.join(thisdir, f) 29 | if os.path.isdir(fullpath): 30 | if f != ".svn": 31 | res += process_dir(fullpath) 32 | continue 33 | 34 | # import twice, importing the same file again introduces extra risk 35 | # to crash due to garbage data lying around in the importer. 36 | command.append(fullpath) 37 | command.append(fullpath) 38 | 39 | if len(command)>2: 40 | # testbatchload returns always 0 if more than one file in the list worked. 41 | # however, if it should segfault, the OS will return something not 0. 42 | command += reversed(command[2:]) 43 | if subprocess.call(command, **shellparams): 44 | res.append(thisdir) 45 | 46 | 47 | return res 48 | 49 | 50 | def main(): 51 | """Run the test on all registered test repositories""" 52 | utils.find_assimp_or_die() 53 | 54 | res = [] 55 | for tp in settings.model_directories: 56 | res += process_dir(tp) 57 | 58 | [print(f) for f in res] 59 | return 0 60 | 61 | 62 | if __name__ == '__main__': 63 | res = main() 64 | input('All done, waiting for keystroke ') 65 | 66 | sys.exit(res) 67 | 68 | # vim: ai ts=4 sts=4 et sw=4 69 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/regression/.pydevproject: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | python 3.0 6 | Default 7 | 8 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/regression/db.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/test/regression/db.zip -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/BoostWorkaround/tupletest.cpp: -------------------------------------------------------------------------------- 1 | #include "BoostWorkaround/boost/tuple/tuple.hpp" 2 | 3 | struct another 4 | {int dummy;}; 5 | 6 | boost::tuple first; 7 | boost::tuple second; 8 | boost::tuple<> third; 9 | boost::tuple last; 10 | 11 | void test () { 12 | 13 | // Implicit conversion 14 | first = boost::make_tuple(4,4,4); 15 | 16 | // FIXME: Explicit conversion not really required yet 17 | last = (boost::tuple)boost::make_tuple(4.,4.,4.); 18 | 19 | // Non-const access 20 | first.get<0>() = 1; 21 | first.get<1>() = 2; 22 | first.get<2>() = 3; 23 | 24 | float f = last.get<2>(); 25 | bool b = second.get<3>(); 26 | 27 | // Const cases 28 | const boost::tuple constant = boost::make_tuple(4,4,4); 29 | first.get<0>() = constant.get<0>(); 30 | 31 | // Direct assignment w. explicit conversion 32 | last = first; 33 | } 34 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/CCompilerTest.c: -------------------------------------------------------------------------------- 1 | 2 | // This is just a small test to check whether Assimp's API compiles from C 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/UnitTestPCH.cpp: -------------------------------------------------------------------------------- 1 | 2 | // Unit used to build the precompiled header 3 | #include "UnitTestPCH.h" -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/UnitTestPCH.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | // #ifndef ASSIMP_BUILD_SINGLETHREADED 4 | // # include 5 | // #endif 6 | 7 | // We need to be sure to have the same STL settings as Assimp 8 | #include 9 | #include 10 | 11 | // CPPUNIT 12 | #include 13 | #include 14 | 15 | #include 16 | 17 | #undef min 18 | #undef max -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utExport.h: -------------------------------------------------------------------------------- 1 | #ifndef INCLUDED_UT_EXPORT_H 2 | #define INCLUDED_UT_EXPORT_H 3 | 4 | #ifndef ASSIMP_BUILD_NO_EXPORT 5 | 6 | #include 7 | #include 8 | 9 | using namespace Assimp; 10 | 11 | class ExporterTest : public CPPUNIT_NS :: TestFixture 12 | { 13 | CPPUNIT_TEST_SUITE (ExporterTest); 14 | CPPUNIT_TEST (testExportToFile); 15 | CPPUNIT_TEST (testExportToBlob); 16 | CPPUNIT_TEST (testCppExportInterface); 17 | CPPUNIT_TEST (testCExportInterface); 18 | CPPUNIT_TEST_SUITE_END (); 19 | 20 | public: 21 | void setUp (void); 22 | void tearDown (void); 23 | 24 | protected: 25 | 26 | void testExportToFile (void); 27 | void testExportToBlob (void); 28 | void testCppExportInterface (void); 29 | void testCExportInterface (void); 30 | 31 | private: 32 | 33 | 34 | const aiScene* pTest; 35 | Assimp::Exporter* ex; 36 | Assimp::Importer* im; 37 | }; 38 | 39 | #endif 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utFindDegenerates.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTDEGENERATES_H 2 | #define TESTDEGENERATES_H 3 | 4 | 5 | #include 6 | 7 | using namespace std; 8 | using namespace Assimp; 9 | 10 | class FindDegeneratesProcessTest : public CPPUNIT_NS :: TestFixture 11 | { 12 | CPPUNIT_TEST_SUITE (FindDegeneratesProcessTest); 13 | CPPUNIT_TEST (testDegeneratesDetection); 14 | CPPUNIT_TEST (testDegeneratesRemoval); 15 | CPPUNIT_TEST_SUITE_END (); 16 | 17 | public: 18 | void setUp (void); 19 | void tearDown (void); 20 | 21 | protected: 22 | 23 | void testDegeneratesDetection (void); 24 | void testDegeneratesRemoval (void); 25 | 26 | private: 27 | 28 | aiMesh* mesh; 29 | FindDegeneratesProcess* process; 30 | 31 | }; 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utFindInvalidData.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTNORMALS_H 2 | #define TESTNORMALS_H 3 | 4 | 5 | #include 6 | 7 | using namespace std; 8 | using namespace Assimp; 9 | 10 | class FindInvalidDataProcessTest : public CPPUNIT_NS :: TestFixture 11 | { 12 | CPPUNIT_TEST_SUITE (FindInvalidDataProcessTest); 13 | CPPUNIT_TEST (testStepNegativeResult); 14 | CPPUNIT_TEST (testStepPositiveResult); 15 | CPPUNIT_TEST_SUITE_END (); 16 | 17 | public: 18 | void setUp (void); 19 | void tearDown (void); 20 | 21 | protected: 22 | 23 | void testStepPositiveResult (void); 24 | void testStepNegativeResult (void); 25 | 26 | private: 27 | 28 | 29 | aiMesh* pcMesh; 30 | FindInvalidDataProcess* piProcess; 31 | }; 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utFixInfacingNormals.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "UnitTestPCH.h" -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utGenNormals.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "UnitTestPCH.h" 3 | #include "utGenNormals.h" 4 | 5 | 6 | CPPUNIT_TEST_SUITE_REGISTRATION (GenNormalsTest); 7 | 8 | void GenNormalsTest :: setUp (void) 9 | { 10 | piProcess = new GenVertexNormalsProcess(); 11 | pcMesh = new aiMesh(); 12 | pcMesh->mPrimitiveTypes = aiPrimitiveType_TRIANGLE; 13 | pcMesh->mNumFaces = 1; 14 | pcMesh->mFaces = new aiFace[1]; 15 | pcMesh->mFaces[0].mIndices = new unsigned int[pcMesh->mFaces[0].mNumIndices = 3]; 16 | pcMesh->mFaces[0].mIndices[0] = 0; 17 | pcMesh->mFaces[0].mIndices[1] = 1; 18 | pcMesh->mFaces[0].mIndices[2] = 1; 19 | pcMesh->mNumVertices = 3; 20 | pcMesh->mVertices = new aiVector3D[3]; 21 | pcMesh->mVertices[0] = aiVector3D(0.0f,1.0f,6.0f); 22 | pcMesh->mVertices[1] = aiVector3D(2.0f,3.0f,1.0f); 23 | pcMesh->mVertices[2] = aiVector3D(3.0f,2.0f,4.0f); 24 | } 25 | 26 | void GenNormalsTest :: tearDown (void) 27 | { 28 | delete this->pcMesh; 29 | delete this->piProcess; 30 | } 31 | 32 | void GenNormalsTest :: testSimpleTriangle (void) 33 | { 34 | piProcess->GenMeshVertexNormals(pcMesh,0); 35 | CPPUNIT_ASSERT(0 != pcMesh->mNormals); 36 | } 37 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utGenNormals.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTNORMALS_H 2 | #define TESTNORMALS_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | 11 | using namespace std; 12 | using namespace Assimp; 13 | 14 | class GenNormalsTest : public CPPUNIT_NS :: TestFixture 15 | { 16 | CPPUNIT_TEST_SUITE (GenNormalsTest); 17 | CPPUNIT_TEST (testSimpleTriangle); 18 | CPPUNIT_TEST_SUITE_END (); 19 | 20 | public: 21 | void setUp (void); 22 | void tearDown (void); 23 | 24 | protected: 25 | 26 | void testSimpleTriangle (void); 27 | 28 | private: 29 | 30 | 31 | aiMesh* pcMesh; 32 | GenVertexNormalsProcess* piProcess; 33 | }; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utImporter.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTIMPORTER_H 2 | #define TESTIMPORTER_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | using namespace std; 11 | using namespace Assimp; 12 | 13 | class ImporterTest : public CPPUNIT_NS :: TestFixture 14 | { 15 | CPPUNIT_TEST_SUITE (ImporterTest); 16 | CPPUNIT_TEST (testIntProperty); 17 | CPPUNIT_TEST (testFloatProperty); 18 | CPPUNIT_TEST (testStringProperty); 19 | CPPUNIT_TEST (testPluginInterface); 20 | CPPUNIT_TEST (testExtensionCheck); 21 | CPPUNIT_TEST (testMemoryRead); 22 | CPPUNIT_TEST (testMultipleReads); 23 | CPPUNIT_TEST_SUITE_END (); 24 | 25 | public: 26 | void setUp (void); 27 | void tearDown (void); 28 | 29 | protected: 30 | 31 | void testIntProperty (void); 32 | void testFloatProperty (void); 33 | void testStringProperty (void); 34 | 35 | void testPluginInterface (void); 36 | void testExtensionCheck (void); 37 | void testMemoryRead (void); 38 | 39 | void testMultipleReads (void); 40 | 41 | private: 42 | 43 | Importer* pImp; 44 | }; 45 | 46 | class TestPlugin : public BaseImporter 47 | { 48 | public: 49 | 50 | // overriden 51 | bool CanRead( const std::string& pFile, 52 | IOSystem* pIOHandler, bool test) const; 53 | 54 | // overriden 55 | const aiImporterDesc* GetInfo () const; 56 | 57 | // overriden 58 | void InternReadFile( const std::string& pFile, 59 | aiScene* pScene, IOSystem* pIOHandler); 60 | }; 61 | 62 | #endif 63 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utImproveCacheLocality.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "UnitTestPCH.h" -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utJoinVertices.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTLBW_H 2 | #define TESTLBW_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | 11 | using namespace std; 12 | using namespace Assimp; 13 | namespace Assimp { 14 | class JoinVerticesTest : public CPPUNIT_NS :: TestFixture 15 | { 16 | CPPUNIT_TEST_SUITE (JoinVerticesTest); 17 | CPPUNIT_TEST (testProcess); 18 | CPPUNIT_TEST_SUITE_END (); 19 | 20 | public: 21 | void setUp (void); 22 | void tearDown (void); 23 | 24 | protected: 25 | 26 | void testProcess (void); 27 | 28 | 29 | private: 30 | 31 | JoinVerticesProcess* piProcess; 32 | aiMesh* pcMesh; 33 | 34 | }; 35 | } 36 | #endif 37 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utLimitBoneWeights.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTLBW_H 2 | #define TESTLBW_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | 11 | using namespace std; 12 | using namespace Assimp; 13 | 14 | class LimitBoneWeightsTest : public CPPUNIT_NS :: TestFixture 15 | { 16 | CPPUNIT_TEST_SUITE (LimitBoneWeightsTest); 17 | CPPUNIT_TEST (testProcess); 18 | CPPUNIT_TEST_SUITE_END (); 19 | 20 | public: 21 | void setUp (void); 22 | void tearDown (void); 23 | 24 | protected: 25 | 26 | void testProcess (void); 27 | 28 | 29 | private: 30 | 31 | LimitBoneWeightsProcess* piProcess; 32 | aiMesh* pcMesh; 33 | 34 | }; 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utMaterialSystem.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTMATERIALS_H 2 | #define TESTMATERIALS_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | 11 | using namespace std; 12 | using namespace Assimp; 13 | 14 | class MaterialSystemTest : public CPPUNIT_NS :: TestFixture 15 | { 16 | CPPUNIT_TEST_SUITE (MaterialSystemTest); 17 | CPPUNIT_TEST (testFloatProperty); 18 | CPPUNIT_TEST (testFloatArrayProperty); 19 | CPPUNIT_TEST (testIntProperty); 20 | CPPUNIT_TEST (testIntArrayProperty); 21 | CPPUNIT_TEST (testColorProperty); 22 | CPPUNIT_TEST (testStringProperty); 23 | CPPUNIT_TEST_SUITE_END (); 24 | 25 | public: 26 | void setUp (void); 27 | void tearDown (void); 28 | 29 | protected: 30 | 31 | void testFloatProperty (void); 32 | void testFloatArrayProperty (void); 33 | void testIntProperty (void); 34 | void testIntArrayProperty (void); 35 | void testColorProperty (void); 36 | void testStringProperty (void); 37 | 38 | private: 39 | 40 | aiMaterial* pcMat; 41 | }; 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utNoBoostTest.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "UnitTestPCH.h" 3 | #include "utNoBoostTest.h" 4 | 5 | 6 | CPPUNIT_TEST_SUITE_REGISTRATION (NoBoostTest); 7 | 8 | // ------------------------------------------------------------------------------------------------ 9 | void NoBoostTest :: testFormat() 10 | { 11 | 12 | CPPUNIT_ASSERT( noboost::str( noboost::format("Ahoi!") ) == "Ahoi!" ); 13 | CPPUNIT_ASSERT( noboost::str( noboost::format("Ahoi! %%") ) == "Ahoi! %" ); 14 | CPPUNIT_ASSERT( noboost::str( noboost::format("Ahoi! %s") ) == "Ahoi! " ); 15 | CPPUNIT_ASSERT( noboost::str( noboost::format("Ahoi! %s") % "!!" ) == "Ahoi! !!" ); 16 | CPPUNIT_ASSERT( noboost::str( noboost::format("Ahoi! %s") % "!!" % "!!" ) == "Ahoi! !!" ); 17 | CPPUNIT_ASSERT( noboost::str( noboost::format("%s%s%s") % "a" % std::string("b") % "c" ) == "abc" ); 18 | } 19 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utNoBoostTest.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTNOBOOST_H 2 | #define TESTNOBOOST_H 3 | 4 | namespace noboost { 5 | 6 | #define ASSIMP_FORCE_NOBOOST 7 | #include "..\..\code\BoostWorkaround\boost\format.hpp" 8 | using boost::format; 9 | using boost::str; 10 | 11 | } 12 | 13 | using namespace std; 14 | using namespace Assimp; 15 | 16 | class NoBoostTest : public CPPUNIT_NS :: TestFixture 17 | { 18 | CPPUNIT_TEST_SUITE (NoBoostTest); 19 | CPPUNIT_TEST (testFormat); 20 | CPPUNIT_TEST_SUITE_END (); 21 | 22 | public: 23 | void setUp (void) { 24 | } 25 | void tearDown (void) { 26 | } 27 | 28 | protected: 29 | 30 | void testFormat (void); 31 | 32 | private: 33 | 34 | 35 | }; 36 | 37 | #endif -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utPretransformVertices.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTLBW_H 2 | #define TESTLBW_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | 11 | using namespace std; 12 | using namespace Assimp; 13 | 14 | class PretransformVerticesTest : public CPPUNIT_NS :: TestFixture 15 | { 16 | CPPUNIT_TEST_SUITE (PretransformVerticesTest); 17 | CPPUNIT_TEST (testProcess_CollapseHierarchy); 18 | CPPUNIT_TEST (testProcess_KeepHierarchy); 19 | CPPUNIT_TEST_SUITE_END (); 20 | 21 | public: 22 | void setUp (void); 23 | void tearDown (void); 24 | 25 | protected: 26 | 27 | void testProcess_CollapseHierarchy (void); 28 | void testProcess_KeepHierarchy (void); 29 | 30 | 31 | private: 32 | 33 | aiScene* scene; 34 | PretransformVertices* process; 35 | }; 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utRemoveComments.h: -------------------------------------------------------------------------------- 1 | #ifndef REMOVECOMMENTS_H 2 | #define REMOVECOMMENTS_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | 9 | 10 | using namespace std; 11 | using namespace Assimp; 12 | 13 | class RemoveCommentsTest : public CPPUNIT_NS :: TestFixture 14 | { 15 | CPPUNIT_TEST_SUITE (RemoveCommentsTest); 16 | CPPUNIT_TEST (testSingleLineComments); 17 | CPPUNIT_TEST (testMultiLineComments); 18 | CPPUNIT_TEST_SUITE_END (); 19 | 20 | public: 21 | void setUp (void); 22 | void tearDown (void); 23 | 24 | protected: 25 | 26 | void testSingleLineComments (void); 27 | void testMultiLineComments (void); 28 | 29 | 30 | private: 31 | 32 | }; 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utRemoveComponent.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTLBW_H 2 | #define TESTLBW_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | using namespace std; 12 | using namespace Assimp; 13 | 14 | class RemoveVCProcessTest : public CPPUNIT_NS :: TestFixture 15 | { 16 | CPPUNIT_TEST_SUITE (RemoveVCProcessTest); 17 | CPPUNIT_TEST (testMeshRemove); 18 | CPPUNIT_TEST (testAnimRemove); 19 | CPPUNIT_TEST (testMaterialRemove); 20 | CPPUNIT_TEST (testTextureRemove); 21 | CPPUNIT_TEST (testCameraRemove); 22 | CPPUNIT_TEST (testLightRemove); 23 | CPPUNIT_TEST (testMeshComponentsRemoveA); 24 | CPPUNIT_TEST (testMeshComponentsRemoveB); 25 | CPPUNIT_TEST (testRemoveEverything); 26 | CPPUNIT_TEST_SUITE_END (); 27 | 28 | public: 29 | void setUp (void); 30 | void tearDown (void); 31 | 32 | protected: 33 | 34 | void testMeshRemove (void); 35 | void testAnimRemove (void); 36 | void testMaterialRemove (void); 37 | void testTextureRemove (void); 38 | void testCameraRemove (void); 39 | void testLightRemove (void); 40 | 41 | void testMeshComponentsRemoveA (void); 42 | void testMeshComponentsRemoveB (void); 43 | void testRemoveEverything (void); 44 | 45 | private: 46 | 47 | RemoveVCProcess* piProcess; 48 | aiScene* pScene; 49 | }; 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utRemoveRedundantMaterials.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTRRM_H 2 | #define TESTRRM_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | using namespace std; 12 | using namespace Assimp; 13 | 14 | class RemoveRedundantMatsTest : public CPPUNIT_NS :: TestFixture 15 | { 16 | CPPUNIT_TEST_SUITE (RemoveRedundantMatsTest); 17 | CPPUNIT_TEST (testRedundantMaterials); 18 | CPPUNIT_TEST (testRedundantMaterialsWithExcludeList); 19 | CPPUNIT_TEST_SUITE_END (); 20 | 21 | public: 22 | void setUp (void); 23 | void tearDown (void); 24 | 25 | protected: 26 | 27 | void testRedundantMaterials (void); 28 | void testRedundantMaterialsWithExcludeList (void); 29 | 30 | private: 31 | 32 | RemoveRedundantMatsProcess* piProcess; 33 | 34 | aiScene* pcScene1; 35 | aiScene* pcScene2; 36 | }; 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utScenePreprocessor.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | #ifndef TESTSCENEPREPROCESSOR_H 5 | #define TESTSCENEPREPROCESSOR_H 6 | 7 | #include 8 | #include 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | using namespace std; 16 | using namespace Assimp; 17 | 18 | class ScenePreprocessorTest : public CPPUNIT_NS :: TestFixture 19 | { 20 | CPPUNIT_TEST_SUITE (ScenePreprocessorTest); 21 | CPPUNIT_TEST (testMeshPreprocessingPos); 22 | CPPUNIT_TEST (testMeshPreprocessingNeg); 23 | CPPUNIT_TEST (testAnimationPreprocessingPos); 24 | CPPUNIT_TEST_SUITE_END (); 25 | 26 | public: 27 | void setUp (void); 28 | void tearDown (void); 29 | 30 | protected: 31 | 32 | void testMeshPreprocessingPos (void); 33 | void testMeshPreprocessingNeg (void); 34 | void testAnimationPreprocessingPos (void); 35 | 36 | private: 37 | 38 | void CheckIfOnly(aiMesh* p,unsigned int num, unsigned flag); 39 | 40 | ScenePreprocessor* pp; 41 | aiScene* scene; 42 | }; 43 | 44 | #endif -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utSharedPPData.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "UnitTestPCH.h" 3 | #include "utSharedPPData.h" 4 | 5 | 6 | CPPUNIT_TEST_SUITE_REGISTRATION (SharedPPDataTest); 7 | 8 | static bool destructed; 9 | 10 | struct TestType 11 | { 12 | ~TestType() 13 | { 14 | destructed = true; 15 | } 16 | }; 17 | 18 | 19 | // ------------------------------------------------------------------------------------------------ 20 | void SharedPPDataTest :: setUp (void) 21 | { 22 | shared = new SharedPostProcessInfo(); 23 | destructed = false; 24 | } 25 | 26 | // ------------------------------------------------------------------------------------------------ 27 | void SharedPPDataTest :: tearDown (void) 28 | { 29 | 30 | } 31 | 32 | // ------------------------------------------------------------------------------------------------ 33 | void SharedPPDataTest :: testPODProperty (void) 34 | { 35 | int i = 5; 36 | shared->AddProperty("test",i); 37 | int o; 38 | CPPUNIT_ASSERT(shared->GetProperty("test",o) && 5 == o); 39 | CPPUNIT_ASSERT(!shared->GetProperty("test2",o) && 5 == o); 40 | 41 | float f = 12.f, m; 42 | shared->AddProperty("test",f); 43 | CPPUNIT_ASSERT(shared->GetProperty("test",m) && 12.f == m); 44 | } 45 | 46 | // ------------------------------------------------------------------------------------------------ 47 | void SharedPPDataTest :: testPropertyPointer (void) 48 | { 49 | int *i = new int[35]; 50 | shared->AddProperty("test16",i); 51 | int* o; 52 | CPPUNIT_ASSERT(shared->GetProperty("test16",o) && o == i); 53 | shared->RemoveProperty("test16"); 54 | CPPUNIT_ASSERT(!shared->GetProperty("test16",o)); 55 | } 56 | 57 | // ------------------------------------------------------------------------------------------------ 58 | void SharedPPDataTest :: testPropertyDeallocation (void) 59 | { 60 | TestType *out, * pip = new TestType(); 61 | shared->AddProperty("quak",pip); 62 | CPPUNIT_ASSERT(shared->GetProperty("quak",out) && out == pip); 63 | 64 | delete shared; 65 | CPPUNIT_ASSERT(destructed); 66 | } 67 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utSharedPPData.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTPPD_H 2 | #define TESTPPD_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | 11 | using namespace std; 12 | using namespace Assimp; 13 | 14 | class SharedPPDataTest : public CPPUNIT_NS :: TestFixture 15 | { 16 | CPPUNIT_TEST_SUITE (SharedPPDataTest); 17 | CPPUNIT_TEST (testPODProperty); 18 | CPPUNIT_TEST (testPropertyPointer); 19 | CPPUNIT_TEST (testPropertyDeallocation); 20 | CPPUNIT_TEST_SUITE_END (); 21 | 22 | public: 23 | void setUp (void); 24 | void tearDown (void); 25 | 26 | protected: 27 | 28 | void testPODProperty (void); 29 | void testPropertyPointer (void); 30 | void testPropertyDeallocation (void); 31 | 32 | private: 33 | 34 | SharedPostProcessInfo* shared; 35 | 36 | }; 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utSortByPType.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTPPD_H 2 | #define TESTPPD_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | 11 | using namespace std; 12 | using namespace Assimp; 13 | 14 | class SortByPTypeProcessTest : public CPPUNIT_NS :: TestFixture 15 | { 16 | CPPUNIT_TEST_SUITE (SortByPTypeProcessTest); 17 | CPPUNIT_TEST (testSortByPTypeStep); 18 | CPPUNIT_TEST_SUITE_END (); 19 | 20 | public: 21 | void setUp (void); 22 | void tearDown (void); 23 | 24 | protected: 25 | 26 | void testDeterminePTypeStep (void); 27 | void testSortByPTypeStep (void); 28 | 29 | private: 30 | 31 | SortByPTypeProcess* process1; 32 | aiScene* scene; 33 | }; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utSplitLargeMeshes.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTLM_H 2 | #define TESTLM_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | 11 | using namespace std; 12 | using namespace Assimp; 13 | 14 | class SplitLargeMeshesTest : public CPPUNIT_NS :: TestFixture 15 | { 16 | CPPUNIT_TEST_SUITE (SplitLargeMeshesTest); 17 | CPPUNIT_TEST (testVertexSplit); 18 | CPPUNIT_TEST (testTriangleSplit); 19 | CPPUNIT_TEST_SUITE_END (); 20 | 21 | public: 22 | void setUp (void); 23 | void tearDown (void); 24 | 25 | protected: 26 | 27 | void testVertexSplit (void); 28 | void testTriangleSplit (void); 29 | 30 | 31 | private: 32 | 33 | SplitLargeMeshesProcess_Triangle* piProcessTriangle; 34 | SplitLargeMeshesProcess_Vertex* piProcessVertex; 35 | aiMesh* pcMesh1; 36 | aiMesh* pcMesh2; 37 | }; 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utTargetAnimation.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "UnitTestPCH.h" 3 | 4 | // TODO -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utTargetAnimation.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utTargetAnimation.h -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utTextureTransform.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "UnitTestPCH.h" -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utTriangulate.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTNORMALS_H 2 | #define TESTNORMALS_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | 11 | using namespace std; 12 | using namespace Assimp; 13 | 14 | class TriangulateProcessTest : public CPPUNIT_NS :: TestFixture 15 | { 16 | CPPUNIT_TEST_SUITE (TriangulateProcessTest); 17 | CPPUNIT_TEST (testTriangulation); 18 | CPPUNIT_TEST_SUITE_END (); 19 | 20 | public: 21 | void setUp (void); 22 | void tearDown (void); 23 | 24 | protected: 25 | 26 | void testTriangulation (void); 27 | 28 | private: 29 | 30 | 31 | aiMesh* pcMesh; 32 | TriangulateProcess* piProcess; 33 | }; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/test/unit/utVertexTriangleAdjacency.h: -------------------------------------------------------------------------------- 1 | #ifndef VTADJ_H 2 | #define VTADJ_H 3 | 4 | #include 5 | #include 6 | 7 | #include "assimp/types.h" 8 | #include "assimp/mesh.h" 9 | #include 10 | 11 | 12 | using namespace std; 13 | using namespace Assimp; 14 | 15 | class VTAdjacency : public CPPUNIT_NS :: TestFixture 16 | { 17 | CPPUNIT_TEST_SUITE (VTAdjacency); 18 | CPPUNIT_TEST (largeRandomDataSet); 19 | CPPUNIT_TEST (smallDataSet); 20 | CPPUNIT_TEST (unreferencedVerticesSet); 21 | CPPUNIT_TEST_SUITE_END (); 22 | 23 | public: 24 | void setUp (void); 25 | void tearDown (void); 26 | 27 | protected: 28 | 29 | void largeRandomDataSet (void); 30 | void smallDataSet (void); 31 | void unreferencedVerticesSet (void); 32 | 33 | void checkMesh(aiMesh* pMesh); 34 | 35 | private: 36 | 37 | VertexTriangleAdjacency* pAdj; 38 | aiMesh* pMesh, *pMesh2, *pMesh3; 39 | }; 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_cmd/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required( VERSION 2.6 ) 2 | 3 | INCLUDE_DIRECTORIES( 4 | ${Assimp_SOURCE_DIR}/include 5 | ${Assimp_SOURCE_DIR}/code 6 | ) 7 | 8 | LINK_DIRECTORIES( ${Assimp_BINARY_DIR} ${Assimp_BINARY_DIR}/lib ) 9 | 10 | ADD_EXECUTABLE( assimp_cmd 11 | assimp_cmd.rc 12 | CompareDump.cpp 13 | ImageExtractor.cpp 14 | Main.cpp 15 | Main.h 16 | resource.h 17 | WriteDumb.cpp 18 | Info.cpp 19 | Export.cpp 20 | ) 21 | 22 | SET_PROPERTY(TARGET assimp_cmd PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX}) 23 | 24 | IF( WIN32 ) 25 | ADD_CUSTOM_COMMAND(TARGET assimp_cmd 26 | PRE_BUILD 27 | COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ 28 | MAIN_DEPENDENCY assimp) 29 | ENDIF( WIN32 ) 30 | 31 | TARGET_LINK_LIBRARIES( assimp_cmd assimp ${ZLIB_LIBRARIES}) 32 | SET_TARGET_PROPERTIES( assimp_cmd PROPERTIES 33 | OUTPUT_NAME assimp 34 | ) 35 | 36 | INSTALL( TARGETS assimp_cmd 37 | DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-bin 38 | ) 39 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_cmd/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by assimp_view.rc 4 | // 5 | #define IDC_MYICON 2 6 | #define IDD_ASSIMP_VIEW_DIALOG 102 7 | #define IDD_ABOUTBOX 103 8 | #define IDI_ASSIMP_VIEW 107 9 | 10 | 11 | // Next default values for new objects 12 | // 13 | #ifdef APSTUDIO_INVOKED 14 | #ifndef APSTUDIO_READONLY_SYMBOLS 15 | #define _APS_NO_MFC 1 16 | #define _APS_NEXT_RESOURCE_VALUE 159 17 | #define _APS_NEXT_COMMAND_VALUE 32831 18 | #define _APS_NEXT_CONTROL_VALUE 1052 19 | #define _APS_NEXT_SYMED_VALUE 110 20 | #endif 21 | #endif 22 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required( VERSION 2.6 ) 2 | 3 | FIND_PACKAGE(DirectX REQUIRED) 4 | 5 | INCLUDE_DIRECTORIES ( 6 | ${Assimp_SOURCE_DIR}/include 7 | ${Assimp_SOURCE_DIR}/code 8 | ${DirectX_INCLUDE_DIR} 9 | ) 10 | 11 | # Make sure the linker can find the Assimp library once it is built. 12 | LINK_DIRECTORIES (${Assimp_BINARY_DIR} ${AssetImporter_BINARY_DIR}/lib) 13 | 14 | ADD_EXECUTABLE( assimp_viewer WIN32 15 | AnimEvaluator.cpp 16 | Background.cpp 17 | Display.cpp 18 | HelpDialog.cpp 19 | Input.cpp 20 | LogDisplay.cpp 21 | LogWindow.cpp 22 | Material.cpp 23 | MeshRenderer.cpp 24 | MessageProc.cpp 25 | Normals.cpp 26 | SceneAnimator.cpp 27 | Shaders.cpp 28 | assimp_view.cpp 29 | stdafx.cpp 30 | assimp_view.rc 31 | banner.bmp 32 | banner_pure.bmp 33 | base_anim.bmp 34 | base_display.bmp 35 | base_inter.bmp 36 | base_rendering.bmp 37 | base_stats.bmp 38 | fx.bmp 39 | n.bmp 40 | root.bmp 41 | tx.bmp 42 | txi.bmp 43 | ) 44 | 45 | SET_PROPERTY(TARGET assimp_viewer PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX}) 46 | 47 | 48 | IF ( MSVC ) 49 | ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS ) 50 | ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS ) 51 | ENDIF ( MSVC ) 52 | 53 | 54 | # 55 | ADD_CUSTOM_COMMAND(TARGET assimp_viewer 56 | PRE_BUILD 57 | COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ 58 | MAIN_DEPENDENCY assimp) 59 | 60 | # Link the executable to the assimp + dx libs. 61 | TARGET_LINK_LIBRARIES ( assimp_viewer assimp ${DirectX_LIBRARY} ${DirectX_D3DX9_LIBRARY} comctl32.lib winmm.lib ) 62 | 63 | INSTALL( TARGETS assimp_viewer 64 | DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-dev 65 | ) 66 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/HUD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/HUD.png -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/HUDMask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/HUDMask.png -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/NOTE@help.rtf.txt: -------------------------------------------------------------------------------- 1 | text1.bin is the corresponding bin file to be included with the executable file. 2 | When updating the rich formatted text inside Visual Studio, a terminating 0 character must be appended -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/banner.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/banner.bmp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/banner_pure.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/banner_pure.bmp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/base.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/base.PNG -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/base_anim.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/base_anim.bmp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/base_display.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/base_display.bmp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/base_inter.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/base_inter.bmp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/base_rendering.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/base_rendering.bmp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/base_stats.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/base_stats.bmp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/fx.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/fx.bmp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/n.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/n.bmp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/root.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/root.bmp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/stdafx.cpp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/stdafx.h -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/test.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/test.xcf -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/tx.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/tx.bmp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/txi.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/assimp_view/txi.bmp -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/shared/assimp_tools_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/shared/assimp_tools_icon.ico -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/shared/assimp_tools_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/shared/assimp_tools_icon.png -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/tools/shared/default_icon.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/assimp-3.1.1/tools/shared/default_icon.xcf -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/assimp-3.1.1/workspaces/xcode3/info.txt: -------------------------------------------------------------------------------- 1 | The xcode project files in this directory are contributed by Andy Maloney and are not continuously updated. 2 | Currently, it's for Assimp r352. If you're using a newer revision, watch out for missing files/includes/... 3 | 4 | See Andy's description at 5 | http://sourceforge.net/tracker/index.php?func=detail&aid=2659135&group_id=226462&atid=1067634 (Tracker item 2659135) 6 | for more information. 7 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/cube.obj: -------------------------------------------------------------------------------- 1 | # Blender3D v249 OBJ File: untitled.blend 2 | # www.blender3d.org 3 | mtllib cube.mtl 4 | v 1.000000 -1.000000 -1.000000 5 | v 1.000000 -1.000000 1.000000 6 | v -1.000000 -1.000000 1.000000 7 | v -1.000000 -1.000000 -1.000000 8 | v 1.000000 1.000000 -1.000000 9 | v 0.999999 1.000000 1.000001 10 | v -1.000000 1.000000 1.000000 11 | v -1.000000 1.000000 -1.000000 12 | vt 0.748573 0.750412 13 | vt 0.749279 0.501284 14 | vt 0.999110 0.501077 15 | vt 0.999455 0.750380 16 | vt 0.250471 0.500702 17 | vt 0.249682 0.749677 18 | vt 0.001085 0.750380 19 | vt 0.001517 0.499994 20 | vt 0.499422 0.500239 21 | vt 0.500149 0.750166 22 | vt 0.748355 0.998230 23 | vt 0.500193 0.998728 24 | vt 0.498993 0.250415 25 | vt 0.748953 0.250920 26 | vn 0.000000 0.000000 -1.000000 27 | vn -1.000000 -0.000000 -0.000000 28 | vn -0.000000 -0.000000 1.000000 29 | vn -0.000001 0.000000 1.000000 30 | vn 1.000000 -0.000000 0.000000 31 | vn 1.000000 0.000000 0.000001 32 | vn 0.000000 1.000000 -0.000000 33 | vn -0.000000 -1.000000 0.000000 34 | usemtl Material_ray.png 35 | s off 36 | f 5/1/1 1/2/1 4/3/1 37 | f 5/1/1 4/3/1 8/4/1 38 | f 3/5/2 7/6/2 8/7/2 39 | f 3/5/2 8/7/2 4/8/2 40 | f 2/9/3 6/10/3 3/5/3 41 | f 6/10/4 7/6/4 3/5/4 42 | f 1/2/5 5/1/5 2/9/5 43 | f 5/1/6 6/10/6 2/9/6 44 | f 5/1/7 8/11/7 6/10/7 45 | f 8/11/7 7/12/7 6/10/7 46 | f 1/2/8 2/9/8 3/13/8 47 | f 1/2/8 3/13/8 4/14/8 48 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/myresources.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | VertShader.vsh 4 | FragShader.fsh 5 | uvmap.DDS 6 | suzanne.obj 7 | uvtemplate.bmp 8 | 9 | 10 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/qgl_tutorial07.h: -------------------------------------------------------------------------------- 1 | #ifndef QGL_TUTORIAL07_H 2 | #define QGL_TUTORIAL07_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | class Tutorial07 : public QOpenGLWidget, protected QOpenGLFunctions 12 | { 13 | public: 14 | Tutorial07( QWidget *parent=0 ); 15 | ~Tutorial07(); 16 | 17 | protected: 18 | void initializeGL(void); 19 | void resizeGL( int w, int h ); 20 | void paintGL(); 21 | void keyPressEvent( QKeyEvent *e); 22 | void timerEvent(QTimerEvent*); 23 | 24 | private: 25 | QOpenGLShaderProgram shaderProgram; 26 | QMatrix4x4 MVP; 27 | QMatrix4x4 view; 28 | QMatrix4x4 rot; 29 | QMatrix4x4 model; 30 | //GLuint mTexture; 31 | 32 | int vertexLocation; 33 | int matrixLocation; 34 | int textureLocation; 35 | int viewMatrixLocation; 36 | int modelMatrixLocation; 37 | int vertexUVLocation; 38 | int vertexNormalLocation; 39 | int lightLocation; 40 | 41 | GLuint programID; 42 | GLuint MatrixID; 43 | GLuint vertexPosition_modelspaceID; 44 | GLuint vertexUVID; 45 | GLuint TextureID; 46 | GLuint vertexbuffer; 47 | GLuint uvbuffer; 48 | QOpenGLTexture* mTexture; 49 | 50 | void loadScene(QString filename); 51 | unsigned int nFaces; 52 | unsigned int nVertFace; 53 | //GLfloat* vertexData; 54 | //GLfloat* texCoord; 55 | //GLfloat* normals; 56 | std::vector vertexData; 57 | std::vector texCoord; 58 | std::vector normals; 59 | }; 60 | 61 | 62 | #endif // QGL_TUTORIAL07_H 63 | -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/uvmap.DDS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/uvmap.DDS -------------------------------------------------------------------------------- /qgl_tutorial07_model_loading/uvtemplate.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kgmerk/qgl_tutorials/50f8e0b09271d9cf3acb4704a8cbb1aa4398479e/qgl_tutorial07_model_loading/uvtemplate.bmp --------------------------------------------------------------------------------