MCPcopy Create free account
hub / github.com/ByteArena/box2d / GetWitnessPoints

Method GetWitnessPoints

CollisionB2Distance.go:361–398  ·  view source on GitHub ↗
(pA *B2Vec2, pB *B2Vec2)

Source from the content-addressed store, hash-verified

359}
360
361func (simplex B2Simplex) GetWitnessPoints(pA *B2Vec2, pB *B2Vec2) {
362 switch simplex.M_count {
363 case 0:
364 B2Assert(false)
365 break
366
367 case 1:
368 *pA = simplex.M_vs[0].WA
369 *pB = simplex.M_vs[0].WB
370 break
371
372 case 2:
373 *pA = B2Vec2Add(
374 B2Vec2MulScalar(simplex.M_vs[0].A, simplex.M_vs[0].WA),
375 B2Vec2MulScalar(simplex.M_vs[1].A, simplex.M_vs[1].WA),
376 )
377 *pB = B2Vec2Add(
378 B2Vec2MulScalar(simplex.M_vs[0].A, simplex.M_vs[0].WB),
379 B2Vec2MulScalar(simplex.M_vs[1].A, simplex.M_vs[1].WB),
380 )
381 break
382
383 case 3:
384 *pA = B2Vec2Add(
385 B2Vec2Add(
386 B2Vec2MulScalar(simplex.M_vs[0].A, simplex.M_vs[0].WA),
387 B2Vec2MulScalar(simplex.M_vs[1].A, simplex.M_vs[1].WA),
388 ),
389 B2Vec2MulScalar(simplex.M_vs[2].A, simplex.M_vs[2].WA),
390 )
391 *pB = *pA
392 break
393
394 default:
395 B2Assert(false)
396 break
397 }
398}
399
400func (simplex B2Simplex) GetMetric() float64 {
401 switch simplex.M_count {

Callers 1

B2DistanceFunction · 0.80

Calls 3

B2AssertFunction · 0.85
B2Vec2AddFunction · 0.85
B2Vec2MulScalarFunction · 0.85

Tested by

no test coverage detected