@bloomengine/engine 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +169 -0
- package/native/android/Cargo.lock +1848 -0
- package/native/android/Cargo.toml +20 -0
- package/native/android/src/lib.rs +1747 -0
- package/native/ios/Cargo.lock +1688 -0
- package/native/ios/Cargo.toml +19 -0
- package/native/ios/src/lib.rs +2258 -0
- package/native/linux/Cargo.lock +1719 -0
- package/native/linux/Cargo.toml +22 -0
- package/native/linux/src/lib.rs +2236 -0
- package/native/macos/Cargo.lock +3310 -0
- package/native/macos/Cargo.toml +29 -0
- package/native/macos/src/lib.rs +3444 -0
- package/native/shared/Cargo.lock +1898 -0
- package/native/shared/Cargo.toml +42 -0
- package/native/shared/assets/default_font.ttf +0 -0
- package/native/shared/build.rs +77 -0
- package/native/shared/shaders/common/fog.wgsl +16 -0
- package/native/shared/shaders/common/imposter.wgsl +112 -0
- package/native/shared/shaders/common/pbr.wgsl +186 -0
- package/native/shared/shaders/common/shadows.wgsl +77 -0
- package/native/shared/shaders/common/sky.wgsl +8 -0
- package/native/shared/shaders/common/tonemap.wgsl +25 -0
- package/native/shared/shaders/impulse_field.wgsl +53 -0
- package/native/shared/shaders/material_abi.wgsl +360 -0
- package/native/shared/shaders/materials/test_minimal.wgsl +42 -0
- package/native/shared/src/audio.rs +363 -0
- package/native/shared/src/custom_shaders.rs +104 -0
- package/native/shared/src/drs.rs +211 -0
- package/native/shared/src/engine.rs +186 -0
- package/native/shared/src/frame_callbacks.rs +88 -0
- package/native/shared/src/geometry.rs +236 -0
- package/native/shared/src/handles.rs +76 -0
- package/native/shared/src/input.rs +273 -0
- package/native/shared/src/jolt_sys.rs +822 -0
- package/native/shared/src/lib.rs +43 -0
- package/native/shared/src/models.rs +1941 -0
- package/native/shared/src/physics_jolt.rs +1528 -0
- package/native/shared/src/picking.rs +298 -0
- package/native/shared/src/postfx.rs +339 -0
- package/native/shared/src/profiler.rs +416 -0
- package/native/shared/src/renderer/atmosphere_lut.rs +573 -0
- package/native/shared/src/renderer/brdf_lut.rs +154 -0
- package/native/shared/src/renderer/formats.rs +778 -0
- package/native/shared/src/renderer/graph.rs +465 -0
- package/native/shared/src/renderer/hot_reload.rs +390 -0
- package/native/shared/src/renderer/impulse_field.rs +455 -0
- package/native/shared/src/renderer/material_pipeline.rs +604 -0
- package/native/shared/src/renderer/material_system.rs +2106 -0
- package/native/shared/src/renderer/mod.rs +13923 -0
- package/native/shared/src/renderer/planar_reflection.rs +458 -0
- package/native/shared/src/renderer/post_pass.rs +249 -0
- package/native/shared/src/renderer/shader_include.rs +205 -0
- package/native/shared/src/renderer/shader_library.rs +134 -0
- package/native/shared/src/renderer/shaders.rs +5855 -0
- package/native/shared/src/renderer/transient.rs +576 -0
- package/native/shared/src/renderer/types.rs +259 -0
- package/native/shared/src/renderer/util.rs +151 -0
- package/native/shared/src/scene.rs +1066 -0
- package/native/shared/src/sdf_cache.rs +274 -0
- package/native/shared/src/shadows.rs +551 -0
- package/native/shared/src/staging.rs +90 -0
- package/native/shared/src/string_header.rs +35 -0
- package/native/shared/src/text_renderer.rs +456 -0
- package/native/shared/src/textures.rs +154 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeBuilder.cpp +242 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeBuilder.h +121 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeToBuffer.h +296 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/NodeCodec/NodeCodecQuadTreeHalfFloat.h +323 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/TriangleCodec/TriangleCodecIndexed8BitPackSOA4Flags.h +555 -0
- package/native/third_party/JoltPhysics/Jolt/ConfigurationString.h +112 -0
- package/native/third_party/JoltPhysics/Jolt/Core/ARMNeon.h +94 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Array.h +713 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Atomics.h +44 -0
- package/native/third_party/JoltPhysics/Jolt/Core/BinaryHeap.h +96 -0
- package/native/third_party/JoltPhysics/Jolt/Core/ByteBuffer.h +74 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Color.cpp +38 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Color.h +98 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Core.h +652 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FPControlWord.h +143 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FPException.h +96 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FPFlushDenormals.h +43 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Factory.cpp +92 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Factory.h +54 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FixedSizeFreeList.h +122 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FixedSizeFreeList.inl +215 -0
- package/native/third_party/JoltPhysics/Jolt/Core/HashCombine.h +234 -0
- package/native/third_party/JoltPhysics/Jolt/Core/HashTable.h +876 -0
- package/native/third_party/JoltPhysics/Jolt/Core/InsertionSort.h +58 -0
- package/native/third_party/JoltPhysics/Jolt/Core/IssueReporting.cpp +27 -0
- package/native/third_party/JoltPhysics/Jolt/Core/IssueReporting.h +38 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystem.h +311 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystem.inl +56 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemSingleThreaded.cpp +65 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemSingleThreaded.h +62 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemThreadPool.cpp +364 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemThreadPool.h +101 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemWithBarrier.cpp +230 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemWithBarrier.h +85 -0
- package/native/third_party/JoltPhysics/Jolt/Core/LinearCurve.cpp +51 -0
- package/native/third_party/JoltPhysics/Jolt/Core/LinearCurve.h +67 -0
- package/native/third_party/JoltPhysics/Jolt/Core/LockFreeHashMap.h +182 -0
- package/native/third_party/JoltPhysics/Jolt/Core/LockFreeHashMap.inl +351 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Memory.cpp +85 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Memory.h +85 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Mutex.h +223 -0
- package/native/third_party/JoltPhysics/Jolt/Core/MutexArray.h +98 -0
- package/native/third_party/JoltPhysics/Jolt/Core/NonCopyable.h +18 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Profiler.cpp +677 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Profiler.h +301 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Profiler.inl +90 -0
- package/native/third_party/JoltPhysics/Jolt/Core/QuickSort.h +137 -0
- package/native/third_party/JoltPhysics/Jolt/Core/RTTI.cpp +149 -0
- package/native/third_party/JoltPhysics/Jolt/Core/RTTI.h +436 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Reference.h +244 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Result.h +174 -0
- package/native/third_party/JoltPhysics/Jolt/Core/STLAlignedAllocator.h +72 -0
- package/native/third_party/JoltPhysics/Jolt/Core/STLAllocator.h +127 -0
- package/native/third_party/JoltPhysics/Jolt/Core/STLLocalAllocator.h +170 -0
- package/native/third_party/JoltPhysics/Jolt/Core/STLTempAllocator.h +80 -0
- package/native/third_party/JoltPhysics/Jolt/Core/ScopeExit.h +49 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Semaphore.cpp +135 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Semaphore.h +68 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StaticArray.h +329 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StreamIn.h +120 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StreamOut.h +97 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StreamUtils.h +168 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StreamWrapper.h +53 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StridedPtr.h +63 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StringTools.cpp +101 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StringTools.h +38 -0
- package/native/third_party/JoltPhysics/Jolt/Core/TempAllocator.h +209 -0
- package/native/third_party/JoltPhysics/Jolt/Core/TickCounter.cpp +37 -0
- package/native/third_party/JoltPhysics/Jolt/Core/TickCounter.h +58 -0
- package/native/third_party/JoltPhysics/Jolt/Core/UnorderedMap.h +80 -0
- package/native/third_party/JoltPhysics/Jolt/Core/UnorderedSet.h +32 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/AABox.h +313 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/AABox4.h +224 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ClipPoly.h +200 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ClosestPoint.h +498 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder.cpp +1467 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder.h +276 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder2D.cpp +335 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder2D.h +105 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexSupport.h +188 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/EPAConvexHullBuilder.h +845 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/EPAPenetrationDepth.h +557 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Ellipse.h +77 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/GJKClosestPoint.h +945 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/IndexedTriangle.h +130 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Indexify.cpp +222 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Indexify.h +19 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/MortonCode.h +40 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/OrientedBox.cpp +178 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/OrientedBox.h +39 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Plane.h +104 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayAABox.h +241 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayCapsule.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayCylinder.h +101 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RaySphere.h +96 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayTriangle.h +158 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Sphere.h +72 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Triangle.h +34 -0
- package/native/third_party/JoltPhysics/Jolt/Jolt.cmake +703 -0
- package/native/third_party/JoltPhysics/Jolt/Jolt.h +16 -0
- package/native/third_party/JoltPhysics/Jolt/Jolt.natvis +116 -0
- package/native/third_party/JoltPhysics/Jolt/Math/BVec16.h +99 -0
- package/native/third_party/JoltPhysics/Jolt/Math/BVec16.inl +177 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DMat44.h +158 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DMat44.inl +310 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DVec3.h +291 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DVec3.inl +941 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Double3.h +48 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DynMatrix.h +31 -0
- package/native/third_party/JoltPhysics/Jolt/Math/EigenValueSymmetric.h +177 -0
- package/native/third_party/JoltPhysics/Jolt/Math/FindRoot.h +42 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Float2.h +36 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Float3.h +50 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Float4.h +44 -0
- package/native/third_party/JoltPhysics/Jolt/Math/GaussianElimination.h +102 -0
- package/native/third_party/JoltPhysics/Jolt/Math/HalfFloat.h +208 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Mat44.h +243 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Mat44.inl +952 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Math.h +208 -0
- package/native/third_party/JoltPhysics/Jolt/Math/MathTypes.h +32 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Matrix.h +259 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Quat.h +268 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Quat.inl +406 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Real.h +44 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Swizzle.h +19 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Trigonometry.h +79 -0
- package/native/third_party/JoltPhysics/Jolt/Math/UVec4.h +232 -0
- package/native/third_party/JoltPhysics/Jolt/Math/UVec4.inl +636 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec3.cpp +71 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec3.h +308 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec3.inl +942 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec4.h +320 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec4.inl +1152 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vector.h +211 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/GetPrimitiveTypeOfType.h +54 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStream.cpp +38 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStream.h +337 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryIn.cpp +252 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryIn.h +57 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryOut.cpp +165 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryOut.h +57 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamIn.cpp +635 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamIn.h +148 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamOut.cpp +166 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamOut.h +101 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextIn.cpp +418 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextIn.h +55 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextOut.cpp +255 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextOut.h +62 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTypes.h +26 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttribute.h +111 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttributeEnum.h +67 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttributeTyped.h +60 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableObject.cpp +15 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableObject.h +170 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/TypeDeclarations.cpp +70 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/TypeDeclarations.h +45 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/AllowedDOFs.h +68 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.cpp +426 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.h +452 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.inl +197 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyAccess.h +68 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyActivationListener.h +28 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyCreationSettings.cpp +234 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyCreationSettings.h +124 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyFilter.h +130 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyID.h +101 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyInterface.cpp +1099 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyInterface.h +324 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLock.h +111 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLockInterface.h +134 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLockMulti.h +120 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyManager.cpp +1220 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyManager.h +403 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyPair.h +36 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyType.h +19 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MassProperties.cpp +185 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MassProperties.h +58 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.cpp +92 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.h +308 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.inl +178 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionQuality.h +31 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionType.h +17 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/Character.cpp +354 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/Character.h +159 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterBase.cpp +59 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterBase.h +157 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterID.h +98 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterVirtual.cpp +1933 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterVirtual.h +752 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/AABoxCast.h +20 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ActiveEdgeMode.h +17 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ActiveEdges.h +114 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BackFaceMode.h +16 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhase.cpp +16 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhase.h +109 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseBruteForce.cpp +313 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseBruteForce.h +38 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayer.h +148 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayerInterfaceMask.h +92 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayerInterfaceTable.h +64 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp +629 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.h +108 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuery.h +56 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/ObjectVsBroadPhaseLayerFilterMask.h +35 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/ObjectVsBroadPhaseLayerFilterTable.h +66 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/QuadTree.cpp +1768 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/QuadTree.h +389 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastConvexVsTriangles.cpp +107 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastConvexVsTriangles.h +46 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastResult.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastSphereVsTriangles.cpp +223 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastSphereVsTriangles.h +49 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollectFacesMode.h +16 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideConvexVsTriangles.cpp +155 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideConvexVsTriangles.h +56 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollidePointResult.h +25 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideShape.h +106 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideShapeVsShapePerLeaf.h +94 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSoftBodyVertexIterator.h +110 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSoftBodyVerticesVsTriangles.h +102 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSphereVsTriangles.cpp +121 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSphereVsTriangles.h +50 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionCollector.h +109 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionCollectorImpl.h +219 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionDispatch.cpp +107 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionDispatch.h +97 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionGroup.cpp +35 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionGroup.h +97 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ContactListener.h +143 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/EstimateCollisionResponse.cpp +213 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/EstimateCollisionResponse.h +48 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilter.cpp +32 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilter.h +46 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilterTable.cpp +38 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilterTable.h +130 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/InternalEdgeRemovingCollector.h +279 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ManifoldBetweenTwoFaces.cpp +271 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ManifoldBetweenTwoFaces.h +44 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseQuery.cpp +448 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseQuery.h +77 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseStats.cpp +62 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseStats.h +110 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayer.h +111 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayerPairFilterMask.h +52 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayerPairFilterTable.h +78 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterial.cpp +35 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterial.h +57 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterialSimple.cpp +38 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterialSimple.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/RayCast.h +87 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/BoxShape.cpp +318 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/BoxShape.h +115 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CapsuleShape.cpp +438 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CapsuleShape.h +129 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShape.cpp +433 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShape.h +354 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShapeVisitors.h +461 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexHullShape.cpp +1311 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexHullShape.h +202 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexShape.cpp +566 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexShape.h +150 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CylinderShape.cpp +418 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CylinderShape.h +126 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/DecoratedShape.cpp +87 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/DecoratedShape.h +80 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/EmptyShape.cpp +64 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/EmptyShape.h +75 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/GetTrianglesContext.h +248 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.cpp +2754 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.h +380 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MeshShape.cpp +1305 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MeshShape.h +228 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MutableCompoundShape.cpp +596 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MutableCompoundShape.h +176 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/OffsetCenterOfMassShape.cpp +217 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/OffsetCenterOfMassShape.h +140 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PlaneShape.cpp +541 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PlaneShape.h +147 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PolyhedronSubmergedVolumeCalculator.h +319 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/RotatedTranslatedShape.cpp +333 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/RotatedTranslatedShape.h +161 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaleHelpers.h +83 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaledShape.cpp +238 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaledShape.h +145 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/Shape.cpp +325 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/Shape.h +466 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SphereShape.cpp +347 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SphereShape.h +125 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/StaticCompoundShape.cpp +674 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/StaticCompoundShape.h +139 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SubShapeID.h +138 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SubShapeIDPair.h +65 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.cpp +453 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.gliffy +1 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.h +135 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCylinderShape.cpp +691 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCylinderShape.h +132 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TriangleShape.cpp +430 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TriangleShape.h +143 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ShapeCast.h +173 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ShapeFilter.h +73 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SimShapeFilter.h +40 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SimShapeFilterWrapper.h +58 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SortReverseAndStore.h +48 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/TransformedShape.cpp +180 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/TransformedShape.h +194 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/CalculateSolverSteps.h +70 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConeConstraint.cpp +246 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConeConstraint.h +133 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/Constraint.cpp +73 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/Constraint.h +243 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintManager.cpp +289 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintManager.h +100 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/AngleConstraintPart.h +257 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/AxisConstraintPart.h +682 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/DualAxisConstraintPart.h +276 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/GearConstraintPart.h +195 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/HingeRotationConstraintPart.h +222 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/IndependentAxisConstraintPart.h +246 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/PointConstraintPart.h +239 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RackAndPinionConstraintPart.h +196 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RotationEulerConstraintPart.h +283 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RotationQuatConstraintPart.h +246 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/SpringPart.h +169 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/SwingTwistConstraintPart.h +597 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ContactConstraintManager.cpp +1804 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ContactConstraintManager.h +524 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/DistanceConstraint.cpp +266 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/DistanceConstraint.h +120 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/FixedConstraint.cpp +215 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/FixedConstraint.h +96 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/GearConstraint.cpp +188 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/GearConstraint.h +116 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/HingeConstraint.cpp +443 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/HingeConstraint.h +205 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/MotorSettings.cpp +43 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/MotorSettings.h +66 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraint.cpp +458 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraint.h +191 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPath.cpp +85 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPath.h +76 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPathHermite.cpp +308 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPathHermite.h +54 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PointConstraint.cpp +157 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PointConstraint.h +94 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PulleyConstraint.cpp +253 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PulleyConstraint.h +137 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/RackAndPinionConstraint.cpp +189 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/RackAndPinionConstraint.h +118 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SixDOFConstraint.cpp +900 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SixDOFConstraint.h +289 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SliderConstraint.cpp +501 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SliderConstraint.h +198 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SpringSettings.cpp +35 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SpringSettings.h +70 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SwingTwistConstraint.cpp +524 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SwingTwistConstraint.h +197 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/TwoBodyConstraint.cpp +56 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/TwoBodyConstraint.h +65 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/DeterminismLog.cpp +17 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/DeterminismLog.h +159 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/EActivation.h +16 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/EPhysicsUpdateError.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/IslandBuilder.cpp +492 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/IslandBuilder.h +144 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/LargeIslandSplitter.cpp +582 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/LargeIslandSplitter.h +187 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsLock.h +169 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsScene.cpp +261 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsScene.h +104 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSettings.h +125 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsStepListener.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSystem.cpp +2915 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSystem.h +391 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsUpdateContext.cpp +25 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsUpdateContext.h +176 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Ragdoll/Ragdoll.cpp +744 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Ragdoll/Ragdoll.h +245 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyContactListener.h +55 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyCreationSettings.cpp +128 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyCreationSettings.h +75 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyManifold.h +74 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyMotionProperties.cpp +1501 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyMotionProperties.h +333 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyShape.cpp +354 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyShape.h +73 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodySharedSettings.cpp +1487 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodySharedSettings.h +390 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyUpdateContext.h +63 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyVertex.h +36 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorder.h +136 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorderImpl.cpp +90 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorderImpl.h +50 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/MotorcycleController.cpp +306 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/MotorcycleController.h +119 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/TrackedVehicleController.cpp +547 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/TrackedVehicleController.h +169 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleAntiRollBar.cpp +33 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleAntiRollBar.h +33 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.cpp +376 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.h +146 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleConstraint.cpp +703 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleConstraint.h +252 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleController.cpp +17 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleController.h +87 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleDifferential.cpp +81 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleDifferential.h +39 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleEngine.cpp +122 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleEngine.h +93 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTrack.cpp +52 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTrack.h +56 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTransmission.cpp +159 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTransmission.h +87 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/Wheel.cpp +93 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/Wheel.h +148 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/WheeledVehicleController.cpp +866 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/WheeledVehicleController.h +205 -0
- package/native/third_party/JoltPhysics/Jolt/RegisterTypes.cpp +204 -0
- package/native/third_party/JoltPhysics/Jolt/RegisterTypes.h +29 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRenderer.cpp +1107 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRenderer.h +383 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererPlayback.cpp +168 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererPlayback.h +48 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererRecorder.cpp +158 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererRecorder.h +130 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererSimple.cpp +80 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererSimple.h +88 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletalAnimation.cpp +165 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletalAnimation.h +91 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/Skeleton.cpp +82 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/Skeleton.h +72 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonMapper.cpp +237 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonMapper.h +145 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonPose.cpp +87 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonPose.h +82 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitter.cpp +73 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitter.h +84 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterBinning.cpp +139 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterBinning.h +52 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterMean.cpp +43 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterMean.h +28 -0
- package/native/third_party/JoltPhysics/LICENSE +7 -0
- package/native/third_party/JoltPhysics/README.md +173 -0
- package/native/third_party/bloom_jolt/CMakeLists.txt +78 -0
- package/native/third_party/bloom_jolt/include/bloom_jolt.h +519 -0
- package/native/third_party/bloom_jolt/src/bloom_jolt.cpp +1780 -0
- package/native/tvos/Cargo.lock +1692 -0
- package/native/tvos/Cargo.toml +22 -0
- package/native/tvos/src/lib.rs +3179 -0
- package/native/watchos/Cargo.lock +16 -0
- package/native/watchos/Cargo.toml +19 -0
- package/native/watchos/shaders/bloom_postfx.metal +99 -0
- package/native/watchos/src/BloomWatchApp.swift +1236 -0
- package/native/watchos/src/BloomWatchAudio.swift +179 -0
- package/native/watchos/src/audio.rs +55 -0
- package/native/watchos/src/draw_list.rs +223 -0
- package/native/watchos/src/ffi_stubs.rs +454 -0
- package/native/watchos/src/lib.rs +1013 -0
- package/native/watchos/src/models.rs +746 -0
- package/native/watchos/src/postfx.rs +91 -0
- package/native/watchos/src/scene.rs +534 -0
- package/native/watchos/src/textures.rs +184 -0
- package/native/web/Cargo.lock +1656 -0
- package/native/web/Cargo.toml +38 -0
- package/native/web/bloom_glue.js +218 -0
- package/native/web/build.sh +101 -0
- package/native/web/index.html +390 -0
- package/native/web/jolt_bridge.js +1311 -0
- package/native/web/src/lib.rs +2739 -0
- package/native/windows/Cargo.lock +1813 -0
- package/native/windows/Cargo.toml +31 -0
- package/native/windows/src/lib.rs +1933 -0
- package/package.json +558 -0
- package/src/audio/index.ts +151 -0
- package/src/core/colors.ts +56 -0
- package/src/core/index.ts +903 -0
- package/src/core/keys.ts +63 -0
- package/src/core/types.ts +102 -0
- package/src/index.ts +158 -0
- package/src/math/index.ts +502 -0
- package/src/mobile/index.ts +294 -0
- package/src/models/index.ts +859 -0
- package/src/physics/index.ts +1072 -0
- package/src/scene/index.ts +570 -0
- package/src/shapes/index.ts +120 -0
- package/src/text/index.ts +48 -0
- package/src/textures/index.ts +173 -0
- package/src/world/index.ts +22 -0
- package/src/world/loader.ts +385 -0
- package/src/world/prefab.ts +205 -0
- package/src/world/saver.ts +61 -0
- package/src/world/terrain.ts +254 -0
- package/src/world/types.ts +136 -0
- package/src/world/validate.ts +202 -0
- package/src/world/version.ts +47 -0
|
@@ -0,0 +1,570 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bloom Scene Graph — Retained-mode 3D scene management.
|
|
3
|
+
*
|
|
4
|
+
* Unlike immediate-mode drawing (drawCube, drawModel), the scene graph holds
|
|
5
|
+
* persistent meshes that survive across frames. Systems update geometry and
|
|
6
|
+
* transforms; the renderer draws all visible nodes each frame automatically.
|
|
7
|
+
*
|
|
8
|
+
* Designed for architecture/CAD editors compiled natively via Perry.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// ============================================================
|
|
12
|
+
// FFI declarations (match package.json nativeLibrary.functions)
|
|
13
|
+
// ============================================================
|
|
14
|
+
|
|
15
|
+
declare function bloom_scene_create_node(): number;
|
|
16
|
+
declare function bloom_scene_destroy_node(handle: number): void;
|
|
17
|
+
declare function bloom_scene_set_visible(handle: number, visible: number): void;
|
|
18
|
+
declare function bloom_scene_set_cast_shadow(handle: number, cast: number): void;
|
|
19
|
+
declare function bloom_scene_set_receive_shadow(handle: number, receive: number): void;
|
|
20
|
+
declare function bloom_scene_set_parent(handle: number, parent: number): void;
|
|
21
|
+
declare function bloom_scene_set_transform(handle: number, matrix: number): void;
|
|
22
|
+
declare function bloom_scene_update_geometry(
|
|
23
|
+
handle: number,
|
|
24
|
+
vertices: number,
|
|
25
|
+
vertexCount: number,
|
|
26
|
+
indices: number,
|
|
27
|
+
indexCount: number,
|
|
28
|
+
): void;
|
|
29
|
+
declare function bloom_scene_set_material_color(handle: number, r: number, g: number, b: number, a: number): void;
|
|
30
|
+
declare function bloom_scene_set_material_pbr(handle: number, roughness: number, metalness: number): void;
|
|
31
|
+
declare function bloom_scene_set_material_texture(handle: number, textureIdx: number): void;
|
|
32
|
+
declare function bloom_scene_node_count(): number;
|
|
33
|
+
|
|
34
|
+
// Frame callbacks
|
|
35
|
+
declare function bloom_register_frame_callback(priority: number, callback: number): number;
|
|
36
|
+
declare function bloom_unregister_frame_callback(id: number): void;
|
|
37
|
+
|
|
38
|
+
// Multiple lights
|
|
39
|
+
declare function bloom_add_directional_light(
|
|
40
|
+
dx: number, dy: number, dz: number,
|
|
41
|
+
r: number, g: number, b: number,
|
|
42
|
+
intensity: number,
|
|
43
|
+
): void;
|
|
44
|
+
declare function bloom_add_point_light(
|
|
45
|
+
x: number, y: number, z: number, range: number,
|
|
46
|
+
r: number, g: number, b: number,
|
|
47
|
+
intensity: number,
|
|
48
|
+
): void;
|
|
49
|
+
|
|
50
|
+
// Shadows
|
|
51
|
+
declare function bloom_enable_shadows(): void;
|
|
52
|
+
declare function bloom_disable_shadows(): void;
|
|
53
|
+
declare function bloom_dump_shadow_map(path: number): void;
|
|
54
|
+
|
|
55
|
+
// Post-processing
|
|
56
|
+
declare function bloom_enable_postfx(): void;
|
|
57
|
+
declare function bloom_disable_postfx(): void;
|
|
58
|
+
declare function bloom_postfx_set_selected(handle: number): void;
|
|
59
|
+
declare function bloom_postfx_set_hovered(handle: number): void;
|
|
60
|
+
declare function bloom_postfx_set_outline_color(r: number, g: number, b: number, a: number): void;
|
|
61
|
+
declare function bloom_postfx_set_outline_thickness(thickness: number): void;
|
|
62
|
+
|
|
63
|
+
// Model attachment
|
|
64
|
+
declare function bloom_scene_attach_model(nodeHandle: number, modelHandle: number, meshIndex: number): void;
|
|
65
|
+
|
|
66
|
+
// 3D→2D Projection
|
|
67
|
+
declare function bloom_project_to_screen(wx: number, wy: number, wz: number): number;
|
|
68
|
+
declare function bloom_project_screen_y(): number;
|
|
69
|
+
|
|
70
|
+
// Scene picking
|
|
71
|
+
declare function bloom_scene_pick(screenX: number, screenY: number): number;
|
|
72
|
+
declare function bloom_pick_hit_handle(): number;
|
|
73
|
+
declare function bloom_pick_hit_distance(): number;
|
|
74
|
+
declare function bloom_pick_hit_x(): number;
|
|
75
|
+
declare function bloom_pick_hit_y(): number;
|
|
76
|
+
declare function bloom_pick_hit_z(): number;
|
|
77
|
+
declare function bloom_pick_hit_normal_x(): number;
|
|
78
|
+
declare function bloom_pick_hit_normal_y(): number;
|
|
79
|
+
declare function bloom_pick_hit_normal_z(): number;
|
|
80
|
+
|
|
81
|
+
// Geometry generation
|
|
82
|
+
// Q6: multi-hit picking
|
|
83
|
+
declare function bloom_scene_pick_all(screenX: number, screenY: number, maxResults: number): number;
|
|
84
|
+
declare function bloom_pick_all_handle(index: number): number;
|
|
85
|
+
declare function bloom_pick_all_distance(index: number): number;
|
|
86
|
+
|
|
87
|
+
// Q8: water material
|
|
88
|
+
declare function bloom_scene_set_material_water(handle: number, waveAmp: number, waveSpeed: number, r: number, g: number, b: number, a: number): void;
|
|
89
|
+
|
|
90
|
+
// Q4: transform read-back
|
|
91
|
+
declare function bloom_scene_get_transform(handle: number, index: number): number;
|
|
92
|
+
// Q5: node bounds
|
|
93
|
+
declare function bloom_scene_get_bounds_min_x(handle: number): number;
|
|
94
|
+
declare function bloom_scene_get_bounds_min_y(handle: number): number;
|
|
95
|
+
declare function bloom_scene_get_bounds_min_z(handle: number): number;
|
|
96
|
+
declare function bloom_scene_get_bounds_max_x(handle: number): number;
|
|
97
|
+
declare function bloom_scene_get_bounds_max_y(handle: number): number;
|
|
98
|
+
declare function bloom_scene_get_bounds_max_z(handle: number): number;
|
|
99
|
+
// Q7: user data
|
|
100
|
+
declare function bloom_scene_set_user_data(handle: number, data: number): void;
|
|
101
|
+
declare function bloom_scene_get_user_data(handle: number): number;
|
|
102
|
+
|
|
103
|
+
declare function bloom_scene_extrude_polygon(
|
|
104
|
+
handle: number,
|
|
105
|
+
polygon: number,
|
|
106
|
+
pointCount: number,
|
|
107
|
+
depth: number,
|
|
108
|
+
): void;
|
|
109
|
+
declare function bloom_scene_subtract_box(
|
|
110
|
+
handle: number,
|
|
111
|
+
minX: number, minY: number, minZ: number,
|
|
112
|
+
maxX: number, maxY: number, maxZ: number,
|
|
113
|
+
): void;
|
|
114
|
+
|
|
115
|
+
// ============================================================
|
|
116
|
+
// Types
|
|
117
|
+
// ============================================================
|
|
118
|
+
|
|
119
|
+
export type SceneNodeHandle = number;
|
|
120
|
+
|
|
121
|
+
export interface PbrMaterial {
|
|
122
|
+
color?: [number, number, number];
|
|
123
|
+
roughness?: number;
|
|
124
|
+
metalness?: number;
|
|
125
|
+
opacity?: number;
|
|
126
|
+
textureIdx?: number;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// ============================================================
|
|
130
|
+
// Public API
|
|
131
|
+
// ============================================================
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Create a new empty scene node. Returns a handle.
|
|
135
|
+
* The node is visible by default but has no geometry.
|
|
136
|
+
*/
|
|
137
|
+
export function createSceneNode(): SceneNodeHandle {
|
|
138
|
+
return bloom_scene_create_node();
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Destroy a scene node, freeing its GPU resources.
|
|
143
|
+
*/
|
|
144
|
+
export function destroySceneNode(handle: SceneNodeHandle): void {
|
|
145
|
+
bloom_scene_destroy_node(handle);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Set visibility of a scene node.
|
|
150
|
+
*/
|
|
151
|
+
export function setSceneNodeVisible(handle: SceneNodeHandle, visible: boolean): void {
|
|
152
|
+
bloom_scene_set_visible(handle, visible ? 1 : 0);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Set whether this node casts shadows.
|
|
157
|
+
*/
|
|
158
|
+
export function setSceneNodeCastShadow(handle: SceneNodeHandle, cast: boolean): void {
|
|
159
|
+
bloom_scene_set_cast_shadow(handle, cast ? 1 : 0);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Set whether this node receives shadows.
|
|
164
|
+
*/
|
|
165
|
+
export function setSceneNodeReceiveShadow(handle: SceneNodeHandle, receive: boolean): void {
|
|
166
|
+
bloom_scene_set_receive_shadow(handle, receive ? 1 : 0);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Set the parent of a scene node. Pass 0 for no parent (root node).
|
|
171
|
+
*/
|
|
172
|
+
export function setSceneNodeParent(handle: SceneNodeHandle, parent: SceneNodeHandle): void {
|
|
173
|
+
bloom_scene_set_parent(handle, parent);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Set the 4x4 transform matrix for a scene node.
|
|
178
|
+
* Matrix is in column-major order (same as Three.js/glm).
|
|
179
|
+
*/
|
|
180
|
+
export function setSceneNodeTransform(handle: SceneNodeHandle, matrix: number[]): void {
|
|
181
|
+
bloom_scene_set_transform(handle, matrix as any);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Update the geometry of a scene node.
|
|
186
|
+
*
|
|
187
|
+
* @param vertices — Flat array of vertex data. Each vertex has 12 floats:
|
|
188
|
+
* [x, y, z, nx, ny, nz, r, g, b, a, u, v]
|
|
189
|
+
* @param indices — Flat array of triangle indices (3 per triangle).
|
|
190
|
+
*/
|
|
191
|
+
export function updateSceneNodeGeometry(
|
|
192
|
+
handle: SceneNodeHandle,
|
|
193
|
+
vertices: number[],
|
|
194
|
+
indices: number[],
|
|
195
|
+
): void {
|
|
196
|
+
bloom_scene_update_geometry(
|
|
197
|
+
handle,
|
|
198
|
+
vertices as any,
|
|
199
|
+
vertices.length / 12,
|
|
200
|
+
indices as any,
|
|
201
|
+
indices.length,
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Set the material color and opacity of a scene node.
|
|
207
|
+
* Color components are 0-1 (not 0-255).
|
|
208
|
+
*/
|
|
209
|
+
export function setSceneNodeColor(handle: SceneNodeHandle, r: number, g: number, b: number, a: number = 1): void {
|
|
210
|
+
bloom_scene_set_material_color(handle, r, g, b, a);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Set PBR material properties (roughness and metalness).
|
|
215
|
+
*/
|
|
216
|
+
export function setSceneNodePbr(handle: SceneNodeHandle, roughness: number, metalness: number): void {
|
|
217
|
+
bloom_scene_set_material_pbr(handle, roughness, metalness);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Set the texture for a scene node's material.
|
|
222
|
+
* Pass 0 for the default white texture.
|
|
223
|
+
*/
|
|
224
|
+
export function setSceneNodeTexture(handle: SceneNodeHandle, textureIdx: number): void {
|
|
225
|
+
bloom_scene_set_material_texture(handle, textureIdx);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Get the number of live scene nodes.
|
|
230
|
+
*/
|
|
231
|
+
export function getSceneNodeCount(): number {
|
|
232
|
+
return bloom_scene_node_count();
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// ============================================================
|
|
236
|
+
// Frame Callbacks (replaces R3F's useFrame)
|
|
237
|
+
// ============================================================
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Register a callback that runs every frame, ordered by priority.
|
|
241
|
+
* Lower priority numbers run first (matching R3F convention:
|
|
242
|
+
* SlabSystem=1, ItemSystem=2, DoorSystem=3, WallSystem=4, RoofSystem=5).
|
|
243
|
+
*
|
|
244
|
+
* Returns an ID that can be used to unregister the callback.
|
|
245
|
+
*/
|
|
246
|
+
export function registerFrameCallback(priority: number, callback: (deltaTime: number) => void): number {
|
|
247
|
+
return bloom_register_frame_callback(priority, callback as any);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Unregister a frame callback by ID.
|
|
252
|
+
*/
|
|
253
|
+
export function unregisterFrameCallback(id: number): void {
|
|
254
|
+
bloom_unregister_frame_callback(id);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// ============================================================
|
|
258
|
+
// Multiple Lights
|
|
259
|
+
// ============================================================
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Add a directional light. Color is 0-1 range. Up to 4 additional directional lights.
|
|
263
|
+
* Called each frame (lights are cleared at frame start).
|
|
264
|
+
*/
|
|
265
|
+
export function addDirectionalLight(
|
|
266
|
+
dx: number, dy: number, dz: number,
|
|
267
|
+
r: number, g: number, b: number,
|
|
268
|
+
intensity: number,
|
|
269
|
+
): void {
|
|
270
|
+
bloom_add_directional_light(dx, dy, dz, r, g, b, intensity);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Add a point light. Color is 0-1 range. Up to 16 point lights.
|
|
275
|
+
* Called each frame (lights are cleared at frame start).
|
|
276
|
+
*/
|
|
277
|
+
// ============================================================
|
|
278
|
+
// Shadow Mapping
|
|
279
|
+
// ============================================================
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Enable shadow mapping (single directional light).
|
|
283
|
+
* Shadows are rendered from the primary directional light's perspective.
|
|
284
|
+
*/
|
|
285
|
+
export function enableShadows(): void {
|
|
286
|
+
bloom_enable_shadows();
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Disable shadow mapping.
|
|
291
|
+
*/
|
|
292
|
+
export function disableShadows(): void {
|
|
293
|
+
bloom_disable_shadows();
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Dump the shadow map depth texture to a grayscale PNG for debugging.
|
|
298
|
+
*/
|
|
299
|
+
export function dumpShadowMap(path: string): void {
|
|
300
|
+
bloom_dump_shadow_map(path as any);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
// ============================================================
|
|
304
|
+
// Post-Processing (Outlines, SSAO)
|
|
305
|
+
// ============================================================
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Enable the post-processing pipeline (outlines, SSAO).
|
|
309
|
+
* Must be called after initWindow.
|
|
310
|
+
*/
|
|
311
|
+
export function enablePostFx(): void {
|
|
312
|
+
bloom_enable_postfx();
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Disable post-processing (render directly to screen).
|
|
317
|
+
*/
|
|
318
|
+
export function disablePostFx(): void {
|
|
319
|
+
bloom_disable_postfx();
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* Set the selected scene node for outline rendering.
|
|
324
|
+
* Pass 0 to clear selection. Matching Pascal Editor's outliner.selectedObjects.
|
|
325
|
+
*/
|
|
326
|
+
export function setPostFxSelected(handle: SceneNodeHandle): void {
|
|
327
|
+
bloom_postfx_set_selected(handle);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Set the hovered scene node for outline rendering.
|
|
332
|
+
* Pass 0 to clear hover.
|
|
333
|
+
*/
|
|
334
|
+
export function setPostFxHovered(handle: SceneNodeHandle): void {
|
|
335
|
+
bloom_postfx_set_hovered(handle);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* Set the outline color for selected objects (0-1 range).
|
|
340
|
+
*/
|
|
341
|
+
export function setOutlineColor(r: number, g: number, b: number, a: number = 1): void {
|
|
342
|
+
bloom_postfx_set_outline_color(r, g, b, a);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
/**
|
|
346
|
+
* Set the outline thickness in pixels.
|
|
347
|
+
*/
|
|
348
|
+
export function setOutlineThickness(thickness: number): void {
|
|
349
|
+
bloom_postfx_set_outline_thickness(thickness);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
// ============================================================
|
|
353
|
+
// Model Attachment (GLTF → Scene Node)
|
|
354
|
+
// ============================================================
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Attach a loaded GLTF model's mesh to a scene node.
|
|
358
|
+
* Copies vertex/index data from the model into the scene node's geometry.
|
|
359
|
+
* This is the native equivalent of R3F's useGLTF + Clone.
|
|
360
|
+
*
|
|
361
|
+
* @param nodeHandle — scene node to receive the geometry
|
|
362
|
+
* @param modelHandle — loaded model handle (from loadModel())
|
|
363
|
+
* @param meshIndex — which mesh in the model (0 for single-mesh models)
|
|
364
|
+
*/
|
|
365
|
+
export function attachModelToNode(
|
|
366
|
+
nodeHandle: SceneNodeHandle,
|
|
367
|
+
modelHandle: number,
|
|
368
|
+
meshIndex: number = 0,
|
|
369
|
+
): void {
|
|
370
|
+
bloom_scene_attach_model(nodeHandle, modelHandle, meshIndex);
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
// ============================================================
|
|
374
|
+
// 3D → 2D Projection (for UI overlays in 3D space)
|
|
375
|
+
// ============================================================
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* Project a world-space 3D point to screen coordinates.
|
|
379
|
+
* Returns { x, y, visible }. If the point is behind the camera, visible is false.
|
|
380
|
+
*
|
|
381
|
+
* This is the native equivalent of R3F's drei Html component positioning.
|
|
382
|
+
* Used for zone labels, dimension references, interactive controls.
|
|
383
|
+
*/
|
|
384
|
+
export function projectToScreen(
|
|
385
|
+
worldX: number, worldY: number, worldZ: number,
|
|
386
|
+
): { x: number; y: number; visible: boolean } {
|
|
387
|
+
const sx = bloom_project_to_screen(worldX, worldY, worldZ);
|
|
388
|
+
const sy = bloom_project_screen_y();
|
|
389
|
+
return {
|
|
390
|
+
x: sx,
|
|
391
|
+
y: sy,
|
|
392
|
+
visible: sx > -9000,
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
// ============================================================
|
|
397
|
+
// Scene Picking (raycasting from screen)
|
|
398
|
+
// ============================================================
|
|
399
|
+
|
|
400
|
+
export interface PickHit {
|
|
401
|
+
hit: boolean;
|
|
402
|
+
handle: SceneNodeHandle;
|
|
403
|
+
distance: number;
|
|
404
|
+
point: { x: number; y: number; z: number };
|
|
405
|
+
normal: { x: number; y: number; z: number };
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
/**
|
|
409
|
+
* Raycast from screen coordinates against all visible scene nodes.
|
|
410
|
+
* Returns the closest hit with world-space point and normal.
|
|
411
|
+
*
|
|
412
|
+
* Must be called after beginMode3D() so the camera matrices are set.
|
|
413
|
+
*/
|
|
414
|
+
export function pickScene(screenX: number, screenY: number): PickHit {
|
|
415
|
+
const hit = bloom_scene_pick(screenX, screenY) !== 0;
|
|
416
|
+
if (!hit) {
|
|
417
|
+
return {
|
|
418
|
+
hit: false,
|
|
419
|
+
handle: 0,
|
|
420
|
+
distance: 0,
|
|
421
|
+
point: { x: 0, y: 0, z: 0 },
|
|
422
|
+
normal: { x: 0, y: 0, z: 0 },
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
return {
|
|
426
|
+
hit: true,
|
|
427
|
+
handle: bloom_pick_hit_handle(),
|
|
428
|
+
distance: bloom_pick_hit_distance(),
|
|
429
|
+
point: {
|
|
430
|
+
x: bloom_pick_hit_x(),
|
|
431
|
+
y: bloom_pick_hit_y(),
|
|
432
|
+
z: bloom_pick_hit_z(),
|
|
433
|
+
},
|
|
434
|
+
normal: {
|
|
435
|
+
x: bloom_pick_hit_normal_x(),
|
|
436
|
+
y: bloom_pick_hit_normal_y(),
|
|
437
|
+
z: bloom_pick_hit_normal_z(),
|
|
438
|
+
},
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
// ============================================================
|
|
443
|
+
// Geometry Generation
|
|
444
|
+
// ============================================================
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* Extrude a 2D polygon along Y axis and set as the node's geometry.
|
|
448
|
+
* The polygon is a flat array of 2D points: [x0, z0, x1, z1, ...].
|
|
449
|
+
* Extrusion goes from Y=0 to Y=depth.
|
|
450
|
+
*/
|
|
451
|
+
export function extrudePolygon(
|
|
452
|
+
handle: SceneNodeHandle,
|
|
453
|
+
polygon: number[],
|
|
454
|
+
depth: number,
|
|
455
|
+
): void {
|
|
456
|
+
bloom_scene_extrude_polygon(handle, polygon as any, polygon.length / 2, depth);
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
/**
|
|
460
|
+
* Subtract an axis-aligned box from a scene node's geometry.
|
|
461
|
+
* Removes triangles fully inside the box (simplified CSG for door cutouts).
|
|
462
|
+
*/
|
|
463
|
+
export function subtractBox(
|
|
464
|
+
handle: SceneNodeHandle,
|
|
465
|
+
minX: number, minY: number, minZ: number,
|
|
466
|
+
maxX: number, maxY: number, maxZ: number,
|
|
467
|
+
): void {
|
|
468
|
+
bloom_scene_subtract_box(handle, minX, minY, minZ, maxX, maxY, maxZ);
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
// ============================================================
|
|
472
|
+
// Q4: Transform Read-back
|
|
473
|
+
// ============================================================
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Read back the 4x4 transform matrix of a scene node as a flat 16-element
|
|
477
|
+
* array in column-major order (same layout as setSceneNodeTransform).
|
|
478
|
+
*/
|
|
479
|
+
export function getSceneNodeTransform(handle: SceneNodeHandle): number[] {
|
|
480
|
+
const m: number[] = new Array(16);
|
|
481
|
+
for (let i = 0; i < 16; i++) {
|
|
482
|
+
m[i] = bloom_scene_get_transform(handle, i);
|
|
483
|
+
}
|
|
484
|
+
return m;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
// ============================================================
|
|
488
|
+
// Q5: Scene Node Bounds
|
|
489
|
+
// ============================================================
|
|
490
|
+
|
|
491
|
+
/**
|
|
492
|
+
* Return the cached AABB of a scene node's geometry in local space.
|
|
493
|
+
* Recomputed automatically when geometry is updated via updateSceneNodeGeometry.
|
|
494
|
+
*/
|
|
495
|
+
export function getSceneNodeBounds(handle: SceneNodeHandle): { min: { x: number; y: number; z: number }; max: { x: number; y: number; z: number } } {
|
|
496
|
+
return {
|
|
497
|
+
min: {
|
|
498
|
+
x: bloom_scene_get_bounds_min_x(handle),
|
|
499
|
+
y: bloom_scene_get_bounds_min_y(handle),
|
|
500
|
+
z: bloom_scene_get_bounds_min_z(handle),
|
|
501
|
+
},
|
|
502
|
+
max: {
|
|
503
|
+
x: bloom_scene_get_bounds_max_x(handle),
|
|
504
|
+
y: bloom_scene_get_bounds_max_y(handle),
|
|
505
|
+
z: bloom_scene_get_bounds_max_z(handle),
|
|
506
|
+
},
|
|
507
|
+
};
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
// ============================================================
|
|
511
|
+
// Q7: Scene Node User Data
|
|
512
|
+
// ============================================================
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* Attach an arbitrary integer to a scene node. Used by editors to associate
|
|
516
|
+
* entity ids with scene nodes so picking can return the entity id directly.
|
|
517
|
+
*/
|
|
518
|
+
export function setSceneNodeUserData(handle: SceneNodeHandle, data: number): void {
|
|
519
|
+
bloom_scene_set_user_data(handle, data);
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
export function getSceneNodeUserData(handle: SceneNodeHandle): number {
|
|
523
|
+
return bloom_scene_get_user_data(handle);
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
// ============================================================
|
|
527
|
+
// Q6: Multi-Hit Picking
|
|
528
|
+
// ============================================================
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* Raycast against all visible scene nodes and return all hits sorted by
|
|
532
|
+
* distance (closest first). Used by editors for Alt-click cycling through
|
|
533
|
+
* occluded objects. Returns an array of { handle, distance }.
|
|
534
|
+
*/
|
|
535
|
+
export function pickSceneAll(screenX: number, screenY: number, maxResults: number = 8): { handle: number; distance: number }[] {
|
|
536
|
+
const count = bloom_scene_pick_all(screenX, screenY, maxResults);
|
|
537
|
+
const results: { handle: number; distance: number }[] = [];
|
|
538
|
+
for (let i = 0; i < count; i++) {
|
|
539
|
+
results.push({
|
|
540
|
+
handle: bloom_pick_all_handle(i),
|
|
541
|
+
distance: bloom_pick_all_distance(i),
|
|
542
|
+
});
|
|
543
|
+
}
|
|
544
|
+
return results;
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
// ============================================================
|
|
548
|
+
// Q8: Water Material
|
|
549
|
+
// ============================================================
|
|
550
|
+
|
|
551
|
+
/**
|
|
552
|
+
* Set a water-like material on a scene node with translucent tint and
|
|
553
|
+
* low roughness. The wave parameters are stored for a future animated
|
|
554
|
+
* water shader; currently they're visual-only placeholders.
|
|
555
|
+
*/
|
|
556
|
+
export function setSceneNodeWaterMaterial(
|
|
557
|
+
handle: SceneNodeHandle,
|
|
558
|
+
waveAmplitude: number, waveSpeed: number,
|
|
559
|
+
r: number, g: number, b: number, a: number,
|
|
560
|
+
): void {
|
|
561
|
+
bloom_scene_set_material_water(handle, waveAmplitude, waveSpeed, r, g, b, a);
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
export function addPointLight(
|
|
565
|
+
x: number, y: number, z: number, range: number,
|
|
566
|
+
r: number, g: number, b: number,
|
|
567
|
+
intensity: number,
|
|
568
|
+
): void {
|
|
569
|
+
bloom_add_point_light(x, y, z, range, r, g, b, intensity);
|
|
570
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { Color, Rect, Vec2 } from '../core/types';
|
|
2
|
+
|
|
3
|
+
// FFI declarations
|
|
4
|
+
declare function bloom_draw_line(x1: number, y1: number, x2: number, y2: number, thickness: number, r: number, g: number, b: number, a: number): void;
|
|
5
|
+
declare function bloom_draw_rect(x: number, y: number, w: number, h: number, r: number, g: number, b: number, a: number): void;
|
|
6
|
+
declare function bloom_draw_rect_lines(x: number, y: number, w: number, h: number, thickness: number, r: number, g: number, b: number, a: number): void;
|
|
7
|
+
declare function bloom_draw_circle(cx: number, cy: number, radius: number, r: number, g: number, b: number, a: number): void;
|
|
8
|
+
declare function bloom_draw_circle_lines(cx: number, cy: number, radius: number, r: number, g: number, b: number, a: number): void;
|
|
9
|
+
declare function bloom_draw_triangle(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, r: number, g: number, b: number, a: number): void;
|
|
10
|
+
declare function bloom_draw_poly(cx: number, cy: number, sides: number, radius: number, rotation: number, r: number, g: number, b: number, a: number): void;
|
|
11
|
+
|
|
12
|
+
// Drawing functions
|
|
13
|
+
|
|
14
|
+
export function drawLine(startX: number, startY: number, endX: number, endY: number, thickness: number, color: Color): void {
|
|
15
|
+
bloom_draw_line(startX, startY, endX, endY, thickness, color.r, color.g, color.b, color.a);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function drawRect(x: number, y: number, width: number, height: number, color: Color): void {
|
|
19
|
+
bloom_draw_rect(x, y, width, height, color.r, color.g, color.b, color.a);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function drawRectRec(rec: Rect, color: Color): void {
|
|
23
|
+
bloom_draw_rect(rec.x, rec.y, rec.width, rec.height, color.r, color.g, color.b, color.a);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function drawRectLines(x: number, y: number, width: number, height: number, thickness: number, color: Color): void {
|
|
27
|
+
bloom_draw_rect_lines(x, y, width, height, thickness, color.r, color.g, color.b, color.a);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function drawCircle(centerX: number, centerY: number, radius: number, color: Color): void {
|
|
31
|
+
bloom_draw_circle(centerX, centerY, radius, color.r, color.g, color.b, color.a);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function drawCircleLines(centerX: number, centerY: number, radius: number, color: Color): void {
|
|
35
|
+
bloom_draw_circle_lines(centerX, centerY, radius, color.r, color.g, color.b, color.a);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function drawTriangle(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, color: Color): void {
|
|
39
|
+
bloom_draw_triangle(x1, y1, x2, y2, x3, y3, color.r, color.g, color.b, color.a);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function drawPoly(centerX: number, centerY: number, sides: number, radius: number, rotation: number, color: Color): void {
|
|
43
|
+
bloom_draw_poly(centerX, centerY, sides, radius, rotation, color.r, color.g, color.b, color.a);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Bezier curve drawing (pure TS — subdivides cubic bezier into line segments)
|
|
47
|
+
|
|
48
|
+
export function drawBezier(
|
|
49
|
+
startX: number, startY: number,
|
|
50
|
+
cp1X: number, cp1Y: number,
|
|
51
|
+
cp2X: number, cp2Y: number,
|
|
52
|
+
endX: number, endY: number,
|
|
53
|
+
thickness: number, color: Color,
|
|
54
|
+
): void {
|
|
55
|
+
const segments = 24;
|
|
56
|
+
let prevX = startX;
|
|
57
|
+
let prevY = startY;
|
|
58
|
+
for (let i = 1; i <= segments; i++) {
|
|
59
|
+
const t = i / segments;
|
|
60
|
+
const u = 1 - t;
|
|
61
|
+
const x = u * u * u * startX + 3 * u * u * t * cp1X + 3 * u * t * t * cp2X + t * t * t * endX;
|
|
62
|
+
const y = u * u * u * startY + 3 * u * u * t * cp1Y + 3 * u * t * t * cp2Y + t * t * t * endY;
|
|
63
|
+
bloom_draw_line(prevX, prevY, x, y, thickness, color.r, color.g, color.b, color.a);
|
|
64
|
+
prevX = x;
|
|
65
|
+
prevY = y;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Pure TypeScript collision detection
|
|
70
|
+
|
|
71
|
+
export function checkCollisionRecs(rec1: Rect, rec2: Rect): boolean {
|
|
72
|
+
return (
|
|
73
|
+
rec1.x < rec2.x + rec2.width &&
|
|
74
|
+
rec1.x + rec1.width > rec2.x &&
|
|
75
|
+
rec1.y < rec2.y + rec2.height &&
|
|
76
|
+
rec1.y + rec1.height > rec2.y
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function checkCollisionCircles(center1: Vec2, radius1: number, center2: Vec2, radius2: number): boolean {
|
|
81
|
+
const dx = center2.x - center1.x;
|
|
82
|
+
const dy = center2.y - center1.y;
|
|
83
|
+
const distSq = dx * dx + dy * dy;
|
|
84
|
+
const radiusSum = radius1 + radius2;
|
|
85
|
+
return distSq <= radiusSum * radiusSum;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export function checkCollisionCircleRec(center: Vec2, radius: number, rec: Rect): boolean {
|
|
89
|
+
const closestX = Math.max(rec.x, Math.min(center.x, rec.x + rec.width));
|
|
90
|
+
const closestY = Math.max(rec.y, Math.min(center.y, rec.y + rec.height));
|
|
91
|
+
const dx = center.x - closestX;
|
|
92
|
+
const dy = center.y - closestY;
|
|
93
|
+
return (dx * dx + dy * dy) <= radius * radius;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export function checkCollisionPointRec(point: Vec2, rec: Rect): boolean {
|
|
97
|
+
return (
|
|
98
|
+
point.x >= rec.x &&
|
|
99
|
+
point.x <= rec.x + rec.width &&
|
|
100
|
+
point.y >= rec.y &&
|
|
101
|
+
point.y <= rec.y + rec.height
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export function checkCollisionPointCircle(point: Vec2, center: Vec2, radius: number): boolean {
|
|
106
|
+
const dx = point.x - center.x;
|
|
107
|
+
const dy = point.y - center.y;
|
|
108
|
+
return (dx * dx + dy * dy) <= radius * radius;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export function getCollisionRec(rec1: Rect, rec2: Rect): Rect {
|
|
112
|
+
const x = Math.max(rec1.x, rec2.x);
|
|
113
|
+
const y = Math.max(rec1.y, rec2.y);
|
|
114
|
+
const right = Math.min(rec1.x + rec1.width, rec2.x + rec2.width);
|
|
115
|
+
const bottom = Math.min(rec1.y + rec1.height, rec2.y + rec2.height);
|
|
116
|
+
if (right <= x || bottom <= y) {
|
|
117
|
+
return { x: 0, y: 0, width: 0, height: 0 };
|
|
118
|
+
}
|
|
119
|
+
return { x, y, width: right - x, height: bottom - y };
|
|
120
|
+
}
|