Ray-triangle intersection algorithm not intersecting (C++)
The syntax for your dot- and cross-product are a bit strange.
The methods are members of a vector, but still take two arguments. Are they static methods? Or are you really sure they do what you would expect?

Otherwise the only real difference in your implementation and the one you linked that I can see is your test against the parameter t.

The implementation you linked tests for

if(t &gt; EPSILON)


your code tests for

if(t &lt; abs(hitFaces.s))


I don't see in your code how you set the value for hitFaces.s since you fire this ray against a model and don't know jet if it has hit anything.
My understanding would be, that you first test if t is large enough to signal a hit ( > EPSILON ) and then in a second step sort for the smallest t (closest to the ray origin).

In my head you can't get a value for hitFaces.s without calculating this intersection test as you wrote it, and the intersection test needs the hitFaces.s to determine if an intersection was made. But I could be in the wrong here.