8000 GitHub - HanJaeJoon/OpenGJKSharp: A C# implementation of the GJK algorithm for 3D collision detection. Available on NuGet.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

HanJaeJoon/OpenGJKSharp

Repository files navigation

OpenGJKSharp

OpenGJKSharp is a C# native implementation of the GJK (Gilbert-Johnson-Keerthi) algorithm, designed for efficient collision detection between convex polyhedra in 3D space. This project is inspired by the original openGJK (written in C) and reimagined for the .NET ecosystem.

Installation

You can install OpenGJKSharp via NuGet:

dotnet add package OpenGJKSharp --version 0.0.5

Or using the Package Manager:

Install-Package OpenGJKSharp -Version 0.0.5

Usage

Here is an example of detecting a collision between two overlapping cubes:

using OpenGJKSharp;

// Cube 1
var a = new Vector3[]
{
    new(0, 0, 0),
    new(1, 0, 0),
    new(0, 1, 0),
    new(1, 1, 0),
    new(0, 0, 1),
    new(1, 0, 1),
    new(0, 1, 1),
    new(1, 1, 1),
};

// Cube 2
var b = new Vector3[]
{
    new(0.5f, 0.5f, 0),
    new(1.5f, 0.5f, 0),
    new(0.5f, 1.5f, 0),
    new(1.5f, 1.5f, 0),
    new(0.5f, 0.5f, 1),
    new(1.5f, 0.5f, 1),
    new(0.5f, 1.5f, 1),
    new(1.5f, 1.5f, 1),
};

bool hasCollision = OpenGJKSharp.HasCollision(a, b);

Console.WriteLine($"Collision detected: {hasCollision}"); // Outputs: true

The following image illustrates the collision between the two cubes:

Collision Example

About

A C# implementation of the GJK algorithm for 3D collision detection. Available on NuGet.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published
2EB0

Languages

0