@woosh/meep-engine 2.46.4 → 2.46.5
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/package.json +2 -1
- package/src/__module.js +6 -0
- package/src/core/IdPool.js +83 -0
- package/src/core/IdPool.spec.js +29 -0
- package/src/core/NumberFormat.js +75 -0
- package/src/core/UUID.d.ts +3 -0
- package/src/core/UUID.js +21 -0
- package/src/core/__module.js +10 -0
- package/src/core/assert.js +390 -0
- package/src/core/binary/32BitEncoder.js +61 -0
- package/src/core/binary/32BitEncoder.spec.js +11 -0
- package/src/core/binary/Base64.js +210 -0
- package/src/core/binary/Base64.spec.js +14 -0
- package/src/core/binary/BinaryBuffer.js +1119 -0
- package/src/core/binary/BinaryBuffer.spec.js +196 -0
- package/src/core/binary/BitSet.js +619 -0
- package/src/core/binary/BitSet.spec.js +466 -0
- package/src/core/binary/ByteArrayTools.js +137 -0
- package/src/core/binary/EncodingBinaryBuffer.js +94 -0
- package/src/core/binary/NaiveBitSet.js +69 -0
- package/src/core/binary/ValidatingBitSetWrapper.js +81 -0
- package/src/core/binary/ctz32.js +40 -0
- package/src/core/binary/float2uint8.js +8 -0
- package/src/core/binary/int32_to_binary_string.js +18 -0
- package/src/core/binary/is_data_url.js +12 -0
- package/src/core/binary/objects/StandardTypeBuilder.js +126 -0
- package/src/core/binary/operations/bitCount.js +16 -0
- package/src/core/binary/operations/bitwiseAnd.js +9 -0
- package/src/core/binary/operations/bitwiseOr.js +9 -0
- package/src/core/binary/operations/ceilPowerOfTwo.js +22 -0
- package/src/core/binary/operations/ceilPowerOfTwo.spec.js +17 -0
- package/src/core/binary/serde/JsonSerializer.js +113 -0
- package/src/core/binary/to_half_float_uint16.js +63 -0
- package/src/core/binary/type/Field.js +26 -0
- package/src/core/binary/type/MultiplicityType.js +14 -0
- package/src/core/binary/type/PrimitiveTypes.js +35 -0
- package/src/core/binary/type/Type.js +83 -0
- package/src/core/binary/type/TypeBuilder.js +106 -0
- package/src/core/binary/type/TypeRegistry.js +53 -0
- package/src/core/binary/uint82float.js +8 -0
- package/src/core/binary/url_to_data_url.js +28 -0
- package/src/core/bvh2/BVHTasks.js +65 -0
- package/src/core/bvh2/BinaryNode.d.ts +13 -0
- package/src/core/bvh2/BinaryNode.js +1213 -0
- package/src/core/bvh2/BinaryNode.spec.js +308 -0
- package/src/core/bvh2/LeafNode.d.ts +7 -0
- package/src/core/bvh2/LeafNode.js +144 -0
- package/src/core/bvh2/Node.d.ts +9 -0
- package/src/core/bvh2/Node.js +196 -0
- package/src/core/bvh2/NodeValidator.js +197 -0
- package/src/core/bvh2/StacklessTraverser.js +154 -0
- package/src/core/bvh2/StacklessTraverser.spec.js +109 -0
- package/src/core/bvh2/aabb3/AABB3.d.ts +46 -0
- package/src/core/bvh2/aabb3/AABB3.js +917 -0
- package/src/core/bvh2/aabb3/AABB3.spec.js +227 -0
- package/src/core/bvh2/aabb3/aabb3_array_combine.js +20 -0
- package/src/core/bvh2/aabb3/aabb3_array_contains_point.js +18 -0
- package/src/core/bvh2/aabb3/aabb3_array_intersects_frustum_array.js +20 -0
- package/src/core/bvh2/aabb3/aabb3_array_intersects_frustum_degree.js +20 -0
- package/src/core/bvh2/aabb3/aabb3_array_intersects_ray.js +21 -0
- package/src/core/bvh2/aabb3/aabb3_array_intersects_ray_array.js +14 -0
- package/src/core/bvh2/aabb3/aabb3_box_surface_area_2.js +10 -0
- package/src/core/bvh2/aabb3/aabb3_combined_surface_area.js +21 -0
- package/src/core/bvh2/aabb3/aabb3_compute_half_surface_area.js +16 -0
- package/src/core/bvh2/aabb3/aabb3_compute_surface_area.js +18 -0
- package/src/core/bvh2/aabb3/aabb3_corner_edge_mapping.js +17 -0
- package/src/core/bvh2/aabb3/aabb3_corner_edge_mapping.spec.js +39 -0
- package/src/core/bvh2/aabb3/aabb3_detailed_volume_intersection.js +294 -0
- package/src/core/bvh2/aabb3/aabb3_edge_corner_mapping.js +25 -0
- package/src/core/bvh2/aabb3/aabb3_edge_corner_mapping.spec.js +32 -0
- package/src/core/bvh2/aabb3/aabb3_edge_plane_mapping.js +23 -0
- package/src/core/bvh2/aabb3/aabb3_expand_array.js +15 -0
- package/src/core/bvh2/aabb3/aabb3_from_v3_array.js +34 -0
- package/src/core/bvh2/aabb3/aabb3_from_v3_array_transformed.js +39 -0
- package/src/core/bvh2/aabb3/aabb3_intersect_aabb3.js +28 -0
- package/src/core/bvh2/aabb3/aabb3_intersect_ray_slab.js +73 -0
- package/src/core/bvh2/aabb3/aabb3_intersects_frustum_array.js +35 -0
- package/src/core/bvh2/aabb3/aabb3_intersects_frustum_degree.js +46 -0
- package/src/core/bvh2/aabb3/aabb3_intersects_line_segment.js +79 -0
- package/src/core/bvh2/aabb3/aabb3_intersects_ray.js +97 -0
- package/src/core/bvh2/aabb3/aabb3_intersects_ray.spec.js +71 -0
- package/src/core/bvh2/aabb3/aabb3_intersects_ray_branchless.js +52 -0
- package/src/core/bvh2/aabb3/aabb3_intersects_ray_fast.js +176 -0
- package/src/core/bvh2/aabb3/aabb3_nearest_point_on_surface.js +65 -0
- package/src/core/bvh2/aabb3/aabb3_score_boxes_SAH.js +43 -0
- package/src/core/bvh2/aabb3/aabb3_signed_distance_sqr_to_point.js +39 -0
- package/src/core/bvh2/aabb3/aabb_score_boxes_SAH_delta.js +37 -0
- package/src/core/bvh2/aabb3/deserializeAABB3.js +17 -0
- package/src/core/bvh2/aabb3/deserializeAABB3Encoded_v0.js +73 -0
- package/src/core/bvh2/aabb3/deserializeAABB3Quantized16Uint.js +36 -0
- package/src/core/bvh2/aabb3/serializeAABB3.js +13 -0
- package/src/core/bvh2/aabb3/serializeAABB3Encoded_v0.js +75 -0
- package/src/core/bvh2/aabb3/serializeAABB3Quantized16Uint.js +33 -0
- package/src/core/bvh2/binary/2/BinaryUint32BVH.js +504 -0
- package/src/core/bvh2/binary/2/BinaryUint32BVH.spec.js +84 -0
- package/src/core/bvh2/binary/BinaryBVH.js +281 -0
- package/src/core/bvh2/binary/IndexedBinaryBVH.js +406 -0
- package/src/core/bvh2/binary/IndexedBinaryBVHVisitor.js +11 -0
- package/src/core/bvh2/binary/NodeType.js +8 -0
- package/src/core/bvh2/binary/RayLeafIntersectionVisitor.js +59 -0
- package/src/core/bvh2/binary/tiny/TinyBVH.js +221 -0
- package/src/core/bvh2/bvh3/BVHNodeProxy.js +53 -0
- package/src/core/bvh2/bvh3/ExplicitBinaryBoundingVolumeHierarchy.d.ts +25 -0
- package/src/core/bvh2/bvh3/ExplicitBinaryBoundingVolumeHierarchy.js +1107 -0
- package/src/core/bvh2/bvh3/ExplicitBinaryBoundingVolumeHierarchy.spec.js +164 -0
- package/src/core/bvh2/bvh3/ebvh_build_for_geometry_incremental.js +34 -0
- package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.js +175 -0
- package/src/core/bvh2/bvh3/ebvh_sort_for_traversal_depth_first.js +122 -0
- package/src/core/bvh2/bvh3/query/BVHQuery.js +11 -0
- package/src/core/bvh2/bvh3/query/BVHQueryIntersectsFrustum.js +36 -0
- package/src/core/bvh2/bvh3/query/BVHQueryIntersectsRay.js +36 -0
- package/src/core/bvh2/bvh3/query/bvh_collect_user_data.js +60 -0
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_generic.js +79 -0
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_ray.js +97 -0
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_generic.js +79 -0
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_nearest_to_point.js +96 -0
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_nearest_to_point.spec.js +70 -0
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_overlaps_frustum.js +85 -0
- package/src/core/bvh2/bvh3/query/compute_tight_near_far_clipping_planes.js +156 -0
- package/src/core/bvh2/bvh3/query/compute_tight_near_far_clipping_planes.spec.js +41 -0
- package/src/core/bvh2/sah/surfaceAreaHeuristic.js +15 -0
- package/src/core/bvh2/sah/surfaceAreaHeuristicFull.js +14 -0
- package/src/core/bvh2/serialization/deserializeBinaryNode.js +40 -0
- package/src/core/bvh2/serialization/deserializeBinaryNodeFromBinaryBuffer.js +90 -0
- package/src/core/bvh2/serialization/serializeBinaryNode.js +31 -0
- package/src/core/bvh2/serialization/serializeBinaryNodeToBinaryBuffer.js +86 -0
- package/src/core/bvh2/transform/BottomUpOptimizingRebuilder.js +144 -0
- package/src/core/bvh2/transform/RotationOptimizer.js +123 -0
- package/src/core/bvh2/transform/RotationOptimizer.spec.js +297 -0
- package/src/core/bvh2/transform/tryRotateSingleNode.js +260 -0
- package/src/core/bvh2/traversal/BVHVisitor.js +30 -0
- package/src/core/bvh2/traversal/RaycastBVHVisitor.js +66 -0
- package/src/core/bvh2/traversal/ThreeClippingPlaneComputingBVHVisitor.js +384 -0
- package/src/core/bvh2/traversal/ThreeFrustumsIntersectionBVHVisitor.js +52 -0
- package/src/core/bvh2/traversal/__process_point_if_within_planes.js +56 -0
- package/src/core/bvh2/traversal/aabb3_detailed_volume_intersection_callback_based.js +63 -0
- package/src/core/bvh2/traversal/bvh_traverse_pre_order_using_stack.js +43 -0
- package/src/core/bvh2/traversal/queryBinaryNode_ClippingPlanes.d.ts +5 -0
- package/src/core/bvh2/traversal/queryBinaryNode_ClippingPlanes.js +66 -0
- package/src/core/bvh2/traversal/queryBinaryNode_CollectData.js +49 -0
- package/src/core/bvh2/traversal/queryBinaryNode_CollectLeaves.js +51 -0
- package/src/core/bvh2/traversal/queryBinaryNode_FrustumIntersections.js +77 -0
- package/src/core/bvh2/traversal/queryBinaryNode_SphereIntersections.js +63 -0
- package/src/core/bvh2/traversal/traverseBinaryNodeUsingVisitor.js +50 -0
- package/src/core/bvh2/traversal/traverseBinaryNodeUsingVisitor_DepthFirst_PreOrder.js +34 -0
- package/src/core/bvh2/util/find_least_common_ancestor.js +34 -0
- package/src/core/bvh2/visual/BVHGeometry.js +132 -0
- package/src/core/bvh2/visual/convert_bvh_to_dot_format_string.js +50 -0
- package/src/core/cache/Cache.d.ts +36 -0
- package/src/core/cache/Cache.js +449 -0
- package/src/core/cache/Cache.spec.js +98 -0
- package/src/core/cache/CacheElement.js +48 -0
- package/src/core/cache/CacheV2.js +237 -0
- package/src/core/cache/FrequencySketch.js +229 -0
- package/src/core/cache/PersistentCacheAdapter.js +378 -0
- package/src/core/codegen/LineBuilder.js +148 -0
- package/src/core/collection/CuckooFilter.js +526 -0
- package/src/core/collection/CuckooFilter.spec.js +111 -0
- package/src/core/collection/HashMap.d.ts +38 -0
- package/src/core/collection/HashMap.js +582 -0
- package/src/core/collection/HashMap.spec.js +50 -0
- package/src/core/collection/HashSet.d.ts +33 -0
- package/src/core/collection/HashSet.js +122 -0
- package/src/core/collection/IteratorUtils.js +17 -0
- package/src/core/collection/KeyValuePair.js +32 -0
- package/src/core/collection/LazyStream.js +23 -0
- package/src/core/collection/LazyStream.spec.js +13 -0
- package/src/core/collection/ObservedMap.js +75 -0
- package/src/core/collection/RingBuffer.js +218 -0
- package/src/core/collection/RingBuffer.spec.js +59 -0
- package/src/core/collection/Set.d.ts +26 -0
- package/src/core/collection/Set.js +167 -0
- package/src/core/collection/Stack.js +111 -0
- package/src/core/collection/Stack.spec.js +63 -0
- package/src/core/collection/array/AbstractArrayIterator.js +24 -0
- package/src/core/collection/array/ArrayIteratorRandom.js +54 -0
- package/src/core/collection/array/ArrayIteratorSequential.js +31 -0
- package/src/core/collection/array/arrayIndexByEquality.js +20 -0
- package/src/core/collection/array/arrayPickBestElement.d.ts +1 -0
- package/src/core/collection/array/arrayPickBestElement.js +45 -0
- package/src/core/collection/array/arrayPickBestElement.spec.js +7 -0
- package/src/core/collection/array/arrayPickBestElements.js +51 -0
- package/src/core/collection/array/arrayPickMinElement.js +43 -0
- package/src/core/collection/array/arrayQuickSort.js +142 -0
- package/src/core/collection/array/arraySetDiff.js +42 -0
- package/src/core/collection/array/arraySetSortingDiff.js +67 -0
- package/src/core/collection/array/arraySetSortingDiff.spec.js +74 -0
- package/src/core/collection/array/arraySwapElements.js +12 -0
- package/src/core/collection/array/array_contains_duplicates.js +21 -0
- package/src/core/collection/array/array_copy_unique.js +30 -0
- package/src/core/collection/array/array_filter_by_multiple.js +36 -0
- package/src/core/collection/array/array_get_index_in_range.js +16 -0
- package/src/core/collection/array/array_push_if_unique.js +16 -0
- package/src/core/collection/array/array_range_equal_strict.js +22 -0
- package/src/core/collection/array/array_remove_element.js +19 -0
- package/src/core/collection/array/array_remove_first.js +16 -0
- package/src/core/collection/array/array_replace_all.js +17 -0
- package/src/core/collection/array/array_shrink_to_size.js +14 -0
- package/src/core/collection/array/array_swap.js +22 -0
- package/src/core/collection/array/binarySearchHighIndex.js +32 -0
- package/src/core/collection/array/binarySearchHighIndex.spec.js +50 -0
- package/src/core/collection/array/binarySearchLowIndex.js +34 -0
- package/src/core/collection/array/computeArrayMax.js +19 -0
- package/src/core/collection/array/computeArrayMin.js +19 -0
- package/src/core/collection/array/computeHashArray.d.ts +1 -0
- package/src/core/collection/array/computeHashArray.js +22 -0
- package/src/core/collection/array/computeHashIntegerArray.d.ts +1 -0
- package/src/core/collection/array/computeHashIntegerArray.js +10 -0
- package/src/core/collection/array/copyArray.js +49 -0
- package/src/core/collection/array/fastArrayEquals.js +17 -0
- package/src/core/collection/array/groupArrayBy.js +42 -0
- package/src/core/collection/array/isArrayEqual.js +50 -0
- package/src/core/collection/array/isArrayEqualStrict.d.ts +1 -0
- package/src/core/collection/array/isArrayEqualStrict.js +27 -0
- package/src/core/collection/array/isArraysEqualWithComparator.d.ts +1 -0
- package/src/core/collection/array/isArraysEqualWithComparator.js +32 -0
- package/src/core/collection/array/randomMultipleFromArray.js +34 -0
- package/src/core/collection/array/randomizeArrayElementOrder.js +23 -0
- package/src/core/collection/array/typed/isTypedArray.js +20 -0
- package/src/core/collection/array/typed/is_typed_array_equals.js +58 -0
- package/src/core/collection/array/typed/typed_array_copy.js +18 -0
- package/src/core/collection/array/typed/typed_array_is_integer.js +17 -0
- package/src/core/collection/array/typed/uint_array_for_count.js +17 -0
- package/src/core/collection/array/typedArrayToDataType.js +34 -0
- package/src/core/collection/array/weightedRandomFromArray.js +51 -0
- package/src/core/collection/heap/BinaryHeap.js +153 -0
- package/src/core/collection/heap/FastBinaryHeap.js +273 -0
- package/src/core/collection/heap/FastBinaryHeap.spec.js +136 -0
- package/src/core/collection/heap/Uin32Heap.spec.js +59 -0
- package/src/core/collection/heap/Uint32Heap.js +404 -0
- package/src/core/collection/list/FilteredListProjection.js +187 -0
- package/src/core/collection/list/List.d.ts +32 -0
- package/src/core/collection/list/List.js +933 -0
- package/src/core/collection/list/List.spec.js +109 -0
- package/src/core/collection/list/ListForwarder.d.ts +18 -0
- package/src/core/collection/list/ListForwarder.js +160 -0
- package/src/core/collection/list/ListForwarder.spec.js +99 -0
- package/src/core/collection/list/SortedListProjection.js +63 -0
- package/src/core/collection/map/AbstractAsyncMap.js +30 -0
- package/src/core/collection/map/AsyncLoadingCache.js +49 -0
- package/src/core/collection/map/AsyncMapWrapper.js +28 -0
- package/src/core/collection/map/AsyncRemoteHashMap.js +358 -0
- package/src/core/collection/map/CachedAsyncMap.js +43 -0
- package/src/core/collection/map/CachedAsyncMap.spec.js +47 -0
- package/src/core/collection/queue/Deque.d.ts +20 -0
- package/src/core/collection/queue/Deque.js +308 -0
- package/src/core/collection/queue/Deque.spec.js +89 -0
- package/src/core/collection/set/compute_set_difference.js +32 -0
- package/src/core/collection/set/compute_set_intersection.js +22 -0
- package/src/core/collection/set/set_remove.js +15 -0
- package/src/core/collection/table/DataType.js +19 -0
- package/src/core/collection/table/DataType2TypedArrayConstructorMapping.js +34 -0
- package/src/core/collection/table/DataTypeByteSizes.js +37 -0
- package/src/core/collection/table/DataTypeIndices.js +17 -0
- package/src/core/collection/table/RowFirstTable.js +500 -0
- package/src/core/collection/table/RowFirstTable.spec.js +287 -0
- package/src/core/collection/table/RowFirstTableSpec.js +271 -0
- package/src/core/collection/table/computeDataTypeByIndex.js +21 -0
- package/src/core/collection/table/deserializeRowFirstTable.js +48 -0
- package/src/core/collection/table/serializeRowFirstTable.js +27 -0
- package/src/core/color/Color.d.ts +43 -0
- package/src/core/color/Color.js +640 -0
- package/src/core/color/Color.spec.js +55 -0
- package/src/core/color/ColorUtils.js +85 -0
- package/src/core/color/YCbCr_to_rgb_uint24.js +19 -0
- package/src/core/color/hsluv/HSLuv.js +187 -0
- package/src/core/color/hsv2rgb.js +55 -0
- package/src/core/color/int2rgb.js +12 -0
- package/src/core/color/kelvin_to_rgb.js +51 -0
- package/src/core/color/kelvin_to_rgb.spec.js +61 -0
- package/src/core/color/linear_to_sRGB.js +16 -0
- package/src/core/color/parseHex.js +18 -0
- package/src/core/color/prototype_kelvin_to_rgb.js +44 -0
- package/src/core/color/rgb2hex.js +16 -0
- package/src/core/color/rgb2hsv.js +47 -0
- package/src/core/color/rgb2uint24.js +19 -0
- package/src/core/color/rgb_to_YCbCr_uint24.js +16 -0
- package/src/core/color/rgb_to_kelvin.js +34 -0
- package/src/core/color/rgb_to_kelvin.spec.js +15 -0
- package/src/core/color/sRGB_to_linear.js +21 -0
- package/src/core/events/signal/Signal.d.ts +52 -0
- package/src/core/events/signal/Signal.js +753 -0
- package/src/core/events/signal/Signal.spec.js +165 -0
- package/src/core/events/signal/SignalBinding.js +76 -0
- package/src/core/events/signal/SignalBinding.spec.js +58 -0
- package/src/core/events/signal/SignalFlags.js +4 -0
- package/src/core/events/signal/SignalHandler.js +81 -0
- package/src/core/events/signal/SignalUtils.js +22 -0
- package/src/core/events/signal/signalAggregateByTimeWindow.js +41 -0
- package/src/core/font/FontAsset.js +21 -0
- package/src/core/font/FontAssetLoader.js +20 -0
- package/src/core/fsm/StateMachine.js +440 -0
- package/src/core/fsm/Transition.js +65 -0
- package/src/core/fsm/exceptions/IllegalStateException.js +11 -0
- package/src/core/fsm/simple/SimpleStateMachine.d.ts +27 -0
- package/src/core/fsm/simple/SimpleStateMachine.js +235 -0
- package/src/core/fsm/simple/SimpleStateMachineDescription.d.ts +21 -0
- package/src/core/fsm/simple/SimpleStateMachineDescription.js +208 -0
- package/src/core/fsm/simple/SimpleStateMachineDescription.spec.js +71 -0
- package/src/core/function/FunctionCompiler.js +161 -0
- package/src/core/function/Functions.js +122 -0
- package/src/core/function/extractFunctionBody.js +13 -0
- package/src/core/geom/2d/AABB2Math.js +40 -0
- package/src/core/geom/2d/AABB2Math.spec.js +17 -0
- package/src/core/geom/2d/Geometry2D.js +59 -0
- package/src/core/geom/2d/UvUtils.js +49 -0
- package/src/core/geom/2d/UvUtils.spec.js +55 -0
- package/src/core/geom/2d/bvh/BinaryNode2.js +152 -0
- package/src/core/geom/2d/bvh/LeafNode2.js +11 -0
- package/src/core/geom/2d/bvh/Node2.js +51 -0
- package/src/core/geom/2d/circle/Circle.js +105 -0
- package/src/core/geom/2d/circle/circleIntersectsCircle.js +19 -0
- package/src/core/geom/2d/circle/circleIntersectsPoint.js +16 -0
- package/src/core/geom/2d/circle/computeCircleCirclePenetrationDistance.js +30 -0
- package/src/core/geom/2d/compute_polygon_area_2d.js +32 -0
- package/src/core/geom/2d/compute_polygon_area_2d.spec.js +10 -0
- package/src/core/geom/2d/compute_triangle_area_2d.js +15 -0
- package/src/core/geom/2d/compute_triangle_area_2d.spec.js +9 -0
- package/src/core/geom/2d/convex-hull/convex_hull_jarvis_2d.js +64 -0
- package/src/core/geom/2d/convex-hull/convex_hull_jarvis_2d.spec.js +33 -0
- package/src/core/geom/2d/convex-hull/convex_hull_monotone_2d.js +82 -0
- package/src/core/geom/2d/convex-hull/fixed_convex_hull_humus.js +135 -0
- package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.js +282 -0
- package/src/core/geom/2d/convex-hull/orientation3.js +444 -0
- package/src/core/geom/2d/convex-hull/orientation3_array.js +22 -0
- package/src/core/geom/2d/convex-hull/orientation3_v2.js +12 -0
- package/src/core/geom/2d/intersect_ray_2d.js +56 -0
- package/src/core/geom/2d/quad-tree/PointQuadTree.js +465 -0
- package/src/core/geom/2d/quad-tree/QuadTreeDatum.js +114 -0
- package/src/core/geom/2d/quad-tree/QuadTreeNode.js +578 -0
- package/src/core/geom/2d/quad-tree/QuadTreeNode.spec.js +182 -0
- package/src/core/geom/2d/quad-tree/qt_collect_by_circle.js +67 -0
- package/src/core/geom/2d/quad-tree/qt_match_data_by_circle.js +70 -0
- package/src/core/geom/2d/shape/AbstractShape.js +45 -0
- package/src/core/geom/2d/shape/CircleShape.js +67 -0
- package/src/core/geom/2d/shape/PointShape.js +34 -0
- package/src/core/geom/2d/shape/Shape2DType.js +9 -0
- package/src/core/geom/3d/CircleMath.js +24 -0
- package/src/core/geom/3d/SurfacePoint3.d.ts +16 -0
- package/src/core/geom/3d/SurfacePoint3.js +98 -0
- package/src/core/geom/3d/aabb/aabb3_build_corners.d.ts +1 -0
- package/src/core/geom/3d/aabb/aabb3_build_corners.js +44 -0
- package/src/core/geom/3d/aabb/aabb3_build_corners.spec.js +27 -0
- package/src/core/geom/3d/aabb/aabb3_build_frustum.js +48 -0
- package/src/core/geom/3d/aabb/aabb3_computeDistanceAbovePlane_max.spec.js +8 -0
- package/src/core/geom/3d/aabb/aabb3_compute_distance_above_plane_max.js +28 -0
- package/src/core/geom/3d/aabb/aabb3_compute_projected_area.js +86 -0
- package/src/core/geom/3d/aabb/aabb3_estimate_projected_area2.js +59 -0
- package/src/core/geom/3d/aabb/aabb3_from_min_max.js +15 -0
- package/src/core/geom/3d/aabb/aabb3_matrix4_project.js +37 -0
- package/src/core/geom/3d/aabb/aabb3_matrix4_project.spec.js +54 -0
- package/src/core/geom/3d/aabb/aabb3_matrix4_project_by_corners.js +96 -0
- package/src/core/geom/3d/aabb/computeAABB3PlaneSide.js +82 -0
- package/src/core/geom/3d/aabb/computeBoundingBoxFromVertexData.js +20 -0
- package/src/core/geom/3d/aabb/compute_aabb_from_points.js +29 -0
- package/src/core/geom/3d/apply_mat4_transform_to_v3_array.js +51 -0
- package/src/core/geom/3d/compose_matrix4_array.js +53 -0
- package/src/core/geom/3d/compute_bounding_sphere_of_2_spheres.js +74 -0
- package/src/core/geom/3d/compute_triangle_normal.js +76 -0
- package/src/core/geom/3d/cone/computeConeBoundingBox.js +54 -0
- package/src/core/geom/3d/cone/computeConePlaneSide.js +86 -0
- package/src/core/geom/3d/cone/computeConePlaneSide.spec.js +13 -0
- package/src/core/geom/3d/cone/compute_bounding_cone_of_2_cones.js +92 -0
- package/src/core/geom/3d/cone/compute_bounding_cone_of_2_cones.spec.js +95 -0
- package/src/core/geom/3d/decompose_matrix_4_array.js +67 -0
- package/src/core/geom/3d/eulerAnglesFromMatrix.js +115 -0
- package/src/core/geom/3d/frustum/array_normalize_plane.js +25 -0
- package/src/core/geom/3d/frustum/frustum3_computeNearestPointToPoint.js +112 -0
- package/src/core/geom/3d/frustum/frustum_from_projection_matrix_array.js +65 -0
- package/src/core/geom/3d/frustum/read_cluster_frustum_corners.js +46 -0
- package/src/core/geom/3d/frustum/read_frustum_planes_to_array.d.ts +3 -0
- package/src/core/geom/3d/frustum/read_frustum_planes_to_array.js +24 -0
- package/src/core/geom/3d/frustum/slice_frustum_linear_to_points.js +92 -0
- package/src/core/geom/3d/line/line3_computeSegmentPointDistance_sqr.js +41 -0
- package/src/core/geom/3d/line/line3_compute_nearest_point_to_point.js +36 -0
- package/src/core/geom/3d/matrix/MATRIX_4_IDENTITY.js +9 -0
- package/src/core/geom/3d/matrix/m4_multiply_alphatensor.js +131 -0
- package/src/core/geom/3d/morton/Morton.js +6 -0
- package/src/core/geom/3d/morton/mortonEncode_LUT.js +143 -0
- package/src/core/geom/3d/morton/mortonEncode_magicbits.js +53 -0
- package/src/core/geom/3d/morton/reinterpret_float32_as_int32.js +13 -0
- package/src/core/geom/3d/morton/v3_morton_encode_transformed.js +37 -0
- package/src/core/geom/3d/morton/v3_morton_encode_transformed.spec.js +20 -0
- package/src/core/geom/3d/normal/hemioct/encode_unit3_hemioct.js +55 -0
- package/src/core/geom/3d/normal/hemioct/unit_hemioct.spec.js +40 -0
- package/src/core/geom/3d/normal/lamber_azimuth/transform.js +61 -0
- package/src/core/geom/3d/normal/octahedron/decode_octahedron_to_unit.js +31 -0
- package/src/core/geom/3d/normal/octahedron/encode_unit_to_octahedron.js +33 -0
- package/src/core/geom/3d/normal/octahedron/encoding.spec.js +29 -0
- package/src/core/geom/3d/normal/spherical/sphere_map_transform.js +77 -0
- package/src/core/geom/3d/plane/is_point_within_planes.js +46 -0
- package/src/core/geom/3d/plane/lerp_planes_to_array.js +51 -0
- package/src/core/geom/3d/plane/orient3d_fast.js +48 -0
- package/src/core/geom/3d/plane/orient3d_robust.js +41 -0
- package/src/core/geom/3d/plane/plane3_intersect_plane.js +62 -0
- package/src/core/geom/3d/plane/plane3_lerp.js +62 -0
- package/src/core/geom/3d/plane/plane3_lerp_v0.js +46 -0
- package/src/core/geom/3d/plane/plane3_projectPoint.js +24 -0
- package/src/core/geom/3d/plane/plane3_projectPoint.spec.js +54 -0
- package/src/core/geom/3d/plane/plane3_slerp.js +102 -0
- package/src/core/geom/3d/plane/plane3_slerp.spec.js +209 -0
- package/src/core/geom/3d/plane/plane_computeConvex3PlaneIntersection.js +72 -0
- package/src/core/geom/3d/plane/plane_three_compute_convex3_plane_intersection.js +24 -0
- package/src/core/geom/3d/ray/ray3_array_apply_matrix4.js +56 -0
- package/src/core/geom/3d/ray/ray3_array_compose.js +19 -0
- package/src/core/geom/3d/ray/ray3_array_compose.spec.js +14 -0
- package/src/core/geom/3d/ray/ray_computeNearestPointToPoint.js +37 -0
- package/src/core/geom/3d/ray/ray_distance_to_point.js +14 -0
- package/src/core/geom/3d/shape/AbstractShape3D.d.ts +3 -0
- package/src/core/geom/3d/shape/AbstractShape3D.js +91 -0
- package/src/core/geom/3d/shape/TransformedShape3D.d.ts +10 -0
- package/src/core/geom/3d/shape/TransformedShape3D.js +214 -0
- package/src/core/geom/3d/shape/TransformedShape3D.spec.js +55 -0
- package/src/core/geom/3d/shape/UnionShape3D.d.ts +5 -0
- package/src/core/geom/3d/shape/UnionShape3D.js +319 -0
- package/src/core/geom/3d/shape/UnitCubeShape3D.d.ts +5 -0
- package/src/core/geom/3d/shape/UnitCubeShape3D.js +87 -0
- package/src/core/geom/3d/shape/UnitCubeShape3D.spec.js +42 -0
- package/src/core/geom/3d/shape/UnitSphereShape3D.d.ts +5 -0
- package/src/core/geom/3d/shape/UnitSphereShape3D.js +71 -0
- package/src/core/geom/3d/shape/json/shape_from_json.js +19 -0
- package/src/core/geom/3d/shape/json/shape_to_json.js +21 -0
- package/src/core/geom/3d/shape/json/shape_to_type.js +23 -0
- package/src/core/geom/3d/shape/json/type_adapters.js +58 -0
- package/src/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.js +48 -0
- package/src/core/geom/3d/shape/util/shape_to_visual_entity.js +159 -0
- package/src/core/geom/3d/sphere/harmonics/README.md +15 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_add.js +21 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_basis_at.js +30 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +624 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_sample_by_direction.js +50 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_sample_irradiance_by_direction.js +53 -0
- package/src/core/geom/3d/sphere/sphereIntersectsPoint.js +26 -0
- package/src/core/geom/3d/sphere/sphere_array_intersects_point.js +15 -0
- package/src/core/geom/3d/sphere/sphere_array_intersects_ray.js +25 -0
- package/src/core/geom/3d/sphere/sphere_intersects_ray.js +51 -0
- package/src/core/geom/3d/sphere/sphere_radius_sqr_from_v3_array_transformed.js +28 -0
- package/src/core/geom/3d/tetrahedra/GetDepthForTetrahedronProbe.glsl +43 -0
- package/src/core/geom/3d/tetrahedra/README.md +16 -0
- package/src/core/geom/3d/tetrahedra/TetrahedralMesh.js +650 -0
- package/src/core/geom/3d/tetrahedra/TetrahedralMesh.spec.js +233 -0
- package/src/core/geom/3d/tetrahedra/build_tetrahedral_mesh_buffer_geometry.js +75 -0
- package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.js +179 -0
- package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.spec.js +66 -0
- package/src/core/geom/3d/tetrahedra/compute_circumsphere.js +271 -0
- package/src/core/geom/3d/tetrahedra/delaunay/Cavity.js +90 -0
- package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.js +92 -0
- package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.spec.js +14 -0
- package/src/core/geom/3d/tetrahedra/delaunay/debug_validate_mesh.js +19 -0
- package/src/core/geom/3d/tetrahedra/delaunay/fill_in_a_cavity.js +191 -0
- package/src/core/geom/3d/tetrahedra/delaunay/push_boundary_with_validation.js +27 -0
- package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_compute_cavity.js +89 -0
- package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_compute_sub_determinant.js +77 -0
- package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_compute_sub_determinant.spec.js +30 -0
- package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_walk_towards_containing_tetrahedron.js +58 -0
- package/src/core/geom/3d/tetrahedra/delaunay/validate_cavity_boundary.js +60 -0
- package/src/core/geom/3d/tetrahedra/in_sphere_fast.js +90 -0
- package/src/core/geom/3d/tetrahedra/in_sphere_robust.js +53 -0
- package/src/core/geom/3d/tetrahedra/prototypeTetrahedraBuilder.js +107 -0
- package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.js +83 -0
- package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.spec.js +24 -0
- package/src/core/geom/3d/tetrahedra/tetrahedron_contains_point.js +26 -0
- package/src/core/geom/3d/tetrahedra/tetrahedron_contains_point.spec.js +66 -0
- package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.js +166 -0
- package/src/core/geom/3d/topology/bounds/computeTopoMeshBoundingSphere.js +37 -0
- package/src/core/geom/3d/topology/bounds/computeTopoMeshBoundiningBox.js +16 -0
- package/src/core/geom/3d/topology/bounds/computeTriangleClusterNormalBoundingCone.js +87 -0
- package/src/core/geom/3d/topology/compareEdges.js +16 -0
- package/src/core/geom/3d/topology/compareFaces.js +9 -0
- package/src/core/geom/3d/topology/compareVertices.js +9 -0
- package/src/core/geom/3d/topology/computeTopoMeshVertexDuplicates.js +103 -0
- package/src/core/geom/3d/topology/debugValidateMesh.js +13 -0
- package/src/core/geom/3d/topology/expandConnectivityByLocality.js +103 -0
- package/src/core/geom/3d/topology/isEdgeConnectedToOutline.js +12 -0
- package/src/core/geom/3d/topology/isVertexConnectedToOutline.js +19 -0
- package/src/core/geom/3d/topology/query/query_edge_is_boundary.js +7 -0
- package/src/core/geom/3d/topology/query/query_edge_is_manifold.js +13 -0
- package/src/core/geom/3d/topology/query/query_edge_is_manifold_or_boundary.js +11 -0
- package/src/core/geom/3d/topology/query/query_edge_is_wire.js +13 -0
- package/src/core/geom/3d/topology/query/query_edge_other_vertex.js +20 -0
- package/src/core/geom/3d/topology/query/query_edge_share_vert.js +9 -0
- package/src/core/geom/3d/topology/query/query_face_get_other_edges.js +39 -0
- package/src/core/geom/3d/topology/query/query_face_next_vertex.js +19 -0
- package/src/core/geom/3d/topology/query/query_face_prev_vertex.js +18 -0
- package/src/core/geom/3d/topology/query/query_vertex_in_edge.js +14 -0
- package/src/core/geom/3d/topology/query/query_vertex_pair_share_face.js +24 -0
- package/src/core/geom/3d/topology/query/query_vertices_in_edge.js +19 -0
- package/src/core/geom/3d/topology/samples/sampleFloodFill.js +275 -0
- package/src/core/geom/3d/topology/simplify/EdgeCollapseCandidate.js +177 -0
- package/src/core/geom/3d/topology/simplify/build_edge_collapse_candidates.js +39 -0
- package/src/core/geom/3d/topology/simplify/collapseEdge.js +182 -0
- package/src/core/geom/3d/topology/simplify/collapseEdge.spec.js +24 -0
- package/src/core/geom/3d/topology/simplify/collapse_all_degenerate_edges.js +38 -0
- package/src/core/geom/3d/topology/simplify/collapse_degenerate_edge.js +10 -0
- package/src/core/geom/3d/topology/simplify/computeEdgeCollapseCost.js +82 -0
- package/src/core/geom/3d/topology/simplify/compute_face_normal_change_dot_product.js +81 -0
- package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.js +277 -0
- package/src/core/geom/3d/topology/simplify/edge_collapse_quadratic.js +126 -0
- package/src/core/geom/3d/topology/simplify/prototypeMeshSimplification.js +501 -0
- package/src/core/geom/3d/topology/simplify/quadratic/Quadratic3.js +302 -0
- package/src/core/geom/3d/topology/simplify/quadratic/build_vertex_quadratics.js +151 -0
- package/src/core/geom/3d/topology/simplify/quadratic/compute_edge_collapse_cost_quadratic.js +28 -0
- package/src/core/geom/3d/topology/simplify/simplifyTopoMesh.js +262 -0
- package/src/core/geom/3d/topology/simplify/simplifyTopoMesh2.js +119 -0
- package/src/core/geom/3d/topology/simplify/tm_edge_collapse_is_degenerate_flip.js +81 -0
- package/src/core/geom/3d/topology/struct/TopoEdge.js +346 -0
- package/src/core/geom/3d/topology/struct/TopoEdge.spec.js +52 -0
- package/src/core/geom/3d/topology/struct/TopoMesh.js +649 -0
- package/src/core/geom/3d/topology/struct/TopoTriangle.js +292 -0
- package/src/core/geom/3d/topology/struct/TopoVertex.js +328 -0
- package/src/core/geom/3d/topology/struct/TopoVertex.spec.js +128 -0
- package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.js +288 -0
- package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.spec.js +36 -0
- package/src/core/geom/3d/topology/struct/binary/BinaryTopology.js +617 -0
- package/src/core/geom/3d/topology/struct/binary/BinaryTopology.spec.js +16 -0
- package/src/core/geom/3d/topology/struct/binary/io/OrderedEdge.js +66 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_index_geometry_to_topology.js +188 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_index_geometry_to_topology.spec.js +84 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_calc_edges.js +51 -0
- package/src/core/geom/3d/topology/struct/binary/io/create_edge.js +106 -0
- package/src/core/geom/3d/topology/struct/binary/io/get_or_create_edge_map.js +26 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_has_vertex.js +16 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_has_vertex.spec.js +15 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_other_vertex.js +21 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_edge_other_vertex.spec.js +16 -0
- package/src/core/geom/3d/topology/struct/prototypeBinaryTopology.js +55 -0
- package/src/core/geom/3d/topology/three_buffer_geometry_to_topo_mesh.js +30 -0
- package/src/core/geom/3d/topology/tm_edge_kill.js +24 -0
- package/src/core/geom/3d/topology/tm_edge_splice.js +42 -0
- package/src/core/geom/3d/topology/tm_face_area.js +18 -0
- package/src/core/geom/3d/topology/tm_face_kill.js +12 -0
- package/src/core/geom/3d/topology/tm_face_normal.js +14 -0
- package/src/core/geom/3d/topology/tm_kill_only_edge.js +35 -0
- package/src/core/geom/3d/topology/tm_kill_only_face.js +12 -0
- package/src/core/geom/3d/topology/tm_kill_only_vert.js +14 -0
- package/src/core/geom/3d/topology/tm_vert_kill.js +19 -0
- package/src/core/geom/3d/topology/tm_vert_splice.js +64 -0
- package/src/core/geom/3d/topology/tm_vertex_compute_normal.js +42 -0
- package/src/core/geom/3d/topology/topo_mesh_to_three_buffer_geometry.js +64 -0
- package/src/core/geom/3d/topology/topology_find_broken_links.js +107 -0
- package/src/core/geom/3d/topology/update_topo_face_normals.js +23 -0
- package/src/core/geom/3d/topology/util/mesh_flood_fill.js +61 -0
- package/src/core/geom/3d/topology/weld_duplicate_vertices.js +63 -0
- package/src/core/geom/3d/triangle/computeTrianglePlaneSide.js +44 -0
- package/src/core/geom/3d/triangle/computeTriangleRayIntersection.js +327 -0
- package/src/core/geom/3d/util/make_justified_point_grid.js +31 -0
- package/src/core/geom/3d/voxel/DenseBitVolume3D.js +87 -0
- package/src/core/geom/3d/voxel/buildVolumeFromProjectedGeometry.js +23 -0
- package/src/core/geom/AABB2.d.ts +28 -0
- package/src/core/geom/AABB2.js +656 -0
- package/src/core/geom/AABB2.spec.js +53 -0
- package/src/core/geom/Bezier.js +24 -0
- package/src/core/geom/Bezier.spec.js +16 -0
- package/src/core/geom/ConicRay.js +200 -0
- package/src/core/geom/GeometryMath.js +33 -0
- package/src/core/geom/LineSegment.js +207 -0
- package/src/core/geom/LineSegment2.js +175 -0
- package/src/core/geom/Matrix3.js +16 -0
- package/src/core/geom/Matrix4.js +270 -0
- package/src/core/geom/Plane.js +250 -0
- package/src/core/geom/Quaternion.d.ts +74 -0
- package/src/core/geom/Quaternion.js +1857 -0
- package/src/core/geom/Quaternion.spec.js +262 -0
- package/src/core/geom/Rectangle.js +219 -0
- package/src/core/geom/Rectangle.spec.js +11 -0
- package/src/core/geom/Vector1.d.ts +35 -0
- package/src/core/geom/Vector1.js +306 -0
- package/src/core/geom/Vector1.spec.js +74 -0
- package/src/core/geom/Vector2.d.ts +47 -0
- package/src/core/geom/Vector2.js +764 -0
- package/src/core/geom/Vector2.spec.js +142 -0
- package/src/core/geom/Vector3.d.ts +114 -0
- package/src/core/geom/Vector3.js +1133 -0
- package/src/core/geom/Vector3.schema.json +16 -0
- package/src/core/geom/Vector3.spec.js +37 -0
- package/src/core/geom/Vector4.d.ts +40 -0
- package/src/core/geom/Vector4.js +471 -0
- package/src/core/geom/Vector4.spec.js +11 -0
- package/src/core/geom/normalize_angle_rad.js +18 -0
- package/src/core/geom/normalize_angle_rad.spec.js +45 -0
- package/src/core/geom/packing/computeBoundingSphereOfSpheres.d.ts +1 -0
- package/src/core/geom/packing/computeBoundingSphereOfSpheres.js +85 -0
- package/src/core/geom/packing/computeBoundingSphereOfSpheres.spec.js +24 -0
- package/src/core/geom/packing/max-rect/MaxRectangles.js +468 -0
- package/src/core/geom/packing/max-rect/removeRedundantBoxes.js +69 -0
- package/src/core/geom/packing/max-rect/removeRedundantBoxesArray.js +40 -0
- package/src/core/geom/packing/miniball/Miniball.js +465 -0
- package/src/core/geom/packing/miniball/PointSet.js +40 -0
- package/src/core/geom/packing/miniball/Quality.js +116 -0
- package/src/core/geom/packing/miniball/Subspan.js +581 -0
- package/src/core/geom/packing/miniball/Subspan.spec.js +51 -0
- package/src/core/geom/random/randomPointInBox.js +16 -0
- package/src/core/geom/random/randomPointInCircle.js +18 -0
- package/src/core/geom/random/randomPointInPoint.js +11 -0
- package/src/core/geom/random/randomPointInSphere.js +35 -0
- package/src/core/geom/random/randomPointOnBox.js +37 -0
- package/src/core/geom/random/randomPointOnSphere.js +30 -0
- package/src/core/geom/v3_angle_between.js +69 -0
- package/src/core/geom/v3_distance.js +16 -0
- package/src/core/geom/v3_distance_above_plane.js +20 -0
- package/src/core/geom/v3_distance_above_plane.spec.js +40 -0
- package/src/core/geom/v3_distance_sqr.d.ts +1 -0
- package/src/core/geom/v3_distance_sqr.js +17 -0
- package/src/core/geom/v3_dot.js +13 -0
- package/src/core/geom/v3_length.js +10 -0
- package/src/core/geom/v3_length_sqr.js +10 -0
- package/src/core/geom/v3_lerp.js +26 -0
- package/src/core/geom/v3_slerp.js +48 -0
- package/src/core/graph/Edge.js +115 -0
- package/src/core/graph/Edge.spec.js +50 -0
- package/src/core/graph/EdgeDirection.js +11 -0
- package/src/core/graph/Graph.js +564 -0
- package/src/core/graph/GraphElement.js +6 -0
- package/src/core/graph/GraphUtils.js +282 -0
- package/src/core/graph/MultiNode.js +39 -0
- package/src/core/graph/Node.js +12 -0
- package/src/core/graph/SquareMatrix.js +204 -0
- package/src/core/graph/SquareMatrix.spec.js +52 -0
- package/src/core/graph/WeightedEdge.js +31 -0
- package/src/core/graph/build_face_graph_from_mesh.js +115 -0
- package/src/core/graph/cluster_mesh_metis.js +213 -0
- package/src/core/graph/coarsen_graph.js +33 -0
- package/src/core/graph/coarsen_graph.spec.js +43 -0
- package/src/core/graph/coloring/colorizeGraph.js +257 -0
- package/src/core/graph/coloring/colorizeGraphGreedy.js +63 -0
- package/src/core/graph/coloring/colorizeGraphGreedy.spec.js +26 -0
- package/src/core/graph/coloring/colorizeGraphGreedyWeight.js +28 -0
- package/src/core/graph/coloring/colorizeGraphMCS.js +82 -0
- package/src/core/graph/coloring/validateGraphColoring.js +45 -0
- package/src/core/graph/convertGraphToDotString.js +68 -0
- package/src/core/graph/eigen/eigen.js +229 -0
- package/src/core/graph/eigen/eigen.spec.js +27 -0
- package/src/core/graph/eigen/eigen_values_find_spectral_gap.js +25 -0
- package/src/core/graph/graph_adjacency_matrix.js +21 -0
- package/src/core/graph/graph_compute_disconnected_clusters.js +59 -0
- package/src/core/graph/graph_degree_matrix.js +18 -0
- package/src/core/graph/graph_k_means_cluster.js +238 -0
- package/src/core/graph/graph_laplacian_matrix.js +22 -0
- package/src/core/graph/layout/BoxLayouter.js +584 -0
- package/src/core/graph/layout/CircleLayout.js +926 -0
- package/src/core/graph/layout/Connection.js +36 -0
- package/src/core/graph/layout/box/forceIntoBox.js +45 -0
- package/src/core/graph/layout/box/pullBoxTowardsPoint.js +20 -0
- package/src/core/graph/layout/box/resolveAABB2Overlap.js +22 -0
- package/src/core/graph/layout/box/resolveBoxOverlapUsingForce.js +99 -0
- package/src/core/graph/layout/computeDisconnectedSubGraphs.js +57 -0
- package/src/core/graph/metis/metis.js +35 -0
- package/src/core/graph/metis/metis_options.js +33 -0
- package/src/core/graph/mn_graph_collapse_weighted_edge.js +75 -0
- package/src/core/graph/v2/Graph.js +480 -0
- package/src/core/graph/v2/Graph.spec.js +56 -0
- package/src/core/graph/v2/NodeContainer.js +155 -0
- package/src/core/json/JsonUtils.js +101 -0
- package/src/core/json/objectHasProperty.js +13 -0
- package/src/core/json/resolvePath.js +16 -0
- package/src/core/json/resolvePathByArray.d.ts +1 -0
- package/src/core/json/resolvePathByArray.js +53 -0
- package/src/core/land/reactive/AbstractCachingParser.js +71 -0
- package/src/core/land/reactive/ReactiveLexer.js +158 -0
- package/src/core/land/reactive/ReactiveLexer.ts +181 -0
- package/src/core/land/reactive/ReactiveListener.ts +323 -0
- package/src/core/land/reactive/ReactiveOperatorType.js +12 -0
- package/src/core/land/reactive/ReactiveParser.js +1573 -0
- package/src/core/land/reactive/ReactiveParser.ts +1776 -0
- package/src/core/land/reactive/ReactiveVisitor.js +1 -0
- package/src/core/land/reactive/ReactiveVisitor.ts +218 -0
- package/src/core/land/reactive/compileReactiveExpression.js +18 -0
- package/src/core/land/reactive/compiler/ReactiveCompiler.js +350 -0
- package/src/core/land/reactive/compiler/ReactiveCompiler.spec.js +169 -0
- package/src/core/land/reactive/compiler/ReactiveNearlyCompiler.js +166 -0
- package/src/core/land/reactive/compiler/ReactiveParser.js +34 -0
- package/src/core/land/reactive/nearley/Reactive.ne +87 -0
- package/src/core/land/reactive/nearley/ReactiveNearley.js +187 -0
- package/src/core/land/reactive/pegjs/Reactive.peg +377 -0
- package/src/core/land/reactive/pegjs/ReactivePegCompiler.js +131 -0
- package/src/core/land/reactive/pegjs/ReactivePegParser.js +15 -0
- package/src/core/land/reactive/pegjs/parser.js +3458 -0
- package/src/core/land/reactive/validateReactiveExpression.js +11 -0
- package/src/core/localization/LanguageMetadata.js +48 -0
- package/src/core/localization/LocaleDataset.js +37 -0
- package/src/core/localization/Localization.js +253 -0
- package/src/core/math/DEG_TO_RAD.js +1 -0
- package/src/core/math/EPSILON.js +5 -0
- package/src/core/math/FLT_EPSILON_32.js +7 -0
- package/src/core/math/GOLDEN_RATIO.js +5 -0
- package/src/core/math/PI2.js +5 -0
- package/src/core/math/PI_HALF.js +5 -0
- package/src/core/math/RAD_TO_DEG.js +1 -0
- package/src/core/math/bell_membership_function.js +19 -0
- package/src/core/math/bessel_3.js +11 -0
- package/src/core/math/bessel_i0.js +26 -0
- package/src/core/math/bezierCurve.js +22 -0
- package/src/core/math/clamp.js +16 -0
- package/src/core/math/clamp.spec.js +15 -0
- package/src/core/math/clamp01.js +15 -0
- package/src/core/math/computeGreatestCommonDivisor.js +28 -0
- package/src/core/math/computeIsoscelesTriangleApexAngle.js +17 -0
- package/src/core/math/computeWholeDivisorLow.js +30 -0
- package/src/core/math/computeWholeDivisorLow.spec.js +9 -0
- package/src/core/math/copysign.js +16 -0
- package/src/core/math/copysign.spec.js +13 -0
- package/src/core/math/cubicCurve.js +34 -0
- package/src/core/math/cubicCurve.spec.js +13 -0
- package/src/core/math/epsilonEquals.d.ts +1 -0
- package/src/core/math/epsilonEquals.js +16 -0
- package/src/core/math/exp2.js +8 -0
- package/src/core/math/fabsf.js +8 -0
- package/src/core/math/fract.js +10 -0
- package/src/core/math/gaussian.js +9 -0
- package/src/core/math/hash/computeHashFloatArray.js +23 -0
- package/src/core/math/hash/computeHashFloatArray.spec.js +11 -0
- package/src/core/math/hash/computeObjectHash.js +54 -0
- package/src/core/math/hash/computeObjectHash.spec.js +42 -0
- package/src/core/math/hash/murmur3_32.js +39 -0
- package/src/core/math/hash/squirrel3.js +21 -0
- package/src/core/math/intersects1D.js +19 -0
- package/src/core/math/interval/NumericInterval.js +214 -0
- package/src/core/math/interval/NumericInterval.spec.js +80 -0
- package/src/core/math/inverseLerp.js +20 -0
- package/src/core/math/inverseLerp.spec.js +13 -0
- package/src/core/math/isPowerOrTwo.js +11 -0
- package/src/core/math/isValueBetween.js +10 -0
- package/src/core/math/isValueBetween.spec.js +11 -0
- package/src/core/math/isValueBetweenInclusive.js +10 -0
- package/src/core/math/isValueBetweenInclusive.spec.js +16 -0
- package/src/core/math/isqrt.js +28 -0
- package/src/core/math/isqrt.spec.js +9 -0
- package/src/core/math/lerp.js +10 -0
- package/src/core/math/lerp.spec.js +15 -0
- package/src/core/math/makeCubicCurve.js +15 -0
- package/src/core/math/makeCubicCurve.spec.js +9 -0
- package/src/core/math/makeSequenceLoop.js +20 -0
- package/src/core/math/max.spec.js +25 -0
- package/src/core/math/max2.js +10 -0
- package/src/core/math/max2.spec.js +13 -0
- package/src/core/math/max3.js +18 -0
- package/src/core/math/max3.spec.js +27 -0
- package/src/core/math/min2.js +9 -0
- package/src/core/math/min2.spec.js +37 -0
- package/src/core/math/min3.js +18 -0
- package/src/core/math/min3.spec.js +27 -0
- package/src/core/math/mix.js +10 -0
- package/src/core/math/newton_solver_1d.js +21 -0
- package/src/core/math/noise/curl_noise_3d.js +27 -0
- package/src/core/math/noise/curl_noise_3dt.js +28 -0
- package/src/core/math/noise/sdnoise.js +952 -0
- package/src/core/math/normalizeArrayVector.js +25 -0
- package/src/core/math/overlap1D.js +19 -0
- package/src/core/math/overlap1D.spec.js +10 -0
- package/src/core/math/physics/brdf/D_GGX.js +13 -0
- package/src/core/math/physics/brdf/brdf_burley.js +25 -0
- package/src/core/math/physics/bsdf/bsdf_schlick.js +22 -0
- package/src/core/math/physics/irradiance/interpolate_irradiance_linear.js +18 -0
- package/src/core/math/physics/irradiance/interpolate_irradiance_lograrithmic.js +28 -0
- package/src/core/math/physics/irradiance/interpolate_irradiance_smith.js +38 -0
- package/src/core/math/pingpong.js +17 -0
- package/src/core/math/quadraticCurve.js +11 -0
- package/src/core/math/quadraticCurve.spec.js +13 -0
- package/src/core/math/random/MersenneTwister.js +211 -0
- package/src/core/math/random/makeRangedRandom.js +19 -0
- package/src/core/math/random/randomFloatBetween.js +14 -0
- package/src/core/math/random/randomFromArray.js +19 -0
- package/src/core/math/random/randomGaussian.js +15 -0
- package/src/core/math/random/randomIntegerBetween.js +14 -0
- package/src/core/math/random/roundFair.js +15 -0
- package/src/core/math/random/seededRandom.js +4 -0
- package/src/core/math/random/seededRandomMersenneTwister.js +85 -0
- package/src/core/math/random/seededRandom_Mulberry32.js +31 -0
- package/src/core/math/random/seededRandom_sine.js +33 -0
- package/src/core/math/separation1D.js +21 -0
- package/src/core/math/sign.d.ts +1 -0
- package/src/core/math/sign.js +8 -0
- package/src/core/math/sign.spec.js +13 -0
- package/src/core/math/sign_not_zero.js +8 -0
- package/src/core/math/smoothStep.js +17 -0
- package/src/core/math/solveQuadratic.js +45 -0
- package/src/core/math/solveQuadratic.spec.js +18 -0
- package/src/core/math/statistics/computeSampleSize_Cochran.js +28 -0
- package/src/core/math/statistics/computeSampleStandardDeviation.js +28 -0
- package/src/core/math/statistics/computeStatisticalMean.js +24 -0
- package/src/core/math/statistics/computeStatisticalMedian.js +10 -0
- package/src/core/math/statistics/computeStatisticalPartialMedian.js +20 -0
- package/src/core/math/statistics/computeStatisticalPercentile.js +18 -0
- package/src/core/math/statistics/halton_sequence.js +26 -0
- package/src/core/model/BooleanVector3.d.ts +28 -0
- package/src/core/model/BooleanVector3.js +136 -0
- package/src/core/model/BooleanVector3.spec.js +51 -0
- package/src/core/model/BoundedValue.js +223 -0
- package/src/core/model/BoundedValue.spec.js +17 -0
- package/src/core/model/DebouncedObservedBoolean.js +117 -0
- package/src/core/model/LinearValue.js +130 -0
- package/src/core/model/ModuleRegistry.d.ts +3 -0
- package/src/core/model/ModuleRegistry.js +86 -0
- package/src/core/model/ObservedBoolean.d.ts +11 -0
- package/src/core/model/ObservedBoolean.js +151 -0
- package/src/core/model/ObservedBoolean.spec.js +81 -0
- package/src/core/model/ObservedEnum.d.ts +7 -0
- package/src/core/model/ObservedEnum.js +97 -0
- package/src/core/model/ObservedInteger.js +204 -0
- package/src/core/model/ObservedInteger.spec.js +51 -0
- package/src/core/model/ObservedString.d.ts +17 -0
- package/src/core/model/ObservedString.js +136 -0
- package/src/core/model/ObservedValue.js +103 -0
- package/src/core/model/node-graph/Connection.d.ts +12 -0
- package/src/core/model/node-graph/Connection.js +141 -0
- package/src/core/model/node-graph/Connection.spec.js +21 -0
- package/src/core/model/node-graph/DataType.js +75 -0
- package/src/core/model/node-graph/DataType.spec.js +28 -0
- package/src/core/model/node-graph/NodeGraph.js +397 -0
- package/src/core/model/node-graph/NodeGraph.spec.js +68 -0
- package/src/core/model/node-graph/deserializeNodeGraphFromJSON.js +62 -0
- package/src/core/model/node-graph/node/NodeDescription.d.ts +3 -0
- package/src/core/model/node-graph/node/NodeDescription.js +248 -0
- package/src/core/model/node-graph/node/NodeDescription.spec.js +14 -0
- package/src/core/model/node-graph/node/NodeInstance.d.ts +14 -0
- package/src/core/model/node-graph/node/NodeInstance.js +219 -0
- package/src/core/model/node-graph/node/NodeInstancePortReference.d.ts +3 -0
- package/src/core/model/node-graph/node/NodeInstancePortReference.js +128 -0
- package/src/core/model/node-graph/node/NodeRegistry.js +243 -0
- package/src/core/model/node-graph/node/NodeRegistry.spec.js +77 -0
- package/src/core/model/node-graph/node/Port.js +70 -0
- package/src/core/model/node-graph/node/PortDirection.js +9 -0
- package/src/core/model/node-graph/node/parameter/NodeParameterDataType.js +9 -0
- package/src/core/model/node-graph/node/parameter/NodeParameterDescription.js +61 -0
- package/src/core/model/node-graph/serializeNodeGraphToJSON.js +40 -0
- package/src/core/model/node-graph/visual/NodeDescriptionVisualRegistry.js +129 -0
- package/src/core/model/node-graph/visual/NodeGraphVisualData.js +257 -0
- package/src/core/model/node-graph/visual/NodeVisualData.js +70 -0
- package/src/core/model/node-graph/visual/PortVisualData.js +47 -0
- package/src/core/model/node-graph/visual/PortVisualData.spec.js +16 -0
- package/src/core/model/node-graph/visual/layout/BoxLayoutSpec.js +19 -0
- package/src/core/model/node-graph/visual/layout/ConnectedBoxLayouter.js +243 -0
- package/src/core/model/node-graph/visual/layout/ConnectionEndpointLayoutSpec.js +42 -0
- package/src/core/model/node-graph/visual/layout/ConnectionLayoutSpec.js +32 -0
- package/src/core/model/object/ImmutableObjectPool.js +147 -0
- package/src/core/model/object/ObjectPoolFactory.js +93 -0
- package/src/core/model/object/ObjectPoolFactory.spec.js +54 -0
- package/src/core/model/object/SimpleObjectPoolFactory.js +42 -0
- package/src/core/model/object/compareObjectsByNumericId.js +9 -0
- package/src/core/model/object/compareValues.js +67 -0
- package/src/core/model/object/invokeObjectClone.js +10 -0
- package/src/core/model/object/invokeObjectCompare.js +9 -0
- package/src/core/model/object/invokeObjectEquals.d.ts +5 -0
- package/src/core/model/object/invokeObjectEquals.js +10 -0
- package/src/core/model/object/invokeObjectHash.d.ts +5 -0
- package/src/core/model/object/invokeObjectHash.js +8 -0
- package/src/core/model/object/objectDeepEquals.d.ts +1 -0
- package/src/core/model/object/objectDeepEquals.js +35 -0
- package/src/core/model/object/objectDeepEquals.spec.js +14 -0
- package/src/core/model/object/objectKeyByValue.d.ts +1 -0
- package/src/core/model/object/objectKeyByValue.js +15 -0
- package/src/core/model/object/objectShallowCopyByOwnKeys.js +17 -0
- package/src/core/model/object/read_property.d.ts +1 -0
- package/src/core/model/object/read_property.js +37 -0
- package/src/core/model/object/validatedObjectValueByKey.js +21 -0
- package/src/core/model/object/write_property.d.ts +1 -0
- package/src/core/model/object/write_property.js +52 -0
- package/src/core/model/reactive/evaluation/MultiPredicateEvaluator.js +486 -0
- package/src/core/model/reactive/evaluation/MultiPredicateEvaluator.spec.js +117 -0
- package/src/core/model/reactive/js/compileReactiveToJS.js +130 -0
- package/src/core/model/reactive/model/ReactiveBinaryExpression.js +179 -0
- package/src/core/model/reactive/model/ReactiveExpression.d.ts +10 -0
- package/src/core/model/reactive/model/ReactiveExpression.js +104 -0
- package/src/core/model/reactive/model/ReactiveUnaryExpression.js +92 -0
- package/src/core/model/reactive/model/arithmetic/ReactiveAdd.js +68 -0
- package/src/core/model/reactive/model/arithmetic/ReactiveDivide.js +64 -0
- package/src/core/model/reactive/model/arithmetic/ReactiveMultiply.js +68 -0
- package/src/core/model/reactive/model/arithmetic/ReactiveNegate.js +63 -0
- package/src/core/model/reactive/model/arithmetic/ReactiveSubtract.js +67 -0
- package/src/core/model/reactive/model/comparative/ReactiveEquals.js +68 -0
- package/src/core/model/reactive/model/comparative/ReactiveGreaterThan.js +64 -0
- package/src/core/model/reactive/model/comparative/ReactiveGreaterThanOrEqual.js +60 -0
- package/src/core/model/reactive/model/comparative/ReactiveLessThan.js +60 -0
- package/src/core/model/reactive/model/comparative/ReactiveLessThanOrEqual.js +59 -0
- package/src/core/model/reactive/model/comparative/ReactiveNotEquals.js +68 -0
- package/src/core/model/reactive/model/logic/ReactiveAnd.d.ts +5 -0
- package/src/core/model/reactive/model/logic/ReactiveAnd.js +78 -0
- package/src/core/model/reactive/model/logic/ReactiveAnd.spec.js +21 -0
- package/src/core/model/reactive/model/logic/ReactiveNot.js +49 -0
- package/src/core/model/reactive/model/logic/ReactiveOr.js +78 -0
- package/src/core/model/reactive/model/terminal/ReactiveLiteralBoolean.js +101 -0
- package/src/core/model/reactive/model/terminal/ReactiveLiteralNumber.js +100 -0
- package/src/core/model/reactive/model/terminal/ReactiveLiteralString.js +88 -0
- package/src/core/model/reactive/model/terminal/ReactiveReference.d.ts +11 -0
- package/src/core/model/reactive/model/terminal/ReactiveReference.js +154 -0
- package/src/core/model/reactive/model/terminal/ReactiveReference.spec.js +26 -0
- package/src/core/model/reactive/model/util/createRandomReactiveExpression.js +173 -0
- package/src/core/model/reactive/transform/ReactiveTypeInferrence.js +54 -0
- package/src/core/model/reactive/trigger/BlackboardTrigger.js +105 -0
- package/src/core/model/reactive/trigger/ReactiveTrigger.js +79 -0
- package/src/core/model/reactive/trigger/ReactiveTrigger.spec.js +5 -0
- package/src/core/model/scheme/Schema.js +70 -0
- package/src/core/model/scheme/SchemeRegistry.js +53 -0
- package/src/core/model/stat/LinearModifier.d.ts +24 -0
- package/src/core/model/stat/LinearModifier.js +134 -0
- package/src/core/model/stat/LinearModifier.spec.js +35 -0
- package/src/core/model/stat/Stat.d.ts +29 -0
- package/src/core/model/stat/Stat.js +297 -0
- package/src/core/model/stat/Stat.spec.js +75 -0
- package/src/core/parser/STRING_TEMPLATE_VARIABLE_REGEX.js +1 -0
- package/src/core/parser/seedVariablesIntoTemplateString.js +22 -0
- package/src/core/parser/simple/DataType.d.ts +5 -0
- package/src/core/parser/simple/DataType.js +15 -0
- package/src/core/parser/simple/ParserError.js +7 -0
- package/src/core/parser/simple/SimpleParser.js +464 -0
- package/src/core/parser/simple/SimpleParser.spec.js +105 -0
- package/src/core/parser/simple/Token.d.ts +13 -0
- package/src/core/parser/simple/Token.js +65 -0
- package/src/core/parser/simple/TokenType.js +12 -0
- package/src/core/parser/simple/computeDataTypeFromValue.js +25 -0
- package/src/core/parser/simple/readUnsignedInteger.js +66 -0
- package/src/core/parser/simple/skipWhitespace.js +21 -0
- package/src/core/path/PATH_SEPARATOR.js +1 -0
- package/src/core/path/computeFileExtension.js +24 -0
- package/src/core/path/computeFileExtension.spec.js +13 -0
- package/src/core/path/computePathBase.js +21 -0
- package/src/core/path/computePathBase.spec.js +13 -0
- package/src/core/path/computePathDirectory.js +25 -0
- package/src/core/primitives/array/compareArrays.js +30 -0
- package/src/core/primitives/array/computeIntegerArrayHash.js +24 -0
- package/src/core/primitives/boolean/compareBooleans.js +17 -0
- package/src/core/primitives/numbers/compareNumbers.js +9 -0
- package/src/core/primitives/numbers/computeHashFloat.js +17 -0
- package/src/core/primitives/numbers/computeHashFloat.spec.js +7 -0
- package/src/core/primitives/strings/StringUtils.js +105 -0
- package/src/core/primitives/strings/StringUtils.spec.js +42 -0
- package/src/core/primitives/strings/compareStrings.js +52 -0
- package/src/core/primitives/strings/computeStringHash.d.ts +1 -0
- package/src/core/primitives/strings/computeStringHash.js +27 -0
- package/src/core/primitives/strings/computeStringHash.spec.js +13 -0
- package/src/core/primitives/strings/insert_after.js +21 -0
- package/src/core/primitives/strings/insert_after_or_replace.js +27 -0
- package/src/core/primitives/strings/insert_before.js +19 -0
- package/src/core/primitives/strings/insert_before_or_replace.js +27 -0
- package/src/core/primitives/strings/prefixTree/PrefixTree.js +225 -0
- package/src/core/primitives/strings/prefixTree/PrefixTree.spec.js +39 -0
- package/src/core/primitives/strings/prefixTree/PrefixTreeLeaf.js +25 -0
- package/src/core/primitives/strings/prefixTree/PrefixTreeNode.js +16 -0
- package/src/core/process/BaseProcess.js +63 -0
- package/src/core/process/CompositeProcess.js +47 -0
- package/src/core/process/Future.js +138 -0
- package/src/core/process/IntervalExecutor.js +78 -0
- package/src/core/process/ProcessState.js +19 -0
- package/src/core/process/PromiseWatcher.js +49 -0
- package/src/core/process/PromiseWatcher.spec.js +65 -0
- package/src/core/process/SimpleLifecycle.js +88 -0
- package/src/core/process/WatchDog.js +96 -0
- package/src/core/process/action/AsynchronousAction.js +100 -0
- package/src/core/process/action/AsynchronousActionSequence.js +140 -0
- package/src/core/process/action/AsynchronousDelayAction.js +52 -0
- package/src/core/process/action/PromiseAsynchronousAction.js +48 -0
- package/src/core/process/action/SynchronousAction.js +38 -0
- package/src/core/process/buildPromiseChain.js +41 -0
- package/src/core/process/delay.js +5 -0
- package/src/core/process/executor/ConcurrentExecutor.d.ts +16 -0
- package/src/core/process/executor/ConcurrentExecutor.js +640 -0
- package/src/core/process/executor/ConcurrentExecutor.spec.js +135 -0
- package/src/core/process/executor/profile/ConcurrentExecutorProfiler.js +111 -0
- package/src/core/process/executor/profile/Profile.js +39 -0
- package/src/core/process/executor/profile/TraceEvent.js +85 -0
- package/src/core/process/filter/CollectionParticipationKind.js +8 -0
- package/src/core/process/filter/MutableFilter.js +22 -0
- package/src/core/process/filter/MutableFilterCollection.js +82 -0
- package/src/core/process/matcher/Matchers.js +145 -0
- package/src/core/process/task/ITask.d.ts +18 -0
- package/src/core/process/task/RemainingTimeEstimator.js +49 -0
- package/src/core/process/task/Task.d.ts +15 -0
- package/src/core/process/task/Task.js +289 -0
- package/src/core/process/task/TaskGroup.d.ts +5 -0
- package/src/core/process/task/TaskGroup.js +261 -0
- package/src/core/process/task/TaskSignal.d.ts +6 -0
- package/src/core/process/task/TaskSignal.js +15 -0
- package/src/core/process/task/TaskState.js +19 -0
- package/src/core/process/task/util/actionTask.js +19 -0
- package/src/core/process/task/util/countTask.js +62 -0
- package/src/core/process/task/util/delayTask.js +45 -0
- package/src/core/process/task/util/emptyTask.js +19 -0
- package/src/core/process/task/util/failingTask.js +17 -0
- package/src/core/process/task/util/futureTask.js +48 -0
- package/src/core/process/task/util/iteratorTask.js +29 -0
- package/src/core/process/task/util/promiseTask.js +42 -0
- package/src/core/process/task/util/randomCountTask.js +64 -0
- package/src/core/process/task/util/wrapTaskIgnoreFailure.js +47 -0
- package/src/core/process/undo/Action.d.ts +9 -0
- package/src/core/process/undo/Action.js +41 -0
- package/src/core/process/undo/ActionGroup.d.ts +5 -0
- package/src/core/process/undo/ActionGroup.js +64 -0
- package/src/core/process/undo/ActionProcessor.d.ts +27 -0
- package/src/core/process/undo/ActionProcessor.js +508 -0
- package/src/core/process/undo/ActionProcessor.spec.js +64 -0
- package/src/core/process/undo/Mark.js +31 -0
- package/src/core/process/worker/OnDemandWorkerManager.js +125 -0
- package/src/core/process/worker/WorkerBuilder.js +197 -0
- package/src/core/process/worker/WorkerProxy.js +278 -0
- package/src/core/process/worker/extractTransferables.js +23 -0
- package/src/ecs/grid/pick.js +44 -0
- package/src/engine/Clock.js +133 -0
- package/src/engine/Engine.d.ts +36 -0
- package/src/engine/Engine.js +522 -0
- package/src/engine/EngineBootstrapper.js +61 -0
- package/src/engine/EngineConfiguration.d.ts +20 -0
- package/src/engine/EngineConfiguration.js +169 -0
- package/src/engine/EngineHarness.js +510 -0
- package/src/engine/EntityCreator.js +100 -0
- package/src/engine/InputEngine.js +82 -0
- package/src/engine/MeepSettings.js +9 -0
- package/src/engine/Platform.js +46 -0
- package/src/engine/PointerLock.js +60 -0
- package/src/engine/User.js +28 -0
- package/src/engine/UserController.js +273 -0
- package/src/engine/__module.js +17 -0
- package/src/engine/achievements/Achievement.js +59 -0
- package/src/engine/achievements/AchievementGateway.d.ts +5 -0
- package/src/engine/achievements/AchievementGateway.js +27 -0
- package/src/engine/achievements/AchievementManager.js +435 -0
- package/src/engine/achievements/gateway/StorageAchievementGateway.js +70 -0
- package/src/engine/animation/AnimatedActions.js +86 -0
- package/src/engine/animation/AnimationUtils.js +251 -0
- package/src/engine/animation/Animations.js +134 -0
- package/src/engine/animation/EntityAnimation.js +134 -0
- package/src/engine/animation/TransitionFunctions.js +61 -0
- package/src/engine/animation/Tween.js +66 -0
- package/src/engine/animation/behavior/animateProperty.js +45 -0
- package/src/engine/animation/curve/AnimationCurve.js +111 -0
- package/src/engine/animation/curve/Keyframe.js +46 -0
- package/src/engine/animation/curve/compression/animation_curve_to_float_array.js +35 -0
- package/src/engine/animation/curve/compression/downsample_float_array.js +50 -0
- package/src/engine/animation/curve/compression/downsample_float_array_curve_by_error.js +147 -0
- package/src/engine/animation/curve/compression/downsample_float_array_curve_by_error.spec.js +47 -0
- package/src/engine/animation/curve/compression/prototypeCurveCompression.js +154 -0
- package/src/engine/animation/curve/draw/build_curve_editor.js +316 -0
- package/src/engine/animation/curve/draw/build_plot_entity_from_array.js +47 -0
- package/src/engine/animation/curve/draw/build_tangent_editor.js +115 -0
- package/src/engine/animation/curve/draw/draw_grid.js +27 -0
- package/src/engine/animation/curve/draw/draw_label.js +17 -0
- package/src/engine/animation/curve/draw/plot_array.js +76 -0
- package/src/engine/animation/curve/draw/plot_data.js +49 -0
- package/src/engine/animation/keyed2/AnimationTrack.js +189 -0
- package/src/engine/animation/keyed2/AnimationTrackPlayback.js +231 -0
- package/src/engine/animation/keyed2/AnimationTrackPlayback.spec.js +94 -0
- package/src/engine/animation/keyed2/behavior/AnimationBehavior.js +33 -0
- package/src/engine/animation/playAnimationTrack.js +29 -0
- package/src/engine/animation/playTrackRealTime.js +35 -0
- package/src/engine/animation/removeEntityGenericEffect.js +159 -0
- package/src/engine/animation/removeEntityWithMeshParticlesEffect.js +203 -0
- package/src/engine/asset/Asset.d.ts +7 -0
- package/src/engine/asset/Asset.js +51 -0
- package/src/engine/asset/AssetDescription.js +51 -0
- package/src/engine/asset/AssetDescription.spec.js +27 -0
- package/src/engine/asset/AssetManager.d.ts +33 -0
- package/src/engine/asset/AssetManager.js +877 -0
- package/src/engine/asset/AssetManager.spec.js +42 -0
- package/src/engine/asset/AssetRequest.js +89 -0
- package/src/engine/asset/AssetTransformer.d.ts +5 -0
- package/src/engine/asset/AssetTransformer.js +16 -0
- package/src/engine/asset/CORS/CrossOriginConfig.d.ts +5 -0
- package/src/engine/asset/CORS/CrossOriginConfig.js +11 -0
- package/src/engine/asset/CORS/CrossOriginKind.d.ts +4 -0
- package/src/engine/asset/CORS/CrossOriginKind.js +4 -0
- package/src/engine/asset/GameAssetType.js +24 -0
- package/src/engine/asset/guessAssetType.js +48 -0
- package/src/engine/asset/loadAssetAliasList.js +25 -0
- package/src/engine/asset/loaders/ArrayBufferLoader.js +134 -0
- package/src/engine/asset/loaders/AssetLoader.d.ts +5 -0
- package/src/engine/asset/loaders/AssetLoader.js +43 -0
- package/src/engine/asset/loaders/GLTFAssetLoader.d.ts +6 -0
- package/src/engine/asset/loaders/GLTFAssetLoader.js +439 -0
- package/src/engine/asset/loaders/JavascriptAssetLoader.js +42 -0
- package/src/engine/asset/loaders/JsonAssetLoader.js +27 -0
- package/src/engine/asset/loaders/LegacyThreeJSONAssetLoader.js +102 -0
- package/src/engine/asset/loaders/SVGAssetLoader.js +31 -0
- package/src/engine/asset/loaders/SoundAssetLoader.js +51 -0
- package/src/engine/asset/loaders/TextAssetLoader.js +15 -0
- package/src/engine/asset/loaders/async_traverse_three_object.js +24 -0
- package/src/engine/asset/loaders/gltf/GLTFAssetTransformMikkTSpaceTangents.js +27 -0
- package/src/engine/asset/loaders/gltf/computeObjectBoundingSphere.js +70 -0
- package/src/engine/asset/loaders/gltf/extensions/MSFT_texture_dds.js +46 -0
- package/src/engine/asset/loaders/gltf/isMesh.js +8 -0
- package/src/engine/asset/loaders/image/ImageDecoderWorker.js +56 -0
- package/src/engine/asset/loaders/image/ImageRGBADataAsset.js +45 -0
- package/src/engine/asset/loaders/image/ImageRGBADataLoader.js +107 -0
- package/src/engine/asset/loaders/image/codec/Codec.js +19 -0
- package/src/engine/asset/loaders/image/codec/CodecWithFallback.js +73 -0
- package/src/engine/asset/loaders/image/codec/NativeImageDecoder.js +55 -0
- package/src/engine/asset/loaders/image/codec/ThreadedImageDecoder.js +42 -0
- package/src/engine/asset/loaders/image/png/PNG.js +431 -0
- package/src/engine/asset/loaders/image/png/PNGReader.js +542 -0
- package/src/engine/asset/loaders/image/png/PNG_HEADER_BYTES.js +1 -0
- package/src/engine/asset/loaders/image/png/crc.js +66 -0
- package/src/engine/asset/loaders/image/png/prototypePNG.js +28 -0
- package/src/engine/asset/loaders/material/StaticMaterialCache.d.ts +7 -0
- package/src/engine/asset/loaders/material/StaticMaterialCache.js +106 -0
- package/src/engine/asset/loaders/material/TextureAttachmensByMaterialType.js +131 -0
- package/src/engine/asset/loaders/material/TextureAttachment.js +25 -0
- package/src/engine/asset/loaders/material/bitmap2sampler_gl.js +25 -0
- package/src/engine/asset/loaders/material/computeHashColor.js +7 -0
- package/src/engine/asset/loaders/material/computeImageBitmapEquality.js +118 -0
- package/src/engine/asset/loaders/material/computeImageBitmapHash.js +41 -0
- package/src/engine/asset/loaders/material/computeMaterialEquality.d.ts +3 -0
- package/src/engine/asset/loaders/material/computeMaterialEquality.js +131 -0
- package/src/engine/asset/loaders/material/computeMaterialHash.d.ts +3 -0
- package/src/engine/asset/loaders/material/computeMaterialHash.js +72 -0
- package/src/engine/asset/loaders/material/computeTextureEquality.js +191 -0
- package/src/engine/asset/loaders/material/computeTextureEqualityById.js +22 -0
- package/src/engine/asset/loaders/material/computeTextureHash.js +141 -0
- package/src/engine/asset/loaders/material/planeHash.js +10 -0
- package/src/engine/asset/loaders/material/planesEqual.js +9 -0
- package/src/engine/asset/loaders/material/textureHashById.js +12 -0
- package/src/engine/asset/loaders/material/traverseMaterialTextures.d.ts +3 -0
- package/src/engine/asset/loaders/material/traverseMaterialTextures.js +37 -0
- package/src/engine/asset/loaders/texture/TextureAssetLoader.d.ts +6 -0
- package/src/engine/asset/loaders/texture/TextureAssetLoader.js +40 -0
- package/src/engine/asset/loaders/texture/cloneTexture.js +13 -0
- package/src/engine/asset/loaders/texture/loadDDSTexture.js +37 -0
- package/src/engine/asset/loaders/texture/loadStandardImageTexture.js +38 -0
- package/src/engine/asset/preloader/AssetLevel.js +10 -0
- package/src/engine/asset/preloader/Preloader.js +189 -0
- package/src/engine/asset/preloader/extractAssetListFromManager.js +55 -0
- package/src/engine/compression/CompressionService.js +144 -0
- package/src/engine/computeStridedIntegerArrayHash.js +19 -0
- package/src/engine/control/ControlContext.js +161 -0
- package/src/engine/control/ControlContext.spec.js +81 -0
- package/src/engine/control/ControlContextState.js +10 -0
- package/src/engine/control/StatefulController.js +43 -0
- package/src/engine/development/performance/AbstractMetric.js +30 -0
- package/src/engine/development/performance/MetricCollection.js +60 -0
- package/src/engine/development/performance/MetricStatistics.js +8 -0
- package/src/engine/development/performance/RingBufferMetric.js +73 -0
- package/src/engine/development/performance/monitor/PeriodicConsolePrinter.js +37 -0
- package/src/engine/ecs/Blueprint.js +129 -0
- package/src/engine/ecs/EntityBlueprint.d.ts +3 -0
- package/src/engine/ecs/EntityBlueprint.js +161 -0
- package/src/engine/ecs/EntityBuilder.d.ts +33 -0
- package/src/engine/ecs/EntityBuilder.js +466 -0
- package/src/engine/ecs/EntityBuilder.spec.js +64 -0
- package/src/engine/ecs/EntityBuilderUtils.js +21 -0
- package/src/engine/ecs/EntityComponentDataset.d.ts +45 -0
- package/src/engine/ecs/EntityComponentDataset.js +1919 -0
- package/src/engine/ecs/EntityComponentDataset.spec.js +818 -0
- package/src/engine/ecs/EntityFactory.js +207 -0
- package/src/engine/ecs/EntityManager.d.ts +34 -0
- package/src/engine/ecs/EntityManager.js +894 -0
- package/src/engine/ecs/EntityManager.spec.js +99 -0
- package/src/engine/ecs/EntityObserver.d.ts +13 -0
- package/src/engine/ecs/EntityObserver.js +121 -0
- package/src/engine/ecs/EntityObserver.spec.js +184 -0
- package/src/engine/ecs/System.d.ts +30 -0
- package/src/engine/ecs/System.js +121 -0
- package/src/engine/ecs/animation/Animation.js +355 -0
- package/src/engine/ecs/animation/AnimationOptimizer.js +132 -0
- package/src/engine/ecs/animation/IKMath.js +29 -0
- package/src/engine/ecs/animation/IKProblem.js +30 -0
- package/src/engine/ecs/animation/IKSolver.js +9 -0
- package/src/engine/ecs/animation/InverseKinematics.js +278 -0
- package/src/engine/ecs/animation/InverseKinematicsSystem.js +143 -0
- package/src/engine/ecs/animation/OneBoneSurfaceAlignmentSolver.js +213 -0
- package/src/engine/ecs/animation/TwoBoneInverseKinematicsSolver.js +325 -0
- package/src/engine/ecs/attachment/Attachment.js +55 -0
- package/src/engine/ecs/attachment/AttachmentBinding.js +44 -0
- package/src/engine/ecs/attachment/AttachmentSystem.js +312 -0
- package/src/engine/ecs/attachment/BoneAttachmentBinding.js +53 -0
- package/src/engine/ecs/attachment/TransformAttachmentBinding.js +43 -0
- package/src/engine/ecs/binding/ComponentPropertyBinding.js +57 -0
- package/src/engine/ecs/binding/ComponentPropertyPath.js +15 -0
- package/src/engine/ecs/binding/EntityProxyScope.js +95 -0
- package/src/engine/ecs/components/AABB.js +33 -0
- package/src/engine/ecs/components/AABBCollider.js +15 -0
- package/src/engine/ecs/components/AimController.js +18 -0
- package/src/engine/ecs/components/AlignToVelocity.js +9 -0
- package/src/engine/ecs/components/AreaOfEffect.js +12 -0
- package/src/engine/ecs/components/Attacker.js +13 -0
- package/src/engine/ecs/components/CharacterController.js +25 -0
- package/src/engine/ecs/components/ClingToHeightMap.js +19 -0
- package/src/engine/ecs/components/GeometryBVH.js +44 -0
- package/src/engine/ecs/components/MeshCollider.js +10 -0
- package/src/engine/ecs/components/MonsterAI.js +10 -0
- package/src/engine/ecs/components/Mortality.js +27 -0
- package/src/engine/ecs/components/Motion.js +61 -0
- package/src/engine/ecs/components/PhysicalBody.js +51 -0
- package/src/engine/ecs/components/PropertySet.js +140 -0
- package/src/engine/ecs/components/RangedAttack.js +12 -0
- package/src/engine/ecs/components/Renderable.d.ts +14 -0
- package/src/engine/ecs/components/Renderable.js +244 -0
- package/src/engine/ecs/components/RenderableFlags.js +6 -0
- package/src/engine/ecs/components/Script.js +26 -0
- package/src/engine/ecs/components/SerializationMetadata.js +97 -0
- package/src/engine/ecs/components/Steering.js +146 -0
- package/src/engine/ecs/components/SynchronizePosition.js +15 -0
- package/src/engine/ecs/components/Tag.d.ts +27 -0
- package/src/engine/ecs/components/Tag.js +391 -0
- package/src/engine/ecs/components/TagEditor.js +15 -0
- package/src/engine/ecs/components/TargetAI.js +11 -0
- package/src/engine/ecs/components/Timer.js +85 -0
- package/src/engine/ecs/components/ViewportMeshProjection.js +18 -0
- package/src/engine/ecs/dynamic_actions/DynamicActor.js +22 -0
- package/src/engine/ecs/dynamic_actions/DynamicActorSystem.js +606 -0
- package/src/engine/ecs/dynamic_actions/DynamicRuleDescriptionTable.spec.js +126 -0
- package/src/engine/ecs/dynamic_actions/RuleExecution.js +16 -0
- package/src/engine/ecs/dynamic_actions/actions/definition/AbstractActionDescription.js +22 -0
- package/src/engine/ecs/dynamic_actions/actions/definition/ActionSequenceDescription.js +22 -0
- package/src/engine/ecs/dynamic_actions/actions/definition/DelayActionDescription.js +23 -0
- package/src/engine/ecs/dynamic_actions/actions/definition/NoopActionDescription.js +14 -0
- package/src/engine/ecs/dynamic_actions/actions/definition/SendRequestActionDescription.js +104 -0
- package/src/engine/ecs/dynamic_actions/actions/definition/SpeakLineActionDescription.js +81 -0
- package/src/engine/ecs/dynamic_actions/actions/definition/WeightedRandomActionDescription.js +53 -0
- package/src/engine/ecs/dynamic_actions/actions/definition/WhiteToBlackboardActionDescription.js +58 -0
- package/src/engine/ecs/dynamic_actions/actions/definition/deserializeActionFromJSON.js +81 -0
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleCooldownDescription.js +34 -0
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.js +132 -0
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescriptionTable.js +178 -0
- package/src/engine/ecs/dynamic_actions/rules/computeContextualDynamicRuleDebugString.js +27 -0
- package/src/engine/ecs/evaluation/PointFitnessBinary.js +36 -0
- package/src/engine/ecs/evaluation/PointFitnessConstant.js +31 -0
- package/src/engine/ecs/evaluation/PointFitnessFunction.js +20 -0
- package/src/engine/ecs/evaluation/arithmetic/PointFitnessAdd.js +27 -0
- package/src/engine/ecs/evaluation/arithmetic/PointFitnessMultiply.js +28 -0
- package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.js +125 -0
- package/src/engine/ecs/evaluation/json/deserializeFromJSON_PointFitnessFunction.js +68 -0
- package/src/engine/ecs/evaluation/json/serializeToJSON_PointFitnessFunction.js +89 -0
- package/src/engine/ecs/evaluation/world/ReadTerrainLayerWeightPointFitness.js +64 -0
- package/src/engine/ecs/foliage/Foliage.js +151 -0
- package/src/engine/ecs/foliage/FoliageLoader.js +39 -0
- package/src/engine/ecs/foliage/FoliageVisibilitySetBuilder.js +27 -0
- package/src/engine/ecs/foliage/ImpostorFoliage.js +106 -0
- package/src/engine/ecs/foliage/InstancedFoliage.js +386 -0
- package/src/engine/ecs/foliage/ViewState.js +181 -0
- package/src/engine/ecs/foliage/ecs/Foliage2System.js +328 -0
- package/src/engine/ecs/foliage/ecs/InstancedMeshComponent.js +67 -0
- package/src/engine/ecs/foliage/ecs/InstancedMeshLayer.js +138 -0
- package/src/engine/ecs/foliage/ecs/InstancedMeshSerializationAdapter.js +31 -0
- package/src/engine/ecs/foliage/ecs/InstancedMeshUtils.js +279 -0
- package/src/engine/ecs/fow/FogOfWar.js +607 -0
- package/src/engine/ecs/fow/FogOfWar.spec.js +14 -0
- package/src/engine/ecs/fow/FogOfWarEditor.js +13 -0
- package/src/engine/ecs/fow/FogOfWarRevealer.js +56 -0
- package/src/engine/ecs/fow/FogOfWarRevealerSystem.js +142 -0
- package/src/engine/ecs/fow/FogOfWarSystem.js +266 -0
- package/src/engine/ecs/fow/FogOfWarVisibilityPredicate.js +52 -0
- package/src/engine/ecs/fow/serialization/FogOfWarSerializationAdapter.js +80 -0
- package/src/engine/ecs/fow/serialization/FogOfWarSerializationUpdater_0_1.js +50 -0
- package/src/engine/ecs/fow/shader/FogOfWarRenderer.js +145 -0
- package/src/engine/ecs/fow/shader/screenSpaceFogOfWarShader.js +151 -0
- package/src/engine/ecs/grid/HeightMap2NormalMap.js +76 -0
- package/src/engine/ecs/grid/HeightSampler2NormalSamplerSoft.js +68 -0
- package/src/engine/ecs/grid/NormalMap2AOMap.js +87 -0
- package/src/engine/ecs/grid/Sampler2DDecoder.js +57 -0
- package/src/engine/ecs/grid/makeTerrainGeometry.js +110 -0
- package/src/engine/ecs/gui/GUIElement.d.ts +5 -0
- package/src/engine/ecs/gui/GUIElement.js +239 -0
- package/src/engine/ecs/gui/GUIElementEvent.js +8 -0
- package/src/engine/ecs/gui/GUIElementSerializationAdapter.js +108 -0
- package/src/engine/ecs/gui/GUIElementSystem.d.ts +8 -0
- package/src/engine/ecs/gui/GUIElementSystem.js +289 -0
- package/src/engine/ecs/gui/hud/HeadsUpDisplay.js +118 -0
- package/src/engine/ecs/gui/hud/HeadsUpDisplayFlag.js +16 -0
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySerializationAdapter.js +31 -0
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts +6 -0
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +210 -0
- package/src/engine/ecs/gui/menu/radial/AnimateAppearance.js +21 -0
- package/src/engine/ecs/gui/menu/radial/AnimateDisappearance.js +21 -0
- package/src/engine/ecs/gui/menu/radial/RadialContextMenu.d.ts +22 -0
- package/src/engine/ecs/gui/menu/radial/RadialContextMenu.js +246 -0
- package/src/engine/ecs/gui/menu/radial/RadialMenuSettings.js +11 -0
- package/src/engine/ecs/gui/menu/radial/playAnimation.js +20 -0
- package/src/engine/ecs/gui/menu/radial/updateAnimationState.js +14 -0
- package/src/engine/ecs/gui/parallax/GuiElementParallax.js +15 -0
- package/src/engine/ecs/gui/parallax/GuiElementParallaxSystem.js +91 -0
- package/src/engine/ecs/gui/position/ViewportPosition.js +194 -0
- package/src/engine/ecs/gui/position/ViewportPositionSystem.js +262 -0
- package/src/engine/ecs/gui/view/ButtonViewEntity.js +108 -0
- package/src/engine/ecs/gui/view/LocalizedLabelViewEntity.js +52 -0
- package/src/engine/ecs/gui/view/ViewEntity.js +32 -0
- package/src/engine/ecs/parent/ChildEntities.d.ts +3 -0
- package/src/engine/ecs/parent/ChildEntities.js +41 -0
- package/src/engine/ecs/parent/EntityNode.d.ts +24 -0
- package/src/engine/ecs/parent/EntityNode.js +430 -0
- package/src/engine/ecs/parent/EntityNodeFlags.js +8 -0
- package/src/engine/ecs/parent/FaceEditor.js +137 -0
- package/src/engine/ecs/parent/ParentEntity.d.ts +11 -0
- package/src/engine/ecs/parent/ParentEntity.js +50 -0
- package/src/engine/ecs/parent/ParentEntitySystem.d.ts +11 -0
- package/src/engine/ecs/parent/ParentEntitySystem.js +222 -0
- package/src/engine/ecs/parent/entity_node_compute_bounding_box.js +41 -0
- package/src/engine/ecs/parent/testCompositionEntityNode.js +153 -0
- package/src/engine/ecs/parent/testHuDPerf.js +123 -0
- package/src/engine/ecs/sockets/AttachmentSocket.js +62 -0
- package/src/engine/ecs/sockets/AttachmentSocketType.js +8 -0
- package/src/engine/ecs/sockets/AttachmentSockets.js +132 -0
- package/src/engine/ecs/sockets/BoneAttachmentSocket.js +60 -0
- package/src/engine/ecs/sockets/serialization/AttachmentSocketsAssetLoader.js +22 -0
- package/src/engine/ecs/speaker/SpeechBubbleView.js +11 -0
- package/src/engine/ecs/speaker/Voice.js +58 -0
- package/src/engine/ecs/speaker/VoiceEvents.js +10 -0
- package/src/engine/ecs/speaker/VoiceFlags.js +10 -0
- package/src/engine/ecs/speaker/VoiceSystem.js +455 -0
- package/src/engine/ecs/speaker/lines/LineDescription.js +45 -0
- package/src/engine/ecs/speaker/lines/LineDescriptionTable.js +15 -0
- package/src/engine/ecs/speaker/lines/sets/LineSetDescription.js +74 -0
- package/src/engine/ecs/speaker/lines/sets/LineSetDescriptionTable.js +103 -0
- package/src/engine/ecs/storage/BinaryBufferDeSerializer.js +201 -0
- package/src/engine/ecs/storage/BinaryBufferSerializer.js +181 -0
- package/src/engine/ecs/storage/COMPONENT_SERIALIZATION_TRANSIENT_FIELD.js +7 -0
- package/src/engine/ecs/storage/JSONDeSerializer.js +148 -0
- package/src/engine/ecs/storage/JSONSerializer.js +132 -0
- package/src/engine/ecs/storage/binary/BinaryClassSerializationAdapter.js +66 -0
- package/src/engine/ecs/storage/binary/BinaryClassUpgrader.js +90 -0
- package/src/engine/ecs/storage/binary/BinarySerializationRegistry.js +204 -0
- package/src/engine/ecs/storage/binary/BinarySerializationRegistry.spec.js +139 -0
- package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.js +341 -0
- package/src/engine/ecs/storage/binary/collection/BinaryCollectionHeaderCodec.js +12 -0
- package/src/engine/ecs/storage/binary/collection/BinaryCollectionSerialization.spec.js +259 -0
- package/src/engine/ecs/storage/binary/collection/BinaryCollectionSerializer.js +274 -0
- package/src/engine/ecs/storage/binary/object/BinaryObjectSerializationAdapter.js +130 -0
- package/src/engine/ecs/storage/binary/object/BinaryObjectSerializationAdapter.spec.js +59 -0
- package/src/engine/ecs/storage/binary/object/ObjectBasedClassSerializationAdapter.js +21 -0
- package/src/engine/ecs/system/AbstractContextSystem.js +119 -0
- package/src/engine/ecs/system/SystemEntityContext.js +50 -0
- package/src/engine/ecs/systems/AABBColliderSystem.js +61 -0
- package/src/engine/ecs/systems/AABBSystem.js +89 -0
- package/src/engine/ecs/systems/AimControllerSystem.js +63 -0
- package/src/engine/ecs/systems/AlignToVelocitySystem.js +51 -0
- package/src/engine/ecs/systems/AnimationSystem.d.ts +6 -0
- package/src/engine/ecs/systems/AnimationSystem.js +388 -0
- package/src/engine/ecs/systems/AreaOfEffectSystem.js +48 -0
- package/src/engine/ecs/systems/AttackerSystem.js +67 -0
- package/src/engine/ecs/systems/CharacterControlSystem.js +134 -0
- package/src/engine/ecs/systems/ClingToHeightMapSystem.js +170 -0
- package/src/engine/ecs/systems/GeometryBVHSystem.js +36 -0
- package/src/engine/ecs/systems/MeshColliderSystem.js +47 -0
- package/src/engine/ecs/systems/MonsterAISystem.js +163 -0
- package/src/engine/ecs/systems/MortalitySystem.js +46 -0
- package/src/engine/ecs/systems/MotionSystem.js +28 -0
- package/src/engine/ecs/systems/PhysicsSystem.js +89 -0
- package/src/engine/ecs/systems/PropertySetSystem.js +18 -0
- package/src/engine/ecs/systems/RangedAttackSystem.js +132 -0
- package/src/engine/ecs/systems/RenderSystem.d.ts +7 -0
- package/src/engine/ecs/systems/RenderSystem.js +267 -0
- package/src/engine/ecs/systems/ScriptSystem.d.ts +5 -0
- package/src/engine/ecs/systems/ScriptSystem.js +48 -0
- package/src/engine/ecs/systems/SerializationMetadataSystem.js +10 -0
- package/src/engine/ecs/systems/SteeringSystem.js +171 -0
- package/src/engine/ecs/systems/SynchronizePositionSystem.js +37 -0
- package/src/engine/ecs/systems/TagSystem.d.ts +5 -0
- package/src/engine/ecs/systems/TagSystem.js +36 -0
- package/src/engine/ecs/systems/TargetAISystem.js +107 -0
- package/src/engine/ecs/systems/TimerSystem.js +71 -0
- package/src/engine/ecs/systems/ViewportMeshProjectionSystem.js +68 -0
- package/src/engine/ecs/team/Team.js +82 -0
- package/src/engine/ecs/terrain/BufferedGeometryArraysBuilder.js +126 -0
- package/src/engine/ecs/terrain/TerrainClouds.js +177 -0
- package/src/engine/ecs/terrain/TerrainGeometryBuilder.js +152 -0
- package/src/engine/ecs/terrain/TerrainPreview.js +66 -0
- package/src/engine/ecs/terrain/ecs/BuildLightTexture.js +106 -0
- package/src/engine/ecs/terrain/ecs/GridTransformKind.js +4 -0
- package/src/engine/ecs/terrain/ecs/OffsetScaleTransform2D.d.ts +6 -0
- package/src/engine/ecs/terrain/ecs/OffsetScaleTransform2D.js +9 -0
- package/src/engine/ecs/terrain/ecs/PromiseSamplerHeight.js +59 -0
- package/src/engine/ecs/terrain/ecs/Terrain.d.ts +17 -0
- package/src/engine/ecs/terrain/ecs/Terrain.js +1060 -0
- package/src/engine/ecs/terrain/ecs/TerrainClassifier.js +125 -0
- package/src/engine/ecs/terrain/ecs/TerrainFlags.js +8 -0
- package/src/engine/ecs/terrain/ecs/TerrainSystem.d.ts +8 -0
- package/src/engine/ecs/terrain/ecs/TerrainSystem.js +232 -0
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrain.js +68 -0
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSerializationAdapter.js +31 -0
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +348 -0
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.spec.js +38 -0
- package/src/engine/ecs/terrain/ecs/layers/TerrainLayer.js +165 -0
- package/src/engine/ecs/terrain/ecs/layers/TerrainLayers.js +459 -0
- package/src/engine/ecs/terrain/ecs/layers/loadLegacyTerrainLayers.js +99 -0
- package/src/engine/ecs/terrain/ecs/makeTerrainWorkerProxy.js +82 -0
- package/src/engine/ecs/terrain/ecs/splat/SplatMapMaterialPatch.js +461 -0
- package/src/engine/ecs/terrain/ecs/splat/SplatMapOptimizer.js +622 -0
- package/src/engine/ecs/terrain/ecs/splat/SplatMapOptimizerDebugger.js +383 -0
- package/src/engine/ecs/terrain/ecs/splat/SplatMapping.js +528 -0
- package/src/engine/ecs/terrain/ecs/splat/loadLegacyTerrainSplats.js +73 -0
- package/src/engine/ecs/terrain/overlay/TerrainOverlay.js +324 -0
- package/src/engine/ecs/terrain/serialization/TerrainSerializationAdapter.js +206 -0
- package/src/engine/ecs/terrain/serialization/TerrainSerializationUpgrader_0_1.js +92 -0
- package/src/engine/ecs/terrain/serialization/TerrainSerializationUpgrader_1_2.js +81 -0
- package/src/engine/ecs/terrain/tiles/FirstRayIntersectionTerrainBVHVisitor.js +74 -0
- package/src/engine/ecs/terrain/tiles/TerrainTile.js +585 -0
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +692 -0
- package/src/engine/ecs/terrain/tiles/TileBuildWorker.js +17 -0
- package/src/engine/ecs/terrain/util/loadVisibleTerrainTiles.js +112 -0
- package/src/engine/ecs/terrain/util/obtainTerrain.js +23 -0
- package/src/engine/ecs/terrain/util/paintTerrainOverlayViaLookupTable.js +67 -0
- package/src/engine/ecs/terrain/util/tensionOptimizeUV.js +76 -0
- package/src/engine/ecs/tooltip/TooltipComponent.js +45 -0
- package/src/engine/ecs/tooltip/TooltipComponentSerializationAdapter.js +29 -0
- package/src/engine/ecs/tooltip/TooltipComponentSystem.js +234 -0
- package/src/engine/ecs/tooltip/testTooltipComponentSystem.js +119 -0
- package/src/engine/ecs/transform/Transform.d.ts +38 -0
- package/src/engine/ecs/transform/Transform.editor.schema.json +16 -0
- package/src/engine/ecs/transform/Transform.js +357 -0
- package/src/engine/ecs/transform/TransformFlags.js +11 -0
- package/src/engine/ecs/transform/TransformSerializationAdapter.js +54 -0
- package/src/engine/ecs/transform/TransformSerializationUpgrader_0_1.js +69 -0
- package/src/engine/ecs/transform/copy_three_transform.js +15 -0
- package/src/engine/ecs/transform-attachment/TransformAttachment.d.ts +3 -0
- package/src/engine/ecs/transform-attachment/TransformAttachment.js +101 -0
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts +6 -0
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.js +226 -0
- package/src/engine/ecs/util/hideEntityGracefully.js +202 -0
- package/src/engine/ecs/util/removeComponentsExcept.js +32 -0
- package/src/engine/google/gapi.js +29 -0
- package/src/engine/graphics/CanvasBlur.js +599 -0
- package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.js +10 -0
- package/src/engine/graphics/FrameRunner.js +88 -0
- package/src/engine/graphics/FrameThrottle.js +29 -0
- package/src/engine/graphics/GraphicsEngine.d.ts +38 -0
- package/src/engine/graphics/GraphicsEngine.js +684 -0
- package/src/engine/graphics/StandardFrameBuffers.js +9 -0
- package/src/engine/graphics/WHITE_PIXEL_DATA_URL.js +1 -0
- package/src/engine/graphics/camera/CameraShake.js +198 -0
- package/src/engine/graphics/camera/camera_compute_distance_to_fit_length.d.ts +1 -0
- package/src/engine/graphics/camera/camera_compute_distance_to_fit_length.js +22 -0
- package/src/engine/graphics/camera/makeOrbitalCameraController.js +108 -0
- package/src/engine/graphics/camera/makeScreenScissorFrustum.d.ts +4 -0
- package/src/engine/graphics/camera/makeScreenScissorFrustum.js +60 -0
- package/src/engine/graphics/camera/testClippingPlaneComputation.js +434 -0
- package/src/engine/graphics/clouds/MaterialTransformer.js +0 -0
- package/src/engine/graphics/clouds/TerrainCloudsPlugin.js +0 -0
- package/src/engine/graphics/clouds/cs_build_fragment_shader.js +0 -0
- package/src/engine/graphics/clouds/cs_build_vertex_shader.js +0 -0
- package/src/engine/graphics/composit/CompositLayer.js +254 -0
- package/src/engine/graphics/composit/CompositingStages.js +8 -0
- package/src/engine/graphics/composit/LayerCompositer.js +240 -0
- package/src/engine/graphics/debug/VisualSymbolLine.js +112 -0
- package/src/engine/graphics/debug/createDebugLabel.js +36 -0
- package/src/engine/graphics/ecs/animation/AnimationController.js +152 -0
- package/src/engine/graphics/ecs/animation/AnimationControllerSystem.js +80 -0
- package/src/engine/graphics/ecs/animation/animator/AnimationClip.js +227 -0
- package/src/engine/graphics/ecs/animation/animator/AnimationClipDefinition.js +117 -0
- package/src/engine/graphics/ecs/animation/animator/AnimationClipFlag.js +10 -0
- package/src/engine/graphics/ecs/animation/animator/AnimationEventTypes.js +7 -0
- package/src/engine/graphics/ecs/animation/animator/AnimationGraphSystem.js +322 -0
- package/src/engine/graphics/ecs/animation/animator/AnimationNotification.js +43 -0
- package/src/engine/graphics/ecs/animation/animator/AnimationNotificationDefinition.js +44 -0
- package/src/engine/graphics/ecs/animation/animator/blending/BlendSpace.js +15 -0
- package/src/engine/graphics/ecs/animation/animator/blending/BlendSpaceDefinition.js +9 -0
- package/src/engine/graphics/ecs/animation/animator/blending/BlendSpacePoint.js +15 -0
- package/src/engine/graphics/ecs/animation/animator/blending/BlendState.js +9 -0
- package/src/engine/graphics/ecs/animation/animator/blending/BlendStateDatabase.js +76 -0
- package/src/engine/graphics/ecs/animation/animator/blending/BlendStateMatrix.js +103 -0
- package/src/engine/graphics/ecs/animation/animator/graph/AnimationGraph.js +727 -0
- package/src/engine/graphics/ecs/animation/animator/graph/AnimationGraphFlag.js +8 -0
- package/src/engine/graphics/ecs/animation/animator/graph/AnimationGraphSerializationAdapter.js +64 -0
- package/src/engine/graphics/ecs/animation/animator/graph/AnimationState.js +210 -0
- package/src/engine/graphics/ecs/animation/animator/graph/AnimationStateType.js +5 -0
- package/src/engine/graphics/ecs/animation/animator/graph/AnimationTransition.js +153 -0
- package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationGraphDefinition.js +194 -0
- package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationStateDefinition.js +92 -0
- package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.js +61 -0
- package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/AnimationGraphDefinitionAssetLoader.js +29 -0
- package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/AnimationGraphDefinitionSerializationAdapter.js +301 -0
- package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/readAnimationGraphDefinitionFromJSON.js +135 -0
- package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/writeAnimationGraphDefinitionToJSON.js +100 -0
- package/src/engine/graphics/ecs/camera/Camera.d.ts +18 -0
- package/src/engine/graphics/ecs/camera/Camera.js +262 -0
- package/src/engine/graphics/ecs/camera/CameraClippingPlaneComputer.js +138 -0
- package/src/engine/graphics/ecs/camera/CameraSystem.d.ts +11 -0
- package/src/engine/graphics/ecs/camera/CameraSystem.js +311 -0
- package/src/engine/graphics/ecs/camera/FrustumProjector.js +242 -0
- package/src/engine/graphics/ecs/camera/InvertQuaternionOrientation.js +26 -0
- package/src/engine/graphics/ecs/camera/ProjectionType.js +9 -0
- package/src/engine/graphics/ecs/camera/TiltCameraController.js +69 -0
- package/src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.js +32 -0
- package/src/engine/graphics/ecs/camera/build_three_camera_object.js +29 -0
- package/src/engine/graphics/ecs/camera/compute_perspective_camera_focal_position.js +27 -0
- package/src/engine/graphics/ecs/camera/frustum_from_camera.js +20 -0
- package/src/engine/graphics/ecs/camera/is_valid_distance_value.js +11 -0
- package/src/engine/graphics/ecs/camera/serialization/CameraSerializationAdapter.js +35 -0
- package/src/engine/graphics/ecs/camera/set_camera_aspect_ratio.js +46 -0
- package/src/engine/graphics/ecs/camera/topdown/ComputeCameraFacingVector.js +21 -0
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts +33 -0
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +264 -0
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.spec.js +94 -0
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSerializationAdapter.js +53 -0
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSerializationUpgrader_0_1.js +30 -0
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts +5 -0
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +104 -0
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraLander.js +26 -0
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraLanderSystem.js +153 -0
- package/src/engine/graphics/ecs/camera/unprojectPoint.js +14 -0
- package/src/engine/graphics/ecs/camera/update_camera_transform.js +17 -0
- package/src/engine/graphics/ecs/compileAllMaterials.js +139 -0
- package/src/engine/graphics/ecs/decal/Decal.js +10 -0
- package/src/engine/graphics/ecs/decal/DecalSystem.js +117 -0
- package/src/engine/graphics/ecs/decal/threejs/DecalGeometry.js +298 -0
- package/src/engine/graphics/ecs/decal/v2/Decal.d.ts +11 -0
- package/src/engine/graphics/ecs/decal/v2/Decal.js +50 -0
- package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.d.ts +8 -0
- package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.js +226 -0
- package/src/engine/graphics/ecs/decal/v2/prototypeDecalEditor.js +138 -0
- package/src/engine/graphics/ecs/decal/v2/prototypeDecalSystem.js +496 -0
- package/src/engine/graphics/ecs/highlight/Highlight.d.ts +16 -0
- package/src/engine/graphics/ecs/highlight/Highlight.js +188 -0
- package/src/engine/graphics/ecs/highlight/HighlightDefinition.d.ts +16 -0
- package/src/engine/graphics/ecs/highlight/HighlightDefinition.js +86 -0
- package/src/engine/graphics/ecs/highlight/HighlightEditor.js +17 -0
- package/src/engine/graphics/ecs/highlight/HighlightSerializationAdapter.js +87 -0
- package/src/engine/graphics/ecs/highlight/HighlightSerializationUpgrader_0_1.js +28 -0
- package/src/engine/graphics/ecs/highlight/plugin/HighlightRenderElementSource.js +12 -0
- package/src/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.js +193 -0
- package/src/engine/graphics/ecs/highlight/renderer/HighlightDecodeShader.js +67 -0
- package/src/engine/graphics/ecs/highlight/renderer/HighlightRenderElement.js +47 -0
- package/src/engine/graphics/ecs/highlight/renderer/HighlightRenderGroup.js +31 -0
- package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.js +634 -0
- package/src/engine/graphics/ecs/highlight/renderer/makeBlurShader_9.js +49 -0
- package/src/engine/graphics/ecs/highlight/renderer/makeDilationShader.js +92 -0
- package/src/engine/graphics/ecs/highlight/renderer/makeGaussianBlurShader.js +61 -0
- package/src/engine/graphics/ecs/highlight/renderer/traverseThreeObject.js +18 -0
- package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.d.ts +8 -0
- package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.js +180 -0
- package/src/engine/graphics/ecs/highlight/system/RenderableHighlightSystem.d.ts +8 -0
- package/src/engine/graphics/ecs/highlight/system/RenderableHighlightSystem.js +176 -0
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.d.ts +8 -0
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js +185 -0
- package/src/engine/graphics/ecs/light/Light.d.ts +19 -0
- package/src/engine/graphics/ecs/light/Light.js +167 -0
- package/src/engine/graphics/ecs/light/LightContext.js +69 -0
- package/src/engine/graphics/ecs/light/LightSerializationAdapter.js +50 -0
- package/src/engine/graphics/ecs/light/LightSystem.d.ts +11 -0
- package/src/engine/graphics/ecs/light/LightSystem.js +344 -0
- package/src/engine/graphics/ecs/light/LightType.d.ts +6 -0
- package/src/engine/graphics/ecs/light/LightType.js +11 -0
- package/src/engine/graphics/ecs/light/binding/LightBinding.js +118 -0
- package/src/engine/graphics/ecs/light/binding/fp/FPLightBinding.js +61 -0
- package/src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.js +348 -0
- package/src/engine/graphics/ecs/light/binding/three/applyRotation.js +24 -0
- package/src/engine/graphics/ecs/light/binding/three/threeEnsureLightObject.js +12 -0
- package/src/engine/graphics/ecs/light/binding/three/threeMakeLight.js +41 -0
- package/src/engine/graphics/ecs/light/shadow/ShadowManager.js +54 -0
- package/src/engine/graphics/ecs/light/shadow/ShadowMap.js +11 -0
- package/src/engine/graphics/ecs/light/shadow/setShadowCameraDimensionsDiscrete.js +43 -0
- package/src/engine/graphics/ecs/light/three/ThreeLightCache.js +250 -0
- package/src/engine/graphics/ecs/light/three/light2type.js +20 -0
- package/src/engine/graphics/ecs/mesh/Mesh.d.ts +35 -0
- package/src/engine/graphics/ecs/mesh/Mesh.js +448 -0
- package/src/engine/graphics/ecs/mesh/MeshEditor.js +28 -0
- package/src/engine/graphics/ecs/mesh/MeshEvents.d.ts +12 -0
- package/src/engine/graphics/ecs/mesh/MeshEvents.js +16 -0
- package/src/engine/graphics/ecs/mesh/MeshSystem.d.ts +7 -0
- package/src/engine/graphics/ecs/mesh/MeshSystem.js +467 -0
- package/src/engine/graphics/ecs/mesh/SkeletonUtils.js +284 -0
- package/src/engine/graphics/ecs/mesh/applyTransformToThreeObject.js +14 -0
- package/src/engine/graphics/ecs/mesh/assetTypeByPath.js +28 -0
- package/src/engine/graphics/ecs/mesh/commonObject3DFastMatrixUpdate.js +37 -0
- package/src/engine/graphics/ecs/mesh/copyToVector3.js +18 -0
- package/src/engine/graphics/ecs/mesh/createTaskWaitForMeshesToLoad.js +158 -0
- package/src/engine/graphics/ecs/mesh/object3DFastMatrixUpdate.js +18 -0
- package/src/engine/graphics/ecs/mesh/rootObject3DFastMatrixUpdate.js +14 -0
- package/src/engine/graphics/ecs/mesh/serialization/MeshSerializationAdapter.js +43 -0
- package/src/engine/graphics/ecs/mesh/setMesh.js +55 -0
- package/src/engine/graphics/ecs/mesh/setThreeObjectRotation.js +11 -0
- package/src/engine/graphics/ecs/mesh/skeleton/BoneMapping.js +101 -0
- package/src/engine/graphics/ecs/mesh/skeleton/HumanoidBoneType.js +29 -0
- package/src/engine/graphics/ecs/mesh/updateMeshTransform.js +15 -0
- package/src/engine/graphics/ecs/mesh/updateNodeByTransformAndBBB.js +54 -0
- package/src/engine/graphics/ecs/mesh-v2/DrawMode.d.ts +6 -0
- package/src/engine/graphics/ecs/mesh-v2/DrawMode.js +10 -0
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts +20 -0
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +370 -0
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometryFlags.js +20 -0
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.d.ts +32 -0
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +538 -0
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMesh.d.ts +14 -0
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMesh.js +179 -0
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshEvents.d.ts +12 -0
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshEvents.js +12 -0
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.d.ts +7 -0
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshHighlightSystem.js +90 -0
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshSystem.d.ts +8 -0
- package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshSystem.js +294 -0
- package/src/engine/graphics/ecs/mesh-v2/aggregate/prototypeSGMesh.js +174 -0
- package/src/engine/graphics/ecs/mesh-v2/allocate_transform_m4.js +51 -0
- package/src/engine/graphics/ecs/mesh-v2/allocate_v3.js +37 -0
- package/src/engine/graphics/ecs/mesh-v2/build_three_object.js +45 -0
- package/src/engine/graphics/ecs/mesh-v2/render/SGThreeObjectCache.js +38 -0
- package/src/engine/graphics/ecs/mesh-v2/render/ShadedGeometryRendererContext.js +171 -0
- package/src/engine/graphics/ecs/mesh-v2/render/adapters/AbstractRenderAdapter.js +131 -0
- package/src/engine/graphics/ecs/mesh-v2/render/adapters/GenericRendererAdapter.js +43 -0
- package/src/engine/graphics/ecs/mesh-v2/render/adapters/InstancedRendererAdapter.js +151 -0
- package/src/engine/graphics/ecs/mesh-v2/render/optimization/RuntimeDrawMethodOptimizer.js +126 -0
- package/src/engine/graphics/ecs/mesh-v2/sample/load_gltf.js +130 -0
- package/src/engine/graphics/ecs/mesh-v2/sample/prototypeShadedGeometry.js +173 -0
- package/src/engine/graphics/ecs/mesh-v2/sample/prototype_sg_raycast.js +214 -0
- package/src/engine/graphics/ecs/mesh-v2/sg_hierarchy_compute_bounding_box_via_parent_entity.d.ts +4 -0
- package/src/engine/graphics/ecs/mesh-v2/sg_hierarchy_compute_bounding_box_via_parent_entity.js +31 -0
- package/src/engine/graphics/ecs/mesh-v2/three_object_to_entity_composition.d.ts +4 -0
- package/src/engine/graphics/ecs/mesh-v2/three_object_to_entity_composition.js +49 -0
- package/src/engine/graphics/ecs/path/PathDisplay.d.ts +9 -0
- package/src/engine/graphics/ecs/path/PathDisplay.js +30 -0
- package/src/engine/graphics/ecs/path/PathDisplayEvents.d.ts +3 -0
- package/src/engine/graphics/ecs/path/PathDisplayEvents.js +8 -0
- package/src/engine/graphics/ecs/path/PathDisplaySpec.d.ts +11 -0
- package/src/engine/graphics/ecs/path/PathDisplaySpec.js +70 -0
- package/src/engine/graphics/ecs/path/PathDisplaySystem.d.ts +10 -0
- package/src/engine/graphics/ecs/path/PathDisplaySystem.js +354 -0
- package/src/engine/graphics/ecs/path/PathDisplayType.d.ts +6 -0
- package/src/engine/graphics/ecs/path/PathDisplayType.js +10 -0
- package/src/engine/graphics/ecs/path/entity/EntityPath.js +235 -0
- package/src/engine/graphics/ecs/path/entity/EntityPathMarker.js +29 -0
- package/src/engine/graphics/ecs/path/entity/EntityPathMarkerDefinition.d.ts +8 -0
- package/src/engine/graphics/ecs/path/entity/EntityPathMarkerDefinition.js +65 -0
- package/src/engine/graphics/ecs/path/entity/EntityPathStyle.d.ts +12 -0
- package/src/engine/graphics/ecs/path/entity/EntityPathStyle.js +46 -0
- package/src/engine/graphics/ecs/path/entity/testEntityPath.js +148 -0
- package/src/engine/graphics/ecs/path/highlight/PathDisplayHighlightSystem.d.ts +7 -0
- package/src/engine/graphics/ecs/path/highlight/PathDisplayHighlightSystem.js +141 -0
- package/src/engine/graphics/ecs/path/ribbon/RibbonPathBuilder.js +149 -0
- package/src/engine/graphics/ecs/path/ribbon/RibbonPathStyle.d.ts +7 -0
- package/src/engine/graphics/ecs/path/ribbon/RibbonPathStyle.js +29 -0
- package/src/engine/graphics/ecs/path/testPathDisplaySystem.js +459 -0
- package/src/engine/graphics/ecs/path/tube/BasicMaterialDefinition.d.ts +3 -0
- package/src/engine/graphics/ecs/path/tube/BasicMaterialDefinition.js +8 -0
- package/src/engine/graphics/ecs/path/tube/CapType.d.ts +5 -0
- package/src/engine/graphics/ecs/path/tube/CapType.js +9 -0
- package/src/engine/graphics/ecs/path/tube/MatcapMaterialDefinition.d.ts +3 -0
- package/src/engine/graphics/ecs/path/tube/MatcapMaterialDefinition.js +17 -0
- package/src/engine/graphics/ecs/path/tube/PathNormalType.d.ts +4 -0
- package/src/engine/graphics/ecs/path/tube/PathNormalType.js +11 -0
- package/src/engine/graphics/ecs/path/tube/StandardMaterialDefinition.d.ts +4 -0
- package/src/engine/graphics/ecs/path/tube/StandardMaterialDefinition.js +15 -0
- package/src/engine/graphics/ecs/path/tube/TubeMaterialType.d.ts +6 -0
- package/src/engine/graphics/ecs/path/tube/TubeMaterialType.js +6 -0
- package/src/engine/graphics/ecs/path/tube/TubePathStyle.d.ts +35 -0
- package/src/engine/graphics/ecs/path/tube/TubePathStyle.js +235 -0
- package/src/engine/graphics/ecs/path/tube/TubePathStyle.spec.js +5 -0
- package/src/engine/graphics/ecs/path/tube/build/StreamGeometryBuilder.js +90 -0
- package/src/engine/graphics/ecs/path/tube/build/TubePathBuilder.js +203 -0
- package/src/engine/graphics/ecs/path/tube/build/build_geometry_catmullrom.js +75 -0
- package/src/engine/graphics/ecs/path/tube/build/build_geometry_catmullrom.spec.js +32 -0
- package/src/engine/graphics/ecs/path/tube/build/build_geometry_linear.js +70 -0
- package/src/engine/graphics/ecs/path/tube/build/computeFrenetFrames.js +191 -0
- package/src/engine/graphics/ecs/path/tube/build/compute_smooth_profile_normals.js +41 -0
- package/src/engine/graphics/ecs/path/tube/build/estimatePathLength.js +17 -0
- package/src/engine/graphics/ecs/path/tube/build/estimatePathViaIterativeIntegral.js +37 -0
- package/src/engine/graphics/ecs/path/tube/build/fix_shape_normal_order.js +45 -0
- package/src/engine/graphics/ecs/path/tube/build/makeTubeGeometry.js +201 -0
- package/src/engine/graphics/ecs/path/tube/build/make_cap.js +274 -0
- package/src/engine/graphics/ecs/path/tube/build/make_ring_faces.js +40 -0
- package/src/engine/graphics/ecs/path/tube/build/make_ring_vertices.js +152 -0
- package/src/engine/graphics/ecs/path/tube/prototypeAnimatedPathMask.js +392 -0
- package/src/engine/graphics/ecs/sprite/Sprite.js +11 -0
- package/src/engine/graphics/ecs/sprite/SpriteSystemPE.js +133 -0
- package/src/engine/graphics/ecs/sprite/prototypeSpriteSystem.js +1570 -0
- package/src/engine/graphics/ecs/trail/Trail.js +83 -0
- package/src/engine/graphics/ecs/trail/TrailMaterial.js +67 -0
- package/src/engine/graphics/ecs/trail/TrailMaterial2.js +73 -0
- package/src/engine/graphics/ecs/trail/TrailSystem.js +162 -0
- package/src/engine/graphics/ecs/trail2d/Trail2D.js +230 -0
- package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts +6 -0
- package/src/engine/graphics/ecs/trail2d/Trail2DSystem.js +287 -0
- package/src/engine/graphics/ecs/trail2d/makeGradientTrail.js +68 -0
- package/src/engine/graphics/ecs/water/Water.js +178 -0
- package/src/engine/graphics/ecs/water/WaterSerializationAdapter.js +65 -0
- package/src/engine/graphics/ecs/water/WaterSerializationUpgrader_0_1.js +48 -0
- package/src/engine/graphics/ecs/water/WaterSystem.js +338 -0
- package/src/engine/graphics/ecs/water2/NodeWaterShader1.js +213 -0
- package/src/engine/graphics/ecs/water2/shader/AlexWaterShader.js +243 -0
- package/src/engine/graphics/ecs/water2/shader/JBWaterShader.js +315 -0
- package/src/engine/graphics/ecs/water2/shader/testWaterShader.js +161 -0
- package/src/engine/graphics/filter/FlipArrayInPlace.js +30 -0
- package/src/engine/graphics/filter/FlipArrayViaCanvas.js +13 -0
- package/src/engine/graphics/filter/ImageFilter.js +84 -0
- package/src/engine/graphics/geometry/AttributeSpec.d.ts +8 -0
- package/src/engine/graphics/geometry/AttributeSpec.js +120 -0
- package/src/engine/graphics/geometry/BufferGeometryWrap.js +25 -0
- package/src/engine/graphics/geometry/FULL_SCREEN_TRIANGLE_GEOMETRY.js +18 -0
- package/src/engine/graphics/geometry/MikkT/AddTriToGroup.js +10 -0
- package/src/engine/graphics/geometry/MikkT/AssignRecur.js +84 -0
- package/src/engine/graphics/geometry/MikkT/AvgTSpace.js +38 -0
- package/src/engine/graphics/geometry/MikkT/Build4RuleGroups.js +96 -0
- package/src/engine/graphics/geometry/MikkT/BuildNeighborsFast.js +137 -0
- package/src/engine/graphics/geometry/MikkT/CalcTexArea.js +31 -0
- package/src/engine/graphics/geometry/MikkT/CompareSubGroups.js +26 -0
- package/src/engine/graphics/geometry/MikkT/DegenEpilogue.js +220 -0
- package/src/engine/graphics/geometry/MikkT/DegenPrologue.js +115 -0
- package/src/engine/graphics/geometry/MikkT/EvalTspace.js +128 -0
- package/src/engine/graphics/geometry/MikkT/GenerateInitialVerticesIndexList.js +48 -0
- package/src/engine/graphics/geometry/MikkT/GenerateSharedVerticesIndexList.js +184 -0
- package/src/engine/graphics/geometry/MikkT/GenerateTSpaces.js +226 -0
- package/src/engine/graphics/geometry/MikkT/GetEdge.js +45 -0
- package/src/engine/graphics/geometry/MikkT/GetNormal.js +16 -0
- package/src/engine/graphics/geometry/MikkT/GetPosition.js +25 -0
- package/src/engine/graphics/geometry/MikkT/GetTexCoord.js +18 -0
- package/src/engine/graphics/geometry/MikkT/InitTriInfo.js +180 -0
- package/src/engine/graphics/geometry/MikkT/Length.js +10 -0
- package/src/engine/graphics/geometry/MikkT/MakeIndex.js +18 -0
- package/src/engine/graphics/geometry/MikkT/MikkTSpace.js +339 -0
- package/src/engine/graphics/geometry/MikkT/MikkTSpace.spec.js +28 -0
- package/src/engine/graphics/geometry/MikkT/NormalizeSafe.js +21 -0
- package/src/engine/graphics/geometry/MikkT/NotZero.js +10 -0
- package/src/engine/graphics/geometry/MikkT/QuickSort.js +54 -0
- package/src/engine/graphics/geometry/MikkT/QuickSortEdges.js +71 -0
- package/src/engine/graphics/geometry/MikkT/SSubGroup.js +15 -0
- package/src/engine/graphics/geometry/MikkT/STSpace.js +36 -0
- package/src/engine/graphics/geometry/MikkT/buffer_geometry_ensure_tangents.js +34 -0
- package/src/engine/graphics/geometry/MikkT/buffer_geometry_generate_tangents.js +28 -0
- package/src/engine/graphics/geometry/MikkT/constants/GROUP_WITH_ANY.js +1 -0
- package/src/engine/graphics/geometry/MikkT/constants/INTERNAL_RND_SORT_SEED.js +1 -0
- package/src/engine/graphics/geometry/MikkT/constants/MARK_DEGENERATE.js +1 -0
- package/src/engine/graphics/geometry/MikkT/constants/ORIENT_PRESERVING.js +1 -0
- package/src/engine/graphics/geometry/MikkT/constants/QUAD_ONE_DEGEN_TRI.js +1 -0
- package/src/engine/graphics/geometry/MikkT/m_getNormal.js +16 -0
- package/src/engine/graphics/geometry/MikkT/m_getNumFaces.js +8 -0
- package/src/engine/graphics/geometry/MikkT/m_getNumVerticesOfFace.js +11 -0
- package/src/engine/graphics/geometry/MikkT/m_getPosition.js +20 -0
- package/src/engine/graphics/geometry/MikkT/m_getTexCoord.js +16 -0
- package/src/engine/graphics/geometry/MikkT/m_setTSpace.js +35 -0
- package/src/engine/graphics/geometry/MikkT/m_setTSpaceBasic.js +22 -0
- package/src/engine/graphics/geometry/MikkT/malloc.js +16 -0
- package/src/engine/graphics/geometry/MikkT/v3_scale_dot_sub_normalize.js +52 -0
- package/src/engine/graphics/geometry/QuadGeometry.js +13 -0
- package/src/engine/graphics/geometry/VertexDataSpec.d.ts +15 -0
- package/src/engine/graphics/geometry/VertexDataSpec.js +220 -0
- package/src/engine/graphics/geometry/aabb3_to_buffer_geometry.js +30 -0
- package/src/engine/graphics/geometry/buffered/ComputeNormals.js +101 -0
- package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.js +27 -0
- package/src/engine/graphics/geometry/buffered/computeGeometryBoundingSphereMiniball.js +17 -0
- package/src/engine/graphics/geometry/buffered/computeGeometryEquality.js +56 -0
- package/src/engine/graphics/geometry/buffered/computeGeometryHash.js +26 -0
- package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.js +16 -0
- package/src/engine/graphics/geometry/buffered/deinterleaveBufferAttribute.js +40 -0
- package/src/engine/graphics/geometry/buffered/deinterleaveBufferGeometry.js +50 -0
- package/src/engine/graphics/geometry/buffered/ensureGeometryBoundingSphere.js +19 -0
- package/src/engine/graphics/geometry/buffered/makeGeometryIndexed.js +24 -0
- package/src/engine/graphics/geometry/buffered/query/ClippingPlaneContainmentComputingVisitor.js +195 -0
- package/src/engine/graphics/geometry/buffered/query/GeometrySpatialQueryAccelerator.d.ts +25 -0
- package/src/engine/graphics/geometry/buffered/query/GeometrySpatialQueryAccelerator.js +219 -0
- package/src/engine/graphics/geometry/buffered/query/GeometryVisitor.js +87 -0
- package/src/engine/graphics/geometry/buffered/query/RaycastNearestHitComputingVisitor.js +206 -0
- package/src/engine/graphics/geometry/bvh/BVHFromGeometry.js +72 -0
- package/src/engine/graphics/geometry/bvh/buffered/BVHFromBufferGeometry.js +133 -0
- package/src/engine/graphics/geometry/bvh/buffered/BVHGeometryRaycaster.js +234 -0
- package/src/engine/graphics/geometry/bvh/buffered/BinaryBVHFromBufferGeometry.js +123 -0
- package/src/engine/graphics/geometry/bvh/buffered/IndexedTraingleBoundsComputer.js +43 -0
- package/src/engine/graphics/geometry/clipping/ClippedGeometry.js +144 -0
- package/src/engine/graphics/geometry/computeBoundingSphereFromVertexData.js +29 -0
- package/src/engine/graphics/geometry/computeMeshSurfaceArea.js +88 -0
- package/src/engine/graphics/geometry/compute_geometry_polycount.js +21 -0
- package/src/engine/graphics/geometry/decimation/SimplifyModifier.js +971 -0
- package/src/engine/graphics/geometry/instancing/InstancedMeshGroup.js +570 -0
- package/src/engine/graphics/geometry/instancing/rewriteMaterial.js +53 -0
- package/src/engine/graphics/geometry/optimization/VertexCacheOptimizer.js +437 -0
- package/src/engine/graphics/geometry/optimization/merge/merge_geometry_hierarchy.js +327 -0
- package/src/engine/graphics/geometry/optimization/merge/prototypeGeometryMerge.js +176 -0
- package/src/engine/graphics/geometry/ribbon/Quad.js +213 -0
- package/src/engine/graphics/geometry/ribbon/Ribbon.js +256 -0
- package/src/engine/graphics/geometry/ribbon/copyAttributeV3.js +12 -0
- package/src/engine/graphics/geometry/ribbon/copyAttributeValue.js +17 -0
- package/src/engine/graphics/geometry/ribbon/createRibbon.js +66 -0
- package/src/engine/graphics/geometry/ribbon/equalAttributeV3.js +13 -0
- package/src/engine/graphics/geometry/ribbon/equalAttributeValue.js +24 -0
- package/src/engine/graphics/geometry/ribbon/rotateRibbon.js +37 -0
- package/src/engine/graphics/geometry/ribbon/updateTipPosition.js +52 -0
- package/src/engine/graphics/geometry/scaleGeometryToBox.js +23 -0
- package/src/engine/graphics/geometry/skining/computeSkinnedMeshBoundingVolumes.js +33 -0
- package/src/engine/graphics/geometry/skining/computeSkinnedMeshVertices.js +140 -0
- package/src/engine/graphics/impostors/card_cluster/FacePlaneAssignment.js +30 -0
- package/src/engine/graphics/impostors/card_cluster/README.md +13 -0
- package/src/engine/graphics/impostors/octahedral/ImpostorBaker.js +349 -0
- package/src/engine/graphics/impostors/octahedral/ImpostorCaptureType.js +10 -0
- package/src/engine/graphics/impostors/octahedral/ImpostorDescription.js +87 -0
- package/src/engine/graphics/impostors/octahedral/README.md +34 -0
- package/src/engine/graphics/impostors/octahedral/bake/compute_bounding_sphere.js +45 -0
- package/src/engine/graphics/impostors/octahedral/bake/compute_bounding_sphere_radius_only.js +37 -0
- package/src/engine/graphics/impostors/octahedral/bake/prepare_bake_material.js +132 -0
- package/src/engine/graphics/impostors/octahedral/grid/HemiOctahedralUvEncoder.js +20 -0
- package/src/engine/graphics/impostors/octahedral/grid/OctahedralUvEncoder.js +25 -0
- package/src/engine/graphics/impostors/octahedral/grid/UvEncoder.js +21 -0
- package/src/engine/graphics/impostors/octahedral/prototypeBaker.js +225 -0
- package/src/engine/graphics/impostors/octahedral/shader/BakeShaderStandard.js +196 -0
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderStandard.js +306 -0
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderV0.js +365 -0
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderV1.js +74 -0
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderWireframeV0.js +134 -0
- package/src/engine/graphics/impostors/octahedral/shader/glsl/common.glsl +206 -0
- package/src/engine/graphics/impostors/octahedral/shader/glsl/v1/common.glsl +209 -0
- package/src/engine/graphics/impostors/octahedral/shader/glsl/v1/flagment.glsl +80 -0
- package/src/engine/graphics/impostors/octahedral/shader/glsl/v1/vertex.glsl +350 -0
- package/src/engine/graphics/impostors/octahedral/util/build_cutout_from_atlas_by_alpha.js +128 -0
- package/src/engine/graphics/impostors/octahedral/util/build_geometry_from_cutout_shape.js +32 -0
- package/src/engine/graphics/impostors/octahedral/util/load_mesh_for_bake.js +31 -0
- package/src/engine/graphics/impostors/octahedral/util/makeImpostorAtlasPreview.js +107 -0
- package/src/engine/graphics/loadCubeTexture.js +32 -0
- package/src/engine/graphics/loader/threejs/GLTFLoader.js +3179 -0
- package/src/engine/graphics/loader/threejs/LegacyJSONLoader.js +845 -0
- package/src/engine/graphics/makeModelView.js +47 -0
- package/src/engine/graphics/material/LoadMaterial.js +199 -0
- package/src/engine/graphics/material/SplatMaterial.js +170 -0
- package/src/engine/graphics/material/WaterMaterial.js +73 -0
- package/src/engine/graphics/material/composeCompile.js +37 -0
- package/src/engine/graphics/material/getTextureImmediate.js +19 -0
- package/src/engine/graphics/material/manager/AbstractMaterialTransformer.js +10 -0
- package/src/engine/graphics/material/manager/ManagedMaterial.js +78 -0
- package/src/engine/graphics/material/manager/ManagedTexture.js +3 -0
- package/src/engine/graphics/material/manager/MaterialManager.js +169 -0
- package/src/engine/graphics/material/manager/TextureManager.js +3 -0
- package/src/engine/graphics/material/manager/compilers/CoalesceTextures.js +70 -0
- package/src/engine/graphics/material/optimization/BUFFER_GEOMETRY_UVS.js +10 -0
- package/src/engine/graphics/material/optimization/MaterialDescriptor.js +46 -0
- package/src/engine/graphics/material/optimization/MaterialOptimizationContext.js +871 -0
- package/src/engine/graphics/material/optimization/UvContext.js +18 -0
- package/src/engine/graphics/material/optimization/is_compliant_mesh.js +71 -0
- package/src/engine/graphics/material/optimization/prepare_atlas_texture.js +23 -0
- package/src/engine/graphics/material/optimization/prototypeMaterialOptimizer.js +129 -0
- package/src/engine/graphics/micron/MICRON_GEOMETRY_FIELD.js +1 -0
- package/src/engine/graphics/micron/MICRON_URI_FIELD.js +1 -0
- package/src/engine/graphics/micron/build/MICRON_PATCH_SIZE_MAX.js +5 -0
- package/src/engine/graphics/micron/build/PatchRepresentation.js +424 -0
- package/src/engine/graphics/micron/build/buildMicronGeometryFromBufferGeometry.js +311 -0
- package/src/engine/graphics/micron/build/build_geometry_info.js +21 -0
- package/src/engine/graphics/micron/build/clustering/assignInitialPatchNeighbours.js +63 -0
- package/src/engine/graphics/micron/build/clustering/assign_patch_neighbours_from_topology.js +46 -0
- package/src/engine/graphics/micron/build/clustering/build_clustering_2.js +37 -0
- package/src/engine/graphics/micron/build/clustering/build_leaf_patches.js +326 -0
- package/src/engine/graphics/micron/build/clustering/build_leaf_patches_metis.js +76 -0
- package/src/engine/graphics/micron/build/clustering/computeBorderLengthChange.js +59 -0
- package/src/engine/graphics/micron/build/clustering/computeFaceCurvatureScore.js +57 -0
- package/src/engine/graphics/micron/build/clustering/computeOpenFaceFreedom.js +35 -0
- package/src/engine/graphics/micron/build/clustering/compute_face_connection_weight.js +35 -0
- package/src/engine/graphics/micron/build/clustering/populateOpenFaceNeighboursForPatch.js +56 -0
- package/src/engine/graphics/micron/build/clustering/validate_leaf_patch_connectivity.js +44 -0
- package/src/engine/graphics/micron/build/compute_micron_buffer_array_constructor.js +24 -0
- package/src/engine/graphics/micron/build/compute_vertex_remap_cost.js +29 -0
- package/src/engine/graphics/micron/build/debug/build_clustering_info.js +58 -0
- package/src/engine/graphics/micron/build/debug/build_graph_info.js +59 -0
- package/src/engine/graphics/micron/build/fill_patch_geometry_data.js +270 -0
- package/src/engine/graphics/micron/build/hierarchy/buildAbstractPatchHierarchy.js +196 -0
- package/src/engine/graphics/micron/build/hierarchy/build_intermediate_patch_topology.js +162 -0
- package/src/engine/graphics/micron/build/hierarchy/build_merge_graph.js +89 -0
- package/src/engine/graphics/micron/build/hierarchy/computePatchMergeScore.js +146 -0
- package/src/engine/graphics/micron/build/hierarchy/compute_patches_shared_vertex_count.js +32 -0
- package/src/engine/graphics/micron/build/hierarchy/compute_patches_shared_vertices.js +34 -0
- package/src/engine/graphics/micron/build/hierarchy/merge_patches.js +581 -0
- package/src/engine/graphics/micron/build/hierarchy/metis_cluster_clusters.js +53 -0
- package/src/engine/graphics/micron/build/hierarchy/optimize_graph_partitioning_balance.js +515 -0
- package/src/engine/graphics/micron/build/hierarchy/patch_combine.js +180 -0
- package/src/engine/graphics/micron/build/hierarchy/patch_fill_holes_by_uncollapse.js +60 -0
- package/src/engine/graphics/micron/build/hierarchy/patch_stitch_parent_border.js +320 -0
- package/src/engine/graphics/micron/build/hierarchy/qvdr_build_simplified_clusters.js +547 -0
- package/src/engine/graphics/micron/build/hierarchy/qvdr_build_tree.js +140 -0
- package/src/engine/graphics/micron/buildPatchwork.js +68 -0
- package/src/engine/graphics/micron/convert_three_object_to_micron.js +179 -0
- package/src/engine/graphics/micron/debug/VirtualGeometryStats.js +42 -0
- package/src/engine/graphics/micron/format/MICRON_GEOMETRY_PROPERTY_NAME.js +1 -0
- package/src/engine/graphics/micron/format/MicronGeometry.d.ts +21 -0
- package/src/engine/graphics/micron/format/MicronGeometry.js +334 -0
- package/src/engine/graphics/micron/format/MicronGeometryPatch.d.ts +3 -0
- package/src/engine/graphics/micron/format/MicronGeometryPatch.js +205 -0
- package/src/engine/graphics/micron/format/MicronGeometryPatchOccurance.js +50 -0
- package/src/engine/graphics/micron/format/ThreeMicronMesh.d.ts +10 -0
- package/src/engine/graphics/micron/format/ThreeMicronMesh.js +45 -0
- package/src/engine/graphics/micron/format/VirtualGeometry.js +158 -0
- package/src/engine/graphics/micron/format/micron_build_proxy_geometry.js +205 -0
- package/src/engine/graphics/micron/format/serialization/MicronGeometryBinarySerializationAdapter.js +123 -0
- package/src/engine/graphics/micron/format/serialization/MicronGeometryBinarySerializationAdapter.spec.js +63 -0
- package/src/engine/graphics/micron/format/serialization/collection/geometry_collection_serialization.js +83 -0
- package/src/engine/graphics/micron/format/serialization/collection/geometry_collection_serialization.spec.js +51 -0
- package/src/engine/graphics/micron/format/serialization/deserialize_attribute_spec.js +25 -0
- package/src/engine/graphics/micron/format/serialization/deserialize_patch.js +106 -0
- package/src/engine/graphics/micron/format/serialization/serialize_attribute_spec.js +18 -0
- package/src/engine/graphics/micron/format/serialization/serialize_patch.js +84 -0
- package/src/engine/graphics/micron/format/validate_patch_bounds.js +69 -0
- package/src/engine/graphics/micron/plugin/GLTFAssetTransformer.js +265 -0
- package/src/engine/graphics/micron/plugin/GLTF_MICRON_ID_FIELD.js +5 -0
- package/src/engine/graphics/micron/plugin/MicronRenderPlugin.d.ts +8 -0
- package/src/engine/graphics/micron/plugin/MicronRenderPlugin.js +150 -0
- package/src/engine/graphics/micron/plugin/serialization/BufferGeometrySerializationAdapter.js +176 -0
- package/src/engine/graphics/micron/plugin/shaded_geometry/MicronShadedGeometryRenderAdapter.js +216 -0
- package/src/engine/graphics/micron/prototypeMicronProxyBuild.js +227 -0
- package/src/engine/graphics/micron/prototypeVirtualGeometry.js +911 -0
- package/src/engine/graphics/micron/render/PatchCacheKey.js +79 -0
- package/src/engine/graphics/micron/render/VIRTUAL_MESH_FLAG.d.ts +1 -0
- package/src/engine/graphics/micron/render/VIRTUAL_MESH_FLAG.js +1 -0
- package/src/engine/graphics/micron/render/VirtualGeometryBuilder.js +207 -0
- package/src/engine/graphics/micron/render/approximateTriangleArea.js +25 -0
- package/src/engine/graphics/micron/render/culling/PatchCullingSystem.js +129 -0
- package/src/engine/graphics/micron/render/instanced/AttributeDataTexture.js +294 -0
- package/src/engine/graphics/micron/render/instanced/PatchDataTextures.js +325 -0
- package/src/engine/graphics/micron/render/instanced/ThreeInstancedAdapter.js +175 -0
- package/src/engine/graphics/micron/render/instanced/shader/constants.js +3 -0
- package/src/engine/graphics/micron/render/instanced/shader/gen_micron_vertex_attribute_texture_name.js +8 -0
- package/src/engine/graphics/micron/render/instanced/shader/shader_rewrite_standard.js +250 -0
- package/src/engine/graphics/micron/render/makeThreeMeshFromVirtualGeometry.js +37 -0
- package/src/engine/graphics/micron/render/refinement/ActivePatchFlags.js +8 -0
- package/src/engine/graphics/micron/render/refinement/ActivePatchList.js +241 -0
- package/src/engine/graphics/micron/render/refinement/ActivePatchRecord.js +154 -0
- package/src/engine/graphics/micron/render/refinement/RefinementSpec.js +84 -0
- package/src/engine/graphics/micron/render/refinement/get_geometry_patch_cut.js +133 -0
- package/src/engine/graphics/micron/render/refinement/is_patch_facing_back.js +43 -0
- package/src/engine/graphics/micron/render/refinement/is_patch_visible.js +37 -0
- package/src/engine/graphics/micron/render/v1/MaterialContext.js +150 -0
- package/src/engine/graphics/micron/render/v1/MaterialVertexSpec.js +115 -0
- package/src/engine/graphics/micron/render/v1/MicronRenderContext.js +145 -0
- package/src/engine/graphics/micron/render/v1/ThreeVirtualGeometryAdapter.js +255 -0
- package/src/engine/graphics/micron/render/v1/VGThreeRenderer.js +142 -0
- package/src/engine/graphics/micron/render/v1/getTransformedPositionsCached.js +54 -0
- package/src/engine/graphics/micron/simplifyGeometry.js +26 -0
- package/src/engine/graphics/micron/util/patchToBufferGeometry.js +19 -0
- package/src/engine/graphics/particles/ParticleEmitterLibrary.js +87 -0
- package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.d.ts +7 -0
- package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.js +261 -0
- package/src/engine/graphics/particles/node-based/codegen/CodeContext.js +50 -0
- package/src/engine/graphics/particles/node-based/codegen/CodeGenerator.js +19 -0
- package/src/engine/graphics/particles/node-based/codegen/glsl/GLSLCodeGenerator.js +249 -0
- package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeInputName.js +8 -0
- package/src/engine/graphics/particles/node-based/codegen/glsl/genAttributeOutputName.js +8 -0
- package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.js +21 -0
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_curlNoise.js +58 -0
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/curl/glslm_snoiseVector3.js +44 -0
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v3.js +28 -0
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_mod289_v4.js +28 -0
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_permute.js +39 -0
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_snoise.js +124 -0
- package/src/engine/graphics/particles/node-based/codegen/glsl/modules/noise/simplex/3d/glslm_tylorInvSqrt.js +30 -0
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModule.js +125 -0
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleReference.js +64 -0
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionModuleRegistry.js +275 -0
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionParameterSpecification.js +59 -0
- package/src/engine/graphics/particles/node-based/codegen/modules/FunctionSignature.js +57 -0
- package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.js +176 -0
- package/src/engine/graphics/particles/node-based/nodes/FloatConstant.js +31 -0
- package/src/engine/graphics/particles/node-based/nodes/ParticleDataTypes.js +13 -0
- package/src/engine/graphics/particles/node-based/nodes/ReadFloatUniform.js +26 -0
- package/src/engine/graphics/particles/node-based/nodes/ReadPosition.js +5 -0
- package/src/engine/graphics/particles/node-based/nodes/ReadVelocity.js +14 -0
- package/src/engine/graphics/particles/node-based/nodes/ShaderNode.js +73 -0
- package/src/engine/graphics/particles/node-based/nodes/Vector3Constant.js +30 -0
- package/src/engine/graphics/particles/node-based/nodes/Vector3Merge.js +30 -0
- package/src/engine/graphics/particles/node-based/nodes/Vector3Split.js +32 -0
- package/src/engine/graphics/particles/node-based/nodes/WriteVelocity.js +15 -0
- package/src/engine/graphics/particles/node-based/nodes/attribute/ReadVector3Attribute.js +27 -0
- package/src/engine/graphics/particles/node-based/nodes/attribute/WriteVector3Attribute.js +25 -0
- package/src/engine/graphics/particles/node-based/nodes/math/AddFloatNode.js +26 -0
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Add.js +25 -0
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Divide.js +25 -0
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Multiply.js +25 -0
- package/src/engine/graphics/particles/node-based/nodes/math/Vector3Subtract.js +25 -0
- package/src/engine/graphics/particles/node-based/nodes/noise/CurlNoiseNode.js +39 -0
- package/src/engine/graphics/particles/node-based/particle/GeometryAttributes.js +10 -0
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeBinding.js +14 -0
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.js +60 -0
- package/src/engine/graphics/particles/node-based/particle/ParticleSpecification.js +95 -0
- package/src/engine/graphics/particles/node-based/populateFunctionModuleRegistry.js +23 -0
- package/src/engine/graphics/particles/node-based/populateNodeRegistry.js +48 -0
- package/src/engine/graphics/particles/node-based/rendering/AbstractParticleRenderer.js +37 -0
- package/src/engine/graphics/particles/node-based/rendering/ParticleRenderCommand.js +37 -0
- package/src/engine/graphics/particles/node-based/rendering/ParticleRenderSpecification.js +19 -0
- package/src/engine/graphics/particles/node-based/rendering/billboard/BillboardParticleRenderer.js +170 -0
- package/src/engine/graphics/particles/node-based/rendering/billboard/ParticleBillboardShader.js +150 -0
- package/src/engine/graphics/particles/node-based/simulation/EmitterAttributeData.js +107 -0
- package/src/engine/graphics/particles/node-based/simulation/GLDataBuffer.js +105 -0
- package/src/engine/graphics/particles/node-based/simulation/GLSLParticleSimulator.js +6 -0
- package/src/engine/graphics/particles/node-based/simulation/GLSLSimulationShader.js +192 -0
- package/src/engine/graphics/particles/node-based/simulation/TransformFeedback.js +418 -0
- package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.js +157 -0
- package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.spec.js +70 -0
- package/src/engine/graphics/particles/particular/engine/ParticularEngine.js +267 -0
- package/src/engine/graphics/particles/particular/engine/TF.js +250 -0
- package/src/engine/graphics/particles/particular/engine/emitter/EmissionFromType.js +8 -0
- package/src/engine/graphics/particles/particular/engine/emitter/EmissionShapeType.js +9 -0
- package/src/engine/graphics/particles/particular/engine/emitter/PARTICLE_ATTRIBUTES.js +12 -0
- package/src/engine/graphics/particles/particular/engine/emitter/PARTICULAR_PARTICLE_SPECIFICATION.js +84 -0
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts +2 -0
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +1224 -0
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.spec.js +47 -0
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitterFlag.js +67 -0
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.js +400 -0
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.spec.js +75 -0
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleParameters.js +4 -0
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.js +606 -0
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.spec.js +188 -0
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleRenderProfile.js +18 -0
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleRendererType.js +10 -0
- package/src/engine/graphics/particles/particular/engine/emitter/computeEmissionFunction.js +37 -0
- package/src/engine/graphics/particles/particular/engine/emitter/distance_to_camera.js +25 -0
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParameterLookupTableSerializationAdapter.js +105 -0
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.js +165 -0
- package/src/engine/graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.js +107 -0
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.d.ts +15 -0
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.js +452 -0
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTable.spec.js +215 -0
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterLookupTableFlags.js +6 -0
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.js +133 -0
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.spec.js +75 -0
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterSheet.js +274 -0
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrack.js +77 -0
- package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.js +97 -0
- package/src/engine/graphics/particles/particular/engine/parameter/ParticleParameter.js +232 -0
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGBA_LUT_HEATMAP_IR.js +11 -0
- package/src/engine/graphics/particles/particular/engine/renderers/ParticleRenderer.js +28 -0
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/BILLBOARD_PARTICLE_SPECIFICATION.js +24 -0
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/ParticleBillboardMaterial.js +496 -0
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticlePool.js +27 -0
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/SoftBillboardParticleRenderer.js +80 -0
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/prototypeBillboardRenderer.js +164 -0
- package/src/engine/graphics/particles/particular/engine/shader/MaterialRecord.js +43 -0
- package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.js +462 -0
- package/src/engine/graphics/particles/particular/engine/shader/debugAtlas.js +14 -0
- package/src/engine/graphics/particles/particular/engine/simulator/AbstractSimulationStep.js +61 -0
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepApplyForce.js +56 -0
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseAcceleration.js +84 -0
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepCurlNoiseVelocity.js +79 -0
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepDefinition.js +44 -0
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepFixedPhysics.js +104 -0
- package/src/engine/graphics/particles/particular/engine/simulator/SimulationStepType.js +11 -0
- package/src/engine/graphics/particles/particular/engine/simulator/update_parameters.js +41 -0
- package/src/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.js +234 -0
- package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.js +188 -0
- package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.d.ts +16 -0
- package/src/engine/graphics/particles/particular/engine/utils/volume/AttributeValue.js +201 -0
- package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.d.ts +29 -0
- package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.js +625 -0
- package/src/engine/graphics/particles/particular/engine/utils/volume/SamplingFunctionKind.d.ts +4 -0
- package/src/engine/graphics/particles/particular/engine/utils/volume/SamplingFunctionKind.js +8 -0
- package/src/engine/graphics/particles/particular/engine/utils/volume/lut_to_sampler.js +27 -0
- package/src/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +1240 -0
- package/src/engine/graphics/particles/particular/group/Operation.js +18 -0
- package/src/engine/graphics/particles/particular/group/OperationType.js +9 -0
- package/src/engine/graphics/particles/particular/group/ParticleAttribute.js +25 -0
- package/src/engine/graphics/particles/particular/group/ParticleAttributeType.js +11 -0
- package/src/engine/graphics/particles/particular/group/ParticleDataType.js +10 -0
- package/src/engine/graphics/particles/particular/group/ParticleGroup.js +637 -0
- package/src/engine/graphics/particles/particular/group/ParticleGroup.spec.js +270 -0
- package/src/engine/graphics/particles/particular/group/ParticleSpecification.js +48 -0
- package/src/engine/graphics/particles/particular/group/itemSizeFromAttributeType.js +20 -0
- package/src/engine/graphics/particles/particular/group/optimizeCommandQueue.js +162 -0
- package/src/engine/graphics/particles/particular/group/typedArrayConstructorFromDataType.js +19 -0
- package/src/engine/graphics/postprocess/Postprocess.js +284 -0
- package/src/engine/graphics/postprocess/threejs/Mirror.js +330 -0
- package/src/engine/graphics/postprocess/threejs/WaterShader.js +306 -0
- package/src/engine/graphics/postprocess/threejs/postprocessing/AdaptiveToneMappingPass.js +338 -0
- package/src/engine/graphics/postprocess/threejs/postprocessing/BloomPass.js +132 -0
- package/src/engine/graphics/postprocess/threejs/postprocessing/BokehPass.js +115 -0
- package/src/engine/graphics/postprocess/threejs/postprocessing/ClearMaskPass.js +23 -0
- package/src/engine/graphics/postprocess/threejs/postprocessing/DotScreenPass.js +60 -0
- package/src/engine/graphics/postprocess/threejs/postprocessing/EffectComposer.js +150 -0
- package/src/engine/graphics/postprocess/threejs/postprocessing/FilmPass.js +61 -0
- package/src/engine/graphics/postprocess/threejs/postprocessing/GlitchPass.js +117 -0
- package/src/engine/graphics/postprocess/threejs/postprocessing/MaskPass.js +69 -0
- package/src/engine/graphics/postprocess/threejs/postprocessing/RenderPass.js +63 -0
- package/src/engine/graphics/postprocess/threejs/postprocessing/SMAAPass.js +187 -0
- package/src/engine/graphics/postprocess/threejs/postprocessing/SavePass.js +67 -0
- package/src/engine/graphics/postprocess/threejs/postprocessing/ShaderPass.js +89 -0
- package/src/engine/graphics/postprocess/threejs/postprocessing/TexturePass.js +50 -0
- package/src/engine/graphics/postprocess/threejs/shaders/BokehShader.js +117 -0
- package/src/engine/graphics/postprocess/threejs/shaders/ConvolutionShader.js +106 -0
- package/src/engine/graphics/postprocess/threejs/shaders/CopyShader.js +47 -0
- package/src/engine/graphics/postprocess/threejs/shaders/FXAAShader.js +90 -0
- package/src/engine/graphics/postprocess/threejs/shaders/GammaCorrectionShader.js +52 -0
- package/src/engine/graphics/postprocess/threejs/shaders/LuminosityShader.js +51 -0
- package/src/engine/graphics/postprocess/threejs/shaders/SMAAShader.js +468 -0
- package/src/engine/graphics/postprocess/threejs/shaders/SSAOShader.js +230 -0
- package/src/engine/graphics/postprocess/threejs/shaders/ToneMapShader.js +76 -0
- package/src/engine/graphics/render/Lines.js +122 -0
- package/src/engine/graphics/render/RenderPassType.js +8 -0
- package/src/engine/graphics/render/RendererPool.js +48 -0
- package/src/engine/graphics/render/buffer/FrameBuffer.js +103 -0
- package/src/engine/graphics/render/buffer/FrameBufferManager.js +228 -0
- package/src/engine/graphics/render/buffer/RenderGraph.js +177 -0
- package/src/engine/graphics/render/buffer/RenderGraphUtils.js +32 -0
- package/src/engine/graphics/render/buffer/buffers/ColorAndDepthFrameBuffer.js +62 -0
- package/src/engine/graphics/render/buffer/buffers/DepthFrameBuffer.js +101 -0
- package/src/engine/graphics/render/buffer/buffers/NormalFrameBuffer.js +143 -0
- package/src/engine/graphics/render/buffer/buffers/prototypeNormalFrameBuffer.js +396 -0
- package/src/engine/graphics/render/buffer/conection/ProgramValueSlotConnection.js +43 -0
- package/src/engine/graphics/render/buffer/conection/ProgramValueSlotConnectionEndpoint.js +39 -0
- package/src/engine/graphics/render/buffer/conection/ProgramValueSlotConnectionValidator.js +30 -0
- package/src/engine/graphics/render/buffer/executor/FrameBufferPool.js +127 -0
- package/src/engine/graphics/render/buffer/executor/RenderGraphExecutor.js +261 -0
- package/src/engine/graphics/render/buffer/executor/RenderProgramCommandType.js +5 -0
- package/src/engine/graphics/render/buffer/node/DeferredRenderProgramDefinition.js +142 -0
- package/src/engine/graphics/render/buffer/node/RenderProgramDefinition.js +21 -0
- package/src/engine/graphics/render/buffer/node/RenderProgramInstance.js +30 -0
- package/src/engine/graphics/render/buffer/node/ScreenSpaceRenderProgramDefinition.js +118 -0
- package/src/engine/graphics/render/buffer/simple-fx/DepthLimitedBlur.js +191 -0
- package/src/engine/graphics/render/buffer/simple-fx/SimplePostProcessEffect.js +10 -0
- package/src/engine/graphics/render/buffer/simple-fx/SimplePostProcessEffectsManager.js +27 -0
- package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.d.ts +8 -0
- package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js +384 -0
- package/src/engine/graphics/render/buffer/simple-fx/ao/SAOShader.js +186 -0
- package/src/engine/graphics/render/buffer/simple-fx/taa/TemporalSupersamplingRenderPlugin.js +95 -0
- package/src/engine/graphics/render/buffer/simple-fx/taa/prototypeTAA.js +61 -0
- package/src/engine/graphics/render/buffer/slot/ProgramSlotValue.js +35 -0
- package/src/engine/graphics/render/buffer/slot/ProgramValueDirectionKind.js +7 -0
- package/src/engine/graphics/render/buffer/slot/ProgramValueSlotDefinition.js +33 -0
- package/src/engine/graphics/render/buffer/slot/ProgramValueType.js +11 -0
- package/src/engine/graphics/render/buffer/slot/parameter/ProgramValueSlotParameter.js +61 -0
- package/src/engine/graphics/render/buffer/slot/parameter/ProgramValueSlotParameter.spec.js +21 -0
- package/src/engine/graphics/render/buffer/slot/parameter/ProgramValueSlotParameterSet.js +44 -0
- package/src/engine/graphics/render/buffer/slot/parameter/ProgramValueSlotParameterType.js +12 -0
- package/src/engine/graphics/render/buffer/slot/parameter/RenderTargetParameters.js +9 -0
- package/src/engine/graphics/render/forward_plus/LightManager.js +1157 -0
- package/src/engine/graphics/render/forward_plus/LightManager.spec.js +94 -0
- package/src/engine/graphics/render/forward_plus/PointLightData.js +57 -0
- package/src/engine/graphics/render/forward_plus/SPECIFICATION.md +155 -0
- package/src/engine/graphics/render/forward_plus/assign_cluster.js +125 -0
- package/src/engine/graphics/render/forward_plus/cluster/compute_cluster_planes_from_points.js +98 -0
- package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash.js +17 -0
- package/src/engine/graphics/render/forward_plus/cluster/compute_light_data_hash_0.js +17 -0
- package/src/engine/graphics/render/forward_plus/cluster/read_plane_pair.js +29 -0
- package/src/engine/graphics/render/forward_plus/cluster/write_cluster_planes.js +43 -0
- package/src/engine/graphics/render/forward_plus/cluster/write_cluster_planes.spec.js +79 -0
- package/src/engine/graphics/render/forward_plus/computeFrustumCorners.js +69 -0
- package/src/engine/graphics/render/forward_plus/data/NumericType.js +9 -0
- package/src/engine/graphics/render/forward_plus/data/TextureBackedMemoryRegion.js +279 -0
- package/src/engine/graphics/render/forward_plus/data/channelCountToThreIntegerTextureType.js +16 -0
- package/src/engine/graphics/render/forward_plus/data/computeDataType.js +36 -0
- package/src/engine/graphics/render/forward_plus/data/computeThreeTextureFormat.js +18 -0
- package/src/engine/graphics/render/forward_plus/data/computeThreeTextureInternalFormatFromDataType.js +63 -0
- package/src/engine/graphics/render/forward_plus/data/computeThreeTextureTypeFromDataType.js +41 -0
- package/src/engine/graphics/render/forward_plus/debug/LightClusterVolumeMaterial.js +99 -0
- package/src/engine/graphics/render/forward_plus/debug/buildLightClusterWidget.js +67 -0
- package/src/engine/graphics/render/forward_plus/debug/createLayerSwitcher.js +46 -0
- package/src/engine/graphics/render/forward_plus/debug/createScreenGrid.js +327 -0
- package/src/engine/graphics/render/forward_plus/materials/FP_INJECTION_POINT_ACCUMULATION.js +1 -0
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_ACCUMULATION.js +40 -0
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_APPLY_DECALS.js +70 -0
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_DECODE_PARS.js +55 -0
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_LOAD_METADATA.js +11 -0
- package/src/engine/graphics/render/forward_plus/materials/FP_SHADER_CHUNK_PREAMBLE.js +34 -0
- package/src/engine/graphics/render/forward_plus/materials/FPlusDebugMaterial.js +173 -0
- package/src/engine/graphics/render/forward_plus/materials/FPlusStandardMaterial.js +393 -0
- package/src/engine/graphics/render/forward_plus/materials/ForwardPlusThreeMaterial.js +146 -0
- package/src/engine/graphics/render/forward_plus/materials/ForwardPlusThreeShaderMaterial.js +31 -0
- package/src/engine/graphics/render/forward_plus/materials/fp_build_fragment_shader.js +60 -0
- package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_lighting_shared.js +38 -0
- package/src/engine/graphics/render/forward_plus/materials/fp_build_vertex_shader.js +30 -0
- package/src/engine/graphics/render/forward_plus/model/AbstractLight.js +70 -0
- package/src/engine/graphics/render/forward_plus/model/Decal.js +117 -0
- package/src/engine/graphics/render/forward_plus/model/DirectionalLight.js +40 -0
- package/src/engine/graphics/render/forward_plus/model/PointLight.js +105 -0
- package/src/engine/graphics/render/forward_plus/model/SpotLight.js +143 -0
- package/src/engine/graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.d.ts +5 -0
- package/src/engine/graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.js +91 -0
- package/src/engine/graphics/render/forward_plus/plugin/MaterialTransformer.js +130 -0
- package/src/engine/graphics/render/forward_plus/plugin/isLitMaterial.js +8 -0
- package/src/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +1203 -0
- package/src/engine/graphics/render/forward_plus/prototype/prototypeLightManager.js +1643 -0
- package/src/engine/graphics/render/forward_plus/query/analytical_triplanar_corner_mapping.js +8 -0
- package/src/engine/graphics/render/forward_plus/query/cube_mapping.js +38 -0
- package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.js +88 -0
- package/src/engine/graphics/render/forward_plus/query/point_light_inside_volume.js +74 -0
- package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_objects.js +133 -0
- package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_texture.js +166 -0
- package/src/engine/graphics/render/forward_plus/query/spot_light_inside_volume.js +33 -0
- package/src/engine/graphics/render/forward_plus/read_frustum_corner.js +14 -0
- package/src/engine/graphics/render/forward_plus/sort_decal_data.js +102 -0
- package/src/engine/graphics/render/forward_plus/testClusterEquality.js +22 -0
- package/src/engine/graphics/render/frame_graph/GraphNode.js +22 -0
- package/src/engine/graphics/render/frame_graph/IRenderContext.js +8 -0
- package/src/engine/graphics/render/frame_graph/RenderGraph.js +409 -0
- package/src/engine/graphics/render/frame_graph/RenderGraphBuilder.js +77 -0
- package/src/engine/graphics/render/frame_graph/RenderPass.js +50 -0
- package/src/engine/graphics/render/frame_graph/RenderPassFlags.js +6 -0
- package/src/engine/graphics/render/frame_graph/RenderPassNode.js +103 -0
- package/src/engine/graphics/render/frame_graph/RenderPassResources.js +65 -0
- package/src/engine/graphics/render/frame_graph/ResourceEntry.js +77 -0
- package/src/engine/graphics/render/frame_graph/ResourceNode.js +23 -0
- package/src/engine/graphics/render/frame_graph/TextureDescriptor.js +64 -0
- package/src/engine/graphics/render/frame_graph/sample/deferred/GBufferDrawPass.js +33 -0
- package/src/engine/graphics/render/frame_graph/sample/deferred/LightingPass.js +24 -0
- package/src/engine/graphics/render/frame_graph/sample/deferred/run.js +31 -0
- package/src/engine/graphics/render/frame_graph/sample/meep-v1/ColorDepthPass.js +38 -0
- package/src/engine/graphics/render/frame_graph/sample/meep-v1/OutlinePass.js +9 -0
- package/src/engine/graphics/render/frame_graph/sample/meep-v1/SSAOPass.js +5 -0
- package/src/engine/graphics/render/frame_graph/sample/meep-v1/render.js +7 -0
- package/src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.js +5 -0
- package/src/engine/graphics/render/gizmo/Gizmo.d.ts +3 -0
- package/src/engine/graphics/render/gizmo/Gizmo.js +3 -0
- package/src/engine/graphics/render/gizmo/GizmoRenderingPlugin.d.ts +5 -0
- package/src/engine/graphics/render/gizmo/GizmoRenderingPlugin.js +25 -0
- package/src/engine/graphics/render/gizmo/GizmoShapeRenderingInterface.d.ts +13 -0
- package/src/engine/graphics/render/gizmo/GizmoShapeRenderingInterface.js +176 -0
- package/src/engine/graphics/render/gizmo/prototypeGizmo.js +29 -0
- package/src/engine/graphics/render/layers/RenderLayer.d.ts +19 -0
- package/src/engine/graphics/render/layers/RenderLayer.js +160 -0
- package/src/engine/graphics/render/layers/RenderLayerManager.d.ts +17 -0
- package/src/engine/graphics/render/layers/RenderLayerManager.js +162 -0
- package/src/engine/graphics/render/layers/RenderLayerManagerState.js +52 -0
- package/src/engine/graphics/render/layers/RenderLayerState.d.ts +3 -0
- package/src/engine/graphics/render/layers/RenderLayerState.js +29 -0
- package/src/engine/graphics/render/layers/RenderLayerUtils.js +105 -0
- package/src/engine/graphics/render/staged/PostProcessingEffect.js +32 -0
- package/src/engine/graphics/render/staged/PostProcessingEffectInputCoupling.js +41 -0
- package/src/engine/graphics/render/staged/PostProcessingStack.js +29 -0
- package/src/engine/graphics/render/staged/StagedRenderer.js +161 -0
- package/src/engine/graphics/render/staged/StandardRenderOutputs.js +20 -0
- package/src/engine/graphics/render/utils/ThreeBypassRenderer.js +136 -0
- package/src/engine/graphics/render/utils/renderScreenSpace.js +32 -0
- package/src/engine/graphics/render/utils/renderTextureToScreenQuad.js +29 -0
- package/src/engine/graphics/render/view/CameraView.js +196 -0
- package/src/engine/graphics/render/view/CameraViewFlags.js +9 -0
- package/src/engine/graphics/render/view/CameraViewManager.js +116 -0
- package/src/engine/graphics/render/visibility/IncrementalDeltaSet.d.ts +24 -0
- package/src/engine/graphics/render/visibility/IncrementalDeltaSet.js +305 -0
- package/src/engine/graphics/render/visibility/IncrementalDeltaSet.spec.js +101 -0
- package/src/engine/graphics/render/visibility/VisibilityComputer.js +118 -0
- package/src/engine/graphics/render/visibility/VisibilityFilter.js +36 -0
- package/src/engine/graphics/render/visibility/hiz/buffer/HierarchicalZBuffer.js +202 -0
- package/src/engine/graphics/render/visibility/hiz/buffer/ReductionShader.js +51 -0
- package/src/engine/graphics/render/visibility/hiz/buildCanvasViewFromTexture.js +258 -0
- package/src/engine/graphics/render/visibility/hiz/prototypeHiZ.js +444 -0
- package/src/engine/graphics/render/visibility/hiz/query/BatchOcclusionQuery.js +174 -0
- package/src/engine/graphics/render/visibility/hiz/query/QueryShader.js +173 -0
- package/src/engine/graphics/render/webgpu/sample/MeshInstance.js +108 -0
- package/src/engine/graphics/render/webgpu/sample/fragmentDeferredRendering.wgsl +71 -0
- package/src/engine/graphics/render/webgpu/sample/fragmentGBuffersDebugView.wgsl +39 -0
- package/src/engine/graphics/render/webgpu/sample/fragmentWriteGBuffers.wgsl +21 -0
- package/src/engine/graphics/render/webgpu/sample/lightUpdate.wgsl +41 -0
- package/src/engine/graphics/render/webgpu/sample/main.js +604 -0
- package/src/engine/graphics/render/webgpu/sample/vertexTextureQuad.wgsl +9 -0
- package/src/engine/graphics/render/webgpu/sample/vertexWriteGBuffers.wgsl +30 -0
- package/src/engine/graphics/sh3/LightProbeVolume.js +588 -0
- package/src/engine/graphics/sh3/README.md +7 -0
- package/src/engine/graphics/sh3/SH3VisualisationMaterial.js +80 -0
- package/src/engine/graphics/sh3/path_tracer/GeometryBVHBatched.js +265 -0
- package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.js +89 -0
- package/src/engine/graphics/sh3/path_tracer/PathTracer.js +576 -0
- package/src/engine/graphics/sh3/path_tracer/apply_texture_clamping_to_coordinate.js +22 -0
- package/src/engine/graphics/sh3/path_tracer/compute_triangle_group_aabb3.js +36 -0
- package/src/engine/graphics/sh3/path_tracer/getBiasedNormalSample.js +55 -0
- package/src/engine/graphics/sh3/path_tracer/make_one_vector3.js +7 -0
- package/src/engine/graphics/sh3/path_tracer/make_sky_hosek.js +44 -0
- package/src/engine/graphics/sh3/path_tracer/make_sky_rtiw.js +17 -0
- package/src/engine/graphics/sh3/path_tracer/make_zero_vector3.js +7 -0
- package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +669 -0
- package/src/engine/graphics/sh3/path_tracer/random_in_hemisphere.js +39 -0
- package/src/engine/graphics/sh3/path_tracer/ray_hit_apply_transform.js +57 -0
- package/src/engine/graphics/sh3/path_tracer/ray_reflect.js +27 -0
- package/src/engine/graphics/sh3/path_tracer/sample_triangle_attribute.js +35 -0
- package/src/engine/graphics/sh3/path_tracer/vec3_uint8_to_float.js +12 -0
- package/src/engine/graphics/sh3/prototypeSH3Probe.js +432 -0
- package/src/engine/graphics/sh3/sky/hosek/README.md +4 -0
- package/src/engine/graphics/sh3/sky/hosek/prototype_hosek.js +71 -0
- package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.js +4171 -0
- package/src/engine/graphics/sh3/visualise_probe.js +40 -0
- package/src/engine/graphics/shaders/AlphaBlendShader.js +44 -0
- package/src/engine/graphics/shaders/AmbientOcclusionShader.js +131 -0
- package/src/engine/graphics/shaders/ClearShader.js +30 -0
- package/src/engine/graphics/shaders/CopyShader.js +50 -0
- package/src/engine/graphics/shaders/DenoiseShader.js +119 -0
- package/src/engine/graphics/shaders/GaussianBlurShader.js +79 -0
- package/src/engine/graphics/shaders/GaussianGlowShader.js +83 -0
- package/src/engine/graphics/shaders/NormalMapShader.js +62 -0
- package/src/engine/graphics/shaders/NormalMapShader2.js +93 -0
- package/src/engine/graphics/shaders/ScreenSpaceQuadShader.js +38 -0
- package/src/engine/graphics/shaders/ScreenSpaceShader.js +102 -0
- package/src/engine/graphics/shaders/SoftOutlineShader.js +113 -0
- package/src/engine/graphics/shaders/TerrainShader.js +397 -0
- package/src/engine/graphics/shaders/WaterShader.js +152 -0
- package/src/engine/graphics/shaders/glsl_gen_swizzled_read.js +39 -0
- package/src/engine/graphics/shaders/lib/ShaderChunks.js +66 -0
- package/src/engine/graphics/shadows/README.md +6 -0
- package/src/engine/graphics/shadows/ShadowMapRenderer.js +220 -0
- package/src/engine/graphics/shadows/testShadowMapRendering.js +192 -0
- package/src/engine/graphics/shadows/vsm.glsl.js +41 -0
- package/src/engine/graphics/texture/Canvas2Sampler2D.js +40 -0
- package/src/engine/graphics/texture/CanvasClone.js +24 -0
- package/src/engine/graphics/texture/CheckersTexture.js +28 -0
- package/src/engine/graphics/texture/CheckersTextureURI.js +5 -0
- package/src/engine/graphics/texture/ExportCanvasAsPNG.js +7 -0
- package/src/engine/graphics/texture/ImageLoader.js +33 -0
- package/src/engine/graphics/texture/atlas/AbstractTextureAtlas.js +31 -0
- package/src/engine/graphics/texture/atlas/AtlasLookupTexture.js +86 -0
- package/src/engine/graphics/texture/atlas/AtlasPatch.js +157 -0
- package/src/engine/graphics/texture/atlas/AtlasPatchFlag.js +7 -0
- package/src/engine/graphics/texture/atlas/CachingTextureAtlas.js +303 -0
- package/src/engine/graphics/texture/atlas/ManagedTextureAtlas.js +222 -0
- package/src/engine/graphics/texture/atlas/ReferencedTextureAtlas.js +83 -0
- package/src/engine/graphics/texture/atlas/TextureAtlas.js +562 -0
- package/src/engine/graphics/texture/atlas/TextureAtlas.spec.js +273 -0
- package/src/engine/graphics/texture/atlas/TextureAtlasDebugger.js +129 -0
- package/src/engine/graphics/texture/atlas/gpu/WebGLTextureAtlas.js +181 -0
- package/src/engine/graphics/texture/channelCountToThreeTextureFormat.js +21 -0
- package/src/engine/graphics/texture/cubemap/buildCubeURLs.js +13 -0
- package/src/engine/graphics/texture/cubemap/load_environment_map.d.ts +8 -0
- package/src/engine/graphics/texture/cubemap/load_environment_map.js +163 -0
- package/src/engine/graphics/texture/formatToChannelCount.js +21 -0
- package/src/engine/graphics/texture/noise_octaves.js +33 -0
- package/src/engine/graphics/texture/normalized_internal_format.js +48 -0
- package/src/engine/graphics/texture/sampler/BlendingType.js +12 -0
- package/src/engine/graphics/texture/sampler/HarmonicDiffusionGrid.js +145 -0
- package/src/engine/graphics/texture/sampler/HarmonicDiffusionGrid.spec.js +99 -0
- package/src/engine/graphics/texture/sampler/SampleTraverser.js +165 -0
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts +28 -0
- package/src/engine/graphics/texture/sampler/Sampler2D.js +1683 -0
- package/src/engine/graphics/texture/sampler/Sampler2D.spec.js +292 -0
- package/src/engine/graphics/texture/sampler/Sampler2D2Canvas.js +93 -0
- package/src/engine/graphics/texture/sampler/Sampler2D2Texture.js +53 -0
- package/src/engine/graphics/texture/sampler/TextureBinaryBufferSerializer.js +168 -0
- package/src/engine/graphics/texture/sampler/TextureBinaryBufferSerializer.spec.js +38 -0
- package/src/engine/graphics/texture/sampler/bicubic.js +59 -0
- package/src/engine/graphics/texture/sampler/blendingType2Three.js +28 -0
- package/src/engine/graphics/texture/sampler/convertSampler2D2DataURL.js +24 -0
- package/src/engine/graphics/texture/sampler/convertTexture2Sampler2D.js +84 -0
- package/src/engine/graphics/texture/sampler/copy_Sampler2D_channel_data.js +73 -0
- package/src/engine/graphics/texture/sampler/differenceSampler.js +31 -0
- package/src/engine/graphics/texture/sampler/distanceField.js +411 -0
- package/src/engine/graphics/texture/sampler/distanceField.spec.js +184 -0
- package/src/engine/graphics/texture/sampler/downloadSamplerAsPNG.js +15 -0
- package/src/engine/graphics/texture/sampler/downsampleSample2D.spec.js +17 -0
- package/src/engine/graphics/texture/sampler/filter/box.js +16 -0
- package/src/engine/graphics/texture/sampler/filter/cubic2.js +32 -0
- package/src/engine/graphics/texture/sampler/filter/gaussian.js +16 -0
- package/src/engine/graphics/texture/sampler/filter/kaiser_1.js +19 -0
- package/src/engine/graphics/texture/sampler/filter/kaiser_bessel_window.js +19 -0
- package/src/engine/graphics/texture/sampler/filter/mitchell.js +55 -0
- package/src/engine/graphics/texture/sampler/filter/sampler2d_scale_down_generic.js +109 -0
- package/src/engine/graphics/texture/sampler/filter/triangle.js +19 -0
- package/src/engine/graphics/texture/sampler/genericResampleSampler2D.js +65 -0
- package/src/engine/graphics/texture/sampler/loadSampler2D.js +36 -0
- package/src/engine/graphics/texture/sampler/mergeSampler2D.js +96 -0
- package/src/engine/graphics/texture/sampler/prototypeSamplerFiltering.js +353 -0
- package/src/engine/graphics/texture/sampler/resize/sampler2d_downsample_mipmap.js +66 -0
- package/src/engine/graphics/texture/sampler/rgbaData2valueSampler2D.js +38 -0
- package/src/engine/graphics/texture/sampler/sample2d_write_to_canvas_raw.js +38 -0
- package/src/engine/graphics/texture/sampler/sampler2DToFloat32Texture.js +39 -0
- package/src/engine/graphics/texture/sampler/sampler2D_scale_down_linear.js +84 -0
- package/src/engine/graphics/texture/sampler/sampler2_d_scale_down_lanczos.js +192 -0
- package/src/engine/graphics/texture/sampler/sampler2d_channel_linear_transform.js +68 -0
- package/src/engine/graphics/texture/sampler/sampler2d_combine.js +67 -0
- package/src/engine/graphics/texture/sampler/sampler2d_compute_texel_value_conversion_scale_to_uint8.js +47 -0
- package/src/engine/graphics/texture/sampler/sampler2d_copy_channel_data.js +25 -0
- package/src/engine/graphics/texture/sampler/sampler2d_to_uint8_RGBA.js +97 -0
- package/src/engine/graphics/texture/sampler/sampler2d_to_uint8_RGBA.spec.js +52 -0
- package/src/engine/graphics/texture/sampler/saturated_value_by_constructor.js +28 -0
- package/src/engine/graphics/texture/sampler/scaleSampler2D.js +44 -0
- package/src/engine/graphics/texture/sampler/search/make_edge_condition_channel_threshold.js +34 -0
- package/src/engine/graphics/texture/sampler/search/sampler2d_find_pixels.js +24 -0
- package/src/engine/graphics/texture/sampler/serialization/Sampler2DSerializationAdapter.js +67 -0
- package/src/engine/graphics/texture/sampler/typedArrayConstructorByInstance.js +25 -0
- package/src/engine/graphics/texture/sampler/upsampleSampler2D.js +47 -0
- package/src/engine/graphics/texture/sampler/util/bitSet2Sampler2D.js +41 -0
- package/src/engine/graphics/texture/sampler/util/drawSamplerHTML.js +43 -0
- package/src/engine/graphics/texture/sampler/writeSampler2DDataToDataTexture.js +39 -0
- package/src/engine/graphics/texture/sprite/prototypeSpriteCutoutGeometry.js +212 -0
- package/src/engine/graphics/texture/texture_array_2d_copy.js +45 -0
- package/src/engine/graphics/texture/virtual/TileOperation.js +13 -0
- package/src/engine/graphics/texture/virtual/TileTree.js +150 -0
- package/src/engine/graphics/texture/virtual/TileTree.spec.js +58 -0
- package/src/engine/graphics/texture/virtual/TileUsage.js +137 -0
- package/src/engine/graphics/texture/virtual/VirtualTexture.js +229 -0
- package/src/engine/graphics/texture/virtual/VirtualTexture.spec.js +38 -0
- package/src/engine/graphics/texture/virtual/page/TilePage.js +148 -0
- package/src/engine/graphics/texture/virtual/page/TilePageSlot.js +36 -0
- package/src/engine/graphics/texture/virtual/tile/Tile.js +44 -0
- package/src/engine/graphics/texture/virtual/tile/Tile.spec.js +11 -0
- package/src/engine/graphics/texture/virtual/tile/TileAddress.js +63 -0
- package/src/engine/graphics/texture/virtual/tile/TileAddress.spec.js +30 -0
- package/src/engine/graphics/texture/virtual/tile/TileLoader.js +173 -0
- package/src/engine/graphics/texture/virtual/tile/TileRequest.js +40 -0
- package/src/engine/graphics/texture/virtual/tile/TileStatus.js +10 -0
- package/src/engine/graphics/texture/virtual/v2/ShaderUsage.js +48 -0
- package/src/engine/graphics/texture/virtual/v2/prototype.js +101 -0
- package/src/engine/graphics/three/DDSLoader.js +286 -0
- package/src/engine/graphics/three/OrbitControls.js +1045 -0
- package/src/engine/graphics/three/Reflector.js +281 -0
- package/src/engine/graphics/three/Refractor.js +352 -0
- package/src/engine/graphics/three/ThreeFactory.js +75 -0
- package/src/engine/graphics/three/TransfromControls.js +1496 -0
- package/src/engine/graphics/three/Water2.js +343 -0
- package/src/engine/graphics/three/cloneObject3D.d.ts +3 -0
- package/src/engine/graphics/three/cloneObject3D.js +70 -0
- package/src/engine/graphics/three/compare_three_objects.js +8 -0
- package/src/engine/graphics/trail/CodeflowTrailMaterial.js +134 -0
- package/src/engine/graphics/trail/TemporalPath.js +160 -0
- package/src/engine/graphics/trail/x/RibbonMaterialX.js +131 -0
- package/src/engine/graphics/trail/x/RibbonX.js +549 -0
- package/src/engine/graphics/trail/x/RibbonXMaterialSpec.d.ts +3 -0
- package/src/engine/graphics/trail/x/RibbonXMaterialSpec.js +23 -0
- package/src/engine/graphics/trail/x/RibbonXPlugin.js +128 -0
- package/src/engine/graphics/trail/x/ribbon_attributes_spec.js +52 -0
- package/src/engine/graphics/trail/x/simulator/RibbonState.js +10 -0
- package/src/engine/graphics/trail/x/simulator/RibbonXFixedPhysicsSimulator.js +35 -0
- package/src/engine/graphics/util/ScaleObject3ToBox.js +38 -0
- package/src/engine/graphics/util/composeMatrix4.js +13 -0
- package/src/engine/graphics/util/composeMatrix4RotationScale.js +14 -0
- package/src/engine/graphics/util/ensureGeometryBoundingBox.js +15 -0
- package/src/engine/graphics/util/launchElementIntoFullscreen.js +16 -0
- package/src/engine/graphics/util/makeMeshPreviewScene.js +100 -0
- package/src/engine/graphics/util/modelHitTest.js +63 -0
- package/src/engine/graphics/util/projectSphere.js +103 -0
- package/src/engine/graphics/util/promiseMaterialLoaded.d.ts +3 -0
- package/src/engine/graphics/util/promiseMaterialLoaded.js +28 -0
- package/src/engine/graphics/util/promiseTextureLoaded.js +31 -0
- package/src/engine/graphics/util/renderObjectToSampler2D.js +83 -0
- package/src/engine/graphics/util/threeUpdateMatrix.js +14 -0
- package/src/engine/graphics/util/threeUpdateTransform.js +16 -0
- package/src/engine/grid/Grid.js +131 -0
- package/src/engine/grid/area/AreaTrigger.js +21 -0
- package/src/engine/grid/area/TriggerAction.js +8 -0
- package/src/engine/grid/area/TriggerActionType.js +5 -0
- package/src/engine/grid/components/GridObstacle.js +246 -0
- package/src/engine/grid/components/GridObstacle.spec.js +46 -0
- package/src/engine/grid/components/GridObstacleSerializationAdapter.js +46 -0
- package/src/engine/grid/components/GridPosition.js +51 -0
- package/src/engine/grid/components/GridPosition2Transform.js +232 -0
- package/src/engine/grid/components/GridPosition2TransformFlags.js +10 -0
- package/src/engine/grid/components/GridPositionSerializationAdapter.js +58 -0
- package/src/engine/grid/components/GridPositionSerializationUpdater_0_1.js +37 -0
- package/src/engine/grid/components/ViewportGridProjection.js +20 -0
- package/src/engine/grid/systems/GridObstacleSystem.js +58 -0
- package/src/engine/grid/systems/GridPosition2TransformSystem.js +118 -0
- package/src/engine/grid/systems/GridPositionSystem.js +108 -0
- package/src/engine/grid/systems/ViewportGridProjectionSystem.js +105 -0
- package/src/engine/grid/transform2grid/Transform2GridPosition.js +73 -0
- package/src/engine/grid/transform2grid/Transform2GridPositionFlags.js +2 -0
- package/src/engine/grid/transform2grid/Transform2GridPositionMode.js +10 -0
- package/src/engine/grid/transform2grid/Transform2GridPositionSystem.js +133 -0
- package/src/engine/input/devices/InputDeviceButton.d.ts +7 -0
- package/src/engine/input/devices/InputDeviceButton.js +22 -0
- package/src/engine/input/devices/KeyCodes.d.ts +1 -0
- package/src/engine/input/devices/KeyCodes.js +107 -0
- package/src/engine/input/devices/KeyValues.js +36 -0
- package/src/engine/input/devices/KeyboardDevice.d.ts +14 -0
- package/src/engine/input/devices/KeyboardDevice.js +134 -0
- package/src/engine/input/devices/PointerDevice.d.ts +25 -0
- package/src/engine/input/devices/PointerDevice.js +588 -0
- package/src/engine/input/devices/events/DragEvents.js +38 -0
- package/src/engine/input/devices/events/KeyboardEvents.d.ts +4 -0
- package/src/engine/input/devices/events/KeyboardEvents.js +4 -0
- package/src/engine/input/devices/events/MouseEvents.d.ts +12 -0
- package/src/engine/input/devices/events/MouseEvents.js +18 -0
- package/src/engine/input/devices/events/TouchEvents.d.ts +6 -0
- package/src/engine/input/devices/events/TouchEvents.js +12 -0
- package/src/engine/input/ecs/InputBinding.js +30 -0
- package/src/engine/input/ecs/components/Input.d.ts +6 -0
- package/src/engine/input/ecs/components/Input.js +80 -0
- package/src/engine/input/ecs/components/InputController.d.ts +3 -0
- package/src/engine/input/ecs/components/InputController.js +54 -0
- package/src/engine/input/ecs/controllers/KeyboardCameraController.js +125 -0
- package/src/engine/input/ecs/ism/InputBinding.d.ts +4 -0
- package/src/engine/input/ecs/ism/InputBinding.js +47 -0
- package/src/engine/input/ecs/systems/InputControllerSystem.d.ts +6 -0
- package/src/engine/input/ecs/systems/InputControllerSystem.js +256 -0
- package/src/engine/input/ecs/systems/InputSystem.d.ts +6 -0
- package/src/engine/input/ecs/systems/InputSystem.js +156 -0
- package/src/engine/input/ecs/util/TerrainCameraTargetSampler.js +26 -0
- package/src/engine/input/ecs/util/TopDownCameraControllerHelper.js +84 -0
- package/src/engine/intelligence/behavior/Behavior.d.ts +11 -0
- package/src/engine/intelligence/behavior/Behavior.js +47 -0
- package/src/engine/intelligence/behavior/BehaviorStatus.d.ts +8 -0
- package/src/engine/intelligence/behavior/BehaviorStatus.js +12 -0
- package/src/engine/intelligence/behavior/SelectorBehavior.js +87 -0
- package/src/engine/intelligence/behavior/behavior_to_dot.js +251 -0
- package/src/engine/intelligence/behavior/behavior_to_dot.prototype.js +55 -0
- package/src/engine/intelligence/behavior/composite/CompositeBehavior.js +62 -0
- package/src/engine/intelligence/behavior/composite/ParallelBehavior.js +240 -0
- package/src/engine/intelligence/behavior/composite/ParallelBehavior.spec.js +165 -0
- package/src/engine/intelligence/behavior/composite/ParallelBehaviorSerializationAdapter.js +63 -0
- package/src/engine/intelligence/behavior/composite/SequenceBehavior.js +122 -0
- package/src/engine/intelligence/behavior/composite/SequenceBehaviorSerializationAdapter.js +52 -0
- package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.js +46 -0
- package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.js +27 -0
- package/src/engine/intelligence/behavior/decorator/InverterBehavior.js +75 -0
- package/src/engine/intelligence/behavior/decorator/RepeatBehavior.js +86 -0
- package/src/engine/intelligence/behavior/decorator/RepeatBehavior.spec.js +32 -0
- package/src/engine/intelligence/behavior/decorator/RepeatBehaviorSerializationAdapter.js +37 -0
- package/src/engine/intelligence/behavior/decorator/RepeatUntilFailureBehavior.js +70 -0
- package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.js +72 -0
- package/src/engine/intelligence/behavior/ecs/BehaviorComponent.d.ts +3 -0
- package/src/engine/intelligence/behavior/ecs/BehaviorComponent.js +158 -0
- package/src/engine/intelligence/behavior/ecs/BehaviorComponentFlag.js +7 -0
- package/src/engine/intelligence/behavior/ecs/BehaviorComponentSerializationAdapter.js +83 -0
- package/src/engine/intelligence/behavior/ecs/BehaviorSystem.d.ts +7 -0
- package/src/engine/intelligence/behavior/ecs/BehaviorSystem.js +139 -0
- package/src/engine/intelligence/behavior/ecs/BehaviorSystem.spec.js +75 -0
- package/src/engine/intelligence/behavior/ecs/ClockChannelType.js +15 -0
- package/src/engine/intelligence/behavior/ecs/DieBehavior.js +26 -0
- package/src/engine/intelligence/behavior/ecs/EntityBehavior.js +36 -0
- package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.js +90 -0
- package/src/engine/intelligence/behavior/ecs/WaitForEventBehaviorSerializationAdapter.js +29 -0
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.js +35 -0
- package/src/engine/intelligence/behavior/primitive/FailingBehavior.js +24 -0
- package/src/engine/intelligence/behavior/primitive/FailingBehaviorSerializationAdapter.js +29 -0
- package/src/engine/intelligence/behavior/primitive/PromiseBehavior.js +43 -0
- package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.js +38 -0
- package/src/engine/intelligence/behavior/primitive/SucceedingBehaviorSerializationAdapter.js +29 -0
- package/src/engine/intelligence/behavior/selector/WeightedElement.js +76 -0
- package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.js +110 -0
- package/src/engine/intelligence/behavior/util/ConditionBehavior.js +27 -0
- package/src/engine/intelligence/behavior/util/ConditionBehavior.spec.js +24 -0
- package/src/engine/intelligence/behavior/util/ConditionalBehavior.js +73 -0
- package/src/engine/intelligence/behavior/util/DelayBehavior.js +67 -0
- package/src/engine/intelligence/behavior/util/FilterBehavior.js +43 -0
- package/src/engine/intelligence/behavior/util/LogMessageBehavior.js +29 -0
- package/src/engine/intelligence/behavior/util/RotationBehavior.js +69 -0
- package/src/engine/intelligence/behavior/util/SelectorBehavior.js +83 -0
- package/src/engine/intelligence/blackboard/AbstractBlackboard.d.ts +15 -0
- package/src/engine/intelligence/blackboard/AbstractBlackboard.js +93 -0
- package/src/engine/intelligence/blackboard/Blackboard.d.ts +5 -0
- package/src/engine/intelligence/blackboard/Blackboard.js +221 -0
- package/src/engine/intelligence/blackboard/Blackboard.spec.js +62 -0
- package/src/engine/intelligence/blackboard/BlackboardDynamicStorageAdapter.js +249 -0
- package/src/engine/intelligence/blackboard/BlackboardSerializationAdapter.js +94 -0
- package/src/engine/intelligence/blackboard/BlackboardSerializationAdapter.spec.js +28 -0
- package/src/engine/intelligence/blackboard/BlackboardStack.js +127 -0
- package/src/engine/intelligence/blackboard/BlackboardValue.js +50 -0
- package/src/engine/intelligence/blackboard/make_blackboard_proxy.js +47 -0
- package/src/engine/intelligence/blackboard/make_blackboard_proxy.spec.js +23 -0
- package/src/engine/intelligence/controller/graph/StateGraph.js +19 -0
- package/src/engine/intelligence/controller/graph/StateGraphDescription.js +32 -0
- package/src/engine/intelligence/controller/graph/StateGraphSystem.js +19 -0
- package/src/engine/intelligence/mcts/MonteCarlo.js +292 -0
- package/src/engine/intelligence/mcts/MonteCarlo.spec.js +242 -0
- package/src/engine/intelligence/mcts/MoveEdge.js +43 -0
- package/src/engine/intelligence/mcts/README.md +7 -0
- package/src/engine/intelligence/mcts/StateNode.js +340 -0
- package/src/engine/intelligence/mcts/StateNode.spec.js +49 -0
- package/src/engine/intelligence/optimization/OptimizationTask.js +49 -0
- package/src/engine/intelligence/optimization/RandomOptimizer.js +147 -0
- package/src/engine/intelligence/optimization/RandomOptimizer.spec.js +57 -0
- package/src/engine/intelligence/resource/ActionSequence.js +46 -0
- package/src/engine/intelligence/resource/Resource.js +57 -0
- package/src/engine/intelligence/resource/ResourceAllocation.js +13 -0
- package/src/engine/intelligence/resource/ResourceAllocationBid.js +44 -0
- package/src/engine/intelligence/resource/ResourceAllocationSolver.js +164 -0
- package/src/engine/intelligence/resource/ResourceAllocationSolver.spec.js +104 -0
- package/src/engine/intelligence/resource/StrategicResourceAllocator.js +129 -0
- package/src/engine/intelligence/resource/StrategicResourceAllocator.spec.js +46 -0
- package/src/engine/intelligence/resource/TacticalModule.js +21 -0
- package/src/engine/knowledge/database/DATABASE_SERIALIZATION_IGNORE_PROPERTY.js +1 -0
- package/src/engine/knowledge/database/StaticKnowledgeDataTable.d.ts +3 -0
- package/src/engine/knowledge/database/StaticKnowledgeDataTable.js +497 -0
- package/src/engine/knowledge/database/StaticKnowledgeDataTableDescriptor.d.ts +7 -0
- package/src/engine/knowledge/database/StaticKnowledgeDataTableDescriptor.js +50 -0
- package/src/engine/knowledge/database/StaticKnowledgeDatabase.js +298 -0
- package/src/engine/logging/ConsoleLoggerBackend.js +37 -0
- package/src/engine/logging/GlobalLogger.js +3 -0
- package/src/engine/logging/LogLevel.js +11 -0
- package/src/engine/logging/Logger.js +80 -0
- package/src/engine/logging/LoggerBackend.js +38 -0
- package/src/engine/logging/elastic/ElasticSearchLogger.js +153 -0
- package/src/engine/metrics/GlobalMetrics.js +7 -0
- package/src/engine/metrics/GoogleAnalyticsMetrics.js +63 -0
- package/src/engine/metrics/MetricsCategory.js +12 -0
- package/src/engine/metrics/MetricsGateway.js +14 -0
- package/src/engine/metrics/NullMetricsGateway.js +9 -0
- package/src/engine/metrics/ProxyMetricsGateway.js +34 -0
- package/src/engine/navigation/PathFinder.js +172 -0
- package/src/engine/navigation/PathWorker.js +78 -0
- package/src/engine/navigation/ecs/components/InterpolationType.d.ts +4 -0
- package/src/engine/navigation/ecs/components/InterpolationType.js +10 -0
- package/src/engine/navigation/ecs/components/Path.d.ts +45 -0
- package/src/engine/navigation/ecs/components/Path.js +726 -0
- package/src/engine/navigation/ecs/components/Path.spec.js +181 -0
- package/src/engine/navigation/ecs/components/PathEvents.d.ts +6 -0
- package/src/engine/navigation/ecs/components/PathEvents.js +10 -0
- package/src/engine/navigation/ecs/components/PathFinder.js +11 -0
- package/src/engine/navigation/ecs/components/PathSerializationAdapter.js +64 -0
- package/src/engine/navigation/ecs/components/PathSerializationUpgrader_0_1.js +31 -0
- package/src/engine/navigation/ecs/components/PathSerializationUpgrader_1_2.js +33 -0
- package/src/engine/navigation/ecs/components/computeCatmullRomSpline.js +75 -0
- package/src/engine/navigation/ecs/components/computeCatmullRomSplineUniformDistance.js +126 -0
- package/src/engine/navigation/ecs/components/computeNonuniformCatmullRomSplineSample.js +242 -0
- package/src/engine/navigation/ecs/path_following/PathFollower.d.ts +45 -0
- package/src/engine/navigation/ecs/path_following/PathFollower.js +219 -0
- package/src/engine/navigation/ecs/path_following/PathFollowerEventType.d.ts +3 -0
- package/src/engine/navigation/ecs/path_following/PathFollowerEventType.js +7 -0
- package/src/engine/navigation/ecs/path_following/PathFollowerFlags.d.ts +20 -0
- package/src/engine/navigation/ecs/path_following/PathFollowerFlags.js +27 -0
- package/src/engine/navigation/ecs/path_following/PathFollowerSerializationAdapter.js +39 -0
- package/src/engine/navigation/ecs/path_following/PathFollowerSerializationUpgrader_0_1.js +27 -0
- package/src/engine/navigation/ecs/path_following/PathFollowerSerializationUpgrader_1_2.js +22 -0
- package/src/engine/navigation/ecs/path_following/PathFollowerSerializationUpgrader_2_3.js +24 -0
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts +6 -0
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +185 -0
- package/src/engine/navigation/ecs/systems/PathFinderSystem.js +63 -0
- package/src/engine/navigation/ecs/systems/PathSystem.js +19 -0
- package/src/engine/navigation/funnel/Funnel.js +196 -0
- package/src/engine/navigation/grid/AStar.js +223 -0
- package/src/engine/navigation/grid/GridField.js +328 -0
- package/src/engine/network/DataChannel.js +1208 -0
- package/src/engine/network/PriorityFetch.js +192 -0
- package/src/engine/network/RemoteController.js +138 -0
- package/src/engine/network/convertPathToURL.js +90 -0
- package/src/engine/network/remoteEditor.js +36 -0
- package/src/engine/network/xhr.js +26 -0
- package/src/engine/notify/Notification.js +39 -0
- package/src/engine/notify/NotificationLog.js +59 -0
- package/src/engine/notify/NotificationLog.spec.js +17 -0
- package/src/engine/options/Option.js +74 -0
- package/src/engine/options/OptionAbstract.js +38 -0
- package/src/engine/options/OptionGroup.js +185 -0
- package/src/engine/options/OptionsView.js +233 -0
- package/src/engine/physics/ammo/Body.js +106 -0
- package/src/engine/physics/ammo/PhysicsWorker.js +439 -0
- package/src/engine/physics/ammo/World.js +337 -0
- package/src/engine/physics/ammo/shapes/BoxShape.js +14 -0
- package/src/engine/physics/ammo/shapes/CapsuleShape.js +13 -0
- package/src/engine/physics/ammo/shapes/MeshShape.js +12 -0
- package/src/engine/physics/ammo/shapes/PlaneShape.js +17 -0
- package/src/engine/physics/ammo/shapes/Shape.js +11 -0
- package/src/engine/physics/ammo/shapes/SphereShape.js +12 -0
- package/src/engine/physics/cannon/CannonJSPhysicsSystem.js +199 -0
- package/src/engine/physics/cannon/cannon.min.js +27 -0
- package/src/engine/physics/fluid/FluidField.js +9 -0
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.js +6 -0
- package/src/engine/physics/fluid/effector/GlobalFluidEffector.js +12 -0
- package/src/engine/physics/fluid/effector/WakeFluidEffector.js +8 -0
- package/src/engine/physics/mls-mpm/MLS_MPM.js +652 -0
- package/src/engine/physics/mls-mpm/testMLS_MPM.js +65 -0
- package/src/engine/physics/spring/Spring.js +9 -0
- package/src/engine/platform/EnginePlatform.d.ts +14 -0
- package/src/engine/platform/EnginePlatform.js +42 -0
- package/src/engine/platform/GetURLHash.js +27 -0
- package/src/engine/platform/WebEnginePlatform.d.ts +5 -0
- package/src/engine/platform/WebEnginePlatform.js +99 -0
- package/src/engine/plugin/EnginePlugin.d.ts +3 -0
- package/src/engine/plugin/EnginePlugin.js +83 -0
- package/src/engine/plugin/EnginePluginManager.d.ts +9 -0
- package/src/engine/plugin/EnginePluginManager.js +323 -0
- package/src/engine/plugin/PluginReferenceContext.js +271 -0
- package/src/engine/plugin/isSubclassOf.js +19 -0
- package/src/engine/reference/v1/ReferenceManager.js +121 -0
- package/src/engine/reference/v2/Reference.d.ts +11 -0
- package/src/engine/reference/v2/Reference.js +91 -0
- package/src/engine/save/GameStateLoader.js +175 -0
- package/src/engine/save/Storage.d.ts +15 -0
- package/src/engine/save/Storage.js +128 -0
- package/src/engine/save/StorageBackedList.js +145 -0
- package/src/engine/save/storage/GooglePlayStorage.js +47 -0
- package/src/engine/save/storage/InMemoryLocalStorage.js +13 -0
- package/src/engine/save/storage/IndexedDBStorage.js +149 -0
- package/src/engine/save/storage/IndexedDBTransactionMode.js +8 -0
- package/src/engine/save/storage/JsonStringCodec.js +24 -0
- package/src/engine/save/storage/LocalStorage.js +147 -0
- package/src/engine/save/storage/MsgPackCodec.js +22 -0
- package/src/engine/scene/Scene.d.ts +5 -0
- package/src/engine/scene/Scene.js +100 -0
- package/src/engine/scene/SceneManager.d.ts +21 -0
- package/src/engine/scene/SceneManager.js +314 -0
- package/src/engine/scene/SerializedScene.js +82 -0
- package/src/engine/scene/transitionToScene.js +130 -0
- package/src/engine/simulation/DormandPrince.js +242 -0
- package/src/engine/simulation/Ticker.d.ts +5 -0
- package/src/engine/simulation/Ticker.js +147 -0
- package/src/engine/sound/SoundEngine.d.ts +3 -0
- package/src/engine/sound/SoundEngine.js +96 -0
- package/src/engine/sound/asset/SoundAssetPlaybackSpec.js +136 -0
- package/src/engine/sound/asset/SoundAssetPlaybackSpecFlags.js +10 -0
- package/src/engine/sound/ecs/SoundController.js +173 -0
- package/src/engine/sound/ecs/SoundControllerSystem.js +109 -0
- package/src/engine/sound/ecs/SoundListener.js +67 -0
- package/src/engine/sound/ecs/SoundListenerSystem.js +260 -0
- package/src/engine/sound/ecs/emitter/SoundAttenuationFunction.js +9 -0
- package/src/engine/sound/ecs/emitter/SoundEmitter.js +564 -0
- package/src/engine/sound/ecs/emitter/SoundEmitter.spec.js +49 -0
- package/src/engine/sound/ecs/emitter/SoundEmitterChannel.js +32 -0
- package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.js +239 -0
- package/src/engine/sound/ecs/emitter/SoundEmitterFlags.js +8 -0
- package/src/engine/sound/ecs/emitter/SoundEmitterSerializationAdapter.js +84 -0
- package/src/engine/sound/ecs/emitter/SoundEmitterSerializationUpgrader_0_1.js +73 -0
- package/src/engine/sound/ecs/emitter/SoundEmitterSerializationUpgrader_1_2.js +30 -0
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +444 -0
- package/src/engine/sound/ecs/emitter/SoundPanningModelType.js +15 -0
- package/src/engine/sound/ecs/emitter/SoundTrack.js +353 -0
- package/src/engine/sound/ecs/emitter/SoundTrackFlags.js +13 -0
- package/src/engine/sound/ecs/emitter/SoundTrackNodes.js +20 -0
- package/src/engine/sound/ecs/emitter/loadSoundTrackAsset.js +42 -0
- package/src/engine/sound/material/AbstractSoundMaterialDefinition.js +15 -0
- package/src/engine/sound/material/SoundMaterialInteractionType.js +7 -0
- package/src/engine/sound/material/concrete/RandomSoundMaterial.js +35 -0
- package/src/engine/sound/material/concrete/SilentSoundMaterial.js +20 -0
- package/src/engine/sound/material/concrete/SingleSoundMaterial.js +37 -0
- package/src/engine/sound/material/concrete/SoundMaterialComposition.js +111 -0
- package/src/engine/sound/material/concrete/json/deserializeSoundMaterialFromJSON.js +31 -0
- package/src/engine/sound/material/concrete/json/serializeSoundMaterialToJSON.js +6 -0
- package/src/engine/sound/material/detector/SoundMaterialSurfaceDetector.js +19 -0
- package/src/engine/sound/material/detector/terrain/TerrainSoundMaterialSurfaceDetector.js +121 -0
- package/src/engine/sound/sopra/AbstractAudioClip.js +29 -0
- package/src/engine/sound/sopra/ContainerAudioClip.js +13 -0
- package/src/engine/sound/sopra/README.md +1 -0
- package/src/engine/sound/sopra/RandomContainerAudioClip.js +15 -0
- package/src/engine/sound/sopra/SequenceContainerAudioClip.js +8 -0
- package/src/engine/sound/sopra/SilenceAudioClip.js +15 -0
- package/src/engine/ui/DraggableAspect.js +83 -0
- package/src/engine/ui/GUIEngine.js +563 -0
- package/src/engine/ui/bindings/DomElementBinding.js +32 -0
- package/src/engine/ui/bindings/DomElementBindingDescription.js +37 -0
- package/src/engine/ui/bindings/DomElementProcessor.js +29 -0
- package/src/engine/ui/bindings/DomElementProcessorManager.js +311 -0
- package/src/engine/ui/bindings/processors/DomElementProcessorTilt3D.js +99 -0
- package/src/engine/ui/cursor/CursorCoalescence.js +50 -0
- package/src/engine/ui/cursor/CursorType.js +10 -0
- package/src/engine/ui/modal/ModalStack.js +116 -0
- package/src/engine/ui/notification/AnimatedObjectEmitter.js +272 -0
- package/src/engine/ui/notification/NotificationAreaKind.js +9 -0
- package/src/engine/ui/notification/NotificationManager.js +268 -0
- package/src/engine/ui/notification/ViewEmitter.js +92 -0
- package/src/engine/ui/notification/notificationGenerator.js +56 -0
- package/src/engine/ui/scene/SceneGUIContext.js +76 -0
- package/src/engine/ui/scene/initializeNotifications.js +144 -0
- package/src/engine/ui/tiles2d/TileGrid.js +170 -0
- package/src/engine/ui/tiles2d/TileGrid.spec.js +20 -0
- package/src/engine/ui/tiles2d/TileMoveInstruction.js +71 -0
- package/src/engine/ui/tiles2d/TileMoveProgram.js +69 -0
- package/src/engine/ui/tiles2d/computeTileGridMove.js +164 -0
- package/src/engine/ui/tiles2d/computeTileGridMove.spec.js +54 -0
- package/src/extractName.js +8 -0
- package/src/generation/GraphGenerationRule.js +17 -0
- package/src/generation/GridGeneratorConfig.js +25 -0
- package/src/generation/GridGeneratorConfigurator.js +0 -0
- package/src/generation/GridTags.js +15 -0
- package/src/generation/GridTaskGroup.js +111 -0
- package/src/generation/ZoneNode.js +9 -0
- package/src/generation/automata/CaveGeneratorCellularAutomata.js +56 -0
- package/src/generation/automata/CellularAutomata.js +18 -0
- package/src/generation/example/SampleGenerator0.js +565 -0
- package/src/generation/example/filters/SampleGroundMoistureFilter.js +73 -0
- package/src/generation/example/filters/SampleNoise20_0.js +3 -0
- package/src/generation/example/generators/interactive/mir_generator_place_buff_objects.js +334 -0
- package/src/generation/example/generators/mir_generator_place_bases.js +150 -0
- package/src/generation/example/generators/mir_generator_place_road_decorators.js +59 -0
- package/src/generation/example/generators/mir_generator_place_starting_point.js +52 -0
- package/src/generation/example/grid/MirGridLayers.js +18 -0
- package/src/generation/example/grid/configureMirGrid.js +19 -0
- package/src/generation/example/main.js +216 -0
- package/src/generation/example/rules/matcher_not_play_area.js +4 -0
- package/src/generation/example/rules/matcher_play_area.js +5 -0
- package/src/generation/example/rules/matcher_tag_not_traversable.js +4 -0
- package/src/generation/example/rules/matcher_tag_occupied.js +5 -0
- package/src/generation/example/rules/matcher_tag_traversable.js +5 -0
- package/src/generation/example/rules/matcher_tag_traversable_unoccupied.js +5 -0
- package/src/generation/example/rules/matcher_tag_unoccupied.js +4 -0
- package/src/generation/example/rules/mir_matcher_attack_corridor.js +67 -0
- package/src/generation/example/themes/SampleTheme0.js +1574 -0
- package/src/generation/example/themes/SampleTheme1.js +19 -0
- package/src/generation/example/themes/SampleTheme2.js +21 -0
- package/src/generation/filtering/CellFilter.js +80 -0
- package/src/generation/filtering/CellFilterCellMatcher.js +45 -0
- package/src/generation/filtering/boolean/CellFilterLiteralBoolean.js +29 -0
- package/src/generation/filtering/boolean/logic/CellFilterAnd.js +33 -0
- package/src/generation/filtering/core/CellFilterBinaryOperation.js +53 -0
- package/src/generation/filtering/core/CellFilterOperationTertiary.js +63 -0
- package/src/generation/filtering/core/CellFilterUnaryOperation.js +33 -0
- package/src/generation/filtering/numeric/CellFilterCache.js +79 -0
- package/src/generation/filtering/numeric/CellFilterLiteralFloat.js +44 -0
- package/src/generation/filtering/numeric/complex/CellFilterAngleToNormal.js +78 -0
- package/src/generation/filtering/numeric/complex/CellFilterCurvature.js +123 -0
- package/src/generation/filtering/numeric/complex/CellFilterDilate.js +36 -0
- package/src/generation/filtering/numeric/complex/CellFilterFXAA.js +125 -0
- package/src/generation/filtering/numeric/complex/CellFilterGaussianBlur.js +178 -0
- package/src/generation/filtering/numeric/complex/CellFilterLookupTable.js +45 -0
- package/src/generation/filtering/numeric/complex/CellFilterSimplexNoise.js +119 -0
- package/src/generation/filtering/numeric/complex/CellFilterSobel.js +66 -0
- package/src/generation/filtering/numeric/math/CellFilterAbsolute.js +27 -0
- package/src/generation/filtering/numeric/math/CellFilterClamp.js +31 -0
- package/src/generation/filtering/numeric/math/CellFilterInverseLerp.js +37 -0
- package/src/generation/filtering/numeric/math/CellFilterLerp.js +39 -0
- package/src/generation/filtering/numeric/math/CellFilterMax2.js +32 -0
- package/src/generation/filtering/numeric/math/CellFilterMembershipGeneralizedBell.js +55 -0
- package/src/generation/filtering/numeric/math/CellFilterMin2.js +29 -0
- package/src/generation/filtering/numeric/math/CellFilterOneMinus.js +24 -0
- package/src/generation/filtering/numeric/math/CellFilterPower.js +31 -0
- package/src/generation/filtering/numeric/math/CellFilterSaturate.js +24 -0
- package/src/generation/filtering/numeric/math/CellFilterSmoothStep.js +34 -0
- package/src/generation/filtering/numeric/math/CellFilterStep.js +37 -0
- package/src/generation/filtering/numeric/math/algebra/CellFilterAdd.js +37 -0
- package/src/generation/filtering/numeric/math/algebra/CellFilterDivide.js +38 -0
- package/src/generation/filtering/numeric/math/algebra/CellFilterMultiply.js +37 -0
- package/src/generation/filtering/numeric/math/algebra/CellFilterNegate.js +30 -0
- package/src/generation/filtering/numeric/math/algebra/CellFilterSubtract.js +37 -0
- package/src/generation/filtering/numeric/math/poly/CellFilterCubicFunction.js +50 -0
- package/src/generation/filtering/numeric/process/computeCellFilterGradient.js +48 -0
- package/src/generation/filtering/numeric/process/computeCellFilterGradient.spec.js +288 -0
- package/src/generation/filtering/numeric/sampling/AbstractCellFilterSampleGridLayer.js +42 -0
- package/src/generation/filtering/numeric/sampling/CellFilterSampleLayerCubic.js +36 -0
- package/src/generation/filtering/numeric/sampling/CellFilterSampleLayerLinear.js +41 -0
- package/src/generation/filtering/numeric/util/CellFilterDisplaced.js +45 -0
- package/src/generation/filtering/numeric/util/CellFilterLogToConsole.js +28 -0
- package/src/generation/filtering/numeric/util/populateSampler2DFromCellFilter.js +31 -0
- package/src/generation/grid/GridData.d.ts +7 -0
- package/src/generation/grid/GridData.js +273 -0
- package/src/generation/grid/GridTaskGenerator.js +66 -0
- package/src/generation/grid/MarkerMatchCounter.js +25 -0
- package/src/generation/grid/actions/ContinuousGridCellAction.js +54 -0
- package/src/generation/grid/actions/ContinuousGridCellActionSetTerrainHeight.js +98 -0
- package/src/generation/grid/actions/ContinuousGridCellActionSetTerrainObstacle.js +53 -0
- package/src/generation/grid/actions/ContinuousGridCellActionWriteObstacle.js +123 -0
- package/src/generation/grid/generation/GridTaskApplyActionToCells.js +86 -0
- package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.js +382 -0
- package/src/generation/grid/generation/GridTaskExecuteRuleTimes.js +118 -0
- package/src/generation/grid/generation/GridTaskSequence.js +54 -0
- package/src/generation/grid/generation/NoopGridTaskGenerator.js +8 -0
- package/src/generation/grid/generation/discrete/GridTaskCellActionRuleSet.js +46 -0
- package/src/generation/grid/generation/discrete/GridTaskCellularAutomata.js +129 -0
- package/src/generation/grid/generation/discrete/GridTaskConnectRooms.js +521 -0
- package/src/generation/grid/generation/discrete/layer/GridTaskBuildSourceDistanceMap.js +212 -0
- package/src/generation/grid/generation/discrete/layer/GridTaskDistanceToMarkers.js +68 -0
- package/src/generation/grid/generation/grid/GridTaskAddNodesFixed.js +42 -0
- package/src/generation/grid/generation/grid/GridTaskGridAlignedNodeGenerator.js +17 -0
- package/src/generation/grid/generation/grid/select/CellSupplier.js +28 -0
- package/src/generation/grid/generation/grid/select/CellSupplierBestN.js +188 -0
- package/src/generation/grid/generation/grid/select/CellSupplierPathUpHill.js +187 -0
- package/src/generation/grid/generation/road/GridTaskGenerateRoads.js +630 -0
- package/src/generation/grid/generation/road/PathEndPoint.js +73 -0
- package/src/generation/grid/generation/road/PathEndPointKind.js +10 -0
- package/src/generation/grid/generation/road/RoadConnection.js +111 -0
- package/src/generation/grid/generation/road/RoadConnectionNetwork.js +156 -0
- package/src/generation/grid/generation/road/readMarkerNodeGroupId.js +13 -0
- package/src/generation/grid/generation/util/buildDistanceMapToObjective.js +112 -0
- package/src/generation/grid/generation/util/buildPathFromDistanceMap.js +82 -0
- package/src/generation/grid/generation/util/buildUnsignedDistanceField.js +37 -0
- package/src/generation/grid/layers/GridDataLayer.js +87 -0
- package/src/generation/markers/GridActionRuleSet.js +213 -0
- package/src/generation/markers/GridCellActionPlaceMarker.js +225 -0
- package/src/generation/markers/GridCellActionPlaceMarkerGroup.js +76 -0
- package/src/generation/markers/MarkerNode.js +127 -0
- package/src/generation/markers/MarkerRelation.js +13 -0
- package/src/generation/markers/RuleSelectionPolicyType.js +8 -0
- package/src/generation/markers/actions/MarkerNodeAction.js +28 -0
- package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.js +100 -0
- package/src/generation/markers/actions/MarkerNodeActionImaginary.js +86 -0
- package/src/generation/markers/actions/MarkerNodeActionSequence.js +61 -0
- package/src/generation/markers/actions/MarkerNodeProcessingRuleSet.js +151 -0
- package/src/generation/markers/actions/MarkerProcessingRule.js +86 -0
- package/src/generation/markers/actions/placement/MarkerNodeEntityProcessor.js +27 -0
- package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorClingToTerrain.js +57 -0
- package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorRandomRotation.js +30 -0
- package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorSequence.js +64 -0
- package/src/generation/markers/actions/probability/MarkerNodeActionSelectWeighted.js +106 -0
- package/src/generation/markers/actions/probability/MarkerNodeActionSelectWeighted.spec.js +116 -0
- package/src/generation/markers/actions/probability/MarkerNodeActionWeightedElement.js +51 -0
- package/src/generation/markers/actions/terrain/MarkerNodeActionPaintTerrain.js +265 -0
- package/src/generation/markers/actions/util/GridCellActionDebugBreak.js +28 -0
- package/src/generation/markers/actions/util/GridCellActionLogToConsole.js +21 -0
- package/src/generation/markers/debug/visualizeMarkers.js +196 -0
- package/src/generation/markers/emitter/MarkerNodeConsumer.js +10 -0
- package/src/generation/markers/emitter/MarkerNodeConsumerBuffer.js +87 -0
- package/src/generation/markers/emitter/MarkerNodeEmitter.js +28 -0
- package/src/generation/markers/emitter/MarkerNodeEmitterFromAction.js +64 -0
- package/src/generation/markers/emitter/MarkerNodeEmitterGridCellAction.js +47 -0
- package/src/generation/markers/emitter/MarkerNodeEmitterGroup.js +51 -0
- package/src/generation/markers/emitter/MarkerNodeEmitterPredicated.js +75 -0
- package/src/generation/markers/matcher/MarkerNodeMatcher.js +16 -0
- package/src/generation/markers/matcher/MarkerNodeMatcherAnd.js +31 -0
- package/src/generation/markers/matcher/MarkerNodeMatcherAny.js +13 -0
- package/src/generation/markers/matcher/MarkerNodeMatcherBinary.js +19 -0
- package/src/generation/markers/matcher/MarkerNodeMatcherByType.js +36 -0
- package/src/generation/markers/matcher/MarkerNodeMatcherContainsTag.js +28 -0
- package/src/generation/markers/matcher/MarkerNodeMatcherNone.js +13 -0
- package/src/generation/markers/matcher/MarkerNodeMatcherNot.js +33 -0
- package/src/generation/markers/matcher/MarkerNodeMatcherOr.js +28 -0
- package/src/generation/markers/predicate/GridDataNodePredicate.js +26 -0
- package/src/generation/markers/predicate/GridDataNodePredicateAnd.js +32 -0
- package/src/generation/markers/predicate/GridDataNodePredicateAny.js +13 -0
- package/src/generation/markers/predicate/GridDataNodePredicateBinary.js +42 -0
- package/src/generation/markers/predicate/GridDataNodePredicateNot.js +37 -0
- package/src/generation/markers/predicate/GridDataNodePredicateOverlaps.js +33 -0
- package/src/generation/markers/prototypeGridCellActionPlaceMarker.js +209 -0
- package/src/generation/markers/transform/MarkerNodeTransformRotateRandom.js +33 -0
- package/src/generation/markers/transform/MarkerNodeTransformer.js +26 -0
- package/src/generation/markers/transform/MarkerNodeTransformerAddPositionYFromFilter.js +64 -0
- package/src/generation/markers/transform/MarkerNodeTransformerOffsetPosition.js +45 -0
- package/src/generation/markers/transform/MarkerNodeTransformerRecordProperty.js +57 -0
- package/src/generation/markers/transform/MarkerNodeTransformerRecordPropertyClosure.js +57 -0
- package/src/generation/markers/transform/MarkerNodeTransformerRecordUniqueRandomEnum.js +77 -0
- package/src/generation/markers/transform/MarkerNodeTransformerRemoveTag.js +40 -0
- package/src/generation/markers/transform/MarkerNodeTransformerSequence.js +47 -0
- package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilter.js +72 -0
- package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilterGradient.js +87 -0
- package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilterGradient.spec.js +106 -0
- package/src/generation/placement/GridCellActionTransformNearbyMarkers.js +118 -0
- package/src/generation/placement/GridCellPlacementRule.js +122 -0
- package/src/generation/placement/action/GridCellAction.js +32 -0
- package/src/generation/placement/action/GridCellActionPlaceTags.js +123 -0
- package/src/generation/placement/action/GridCellActionPlaceTags.spec.js +21 -0
- package/src/generation/placement/action/GridCellActionWriteFilterToLayer.js +91 -0
- package/src/generation/placement/action/random/CellActionSelectRandom.js +69 -0
- package/src/generation/placement/action/random/weighted/CellActionSelectWeightedRandom.js +123 -0
- package/src/generation/placement/action/random/weighted/WeightedGridCellAction.js +54 -0
- package/src/generation/placement/action/util/CellMatcherWithinAABB.js +33 -0
- package/src/generation/placement/action/util/GridCellActionSequence.js +58 -0
- package/src/generation/placement/action/util/GridCellDisplacedAction.js +55 -0
- package/src/generation/rules/CellMatcher.js +29 -0
- package/src/generation/rules/CellMatcherAny.js +13 -0
- package/src/generation/rules/CellMatcherContainsTag.spec.js +22 -0
- package/src/generation/rules/CellMatcherFromFilter.js +38 -0
- package/src/generation/rules/CellMatcherLayerBitMaskTest.js +67 -0
- package/src/generation/rules/GridLayerCellMatcher.js +31 -0
- package/src/generation/rules/cell/CellMatcherContainsMarkerWithinRadius.js +41 -0
- package/src/generation/rules/cell/CellMatcherGridPattern.js +124 -0
- package/src/generation/rules/cell/GridPatternMatcher.spec.js +285 -0
- package/src/generation/rules/cell/GridPatternMatcherCell.js +33 -0
- package/src/generation/rules/logic/CellMatcherAnd.js +34 -0
- package/src/generation/rules/logic/CellMatcherBinary.js +24 -0
- package/src/generation/rules/logic/CellMatcherDecorator.js +17 -0
- package/src/generation/rules/logic/CellMatcherNot.js +25 -0
- package/src/generation/rules/logic/CellMatcherOr.js +33 -0
- package/src/generation/theme/AreaMask.js +61 -0
- package/src/generation/theme/AreaTheme.js +13 -0
- package/src/generation/theme/TerrainLayerDescription.js +68 -0
- package/src/generation/theme/TerrainLayerRule.js +38 -0
- package/src/generation/theme/TerrainLayerRuleAggregator.js +55 -0
- package/src/generation/theme/TerrainTheme.js +35 -0
- package/src/generation/theme/Theme.js +45 -0
- package/src/generation/theme/ThemeEngine.js +628 -0
- package/src/generation/theme/cell/CellProcessingRule.js +52 -0
- package/src/generation/theme/cell/CellProcessingRuleSet.js +33 -0
- package/src/misc/makeMatcapSelectionOption.d.ts +13 -0
- package/src/misc/makeMatcapSelectionOption.js +52 -0
- package/src/misc/makeMaterialIcon.js +34 -0
- package/src/misc/makeMaterialIconCached.js +50 -0
- package/src/view/DOM.js +174 -0
- package/src/view/SVG.js +122 -0
- package/src/view/View.d.ts +30 -0
- package/src/view/View.js +794 -0
- package/src/view/ViewGroup.js +90 -0
- package/src/view/asset/AssetLoaderStatusView.js +74 -0
- package/src/view/asset/PreloaderView.js +60 -0
- package/src/view/common/LabelView.js +240 -0
- package/src/view/common/ListView.js +287 -0
- package/src/view/common/LocalizedLabelView.js +155 -0
- package/src/view/common/MeshView.js +99 -0
- package/src/view/common/TabbedView.js +126 -0
- package/src/view/common/VirtualListView.js +288 -0
- package/src/view/common/dnd/DragAndDropContext.js +125 -0
- package/src/view/common/dnd/Draggable.js +184 -0
- package/src/view/common/dnd/DropTarget.js +283 -0
- package/src/view/controller/GuiController.js +73 -0
- package/src/view/controller/controls/BooleanVector3Control.js +77 -0
- package/src/view/controller/controls/GuiControl.js +45 -0
- package/src/view/controller/controls/ListController.js +113 -0
- package/src/view/controller/controls/NativeListController.js +87 -0
- package/src/view/controller/controls/NumericIntervalControl.js +90 -0
- package/src/view/controller/controls/Vector1Control.js +102 -0
- package/src/view/controller/controls/Vector2Control.js +87 -0
- package/src/view/controller/controls/Vector3Control.js +93 -0
- package/src/view/controller/controls_v2/AbstractPropertyBinding.ts +10 -0
- package/src/view/controller/controls_v2/Controller.ts +32 -0
- package/src/view/controller/controls_v2/IPropertyBinding.ts +6 -0
- package/src/view/controller/controls_v2/PrimitivePropertyBinding.ts +12 -0
- package/src/view/controller/controls_v2/SliderController.ts +10 -0
- package/src/view/controller/dat/DatGuiUtils.js +451 -0
- package/src/view/currency/CompositeCurrencyLabelView.js +57 -0
- package/src/view/currency/CurrencyDenominationLabelView.js +23 -0
- package/src/view/currency/CurrencyDenominationSpec.js +14 -0
- package/src/view/currency/CurrencyDisplaySpec.js +30 -0
- package/src/view/currency/FantasyCurrencySpec.js +7 -0
- package/src/view/currency/SingleCoinCurrency.js +5 -0
- package/src/view/elements/BottomLeftResizeHandleView.js +52 -0
- package/src/view/elements/CanvasView.js +36 -0
- package/src/view/elements/CheckboxView.js +43 -0
- package/src/view/elements/ColorPickerView.js +296 -0
- package/src/view/elements/CompassArrowView.js +64 -0
- package/src/view/elements/ConfirmationDialogView.js +80 -0
- package/src/view/elements/DropDownSelectionView.js +164 -0
- package/src/view/elements/EmptyView.js +60 -0
- package/src/view/elements/Group.js +37 -0
- package/src/view/elements/MeshPreview.js +283 -0
- package/src/view/elements/SimpleWindow.js +120 -0
- package/src/view/elements/button/ButtonView.js +118 -0
- package/src/view/elements/button/ButtonView.stories.js +14 -0
- package/src/view/elements/image/HTMLElementCacheKey.js +214 -0
- package/src/view/elements/image/ImageView.js +147 -0
- package/src/view/elements/image/SvgImageView.js +84 -0
- package/src/view/elements/label/LabeledValueView.js +68 -0
- package/src/view/elements/navigation/NavigationMenu.js +27 -0
- package/src/view/elements/navigation/ViewStack.js +144 -0
- package/src/view/elements/notify/NotificationView.js +69 -0
- package/src/view/elements/notify/ToastLogView.js +99 -0
- package/src/view/elements/progress/RectangularPieProgressView.js +115 -0
- package/src/view/elements/progress/SmoothProgressBar.js +199 -0
- package/src/view/elements/progress/segmented/RESOURCE_BAR_SEGMENTS.js +182 -0
- package/src/view/elements/progress/segmented/SegmentDefinition.js +29 -0
- package/src/view/elements/progress/segmented/SegmentedResourceBarView.js +300 -0
- package/src/view/elements/radial/RadialMenu.js +394 -0
- package/src/view/elements/radial/RadialMenuElement.js +209 -0
- package/src/view/elements/radial/RadialMenuElementDefinition.d.ts +39 -0
- package/src/view/elements/radial/RadialMenuElementDefinition.js +219 -0
- package/src/view/elements/radial/RadialProgressView.js +94 -0
- package/src/view/elements/radial/RadialText.js +259 -0
- package/src/view/elements/radial/makeDonut.js +26 -0
- package/src/view/elements/tiles2d/Tile.js +84 -0
- package/src/view/elements/tiles2d/TileGrid.js +456 -0
- package/src/view/elements/video/VideoView.js +165 -0
- package/src/view/elements/windrose/WindRoseDiagram.js +369 -0
- package/src/view/elements/windrose/prototype.js +37 -0
- package/src/view/game/achievements/AchievementNotificationView.js +56 -0
- package/src/view/interaction/CommandButtonView.js +159 -0
- package/src/view/interaction/InteractionCommand.js +61 -0
- package/src/view/interaction/InteractionCommandSet.js +34 -0
- package/src/view/interaction/InterfaceCommand.js +146 -0
- package/src/view/m3_cm_compose_transform.js +66 -0
- package/src/view/m3_rm_compose_transform.js +45 -0
- package/src/view/math/FunctionGraphView.js +85 -0
- package/src/view/minimap/Minimap.js +246 -0
- package/src/view/minimap/dom/MinimapCameraView.js +211 -0
- package/src/view/minimap/dom/MinimapMarkerView.js +80 -0
- package/src/view/minimap/dom/MinimapTerrainView.js +146 -0
- package/src/view/minimap/gl/MarkerGL.js +114 -0
- package/src/view/minimap/gl/MarkerGLAttributes.js +10 -0
- package/src/view/minimap/gl/MinimapFogOfWar.js +187 -0
- package/src/view/minimap/gl/MinimapMarkersGL.js +321 -0
- package/src/view/minimap/gl/MinimapTerrainGL.js +184 -0
- package/src/view/minimap/gl/MinimapWorldGL.js +193 -0
- package/src/view/minimap/gl/MinimapWorldLayer.js +33 -0
- package/src/view/minimap/gl/buildMaterial.js +94 -0
- package/src/view/multiplyMatrices3.js +49 -0
- package/src/view/renderModel.js +102 -0
- package/src/view/string_tag_to_css_class_name.js +12 -0
- package/src/view/task/TaskLoadingScreen.js +172 -0
- package/src/view/task/TaskProgressView.js +150 -0
- package/src/view/tooltip/DomTooltipManager.js +193 -0
- package/src/view/tooltip/DomTooltipObserver.js +166 -0
- package/src/view/tooltip/TooltipManager.js +251 -0
- package/src/view/tooltip/TooltipView.js +364 -0
- package/src/view/tooltip/VisualTip.js +50 -0
- package/src/view/tooltip/gml/GMLEngine.js +543 -0
- package/src/view/tooltip/gml/TooltipParser.js +54 -0
- package/src/view/tooltip/gml/TooltipParser.spec.js +142 -0
- package/src/view/tooltip/gml/compiler/GMLReferenceCompiler.js +36 -0
- package/src/view/tooltip/gml/parser/TooltipReferenceValue.js +19 -0
- package/src/view/tooltip/gml/parser/TooltipTokenType.js +11 -0
- package/src/view/tooltip/gml/parser/parseTooltipString.js +78 -0
- package/src/view/tooltip/gml/parser/readReferenceToken.js +102 -0
- package/src/view/tooltip/gml/parser/readReferenceValueToken.js +56 -0
- package/src/view/tooltip/gml/parser/readStyleToken.js +63 -0
- package/src/view/util/DomSizeObserver.js +196 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2014 cannon.js Authors
|
|
3
|
+
*
|
|
4
|
+
* Permission is hereby granted, free of charge, to any person
|
|
5
|
+
* obtaining a copy of this software and associated documentation
|
|
6
|
+
* files (the "Software"), to deal in the Software without
|
|
7
|
+
* restriction, including without limitation the rights to use, copy,
|
|
8
|
+
* modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
9
|
+
* 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
|
|
13
|
+
* included in all copies or substantial portions of the Software.
|
|
14
|
+
*
|
|
15
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
16
|
+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
17
|
+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
18
|
+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
19
|
+
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
20
|
+
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
|
+
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&false)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.CANNON=e()}}(function(){return function e(f,n,o){function d(t,l){if(!n[t]){if(!f[t]){var u="function"==typeof require&&require;if(!l&&u)return u(t,!0);if(i)return i(t,!0);throw new Error("Cannot find module '"+t+"'")}var p=n[t]={exports:{}};f[t][0].call(p.exports,function(e){var n=f[t][1][e];return d(n?n:e)},p,p.exports,e,f,n,o)}return n[t].exports}for(var i="function"==typeof require&&require,t=0;t<o.length;t++)d(o[t]);return d}({1:[function(e,f){f.exports={name:"cannon",version:"0.6.1",description:"A lightweight 3D physics engine written in JavaScript.",homepage:"https://github.com/schteppe/cannon.js",author:"Stefan Hedman <schteppe@gmail.com> (http://steffe.se)",keywords:["cannon.js","cannon","physics","engine","3d"],main:"./build/cannon.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/cannon.js.git"},bugs:{url:"https://github.com/schteppe/cannon.js/issues"},licenses:[{type:"MIT"}],devDependencies:{jshint:"latest","uglify-js":"latest",nodeunit:"^0.9.0",grunt:"~0.4.0","grunt-contrib-jshint":"~0.1.1","grunt-contrib-nodeunit":"^0.4.1","grunt-contrib-concat":"~0.1.3","grunt-contrib-uglify":"^0.5.1","grunt-browserify":"^2.1.4","grunt-contrib-yuidoc":"^0.5.2",browserify:"*"},dependencies:{}}},{}],2:[function(e,f){f.exports={version:e("../package.json").version,ArrayCollisionMatrix:e("./collision/ArrayCollisionMatrix"),Body:e("./objects/Body"),Box:e("./shapes/Box"),Broadphase:e("./collision/Broadphase"),Constraint:e("./constraints/Constraint"),ContactEquation:e("./equations/ContactEquation"),Narrowphase:e("./world/Narrowphase"),ContactMaterial:e("./material/ContactMaterial"),ConvexPolyhedron:e("./shapes/ConvexPolyhedron"),Cylinder:e("./shapes/Cylinder"),DistanceConstraint:e("./constraints/DistanceConstraint"),Equation:e("./equations/Equation"),EventTarget:e("./utils/EventTarget"),FrictionEquation:e("./equations/FrictionEquation"),GSSolver:e("./solver/GSSolver"),GridBroadphase:e("./collision/GridBroadphase"),Heightfield:e("./shapes/Heightfield"),HingeConstraint:e("./constraints/HingeConstraint"),Mat3:e("./math/Mat3"),Material:e("./material/Material"),NaiveBroadphase:e("./collision/NaiveBroadphase"),ObjectCollisionMatrix:e("./collision/ObjectCollisionMatrix"),Pool:e("./utils/Pool"),Particle:e("./shapes/Particle"),Plane:e("./shapes/Plane"),PointToPointConstraint:e("./constraints/PointToPointConstraint"),Quaternion:e("./math/Quaternion"),Ray:e("./collision/Ray"),RaycastVehicle:e("./objects/RaycastVehicle"),RaycastResult:e("./collision/RaycastResult"),RigidVehicle:e("./objects/RigidVehicle"),RotationalEquation:e("./equations/RotationalEquation"),RotationalMotorEquation:e("./equations/RotationalMotorEquation"),SAPBroadphase:e("./collision/SAPBroadphase"),SPHSystem:e("./objects/SPHSystem"),Shape:e("./shapes/Shape"),Solver:e("./solver/Solver"),Sphere:e("./shapes/Sphere"),SplitSolver:e("./solver/SplitSolver"),Spring:e("./objects/Spring"),Vec3:e("./math/Vec3"),Vec3Pool:e("./utils/Vec3Pool"),World:e("./world/World")}},{"../package.json":1,"./collision/ArrayCollisionMatrix":4,"./collision/Broadphase":5,"./collision/GridBroadphase":6,"./collision/NaiveBroadphase":7,"./collision/ObjectCollisionMatrix":8,"./collision/Ray":9,"./collision/RaycastResult":10,"./collision/SAPBroadphase":11,"./constraints/Constraint":12,"./constraints/DistanceConstraint":13,"./constraints/HingeConstraint":14,"./constraints/PointToPointConstraint":15,"./equations/ContactEquation":16,"./equations/Equation":17,"./equations/FrictionEquation":18,"./equations/RotationalEquation":19,"./equations/RotationalMotorEquation":20,"./material/ContactMaterial":21,"./material/Material":22,"./math/Mat3":24,"./math/Quaternion":25,"./math/Vec3":27,"./objects/Body":28,"./objects/RaycastVehicle":29,"./objects/RigidVehicle":30,"./objects/SPHSystem":31,"./objects/Spring":32,"./shapes/Box":34,"./shapes/ConvexPolyhedron":35,"./shapes/Cylinder":36,"./shapes/Heightfield":37,"./shapes/Particle":38,"./shapes/Plane":39,"./shapes/Shape":40,"./shapes/Sphere":41,"./solver/GSSolver":42,"./solver/Solver":43,"./solver/SplitSolver":44,"./utils/EventTarget":45,"./utils/Pool":46,"./utils/Vec3Pool":49,"./world/Narrowphase":50,"./world/World":51}],3:[function(e,f){function n(e){e=e||{},this.lowerBound=new o,e.lowerBound&&this.lowerBound.copy(e.lowerBound),this.upperBound=new o,e.upperBound&&this.upperBound.copy(e.upperBound)}{var o=e("../math/Vec3");e("../utils/Utils")}f.exports=n;var d=new o;n.prototype.setFromPoints=function(e,f,n,o){var i=this.lowerBound,t=this.upperBound,l=n;i.copy(e[0]),l&&l.vmult(i,i),t.copy(i);for(var u=1;u<e.length;u++){var p=e[u];l&&(l.vmult(p,d),p=d),p.x>t.x&&(t.x=p.x),p.x<i.x&&(i.x=p.x),p.y>t.y&&(t.y=p.y),p.y<i.y&&(i.y=p.y),p.z>t.z&&(t.z=p.z),p.z<i.z&&(i.z=p.z)}f&&(f.vadd(i,i),f.vadd(t,t)),o&&(i.x-=o,i.y-=o,i.z-=o,t.x+=o,t.y+=o,t.z+=o)},n.prototype.copy=function(e){this.lowerBound.copy(e.lowerBound),this.upperBound.copy(e.upperBound)},n.prototype.extend=function(e){var f=e.lowerBound.x;this.lowerBound.x>f&&(this.lowerBound.x=f);var n=e.upperBound.x;this.upperBound.x<n&&(this.upperBound.x=n);var f=e.lowerBound.y;this.lowerBound.y>f&&(this.lowerBound.y=f);var n=e.upperBound.y;this.upperBound.y<n&&(this.upperBound.y=n);var f=e.lowerBound.z;this.lowerBound.z>f&&(this.lowerBound.z=f);var n=e.upperBound.z;this.upperBound.z<n&&(this.upperBound.z=n)},n.prototype.overlaps=function(e){var f=this.lowerBound,n=this.upperBound,o=e.lowerBound,d=e.upperBound;return(o.x<=n.x&&n.x<=d.x||f.x<=d.x&&d.x<=n.x)&&(o.y<=n.y&&n.y<=d.y||f.y<=d.y&&d.y<=n.y)&&(o.z<=n.z&&n.z<=d.z||f.z<=d.z&&d.z<=n.z)}},{"../math/Vec3":27,"../utils/Utils":48}],4:[function(e,f){function n(){this.matrix=[]}f.exports=n,n.prototype.get=function(e,f){if(e=e.index,f=f.index,f>e){var n=f;f=e,e=n}return this.matrix[(e*(e+1)>>1)+f-1]},n.prototype.set=function(e,f,n){if(e=e.index,f=f.index,f>e){var o=f;f=e,e=o}this.matrix[(e*(e+1)>>1)+f-1]=n?1:0},n.prototype.reset=function(){for(var e=0,f=this.matrix.length;e!==f;e++)this.matrix[e]=0},n.prototype.setNumObjects=function(e){this.matrix.length=e*(e-1)>>1}},{}],5:[function(e,f){function n(){this.world=null,this.useBoundingBoxes=!1,this.dirty=!0}{var o=e("../objects/Body"),d=e("../math/Vec3"),i=e("../math/Quaternion");e("../shapes/Shape"),e("../shapes/Plane")}f.exports=n,n.prototype.collisionPairs=function(){throw new Error("collisionPairs not implemented for this BroadPhase class!")};var t=o.STATIC|o.KINEMATIC;n.prototype.needBroadphaseCollision=function(e,f){return 0===(e.collisionFilterGroup&f.collisionFilterMask)||0===(f.collisionFilterGroup&e.collisionFilterMask)?!1:0===(e.type&t)&&e.sleepState!==o.SLEEPING||0===(f.type&t)&&f.sleepState!==o.SLEEPING?!0:!1},n.prototype.intersectionTest=function(e,f,n,o){this.useBoundingBoxes?this.doBoundingBoxBroadphase(e,f,n,o):this.doBoundingSphereBroadphase(e,f,n,o)};{var l=new d;new d,new i,new d}n.prototype.doBoundingSphereBroadphase=function(e,f,n,o){var d=l;f.position.vsub(e.position,d);var i=Math.pow(e.boundingRadius+f.boundingRadius,2),t=d.norm2();i>t&&(n.push(e),o.push(f))},n.prototype.doBoundingBoxBroadphase=function(e,f,n,o){e.aabbNeedsUpdate&&e.computeAABB(),f.aabbNeedsUpdate&&f.computeAABB(),e.aabb.overlaps(f.aabb)&&(n.push(e),o.push(f))};var u={keys:[]},p=[],s=[];n.prototype.makePairsUnique=function(e,f){for(var n=u,o=p,d=s,i=e.length,t=0;t!==i;t++)o[t]=e[t],d[t]=f[t];e.length=0,f.length=0;for(var t=0;t!==i;t++){var l=o[t].id,y=d[t].id,c=y>l?l+","+y:y+","+l;n[c]=t,n.keys.push(c)}for(var t=0;t!==n.keys.length;t++){var c=n.keys.pop(),a=n[c];e.push(o[a]),f.push(d[a]),delete n[c]}},n.prototype.setWorld=function(){};var y=new d;n.boundingSphereCheck=function(e,f){var n=y;return e.position.vsub(f.position,n),Math.pow(e.shape.boundingSphereRadius+f.shape.boundingSphereRadius,2)>n.norm2()},n.prototype.aabbQuery=function(){return console.warn(".aabbQuery is not implemented in this Broadphase subclass."),[]}},{"../math/Quaternion":25,"../math/Vec3":27,"../objects/Body":28,"../shapes/Plane":39,"../shapes/Shape":40}],6:[function(e,f){function n(e,f,n,i,t){o.apply(this),this.nx=n||10,this.ny=i||10,this.nz=t||10,this.aabbMin=e||new d(100,100,100),this.aabbMax=f||new d(-100,-100,-100);var l=this.nx*this.ny*this.nz;if(0>=l)throw"GridBroadphase: Each dimension's n must be >0";this.bins=[],this.binLengths=[],this.bins.length=l,this.binLengths.length=l;for(var u=0;l>u;u++)this.bins[u]=[],this.binLengths[u]=0}f.exports=n;var o=e("./Broadphase"),d=e("../math/Vec3"),i=e("../shapes/Shape");n.prototype=new o,n.prototype.constructor=n;{var t=new d;new d}n.prototype.collisionPairs=function(e,f,n){function o(e,f,n,o,d,i,t){var l=(e-g)*v|0,u=(f-x)*A|0,p=(n-j)*C|0,b=I((o-g)*v),m=I((d-x)*A),N=I((i-j)*C);0>l?l=0:l>=s&&(l=s-1),0>u?u=0:u>=y&&(u=y-1),0>p?p=0:p>=c&&(p=c-1),0>b?b=0:b>=s&&(b=s-1),0>m?m=0:m>=y&&(m=y-1),0>N?N=0:N>=c&&(N=c-1),l*=a,u*=r,p*=w,b*=a,m*=r,N*=w;for(var O=l;b>=O;O+=a)for(var h=u;m>=h;h+=r)for(var k=p;N>=k;k+=w){var q=O+h+k;E[q][F[q]++]=t}}for(var d=e.numObjects(),l=e.bodies,u=this.aabbMax,p=this.aabbMin,s=this.nx,y=this.ny,c=this.nz,a=y*c,r=c,w=1,b=u.x,m=u.y,N=u.z,g=p.x,x=p.y,j=p.z,v=s/(b-g),A=y/(m-x),C=c/(N-j),O=(b-g)/s,h=(m-x)/y,k=(N-j)/c,q=.5*Math.sqrt(O*O+h*h+k*k),z=i.types,B=z.SPHERE,D=z.PLANE,E=(z.BOX,z.COMPOUND,z.CONVEXPOLYHEDRON,this.bins),F=this.binLengths,G=this.bins.length,H=0;H!==G;H++)F[H]=0;for(var I=Math.ceil,p=Math.min,u=Math.max,H=0;H!==d;H++){var J=l[H],K=J.shape;switch(K.type){case B:var L=J.position.x,M=J.position.y,P=J.position.z,Q=K.radius;o(L-Q,M-Q,P-Q,L+Q,M+Q,P+Q,J);break;case D:K.worldNormalNeedsUpdate&&K.computeWorldNormal(J.quaternion);var R=K.worldNormal,S=g+.5*O-J.position.x,T=x+.5*h-J.position.y,U=j+.5*k-J.position.z,V=t;V.set(S,T,U);for(var W=0,X=0;W!==s;W++,X+=a,V.y=T,V.x+=O)for(var Y=0,Z=0;Y!==y;Y++,Z+=r,V.z=U,V.y+=h)for(var $=0,_=0;$!==c;$++,_+=w,V.z+=k)if(V.dot(R)<q){var ef=X+Z+_;E[ef][F[ef]++]=J}break;default:J.aabbNeedsUpdate&&J.computeAABB(),o(J.aabb.lowerBound.x,J.aabb.lowerBound.y,J.aabb.lowerBound.z,J.aabb.upperBound.x,J.aabb.upperBound.y,J.aabb.upperBound.z,J)}}for(var H=0;H!==G;H++){var ff=F[H];if(ff>1)for(var nf=E[H],W=0;W!==ff;W++)for(var J=nf[W],Y=0;Y!==W;Y++){var of=nf[Y];this.needBroadphaseCollision(J,of)&&this.intersectionTest(J,of,f,n)}}this.makePairsUnique(f,n)}},{"../math/Vec3":27,"../shapes/Shape":40,"./Broadphase":5}],7:[function(e,f){function n(){o.apply(this)}f.exports=n;var o=e("./Broadphase"),d=e("./AABB");n.prototype=new o,n.prototype.constructor=n,n.prototype.collisionPairs=function(e,f,n){var o,d,i,t,l=e.bodies,u=l.length;for(o=0;o!==u;o++)for(d=0;d!==o;d++)i=l[o],t=l[d],this.needBroadphaseCollision(i,t)&&this.intersectionTest(i,t,f,n)};new d;n.prototype.aabbQuery=function(e,f,n){n=n||[];for(var o=0;o<e.bodies.length;o++){var d=e.bodies[o];d.aabbNeedsUpdate&&d.computeAABB(),d.aabb.overlaps(f)&&n.push(d)}return n}},{"./AABB":3,"./Broadphase":5}],8:[function(e,f){function n(){this.matrix={}}f.exports=n,n.prototype.get=function(e,f){if(e=e.id,f=f.id,f>e){var n=f;f=e,e=n}return e+"-"+f in this.matrix},n.prototype.set=function(e,f,n){if(e=e.id,f=f.id,f>e){var o=f;f=e,e=o}n?this.matrix[e+"-"+f]=!0:delete this.matrix[e+"-"+f]},n.prototype.reset=function(){this.matrix={}},n.prototype.setNumObjects=function(){}},{}],9:[function(e,f){function n(e,f){this.from=e?e.clone():new i,this.to=f?f.clone():new i,this._direction=new i,this.precision=1e-4,this.checkCollisionResponse=!0}function o(e,f,n,o){o.vsub(f,v),n.vsub(f,s),e.vsub(f,y);var d,i,t=v.dot(v),l=v.dot(s),u=v.dot(y),p=s.dot(s),c=s.dot(y);return(d=p*u-l*c)>=0&&(i=t*c-l*u)>=0&&t*p-l*l>d+i}function d(e,f,n){n.vsub(e,v);var o=v.dot(f);f.mult(o,A),A.vadd(e,A);var d=n.distanceTo(A);return d}f.exports=n;{var i=e("../math/Vec3"),t=e("../math/Quaternion"),l=e("../math/Transform"),u=(e("../shapes/ConvexPolyhedron"),e("../shapes/Box"),e("../collision/RaycastResult")),p=e("../shapes/Shape");e("../collision/AABB")}n.prototype.constructor=n;var s=new i,y=new i;n.prototype.intersectBody=function(e,f,n){var o=this.checkCollisionResponse;if(o&&!e.collisionResponse)return f;n||(this._updateDirection(),n=this._direction);for(var d=new i,l=new t,u=0;u<e.shapes.length;u++){var p=e.shapes[u];(!o||p.collisionResponse)&&(e.quaternion.mult(e.shapeOrientations[u],l),e.quaternion.vmult(e.shapeOffsets[u],d),d.vadd(e.position,d),this.intersectShape(p,l,d,e,n,f))}return f},n.prototype.intersectBodies=function(e,f){this._updateDirection();var n=this._direction;f instanceof u&&f.reset();for(var o=0,d=e.length;d>o;o++)this.intersectBody(e[o],f,n)},n.prototype._updateDirection=function(){this.to.vsub(this.from,this._direction),this._direction.normalize()},n.prototype.intersectShape=function(e,f,n,o,i,t){var l=this.from,u=d(l,i,n);return u>e.boundingSphereRadius?t:(this[e.type](e,f,n,o,i,t),t)};var c=(new i,new i,new i),a=new i,r=new i,w=new i,b=(new i,new u);n.prototype.intersectBox=function(e,f,n,o,d,i){return this.intersectConvex(e.convexPolyhedronRepresentation,f,n,o,d,i)},n.prototype[p.types.BOX]=n.prototype.intersectBox,n.prototype.intersectPlane=function(e,f,n,o,d,t){var l=this.from,u=this.to,p=new i(0,0,1);f.vmult(p,p);var s=new i;l.vsub(n,s);var y=s.dot(p);u.vsub(n,s);var c=s.dot(p);if(y*c>0)return t;if(l.distanceTo(u)<y)return t;var a=p.dot(d);if(Math.abs(a)<this.precision)return t;var r=new i,w=new i,b=new i;l.vsub(n,r);var m=-p.dot(r)/a;return d.scale(m,w),l.vadd(w,b),this.reportIntersection(p,b,e,o,t)?t:t},n.prototype[p.types.PLANE]=n.prototype.intersectPlane,n.prototype.getAABB=function(e){var f=this.to,n=this.from;e.lowerBound.x=Math.min(f.x,n.x),e.lowerBound.y=Math.min(f.y,n.y),e.lowerBound.z=Math.min(f.z,n.z),e.upperBound.x=Math.max(f.x,n.x),e.upperBound.y=Math.max(f.y,n.y),e.upperBound.z=Math.max(f.z,n.z)};var m={faceList:[0]};n.prototype.intersectHeightfield=function(e,f,o,d,t,u){var p=(e.data,e.elementSize,new i),s=new n(this.from,this.to);l.pointToLocalFrame(o,f,s.from,s.from),l.pointToLocalFrame(o,f,s.to,s.to);var y=[],c=null,a=null,r=null,w=null,b=e.getIndexOfPosition(s.from.x,s.from.y,y,!1);if(b&&(c=y[0],a=y[1],r=y[0],w=y[1]),b=e.getIndexOfPosition(s.to.x,s.to.y,y,!1),b&&((null===c||y[0]<c)&&(c=y[0]),(null===r||y[0]>r)&&(r=y[0]),(null===a||y[1]<a)&&(a=y[1]),(null===w||y[1]>w)&&(w=y[1])),null===c)return u;var N=[];e.getRectMinMax(c,a,r,w,N);for(var g=(N[0],N[1],c);r>=g;g++)for(var x=a;w>=x;x++)e.getConvexTrianglePillar(g,x,!1),l.pointToWorldFrame(o,f,e.pillarOffset,p),this.intersectConvex(e.pillarConvex,f,p,d,t,u,m),e.getConvexTrianglePillar(g,x,!0),l.pointToWorldFrame(o,f,e.pillarOffset,p),this.intersectConvex(e.pillarConvex,f,p,d,t,u,m);return u},n.prototype[p.types.HEIGHTFIELD]=n.prototype.intersectHeightfield,n.prototype.intersectSphere=function(e,f,n,o,d,t){var l=this.from,u=this.to,p=e.radius,s=Math.pow(u.x-l.x,2)+Math.pow(u.y-l.y,2)+Math.pow(u.z-l.z,2),y=2*((u.x-l.x)*(l.x-n.x)+(u.y-l.y)*(l.y-n.y)+(u.z-l.z)*(l.z-n.z)),c=Math.pow(l.x-n.x,2)+Math.pow(l.y-n.y,2)+Math.pow(l.z-n.z,2)-Math.pow(p,2),a=Math.pow(y,2)-4*s*c;if(0>a)return t;if(0===a){var r=new i;l.lerp(u,a,r);var w=new i;if(r.vsub(n,w),w.normalize(),this.reportIntersection(w,r,e,o,t))return t}else{var b=(-y-Math.sqrt(a))/(2*s),m=(-y+Math.sqrt(a))/(2*s),r=new i;l.lerp(u,b,r);var w=new i;if(r.vsub(n,w),w.normalize(),this.reportIntersection(w,r,e,o,t))return t;l.lerp(u,m,r);var w=new i;if(r.vsub(n,w),w.normalize(),this.reportIntersection(w,r,e,o,t))return t}return t},n.prototype[p.types.SPHERE]=n.prototype.intersectSphere;var N=new i,g=new i,x=new i,j=new i;n.prototype.intersectConvex=function(e,f,n,d,i,t,l){for(var u=g,p=N,s=j,y=x,b=l&&l.faceList||null,m=e.faces,v=e.vertices,A=e.faceNormals,C=this.from,O=this.to,h=C.distanceTo(O),k=-1,q=b?b.length:m.length,z=0;q>z;z++){var B=b?b[z]:z,D=m[B],E=A[B],F=f,G=n;s.copy(v[D[0]]),F.vmult(s,s),s.vadd(G,s),s.vsub(C,s),F.vmult(E,p);var H=i.dot(p);if(!(Math.abs(H)<this.precision)){var I=p.dot(s)/H;if(!(0>I)&&0>H){i.mult(I,c),c.vadd(C,c),a.copy(v[D[0]]),F.vmult(a,a),G.vadd(a,a);for(var J=1;J<D.length-1;J++){r.copy(v[D[J]]),w.copy(v[D[J+1]]),F.vmult(r,r),F.vmult(w,w),G.vadd(r,r),G.vadd(w,w);var K=c.distanceTo(C);!o(c,a,r,w)||K>h||(-1===k||k>K)&&(k=K,u.copy(p),y.copy(c))}}}}return-1!==k&&this.reportIntersection(u,y,e,d,t)?t:t},n.prototype[p.types.CONVEXPOLYHEDRON]=n.prototype.intersectConvex,n.prototype.reportIntersection=function(e,f,n,o,d){var i=this.from,t=this.to,l=i.distanceTo(f);return d instanceof u?((l<d.distance||!d.hasHit)&&(d.hasHit=!0,d.set(i,t,e,f,n,o,l)),!1):(b.set(i,t,e,f,n,o,l),b.hasHit=!0,d(b),!0)};var v=new i,A=new i},{"../collision/AABB":3,"../collision/RaycastResult":10,"../math/Quaternion":25,"../math/Transform":26,"../math/Vec3":27,"../shapes/Box":34,"../shapes/ConvexPolyhedron":35,"../shapes/Shape":40}],10:[function(e,f){function n(){this.rayFromWorld=new o,this.rayToWorld=new o,this.hitNormalWorld=new o,this.hitPointWorld=new o,this.hasHit=!1,this.shape=null,this.body=null,this.distance=-1}var o=e("../math/Vec3");f.exports=n,n.prototype.reset=function(){this.rayFromWorld.setZero(),this.rayToWorld.setZero(),this.hitNormalWorld.setZero(),this.hitPointWorld.setZero(),this.hasHit=!1,this.shape=null,this.body=null,this.distance=-1},n.prototype.set=function(e,f,n,o,d,i,t){this.rayFromWorld.copy(e),this.rayToWorld.copy(f),this.hitNormalWorld.copy(n),this.hitPointWorld.copy(o),this.shape=d,this.body=i,this.distance=t}},{"../math/Vec3":27}],11:[function(e,f){function n(e){o.apply(this),this.axisList=[],this.world=null,this.axisIndex=0;var f=this.axisList;this._addBodyHandler=function(e){f.push(e.body)},this._removeBodyHandler=function(e){var n=f.indexOf(e.body);-1!==n&&f.splice(n,1)},e&&this.setWorld(e)}var o=(e("../shapes/Shape"),e("../collision/Broadphase"));f.exports=n,n.prototype=new o,n.prototype.setWorld=function(e){this.axisList.length=0;for(var f=0;f<e.bodies.length;f++)this.axisList.push(e.bodies[f]);e.removeEventListener("addBody",this._addBodyHandler),e.removeEventListener("removeBody",this._removeBodyHandler),e.addEventListener("addBody",this._addBodyHandler),e.addEventListener("removeBody",this._removeBodyHandler),this.world=e,this.dirty=!0},n.insertionSortX=function(e){for(var f=1,n=e.length;n>f;f++){for(var o=e[f],d=f-1;d>=0&&!(e[d].aabb.lowerBound.x<=o.aabb.lowerBound.x);d--)e[d+1]=e[d];e[d+1]=o}return e},n.insertionSortY=function(e){for(var f=1,n=e.length;n>f;f++){for(var o=e[f],d=f-1;d>=0&&!(e[d].aabb.lowerBound.y<=o.aabb.lowerBound.y);d--)e[d+1]=e[d];e[d+1]=o}return e},n.insertionSortZ=function(e){for(var f=1,n=e.length;n>f;f++){for(var o=e[f],d=f-1;d>=0&&!(e[d].aabb.lowerBound.z<=o.aabb.lowerBound.z);d--)e[d+1]=e[d];e[d+1]=o}return e},n.prototype.collisionPairs=function(e,f,o){var d,i,t=this.axisList,l=t.length,u=this.axisIndex;for(this.dirty&&(this.sortList(),this.dirty=!1),d=0;d!==l;d++){var p=t[d];for(i=d+1;l>i;i++){var s=t[i];if(this.needBroadphaseCollision(p,s)){if(!n.checkBounds(p,s,u))break;this.intersectionTest(p,s,f,o)}}}},n.prototype.sortList=function(){for(var e=this.axisList,f=this.axisIndex,o=e.length,d=0;d!==o;d++){var i=e[d];i.aabbNeedsUpdate&&i.computeAABB()}0===f?n.insertionSortX(e):1===f?n.insertionSortY(e):2===f&&n.insertionSortZ(e)},n.checkBounds=function(e,f,n){var o;0===n&&(o="x"),1===n&&(o="y"),2===n&&(o="z");var d=e.position[o],i=e.boundingRadius,t=f.position[o],l=f.boundingRadius,u=d+i,p=t-l;return u>p},n.prototype.autoDetectAxis=function(){for(var e=0,f=0,n=0,o=0,d=0,i=0,t=this.axisList,l=t.length,u=1/l,p=0;p!==l;p++){var s=t[p],y=s.position.x;e+=y,f+=y*y;var c=s.position.y;n+=c,o+=c*c;var a=s.position.z;d+=a,i+=a*a}var r=f-e*e*u,w=o-n*n*u,b=i-d*d*u;this.axisIndex=r>w?r>b?0:2:w>b?1:2},n.prototype.aabbQuery=function(e,f,n){n=n||[],this.dirty&&(this.sortList(),this.dirty=!1);var o=this.axisIndex,d="x";1===o&&(d="y"),2===o&&(d="z");for(var i=this.axisList,t=(f.lowerBound[d],f.upperBound[d],0);t<i.length;t++){var l=i[t];l.aabbNeedsUpdate&&l.computeAABB(),l.aabb.overlaps(f)&&n.push(l)}return n}},{"../collision/Broadphase":5,"../shapes/Shape":40}],12:[function(e,f){function n(e,f,d){d=o.defaults(d,{collideConnected:!0,wakeUpBodies:!0}),this.equations=[],this.bodyA=e,this.bodyB=f,this.id=n.idCounter++,this.collideConnected=d.collideConnected,d.wakeUpBodies&&(e&&e.wakeUp(),f&&f.wakeUp())}f.exports=n;var o=e("../utils/Utils");n.prototype.update=function(){throw new Error("method update() not implmemented in this Constraint subclass!")},n.idCounter=0},{"../utils/Utils":48}],13:[function(e,f){function n(e,f,n,i){o.call(this,e,f),"undefined"==typeof i&&(i=1e6);var t=this.equations=[new d(e,f)],l=t[0];l.minForce=-i,l.maxForce=i,this.update=function(){f.position.vsub(e.position,l.ni),l.ni.normalize(),l.ni.mult(.5*n,l.ri),l.ni.mult(.5*-n,l.rj)}}f.exports=n;var o=e("./Constraint"),d=e("../equations/ContactEquation");n.prototype=new o},{"../equations/ContactEquation":16,"./Constraint":12}],14:[function(e,f){function n(e,f,n){o.call(this,e,f,n);var u="undefined"!=typeof n.maxForce?n.maxForce:1e6,p=this.pivotA="undefined"!=typeof n.pivotA?n.pivotA.clone():new l,s=this.pivotB="undefined"!=typeof n.pivotB?n.pivotB.clone():new l,y=this.axisA="undefined"!=typeof n.axisA?n.axisA.clone():new l(1,0,0),c=this.axisB="undefined"!=typeof n.axisB?n.axisB.clone():new l(1,0,0),a=(this.equations=[new d(e,f),new d(e,f),new t(e,f),new t(e,f),new t(e,f)],this.getRotationalEquation1(),this.getRotationalEquation2(),this.getPointToPointEquation1()),r=this.getPointToPointEquation2(),w=this.getPointToPointEquation3();r.minForce=w.minForce=a.minForce=-u,r.maxForce=w.maxForce=a.maxForce=u;var b=p.unit(),m=s.unit(),N=this.axisA_x_pivotA=new l,g=this.axisA_x_axisA_x_pivotA=new l,x=this.axisB_x_pivotB=new l;y.cross(b,N),N.norm2()<.001&&b.tangents(N,N),y.cross(N,g),c.cross(m,x),x.norm2()<.001&&c.tangents(x,x),N.normalize(),x.normalize(),this.motorEnabled=!1,this.motorTargetVelocity=0,this.motorMinForce=-u,this.motorMaxForce=u,this.motorEquation=new i(e,f,u)}f.exports=n;var o=e("./Constraint"),d=e("../equations/RotationalEquation"),i=e("../equations/RotationalMotorEquation"),t=e("../equations/ContactEquation"),l=e("../math/Vec3");n.prototype=new o,n.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},n.prototype.disableMotor=function(){this.motorEnabled&&(this.motorEnabled=!1,this.equations.pop())},n.prototype.update=function(){var e=this.bodyA,f=this.bodyB,n=this.equations,o=this.motorEquation,d=n[0],i=n[1],t=n[2],l=n[3],u=n[4],p=this.axisA_x_pivotA,s=this.axisA,y=this.axisB,c=this.pivotA,a=this.pivotB,r=this.axisA_x_axisA_x_pivotA,w=this.axisB_x_pivotB;t.ni.set(1,0,0),l.ni.set(0,1,0),u.ni.set(0,0,1),e.quaternion.vmult(this.pivotA,t.ri),f.quaternion.vmult(this.pivotB,t.rj),l.ri.copy(t.ri),l.rj.copy(t.rj),u.ri.copy(t.ri),u.rj.copy(t.rj),s.cross(c,p),p.norm2()<.001&&c.tangents(p,p),s.cross(p,r),y.cross(a,w),w.norm2()<.001&&y.tangents(w,w),p.normalize(),w.normalize(),e.quaternion.vmult(p,d.ni),f.quaternion.vmult(y,d.nj),e.quaternion.vmult(r,i.ni),f.quaternion.vmult(y,i.nj),this.motorEnabled&&(e.quaternion.vmult(this.axisA,o.axisA),f.quaternion.vmult(this.axisB,o.axisB),o.targetVelocity=this.motorTargetVelocity,o.maxForce=this.motorMaxForce,o.minForce=this.motorMinForce)},n.prototype.getRotationalEquation1=function(){return this.equations[0]},n.prototype.getRotationalEquation2=function(){return this.equations[1]},n.prototype.getPointToPointEquation1=function(){return this.equations[2]},n.prototype.getPointToPointEquation2=function(){return this.equations[3]},n.prototype.getPointToPointEquation3=function(){return this.equations[4]}},{"../equations/ContactEquation":16,"../equations/RotationalEquation":19,"../equations/RotationalMotorEquation":20,"../math/Vec3":27,"./Constraint":12}],15:[function(e,f){function n(e,f,n,i,t){o.call(this,e,n);var l=this.equations=[new d(e,n),new d(e,n),new d(e,n)],u=l[0],p=l[1],s=l[2];p.minForce=s.minForce=u.minForce=-t,p.maxForce=s.maxForce=u.maxForce=t,this.update=function(){n.position.vsub(e.position,u.ni),u.ni.normalize(),e.quaternion.vmult(f,u.ri),n.quaternion.vmult(i,u.rj),u.ni.tangents(p.ni,s.ni),p.ri.copy(u.ri),p.rj.copy(u.rj),s.ri.copy(u.ri),s.rj.copy(u.rj)}}f.exports=n;var o=e("./Constraint"),d=e("../equations/ContactEquation");n.prototype=new o},{"../equations/ContactEquation":16,"./Constraint":12}],16:[function(e,f){function n(e,f){o.call(this,e,f,0,1e6),this.restitution=0,this.ri=new d,this.rj=new d,this.penetrationVec=new d,this.ni=new d,this.rixn=new d,this.rjxn=new d,this.invIi=new i,this.invIj=new i,this.biInvInertiaTimesRixn=new d,this.bjInvInertiaTimesRjxn=new d}f.exports=n;var o=e("./Equation"),d=e("../math/Vec3"),i=e("../math/Mat3");n.prototype=new o,n.prototype.constructor=n;var t=new d,l=new d,u=new d;n.prototype.computeB=function(e){var f=this.a,n=this.b,o=this.bi,d=this.bj,i=this.ri,p=this.rj,s=this.rixn,y=this.rjxn,c=u,a=o.velocity,r=o.angularVelocity?o.angularVelocity:c,w=(o.force,o.torque?o.torque:c),b=d.velocity,m=d.angularVelocity?d.angularVelocity:c,N=(d.force,d.torque?d.torque:c),g=this.penetrationVec,x=(o.invMass,d.invMass,this.invIi,this.invIj,this.jacobianElementA),j=this.jacobianElementB,v=this.ni;i.cross(v,s),p.cross(v,y),v.negate(x.spatial),s.negate(x.rotational),j.spatial.copy(v),j.rotational.copy(y);var g=this.penetrationVec;g.set(0,0,0),g.vadd(d.position,g),g.vadd(p,g),g.vsub(o.position,g),g.vsub(i,g);var A=v.dot(g),C=t,O=l;o.invInertiaWorld?o.invInertiaWorld.vmult(w,C):C.set(0,0,0),d.invInertiaWorld?d.invInertiaWorld.vmult(N,O):O.set(0,0,0);var h=this.restitution+1,k=h*b.dot(v)-h*a.dot(v)+m.dot(y)-r.dot(s),q=this.computeGiMf(),z=-A*f-k*n-e*q;return z}},{"../math/Mat3":24,"../math/Vec3":27,"./Equation":17}],17:[function(e,f){function n(e,f,n,d){this.id=-1,this.minForce="undefined"==typeof n?-1e6:n,this.maxForce="undefined"==typeof d?1e6:d,this.bi=e,this.bj=f,this.a=0,this.b=0,this.eps=0,this.jacobianElementA=new o,this.jacobianElementB=new o,this.setSpookParams(1e7,4,1/60),this.enabled=!0}f.exports=n;var o=e("../math/JacobianElement"),d=e("../math/Vec3");n.prototype.constructor=n,n.prototype.setSpookParams=function(e,f,n){var o=f,d=e,i=n;this.a=4/(i*(1+4*o)),this.b=4*o/(1+4*o),this.eps=4/(i*i*d*(1+4*o))},n.prototype.computeB=function(e,f,n){var o=this.computeGW(),d=this.computeGq(),i=this.computeGiMf();return-d*e-o*f-i*n},n.prototype.computeGq=function(){var e=this.jacobianElementA,f=this.jacobianElementB,n=this.bi,o=this.bj,d=n.position,i=o.position;return e.spatial.dot(d)+f.spatial.dot(i)};var i=new d;n.prototype.computeGW=function(){var e=this.jacobianElementA,f=this.jacobianElementB,n=this.bi,o=this.bj,d=n.velocity,t=o.velocity,l=n.angularVelocity||i,u=o.angularVelocity||i;return e.multiplyVectors(d,l)+f.multiplyVectors(t,u)},n.prototype.computeGWlambda=function(){var e=this.jacobianElementA,f=this.jacobianElementB,n=this.bi,o=this.bj,d=n.vlambda,t=o.vlambda,l=n.wlambda||i,u=o.wlambda||i;return e.multiplyVectors(d,l)+f.multiplyVectors(t,u)};var t=new d,l=new d,u=new d,p=new d;n.prototype.computeGiMf=function(){var e=this.jacobianElementA,f=this.jacobianElementB,n=this.bi,o=this.bj,d=n.force,i=n.torque,s=o.force,y=o.torque,c=n.invMassSolve,a=o.invMassSolve;return n.invInertiaWorldSolve?n.invInertiaWorldSolve.vmult(i,u):u.set(0,0,0),o.invInertiaWorldSolve?o.invInertiaWorldSolve.vmult(y,p):p.set(0,0,0),d.mult(c,t),s.mult(a,l),e.multiplyVectors(t,u)+f.multiplyVectors(l,p)};var s=new d;n.prototype.computeGiMGt=function(){var e=this.jacobianElementA,f=this.jacobianElementB,n=this.bi,o=this.bj,d=n.invMassSolve,i=o.invMassSolve,t=n.invInertiaWorldSolve,l=o.invInertiaWorldSolve,u=d+i;return t&&(t.vmult(e.rotational,s),u+=s.dot(e.rotational)),l&&(l.vmult(f.rotational,s),u+=s.dot(f.rotational)),u};{var y=new d;new d,new d,new d,new d,new d}n.prototype.addToWlambda=function(e){var f=this.jacobianElementA,n=this.jacobianElementB,o=this.bi,d=this.bj,i=y;f.spatial.mult(o.invMassSolve*e,i),o.vlambda.vadd(i,o.vlambda),n.spatial.mult(d.invMassSolve*e,i),d.vlambda.vadd(i,d.vlambda),o.invInertiaWorldSolve&&(o.invInertiaWorldSolve.vmult(f.rotational,i),i.mult(e,i),o.wlambda.vadd(i,o.wlambda)),d.invInertiaWorldSolve&&(d.invInertiaWorldSolve.vmult(n.rotational,i),i.mult(e,i),d.wlambda.vadd(i,d.wlambda))},n.prototype.computeC=function(){return this.computeGiMGt()+this.eps}},{"../math/JacobianElement":23,"../math/Vec3":27}],18:[function(e,f){function n(e,f,n){o.call(this,e,f,-n,n),this.ri=new d,this.rj=new d,this.t=new d,this.rixt=new d,this.rjxt=new d,this.wixri=new d,this.wjxrj=new d,this.invIi=new i,this.invIj=new i,this.relVel=new d,this.relForce=new d,this.biInvInertiaTimesRixt=new d,this.bjInvInertiaTimesRjxt=new d}f.exports=n;var o=e("./Equation"),d=e("../math/Vec3"),i=e("../math/Mat3");n.prototype=new o,n.prototype.constructor=n;var t=new d,l=new d,u=new d;n.prototype.computeB=function(e){var f=(this.a,this.b),n=this.bi,o=this.bj,d=this.ri,i=this.rj,p=this.rixt,s=this.rjxt,y=this.wixri,c=this.wjxrj,a=u,r=(n.velocity,n.angularVelocity?n.angularVelocity:a),w=(n.force,n.torque?n.torque:a),b=(o.velocity,o.angularVelocity?o.angularVelocity:a),m=(o.force,o.torque?o.torque:a),N=(this.relVel,this.relForce,n.invMass,o.invMass,this.invIi,this.invIj,this.t),g=t,x=l;d.cross(N,p),i.cross(N,s),r.cross(d,y),b.cross(i,c);var j=this.jacobianElementA,v=this.jacobianElementB;N.negate(j.spatial),p.negate(j.rotational),v.spatial.copy(N),v.rotational.copy(s),n.invInertiaWorld?n.invInertiaWorld.vmult(w,g):g.set(0,0,0),o.invInertiaWorld?o.invInertiaWorld.vmult(m,x):x.set(0,0,0);var A=this.computeGW(),C=this.computeGiMf(),O=-A*f-e*C;return O}},{"../math/Mat3":24,"../math/Vec3":27,"./Equation":17}],19:[function(e,f){function n(e,f){i.call(this,e,f,-1e6,1e6),this.ni=new o,this.nj=new o,this.nixnj=new o,this.njxni=new o,this.invIi=new d,this.invIj=new d,this.relVel=new o,this.relForce=new o}f.exports=n;var o=e("../math/Vec3"),d=e("../math/Mat3"),i=e("./Equation");n.prototype=new i,n.prototype.constructor=n;var t=new o;n.prototype.computeB=function(e){{var f=this.a,n=this.b,o=this.bi,d=this.bj,i=this.ni,l=this.nj,u=this.nixnj,p=this.njxni,s=(o.velocity,o.angularVelocity?o.angularVelocity:t,o.force,o.torque?o.torque:t,d.velocity,d.angularVelocity?d.angularVelocity:t,d.force,d.torque?d.torque:t,o.invMass,d.invMass,this.jacobianElementA),y=this.jacobianElementB;this.invIi,this.invIj}i.cross(l,u),l.cross(i,p),s.rotational.copy(p),y.rotational.copy(u);var c=-i.dot(l),a=this.computeGW(),r=this.computeGiMf(),w=-c*f-a*n-e*r;return w}},{"../math/Mat3":24,"../math/Vec3":27,"./Equation":17}],20:[function(e,f){function n(e,f,n){n=n||1e6,i.call(this,e,f,-n,n),this.axisA=new o,this.axisB=new o,this.invIi=new d,this.invIj=new d,this.targetVelocity=0}f.exports=n;var o=e("../math/Vec3"),d=e("../math/Mat3"),i=e("./Equation");n.prototype=new i,n.prototype.constructor=n;var t=new o;n.prototype.computeB=function(e){{var f=(this.a,this.b),n=this.bi,o=this.bj,d=this.axisA,i=this.axisB,l=(n.velocity,n.angularVelocity?n.angularVelocity:t,n.force,n.torque?n.torque:t,o.velocity,o.angularVelocity?o.angularVelocity:t,o.force,o.torque?o.torque:t,this.jacobianElementA),u=this.jacobianElementB;n.invMass,o.invMass}l.rotational.copy(d),i.negate(u.rotational);var p=this.computeGW()-this.targetVelocity,s=this.computeGiMf(),y=-p*f-e*s;return y}},{"../math/Mat3":24,"../math/Vec3":27,"./Equation":17}],21:[function(e,f){function n(e,f,d){d=o.defaults(d,{friction:.3,restitution:.3,contactEquationStiffness:1e7,contactEquationRelaxation:3,frictionEquationStiffness:1e7,frictionEquationRelaxation:3}),this.id=n.idCounter++,this.materials=[e,f],this.friction=d.friction,this.restitution=d.restitution,this.contactEquationStiffness=d.contactEquationStiffness,this.contactEquationRelaxation=d.contactEquationRelaxation,this.frictionEquationStiffness=d.frictionEquationStiffness,this.frictionEquationRelaxation=d.frictionEquationRelaxation}var o=e("../utils/Utils");f.exports=n,n.idCounter=0
|
|
25
|
+
},{"../utils/Utils":48}],22:[function(e,f){function n(e){this.name=e,this.id=n.idCounter++}f.exports=n,n.idCounter=0},{}],23:[function(e,f){function n(){this.spatial=new o,this.rotational=new o}f.exports=n;var o=e("./Vec3");n.prototype.multiplyElement=function(e){return e.spatial.dot(this.spatial)+e.rotational.dot(this.rotational)},n.prototype.multiplyVectors=function(e,f){return e.dot(this.spatial)+f.dot(this.rotational)}},{"./Vec3":27}],24:[function(e,f){function n(e){this.elements=e?e:[0,0,0,0,0,0,0,0,0]}f.exports=n;var o=e("./Vec3");n.prototype.identity=function(){this.elements[0]=1,this.elements[1]=0,this.elements[2]=0,this.elements[3]=0,this.elements[4]=1,this.elements[5]=0,this.elements[6]=0,this.elements[7]=0,this.elements[8]=1},n.prototype.setZero=function(){var e=this.elements;e[0]=0,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=0,e[6]=0,e[7]=0,e[8]=0},n.prototype.setTrace=function(e){var f=this.elements;f[0]=e.x,f[4]=e.y,f[8]=e.z},n.prototype.getTrace=function(e){var e=e||new o,f=this.elements;e.x=f[0],e.y=f[4],e.z=f[8]},n.prototype.vmult=function(e,f){f=f||new o;var n=this.elements,d=e.x,i=e.y,t=e.z;return f.x=n[0]*d+n[1]*i+n[2]*t,f.y=n[3]*d+n[4]*i+n[5]*t,f.z=n[6]*d+n[7]*i+n[8]*t,f},n.prototype.smult=function(e){for(var f=0;f<this.elements.length;f++)this.elements[f]*=e},n.prototype.mmult=function(e,f){for(var o=f||new n,d=0;3>d;d++)for(var i=0;3>i;i++){for(var t=0,l=0;3>l;l++)t+=e.elements[d+3*l]*this.elements[l+3*i];o.elements[d+3*i]=t}return o},n.prototype.scale=function(e,f){f=f||new n;for(var o=this.elements,d=f.elements,i=0;3!==i;i++)d[3*i+0]=e.x*o[3*i+0],d[3*i+1]=e.y*o[3*i+1],d[3*i+2]=e.z*o[3*i+2];return f},n.prototype.solve=function(e,f){f=f||new o;for(var n=3,d=4,i=[],t=0;n*d>t;t++)i.push(0);var t,l;for(t=0;3>t;t++)for(l=0;3>l;l++)i[t+d*l]=this.elements[t+3*l];i[3]=e.x,i[7]=e.y,i[11]=e.z;var u,p,s=3,y=s,c=4;do{if(t=y-s,0===i[t+d*t])for(l=t+1;y>l;l++)if(0!==i[t+d*l]){u=c;do p=c-u,i[p+d*t]+=i[p+d*l];while(--u);break}if(0!==i[t+d*t])for(l=t+1;y>l;l++){var a=i[t+d*l]/i[t+d*t];u=c;do p=c-u,i[p+d*l]=t>=p?0:i[p+d*l]-i[p+d*t]*a;while(--u)}}while(--s);if(f.z=i[2*d+3]/i[2*d+2],f.y=(i[1*d+3]-i[1*d+2]*f.z)/i[1*d+1],f.x=(i[0*d+3]-i[0*d+2]*f.z-i[0*d+1]*f.y)/i[0*d+0],isNaN(f.x)||isNaN(f.y)||isNaN(f.z)||1/0===f.x||1/0===f.y||1/0===f.z)throw"Could not solve equation! Got x=["+f.toString()+"], b=["+e.toString()+"], A=["+this.toString()+"]";return f},n.prototype.e=function(e,f,n){return void 0===n?this.elements[f+3*e]:void(this.elements[f+3*e]=n)},n.prototype.copy=function(e){for(var f=0;f<e.elements.length;f++)this.elements[f]=e.elements[f];return this},n.prototype.toString=function(){for(var e="",f=",",n=0;9>n;n++)e+=this.elements[n]+f;return e},n.prototype.reverse=function(e){e=e||new n;for(var f=3,o=6,d=[],i=0;f*o>i;i++)d.push(0);var i,t;for(i=0;3>i;i++)for(t=0;3>t;t++)d[i+o*t]=this.elements[i+3*t];d[3]=1,d[9]=0,d[15]=0,d[4]=0,d[10]=1,d[16]=0,d[5]=0,d[11]=0,d[17]=1;var l,u,p=3,s=p,y=o;do{if(i=s-p,0===d[i+o*i])for(t=i+1;s>t;t++)if(0!==d[i+o*t]){l=y;do u=y-l,d[u+o*i]+=d[u+o*t];while(--l);break}if(0!==d[i+o*i])for(t=i+1;s>t;t++){var c=d[i+o*t]/d[i+o*i];l=y;do u=y-l,d[u+o*t]=i>=u?0:d[u+o*t]-d[u+o*i]*c;while(--l)}}while(--p);i=2;do{t=i-1;do{var c=d[i+o*t]/d[i+o*i];l=o;do u=o-l,d[u+o*t]=d[u+o*t]-d[u+o*i]*c;while(--l)}while(t--)}while(--i);i=2;do{var c=1/d[i+o*i];l=o;do u=o-l,d[u+o*i]=d[u+o*i]*c;while(--l)}while(i--);i=2;do{t=2;do{if(u=d[f+t+o*i],isNaN(u)||1/0===u)throw"Could not reverse! A=["+this.toString()+"]";e.e(i,t,u)}while(t--)}while(i--);return e},n.prototype.setRotationFromQuaternion=function(e){var f=e.x,n=e.y,o=e.z,d=e.w,i=f+f,t=n+n,l=o+o,u=f*i,p=f*t,s=f*l,y=n*t,c=n*l,a=o*l,r=d*i,w=d*t,b=d*l,m=this.elements;return m[0]=1-(y+a),m[1]=p-b,m[2]=s+w,m[3]=p+b,m[4]=1-(u+a),m[5]=c-r,m[6]=s-w,m[7]=c+r,m[8]=1-(u+y),this},n.prototype.transpose=function(e){e=e||new n;for(var f=e.elements,o=this.elements,d=0;3!==d;d++)for(var i=0;3!==i;i++)f[3*d+i]=o[3*i+d];return e}},{"./Vec3":27}],25:[function(e,f){function n(e,f,n,o){this.x=void 0!==e?e:0,this.y=void 0!==f?f:0,this.z=void 0!==n?n:0,this.w=void 0!==o?o:1}f.exports=n;var o=e("./Vec3");n.prototype.set=function(e,f,n,o){this.x=e,this.y=f,this.z=n,this.w=o},n.prototype.toString=function(){return this.x+","+this.y+","+this.z+","+this.w},n.prototype.toArray=function(){return[this.x,this.y,this.z,this.w]},n.prototype.setFromAxisAngle=function(e,f){var n=Math.sin(.5*f);this.x=e.x*n,this.y=e.y*n,this.z=e.z*n,this.w=Math.cos(.5*f)},n.prototype.toAxisAngle=function(e){e=e||new o,this.normalize();var f=2*Math.acos(this.w),n=Math.sqrt(1-this.w*this.w);return.001>n?(e.x=this.x,e.y=this.y,e.z=this.z):(e.x=this.x/n,e.y=this.y/n,e.z=this.z/n),[e,f]};var d=new o,i=new o;n.prototype.setFromVectors=function(e,f){if(e.isAntiparallelTo(f)){var n=d,o=i;e.tangents(n,o),this.setFromAxisAngle(n,Math.PI)}else{var t=e.cross(f);this.x=t.x,this.y=t.y,this.z=t.z,this.w=Math.sqrt(Math.pow(e.norm(),2)*Math.pow(f.norm(),2))+e.dot(f),this.normalize()}};var t=new o,l=new o,u=new o;n.prototype.mult=function(e,f){f=f||new n;var o=this.w,d=t,i=l,p=u;return d.set(this.x,this.y,this.z),i.set(e.x,e.y,e.z),f.w=o*e.w-d.dot(i),d.cross(i,p),f.x=o*i.x+e.w*d.x+p.x,f.y=o*i.y+e.w*d.y+p.y,f.z=o*i.z+e.w*d.z+p.z,f},n.prototype.inverse=function(e){var f=this.x,o=this.y,d=this.z,i=this.w;e=e||new n,this.conjugate(e);var t=1/(f*f+o*o+d*d+i*i);return e.x*=t,e.y*=t,e.z*=t,e.w*=t,e},n.prototype.conjugate=function(e){return e=e||new n,e.x=-this.x,e.y=-this.y,e.z=-this.z,e.w=this.w,e},n.prototype.normalize=function(){var e=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);0===e?(this.x=0,this.y=0,this.z=0,this.w=0):(e=1/e,this.x*=e,this.y*=e,this.z*=e,this.w*=e)},n.prototype.normalizeFast=function(){var e=(3-(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w))/2;0===e?(this.x=0,this.y=0,this.z=0,this.w=0):(this.x*=e,this.y*=e,this.z*=e,this.w*=e)},n.prototype.vmult=function(e,f){f=f||new o;var n=e.x,d=e.y,i=e.z,t=this.x,l=this.y,u=this.z,p=this.w,s=p*n+l*i-u*d,y=p*d+u*n-t*i,c=p*i+t*d-l*n,a=-t*n-l*d-u*i;return f.x=s*p+a*-t+y*-u-c*-l,f.y=y*p+a*-l+c*-t-s*-u,f.z=c*p+a*-u+s*-l-y*-t,f},n.prototype.copy=function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this},n.prototype.toEuler=function(e,f){f=f||"YZX";var n,o,d,i=this.x,t=this.y,l=this.z,u=this.w;switch(f){case"YZX":var p=i*t+l*u;if(p>.499&&(n=2*Math.atan2(i,u),o=Math.PI/2,d=0),-.499>p&&(n=-2*Math.atan2(i,u),o=-Math.PI/2,d=0),isNaN(n)){var s=i*i,y=t*t,c=l*l;n=Math.atan2(2*t*u-2*i*l,1-2*y-2*c),o=Math.asin(2*p),d=Math.atan2(2*i*u-2*t*l,1-2*s-2*c)}break;default:throw new Error("Euler order "+f+" not supported yet.")}e.y=n,e.z=o,e.x=d},n.prototype.setFromEuler=function(e,f,n,o){o=o||"XYZ";var d=Math.cos(e/2),i=Math.cos(f/2),t=Math.cos(n/2),l=Math.sin(e/2),u=Math.sin(f/2),p=Math.sin(n/2);return"XYZ"===o?(this.x=l*i*t+d*u*p,this.y=d*u*t-l*i*p,this.z=d*i*p+l*u*t,this.w=d*i*t-l*u*p):"YXZ"===o?(this.x=l*i*t+d*u*p,this.y=d*u*t-l*i*p,this.z=d*i*p-l*u*t,this.w=d*i*t+l*u*p):"ZXY"===o?(this.x=l*i*t-d*u*p,this.y=d*u*t+l*i*p,this.z=d*i*p+l*u*t,this.w=d*i*t-l*u*p):"ZYX"===o?(this.x=l*i*t-d*u*p,this.y=d*u*t+l*i*p,this.z=d*i*p-l*u*t,this.w=d*i*t+l*u*p):"YZX"===o?(this.x=l*i*t+d*u*p,this.y=d*u*t+l*i*p,this.z=d*i*p-l*u*t,this.w=d*i*t-l*u*p):"XZY"===o&&(this.x=l*i*t-d*u*p,this.y=d*u*t-l*i*p,this.z=d*i*p+l*u*t,this.w=d*i*t+l*u*p),this},n.prototype.clone=function(){return new n(this.x,this.y,this.z,this.w)}},{"./Vec3":27}],26:[function(e,f){function n(){this.position=new o,this.quaternion=new d}var o=e("./Vec3"),d=e("./Quaternion");f.exports=n;var i=new d;n.pointToLocalFrame=function(e,f,n,d){var d=d||new o;return n.vsub(e,d),f.conjugate(i),i.vmult(d,d),d},n.pointToWorldFrame=function(e,f,n,d){var d=d||new o;return f.vmult(n,d),d.vadd(e,d),d},n.prototype.vectorToWorldFrame=function(e,f){var f=f||new o;return this.quaternion.vmult(e,f),f},n.vectorToLocalFrame=function(e,f,n,d){var d=d||new o;return f.w*=-1,f.vmult(n,d),f.w*=-1,d}},{"./Quaternion":25,"./Vec3":27}],27:[function(e,f){function n(e,f,n){this.x=e||0,this.y=f||0,this.z=n||0}f.exports=n;var o=e("./Mat3");n.ZERO=new n(0,0,0),n.prototype.cross=function(e,f){var o=e.x,d=e.y,i=e.z,t=this.x,l=this.y,u=this.z;return f=f||new n,f.x=l*i-u*d,f.y=u*o-t*i,f.z=t*d-l*o,f},n.prototype.set=function(e,f,n){return this.x=e,this.y=f,this.z=n,this},n.prototype.setZero=function(){this.x=this.y=this.z=0},n.prototype.vadd=function(e,f){return f?(f.x=e.x+this.x,f.y=e.y+this.y,f.z=e.z+this.z,void 0):new n(this.x+e.x,this.y+e.y,this.z+e.z)},n.prototype.vsub=function(e,f){return f?(f.x=this.x-e.x,f.y=this.y-e.y,f.z=this.z-e.z,void 0):new n(this.x-e.x,this.y-e.y,this.z-e.z)},n.prototype.crossmat=function(){return new o([0,-this.z,this.y,this.z,0,-this.x,-this.y,this.x,0])},n.prototype.normalize=function(){var e=this.x,f=this.y,n=this.z,o=Math.sqrt(e*e+f*f+n*n);if(o>0){var d=1/o;this.x*=d,this.y*=d,this.z*=d}else this.x=0,this.y=0,this.z=0;return o},n.prototype.unit=function(e){e=e||new n;var f=this.x,o=this.y,d=this.z,i=Math.sqrt(f*f+o*o+d*d);return i>0?(i=1/i,e.x=f*i,e.y=o*i,e.z=d*i):(e.x=1,e.y=0,e.z=0),e},n.prototype.norm=function(){var e=this.x,f=this.y,n=this.z;return Math.sqrt(e*e+f*f+n*n)},n.prototype.norm2=function(){return this.dot(this)},n.prototype.distanceTo=function(e){var f=this.x,n=this.y,o=this.z,d=e.x,i=e.y,t=e.z;return Math.sqrt((d-f)*(d-f)+(i-n)*(i-n)+(t-o)*(t-o))},n.prototype.mult=function(e,f){f=f||new n;var o=this.x,d=this.y,i=this.z;return f.x=e*o,f.y=e*d,f.z=e*i,f},n.prototype.scale=n.prototype.mult,n.prototype.dot=function(e){return this.x*e.x+this.y*e.y+this.z*e.z},n.prototype.isZero=function(){return 0===this.x&&0===this.y&&0===this.z},n.prototype.negate=function(e){return e=e||new n,e.x=-this.x,e.y=-this.y,e.z=-this.z,e};var d=new n,i=new n;n.prototype.tangents=function(e,f){var n=this.norm();if(n>0){var o=d,t=1/n;o.set(this.x*t,this.y*t,this.z*t);var l=i;Math.abs(o.x)<.9?(l.set(1,0,0),o.cross(l,e)):(l.set(0,1,0),o.cross(l,e)),o.cross(e,f)}else e.set(1,0,0).normalize(),f.set(0,1,0).normalize()},n.prototype.toString=function(){return this.x+","+this.y+","+this.z},n.prototype.toArray=function(){return[this.x,this.y,this.z]},n.prototype.copy=function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},n.prototype.lerp=function(e,f,n){var o=this.x,d=this.y,i=this.z;n.x=o+(e.x-o)*f,n.y=d+(e.y-d)*f,n.z=i+(e.z-i)*f},n.prototype.almostEquals=function(e,f){return void 0===f&&(f=1e-6),Math.abs(this.x-e.x)>f||Math.abs(this.y-e.y)>f||Math.abs(this.z-e.z)>f?!1:!0},n.prototype.almostZero=function(e){return void 0===e&&(e=1e-6),Math.abs(this.x)>e||Math.abs(this.y)>e||Math.abs(this.z)>e?!1:!0};var t=new n;n.prototype.isAntiparallelTo=function(e,f){return this.negate(t),t.almostEquals(e,f)},n.prototype.clone=function(){return new n(this.x,this.y,this.z)}},{"./Mat3":24}],28:[function(e,f){function n(e){e=e||{},o.apply(this),this.id=n.idCounter++,this.world=null,this.preStep=null,this.postStep=null,this.vlambda=new d,this.collisionFilterGroup=1,this.collisionFilterMask=1,this.collisionResponse=!0,this.position=new d,e.position&&this.position.copy(e.position),this.previousPosition=new d,this.initPosition=new d,this.velocity=new d,e.velocity&&this.velocity.copy(e.velocity),this.initVelocity=new d,this.force=new d;var f="number"==typeof e.mass?e.mass:0;this.mass=f,this.invMass=f>0?1/f:0,this.material=e.material||null,this.linearDamping="number"==typeof e.linearDamping?e.linearDamping:.01,this.type=0>=f?n.STATIC:n.DYNAMIC,typeof e.type==typeof n.STATIC&&(this.type=e.type),this.allowSleep=!0,this.sleepState=0,this.sleepSpeedLimit=.1,this.sleepTimeLimit=1,this.timeLastSleepy=0,this._wakeUpAfterNarrowphase=!1,this.torque=new d,this.quaternion=new t,e.quaternion&&this.quaternion.copy(e.quaternion),this.initQuaternion=new t,this.angularVelocity=new d,e.angularVelocity&&this.angularVelocity.copy(e.angularVelocity),this.initAngularVelocity=new d,this.interpolatedPosition=new d,this.interpolatedQuaternion=new t,this.shapes=[],this.shapeOffsets=[],this.shapeOrientations=[],this.inertia=new d,this.invInertia=new d,this.invInertiaWorld=new i,this.invMassSolve=0,this.invInertiaSolve=new d,this.invInertiaWorldSolve=new i,this.fixedRotation=!1,this.angularDamping=.01,this.aabb=new l,this.aabbNeedsUpdate=!0,this.wlambda=new d,this.updateMassProperties()}f.exports=n;var o=e("../utils/EventTarget"),d=(e("../shapes/Shape"),e("../math/Vec3")),i=e("../math/Mat3"),t=e("../math/Quaternion"),l=(e("../material/Material"),e("../collision/AABB")),u=e("../shapes/Box");n.prototype=new o,n.prototype.constructor=n,n.DYNAMIC=1,n.STATIC=2,n.KINEMATIC=4,n.AWAKE=0,n.SLEEPY=1,n.SLEEPING=2,n.idCounter=0,n.prototype.wakeUp=function(){var e=this.sleepState;this.sleepState=0,e===n.SLEEPING&&this.dispatchEvent({type:"wakeup"})},n.prototype.sleep=function(){this.sleepState=n.SLEEPING,this.velocity.set(0,0,0),this.angularVelocity.set(0,0,0)},n.sleepyEvent={type:"sleepy"},n.sleepEvent={type:"sleep"},n.prototype.sleepTick=function(e){if(this.allowSleep){var f=this.sleepState,o=this.velocity.norm2()+this.angularVelocity.norm2(),d=Math.pow(this.sleepSpeedLimit,2);f===n.AWAKE&&d>o?(this.sleepState=n.SLEEPY,this.timeLastSleepy=e,this.dispatchEvent(n.sleepyEvent)):f===n.SLEEPY&&o>d?this.wakeUp():f===n.SLEEPY&&e-this.timeLastSleepy>this.sleepTimeLimit&&(this.sleep(),this.dispatchEvent(n.sleepEvent))}},n.prototype.updateSolveMassProperties=function(){this.sleepState===n.SLEEPING||this.type===n.KINEMATIC?(this.invMassSolve=0,this.invInertiaSolve.setZero(),this.invInertiaWorldSolve.setZero()):(this.invMassSolve=this.invMass,this.invInertiaSolve.copy(this.invInertia),this.invInertiaWorldSolve.copy(this.invInertiaWorld))},n.prototype.pointToLocalFrame=function(e,f){var f=f||new d;return e.vsub(this.position,f),this.quaternion.conjugate().vmult(f,f),f},n.prototype.pointToWorldFrame=function(e,f){var f=f||new d;return this.quaternion.vmult(e,f),f.vadd(this.position,f),f},n.prototype.vectorToWorldFrame=function(e,f){var f=f||new d;return this.quaternion.vmult(e,f),f};var p=new d,s=new t;n.prototype.addShape=function(e,f,n){var o=new d,i=new t;f&&o.copy(f),n&&i.copy(n),this.shapes.push(e),this.shapeOffsets.push(o),this.shapeOrientations.push(i),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0},n.prototype.updateBoundingRadius=function(){for(var e=this.shapes,f=this.shapeOffsets,n=e.length,o=0,d=0;d!==n;d++){var i=e[d];i.updateBoundingSphereRadius();var t=f[d].norm(),l=i.boundingSphereRadius;t+l>o&&(o=t+l)}this.boundingRadius=o};var y=new l;n.prototype.computeAABB=function(){for(var e=this.shapes,f=this.shapeOffsets,n=this.shapeOrientations,o=e.length,d=p,i=s,t=this.quaternion,l=this.aabb,u=y,c=0;c!==o;c++){var a=e[c];n[c].mult(t,i),i.vmult(f[c],d),d.vadd(this.position,d),a.calculateWorldAABB(d,i,u.lowerBound,u.upperBound),0===c?l.copy(u):l.extend(u)}this.aabbNeedsUpdate=!1};{var c=new i,a=new i;new i}n.prototype.updateInertiaWorld=function(e){var f=this.invInertia;if(f.x!==f.y||f.y!==f.z||e){var n=c,o=a;n.setRotationFromQuaternion(this.quaternion),n.transpose(o),n.scale(f,n),n.mmult(o,this.invInertiaWorld)}else;};var r=new d,w=new d;n.prototype.applyForce=function(e,f){if(this.type===n.DYNAMIC){var o=r;f.vsub(this.position,o);var d=w;o.cross(e,d),this.force.vadd(e,this.force),this.torque.vadd(d,this.torque)}};var b=new d,m=new d,N=new d;n.prototype.applyImpulse=function(e,f){if(this.type===n.DYNAMIC){var o=b;f.vsub(this.position,o);var d=m;d.copy(e),d.mult(this.invMass,d),this.velocity.vadd(d,this.velocity);var i=N;o.cross(e,i),this.invInertiaWorld.vmult(i,i),this.angularVelocity.vadd(i,this.angularVelocity)}},n.prototype.updateMassProperties=function(){new d;this.invMass=this.mass>0?1/this.mass:0;var e=this.inertia,f=this.fixedRotation;this.computeAABB(),u.calculateInertia(new d((this.aabb.upperBound.x-this.aabb.lowerBound.x)/2,(this.aabb.upperBound.y-this.aabb.lowerBound.y)/2,(this.aabb.upperBound.z-this.aabb.lowerBound.z)/2),this.mass,e),this.invInertia.set(e.x>0&&!f?1/e.x:0,e.y>0&&!f?1/e.y:0,e.z>0&&!f?1/e.z:0),this.updateInertiaWorld(!0)},n.prototype.getVelocityAtWorldPoint=function(e,f){var n=new d;return e.vsub(this.position,n),this.angularVelocity.cross(n,f),this.velocity.vadd(f,f),f}},{"../collision/AABB":3,"../material/Material":22,"../math/Mat3":24,"../math/Quaternion":25,"../math/Vec3":27,"../shapes/Box":34,"../shapes/Shape":40,"../utils/EventTarget":45}],29:[function(e,f){function n(e){this.chassisBody=e.chassisBody,this.wheelInfos=[],this.sliding=!1,this.world=null,this.indexRightAxis="undefined"!=typeof e.indexRightAxis?e.indexRightAxis:1,this.indexForwardAxis="undefined"!=typeof e.indexForwardAxis?e.indexForwardAxis:0,this.indexUpAxis="undefined"!=typeof e.indexUpAxis?e.indexUpAxis:2}function o(e,f,n,o,i){var t=0,l=n,u=x,p=j,s=v;e.getVelocityAtWorldPoint(l,u),f.getVelocityAtWorldPoint(l,p),u.vsub(p,s);var y=o.dot(s),c=d(e,n,o),a=d(f,n,o),r=1,w=r/(c+a);return t=-y*w,t>i&&(t=i),-i>t&&(t=-i),t}function d(e,f,n){var o=A,d=C,i=O,t=h;return f.vsub(e.position,o),o.cross(n,d),e.invInertiaWorld.vmult(d,t),t.cross(o,i),e.invMass+n.dot(i)}function i(e,f,n,o,d,i){var t=d.norm2();if(t>1.1)return 0;var l=k,u=q,p=z;e.getVelocityAtWorldPoint(f,l),n.getVelocityAtWorldPoint(o,u),l.vsub(u,p);var s=d.dot(p),y=.2,c=1/(e.invMass+n.invMass),i=-y*s*c;return i}var t=(e("./Body"),e("../math/Vec3")),l=e("../math/Quaternion"),u=(e("../collision/RaycastResult"),e("../collision/Ray")),p=e("../objects/WheelInfo");f.exports=n;{var s=(new t,new t,new t,new t),y=new t,c=new t;new u}n.prototype.addWheel=function(e){e=e||{};var f=new p(e),n=this.wheelInfos.length;return this.wheelInfos.push(f),n},n.prototype.setSteeringValue=function(e,f){var n=this.wheelInfos[f];n.steering=e};new t;n.prototype.applyEngineForce=function(e,f){this.wheelInfos[f].engineForce=e},n.prototype.setBrake=function(e,f){this.wheelInfos[f].brake=e},n.prototype.addToWorld=function(e){this.constraints;e.add(this.chassisBody);var f=this;e.addEventListener("preStep",function(){f.updateVehicle(e.dt)}),this.world=e},n.prototype.getVehicleAxisWorld=function(e,f){f.set(0===e?1:0,1===e?1:0,2===e?1:0),this.chassisBody.vectorToWorldFrame(f,f)},n.prototype.updateVehicle=function(e){for(var f=this.wheelInfos,n=f.length,o=this.chassisBody,d=0;n>d;d++)this.updateWheelTransform(d,!1);this.currentVehicleSpeedKmHour=3.6*o.velocity.norm();var i=new t;this.getVehicleAxisWorld(this.indexForwardAxis,i),i.dot(o.velocity)<0&&(this.currentVehicleSpeedKmHour*=-1);for(var d=0;n>d;d++)this.castRay(f[d]);this.updateSuspension(e);for(var l=new t,u=new t,d=0;n>d;d++){var p=f[d],s=p.suspensionForce;s>p.maxSuspensionForce&&(s=p.maxSuspensionForce),p.raycastResult.hitNormalWorld.scale(s*e,l),p.raycastResult.hitPointWorld.vsub(o.position,u),o.applyImpulse(l,p.raycastResult.hitPointWorld)}this.updateFriction(e);var y=new t,c=new t,a=new t;for(d=0;n>d;d++){var p=f[d];o.getVelocityAtWorldPoint(p.chassisConnectionPointWorld,a);var r=1;switch(this.indexUpAxis){case 1:r=-1}if(p.isInContact){this.getVehicleAxisWorld(this.indexForwardAxis,c);var w=c.dot(p.raycastResult.hitNormalWorld);p.raycastResult.hitNormalWorld.scale(w,y),c.vsub(y,c);var b=c.dot(a);p.deltaRotation=r*b*e/p.radius}!p.sliding&&p.isInContact||0===p.engineForce||!p.useCustomSlidingRotationalSpeed||(p.deltaRotation=(p.engineForce>0?1:-1)*p.customSlidingRotationalSpeed*e),Math.abs(p.brake)>Math.abs(p.engineForce)&&(p.deltaRotation=0),p.rotation+=p.deltaRotation,p.deltaRotation*=.99}},n.prototype.updateSuspension=function(){for(var e=this.chassisBody,f=e.mass,n=this.wheelInfos,o=n.length,d=0;o>d;d++){var i=n[d];if(i.isInContact){var t,l=i.suspensionRestLength,u=i.suspensionLength,p=l-u;t=i.suspensionStiffness*p*i.clippedInvContactDotSuspension;var s,y=i.suspensionRelativeVelocity;s=0>y?i.dampingCompression:i.dampingRelaxation,t-=s*y,i.suspensionForce=t*f,i.suspensionForce<0&&(i.suspensionForce=0)}else i.suspensionForce=0}},n.prototype.removeFromWorld=function(e){this.constraints;e.remove(this.chassisBody),e.removeEventListener("preStep",this.updateVehicle),this.world=null};var a=new t,r=new t;n.prototype.castRay=function(e){var f=a,n=r;this.updateWheelTransformWorld(e);var o=this.chassisBody,d=-1,i=e.suspensionRestLength+e.radius;e.directionWorld.scale(i,f);var l=e.chassisConnectionPointWorld;l.vadd(f,n);var u=e.raycastResult;u.reset();var p=o.collisionResponse;o.collisionResponse=!1,this.world.rayTest(l,n,u),o.collisionResponse=p;var s=u.body;if(e.raycastResult.groundObject=0,s){d=u.distance,e.raycastResult.hitNormalWorld=u.hitNormalWorld,e.isInContact=!0;var y=u.distance;e.suspensionLength=y-e.radius;var c=e.suspensionRestLength-e.maxSuspensionTravel,w=e.suspensionRestLength+e.maxSuspensionTravel;e.suspensionLength<c&&(e.suspensionLength=c),e.suspensionLength>w&&(e.suspensionLength=w,e.raycastResult.reset());var b=e.raycastResult.hitNormalWorld.dot(e.directionWorld),m=new t;o.getVelocityAtWorldPoint(e.raycastResult.hitPointWorld,m);var N=e.raycastResult.hitNormalWorld.dot(m);if(b>=-.1)e.suspensionRelativeVelocity=0,e.clippedInvContactDotSuspension=10;else{var g=-1/b;e.suspensionRelativeVelocity=N*g,e.clippedInvContactDotSuspension=g}}else e.suspensionLength=e.suspensionRestLength+0*e.maxSuspensionTravel,e.suspensionRelativeVelocity=0,e.directionWorld.scale(-1,e.raycastResult.hitNormalWorld),e.clippedInvContactDotSuspension=1;return d},n.prototype.updateWheelTransformWorld=function(e){e.isInContact=!1;var f=this.chassisBody;f.pointToWorldFrame(e.chassisConnectionPointLocal,e.chassisConnectionPointWorld),f.vectorToWorldFrame(e.directionLocal,e.directionWorld),f.vectorToWorldFrame(e.axleLocal,e.axleWorld)},n.prototype.updateWheelTransform=function(e){var f=s,n=y,o=c,d=this.wheelInfos[e];this.updateWheelTransformWorld(d),d.directionLocal.scale(-1,f),n.copy(d.axleLocal),f.cross(n,o),o.normalize(),n.normalize();var i=d.steering,t=new l;t.setFromAxisAngle(f,i);var u=new l;u.setFromAxisAngle(n,d.rotation);var p=d.worldTransform.quaternion;this.chassisBody.quaternion.mult(t,p),p.mult(u,p),p.normalize();var a=d.worldTransform.position;a.copy(d.directionWorld),a.scale(d.suspensionLength,a),a.vadd(d.chassisConnectionPointWorld,a)};var w=[new t(1,0,0),new t(0,1,0),new t(0,0,1)];n.prototype.getWheelTransformWorld=function(e){return this.wheelInfos[e].worldTransform};var b=new t,m=[],N=[],g=1;n.prototype.updateFriction=function(e){for(var f=b,n=this.wheelInfos,d=n.length,l=this.chassisBody,u=N,p=m,s=0,y=0;d>y;y++){var c=n[y],a=c.raycastResult.body;a&&s++,c.sideImpulse=0,c.forwardImpulse=0,u[y]||(u[y]=new t),p[y]||(p[y]=new t)}for(var y=0;d>y;y++){var c=n[y],a=c.raycastResult.body;if(a){var r=p[y],x=this.getWheelTransformWorld(y);x.vectorToWorldFrame(w[this.indexRightAxis],r);var j=c.raycastResult.hitNormalWorld,v=r.dot(j);j.scale(v,f),r.vsub(f,r),r.normalize(),j.cross(r,u[y]),u[y].normalize(),c.sideImpulse=i(l,c.raycastResult.hitPointWorld,a,c.raycastResult.hitPointWorld,r),c.sideImpulse*=g}}var A=1,C=.5;this.sliding=!1;for(var y=0;d>y;y++){var c=n[y],a=c.raycastResult.body,O=0;if(c.slipInfo=1,a){var h=0,k=c.brake?c.brake:h;O=o(l,a,c.raycastResult.hitPointWorld,u[y],k),O+=c.engineForce*e;var q=k/O;c.slipInfo*=q}if(c.forwardImpulse=0,c.skidInfo=1,a){c.skidInfo=1;var z=c.suspensionForce*e*c.frictionSlip,B=z,D=z*B;c.forwardImpulse=O;var E=c.forwardImpulse*C,F=c.sideImpulse*A,G=E*E+F*F;if(c.sliding=!1,G>D){this.sliding=!0,c.sliding=!0;var q=z/Math.sqrt(G);c.skidInfo*=q}}}if(this.sliding)for(var y=0;d>y;y++){var c=n[y];0!==c.sideImpulse&&c.skidInfo<1&&(c.forwardImpulse*=c.skidInfo,c.sideImpulse*=c.skidInfo)}for(var y=0;d>y;y++){var c=n[y],H=new t;if(H.copy(c.raycastResult.hitPointWorld),0!==c.forwardImpulse){var I=new t;u[y].scale(c.forwardImpulse,I),l.applyImpulse(I,H)}if(0!==c.sideImpulse){var a=c.raycastResult.body,J=new t;J.copy(c.raycastResult.hitPointWorld);var K=new t;p[y].scale(c.sideImpulse,K),l.pointToLocalFrame(H,H),H["xyz"[this.indexUpAxis]]*=c.rollInfluence,l.pointToWorldFrame(H,H),l.applyImpulse(K,H),K.scale(-1,K),a.applyImpulse(K,J)}}};var x=new t,j=new t,v=new t,A=new t,C=new t,O=new t,h=new t,k=new t,q=new t,z=new t},{"../collision/Ray":9,"../collision/RaycastResult":10,"../math/Quaternion":25,"../math/Vec3":27,"../objects/WheelInfo":33,"./Body":28}],30:[function(e,f){function n(e){if(this.wheelBodies=[],this.coordinateSystem="undefined"==typeof e.coordinateSystem?new t(1,2,3):e.coordinateSystem.clone(),this.chassisBody=e.chassisBody,!this.chassisBody){var f=new i(new t(5,2,.5));this.chassisBody=new o(1,f)}this.constraints=[],this.wheelAxes=[],this.wheelForces=[]}var o=e("./Body"),d=e("../shapes/Sphere"),i=e("../shapes/Box"),t=e("../math/Vec3"),l=e("../constraints/HingeConstraint");f.exports=n,n.prototype.addWheel=function(e){e=e||{};var f=e.body;f||(f=new o(1,new d(1.2))),this.wheelBodies.push(f),this.wheelForces.push(0);var n=(new t,"undefined"!=typeof e.position?e.position.clone():new t),i=new t;this.chassisBody.pointToWorldFrame(n,i),f.position.set(i.x,i.y,i.z);var u="undefined"!=typeof e.axis?e.axis.clone():new t(0,1,0);this.wheelAxes.push(u);var p=new l(this.chassisBody,f,{pivotA:n,axisA:u,pivotB:t.ZERO,axisB:u,collideConnected:!1});return this.constraints.push(p),this.wheelBodies.length-1},n.prototype.setSteeringValue=function(e,f){var n=this.wheelAxes[f],o=Math.cos(e),d=Math.sin(e),i=n.x,t=n.y;this.constraints[f].axisA.set(o*i-d*t,d*i+o*t,0)},n.prototype.setMotorSpeed=function(e,f){var n=this.constraints[f];n.enableMotor(),n.motorTargetVelocity=e},n.prototype.disableMotor=function(e){var f=this.constraints[e];f.disableMotor()};var u=new t;n.prototype.setWheelForce=function(e,f){this.wheelForces[f]=e},n.prototype.applyWheelForce=function(e,f){var n=this.wheelAxes[f],o=this.wheelBodies[f],d=o.torque;n.scale(e,u),o.vectorToWorldFrame(u,u),d.vadd(u,d)},n.prototype.addToWorld=function(e){for(var f=this.constraints,n=this.wheelBodies.concat([this.chassisBody]),o=0;o<n.length;o++)e.add(n[o]);for(var o=0;o<f.length;o++)e.addConstraint(f[o]);e.addEventListener("preStep",this._update.bind(this))},n.prototype._update=function(){for(var e=this.wheelForces,f=0;f<e.length;f++)this.applyWheelForce(e[f],f)},n.prototype.removeFromWorld=function(e){for(var f=this.constraints,n=this.wheelBodies.concat([this.chassisBody]),o=0;o<n.length;o++)e.remove(n[o]);for(var o=0;o<f.length;o++)e.removeConstraint(f[o])};var p=new t;n.prototype.getWheelSpeed=function(e){var f=this.wheelAxes[e],n=this.wheelBodies[e],o=n.angularVelocity;return this.chassisBody.vectorToWorldFrame(f,p),o.dot(p)}},{"../constraints/HingeConstraint":14,"../math/Vec3":27,"../shapes/Box":34,"../shapes/Sphere":41,"./Body":28}],31:[function(e,f){function n(){this.particles=[],this.density=1,this.smoothingRadius=1,this.speedOfSound=1,this.viscosity=.01,this.eps=1e-6,this.pressures=[],this.densities=[],this.neighbors=[]}f.exports=n;{var o=(e("../shapes/Shape"),e("../math/Vec3"));e("../math/Quaternion"),e("../shapes/Particle"),e("../objects/Body"),e("../material/Material")}n.prototype.add=function(e){this.particles.push(e),this.neighbors.length<this.particles.length&&this.neighbors.push([])},n.prototype.remove=function(e){var f=this.particles.indexOf(e);-1!==f&&(this.particles.splice(f,1),this.neighbors.length>this.particles.length&&this.neighbors.pop())};var d=new o;n.prototype.getNeighbors=function(e,f){for(var n=this.particles.length,o=e.id,i=this.smoothingRadius*this.smoothingRadius,t=d,l=0;l!==n;l++){var u=this.particles[l];u.position.vsub(e.position,t),o!==u.id&&t.norm2()<i&&f.push(u)}};var i=new o,t=new o,l=new o,u=new o,p=new o,s=new o;n.prototype.update=function(){for(var e=this.particles.length,f=i,n=this.speedOfSound,o=this.eps,d=0;d!==e;d++){var y=this.particles[d],c=this.neighbors[d];c.length=0,this.getNeighbors(y,c),c.push(this.particles[d]);for(var a=c.length,r=0,w=0;w!==a;w++){y.position.vsub(c[w].position,f);var b=f.norm(),m=this.w(b);r+=c[w].mass*m}this.densities[d]=r,this.pressures[d]=n*n*(this.densities[d]-this.density)}for(var N=t,g=l,x=u,j=p,v=s,d=0;d!==e;d++){var A=this.particles[d];N.set(0,0,0),g.set(0,0,0);for(var C,O,c=this.neighbors[d],a=c.length,w=0;w!==a;w++){var h=c[w];A.position.vsub(h.position,j);var k=j.norm();C=-h.mass*(this.pressures[d]/(this.densities[d]*this.densities[d]+o)+this.pressures[w]/(this.densities[w]*this.densities[w]+o)),this.gradw(j,x),x.mult(C,x),N.vadd(x,N),h.velocity.vsub(A.velocity,v),v.mult(1/(1e-4+this.densities[d]*this.densities[w])*this.viscosity*h.mass,v),O=this.nablaw(k),v.mult(O,v),g.vadd(v,g)}g.mult(A.mass,g),N.mult(A.mass,N),A.force.vadd(g,A.force),A.force.vadd(N,A.force)}},n.prototype.w=function(e){var f=this.smoothingRadius;return 315/(64*Math.PI*Math.pow(f,9))*Math.pow(f*f-e*e,3)},n.prototype.gradw=function(e,f){var n=e.norm(),o=this.smoothingRadius;e.mult(945/(32*Math.PI*Math.pow(o,9))*Math.pow(o*o-n*n,2),f)},n.prototype.nablaw=function(e){var f=this.smoothingRadius,n=945/(32*Math.PI*Math.pow(f,9))*(f*f-e*e)*(7*e*e-3*f*f);return n}},{"../material/Material":22,"../math/Quaternion":25,"../math/Vec3":27,"../objects/Body":28,"../shapes/Particle":38,"../shapes/Shape":40}],32:[function(e,f){function n(e,f,n){n=n||{},this.restLength="number"==typeof n.restLength?n.restLength:1,this.stiffness=n.stiffness||100,this.damping=n.damping||1,this.bodyA=e,this.bodyB=f,this.localAnchorA=new o,this.localAnchorB=new o,n.localAnchorA&&this.localAnchorA.copy(n.localAnchorA),n.localAnchorB&&this.localAnchorB.copy(n.localAnchorB),n.worldAnchorA&&this.setWorldAnchorA(n.worldAnchorA),n.worldAnchorB&&this.setWorldAnchorB(n.worldAnchorB)}var o=e("../math/Vec3");f.exports=n,n.prototype.setWorldAnchorA=function(e){this.bodyA.pointToLocalFrame(e,this.localAnchorA)},n.prototype.setWorldAnchorB=function(e){this.bodyB.pointToLocalFrame(e,this.localAnchorB)},n.prototype.getWorldAnchorA=function(e){this.bodyA.pointToWorldFrame(this.localAnchorA,e)},n.prototype.getWorldAnchorB=function(e){this.bodyB.pointToWorldFrame(this.localAnchorB,e)};var d=new o,i=new o,t=new o,l=new o,u=new o,p=new o,s=new o,y=new o,c=new o,a=new o,r=new o;n.prototype.applyForce=function(){var e=this.stiffness,f=this.damping,n=this.restLength,o=this.bodyA,w=this.bodyB,b=d,m=i,N=t,g=l,x=r,j=u,v=p,A=s,C=y,O=c,h=a;this.getWorldAnchorA(j),this.getWorldAnchorB(v),j.vsub(o.position,A),v.vsub(w.position,C),v.vsub(j,b);var k=b.norm();m.copy(b),m.normalize(),w.velocity.vsub(o.velocity,N),w.angularVelocity.cross(C,x),N.vadd(x,N),o.angularVelocity.cross(A,x),N.vsub(x,N),m.mult(-e*(k-n)-f*N.dot(m),g),o.force.vsub(g,o.force),w.force.vadd(g,w.force),A.cross(g,O),C.cross(g,h),o.torque.vsub(O,o.torque),w.torque.vadd(h,w.torque)}},{"../math/Vec3":27}],33:[function(e,f){function n(e){e=t.defaults(e,{chassisConnectionPointLocal:new o,chassisConnectionPointWorld:new o,directionLocal:new o,directionWorld:new o,axleLocal:new o,axleWorld:new o,suspensionRestLength:1,suspensionMaxLength:2,radius:1,suspensionStiffness:100,dampingCompression:10,dampingRelaxation:10,frictionSlip:1e4,steering:0,rotation:0,deltaRotation:0,rollInfluence:.01,maxSuspensionForce:Number.MAX_VALUE,isFrontWheel:!0,clippedInvContactDotSuspension:1,suspensionRelativeVelocity:0,suspensionForce:0,skidInfo:0,suspensionLength:0,maxSuspensionTravel:1,useCustomSlidingRotationalSpeed:!1,customSlidingRotationalSpeed:-.1}),this.maxSuspensionTravel=e.maxSuspensionTravel,this.customSlidingRotationalSpeed=e.customSlidingRotationalSpeed,this.useCustomSlidingRotationalSpeed=e.useCustomSlidingRotationalSpeed,this.sliding=!1,this.chassisConnectionPointLocal=e.chassisConnectionPointLocal.clone(),this.chassisConnectionPointWorld=e.chassisConnectionPointWorld.clone(),this.directionLocal=e.directionLocal.clone(),this.directionWorld=e.directionWorld.clone(),this.axleLocal=e.axleLocal.clone(),this.axleWorld=e.axleWorld.clone(),this.suspensionRestLength=e.suspensionRestLength,this.suspensionMaxLength=e.suspensionMaxLength,this.radius=e.radius,this.suspensionStiffness=e.suspensionStiffness,this.dampingCompression=e.dampingCompression,this.dampingRelaxation=e.dampingRelaxation,this.frictionSlip=e.frictionSlip,this.steering=0,this.rotation=0,this.deltaRotation=0,this.rollInfluence=e.rollInfluence,this.maxSuspensionForce=e.maxSuspensionForce,this.engineForce=0,this.brake=0,this.isFrontWheel=e.isFrontWheel,this.clippedInvContactDotSuspension=1,this.suspensionRelativeVelocity=0,this.suspensionForce=0,this.skidInfo=0,this.suspensionLength=0,this.sideImpulse=0,this.forwardImpulse=0,this.raycastResult=new i,this.worldTransform=new d,this.isInContact=!1
|
|
26
|
+
}var o=e("../math/Vec3"),d=e("../math/Transform"),i=e("../collision/RaycastResult"),t=e("../utils/Utils");f.exports=n;var l=new o,u=new o,l=new o;n.prototype.updateWheel=function(e){var f=this.raycastResult;if(this.isInContact){var n=f.hitNormalWorld.dot(f.directionWorld);f.hitPointWorld.vsub(e.position,u),e.getVelocityAtWorldPoint(u,l);var o=f.hitNormalWorld.dot(l);if(n>=-.1)this.suspensionRelativeVelocity=0,this.clippedInvContactDotSuspension=10;else{var d=-1/n;this.suspensionRelativeVelocity=o*d,this.clippedInvContactDotSuspension=d}}else f.suspensionLength=this.suspensionRestLength,this.suspensionRelativeVelocity=0,f.directionWorld.scale(-1,f.hitNormalWorld),this.clippedInvContactDotSuspension=1}},{"../collision/RaycastResult":10,"../math/Transform":26,"../math/Vec3":27,"../utils/Utils":48}],34:[function(e,f){function n(e){o.call(this),this.type=o.types.BOX,this.halfExtents=e,this.convexPolyhedronRepresentation=null,this.updateConvexPolyhedronRepresentation(),this.updateBoundingSphereRadius()}f.exports=n;var o=e("./Shape"),d=e("../math/Vec3"),i=e("./ConvexPolyhedron");n.prototype=new o,n.prototype.constructor=n,n.prototype.updateConvexPolyhedronRepresentation=function(){var e=this.halfExtents.x,f=this.halfExtents.y,n=this.halfExtents.z,o=d,t=new i([new o(-e,-f,-n),new o(e,-f,-n),new o(e,f,-n),new o(-e,f,-n),new o(-e,-f,n),new o(e,-f,n),new o(e,f,n),new o(-e,f,n)],[[3,2,1,0],[4,5,6,7],[5,4,0,1],[2,3,7,6],[0,4,7,3],[1,2,6,5]],[new o(0,0,-1),new o(0,0,1),new o(0,-1,0),new o(0,1,0),new o(-1,0,0),new o(1,0,0)]);this.convexPolyhedronRepresentation=t},n.prototype.calculateLocalInertia=function(e,f){return f=f||new d,n.calculateInertia(this.halfExtents,e,f),f},n.calculateInertia=function(e,f,n){var o=e;n.x=1/12*f*(2*o.y*2*o.y+2*o.z*2*o.z),n.y=1/12*f*(2*o.x*2*o.x+2*o.z*2*o.z),n.z=1/12*f*(2*o.y*2*o.y+2*o.x*2*o.x)},n.prototype.getSideNormals=function(e,f){var n=e,o=this.halfExtents;if(n[0].set(o.x,0,0),n[1].set(0,o.y,0),n[2].set(0,0,o.z),n[3].set(-o.x,0,0),n[4].set(0,-o.y,0),n[5].set(0,0,-o.z),void 0!==f)for(var d=0;d!==n.length;d++)f.vmult(n[d],n[d]);return n},n.prototype.volume=function(){return 8*this.halfExtents.x*this.halfExtents.y*this.halfExtents.z},n.prototype.updateBoundingSphereRadius=function(){this.boundingSphereRadius=this.halfExtents.norm()};{var t=new d;new d}n.prototype.forEachWorldCorner=function(e,f,n){for(var o=this.halfExtents,d=[[o.x,o.y,o.z],[-o.x,o.y,o.z],[-o.x,-o.y,o.z],[-o.x,-o.y,-o.z],[o.x,-o.y,-o.z],[o.x,o.y,-o.z],[-o.x,o.y,-o.z],[o.x,-o.y,o.z]],i=0;i<d.length;i++)t.set(d[i][0],d[i][1],d[i][2]),f.vmult(t,t),e.vadd(t,t),n(t.x,t.y,t.z)};var l=[new d,new d,new d,new d,new d,new d,new d,new d];n.prototype.calculateWorldAABB=function(e,f,n,o){var d=this.halfExtents;l[0].set(d.x,d.y,d.z),l[1].set(-d.x,d.y,d.z),l[2].set(-d.x,-d.y,d.z),l[3].set(-d.x,-d.y,-d.z),l[4].set(d.x,-d.y,-d.z),l[5].set(d.x,d.y,-d.z),l[6].set(-d.x,d.y,-d.z),l[7].set(d.x,-d.y,d.z);var i=l[0];f.vmult(i,i),e.vadd(i,i),o.copy(i),n.copy(i);for(var t=1;8>t;t++){var i=l[t];f.vmult(i,i),e.vadd(i,i);var u=i.x,p=i.y,s=i.z;u>o.x&&(o.x=u),p>o.y&&(o.y=p),s>o.z&&(o.z=s),u<n.x&&(n.x=u),p<n.y&&(n.y=p),s<n.z&&(n.z=s)}}},{"../math/Vec3":27,"./ConvexPolyhedron":35,"./Shape":40}],35:[function(e,f){function n(e,f){o.call(this),this.type=o.types.CONVEXPOLYHEDRON,this.vertices=e||[],this.worldVertices=[],this.worldVerticesNeedsUpdate=!0,this.faces=f||[],this.faceNormals=[],this.computeNormals(),this.worldFaceNormalsNeedsUpdate=!0,this.worldFaceNormals=[],this.uniqueEdges=[],this.computeEdges(),this.updateBoundingSphereRadius()}f.exports=n;var o=e("./Shape"),d=e("../math/Vec3"),i=e("../math/Quaternion"),t=e("../math/Transform");n.prototype=new o,n.prototype.constructor=n,n.prototype.computeEdges=function(){var e=this.faces,f=this.vertices,n=f.length,o=this.uniqueEdges;o.length=0;for(var i=0;n>i;i++){var t=f[i];if(!(t instanceof d))throw"Argument 1 must be instance of Vec3";this.uniqueEdges.push(t)}for(var l=0;l<e.length;l++)for(var u=e[l],p=u.length,s=0;p>s;s++){var y=(s+1)%p,c=new d;f[u[s]].vsub(f[u[y]],c),c.normalize();for(var a=!1,t=0;t<o.length;t++)if(o[t].almostEquals(c)||o[t].almostEquals(c)){a=!0;break}a||o.push(c),c&&(c.face1=l)}},n.prototype.computeNormals=function(){this.faceNormals.length=this.faces.length;for(var e=0;e<this.faces.length;e++){for(var f=0;f<this.faces[e].length;f++)if(!this.vertices[this.faces[e][f]])throw new Error("Vertex "+this.faces[e][f]+" not found!");var n=this.faceNormals[e]||new d;this.getFaceNormal(e,n),n.negate(n),this.faceNormals[e]=n;var o=this.vertices[this.faces[e][0]];if(n.dot(o)<0){console.error(".faceNormals["+e+"] = Vec3("+n.toString()+") looks like it points into the shape? The vertices follow. Make sure they are ordered CCW around the normal, using the right hand rule.");for(var f=0;f<this.faces[e].length;f++)console.warn(".vertices["+this.faces[e][f]+"] = Vec3("+this.vertices[this.faces[e][f]].toString()+")")}}};var l=new d,u=new d;n.computeNormal=function(e,f,n,o){f.vsub(e,u),n.vsub(f,l),l.cross(u,o),o.isZero()||o.normalize()},n.prototype.getFaceNormal=function(e,f){var o=this.faces[e],d=this.vertices[o[0]],i=this.vertices[o[1]],t=this.vertices[o[2]];return n.computeNormal(d,i,t,f)};var p=new d;n.prototype.clipAgainstHull=function(e,f,n,o,t,l,u,s,y){var c=p;if(!(e instanceof d))throw new Error("posA must be Vec3");if(!(f instanceof i))throw new Error("quatA must be Quaternion");for(var a=-1,r=-1/0,w=0;w<n.faces.length;w++){c.copy(n.faceNormals[w]),t.vmult(c,c);var b=c.dot(l);b>r&&(r=b,a=w)}for(var m=[],N=n.faces[a],g=N.length,x=0;g>x;x++){var j=n.vertices[N[x]],v=new d;v.copy(j),t.vmult(v,v),o.vadd(v,v),m.push(v)}a>=0&&this.clipFaceAgainstHull(l,e,f,m,u,s,y)};var s=new d,y=new d,c=new d,a=new d,r=new d,w=new d;n.prototype.findSeparatingAxis=function(e,f,n,o,d,i,t,l){for(var u=s,p=y,b=c,m=a,N=r,g=w,x=1/0,j=this,v=0,A=t?t.length:j.faces.length,C=0;A>C;C++){var O=t?t[C]:C;u.copy(j.faceNormals[O]),n.vmult(u,u);var h=j.testSepAxis(u,e,f,n,o,d);if(h===!1)return!1;x>h&&(x=h,i.copy(u))}for(var k=l?l.length:e.faces.length,C=0;k>C;C++){var O=l?l[C]:C;p.copy(e.faceNormals[O]),d.vmult(p,p),v++;var h=j.testSepAxis(p,e,f,n,o,d);if(h===!1)return!1;x>h&&(x=h,i.copy(p))}for(var q=0,z=0;z<j.uniqueEdges.length;z++){m.copy(j.uniqueEdges[z]),n.vmult(m,m);for(var B=0;B<e.uniqueEdges.length;B++)if(N.copy(e.uniqueEdges[B]),d.vmult(N,N),m.cross(N,g),q++,!g.almostZero()){g.normalize();var D=j.testSepAxis(g,e,f,n,o,d);if(D===!1)return!1;x>D&&(x=D,i.copy(g))}}return o.vsub(f,b),b.dot(i)>0&&i.negate(i),!0},n.prototype.testSepAxis=function(e,f,o,d,i,t){var l=[],u=[],p=this;n.project(p,e,o,d,l),n.project(f,e,i,t,u);var s=l[0],y=l[1],c=u[0],a=u[1];if(a>s||y>c)return!1;var r=s-a,w=c-y,b=w>r?r:w;return b};var b=new d,m=new d;n.prototype.calculateLocalInertia=function(e,f){this.computeLocalAABB(b,m);var n=m.x-b.x,o=m.y-b.y,d=m.z-b.z;f.x=1/12*e*(2*o*2*o+2*d*2*d),f.y=1/12*e*(2*n*2*n+2*d*2*d),f.z=1/12*e*(2*o*2*o+2*n*2*n)},n.prototype.getPlaneConstantOfFace=function(e){var f=this.faces[e],n=this.faceNormals[e],o=this.vertices[f[0]],d=-n.dot(o);return d};var N=new d,g=new d,x=new d,j=new d,v=new d,A=new d,C=new d,O=new d;n.prototype.clipFaceAgainstHull=function(e,f,n,o,i,t,l){if(!(e instanceof d))throw new Error("sep normal must be vector");if(!(o instanceof Array))throw new Error("world verts must be array");var u=N,p=g,s=x,y=j,c=v,a=A,r=C,w=O;i=Number(i),t=Number(t);for(var b=this,m=[],h=o,k=m,q=-1,z=1/0,B=0;B<b.faces.length;B++){u.copy(b.faceNormals[B]),n.vmult(u,u);var D=u.dot(e);z>D&&(z=D,q=B)}if(0>q)return void console.log("--- did not find any closest face... ---");var E=b.faces[q];E.connectedFaces=[];for(var F=0;F<b.faces.length;F++)for(var G=0;G<b.faces[F].length;G++)-1!==E.indexOf(b.faces[F][G])&&F!==q&&-1===E.connectedFaces.indexOf(F)&&E.connectedFaces.push(F);for(var H=(h.length,E.length),I=0;H>I;I++){var J=b.vertices[E[I]],K=b.vertices[E[(I+1)%H]];J.vsub(K,p),s.copy(p),n.vmult(s,s),f.vadd(s,s),y.copy(this.faceNormals[q]),n.vmult(y,y),f.vadd(y,y),s.cross(y,c),c.negate(c),a.copy(J),n.vmult(a,a),f.vadd(a,a);var L,M=(-a.dot(c),E.connectedFaces[I]);r.copy(this.faceNormals[M]);var P=this.getPlaneConstantOfFace(M);w.copy(r),n.vmult(w,w);var L=P-w.dot(f);for(this.clipFaceAgainstPlane(h,k,w,L);h.length;)h.shift();for(;k.length;)h.push(k.shift())}r.copy(this.faceNormals[q]);var P=this.getPlaneConstantOfFace(q);w.copy(r),n.vmult(w,w);for(var L=P-w.dot(f),F=0;F<h.length;F++){var Q=w.dot(h[F])+L;if(i>=Q&&(console.log("clamped: depth="+Q+" to minDist="+(i+"")),Q=i),t>=Q){var R=h[F];if(0>=Q){var S={point:R,normal:w,depth:Q};l.push(S)}}}},n.prototype.clipFaceAgainstPlane=function(e,f,n,o){if(!(n instanceof d))throw new Error("planeNormal must be Vec3, "+n+" given");if(!(e instanceof Array))throw new Error("invertices must be Array, "+e+" given");if(!(f instanceof Array))throw new Error("outvertices must be Array, "+f+" given");var i,t,l=e.length;if(2>l)return f;var u=e[e.length-1],p=e[0];i=n.dot(u)+o;for(var s=0;l>s;s++){if(p=e[s],t=n.dot(p)+o,0>i)if(0>t){var y=new d;y.copy(p),f.push(y)}else{var y=new d;u.lerp(p,i/(i-t),y),f.push(y)}else if(0>t){var y=new d;u.lerp(p,i/(i-t),y),f.push(y),f.push(p)}u=p,i=t}return f},n.prototype.computeWorldVertices=function(e,f){for(var n=this.vertices.length;this.worldVertices.length<n;)this.worldVertices.push(new d);for(var o=this.vertices,i=this.worldVertices,t=0;t!==n;t++)f.vmult(o[t],i[t]),e.vadd(i[t],i[t]);this.worldVerticesNeedsUpdate=!1};new d;n.prototype.computeLocalAABB=function(e,f){var n=this.vertices.length,o=this.vertices;e.set(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),f.set(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);for(var d=0;n>d;d++){var i=o[d];i.x<e.x?e.x=i.x:i.x>f.x&&(f.x=i.x),i.y<e.y?e.y=i.y:i.y>f.y&&(f.y=i.y),i.z<e.z?e.z=i.z:i.z>f.z&&(f.z=i.z)}},n.prototype.computeWorldFaceNormals=function(e){for(var f=this.faceNormals.length;this.worldFaceNormals.length<f;)this.worldFaceNormals.push(new d);for(var n=this.faceNormals,o=this.worldFaceNormals,i=0;i!==f;i++)e.vmult(n[i],o[i]);this.worldFaceNormalsNeedsUpdate=!1},n.prototype.updateBoundingSphereRadius=function(){for(var e=0,f=this.vertices,n=0,o=f.length;n!==o;n++){var d=f[n].norm2();d>e&&(e=d)}this.boundingSphereRadius=Math.sqrt(e)};var h=new d;n.prototype.calculateWorldAABB=function(e,f,n,o){for(var d,i,t,l,u,p,s=this.vertices.length,y=this.vertices,c=0;s>c;c++){h.copy(y[c]),f.vmult(h,h),e.vadd(h,h);var a=h;a.x<d||void 0===d?d=a.x:(a.x>l||void 0===l)&&(l=a.x),a.y<i||void 0===i?i=a.y:(a.y>u||void 0===u)&&(u=a.y),a.z<t||void 0===t?t=a.z:(a.z>p||void 0===p)&&(p=a.z)}n.set(d,i,t),o.set(l,u,p)},n.prototype.volume=function(){return 4*Math.PI*this.boundingSphereRadius/3},n.prototype.getAveragePointLocal=function(e){e=e||new d;for(var f=this.vertices.length,n=this.vertices,o=0;f>o;o++)e.vadd(n[o],e);return e.mult(1/f,e),e},n.prototype.transformAllPoints=function(e,f){var n=this.vertices.length,o=this.vertices;if(f){for(var d=0;n>d;d++){var i=o[d];f.vmult(i,i)}for(var d=0;d<this.faceNormals.length;d++){var i=this.faceNormals[d];f.vmult(i,i)}}if(e)for(var d=0;n>d;d++){var i=o[d];i.vadd(e,i)}};var k=new d,q=new d,z=new d;n.prototype.pointIsInside=function(e){var f=this.vertices.length,n=this.vertices,o=this.faces,d=this.faceNormals,i=null,t=this.faces.length,l=k;this.getAveragePointLocal(l);for(var u=0;t>u;u++){var f=(this.faces[u].length,d[u]),p=n[o[u][0]],s=q;e.vsub(p,s);var y=f.dot(s),c=z;l.vsub(p,c);var a=f.dot(c);if(0>y&&a>0||y>0&&0>a)return!1}return i?1:-1};var B=(new d,new d),D=new d;n.project=function(e,f,n,o,d){var i=e.vertices.length,l=B,u=0,p=0,s=D,y=e.vertices;s.setZero(),t.vectorToLocalFrame(n,o,f,l),t.pointToLocalFrame(n,o,s,s);var c=s.dot(l);p=u=y[0].dot(l);for(var a=1;i>a;a++){var r=y[a].dot(l);r>u&&(u=r),p>r&&(p=r)}if(p-=c,u-=c,p>u){var w=p;p=u,u=w}d[0]=u,d[1]=p}},{"../math/Quaternion":25,"../math/Transform":26,"../math/Vec3":27,"./Shape":40}],36:[function(e,f){function n(e,f,n,t){var l=t,u=[],p=[],s=[],y=[],c=[],a=Math.cos,r=Math.sin;u.push(new d(f*a(0),f*r(0),.5*-n)),y.push(0),u.push(new d(e*a(0),e*r(0),.5*n)),c.push(1);for(var w=0;l>w;w++){var b=2*Math.PI/l*(w+1),m=2*Math.PI/l*(w+.5);l-1>w?(u.push(new d(f*a(b),f*r(b),.5*-n)),y.push(2*w+2),u.push(new d(e*a(b),e*r(b),.5*n)),c.push(2*w+3),p.push(new d(a(m),r(m),0)),s.push([2*w+2,2*w+3,2*w+1,2*w])):(s.push([0,1,2*w+1,2*w]),p.push(new d(a(m),r(m),0)))}s.push(c),p.push(new d(0,0,1));for(var N=[],w=0;w<y.length;w++)N.push(y[y.length-w-1]);s.push(N),p.push(new d(0,0,-1)),this.type=o.types.CONVEXPOLYHEDRON,i.call(this,u,s,p)}f.exports=n;var o=e("./Shape"),d=e("../math/Vec3"),i=(e("../math/Quaternion"),e("./ConvexPolyhedron"));n.prototype=new i},{"../math/Quaternion":25,"../math/Vec3":27,"./ConvexPolyhedron":35,"./Shape":40}],37:[function(e,f){function n(e,f){f=t.defaults(f,{maxValue:null,minValue:null,elementSize:1}),this.data=e,this.maxValue=f.maxValue,this.minValue=f.minValue,this.elementSize=f.elementSize,null===f.minValue&&this.updateMinValue(),null===f.maxValue&&this.updateMaxValue(),this.cacheEnabled=!0,o.call(this),this.pillarConvex=new d,this.pillarOffset=new i,this.type=o.types.HEIGHTFIELD,this.updateBoundingSphereRadius(),this._cachedPillars={}}var o=e("./Shape"),d=e("./ConvexPolyhedron"),i=e("../math/Vec3"),t=e("../utils/Utils");f.exports=n,n.prototype=new o,n.prototype.update=function(){this._cachedPillars={}},n.prototype.updateMinValue=function(){for(var e=this.data,f=e[0][0],n=0;n!==e.length;n++)for(var o=0;o!==e[n].length;o++){var d=e[n][o];f>d&&(f=d)}this.minValue=f},n.prototype.updateMaxValue=function(){for(var e=this.data,f=e[0][0],n=0;n!==e.length;n++)for(var o=0;o!==e[n].length;o++){var d=e[n][o];d>f&&(f=d)}this.maxValue=f},n.prototype.setHeightValueAtIndex=function(e,f,n){var o=this.data;o[e][f]=n,this.clearCachedConvexTrianglePillar(e,f,!1),e>0&&(this.clearCachedConvexTrianglePillar(e-1,f,!0),this.clearCachedConvexTrianglePillar(e-1,f,!1)),f>0&&(this.clearCachedConvexTrianglePillar(e,f-1,!0),this.clearCachedConvexTrianglePillar(e,f-1,!1)),f>0&&e>0&&this.clearCachedConvexTrianglePillar(e-1,f-1,!0)},n.prototype.getRectMinMax=function(e,f,n,o,d){d=d||[];for(var i=this.data,t=this.minValue,l=e;n>l;l++)for(var u=f;o>u;u++){var p=i[l][u];p>t&&(t=p)}d[0]=this.minValue,d[1]=t},n.prototype.getIndexOfPosition=function(e,f,n,o){var d=this.elementSize,i=this.data,t=Math.floor(e/d),l=Math.floor(f/d);return n[0]=t,n[1]=l,o&&(0>t&&(t=0),0>l&&(l=0),t>=i.length-1&&(t=i.length-1),l>=i[0].length-1&&(l=i[0].length-1)),0>t||0>l||t>=i.length-1||l>=i[0].length-1?!1:!0},n.prototype.getHeightAt=function(e,f,n){var o=[];this.getIndexOfPosition(e,f,o,n);var d=[];return this.getRectMinMax(o[0],o[1]+1,o[0],o[1]+1,d),(d[0]+d[1])/2},n.prototype.getCacheConvexTrianglePillarKey=function(e,f,n){return e+"_"+f+"_"+(n?1:0)},n.prototype.getCachedConvexTrianglePillar=function(e,f,n){return this._cachedPillars[this.getCacheConvexTrianglePillarKey(e,f,n)]},n.prototype.setCachedConvexTrianglePillar=function(e,f,n,o,d){this._cachedPillars[this.getCacheConvexTrianglePillarKey(e,f,n)]={convex:o,offset:d}},n.prototype.clearCachedConvexTrianglePillar=function(e,f,n){delete this._cachedPillars[this.getCacheConvexTrianglePillarKey(e,f,n)]},n.prototype.getConvexTrianglePillar=function(e,f,n){var o=this.pillarConvex,t=this.pillarOffset;if(this.cacheEnabled){var l=this.getCachedConvexTrianglePillar(e,f,n);if(l)return this.pillarConvex=l.convex,void(this.pillarOffset=l.offset);o=new d,t=new i,this.pillarConvex=o,this.pillarOffset=t}var l=this.data,u=this.elementSize,p=o.faces;o.vertices.length=6;for(var s=0;6>s;s++)o.vertices[s]||(o.vertices[s]=new i);p.length=5;for(var s=0;5>s;s++)p[s]||(p[s]=[]);var y=o.vertices,c=(Math.min(l[e][f],l[e+1][f],l[e][f+1],l[e+1][f+1])-this.minValue)/2+this.minValue;n?(t.set((e+.75)*u,(f+.75)*u,c),y[0].set(.25*u,.25*u,l[e+1][f+1]-c),y[1].set(-.75*u,.25*u,l[e][f+1]-c),y[2].set(.25*u,-.75*u,l[e+1][f]-c),y[3].set(.25*u,.25*u,-c-1),y[4].set(-.75*u,.25*u,-c-1),y[5].set(.25*u,-.75*u,-c-1),p[0][0]=0,p[0][1]=1,p[0][2]=2,p[1][0]=5,p[1][1]=4,p[1][2]=3,p[2][0]=2,p[2][1]=5,p[2][2]=3,p[2][3]=0,p[3][0]=3,p[3][1]=4,p[3][2]=1,p[3][3]=0,p[4][0]=1,p[4][1]=4,p[4][2]=5,p[4][3]=2):(t.set((e+.25)*u,(f+.25)*u,c),y[0].set(-.25*u,-.25*u,l[e][f]-c),y[1].set(.75*u,-.25*u,l[e+1][f]-c),y[2].set(-.25*u,.75*u,l[e][f+1]-c),y[3].set(-.25*u,-.25*u,-c-1),y[4].set(.75*u,-.25*u,-c-1),y[5].set(-.25*u,.75*u,-c-1),p[0][0]=0,p[0][1]=1,p[0][2]=2,p[1][0]=5,p[1][1]=4,p[1][2]=3,p[2][0]=0,p[2][1]=2,p[2][2]=5,p[2][3]=3,p[3][0]=1,p[3][1]=0,p[3][2]=3,p[3][3]=4,p[4][0]=4,p[4][1]=5,p[4][2]=2,p[4][3]=1),o.computeNormals(),o.computeEdges(),o.updateBoundingSphereRadius(),this.setCachedConvexTrianglePillar(e,f,n,o,t)},n.prototype.calculateLocalInertia=function(e,f){return f=f||new i,f.set(0,0,0),f},n.prototype.volume=function(){return Number.MAX_VALUE},n.prototype.calculateWorldAABB=function(e,f,n,o){n.set(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),o.set(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE)},n.prototype.updateBoundingSphereRadius=function(){var e=this.data,f=this.elementSize;this.boundingSphereRadius=new i(e.length*f,e[0].length*f,Math.max(Math.abs(this.maxValue),Math.abs(this.minValue))).norm()}},{"../math/Vec3":27,"../utils/Utils":48,"./ConvexPolyhedron":35,"./Shape":40}],38:[function(e,f){function n(){o.call(this),this.type=o.types.PARTICLE}f.exports=n;var o=e("./Shape"),d=e("../math/Vec3");n.prototype=new o,n.prototype.constructor=n,n.prototype.calculateLocalInertia=function(e,f){return f=f||new d,f.set(0,0,0),f},n.prototype.volume=function(){return 0},n.prototype.updateBoundingSphereRadius=function(){this.boundingSphereRadius=0},n.prototype.calculateWorldAABB=function(e,f,n,o){n.copy(e),o.copy(e)}},{"../math/Vec3":27,"./Shape":40}],39:[function(e,f){function n(){o.call(this),this.type=o.types.PLANE,this.worldNormal=new d,this.worldNormalNeedsUpdate=!0,this.boundingSphereRadius=Number.MAX_VALUE}f.exports=n;var o=e("./Shape"),d=e("../math/Vec3");n.prototype=new o,n.prototype.constructor=n,n.prototype.computeWorldNormal=function(e){var f=this.worldNormal;f.set(0,0,1),e.vmult(f,f),this.worldNormalNeedsUpdate=!1},n.prototype.calculateLocalInertia=function(e,f){return f=f||new d},n.prototype.volume=function(){return Number.MAX_VALUE};var i=new d;n.prototype.calculateWorldAABB=function(e,f,n,o){i.set(0,0,1),f.vmult(i,i);var d=Number.MAX_VALUE;n.set(-d,-d,-d),o.set(d,d,d),1===i.x&&(o.x=e.x),1===i.y&&(o.y=e.y),1===i.z&&(o.z=e.z),-1===i.x&&(n.x=e.x),-1===i.y&&(n.y=e.y),-1===i.z&&(n.z=e.z)},n.prototype.updateBoundingSphereRadius=function(){this.boundingSphereRadius=Number.MAX_VALUE}},{"../math/Vec3":27,"./Shape":40}],40:[function(e,f){function n(){this.type=0,this.boundingSphereRadius=0,this.collisionResponse=!0}f.exports=n;{var n=e("./Shape");e("../math/Vec3"),e("../math/Quaternion"),e("../material/Material")}n.prototype.constructor=n,n.prototype.updateBoundingSphereRadius=function(){throw"computeBoundingSphereRadius() not implemented for shape type "+this.type},n.prototype.volume=function(){throw"volume() not implemented for shape type "+this.type},n.prototype.calculateLocalInertia=function(){throw"calculateLocalInertia() not implemented for shape type "+this.type},n.types={SPHERE:1,PLANE:2,BOX:4,COMPOUND:8,CONVEXPOLYHEDRON:16,HEIGHTFIELD:32,PARTICLE:64,CYLINDER:128}},{"../material/Material":22,"../math/Quaternion":25,"../math/Vec3":27,"./Shape":40}],41:[function(e,f){function n(e){o.call(this),this.radius=void 0!==e?Number(e):1,this.type=o.types.SPHERE,this.updateBoundingSphereRadius()}f.exports=n;var o=e("./Shape"),d=e("../math/Vec3");n.prototype=new o,n.prototype.constructor=n,n.prototype.calculateLocalInertia=function(e,f){f=f||new d;var n=2*e*this.radius*this.radius/5;return f.x=n,f.y=n,f.z=n,f},n.prototype.volume=function(){return 4*Math.PI*this.radius/3},n.prototype.updateBoundingSphereRadius=function(){this.boundingSphereRadius=this.radius},n.prototype.calculateWorldAABB=function(e,f,n,o){for(var d=this.radius,i=["x","y","z"],t=0;t<i.length;t++){var l=i[t];n[l]=e[l]-d,o[l]=e[l]+d}}},{"../math/Vec3":27,"./Shape":40}],42:[function(e,f){function n(){o.call(this),this.iterations=10,this.tolerance=0}f.exports=n;var o=(e("../math/Vec3"),e("../math/Quaternion"),e("./Solver"));n.prototype=new o;var d=[],i=[],t=[];n.prototype.solve=function(e,f){var n,o,l,u,p,s,y=0,c=this.iterations,a=this.tolerance*this.tolerance,r=this.equations,w=r.length,b=f.bodies,m=b.length,N=e;if(0!==w)for(var g=0;g!==m;g++)b[g].updateSolveMassProperties();var x=i,j=t,v=d;x.length=w,j.length=w,v.length=w;for(var g=0;g!==w;g++){var A=r[g];v[g]=0,j[g]=A.computeB(N),x[g]=1/A.computeC()}if(0!==w){for(var g=0;g!==m;g++){var C=b[g],O=C.vlambda,h=C.wlambda;O.set(0,0,0),h&&h.set(0,0,0)}for(y=0;y!==c;y++){u=0;for(var k=0;k!==w;k++){var A=r[k];n=j[k],o=x[k],s=v[k],p=A.computeGWlambda(),l=o*(n-p-A.eps*s),s+l<A.minForce?l=A.minForce-s:s+l>A.maxForce&&(l=A.maxForce-s),v[k]+=l,u+=l>0?l:-l,A.addToWlambda(l)}if(a>u*u)break}for(var g=0;g!==m;g++){var C=b[g],q=C.velocity,z=C.angularVelocity;q.vadd(C.vlambda,q),z&&z.vadd(C.wlambda,z)}}return y}},{"../math/Quaternion":25,"../math/Vec3":27,"./Solver":43}],43:[function(e,f){function n(){this.equations=[]}f.exports=n,n.prototype.solve=function(){return 0},n.prototype.addEquation=function(e){e.enabled&&this.equations.push(e)},n.prototype.removeEquation=function(e){var f=this.equations,n=f.indexOf(e);-1!==n&&f.splice(n,1)},n.prototype.removeAllEquations=function(){this.equations.length=0}},{}],44:[function(e,f){function n(e){o.call(this),this.subsolver=e}f.exports=n;var o=(e("../math/Vec3"),e("../math/Quaternion"),e("./Solver")),d=e("../objects/Body");n.prototype=new o;var i=[],t=[],l=[],u={bodies:null};n.prototype.solve=function(e,f){function n(e){for(var f=e.length,n=0;n!==f;n++){var o=e[n];if(!(o.visited||o.body.type&C))return o}return!1}function o(e,f){var o=[];for(o.push(e),e.visited=!0,f(e);o.length;)for(var d,i=o.pop();d=n(i.children);)d.visited=!0,f(d),o.push(d)}function p(e){k.push(e.body);for(var f=e.eqs.length,n=0;n!==f;n++){var o=e.eqs[n];-1===h.indexOf(o)&&h.push(o)}}var s=i,y=f.bodies,c=this.equations,a=c.length,r=y.length,w=this.subsolver;for(s.length>r&&(s.length=r);s.length<r;)s.push({body:null,children:[],eqs:[],visited:!1});for(var b=0;b!==r;b++){var m=s[b];m.body=y[b],m.children.length=0,m.eqs.length=0,m.visited=!1}for(var N=0;N!==a;N++){var g=c[N],b=y.indexOf(g.bi),x=y.indexOf(g.bj),j=s[b],v=s[x];j.children.push(v),j.eqs.push(g),v.children.push(j),v.eqs.push(g)}for(var A,C=d.STATIC,O=0,h=t,k=l,q=u;A=n(s);){h.length=0,k.length=0,o(A,p);for(var z=h.length,b=0;b!==z;b++)w.addEquation(h[b]);q.bodies=k;{w.solve(e,q)}w.removeAllEquations(),O++}return O}},{"../math/Quaternion":25,"../math/Vec3":27,"../objects/Body":28,"./Solver":43}],45:[function(e,f){var n=function(){};f.exports=n,n.prototype={constructor:n,addEventListener:function(e,f){void 0===this._listeners&&(this._listeners={});var n=this._listeners;return void 0===n[e]&&(n[e]=[]),-1===n[e].indexOf(f)&&n[e].push(f),this},hasEventListener:function(e,f){if(void 0===this._listeners)return!1;var n=this._listeners;return void 0!==n[e]&&-1!==n[e].indexOf(f)?!0:!1},removeEventListener:function(e,f){if(void 0===this._listeners)return this;var n=this._listeners;if(void 0===n[e])return this;var o=n[e].indexOf(f);return-1!==o&&n[e].splice(o,1),this},dispatchEvent:function(e){if(void 0===this._listeners)return this;var f=this._listeners,n=f[e.type];if(void 0!==n){e.target=this;for(var o=0,d=n.length;d>o;o++)n[o].call(this,e)}return this}}},{}],46:[function(e,f){function n(){this.objects=[],this.type=Object}f.exports=n,n.prototype.release=function(){for(var e=arguments.length,f=0;f!==e;f++)this.objects.push(arguments[f])},n.prototype.get=function(){return 0===this.objects.length?this.constructObject():this.objects.pop()},n.prototype.constructObject=function(){throw new Error("constructObject() not implemented in this Pool subclass yet!")}},{}],47:[function(e,f){function n(){this.data={keys:[]}}f.exports=n,n.prototype.get=function(e,f){if(e>f){var n=f;f=e,e=n}return this.data[e+"-"+f]},n.prototype.set=function(e,f,n){if(e>f){var o=f;f=e,e=o}var d=e+"-"+f;this.get(e,f)||this.data.keys.push(d),this.data[d]=n},n.prototype.reset=function(){for(var e=this.data,f=e.keys;f.length>0;){var n=f.pop();delete e[n]}}},{}],48:[function(e,f){function n(){}f.exports=n,n.defaults=function(e,f){e=e||{};for(var n in f)n in e||(e[n]=f[n]);return e}},{}],49:[function(e,f){function n(){d.call(this),this.type=o}f.exports=n;var o=e("../math/Vec3"),d=e("./Pool");n.prototype=new d,n.prototype.constructObject=function(){return new o}},{"../math/Vec3":27,"./Pool":46}],50:[function(e,f){function n(){this.contactPointPool=[],this.v3pool=new u}function o(e,f,n){for(var o=null,d=e.length,i=0;i!==d;i++){var t=e[i],l=b;e[(i+1)%d].vsub(t,l);var u=m;l.cross(f,u);var p=N;n.vsub(t,p);var s=u.dot(p);if(!(null===o||s>0&&o===!0||0>=s&&o===!1))return!1;null===o&&(o=s>0)}return!0}f.exports=n;var d=e("../shapes/Shape"),i=e("../math/Vec3"),t=e("../math/Transform"),l=(e("../shapes/ConvexPolyhedron"),e("../math/Quaternion")),u=(e("../solver/Solver"),e("../utils/Vec3Pool")),p=e("../equations/ContactEquation");n.prototype.makeResult=function(e,f,n,o,d,i){var t;return this.contactPointPool.length?(t=this.contactPointPool.pop(),t.bi=e,t.bj=f):t=new p(e,f),t.enabled=!0,t.si=d||n,t.sj=i||o,t};var s=new i,y=new i,c=new l,a=new l;n.prototype.getContacts=function(e,f,n,o,d){this.contactPointPool=d;for(var i=c,t=a,l=s,u=y,p=0,r=e.length;p!==r;p++)for(var w=e[p],b=f[p],m=0;m<w.shapes.length;m++){w.quaternion.mult(w.shapeOrientations[m],i),w.quaternion.vmult(w.shapeOffsets[m],l),l.vadd(w.position,l);for(var N=w.shapes[m],g=0;g<b.shapes.length;g++){b.quaternion.mult(b.shapeOrientations[g],t),b.quaternion.vmult(b.shapeOffsets[g],u),u.vadd(b.position,u);var x=b.shapes[g];if(!(l.distanceTo(u)>N.boundingSphereRadius+x.boundingSphereRadius)){var j=this[N.type|x.type];j&&(N.type<x.type?j.call(this,o,N,x,l,u,i,t,w,b,N,x):j.call(this,o,x,N,u,l,t,i,b,w,N,x))}}}};n.prototype[d.types.BOX|d.types.BOX]=n.prototype.boxBox=function(e,f,n,o,d,i,t,l,u){this.convexConvex(e,f.convexPolyhedronRepresentation,n.convexPolyhedronRepresentation,o,d,i,t,l,u,f,n)},n.prototype[d.types.BOX|d.types.CONVEXPOLYHEDRON]=n.prototype.boxConvex=function(e,f,n,o,d,i,t,l,u){this.convexConvex(e,f.convexPolyhedronRepresentation,n,o,d,i,t,l,u,f,n)},n.prototype[d.types.BOX|d.types.PARTICLE]=n.prototype.boxParticle=function(e,f,n,o,d,i,t,l,u){this.convexParticle(e,f.convexPolyhedronRepresentation,n,o,d,i,t,l,u,f,n)},n.prototype[d.types.SPHERE]=n.prototype.sphereSphere=function(e,f,n,o,d,i,t,l,u){var p=this.makeResult(l,u,f,n);u.position.vsub(o,p.ni),p.ni.normalize(),p.ri.copy(p.ni),p.rj.copy(p.ni),p.ri.mult(f.radius,p.ri),p.rj.mult(-n.radius,p.rj),e.push(p)};var r=new i,w=new i;n.prototype[d.types.SPHERE|d.types.PLANE]=n.prototype.spherePlane=function(e,f,n,o,d,i,t,l,u){var p=this.makeResult(l,u,f,n);if(p.ni.set(0,0,1),t.vmult(p.ni,p.ni),p.ni.negate(p.ni),p.ni.normalize(),p.ni.mult(f.radius,p.ri),o.vsub(d,r),p.ni.mult(p.ni.dot(r),w),r.vsub(w,p.rj),w.norm2()<=f.radius*f.radius){e.push(p);var s=p.ri,y=p.rj;s.vadd(o,s),s.vsub(l.position,s),y.vadd(d,y),y.vsub(u.position,y)}};var b=new i,m=new i,N=new i,g=new i,x=new i,j=new i,v=new i,A=[new i,new i,new i,new i,new i,new i],C=new i,O=new i,h=new i,k=new i;n.prototype[d.types.SPHERE|d.types.BOX]=n.prototype.sphereBox=function(e,f,n,o,d,i,t,l,u){var p=this.v3pool,s=A;o.vsub(d,g),n.getSideNormals(s,t);for(var y=f.radius,c=!1,a=O,r=h,w=k,b=null,m=0,N=0,q=0,z=null,B=0,D=s.length;B!==D&&c===!1;B++){var E=x;E.copy(s[B]);var F=E.norm();E.normalize();var G=g.dot(E);if(F+y>G&&G>0){var H=j,I=v;H.copy(s[(B+1)%3]),I.copy(s[(B+2)%3]);var J=H.norm(),K=I.norm();H.normalize(),I.normalize();var L=g.dot(H),M=g.dot(I);if(J>L&&L>-J&&K>M&&M>-K){var P=Math.abs(G-F-y);(null===z||z>P)&&(z=P,N=L,q=M,b=F,a.copy(E),r.copy(H),w.copy(I),m++)}}}if(m){c=!0;var Q=this.makeResult(l,u,f,n);a.mult(-y,Q.ri),Q.ni.copy(a),Q.ni.negate(Q.ni),a.mult(b,a),r.mult(N,r),a.vadd(r,a),w.mult(q,w),a.vadd(w,Q.rj),Q.ri.vadd(o,Q.ri),Q.ri.vsub(l.position,Q.ri),Q.rj.vadd(d,Q.rj),Q.rj.vsub(u.position,Q.rj),e.push(Q)}for(var R=p.get(),S=C,T=0;2!==T&&!c;T++)for(var U=0;2!==U&&!c;U++)for(var V=0;2!==V&&!c;V++)if(R.set(0,0,0),T?R.vadd(s[0],R):R.vsub(s[0],R),U?R.vadd(s[1],R):R.vsub(s[1],R),V?R.vadd(s[2],R):R.vsub(s[2],R),d.vadd(R,S),S.vsub(o,S),S.norm2()<y*y){c=!0;var Q=this.makeResult(l,u,f,n);Q.ri.copy(S),Q.ri.normalize(),Q.ni.copy(Q.ri),Q.ri.mult(y,Q.ri),Q.rj.copy(R),Q.ri.vadd(o,Q.ri),Q.ri.vsub(l.position,Q.ri),Q.rj.vadd(d,Q.rj),Q.rj.vsub(u.position,Q.rj),e.push(Q)}p.release(R),R=null;for(var W=p.get(),X=p.get(),Q=p.get(),Y=p.get(),P=p.get(),Z=s.length,T=0;T!==Z&&!c;T++)for(var U=0;U!==Z&&!c;U++)if(T%3!==U%3){s[U].cross(s[T],W),W.normalize(),s[T].vadd(s[U],X),Q.copy(o),Q.vsub(X,Q),Q.vsub(d,Q);var $=Q.dot(W);W.mult($,Y);for(var V=0;V===T%3||V===U%3;)V++;P.copy(o),P.vsub(Y,P),P.vsub(X,P),P.vsub(d,P);var _=Math.abs($),ef=P.norm();if(_<s[V].norm()&&y>ef){c=!0;var ff=this.makeResult(l,u,f,n);X.vadd(Y,ff.rj),ff.rj.copy(ff.rj),P.negate(ff.ni),ff.ni.normalize(),ff.ri.copy(ff.rj),ff.ri.vadd(d,ff.ri),ff.ri.vsub(o,ff.ri),ff.ri.normalize(),ff.ri.mult(y,ff.ri),ff.ri.vadd(o,ff.ri),ff.ri.vsub(l.position,ff.ri),ff.rj.vadd(d,ff.rj),ff.rj.vsub(u.position,ff.rj),e.push(ff)}}p.release(W,X,Q,Y,P)};var q=new i,z=new i,B=new i,D=new i,E=new i,F=new i,G=new i,H=new i,I=new i,J=new i;n.prototype[d.types.SPHERE|d.types.CONVEXPOLYHEDRON]=n.prototype.sphereConvex=function(e,f,n,d,i,t,l,u,p){var s=this.v3pool;d.vsub(i,q);for(var y=n.faceNormals,c=n.faces,a=n.vertices,r=f.radius,w=0;w!==a.length;w++){var b=a[w],m=E;l.vmult(b,m),i.vadd(m,m);var N=D;if(m.vsub(d,N),N.norm2()<r*r){x=!0;var g=this.makeResult(u,p,f,n);return g.ri.copy(N),g.ri.normalize(),g.ni.copy(g.ri),g.ri.mult(r,g.ri),m.vsub(i,g.rj),g.ri.vadd(d,g.ri),g.ri.vsub(u.position,g.ri),g.rj.vadd(i,g.rj),g.rj.vsub(p.position,g.rj),void e.push(g)}}for(var x=!1,w=0,j=c.length;w!==j&&x===!1;w++){var v=y[w],A=c[w],C=F;l.vmult(v,C);var O=G;l.vmult(a[A[0]],O),O.vadd(i,O);var h=H;C.mult(-r,h),d.vadd(h,h);var k=I;h.vsub(O,k);var K=k.dot(C),L=J;if(d.vsub(O,L),0>K&&L.dot(C)>0){for(var M=[],P=0,Q=A.length;P!==Q;P++){var R=s.get();l.vmult(a[A[P]],R),i.vadd(R,R),M.push(R)}if(o(M,C,d)){x=!0;var g=this.makeResult(u,p,f,n);C.mult(-r,g.ri),C.negate(g.ni);var S=s.get();C.mult(-K,S);var T=s.get();C.mult(-r,T),d.vsub(i,g.rj),g.rj.vadd(T,g.rj),g.rj.vadd(S,g.rj),g.rj.vadd(i,g.rj),g.rj.vsub(p.position,g.rj),g.ri.vadd(d,g.ri),g.ri.vsub(u.position,g.ri),s.release(S),s.release(T),e.push(g);for(var P=0,U=M.length;P!==U;P++)s.release(M[P]);return}for(var P=0;P!==A.length;P++){var V=s.get(),W=s.get();l.vmult(a[A[(P+1)%A.length]],V),l.vmult(a[A[(P+2)%A.length]],W),i.vadd(V,V),i.vadd(W,W);var X=z;W.vsub(V,X);var Y=B;X.unit(Y);var Z=s.get(),$=s.get();d.vsub(V,$);var _=$.dot(Y);Y.mult(_,Z),Z.vadd(V,Z);var ef=s.get();if(Z.vsub(d,ef),_>0&&_*_<X.norm2()&&ef.norm2()<r*r){var g=this.makeResult(u,p,f,n);Z.vsub(i,g.rj),Z.vsub(d,g.ni),g.ni.normalize(),g.ni.mult(r,g.ri),g.rj.vadd(i,g.rj),g.rj.vsub(p.position,g.rj),g.ri.vadd(d,g.ri),g.ri.vsub(u.position,g.ri),e.push(g);for(var P=0,U=M.length;P!==U;P++)s.release(M[P]);return s.release(V),s.release(W),s.release(Z),s.release(ef),void s.release($)}s.release(V),s.release(W),s.release(Z),s.release(ef),s.release($)}for(var P=0,U=M.length;P!==U;P++)s.release(M[P])}}};new i,new i;n.prototype[d.types.PLANE|d.types.BOX]=n.prototype.planeBox=function(e,f,n,o,d,i,t,l,u){this.planeConvex(e,f,n.convexPolyhedronRepresentation,o,d,i,t,l,u)};var K=new i,L=new i,M=new i,P=new i;n.prototype[d.types.PLANE|d.types.CONVEXPOLYHEDRON]=n.prototype.planeConvex=function(e,f,n,o,d,i,t,l,u){var p=K,s=L;s.set(0,0,1),i.vmult(s,s);for(var y=M,c=0;c!==n.vertices.length;c++){p.copy(n.vertices[c]),t.vmult(p,p),d.vadd(p,p),p.vsub(o,y);var a=s.dot(y);if(0>=a){var r=this.makeResult(l,u,f,n),w=P;s.mult(s.dot(y),w),p.vsub(w,w),w.vsub(o,r.ri),r.ni.copy(s),p.vsub(d,r.rj),r.ri.vadd(o,r.ri),r.ri.vsub(l.position,r.ri),r.rj.vadd(d,r.rj),r.rj.vsub(u.position,r.rj),e.push(r)
|
|
27
|
+
}}};var Q=new i,R=new i;n.prototype[d.types.CONVEXPOLYHEDRON]=n.prototype.convexConvex=function(e,f,n,o,d,i,t,l,u,p,s,y,c){var a=Q;if(!(o.distanceTo(d)>f.boundingSphereRadius+n.boundingSphereRadius)&&f.findSeparatingAxis(n,o,i,d,t,a,y,c)){var r=[],w=R;f.clipAgainstHull(o,i,n,d,t,a,-100,100,r);for(var b=0;b!==r.length;b++){var m=this.makeResult(l,u,f,n,p,s),N=m.ri,g=m.rj;a.negate(m.ni),r[b].normal.negate(w),w.mult(r[b].depth,w),r[b].point.vadd(w,N),g.copy(r[b].point),N.vsub(o,N),g.vsub(d,g),N.vadd(o,N),N.vsub(l.position,N),g.vadd(d,g),g.vsub(u.position,g),e.push(m)}}};var S=new i,T=new i,U=new i;n.prototype[d.types.PLANE|d.types.PARTICLE]=n.prototype.planeParticle=function(e,f,n,o,d,i,t,l,u){var p=S;p.set(0,0,1),l.quaternion.vmult(p,p);var s=T;d.vsub(l.position,s);var y=p.dot(s);if(0>=y){var c=this.makeResult(u,l,n,f);c.ni.copy(p),c.ni.negate(c.ni),c.ri.set(0,0,0);var a=U;p.mult(p.dot(d),a),d.vsub(a,a),c.rj.copy(a),e.push(c)}};var V=new i;n.prototype[d.types.PARTICLE|d.types.SPHERE]=n.prototype.sphereParticle=function(e,f,n,o,d,i,t,l,u){var p=V;p.set(0,0,1),d.vsub(o,p);var s=p.norm2();if(s<=f.radius*f.radius){var y=this.makeResult(u,l,n,f);p.normalize(),y.rj.copy(p),y.rj.mult(f.radius,y.rj),y.ni.copy(p),y.ni.negate(y.ni),y.ri.set(0,0,0),e.push(y)}};var W=new l,X=new i,Y=(new i,new i),Z=new i,$=new i;n.prototype[d.types.PARTICLE|d.types.CONVEXPOLYHEDRON]=n.prototype.convexParticle=function(e,f,n,o,d,i,t,l,u){var p=-1,s=Y,y=$,c=null,a=0,r=X;if(r.copy(d),r.vsub(o,r),i.conjugate(W),W.vmult(r,r),f.pointIsInside(r)){f.worldVerticesNeedsUpdate&&f.computeWorldVertices(o,i),f.worldFaceNormalsNeedsUpdate&&f.computeWorldFaceNormals(i);for(var w=0,b=f.faces.length;w!==b;w++){var m=[f.worldVertices[f.faces[w][0]]],N=f.worldFaceNormals[w];d.vsub(m[0],Z);var g=-N.dot(Z);(null===c||Math.abs(g)<Math.abs(c))&&(c=g,p=w,s.copy(N),a++)}if(-1!==p){var x=this.makeResult(u,l,n,f);s.mult(c,y),y.vadd(d,y),y.vsub(o,y),x.rj.copy(y),s.negate(x.ni),x.ri.set(0,0,0);var j=x.ri,v=x.rj;j.vadd(d,j),j.vsub(u.position,j),v.vadd(o,v),v.vsub(l.position,v),e.push(x)}else console.warn("Point found inside convex, but did not find penetrating face!")}},n.prototype[d.types.BOX|d.types.HEIGHTFIELD]=n.prototype.boxHeightfield=function(e,f,n,o,d,i,t,l,u){this.convexHeightfield(e,f.convexPolyhedronRepresentation,n,o,d,i,t,l,u)};var _=new i,ef=new i,ff=[0];n.prototype[d.types.CONVEXPOLYHEDRON|d.types.HEIGHTFIELD]=n.prototype.convexHeightfield=function(e,f,n,o,d,i,l,u,p){var s=n.data,y=n.elementSize,c=f.boundingSphereRadius,a=ef,r=ff,w=_;t.pointToLocalFrame(d,l,o,w);var b=Math.floor((w.x-c)/y)-1,m=Math.ceil((w.x+c)/y)+1,N=Math.floor((w.y-c)/y)-1,g=Math.ceil((w.y+c)/y)+1;if(!(0>m||0>g||b>s.length||g>s[0].length)){0>b&&(b=0),0>m&&(m=0),0>N&&(N=0),0>g&&(g=0),b>=s.length&&(b=s.length-1),m>=s.length&&(m=s.length-1),g>=s[0].length&&(g=s[0].length-1),N>=s[0].length&&(N=s[0].length-1);var x=[];n.getRectMinMax(b,N,m,g,x);var j=x[0],v=x[1];if(!(w.z-c>v||w.z+c<j))for(var A=b;m>A;A++)for(var C=N;g>C;C++)n.getConvexTrianglePillar(A,C,!1),t.pointToWorldFrame(d,l,n.pillarOffset,a),o.distanceTo(a)<n.pillarConvex.boundingSphereRadius+f.boundingSphereRadius&&this.convexConvex(e,f,n.pillarConvex,o,a,i,l,u,p,null,null,r,null),n.getConvexTrianglePillar(A,C,!0),t.pointToWorldFrame(d,l,n.pillarOffset,a),o.distanceTo(a)<n.pillarConvex.boundingSphereRadius+f.boundingSphereRadius&&this.convexConvex(e,f,n.pillarConvex,o,a,i,l,u,p,null,null,r,null)}};var nf=new i,of=new i;n.prototype[d.types.SPHERE|d.types.HEIGHTFIELD]=n.prototype.sphereHeightfield=function(e,f,n,o,d,i,l,u,p){var s=n.data,y=f.radius,c=n.elementSize,a=of,r=nf;t.pointToLocalFrame(d,l,o,r);var w=Math.floor((r.x-y)/c)-1,b=Math.ceil((r.x+y)/c)+1,m=Math.floor((r.y-y)/c)-1,N=Math.ceil((r.y+y)/c)+1;if(!(0>b||0>N||w>s.length||N>s[0].length)){0>w&&(w=0),0>b&&(b=0),0>m&&(m=0),0>N&&(N=0),w>=s.length&&(w=s.length-1),b>=s.length&&(b=s.length-1),N>=s[0].length&&(N=s[0].length-1),m>=s[0].length&&(m=s[0].length-1);var g=[];n.getRectMinMax(w,m,b,N,g);var x=g[0],j=g[1];if(!(r.z-y>j||r.z+y<x))for(var v=w;b>v;v++)for(var A=m;N>A;A++){var C=e.length;n.getConvexTrianglePillar(v,A,!1),t.pointToWorldFrame(d,l,n.pillarOffset,a),o.distanceTo(a)<n.pillarConvex.boundingSphereRadius+f.boundingSphereRadius&&this.sphereConvex(e,f,n.pillarConvex,o,a,i,l,u,p),n.getConvexTrianglePillar(v,A,!0),t.pointToWorldFrame(d,l,n.pillarOffset,a),o.distanceTo(a)<n.pillarConvex.boundingSphereRadius+f.boundingSphereRadius&&this.sphereConvex(e,f,n.pillarConvex,o,a,i,l,u,p);var O=e.length-C;if(O>2)return}}}},{"../equations/ContactEquation":16,"../math/Quaternion":25,"../math/Transform":26,"../math/Vec3":27,"../shapes/ConvexPolyhedron":35,"../shapes/Shape":40,"../solver/Solver":43,"../utils/Vec3Pool":49}],51:[function(e,f){function n(){p.apply(this),this.dt=-1,this.allowSleep=!1,this.contacts=[],this.frictionEquations=[],this.quatNormalizeSkip=0,this.quatNormalizeFast=!1,this.time=0,this.stepnumber=0,this.default_dt=1/60,this.nextId=0,this.gravity=new d,this.broadphase=new m,this.bodies=[],this.solver=new t,this.constraints=[],this.narrowphase=new u,this.collisionMatrix=new s,this.collisionMatrixPrevious=new s,this.materials=[],this.contactmaterials=[],this.contactMaterialTable=new r,this.defaultMaterial=new y("default"),this.defaultContactMaterial=new c(this.defaultMaterial,this.defaultMaterial,{friction:.3,restitution:0}),this.doProfiling=!1,this.profile={solve:0,makeContactConstraints:0,broadphase:0,integrate:0,narrowphase:0},this.subsystems=[],this.addBodyEvent={type:"addBody",body:null},this.removeBodyEvent={type:"removeBody",body:null}}f.exports=n;var o=e("../shapes/Shape"),d=e("../math/Vec3"),i=e("../math/Quaternion"),t=e("../solver/GSSolver"),l=(e("../utils/Vec3Pool"),e("../equations/ContactEquation"),e("../equations/FrictionEquation")),u=e("./Narrowphase"),p=e("../utils/EventTarget"),s=e("../collision/ArrayCollisionMatrix"),y=e("../material/Material"),c=e("../material/ContactMaterial"),a=e("../objects/Body"),r=e("../utils/TupleDictionary"),w=(e("../collision/RaycastResult"),e("../collision/AABB")),b=e("../collision/Ray"),m=e("../collision/NaiveBroadphase");n.prototype=new p;var N=new w,g=[],x=new b;if(n.prototype.getContactMaterial=function(e,f){return this.contactMaterialTable.get(e.id,f.id)},n.prototype.numObjects=function(){return this.bodies.length},n.prototype.collisionMatrixTick=function(){var e=this.collisionMatrixPrevious;this.collisionMatrixPrevious=this.collisionMatrix,this.collisionMatrix=e,this.collisionMatrix.reset()},n.prototype.add=n.prototype.addBody=function(e){-1===this.bodies.indexOf(e)&&(e.index=this.bodies.length,this.bodies.push(e),e.world=this,e.initPosition.copy(e.position),e.initVelocity.copy(e.velocity),e.timeLastSleepy=this.time,e instanceof a&&(e.initAngularVelocity.copy(e.angularVelocity),e.initQuaternion.copy(e.quaternion)),this.collisionMatrix.setNumObjects(this.bodies.length),this.addBodyEvent.body=e,this.dispatchEvent(this.addBodyEvent))},n.prototype.addConstraint=function(e){this.constraints.push(e)},n.prototype.removeConstraint=function(e){var f=this.constraints.indexOf(e);-1!==f&&this.constraints.splice(f,1)},n.prototype.rayTest=function(e,f,n){x.from.copy(e),x.to.copy(f),x.getAABB(N),g.length=0,this.broadphase.aabbQuery(this,N,g),x.intersectBodies(g,n)},n.prototype.remove=function(e){e.world=null;var f=this.bodies.length-1,n=this.bodies,o=n.indexOf(e);if(-1!==o){n.splice(o,1);for(var d=0;d!==n.length;d++)n[d].index=d;this.collisionMatrix.setNumObjects(f),this.removeBodyEvent.body=e,this.dispatchEvent(this.removeBodyEvent)}},n.prototype.addMaterial=function(e){this.materials.push(e)},n.prototype.addContactMaterial=function(e){this.contactmaterials.push(e),this.contactMaterialTable.set(e.materials[0].id,e.materials[1].id,e)},"undefined"==typeof performance&&(performance={}),!performance.now){var j=Date.now();performance.timing&&performance.timing.navigationStart&&(j=performance.timing.navigationStart),performance.now=function(){return Date.now()-j}}var v=new d;n.prototype.step=function(e,f,n){if(n=n||10,f=f||0,0===f)this.internalStep(e),this.time+=e;else{var o=Math.floor((this.time+f)/e)-Math.floor(this.time/e);o=Math.min(o,n);for(var d=performance.now(),i=0;i!==o&&(this.internalStep(e),!(performance.now()-d>1e3*e));i++);this.time+=f;for(var t=this.time%e,l=t/e,u=v,p=this.bodies,s=0;s!==p.length;s++){var y=p[s];y.type!==a.STATIC&&y.sleepState!==a.SLEEPING?(y.position.vsub(y.previousPosition,u),u.scale(l,u),y.position.vadd(u,y.interpolatedPosition)):(y.interpolatedPosition.copy(y.position),y.interpolatedQuaternion.copy(y.quaternion))}}};var A={type:"postStep"},C={type:"preStep"},O={type:"collide",body:null,contact:null},h=[],k=[],q=[],z=[],B=new d,D=(new d,new d,new d,new d,new d,new d,new d,new d,new i,new i),E=new i,F=new d;n.prototype.internalStep=function(e){this.dt=e;var f,n=this.contacts,d=q,i=z,t=this.numObjects(),u=this.bodies,p=this.solver,s=this.gravity,y=this.doProfiling,c=this.profile,r=a.DYNAMIC,w=this.constraints,b=k,m=s.norm(),N=s.x,g=s.y,x=s.z,j=0;for(y&&(f=performance.now()),j=0;j!==t;j++){var v=u[j];if(v.type&r){var G=v.force,H=v.mass;G.x+=H*N,G.y+=H*g,G.z+=H*x}}for(var j=0,I=this.subsystems.length;j!==I;j++)this.subsystems[j].update();y&&(f=performance.now()),d.length=0,i.length=0,this.broadphase.collisionPairs(this,d,i),y&&(c.broadphase=performance.now()-f);var J=w.length;for(j=0;j!==J;j++){var K=w[j];if(!K.collideConnected)for(var L=d.length-1;L>=0;L-=1)(K.bodyA===d[L]&&K.bodyB===i[L]||K.bodyB===d[L]&&K.bodyA===i[L])&&(d.splice(L,1),i.splice(L,1))}this.collisionMatrixTick(),y&&(f=performance.now());var M=h,P=n.length;for(j=0;j!==P;j++)M.push(n[j]);n.length=0,this.narrowphase.getContacts(d,i,this,n,M),y&&(c.narrowphase=performance.now()-f),y&&(f=performance.now());var Q=n.length,R=this.frictionEquations.length;for(j=0;j!==R;j++)b.push(this.frictionEquations[j]);this.frictionEquations.length=0;for(var S=0;S!==Q;S++){var T,K=n[S],v=K.bi,U=K.bj,V=K.si,W=K.sj,j=u.indexOf(v),L=u.indexOf(U);T=v.material&&U.material?this.getContactMaterial(v.material,U.material)||this.defaultContactMaterial:this.defaultContactMaterial;var X=T.friction,Y=B;Y.set(U.position.x+K.rj.x-v.position.x-K.ri.x,U.position.y+K.rj.y-v.position.y-K.ri.y,U.position.z+K.rj.z-v.position.z-K.ri.z);var Z=Y.dot(K.ni);if(0>Z){if(K.enabled=v.collisionResponse&&U.collisionResponse&&V.collisionResponse&&W.collisionResponse,K.restitution=T.restitution,K.penetration=Z,K.setSpookParams(T.contactEquationStiffness,T.contactEquationRelaxation,e),p.addEquation(K),X>0){var $=X*m,_=v.invMass+U.invMass;_>0&&(_=1/_);var ef=b,ff=ef.length?ef.pop():new l(v,U,$*_),nf=ef.length?ef.pop():new l(v,U,$*_);this.frictionEquations.push(ff),this.frictionEquations.push(nf),ff.bi=nf.bi=v,ff.bj=nf.bj=U,ff.minForce=nf.minForce=-$*_,ff.maxForce=nf.maxForce=$*_,ff.ri.copy(K.ri),ff.rj.copy(K.rj),nf.ri.copy(K.ri),nf.rj.copy(K.rj),K.ni.tangents(ff.t,nf.t),ff.setSpookParams(T.frictionEquationStiffness,T.frictionEquationRelaxation,e),nf.setSpookParams(T.frictionEquationStiffness,T.frictionEquationRelaxation,e),ff.enabled=nf.enabled=K.enabled,p.addEquation(ff),p.addEquation(nf)}if(v.allowSleep&&v.type===a.DYNAMIC&&v.sleepState===a.SLEEPING&&U.sleepState===a.AWAKE&&U.type!==a.STATIC){var of=U.velocity.norm2()+U.angularVelocity.norm2(),df=Math.pow(U.sleepSpeedLimit,2);of>=2*df&&(v._wakeUpAfterNarrowphase=!0)}if(U.allowSleep&&U.type===a.DYNAMIC&&U.sleepState===a.SLEEPING&&v.sleepState===a.AWAKE&&v.type!==a.STATIC){var tf=v.velocity.norm2()+v.angularVelocity.norm2(),lf=Math.pow(v.sleepSpeedLimit,2);tf>=2*lf&&(U._wakeUpAfterNarrowphase=!0)}this.collisionMatrix.set(v,U,!0),this.collisionMatrix.get(v,U)!==this.collisionMatrixPrevious.get(v,U)&&(O.body=U,O.contact=K,v.dispatchEvent(O),O.body=v,U.dispatchEvent(O))}}for(y&&(c.makeContactConstraints=performance.now()-f,f=performance.now()),j=0;j!==t;j++){var v=u[j];v._wakeUpAfterNarrowphase&&(v.wakeUp(),v._wakeUpAfterNarrowphase=!1)}var J=w.length;for(j=0;j!==J;j++){var K=w[j];K.update();for(var L=0,uf=K.equations.length;L!==uf;L++){var pf=K.equations[L];p.addEquation(pf)}}p.solve(e,this),y&&(c.solve=performance.now()-f),p.removeAllEquations();var sf=Math.pow;for(j=0;j!==t;j++){var v=u[j];if(v.type&r){var yf=sf(1-v.linearDamping,e),cf=v.velocity;cf.mult(yf,cf);var af=v.angularVelocity;if(af){var rf=sf(1-v.angularDamping,e);af.mult(rf,af)}}}for(this.dispatchEvent(C),j=0;j!==t;j++){var v=u[j];v.preStep&&v.preStep.call(v)}y&&(f=performance.now());var wf=D,bf=E,mf=this.stepnumber,Nf=a.DYNAMIC|a.KINEMATIC,gf=mf%(this.quatNormalizeSkip+1)===0,xf=this.quatNormalizeFast,jf=.5*e,vf=o.types.PLANE,Af=o.types.CONVEXPOLYHEDRON;for(j=0;j!==t;j++){var Cf=u[j],Of=Cf.shape,hf=Cf.force,kf=Cf.torque;if(Cf.type&Nf&&Cf.sleepState!==a.SLEEPING){var qf=Cf.velocity,zf=Cf.angularVelocity,Bf=Cf.position,Df=Cf.quaternion,Ef=Cf.invMass,Ff=Cf.invInertiaWorld;if(qf.x+=hf.x*Ef*e,qf.y+=hf.y*Ef*e,qf.z+=hf.z*Ef*e,Cf.angularVelocity&&(Ff.vmult(kf,F),F.mult(e,F),F.vadd(zf,zf)),Bf.x+=qf.x*e,Bf.y+=qf.y*e,Bf.z+=qf.z*e,Cf.angularVelocity&&(wf.set(zf.x,zf.y,zf.z,0),wf.mult(Df,bf),Df.x+=jf*bf.x,Df.y+=jf*bf.y,Df.z+=jf*bf.z,Df.w+=jf*bf.w,gf&&(xf?Df.normalizeFast():Df.normalize())),Cf.aabb&&(Cf.aabbNeedsUpdate=!0),Of)switch(Of.type){case vf:Of.worldNormalNeedsUpdate=!0;break;case Af:Of.worldFaceNormalsNeedsUpdate=!0,Of.worldVerticesNeedsUpdate=!0}Cf.updateInertiaWorld&&Cf.updateInertiaWorld()}Cf.force.set(0,0,0),Cf.torque&&Cf.torque.set(0,0,0)}for(this.broadphase.dirty=!0,y&&(c.integrate=performance.now()-f),this.time+=e,this.stepnumber+=1,this.dispatchEvent(A),j=0;j!==t;j++){var v=u[j],Gf=v.postStep;Gf&&Gf.call(v)}if(this.allowSleep)for(j=0;j!==t;j++)u[j].sleepTick(this.time)}},{"../collision/AABB":3,"../collision/ArrayCollisionMatrix":4,"../collision/NaiveBroadphase":7,"../collision/Ray":9,"../collision/RaycastResult":10,"../equations/ContactEquation":16,"../equations/FrictionEquation":18,"../material/ContactMaterial":21,"../material/Material":22,"../math/Quaternion":25,"../math/Vec3":27,"../objects/Body":28,"../shapes/Shape":40,"../solver/GSSolver":42,"../utils/EventTarget":45,"../utils/TupleDictionary":47,"../utils/Vec3Pool":49,"./Narrowphase":50}]},{},[2])(2)});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a space where fluid simulation happens
|
|
3
|
+
*
|
|
4
|
+
* @see 2019 GDC talk by Runard Rupert "Wind Simulation in God of War" https://www.youtube.com/watch?v=dDgyBKkSf7A
|
|
5
|
+
* @see Inspired by GDC talk "Interactive Wind and Vegetation in 'God of War'" - https://www.youtube.com/watch?v=MKX45_riWQA
|
|
6
|
+
*/
|
|
7
|
+
export class FluidField{
|
|
8
|
+
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AbstractFluidEffector } from "./AbstractFluidEffector.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Affects fluid everywhere inside the field uniformly
|
|
5
|
+
*/
|
|
6
|
+
export class GlobalFluidEffector extends AbstractFluidEffector{
|
|
7
|
+
/**
|
|
8
|
+
* 3d force vector
|
|
9
|
+
* @type {number[]}
|
|
10
|
+
*/
|
|
11
|
+
force = [0, 0, 0];
|
|
12
|
+
}
|