You probably have trouble finding this code because it's not a very easy thing to write. However, it is a nearly identical problem to Triangle vs OBB, since you can transform the problem into the space of the OBB and treat the problem as Triangle vs AABB. Maybe this can help your search for resources.
There are 2 face axes and 3 edge axes on a triangle. On the AABB there are 3 face axes and 3 edge axes that need to be checked. In total you have to test 5 face axes and 9 edge pair axes. You can write a fast brute force test to find the axis of minimum penetration without too much trouble. I wrote an article specific for OBB to OBB derivation here: http://www.randygaul.net/2014/05/22/deriving-obb-to-obb-intersection-sat/ If you can understand this article you will realize the problem of Triangle to AABB is very similar.
Here is a boolean function from Ericson's orange book to get you started:
int TestTriangleAABB(Point v0, Point v1, Point v2, AABB b)
float p0, p1, p2, r;
// Compute box center and extents (if not already given in that format)
Vector c = (b.min + b.max) * 0.5f;
float e0 = (b.max.x – b.min.x) * 0.5f;
float e1 = (b.max.y – b.min.y) * 0.5f;
float e2 = (b.max.z – b.min.z) * 0.5f;
// Translate triangle as conceptually moving AABB to origin
v0 = v0 – c;
v1 = v1 – c;
v2 = v2 – c;
// Compute edge vectors for triangle
Vector f0 = v1 – v0, f1 = v2 – v1, f2 = v0 – v2;
// Test axes a00..a22 (category 3)
// Test axis a00
p0 = v0.z*v1.y – v0.y*v1.z;
p2 = v2.z*(v1.y – v0.y) – v2.y*(v1.z – v0.z);
r = e1 * Abs(f0.z) + e2 * Abs(f0.y);
if (Max(-Max(p0, p2), Min(p0, p2)) > r) return 0; // Axis is a separating axis
// Repeat similar tests for remaining axes a01..a22
// Test the three axes corresponding to the face normals of AABB b (category 1).
// Exit if...
// ... [-e0, e0] and [min(v0.x,v1.x,v2.x), max(v0.x,v1.x,v2.x)] do not overlap
if (Max(v0.x, v1.x, v2.x) < -e0 || Min(v0.x, v1.x, v2.x) > e0) return 0;
// ... [-e1, e1] and [min(v0.y,v1.y,v2.y), max(v0.y,v1.y,v2.y)] do not overlap
if (Max(v0.y, v1.y, v2.y) < -e1 || Min(v0.y, v1.y, v2.y) > e1) return 0;
// ... [-e2, e2] and [min(v0.z,v1.z,v2.z), max(v0.z,v1.z,v2.z)] do not overlap
if (Max(v0.z, v1.z, v2.z) < -e2 || Min(v0.z, v1.z, v2.z) > e2) return 0;
// Test separating axis corresponding to triangle face normal (category 2)
p.n = Cross(f0, f1);
p.d = Dot(p.n, v0);
return TestAABBPlane(b, p);
Edited by Randy Gaul, 30 July 2014 - 06:51 PM.