Detecção de colisão contínua entre dois tetraedros em movimento

Minha pergunta é bem simples. Eu tenho dois tetraedros, cada um com uma posição atual, uma velocidade linear no espaço, uma velocidade angular e um centro de massa (centro de rotação, na verdade).

Tendo esses dados, estou tentando encontrar um algoritmo (rápido) que determine com precisão (1) se eles colidiriam em algum momento, e se for o caso, (2) após quanto tempo colidiram e (3) ) o ponto de colisão.

A maioria das pessoas resolveria isso fazendo a detecção de colisão triângulo-triângulo, mas isso desperdiçaria alguns ciclos de CPU em operações redundantes, como verificar a mesma borda de um tetraedro contra a mesma borda do outro tetraedro ao verificar triângulos diferentes. Isso só significa que vou otimizar as coisas um pouco. Nada para se preocupar.

O problema é que eu não tenho conhecimento de nenhum algoritmo público de triangulo triangular CCD (detecção de colisão contínua) que leva em conta a auto-rotação.

Portanto, eu preciso de um algoritmo que seria inserido nos seguintes dados:

dados de vértice para três triângulosposição e centro de rotação / massavelocidade linear e velocidade angular

E produziria o seguinte:

Se existe uma colisãoDepois de quanto tempo a colisão ocorreuEm que ponto no espaço ocorreu a colisão

Agradeço antecipadamente por sua ajuda.

questionAnswers(7)

yourAnswerToTheQuestion