├── .gitignore ├── .gitmodules ├── CMakeLists.txt ├── LICENSE ├── README.md ├── cmake ├── FindBullet.cmake ├── FindGLEW.cmake ├── FindSDL2.cmake ├── FindSDL2_IMAGE.cmake ├── FindSDL2_mixer.cmake └── Findassimp.cmake ├── project ├── 3D_Scenegraph │ ├── BulletDebugDrawSRE.cpp │ ├── BulletDebugDrawSRE.hpp │ ├── BulletPhysics.cpp │ ├── BulletPhysics.hpp │ ├── CMakeLists.txt │ ├── Camera.cpp │ ├── Camera.hpp │ ├── CollisionHandler.hpp │ ├── Component.cpp │ ├── Component.hpp │ ├── GameObject.cpp │ ├── GameObject.hpp │ ├── Light.cpp │ ├── Light.hpp │ ├── MeshRenderer.cpp │ ├── MeshRenderer.hpp │ ├── Ray.hpp │ ├── Renderable.hpp │ ├── RigidBody.cpp │ ├── RigidBody.hpp │ ├── Scene.cpp │ ├── Scene.hpp │ ├── Transform.cpp │ ├── Transform.hpp │ ├── Updatable.hpp │ ├── assets │ │ └── todo │ └── main.cpp ├── Box2DTestbed │ ├── CMakeLists.txt │ ├── Data │ │ └── DroidSans.ttf │ ├── Framework │ │ ├── DebugDraw.cpp │ │ ├── DebugDraw.h │ │ ├── Main.cpp │ │ ├── Test.cpp │ │ └── Test.h │ └── Tests │ │ ├── AddPair.h │ │ ├── ApplyForce.h │ │ ├── BasicSliderCrank.h │ │ ├── BodyTypes.h │ │ ├── Breakable.h │ │ ├── Bridge.h │ │ ├── BulletTest.h │ │ ├── Cantilever.h │ │ ├── Car.h │ │ ├── Chain.h │ │ ├── CharacterCollision.h │ │ ├── CollisionFiltering.h │ │ ├── CollisionProcessing.h │ │ ├── CompoundShapes.h │ │ ├── Confined.h │ │ ├── ContinuousTest.h │ │ ├── ConvexHull.h │ │ ├── ConveyorBelt.h │ │ ├── DistanceTest.h │ │ ├── Dominos.h │ │ ├── DumpShell.h │ │ ├── DynamicTreeTest.h │ │ ├── EdgeShapes.h │ │ ├── EdgeTest.h │ │ ├── FooTest.cpp │ │ ├── FooTest.h │ │ ├── Gears.h │ │ ├── HeavyOnLight.h │ │ ├── HeavyOnLightTwo.h │ │ ├── Mobile.h │ │ ├── MobileBalanced.h │ │ ├── MotorJoint.h │ │ ├── OneSidedPlatform.h │ │ ├── Pinball.h │ │ ├── PolyCollision.h │ │ ├── PolyShapes.h │ │ ├── Prismatic.h │ │ ├── Pulleys.h │ │ ├── Pyramid.h │ │ ├── RayCast.h │ │ ├── Revolute.h │ │ ├── Rope.h │ │ ├── RopeJoint.h │ │ ├── SensorTest.h │ │ ├── ShapeEditing.h │ │ ├── SliderCrank.h │ │ ├── SphereStack.h │ │ ├── TestEntries.cpp │ │ ├── TheoJansen.h │ │ ├── Tiles.h │ │ ├── TimeOfImpact.h │ │ ├── Tumbler.h │ │ ├── VaryingFriction.h │ │ ├── VaryingRestitution.h │ │ ├── VerticalStack.h │ │ └── Web.h ├── BussIK │ ├── BussIKMain.cpp │ └── CMakeLists.txt ├── CMakeLists.txt ├── assimp.cpp ├── box2d-example.cpp ├── box2d-platform-example.cpp ├── bullet-example.cpp ├── gui │ ├── CMakeLists.txt │ ├── CameraComponent.cpp │ ├── CameraComponent.hpp │ ├── Component.cpp │ ├── Component.hpp │ ├── GameObject.cpp │ ├── GameObject.hpp │ ├── Hero.cpp │ ├── Hero.hpp │ ├── MainMenuComponent.cpp │ ├── MainMenuComponent.h │ ├── RPG.cpp │ ├── RPG.h │ ├── Scene.cpp │ ├── Scene.h │ ├── SpriteComponent.cpp │ ├── SpriteComponent.hpp │ └── assets │ │ ├── Antidote.png │ │ ├── Arkanos_0.png │ │ ├── Axe.png │ │ ├── BlueMagic.png │ │ ├── Carrot.png │ │ ├── Goblin.png │ │ ├── Hat.png │ │ ├── Lemon.png │ │ ├── Necklace.png │ │ ├── ProggyTiny.ttf │ │ ├── Shield.png │ │ ├── hud_heartEmpty.png │ │ ├── hud_heartFull.png │ │ ├── hud_heartHalf.png │ │ ├── license.txt │ │ ├── play.png │ │ ├── powerbar.png │ │ └── settings.png ├── lua-example-lines.cpp ├── lua-example.cpp ├── node-editor.cpp ├── particle_system │ ├── CMakeLists.txt │ ├── Particle.cpp │ ├── Particle.hpp │ ├── ParticleSystem.cpp │ ├── ParticleSystem.hpp │ ├── main.cpp │ └── particle-pack-01 │ │ ├── ember01.png │ │ ├── explosionstreak01.png │ │ ├── explosionstreak02.png │ │ ├── explosionstreak03.png │ │ ├── flash01.png │ │ ├── licence.txt │ │ ├── shockwave01.png │ │ ├── smalljunk01.png │ │ ├── smalljunk02.png │ │ ├── smalljunk03.png │ │ ├── smoke01.png │ │ ├── spark01.png │ │ ├── spark02.png │ │ ├── sparkle01.png │ │ └── trail01.png ├── platformer │ ├── BirdMovementComponent.cpp │ ├── BirdMovementComponent.hpp │ ├── Box2DDebugDraw.cpp │ ├── Box2DDebugDraw.hpp │ ├── CMakeLists.txt │ ├── CharacterController.cpp │ ├── CharacterController.hpp │ ├── Component.cpp │ ├── Component.hpp │ ├── GameObject.cpp │ ├── GameObject.hpp │ ├── Level.cpp │ ├── Level.hpp │ ├── MovingPlatformComponent.cpp │ ├── MovingPlatformComponent.hpp │ ├── PhysicsComponent.cpp │ ├── PhysicsComponent.hpp │ ├── PlatformComponent.cpp │ ├── PlatformComponent.hpp │ ├── PlatformerGame.cpp │ ├── PlatformerGame.hpp │ ├── SideScrollingCamera.cpp │ ├── SideScrollingCamera.hpp │ ├── SpriteComponent.cpp │ ├── SpriteComponent.hpp │ ├── license.txt │ ├── main.cpp │ ├── platformer-art-deluxe.json │ └── platformer-art-deluxe.png ├── project.cpp ├── scene-graph.cpp └── sdl2_mixer-example.cpp ├── project_data ├── beat.wav ├── high.wav ├── low.wav ├── medium.wav └── scratch.wav ├── thirdparty ├── All │ └── include │ │ ├── SOL_license.txt │ │ ├── Sol2 2.18.1 docs │ │ ├── doctrees │ │ │ ├── api │ │ │ │ ├── api-top.doctree │ │ │ │ ├── as_args.doctree │ │ │ │ ├── as_container.doctree │ │ │ │ ├── as_function.doctree │ │ │ │ ├── as_returns.doctree │ │ │ │ ├── as_table.doctree │ │ │ │ ├── c_call.doctree │ │ │ │ ├── compatibility.doctree │ │ │ │ ├── containers.doctree │ │ │ │ ├── coroutine.doctree │ │ │ │ ├── environment.doctree │ │ │ │ ├── error.doctree │ │ │ │ ├── filters.doctree │ │ │ │ ├── function.doctree │ │ │ │ ├── make_reference.doctree │ │ │ │ ├── metatable_key.doctree │ │ │ │ ├── nested.doctree │ │ │ │ ├── new_table.doctree │ │ │ │ ├── object.doctree │ │ │ │ ├── optional.doctree │ │ │ │ ├── overload.doctree │ │ │ │ ├── property.doctree │ │ │ │ ├── protect.doctree │ │ │ │ ├── protected_function.doctree │ │ │ │ ├── proxy.doctree │ │ │ │ ├── readonly.doctree │ │ │ │ ├── reference.doctree │ │ │ │ ├── resolve.doctree │ │ │ │ ├── simple_usertype.doctree │ │ │ │ ├── stack.doctree │ │ │ │ ├── stack_reference.doctree │ │ │ │ ├── state.doctree │ │ │ │ ├── table.doctree │ │ │ │ ├── this_environment.doctree │ │ │ │ ├── this_state.doctree │ │ │ │ ├── thread.doctree │ │ │ │ ├── tie.doctree │ │ │ │ ├── types.doctree │ │ │ │ ├── unique_usertype_traits.doctree │ │ │ │ ├── user.doctree │ │ │ │ ├── userdata.doctree │ │ │ │ ├── usertype.doctree │ │ │ │ ├── usertype_memory.doctree │ │ │ │ ├── var.doctree │ │ │ │ ├── variadic_args.doctree │ │ │ │ └── variadic_results.doctree │ │ │ ├── benchmarks.doctree │ │ │ ├── cmake.doctree │ │ │ ├── codecvt.doctree │ │ │ ├── compilation.doctree │ │ │ ├── containers.doctree │ │ │ ├── environment.pickle │ │ │ ├── errors.doctree │ │ │ ├── exceptions.doctree │ │ │ ├── features.doctree │ │ │ ├── functions.doctree │ │ │ ├── index.doctree │ │ │ ├── licenses.doctree │ │ │ ├── mentions.doctree │ │ │ ├── origin.doctree │ │ │ ├── performance.doctree │ │ │ ├── rtti.doctree │ │ │ ├── safety.doctree │ │ │ ├── threading.doctree │ │ │ ├── traits.doctree │ │ │ ├── tutorial │ │ │ │ ├── all-the-things.doctree │ │ │ │ ├── customization.doctree │ │ │ │ ├── cxx-in-lua.doctree │ │ │ │ ├── existing.doctree │ │ │ │ ├── functions.doctree │ │ │ │ ├── getting-started.doctree │ │ │ │ ├── ownership.doctree │ │ │ │ ├── tutorial-top.doctree │ │ │ │ └── variables.doctree │ │ │ └── usertypes.doctree │ │ └── html │ │ │ ├── .buildinfo │ │ │ ├── _images │ │ │ ├── eevee_code_after.jpg │ │ │ ├── eevee_code_before.jpg │ │ │ └── sol.png │ │ │ ├── _sources │ │ │ ├── api │ │ │ │ ├── api-top.rst.txt │ │ │ │ ├── as_args.rst.txt │ │ │ │ ├── as_container.rst.txt │ │ │ │ ├── as_function.rst.txt │ │ │ │ ├── as_returns.rst.txt │ │ │ │ ├── as_table.rst.txt │ │ │ │ ├── c_call.rst.txt │ │ │ │ ├── compatibility.rst.txt │ │ │ │ ├── containers.rst.txt │ │ │ │ ├── coroutine.rst.txt │ │ │ │ ├── environment.rst.txt │ │ │ │ ├── error.rst.txt │ │ │ │ ├── filters.rst.txt │ │ │ │ ├── function.rst.txt │ │ │ │ ├── make_reference.rst.txt │ │ │ │ ├── metatable_key.rst.txt │ │ │ │ ├── nested.rst.txt │ │ │ │ ├── new_table.rst.txt │ │ │ │ ├── object.rst.txt │ │ │ │ ├── optional.rst.txt │ │ │ │ ├── overload.rst.txt │ │ │ │ ├── property.rst.txt │ │ │ │ ├── protect.rst.txt │ │ │ │ ├── protected_function.rst.txt │ │ │ │ ├── proxy.rst.txt │ │ │ │ ├── readonly.rst.txt │ │ │ │ ├── reference.rst.txt │ │ │ │ ├── resolve.rst.txt │ │ │ │ ├── simple_usertype.rst.txt │ │ │ │ ├── stack.rst.txt │ │ │ │ ├── stack_reference.rst.txt │ │ │ │ ├── state.rst.txt │ │ │ │ ├── table.rst.txt │ │ │ │ ├── this_environment.rst.txt │ │ │ │ ├── this_state.rst.txt │ │ │ │ ├── thread.rst.txt │ │ │ │ ├── tie.rst.txt │ │ │ │ ├── types.rst.txt │ │ │ │ ├── unique_usertype_traits.rst.txt │ │ │ │ ├── user.rst.txt │ │ │ │ ├── userdata.rst.txt │ │ │ │ ├── usertype.rst.txt │ │ │ │ ├── usertype_memory.rst.txt │ │ │ │ ├── var.rst.txt │ │ │ │ ├── variadic_args.rst.txt │ │ │ │ └── variadic_results.rst.txt │ │ │ ├── benchmarks.rst.txt │ │ │ ├── cmake.rst.txt │ │ │ ├── codecvt.rst.txt │ │ │ ├── compilation.rst.txt │ │ │ ├── containers.rst.txt │ │ │ ├── errors.rst.txt │ │ │ ├── exceptions.rst.txt │ │ │ ├── features.rst.txt │ │ │ ├── functions.rst.txt │ │ │ ├── index.rst.txt │ │ │ ├── licenses.rst.txt │ │ │ ├── mentions.rst.txt │ │ │ ├── origin.rst.txt │ │ │ ├── performance.rst.txt │ │ │ ├── rtti.rst.txt │ │ │ ├── safety.rst.txt │ │ │ ├── threading.rst.txt │ │ │ ├── traits.rst.txt │ │ │ ├── tutorial │ │ │ │ ├── all-the-things.rst.txt │ │ │ │ ├── customization.rst.txt │ │ │ │ ├── cxx-in-lua.rst.txt │ │ │ │ ├── existing.rst.txt │ │ │ │ ├── functions.rst.txt │ │ │ │ ├── getting-started.rst.txt │ │ │ │ ├── ownership.rst.txt │ │ │ │ ├── tutorial-top.rst.txt │ │ │ │ └── variables.rst.txt │ │ │ └── usertypes.rst.txt │ │ │ ├── _static │ │ │ ├── alert_info_32.png │ │ │ ├── alert_warning_32.png │ │ │ ├── basic.css │ │ │ ├── bg-page.png │ │ │ ├── bullet_orange.png │ │ │ ├── doctools.js │ │ │ ├── documentation_options.js │ │ │ ├── file.png │ │ │ ├── haiku.css │ │ │ ├── jquery-3.4.1.js │ │ │ ├── jquery.js │ │ │ ├── language_data.js │ │ │ ├── minus.png │ │ │ ├── plus.png │ │ │ ├── pygments.css │ │ │ ├── search-fix.js │ │ │ ├── searchtools.js │ │ │ ├── sol2.css │ │ │ ├── underscore-1.3.1.js │ │ │ └── underscore.js │ │ │ ├── api │ │ │ ├── api-top.html │ │ │ ├── as_args.html │ │ │ ├── as_container.html │ │ │ ├── as_function.html │ │ │ ├── as_returns.html │ │ │ ├── as_table.html │ │ │ ├── c_call.html │ │ │ ├── compatibility.html │ │ │ ├── containers.html │ │ │ ├── coroutine.html │ │ │ ├── environment.html │ │ │ ├── error.html │ │ │ ├── filters.html │ │ │ ├── function.html │ │ │ ├── make_reference.html │ │ │ ├── metatable_key.html │ │ │ ├── nested.html │ │ │ ├── new_table.html │ │ │ ├── object.html │ │ │ ├── optional.html │ │ │ ├── overload.html │ │ │ ├── property.html │ │ │ ├── protect.html │ │ │ ├── protected_function.html │ │ │ ├── proxy.html │ │ │ ├── readonly.html │ │ │ ├── reference.html │ │ │ ├── resolve.html │ │ │ ├── simple_usertype.html │ │ │ ├── stack.html │ │ │ ├── stack_reference.html │ │ │ ├── state.html │ │ │ ├── table.html │ │ │ ├── this_environment.html │ │ │ ├── this_state.html │ │ │ ├── thread.html │ │ │ ├── tie.html │ │ │ ├── types.html │ │ │ ├── unique_usertype_traits.html │ │ │ ├── user.html │ │ │ ├── userdata.html │ │ │ ├── usertype.html │ │ │ ├── usertype_memory.html │ │ │ ├── var.html │ │ │ ├── variadic_args.html │ │ │ └── variadic_results.html │ │ │ ├── benchmarks.html │ │ │ ├── cmake.html │ │ │ ├── codecvt.html │ │ │ ├── compilation.html │ │ │ ├── containers.html │ │ │ ├── errors.html │ │ │ ├── exceptions.html │ │ │ ├── features.html │ │ │ ├── functions.html │ │ │ ├── genindex.html │ │ │ ├── index.html │ │ │ ├── licenses.html │ │ │ ├── mentions.html │ │ │ ├── objects.inv │ │ │ ├── origin.html │ │ │ ├── performance.html │ │ │ ├── rtti.html │ │ │ ├── safety.html │ │ │ ├── search.html │ │ │ ├── searchindex.js │ │ │ ├── threading.html │ │ │ ├── traits.html │ │ │ ├── tutorial │ │ │ ├── all-the-things.html │ │ │ ├── customization.html │ │ │ ├── cxx-in-lua.html │ │ │ ├── existing.html │ │ │ ├── functions.html │ │ │ ├── getting-started.html │ │ │ ├── ownership.html │ │ │ ├── tutorial-top.html │ │ │ └── variables.html │ │ │ └── usertypes.html │ │ ├── json.hpp │ │ ├── sol.hpp │ │ ├── stb_image.h │ │ ├── tinyGLTF_license.txt │ │ └── tiny_gltf.h ├── Linux │ └── Box2D │ │ ├── include │ │ └── Box2D │ │ │ ├── Box2D.h │ │ │ ├── Collision │ │ │ ├── Shapes │ │ │ │ ├── b2ChainShape.h │ │ │ │ ├── b2CircleShape.h │ │ │ │ ├── b2EdgeShape.h │ │ │ │ ├── b2PolygonShape.h │ │ │ │ └── b2Shape.h │ │ │ ├── b2BroadPhase.h │ │ │ ├── b2Collision.h │ │ │ ├── b2Distance.h │ │ │ ├── b2DynamicTree.h │ │ │ └── b2TimeOfImpact.h │ │ │ ├── Common │ │ │ ├── b2BlockAllocator.h │ │ │ ├── b2Draw.h │ │ │ ├── b2GrowableStack.h │ │ │ ├── b2Math.h │ │ │ ├── b2Settings.h │ │ │ ├── b2StackAllocator.h │ │ │ └── b2Timer.h │ │ │ ├── Dynamics │ │ │ ├── Contacts │ │ │ │ ├── b2ChainAndCircleContact.h │ │ │ │ ├── b2ChainAndPolygonContact.h │ │ │ │ ├── b2CircleContact.h │ │ │ │ ├── b2Contact.h │ │ │ │ ├── b2ContactSolver.h │ │ │ │ ├── b2EdgeAndCircleContact.h │ │ │ │ ├── b2EdgeAndPolygonContact.h │ │ │ │ ├── b2PolygonAndCircleContact.h │ │ │ │ └── b2PolygonContact.h │ │ │ ├── Joints │ │ │ │ ├── b2DistanceJoint.h │ │ │ │ ├── b2FrictionJoint.h │ │ │ │ ├── b2GearJoint.h │ │ │ │ ├── b2Joint.h │ │ │ │ ├── b2MotorJoint.h │ │ │ │ ├── b2MouseJoint.h │ │ │ │ ├── b2PrismaticJoint.h │ │ │ │ ├── b2PulleyJoint.h │ │ │ │ ├── b2RevoluteJoint.h │ │ │ │ ├── b2RopeJoint.h │ │ │ │ ├── b2WeldJoint.h │ │ │ │ └── b2WheelJoint.h │ │ │ ├── b2Body.h │ │ │ ├── b2ContactManager.h │ │ │ ├── b2Fixture.h │ │ │ ├── b2Island.h │ │ │ ├── b2TimeStep.h │ │ │ ├── b2World.h │ │ │ └── b2WorldCallbacks.h │ │ │ └── Rope │ │ │ └── b2Rope.h │ │ └── lib │ │ └── libBox2D.a ├── Win │ ├── Box2D │ │ ├── include │ │ │ └── Box2D │ │ │ │ ├── Box2D.h │ │ │ │ ├── Collision │ │ │ │ ├── Shapes │ │ │ │ │ ├── b2ChainShape.h │ │ │ │ │ ├── b2CircleShape.h │ │ │ │ │ ├── b2EdgeShape.h │ │ │ │ │ ├── b2PolygonShape.h │ │ │ │ │ └── b2Shape.h │ │ │ │ ├── b2BroadPhase.h │ │ │ │ ├── b2Collision.h │ │ │ │ ├── b2Distance.h │ │ │ │ ├── b2DynamicTree.h │ │ │ │ └── b2TimeOfImpact.h │ │ │ │ ├── Common │ │ │ │ ├── b2BlockAllocator.h │ │ │ │ ├── b2Draw.h │ │ │ │ ├── b2GrowableStack.h │ │ │ │ ├── b2Math.h │ │ │ │ ├── b2Settings.h │ │ │ │ ├── b2StackAllocator.h │ │ │ │ └── b2Timer.h │ │ │ │ ├── Dynamics │ │ │ │ ├── Contacts │ │ │ │ │ ├── b2ChainAndCircleContact.h │ │ │ │ │ ├── b2ChainAndPolygonContact.h │ │ │ │ │ ├── b2CircleContact.h │ │ │ │ │ ├── b2Contact.h │ │ │ │ │ ├── b2ContactSolver.h │ │ │ │ │ ├── b2EdgeAndCircleContact.h │ │ │ │ │ ├── b2EdgeAndPolygonContact.h │ │ │ │ │ ├── b2PolygonAndCircleContact.h │ │ │ │ │ └── b2PolygonContact.h │ │ │ │ ├── Joints │ │ │ │ │ ├── b2DistanceJoint.h │ │ │ │ │ ├── b2FrictionJoint.h │ │ │ │ │ ├── b2GearJoint.h │ │ │ │ │ ├── b2Joint.h │ │ │ │ │ ├── b2MotorJoint.h │ │ │ │ │ ├── b2MouseJoint.h │ │ │ │ │ ├── b2PrismaticJoint.h │ │ │ │ │ ├── b2PulleyJoint.h │ │ │ │ │ ├── b2RevoluteJoint.h │ │ │ │ │ ├── b2RopeJoint.h │ │ │ │ │ ├── b2WeldJoint.h │ │ │ │ │ └── b2WheelJoint.h │ │ │ │ ├── b2Body.h │ │ │ │ ├── b2ContactManager.h │ │ │ │ ├── b2Fixture.h │ │ │ │ ├── b2Island.h │ │ │ │ ├── b2TimeStep.h │ │ │ │ ├── b2World.h │ │ │ │ └── b2WorldCallbacks.h │ │ │ │ └── Rope │ │ │ │ └── b2Rope.h │ │ └── lib │ │ │ ├── Box2D.lib │ │ │ └── Box2D_d.lib │ ├── Bullet │ │ ├── include │ │ │ ├── Bullet3Collision │ │ │ │ ├── BroadPhaseCollision │ │ │ │ │ ├── b3BroadphaseCallback.h │ │ │ │ │ ├── b3DynamicBvh.cpp │ │ │ │ │ ├── b3DynamicBvh.h │ │ │ │ │ ├── b3DynamicBvhBroadphase.cpp │ │ │ │ │ ├── b3DynamicBvhBroadphase.h │ │ │ │ │ ├── b3OverlappingPair.h │ │ │ │ │ ├── b3OverlappingPairCache.cpp │ │ │ │ │ ├── b3OverlappingPairCache.h │ │ │ │ │ └── shared │ │ │ │ │ │ └── b3Aabb.h │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── NarrowPhaseCollision │ │ │ │ │ ├── b3Config.h │ │ │ │ │ ├── b3Contact4.h │ │ │ │ │ ├── b3ConvexUtility.cpp │ │ │ │ │ ├── b3ConvexUtility.h │ │ │ │ │ ├── b3CpuNarrowPhase.cpp │ │ │ │ │ ├── b3CpuNarrowPhase.h │ │ │ │ │ ├── b3RaycastInfo.h │ │ │ │ │ ├── b3RigidBodyCL.h │ │ │ │ │ └── shared │ │ │ │ │ │ ├── b3BvhSubtreeInfoData.h │ │ │ │ │ │ ├── b3BvhTraversal.h │ │ │ │ │ │ ├── b3ClipFaces.h │ │ │ │ │ │ ├── b3Collidable.h │ │ │ │ │ │ ├── b3Contact4Data.h │ │ │ │ │ │ ├── b3ContactConvexConvexSAT.h │ │ │ │ │ │ ├── b3ContactSphereSphere.h │ │ │ │ │ │ ├── b3ConvexPolyhedronData.h │ │ │ │ │ │ ├── b3FindConcaveSatAxis.h │ │ │ │ │ │ ├── b3FindSeparatingAxis.h │ │ │ │ │ │ ├── b3MprPenetration.h │ │ │ │ │ │ ├── b3NewContactReduction.h │ │ │ │ │ │ ├── b3QuantizedBvhNodeData.h │ │ │ │ │ │ ├── b3ReduceContacts.h │ │ │ │ │ │ ├── b3RigidBodyData.h │ │ │ │ │ │ └── b3UpdateAabbs.h │ │ │ │ └── premake4.lua │ │ │ ├── Bullet3Common │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── b3AlignedAllocator.cpp │ │ │ │ ├── b3AlignedAllocator.h │ │ │ │ ├── b3AlignedObjectArray.h │ │ │ │ ├── b3CommandLineArgs.h │ │ │ │ ├── b3FileUtils.h │ │ │ │ ├── b3HashMap.h │ │ │ │ ├── b3Logging.cpp │ │ │ │ ├── b3Logging.h │ │ │ │ ├── b3Matrix3x3.h │ │ │ │ ├── b3MinMax.h │ │ │ │ ├── b3PoolAllocator.h │ │ │ │ ├── b3QuadWord.h │ │ │ │ ├── b3Quaternion.h │ │ │ │ ├── b3Random.h │ │ │ │ ├── b3ResizablePool.h │ │ │ │ ├── b3Scalar.h │ │ │ │ ├── b3StackAlloc.h │ │ │ │ ├── b3Transform.h │ │ │ │ ├── b3TransformUtil.h │ │ │ │ ├── b3Vector3.cpp │ │ │ │ ├── b3Vector3.h │ │ │ │ ├── premake4.lua │ │ │ │ └── shared │ │ │ │ │ ├── b3Float4.h │ │ │ │ │ ├── b3Int2.h │ │ │ │ │ ├── b3Int4.h │ │ │ │ │ ├── b3Mat3x3.h │ │ │ │ │ ├── b3PlatformDefinitions.h │ │ │ │ │ └── b3Quat.h │ │ │ ├── Bullet3Dynamics │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── ConstraintSolver │ │ │ │ │ ├── b3ContactSolverInfo.h │ │ │ │ │ ├── b3FixedConstraint.cpp │ │ │ │ │ ├── b3FixedConstraint.h │ │ │ │ │ ├── b3Generic6DofConstraint.cpp │ │ │ │ │ ├── b3Generic6DofConstraint.h │ │ │ │ │ ├── b3JacobianEntry.h │ │ │ │ │ ├── b3PgsJacobiSolver.cpp │ │ │ │ │ ├── b3PgsJacobiSolver.h │ │ │ │ │ ├── b3Point2PointConstraint.cpp │ │ │ │ │ ├── b3Point2PointConstraint.h │ │ │ │ │ ├── b3SolverBody.h │ │ │ │ │ ├── b3SolverConstraint.h │ │ │ │ │ ├── b3TypedConstraint.cpp │ │ │ │ │ └── b3TypedConstraint.h │ │ │ │ ├── b3CpuRigidBodyPipeline.cpp │ │ │ │ ├── b3CpuRigidBodyPipeline.h │ │ │ │ ├── premake4.lua │ │ │ │ └── shared │ │ │ │ │ ├── b3ContactConstraint4.h │ │ │ │ │ ├── b3ConvertConstraint4.h │ │ │ │ │ ├── b3Inertia.h │ │ │ │ │ └── b3IntegrateTransforms.h │ │ │ ├── Bullet3Geometry │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── b3AabbUtil.h │ │ │ │ ├── b3ConvexHullComputer.cpp │ │ │ │ ├── b3ConvexHullComputer.h │ │ │ │ ├── b3GeometryUtil.cpp │ │ │ │ ├── b3GeometryUtil.h │ │ │ │ ├── b3GrahamScan2dConvexHull.h │ │ │ │ └── premake4.lua │ │ │ ├── Bullet3OpenCL │ │ │ │ ├── BroadphaseCollision │ │ │ │ │ ├── b3GpuBroadphaseInterface.h │ │ │ │ │ ├── b3GpuGridBroadphase.cpp │ │ │ │ │ ├── b3GpuGridBroadphase.h │ │ │ │ │ ├── b3GpuParallelLinearBvh.cpp │ │ │ │ │ ├── b3GpuParallelLinearBvh.h │ │ │ │ │ ├── b3GpuParallelLinearBvhBroadphase.cpp │ │ │ │ │ ├── b3GpuParallelLinearBvhBroadphase.h │ │ │ │ │ ├── b3GpuSapBroadphase.cpp │ │ │ │ │ ├── b3GpuSapBroadphase.h │ │ │ │ │ ├── b3SapAabb.h │ │ │ │ │ └── kernels │ │ │ │ │ │ ├── gridBroadphase.cl │ │ │ │ │ │ ├── gridBroadphaseKernels.h │ │ │ │ │ │ ├── parallelLinearBvh.cl │ │ │ │ │ │ ├── parallelLinearBvhKernels.h │ │ │ │ │ │ ├── sap.cl │ │ │ │ │ │ └── sapKernels.h │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── Initialize │ │ │ │ │ ├── b3OpenCLInclude.h │ │ │ │ │ ├── b3OpenCLUtils.cpp │ │ │ │ │ └── b3OpenCLUtils.h │ │ │ │ ├── NarrowphaseCollision │ │ │ │ │ ├── b3BvhInfo.h │ │ │ │ │ ├── b3ContactCache.cpp │ │ │ │ │ ├── b3ContactCache.h │ │ │ │ │ ├── b3ConvexHullContact.cpp │ │ │ │ │ ├── b3ConvexHullContact.h │ │ │ │ │ ├── b3ConvexPolyhedronCL.h │ │ │ │ │ ├── b3GjkEpa.cpp │ │ │ │ │ ├── b3GjkEpa.h │ │ │ │ │ ├── b3OptimizedBvh.cpp │ │ │ │ │ ├── b3OptimizedBvh.h │ │ │ │ │ ├── b3QuantizedBvh.cpp │ │ │ │ │ ├── b3QuantizedBvh.h │ │ │ │ │ ├── b3StridingMeshInterface.cpp │ │ │ │ │ ├── b3StridingMeshInterface.h │ │ │ │ │ ├── b3SupportMappings.h │ │ │ │ │ ├── b3TriangleCallback.cpp │ │ │ │ │ ├── b3TriangleCallback.h │ │ │ │ │ ├── b3TriangleIndexVertexArray.cpp │ │ │ │ │ ├── b3TriangleIndexVertexArray.h │ │ │ │ │ ├── b3VectorFloat4.h │ │ │ │ │ ├── b3VoronoiSimplexSolver.cpp │ │ │ │ │ ├── b3VoronoiSimplexSolver.h │ │ │ │ │ └── kernels │ │ │ │ │ │ ├── bvhTraversal.cl │ │ │ │ │ │ ├── bvhTraversal.h │ │ │ │ │ │ ├── mpr.cl │ │ │ │ │ │ ├── mprKernels.h │ │ │ │ │ │ ├── primitiveContacts.cl │ │ │ │ │ │ ├── primitiveContacts.h │ │ │ │ │ │ ├── sat.cl │ │ │ │ │ │ ├── satClipHullContacts.cl │ │ │ │ │ │ ├── satClipHullContacts.h │ │ │ │ │ │ ├── satConcave.cl │ │ │ │ │ │ ├── satConcaveKernels.h │ │ │ │ │ │ └── satKernels.h │ │ │ │ ├── ParallelPrimitives │ │ │ │ │ ├── b3BoundSearchCL.cpp │ │ │ │ │ ├── b3BoundSearchCL.h │ │ │ │ │ ├── b3BufferInfoCL.h │ │ │ │ │ ├── b3FillCL.cpp │ │ │ │ │ ├── b3FillCL.h │ │ │ │ │ ├── b3LauncherCL.cpp │ │ │ │ │ ├── b3LauncherCL.h │ │ │ │ │ ├── b3OpenCLArray.h │ │ │ │ │ ├── b3PrefixScanCL.cpp │ │ │ │ │ ├── b3PrefixScanCL.h │ │ │ │ │ ├── b3PrefixScanFloat4CL.cpp │ │ │ │ │ ├── b3PrefixScanFloat4CL.h │ │ │ │ │ ├── b3RadixSort32CL.cpp │ │ │ │ │ ├── b3RadixSort32CL.h │ │ │ │ │ └── kernels │ │ │ │ │ │ ├── BoundSearchKernels.cl │ │ │ │ │ │ ├── BoundSearchKernelsCL.h │ │ │ │ │ │ ├── CopyKernels.cl │ │ │ │ │ │ ├── CopyKernelsCL.h │ │ │ │ │ │ ├── FillKernels.cl │ │ │ │ │ │ ├── FillKernelsCL.h │ │ │ │ │ │ ├── PrefixScanFloat4Kernels.cl │ │ │ │ │ │ ├── PrefixScanKernels.cl │ │ │ │ │ │ ├── PrefixScanKernelsCL.h │ │ │ │ │ │ ├── PrefixScanKernelsFloat4CL.h │ │ │ │ │ │ ├── RadixSort32Kernels.cl │ │ │ │ │ │ └── RadixSort32KernelsCL.h │ │ │ │ ├── Raycast │ │ │ │ │ ├── b3GpuRaycast.cpp │ │ │ │ │ ├── b3GpuRaycast.h │ │ │ │ │ └── kernels │ │ │ │ │ │ ├── rayCastKernels.cl │ │ │ │ │ │ └── rayCastKernels.h │ │ │ │ ├── RigidBody │ │ │ │ │ ├── b3GpuConstraint4.h │ │ │ │ │ ├── b3GpuGenericConstraint.cpp │ │ │ │ │ ├── b3GpuGenericConstraint.h │ │ │ │ │ ├── b3GpuJacobiContactSolver.cpp │ │ │ │ │ ├── b3GpuJacobiContactSolver.h │ │ │ │ │ ├── b3GpuNarrowPhase.cpp │ │ │ │ │ ├── b3GpuNarrowPhase.h │ │ │ │ │ ├── b3GpuNarrowPhaseInternalData.h │ │ │ │ │ ├── b3GpuPgsConstraintSolver.cpp │ │ │ │ │ ├── b3GpuPgsConstraintSolver.h │ │ │ │ │ ├── b3GpuPgsContactSolver.cpp │ │ │ │ │ ├── b3GpuPgsContactSolver.h │ │ │ │ │ ├── b3GpuRigidBodyPipeline.cpp │ │ │ │ │ ├── b3GpuRigidBodyPipeline.h │ │ │ │ │ ├── b3GpuRigidBodyPipelineInternalData.h │ │ │ │ │ ├── b3GpuSolverBody.h │ │ │ │ │ ├── b3GpuSolverConstraint.h │ │ │ │ │ ├── b3Solver.cpp │ │ │ │ │ ├── b3Solver.h │ │ │ │ │ └── kernels │ │ │ │ │ │ ├── batchingKernels.cl │ │ │ │ │ │ ├── batchingKernels.h │ │ │ │ │ │ ├── batchingKernelsNew.cl │ │ │ │ │ │ ├── batchingKernelsNew.h │ │ │ │ │ │ ├── integrateKernel.cl │ │ │ │ │ │ ├── integrateKernel.h │ │ │ │ │ │ ├── jointSolver.cl │ │ │ │ │ │ ├── jointSolver.h │ │ │ │ │ │ ├── solveContact.cl │ │ │ │ │ │ ├── solveContact.h │ │ │ │ │ │ ├── solveFriction.cl │ │ │ │ │ │ ├── solveFriction.h │ │ │ │ │ │ ├── solverSetup.cl │ │ │ │ │ │ ├── solverSetup.h │ │ │ │ │ │ ├── solverSetup2.cl │ │ │ │ │ │ ├── solverSetup2.h │ │ │ │ │ │ ├── solverUtils.cl │ │ │ │ │ │ ├── solverUtils.h │ │ │ │ │ │ ├── updateAabbsKernel.cl │ │ │ │ │ │ └── updateAabbsKernel.h │ │ │ │ └── premake4.lua │ │ │ ├── Bullet3Serialize │ │ │ │ └── Bullet2FileLoader │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── autogenerated │ │ │ │ │ └── bullet2.h │ │ │ │ │ ├── b3BulletFile.cpp │ │ │ │ │ ├── b3BulletFile.h │ │ │ │ │ ├── b3Chunk.cpp │ │ │ │ │ ├── b3Chunk.h │ │ │ │ │ ├── b3Common.h │ │ │ │ │ ├── b3DNA.cpp │ │ │ │ │ ├── b3DNA.h │ │ │ │ │ ├── b3Defines.h │ │ │ │ │ ├── b3File.cpp │ │ │ │ │ ├── b3File.h │ │ │ │ │ ├── b3Serializer.cpp │ │ │ │ │ ├── b3Serializer.h │ │ │ │ │ └── premake4.lua │ │ │ ├── BulletCollision │ │ │ │ ├── BroadphaseCollision │ │ │ │ │ ├── btAxisSweep3.cpp │ │ │ │ │ ├── btAxisSweep3.h │ │ │ │ │ ├── btAxisSweep3Internal.h │ │ │ │ │ ├── btBroadphaseInterface.h │ │ │ │ │ ├── btBroadphaseProxy.cpp │ │ │ │ │ ├── btBroadphaseProxy.h │ │ │ │ │ ├── btCollisionAlgorithm.cpp │ │ │ │ │ ├── btCollisionAlgorithm.h │ │ │ │ │ ├── btDbvt.cpp │ │ │ │ │ ├── btDbvt.h │ │ │ │ │ ├── btDbvtBroadphase.cpp │ │ │ │ │ ├── btDbvtBroadphase.h │ │ │ │ │ ├── btDispatcher.cpp │ │ │ │ │ ├── btDispatcher.h │ │ │ │ │ ├── btOverlappingPairCache.cpp │ │ │ │ │ ├── btOverlappingPairCache.h │ │ │ │ │ ├── btOverlappingPairCallback.h │ │ │ │ │ ├── btQuantizedBvh.cpp │ │ │ │ │ ├── btQuantizedBvh.h │ │ │ │ │ ├── btSimpleBroadphase.cpp │ │ │ │ │ └── btSimpleBroadphase.h │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── CollisionDispatch │ │ │ │ │ ├── SphereTriangleDetector.cpp │ │ │ │ │ ├── SphereTriangleDetector.h │ │ │ │ │ ├── btActivatingCollisionAlgorithm.cpp │ │ │ │ │ ├── btActivatingCollisionAlgorithm.h │ │ │ │ │ ├── btBox2dBox2dCollisionAlgorithm.cpp │ │ │ │ │ ├── btBox2dBox2dCollisionAlgorithm.h │ │ │ │ │ ├── btBoxBoxCollisionAlgorithm.cpp │ │ │ │ │ ├── btBoxBoxCollisionAlgorithm.h │ │ │ │ │ ├── btBoxBoxDetector.cpp │ │ │ │ │ ├── btBoxBoxDetector.h │ │ │ │ │ ├── btCollisionConfiguration.h │ │ │ │ │ ├── btCollisionCreateFunc.h │ │ │ │ │ ├── btCollisionDispatcher.cpp │ │ │ │ │ ├── btCollisionDispatcher.h │ │ │ │ │ ├── btCollisionDispatcherMt.cpp │ │ │ │ │ ├── btCollisionDispatcherMt.h │ │ │ │ │ ├── btCollisionObject.cpp │ │ │ │ │ ├── btCollisionObject.h │ │ │ │ │ ├── btCollisionObjectWrapper.h │ │ │ │ │ ├── btCollisionWorld.cpp │ │ │ │ │ ├── btCollisionWorld.h │ │ │ │ │ ├── btCollisionWorldImporter.cpp │ │ │ │ │ ├── btCollisionWorldImporter.h │ │ │ │ │ ├── btCompoundCollisionAlgorithm.cpp │ │ │ │ │ ├── btCompoundCollisionAlgorithm.h │ │ │ │ │ ├── btCompoundCompoundCollisionAlgorithm.cpp │ │ │ │ │ ├── btCompoundCompoundCollisionAlgorithm.h │ │ │ │ │ ├── btConvex2dConvex2dAlgorithm.cpp │ │ │ │ │ ├── btConvex2dConvex2dAlgorithm.h │ │ │ │ │ ├── btConvexConcaveCollisionAlgorithm.cpp │ │ │ │ │ ├── btConvexConcaveCollisionAlgorithm.h │ │ │ │ │ ├── btConvexConvexAlgorithm.cpp │ │ │ │ │ ├── btConvexConvexAlgorithm.h │ │ │ │ │ ├── btConvexPlaneCollisionAlgorithm.cpp │ │ │ │ │ ├── btConvexPlaneCollisionAlgorithm.h │ │ │ │ │ ├── btDefaultCollisionConfiguration.cpp │ │ │ │ │ ├── btDefaultCollisionConfiguration.h │ │ │ │ │ ├── btEmptyCollisionAlgorithm.cpp │ │ │ │ │ ├── btEmptyCollisionAlgorithm.h │ │ │ │ │ ├── btGhostObject.cpp │ │ │ │ │ ├── btGhostObject.h │ │ │ │ │ ├── btHashedSimplePairCache.cpp │ │ │ │ │ ├── btHashedSimplePairCache.h │ │ │ │ │ ├── btInternalEdgeUtility.cpp │ │ │ │ │ ├── btInternalEdgeUtility.h │ │ │ │ │ ├── btManifoldResult.cpp │ │ │ │ │ ├── btManifoldResult.h │ │ │ │ │ ├── btSimulationIslandManager.cpp │ │ │ │ │ ├── btSimulationIslandManager.h │ │ │ │ │ ├── btSphereBoxCollisionAlgorithm.cpp │ │ │ │ │ ├── btSphereBoxCollisionAlgorithm.h │ │ │ │ │ ├── btSphereSphereCollisionAlgorithm.cpp │ │ │ │ │ ├── btSphereSphereCollisionAlgorithm.h │ │ │ │ │ ├── btSphereTriangleCollisionAlgorithm.cpp │ │ │ │ │ ├── btSphereTriangleCollisionAlgorithm.h │ │ │ │ │ ├── btUnionFind.cpp │ │ │ │ │ └── btUnionFind.h │ │ │ │ ├── CollisionShapes │ │ │ │ │ ├── btBox2dShape.cpp │ │ │ │ │ ├── btBox2dShape.h │ │ │ │ │ ├── btBoxShape.cpp │ │ │ │ │ ├── btBoxShape.h │ │ │ │ │ ├── btBvhTriangleMeshShape.cpp │ │ │ │ │ ├── btBvhTriangleMeshShape.h │ │ │ │ │ ├── btCapsuleShape.cpp │ │ │ │ │ ├── btCapsuleShape.h │ │ │ │ │ ├── btCollisionMargin.h │ │ │ │ │ ├── btCollisionShape.cpp │ │ │ │ │ ├── btCollisionShape.h │ │ │ │ │ ├── btCompoundShape.cpp │ │ │ │ │ ├── btCompoundShape.h │ │ │ │ │ ├── btConcaveShape.cpp │ │ │ │ │ ├── btConcaveShape.h │ │ │ │ │ ├── btConeShape.cpp │ │ │ │ │ ├── btConeShape.h │ │ │ │ │ ├── btConvex2dShape.cpp │ │ │ │ │ ├── btConvex2dShape.h │ │ │ │ │ ├── btConvexHullShape.cpp │ │ │ │ │ ├── btConvexHullShape.h │ │ │ │ │ ├── btConvexInternalShape.cpp │ │ │ │ │ ├── btConvexInternalShape.h │ │ │ │ │ ├── btConvexPointCloudShape.cpp │ │ │ │ │ ├── btConvexPointCloudShape.h │ │ │ │ │ ├── btConvexPolyhedron.cpp │ │ │ │ │ ├── btConvexPolyhedron.h │ │ │ │ │ ├── btConvexShape.cpp │ │ │ │ │ ├── btConvexShape.h │ │ │ │ │ ├── btConvexTriangleMeshShape.cpp │ │ │ │ │ ├── btConvexTriangleMeshShape.h │ │ │ │ │ ├── btCylinderShape.cpp │ │ │ │ │ ├── btCylinderShape.h │ │ │ │ │ ├── btEmptyShape.cpp │ │ │ │ │ ├── btEmptyShape.h │ │ │ │ │ ├── btHeightfieldTerrainShape.cpp │ │ │ │ │ ├── btHeightfieldTerrainShape.h │ │ │ │ │ ├── btMaterial.h │ │ │ │ │ ├── btMinkowskiSumShape.cpp │ │ │ │ │ ├── btMinkowskiSumShape.h │ │ │ │ │ ├── btMultiSphereShape.cpp │ │ │ │ │ ├── btMultiSphereShape.h │ │ │ │ │ ├── btMultimaterialTriangleMeshShape.cpp │ │ │ │ │ ├── btMultimaterialTriangleMeshShape.h │ │ │ │ │ ├── btOptimizedBvh.cpp │ │ │ │ │ ├── btOptimizedBvh.h │ │ │ │ │ ├── btPolyhedralConvexShape.cpp │ │ │ │ │ ├── btPolyhedralConvexShape.h │ │ │ │ │ ├── btScaledBvhTriangleMeshShape.cpp │ │ │ │ │ ├── btScaledBvhTriangleMeshShape.h │ │ │ │ │ ├── btShapeHull.cpp │ │ │ │ │ ├── btShapeHull.h │ │ │ │ │ ├── btSphereShape.cpp │ │ │ │ │ ├── btSphereShape.h │ │ │ │ │ ├── btStaticPlaneShape.cpp │ │ │ │ │ ├── btStaticPlaneShape.h │ │ │ │ │ ├── btStridingMeshInterface.cpp │ │ │ │ │ ├── btStridingMeshInterface.h │ │ │ │ │ ├── btTetrahedronShape.cpp │ │ │ │ │ ├── btTetrahedronShape.h │ │ │ │ │ ├── btTriangleBuffer.cpp │ │ │ │ │ ├── btTriangleBuffer.h │ │ │ │ │ ├── btTriangleCallback.cpp │ │ │ │ │ ├── btTriangleCallback.h │ │ │ │ │ ├── btTriangleIndexVertexArray.cpp │ │ │ │ │ ├── btTriangleIndexVertexArray.h │ │ │ │ │ ├── btTriangleIndexVertexMaterialArray.cpp │ │ │ │ │ ├── btTriangleIndexVertexMaterialArray.h │ │ │ │ │ ├── btTriangleInfoMap.h │ │ │ │ │ ├── btTriangleMesh.cpp │ │ │ │ │ ├── btTriangleMesh.h │ │ │ │ │ ├── btTriangleMeshShape.cpp │ │ │ │ │ ├── btTriangleMeshShape.h │ │ │ │ │ ├── btTriangleShape.h │ │ │ │ │ ├── btUniformScalingShape.cpp │ │ │ │ │ └── btUniformScalingShape.h │ │ │ │ ├── Gimpact │ │ │ │ │ ├── btBoxCollision.h │ │ │ │ │ ├── btClipPolygon.h │ │ │ │ │ ├── btCompoundFromGimpact.h │ │ │ │ │ ├── btContactProcessing.cpp │ │ │ │ │ ├── btContactProcessing.h │ │ │ │ │ ├── btContactProcessingStructs.h │ │ │ │ │ ├── btGImpactBvh.cpp │ │ │ │ │ ├── btGImpactBvh.h │ │ │ │ │ ├── btGImpactBvhStructs.h │ │ │ │ │ ├── btGImpactCollisionAlgorithm.cpp │ │ │ │ │ ├── btGImpactCollisionAlgorithm.h │ │ │ │ │ ├── btGImpactMassUtil.h │ │ │ │ │ ├── btGImpactQuantizedBvh.cpp │ │ │ │ │ ├── btGImpactQuantizedBvh.h │ │ │ │ │ ├── btGImpactQuantizedBvhStructs.h │ │ │ │ │ ├── btGImpactShape.cpp │ │ │ │ │ ├── btGImpactShape.h │ │ │ │ │ ├── btGenericPoolAllocator.cpp │ │ │ │ │ ├── btGenericPoolAllocator.h │ │ │ │ │ ├── btGeometryOperations.h │ │ │ │ │ ├── btQuantization.h │ │ │ │ │ ├── btTriangleShapeEx.cpp │ │ │ │ │ ├── btTriangleShapeEx.h │ │ │ │ │ ├── gim_array.h │ │ │ │ │ ├── gim_basic_geometry_operations.h │ │ │ │ │ ├── gim_bitset.h │ │ │ │ │ ├── gim_box_collision.h │ │ │ │ │ ├── gim_box_set.cpp │ │ │ │ │ ├── gim_box_set.h │ │ │ │ │ ├── gim_clip_polygon.h │ │ │ │ │ ├── gim_contact.cpp │ │ │ │ │ ├── gim_contact.h │ │ │ │ │ ├── gim_geom_types.h │ │ │ │ │ ├── gim_geometry.h │ │ │ │ │ ├── gim_hash_table.h │ │ │ │ │ ├── gim_linear_math.h │ │ │ │ │ ├── gim_math.h │ │ │ │ │ ├── gim_memory.cpp │ │ │ │ │ ├── gim_memory.h │ │ │ │ │ ├── gim_radixsort.h │ │ │ │ │ ├── gim_tri_collision.cpp │ │ │ │ │ └── gim_tri_collision.h │ │ │ │ ├── NarrowPhaseCollision │ │ │ │ │ ├── btComputeGjkEpaPenetration.h │ │ │ │ │ ├── btContinuousConvexCollision.cpp │ │ │ │ │ ├── btContinuousConvexCollision.h │ │ │ │ │ ├── btConvexCast.cpp │ │ │ │ │ ├── btConvexCast.h │ │ │ │ │ ├── btConvexPenetrationDepthSolver.h │ │ │ │ │ ├── btDiscreteCollisionDetectorInterface.h │ │ │ │ │ ├── btGjkCollisionDescription.h │ │ │ │ │ ├── btGjkConvexCast.cpp │ │ │ │ │ ├── btGjkConvexCast.h │ │ │ │ │ ├── btGjkEpa2.cpp │ │ │ │ │ ├── btGjkEpa2.h │ │ │ │ │ ├── btGjkEpa3.h │ │ │ │ │ ├── btGjkEpaPenetrationDepthSolver.cpp │ │ │ │ │ ├── btGjkEpaPenetrationDepthSolver.h │ │ │ │ │ ├── btGjkPairDetector.cpp │ │ │ │ │ ├── btGjkPairDetector.h │ │ │ │ │ ├── btManifoldPoint.h │ │ │ │ │ ├── btMinkowskiPenetrationDepthSolver.cpp │ │ │ │ │ ├── btMinkowskiPenetrationDepthSolver.h │ │ │ │ │ ├── btMprPenetration.h │ │ │ │ │ ├── btPersistentManifold.cpp │ │ │ │ │ ├── btPersistentManifold.h │ │ │ │ │ ├── btPointCollector.h │ │ │ │ │ ├── btPolyhedralContactClipping.cpp │ │ │ │ │ ├── btPolyhedralContactClipping.h │ │ │ │ │ ├── btRaycastCallback.cpp │ │ │ │ │ ├── btRaycastCallback.h │ │ │ │ │ ├── btSimplexSolverInterface.h │ │ │ │ │ ├── btSubSimplexConvexCast.cpp │ │ │ │ │ ├── btSubSimplexConvexCast.h │ │ │ │ │ ├── btVoronoiSimplexSolver.cpp │ │ │ │ │ └── btVoronoiSimplexSolver.h │ │ │ │ └── premake4.lua │ │ │ ├── BulletDynamics │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── Character │ │ │ │ │ ├── btCharacterControllerInterface.h │ │ │ │ │ ├── btKinematicCharacterController.cpp │ │ │ │ │ └── btKinematicCharacterController.h │ │ │ │ ├── ConstraintSolver │ │ │ │ │ ├── btConeTwistConstraint.cpp │ │ │ │ │ ├── btConeTwistConstraint.h │ │ │ │ │ ├── btConstraintSolver.h │ │ │ │ │ ├── btContactConstraint.cpp │ │ │ │ │ ├── btContactConstraint.h │ │ │ │ │ ├── btContactSolverInfo.h │ │ │ │ │ ├── btFixedConstraint.cpp │ │ │ │ │ ├── btFixedConstraint.h │ │ │ │ │ ├── btGearConstraint.cpp │ │ │ │ │ ├── btGearConstraint.h │ │ │ │ │ ├── btGeneric6DofConstraint.cpp │ │ │ │ │ ├── btGeneric6DofConstraint.h │ │ │ │ │ ├── btGeneric6DofSpring2Constraint.cpp │ │ │ │ │ ├── btGeneric6DofSpring2Constraint.h │ │ │ │ │ ├── btGeneric6DofSpringConstraint.cpp │ │ │ │ │ ├── btGeneric6DofSpringConstraint.h │ │ │ │ │ ├── btHinge2Constraint.cpp │ │ │ │ │ ├── btHinge2Constraint.h │ │ │ │ │ ├── btHingeConstraint.cpp │ │ │ │ │ ├── btHingeConstraint.h │ │ │ │ │ ├── btJacobianEntry.h │ │ │ │ │ ├── btNNCGConstraintSolver.cpp │ │ │ │ │ ├── btNNCGConstraintSolver.h │ │ │ │ │ ├── btPoint2PointConstraint.cpp │ │ │ │ │ ├── btPoint2PointConstraint.h │ │ │ │ │ ├── btSequentialImpulseConstraintSolver.cpp │ │ │ │ │ ├── btSequentialImpulseConstraintSolver.h │ │ │ │ │ ├── btSliderConstraint.cpp │ │ │ │ │ ├── btSliderConstraint.h │ │ │ │ │ ├── btSolve2LinearConstraint.cpp │ │ │ │ │ ├── btSolve2LinearConstraint.h │ │ │ │ │ ├── btSolverBody.h │ │ │ │ │ ├── btSolverConstraint.h │ │ │ │ │ ├── btTypedConstraint.cpp │ │ │ │ │ ├── btTypedConstraint.h │ │ │ │ │ ├── btUniversalConstraint.cpp │ │ │ │ │ └── btUniversalConstraint.h │ │ │ │ ├── Dynamics │ │ │ │ │ ├── btActionInterface.h │ │ │ │ │ ├── btDiscreteDynamicsWorld.cpp │ │ │ │ │ ├── btDiscreteDynamicsWorld.h │ │ │ │ │ ├── btDiscreteDynamicsWorldMt.cpp │ │ │ │ │ ├── btDiscreteDynamicsWorldMt.h │ │ │ │ │ ├── btDynamicsWorld.h │ │ │ │ │ ├── btRigidBody.cpp │ │ │ │ │ ├── btRigidBody.h │ │ │ │ │ ├── btSimpleDynamicsWorld.cpp │ │ │ │ │ ├── btSimpleDynamicsWorld.h │ │ │ │ │ ├── btSimulationIslandManagerMt.cpp │ │ │ │ │ └── btSimulationIslandManagerMt.h │ │ │ │ ├── Featherstone │ │ │ │ │ ├── btMultiBody.cpp │ │ │ │ │ ├── btMultiBody.h │ │ │ │ │ ├── btMultiBodyConstraint.cpp │ │ │ │ │ ├── btMultiBodyConstraint.h │ │ │ │ │ ├── btMultiBodyConstraintSolver.cpp │ │ │ │ │ ├── btMultiBodyConstraintSolver.h │ │ │ │ │ ├── btMultiBodyDynamicsWorld.cpp │ │ │ │ │ ├── btMultiBodyDynamicsWorld.h │ │ │ │ │ ├── btMultiBodyFixedConstraint.cpp │ │ │ │ │ ├── btMultiBodyFixedConstraint.h │ │ │ │ │ ├── btMultiBodyGearConstraint.cpp │ │ │ │ │ ├── btMultiBodyGearConstraint.h │ │ │ │ │ ├── btMultiBodyJointFeedback.h │ │ │ │ │ ├── btMultiBodyJointLimitConstraint.cpp │ │ │ │ │ ├── btMultiBodyJointLimitConstraint.h │ │ │ │ │ ├── btMultiBodyJointMotor.cpp │ │ │ │ │ ├── btMultiBodyJointMotor.h │ │ │ │ │ ├── btMultiBodyLink.h │ │ │ │ │ ├── btMultiBodyLinkCollider.h │ │ │ │ │ ├── btMultiBodyPoint2Point.cpp │ │ │ │ │ ├── btMultiBodyPoint2Point.h │ │ │ │ │ ├── btMultiBodySliderConstraint.cpp │ │ │ │ │ ├── btMultiBodySliderConstraint.h │ │ │ │ │ └── btMultiBodySolverConstraint.h │ │ │ │ ├── MLCPSolvers │ │ │ │ │ ├── btDantzigLCP.cpp │ │ │ │ │ ├── btDantzigLCP.h │ │ │ │ │ ├── btDantzigSolver.h │ │ │ │ │ ├── btLemkeAlgorithm.cpp │ │ │ │ │ ├── btLemkeAlgorithm.h │ │ │ │ │ ├── btLemkeSolver.h │ │ │ │ │ ├── btMLCPSolver.cpp │ │ │ │ │ ├── btMLCPSolver.h │ │ │ │ │ ├── btMLCPSolverInterface.h │ │ │ │ │ ├── btPATHSolver.h │ │ │ │ │ └── btSolveProjectedGaussSeidel.h │ │ │ │ ├── Vehicle │ │ │ │ │ ├── btRaycastVehicle.cpp │ │ │ │ │ ├── btRaycastVehicle.h │ │ │ │ │ ├── btVehicleRaycaster.h │ │ │ │ │ ├── btWheelInfo.cpp │ │ │ │ │ └── btWheelInfo.h │ │ │ │ └── premake4.lua │ │ │ ├── BulletInverseDynamics │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── IDConfig.hpp │ │ │ │ ├── IDConfigBuiltin.hpp │ │ │ │ ├── IDConfigEigen.hpp │ │ │ │ ├── IDErrorMessages.hpp │ │ │ │ ├── IDMath.cpp │ │ │ │ ├── IDMath.hpp │ │ │ │ ├── MultiBodyTree.cpp │ │ │ │ ├── MultiBodyTree.hpp │ │ │ │ ├── details │ │ │ │ │ ├── IDEigenInterface.hpp │ │ │ │ │ ├── IDLinearMathInterface.hpp │ │ │ │ │ ├── IDMatVec.hpp │ │ │ │ │ ├── MultiBodyTreeImpl.cpp │ │ │ │ │ ├── MultiBodyTreeImpl.hpp │ │ │ │ │ ├── MultiBodyTreeInitCache.cpp │ │ │ │ │ └── MultiBodyTreeInitCache.hpp │ │ │ │ └── premake4.lua │ │ │ ├── BulletSoftBody │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── btDefaultSoftBodySolver.cpp │ │ │ │ ├── btDefaultSoftBodySolver.h │ │ │ │ ├── btSoftBody.cpp │ │ │ │ ├── btSoftBody.h │ │ │ │ ├── btSoftBodyConcaveCollisionAlgorithm.cpp │ │ │ │ ├── btSoftBodyConcaveCollisionAlgorithm.h │ │ │ │ ├── btSoftBodyData.h │ │ │ │ ├── btSoftBodyHelpers.cpp │ │ │ │ ├── btSoftBodyHelpers.h │ │ │ │ ├── btSoftBodyInternals.h │ │ │ │ ├── btSoftBodyRigidBodyCollisionConfiguration.cpp │ │ │ │ ├── btSoftBodyRigidBodyCollisionConfiguration.h │ │ │ │ ├── btSoftBodySolverVertexBuffer.h │ │ │ │ ├── btSoftBodySolvers.h │ │ │ │ ├── btSoftMultiBodyDynamicsWorld.cpp │ │ │ │ ├── btSoftMultiBodyDynamicsWorld.h │ │ │ │ ├── btSoftRigidCollisionAlgorithm.cpp │ │ │ │ ├── btSoftRigidCollisionAlgorithm.h │ │ │ │ ├── btSoftRigidDynamicsWorld.cpp │ │ │ │ ├── btSoftRigidDynamicsWorld.h │ │ │ │ ├── btSoftSoftCollisionAlgorithm.cpp │ │ │ │ ├── btSoftSoftCollisionAlgorithm.h │ │ │ │ ├── btSparseSDF.h │ │ │ │ └── premake4.lua │ │ │ ├── LinearMath │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── btAabbUtil2.h │ │ │ │ ├── btAlignedAllocator.cpp │ │ │ │ ├── btAlignedAllocator.h │ │ │ │ ├── btAlignedObjectArray.h │ │ │ │ ├── btConvexHull.cpp │ │ │ │ ├── btConvexHull.h │ │ │ │ ├── btConvexHullComputer.cpp │ │ │ │ ├── btConvexHullComputer.h │ │ │ │ ├── btCpuFeatureUtility.h │ │ │ │ ├── btDefaultMotionState.h │ │ │ │ ├── btGeometryUtil.cpp │ │ │ │ ├── btGeometryUtil.h │ │ │ │ ├── btGrahamScan2dConvexHull.h │ │ │ │ ├── btHashMap.h │ │ │ │ ├── btIDebugDraw.h │ │ │ │ ├── btList.h │ │ │ │ ├── btMatrix3x3.h │ │ │ │ ├── btMatrixX.h │ │ │ │ ├── btMinMax.h │ │ │ │ ├── btMotionState.h │ │ │ │ ├── btPolarDecomposition.cpp │ │ │ │ ├── btPolarDecomposition.h │ │ │ │ ├── btPoolAllocator.h │ │ │ │ ├── btQuadWord.h │ │ │ │ ├── btQuaternion.h │ │ │ │ ├── btQuickprof.cpp │ │ │ │ ├── btQuickprof.h │ │ │ │ ├── btRandom.h │ │ │ │ ├── btScalar.h │ │ │ │ ├── btSerializer.cpp │ │ │ │ ├── btSerializer.h │ │ │ │ ├── btSerializer64.cpp │ │ │ │ ├── btSpatialAlgebra.h │ │ │ │ ├── btStackAlloc.h │ │ │ │ ├── btThreads.cpp │ │ │ │ ├── btThreads.h │ │ │ │ ├── btTransform.h │ │ │ │ ├── btTransformUtil.h │ │ │ │ ├── btVector3.cpp │ │ │ │ ├── btVector3.h │ │ │ │ └── premake4.lua │ │ │ ├── btBulletCollisionCommon.h │ │ │ ├── btBulletDynamicsCommon.h │ │ │ └── clew │ │ │ │ ├── clew.c │ │ │ │ └── clew.h │ │ └── lib │ │ │ ├── BulletCollision.lib │ │ │ ├── BulletCollision_d.lib │ │ │ ├── BulletDynamics.lib │ │ │ ├── BulletDynamics_d.lib │ │ │ ├── BulletSoftBody.lib │ │ │ ├── BulletSoftBody_d.lib │ │ │ ├── LinearMath.lib │ │ │ └── LinearMath_d.lib │ ├── Lua │ │ ├── include │ │ │ ├── lapi.h │ │ │ ├── lauxlib.h │ │ │ ├── lcode.h │ │ │ ├── lctype.h │ │ │ ├── ldebug.h │ │ │ ├── ldo.h │ │ │ ├── lfunc.h │ │ │ ├── lgc.h │ │ │ ├── llex.h │ │ │ ├── llimits.h │ │ │ ├── lmem.h │ │ │ ├── lobject.h │ │ │ ├── lopcodes.h │ │ │ ├── lparser.h │ │ │ ├── lprefix.h │ │ │ ├── lstate.h │ │ │ ├── lstring.h │ │ │ ├── ltable.h │ │ │ ├── ltm.h │ │ │ ├── lua.h │ │ │ ├── lua.hpp │ │ │ ├── luaconf.h │ │ │ ├── lualib.h │ │ │ ├── lundump.h │ │ │ ├── lvm.h │ │ │ └── lzio.h │ │ └── lib │ │ │ └── lua5.3.0-static.lib │ ├── SDL2-2.0.9 │ │ ├── BUGS.txt │ │ ├── COPYING.txt │ │ ├── README-SDL.txt │ │ ├── README.txt │ │ ├── WhatsNew.txt │ │ ├── docs │ │ │ ├── README-android.md │ │ │ ├── README-cmake.md │ │ │ ├── README-directfb.md │ │ │ ├── README-dynapi.md │ │ │ ├── README-emscripten.md │ │ │ ├── README-gesture.md │ │ │ ├── README-hg.md │ │ │ ├── README-ios.md │ │ │ ├── README-linux.md │ │ │ ├── README-macosx.md │ │ │ ├── README-nacl.md │ │ │ ├── README-pandora.md │ │ │ ├── README-platforms.md │ │ │ ├── README-porting.md │ │ │ ├── README-psp.md │ │ │ ├── README-raspberrypi.md │ │ │ ├── README-touch.md │ │ │ ├── README-wince.md │ │ │ ├── README-windows.md │ │ │ ├── README-winrt.md │ │ │ ├── README.md │ │ │ └── doxyfile │ │ ├── include │ │ │ ├── SDL.h │ │ │ ├── SDL_assert.h │ │ │ ├── SDL_atomic.h │ │ │ ├── SDL_audio.h │ │ │ ├── SDL_bits.h │ │ │ ├── SDL_blendmode.h │ │ │ ├── SDL_clipboard.h │ │ │ ├── SDL_config.h │ │ │ ├── SDL_config.h.cmake │ │ │ ├── SDL_config.h.in │ │ │ ├── SDL_config_android.h │ │ │ ├── SDL_config_iphoneos.h │ │ │ ├── SDL_config_macosx.h │ │ │ ├── SDL_config_macosx.h.orig │ │ │ ├── SDL_config_minimal.h │ │ │ ├── SDL_config_pandora.h │ │ │ ├── SDL_config_psp.h │ │ │ ├── SDL_config_windows.h │ │ │ ├── SDL_config_winrt.h │ │ │ ├── SDL_config_wiz.h │ │ │ ├── SDL_copying.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_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_sensor.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_memory.h │ │ │ ├── SDL_test_random.h │ │ │ ├── SDL_thread.h │ │ │ ├── SDL_timer.h │ │ │ ├── SDL_touch.h │ │ │ ├── SDL_types.h │ │ │ ├── SDL_version.h │ │ │ ├── SDL_video.h │ │ │ ├── SDL_vulkan.h │ │ │ ├── begin_code.h │ │ │ └── close_code.h │ │ └── lib │ │ │ └── x86 │ │ │ ├── SDL2.dll │ │ │ ├── SDL2.lib │ │ │ ├── SDL2main.lib │ │ │ └── SDL2test.lib │ ├── SDL2_image-2.0.4 │ │ ├── CHANGES.txt │ │ ├── COPYING.txt │ │ ├── README.txt │ │ ├── include │ │ │ └── SDL_image.h │ │ └── lib │ │ │ └── x86 │ │ │ ├── LICENSE.jpeg.txt │ │ │ ├── LICENSE.png.txt │ │ │ ├── LICENSE.tiff.txt │ │ │ ├── LICENSE.webp.txt │ │ │ ├── LICENSE.zlib.txt │ │ │ ├── SDL2_image.dll │ │ │ ├── SDL2_image.lib │ │ │ ├── libjpeg-9.dll │ │ │ ├── libpng16-16.dll │ │ │ ├── libtiff-5.dll │ │ │ ├── libwebp-7.dll │ │ │ └── zlib1.dll │ ├── SDL2_mixer-2.0.4 │ │ ├── CHANGES.txt │ │ ├── COPYING.txt │ │ ├── README.txt │ │ ├── include │ │ │ └── SDL_mixer.h │ │ └── lib │ │ │ └── x86 │ │ │ ├── LICENSE.FLAC.txt │ │ │ ├── LICENSE.modplug.txt │ │ │ ├── LICENSE.mpg123.txt │ │ │ ├── LICENSE.ogg-vorbis.txt │ │ │ ├── LICENSE.opus.txt │ │ │ ├── LICENSE.opusfile.txt │ │ │ ├── SDL2_mixer.dll │ │ │ ├── SDL2_mixer.lib │ │ │ ├── libFLAC-8.dll │ │ │ ├── libmodplug-1.dll │ │ │ ├── libmpg123-0.dll │ │ │ ├── libogg-0.dll │ │ │ ├── libopus-0.dll │ │ │ ├── libopusfile-0.dll │ │ │ ├── libvorbis-0.dll │ │ │ └── libvorbisfile-3.dll │ ├── glew-2.1.0 │ │ ├── LICENSE.txt │ │ ├── include │ │ │ └── GL │ │ │ │ ├── eglew.h │ │ │ │ ├── glew.h │ │ │ │ ├── glxew.h │ │ │ │ └── wglew.h │ │ └── lib │ │ │ └── Release │ │ │ └── Win32 │ │ │ └── glew32s.lib │ └── readme.txt └── macOS │ ├── Box2D │ ├── include │ │ └── Box2D │ │ │ ├── Box2D.h │ │ │ ├── Collision │ │ │ ├── Shapes │ │ │ │ ├── b2ChainShape.h │ │ │ │ ├── b2CircleShape.h │ │ │ │ ├── b2EdgeShape.h │ │ │ │ ├── b2PolygonShape.h │ │ │ │ └── b2Shape.h │ │ │ ├── b2BroadPhase.h │ │ │ ├── b2Collision.h │ │ │ ├── b2Distance.h │ │ │ ├── b2DynamicTree.h │ │ │ └── b2TimeOfImpact.h │ │ │ ├── Common │ │ │ ├── b2BlockAllocator.h │ │ │ ├── b2Draw.h │ │ │ ├── b2GrowableStack.h │ │ │ ├── b2Math.h │ │ │ ├── b2Settings.h │ │ │ ├── b2StackAllocator.h │ │ │ └── b2Timer.h │ │ │ ├── Dynamics │ │ │ ├── Contacts │ │ │ │ ├── b2ChainAndCircleContact.h │ │ │ │ ├── b2ChainAndPolygonContact.h │ │ │ │ ├── b2CircleContact.h │ │ │ │ ├── b2Contact.h │ │ │ │ ├── b2ContactSolver.h │ │ │ │ ├── b2EdgeAndCircleContact.h │ │ │ │ ├── b2EdgeAndPolygonContact.h │ │ │ │ ├── b2PolygonAndCircleContact.h │ │ │ │ └── b2PolygonContact.h │ │ │ ├── Joints │ │ │ │ ├── b2DistanceJoint.h │ │ │ │ ├── b2FrictionJoint.h │ │ │ │ ├── b2GearJoint.h │ │ │ │ ├── b2Joint.h │ │ │ │ ├── b2MotorJoint.h │ │ │ │ ├── b2MouseJoint.h │ │ │ │ ├── b2PrismaticJoint.h │ │ │ │ ├── b2PulleyJoint.h │ │ │ │ ├── b2RevoluteJoint.h │ │ │ │ ├── b2RopeJoint.h │ │ │ │ ├── b2WeldJoint.h │ │ │ │ └── b2WheelJoint.h │ │ │ ├── b2Body.h │ │ │ ├── b2ContactManager.h │ │ │ ├── b2Fixture.h │ │ │ ├── b2Island.h │ │ │ ├── b2TimeStep.h │ │ │ ├── b2World.h │ │ │ └── b2WorldCallbacks.h │ │ │ └── Rope │ │ │ └── b2Rope.h │ └── lib │ │ ├── Box2D │ │ ├── Box2D-targets-noconfig.cmake │ │ └── Box2D-targets.cmake │ │ └── libBox2D.a │ ├── Bullet │ ├── BulletCollision.framework │ │ ├── BulletCollision │ │ ├── Headers │ │ ├── Resources │ │ └── Versions │ │ │ ├── 2.86 │ │ │ ├── BulletCollision │ │ │ ├── Headers │ │ │ │ ├── BroadphaseCollision │ │ │ │ │ ├── btAxisSweep3.h │ │ │ │ │ ├── btBroadphaseInterface.h │ │ │ │ │ ├── btBroadphaseProxy.h │ │ │ │ │ ├── btCollisionAlgorithm.h │ │ │ │ │ ├── btDbvt.h │ │ │ │ │ ├── btDbvtBroadphase.h │ │ │ │ │ ├── btDispatcher.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 │ │ │ │ │ ├── btCollisionWorldImporter.h │ │ │ │ │ ├── btCompoundCollisionAlgorithm.h │ │ │ │ │ ├── btCompoundCompoundCollisionAlgorithm.h │ │ │ │ │ ├── btConvex2dConvex2dAlgorithm.h │ │ │ │ │ ├── btConvexConcaveCollisionAlgorithm.h │ │ │ │ │ ├── btConvexConvexAlgorithm.h │ │ │ │ │ ├── btConvexPlaneCollisionAlgorithm.h │ │ │ │ │ ├── btDefaultCollisionConfiguration.h │ │ │ │ │ ├── btEmptyCollisionAlgorithm.h │ │ │ │ │ ├── btGhostObject.h │ │ │ │ │ ├── btHashedSimplePairCache.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 │ │ │ │ ├── Gimpact │ │ │ │ │ ├── btBoxCollision.h │ │ │ │ │ ├── btClipPolygon.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 │ │ │ │ └── btBulletCollisionCommon.h │ │ │ └── Resources │ │ │ │ └── Info.plist │ │ │ └── Current │ ├── BulletDynamics.framework │ │ ├── BulletDynamics │ │ ├── Headers │ │ ├── Resources │ │ └── Versions │ │ │ ├── 2.86 │ │ │ ├── BulletDynamics │ │ │ ├── Headers │ │ │ │ ├── Character │ │ │ │ │ ├── btCharacterControllerInterface.h │ │ │ │ │ └── btKinematicCharacterController.h │ │ │ │ ├── ConstraintSolver │ │ │ │ │ ├── btConeTwistConstraint.h │ │ │ │ │ ├── btConstraintSolver.h │ │ │ │ │ ├── btContactConstraint.h │ │ │ │ │ ├── btContactSolverInfo.h │ │ │ │ │ ├── btFixedConstraint.h │ │ │ │ │ ├── btGearConstraint.h │ │ │ │ │ ├── btGeneric6DofConstraint.h │ │ │ │ │ ├── btGeneric6DofSpring2Constraint.h │ │ │ │ │ ├── btGeneric6DofSpringConstraint.h │ │ │ │ │ ├── btHinge2Constraint.h │ │ │ │ │ ├── btHingeConstraint.h │ │ │ │ │ ├── btJacobianEntry.h │ │ │ │ │ ├── btNNCGConstraintSolver.h │ │ │ │ │ ├── btPoint2PointConstraint.h │ │ │ │ │ ├── btSequentialImpulseConstraintSolver.h │ │ │ │ │ ├── btSliderConstraint.h │ │ │ │ │ ├── btSolve2LinearConstraint.h │ │ │ │ │ ├── btSolverBody.h │ │ │ │ │ ├── btSolverConstraint.h │ │ │ │ │ ├── btTypedConstraint.h │ │ │ │ │ └── btUniversalConstraint.h │ │ │ │ ├── Dynamics │ │ │ │ │ ├── btActionInterface.h │ │ │ │ │ ├── btDiscreteDynamicsWorld.h │ │ │ │ │ ├── btDiscreteDynamicsWorldMt.h │ │ │ │ │ ├── btDynamicsWorld.h │ │ │ │ │ ├── btRigidBody.h │ │ │ │ │ ├── btSimpleDynamicsWorld.h │ │ │ │ │ └── btSimulationIslandManagerMt.h │ │ │ │ ├── Featherstone │ │ │ │ │ ├── btMultiBody.h │ │ │ │ │ ├── btMultiBodyConstraint.h │ │ │ │ │ ├── btMultiBodyConstraintSolver.h │ │ │ │ │ ├── btMultiBodyDynamicsWorld.h │ │ │ │ │ ├── btMultiBodyFixedConstraint.h │ │ │ │ │ ├── btMultiBodyJointLimitConstraint.h │ │ │ │ │ ├── btMultiBodyJointMotor.h │ │ │ │ │ ├── btMultiBodyLink.h │ │ │ │ │ ├── btMultiBodyLinkCollider.h │ │ │ │ │ ├── btMultiBodyPoint2Point.h │ │ │ │ │ ├── btMultiBodySliderConstraint.h │ │ │ │ │ └── btMultiBodySolverConstraint.h │ │ │ │ ├── MLCPSolvers │ │ │ │ │ ├── btDantzigLCP.h │ │ │ │ │ ├── btDantzigSolver.h │ │ │ │ │ ├── btLemkeAlgorithm.h │ │ │ │ │ ├── btLemkeSolver.h │ │ │ │ │ ├── btMLCPSolver.h │ │ │ │ │ ├── btMLCPSolverInterface.h │ │ │ │ │ ├── btPATHSolver.h │ │ │ │ │ └── btSolveProjectedGaussSeidel.h │ │ │ │ ├── Vehicle │ │ │ │ │ ├── btRaycastVehicle.h │ │ │ │ │ ├── btVehicleRaycaster.h │ │ │ │ │ └── btWheelInfo.h │ │ │ │ ├── btBulletCollisionCommon.h │ │ │ │ └── btBulletDynamicsCommon.h │ │ │ └── Resources │ │ │ │ └── Info.plist │ │ │ └── Current │ ├── BulletSoftBody.framework │ │ ├── BulletSoftBody │ │ ├── Headers │ │ ├── Resources │ │ └── Versions │ │ │ ├── 2.86 │ │ │ ├── BulletSoftBody │ │ │ ├── Headers │ │ │ │ ├── btDefaultSoftBodySolver.h │ │ │ │ ├── btSoftBody.h │ │ │ │ ├── btSoftBodyConcaveCollisionAlgorithm.h │ │ │ │ ├── btSoftBodyData.h │ │ │ │ ├── btSoftBodyHelpers.h │ │ │ │ ├── btSoftBodyRigidBodyCollisionConfiguration.h │ │ │ │ ├── btSoftBodySolverVertexBuffer.h │ │ │ │ ├── btSoftBodySolvers.h │ │ │ │ ├── btSoftMultiBodyDynamicsWorld.h │ │ │ │ ├── btSoftRigidCollisionAlgorithm.h │ │ │ │ ├── btSoftRigidDynamicsWorld.h │ │ │ │ ├── btSoftSoftCollisionAlgorithm.h │ │ │ │ └── btSparseSDF.h │ │ │ └── Resources │ │ │ │ └── Info.plist │ │ │ └── Current │ ├── LinearMath.framework │ │ ├── Headers │ │ ├── LinearMath │ │ ├── Resources │ │ └── Versions │ │ │ ├── 2.86 │ │ │ ├── Headers │ │ │ │ ├── btAabbUtil2.h │ │ │ │ ├── btAlignedAllocator.h │ │ │ │ ├── btAlignedObjectArray.h │ │ │ │ ├── btConvexHull.h │ │ │ │ ├── btConvexHullComputer.h │ │ │ │ ├── btDefaultMotionState.h │ │ │ │ ├── btGeometryUtil.h │ │ │ │ ├── btGrahamScan2dConvexHull.h │ │ │ │ ├── btHashMap.h │ │ │ │ ├── btIDebugDraw.h │ │ │ │ ├── btList.h │ │ │ │ ├── btMatrix3x3.h │ │ │ │ ├── btMinMax.h │ │ │ │ ├── btMotionState.h │ │ │ │ ├── btPolarDecomposition.h │ │ │ │ ├── btPoolAllocator.h │ │ │ │ ├── btQuadWord.h │ │ │ │ ├── btQuaternion.h │ │ │ │ ├── btQuickprof.h │ │ │ │ ├── btRandom.h │ │ │ │ ├── btScalar.h │ │ │ │ ├── btSerializer.h │ │ │ │ ├── btStackAlloc.h │ │ │ │ ├── btThreads.h │ │ │ │ ├── btTransform.h │ │ │ │ ├── btTransformUtil.h │ │ │ │ └── btVector3.h │ │ │ ├── LinearMath │ │ │ └── Resources │ │ │ │ └── Info.plist │ │ │ └── Current │ └── readme.txt │ ├── Lua │ ├── include │ │ ├── lapi.h │ │ ├── lauxlib.h │ │ ├── lcode.h │ │ ├── lctype.h │ │ ├── ldebug.h │ │ ├── ldo.h │ │ ├── lfunc.h │ │ ├── lgc.h │ │ ├── llex.h │ │ ├── llimits.h │ │ ├── lmem.h │ │ ├── lobject.h │ │ ├── lopcodes.h │ │ ├── lparser.h │ │ ├── lprefix.h │ │ ├── lstate.h │ │ ├── lstring.h │ │ ├── ltable.h │ │ ├── ltm.h │ │ ├── lua.h │ │ ├── lua.hpp │ │ ├── luaconf.h │ │ ├── lualib.h │ │ ├── lundump.h │ │ ├── lvm.h │ │ └── lzio.h │ └── lib │ │ └── liblua.a │ └── TinyGLTF │ ├── json.hpp │ ├── stb_image.h │ └── tiny_gltf.h └── version-history.md /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "submodules/SimpleRenderEngine"] 2 | path = submodules/SimpleRenderEngine 3 | url = https://github.com/mortennobel/SimpleRenderEngine.git 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Morten Nobel-Jørgensen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /project/3D_Scenegraph/BulletDebugDrawSRE.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-11. 3 | // 4 | 5 | #pragma once 6 | 7 | #include "LinearMath/btIDebugDraw.h" 8 | #include 9 | #include "glm/glm.hpp" 10 | #include "sre/Color.hpp" 11 | #include "sre/RenderPass.hpp" 12 | 13 | class BulletDebugDrawSRE final : public btIDebugDraw { 14 | public: 15 | void drawLine(const btVector3 &from, const btVector3 &to, const btVector3 &color) override; 16 | 17 | void drawContactPoint(const btVector3 &PointOnB, const btVector3 &normalOnB, btScalar distance, int lifeTime, 18 | const btVector3 &color) override; 19 | 20 | void reportErrorWarning(const char *warningString) override; 21 | 22 | void draw3dText(const btVector3 &location, const char *textString) override; 23 | 24 | void setDebugMode(int debugMode) override; 25 | 26 | int getDebugMode() const override; 27 | 28 | void newFrame(); 29 | void render(sre::RenderPass& renderPass); 30 | private: 31 | DebugDrawModes mode = DBG_DrawWireframe; 32 | std::vector linePositions; 33 | std::vector lineColors; 34 | }; 35 | 36 | 37 | -------------------------------------------------------------------------------- /project/3D_Scenegraph/BulletPhysics.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-08. 3 | // 4 | #pragma once 5 | 6 | #include "btBulletDynamicsCommon.h" 7 | #include "glm/glm.hpp" 8 | #include "BulletDebugDrawSRE.hpp" 9 | #include "sre/RenderPass.hpp" 10 | 11 | class Scene; 12 | 13 | class BulletPhysics { 14 | public: 15 | BulletPhysics(); 16 | ~BulletPhysics(); 17 | 18 | const glm::vec3 &getGravity() const; 19 | void setGravity(const glm::vec3 &gravity); 20 | 21 | void step(Scene* scene); 22 | 23 | void debugDrawNewFrame(); 24 | void debugDraw(sre::RenderPass& renderPass); 25 | private: 26 | btBroadphaseInterface* broadphase; 27 | btDefaultCollisionConfiguration* collisionConfiguration; 28 | btCollisionDispatcher* dispatcher; 29 | btSequentialImpulseConstraintSolver* solver; 30 | btDiscreteDynamicsWorld* world; 31 | 32 | glm::vec3 gravity = {0, -9.8f, 0}; 33 | float timeStep = 1/60.0f; 34 | int maxSubSteps = 10; 35 | 36 | BulletDebugDrawSRE debugDrawObj; 37 | 38 | friend class RigidBody; 39 | }; 40 | -------------------------------------------------------------------------------- /project/3D_Scenegraph/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB SceneSrc 2 | "*.hpp" 3 | "*.h" 4 | "*.cpp" 5 | ) 6 | 7 | # Compile cpp files 8 | add_executable(SRE-Scenegraph ${SceneSrc}) 9 | target_link_libraries(SRE-Scenegraph ${all_libs}) 10 | 11 | file(COPY assets DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Debug) 12 | file(COPY assets DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Release) 13 | file(COPY assets DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) 14 | 15 | IF (WIN32) 16 | # Copy dll files to ${CMAKE_CURRENT_BINARY_DIR}/Debug 17 | file(COPY ${DLLFileList} DESTINATION Debug) 18 | file(COPY ${DLLFileList} DESTINATION Release) 19 | file(COPY ${DLLFileList} DESTINATION .) 20 | 21 | # Set working directory to ${CMAKE_CURRENT_BINARY_DIR}/Debug 22 | set_target_properties(SRE-Scenegraph PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Debug) 23 | ENDIF(WIN32) -------------------------------------------------------------------------------- /project/3D_Scenegraph/Camera.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-08. 3 | // 4 | 5 | #pragma once 6 | 7 | #include 8 | #include 9 | #include "GameObject.hpp" 10 | #include 11 | #include "Transform.hpp" 12 | #include "Renderable.hpp" 13 | #include "Ray.hpp" 14 | 15 | class Camera : public Component { 16 | public: 17 | explicit Camera(GameObject * gameObject); 18 | ~Camera() override = default; 19 | 20 | void bind(); 21 | 22 | bool perspective = true; 23 | float fovY = 45; 24 | float size; 25 | float nearPlane = 0.1; 26 | float farPlane = 100; 27 | bool clearColorBuffer = true; 28 | bool clearDepthBuffer = true; 29 | 30 | sre::Color clearColor = sre::Color(0,0,0,1); 31 | 32 | bool debugGui=true; 33 | 34 | void debugGUI() override ; 35 | 36 | Ray screenPointToRay(glm::vec2 point); 37 | 38 | sre::Camera getCamera(); 39 | private: 40 | Transform* transform; 41 | sre::Camera camera; 42 | friend class Engine; 43 | friend class Scene; 44 | }; -------------------------------------------------------------------------------- /project/3D_Scenegraph/CollisionHandler.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-15. 3 | // 4 | 5 | #pragma once 6 | 7 | class CollisionHandler { 8 | public: 9 | virtual void onCollision(size_t collisionId, RigidBody* other, glm::vec3 position, bool begin) = 0; // begin or update 10 | virtual void onCollisionEnd(size_t collisionId) = 0; 11 | }; -------------------------------------------------------------------------------- /project/3D_Scenegraph/Component.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-06. 3 | // 4 | 5 | #include "Component.hpp" 6 | 7 | Component::Component(GameObject* gameObject) 8 | :gameObject(gameObject) 9 | { 10 | } 11 | 12 | GameObject *Component::getGameObject() { 13 | return gameObject; 14 | } 15 | 16 | void Component::debugGUI() { 17 | 18 | } 19 | 20 | void Component::onStart() { 21 | 22 | } 23 | 24 | void Component::onDestroy(){ 25 | 26 | } 27 | -------------------------------------------------------------------------------- /project/3D_Scenegraph/Component.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-06. 3 | // 4 | 5 | #pragma once 6 | 7 | // forward declaration 8 | class GameObject; 9 | 10 | class Component { 11 | public: 12 | virtual ~Component() = default; 13 | GameObject* getGameObject(); 14 | 15 | // invoked on start 16 | virtual void onStart(); 17 | 18 | // invoked on object destruction 19 | virtual void onDestroy(); 20 | 21 | 22 | virtual void debugGUI(); 23 | 24 | protected: 25 | Component(GameObject* gameObject); 26 | GameObject *gameObject = nullptr; 27 | 28 | friend class GameObject; 29 | }; -------------------------------------------------------------------------------- /project/3D_Scenegraph/GameObject.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-06. 3 | // 4 | 5 | #include "GameObject.hpp" 6 | #include "Transform.hpp" 7 | 8 | 9 | GameObject::GameObject(std::string name_, Scene* scene_) 10 | :name(name_), scene(scene_) 11 | { 12 | addComponent(); 13 | } 14 | 15 | GameObject::~GameObject() { 16 | } 17 | 18 | void GameObject::setName(const std::string &name) { 19 | GameObject::name = name; 20 | } 21 | 22 | 23 | std::string GameObject::getName() { 24 | return name; 25 | } 26 | 27 | const std::vector& GameObject::getCollisionHandlers(){ 28 | return collisionHandlers; 29 | } 30 | 31 | bool GameObject::removeComponent(std::shared_ptr ptr) { 32 | for (auto iter = components.begin();iter != components.end(); iter++){ 33 | if (*iter == ptr){ 34 | auto ch = dynamic_cast(ptr.get()); 35 | if (ch) { 36 | collisionHandlers.erase(std::find(collisionHandlers.begin(), collisionHandlers.end(), ch)); 37 | } 38 | components.erase(iter); 39 | return true; 40 | } 41 | } 42 | return false; 43 | } 44 | 45 | const std::vector> &GameObject::getComponents() { 46 | return components; 47 | } 48 | 49 | Scene *GameObject::getScene() { 50 | return scene; 51 | } 52 | -------------------------------------------------------------------------------- /project/3D_Scenegraph/Light.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-08. 3 | // 4 | 5 | #include "Light.hpp" 6 | 7 | Light::Light(GameObject* gameObject) 8 | :Component(gameObject), light(light.create().withDirectionalLight({0,-1,0}).build()), 9 | transform(gameObject->getComponent().get()) 10 | { 11 | } 12 | 13 | 14 | 15 | void Light::debugGUI() { 16 | if (ImGui::TreeNode("Light")) { 17 | int lt = (int)light.lightType; 18 | ImGui::RadioButton("Point", <, 0); ImGui::SameLine(); 19 | ImGui::RadioButton("Directional", <, 1); 20 | light.lightType = (sre::LightType)lt; 21 | 22 | ImGui::DragFloat3("Color", &(light.color.x)); 23 | if (light.lightType == sre::LightType::Point){ 24 | ImGui::DragFloat("Range", &(light.range)); 25 | } 26 | ImGui::TreePop(); 27 | } 28 | } 29 | 30 | sre::Light &Light::getLight() { 31 | if (light.lightType == sre::LightType::Directional){ 32 | auto res = transform->globalTransform() * glm::vec4(0,0,-1,0); 33 | light.direction = glm::vec3{res.x,res.y,res.z}; 34 | } else { 35 | auto res = transform->globalTransform() * glm::vec4(0,0,0,1); 36 | light.position = glm::vec3{res.x,res.y,res.z}; 37 | } 38 | return light; 39 | } 40 | -------------------------------------------------------------------------------- /project/3D_Scenegraph/Light.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-08. 3 | // 4 | 5 | #pragma once 6 | 7 | #include 8 | #include 9 | #include 10 | #include "GameObject.hpp" 11 | #include 12 | #include "Transform.hpp" 13 | #include "Updatable.hpp" 14 | 15 | class Light : public Component { 16 | public: 17 | Light(GameObject* gameObject); 18 | 19 | void debugGUI() override ; 20 | 21 | sre::Light& getLight(); 22 | private: 23 | Transform* transform; 24 | 25 | sre::Light light; 26 | }; -------------------------------------------------------------------------------- /project/3D_Scenegraph/MeshRenderer.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-06. 3 | // 4 | 5 | 6 | #pragma once 7 | 8 | #include 9 | #include "GameObject.hpp" 10 | #include 11 | #include "Transform.hpp" 12 | #include "Renderable.hpp" 13 | 14 | class MeshRenderer : public Component, public Renderable { 15 | public: 16 | explicit MeshRenderer(GameObject* gameObject); 17 | ~MeshRenderer() override; 18 | 19 | void setMesh(std::shared_ptr mesh); 20 | std::shared_ptr getMesh(); 21 | 22 | void setMaterial(std::shared_ptr material); 23 | std::shared_ptr getMaterial(); 24 | 25 | void draw(sre::RenderPass* renderPass) override; 26 | 27 | void debugGUI() override ; 28 | 29 | private: 30 | std::shared_ptr mesh; 31 | std::shared_ptr material; 32 | Transform* transform; 33 | }; 34 | -------------------------------------------------------------------------------- /project/3D_Scenegraph/Ray.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-08. 3 | // 4 | 5 | #pragma once 6 | 7 | #include "glm/glm.hpp" 8 | 9 | struct Ray { 10 | glm::vec3 point; 11 | glm::vec3 direction; 12 | }; -------------------------------------------------------------------------------- /project/3D_Scenegraph/Renderable.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class Renderable { 6 | public: 7 | virtual void draw(sre::RenderPass* renderPass) = 0; 8 | }; -------------------------------------------------------------------------------- /project/3D_Scenegraph/RigidBody.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-10. 3 | // 4 | 5 | #include "Component.hpp" 6 | #include "btBulletDynamicsCommon.h" 7 | #include "glm/glm.hpp" 8 | 9 | class Transform; 10 | 11 | 12 | class RigidBody : public Component { 13 | public: 14 | explicit RigidBody(GameObject* gameObject); 15 | ~RigidBody() final; 16 | void initRigidBodyWithSphere(float radius, float mass = 1.0); 17 | void initRigidBodyWithBox(glm::vec3 halfExtend, float mass = 1.0); 18 | void initRigidBodyWithStaticPlane(glm::vec3 planeNormal, float planeDist); 19 | void initRigidBody(btRigidBody::btRigidBodyConstructionInfo info); 20 | btRigidBody* getRigidBody(); 21 | private: 22 | int collisionStartFrameId; 23 | int collisionStartUpdateFrameId; 24 | int collisionStartEndFrameId; 25 | void updateTransformFromPhysicsWorld(); 26 | btRigidBody* rigidBody = nullptr; 27 | Transform* transform; 28 | 29 | btCollisionShape* shape = nullptr; 30 | btDefaultMotionState* fallMotionState = nullptr; 31 | 32 | friend class BulletPhysics; 33 | friend class Scene; 34 | }; 35 | 36 | 37 | -------------------------------------------------------------------------------- /project/3D_Scenegraph/Transform.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-06. 3 | // 4 | #pragma once 5 | #include 6 | #include "glm/glm.hpp" 7 | #include 8 | #include 9 | #include "Component.hpp" 10 | 11 | class GameObject; 12 | 13 | class Transform : public Component { 14 | public: 15 | Transform(GameObject* gameObject); 16 | 17 | glm::vec4 color; 18 | std::string name; 19 | 20 | glm::vec3 position = glm::vec3(0,0,0); 21 | 22 | // euler rotation in degrees (default value 0,0,0) 23 | glm::vec3 rotation = glm::vec3(0,0,0); 24 | glm::vec3 scale = glm::vec3(1,1,1); 25 | 26 | glm::mat4 localRotation(); 27 | 28 | glm::mat4 localTransform(); 29 | glm::mat4 globalTransform(); 30 | 31 | void debugGUI() override; 32 | 33 | Transform *getParent() const; 34 | 35 | void setParent(Transform *parent); 36 | const std::vector & getChildren(); 37 | 38 | void lookAt(glm::vec3 at,glm::vec3 up); 39 | void lookAt(Transform* at,glm::vec3 up); 40 | private: 41 | Transform * parent = nullptr; 42 | sre::Mesh* mesh = nullptr; 43 | std::vector children; 44 | }; 45 | 46 | 47 | -------------------------------------------------------------------------------- /project/3D_Scenegraph/Updatable.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-08. 3 | // 4 | 5 | #pragma once 6 | 7 | class Updatable { 8 | public: 9 | virtual void update(float time) = 0; 10 | }; -------------------------------------------------------------------------------- /project/3D_Scenegraph/assets/todo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/3D_Scenegraph/assets/todo -------------------------------------------------------------------------------- /project/Box2DTestbed/Data/DroidSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/Box2DTestbed/Data/DroidSans.ttf -------------------------------------------------------------------------------- /project/Box2DTestbed/Tests/FooTest.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // FooTest.cpp 3 | // Box2D 4 | // 5 | // Created by Morten Nobel-Jørgensen on 02/10/16. 6 | // 7 | // 8 | 9 | #include "FooTest.h" 10 | -------------------------------------------------------------------------------- /project/BussIK/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | file(GLOB BussIKSrc 3 | "*.hpp" 4 | "*.h" 5 | "*.cpp" 6 | ) 7 | 8 | # Compile cpp files 9 | add_executable(SRE-BussIK ${BussIKSrc}) 10 | target_link_libraries(SRE-BussIK ${all_libs}) 11 | 12 | 13 | IF (WIN32) 14 | # Copy dll files to ${CMAKE_CURRENT_BINARY_DIR}/Debug 15 | file(COPY ${DLLFileList} DESTINATION Debug) 16 | file(COPY ${DLLFileList} DESTINATION Release) 17 | 18 | # Set working directory to ${CMAKE_CURRENT_BINARY_DIR}/Debug 19 | set_target_properties(SRE-BussIK PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Debug) 20 | ENDIF(WIN32) 21 | -------------------------------------------------------------------------------- /project/gui/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB GuiSrc 2 | "*.hpp" 3 | "*.h" 4 | "*.cpp" 5 | ) 6 | 7 | # Compile cpp files 8 | add_executable(SRE-Gui ${GuiSrc}) 9 | target_link_libraries(SRE-Gui ${all_libs}) 10 | 11 | file(COPY assets DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Debug) 12 | file(COPY assets DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Release) 13 | file(COPY assets DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) 14 | 15 | IF (WIN32) 16 | # Copy dll files to ${CMAKE_CURRENT_BINARY_DIR}/Debug 17 | file(COPY ${DLLFileList} DESTINATION Debug) 18 | file(COPY ${DLLFileList} DESTINATION Release) 19 | file(COPY ${DLLFileList} DESTINATION .) 20 | 21 | # Set working directory to ${CMAKE_CURRENT_BINARY_DIR}/Debug 22 | set_target_properties(SRE-Gui PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Debug) 23 | ENDIF(WIN32) 24 | -------------------------------------------------------------------------------- /project/gui/CameraComponent.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-11-04. 3 | // 4 | #pragma once 5 | 6 | #include "Component.hpp" 7 | #include "sre/Camera.hpp" 8 | 9 | // Create a game camera 10 | class CameraComponent : public Component{ 11 | public: 12 | explicit CameraComponent(GameObject *gameObject); 13 | 14 | void update(float deltaTime) override; 15 | 16 | void onGui() override; 17 | 18 | void setCamera(sre::Camera* camera); 19 | 20 | void setSize(float size); 21 | 22 | bool onKey(SDL_Event &event) override; 23 | 24 | void setTarget(std::shared_ptr& target); 25 | 26 | glm::vec2 getWindowCoordinates(glm::vec3 worldpos); 27 | glm::vec3 clipToWorldspaceCoordinates(glm::vec3 clipCoordinates); 28 | private: 29 | sre::Camera* camera; 30 | float size = 400; 31 | std::shared_ptr target; 32 | float safeArea = 0.3f; // percentage from center 33 | }; 34 | 35 | -------------------------------------------------------------------------------- /project/gui/Component.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel-Jørgensen on 10/10/2017. 3 | // 4 | 5 | #include "Component.hpp" 6 | 7 | Component::Component(GameObject *gameObject) 8 | :gameObject(gameObject) 9 | { 10 | } 11 | 12 | void Component::renderSprite(sre::SpriteBatch::SpriteBatchBuilder &spriteBatchBuilder) { 13 | 14 | } 15 | 16 | void Component::update(float deltaTime) { 17 | 18 | } 19 | 20 | GameObject *Component::getGameObject() { 21 | return gameObject; 22 | } 23 | 24 | bool Component::onKey(SDL_Event &event) { 25 | return false; 26 | } 27 | 28 | void Component::onGui(){ 29 | 30 | } -------------------------------------------------------------------------------- /project/gui/Component.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "sre/SpriteBatch.hpp" 4 | 5 | // Forward declaration 6 | class GameObject; 7 | class PhysicsComponent; 8 | 9 | 10 | 11 | class Component { // Abstract class that adds behavior to a GameObject 12 | public: 13 | explicit Component(GameObject *gameObject); 14 | virtual ~Component() = default; 15 | 16 | GameObject *getGameObject(); 17 | 18 | virtual bool onKey(SDL_Event &event); // The function should return true, if the key event is consumed. This prevents other components to receive the event. 19 | 20 | virtual void update(float deltaTime); 21 | virtual void renderSprite(sre::SpriteBatch::SpriteBatchBuilder& spriteBatchBuilder); 22 | 23 | virtual void onGui(); 24 | protected: 25 | GameObject *gameObject; 26 | 27 | friend class GameObject; 28 | }; 29 | 30 | -------------------------------------------------------------------------------- /project/gui/GameObject.cpp: -------------------------------------------------------------------------------- 1 | #include "GameObject.hpp" 2 | #include 3 | #include 4 | #include "Component.hpp" 5 | 6 | GameObject::~GameObject(){ 7 | // remove reference to this in components 8 | for (auto& c : components){ 9 | c->gameObject = nullptr; 10 | } 11 | } 12 | 13 | bool GameObject::removeComponent(std::shared_ptr component) { 14 | auto comp = std::find(components.begin(), components.end(),component); 15 | if (comp != components.end()){ 16 | components.erase(comp); 17 | } 18 | return false; 19 | } 20 | 21 | const glm::vec2 &GameObject::getPosition() const { 22 | return position; 23 | } 24 | 25 | void GameObject::setPosition(const glm::vec2 &position) { 26 | GameObject::position = position; 27 | } 28 | 29 | float GameObject::getRotation() const { 30 | return rotation; 31 | } 32 | 33 | void GameObject::setRotation(float rotation) { 34 | GameObject::rotation = rotation; 35 | } 36 | 37 | void GameObject::renderSprite(sre::SpriteBatch::SpriteBatchBuilder &spriteBatchBuilder) { 38 | for (auto& comp : components){ 39 | comp->renderSprite(spriteBatchBuilder); 40 | } 41 | } 42 | 43 | void GameObject::update(float deltaTime) { 44 | for (auto& comp : components){ 45 | comp->update(deltaTime); 46 | } 47 | } 48 | 49 | const std::vector> &GameObject::getComponents() { 50 | return components; 51 | } 52 | -------------------------------------------------------------------------------- /project/gui/Hero.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-10-30. 3 | // 4 | 5 | #pragma once 6 | 7 | #include "Component.hpp" 8 | #include "CameraComponent.hpp" 9 | 10 | class Hero : public Component { 11 | public: 12 | explicit Hero(GameObject *gameObject); 13 | 14 | void onGui() override; 15 | 16 | bool onKey(SDL_Event &event) override; 17 | void update(float deltaTime) override; 18 | void setCamera(std::shared_ptr cam); 19 | private: 20 | void guiGameInfo(); 21 | void guiSpeechBubble(); 22 | void guiInventory(); 23 | 24 | std::shared_ptr powerbar; 25 | glm::vec2 powerbarSize; 26 | std::shared_ptr heartIcons[3]; 27 | glm::vec2 heartSize; 28 | std::shared_ptr heroSpriteAtlas; 29 | static std::map> inventoryTexture; 30 | glm::vec2 velocity; 31 | ImFont* ProggyTiny; 32 | 33 | float speachBubbleTimeOut = 10; 34 | std::string message = "Hi! AWSD to control."; 35 | 36 | std::shared_ptr cam; 37 | 38 | glm::ivec2 heroSize; 39 | 40 | // hero stats 41 | int health = 3; // between 0 and 6 42 | int score = 42; 43 | float power = 0.7; // between 0.0 and 1.0 44 | std::set inventorySet; 45 | }; 46 | -------------------------------------------------------------------------------- /project/gui/MainMenuComponent.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-10-30. 3 | // 4 | 5 | #include "Component.hpp" 6 | 7 | class RPG; 8 | 9 | class MainMenuComponent : public Component { 10 | public: 11 | explicit MainMenuComponent(GameObject *gameObject); 12 | void onGui() override; 13 | void setRPG(RPG* rpg); 14 | private: 15 | void playPressed(); 16 | void settingsPressed(); 17 | 18 | RPG* rpg; 19 | }; 20 | -------------------------------------------------------------------------------- /project/gui/RPG.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "sre/SDLRenderer.hpp" 3 | #include "GameObject.hpp" 4 | #include "Scene.h" 5 | 6 | class RPG { 7 | public: 8 | RPG(); 9 | void play(); 10 | private: 11 | void buildMainMenu(); 12 | void buildGame(); 13 | Scene mainMenu; 14 | Scene game; 15 | Scene* currentScene; 16 | std::shared_ptr world; 17 | sre::SDLRenderer r; 18 | void render(); 19 | }; 20 | 21 | -------------------------------------------------------------------------------- /project/gui/Scene.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-10-30. 3 | // 4 | #include "Scene.h" 5 | 6 | using namespace std; 7 | using namespace sre; 8 | 9 | std::shared_ptr Scene::createGameObject() { 10 | auto obj = shared_ptr(new GameObject()); 11 | sceneObjects.push_back(obj); 12 | return obj; 13 | } 14 | 15 | const std::vector>& Scene::getSceneObjects() { 16 | return sceneObjects; 17 | } 18 | 19 | Camera& Scene::getCamera() { 20 | return camera; 21 | } -------------------------------------------------------------------------------- /project/gui/Scene.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel Jørgensen on 2018-10-30. 3 | // 4 | #include "sre/Camera.hpp" 5 | #include "GameObject.hpp" 6 | 7 | class Scene { 8 | public: 9 | std::shared_ptr createGameObject(); 10 | sre::Camera& getCamera(); 11 | const std::vector>& getSceneObjects(); 12 | private: 13 | std::vector> sceneObjects; 14 | sre::Camera camera; 15 | }; 16 | 17 | 18 | -------------------------------------------------------------------------------- /project/gui/SpriteComponent.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel-Jørgensen on 10/10/2017. 3 | // 4 | 5 | #include "SpriteComponent.hpp" 6 | #include "GameObject.hpp" 7 | 8 | SpriteComponent::SpriteComponent(GameObject *gameObject) : Component(gameObject) {} 9 | 10 | void SpriteComponent::renderSprite(sre::SpriteBatch::SpriteBatchBuilder &spriteBatchBuilder) { 11 | sprite.setPosition(gameObject->getPosition()); 12 | sprite.setRotation(gameObject->getRotation()); 13 | spriteBatchBuilder.addSprite(sprite); 14 | } 15 | 16 | void SpriteComponent::setSprite(const sre::Sprite &sprite) { 17 | this->sprite = sprite; 18 | } 19 | 20 | sre::Sprite SpriteComponent::getSprite() { 21 | return sprite; 22 | } 23 | -------------------------------------------------------------------------------- /project/gui/SpriteComponent.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Component.hpp" 4 | #include "sre/Sprite.hpp" 5 | 6 | class SpriteComponent : public Component { 7 | public: 8 | explicit SpriteComponent(GameObject *gameObject); 9 | 10 | void renderSprite(sre::SpriteBatch::SpriteBatchBuilder &spriteBatchBuilder) override; 11 | 12 | void setSprite(const sre::Sprite& sprite); 13 | sre::Sprite getSprite(); 14 | private: 15 | sre::Sprite sprite; 16 | }; 17 | 18 | -------------------------------------------------------------------------------- /project/gui/assets/Antidote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/Antidote.png -------------------------------------------------------------------------------- /project/gui/assets/Arkanos_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/Arkanos_0.png -------------------------------------------------------------------------------- /project/gui/assets/Axe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/Axe.png -------------------------------------------------------------------------------- /project/gui/assets/BlueMagic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/BlueMagic.png -------------------------------------------------------------------------------- /project/gui/assets/Carrot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/Carrot.png -------------------------------------------------------------------------------- /project/gui/assets/Goblin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/Goblin.png -------------------------------------------------------------------------------- /project/gui/assets/Hat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/Hat.png -------------------------------------------------------------------------------- /project/gui/assets/Lemon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/Lemon.png -------------------------------------------------------------------------------- /project/gui/assets/Necklace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/Necklace.png -------------------------------------------------------------------------------- /project/gui/assets/ProggyTiny.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/ProggyTiny.ttf -------------------------------------------------------------------------------- /project/gui/assets/Shield.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/Shield.png -------------------------------------------------------------------------------- /project/gui/assets/hud_heartEmpty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/hud_heartEmpty.png -------------------------------------------------------------------------------- /project/gui/assets/hud_heartFull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/hud_heartFull.png -------------------------------------------------------------------------------- /project/gui/assets/hud_heartHalf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/hud_heartHalf.png -------------------------------------------------------------------------------- /project/gui/assets/license.txt: -------------------------------------------------------------------------------- 1 | Arkanos_0.png and Goblin.png: mage-city-arcanos 'Hyptosis' or link to www.lorestrome.com 2 | CC0 - public domain 3 | https://opengameart.org/content/mage-city-arcanos 4 | http://www.lorestrome.com/pixel_archive/characters.htm 5 | 6 | play & settings: 8 Bit Personalized Alphabet 7 | CC0 - public domain 8 | https://opengameart.org/content/8-bit-personalized-alphabet-only-letters 9 | 10 | Proggy font 11 | https://proggyfonts.net/proggy-tiny/ 12 | 13 | 496 pixel art icons for medieval/fantasy RPG 14 | CC0 15 | https://opengameart.org/content/496-pixel-art-icons-for-medievalfantasy-rpg 16 | 17 | Platformer Art Deluxe 18 | CC0 19 | https://opengameart.org/content/platformer-art-deluxe -------------------------------------------------------------------------------- /project/gui/assets/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/play.png -------------------------------------------------------------------------------- /project/gui/assets/powerbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/powerbar.png -------------------------------------------------------------------------------- /project/gui/assets/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/gui/assets/settings.png -------------------------------------------------------------------------------- /project/particle_system/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | file(GLOB ParticleSystemSrc 3 | "*.hpp" 4 | "*.h" 5 | "*.cpp" 6 | ) 7 | 8 | # Compile cpp files 9 | add_executable(SRE-ParticleSystem ${ParticleSystemSrc}) 10 | target_link_libraries(SRE-ParticleSystem ${all_libs}) 11 | 12 | # copy files to dest 13 | file(COPY particle-pack-01 DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Debug) 14 | file(COPY particle-pack-01 DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Release) 15 | 16 | IF (WIN32) 17 | # Copy dll files to ${CMAKE_CURRENT_BINARY_DIR}/Debug 18 | file(COPY ${DLLFileList} DESTINATION Debug) 19 | file(COPY ${DLLFileList} DESTINATION Release) 20 | 21 | # Set working directory to ${CMAKE_CURRENT_BINARY_DIR}/Debug 22 | set_target_properties(SRE-ParticleSystem PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Debug) 23 | ENDIF(WIN32) 24 | -------------------------------------------------------------------------------- /project/particle_system/Particle.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel-Jørgensen on 11/21/17. 3 | // 4 | 5 | #include "Particle.hpp" 6 | #include 7 | 8 | Particle::Particle(glm::vec3& position, glm::vec4 &color, float &size, glm::vec4 &uv) 9 | :position(position), timeOfBirth(-std::numeric_limits::max()), 10 | alive(false), color(color), uv(uv), size(size) 11 | { 12 | } 13 | 14 | int Particle::getIndex() { 15 | return index; 16 | } 17 | -------------------------------------------------------------------------------- /project/particle_system/Particle.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "glm/glm.hpp" 4 | 5 | class Particle { 6 | public: 7 | Particle(glm::vec3& position, glm::vec4& color, float& size, glm::vec4& uv); 8 | 9 | // physics 10 | glm::vec3& position; 11 | glm::vec3 velocity; 12 | float rotation = 0; 13 | float angularVelocity = 0; 14 | 15 | // lifetime 16 | float timeOfBirth = 0; 17 | float normalizedAge = 0; // between 0.0 and 1.0 18 | bool alive = false; 19 | 20 | // appearance 21 | glm::vec4& color; 22 | float& size; 23 | glm::vec4& uv; 24 | 25 | int getIndex(); 26 | private: 27 | int index; 28 | friend class ParticleSystem; 29 | }; 30 | -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/ember01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/particle_system/particle-pack-01/ember01.png -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/explosionstreak01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/particle_system/particle-pack-01/explosionstreak01.png -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/explosionstreak02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/particle_system/particle-pack-01/explosionstreak02.png -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/explosionstreak03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/particle_system/particle-pack-01/explosionstreak03.png -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/flash01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/particle_system/particle-pack-01/flash01.png -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/licence.txt: -------------------------------------------------------------------------------- 1 | File(s): ember01.png, explosionstreak01.png, explosionstreak02.png, explosionstreak03.png, flash01.png, shockwave01.png, smalljunk01.png, smalljunk02.png, smalljunk03.png, smoke01.png, spark01.png, spark02.png, sparkle01.png, trail01.png 2 | 3 | The files included in this archive (mentioned above) are covered by the following licence; Creative Commons Attribution 2.0 UK: England & Wales Licence 4 | 5 | Full information about this licence can be found at on the Creative Commons website at the following URL; 6 | 7 | http://creativecommons.org/licenses/by/2.0/uk -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/shockwave01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/particle_system/particle-pack-01/shockwave01.png -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/smalljunk01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/particle_system/particle-pack-01/smalljunk01.png -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/smalljunk02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/particle_system/particle-pack-01/smalljunk02.png -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/smalljunk03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/particle_system/particle-pack-01/smalljunk03.png -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/smoke01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/particle_system/particle-pack-01/smoke01.png -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/spark01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/particle_system/particle-pack-01/spark01.png -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/spark02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/particle_system/particle-pack-01/spark02.png -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/sparkle01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/particle_system/particle-pack-01/sparkle01.png -------------------------------------------------------------------------------- /project/particle_system/particle-pack-01/trail01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/particle_system/particle-pack-01/trail01.png -------------------------------------------------------------------------------- /project/platformer/BirdMovementComponent.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel-Jørgensen on 11/6/17. 3 | // 4 | 5 | #include 6 | #include "BirdMovementComponent.hpp" 7 | #include "GameObject.hpp" 8 | 9 | BirdMovementComponent::BirdMovementComponent(GameObject *gameObject) : Component(gameObject) {} 10 | 11 | void BirdMovementComponent::update(float deltaTime) { 12 | time += deltaTime; 13 | gameObject->setPosition(computePositionAtTime(time)); 14 | } 15 | 16 | glm::vec2 BirdMovementComponent::computePositionAtTime(float time) { 17 | int segment = (int)fmod(time, getNumberOfSegments()); 18 | float t = fmod(time,1.0f); 19 | 20 | // todo use Quadratic Bézier spline instead 21 | return glm::mix(positions[segment],positions[segment+1],t); 22 | 23 | } 24 | 25 | const std::vector &BirdMovementComponent::getPositions() { 26 | return positions; 27 | } 28 | 29 | void BirdMovementComponent::setPositions(std::vector positions) { 30 | this->positions = std::move(positions); 31 | } 32 | 33 | int BirdMovementComponent::getNumberOfSegments() { 34 | // todo return number of Quadratic Bézier spline segments instead 35 | return positions.size()-1; 36 | } 37 | 38 | -------------------------------------------------------------------------------- /project/platformer/BirdMovementComponent.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel-Jørgensen on 11/6/17. 3 | // 4 | 5 | #pragma once 6 | 7 | #include "Component.hpp" 8 | #include 9 | #include "glm/glm.hpp" 10 | 11 | class BirdMovementComponent : public Component { 12 | public: 13 | explicit BirdMovementComponent(GameObject *gameObject); 14 | 15 | void update(float deltaTime) override; 16 | 17 | glm::vec2 computePositionAtTime(float time); 18 | 19 | int getNumberOfSegments(); 20 | 21 | const std::vector& getPositions(); 22 | void setPositions(std::vector positions); 23 | private: 24 | std::vector positions; 25 | float time = 0; 26 | }; 27 | 28 | -------------------------------------------------------------------------------- /project/platformer/Box2DDebugDraw.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | 8 | // Captures debug information from Box2D as lines (polygon fill and color is discarded) 9 | class Box2DDebugDraw : public b2Draw{ 10 | public: 11 | Box2DDebugDraw(float scale); 12 | 13 | void DrawPolygon(const b2Vec2 *vertices, int32 vertexCount, const b2Color &color) override; 14 | 15 | void DrawSolidPolygon(const b2Vec2 *vertices, int32 vertexCount, const b2Color &color) override; 16 | 17 | void DrawCircle(const b2Vec2 ¢er, float32 radius, const b2Color &color) override; 18 | 19 | void DrawSolidCircle(const b2Vec2 ¢er, float32 radius, const b2Vec2 &axis, const b2Color &color) override; 20 | 21 | void DrawSegment(const b2Vec2 &p1, const b2Vec2 &p2, const b2Color &color) override; 22 | 23 | void DrawTransform(const b2Transform &xf) override; 24 | 25 | void DrawPoint(const b2Vec2 &p, float32 size, const b2Color &color) override; 26 | 27 | void clear(); 28 | const std::vector& getLines(); 29 | private: 30 | std::vector lines; 31 | float scale; 32 | }; 33 | -------------------------------------------------------------------------------- /project/platformer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Add hpp and cpp files to Snake variable 2 | file(GLOB Platformer 3 | "*.hpp" 4 | "*.h" 5 | "*.cpp" 6 | ) 7 | 8 | # Compile cpp files 9 | add_executable(SRE-Platformer ${Platformer}) 10 | target_link_libraries(SRE-Platformer ${all_libs}) 11 | 12 | # copy files to dest 13 | file(COPY platformer-art-deluxe.json platformer-art-deluxe.png DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Debug) 14 | file(COPY platformer-art-deluxe.json platformer-art-deluxe.png DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/Release) 15 | 16 | IF (WIN32) 17 | # Copy dll files to ${CMAKE_CURRENT_BINARY_DIR}/Debug 18 | file(COPY ${DLLFileList} DESTINATION Debug) 19 | file(COPY ${DLLFileList} DESTINATION Release) 20 | 21 | # Set working directory to ${CMAKE_CURRENT_BINARY_DIR}/Debug 22 | set_target_properties(SRE-Platformer PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Debug) 23 | ENDIF(WIN32) 24 | -------------------------------------------------------------------------------- /project/platformer/Component.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel-Jørgensen on 10/10/2017. 3 | // 4 | 5 | #include "Component.hpp" 6 | 7 | Component::Component(GameObject *gameObject) 8 | :gameObject(gameObject) 9 | { 10 | } 11 | 12 | void Component::renderSprite(sre::SpriteBatch::SpriteBatchBuilder &spriteBatchBuilder) { 13 | 14 | } 15 | 16 | void Component::update(float deltaTime) { 17 | 18 | } 19 | 20 | GameObject *Component::getGameObject() { 21 | return gameObject; 22 | } 23 | 24 | bool Component::onKey(SDL_Event &event) { 25 | return false; 26 | } 27 | 28 | void Component::onCollisionStart(PhysicsComponent* comp) { 29 | 30 | } 31 | 32 | void Component::onCollisionEnd(PhysicsComponent* comp) { 33 | 34 | } 35 | -------------------------------------------------------------------------------- /project/platformer/Component.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "sre/SpriteBatch.hpp" 4 | 5 | // Forward declaration 6 | class GameObject; 7 | class PhysicsComponent; 8 | 9 | 10 | 11 | class Component { // Abstract class that adds behavior to a GameObject 12 | public: 13 | explicit Component(GameObject *gameObject); 14 | virtual ~Component() = default; 15 | 16 | GameObject *getGameObject(); 17 | 18 | virtual bool onKey(SDL_Event &event); // The function should return true, if the key event is consumed. This prevents other components to receive the event. 19 | 20 | virtual void update(float deltaTime); 21 | virtual void renderSprite(sre::SpriteBatch::SpriteBatchBuilder& spriteBatchBuilder); 22 | 23 | virtual void onCollisionStart(PhysicsComponent* comp); 24 | virtual void onCollisionEnd(PhysicsComponent* comp); 25 | protected: 26 | GameObject *gameObject; 27 | 28 | friend class GameObject; 29 | }; 30 | 31 | -------------------------------------------------------------------------------- /project/platformer/GameObject.cpp: -------------------------------------------------------------------------------- 1 | #include "GameObject.hpp" 2 | #include 3 | #include 4 | #include "Component.hpp" 5 | 6 | GameObject::~GameObject(){ 7 | // remove reference to this in components 8 | for (auto& c : components){ 9 | c->gameObject = nullptr; 10 | } 11 | } 12 | 13 | bool GameObject::removeComponent(std::shared_ptr component) { 14 | auto comp = std::find(components.begin(), components.end(),component); 15 | if (comp != components.end()){ 16 | components.erase(comp); 17 | } 18 | return false; 19 | } 20 | 21 | const glm::vec2 &GameObject::getPosition() const { 22 | return position; 23 | } 24 | 25 | void GameObject::setPosition(const glm::vec2 &position) { 26 | GameObject::position = position; 27 | } 28 | 29 | float GameObject::getRotation() const { 30 | return rotation; 31 | } 32 | 33 | void GameObject::setRotation(float rotation) { 34 | GameObject::rotation = rotation; 35 | } 36 | 37 | void GameObject::renderSprite(sre::SpriteBatch::SpriteBatchBuilder &spriteBatchBuilder) { 38 | for (auto& comp : components){ 39 | comp->renderSprite(spriteBatchBuilder); 40 | } 41 | } 42 | 43 | void GameObject::update(float deltaTime) { 44 | for (auto& comp : components){ 45 | comp->update(deltaTime); 46 | } 47 | } 48 | 49 | const std::vector> &GameObject::getComponents() { 50 | return components; 51 | } 52 | -------------------------------------------------------------------------------- /project/platformer/Level.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | class PlatformerGame; 8 | class GameObject; 9 | class PlatformComponent; 10 | 11 | enum class TileCollider { 12 | Block, 13 | BlockHalf, 14 | Incline, 15 | Decline 16 | }; 17 | 18 | class Level { 19 | public: 20 | static std::shared_ptr createDefaultLevel(PlatformerGame* game, std::shared_ptr spriteAtlas); 21 | 22 | void generateLevel(); 23 | std::shared_ptr addPlatform(int x, int y, int startSpriteId, int length, bool kinematic); 24 | std::shared_ptr addWall(int x, int y, int startSpriteId, int height); 25 | 26 | static constexpr float tileSize = 21; 27 | private: 28 | Level() = default; 29 | PlatformerGame* game; 30 | std::shared_ptr spriteAtlas; 31 | }; 32 | 33 | -------------------------------------------------------------------------------- /project/platformer/MovingPlatformComponent.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel-Jørgensen on 11/6/17. 3 | // 4 | 5 | #include "MovingPlatformComponent.hpp" 6 | #include "PlatformComponent.hpp" 7 | #include "GameObject.hpp" 8 | 9 | MovingPlatformComponent::MovingPlatformComponent(GameObject *gameObject) : Component(gameObject) 10 | { 11 | platformComponent = gameObject->getComponent(); 12 | } 13 | 14 | void MovingPlatformComponent::update(float deltaTime) { 15 | totalTime += deltaTime; 16 | 17 | // todo replace with easing function 18 | if (fmod(totalTime,2)>1){ 19 | platformComponent->moveTo(movementEnd); 20 | } else { 21 | platformComponent->moveTo(movementStart); 22 | } 23 | } 24 | 25 | void MovingPlatformComponent::setMovementStart(glm::vec2 pos) { 26 | movementStart = pos; 27 | } 28 | 29 | void MovingPlatformComponent::setMovementEnd(glm::vec2 pos) { 30 | movementEnd = pos; 31 | } 32 | -------------------------------------------------------------------------------- /project/platformer/MovingPlatformComponent.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "Component.hpp" 5 | #include "glm/glm.hpp" 6 | 7 | class PlatformComponent; 8 | 9 | class MovingPlatformComponent : public Component { 10 | public: 11 | explicit MovingPlatformComponent(GameObject *gameObject); 12 | 13 | void setMovementStart(glm::vec2 pos); 14 | void setMovementEnd(glm::vec2 pos); 15 | 16 | void update(float deltaTime) override; 17 | 18 | private: 19 | float totalTime = 0; 20 | glm::vec2 movementStart = glm::vec2(0,0); 21 | glm::vec2 movementEnd = glm::vec2(0,0); 22 | std::shared_ptr platformComponent; 23 | }; 24 | -------------------------------------------------------------------------------- /project/platformer/PlatformComponent.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Component.hpp" 4 | #include 5 | #include 6 | #include "glm/glm.hpp" 7 | 8 | class GameObject; 9 | 10 | class PlatformComponent : public Component { 11 | public: 12 | explicit PlatformComponent(GameObject *gameObject); 13 | 14 | void init(std::shared_ptr spriteAtlas, int x, int y, int startSpriteId, int width, bool kinematic); 15 | void initWall(std::shared_ptr spriteAtlas, int x, int y, int startSpriteId, int height); 16 | 17 | void moveTo(glm::vec2 tilePos); 18 | void update(float deltaTime) override; 19 | 20 | glm::vec2 getPosition(); 21 | private: 22 | std::vector> tiles; 23 | std::shared_ptr physics; 24 | bool kinematic; 25 | glm::vec2 pos; 26 | int width; 27 | float physicsScale; 28 | }; -------------------------------------------------------------------------------- /project/platformer/SideScrollingCamera.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "sre/Camera.hpp" 4 | #include "glm/glm.hpp" 5 | #include "Component.hpp" 6 | 7 | class SideScrollingCamera : public Component { 8 | public: 9 | explicit SideScrollingCamera(GameObject *gameObject); 10 | 11 | void update(float deltaTime) override; 12 | 13 | void setFollowObject(std::shared_ptr followObject, glm::vec2 offset); 14 | 15 | void setZoomMode(bool zoomEnabled); 16 | bool isZoomMode(); 17 | 18 | sre::Camera& getCamera(); 19 | private: 20 | sre::Camera camera; 21 | std::shared_ptr followObject; 22 | glm::vec2 offset; 23 | bool zoom = false; 24 | }; 25 | 26 | -------------------------------------------------------------------------------- /project/platformer/SpriteComponent.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Morten Nobel-Jørgensen on 10/10/2017. 3 | // 4 | 5 | #include "SpriteComponent.hpp" 6 | #include "GameObject.hpp" 7 | 8 | SpriteComponent::SpriteComponent(GameObject *gameObject) : Component(gameObject) {} 9 | 10 | void SpriteComponent::renderSprite(sre::SpriteBatch::SpriteBatchBuilder &spriteBatchBuilder) { 11 | sprite.setPosition(gameObject->getPosition()); 12 | sprite.setRotation(gameObject->getRotation()); 13 | spriteBatchBuilder.addSprite(sprite); 14 | } 15 | 16 | void SpriteComponent::setSprite(const sre::Sprite &sprite) { 17 | this->sprite = sprite; 18 | } 19 | 20 | sre::Sprite SpriteComponent::getSprite() { 21 | return sprite; 22 | } 23 | -------------------------------------------------------------------------------- /project/platformer/SpriteComponent.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Component.hpp" 4 | #include "sre/Sprite.hpp" 5 | 6 | class SpriteComponent : public Component { 7 | public: 8 | explicit SpriteComponent(GameObject *gameObject); 9 | 10 | void renderSprite(sre::SpriteBatch::SpriteBatchBuilder &spriteBatchBuilder) override; 11 | 12 | void setSprite(const sre::Sprite& sprite); 13 | sre::Sprite getSprite(); 14 | private: 15 | sre::Sprite sprite; 16 | }; 17 | 18 | -------------------------------------------------------------------------------- /project/platformer/license.txt: -------------------------------------------------------------------------------- 1 | 2 | ############################################################################### 3 | 4 | Platformer Art Deluxe (Pixel) by 5 | Kenney Vleugels (www.kenney.nl) 6 | 7 | ------------------------------ 8 | 9 | License (CC0) 10 | http://creativecommons.org/publicdomain/zero/1.0/ 11 | 12 | You may use these graphics in 13 | personal and commercial projects. 14 | Credit (Kenney or www.kenney.nl) 15 | would be nice but is not mandatory. 16 | 17 | ############################################################################### -------------------------------------------------------------------------------- /project/platformer/main.cpp: -------------------------------------------------------------------------------- 1 | #include "PlatformerGame.hpp" 2 | #include 3 | 4 | int main(){ 5 | std::cout << "https://github.com/mortennobel/SimpleRenderEngineProject" << std::endl; 6 | new PlatformerGame(); 7 | return 0; 8 | } -------------------------------------------------------------------------------- /project/platformer/platformer-art-deluxe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project/platformer/platformer-art-deluxe.png -------------------------------------------------------------------------------- /project/project.cpp: -------------------------------------------------------------------------------- 1 | #include "sre/SDLRenderer.hpp" 2 | 3 | using namespace sre; 4 | using namespace std; 5 | 6 | int main() { 7 | SDLRenderer r; 8 | r.init(); 9 | r.frameRender = [](){ 10 | RenderPass rp = RenderPass::create().build(); 11 | rp.drawLines({{-.5,-.5,0},{.5,.5,0},{-.5,.5,0},{.5,-.5,0}}); 12 | }; 13 | r.startEventLoop(); 14 | 15 | return 0; 16 | } 17 | 18 | -------------------------------------------------------------------------------- /project_data/beat.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project_data/beat.wav -------------------------------------------------------------------------------- /project_data/high.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project_data/high.wav -------------------------------------------------------------------------------- /project_data/low.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project_data/low.wav -------------------------------------------------------------------------------- /project_data/medium.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project_data/medium.wav -------------------------------------------------------------------------------- /project_data/scratch.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/project_data/scratch.wav -------------------------------------------------------------------------------- /thirdparty/All/include/SOL_license.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013-2017 Rapptz, ThePhD, and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/api-top.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/api-top.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/as_args.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/as_args.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/as_container.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/as_container.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/as_function.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/as_function.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/as_returns.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/as_returns.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/as_table.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/as_table.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/c_call.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/c_call.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/compatibility.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/compatibility.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/containers.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/containers.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/coroutine.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/coroutine.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/environment.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/environment.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/error.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/error.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/filters.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/filters.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/function.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/function.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/make_reference.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/make_reference.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/metatable_key.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/metatable_key.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/nested.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/nested.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/new_table.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/new_table.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/object.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/object.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/optional.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/optional.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/overload.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/overload.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/property.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/property.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/protect.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/protect.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/protected_function.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/protected_function.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/proxy.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/proxy.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/readonly.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/readonly.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/reference.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/reference.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/resolve.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/resolve.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/simple_usertype.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/simple_usertype.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/stack.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/stack.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/stack_reference.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/stack_reference.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/state.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/state.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/table.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/table.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/this_environment.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/this_environment.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/this_state.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/this_state.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/thread.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/thread.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/tie.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/tie.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/types.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/types.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/unique_usertype_traits.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/unique_usertype_traits.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/user.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/user.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/userdata.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/userdata.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/usertype.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/usertype.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/usertype_memory.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/usertype_memory.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/var.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/var.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/variadic_args.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/variadic_args.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/variadic_results.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/api/variadic_results.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/benchmarks.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/benchmarks.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/cmake.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/cmake.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/codecvt.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/codecvt.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/compilation.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/compilation.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/containers.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/containers.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/environment.pickle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/environment.pickle -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/errors.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/errors.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/exceptions.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/exceptions.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/features.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/features.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/functions.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/functions.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/index.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/index.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/licenses.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/licenses.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/mentions.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/mentions.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/origin.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/origin.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/performance.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/performance.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/rtti.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/rtti.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/safety.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/safety.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/threading.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/threading.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/traits.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/traits.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/all-the-things.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/all-the-things.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/customization.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/customization.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/cxx-in-lua.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/cxx-in-lua.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/existing.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/existing.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/functions.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/functions.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/getting-started.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/getting-started.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/ownership.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/ownership.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/tutorial-top.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/tutorial-top.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/variables.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/tutorial/variables.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/doctrees/usertypes.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/doctrees/usertypes.doctree -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/.buildinfo: -------------------------------------------------------------------------------- 1 | # Sphinx build info version 1 2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. 3 | config: 632ba19fc8c6081bee66cb9a02de8108 4 | tags: 645f666f9bcd5a90fca523b33c5a78b7 5 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_images/eevee_code_after.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/html/_images/eevee_code_after.jpg -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_images/eevee_code_before.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/html/_images/eevee_code_before.jpg -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_images/sol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/html/_images/sol.png -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/api/api-top.rst.txt: -------------------------------------------------------------------------------- 1 | api reference manual 2 | ==================== 3 | 4 | Browse the various function and classes :doc:`Sol<../index>` utilizes to make your life easier when working with Lua. 5 | 6 | 7 | .. toctree:: 8 | :caption: Sol API 9 | :name: apitoc 10 | :maxdepth: 2 11 | 12 | state 13 | this_state 14 | reference 15 | stack_reference 16 | make_reference 17 | table 18 | userdata 19 | environment 20 | this_environment 21 | proxy 22 | containers 23 | as_container 24 | nested 25 | as_table 26 | usertype 27 | simple_usertype 28 | usertype_memory 29 | unique_usertype_traits 30 | tie 31 | function 32 | protected_function 33 | coroutine 34 | error 35 | object 36 | thread 37 | optional 38 | variadic_args 39 | variadic_results 40 | as_args 41 | as_returns 42 | overload 43 | property 44 | var 45 | protect 46 | filters 47 | readonly 48 | as_function 49 | c_call 50 | resolve 51 | stack 52 | user 53 | compatibility 54 | types 55 | metatable_key 56 | new_table -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/api/as_args.rst.txt: -------------------------------------------------------------------------------- 1 | as_args 2 | ======= 3 | *turn an iterable argument into multiple arguments* 4 | 5 | 6 | .. code-block:: cpp 7 | 8 | template 9 | struct as_args_t { ... }; 10 | 11 | template 12 | as_args_t as_args( T&& ); 13 | 14 | 15 | ``sol::as_args`` is a function that that takes an iterable and turns it into multiple arguments to a function call. It forwards its arguments, and is meant to be used as shown below: 16 | 17 | .. code-block:: cpp 18 | :linenos: 19 | :caption: as_args.c++ 20 | 21 | #define SOL_CHECK_ARGUMENTS 22 | #include 23 | 24 | #include 25 | #include 26 | 27 | int main(int argc, const char* argv[]) { 28 | 29 | sol::state lua; 30 | lua.open_libraries(); 31 | 32 | lua.script("function f (a, b, c, d) print(a, b, c, d) end"); 33 | 34 | sol::function f = lua["f"]; 35 | 36 | std::vector v2{ 3, 4 }; 37 | f(1, 2, sol::as_args(v2)); 38 | 39 | std::set v4{ 3, 1, 2, 4 }; 40 | f(sol::as_args(v4)); 41 | 42 | int v3[] = { 2, 3, 4 }; 43 | f(1, sol::as_args(v3)); 44 | 45 | return 0; 46 | } 47 | 48 | 49 | It is basically implemented as a `one-way customization point`_. For more information about customization points, see the :doc:`tutorial on how to customize Sol to work with your types<../tutorial/customization>`. 50 | 51 | .. _one-way customization point: https://github.com/ThePhD/sol2/blob/develop/sol/as_args.hpp 52 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/api/as_returns.rst.txt: -------------------------------------------------------------------------------- 1 | as_returns 2 | ========== 3 | *turn an iterable argument into a multiple-return type* 4 | 5 | 6 | .. code-block:: cpp 7 | 8 | template 9 | struct as_returns_t { ... }; 10 | 11 | template 12 | as_returns_t as_returns( T&& ); 13 | 14 | 15 | This allows you to wrap up a source that has ``begin`` and ``end`` iterator-returning functions on it and return it as multiple results into Lua. To have more control over the returns, use :doc:`sol::variadic_results`. 16 | 17 | 18 | .. code-block:: cpp 19 | :linenos: 20 | :caption: as_returns.c++ 21 | 22 | #define SOL_CHECK_ARGUMENTS 23 | #include 24 | 25 | #include 26 | #include 27 | 28 | int main () { 29 | sol::state lua; 30 | 31 | lua.set_function("f", []() { 32 | std::set results{ "arf", "bark", "woof" }; 33 | return sol::as_returns(std::move(results)); 34 | }); 35 | 36 | lua.script(R"( 37 | v1, v2, v3 = f() 38 | )"); 39 | }()); 40 | 41 | std::string v1 = lua["v1"]; 42 | std::string v2 = lua["v2"]; 43 | std::string v3 = lua["v3"]; 44 | 45 | assert(v1 == "arf"); 46 | assert(v2 == "bark"); 47 | assert(v3 == "woof"); 48 | 49 | return 0; 50 | } 51 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/api/compatibility.rst.txt: -------------------------------------------------------------------------------- 1 | compatibility.hpp 2 | ================= 3 | *Lua 5.3/5.2 compatibility for Lua 5.1/LuaJIT* 4 | 5 | 6 | This is a detail header used to maintain compatability with the 5.2 and 5.3+ APIs. It contains code from the MIT-Licensed `Lua code`_ in some places and also from the `lua-compat`_ repository by KeplerProject. 7 | 8 | It is not fully documented as this header's only purpose is for internal use to make sure Sol compiles across all platforms / distributions with no errors or missing Lua functionality. If you think there's some compatibility features we are missing or if you are running into redefinition errors, please make an `issue in the issue tracker`_. 9 | 10 | If you have this already in your project or you have your own compatibility layer, then please ``#define SOL_NO_COMPAT 1`` before including ``sol.hpp`` or pass this flag on the command line to turn off the compatibility wrapper. 11 | 12 | For the licenses, see :doc:`here<../licenses>` 13 | 14 | .. _issue in the issue tracker: https://github.com/ThePhD/sol2/issues/ 15 | .. _Lua code: http://www.Lua.org/ 16 | .. _lua-compat: https://github.com/keplerproject/lua-compat-5.3 -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/api/error.rst.txt: -------------------------------------------------------------------------------- 1 | error 2 | ===== 3 | *the single error/exception type* 4 | 5 | 6 | .. code-block:: cpp 7 | 8 | class error : public std::runtime_error { 9 | public: 10 | error(const std::string& str): std::runtime_error("lua: error: " + str) {} 11 | }; 12 | 13 | 14 | .. note:: 15 | 16 | Please do not throw this error type yourself. It belongs to the library and we do some information appending at the front. 17 | 18 | 19 | If an eror is thrown by Sol, it is going to be of this type. We use this in a single place: the default ``at_panic`` function we bind on construction of a :ref:`sol::state`. If you turn :doc:`off exceptions<../exceptions>`, the chances of you seeing this error are nil unless you specifically use it to pull errors out of things such as :doc:`sol::protected_function`. 20 | 21 | As it derives from ``std::runtime_error``, which derives from ``std::exception``, you can catch it with a ``catch (const std::exception& )`` clause in your try/catch blocks. You can retrieve a string error from Lua (Lua pushes all its errors as string returns) by using this type with any of the get or lookup functions in Sol. -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/api/nested.rst.txt: -------------------------------------------------------------------------------- 1 | nested 2 | ====== 3 | 4 | 5 | .. code-block:: cpp 6 | 7 | template 8 | struct nested { 9 | T source; 10 | }; 11 | 12 | 13 | ``sol::nested<...>`` is a template class similar to :doc:`sol::as_table`, but with the caveat that every :doc:`container type` within the ``sol::nested`` type will be retrieved as a table from lua. This is helpful when you need to receive C++-style vectors, lists, and maps nested within each other: all of them will be deserialized from lua using table properties rather than anything else. 14 | 15 | Note that any caveats with Lua tables apply the moment it is serialized, and the data cannot be gotten out back out in C++ as a C++ type. You can deserialize the Lua table into something explicitly using the ``sol::as_table_t`` marker for your get and conversion operations using Sol. At that point, the returned type is deserialized **from** a table, meaning you cannot reference any kind of C++ data directly as you do with regular userdata/usertypes. *All C++ type information is lost upon serialization into Lua.* 16 | 17 | The `example`_ provides a very in-depth look at both ``sol::as_table`` and ``sol::nested``, and how the two are equivalent. 18 | 19 | .. _example: https://github.com/ThePhD/sol2/blob/develop/examples/containers_as_table.cpp -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/api/optional.rst.txt: -------------------------------------------------------------------------------- 1 | optional 2 | =========== 3 | 4 | This is an implemention of `optional from the standard library`_. If it detects that a proper optional exists, it will attempt to use it. This is mostly an implementation detail, used in the :ref:`sol::stack::check_get` and :ref:`sol::stack::get\>` and ``sol::optional maybe_value = table["arf"];`` implementations for additional safety reasons. 5 | 6 | See `this example here`_ for a demonstration on how to use it and other features! 7 | 8 | .. _optional from the standard library: http://en.cppreference.com/w/cpp/utility/optional 9 | .. _this example here: https://github.com/ThePhD/sol2/blob/develop/examples/optional_with_iteration.cpp 10 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/api/protect.rst.txt: -------------------------------------------------------------------------------- 1 | protect 2 | ======= 3 | *routine to mark a function / variable as requiring safety* 4 | 5 | 6 | .. code-block:: cpp 7 | 8 | template 9 | auto protect( T&& value ); 10 | 11 | ``sol::protect( my_func )`` allows you to protect a function call or member variable call when it is being set to Lua. It can be used with usertypes or when just setting a function into Sol. Below is an example that demonstrates that a call that would normally not error without :doc:`Safety features turned on<../safety>` that instead errors and makes the Lua safety-call wrapper ``pcall`` fail: 12 | 13 | .. code-block:: cpp 14 | 15 | struct protect_me { 16 | int gen(int x) { 17 | return x; 18 | } 19 | }; 20 | 21 | sol::state lua; 22 | lua.open_libraries(sol::lib::base); 23 | lua.new_usertype("protect_me", 24 | "gen", sol::protect( &protect_me::gen ) 25 | ); 26 | 27 | lua.script(R"__( 28 | pm = protect_me.new() 29 | value = pcall(pm.gen,pm) 30 | )__"); 31 | ); 32 | bool value = lua["value"]; 33 | // value == false 34 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/api/this_state.rst.txt: -------------------------------------------------------------------------------- 1 | this_state 2 | ========== 3 | *transparent state argument for the current state* 4 | 5 | 6 | .. code-block:: cpp 7 | 8 | struct this_state; 9 | 10 | This class is a transparent type that is meant to be gotten in functions to get the current lua state a bound function or usertype method is being called from. It does not actually retrieve anything from lua nor does it increment the argument count, making it "invisible" to function calls in lua and calls through ``std::function<...>`` and :doc:`sol::function` on this type. It can be put in any position in the argument list of a function: 11 | 12 | .. code-block:: cpp 13 | :linenos: 14 | 15 | sol::state lua; 16 | 17 | lua.set_function("bark", []( sol::this_state s, int a, int b ){ 18 | lua_State* L = s; // current state 19 | return a + b + lua_gettop(L); 20 | }); 21 | 22 | lua.script("first = bark(2, 2)"); // only takes 2 arguments, NOT 3 23 | 24 | // Can be at the end, too, or in the middle: doesn't matter 25 | lua.set_function("bark", []( int a, int b, sol::this_state s ){ 26 | lua_State* L = s; // current state 27 | return a + b + lua_gettop(L); 28 | }); 29 | 30 | lua.script("second = bark(2, 2)"); // only takes 2 arguments 31 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/api/tie.rst.txt: -------------------------------------------------------------------------------- 1 | tie 2 | === 3 | *improved version of ``std::tie``* 4 | 5 | 6 | `std::tie()`_ does not work well with :doc:`sol::function`'s ``sol::function_result`` returns. Use ``sol::tie`` instead. Because they're both named `tie`, you'll need to be explicit when you use Sol's by naming it with the namespace (``sol::tie``), even with a ``using namespace sol;``. Here's an example: 7 | 8 | .. code-block:: cpp 9 | 10 | sol::state lua; 11 | lua.open_libraries(sol::lib::base); 12 | 13 | const auto& code = R"( 14 | function test() 15 | return 1, 2, 3 16 | end 17 | )"; 18 | lua.script(code); 19 | 20 | int a, b, c; 21 | //std::tie(a, b, c) = lua["test"](); 22 | // will error: use the line below 23 | sol::tie(a, b, c) = lua["test"](); 24 | 25 | 26 | .. _std::tie(): http://en.cppreference.com/w/cpp/utility/tuple/tie 27 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/api/user.rst.txt: -------------------------------------------------------------------------------- 1 | light/user 2 | ================ 3 | *utility class for the cheapest form of (light) userdata* 4 | 5 | 6 | .. code-block:: cpp 7 | 8 | template 9 | struct user; 10 | 11 | template 12 | struct light; 13 | 14 | 15 | ``sol::user`` and ``sol::light`` are two utility classes that do not participate in the full :doc:`sol::usertype\` system. The goal of these classes is to provide the most minimal memory footprint and overhead for putting a single item and getting a single item out of Lua. ``sol::user``, when pushed into Lua, will create a thin, unnamed metatable for that instance specifically which will be for calling its destructor. ``sol::light`` specifically pushes a reference / pointer into Lua as a ``sol::type::lightuserdata``. 16 | 17 | If you feel that you do not need to have something participate in the full :doc:`usertype\` system, use the utility functions ``sol::make_user( ... )`` and ``sol::make_light( ... )`` to create these types and store them into Lua. You can get them off the Lua stack / out of the Lua system by using the same retrieval techniques on ``get`` and ``operator[]`` on tables and with stack operations. 18 | 19 | Both have implicit conversion operators to ``T*`` and ``T&``, so you can set them immediately to their respective pointer and reference types if you need them. -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/api/userdata.rst.txt: -------------------------------------------------------------------------------- 1 | userdata 2 | ======== 3 | *reference to a userdata* 4 | 5 | .. code-block:: cpp 6 | :caption: (light\_)userdata reference 7 | 8 | class userdata : public table; 9 | 10 | class light_userdata : public table; 11 | 12 | These types are meant to hold a reference to a (light) userdata from Lua and make it easy to push an existing userdata onto the stack. It is essentially identical to :doc:`table` in every way, just with a definitive C++ type that ensures the type is some form of userdata (helpful for trapping type errors with :doc:`safety features turned on<../safety>`). You can also use its ``.is()`` and ``.as()`` methods to check if its of a specific type and retrieve that type, respectively. 13 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/api/var.rst.txt: -------------------------------------------------------------------------------- 1 | var 2 | === 3 | *For hooking up static / global variables to Lua usertypes* 4 | 5 | 6 | The sole purpose of this tagging type is to work with :doc:`usertypes` to provide ``my_class.my_static_var`` access, and to also provide reference-based access as well. 7 | 8 | .. code-block:: cpp 9 | 10 | #include 11 | 12 | struct test { 13 | static int muh_variable; 14 | }; 15 | int test::muh_variable = 25; 16 | 17 | 18 | int main () { 19 | sol::state lua; 20 | lua.open_libraries(); 21 | lua.new_usertype("test", 22 | "direct", sol::var(2), 23 | "global", sol::var(test::muh_variable), 24 | "ref_global", sol::var(std::ref(test::muh_variable)) 25 | ); 26 | 27 | int direct_value = lua["test"]["direct"]; 28 | // direct_value == 2 29 | 30 | int global = lua["test"]["global"]; 31 | // global == 25 32 | int global2 = lua["test"]["ref_global"]; 33 | // global2 == 25 34 | 35 | test::muh_variable = 542; 36 | 37 | global = lua["test"]["global"]; 38 | // global == 25 39 | // global is its own memory: was passed by value 40 | 41 | global2 = lua["test"]["ref_global"]; 42 | // global2 == 542 43 | // global2 was passed through std::ref 44 | // global2 holds a reference to muh_variable 45 | // if muh_variable goes out of scope or is deleted 46 | // problems could arise, so be careful! 47 | 48 | return 0; 49 | } 50 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/api/variadic_results.rst.txt: -------------------------------------------------------------------------------- 1 | variadic_results 2 | ================ 3 | *push multiple disparate arguments into lua* 4 | 5 | .. code-block:: cpp 6 | 7 | struct variadic_results : std::vector { ... }; 8 | 9 | This type allows someone to prepare multiple returns before returning them into Lua. It derives from ``std::vector``, so it can be used exactly like that, and objects can be added using the various constructors and functions relating to :doc:`sol::object`. You can see it and other return-type helpers in action `here`_. 10 | 11 | .. _here: https://github.com/ThePhD/sol2/blob/develop/examples/multi_results.cpp 12 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/codecvt.rst.txt: -------------------------------------------------------------------------------- 1 | std::(w/u16/u32)string support 2 | ============================== 3 | because this is surprisingly hard using standard C++ 4 | ---------------------------------------------------- 5 | 6 | Individuals using Visual Studio 2015, or on Windows with the VC++ and MinGW compilers (possibly Clang++ on Windows as well) have ```` headers, and thusly Sol will attempt to include it. Individuals on GCC 4.9.x, Clang 3.5.x, Clang 3.6.x do not seem to have ```` shipped with the standard library that comes with installation of these compilers. If you want ``std::wstring``, ``std::u16string``, ``std::u32string`` automatic handling then you need to make sure you have those headers and then define ``SOL_CODECVT_SUPPORT`` on unsupported compilers. 7 | 8 | ThePhD did not want this to have to be a thing, but slow implementations and such force their hand. When GCC 7.x comes out, ThePhD will consider removing the effect of defining this macro and leaving support in at all times. 9 | 10 | GCC 7.x is now out, and its codecvt support seems to work in it as well. We will be removing the conditional SOL_CODECVT support and deprecating support for GCC 4.x.x, Clang 3.5.x, and Clang 3.6.x in releases past sol2 v2.17.5 11 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/rtti.rst.txt: -------------------------------------------------------------------------------- 1 | run-time type information (rtti) 2 | ================================ 3 | *because somebody's going to want to shut this off, too...* 4 | 5 | Sol does not use RTTI anymore. 6 | 7 | *THE BELOW IS NO LONGER NEEDED.* 8 | 9 | Not compiling with C++'s run-time type information? Do a ``#define SOL_NO_RTII`` before you include ``sol.hpp`` or define ``SOL_NO_RTTI`` on your command line. Be sure to understand the :ref:`implications` of doing so if you also turn off exceptions. 10 | 11 | If you come across bugs or can't compile because there's a stray `typeid` or `typeinfo` that wasn't hidden behind a ``#ifndef SOL_NO_RTTI``, please file `an issue`_ or even make a pull request so it can be fixed for everyone. 12 | 13 | .. _an issue: https://github.com/ThePhD/sol2/issues -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/threading.rst.txt: -------------------------------------------------------------------------------- 1 | threading 2 | ========= 3 | 4 | Lua has no thread safety. sol2 does not force thread safety bottlenecks anywhere. 5 | 6 | Assume any access or any call on Lua affects the whole global state (because it does, in a fair bit of cases). Therefore, every call to a state should be blocked off in C++ with some kind of access control. When you start hitting the same state from multiple threads, race conditions (data or instruction) can happen. Individual Lua coroutines might be able to run on separate C++-created threads without tanking the state utterly, since each Lua coroutine has the capability to run on an independent Lua thread which has its own stack, as well as some other associated bits and pieces that won't quite interfere with the global state. 7 | 8 | To handle multithreaded environments, it is encouraged to either spawn mutliple Lua states for each thread you are working with and keep inter-state communication to synchronized serialization points. Using coroutines and Lua's threads might also buy you some concurrency and parallelism, but remember that Lua's threading technique is ultimately cooperative and requires explicit yielding and resuming (simplified as function calls for :doc:`sol::coroutine`). 9 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/traits.rst.txt: -------------------------------------------------------------------------------- 1 | customization traits 2 | ==================== 3 | 4 | These are customization points within the library to help you make sol2 work for the types in your framework and types. 5 | 6 | To learn more about various customizable traits, visit: 7 | 8 | * :doc:`containers customization traits` 9 | - This is how to work with containers in their entirety and what operations you're afforded on them 10 | - when you have an compiler error when serializing a type that has ``begin`` and ``end`` functions but isn't exactly a container 11 | * :doc:`unique usertype (custom pointer) traits` 12 | - This is how to deal with unique usertypes, e.g. ``boost::shared_ptr``, reference-counted pointers, etc 13 | - Useful for custom pointers from all sorts of frameworks or handle types that employ very specific kinds of destruction semantics and access 14 | * :doc:`customization points` 15 | - This is how to customize a type to work with sol2 16 | - Can be used for specializations to push strings and other class types that are not natively ``std::string`` or ``const char*``, like `a wxString, for example`_ 17 | 18 | .. _a wxString, for example: https://github.com/ThePhD/sol2/issues/140#issuecomment-237934947 19 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_sources/tutorial/tutorial-top.rst.txt: -------------------------------------------------------------------------------- 1 | tutorial 2 | ======== 3 | 4 | Take some time to learn the framework with these tutorials. But, if you need to get going FAST, try using the :doc:`quick 'n' dirty` approach and your browser's / editors search function. It will also serve you well to look at all the `examples`_, which have recently gotten a bit of an overhaul to contain more relevant working examples and other advanced tricks that you can leverage to have a good time! 5 | 6 | 7 | .. toctree:: 8 | :caption: Sol Tutorial 9 | :name: tutorialtoc 10 | :maxdepth: 2 11 | 12 | all-the-things 13 | getting-started 14 | existing 15 | variables 16 | functions 17 | cxx-in-lua 18 | ownership 19 | customization 20 | 21 | .. _examples: https://github.com/ThePhD/sol2/tree/develop/examples 22 | -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_static/alert_info_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/html/_static/alert_info_32.png -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_static/alert_warning_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/html/_static/alert_warning_32.png -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_static/bg-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/html/_static/bg-page.png -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_static/bullet_orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/html/_static/bullet_orange.png -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_static/documentation_options.js: -------------------------------------------------------------------------------- 1 | var DOCUMENTATION_OPTIONS = { 2 | URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), 3 | VERSION: '2.18.1', 4 | LANGUAGE: 'None', 5 | COLLAPSE_INDEX: false, 6 | FILE_SUFFIX: '.html', 7 | HAS_SOURCE: true, 8 | SOURCELINK_SUFFIX: '.txt', 9 | NAVIGATION_WITH_KEYS: false 10 | }; -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_static/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/html/_static/file.png -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_static/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/html/_static/minus.png -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_static/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/html/_static/plus.png -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/_static/sol2.css: -------------------------------------------------------------------------------- 1 | @import url('haiku.css'); 2 | 3 | .header-left { 4 | float: left; 5 | display: inline-block; 6 | vertical-align: top; 7 | } 8 | 9 | .header-right { 10 | float: right; 11 | display: inline-block; 12 | vertical-align: top; 13 | } 14 | 15 | .header-right h3 { 16 | margin: 0; 17 | padding-top: 15px; 18 | } -------------------------------------------------------------------------------- /thirdparty/All/include/Sol2 2.18.1 docs/html/objects.inv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/All/include/Sol2 2.18.1 docs/html/objects.inv -------------------------------------------------------------------------------- /thirdparty/All/include/tinyGLTF_license.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Syoyo Fujita, Aurélien Chatelain and many contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /thirdparty/Linux/Box2D/lib/libBox2D.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Linux/Box2D/lib/libBox2D.a -------------------------------------------------------------------------------- /thirdparty/Win/Box2D/lib/Box2D.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Box2D/lib/Box2D.lib -------------------------------------------------------------------------------- /thirdparty/Win/Box2D/lib/Box2D_d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Box2D/lib/Box2D_d.lib -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Collision/NarrowPhaseCollision/b3Config.h: -------------------------------------------------------------------------------- 1 | #ifndef B3_CONFIG_H 2 | #define B3_CONFIG_H 3 | 4 | struct b3Config 5 | { 6 | int m_maxConvexBodies; 7 | int m_maxConvexShapes; 8 | int m_maxBroadphasePairs; 9 | int m_maxContactCapacity; 10 | int m_compoundPairCapacity; 11 | 12 | int m_maxVerticesPerFace; 13 | int m_maxFacesPerShape; 14 | int m_maxConvexVertices; 15 | int m_maxConvexIndices; 16 | int m_maxConvexUniqueEdges; 17 | 18 | int m_maxCompoundChildShapes; 19 | 20 | int m_maxTriConvexPairCapacity; 21 | 22 | b3Config() 23 | :m_maxConvexBodies(128*1024), 24 | m_maxVerticesPerFace(64), 25 | m_maxFacesPerShape(12), 26 | m_maxConvexVertices(8192), 27 | m_maxConvexIndices(81920), 28 | m_maxConvexUniqueEdges(8192), 29 | m_maxCompoundChildShapes(8192), 30 | m_maxTriConvexPairCapacity(256*1024) 31 | { 32 | m_maxConvexShapes = m_maxConvexBodies; 33 | m_maxBroadphasePairs = 16*m_maxConvexBodies; 34 | m_maxContactCapacity = m_maxBroadphasePairs; 35 | m_compoundPairCapacity = 1024*1024; 36 | } 37 | }; 38 | 39 | 40 | #endif//B3_CONFIG_H 41 | 42 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Collision/NarrowPhaseCollision/b3RaycastInfo.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef B3_RAYCAST_INFO_H 3 | #define B3_RAYCAST_INFO_H 4 | 5 | #include "Bullet3Common/b3Vector3.h" 6 | 7 | B3_ATTRIBUTE_ALIGNED16(struct) b3RayInfo 8 | { 9 | b3Vector3 m_from; 10 | b3Vector3 m_to; 11 | }; 12 | 13 | B3_ATTRIBUTE_ALIGNED16(struct) b3RayHit 14 | { 15 | b3Scalar m_hitFraction; 16 | int m_hitBody; 17 | int m_hitResult1; 18 | int m_hitResult2; 19 | b3Vector3 m_hitPoint; 20 | b3Vector3 m_hitNormal; 21 | }; 22 | 23 | #endif //B3_RAYCAST_INFO_H 24 | 25 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Collision/NarrowPhaseCollision/b3RigidBodyCL.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 | 16 | #ifndef B3_RIGID_BODY_CL 17 | #define B3_RIGID_BODY_CL 18 | 19 | #include "Bullet3Common/b3Scalar.h" 20 | #include "Bullet3Common/b3Matrix3x3.h" 21 | #include "Bullet3Collision/NarrowPhaseCollision/shared/b3RigidBodyData.h" 22 | 23 | 24 | inline float b3GetInvMass(const b3RigidBodyData& body) 25 | { 26 | return body.m_invMass; 27 | } 28 | 29 | 30 | #endif//B3_RIGID_BODY_CL 31 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Collision/NarrowPhaseCollision/shared/b3BvhSubtreeInfoData.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef B3_BVH_SUBTREE_INFO_DATA_H 3 | #define B3_BVH_SUBTREE_INFO_DATA_H 4 | 5 | typedef struct b3BvhSubtreeInfoData b3BvhSubtreeInfoData_t; 6 | 7 | struct b3BvhSubtreeInfoData 8 | { 9 | //12 bytes 10 | unsigned short int m_quantizedAabbMin[3]; 11 | unsigned short int m_quantizedAabbMax[3]; 12 | //4 bytes, points to the root of the subtree 13 | int m_rootNodeIndex; 14 | //4 bytes 15 | int m_subtreeSize; 16 | int m_padding[3]; 17 | }; 18 | 19 | #endif //B3_BVH_SUBTREE_INFO_DATA_H 20 | 21 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Collision/NarrowPhaseCollision/shared/b3Contact4Data.h: -------------------------------------------------------------------------------- 1 | #ifndef B3_CONTACT4DATA_H 2 | #define B3_CONTACT4DATA_H 3 | 4 | #include "Bullet3Common/shared/b3Float4.h" 5 | 6 | typedef struct b3Contact4Data b3Contact4Data_t; 7 | 8 | struct b3Contact4Data 9 | { 10 | b3Float4 m_worldPosB[4]; 11 | // b3Float4 m_localPosA[4]; 12 | // b3Float4 m_localPosB[4]; 13 | b3Float4 m_worldNormalOnB; // w: m_nPoints 14 | unsigned short m_restituitionCoeffCmp; 15 | unsigned short m_frictionCoeffCmp; 16 | int m_batchIdx; 17 | int m_bodyAPtrAndSignBit;//x:m_bodyAPtr, y:m_bodyBPtr 18 | int m_bodyBPtrAndSignBit; 19 | 20 | int m_childIndexA; 21 | int m_childIndexB; 22 | int m_unused1; 23 | int m_unused2; 24 | 25 | 26 | }; 27 | 28 | inline int b3Contact4Data_getNumPoints(const struct b3Contact4Data* contact) 29 | { 30 | return (int)contact->m_worldNormalOnB.w; 31 | }; 32 | 33 | inline void b3Contact4Data_setNumPoints(struct b3Contact4Data* contact, int numPoints) 34 | { 35 | contact->m_worldNormalOnB.w = (float)numPoints; 36 | }; 37 | 38 | 39 | 40 | #endif //B3_CONTACT4DATA_H -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Collision/NarrowPhaseCollision/shared/b3ConvexPolyhedronData.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef B3_CONVEX_POLYHEDRON_DATA_H 3 | #define B3_CONVEX_POLYHEDRON_DATA_H 4 | 5 | 6 | 7 | #include "Bullet3Common/shared/b3Float4.h" 8 | #include "Bullet3Common/shared/b3Quat.h" 9 | 10 | typedef struct b3GpuFace b3GpuFace_t; 11 | struct b3GpuFace 12 | { 13 | b3Float4 m_plane; 14 | int m_indexOffset; 15 | int m_numIndices; 16 | int m_unusedPadding1; 17 | int m_unusedPadding2; 18 | }; 19 | 20 | typedef struct b3ConvexPolyhedronData b3ConvexPolyhedronData_t; 21 | 22 | struct b3ConvexPolyhedronData 23 | { 24 | b3Float4 m_localCenter; 25 | b3Float4 m_extents; 26 | b3Float4 mC; 27 | b3Float4 mE; 28 | 29 | float m_radius; 30 | int m_faceOffset; 31 | int m_numFaces; 32 | int m_numVertices; 33 | 34 | int m_vertexOffset; 35 | int m_uniqueEdgesOffset; 36 | int m_numUniqueEdges; 37 | int m_unused; 38 | }; 39 | 40 | #endif //B3_CONVEX_POLYHEDRON_DATA_H 41 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Collision/NarrowPhaseCollision/shared/b3RigidBodyData.h: -------------------------------------------------------------------------------- 1 | #ifndef B3_RIGIDBODY_DATA_H 2 | #define B3_RIGIDBODY_DATA_H 3 | 4 | #include "Bullet3Common/shared/b3Float4.h" 5 | #include "Bullet3Common/shared/b3Quat.h" 6 | #include "Bullet3Common/shared/b3Mat3x3.h" 7 | 8 | typedef struct b3RigidBodyData b3RigidBodyData_t; 9 | 10 | 11 | struct b3RigidBodyData 12 | { 13 | b3Float4 m_pos; 14 | b3Quat m_quat; 15 | b3Float4 m_linVel; 16 | b3Float4 m_angVel; 17 | 18 | int m_collidableIdx; 19 | float m_invMass; 20 | float m_restituitionCoeff; 21 | float m_frictionCoeff; 22 | }; 23 | 24 | typedef struct b3InertiaData b3InertiaData_t; 25 | 26 | struct b3InertiaData 27 | { 28 | b3Mat3x3 m_invInertiaWorld; 29 | b3Mat3x3 m_initInvInertia; 30 | }; 31 | 32 | 33 | #endif //B3_RIGIDBODY_DATA_H 34 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Collision/NarrowPhaseCollision/shared/b3UpdateAabbs.h: -------------------------------------------------------------------------------- 1 | #ifndef B3_UPDATE_AABBS_H 2 | #define B3_UPDATE_AABBS_H 3 | 4 | 5 | 6 | #include "Bullet3Collision/BroadPhaseCollision/shared/b3Aabb.h" 7 | #include "Bullet3Collision/NarrowPhaseCollision/shared/b3Collidable.h" 8 | #include "Bullet3Collision/NarrowPhaseCollision/shared/b3RigidBodyData.h" 9 | 10 | 11 | 12 | void b3ComputeWorldAabb( int bodyId, __global const b3RigidBodyData_t* bodies, __global const b3Collidable_t* collidables, __global const b3Aabb_t* localShapeAABB, __global b3Aabb_t* worldAabbs) 13 | { 14 | __global const b3RigidBodyData_t* body = &bodies[bodyId]; 15 | 16 | b3Float4 position = body->m_pos; 17 | b3Quat orientation = body->m_quat; 18 | 19 | int collidableIndex = body->m_collidableIdx; 20 | int shapeIndex = collidables[collidableIndex].m_shapeIndex; 21 | 22 | if (shapeIndex>=0) 23 | { 24 | 25 | b3Aabb_t localAabb = localShapeAABB[collidableIndex]; 26 | b3Aabb_t worldAabb; 27 | 28 | b3Float4 aabbAMinOut,aabbAMaxOut; 29 | float margin = 0.f; 30 | b3TransformAabb2(localAabb.m_minVec,localAabb.m_maxVec,margin,position,orientation,&aabbAMinOut,&aabbAMaxOut); 31 | 32 | worldAabb.m_minVec =aabbAMinOut; 33 | worldAabb.m_minIndices[3] = bodyId; 34 | worldAabb.m_maxVec = aabbAMaxOut; 35 | worldAabb.m_signedMaxIndices[3] = body[bodyId].m_invMass==0.f? 0 : 1; 36 | worldAabbs[bodyId] = worldAabb; 37 | } 38 | } 39 | 40 | #endif //B3_UPDATE_AABBS_H 41 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Collision/premake4.lua: -------------------------------------------------------------------------------- 1 | project "Bullet3Collision" 2 | 3 | language "C++" 4 | 5 | kind "StaticLib" 6 | 7 | includedirs {".."} 8 | 9 | 10 | files { 11 | "**.cpp", 12 | "**.h" 13 | } -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Common/premake4.lua: -------------------------------------------------------------------------------- 1 | project "Bullet3Common" 2 | 3 | language "C++" 4 | 5 | kind "StaticLib" 6 | 7 | includedirs {".."} 8 | 9 | files { 10 | "*.cpp", 11 | "*.h" 12 | } 13 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Common/shared/b3Int4.h: -------------------------------------------------------------------------------- 1 | #ifndef B3_INT4_H 2 | #define B3_INT4_H 3 | 4 | #ifdef __cplusplus 5 | 6 | #include "Bullet3Common/b3Scalar.h" 7 | 8 | 9 | B3_ATTRIBUTE_ALIGNED16(struct) b3UnsignedInt4 10 | { 11 | B3_DECLARE_ALIGNED_ALLOCATOR(); 12 | 13 | union 14 | { 15 | struct 16 | { 17 | unsigned int x,y,z,w; 18 | }; 19 | struct 20 | { 21 | unsigned int s[4]; 22 | }; 23 | }; 24 | }; 25 | 26 | B3_ATTRIBUTE_ALIGNED16(struct) b3Int4 27 | { 28 | B3_DECLARE_ALIGNED_ALLOCATOR(); 29 | 30 | union 31 | { 32 | struct 33 | { 34 | int x,y,z,w; 35 | }; 36 | struct 37 | { 38 | int s[4]; 39 | }; 40 | }; 41 | }; 42 | 43 | B3_FORCE_INLINE b3Int4 b3MakeInt4(int x, int y, int z, int w = 0) 44 | { 45 | b3Int4 v; 46 | v.s[0] = x; v.s[1] = y; v.s[2] = z; v.s[3] = w; 47 | return v; 48 | } 49 | 50 | B3_FORCE_INLINE b3UnsignedInt4 b3MakeUnsignedInt4(unsigned int x, unsigned int y, unsigned int z, unsigned int w = 0) 51 | { 52 | b3UnsignedInt4 v; 53 | v.s[0] = x; v.s[1] = y; v.s[2] = z; v.s[3] = w; 54 | return v; 55 | } 56 | 57 | #else 58 | 59 | 60 | #define b3UnsignedInt4 uint4 61 | #define b3Int4 int4 62 | #define b3MakeInt4 (int4) 63 | #define b3MakeUnsignedInt4 (uint4) 64 | 65 | 66 | #endif //__cplusplus 67 | 68 | #endif //B3_INT4_H 69 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Common/shared/b3PlatformDefinitions.h: -------------------------------------------------------------------------------- 1 | #ifndef B3_PLATFORM_DEFINITIONS_H 2 | #define B3_PLATFORM_DEFINITIONS_H 3 | 4 | struct MyTest 5 | { 6 | int bla; 7 | }; 8 | 9 | #ifdef __cplusplus 10 | //#define b3ConstArray(a) const b3AlignedObjectArray& 11 | #define b3ConstArray(a) const a* 12 | #define b3AtomicInc(a) ((*a)++) 13 | 14 | inline int b3AtomicAdd (volatile int *p, int val) 15 | { 16 | int oldValue = *p; 17 | int newValue = oldValue+val; 18 | *p = newValue; 19 | return oldValue; 20 | } 21 | 22 | #define __global 23 | 24 | #define B3_STATIC static 25 | #else 26 | //keep B3_LARGE_FLOAT*B3_LARGE_FLOAT < FLT_MAX 27 | #define B3_LARGE_FLOAT 1e18f 28 | #define B3_INFINITY 1e18f 29 | #define b3Assert(a) 30 | #define b3ConstArray(a) __global const a* 31 | #define b3AtomicInc atomic_inc 32 | #define b3AtomicAdd atomic_add 33 | #define b3Fabs fabs 34 | #define b3Sqrt native_sqrt 35 | #define b3Sin native_sin 36 | #define b3Cos native_cos 37 | 38 | #define B3_STATIC 39 | #endif 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Dynamics/ConstraintSolver/b3FixedConstraint.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef B3_FIXED_CONSTRAINT_H 3 | #define B3_FIXED_CONSTRAINT_H 4 | 5 | #include "b3TypedConstraint.h" 6 | 7 | B3_ATTRIBUTE_ALIGNED16(class) b3FixedConstraint : public b3TypedConstraint 8 | { 9 | b3Vector3 m_pivotInA; 10 | b3Vector3 m_pivotInB; 11 | b3Quaternion m_relTargetAB; 12 | 13 | public: 14 | b3FixedConstraint(int rbA,int rbB, const b3Transform& frameInA,const b3Transform& frameInB); 15 | 16 | virtual ~b3FixedConstraint(); 17 | 18 | 19 | virtual void getInfo1 (b3ConstraintInfo1* info,const b3RigidBodyData* bodies); 20 | 21 | virtual void getInfo2 (b3ConstraintInfo2* info, const b3RigidBodyData* bodies); 22 | 23 | virtual void setParam(int num, b3Scalar value, int axis = -1) 24 | { 25 | b3Assert(0); 26 | } 27 | virtual b3Scalar getParam(int num, int axis = -1) const 28 | { 29 | b3Assert(0); 30 | return 0.f; 31 | } 32 | 33 | }; 34 | 35 | #endif //B3_FIXED_CONSTRAINT_H 36 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Dynamics/premake4.lua: -------------------------------------------------------------------------------- 1 | project "Bullet3Dynamics" 2 | 3 | language "C++" 4 | 5 | kind "StaticLib" 6 | 7 | includedirs { 8 | ".." 9 | } 10 | 11 | 12 | files { 13 | "**.cpp", 14 | "**.h" 15 | } -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Dynamics/shared/b3ContactConstraint4.h: -------------------------------------------------------------------------------- 1 | #ifndef B3_CONTACT_CONSTRAINT5_H 2 | #define B3_CONTACT_CONSTRAINT5_H 3 | 4 | #include "Bullet3Common/shared/b3Float4.h" 5 | 6 | typedef struct b3ContactConstraint4 b3ContactConstraint4_t; 7 | 8 | 9 | struct b3ContactConstraint4 10 | { 11 | 12 | b3Float4 m_linear;//normal? 13 | b3Float4 m_worldPos[4]; 14 | b3Float4 m_center; // friction 15 | float m_jacCoeffInv[4]; 16 | float m_b[4]; 17 | float m_appliedRambdaDt[4]; 18 | float m_fJacCoeffInv[2]; // friction 19 | float m_fAppliedRambdaDt[2]; // friction 20 | 21 | unsigned int m_bodyA; 22 | unsigned int m_bodyB; 23 | int m_batchIdx; 24 | unsigned int m_paddings; 25 | 26 | }; 27 | 28 | //inline void setFrictionCoeff(float value) { m_linear[3] = value; } 29 | inline float b3GetFrictionCoeff(b3ContactConstraint4_t* constraint) 30 | { 31 | return constraint->m_linear.w; 32 | } 33 | 34 | #endif //B3_CONTACT_CONSTRAINT5_H 35 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Dynamics/shared/b3Inertia.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ifndef B3_INERTIA_H 4 | #define B3_INERTIA_H 5 | 6 | #include "Bullet3Common/shared/b3Mat3x3.h" 7 | 8 | struct b3Inertia 9 | { 10 | b3Mat3x3 m_invInertiaWorld; 11 | b3Mat3x3 m_initInvInertia; 12 | }; 13 | 14 | 15 | #endif //B3_INERTIA_H -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Geometry/premake4.lua: -------------------------------------------------------------------------------- 1 | project "Bullet3Geometry" 2 | 3 | language "C++" 4 | 5 | kind "StaticLib" 6 | 7 | includedirs {".."} 8 | 9 | 10 | files { 11 | "**.cpp", 12 | "**.h" 13 | } -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3OpenCL/BroadphaseCollision/b3SapAabb.h: -------------------------------------------------------------------------------- 1 | #ifndef B3_SAP_AABB_H 2 | #define B3_SAP_AABB_H 3 | 4 | #include "Bullet3Common/b3Scalar.h" 5 | #include "Bullet3Collision/BroadPhaseCollision/shared/b3Aabb.h" 6 | 7 | ///just make sure that the b3Aabb is 16-byte aligned 8 | B3_ATTRIBUTE_ALIGNED16(struct) b3SapAabb : public b3Aabb 9 | { 10 | 11 | }; 12 | 13 | 14 | #endif //B3_SAP_AABB_H 15 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3OpenCL/NarrowphaseCollision/b3BvhInfo.h: -------------------------------------------------------------------------------- 1 | #ifndef B3_BVH_INFO_H 2 | #define B3_BVH_INFO_H 3 | 4 | #include "Bullet3Common/b3Vector3.h" 5 | 6 | struct b3BvhInfo 7 | { 8 | b3Vector3 m_aabbMin; 9 | b3Vector3 m_aabbMax; 10 | b3Vector3 m_quantization; 11 | int m_numNodes; 12 | int m_numSubTrees; 13 | int m_nodeOffset; 14 | int m_subTreeOffset; 15 | 16 | }; 17 | 18 | #endif //B3_BVH_INFO_H -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3OpenCL/NarrowphaseCollision/b3ConvexPolyhedronCL.h: -------------------------------------------------------------------------------- 1 | #ifndef CONVEX_POLYHEDRON_CL 2 | #define CONVEX_POLYHEDRON_CL 3 | 4 | #include "Bullet3Common/b3Transform.h" 5 | #include "Bullet3Collision/NarrowPhaseCollision/shared/b3ConvexPolyhedronData.h" 6 | 7 | 8 | 9 | #endif //CONVEX_POLYHEDRON_CL 10 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3OpenCL/NarrowphaseCollision/b3SupportMappings.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef B3_SUPPORT_MAPPINGS_H 3 | #define B3_SUPPORT_MAPPINGS_H 4 | 5 | #include "Bullet3Common/b3Transform.h" 6 | #include "Bullet3Common/b3AlignedObjectArray.h" 7 | #include "b3VectorFloat4.h" 8 | 9 | 10 | struct b3GjkPairDetector; 11 | 12 | 13 | 14 | inline b3Vector3 localGetSupportVertexWithMargin(const float4& supportVec,const struct b3ConvexPolyhedronData* hull, 15 | const b3AlignedObjectArray& verticesA, b3Scalar margin) 16 | { 17 | b3Vector3 supVec = b3MakeVector3(b3Scalar(0.),b3Scalar(0.),b3Scalar(0.)); 18 | b3Scalar maxDot = b3Scalar(-B3_LARGE_FLOAT); 19 | 20 | // Here we take advantage of dot(a, b*c) = dot(a*b, c). Note: This is true mathematically, but not numerically. 21 | if( 0 < hull->m_numVertices ) 22 | { 23 | const b3Vector3 scaled = supportVec; 24 | int index = (int) scaled.maxDot( &verticesA[hull->m_vertexOffset], hull->m_numVertices, maxDot); 25 | return verticesA[hull->m_vertexOffset+index]; 26 | } 27 | 28 | return supVec; 29 | 30 | } 31 | 32 | inline b3Vector3 localGetSupportVertexWithoutMargin(const float4& supportVec,const struct b3ConvexPolyhedronData* hull, 33 | const b3AlignedObjectArray& verticesA) 34 | { 35 | return localGetSupportVertexWithMargin(supportVec,hull,verticesA,0.f); 36 | } 37 | 38 | #endif //B3_SUPPORT_MAPPINGS_H 39 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3OpenCL/NarrowphaseCollision/b3TriangleCallback.cpp: -------------------------------------------------------------------------------- 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 | #include "b3TriangleCallback.h" 17 | 18 | b3TriangleCallback::~b3TriangleCallback() 19 | { 20 | 21 | } 22 | 23 | 24 | b3InternalTriangleIndexCallback::~b3InternalTriangleIndexCallback() 25 | { 26 | 27 | } 28 | 29 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3OpenCL/NarrowphaseCollision/b3VectorFloat4.h: -------------------------------------------------------------------------------- 1 | #ifndef B3_VECTOR_FLOAT4_H 2 | #define B3_VECTOR_FLOAT4_H 3 | 4 | #include "Bullet3Common/b3Transform.h" 5 | 6 | //#define cross3(a,b) (a.cross(b)) 7 | #define float4 b3Vector3 8 | //#define make_float4(x,y,z,w) b3Vector4(x,y,z,w) 9 | 10 | 11 | #endif //B3_VECTOR_FLOAT4_H 12 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3OpenCL/ParallelPrimitives/b3BufferInfoCL.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef B3_BUFFER_INFO_CL_H 3 | #define B3_BUFFER_INFO_CL_H 4 | 5 | #include "b3OpenCLArray.h" 6 | 7 | 8 | struct b3BufferInfoCL 9 | { 10 | //b3BufferInfoCL(){} 11 | 12 | // template 13 | b3BufferInfoCL(cl_mem buff, bool isReadOnly = false): m_clBuffer(buff), m_isReadOnly(isReadOnly){} 14 | 15 | cl_mem m_clBuffer; 16 | bool m_isReadOnly; 17 | }; 18 | 19 | #endif //B3_BUFFER_INFO_CL_H 20 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3OpenCL/ParallelPrimitives/b3PrefixScanCL.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef B3_PREFIX_SCAN_CL_H 3 | #define B3_PREFIX_SCAN_CL_H 4 | 5 | #include "b3OpenCLArray.h" 6 | #include "b3BufferInfoCL.h" 7 | #include "Bullet3Common/b3AlignedObjectArray.h" 8 | 9 | class b3PrefixScanCL 10 | { 11 | enum 12 | { 13 | BLOCK_SIZE = 128 14 | }; 15 | 16 | // Option m_option; 17 | 18 | cl_command_queue m_commandQueue; 19 | 20 | cl_kernel m_localScanKernel; 21 | cl_kernel m_blockSumKernel; 22 | cl_kernel m_propagationKernel; 23 | 24 | b3OpenCLArray* m_workBuffer; 25 | 26 | 27 | public: 28 | 29 | b3PrefixScanCL(cl_context ctx, cl_device_id device, cl_command_queue queue,int size=0); 30 | 31 | virtual ~b3PrefixScanCL(); 32 | 33 | void execute(b3OpenCLArray& src, b3OpenCLArray& dst, int n, unsigned int* sum = 0); 34 | void executeHost(b3AlignedObjectArray& src, b3AlignedObjectArray& dst, int n, unsigned int* sum=0); 35 | }; 36 | 37 | #endif //B3_PREFIX_SCAN_CL_H 38 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3OpenCL/ParallelPrimitives/b3PrefixScanFloat4CL.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef B3_PREFIX_SCAN_CL_H 3 | #define B3_PREFIX_SCAN_CL_H 4 | 5 | #include "b3OpenCLArray.h" 6 | #include "b3BufferInfoCL.h" 7 | #include "Bullet3Common/b3AlignedObjectArray.h" 8 | #include "Bullet3Common/b3Vector3.h" 9 | 10 | class b3PrefixScanFloat4CL 11 | { 12 | enum 13 | { 14 | BLOCK_SIZE = 128 15 | }; 16 | 17 | // Option m_option; 18 | 19 | cl_command_queue m_commandQueue; 20 | 21 | cl_kernel m_localScanKernel; 22 | cl_kernel m_blockSumKernel; 23 | cl_kernel m_propagationKernel; 24 | 25 | b3OpenCLArray* m_workBuffer; 26 | 27 | 28 | public: 29 | 30 | b3PrefixScanFloat4CL(cl_context ctx, cl_device_id device, cl_command_queue queue,int size=0); 31 | 32 | virtual ~b3PrefixScanFloat4CL(); 33 | 34 | void execute(b3OpenCLArray& src, b3OpenCLArray& dst, int n, b3Vector3* sum = 0); 35 | void executeHost(b3AlignedObjectArray& src, b3AlignedObjectArray& dst, int n, b3Vector3* sum); 36 | }; 37 | 38 | #endif //B3_PREFIX_SCAN_CL_H 39 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3OpenCL/Raycast/b3GpuRaycast.h: -------------------------------------------------------------------------------- 1 | #ifndef B3_GPU_RAYCAST_H 2 | #define B3_GPU_RAYCAST_H 3 | 4 | #include "Bullet3Common/b3Vector3.h" 5 | #include "Bullet3OpenCL/Initialize/b3OpenCLInclude.h" 6 | 7 | #include "Bullet3Common/b3AlignedObjectArray.h" 8 | #include "Bullet3Collision/NarrowPhaseCollision/b3RaycastInfo.h" 9 | 10 | 11 | 12 | class b3GpuRaycast 13 | { 14 | protected: 15 | struct b3GpuRaycastInternalData* m_data; 16 | public: 17 | b3GpuRaycast(cl_context ctx,cl_device_id device, cl_command_queue q); 18 | virtual ~b3GpuRaycast(); 19 | 20 | void castRaysHost(const b3AlignedObjectArray& raysIn, b3AlignedObjectArray& hitResults, 21 | int numBodies, const struct b3RigidBodyData* bodies, int numCollidables, const struct b3Collidable* collidables, 22 | const struct b3GpuNarrowPhaseInternalData* narrowphaseData); 23 | 24 | void castRays(const b3AlignedObjectArray& rays, b3AlignedObjectArray& hitResults, 25 | int numBodies,const struct b3RigidBodyData* bodies, int numCollidables, const struct b3Collidable* collidables, 26 | const struct b3GpuNarrowPhaseInternalData* narrowphaseData, class b3GpuBroadphaseInterface* broadphase); 27 | 28 | 29 | 30 | }; 31 | 32 | #endif //B3_GPU_RAYCAST_H 33 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3OpenCL/RigidBody/b3GpuConstraint4.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef B3_CONSTRAINT4_h 3 | #define B3_CONSTRAINT4_h 4 | #include "Bullet3Common/b3Vector3.h" 5 | 6 | #include "Bullet3Dynamics/shared/b3ContactConstraint4.h" 7 | 8 | 9 | B3_ATTRIBUTE_ALIGNED16(struct) b3GpuConstraint4 : public b3ContactConstraint4 10 | { 11 | B3_DECLARE_ALIGNED_ALLOCATOR(); 12 | 13 | inline void setFrictionCoeff(float value) { m_linear[3] = value; } 14 | inline float getFrictionCoeff() const { return m_linear[3]; } 15 | }; 16 | 17 | #endif //B3_CONSTRAINT4_h 18 | 19 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3OpenCL/RigidBody/kernels/updateAabbsKernel.cl: -------------------------------------------------------------------------------- 1 | 2 | 3 | #include "Bullet3Collision/NarrowPhaseCollision/shared/b3UpdateAabbs.h" 4 | 5 | 6 | __kernel void initializeGpuAabbsFull( const int numNodes, __global b3RigidBodyData_t* gBodies,__global b3Collidable_t* collidables, __global b3Aabb_t* plocalShapeAABB, __global b3Aabb_t* pAABB) 7 | { 8 | int nodeID = get_global_id(0); 9 | if( nodeID < numNodes ) 10 | { 11 | b3ComputeWorldAabb(nodeID, gBodies, collidables, plocalShapeAABB,pAABB); 12 | } 13 | } 14 | 15 | __kernel void clearOverlappingPairsKernel( __global int4* pairs, int numPairs) 16 | { 17 | int pairId = get_global_id(0); 18 | if( pairId< numPairs ) 19 | { 20 | pairs[pairId].z = 0xffffffff; 21 | } 22 | } -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3OpenCL/premake4.lua: -------------------------------------------------------------------------------- 1 | function createProject(vendor) 2 | hasCL = findOpenCL(vendor) 3 | 4 | if (hasCL) then 5 | 6 | project ("Bullet3OpenCL_" .. vendor) 7 | 8 | initOpenCL(vendor) 9 | 10 | kind "StaticLib" 11 | 12 | 13 | includedirs { 14 | ".",".." 15 | } 16 | 17 | files { 18 | "**.cpp", 19 | "**.h" 20 | } 21 | 22 | end 23 | end 24 | 25 | createProject("clew") 26 | createProject("AMD") 27 | createProject("Intel") 28 | createProject("NVIDIA") 29 | createProject("Apple") 30 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/Bullet3Serialize/Bullet2FileLoader/premake4.lua: -------------------------------------------------------------------------------- 1 | project "Bullet2FileLoader" 2 | 3 | kind "StaticLib" 4 | 5 | includedirs { 6 | "../../../src" 7 | } 8 | 9 | files { 10 | "**.cpp", 11 | "**.h" 12 | } -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp: -------------------------------------------------------------------------------- 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 | #include "btBroadphaseProxy.h" 17 | 18 | BT_NOT_EMPTY_FILE // fix warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library 19 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp: -------------------------------------------------------------------------------- 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 | #include "btCollisionAlgorithm.h" 17 | #include "btDispatcher.h" 18 | 19 | btCollisionAlgorithm::btCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci) 20 | { 21 | m_dispatcher = ci.m_dispatcher1; 22 | } 23 | 24 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletCollision/BroadphaseCollision/btDispatcher.cpp: -------------------------------------------------------------------------------- 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 | #include "btDispatcher.h" 17 | 18 | btDispatcher::~btDispatcher() 19 | { 20 | 21 | } 22 | 23 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletCollision/CollisionShapes/btConcaveShape.cpp: -------------------------------------------------------------------------------- 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 | 17 | #include "btConcaveShape.h" 18 | 19 | btConcaveShape::btConcaveShape() : m_collisionMargin(btScalar(0.)) 20 | { 21 | 22 | } 23 | 24 | btConcaveShape::~btConcaveShape() 25 | { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletCollision/CollisionShapes/btTriangleBuffer.cpp: -------------------------------------------------------------------------------- 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 | #include "btTriangleBuffer.h" 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | void btTriangleBuffer::processTriangle(btVector3* triangle,int partId,int triangleIndex) 25 | { 26 | btTriangle tri; 27 | tri.m_vertex0 = triangle[0]; 28 | tri.m_vertex1 = triangle[1]; 29 | tri.m_vertex2 = triangle[2]; 30 | tri.m_partId = partId; 31 | tri.m_triangleIndex = triangleIndex; 32 | 33 | m_triangleBuffer.push_back(tri); 34 | } 35 | 36 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletCollision/CollisionShapes/btTriangleCallback.cpp: -------------------------------------------------------------------------------- 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 | #include "btTriangleCallback.h" 17 | 18 | btTriangleCallback::~btTriangleCallback() 19 | { 20 | 21 | } 22 | 23 | 24 | btInternalTriangleIndexCallback::~btInternalTriangleIndexCallback() 25 | { 26 | 27 | } 28 | 29 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Bullet/include/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletCollision/Gimpact/btGImpactShape.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Bullet/include/BulletCollision/Gimpact/btGImpactShape.h -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletCollision/NarrowPhaseCollision/btConvexCast.cpp: -------------------------------------------------------------------------------- 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 | #include "btConvexCast.h" 17 | 18 | btConvexCast::~btConvexCast() 19 | { 20 | } 21 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletCollision/premake4.lua: -------------------------------------------------------------------------------- 1 | project "BulletCollision" 2 | 3 | kind "StaticLib" 4 | includedirs { 5 | "..", 6 | } 7 | files { 8 | "*.cpp", 9 | "*.h", 10 | "BroadphaseCollision/*.cpp", 11 | "BroadphaseCollision/*.h", 12 | "CollisionDispatch/*.cpp", 13 | "CollisionDispatch/*.h", 14 | "CollisionShapes/*.cpp", 15 | "CollisionShapes/*.h", 16 | "Gimpact/*.cpp", 17 | "Gimpact/*.h", 18 | "NarrowPhaseCollision/*.cpp", 19 | "NarrowPhaseCollision/*.h", 20 | } 21 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/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 "btGeneric6DofSpring2Constraint.h" 20 | 21 | 22 | ATTRIBUTE_ALIGNED16(class) btFixedConstraint : public btGeneric6DofSpring2Constraint 23 | { 24 | 25 | public: 26 | btFixedConstraint(btRigidBody& rbA,btRigidBody& rbB, const btTransform& frameInA,const btTransform& frameInB); 27 | 28 | 29 | virtual ~btFixedConstraint(); 30 | 31 | }; 32 | 33 | #endif //BT_FIXED_CONSTRAINT_H 34 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Bullet/include/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletDynamics/Featherstone/btMultiBodyJointFeedback.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2015 Google Inc. 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_MULTIBODY_JOINT_FEEDBACK_H 18 | #define BT_MULTIBODY_JOINT_FEEDBACK_H 19 | 20 | #include "LinearMath/btSpatialAlgebra.h" 21 | 22 | struct btMultiBodyJointFeedback 23 | { 24 | btSpatialForceVector m_reactionForces; 25 | }; 26 | 27 | #endif //BT_MULTIBODY_JOINT_FEEDBACK_H 28 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletDynamics/MLCPSolvers/btLemkeSolver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Bullet/include/BulletDynamics/MLCPSolvers/btLemkeSolver.h -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/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 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletDynamics/premake4.lua: -------------------------------------------------------------------------------- 1 | project "BulletDynamics" 2 | kind "StaticLib" 3 | includedirs { 4 | "..", 5 | } 6 | files { 7 | "Dynamics/*.cpp", 8 | "Dynamics/*.h", 9 | "ConstraintSolver/*.cpp", 10 | "ConstraintSolver/*.h", 11 | "Featherstone/*.cpp", 12 | "Featherstone/*.h", 13 | "MLCPSolvers/*.cpp", 14 | "MLCPSolvers/*.h", 15 | "Vehicle/*.cpp", 16 | "Vehicle/*.h", 17 | "Character/*.cpp", 18 | "Character/*.h" 19 | 20 | } 21 | 22 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletInverseDynamics/IDConfigEigen.hpp: -------------------------------------------------------------------------------- 1 | ///@file Configuration for Inverse Dynamics Library with Eigen 2 | #ifndef INVDYNCONFIG_EIGEN_HPP_ 3 | #define INVDYNCONFIG_EIGEN_HPP_ 4 | #define btInverseDynamics btInverseDynamicsEigen 5 | #ifdef BT_USE_DOUBLE_PRECISION 6 | // choose double/single precision version 7 | typedef double idScalar; 8 | #else 9 | typedef float idScalar; 10 | #endif 11 | 12 | // use std::vector for arrays 13 | #include 14 | // this is to make it work with C++2003, otherwise we could do this 15 | // template 16 | // using idArray = std::vector; 17 | template 18 | struct idArray { 19 | typedef std::vector type; 20 | }; 21 | typedef std::vector::size_type idArrayIdx; 22 | // default to standard malloc/free 23 | #include 24 | #define ID_DECLARE_ALIGNED_ALLOCATOR() EIGEN_MAKE_ALIGNED_OPERATOR_NEW 25 | // Note on interfaces: 26 | // Eigen::Matrix has data(), to get c-array storage 27 | // HOWEVER: default storage is column-major! 28 | #define ID_LINEAR_MATH_USE_EIGEN 29 | #include "Eigen/Eigen" 30 | #include "details/IDEigenInterface.hpp" 31 | #endif 32 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletInverseDynamics/IDErrorMessages.hpp: -------------------------------------------------------------------------------- 1 | ///@file error message utility functions 2 | #ifndef IDUTILS_HPP_ 3 | #define IDUTILS_HPP_ 4 | #include 5 | /// name of file being compiled, without leading path components 6 | #define __INVDYN_FILE_WO_DIR__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) 7 | 8 | #if !defined(BT_ID_WO_BULLET) && !defined(BT_USE_INVERSE_DYNAMICS_WITH_BULLET2) 9 | #include "Bullet3Common/b3Logging.h" 10 | #define error_message(...) b3Error(__VA_ARGS__) 11 | #define warning_message(...) b3Warning(__VA_ARGS__) 12 | #define id_printf(...) b3Printf(__VA_ARGS__) 13 | #else // BT_ID_WO_BULLET 14 | #include 15 | /// print error message with file/line information 16 | #define error_message(...) \ 17 | do { \ 18 | fprintf(stderr, "[Error:%s:%d] ", __INVDYN_FILE_WO_DIR__, __LINE__); \ 19 | fprintf(stderr, __VA_ARGS__); \ 20 | } while (0) 21 | /// print warning message with file/line information 22 | #define warning_message(...) \ 23 | do { \ 24 | fprintf(stderr, "[Warning:%s:%d] ", __INVDYN_FILE_WO_DIR__, __LINE__); \ 25 | fprintf(stderr, __VA_ARGS__); \ 26 | } while (0) 27 | #define id_printf(...) printf(__VA_ARGS__) 28 | #endif // BT_ID_WO_BULLET 29 | #endif 30 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletInverseDynamics/details/IDEigenInterface.hpp: -------------------------------------------------------------------------------- 1 | #ifndef INVDYNEIGENINTERFACE_HPP_ 2 | #define INVDYNEIGENINTERFACE_HPP_ 3 | #include "../IDConfig.hpp" 4 | namespace btInverseDynamics { 5 | 6 | #define BT_ID_HAVE_MAT3X 7 | 8 | #ifdef BT_USE_DOUBLE_PRECISION 9 | typedef Eigen::Matrix vecx; 10 | typedef Eigen::Matrix vec3; 11 | typedef Eigen::Matrix mat33; 12 | typedef Eigen::Matrix matxx; 13 | typedef Eigen::Matrix mat3x; 14 | #else 15 | typedef Eigen::Matrix vecx; 16 | typedef Eigen::Matrix vec3; 17 | typedef Eigen::Matrix mat33; 18 | typedef Eigen::Matrix matxx; 19 | typedef Eigen::Matrix mat3x; 20 | #endif 21 | 22 | inline void resize(mat3x &m, Eigen::Index size) { 23 | m.resize(3, size); 24 | m.setZero(); 25 | } 26 | 27 | inline void setMatxxElem(const idArrayIdx row, const idArrayIdx col, const idScalar val, matxx*m){ 28 | (*m)(row, col) = val; 29 | } 30 | 31 | inline void setMat3xElem(const idArrayIdx row, const idArrayIdx col, const idScalar val, mat3x*m){ 32 | (*m)(row, col) = val; 33 | } 34 | 35 | } 36 | #endif // INVDYNEIGENINTERFACE_HPP_ 37 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletInverseDynamics/premake4.lua: -------------------------------------------------------------------------------- 1 | project "BulletInverseDynamics" 2 | 3 | kind "StaticLib" 4 | includedirs { 5 | "..", 6 | } 7 | files { 8 | "IDMath.cpp", 9 | "MultiBodyTree.cpp", 10 | "details/MultiBodyTreeInitCache.cpp", 11 | "details/MultiBodyTreeImpl.cpp", 12 | } 13 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletSoftBody/btSoftBody.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Bullet/include/BulletSoftBody/btSoftBody.cpp -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/BulletSoftBody/premake4.lua: -------------------------------------------------------------------------------- 1 | project "BulletSoftBody" 2 | 3 | kind "StaticLib" 4 | 5 | includedirs { 6 | "..", 7 | } 8 | files { 9 | "**.cpp", 10 | "**.h" 11 | } -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/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_graphicsWorldTrans * m_centerOfMassOffset.inverse() ; 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 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/include/LinearMath/premake4.lua: -------------------------------------------------------------------------------- 1 | project "LinearMath" 2 | 3 | kind "StaticLib" 4 | includedirs { 5 | "..", 6 | } 7 | files { 8 | "*.cpp", 9 | "*.h" 10 | } 11 | -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/lib/BulletCollision.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Bullet/lib/BulletCollision.lib -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/lib/BulletCollision_d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Bullet/lib/BulletCollision_d.lib -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/lib/BulletDynamics.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Bullet/lib/BulletDynamics.lib -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/lib/BulletDynamics_d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Bullet/lib/BulletDynamics_d.lib -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/lib/BulletSoftBody.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Bullet/lib/BulletSoftBody.lib -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/lib/BulletSoftBody_d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Bullet/lib/BulletSoftBody_d.lib -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/lib/LinearMath.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Bullet/lib/LinearMath.lib -------------------------------------------------------------------------------- /thirdparty/Win/Bullet/lib/LinearMath_d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Bullet/lib/LinearMath_d.lib -------------------------------------------------------------------------------- /thirdparty/Win/Lua/include/lapi.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lapi.h,v 2.9 2015/03/06 19:49:50 roberto Exp $ 3 | ** Auxiliary functions from Lua API 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lapi_h 8 | #define lapi_h 9 | 10 | 11 | #include "llimits.h" 12 | #include "lstate.h" 13 | 14 | #define api_incr_top(L) {L->top++; api_check(L, L->top <= L->ci->top, \ 15 | "stack overflow");} 16 | 17 | #define adjustresults(L,nres) \ 18 | { if ((nres) == LUA_MULTRET && L->ci->top < L->top) L->ci->top = L->top; } 19 | 20 | #define api_checknelems(L,n) api_check(L, (n) < (L->top - L->ci->func), \ 21 | "not enough elements in the stack") 22 | 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /thirdparty/Win/Lua/include/lprefix.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lprefix.h,v 1.2 2014/12/29 16:54:13 roberto Exp $ 3 | ** Definitions for Lua code that must come before any other header file 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lprefix_h 8 | #define lprefix_h 9 | 10 | 11 | /* 12 | ** Allows POSIX/XSI stuff 13 | */ 14 | #if !defined(LUA_USE_C89) /* { */ 15 | 16 | #if !defined(_XOPEN_SOURCE) 17 | #define _XOPEN_SOURCE 600 18 | #elif _XOPEN_SOURCE == 0 19 | #undef _XOPEN_SOURCE /* use -D_XOPEN_SOURCE=0 to undefine it */ 20 | #endif 21 | 22 | /* 23 | ** Allows manipulation of large files in gcc and some other compilers 24 | */ 25 | #if !defined(LUA_32BITS) && !defined(_FILE_OFFSET_BITS) 26 | #define _LARGEFILE_SOURCE 1 27 | #define _FILE_OFFSET_BITS 64 28 | #endif 29 | 30 | #endif /* } */ 31 | 32 | 33 | /* 34 | ** Windows stuff 35 | */ 36 | #if defined(_WIN32) /* { */ 37 | 38 | #if !defined(_CRT_SECURE_NO_WARNINGS) 39 | #define _CRT_SECURE_NO_WARNINGS /* avoid warnings about ISO C functions */ 40 | #endif 41 | 42 | #endif /* } */ 43 | 44 | #endif 45 | 46 | -------------------------------------------------------------------------------- /thirdparty/Win/Lua/include/lua.hpp: -------------------------------------------------------------------------------- 1 | // lua.hpp 2 | // Lua header files for C++ 3 | // <> not supplied automatically because Lua also compiles as C++ 4 | 5 | extern "C" { 6 | #include "lua.h" 7 | #include "lualib.h" 8 | #include "lauxlib.h" 9 | } 10 | -------------------------------------------------------------------------------- /thirdparty/Win/Lua/include/lundump.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lundump.h,v 1.45 2015/09/08 15:41:05 roberto Exp $ 3 | ** load precompiled Lua chunks 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lundump_h 8 | #define lundump_h 9 | 10 | #include "llimits.h" 11 | #include "lobject.h" 12 | #include "lzio.h" 13 | 14 | 15 | /* data to catch conversion errors */ 16 | #define LUAC_DATA "\x19\x93\r\n\x1a\n" 17 | 18 | #define LUAC_INT 0x5678 19 | #define LUAC_NUM cast_num(370.5) 20 | 21 | #define MYINT(s) (s[0]-'0') 22 | #define LUAC_VERSION (MYINT(LUA_VERSION_MAJOR)*16+MYINT(LUA_VERSION_MINOR)) 23 | #define LUAC_FORMAT 0 /* this is the official format */ 24 | 25 | /* load one chunk; from lundump.c */ 26 | LUAI_FUNC LClosure* luaU_undump (lua_State* L, ZIO* Z, const char* name); 27 | 28 | /* dump one chunk; from ldump.c */ 29 | LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, 30 | void* data, int strip); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /thirdparty/Win/Lua/lib/lua5.3.0-static.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/Lua/lib/lua5.3.0-static.lib -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/BUGS.txt: -------------------------------------------------------------------------------- 1 | 2 | Bugs are now managed in the SDL bug tracker, here: 3 | 4 | https://bugzilla.libsdl.org/ 5 | 6 | You may report bugs there, and search to see if a given issue has already 7 | been reported, discussed, and maybe even fixed. 8 | 9 | 10 | You may also find help at the SDL forums/mailing list: 11 | 12 | https://discourse.libsdl.org/ 13 | 14 | Bug reports are welcome here, but we really appreciate if you use Bugzilla, as 15 | bugs discussed on the mailing list may be forgotten or missed. 16 | 17 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/COPYING.txt: -------------------------------------------------------------------------------- 1 | 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2018 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 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/README-SDL.txt: -------------------------------------------------------------------------------- 1 | 2 | Please distribute this file with the SDL runtime environment: 3 | 4 | The Simple DirectMedia Layer (SDL for short) is a cross-platform library 5 | designed to make it easy to write multi-media software, such as games 6 | and emulators. 7 | 8 | The Simple DirectMedia Layer library source code is available from: 9 | https://www.libsdl.org/ 10 | 11 | This library is distributed under the terms of the zlib license: 12 | http://www.zlib.net/zlib_license.html 13 | 14 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/README.txt: -------------------------------------------------------------------------------- 1 | 2 | Simple DirectMedia Layer 3 | 4 | (SDL) 5 | 6 | Version 2.0 7 | 8 | --- 9 | https://www.libsdl.org/ 10 | 11 | Simple DirectMedia Layer is a cross-platform development library designed 12 | to provide low level access to audio, keyboard, mouse, joystick, and graphics 13 | hardware via OpenGL and Direct3D. It is used by video playback software, 14 | emulators, and popular games including Valve's award winning catalog 15 | and many Humble Bundle games. 16 | 17 | More extensive documentation is available in the docs directory, starting 18 | with README.md 19 | 20 | Enjoy! 21 | Sam Lantinga (slouken@libsdl.org) 22 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/docs/README-cmake.md: -------------------------------------------------------------------------------- 1 | CMake 2 | ================================================================================ 3 | (www.cmake.org) 4 | 5 | SDL's build system was traditionally based on autotools. Over time, this 6 | approach has suffered from several issues across the different supported 7 | platforms. 8 | To solve these problems, a new build system based on CMake is under development. 9 | It works in parallel to the legacy system, so users can experiment with it 10 | without complication. 11 | While still experimental, the build system should be usable on the following 12 | platforms: 13 | 14 | * FreeBSD 15 | * Linux 16 | * VS.NET 2010 17 | * MinGW and Msys 18 | * OS X with support for XCode 19 | 20 | 21 | ================================================================================ 22 | Usage 23 | ================================================================================ 24 | 25 | Assuming the source for SDL is located at ~/sdl 26 | 27 | cd ~ 28 | mkdir build 29 | cd build 30 | cmake ../sdl 31 | 32 | This will build the static and dynamic versions of SDL in the ~/build directory. 33 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/docs/README-emscripten.md: -------------------------------------------------------------------------------- 1 | Emscripten 2 | ================================================================================ 3 | 4 | Build: 5 | 6 | $ mkdir build 7 | $ cd build 8 | $ emconfigure ../configure --host=asmjs-unknown-emscripten --disable-assembly --disable-threads --disable-cpuinfo CFLAGS="-O2" 9 | $ emmake make 10 | 11 | Or with cmake: 12 | 13 | $ mkdir build 14 | $ cd build 15 | $ emcmake cmake .. 16 | $ emmake make 17 | 18 | To build one of the tests: 19 | 20 | $ cd test/ 21 | $ emcc -O2 --js-opts 0 -g4 testdraw2.c -I../include ../build/.libs/libSDL2.a ../build/libSDL2_test.a -o a.html 22 | 23 | Uses GLES2 renderer or software 24 | 25 | Some other SDL2 libraries can be easily built (assuming SDL2 is installed somewhere): 26 | 27 | SDL_mixer (http://www.libsdl.org/projects/SDL_mixer/): 28 | 29 | $ EMCONFIGURE_JS=1 emconfigure ../configure 30 | build as usual... 31 | 32 | SDL_gfx (http://cms.ferzkopp.net/index.php/software/13-sdl-gfx): 33 | 34 | $ EMCONFIGURE_JS=1 emconfigure ../configure --disable-mmx 35 | build as usual... 36 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/docs/README-hg.md: -------------------------------------------------------------------------------- 1 | Mercurial 2 | ========= 3 | 4 | The latest development version of SDL is available via Mercurial. 5 | Mercurial allows you to get up-to-the-minute fixes and enhancements; 6 | as a developer works on a source tree, you can use "hg" to mirror that 7 | source tree instead of waiting for an official release. Please look 8 | at the Mercurial website ( https://www.mercurial-scm.org/ ) for more 9 | information on using hg, where you can also download software for 10 | Mac OS X, Windows, and Unix systems. 11 | 12 | hg clone http://hg.libsdl.org/SDL 13 | 14 | If you are building SDL via configure, you will need to run autogen.sh 15 | before running configure. 16 | 17 | There is a web interface to the subversion repository at: 18 | http://hg.libsdl.org/SDL/ 19 | 20 | There is an RSS feed available at that URL, for those that want to 21 | track commits in real time. 22 | 23 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/docs/README-pandora.md: -------------------------------------------------------------------------------- 1 | Pandora 2 | ===================================================================== 3 | 4 | ( http://openpandora.org/ ) 5 | - A pandora specific video driver was written to allow SDL 2.0 with OpenGL ES 6 | support to work on the pandora under the framebuffer. This driver do not have 7 | input support for now, so if you use it you will have to add your own control code. 8 | The video driver name is "pandora" so if you have problem running it from 9 | the framebuffer, try to set the following variable before starting your application : 10 | "export SDL_VIDEODRIVER=pandora" 11 | 12 | - OpenGL ES support was added to the x11 driver, so it's working like the normal 13 | x11 driver one with OpenGLX support, with SDL input event's etc.. 14 | 15 | 16 | David Carré (Cpasjuste) 17 | cpasjuste@gmail.com 18 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/docs/README-platforms.md: -------------------------------------------------------------------------------- 1 | Platforms 2 | ========= 3 | 4 | We maintain the list of supported platforms on our wiki now, and how to 5 | build and install SDL for those platforms: 6 | 7 | https://wiki.libsdl.org/Installation 8 | 9 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/docs/README-psp.md: -------------------------------------------------------------------------------- 1 | PSP 2 | ====== 3 | SDL port for the Sony PSP contributed by 4 | Captian Lex 5 | 6 | Credit to 7 | Marcus R.Brown,Jim Paris,Matthew H for the original SDL 1.2 for PSP 8 | Geecko for his PSP GU lib "Glib2d" 9 | 10 | Building 11 | -------- 12 | To build for the PSP, make sure psp-config is in the path and run: 13 | make -f Makefile.psp 14 | 15 | 16 | 17 | To Do 18 | ------ 19 | PSP Screen Keyboard 20 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/docs/README-wince.md: -------------------------------------------------------------------------------- 1 | WinCE 2 | ===== 3 | 4 | Windows CE is no longer supported by SDL. 5 | 6 | We have left the CE support in SDL 1.2 for those that must have it, and we 7 | have support for Windows Phone 8 and WinRT in SDL2, as of SDL 2.0.3. 8 | 9 | --ryan. 10 | 11 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/include/SDL_copying.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2017 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 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/include/SDL_name.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2018 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 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/include/SDL_opengles.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2018 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 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/include/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 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/include/SDL_revision.h: -------------------------------------------------------------------------------- 1 | #define SDL_REVISION "hg-12373:8feb5da6f2fb" 2 | #define SDL_REVISION_NUMBER 12373 3 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/include/SDL_types.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2018 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 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/lib/x86/SDL2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2-2.0.9/lib/x86/SDL2.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/lib/x86/SDL2.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2-2.0.9/lib/x86/SDL2.lib -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/lib/x86/SDL2main.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2-2.0.9/lib/x86/SDL2main.lib -------------------------------------------------------------------------------- /thirdparty/Win/SDL2-2.0.9/lib/x86/SDL2test.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2-2.0.9/lib/x86/SDL2test.lib -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_image-2.0.4/COPYING.txt: -------------------------------------------------------------------------------- 1 | /* 2 | SDL_image: An example image loading library for use with SDL 3 | Copyright (C) 1997-2018 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 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_image-2.0.4/lib/x86/LICENSE.tiff.txt: -------------------------------------------------------------------------------- 1 | The source code to this library used with SDL_image can be found here: 2 | https://hg.libsdl.org/SDL_image/file/default/external 3 | --- 4 | 5 | Copyright (c) 1988-1997 Sam Leffler 6 | Copyright (c) 1991-1997 Silicon Graphics, Inc. 7 | 8 | Permission to use, copy, modify, distribute, and sell this software and 9 | its documentation for any purpose is hereby granted without fee, provided 10 | that (i) the above copyright notices and this permission notice appear in 11 | all copies of the software and related documentation, and (ii) the names of 12 | Sam Leffler and Silicon Graphics may not be used in any advertising or 13 | publicity relating to the software without the specific, prior written 14 | permission of Sam Leffler and Silicon Graphics. 15 | 16 | THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 18 | WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 19 | 20 | IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 21 | ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 22 | OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 23 | WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 24 | LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 25 | OF THIS SOFTWARE. 26 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_image-2.0.4/lib/x86/SDL2_image.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_image-2.0.4/lib/x86/SDL2_image.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_image-2.0.4/lib/x86/SDL2_image.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_image-2.0.4/lib/x86/SDL2_image.lib -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_image-2.0.4/lib/x86/libjpeg-9.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_image-2.0.4/lib/x86/libjpeg-9.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_image-2.0.4/lib/x86/libpng16-16.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_image-2.0.4/lib/x86/libpng16-16.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_image-2.0.4/lib/x86/libtiff-5.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_image-2.0.4/lib/x86/libtiff-5.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_image-2.0.4/lib/x86/libwebp-7.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_image-2.0.4/lib/x86/libwebp-7.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_image-2.0.4/lib/x86/zlib1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_image-2.0.4/lib/x86/zlib1.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_mixer-2.0.4/COPYING.txt: -------------------------------------------------------------------------------- 1 | /* 2 | SDL_mixer: An audio mixer library based on the SDL library 3 | Copyright (C) 1997-2018 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 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/LICENSE.modplug.txt: -------------------------------------------------------------------------------- 1 | The source code to this library used with SDL_mixer can be found here: 2 | https://hg.libsdl.org/SDL_mixer/file/default/external 3 | --- 4 | 5 | ModPlug-XMMS and libmodplug are now in the public domain. 6 | -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/SDL2_mixer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/SDL2_mixer.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/SDL2_mixer.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/SDL2_mixer.lib -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libFLAC-8.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libFLAC-8.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libmodplug-1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libmodplug-1.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libmpg123-0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libmpg123-0.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libogg-0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libogg-0.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libopus-0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libopus-0.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libopusfile-0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libopusfile-0.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libvorbis-0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libvorbis-0.dll -------------------------------------------------------------------------------- /thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libvorbisfile-3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/SDL2_mixer-2.0.4/lib/x86/libvorbisfile-3.dll -------------------------------------------------------------------------------- /thirdparty/Win/glew-2.1.0/lib/Release/Win32/glew32s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/Win/glew-2.1.0/lib/Release/Win32/glew32s.lib -------------------------------------------------------------------------------- /thirdparty/Win/readme.txt: -------------------------------------------------------------------------------- 1 | These libraries has been stripped from docs and x64 bit versions. 2 | Full versions of these libraries are available at: 3 | 4 | http://glew.sourceforge.net/ 5 | https://www.libsdl.org/ 6 | https://www.libsdl.org/projects/SDL_mixer/ 7 | https://www.libsdl.org/projects/SDL_image/ 8 | -------------------------------------------------------------------------------- /thirdparty/macOS/Box2D/lib/Box2D/Box2D-targets-noconfig.cmake: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------- 2 | # Generated CMake target import file. 3 | #---------------------------------------------------------------- 4 | 5 | # Commands may need to know the format version. 6 | set(CMAKE_IMPORT_FILE_VERSION 1) 7 | 8 | # Import target "Box2D" for configuration "" 9 | set_property(TARGET Box2D APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG) 10 | set_target_properties(Box2D PROPERTIES 11 | IMPORTED_LINK_INTERFACE_LANGUAGES_NOCONFIG "CXX" 12 | IMPORTED_LOCATION_NOCONFIG "${_IMPORT_PREFIX}/lib/libBox2D.a" 13 | ) 14 | 15 | list(APPEND _IMPORT_CHECK_TARGETS Box2D ) 16 | list(APPEND _IMPORT_CHECK_FILES_FOR_Box2D "${_IMPORT_PREFIX}/lib/libBox2D.a" ) 17 | 18 | # Commands beyond this point should not need to know the version. 19 | set(CMAKE_IMPORT_FILE_VERSION) 20 | -------------------------------------------------------------------------------- /thirdparty/macOS/Box2D/lib/libBox2D.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/macOS/Box2D/lib/libBox2D.a -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletCollision.framework/BulletCollision: -------------------------------------------------------------------------------- 1 | Versions/Current/BulletCollision -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletCollision.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletCollision.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletCollision.framework/Versions/2.86/BulletCollision: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/macOS/Bullet/BulletCollision.framework/Versions/2.86/BulletCollision -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletCollision.framework/Versions/2.86/Headers/Gimpact/btGImpactShape.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/macOS/Bullet/BulletCollision.framework/Versions/2.86/Headers/Gimpact/btGImpactShape.h -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletCollision.framework/Versions/2.86/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | BulletCollision 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 21 | CFBundleShortVersionString 22 | 23 | CSResourcesFileMapped 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletCollision.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | 2.86 -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletDynamics.framework/BulletDynamics: -------------------------------------------------------------------------------- 1 | Versions/Current/BulletDynamics -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletDynamics.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletDynamics.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletDynamics.framework/Versions/2.86/BulletDynamics: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/macOS/Bullet/BulletDynamics.framework/Versions/2.86/BulletDynamics -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletDynamics.framework/Versions/2.86/Headers/MLCPSolvers/btLemkeSolver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/macOS/Bullet/BulletDynamics.framework/Versions/2.86/Headers/MLCPSolvers/btLemkeSolver.h -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletDynamics.framework/Versions/2.86/Headers/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 | -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletDynamics.framework/Versions/2.86/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | BulletDynamics 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 21 | CFBundleShortVersionString 22 | 23 | CSResourcesFileMapped 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletDynamics.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | 2.86 -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletSoftBody.framework/BulletSoftBody: -------------------------------------------------------------------------------- 1 | Versions/Current/BulletSoftBody -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletSoftBody.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletSoftBody.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletSoftBody.framework/Versions/2.86/BulletSoftBody: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/macOS/Bullet/BulletSoftBody.framework/Versions/2.86/BulletSoftBody -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletSoftBody.framework/Versions/2.86/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | BulletSoftBody 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 21 | CFBundleShortVersionString 22 | 23 | CSResourcesFileMapped 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/BulletSoftBody.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | 2.86 -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/LinearMath.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/LinearMath.framework/LinearMath: -------------------------------------------------------------------------------- 1 | Versions/Current/LinearMath -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/LinearMath.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/LinearMath.framework/Versions/2.86/Headers/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_graphicsWorldTrans * m_centerOfMassOffset.inverse() ; 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 | -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/LinearMath.framework/Versions/2.86/LinearMath: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/macOS/Bullet/LinearMath.framework/Versions/2.86/LinearMath -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/LinearMath.framework/Versions/2.86/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | LinearMath 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 21 | CFBundleShortVersionString 22 | 23 | CSResourcesFileMapped 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/LinearMath.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | 2.86 -------------------------------------------------------------------------------- /thirdparty/macOS/Bullet/readme.txt: -------------------------------------------------------------------------------- 1 | Copy to /Library/Frameworks/ 2 | -------------------------------------------------------------------------------- /thirdparty/macOS/Lua/include/lapi.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lapi.h,v 2.9 2015/03/06 19:49:50 roberto Exp $ 3 | ** Auxiliary functions from Lua API 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lapi_h 8 | #define lapi_h 9 | 10 | 11 | #include "llimits.h" 12 | #include "lstate.h" 13 | 14 | #define api_incr_top(L) {L->top++; api_check(L, L->top <= L->ci->top, \ 15 | "stack overflow");} 16 | 17 | #define adjustresults(L,nres) \ 18 | { if ((nres) == LUA_MULTRET && L->ci->top < L->top) L->ci->top = L->top; } 19 | 20 | #define api_checknelems(L,n) api_check(L, (n) < (L->top - L->ci->func), \ 21 | "not enough elements in the stack") 22 | 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /thirdparty/macOS/Lua/include/lprefix.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lprefix.h,v 1.2 2014/12/29 16:54:13 roberto Exp $ 3 | ** Definitions for Lua code that must come before any other header file 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lprefix_h 8 | #define lprefix_h 9 | 10 | 11 | /* 12 | ** Allows POSIX/XSI stuff 13 | */ 14 | #if !defined(LUA_USE_C89) /* { */ 15 | 16 | #if !defined(_XOPEN_SOURCE) 17 | #define _XOPEN_SOURCE 600 18 | #elif _XOPEN_SOURCE == 0 19 | #undef _XOPEN_SOURCE /* use -D_XOPEN_SOURCE=0 to undefine it */ 20 | #endif 21 | 22 | /* 23 | ** Allows manipulation of large files in gcc and some other compilers 24 | */ 25 | #if !defined(LUA_32BITS) && !defined(_FILE_OFFSET_BITS) 26 | #define _LARGEFILE_SOURCE 1 27 | #define _FILE_OFFSET_BITS 64 28 | #endif 29 | 30 | #endif /* } */ 31 | 32 | 33 | /* 34 | ** Windows stuff 35 | */ 36 | #if defined(_WIN32) /* { */ 37 | 38 | #if !defined(_CRT_SECURE_NO_WARNINGS) 39 | #define _CRT_SECURE_NO_WARNINGS /* avoid warnings about ISO C functions */ 40 | #endif 41 | 42 | #endif /* } */ 43 | 44 | #endif 45 | 46 | -------------------------------------------------------------------------------- /thirdparty/macOS/Lua/include/lua.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | extern "C" { 4 | #include 5 | #include 6 | #include 7 | } -------------------------------------------------------------------------------- /thirdparty/macOS/Lua/include/lundump.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lundump.h,v 1.45 2015/09/08 15:41:05 roberto Exp $ 3 | ** load precompiled Lua chunks 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lundump_h 8 | #define lundump_h 9 | 10 | #include "llimits.h" 11 | #include "lobject.h" 12 | #include "lzio.h" 13 | 14 | 15 | /* data to catch conversion errors */ 16 | #define LUAC_DATA "\x19\x93\r\n\x1a\n" 17 | 18 | #define LUAC_INT 0x5678 19 | #define LUAC_NUM cast_num(370.5) 20 | 21 | #define MYINT(s) (s[0]-'0') 22 | #define LUAC_VERSION (MYINT(LUA_VERSION_MAJOR)*16+MYINT(LUA_VERSION_MINOR)) 23 | #define LUAC_FORMAT 0 /* this is the official format */ 24 | 25 | /* load one chunk; from lundump.c */ 26 | LUAI_FUNC LClosure* luaU_undump (lua_State* L, ZIO* Z, const char* name); 27 | 28 | /* dump one chunk; from ldump.c */ 29 | LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, 30 | void* data, int strip); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /thirdparty/macOS/Lua/lib/liblua.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mortennobel/SimpleRenderEngineProject/251d5c027a65e74c2b67fddce1f8dd274a70bc46/thirdparty/macOS/Lua/lib/liblua.a --------------------------------------------------------------------------------