Skip to content

Commit

Permalink
feat: test improvement
Browse files Browse the repository at this point in the history
  • Loading branch information
Jacek Pietal committed Feb 28, 2024
1 parent 29f027e commit 8e4d6eb
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 27 deletions.
9 changes: 3 additions & 6 deletions dist/demo/demo.js
Original file line number Diff line number Diff line change
Expand Up @@ -1425,12 +1425,9 @@ class System extends base_system_1.BaseSystem {
* check do 2 objects collide
*/
checkCollision(bodyA, bodyB, response = this.response) {
// if any of bodies is not inserted
if (!bodyA.bbox || !bodyB.bbox) {
return false;
}
// if any of bodies has padding, we can assess the bboxes without padding
if ((bodyA.padding || bodyB.padding) &&
// assess the bodies real aabb without padding
if (!bodyA.bbox ||
!bodyB.bbox ||
(0, utils_1.notIntersectAABB)(bodyA.bbox, bodyB.bbox)) {
return false;
}
Expand Down
9 changes: 3 additions & 6 deletions dist/system.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,12 +73,9 @@ class System extends base_system_1.BaseSystem {
* check do 2 objects collide
*/
checkCollision(bodyA, bodyB, response = this.response) {
// if any of bodies is not inserted
if (!bodyA.bbox || !bodyB.bbox) {
return false;
}
// if any of bodies has padding, we can assess the bboxes without padding
if ((bodyA.padding || bodyB.padding) &&
// assess the bodies real aabb without padding
if (!bodyA.bbox ||
!bodyB.bbox ||
(0, utils_1.notIntersectAABB)(bodyA.bbox, bodyB.bbox)) {
return false;
}
Expand Down
2 changes: 1 addition & 1 deletion docs/classes/System.html
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@
performance worse if the data is scattered.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">items</span>: <span class="tsd-signature-keyword">readonly </span><a class="tsd-signature-type tsd-kind-type-parameter" href="System.html#constructor.new_System.TBody-1">TBody</a><span class="tsd-signature-symbol">[]</span></span><div class="tsd-comment tsd-typography"><p>The items to load.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="RBush.html" class="tsd-signature-type tsd-kind-class">RBush</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="System.html#constructor.new_System.TBody-1">TBody</a><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from BaseSystem.load</p><ul><li>Defined in node_modules/@types/rbush/index.d.ts:44</li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="raycast" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>raycast</span><a href="#raycast" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="raycast.raycast-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">raycast</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">start</span>, <span class="tsd-kind-parameter">end</span>, <span class="tsd-kind-parameter">allow</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/RaycastHit.html" class="tsd-signature-type tsd-kind-interface">RaycastHit</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="System.html#constructor.new_System.TBody-1">TBody</a><span class="tsd-signature-symbol">&gt;</span><a href="#raycast.raycast-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>raycast to get collider of ray from start to end</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">start</span>: <a href="../interfaces/Vector.html" class="tsd-signature-type tsd-kind-interface">Vector</a></span></li><li><span><span class="tsd-kind-parameter">end</span>: <a href="../interfaces/Vector.html" class="tsd-signature-type tsd-kind-interface">Vector</a></span></li><li><span><span class="tsd-kind-parameter">allow</span>: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">body</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> = returnTrue</span></span><ul class="tsd-parameters"><li class="tsd-parameter-signature"><ul class="tsd-signatures"><li class="tsd-signature"><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">body</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">body</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="System.html#constructor.new_System.TBody-1">TBody</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4></li></ul></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/RaycastHit.html" class="tsd-signature-type tsd-kind-interface">RaycastHit</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="System.html#constructor.new_System.TBody-1">TBody</a><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Prozi/detect-collisions/blob/master/src/system.ts#L183">src/system.ts:183</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><a id="remove" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>remove</span><a href="#remove" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-signature tsd-anchor-link"><a id="remove.remove-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">remove</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">body</span>, <span class="tsd-kind-parameter">equals</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="RBush.html" class="tsd-signature-type tsd-kind-class">RBush</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="System.html#constructor.new_System.TBody-1">TBody</a><span class="tsd-signature-symbol">&gt;</span><a href="#remove.remove-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>remove body aabb from collision tree</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">start</span>: <a href="../interfaces/Vector.html" class="tsd-signature-type tsd-kind-interface">Vector</a></span></li><li><span><span class="tsd-kind-parameter">end</span>: <a href="../interfaces/Vector.html" class="tsd-signature-type tsd-kind-interface">Vector</a></span></li><li><span><span class="tsd-kind-parameter">allow</span>: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">body</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> = returnTrue</span></span><ul class="tsd-parameters"><li class="tsd-parameter-signature"><ul class="tsd-signatures"><li class="tsd-signature"><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">body</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">body</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="System.html#constructor.new_System.TBody-1">TBody</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4></li></ul></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/RaycastHit.html" class="tsd-signature-type tsd-kind-interface">RaycastHit</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="System.html#constructor.new_System.TBody-1">TBody</a><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Prozi/detect-collisions/blob/master/src/system.ts#L179">src/system.ts:179</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><a id="remove" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>remove</span><a href="#remove" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-signature tsd-anchor-link"><a id="remove.remove-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">remove</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">body</span>, <span class="tsd-kind-parameter">equals</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="RBush.html" class="tsd-signature-type tsd-kind-class">RBush</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="System.html#constructor.new_System.TBody-1">TBody</a><span class="tsd-signature-symbol">&gt;</span><a href="#remove.remove-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>remove body aabb from collision tree</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">body</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="System.html#constructor.new_System.TBody-1">TBody</a></span></li><li><span><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">equals</span>: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">a</span>, <span class="tsd-kind-parameter">b</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span></span><ul class="tsd-parameters"><li class="tsd-parameter-signature"><ul class="tsd-signatures"><li class="tsd-signature"><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">a</span>, <span class="tsd-kind-parameter">b</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">a</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="System.html#constructor.new_System.TBody-1">TBody</a></span></li><li><span><span class="tsd-kind-parameter">b</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="System.html#constructor.new_System.TBody-1">TBody</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4></li></ul></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <a href="RBush.html" class="tsd-signature-type tsd-kind-class">RBush</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="System.html#constructor.new_System.TBody-1">TBody</a><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Inherited from BaseSystem.remove</p><ul><li>Defined in <a href="https://github.com/Prozi/detect-collisions/blob/master/src/base-system.ts#L188">src/base-system.ts:188</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited tsd-is-external"><a id="search" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>search</span><a href="#search" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited tsd-is-external"><li class="tsd-signature tsd-anchor-link"><a id="search.search-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">search</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">box</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a class="tsd-signature-type tsd-kind-type-parameter" href="System.html#constructor.new_System.TBody-1">TBody</a><span class="tsd-signature-symbol">[]</span><a href="#search.search-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Returns an array of data items (points or rectangles) that the given
bounding box intersects.</p>
<p>Note that the search method accepts a bounding box in <code>{minX, minY, maxX, maxY}</code> format regardless of the data format.</p>
Expand Down
9 changes: 3 additions & 6 deletions docs/demo/demo.js
Original file line number Diff line number Diff line change
Expand Up @@ -1425,12 +1425,9 @@ class System extends base_system_1.BaseSystem {
* check do 2 objects collide
*/
checkCollision(bodyA, bodyB, response = this.response) {
// if any of bodies is not inserted
if (!bodyA.bbox || !bodyB.bbox) {
return false;
}
// if any of bodies has padding, we can assess the bboxes without padding
if ((bodyA.padding || bodyB.padding) &&
// assess the bodies real aabb without padding
if (!bodyA.bbox ||
!bodyB.bbox ||
(0, utils_1.notIntersectAABB)(bodyA.bbox, bodyB.bbox)) {
return false;
}
Expand Down
1 change: 0 additions & 1 deletion src/bodies/box.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,6 @@ describe("GIVEN Box", () => {
system.checkCollision(box, body),
);

// correct result is 0
expect(collisions.length).toBe(0);
});
});
10 changes: 3 additions & 7 deletions src/system.ts
Original file line number Diff line number Diff line change
Expand Up @@ -117,14 +117,10 @@ export class System<TBody extends Body = Body> extends BaseSystem<TBody> {
bodyB: TBody,
response = this.response,
): boolean {
// if any of bodies is not inserted
if (!bodyA.bbox || !bodyB.bbox) {
return false;
}

// if any of bodies has padding, we can assess the bboxes without padding
// assess the bodies real aabb without padding
if (
(bodyA.padding || bodyB.padding) &&
!bodyA.bbox ||
!bodyB.bbox ||
notIntersectAABB(bodyA.bbox, bodyB.bbox)
) {
return false;
Expand Down

0 comments on commit 8e4d6eb

Please sign in to comment.