35 lines
1.2 KiB
C
Executable File
35 lines
1.2 KiB
C
Executable File
//-----------------------------------------------------------------------------
|
|
// Torque Shader Engine
|
|
// Copyright (C) GarageGames.com, Inc.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// AABB-triangle overlap test code originally by Tomas Akenine-Möller
|
|
// Assisted by Pierre Terdiman and David Hunt
|
|
// http://www.cs.lth.se/home/Tomas_Akenine_Moller/code/
|
|
// Ported to TSE by BJG, 2005-4-14
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifndef _TRIBOXCHECK_H_
|
|
#define _TRIBOXCHECK_H_
|
|
|
|
#include "math/mPoint.h"
|
|
#include "math/mBox.h"
|
|
|
|
bool triBoxOverlap(Point3F boxcenter, Point3F boxhalfsize, Point3F triverts[3]);
|
|
|
|
/// Massage stuff into right format for triBoxOverlap test. This is really
|
|
/// just a helper function - use the other version if you want to be fast!
|
|
inline bool triBoxOverlap(Box3F box, Point3F a, Point3F b, Point3F c)
|
|
{
|
|
Point3F halfSize(box.len_x() / 2.f, box.len_y() / 2.f, box.len_z() / 2.f);
|
|
|
|
Point3F center;
|
|
box.getCenter(¢er);
|
|
|
|
Point3F verts[3] = {a,b,c};
|
|
|
|
return triBoxOverlap(center, halfSize, verts);
|
|
}
|
|
|
|
#endif |