├── .vscode ├── c_cpp_properties.json ├── launch.json ├── settings.json └── tasks.json ├── Builds ├── Linux_Build │ └── engine └── Win_Build │ ├── OpenAL32.dll │ ├── SDL2.dll │ ├── SDL2_image.dll │ ├── SDL2_ttf.dll │ ├── engine.exe │ ├── glew32.dll │ ├── glew32mx.dll │ ├── glu32.dll │ ├── libfreetype-6.dll │ ├── libgcc_s_dw2-1.dll │ ├── libjpeg-9.dll │ ├── libpng16-16.dll │ ├── libstdc++-6.dll │ ├── libtiff-5.dll │ ├── libwebp-4.dll │ └── zlib1.dll ├── Dependencies ├── bin │ ├── OpenAL32.dll │ ├── SDL2.dll │ ├── SDL2_image.dll │ ├── SDL2_ttf.dll │ ├── glew32.dll │ ├── glew32mx.dll │ ├── glu32.dll │ ├── libfreetype-6.dll │ ├── libgcc_s_dw2-1.dll │ ├── libjpeg-9.dll │ ├── libpng16-16.dll │ ├── libstdc++-6.dll │ ├── libtiff-5.dll │ ├── libwebp-4.dll │ └── zlib1.dll ├── include │ ├── AL │ │ ├── al.h │ │ ├── alc.h │ │ ├── alext.h │ │ ├── efx-creative.h │ │ ├── efx-presets.h │ │ └── efx.h │ ├── Bullet-C-Api.h │ ├── BulletCollision │ │ ├── BroadphaseCollision │ │ │ ├── btAxisSweep3.h │ │ │ ├── btBroadphaseInterface.h │ │ │ ├── btBroadphaseProxy.h │ │ │ ├── btCollisionAlgorithm.h │ │ │ ├── btDbvt.h │ │ │ ├── btDbvtBroadphase.h │ │ │ ├── btDispatcher.h │ │ │ ├── btMultiSapBroadphase.h │ │ │ ├── btOverlappingPairCache.h │ │ │ ├── btOverlappingPairCallback.h │ │ │ ├── btQuantizedBvh.h │ │ │ └── btSimpleBroadphase.h │ │ ├── CollisionDispatch │ │ │ ├── SphereTriangleDetector.h │ │ │ ├── btActivatingCollisionAlgorithm.h │ │ │ ├── btBox2dBox2dCollisionAlgorithm.h │ │ │ ├── btBoxBoxCollisionAlgorithm.h │ │ │ ├── btBoxBoxDetector.h │ │ │ ├── btCollisionConfiguration.h │ │ │ ├── btCollisionCreateFunc.h │ │ │ ├── btCollisionDispatcher.h │ │ │ ├── btCollisionObject.h │ │ │ ├── btCollisionObjectWrapper.h │ │ │ ├── btCollisionWorld.h │ │ │ ├── btCompoundCollisionAlgorithm.h │ │ │ ├── btCompoundCompoundCollisionAlgorithm.h │ │ │ ├── btConvex2dConvex2dAlgorithm.h │ │ │ ├── btConvexConcaveCollisionAlgorithm.h │ │ │ ├── btConvexConvexAlgorithm.h │ │ │ ├── btConvexPlaneCollisionAlgorithm.h │ │ │ ├── btDefaultCollisionConfiguration.h │ │ │ ├── btEmptyCollisionAlgorithm.h │ │ │ ├── btGhostObject.h │ │ │ ├── btHashedSimplePairCache.h │ │ │ ├── btInternalEdgeUtility.h │ │ │ ├── btManifoldResult.h │ │ │ ├── btSimulationIslandManager.h │ │ │ ├── btSphereBoxCollisionAlgorithm.h │ │ │ ├── btSphereSphereCollisionAlgorithm.h │ │ │ ├── btSphereTriangleCollisionAlgorithm.h │ │ │ └── btUnionFind.h │ │ ├── CollisionShapes │ │ │ ├── btBox2dShape.h │ │ │ ├── btBoxShape.h │ │ │ ├── btBvhTriangleMeshShape.h │ │ │ ├── btCapsuleShape.h │ │ │ ├── btCollisionMargin.h │ │ │ ├── btCollisionShape.h │ │ │ ├── btCompoundShape.h │ │ │ ├── btConcaveShape.h │ │ │ ├── btConeShape.h │ │ │ ├── btConvex2dShape.h │ │ │ ├── btConvexHullShape.h │ │ │ ├── btConvexInternalShape.h │ │ │ ├── btConvexPointCloudShape.h │ │ │ ├── btConvexPolyhedron.h │ │ │ ├── btConvexShape.h │ │ │ ├── btConvexTriangleMeshShape.h │ │ │ ├── btCylinderShape.h │ │ │ ├── btEmptyShape.h │ │ │ ├── btHeightfieldTerrainShape.h │ │ │ ├── btMaterial.h │ │ │ ├── btMinkowskiSumShape.h │ │ │ ├── btMultiSphereShape.h │ │ │ ├── btMultimaterialTriangleMeshShape.h │ │ │ ├── btOptimizedBvh.h │ │ │ ├── btPolyhedralConvexShape.h │ │ │ ├── btScaledBvhTriangleMeshShape.h │ │ │ ├── btShapeHull.h │ │ │ ├── btSphereShape.h │ │ │ ├── btStaticPlaneShape.h │ │ │ ├── btStridingMeshInterface.h │ │ │ ├── btTetrahedronShape.h │ │ │ ├── btTriangleBuffer.h │ │ │ ├── btTriangleCallback.h │ │ │ ├── btTriangleIndexVertexArray.h │ │ │ ├── btTriangleIndexVertexMaterialArray.h │ │ │ ├── btTriangleInfoMap.h │ │ │ ├── btTriangleMesh.h │ │ │ ├── btTriangleMeshShape.h │ │ │ ├── btTriangleShape.h │ │ │ └── btUniformScalingShape.h │ │ ├── Doxyfile │ │ ├── Gimpact │ │ │ ├── btBoxCollision.h │ │ │ ├── btClipPolygon.h │ │ │ ├── btCompoundFromGimpact.h │ │ │ ├── btContactProcessing.h │ │ │ ├── btGImpactBvh.h │ │ │ ├── btGImpactCollisionAlgorithm.h │ │ │ ├── btGImpactMassUtil.h │ │ │ ├── btGImpactQuantizedBvh.h │ │ │ ├── btGImpactShape.h │ │ │ ├── btGenericPoolAllocator.h │ │ │ ├── btGeometryOperations.h │ │ │ ├── btQuantization.h │ │ │ ├── btTriangleShapeEx.h │ │ │ ├── gim_array.h │ │ │ ├── gim_basic_geometry_operations.h │ │ │ ├── gim_bitset.h │ │ │ ├── gim_box_collision.h │ │ │ ├── gim_box_set.h │ │ │ ├── gim_clip_polygon.h │ │ │ ├── gim_contact.h │ │ │ ├── gim_geom_types.h │ │ │ ├── gim_geometry.h │ │ │ ├── gim_hash_table.h │ │ │ ├── gim_linear_math.h │ │ │ ├── gim_math.h │ │ │ ├── gim_memory.h │ │ │ ├── gim_radixsort.h │ │ │ └── gim_tri_collision.h │ │ ├── NarrowPhaseCollision │ │ │ ├── btContinuousConvexCollision.h │ │ │ ├── btConvexCast.h │ │ │ ├── btConvexPenetrationDepthSolver.h │ │ │ ├── btDiscreteCollisionDetectorInterface.h │ │ │ ├── btGjkConvexCast.h │ │ │ ├── btGjkEpa2.h │ │ │ ├── btGjkEpaPenetrationDepthSolver.h │ │ │ ├── btGjkPairDetector.h │ │ │ ├── btManifoldPoint.h │ │ │ ├── btMinkowskiPenetrationDepthSolver.h │ │ │ ├── btPersistentManifold.h │ │ │ ├── btPointCollector.h │ │ │ ├── btPolyhedralContactClipping.h │ │ │ ├── btRaycastCallback.h │ │ │ ├── btSimplexSolverInterface.h │ │ │ ├── btSubSimplexConvexCast.h │ │ │ └── btVoronoiSimplexSolver.h │ │ └── premake4.lua │ ├── BulletDynamics │ │ ├── Character │ │ │ ├── btCharacterControllerInterface.h │ │ │ └── btKinematicCharacterController.h │ │ ├── ConstraintSolver │ │ │ ├── btConeTwistConstraint.h │ │ │ ├── btConstraintSolver.h │ │ │ ├── btContactConstraint.h │ │ │ ├── btContactSolverInfo.h │ │ │ ├── btFixedConstraint.h │ │ │ ├── btGearConstraint.h │ │ │ ├── btGeneric6DofConstraint.h │ │ │ ├── btGeneric6DofSpringConstraint.h │ │ │ ├── btHinge2Constraint.h │ │ │ ├── btHingeConstraint.h │ │ │ ├── btJacobianEntry.h │ │ │ ├── btPoint2PointConstraint.h │ │ │ ├── btSequentialImpulseConstraintSolver.h │ │ │ ├── btSliderConstraint.h │ │ │ ├── btSolve2LinearConstraint.h │ │ │ ├── btSolverBody.h │ │ │ ├── btSolverConstraint.h │ │ │ ├── btTypedConstraint.h │ │ │ └── btUniversalConstraint.h │ │ ├── Dynamics │ │ │ ├── btActionInterface.h │ │ │ ├── btDiscreteDynamicsWorld.h │ │ │ ├── btDynamicsWorld.h │ │ │ ├── btRigidBody.h │ │ │ └── btSimpleDynamicsWorld.h │ │ ├── Featherstone │ │ │ ├── btMultiBody.h │ │ │ ├── btMultiBodyConstraint.h │ │ │ ├── btMultiBodyConstraintSolver.h │ │ │ ├── btMultiBodyDynamicsWorld.h │ │ │ ├── btMultiBodyJointLimitConstraint.h │ │ │ ├── btMultiBodyJointMotor.h │ │ │ ├── btMultiBodyLink.h │ │ │ ├── btMultiBodyLinkCollider.h │ │ │ ├── btMultiBodyPoint2Point.h │ │ │ └── btMultiBodySolverConstraint.h │ │ ├── MLCPSolvers │ │ │ ├── btDantzigLCP.h │ │ │ ├── btDantzigSolver.h │ │ │ ├── btMLCPSolver.h │ │ │ ├── btMLCPSolverInterface.h │ │ │ ├── btPATHSolver.h │ │ │ └── btSolveProjectedGaussSeidel.h │ │ ├── Vehicle │ │ │ ├── btRaycastVehicle.h │ │ │ ├── btVehicleRaycaster.h │ │ │ └── btWheelInfo.h │ │ └── premake4.lua │ ├── BulletMultiThreaded │ │ ├── GpuSoftBodySolvers │ │ │ ├── DX11 │ │ │ │ ├── HLSL │ │ │ │ │ ├── ApplyForces.hlsl │ │ │ │ │ ├── ComputeBounds.hlsl │ │ │ │ │ ├── Integrate.hlsl │ │ │ │ │ ├── OutputToVertexArray.hlsl │ │ │ │ │ ├── PrepareLinks.hlsl │ │ │ │ │ ├── SolvePositions.hlsl │ │ │ │ │ ├── SolvePositionsSIMDBatched.hlsl │ │ │ │ │ ├── UpdateConstants.hlsl │ │ │ │ │ ├── UpdateNodes.hlsl │ │ │ │ │ ├── UpdateNormals.hlsl │ │ │ │ │ ├── UpdatePositions.hlsl │ │ │ │ │ ├── UpdatePositionsFromVelocities.hlsl │ │ │ │ │ ├── VSolveLinks.hlsl │ │ │ │ │ ├── solveCollisionsAndUpdateVelocities.hlsl │ │ │ │ │ └── solveCollisionsAndUpdateVelocitiesSIMDBatched.hlsl │ │ │ │ ├── btSoftBodySolverBuffer_DX11.h │ │ │ │ ├── btSoftBodySolverLinkData_DX11.h │ │ │ │ ├── btSoftBodySolverLinkData_DX11SIMDAware.h │ │ │ │ ├── btSoftBodySolverTriangleData_DX11.h │ │ │ │ ├── btSoftBodySolverVertexBuffer_DX11.h │ │ │ │ ├── btSoftBodySolverVertexData_DX11.h │ │ │ │ ├── btSoftBodySolver_DX11.h │ │ │ │ ├── btSoftBodySolver_DX11SIMDAware.h │ │ │ │ └── premake4.lua │ │ │ ├── OpenCL │ │ │ │ ├── AMD │ │ │ │ │ └── premake4.lua │ │ │ │ ├── Intel │ │ │ │ │ └── premake4.lua │ │ │ │ ├── NVidia │ │ │ │ │ └── premake4.lua │ │ │ │ ├── OpenCLC10 │ │ │ │ │ ├── ApplyForces.cl │ │ │ │ │ ├── ComputeBounds.cl │ │ │ │ │ ├── Integrate.cl │ │ │ │ │ ├── OutputToVertexArray.cl │ │ │ │ │ ├── PrepareLinks.cl │ │ │ │ │ ├── SolveCollisionsAndUpdateVelocities.cl │ │ │ │ │ ├── SolveCollisionsAndUpdateVelocitiesSIMDBatched.cl │ │ │ │ │ ├── SolvePositions.cl │ │ │ │ │ ├── SolvePositionsSIMDBatched.cl │ │ │ │ │ ├── UpdateConstants.cl │ │ │ │ │ ├── UpdateFixedVertexPositions.cl │ │ │ │ │ ├── UpdateNodes.cl │ │ │ │ │ ├── UpdateNormals.cl │ │ │ │ │ ├── UpdatePositions.cl │ │ │ │ │ ├── UpdatePositionsFromVelocities.cl │ │ │ │ │ └── VSolveLinks.cl │ │ │ │ ├── btSoftBodySolverBuffer_OpenCL.h │ │ │ │ ├── btSoftBodySolverLinkData_OpenCL.h │ │ │ │ ├── btSoftBodySolverLinkData_OpenCLSIMDAware.h │ │ │ │ ├── btSoftBodySolverOutputCLtoGL.h │ │ │ │ ├── btSoftBodySolverTriangleData_OpenCL.h │ │ │ │ ├── btSoftBodySolverVertexBuffer_OpenGL.h │ │ │ │ ├── btSoftBodySolverVertexData_OpenCL.h │ │ │ │ ├── btSoftBodySolver_OpenCL.h │ │ │ │ └── btSoftBodySolver_OpenCLSIMDAware.h │ │ │ └── Shared │ │ │ │ └── btSoftBodySolverData.h │ │ ├── HeapManager.h │ │ ├── PlatformDefinitions.h │ │ ├── PosixThreadSupport.h │ │ ├── PpuAddressSpace.h │ │ ├── SequentialThreadSupport.h │ │ ├── SpuCollisionObjectWrapper.h │ │ ├── SpuCollisionTaskProcess.h │ │ ├── SpuContactManifoldCollisionAlgorithm.h │ │ ├── SpuDoubleBuffer.h │ │ ├── SpuFakeDma.h │ │ ├── SpuGatheringCollisionDispatcher.h │ │ ├── SpuLibspe2Support.h │ │ ├── SpuNarrowPhaseCollisionTask │ │ │ ├── Box.h │ │ │ ├── SpuCollisionShapes.h │ │ │ ├── SpuContactResult.h │ │ │ ├── SpuConvexPenetrationDepthSolver.h │ │ │ ├── SpuGatheringCollisionTask.h │ │ │ ├── SpuLocalSupport.h │ │ │ ├── SpuMinkowskiPenetrationDepthSolver.h │ │ │ ├── SpuPreferredPenetrationDirections.h │ │ │ ├── boxBoxDistance.h │ │ │ └── readme.txt │ │ ├── SpuSampleTask │ │ │ ├── SpuSampleTask.h │ │ │ └── readme.txt │ │ ├── SpuSampleTaskProcess.h │ │ ├── SpuSync.h │ │ ├── TrbDynBody.h │ │ ├── TrbStateVec.h │ │ ├── Win32ThreadSupport.h │ │ ├── btGpu3DGridBroadphase.h │ │ ├── btGpu3DGridBroadphaseSharedCode.h │ │ ├── btGpu3DGridBroadphaseSharedDefs.h │ │ ├── btGpu3DGridBroadphaseSharedTypes.h │ │ ├── btGpuDefines.h │ │ ├── btGpuUtilsSharedCode.h │ │ ├── btGpuUtilsSharedDefs.h │ │ ├── btParallelConstraintSolver.h │ │ ├── btThreadSupportInterface.h │ │ └── vectormath2bullet.h │ ├── BulletSoftBody │ │ ├── btDefaultSoftBodySolver.h │ │ ├── btSoftBody.h │ │ ├── btSoftBodyConcaveCollisionAlgorithm.h │ │ ├── btSoftBodyData.h │ │ ├── btSoftBodyHelpers.h │ │ ├── btSoftBodyInternals.h │ │ ├── btSoftBodyRigidBodyCollisionConfiguration.h │ │ ├── btSoftBodySolverVertexBuffer.h │ │ ├── btSoftBodySolvers.h │ │ ├── btSoftRigidCollisionAlgorithm.h │ │ ├── btSoftRigidDynamicsWorld.h │ │ ├── btSoftSoftCollisionAlgorithm.h │ │ ├── btSparseSDF.h │ │ └── premake4.lua │ ├── GL │ │ ├── eglew.h │ │ ├── gl.h │ │ ├── glew.h │ │ ├── glext.h │ │ ├── glu.h │ │ ├── glxew.h │ │ └── wglew.h │ ├── GLM │ │ ├── common.hpp │ │ ├── detail │ │ │ ├── _features.hpp │ │ │ ├── _fixes.hpp │ │ │ ├── _noise.hpp │ │ │ ├── _swizzle.hpp │ │ │ ├── _swizzle_func.hpp │ │ │ ├── _vectorize.hpp │ │ │ ├── dummy.cpp │ │ │ ├── func_common.hpp │ │ │ ├── func_common.inl │ │ │ ├── func_exponential.hpp │ │ │ ├── func_exponential.inl │ │ │ ├── func_geometric.hpp │ │ │ ├── func_geometric.inl │ │ │ ├── func_integer.hpp │ │ │ ├── func_integer.inl │ │ │ ├── func_matrix.hpp │ │ │ ├── func_matrix.inl │ │ │ ├── func_noise.hpp │ │ │ ├── func_noise.inl │ │ │ ├── func_packing.hpp │ │ │ ├── func_packing.inl │ │ │ ├── func_trigonometric.hpp │ │ │ ├── func_trigonometric.inl │ │ │ ├── func_vector_relational.hpp │ │ │ ├── func_vector_relational.inl │ │ │ ├── glm.cpp │ │ │ ├── intrinsic_common.hpp │ │ │ ├── intrinsic_common.inl │ │ │ ├── intrinsic_exponential.hpp │ │ │ ├── intrinsic_exponential.inl │ │ │ ├── intrinsic_geometric.hpp │ │ │ ├── intrinsic_geometric.inl │ │ │ ├── intrinsic_integer.hpp │ │ │ ├── intrinsic_integer.inl │ │ │ ├── intrinsic_matrix.hpp │ │ │ ├── intrinsic_matrix.inl │ │ │ ├── intrinsic_trigonometric.hpp │ │ │ ├── intrinsic_trigonometric.inl │ │ │ ├── intrinsic_vector_relational.hpp │ │ │ ├── intrinsic_vector_relational.inl │ │ │ ├── precision.hpp │ │ │ ├── setup.hpp │ │ │ ├── type_float.hpp │ │ │ ├── type_gentype.hpp │ │ │ ├── type_gentype.inl │ │ │ ├── type_half.hpp │ │ │ ├── type_half.inl │ │ │ ├── type_int.hpp │ │ │ ├── type_mat.hpp │ │ │ ├── type_mat.inl │ │ │ ├── type_mat2x2.hpp │ │ │ ├── type_mat2x2.inl │ │ │ ├── type_mat2x3.hpp │ │ │ ├── type_mat2x3.inl │ │ │ ├── type_mat2x4.hpp │ │ │ ├── type_mat2x4.inl │ │ │ ├── type_mat3x2.hpp │ │ │ ├── type_mat3x2.inl │ │ │ ├── type_mat3x3.hpp │ │ │ ├── type_mat3x3.inl │ │ │ ├── type_mat3x4.hpp │ │ │ ├── type_mat3x4.inl │ │ │ ├── type_mat4x2.hpp │ │ │ ├── type_mat4x2.inl │ │ │ ├── type_mat4x3.hpp │ │ │ ├── type_mat4x3.inl │ │ │ ├── type_mat4x4.hpp │ │ │ ├── type_mat4x4.inl │ │ │ ├── type_vec.hpp │ │ │ ├── type_vec.inl │ │ │ ├── type_vec1.hpp │ │ │ ├── type_vec1.inl │ │ │ ├── type_vec2.hpp │ │ │ ├── type_vec2.inl │ │ │ ├── type_vec3.hpp │ │ │ ├── type_vec3.inl │ │ │ ├── type_vec4.hpp │ │ │ ├── type_vec4.inl │ │ │ ├── type_vec4_avx.inl │ │ │ ├── type_vec4_avx2.inl │ │ │ └── type_vec4_sse2.inl │ │ ├── exponential.hpp │ │ ├── ext.hpp │ │ ├── fwd.hpp │ │ ├── geometric.hpp │ │ ├── glm.hpp │ │ ├── gtc │ │ │ ├── bitfield.hpp │ │ │ ├── bitfield.inl │ │ │ ├── color_space.hpp │ │ │ ├── color_space.inl │ │ │ ├── constants.hpp │ │ │ ├── constants.inl │ │ │ ├── epsilon.hpp │ │ │ ├── epsilon.inl │ │ │ ├── integer.hpp │ │ │ ├── integer.inl │ │ │ ├── matrix_access.hpp │ │ │ ├── matrix_access.inl │ │ │ ├── matrix_integer.hpp │ │ │ ├── matrix_inverse.hpp │ │ │ ├── matrix_inverse.inl │ │ │ ├── matrix_transform.hpp │ │ │ ├── matrix_transform.inl │ │ │ ├── noise.hpp │ │ │ ├── noise.inl │ │ │ ├── packing.hpp │ │ │ ├── packing.inl │ │ │ ├── quaternion.hpp │ │ │ ├── quaternion.inl │ │ │ ├── random.hpp │ │ │ ├── random.inl │ │ │ ├── reciprocal.hpp │ │ │ ├── reciprocal.inl │ │ │ ├── round.hpp │ │ │ ├── round.inl │ │ │ ├── type_precision.hpp │ │ │ ├── type_precision.inl │ │ │ ├── type_ptr.hpp │ │ │ ├── type_ptr.inl │ │ │ ├── ulp.hpp │ │ │ ├── ulp.inl │ │ │ ├── vec1.hpp │ │ │ └── vec1.inl │ │ ├── gtx │ │ │ ├── associated_min_max.hpp │ │ │ ├── associated_min_max.inl │ │ │ ├── bit.hpp │ │ │ ├── bit.inl │ │ │ ├── closest_point.hpp │ │ │ ├── closest_point.inl │ │ │ ├── color_space.hpp │ │ │ ├── color_space.inl │ │ │ ├── color_space_YCoCg.hpp │ │ │ ├── color_space_YCoCg.inl │ │ │ ├── common.hpp │ │ │ ├── common.inl │ │ │ ├── compatibility.hpp │ │ │ ├── compatibility.inl │ │ │ ├── component_wise.hpp │ │ │ ├── component_wise.inl │ │ │ ├── dual_quaternion.hpp │ │ │ ├── dual_quaternion.inl │ │ │ ├── euler_angles.hpp │ │ │ ├── euler_angles.inl │ │ │ ├── extend.hpp │ │ │ ├── extend.inl │ │ │ ├── extented_min_max.hpp │ │ │ ├── extented_min_max.inl │ │ │ ├── fast_exponential.hpp │ │ │ ├── fast_exponential.inl │ │ │ ├── fast_square_root.hpp │ │ │ ├── fast_square_root.inl │ │ │ ├── fast_trigonometry.hpp │ │ │ ├── fast_trigonometry.inl │ │ │ ├── gradient_paint.hpp │ │ │ ├── gradient_paint.inl │ │ │ ├── handed_coordinate_space.hpp │ │ │ ├── handed_coordinate_space.inl │ │ │ ├── hash.hpp │ │ │ ├── hash.inl │ │ │ ├── integer.hpp │ │ │ ├── integer.inl │ │ │ ├── intersect.hpp │ │ │ ├── intersect.inl │ │ │ ├── io.hpp │ │ │ ├── io.inl │ │ │ ├── log_base.hpp │ │ │ ├── log_base.inl │ │ │ ├── matrix_cross_product.hpp │ │ │ ├── matrix_cross_product.inl │ │ │ ├── matrix_decompose.hpp │ │ │ ├── matrix_decompose.inl │ │ │ ├── matrix_interpolation.hpp │ │ │ ├── matrix_interpolation.inl │ │ │ ├── matrix_major_storage.hpp │ │ │ ├── matrix_major_storage.inl │ │ │ ├── matrix_operation.hpp │ │ │ ├── matrix_operation.inl │ │ │ ├── matrix_query.hpp │ │ │ ├── matrix_query.inl │ │ │ ├── matrix_transform_2d.hpp │ │ │ ├── matrix_transform_2d.inl │ │ │ ├── mixed_product.hpp │ │ │ ├── mixed_product.inl │ │ │ ├── norm.hpp │ │ │ ├── norm.inl │ │ │ ├── normal.hpp │ │ │ ├── normal.inl │ │ │ ├── normalize_dot.hpp │ │ │ ├── normalize_dot.inl │ │ │ ├── number_precision.hpp │ │ │ ├── number_precision.inl │ │ │ ├── optimum_pow.hpp │ │ │ ├── optimum_pow.inl │ │ │ ├── orthonormalize.hpp │ │ │ ├── orthonormalize.inl │ │ │ ├── perpendicular.hpp │ │ │ ├── perpendicular.inl │ │ │ ├── polar_coordinates.hpp │ │ │ ├── polar_coordinates.inl │ │ │ ├── projection.hpp │ │ │ ├── projection.inl │ │ │ ├── quaternion.hpp │ │ │ ├── quaternion.inl │ │ │ ├── range.hpp │ │ │ ├── raw_data.hpp │ │ │ ├── raw_data.inl │ │ │ ├── rotate_normalized_axis.hpp │ │ │ ├── rotate_normalized_axis.inl │ │ │ ├── rotate_vector.hpp │ │ │ ├── rotate_vector.inl │ │ │ ├── scalar_multiplication.hpp │ │ │ ├── scalar_relational.hpp │ │ │ ├── scalar_relational.inl │ │ │ ├── simd_mat4.hpp │ │ │ ├── simd_mat4.inl │ │ │ ├── simd_quat.hpp │ │ │ ├── simd_quat.inl │ │ │ ├── simd_vec4.hpp │ │ │ ├── simd_vec4.inl │ │ │ ├── spline.hpp │ │ │ ├── spline.inl │ │ │ ├── std_based_type.hpp │ │ │ ├── std_based_type.inl │ │ │ ├── string_cast.hpp │ │ │ ├── string_cast.inl │ │ │ ├── transform.hpp │ │ │ ├── transform.inl │ │ │ ├── transform2.hpp │ │ │ ├── transform2.inl │ │ │ ├── type_aligned.hpp │ │ │ ├── type_aligned.inl │ │ │ ├── vector_angle.hpp │ │ │ ├── vector_angle.inl │ │ │ ├── vector_query.hpp │ │ │ ├── vector_query.inl │ │ │ ├── wrap.hpp │ │ │ └── wrap.inl │ │ ├── integer.hpp │ │ ├── mat2x2.hpp │ │ ├── mat2x3.hpp │ │ ├── mat2x4.hpp │ │ ├── mat3x2.hpp │ │ ├── mat3x3.hpp │ │ ├── mat3x4.hpp │ │ ├── mat4x2.hpp │ │ ├── mat4x3.hpp │ │ ├── mat4x4.hpp │ │ ├── matrix.hpp │ │ ├── packing.hpp │ │ ├── trigonometric.hpp │ │ ├── vec2.hpp │ │ ├── vec3.hpp │ │ ├── vec4.hpp │ │ └── vector_relational.hpp │ ├── LinearMath │ │ ├── btAabbUtil2.h │ │ ├── btAlignedAllocator.h │ │ ├── btAlignedObjectArray.h │ │ ├── btConvexHull.h │ │ ├── btConvexHullComputer.h │ │ ├── btDefaultMotionState.h │ │ ├── btGeometryUtil.h │ │ ├── btGrahamScan2dConvexHull.h │ │ ├── btHashMap.h │ │ ├── btIDebugDraw.h │ │ ├── btList.h │ │ ├── btMatrix3x3.h │ │ ├── btMatrixX.h │ │ ├── btMinMax.h │ │ ├── btMotionState.h │ │ ├── btPolarDecomposition.h │ │ ├── btPoolAllocator.h │ │ ├── btQuadWord.h │ │ ├── btQuaternion.h │ │ ├── btQuickprof.h │ │ ├── btRandom.h │ │ ├── btScalar.h │ │ ├── btSerializer.h │ │ ├── btStackAlloc.h │ │ ├── btTransform.h │ │ ├── btTransformUtil.h │ │ ├── btVector3.h │ │ └── premake4.lua │ ├── MiniCL │ │ ├── MiniCLTask │ │ │ └── MiniCLTask.h │ │ ├── MiniCLTaskScheduler.h │ │ ├── cl.h │ │ ├── cl_MiniCL_Defs.h │ │ ├── cl_gl.h │ │ └── cl_platform.h │ ├── SDL2 │ │ ├── SDL.h │ │ ├── SDL_assert.h │ │ ├── SDL_atomic.h │ │ ├── SDL_audio.h │ │ ├── SDL_bits.h │ │ ├── SDL_blendmode.h │ │ ├── SDL_clipboard.h │ │ ├── SDL_config.h │ │ ├── SDL_cpuinfo.h │ │ ├── SDL_egl.h │ │ ├── SDL_endian.h │ │ ├── SDL_error.h │ │ ├── SDL_events.h │ │ ├── SDL_filesystem.h │ │ ├── SDL_gamecontroller.h │ │ ├── SDL_gesture.h │ │ ├── SDL_haptic.h │ │ ├── SDL_hints.h │ │ ├── SDL_image.h │ │ ├── SDL_joystick.h │ │ ├── SDL_keyboard.h │ │ ├── SDL_keycode.h │ │ ├── SDL_loadso.h │ │ ├── SDL_log.h │ │ ├── SDL_main.h │ │ ├── SDL_messagebox.h │ │ ├── SDL_mouse.h │ │ ├── SDL_mutex.h │ │ ├── SDL_name.h │ │ ├── SDL_opengl.h │ │ ├── SDL_opengl_glext.h │ │ ├── SDL_opengles.h │ │ ├── SDL_opengles2.h │ │ ├── SDL_opengles2_gl2.h │ │ ├── SDL_opengles2_gl2ext.h │ │ ├── SDL_opengles2_gl2platform.h │ │ ├── SDL_opengles2_khrplatform.h │ │ ├── SDL_pixels.h │ │ ├── SDL_platform.h │ │ ├── SDL_power.h │ │ ├── SDL_quit.h │ │ ├── SDL_rect.h │ │ ├── SDL_render.h │ │ ├── SDL_revision.h │ │ ├── SDL_rwops.h │ │ ├── SDL_scancode.h │ │ ├── SDL_shape.h │ │ ├── SDL_stdinc.h │ │ ├── SDL_surface.h │ │ ├── SDL_system.h │ │ ├── SDL_syswm.h │ │ ├── SDL_test.h │ │ ├── SDL_test_assert.h │ │ ├── SDL_test_common.h │ │ ├── SDL_test_compare.h │ │ ├── SDL_test_crc32.h │ │ ├── SDL_test_font.h │ │ ├── SDL_test_fuzzer.h │ │ ├── SDL_test_harness.h │ │ ├── SDL_test_images.h │ │ ├── SDL_test_log.h │ │ ├── SDL_test_md5.h │ │ ├── SDL_test_random.h │ │ ├── SDL_thread.h │ │ ├── SDL_timer.h │ │ ├── SDL_touch.h │ │ ├── SDL_ttf.h │ │ ├── SDL_types.h │ │ ├── SDL_version.h │ │ ├── SDL_video.h │ │ ├── begin_code.h │ │ └── close_code.h │ ├── align.h │ ├── almalloc.h │ ├── atomic.h │ ├── bool.h │ ├── btBulletCollisionCommon.h │ ├── btBulletDynamicsCommon.h │ ├── math_defs.h │ ├── rwlock.h │ ├── static_assert.h │ ├── threads.h │ ├── tiny_obj_loader.h │ ├── uintmap.h │ └── vectormath │ │ ├── neon │ │ ├── boolInVec.h │ │ ├── floatInVec.h │ │ ├── mat_aos.h │ │ ├── quat_aos.h │ │ ├── vec_aos.h │ │ └── vectormath_aos.h │ │ ├── scalar │ │ ├── boolInVec.h │ │ ├── floatInVec.h │ │ ├── mat_aos.h │ │ ├── quat_aos.h │ │ ├── vec_aos.h │ │ └── vectormath_aos.h │ │ ├── sse │ │ ├── boolInVec.h │ │ ├── floatInVec.h │ │ ├── mat_aos.h │ │ ├── quat_aos.h │ │ ├── vec_aos.h │ │ ├── vecidx_aos.h │ │ └── vectormath_aos.h │ │ └── vmInclude.h └── lib │ ├── libBulletCollision.a │ ├── libBulletDynamics.a │ ├── libBulletSoftBody.a │ ├── libLinearMath.a │ ├── libOpenAL32.dll.a │ ├── libSDL2.a │ ├── libSDL2.dll.a │ ├── libSDL2.la │ ├── libSDL2_image.a │ ├── libSDL2_image.dll.a │ ├── libSDL2_image.la │ ├── libSDL2_test.a │ ├── libSDL2_ttf.a │ ├── libSDL2_ttf.dll.a │ ├── libSDL2_ttf.la │ ├── libSDL2main.a │ ├── libglew32.a │ ├── libglew32.dll.a │ ├── libglew32mx.a │ ├── libglew32mx.dll.a │ └── libglu32.a ├── README.md ├── common.h └── main.cpp /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "C++ Launch", 6 | "type": "cppdbg", 7 | "request": "launch", 8 | "program": "${workspaceRoot}/Builds/Linux_Build/engine", 9 | "preLaunchTask": "Build", 10 | "stopAtEntry": false, 11 | "cwd": "${workspaceRoot}", 12 | "environment": [], 13 | "externalConsole": true, 14 | "MIMode": "gdb", 15 | "linux": { 16 | "setupCommands": [ 17 | { 18 | "description": "Enable pretty-printing for gdb", 19 | "text": "-enable-pretty-printing", 20 | "ignoreFailures": true 21 | } 22 | ] 23 | }, 24 | "osx": { 25 | "program": "${workspaceRoot}/Builds/Mac_Build/engine", 26 | "MIMode": "lldb" 27 | }, 28 | "windows": { 29 | "program": "${workspaceRoot}/Builds/Win_Build/engine", 30 | "miDebuggerPath": "C:\\MinGw\\bin\\gdb.exe" 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "iostream": "cpp", 4 | "cstdio": "cpp", 5 | "ctime": "cpp", 6 | "memory": "cpp", 7 | "list": "cpp", 8 | "vector": "cpp" 9 | } 10 | } -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "command": "g++", 4 | "isShellCommand": true, 5 | "showOutput": "always", 6 | "linux": { 7 | "tasks": [ 8 | { 9 | "taskName": "Build", 10 | "suppressTaskName": true, 11 | "isBuildCommand": true, 12 | "args": [ 13 | "-g", 14 | "-std=c++11", 15 | "main.cpp", 16 | "-o", "Builds/Linux_Build/engine", 17 | "-lGL", 18 | "-lGLEW", 19 | "-lGLU", 20 | "-lSDL2main", 21 | "-lSDL2", 22 | "-lSDL2_image", 23 | "-lSDL2_ttf" 24 | ] 25 | } 26 | ] 27 | }, 28 | "osx": { 29 | "tasks": [ 30 | { 31 | "taskName": "Build", 32 | "suppressTaskName": true, 33 | "isBuildCommand": true, 34 | "args": [ 35 | "-g", 36 | "-std=c++11", 37 | "main.cpp", 38 | "-o", "Builds/Mac_Build/engine", 39 | "-lGL", 40 | "-lGLEW", 41 | "-lGLU", 42 | "-lSDL2main", 43 | "-lSDL2", 44 | "-lSDL2_image", 45 | "-lSDL2_ttf" 46 | ] 47 | } 48 | ] 49 | }, 50 | "windows": { 51 | "tasks": [ 52 | { 53 | "taskName": "Build", 54 | "suppressTaskName": true, 55 | "isBuildCommand": true, 56 | "args": [ 57 | "-g", 58 | "-std=c++11", 59 | "main.cpp", 60 | "-o", "Builds/Win_Build/engine", 61 | "-lmingw32", 62 | "-lopengl32", 63 | "-lglew32", 64 | "-lglew32mx", 65 | "-lglu32", 66 | "-lSDL2main", 67 | "-lSDL2", 68 | "-lSDL2_image", 69 | "-lSDL2_ttf" 70 | ] 71 | } 72 | ] 73 | } 74 | } -------------------------------------------------------------------------------- /Builds/Linux_Build/engine: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Linux_Build/engine -------------------------------------------------------------------------------- /Builds/Win_Build/OpenAL32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/OpenAL32.dll -------------------------------------------------------------------------------- /Builds/Win_Build/SDL2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/SDL2.dll -------------------------------------------------------------------------------- /Builds/Win_Build/SDL2_image.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/SDL2_image.dll -------------------------------------------------------------------------------- /Builds/Win_Build/SDL2_ttf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/SDL2_ttf.dll -------------------------------------------------------------------------------- /Builds/Win_Build/engine.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/engine.exe -------------------------------------------------------------------------------- /Builds/Win_Build/glew32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/glew32.dll -------------------------------------------------------------------------------- /Builds/Win_Build/glew32mx.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/glew32mx.dll -------------------------------------------------------------------------------- /Builds/Win_Build/glu32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/glu32.dll -------------------------------------------------------------------------------- /Builds/Win_Build/libfreetype-6.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/libfreetype-6.dll -------------------------------------------------------------------------------- /Builds/Win_Build/libgcc_s_dw2-1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/libgcc_s_dw2-1.dll -------------------------------------------------------------------------------- /Builds/Win_Build/libjpeg-9.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/libjpeg-9.dll -------------------------------------------------------------------------------- /Builds/Win_Build/libpng16-16.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/libpng16-16.dll -------------------------------------------------------------------------------- /Builds/Win_Build/libstdc++-6.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/libstdc++-6.dll -------------------------------------------------------------------------------- /Builds/Win_Build/libtiff-5.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/libtiff-5.dll -------------------------------------------------------------------------------- /Builds/Win_Build/libwebp-4.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/libwebp-4.dll -------------------------------------------------------------------------------- /Builds/Win_Build/zlib1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Builds/Win_Build/zlib1.dll -------------------------------------------------------------------------------- /Dependencies/bin/OpenAL32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/OpenAL32.dll -------------------------------------------------------------------------------- /Dependencies/bin/SDL2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/SDL2.dll -------------------------------------------------------------------------------- /Dependencies/bin/SDL2_image.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/SDL2_image.dll -------------------------------------------------------------------------------- /Dependencies/bin/SDL2_ttf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/SDL2_ttf.dll -------------------------------------------------------------------------------- /Dependencies/bin/glew32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/glew32.dll -------------------------------------------------------------------------------- /Dependencies/bin/glew32mx.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/glew32mx.dll -------------------------------------------------------------------------------- /Dependencies/bin/glu32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/glu32.dll -------------------------------------------------------------------------------- /Dependencies/bin/libfreetype-6.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/libfreetype-6.dll -------------------------------------------------------------------------------- /Dependencies/bin/libgcc_s_dw2-1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/libgcc_s_dw2-1.dll -------------------------------------------------------------------------------- /Dependencies/bin/libjpeg-9.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/libjpeg-9.dll -------------------------------------------------------------------------------- /Dependencies/bin/libpng16-16.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/libpng16-16.dll -------------------------------------------------------------------------------- /Dependencies/bin/libstdc++-6.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/libstdc++-6.dll -------------------------------------------------------------------------------- /Dependencies/bin/libtiff-5.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/libtiff-5.dll -------------------------------------------------------------------------------- /Dependencies/bin/libwebp-4.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/libwebp-4.dll -------------------------------------------------------------------------------- /Dependencies/bin/zlib1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/bin/zlib1.dll -------------------------------------------------------------------------------- /Dependencies/include/AL/efx-creative.h: -------------------------------------------------------------------------------- 1 | /* The tokens that would be defined here are already defined in efx.h. This 2 | * empty file is here to provide compatibility with Windows-based projects 3 | * that would include it. */ 4 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | Bullet Continuous Collision Detection and Physics Library 4 | Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ 5 | 6 | This software is provided 'as-is', without any express or implied warranty. 7 | In no event will the authors be held liable for any damages arising from the use of this software. 8 | Permission is granted to anyone to use this software for any purpose, 9 | including commercial applications, and to alter it and redistribute it freely, 10 | subject to the following restrictions: 11 | 12 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 13 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 14 | 3. This notice may not be removed or altered from any source distribution. 15 | */ 16 | 17 | #ifndef OVERLAPPING_PAIR_CALLBACK_H 18 | #define OVERLAPPING_PAIR_CALLBACK_H 19 | 20 | class btDispatcher; 21 | struct btBroadphasePair; 22 | 23 | ///The btOverlappingPairCallback class is an additional optional broadphase user callback for adding/removing overlapping pairs, similar interface to btOverlappingPairCache. 24 | class btOverlappingPairCallback 25 | { 26 | public: 27 | virtual ~btOverlappingPairCallback() 28 | { 29 | 30 | } 31 | 32 | virtual btBroadphasePair* addOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1) = 0; 33 | 34 | virtual void* removeOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1,btDispatcher* dispatcher) = 0; 35 | 36 | virtual void removeOverlappingPairsContainingProxy(btBroadphaseProxy* proxy0,btDispatcher* dispatcher) = 0; 37 | 38 | }; 39 | 40 | #endif //OVERLAPPING_PAIR_CALLBACK_H 41 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2008 Erwin Coumans http://bulletphysics.com 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | #ifndef __BT_ACTIVATING_COLLISION_ALGORITHM_H 17 | #define __BT_ACTIVATING_COLLISION_ALGORITHM_H 18 | 19 | #include "BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h" 20 | 21 | ///This class is not enabled yet (work-in-progress) to more aggressively activate objects. 22 | class btActivatingCollisionAlgorithm : public btCollisionAlgorithm 23 | { 24 | // btCollisionObject* m_colObj0; 25 | // btCollisionObject* m_colObj1; 26 | 27 | public: 28 | 29 | btActivatingCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo& ci); 30 | 31 | btActivatingCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo& ci, const btCollisionObjectWrapper* body0Wrap,const btCollisionObjectWrapper* body1Wrap); 32 | 33 | virtual ~btActivatingCollisionAlgorithm(); 34 | 35 | }; 36 | #endif //__BT_ACTIVATING_COLLISION_ALGORITHM_H 37 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/CollisionDispatch/btBoxBoxDetector.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Box-Box collision detection re-distributed under the ZLib license with permission from Russell L. Smith 3 | * Original version is from Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. 4 | * All rights reserved. Email: russ@q12.org Web: www.q12.org 5 | 6 | Bullet Continuous Collision Detection and Physics Library 7 | Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ 8 | 9 | This software is provided 'as-is', without any express or implied warranty. 10 | In no event will the authors be held liable for any damages arising from the use of this software. 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute it freely, 13 | subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 16 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 17 | 3. This notice may not be removed or altered from any source distribution. 18 | */ 19 | #ifndef BT_BOX_BOX_DETECTOR_H 20 | #define BT_BOX_BOX_DETECTOR_H 21 | 22 | 23 | class btBoxShape; 24 | #include "BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h" 25 | 26 | 27 | /// btBoxBoxDetector wraps the ODE box-box collision detector 28 | /// re-distributed under the Zlib license with permission from Russell L. Smith 29 | struct btBoxBoxDetector : public btDiscreteCollisionDetectorInterface 30 | { 31 | const btBoxShape* m_box1; 32 | const btBoxShape* m_box2; 33 | 34 | public: 35 | 36 | btBoxBoxDetector(const btBoxShape* box1,const btBoxShape* box2); 37 | 38 | virtual ~btBoxBoxDetector() {}; 39 | 40 | virtual void getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults=false); 41 | 42 | }; 43 | 44 | #endif //BT_BOX_BOX_DETECTOR_H 45 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/CollisionDispatch/btCollisionConfiguration.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | #ifndef BT_COLLISION_CONFIGURATION 17 | #define BT_COLLISION_CONFIGURATION 18 | 19 | struct btCollisionAlgorithmCreateFunc; 20 | 21 | class btPoolAllocator; 22 | 23 | ///btCollisionConfiguration allows to configure Bullet collision detection 24 | ///stack allocator size, default collision algorithms and persistent manifold pool size 25 | ///@todo: describe the meaning 26 | class btCollisionConfiguration 27 | { 28 | 29 | public: 30 | 31 | virtual ~btCollisionConfiguration() 32 | { 33 | } 34 | 35 | ///memory pools 36 | virtual btPoolAllocator* getPersistentManifoldPool() = 0; 37 | 38 | virtual btPoolAllocator* getCollisionAlgorithmPool() = 0; 39 | 40 | 41 | virtual btCollisionAlgorithmCreateFunc* getCollisionAlgorithmCreateFunc(int proxyType0,int proxyType1) =0; 42 | 43 | }; 44 | 45 | #endif //BT_COLLISION_CONFIGURATION 46 | 47 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | #ifndef BT_COLLISION_CREATE_FUNC 17 | #define BT_COLLISION_CREATE_FUNC 18 | 19 | #include "LinearMath/btAlignedObjectArray.h" 20 | class btCollisionAlgorithm; 21 | class btCollisionObject; 22 | struct btCollisionObjectWrapper; 23 | struct btCollisionAlgorithmConstructionInfo; 24 | 25 | ///Used by the btCollisionDispatcher to register and create instances for btCollisionAlgorithm 26 | struct btCollisionAlgorithmCreateFunc 27 | { 28 | bool m_swapped; 29 | 30 | btCollisionAlgorithmCreateFunc() 31 | :m_swapped(false) 32 | { 33 | } 34 | virtual ~btCollisionAlgorithmCreateFunc(){}; 35 | 36 | virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& , const btCollisionObjectWrapper* body0Wrap,const btCollisionObjectWrapper* body1Wrap) 37 | { 38 | 39 | (void)body0Wrap; 40 | (void)body1Wrap; 41 | return 0; 42 | } 43 | }; 44 | #endif //BT_COLLISION_CREATE_FUNC 45 | 46 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/CollisionDispatch/btCollisionObjectWrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef BT_COLLISION_OBJECT_WRAPPER_H 2 | #define BT_COLLISION_OBJECT_WRAPPER_H 3 | 4 | ///btCollisionObjectWrapperis an internal data structure. 5 | ///Most users can ignore this and use btCollisionObject and btCollisionShape instead 6 | class btCollisionShape; 7 | class btCollisionObject; 8 | class btTransform; 9 | #include "LinearMath/btScalar.h" // for SIMD_FORCE_INLINE definition 10 | 11 | #define BT_DECLARE_STACK_ONLY_OBJECT \ 12 | private: \ 13 | void* operator new(size_t size); \ 14 | void operator delete(void*); 15 | 16 | struct btCollisionObjectWrapper; 17 | struct btCollisionObjectWrapper 18 | { 19 | BT_DECLARE_STACK_ONLY_OBJECT 20 | 21 | private: 22 | btCollisionObjectWrapper(const btCollisionObjectWrapper&); // not implemented. Not allowed. 23 | btCollisionObjectWrapper* operator=(const btCollisionObjectWrapper&); 24 | 25 | public: 26 | const btCollisionObjectWrapper* m_parent; 27 | const btCollisionShape* m_shape; 28 | const btCollisionObject* m_collisionObject; 29 | const btTransform& m_worldTransform; 30 | int m_partId; 31 | int m_index; 32 | 33 | btCollisionObjectWrapper(const btCollisionObjectWrapper* parent, const btCollisionShape* shape, const btCollisionObject* collisionObject, const btTransform& worldTransform, int partId, int index) 34 | : m_parent(parent), m_shape(shape), m_collisionObject(collisionObject), m_worldTransform(worldTransform), 35 | m_partId(partId), m_index(index) 36 | {} 37 | 38 | SIMD_FORCE_INLINE const btTransform& getWorldTransform() const { return m_worldTransform; } 39 | SIMD_FORCE_INLINE const btCollisionObject* getCollisionObject() const { return m_collisionObject; } 40 | SIMD_FORCE_INLINE const btCollisionShape* getCollisionShape() const { return m_shape; } 41 | }; 42 | 43 | #endif //BT_COLLISION_OBJECT_WRAPPER_H 44 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/CollisionDispatch/btInternalEdgeUtility.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BT_INTERNAL_EDGE_UTILITY_H 3 | #define BT_INTERNAL_EDGE_UTILITY_H 4 | 5 | #include "LinearMath/btHashMap.h" 6 | #include "LinearMath/btVector3.h" 7 | 8 | #include "BulletCollision/CollisionShapes/btTriangleInfoMap.h" 9 | 10 | ///The btInternalEdgeUtility helps to avoid or reduce artifacts due to wrong collision normals caused by internal edges. 11 | ///See also http://code.google.com/p/bullet/issues/detail?id=27 12 | 13 | class btBvhTriangleMeshShape; 14 | class btCollisionObject; 15 | struct btCollisionObjectWrapper; 16 | class btManifoldPoint; 17 | class btIDebugDraw; 18 | 19 | 20 | 21 | enum btInternalEdgeAdjustFlags 22 | { 23 | BT_TRIANGLE_CONVEX_BACKFACE_MODE = 1, 24 | BT_TRIANGLE_CONCAVE_DOUBLE_SIDED = 2, //double sided options are experimental, single sided is recommended 25 | BT_TRIANGLE_CONVEX_DOUBLE_SIDED = 4 26 | }; 27 | 28 | 29 | ///Call btGenerateInternalEdgeInfo to create triangle info, store in the shape 'userInfo' 30 | void btGenerateInternalEdgeInfo (btBvhTriangleMeshShape*trimeshShape, btTriangleInfoMap* triangleInfoMap); 31 | 32 | 33 | ///Call the btFixMeshNormal to adjust the collision normal, using the triangle info map (generated using btGenerateInternalEdgeInfo) 34 | ///If this info map is missing, or the triangle is not store in this map, nothing will be done 35 | void btAdjustInternalEdgeContacts(btManifoldPoint& cp, const btCollisionObjectWrapper* trimeshColObj0Wrap,const btCollisionObjectWrapper* otherColObj1Wrap, int partId0, int index0, int normalAdjustFlags = 0); 36 | 37 | ///Enable the BT_INTERNAL_EDGE_DEBUG_DRAW define and call btSetDebugDrawer, to get visual info to see if the internal edge utility works properly. 38 | ///If the utility doesn't work properly, you might have to adjust the threshold values in btTriangleInfoMap 39 | //#define BT_INTERNAL_EDGE_DEBUG_DRAW 40 | 41 | #ifdef BT_INTERNAL_EDGE_DEBUG_DRAW 42 | void btSetDebugDrawer(btIDebugDraw* debugDrawer); 43 | #endif //BT_INTERNAL_EDGE_DEBUG_DRAW 44 | 45 | 46 | #endif //BT_INTERNAL_EDGE_UTILITY_H 47 | 48 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/CollisionShapes/btCollisionMargin.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | #ifndef BT_COLLISION_MARGIN_H 17 | #define BT_COLLISION_MARGIN_H 18 | 19 | ///The CONVEX_DISTANCE_MARGIN is a default collision margin for convex collision shapes derived from btConvexInternalShape. 20 | ///This collision margin is used by Gjk and some other algorithms 21 | ///Note that when creating small objects, you need to make sure to set a smaller collision margin, using the 'setMargin' API 22 | #define CONVEX_DISTANCE_MARGIN btScalar(0.04)// btScalar(0.1)//;//btScalar(0.01) 23 | 24 | 25 | 26 | #endif //BT_COLLISION_MARGIN_H 27 | 28 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/CollisionShapes/btConvexPolyhedron.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2011 Advanced Micro Devices, Inc. http://bulletphysics.org 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | 17 | ///This file was written by Erwin Coumans 18 | 19 | 20 | #ifndef _BT_POLYHEDRAL_FEATURES_H 21 | #define _BT_POLYHEDRAL_FEATURES_H 22 | 23 | #include "LinearMath/btTransform.h" 24 | #include "LinearMath/btAlignedObjectArray.h" 25 | 26 | #define TEST_INTERNAL_OBJECTS 1 27 | 28 | 29 | struct btFace 30 | { 31 | btAlignedObjectArray m_indices; 32 | // btAlignedObjectArray m_connectedFaces; 33 | btScalar m_plane[4]; 34 | }; 35 | 36 | 37 | ATTRIBUTE_ALIGNED16(class) btConvexPolyhedron 38 | { 39 | public: 40 | 41 | BT_DECLARE_ALIGNED_ALLOCATOR(); 42 | 43 | btConvexPolyhedron(); 44 | virtual ~btConvexPolyhedron(); 45 | 46 | btAlignedObjectArray m_vertices; 47 | btAlignedObjectArray m_faces; 48 | btAlignedObjectArray m_uniqueEdges; 49 | 50 | btVector3 m_localCenter; 51 | btVector3 m_extents; 52 | btScalar m_radius; 53 | btVector3 mC; 54 | btVector3 mE; 55 | 56 | void initialize(); 57 | bool testContainment() const; 58 | 59 | void project(const btTransform& trans, const btVector3& dir, btScalar& minProj, btScalar& maxProj, btVector3& witnesPtMin,btVector3& witnesPtMax) const; 60 | }; 61 | 62 | 63 | #endif //_BT_POLYHEDRAL_FEATURES_H 64 | 65 | 66 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/CollisionShapes/btMaterial.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | /// This file was created by Alex Silverman 17 | 18 | #ifndef BT_MATERIAL_H 19 | #define BT_MATERIAL_H 20 | 21 | // Material class to be used by btMultimaterialTriangleMeshShape to store triangle properties 22 | class btMaterial 23 | { 24 | // public members so that materials can change due to world events 25 | public: 26 | btScalar m_friction; 27 | btScalar m_restitution; 28 | int pad[2]; 29 | 30 | btMaterial(){} 31 | btMaterial(btScalar fric, btScalar rest) { m_friction = fric; m_restitution = rest; } 32 | }; 33 | 34 | #endif // BT_MATERIAL_H 35 | 36 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/CollisionShapes/btTriangleCallback.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | #ifndef BT_TRIANGLE_CALLBACK_H 17 | #define BT_TRIANGLE_CALLBACK_H 18 | 19 | #include "LinearMath/btVector3.h" 20 | 21 | 22 | ///The btTriangleCallback provides a callback for each overlapping triangle when calling processAllTriangles. 23 | ///This callback is called by processAllTriangles for all btConcaveShape derived class, such as btBvhTriangleMeshShape, btStaticPlaneShape and btHeightfieldTerrainShape. 24 | class btTriangleCallback 25 | { 26 | public: 27 | 28 | virtual ~btTriangleCallback(); 29 | virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex) = 0; 30 | }; 31 | 32 | class btInternalTriangleIndexCallback 33 | { 34 | public: 35 | 36 | virtual ~btInternalTriangleIndexCallback(); 37 | virtual void internalProcessTriangleIndex(btVector3* triangle,int partId,int triangleIndex) = 0; 38 | }; 39 | 40 | 41 | 42 | #endif //BT_TRIANGLE_CALLBACK_H 43 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/Gimpact/btGImpactShape.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/include/BulletCollision/Gimpact/btGImpactShape.h -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/Gimpact/gim_geometry.h: -------------------------------------------------------------------------------- 1 | #ifndef GIM_GEOMETRY_H_INCLUDED 2 | #define GIM_GEOMETRY_H_INCLUDED 3 | 4 | /*! \file gim_geometry.h 5 | \author Francisco Leon Najera 6 | */ 7 | /* 8 | ----------------------------------------------------------------------------- 9 | This source file is part of GIMPACT Library. 10 | 11 | For the latest info, see http://gimpact.sourceforge.net/ 12 | 13 | Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. 14 | email: projectileman@yahoo.com 15 | 16 | This library is free software; you can redistribute it and/or 17 | modify it under the terms of EITHER: 18 | (1) The GNU Lesser General Public License as published by the Free 19 | Software Foundation; either version 2.1 of the License, or (at 20 | your option) any later version. The text of the GNU Lesser 21 | General Public License is included with this library in the 22 | file GIMPACT-LICENSE-LGPL.TXT. 23 | (2) The BSD-style license that is included with this library in 24 | the file GIMPACT-LICENSE-BSD.TXT. 25 | (3) The zlib/libpng license that is included with this library in 26 | the file GIMPACT-LICENSE-ZLIB.TXT. 27 | 28 | This library is distributed in the hope that it will be useful, 29 | but WITHOUT ANY WARRANTY; without even the implied warranty of 30 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files 31 | GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details. 32 | 33 | ----------------------------------------------------------------------------- 34 | */ 35 | 36 | ///Additional Headers for Collision 37 | #include "gim_basic_geometry_operations.h" 38 | #include "gim_clip_polygon.h" 39 | #include "gim_box_collision.h" 40 | #include "gim_tri_collision.h" 41 | 42 | #endif // GIM_VECTOR_H_INCLUDED 43 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/NarrowPhaseCollision/btConvexPenetrationDepthSolver.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | 17 | #ifndef BT_CONVEX_PENETRATION_DEPTH_H 18 | #define BT_CONVEX_PENETRATION_DEPTH_H 19 | 20 | class btVector3; 21 | #include "btSimplexSolverInterface.h" 22 | class btConvexShape; 23 | class btTransform; 24 | 25 | ///ConvexPenetrationDepthSolver provides an interface for penetration depth calculation. 26 | class btConvexPenetrationDepthSolver 27 | { 28 | public: 29 | 30 | virtual ~btConvexPenetrationDepthSolver() {}; 31 | virtual bool calcPenDepth( btSimplexSolverInterface& simplexSolver, 32 | const btConvexShape* convexA,const btConvexShape* convexB, 33 | const btTransform& transA,const btTransform& transB, 34 | btVector3& v, btVector3& pa, btVector3& pb, 35 | class btIDebugDraw* debugDraw) = 0; 36 | 37 | 38 | }; 39 | #endif //BT_CONVEX_PENETRATION_DEPTH_H 40 | 41 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | 17 | 18 | #ifndef BT_GJK_CONVEX_CAST_H 19 | #define BT_GJK_CONVEX_CAST_H 20 | 21 | #include "BulletCollision/CollisionShapes/btCollisionMargin.h" 22 | 23 | #include "LinearMath/btVector3.h" 24 | #include "btConvexCast.h" 25 | class btConvexShape; 26 | class btMinkowskiSumShape; 27 | #include "btSimplexSolverInterface.h" 28 | 29 | ///GjkConvexCast performs a raycast on a convex object using support mapping. 30 | class btGjkConvexCast : public btConvexCast 31 | { 32 | btSimplexSolverInterface* m_simplexSolver; 33 | const btConvexShape* m_convexA; 34 | const btConvexShape* m_convexB; 35 | 36 | public: 37 | 38 | btGjkConvexCast(const btConvexShape* convexA,const btConvexShape* convexB,btSimplexSolverInterface* simplexSolver); 39 | 40 | /// cast a convex against another convex object 41 | virtual bool calcTimeOfImpact( 42 | const btTransform& fromA, 43 | const btTransform& toA, 44 | const btTransform& fromB, 45 | const btTransform& toB, 46 | CastResult& result); 47 | 48 | }; 49 | 50 | #endif //BT_GJK_CONVEX_CAST_H 51 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ 4 | 5 | EPA Copyright (c) Ricardo Padrela 2006 6 | 7 | This software is provided 'as-is', without any express or implied warranty. 8 | In no event will the authors be held liable for any damages arising from the use of this software. 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it freely, 11 | subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 14 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 15 | 3. This notice may not be removed or altered from any source distribution. 16 | */ 17 | #ifndef BT_GJP_EPA_PENETRATION_DEPTH_H 18 | #define BT_GJP_EPA_PENETRATION_DEPTH_H 19 | 20 | #include "btConvexPenetrationDepthSolver.h" 21 | 22 | ///EpaPenetrationDepthSolver uses the Expanding Polytope Algorithm to 23 | ///calculate the penetration depth between two convex shapes. 24 | class btGjkEpaPenetrationDepthSolver : public btConvexPenetrationDepthSolver 25 | { 26 | public : 27 | 28 | btGjkEpaPenetrationDepthSolver() 29 | { 30 | } 31 | 32 | bool calcPenDepth( btSimplexSolverInterface& simplexSolver, 33 | const btConvexShape* pConvexA, const btConvexShape* pConvexB, 34 | const btTransform& transformA, const btTransform& transformB, 35 | btVector3& v, btVector3& wWitnessOnA, btVector3& wWitnessOnB, 36 | class btIDebugDraw* debugDraw); 37 | 38 | private : 39 | 40 | }; 41 | 42 | #endif // BT_GJP_EPA_PENETRATION_DEPTH_H 43 | 44 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | #ifndef BT_MINKOWSKI_PENETRATION_DEPTH_SOLVER_H 17 | #define BT_MINKOWSKI_PENETRATION_DEPTH_SOLVER_H 18 | 19 | #include "btConvexPenetrationDepthSolver.h" 20 | 21 | ///MinkowskiPenetrationDepthSolver implements bruteforce penetration depth estimation. 22 | ///Implementation is based on sampling the depth using support mapping, and using GJK step to get the witness points. 23 | class btMinkowskiPenetrationDepthSolver : public btConvexPenetrationDepthSolver 24 | { 25 | protected: 26 | 27 | static btVector3* getPenetrationDirections(); 28 | 29 | public: 30 | 31 | virtual bool calcPenDepth( btSimplexSolverInterface& simplexSolver, 32 | const btConvexShape* convexA,const btConvexShape* convexB, 33 | const btTransform& transA,const btTransform& transB, 34 | btVector3& v, btVector3& pa, btVector3& pb, 35 | class btIDebugDraw* debugDraw 36 | ); 37 | }; 38 | 39 | #endif //BT_MINKOWSKI_PENETRATION_DEPTH_SOLVER_H 40 | 41 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/NarrowPhaseCollision/btPointCollector.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | #ifndef BT_POINT_COLLECTOR_H 17 | #define BT_POINT_COLLECTOR_H 18 | 19 | #include "btDiscreteCollisionDetectorInterface.h" 20 | 21 | 22 | 23 | struct btPointCollector : public btDiscreteCollisionDetectorInterface::Result 24 | { 25 | 26 | 27 | btVector3 m_normalOnBInWorld; 28 | btVector3 m_pointInWorld; 29 | btScalar m_distance;//negative means penetration 30 | 31 | bool m_hasResult; 32 | 33 | btPointCollector () 34 | : m_distance(btScalar(BT_LARGE_FLOAT)),m_hasResult(false) 35 | { 36 | } 37 | 38 | virtual void setShapeIdentifiersA(int partId0,int index0) 39 | { 40 | (void)partId0; 41 | (void)index0; 42 | 43 | } 44 | virtual void setShapeIdentifiersB(int partId1,int index1) 45 | { 46 | (void)partId1; 47 | (void)index1; 48 | } 49 | 50 | virtual void addContactPoint(const btVector3& normalOnBInWorld,const btVector3& pointInWorld,btScalar depth) 51 | { 52 | if (depth< m_distance) 53 | { 54 | m_hasResult = true; 55 | m_normalOnBInWorld = normalOnBInWorld; 56 | m_pointInWorld = pointInWorld; 57 | //negative means penetration 58 | m_distance = depth; 59 | } 60 | } 61 | }; 62 | 63 | #endif //BT_POINT_COLLECTOR_H 64 | 65 | -------------------------------------------------------------------------------- /Dependencies/include/BulletCollision/premake4.lua: -------------------------------------------------------------------------------- 1 | project "BulletCollision" 2 | 3 | kind "StaticLib" 4 | targetdir "../../lib" 5 | includedirs { 6 | "..", 7 | } 8 | files { 9 | "**.cpp", 10 | "**.h" 11 | } -------------------------------------------------------------------------------- /Dependencies/include/BulletDynamics/Character/btCharacterControllerInterface.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2008 Erwin Coumans http://bulletphysics.com 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | #ifndef BT_CHARACTER_CONTROLLER_INTERFACE_H 17 | #define BT_CHARACTER_CONTROLLER_INTERFACE_H 18 | 19 | #include "LinearMath/btVector3.h" 20 | #include "BulletDynamics/Dynamics/btActionInterface.h" 21 | 22 | class btCollisionShape; 23 | class btRigidBody; 24 | class btCollisionWorld; 25 | 26 | class btCharacterControllerInterface : public btActionInterface 27 | { 28 | public: 29 | btCharacterControllerInterface () {}; 30 | virtual ~btCharacterControllerInterface () {}; 31 | 32 | virtual void setWalkDirection(const btVector3& walkDirection) = 0; 33 | virtual void setVelocityForTimeInterval(const btVector3& velocity, btScalar timeInterval) = 0; 34 | virtual void reset ( btCollisionWorld* collisionWorld ) = 0; 35 | virtual void warp (const btVector3& origin) = 0; 36 | 37 | virtual void preStep ( btCollisionWorld* collisionWorld) = 0; 38 | virtual void playerStep (btCollisionWorld* collisionWorld, btScalar dt) = 0; 39 | virtual bool canJump () const = 0; 40 | virtual void jump () = 0; 41 | 42 | virtual bool onGround () const = 0; 43 | virtual void setUpInterpolate (bool value) = 0; 44 | }; 45 | 46 | #endif //BT_CHARACTER_CONTROLLER_INTERFACE_H 47 | 48 | -------------------------------------------------------------------------------- /Dependencies/include/BulletDynamics/ConstraintSolver/btFixedConstraint.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2013 Erwin Coumans http://bulletphysics.org 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | #ifndef BT_FIXED_CONSTRAINT_H 17 | #define BT_FIXED_CONSTRAINT_H 18 | 19 | #include "btTypedConstraint.h" 20 | 21 | ATTRIBUTE_ALIGNED16(class) btFixedConstraint : public btTypedConstraint 22 | { 23 | btVector3 m_pivotInA; 24 | btVector3 m_pivotInB; 25 | btQuaternion m_relTargetAB; 26 | 27 | public: 28 | btFixedConstraint(btRigidBody& rbA,btRigidBody& rbB, const btTransform& frameInA,const btTransform& frameInB); 29 | 30 | virtual ~btFixedConstraint(); 31 | 32 | 33 | virtual void getInfo1 (btConstraintInfo1* info); 34 | 35 | virtual void getInfo2 (btConstraintInfo2* info); 36 | 37 | virtual void setParam(int num, btScalar value, int axis = -1) 38 | { 39 | btAssert(0); 40 | } 41 | virtual btScalar getParam(int num, int axis = -1) const 42 | { 43 | btAssert(0); 44 | return 0.f; 45 | } 46 | 47 | }; 48 | 49 | #endif //BT_FIXED_CONSTRAINT_H 50 | -------------------------------------------------------------------------------- /Dependencies/include/BulletDynamics/Dynamics/btActionInterface.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | #ifndef _BT_ACTION_INTERFACE_H 17 | #define _BT_ACTION_INTERFACE_H 18 | 19 | class btIDebugDraw; 20 | class btCollisionWorld; 21 | 22 | #include "LinearMath/btScalar.h" 23 | #include "btRigidBody.h" 24 | 25 | ///Basic interface to allow actions such as vehicles and characters to be updated inside a btDynamicsWorld 26 | class btActionInterface 27 | { 28 | protected: 29 | 30 | static btRigidBody& getFixedBody(); 31 | 32 | 33 | public: 34 | 35 | virtual ~btActionInterface() 36 | { 37 | } 38 | 39 | virtual void updateAction( btCollisionWorld* collisionWorld, btScalar deltaTimeStep)=0; 40 | 41 | virtual void debugDraw(btIDebugDraw* debugDrawer) = 0; 42 | 43 | }; 44 | 45 | #endif //_BT_ACTION_INTERFACE_H 46 | 47 | -------------------------------------------------------------------------------- /Dependencies/include/BulletDynamics/Featherstone/btMultiBodyJointLimitConstraint.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2013 Erwin Coumans http://bulletphysics.org 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | #ifndef BT_MULTIBODY_JOINT_LIMIT_CONSTRAINT_H 17 | #define BT_MULTIBODY_JOINT_LIMIT_CONSTRAINT_H 18 | 19 | #include "btMultiBodyConstraint.h" 20 | struct btSolverInfo; 21 | 22 | class btMultiBodyJointLimitConstraint : public btMultiBodyConstraint 23 | { 24 | protected: 25 | 26 | btScalar m_lowerBound; 27 | btScalar m_upperBound; 28 | public: 29 | 30 | btMultiBodyJointLimitConstraint(btMultiBody* body, int link, btScalar lower, btScalar upper); 31 | virtual ~btMultiBodyJointLimitConstraint(); 32 | 33 | virtual int getIslandIdA() const; 34 | virtual int getIslandIdB() const; 35 | 36 | virtual void createConstraintRows(btMultiBodyConstraintArray& constraintRows, 37 | btMultiBodyJacobianData& data, 38 | const btContactSolverInfo& infoGlobal); 39 | 40 | 41 | }; 42 | 43 | #endif //BT_MULTIBODY_JOINT_LIMIT_CONSTRAINT_H 44 | 45 | -------------------------------------------------------------------------------- /Dependencies/include/BulletDynamics/Featherstone/btMultiBodyJointMotor.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2013 Erwin Coumans http://bulletphysics.org 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | ///This file was written by Erwin Coumans 17 | 18 | #ifndef BT_MULTIBODY_JOINT_MOTOR_H 19 | #define BT_MULTIBODY_JOINT_MOTOR_H 20 | 21 | #include "btMultiBodyConstraint.h" 22 | struct btSolverInfo; 23 | 24 | class btMultiBodyJointMotor : public btMultiBodyConstraint 25 | { 26 | protected: 27 | 28 | 29 | btScalar m_desiredVelocity; 30 | 31 | public: 32 | 33 | btMultiBodyJointMotor(btMultiBody* body, int link, btScalar desiredVelocity, btScalar maxMotorImpulse); 34 | virtual ~btMultiBodyJointMotor(); 35 | 36 | virtual int getIslandIdA() const; 37 | virtual int getIslandIdB() const; 38 | 39 | virtual void createConstraintRows(btMultiBodyConstraintArray& constraintRows, 40 | btMultiBodyJacobianData& data, 41 | const btContactSolverInfo& infoGlobal); 42 | 43 | 44 | }; 45 | 46 | #endif //BT_MULTIBODY_JOINT_MOTOR_H 47 | 48 | -------------------------------------------------------------------------------- /Dependencies/include/BulletDynamics/Featherstone/btMultiBodyPoint2Point.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2013 Erwin Coumans http://bulletphysics.org 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | ///This file was written by Erwin Coumans 17 | 18 | #ifndef BT_MULTIBODY_POINT2POINT_H 19 | #define BT_MULTIBODY_POINT2POINT_H 20 | 21 | #include "btMultiBodyConstraint.h" 22 | 23 | class btMultiBodyPoint2Point : public btMultiBodyConstraint 24 | { 25 | protected: 26 | 27 | btRigidBody* m_rigidBodyA; 28 | btRigidBody* m_rigidBodyB; 29 | btVector3 m_pivotInA; 30 | btVector3 m_pivotInB; 31 | 32 | 33 | public: 34 | 35 | btMultiBodyPoint2Point(btMultiBody* body, int link, btRigidBody* bodyB, const btVector3& pivotInA, const btVector3& pivotInB); 36 | btMultiBodyPoint2Point(btMultiBody* bodyA, int linkA, btMultiBody* bodyB, int linkB, const btVector3& pivotInA, const btVector3& pivotInB); 37 | 38 | virtual ~btMultiBodyPoint2Point(); 39 | 40 | virtual int getIslandIdA() const; 41 | virtual int getIslandIdB() const; 42 | 43 | virtual void createConstraintRows(btMultiBodyConstraintArray& constraintRows, 44 | btMultiBodyJacobianData& data, 45 | const btContactSolverInfo& infoGlobal); 46 | 47 | const btVector3& getPivotInB() const 48 | { 49 | return m_pivotInB; 50 | } 51 | 52 | void setPivotInB(const btVector3& pivotInB) 53 | { 54 | m_pivotInB = pivotInB; 55 | } 56 | 57 | 58 | }; 59 | 60 | #endif //BT_MULTIBODY_POINT2POINT_H 61 | -------------------------------------------------------------------------------- /Dependencies/include/BulletDynamics/MLCPSolvers/btMLCPSolverInterface.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2013 Erwin Coumans http://bulletphysics.org 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | ///original version written by Erwin Coumans, October 2013 16 | 17 | #ifndef BT_MLCP_SOLVER_INTERFACE_H 18 | #define BT_MLCP_SOLVER_INTERFACE_H 19 | 20 | #include "LinearMath/btMatrixX.h" 21 | 22 | class btMLCPSolverInterface 23 | { 24 | public: 25 | virtual ~btMLCPSolverInterface() 26 | { 27 | } 28 | 29 | //return true is it solves the problem successfully 30 | virtual bool solveMLCP(const btMatrixXu & A, const btVectorXu & b, btVectorXu& x, const btVectorXu & lo,const btVectorXu & hi,const btAlignedObjectArray& limitDependency, int numIterations, bool useSparsity = true)=0; 31 | }; 32 | 33 | #endif //BT_MLCP_SOLVER_INTERFACE_H 34 | -------------------------------------------------------------------------------- /Dependencies/include/BulletDynamics/Vehicle/btVehicleRaycaster.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005 Erwin Coumans http://bulletphysics.org 3 | * 4 | * Permission to use, copy, modify, distribute and sell this software 5 | * and its documentation for any purpose is hereby granted without fee, 6 | * provided that the above copyright notice appear in all copies. 7 | * Erwin Coumans makes no representations about the suitability 8 | * of this software for any purpose. 9 | * It is provided "as is" without express or implied warranty. 10 | */ 11 | #ifndef BT_VEHICLE_RAYCASTER_H 12 | #define BT_VEHICLE_RAYCASTER_H 13 | 14 | #include "LinearMath/btVector3.h" 15 | 16 | /// btVehicleRaycaster is provides interface for between vehicle simulation and raycasting 17 | struct btVehicleRaycaster 18 | { 19 | virtual ~btVehicleRaycaster() 20 | { 21 | } 22 | struct btVehicleRaycasterResult 23 | { 24 | btVehicleRaycasterResult() :m_distFraction(btScalar(-1.)){}; 25 | btVector3 m_hitPointInWorld; 26 | btVector3 m_hitNormalInWorld; 27 | btScalar m_distFraction; 28 | }; 29 | 30 | virtual void* castRay(const btVector3& from,const btVector3& to, btVehicleRaycasterResult& result) = 0; 31 | 32 | }; 33 | 34 | #endif //BT_VEHICLE_RAYCASTER_H 35 | 36 | -------------------------------------------------------------------------------- /Dependencies/include/BulletDynamics/premake4.lua: -------------------------------------------------------------------------------- 1 | project "BulletDynamics" 2 | 3 | kind "StaticLib" 4 | targetdir "../../lib" 5 | includedirs { 6 | "..", 7 | } 8 | files { 9 | "**.cpp", 10 | "**.h" 11 | } -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/Integrate.hlsl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | cbuffer IntegrateCB : register( b0 ) 4 | { 5 | int numNodes; 6 | float solverdt; 7 | int padding1; 8 | int padding2; 9 | }; 10 | 11 | // Node indices for each link 12 | StructuredBuffer g_vertexInverseMasses : register( t0 ); 13 | 14 | RWStructuredBuffer g_vertexPositions : register( u0 ); 15 | RWStructuredBuffer g_vertexVelocity : register( u1 ); 16 | RWStructuredBuffer g_vertexPreviousPositions : register( u2 ); 17 | RWStructuredBuffer g_vertexForceAccumulator : register( u3 ); 18 | 19 | [numthreads(128, 1, 1)] 20 | void 21 | IntegrateKernel( uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint GI : SV_GroupIndex ) 22 | { 23 | int nodeID = DTid.x; 24 | if( nodeID < numNodes ) 25 | { 26 | float3 position = g_vertexPositions[nodeID].xyz; 27 | float3 velocity = g_vertexVelocity[nodeID].xyz; 28 | float3 force = g_vertexForceAccumulator[nodeID].xyz; 29 | float inverseMass = g_vertexInverseMasses[nodeID]; 30 | 31 | g_vertexPreviousPositions[nodeID] = float4(position, 0.f); 32 | velocity += force * inverseMass * solverdt; 33 | position += velocity * solverdt; 34 | 35 | g_vertexForceAccumulator[nodeID] = float4(0.f, 0.f, 0.f, 0.0f); 36 | g_vertexPositions[nodeID] = float4(position, 0.f); 37 | g_vertexVelocity[nodeID] = float4(velocity, 0.f); 38 | } 39 | } 40 | 41 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/OutputToVertexArray.hlsl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | cbuffer OutputToVertexArrayCB : register( b0 ) 4 | { 5 | int startNode; 6 | int numNodes; 7 | int positionOffset; 8 | int positionStride; 9 | 10 | int normalOffset; 11 | int normalStride; 12 | int padding1; 13 | int padding2; 14 | }; 15 | 16 | 17 | StructuredBuffer g_vertexPositions : register( t0 ); 18 | StructuredBuffer g_vertexNormals : register( t1 ); 19 | 20 | RWBuffer g_vertexBuffer : register( u0 ); 21 | 22 | 23 | [numthreads(128, 1, 1)] 24 | void 25 | OutputToVertexArrayWithNormalsKernel( uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint GI : SV_GroupIndex ) 26 | { 27 | int nodeID = DTid.x; 28 | if( nodeID < numNodes ) 29 | { 30 | float4 position = g_vertexPositions[nodeID + startNode]; 31 | float4 normal = g_vertexNormals[nodeID + startNode]; 32 | 33 | // Stride should account for the float->float4 conversion 34 | int positionDestination = nodeID * positionStride + positionOffset; 35 | g_vertexBuffer[positionDestination] = position.x; 36 | g_vertexBuffer[positionDestination+1] = position.y; 37 | g_vertexBuffer[positionDestination+2] = position.z; 38 | 39 | int normalDestination = nodeID * normalStride + normalOffset; 40 | g_vertexBuffer[normalDestination] = normal.x; 41 | g_vertexBuffer[normalDestination+1] = normal.y; 42 | g_vertexBuffer[normalDestination+2] = normal.z; 43 | } 44 | } 45 | 46 | [numthreads(128, 1, 1)] 47 | void 48 | OutputToVertexArrayWithoutNormalsKernel( uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint GI : SV_GroupIndex ) 49 | { 50 | int nodeID = DTid.x; 51 | if( nodeID < numNodes ) 52 | { 53 | float4 position = g_vertexPositions[nodeID + startNode]; 54 | float4 normal = g_vertexNormals[nodeID + startNode]; 55 | 56 | // Stride should account for the float->float4 conversion 57 | int positionDestination = nodeID * positionStride + positionOffset; 58 | g_vertexBuffer[positionDestination] = position.x; 59 | g_vertexBuffer[positionDestination+1] = position.y; 60 | g_vertexBuffer[positionDestination+2] = position.z; 61 | } 62 | } 63 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/PrepareLinks.hlsl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | cbuffer PrepareLinksCB : register( b0 ) 4 | { 5 | int numLinks; 6 | int padding0; 7 | int padding1; 8 | int padding2; 9 | }; 10 | 11 | // Node indices for each link 12 | StructuredBuffer g_linksVertexIndices : register( t0 ); 13 | StructuredBuffer g_linksMassLSC : register( t1 ); 14 | StructuredBuffer g_nodesPreviousPosition : register( t2 ); 15 | 16 | RWStructuredBuffer g_linksLengthRatio : register( u0 ); 17 | RWStructuredBuffer g_linksCurrentLength : register( u1 ); 18 | 19 | [numthreads(128, 1, 1)] 20 | void 21 | PrepareLinksKernel( uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint GI : SV_GroupIndex ) 22 | { 23 | int linkID = DTid.x; 24 | if( linkID < numLinks ) 25 | { 26 | int2 nodeIndices = g_linksVertexIndices[linkID]; 27 | int node0 = nodeIndices.x; 28 | int node1 = nodeIndices.y; 29 | 30 | float4 nodePreviousPosition0 = g_nodesPreviousPosition[node0]; 31 | float4 nodePreviousPosition1 = g_nodesPreviousPosition[node1]; 32 | 33 | float massLSC = g_linksMassLSC[linkID]; 34 | 35 | float4 linkCurrentLength = nodePreviousPosition1 - nodePreviousPosition0; 36 | 37 | float linkLengthRatio = dot(linkCurrentLength, linkCurrentLength)*massLSC; 38 | linkLengthRatio = 1./linkLengthRatio; 39 | 40 | g_linksCurrentLength[linkID] = linkCurrentLength; 41 | g_linksLengthRatio[linkID] = linkLengthRatio; 42 | } 43 | } 44 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/SolvePositions.hlsl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | cbuffer SolvePositionsFromLinksKernelCB : register( b0 ) 4 | { 5 | int startLink; 6 | int numLinks; 7 | float kst; 8 | float ti; 9 | }; 10 | 11 | // Node indices for each link 12 | StructuredBuffer g_linksVertexIndices : register( t0 ); 13 | 14 | StructuredBuffer g_linksMassLSC : register( t1 ); 15 | StructuredBuffer g_linksRestLengthSquared : register( t2 ); 16 | StructuredBuffer g_verticesInverseMass : register( t3 ); 17 | 18 | RWStructuredBuffer g_vertexPositions : register( u0 ); 19 | 20 | [numthreads(128, 1, 1)] 21 | void 22 | SolvePositionsFromLinksKernel( uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint GI : SV_GroupIndex ) 23 | { 24 | int linkID = DTid.x + startLink; 25 | if( DTid.x < numLinks ) 26 | { 27 | float massLSC = g_linksMassLSC[linkID]; 28 | float restLengthSquared = g_linksRestLengthSquared[linkID]; 29 | 30 | if( massLSC > 0.0f ) 31 | { 32 | int2 nodeIndices = g_linksVertexIndices[linkID]; 33 | int node0 = nodeIndices.x; 34 | int node1 = nodeIndices.y; 35 | 36 | float3 position0 = g_vertexPositions[node0].xyz; 37 | float3 position1 = g_vertexPositions[node1].xyz; 38 | 39 | float inverseMass0 = g_verticesInverseMass[node0]; 40 | float inverseMass1 = g_verticesInverseMass[node1]; 41 | 42 | float3 del = position1 - position0; 43 | float len = dot(del, del); 44 | float k = ((restLengthSquared - len)/(massLSC*(restLengthSquared+len)))*kst; 45 | position0 = position0 - del*(k*inverseMass0); 46 | position1 = position1 + del*(k*inverseMass1); 47 | 48 | g_vertexPositions[node0] = float4(position0, 0.f); 49 | g_vertexPositions[node1] = float4(position1, 0.f); 50 | 51 | } 52 | } 53 | } 54 | 55 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/UpdateConstants.hlsl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | cbuffer UpdateConstantsCB : register( b0 ) 4 | { 5 | int numLinks; 6 | int padding0; 7 | int padding1; 8 | int padding2; 9 | }; 10 | 11 | // Node indices for each link 12 | StructuredBuffer g_linksVertexIndices : register( t0 ); 13 | StructuredBuffer g_vertexPositions : register( t1 ); 14 | StructuredBuffer g_vertexInverseMasses : register( t2 ); 15 | StructuredBuffer g_linksMaterialLSC : register( t3 ); 16 | 17 | RWStructuredBuffer g_linksMassLSC : register( u0 ); 18 | RWStructuredBuffer g_linksRestLengthSquared : register( u1 ); 19 | RWStructuredBuffer g_linksRestLengths : register( u2 ); 20 | 21 | [numthreads(128, 1, 1)] 22 | void 23 | UpdateConstantsKernel( uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint GI : SV_GroupIndex ) 24 | { 25 | int linkID = DTid.x; 26 | if( linkID < numLinks ) 27 | { 28 | int2 nodeIndices = g_linksVertexIndices[linkID]; 29 | int node0 = nodeIndices.x; 30 | int node1 = nodeIndices.y; 31 | float linearStiffnessCoefficient = g_linksMaterialLSC[ linkID ]; 32 | 33 | float3 position0 = g_vertexPositions[node0].xyz; 34 | float3 position1 = g_vertexPositions[node1].xyz; 35 | float inverseMass0 = g_vertexInverseMasses[node0]; 36 | float inverseMass1 = g_vertexInverseMasses[node1]; 37 | 38 | float3 difference = position0 - position1; 39 | float length2 = dot(difference, difference); 40 | float length = sqrt(length2); 41 | 42 | g_linksRestLengths[linkID] = length; 43 | g_linksMassLSC[linkID] = (inverseMass0 + inverseMass1)/linearStiffnessCoefficient; 44 | g_linksRestLengthSquared[linkID] = length*length; 45 | } 46 | } 47 | 48 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/UpdateNodes.hlsl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | cbuffer UpdateVelocitiesFromPositionsWithVelocitiesCB : register( b0 ) 4 | { 5 | int numNodes; 6 | float isolverdt; 7 | int padding1; 8 | int padding2; 9 | }; 10 | 11 | 12 | StructuredBuffer g_vertexPositions : register( t0 ); 13 | StructuredBuffer g_vertexPreviousPositions : register( t1 ); 14 | StructuredBuffer g_vertexClothIndices : register( t2 ); 15 | StructuredBuffer g_clothVelocityCorrectionCoefficients : register( t3 ); 16 | StructuredBuffer g_clothDampingFactor : register( t4 ); 17 | 18 | RWStructuredBuffer g_vertexVelocities : register( u0 ); 19 | RWStructuredBuffer g_vertexForces : register( u1 ); 20 | 21 | 22 | [numthreads(128, 1, 1)] 23 | void 24 | updateVelocitiesFromPositionsWithVelocitiesKernel( uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint GI : SV_GroupIndex ) 25 | { 26 | int nodeID = DTid.x; 27 | if( nodeID < numNodes ) 28 | { 29 | float3 position = g_vertexPositions[nodeID].xyz; 30 | float3 previousPosition = g_vertexPreviousPositions[nodeID].xyz; 31 | float3 velocity = g_vertexVelocities[nodeID].xyz; 32 | int clothIndex = g_vertexClothIndices[nodeID]; 33 | float velocityCorrectionCoefficient = g_clothVelocityCorrectionCoefficients[clothIndex]; 34 | float dampingFactor = g_clothDampingFactor[clothIndex]; 35 | float velocityCoefficient = (1.f - dampingFactor); 36 | 37 | float3 difference = position - previousPosition; 38 | 39 | velocity += difference*velocityCorrectionCoefficient*isolverdt; 40 | 41 | // Damp the velocity 42 | velocity *= velocityCoefficient; 43 | 44 | g_vertexVelocities[nodeID] = float4(velocity, 0.f); 45 | g_vertexForces[nodeID] = float4(0.f, 0.f, 0.f, 0.f); 46 | } 47 | } 48 | 49 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/UpdatePositions.hlsl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | cbuffer UpdateVelocitiesFromPositionsWithoutVelocitiesCB : register( b0 ) 4 | { 5 | int numNodes; 6 | float isolverdt; 7 | int padding1; 8 | int padding2; 9 | }; 10 | 11 | 12 | StructuredBuffer g_vertexPositions : register( t0 ); 13 | StructuredBuffer g_vertexPreviousPositions : register( t1 ); 14 | StructuredBuffer g_vertexClothIndices : register( t2 ); 15 | StructuredBuffer g_clothDampingFactor : register( t3 ); 16 | 17 | RWStructuredBuffer g_vertexVelocities : register( u0 ); 18 | RWStructuredBuffer g_vertexForces : register( u1 ); 19 | 20 | 21 | [numthreads(128, 1, 1)] 22 | void 23 | updateVelocitiesFromPositionsWithoutVelocitiesKernel( uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint GI : SV_GroupIndex ) 24 | { 25 | int nodeID = DTid.x; 26 | if( nodeID < numNodes ) 27 | { 28 | float3 position = g_vertexPositions[nodeID].xyz; 29 | float3 previousPosition = g_vertexPreviousPositions[nodeID].xyz; 30 | float3 velocity = g_vertexVelocities[nodeID].xyz; 31 | int clothIndex = g_vertexClothIndices[nodeID]; 32 | float dampingFactor = g_clothDampingFactor[clothIndex]; 33 | float velocityCoefficient = (1.f - dampingFactor); 34 | 35 | float3 difference = position - previousPosition; 36 | 37 | velocity = difference*velocityCoefficient*isolverdt; 38 | 39 | g_vertexVelocities[nodeID] = float4(velocity, 0.f); 40 | g_vertexForces[nodeID] = float4(0.f, 0.f, 0.f, 0.f); 41 | } 42 | } 43 | 44 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/UpdatePositionsFromVelocities.hlsl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | cbuffer UpdatePositionsFromVelocitiesCB : register( b0 ) 4 | { 5 | int numNodes; 6 | float solverSDT; 7 | int padding1; 8 | int padding2; 9 | }; 10 | 11 | 12 | StructuredBuffer g_vertexVelocities : register( t0 ); 13 | 14 | RWStructuredBuffer g_vertexPreviousPositions : register( u0 ); 15 | RWStructuredBuffer g_vertexCurrentPosition : register( u1 ); 16 | 17 | 18 | [numthreads(128, 1, 1)] 19 | void 20 | UpdatePositionsFromVelocitiesKernel( uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint GI : SV_GroupIndex ) 21 | { 22 | int vertexID = DTid.x; 23 | if( vertexID < numNodes ) 24 | { 25 | float3 previousPosition = g_vertexPreviousPositions[vertexID].xyz; 26 | float3 velocity = g_vertexVelocities[vertexID].xyz; 27 | 28 | float3 newPosition = previousPosition + velocity*solverSDT; 29 | 30 | g_vertexCurrentPosition[vertexID] = float4(newPosition, 0.f); 31 | g_vertexPreviousPositions[vertexID] = float4(newPosition, 0.f); 32 | } 33 | } 34 | 35 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/DX11/HLSL/VSolveLinks.hlsl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | cbuffer VSolveLinksCB : register( b0 ) 4 | { 5 | int startLink; 6 | int numLinks; 7 | float kst; 8 | int padding; 9 | }; 10 | 11 | // Node indices for each link 12 | StructuredBuffer g_linksVertexIndices : register( t0 ); 13 | 14 | StructuredBuffer g_linksLengthRatio : register( t1 ); 15 | StructuredBuffer g_linksCurrentLength : register( t2 ); 16 | StructuredBuffer g_vertexInverseMass : register( t3 ); 17 | 18 | RWStructuredBuffer g_vertexVelocity : register( u0 ); 19 | 20 | [numthreads(128, 1, 1)] 21 | void 22 | VSolveLinksKernel( uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint GI : SV_GroupIndex ) 23 | { 24 | int linkID = DTid.x + startLink; 25 | if( DTid.x < numLinks ) 26 | { 27 | int2 nodeIndices = g_linksVertexIndices[linkID]; 28 | int node0 = nodeIndices.x; 29 | int node1 = nodeIndices.y; 30 | 31 | float linkLengthRatio = g_linksLengthRatio[linkID]; 32 | float3 linkCurrentLength = g_linksCurrentLength[linkID].xyz; 33 | 34 | float3 vertexVelocity0 = g_vertexVelocity[node0].xyz; 35 | float3 vertexVelocity1 = g_vertexVelocity[node1].xyz; 36 | 37 | float vertexInverseMass0 = g_vertexInverseMass[node0]; 38 | float vertexInverseMass1 = g_vertexInverseMass[node1]; 39 | 40 | float3 nodeDifference = vertexVelocity0 - vertexVelocity1; 41 | float dotResult = dot(linkCurrentLength, nodeDifference); 42 | float j = -dotResult*linkLengthRatio*kst; 43 | 44 | float3 velocityChange0 = linkCurrentLength*(j*vertexInverseMass0); 45 | float3 velocityChange1 = linkCurrentLength*(j*vertexInverseMass1); 46 | 47 | vertexVelocity0 += velocityChange0; 48 | vertexVelocity1 -= velocityChange1; 49 | 50 | g_vertexVelocity[node0] = float4(vertexVelocity0, 0.f); 51 | g_vertexVelocity[node1] = float4(vertexVelocity1, 0.f); 52 | } 53 | } 54 | 55 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/DX11/premake4.lua: -------------------------------------------------------------------------------- 1 | 2 | hasDX11 = findDirectX11() 3 | 4 | if (hasDX11) then 5 | 6 | project "BulletSoftBodyDX11Solvers" 7 | 8 | initDirectX11() 9 | 10 | kind "StaticLib" 11 | 12 | targetdir "../../../../lib" 13 | 14 | includedirs { 15 | ".", 16 | "../../.." 17 | } 18 | files { 19 | "**.cpp", 20 | "**.h" 21 | } 22 | 23 | end 24 | -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/AMD/premake4.lua: -------------------------------------------------------------------------------- 1 | 2 | hasCL = findOpenCL_AMD() 3 | 4 | if (hasCL) then 5 | 6 | project "BulletSoftBodySolvers_OpenCL_AMD" 7 | 8 | defines { "USE_AMD_OPENCL","CL_PLATFORM_AMD"} 9 | 10 | initOpenCL_AMD() 11 | 12 | kind "StaticLib" 13 | 14 | targetdir "../../../../../lib" 15 | 16 | includedirs { 17 | ".", 18 | "../../../..", 19 | "../../../../../Glut" 20 | } 21 | files { 22 | "../btSoftBodySolver_OpenCL.cpp", 23 | "../btSoftBodySolver_OpenCLSIMDAware.cpp", 24 | "../btSoftBodySolverOutputCLtoGL.cpp" 25 | } 26 | 27 | end 28 | -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/Intel/premake4.lua: -------------------------------------------------------------------------------- 1 | 2 | hasCL = findOpenCL_Intel() 3 | 4 | if (hasCL) then 5 | 6 | project "BulletSoftBodySolvers_OpenCL_Intel" 7 | 8 | defines { "USE_INTEL_OPENCL","CL_PLATFORM_INTEL"} 9 | 10 | initOpenCL_Intel() 11 | 12 | kind "StaticLib" 13 | 14 | targetdir "../../../../../lib" 15 | 16 | includedirs { 17 | ".", 18 | "../../../..", 19 | "../../../../../Glut" 20 | } 21 | files { 22 | "../btSoftBodySolver_OpenCL.cpp", 23 | "../btSoftBodySolver_OpenCLSIMDAware.cpp", 24 | "../btSoftBodySolverOutputCLtoGL.cpp" 25 | } 26 | 27 | end 28 | -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/NVidia/premake4.lua: -------------------------------------------------------------------------------- 1 | 2 | hasCL = findOpenCL_NVIDIA() 3 | 4 | if (hasCL) then 5 | 6 | project "BulletSoftBodySolvers_OpenCL_NVIDIA" 7 | 8 | defines { "USE_NVIDIA_OPENCL","CL_PLATFORM_NVIDIA"} 9 | 10 | initOpenCL_NVIDIA() 11 | 12 | kind "StaticLib" 13 | 14 | targetdir "../../../../../lib" 15 | 16 | includedirs { 17 | ".", 18 | "../../../..", 19 | "../../../../../Glut" 20 | } 21 | files { 22 | "../btSoftBodySolver_OpenCL.cpp", 23 | "../btSoftBodySolver_OpenCLSIMDAware.cpp", 24 | "../btSoftBodySolverOutputCLtoGL.cpp" 25 | } 26 | 27 | end 28 | -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/ApplyForces.cl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/ApplyForces.cl -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/Integrate.cl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | // Node indices for each link 4 | 5 | 6 | 7 | __kernel void 8 | IntegrateKernel( 9 | const int numNodes, 10 | const float solverdt, 11 | __global float * g_vertexInverseMasses, 12 | __global float4 * g_vertexPositions, 13 | __global float4 * g_vertexVelocity, 14 | __global float4 * g_vertexPreviousPositions, 15 | __global float4 * g_vertexForceAccumulator GUID_ARG) 16 | { 17 | int nodeID = get_global_id(0); 18 | if( nodeID < numNodes ) 19 | { 20 | float4 position = g_vertexPositions[nodeID]; 21 | float4 velocity = g_vertexVelocity[nodeID]; 22 | float4 force = g_vertexForceAccumulator[nodeID]; 23 | float inverseMass = g_vertexInverseMasses[nodeID]; 24 | 25 | g_vertexPreviousPositions[nodeID] = position; 26 | velocity += force * inverseMass * solverdt; 27 | position += velocity * solverdt; 28 | 29 | g_vertexForceAccumulator[nodeID] = (float4)(0.f, 0.f, 0.f, 0.0f); 30 | g_vertexPositions[nodeID] = position; 31 | g_vertexVelocity[nodeID] = velocity; 32 | } 33 | } 34 | 35 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/OutputToVertexArray.cl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | __kernel void 4 | OutputToVertexArrayWithNormalsKernel( 5 | const int startNode, const int numNodes, __global float *g_vertexBuffer, 6 | const int positionOffset, const int positionStride, const __global float4* g_vertexPositions, 7 | const int normalOffset, const int normalStride, const __global float4* g_vertexNormals ) 8 | { 9 | int nodeID = get_global_id(0); 10 | if( nodeID < numNodes ) 11 | { 12 | float4 position = g_vertexPositions[nodeID + startNode]; 13 | float4 normal = g_vertexNormals[nodeID + startNode]; 14 | 15 | // Stride should account for the float->float4 conversion 16 | int positionDestination = nodeID * positionStride + positionOffset; 17 | g_vertexBuffer[positionDestination] = position.x; 18 | g_vertexBuffer[positionDestination+1] = position.y; 19 | g_vertexBuffer[positionDestination+2] = position.z; 20 | 21 | int normalDestination = nodeID * normalStride + normalOffset; 22 | g_vertexBuffer[normalDestination] = normal.x; 23 | g_vertexBuffer[normalDestination+1] = normal.y; 24 | g_vertexBuffer[normalDestination+2] = normal.z; 25 | } 26 | } 27 | 28 | __kernel void 29 | OutputToVertexArrayWithoutNormalsKernel( 30 | const int startNode, const int numNodes, __global float *g_vertexBuffer, 31 | const int positionOffset, const int positionStride, const __global float4* g_vertexPositions ) 32 | { 33 | int nodeID = get_global_id(0); 34 | if( nodeID < numNodes ) 35 | { 36 | float4 position = g_vertexPositions[nodeID + startNode]; 37 | 38 | // Stride should account for the float->float4 conversion 39 | int positionDestination = nodeID * positionStride + positionOffset; 40 | g_vertexBuffer[positionDestination] = position.x; 41 | g_vertexBuffer[positionDestination+1] = position.y; 42 | g_vertexBuffer[positionDestination+2] = position.z; 43 | } 44 | } 45 | 46 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/PrepareLinks.cl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | 4 | 5 | __kernel void 6 | PrepareLinksKernel( 7 | const int numLinks, 8 | __global int2 * g_linksVertexIndices, 9 | __global float * g_linksMassLSC, 10 | __global float4 * g_nodesPreviousPosition, 11 | __global float * g_linksLengthRatio, 12 | __global float4 * g_linksCurrentLength GUID_ARG) 13 | { 14 | int linkID = get_global_id(0); 15 | if( linkID < numLinks ) 16 | { 17 | 18 | int2 nodeIndices = g_linksVertexIndices[linkID]; 19 | int node0 = nodeIndices.x; 20 | int node1 = nodeIndices.y; 21 | 22 | float4 nodePreviousPosition0 = g_nodesPreviousPosition[node0]; 23 | float4 nodePreviousPosition1 = g_nodesPreviousPosition[node1]; 24 | 25 | float massLSC = g_linksMassLSC[linkID]; 26 | 27 | float4 linkCurrentLength = nodePreviousPosition1 - nodePreviousPosition0; 28 | linkCurrentLength.w = 0.f; 29 | 30 | float linkLengthRatio = dot(linkCurrentLength, linkCurrentLength)*massLSC; 31 | linkLengthRatio = 1.0f/linkLengthRatio; 32 | 33 | g_linksCurrentLength[linkID] = linkCurrentLength; 34 | g_linksLengthRatio[linkID] = linkLengthRatio; 35 | } 36 | } 37 | 38 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/SolvePositions.cl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | MSTRINGIFY( 5 | 6 | 7 | float mydot3(float4 a, float4 b) 8 | { 9 | return a.x*b.x + a.y*b.y + a.z*b.z; 10 | } 11 | 12 | 13 | __kernel void 14 | SolvePositionsFromLinksKernel( 15 | const int startLink, 16 | const int numLinks, 17 | const float kst, 18 | const float ti, 19 | __global int2 * g_linksVertexIndices, 20 | __global float * g_linksMassLSC, 21 | __global float * g_linksRestLengthSquared, 22 | __global float * g_verticesInverseMass, 23 | __global float4 * g_vertexPositions GUID_ARG) 24 | 25 | { 26 | int linkID = get_global_id(0) + startLink; 27 | if( get_global_id(0) < numLinks ) 28 | { 29 | float massLSC = g_linksMassLSC[linkID]; 30 | float restLengthSquared = g_linksRestLengthSquared[linkID]; 31 | 32 | if( massLSC > 0.0f ) 33 | { 34 | int2 nodeIndices = g_linksVertexIndices[linkID]; 35 | int node0 = nodeIndices.x; 36 | int node1 = nodeIndices.y; 37 | 38 | float4 position0 = g_vertexPositions[node0]; 39 | float4 position1 = g_vertexPositions[node1]; 40 | 41 | float inverseMass0 = g_verticesInverseMass[node0]; 42 | float inverseMass1 = g_verticesInverseMass[node1]; 43 | 44 | float4 del = position1 - position0; 45 | float len = mydot3(del, del); 46 | float k = ((restLengthSquared - len)/(massLSC*(restLengthSquared+len)))*kst; 47 | position0 = position0 - del*(k*inverseMass0); 48 | position1 = position1 + del*(k*inverseMass1); 49 | 50 | g_vertexPositions[node0] = position0; 51 | g_vertexPositions[node1] = position1; 52 | 53 | } 54 | } 55 | } 56 | 57 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/UpdateConstants.cl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | /*#define float3 float4 4 | 5 | float dot3(float3 a, float3 b) 6 | { 7 | return a.x*b.x + a.y*b.y + a.z*b.z; 8 | }*/ 9 | 10 | __kernel void 11 | UpdateConstantsKernel( 12 | const int numLinks, 13 | __global int2 * g_linksVertexIndices, 14 | __global float4 * g_vertexPositions, 15 | __global float * g_vertexInverseMasses, 16 | __global float * g_linksMaterialLSC, 17 | __global float * g_linksMassLSC, 18 | __global float * g_linksRestLengthSquared, 19 | __global float * g_linksRestLengths) 20 | { 21 | int linkID = get_global_id(0); 22 | if( linkID < numLinks ) 23 | { 24 | int2 nodeIndices = g_linksVertexIndices[linkID]; 25 | int node0 = nodeIndices.x; 26 | int node1 = nodeIndices.y; 27 | float linearStiffnessCoefficient = g_linksMaterialLSC[ linkID ]; 28 | 29 | float3 position0 = g_vertexPositions[node0].xyz; 30 | float3 position1 = g_vertexPositions[node1].xyz; 31 | float inverseMass0 = g_vertexInverseMasses[node0]; 32 | float inverseMass1 = g_vertexInverseMasses[node1]; 33 | 34 | float3 difference = position0 - position1; 35 | float length2 = dot(difference, difference); 36 | float length = sqrt(length2); 37 | 38 | g_linksRestLengths[linkID] = length; 39 | g_linksMassLSC[linkID] = (inverseMass0 + inverseMass1)/linearStiffnessCoefficient; 40 | g_linksRestLengthSquared[linkID] = length*length; 41 | } 42 | } 43 | 44 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/UpdateFixedVertexPositions.cl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | __kernel void 4 | UpdateFixedVertexPositions( 5 | const uint numNodes, 6 | __global int * g_anchorIndex, 7 | __global float4 * g_vertexPositions, 8 | __global float4 * g_anchorPositions GUID_ARG) 9 | { 10 | unsigned int nodeID = get_global_id(0); 11 | 12 | if( nodeID < numNodes ) 13 | { 14 | int anchorIndex = g_anchorIndex[nodeID]; 15 | float4 position = g_vertexPositions[nodeID]; 16 | 17 | if ( anchorIndex >= 0 ) 18 | { 19 | float4 anchorPosition = g_anchorPositions[anchorIndex]; 20 | g_vertexPositions[nodeID] = anchorPosition; 21 | } 22 | } 23 | } 24 | 25 | ); 26 | -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/UpdateNodes.cl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | 4 | __kernel void 5 | updateVelocitiesFromPositionsWithVelocitiesKernel( 6 | int numNodes, 7 | float isolverdt, 8 | __global float4 * g_vertexPositions, 9 | __global float4 * g_vertexPreviousPositions, 10 | __global int * g_vertexClothIndices, 11 | __global float *g_clothVelocityCorrectionCoefficients, 12 | __global float * g_clothDampingFactor, 13 | __global float4 * g_vertexVelocities, 14 | __global float4 * g_vertexForces GUID_ARG) 15 | { 16 | int nodeID = get_global_id(0); 17 | if( nodeID < numNodes ) 18 | { 19 | float4 position = g_vertexPositions[nodeID]; 20 | float4 previousPosition = g_vertexPreviousPositions[nodeID]; 21 | float4 velocity = g_vertexVelocities[nodeID]; 22 | int clothIndex = g_vertexClothIndices[nodeID]; 23 | float velocityCorrectionCoefficient = g_clothVelocityCorrectionCoefficients[clothIndex]; 24 | float dampingFactor = g_clothDampingFactor[clothIndex]; 25 | float velocityCoefficient = (1.f - dampingFactor); 26 | 27 | float4 difference = position - previousPosition; 28 | 29 | velocity += difference*velocityCorrectionCoefficient*isolverdt; 30 | 31 | // Damp the velocity 32 | velocity *= velocityCoefficient; 33 | 34 | g_vertexVelocities[nodeID] = velocity; 35 | g_vertexForces[nodeID] = (float4)(0.f, 0.f, 0.f, 0.f); 36 | } 37 | } 38 | 39 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/UpdatePositions.cl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | __kernel void 4 | updateVelocitiesFromPositionsWithoutVelocitiesKernel( 5 | const int numNodes, 6 | const float isolverdt, 7 | __global float4 * g_vertexPositions, 8 | __global float4 * g_vertexPreviousPositions, 9 | __global int * g_vertexClothIndices, 10 | __global float * g_clothDampingFactor, 11 | __global float4 * g_vertexVelocities, 12 | __global float4 * g_vertexForces GUID_ARG) 13 | 14 | { 15 | int nodeID = get_global_id(0); 16 | if( nodeID < numNodes ) 17 | { 18 | float4 position = g_vertexPositions[nodeID]; 19 | float4 previousPosition = g_vertexPreviousPositions[nodeID]; 20 | float4 velocity = g_vertexVelocities[nodeID]; 21 | int clothIndex = g_vertexClothIndices[nodeID]; 22 | float dampingFactor = g_clothDampingFactor[clothIndex]; 23 | float velocityCoefficient = (1.f - dampingFactor); 24 | 25 | float4 difference = position - previousPosition; 26 | 27 | velocity = difference*velocityCoefficient*isolverdt; 28 | 29 | g_vertexVelocities[nodeID] = velocity; 30 | g_vertexForces[nodeID] = (float4)(0.f, 0.f, 0.f, 0.f); 31 | } 32 | } 33 | 34 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/UpdatePositionsFromVelocities.cl: -------------------------------------------------------------------------------- 1 | 2 | MSTRINGIFY( 3 | 4 | 5 | 6 | 7 | __kernel void 8 | UpdatePositionsFromVelocitiesKernel( 9 | const int numNodes, 10 | const float solverSDT, 11 | __global float4 * g_vertexVelocities, 12 | __global float4 * g_vertexPreviousPositions, 13 | __global float4 * g_vertexCurrentPosition GUID_ARG) 14 | { 15 | int vertexID = get_global_id(0); 16 | if( vertexID < numNodes ) 17 | { 18 | float4 previousPosition = g_vertexPreviousPositions[vertexID]; 19 | float4 velocity = g_vertexVelocities[vertexID]; 20 | 21 | float4 newPosition = previousPosition + velocity*solverSDT; 22 | 23 | g_vertexCurrentPosition[vertexID] = newPosition; 24 | g_vertexPreviousPositions[vertexID] = newPosition; 25 | } 26 | } 27 | 28 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/OpenCLC10/VSolveLinks.cl: -------------------------------------------------------------------------------- 1 | MSTRINGIFY( 2 | 3 | __kernel void 4 | VSolveLinksKernel( 5 | int startLink, 6 | int numLinks, 7 | float kst, 8 | __global int2 * g_linksVertexIndices, 9 | __global float * g_linksLengthRatio, 10 | __global float4 * g_linksCurrentLength, 11 | __global float * g_vertexInverseMass, 12 | __global float4 * g_vertexVelocity GUID_ARG) 13 | { 14 | int linkID = get_global_id(0) + startLink; 15 | if( get_global_id(0) < numLinks ) 16 | { 17 | int2 nodeIndices = g_linksVertexIndices[linkID]; 18 | int node0 = nodeIndices.x; 19 | int node1 = nodeIndices.y; 20 | 21 | float linkLengthRatio = g_linksLengthRatio[linkID]; 22 | float3 linkCurrentLength = g_linksCurrentLength[linkID].xyz; 23 | 24 | float3 vertexVelocity0 = g_vertexVelocity[node0].xyz; 25 | float3 vertexVelocity1 = g_vertexVelocity[node1].xyz; 26 | 27 | float vertexInverseMass0 = g_vertexInverseMass[node0]; 28 | float vertexInverseMass1 = g_vertexInverseMass[node1]; 29 | 30 | float3 nodeDifference = vertexVelocity0 - vertexVelocity1; 31 | float dotResult = dot(linkCurrentLength, nodeDifference); 32 | float j = -dotResult*linkLengthRatio*kst; 33 | 34 | float3 velocityChange0 = linkCurrentLength*(j*vertexInverseMass0); 35 | float3 velocityChange1 = linkCurrentLength*(j*vertexInverseMass1); 36 | 37 | vertexVelocity0 += velocityChange0; 38 | vertexVelocity1 -= velocityChange1; 39 | 40 | g_vertexVelocity[node0] = (float4)(vertexVelocity0, 0.f); 41 | g_vertexVelocity[node1] = (float4)(vertexVelocity1, 0.f); 42 | } 43 | } 44 | 45 | ); -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/PpuAddressSpace.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2010 Erwin Coumans http://bulletphysics.org 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | 17 | #ifndef BT_PPU_ADDRESS_SPACE_H 18 | #define BT_PPU_ADDRESS_SPACE_H 19 | 20 | 21 | #ifdef _WIN32 22 | //stop those casting warnings until we have a better solution for ppu_address_t / void* / uint64 conversions 23 | #pragma warning (disable: 4311) 24 | #pragma warning (disable: 4312) 25 | #endif //_WIN32 26 | 27 | 28 | #if defined(_WIN64) 29 | typedef unsigned __int64 ppu_address_t; 30 | #elif defined(__LP64__) || defined(__x86_64__) 31 | typedef uint64_t ppu_address_t; 32 | #else 33 | typedef uint32_t ppu_address_t; 34 | #endif //defined(_WIN64) 35 | 36 | #endif //BT_PPU_ADDRESS_SPACE_H 37 | 38 | -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/SpuCollisionObjectWrapper.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | #ifndef BT_SPU_COLLISION_OBJECT_WRAPPER_H 17 | #define BT_SPU_COLLISION_OBJECT_WRAPPER_H 18 | 19 | #include "PlatformDefinitions.h" 20 | #include "BulletCollision/CollisionDispatch/btCollisionObject.h" 21 | 22 | ATTRIBUTE_ALIGNED16(class) SpuCollisionObjectWrapper 23 | { 24 | protected: 25 | int m_shapeType; 26 | float m_margin; 27 | ppu_address_t m_collisionObjectPtr; 28 | 29 | public: 30 | SpuCollisionObjectWrapper (); 31 | 32 | SpuCollisionObjectWrapper (const btCollisionObject* collisionObject); 33 | 34 | int getShapeType () const; 35 | float getCollisionMargin () const; 36 | ppu_address_t getCollisionObjectPtr () const; 37 | }; 38 | 39 | 40 | #endif //BT_SPU_COLLISION_OBJECT_WRAPPER_H 41 | -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuConvexPenetrationDepthSolver.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | Bullet Continuous Collision Detection and Physics Library 4 | Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ 5 | 6 | This software is provided 'as-is', without any express or implied warranty. 7 | In no event will the authors be held liable for any damages arising from the use of this software. 8 | Permission is granted to anyone to use this software for any purpose, 9 | including commercial applications, and to alter it and redistribute it freely, 10 | subject to the following restrictions: 11 | 12 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 13 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 14 | 3. This notice may not be removed or altered from any source distribution. 15 | */ 16 | 17 | 18 | #ifndef SPU_CONVEX_PENETRATION_DEPTH_H 19 | #define SPU_CONVEX_PENETRATION_DEPTH_H 20 | 21 | 22 | 23 | class btIDebugDraw; 24 | #include "BulletCollision/NarrowphaseCollision/btConvexPenetrationDepthSolver.h" 25 | 26 | #include "LinearMath/btTransform.h" 27 | 28 | 29 | ///ConvexPenetrationDepthSolver provides an interface for penetration depth calculation. 30 | class SpuConvexPenetrationDepthSolver : public btConvexPenetrationDepthSolver 31 | { 32 | public: 33 | 34 | virtual ~SpuConvexPenetrationDepthSolver() {}; 35 | virtual bool calcPenDepth( SpuVoronoiSimplexSolver& simplexSolver, 36 | void* convexA,void* convexB,int shapeTypeA, int shapeTypeB, float marginA, float marginB, 37 | btTransform& transA,const btTransform& transB, 38 | btVector3& v, btVector3& pa, btVector3& pb, 39 | class btIDebugDraw* debugDraw, 40 | struct SpuConvexPolyhedronVertexData* convexVertexDataA, 41 | struct SpuConvexPolyhedronVertexData* convexVertexDataB 42 | ) const = 0; 43 | 44 | 45 | }; 46 | 47 | 48 | 49 | #endif //SPU_CONVEX_PENETRATION_DEPTH_H 50 | 51 | -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuLocalSupport.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDepthSolver.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | Bullet Continuous Collision Detection and Physics Library 4 | Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ 5 | 6 | This software is provided 'as-is', without any express or implied warranty. 7 | In no event will the authors be held liable for any damages arising from the use of this software. 8 | Permission is granted to anyone to use this software for any purpose, 9 | including commercial applications, and to alter it and redistribute it freely, 10 | subject to the following restrictions: 11 | 12 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 13 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 14 | 3. This notice may not be removed or altered from any source distribution. 15 | */ 16 | 17 | #ifndef MINKOWSKI_PENETRATION_DEPTH_SOLVER_H 18 | #define MINKOWSKI_PENETRATION_DEPTH_SOLVER_H 19 | 20 | 21 | #include "BulletCollision/NarrowPhaseCollision/btConvexPenetrationDepthSolver.h" 22 | 23 | class btIDebugDraw; 24 | class btVoronoiSimplexSolver; 25 | class btConvexShape; 26 | 27 | ///MinkowskiPenetrationDepthSolver implements bruteforce penetration depth estimation. 28 | ///Implementation is based on sampling the depth using support mapping, and using GJK step to get the witness points. 29 | class SpuMinkowskiPenetrationDepthSolver : public btConvexPenetrationDepthSolver 30 | { 31 | public: 32 | SpuMinkowskiPenetrationDepthSolver() {} 33 | virtual ~SpuMinkowskiPenetrationDepthSolver() {}; 34 | 35 | virtual bool calcPenDepth( btSimplexSolverInterface& simplexSolver, 36 | const btConvexShape* convexA,const btConvexShape* convexB, 37 | const btTransform& transA,const btTransform& transB, 38 | btVector3& v, btVector3& pa, btVector3& pb, 39 | class btIDebugDraw* debugDraw 40 | ); 41 | 42 | 43 | }; 44 | 45 | 46 | #endif //MINKOWSKI_PENETRATION_DEPTH_SOLVER_H 47 | 48 | -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/readme.txt: -------------------------------------------------------------------------------- 1 | Empty placeholder for future Libspe2 SPU task 2 | -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/SpuSampleTask/SpuSampleTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library, Copyright (c) 2007 Erwin Coumans 3 | 4 | This software is provided 'as-is', without any express or implied warranty. 5 | In no event will the authors be held liable for any damages arising from the use of this software. 6 | Permission is granted to anyone to use this software for any purpose, 7 | including commercial applications, and to alter it and redistribute it freely, 8 | subject to the following restrictions: 9 | 10 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 11 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 12 | 3. This notice may not be removed or altered from any source distribution. 13 | 14 | */ 15 | 16 | #ifndef SPU_SAMPLE_TASK_H 17 | #define SPU_SAMPLE_TASK_H 18 | 19 | #include "../PlatformDefinitions.h" 20 | #include "LinearMath/btScalar.h" 21 | #include "LinearMath/btVector3.h" 22 | #include "LinearMath/btMatrix3x3.h" 23 | 24 | #include "LinearMath/btAlignedAllocator.h" 25 | 26 | 27 | enum 28 | { 29 | CMD_SAMPLE_INTEGRATE_BODIES = 1, 30 | CMD_SAMPLE_PREDICT_MOTION_BODIES 31 | }; 32 | 33 | 34 | 35 | ATTRIBUTE_ALIGNED16(struct) SpuSampleTaskDesc 36 | { 37 | BT_DECLARE_ALIGNED_ALLOCATOR(); 38 | 39 | uint32_t m_sampleCommand; 40 | uint32_t m_taskId; 41 | 42 | uint64_t m_mainMemoryPtr; 43 | int m_sampleValue; 44 | 45 | 46 | }; 47 | 48 | 49 | void processSampleTask(void* userPtr, void* lsMemory); 50 | void* createSampleLocalStoreMemory(); 51 | 52 | 53 | #endif //SPU_SAMPLE_TASK_H 54 | 55 | -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/SpuSampleTask/readme.txt: -------------------------------------------------------------------------------- 1 | Empty placeholder for future Libspe2 SPU task 2 | -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/btGpuUtilsSharedDefs.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library, http://bulletphysics.org 3 | Copyright (C) 2006, 2007 Sony Computer Entertainment Inc. 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | // Shared definitions for GPU-based utilities 17 | 18 | //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 19 | // Keep this file free from Bullet headers 20 | // it is included into both CUDA and CPU code 21 | // file with definitions of BT_GPU_xxx should be included first 22 | //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 23 | 24 | 25 | #ifndef BTGPUUTILSDHAREDDEFS_H 26 | #define BTGPUUTILSDHAREDDEFS_H 27 | 28 | 29 | extern "C" 30 | { 31 | 32 | 33 | //Round a / b to nearest higher integer value 34 | int BT_GPU_PREF(iDivUp)(int a, int b); 35 | 36 | // compute grid and thread block size for a given number of elements 37 | void BT_GPU_PREF(computeGridSize)(int n, int blockSize, int &numBlocks, int &numThreads); 38 | 39 | void BT_GPU_PREF(allocateArray)(void** devPtr, unsigned int size); 40 | void BT_GPU_PREF(freeArray)(void* devPtr); 41 | void BT_GPU_PREF(copyArrayFromDevice)(void* host, const void* device, unsigned int size); 42 | void BT_GPU_PREF(copyArrayToDevice)(void* device, const void* host, unsigned int size); 43 | void BT_GPU_PREF(registerGLBufferObject(unsigned int vbo)); 44 | void* BT_GPU_PREF(mapGLBufferObject(unsigned int vbo)); 45 | void BT_GPU_PREF(unmapGLBufferObject(unsigned int vbo)); 46 | 47 | 48 | } // extern "C" 49 | 50 | 51 | #endif // BTGPUUTILSDHAREDDEFS_H 52 | 53 | -------------------------------------------------------------------------------- /Dependencies/include/BulletMultiThreaded/btParallelConstraintSolver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/include/BulletMultiThreaded/btParallelConstraintSolver.h -------------------------------------------------------------------------------- /Dependencies/include/BulletSoftBody/premake4.lua: -------------------------------------------------------------------------------- 1 | project "BulletSoftBody" 2 | 3 | kind "StaticLib" 4 | targetdir "../../lib" 5 | includedirs { 6 | "..", 7 | } 8 | files { 9 | "**.cpp", 10 | "**.h" 11 | } -------------------------------------------------------------------------------- /Dependencies/include/GL/gl.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/include/GL/gl.h -------------------------------------------------------------------------------- /Dependencies/include/GLM/common.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/common.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_common.hpp" 36 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/detail/_fixes.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/_fixes.hpp 29 | /// @date 2011-02-21 / 2011-11-22 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #include 34 | 35 | //! Workaround for compatibility with other libraries 36 | #ifdef max 37 | #undef max 38 | #endif 39 | 40 | //! Workaround for compatibility with other libraries 41 | #ifdef min 42 | #undef min 43 | #endif 44 | 45 | //! Workaround for Android 46 | #ifdef isnan 47 | #undef isnan 48 | #endif 49 | 50 | //! Workaround for Android 51 | #ifdef isinf 52 | #undef isinf 53 | #endif 54 | 55 | //! Workaround for Chrone Native Client 56 | #ifdef log2 57 | #undef log2 58 | #endif 59 | 60 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/detail/intrinsic_exponential.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/detail/intrinsic_exponential.inl 25 | /// @date 2011-06-15 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/detail/intrinsic_integer.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/detail/intrinsic_integer.hpp 25 | /// @date 2009-05-11 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | 29 | #pragma once 30 | 31 | #include "glm/glm.hpp" 32 | 33 | #if(!(GLM_ARCH & GLM_ARCH_SSE2)) 34 | # error "SSE2 instructions not supported or enabled" 35 | #else 36 | 37 | namespace glm{ 38 | namespace detail 39 | { 40 | __m128i _mm_bit_interleave_si128(__m128i x); 41 | __m128i _mm_bit_interleave_si128(__m128i x, __m128i y); 42 | 43 | }//namespace detail 44 | }//namespace glm 45 | 46 | #include "intrinsic_integer.inl" 47 | 48 | #endif//GLM_ARCH 49 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/detail/intrinsic_trigonometric.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/detail/intrinsic_trigonometric.hpp 25 | /// @date 2009-06-09 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | 29 | #pragma once 30 | 31 | #include "setup.hpp" 32 | 33 | #if(!(GLM_ARCH & GLM_ARCH_SSE2)) 34 | # error "SSE2 instructions not supported or enabled" 35 | #else 36 | 37 | namespace glm{ 38 | namespace detail 39 | { 40 | 41 | }//namespace detail 42 | }//namespace glm 43 | 44 | #include "intrinsic_trigonometric.inl" 45 | 46 | #endif//GLM_ARCH 47 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/detail/intrinsic_trigonometric.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/detail/intrinsic_trigonometric.inl 25 | /// @date 2011-06-15 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/detail/intrinsic_vector_relational.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/detail/intrinsic_vector_relational.hpp 25 | /// @date 2009-06-09 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | 29 | #pragma once 30 | 31 | #include "setup.hpp" 32 | 33 | #if(!(GLM_ARCH & GLM_ARCH_SSE2)) 34 | # error "SSE2 instructions not supported or enabled" 35 | #else 36 | 37 | namespace glm{ 38 | namespace detail 39 | { 40 | 41 | }//namespace detail 42 | }//namespace glm 43 | 44 | #include "intrinsic_vector_relational.inl" 45 | 46 | #endif//GLM_ARCH 47 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/detail/precision.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/precision.hpp 29 | /// @date 2013-04-01 / 2013-04-01 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | namespace glm 36 | { 37 | enum precision 38 | { 39 | highp, 40 | mediump, 41 | lowp, 42 | defaultp = highp 43 | }; 44 | }//namespace glm 45 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/detail/type_half.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/type_half.hpp 29 | /// @date 2008-08-17 / 2011-09-20 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "setup.hpp" 36 | 37 | namespace glm{ 38 | namespace detail 39 | { 40 | typedef short hdata; 41 | 42 | GLM_FUNC_DECL float toFloat32(hdata value); 43 | GLM_FUNC_DECL hdata toFloat16(float const & value); 44 | 45 | }//namespace detail 46 | }//namespace glm 47 | 48 | #include "type_half.inl" 49 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/detail/type_mat.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/type_mat.inl 29 | /// @date 2011-06-15 / 2011-06-15 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/detail/type_vec.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/type_vec.inl 29 | /// @date 2011-06-15 / 2011-06-15 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/detail/type_vec4_avx.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/type_tvec4_avx.inl 29 | /// @date 2014-12-01 / 2014-12-01 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm{ 34 | namespace detail 35 | { 36 | 37 | }//namespace detail 38 | 39 | 40 | 41 | }//namespace glm 42 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/detail/type_vec4_avx2.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/detail/type_tvec4_avx2.inl 29 | /// @date 2014-12-01 / 2014-12-01 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm{ 34 | namespace detail 35 | { 36 | 37 | }//namespace detail 38 | 39 | 40 | 41 | }//namespace glm 42 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/exponential.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/exponential.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_exponential.hpp" 36 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/geometric.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/geometric.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_geometric.hpp" 36 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/gtc/type_precision.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtc_swizzle 28 | /// @file glm/gtc/swizzle.inl 29 | /// @date 2009-06-14 / 2011-06-15 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/gtc/vec1.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtc_vec1 28 | /// @file glm/gtc/vec1.inl 29 | /// @date 2013-03-16 / 2013-03-16 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/gtx/log_base.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_log_base 28 | /// @file glm/gtx/log_base.inl 29 | /// @date 2008-10-24 / 2014-11-25 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | template 36 | GLM_FUNC_QUALIFIER genType log(genType const & x, genType const & base) 37 | { 38 | assert(x != genType(0)); 39 | return glm::log(x) / glm::log(base); 40 | } 41 | 42 | template class vecType> 43 | GLM_FUNC_QUALIFIER vecType log(vecType const & x, vecType const & base) 44 | { 45 | return glm::log(x) / glm::log(base); 46 | } 47 | }//namespace glm 48 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/gtx/mixed_product.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_mixed_product 28 | /// @file glm/gtx/mixed_product.inl 29 | /// @date 2007-04-03 / 2008-09-17 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | template 36 | GLM_FUNC_QUALIFIER T mixedProduct 37 | ( 38 | tvec3 const & v1, 39 | tvec3 const & v2, 40 | tvec3 const & v3 41 | ) 42 | { 43 | return dot(cross(v1, v2), v3); 44 | } 45 | }//namespace glm 46 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/gtx/normal.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_normal 28 | /// @file glm/gtx/normal.inl 29 | /// @date 2005-12-21 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | template 36 | GLM_FUNC_QUALIFIER tvec3 triangleNormal 37 | ( 38 | tvec3 const & p1, 39 | tvec3 const & p2, 40 | tvec3 const & p3 41 | ) 42 | { 43 | return normalize(cross(p1 - p2, p1 - p3)); 44 | } 45 | }//namespace glm 46 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/gtx/number_precision.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_number_precision 28 | /// @file glm/gtx/number_precision.inl 29 | /// @date 2007-05-10 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/gtx/optimum_pow.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_optimum_pow 28 | /// @file glm/gtx/optimum_pow.inl 29 | /// @date 2005-12-21 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | template 36 | GLM_FUNC_QUALIFIER genType pow2(genType const & x) 37 | { 38 | return x * x; 39 | } 40 | 41 | template 42 | GLM_FUNC_QUALIFIER genType pow3(genType const & x) 43 | { 44 | return x * x * x; 45 | } 46 | 47 | template 48 | GLM_FUNC_QUALIFIER genType pow4(genType const & x) 49 | { 50 | return (x * x) * (x * x); 51 | } 52 | }//namespace glm 53 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/gtx/perpendicular.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_perpendicular 28 | /// @file glm/gtx/perpendicular.inl 29 | /// @date 2005-12-21 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | template 36 | GLM_FUNC_QUALIFIER vecType perp 37 | ( 38 | vecType const & x, 39 | vecType const & Normal 40 | ) 41 | { 42 | return x - proj(x, Normal); 43 | } 44 | }//namespace glm 45 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/gtx/projection.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_projection 28 | /// @file glm/gtx/projection.inl 29 | /// @date 2005-12-21 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | template 36 | GLM_FUNC_QUALIFIER vecType proj(vecType const & x, vecType const & Normal) 37 | { 38 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal; 39 | } 40 | }//namespace glm 41 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/gtx/raw_data.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_raw_data 28 | /// @file glm/gtx/raw_data.inl 29 | /// @date 2008-11-19 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/gtx/std_based_type.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtx_std_based_type 28 | /// @file glm/gtx/std_based_type.inl 29 | /// @date 2008-06-08 / 2011-06-07 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/gtx/type_aligned.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref gtc_type_aligned 28 | /// @file glm/gtc/type_aligned.inl 29 | /// @date 2014-11-23 / 2014-11-23 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | namespace glm 34 | { 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/integer.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/integer.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_integer.hpp" 36 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/matrix.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/matrix.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_matrix.hpp" 36 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/packing.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/packing.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_packing.hpp" 36 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/trigonometric.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/trigonometric.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_trigonometric.hpp" 36 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/vec2.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/vec2.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/type_vec2.hpp" 36 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/vec3.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/vec3.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/type_vec3.hpp" 36 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/vec4.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/vec4.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/type_vec4.hpp" 36 | -------------------------------------------------------------------------------- /Dependencies/include/GLM/vector_relational.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// Restrictions: 16 | /// By making use of the Software for military purposes, you choose to make 17 | /// a Bunny unhappy. 18 | /// 19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | /// THE SOFTWARE. 26 | /// 27 | /// @ref core 28 | /// @file glm/vector_relational.hpp 29 | /// @date 2013-12-24 / 2013-12-24 30 | /// @author Christophe Riccio 31 | /////////////////////////////////////////////////////////////////////////////////// 32 | 33 | #pragma once 34 | 35 | #include "detail/func_vector_relational.hpp" 36 | -------------------------------------------------------------------------------- /Dependencies/include/LinearMath/btDefaultMotionState.h: -------------------------------------------------------------------------------- 1 | #ifndef BT_DEFAULT_MOTION_STATE_H 2 | #define BT_DEFAULT_MOTION_STATE_H 3 | 4 | #include "btMotionState.h" 5 | 6 | ///The btDefaultMotionState provides a common implementation to synchronize world transforms with offsets. 7 | ATTRIBUTE_ALIGNED16(struct) btDefaultMotionState : public btMotionState 8 | { 9 | btTransform m_graphicsWorldTrans; 10 | btTransform m_centerOfMassOffset; 11 | btTransform m_startWorldTrans; 12 | void* m_userPointer; 13 | 14 | BT_DECLARE_ALIGNED_ALLOCATOR(); 15 | 16 | btDefaultMotionState(const btTransform& startTrans = btTransform::getIdentity(),const btTransform& centerOfMassOffset = btTransform::getIdentity()) 17 | : m_graphicsWorldTrans(startTrans), 18 | m_centerOfMassOffset(centerOfMassOffset), 19 | m_startWorldTrans(startTrans), 20 | m_userPointer(0) 21 | 22 | { 23 | } 24 | 25 | ///synchronizes world transform from user to physics 26 | virtual void getWorldTransform(btTransform& centerOfMassWorldTrans ) const 27 | { 28 | centerOfMassWorldTrans = m_centerOfMassOffset.inverse() * m_graphicsWorldTrans ; 29 | } 30 | 31 | ///synchronizes world transform from physics to user 32 | ///Bullet only calls the update of worldtransform for active objects 33 | virtual void setWorldTransform(const btTransform& centerOfMassWorldTrans) 34 | { 35 | m_graphicsWorldTrans = centerOfMassWorldTrans * m_centerOfMassOffset ; 36 | } 37 | 38 | 39 | 40 | }; 41 | 42 | #endif //BT_DEFAULT_MOTION_STATE_H 43 | -------------------------------------------------------------------------------- /Dependencies/include/LinearMath/btGeometryUtil.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/ 3 | 4 | This software is provided 'as-is', without any express or implied warranty. 5 | In no event will the authors be held liable for any damages arising from the use of this software. 6 | Permission is granted to anyone to use this software for any purpose, 7 | including commercial applications, and to alter it and redistribute it freely, 8 | subject to the following restrictions: 9 | 10 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 11 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 12 | 3. This notice may not be removed or altered from any source distribution. 13 | */ 14 | 15 | 16 | #ifndef BT_GEOMETRY_UTIL_H 17 | #define BT_GEOMETRY_UTIL_H 18 | 19 | #include "btVector3.h" 20 | #include "btAlignedObjectArray.h" 21 | 22 | ///The btGeometryUtil helper class provides a few methods to convert between plane equations and vertices. 23 | class btGeometryUtil 24 | { 25 | public: 26 | 27 | 28 | static void getPlaneEquationsFromVertices(btAlignedObjectArray& vertices, btAlignedObjectArray& planeEquationsOut ); 29 | 30 | static void getVerticesFromPlaneEquations(const btAlignedObjectArray& planeEquations , btAlignedObjectArray& verticesOut ); 31 | 32 | static bool isInside(const btAlignedObjectArray& vertices, const btVector3& planeNormal, btScalar margin); 33 | 34 | static bool isPointInsidePlanes(const btAlignedObjectArray& planeEquations, const btVector3& point, btScalar margin); 35 | 36 | static bool areVerticesBehindPlane(const btVector3& planeNormal, const btAlignedObjectArray& vertices, btScalar margin); 37 | 38 | }; 39 | 40 | 41 | #endif //BT_GEOMETRY_UTIL_H 42 | 43 | -------------------------------------------------------------------------------- /Dependencies/include/LinearMath/btMinMax.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/ 3 | 4 | This software is provided 'as-is', without any express or implied warranty. 5 | In no event will the authors be held liable for any damages arising from the use of this software. 6 | Permission is granted to anyone to use this software for any purpose, 7 | including commercial applications, and to alter it and redistribute it freely, 8 | subject to the following restrictions: 9 | 10 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 11 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 12 | 3. This notice may not be removed or altered from any source distribution. 13 | */ 14 | 15 | 16 | 17 | #ifndef BT_GEN_MINMAX_H 18 | #define BT_GEN_MINMAX_H 19 | 20 | #include "btScalar.h" 21 | 22 | template 23 | SIMD_FORCE_INLINE const T& btMin(const T& a, const T& b) 24 | { 25 | return a < b ? a : b ; 26 | } 27 | 28 | template 29 | SIMD_FORCE_INLINE const T& btMax(const T& a, const T& b) 30 | { 31 | return a > b ? a : b; 32 | } 33 | 34 | template 35 | SIMD_FORCE_INLINE const T& btClamped(const T& a, const T& lb, const T& ub) 36 | { 37 | return a < lb ? lb : (ub < a ? ub : a); 38 | } 39 | 40 | template 41 | SIMD_FORCE_INLINE void btSetMin(T& a, const T& b) 42 | { 43 | if (b < a) 44 | { 45 | a = b; 46 | } 47 | } 48 | 49 | template 50 | SIMD_FORCE_INLINE void btSetMax(T& a, const T& b) 51 | { 52 | if (a < b) 53 | { 54 | a = b; 55 | } 56 | } 57 | 58 | template 59 | SIMD_FORCE_INLINE void btClamp(T& a, const T& lb, const T& ub) 60 | { 61 | if (a < lb) 62 | { 63 | a = lb; 64 | } 65 | else if (ub < a) 66 | { 67 | a = ub; 68 | } 69 | } 70 | 71 | #endif //BT_GEN_MINMAX_H 72 | -------------------------------------------------------------------------------- /Dependencies/include/LinearMath/btMotionState.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | #ifndef BT_MOTIONSTATE_H 17 | #define BT_MOTIONSTATE_H 18 | 19 | #include "btTransform.h" 20 | 21 | ///The btMotionState interface class allows the dynamics world to synchronize and interpolate the updated world transforms with graphics 22 | ///For optimizations, potentially only moving objects get synchronized (using setWorldPosition/setWorldOrientation) 23 | class btMotionState 24 | { 25 | public: 26 | 27 | virtual ~btMotionState() 28 | { 29 | 30 | } 31 | 32 | virtual void getWorldTransform(btTransform& worldTrans ) const =0; 33 | 34 | //Bullet only calls the update of worldtransform for active objects 35 | virtual void setWorldTransform(const btTransform& worldTrans)=0; 36 | 37 | 38 | }; 39 | 40 | #endif //BT_MOTIONSTATE_H 41 | -------------------------------------------------------------------------------- /Dependencies/include/LinearMath/btRandom.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/ 3 | 4 | This software is provided 'as-is', without any express or implied warranty. 5 | In no event will the authors be held liable for any damages arising from the use of this software. 6 | Permission is granted to anyone to use this software for any purpose, 7 | including commercial applications, and to alter it and redistribute it freely, 8 | subject to the following restrictions: 9 | 10 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 11 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 12 | 3. This notice may not be removed or altered from any source distribution. 13 | */ 14 | 15 | 16 | 17 | #ifndef BT_GEN_RANDOM_H 18 | #define BT_GEN_RANDOM_H 19 | 20 | #ifdef MT19937 21 | 22 | #include 23 | #include 24 | 25 | #define GEN_RAND_MAX UINT_MAX 26 | 27 | SIMD_FORCE_INLINE void GEN_srand(unsigned int seed) { init_genrand(seed); } 28 | SIMD_FORCE_INLINE unsigned int GEN_rand() { return genrand_int32(); } 29 | 30 | #else 31 | 32 | #include 33 | 34 | #define GEN_RAND_MAX RAND_MAX 35 | 36 | SIMD_FORCE_INLINE void GEN_srand(unsigned int seed) { srand(seed); } 37 | SIMD_FORCE_INLINE unsigned int GEN_rand() { return rand(); } 38 | 39 | #endif 40 | 41 | #endif //BT_GEN_RANDOM_H 42 | 43 | -------------------------------------------------------------------------------- /Dependencies/include/LinearMath/premake4.lua: -------------------------------------------------------------------------------- 1 | project "LinearMath" 2 | 3 | kind "StaticLib" 4 | targetdir "../../lib" 5 | includedirs { 6 | "..", 7 | } 8 | files { 9 | "**.cpp", 10 | "**.h" 11 | } -------------------------------------------------------------------------------- /Dependencies/include/MiniCL/MiniCLTask/MiniCLTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library, Copyright (c) 2007 Erwin Coumans 3 | 4 | This software is provided 'as-is', without any express or implied warranty. 5 | In no event will the authors be held liable for any damages arising from the use of this software. 6 | Permission is granted to anyone to use this software for any purpose, 7 | including commercial applications, and to alter it and redistribute it freely, 8 | subject to the following restrictions: 9 | 10 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 11 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 12 | 3. This notice may not be removed or altered from any source distribution. 13 | 14 | */ 15 | 16 | #ifndef MINICL__TASK_H 17 | #define MINICL__TASK_H 18 | 19 | #include "BulletMultiThreaded/PlatformDefinitions.h" 20 | #include "LinearMath/btScalar.h" 21 | 22 | #include "LinearMath/btAlignedAllocator.h" 23 | 24 | 25 | #define MINICL_MAX_ARGLENGTH (sizeof(void*)) 26 | #define MINI_CL_MAX_ARG 16 27 | #define MINI_CL_MAX_KERNEL_NAME 256 28 | 29 | struct MiniCLKernel; 30 | 31 | ATTRIBUTE_ALIGNED16(struct) MiniCLTaskDesc 32 | { 33 | BT_DECLARE_ALIGNED_ALLOCATOR(); 34 | 35 | MiniCLTaskDesc() 36 | { 37 | for (int i=0;i 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | 22 | /** 23 | * \file SDL_clipboard.h 24 | * 25 | * Include file for SDL clipboard handling 26 | */ 27 | 28 | #ifndef _SDL_clipboard_h 29 | #define _SDL_clipboard_h 30 | 31 | #include "SDL_stdinc.h" 32 | 33 | #include "begin_code.h" 34 | /* Set up for C function definitions, even when using C++ */ 35 | #ifdef __cplusplus 36 | extern "C" { 37 | #endif 38 | 39 | /* Function prototypes */ 40 | 41 | /** 42 | * \brief Put UTF-8 text into the clipboard 43 | * 44 | * \sa SDL_GetClipboardText() 45 | */ 46 | extern DECLSPEC int SDLCALL SDL_SetClipboardText(const char *text); 47 | 48 | /** 49 | * \brief Get UTF-8 text from the clipboard, which must be freed with SDL_free() 50 | * 51 | * \sa SDL_SetClipboardText() 52 | */ 53 | extern DECLSPEC char * SDLCALL SDL_GetClipboardText(void); 54 | 55 | /** 56 | * \brief Returns a flag indicating whether the clipboard exists and contains a text string that is non-empty 57 | * 58 | * \sa SDL_GetClipboardText() 59 | */ 60 | extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void); 61 | 62 | 63 | /* Ends C function definitions when using C++ */ 64 | #ifdef __cplusplus 65 | } 66 | #endif 67 | #include "close_code.h" 68 | 69 | #endif /* _SDL_clipboard_h */ 70 | 71 | /* vi: set ts=4 sw=4 expandtab: */ 72 | -------------------------------------------------------------------------------- /Dependencies/include/SDL2/SDL_name.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2016 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | 22 | #ifndef _SDLname_h_ 23 | #define _SDLname_h_ 24 | 25 | #if defined(__STDC__) || defined(__cplusplus) 26 | #define NeedFunctionPrototypes 1 27 | #endif 28 | 29 | #define SDL_NAME(X) SDL_##X 30 | 31 | #endif /* _SDLname_h_ */ 32 | 33 | /* vi: set ts=4 sw=4 expandtab: */ 34 | -------------------------------------------------------------------------------- /Dependencies/include/SDL2/SDL_opengles.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2016 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | 22 | /** 23 | * \file SDL_opengles.h 24 | * 25 | * This is a simple file to encapsulate the OpenGL ES 1.X API headers. 26 | */ 27 | #include "SDL_config.h" 28 | 29 | #ifdef __IPHONEOS__ 30 | #include 31 | #include 32 | #else 33 | #include 34 | #include 35 | #endif 36 | 37 | #ifndef APIENTRY 38 | #define APIENTRY 39 | #endif 40 | -------------------------------------------------------------------------------- /Dependencies/include/SDL2/SDL_opengles2.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2016 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | 22 | /** 23 | * \file SDL_opengles2.h 24 | * 25 | * This is a simple file to encapsulate the OpenGL ES 2.0 API headers. 26 | */ 27 | #include "SDL_config.h" 28 | 29 | #ifndef _MSC_VER 30 | 31 | #ifdef __IPHONEOS__ 32 | #include 33 | #include 34 | #else 35 | #include 36 | #include 37 | #include 38 | #endif 39 | 40 | #else /* _MSC_VER */ 41 | 42 | /* OpenGL ES2 headers for Visual Studio */ 43 | #include "SDL_opengles2_khrplatform.h" 44 | #include "SDL_opengles2_gl2platform.h" 45 | #include "SDL_opengles2_gl2.h" 46 | #include "SDL_opengles2_gl2ext.h" 47 | 48 | #endif /* _MSC_VER */ 49 | 50 | #ifndef APIENTRY 51 | #define APIENTRY GL_APIENTRY 52 | #endif 53 | -------------------------------------------------------------------------------- /Dependencies/include/SDL2/SDL_opengles2_gl2platform.h: -------------------------------------------------------------------------------- 1 | #ifndef __gl2platform_h_ 2 | #define __gl2platform_h_ 3 | 4 | /* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */ 5 | 6 | /* 7 | * This document is licensed under the SGI Free Software B License Version 8 | * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . 9 | */ 10 | 11 | /* Platform-specific types and definitions for OpenGL ES 2.X gl2.h 12 | * 13 | * Adopters may modify khrplatform.h and this file to suit their platform. 14 | * You are encouraged to submit all modifications to the Khronos group so that 15 | * they can be included in future versions of this file. Please submit changes 16 | * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) 17 | * by filing a bug against product "OpenGL-ES" component "Registry". 18 | */ 19 | 20 | /*#include */ 21 | 22 | #ifndef GL_APICALL 23 | #define GL_APICALL KHRONOS_APICALL 24 | #endif 25 | 26 | #ifndef GL_APIENTRY 27 | #define GL_APIENTRY KHRONOS_APIENTRY 28 | #endif 29 | 30 | #endif /* __gl2platform_h_ */ 31 | -------------------------------------------------------------------------------- /Dependencies/include/SDL2/SDL_revision.h: -------------------------------------------------------------------------------- 1 | #define SDL_REVISION "hg-10556:007dfe83abf8" 2 | #define SDL_REVISION_NUMBER 10556 3 | -------------------------------------------------------------------------------- /Dependencies/include/SDL2/SDL_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2016 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | 22 | /** 23 | * \file SDL_test.h 24 | * 25 | * Include file for SDL test framework. 26 | * 27 | * This code is a part of the SDL2_test library, not the main SDL library. 28 | */ 29 | 30 | #ifndef _SDL_test_h 31 | #define _SDL_test_h 32 | 33 | #include "SDL.h" 34 | #include "SDL_test_common.h" 35 | #include "SDL_test_font.h" 36 | #include "SDL_test_random.h" 37 | #include "SDL_test_fuzzer.h" 38 | #include "SDL_test_crc32.h" 39 | #include "SDL_test_md5.h" 40 | #include "SDL_test_log.h" 41 | #include "SDL_test_assert.h" 42 | #include "SDL_test_harness.h" 43 | #include "SDL_test_images.h" 44 | #include "SDL_test_compare.h" 45 | 46 | #include "begin_code.h" 47 | /* Set up for C function definitions, even when using C++ */ 48 | #ifdef __cplusplus 49 | extern "C" { 50 | #endif 51 | 52 | /* Global definitions */ 53 | 54 | /* 55 | * Note: Maximum size of SDLTest log message is less than SDL's limit 56 | * to ensure we can fit additional information such as the timestamp. 57 | */ 58 | #define SDLTEST_MAX_LOGMESSAGE_LENGTH 3584 59 | 60 | /* Ends C function definitions when using C++ */ 61 | #ifdef __cplusplus 62 | } 63 | #endif 64 | #include "close_code.h" 65 | 66 | #endif /* _SDL_test_h */ 67 | 68 | /* vi: set ts=4 sw=4 expandtab: */ 69 | -------------------------------------------------------------------------------- /Dependencies/include/SDL2/SDL_test_log.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2016 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | 22 | /** 23 | * \file SDL_test_log.h 24 | * 25 | * Include file for SDL test framework. 26 | * 27 | * This code is a part of the SDL2_test library, not the main SDL library. 28 | */ 29 | 30 | /* 31 | * 32 | * Wrapper to log in the TEST category 33 | * 34 | */ 35 | 36 | #ifndef _SDL_test_log_h 37 | #define _SDL_test_log_h 38 | 39 | #include "begin_code.h" 40 | /* Set up for C function definitions, even when using C++ */ 41 | #ifdef __cplusplus 42 | extern "C" { 43 | #endif 44 | 45 | /** 46 | * \brief Prints given message with a timestamp in the TEST category and INFO priority. 47 | * 48 | * \param fmt Message to be logged 49 | */ 50 | void SDLTest_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); 51 | 52 | /** 53 | * \brief Prints given message with a timestamp in the TEST category and the ERROR priority. 54 | * 55 | * \param fmt Message to be logged 56 | */ 57 | void SDLTest_LogError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); 58 | 59 | /* Ends C function definitions when using C++ */ 60 | #ifdef __cplusplus 61 | } 62 | #endif 63 | #include "close_code.h" 64 | 65 | #endif /* _SDL_test_log_h */ 66 | 67 | /* vi: set ts=4 sw=4 expandtab: */ 68 | -------------------------------------------------------------------------------- /Dependencies/include/SDL2/SDL_types.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2016 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | 22 | /** 23 | * \file SDL_types.h 24 | * 25 | * \deprecated 26 | */ 27 | 28 | /* DEPRECATED */ 29 | #include "SDL_stdinc.h" 30 | -------------------------------------------------------------------------------- /Dependencies/include/SDL2/close_code.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2016 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | 22 | /** 23 | * \file close_code.h 24 | * 25 | * This file reverses the effects of begin_code.h and should be included 26 | * after you finish any function and structure declarations in your headers 27 | */ 28 | 29 | #undef _begin_code_h 30 | 31 | /* Reset structure packing at previous byte alignment */ 32 | #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__WATCOMC__) || defined(__BORLANDC__) 33 | #ifdef __BORLANDC__ 34 | #pragma nopackwarning 35 | #endif 36 | #pragma pack(pop) 37 | #endif /* Compiler needs structure packing set */ 38 | -------------------------------------------------------------------------------- /Dependencies/include/align.h: -------------------------------------------------------------------------------- 1 | #ifndef AL_ALIGN_H 2 | #define AL_ALIGN_H 3 | 4 | #if defined(HAVE_STDALIGN_H) && defined(HAVE_C11_ALIGNAS) 5 | #include 6 | #endif 7 | 8 | #ifndef alignas 9 | #if defined(IN_IDE_PARSER) 10 | /* KDevelop has problems with our align macro, so just use nothing for parsing. */ 11 | #define alignas(x) 12 | #elif defined(HAVE_C11_ALIGNAS) 13 | #define alignas _Alignas 14 | #else 15 | /* NOTE: Our custom ALIGN macro can't take a type name like alignas can. For 16 | * maximum compatibility, only provide constant integer values to alignas. */ 17 | #define alignas(_x) ALIGN(_x) 18 | #endif 19 | #endif 20 | 21 | #endif /* AL_ALIGN_H */ 22 | -------------------------------------------------------------------------------- /Dependencies/include/almalloc.h: -------------------------------------------------------------------------------- 1 | #ifndef AL_MALLOC_H 2 | #define AL_MALLOC_H 3 | 4 | #include 5 | 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | 10 | void *al_malloc(size_t alignment, size_t size); 11 | void *al_calloc(size_t alignment, size_t size); 12 | void al_free(void *ptr); 13 | 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | 18 | #endif /* AL_MALLOC_H */ 19 | -------------------------------------------------------------------------------- /Dependencies/include/bool.h: -------------------------------------------------------------------------------- 1 | #ifndef AL_BOOL_H 2 | #define AL_BOOL_H 3 | 4 | #ifdef HAVE_STDBOOL_H 5 | #include 6 | #endif 7 | 8 | #ifndef bool 9 | #ifdef HAVE_C99_BOOL 10 | #define bool _Bool 11 | #else 12 | #define bool int 13 | #endif 14 | #define false 0 15 | #define true 1 16 | #endif 17 | 18 | #endif /* AL_BOOL_H */ 19 | -------------------------------------------------------------------------------- /Dependencies/include/math_defs.h: -------------------------------------------------------------------------------- 1 | #ifndef AL_MATH_DEFS_H 2 | #define AL_MATH_DEFS_H 3 | 4 | #ifdef HAVE_FLOAT_H 5 | #include 6 | #endif 7 | 8 | #define F_PI (3.14159265358979323846f) 9 | #define F_PI_2 (1.57079632679489661923f) 10 | #define F_TAU (6.28318530717958647692f) 11 | 12 | #ifndef FLT_EPSILON 13 | #define FLT_EPSILON (1.19209290e-07f) 14 | #endif 15 | 16 | #define DEG2RAD(x) ((ALfloat)(x) * (F_PI/180.0f)) 17 | #define RAD2DEG(x) ((ALfloat)(x) * (180.0f/F_PI)) 18 | 19 | #endif /* AL_MATH_DEFS_H */ 20 | -------------------------------------------------------------------------------- /Dependencies/include/rwlock.h: -------------------------------------------------------------------------------- 1 | #ifndef AL_RWLOCK_H 2 | #define AL_RWLOCK_H 3 | 4 | #include "bool.h" 5 | #include "atomic.h" 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | typedef struct { 12 | RefCount read_count; 13 | RefCount write_count; 14 | ATOMIC_FLAG read_lock; 15 | ATOMIC_FLAG read_entry_lock; 16 | ATOMIC_FLAG write_lock; 17 | } RWLock; 18 | #define RWLOCK_STATIC_INITIALIZE { ATOMIC_INIT_STATIC(0), ATOMIC_INIT_STATIC(0), \ 19 | ATOMIC_FLAG_INIT, ATOMIC_FLAG_INIT, ATOMIC_FLAG_INIT } 20 | 21 | void RWLockInit(RWLock *lock); 22 | void ReadLock(RWLock *lock); 23 | void ReadUnlock(RWLock *lock); 24 | void WriteLock(RWLock *lock); 25 | void WriteUnlock(RWLock *lock); 26 | 27 | #ifdef __cplusplus 28 | } 29 | #endif 30 | 31 | #endif /* AL_RWLOCK_H */ 32 | -------------------------------------------------------------------------------- /Dependencies/include/static_assert.h: -------------------------------------------------------------------------------- 1 | #ifndef AL_STATIC_ASSERT_H 2 | #define AL_STATIC_ASSERT_H 3 | 4 | #include 5 | 6 | 7 | #ifndef static_assert 8 | #ifdef HAVE_C11_STATIC_ASSERT 9 | #define static_assert _Static_assert 10 | #else 11 | #define CTASTR2(_pre,_post) _pre##_post 12 | #define CTASTR(_pre,_post) CTASTR2(_pre,_post) 13 | #if defined(__COUNTER__) 14 | #define static_assert(_cond, _msg) typedef struct { int CTASTR(static_assert_failed_at_line_,__LINE__) : !!(_cond); } CTASTR(static_assertion_,__COUNTER__) 15 | #else 16 | #define static_assert(_cond, _msg) struct { int CTASTR(static_assert_failed_at_line_,__LINE__) : !!(_cond); } 17 | #endif 18 | #endif 19 | #endif 20 | 21 | #endif /* AL_STATIC_ASSERT_H */ 22 | -------------------------------------------------------------------------------- /Dependencies/include/uintmap.h: -------------------------------------------------------------------------------- 1 | #ifndef AL_UINTMAP_H 2 | #define AL_UINTMAP_H 3 | 4 | #include "AL/al.h" 5 | #include "rwlock.h" 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | typedef struct UIntMap { 12 | ALuint *keys; 13 | /* Shares memory with keys. */ 14 | ALvoid **values; 15 | 16 | ALsizei size; 17 | ALsizei capacity; 18 | ALsizei limit; 19 | RWLock lock; 20 | } UIntMap; 21 | #define UINTMAP_STATIC_INITIALIZE_N(_n) { NULL, NULL, 0, 0, (_n), RWLOCK_STATIC_INITIALIZE } 22 | #define UINTMAP_STATIC_INITIALIZE UINTMAP_STATIC_INITIALIZE_N(~0) 23 | 24 | void InitUIntMap(UIntMap *map, ALsizei limit); 25 | void ResetUIntMap(UIntMap *map); 26 | ALenum InsertUIntMapEntry(UIntMap *map, ALuint key, ALvoid *value); 27 | ALvoid *RemoveUIntMapKey(UIntMap *map, ALuint key); 28 | ALvoid *RemoveUIntMapKeyNoLock(UIntMap *map, ALuint key); 29 | ALvoid *LookupUIntMapKey(UIntMap *map, ALuint key); 30 | ALvoid *LookupUIntMapKeyNoLock(UIntMap *map, ALuint key); 31 | 32 | inline void LockUIntMapRead(UIntMap *map) 33 | { ReadLock(&map->lock); } 34 | inline void UnlockUIntMapRead(UIntMap *map) 35 | { ReadUnlock(&map->lock); } 36 | inline void LockUIntMapWrite(UIntMap *map) 37 | { WriteLock(&map->lock); } 38 | inline void UnlockUIntMapWrite(UIntMap *map) 39 | { WriteUnlock(&map->lock); } 40 | 41 | #ifdef __cplusplus 42 | } 43 | #endif 44 | 45 | #endif /* AL_UINTMAP_H */ 46 | -------------------------------------------------------------------------------- /Dependencies/include/vectormath/vmInclude.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __VM_INCLUDE_H 3 | #define __VM_INCLUDE_H 4 | 5 | #include "LinearMath/btScalar.h" 6 | 7 | #if defined (USE_SYSTEM_VECTORMATH) || defined (__CELLOS_LV2__) 8 | #include 9 | #else //(USE_SYSTEM_VECTORMATH) 10 | #if defined (BT_USE_SSE) 11 | #include "sse/vectormath_aos.h" 12 | #else //all other platforms 13 | #if defined (BT_USE_NEON) 14 | #include "neon/vectormath_aos.h" 15 | #else 16 | #include "scalar/vectormath_aos.h" 17 | #endif 18 | #endif //(BT_USE_SSE) && defined (_WIN32) 19 | #endif //(USE_SYSTEM_VECTORMATH) 20 | 21 | 22 | 23 | typedef Vectormath::Aos::Vector3 vmVector3; 24 | typedef Vectormath::Aos::Quat vmQuat; 25 | typedef Vectormath::Aos::Matrix3 vmMatrix3; 26 | typedef Vectormath::Aos::Transform3 vmTransform3; 27 | typedef Vectormath::Aos::Point3 vmPoint3; 28 | 29 | #endif //__VM_INCLUDE_H 30 | 31 | 32 | -------------------------------------------------------------------------------- /Dependencies/lib/libBulletCollision.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libBulletCollision.a -------------------------------------------------------------------------------- /Dependencies/lib/libBulletDynamics.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libBulletDynamics.a -------------------------------------------------------------------------------- /Dependencies/lib/libBulletSoftBody.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libBulletSoftBody.a -------------------------------------------------------------------------------- /Dependencies/lib/libLinearMath.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libLinearMath.a -------------------------------------------------------------------------------- /Dependencies/lib/libOpenAL32.dll.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libOpenAL32.dll.a -------------------------------------------------------------------------------- /Dependencies/lib/libSDL2.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libSDL2.a -------------------------------------------------------------------------------- /Dependencies/lib/libSDL2.dll.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libSDL2.dll.a -------------------------------------------------------------------------------- /Dependencies/lib/libSDL2.la: -------------------------------------------------------------------------------- 1 | # libSDL2.la - a libtool library file 2 | # Generated by libtool (GNU libtool) 2.4.2 3 | # 4 | # Please DO NOT delete this file! 5 | # It is necessary for linking the library. 6 | 7 | # The name that we can dlopen(3). 8 | dlname='../bin/SDL2.dll' 9 | 10 | # Names of this library. 11 | library_names='libSDL2.dll.a' 12 | 13 | # The name of the static archive. 14 | old_library='libSDL2.a' 15 | 16 | # Linker flags that can not go in dependency_libs. 17 | inherited_linker_flags='' 18 | 19 | # Libraries that this one depends upon. 20 | dependency_libs=' -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid' 21 | 22 | # Names of additional weak libraries provided by this library 23 | weak_library_names='' 24 | 25 | # Version information for libSDL2. 26 | current=4 27 | age=4 28 | revision=1 29 | 30 | # Is this an already installed library? 31 | installed=yes 32 | 33 | # Should we warn about portability when linking against -modules? 34 | shouldnotlink=no 35 | 36 | # Files to dlopen/dlpreopen 37 | dlopen='' 38 | dlpreopen='' 39 | 40 | # Directory that this library needs to be installed in: 41 | libdir='/Users/slouken/release/SDL/SDL2-2.0.5/i686-w64-mingw32/lib' 42 | -------------------------------------------------------------------------------- /Dependencies/lib/libSDL2_image.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libSDL2_image.a -------------------------------------------------------------------------------- /Dependencies/lib/libSDL2_image.dll.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libSDL2_image.dll.a -------------------------------------------------------------------------------- /Dependencies/lib/libSDL2_image.la: -------------------------------------------------------------------------------- 1 | # libSDL2_image.la - a libtool library file 2 | # Generated by ltmain.sh (GNU libtool) 2.2.6 3 | # 4 | # Please DO NOT delete this file! 5 | # It is necessary for linking the library. 6 | 7 | # The name that we can dlopen(3). 8 | dlname='../bin/SDL2_image.dll' 9 | 10 | # Names of this library. 11 | library_names='libSDL2_image.dll.a' 12 | 13 | # The name of the static archive. 14 | old_library='libSDL2_image.a' 15 | 16 | # Linker flags that can not go in dependency_libs. 17 | inherited_linker_flags='' 18 | 19 | # Libraries that this one depends upon. 20 | dependency_libs=' -L/usr/local/cross-tools/i686-w64-mingw32/lib -lmingw32 -lSDL2main /usr/local/cross-tools/i686-w64-mingw32/lib/libSDL2.la -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid' 21 | 22 | # Names of additional weak libraries provided by this library 23 | weak_library_names='' 24 | 25 | # Version information for libSDL2_image. 26 | current=0 27 | age=0 28 | revision=1 29 | 30 | # Is this an already installed library? 31 | installed=yes 32 | 33 | # Should we warn about portability when linking against -modules? 34 | shouldnotlink=no 35 | 36 | # Files to dlopen/dlpreopen 37 | dlopen='' 38 | dlpreopen='' 39 | 40 | # Directory that this library needs to be installed in: 41 | libdir='/Users/slouken/release/SDL_image/SDL2_image-2.0.1/i686-w64-mingw32/lib' 42 | -------------------------------------------------------------------------------- /Dependencies/lib/libSDL2_test.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libSDL2_test.a -------------------------------------------------------------------------------- /Dependencies/lib/libSDL2_ttf.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libSDL2_ttf.a -------------------------------------------------------------------------------- /Dependencies/lib/libSDL2_ttf.dll.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libSDL2_ttf.dll.a -------------------------------------------------------------------------------- /Dependencies/lib/libSDL2_ttf.la: -------------------------------------------------------------------------------- 1 | # libSDL2_ttf.la - a libtool library file 2 | # Generated by ltmain.sh (GNU libtool) 2.2.6 3 | # 4 | # Please DO NOT delete this file! 5 | # It is necessary for linking the library. 6 | 7 | # The name that we can dlopen(3). 8 | dlname='../bin/SDL2_ttf.dll' 9 | 10 | # Names of this library. 11 | library_names='libSDL2_ttf.dll.a' 12 | 13 | # The name of the static archive. 14 | old_library='libSDL2_ttf.a' 15 | 16 | # Linker flags that can not go in dependency_libs. 17 | inherited_linker_flags='' 18 | 19 | # Libraries that this one depends upon. 20 | dependency_libs=' -L/usr/local/cross-tools/i686-w64-mingw32/lib /usr/local/cross-tools/i686-w64-mingw32/lib/libfreetype.la -lz -lmingw32 -lSDL2main /usr/local/cross-tools/i686-w64-mingw32/lib/libSDL2.la -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid' 21 | 22 | # Names of additional weak libraries provided by this library 23 | weak_library_names='' 24 | 25 | # Version information for libSDL2_ttf. 26 | current=14 27 | age=14 28 | revision=0 29 | 30 | # Is this an already installed library? 31 | installed=yes 32 | 33 | # Should we warn about portability when linking against -modules? 34 | shouldnotlink=no 35 | 36 | # Files to dlopen/dlpreopen 37 | dlopen='' 38 | dlpreopen='' 39 | 40 | # Directory that this library needs to be installed in: 41 | libdir='/Users/slouken/release/SDL_ttf/SDL2_ttf-2.0.14/i686-w64-mingw32/lib' 42 | -------------------------------------------------------------------------------- /Dependencies/lib/libSDL2main.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libSDL2main.a -------------------------------------------------------------------------------- /Dependencies/lib/libglew32.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libglew32.a -------------------------------------------------------------------------------- /Dependencies/lib/libglew32.dll.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libglew32.dll.a -------------------------------------------------------------------------------- /Dependencies/lib/libglew32mx.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libglew32mx.a -------------------------------------------------------------------------------- /Dependencies/lib/libglew32mx.dll.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libglew32mx.dll.a -------------------------------------------------------------------------------- /Dependencies/lib/libglu32.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kbrawley95/VSCode-OpenGL-Game-Engine/3ff0ce6a938a5365086060e2479c403f7f7b3a13/Dependencies/lib/libglu32.a -------------------------------------------------------------------------------- /common.h: -------------------------------------------------------------------------------- 1 | #ifndef _COMMON_H 2 | #define _COMMON_H 3 | 4 | /*=======STANDARD TEMPLATE LIBRARY=======*/ 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | using namespace std; 13 | 14 | /*=======GLU/GLEW=======*/ 15 | #include 16 | #include 17 | #include 18 | 19 | /*=======SDL2=======*/ 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | /*=======CLASS DEFINITIONS=======*/ 26 | 27 | 28 | #endif -------------------------------------------------------------------------------- /main.cpp: -------------------------------------------------------------------------------- 1 | #include "common.h" 2 | 3 | bool isRunning = true; 4 | 5 | int main(int argc, char* argv[]) 6 | { 7 | //Error Checking/Initialisation 8 | if (SDL_Init(SDL_INIT_NOPARACHUTE & SDL_INIT_EVERYTHING) != 0) { 9 | SDL_Log("Unable to initialize SDL: %s\n", SDL_GetError()); 10 | return -1; 11 | } 12 | else 13 | { 14 | //Specify OpenGL Version (4.2) 15 | SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 4); 16 | SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2); 17 | SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); 18 | SDL_Log("SDL Initialised"); 19 | } 20 | 21 | //Create Window Instance 22 | SDL_Window* window = SDL_CreateWindow( 23 | "Game Engine", 24 | SDL_WINDOWPOS_CENTERED, 25 | SDL_WINDOWPOS_CENTERED, 26 | 640, 27 | 480, 28 | SDL_WINDOW_OPENGL 29 | ); 30 | 31 | //Check that the window was succesfully created 32 | if(window == NULL) 33 | { 34 | //Print error, if null 35 | printf("Could not create window: %s\n", SDL_GetError()); 36 | return 1; 37 | } 38 | else 39 | SDL_Log("Window Successful Generated"); 40 | 41 | 42 | //Map OpenGL Context to Window 43 | SDL_GLContext glContext = SDL_GL_CreateContext(window); 44 | 45 | //Render 46 | 47 | //Swap Render Buffers 48 | SDL_GL_SwapWindow(window); 49 | 50 | //Free up resources 51 | SDL_GL_DeleteContext(glContext); 52 | SDL_Quit(); 53 | 54 | 55 | return 0; 56 | } --------------------------------------------------------------------------------