Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Collision Rs | 110 | 22 | 9 | 2 years ago | 23 | April 04, 2019 | 17 | apache-2.0 | Rust | |
A collision extension to cgmath | ||||||||||
Lightingtools.lightprobesvolumes | 63 | 2 years ago | other | C# | ||||||
Light probes volumes | ||||||||||
Bvh3 | 6 | 8 years ago | C++ | |||||||
Urho3d Kinematiccharactercontroller | 4 | 4 years ago | other | C++ | ||||||
Bullet Physics KinematicCharacterController implementation for Urho3D | ||||||||||
Tower Defence | 3 | 4 years ago | C# | |||||||
A project in Unreal Engine 4.20.1 featuring a tower defense game. | ||||||||||
Bam3d | 2 | 3 years ago | 1 | Rust | ||||||
Rust 3d collision detection using glam | ||||||||||
Big_data_infrastructure | 1 | 3 years ago | Jupyter Notebook | |||||||
Collection of Big Data Infrastructure using Docker, Spark Cluster, HDFS, MangoDB, GCP |
Введение в дискретно-ориентированные многогранники для задачи определения столкновений.
Simple implementation of BVH-tree using k-DOP as a bounding volume for Collision Detection task. Bhv3 is a binary tree that allows to search collided object elements effectively.
Discrete Orientation Polytopes - the bounding volume that provides an ability to reduce cost of collision detection. Is a convex polytope bounded by k hyperplanes with fixed orientations.
Only 16, 18 and 24 planes have been implemented there.
$ cmake .; make
Run a test:
$ ./bvh3/tests/NodeTest
Two different dots should not collide (16 - is a number of planes):
KDop<16> bv1({3, 1, 0});
KDop<16> bv2({1, 5, 0});
EXPECT_FALSE(bv1.overlapped(bv2));
Creating one k-DOP from two:
KDop<16> bv1({3, 1, 0});
KDop<16> bv2({1, 5, 0});
bv1 += bv2;
Creating a tree:
TVertices vertex1 =
{
{3, 1, 0}
};
TVertices vertex2 =
{
{3, 3, 0}
};
auto root1 = buildTree<KDop<16> >(vertex1);
auto root2 = buildTree<KDop<16> >(vertex2);
TNodeKDop16::TCollidedNodes output;
// No collision found
bool found = root1->collided(root2, output);
EXPECT_FALSE(found);
delete root1;
delete root2;
Unfortunatelly line collided with just a dot:
TVertices vertices1 =
{
{3, 1, 0},
{1, 5, 0}
};
TVertices vertices2 =
{
{3, 3, 0}
};
auto root1 = buildTree<KDop<16> >(vertices1);
auto root2 = buildTree<KDop<16> >(vertices2);
TNodeKDop16::TCollidedNodes output;
bool found = root1->collided(root2, output);
EXPECT_TRUE(found);
delete root1;
delete root2;