Cleanup.
This commit is contained in:
parent
812af5e6f1
commit
f993167026
@ -440,7 +440,7 @@ Ray makeRay(float _x, float _y, const float* _invVp)
|
|||||||
|
|
||||||
inline Vec3 getPointAt(const Ray& _ray, float _t)
|
inline Vec3 getPointAt(const Ray& _ray, float _t)
|
||||||
{
|
{
|
||||||
return add(mul(_ray.dir, _t), _ray.pos);
|
return mad(_ray.dir, _t, _ray.pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool intersect(const Ray& _ray, const Aabb& _aabb, Hit* _hit)
|
bool intersect(const Ray& _ray, const Aabb& _aabb, Hit* _hit)
|
||||||
@ -754,7 +754,7 @@ bool intersect(const Ray& _ray, const Plane& _plane, Hit* _hit)
|
|||||||
|
|
||||||
float tt = -dist/ndotd;
|
float tt = -dist/ndotd;
|
||||||
_hit->plane.dist = tt;
|
_hit->plane.dist = tt;
|
||||||
_hit->pos = getPointAt(_ray, tt);
|
_hit->pos = getPointAt(_ray, tt);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -855,12 +855,11 @@ Vec3 barycentric(const Triangle& _triangle, const Vec3& _pos)
|
|||||||
|
|
||||||
const float invDenom = 1.0f/(dot00*dot11 - square(dot01) );
|
const float invDenom = 1.0f/(dot00*dot11 - square(dot01) );
|
||||||
|
|
||||||
const float uu = (dot11*dot02 - dot01*dot12)*invDenom;
|
const float vv = (dot11*dot02 - dot01*dot12)*invDenom;
|
||||||
const float vv = (dot00*dot12 - dot01*dot02)*invDenom;
|
const float ww = (dot00*dot12 - dot01*dot02)*invDenom;
|
||||||
const float ww = 1.0f - uu - vv;
|
const float uu = 1.0f - vv - ww;
|
||||||
|
|
||||||
return { uu, vv, ww };
|
return { uu, vv, ww };
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec3 cartesian(const Triangle& _triangle, const Vec3& _uvw)
|
Vec3 cartesian(const Triangle& _triangle, const Vec3& _uvw)
|
||||||
@ -1074,6 +1073,13 @@ bool intersect(float& _outTa, float& _outTb, const LineSegment& _a, const LineSe
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float distance(const Plane& _plane, const LineSegment& _line)
|
||||||
|
{
|
||||||
|
const float pd = distance(_plane, _line.pos);
|
||||||
|
const float ed = distance(_plane, _line.end);
|
||||||
|
return min(max(pd*ed, 0.0f), bx::abs(pd), bx::abs(ed) );
|
||||||
|
}
|
||||||
|
|
||||||
Vec3 closestPoint(const LineSegment& _line, const Vec3& _point, float& _outT)
|
Vec3 closestPoint(const LineSegment& _line, const Vec3& _point, float& _outT)
|
||||||
{
|
{
|
||||||
const Vec3 axis = sub(_line.end, _line.pos);
|
const Vec3 axis = sub(_line.end, _line.pos);
|
||||||
@ -1306,8 +1312,7 @@ bool overlap(const Capsule& _capsule, const Aabb& _aabb)
|
|||||||
|
|
||||||
bool overlap(const Capsule& _capsule, const Plane& _plane)
|
bool overlap(const Capsule& _capsule, const Plane& _plane)
|
||||||
{
|
{
|
||||||
BX_UNUSED(_capsule, _plane);
|
return distance(_plane, LineSegment{_capsule.pos, _capsule.end}) <= _capsule.radius;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool overlap(const Capsule& _capsule, const Triangle& _triangle)
|
bool overlap(const Capsule& _capsule, const Triangle& _triangle)
|
||||||
|
Loading…
Reference in New Issue
Block a user