Plasma Engine  2.0
Loading...
Searching...
No Matches
Intersection.h
1#pragma once
2
3#include <Foundation/Basics.h>
4#include <Foundation/Math/Vec3.h>
5
6namespace plIntersectionUtils
7{
31 PL_FOUNDATION_DLL bool RayPolygonIntersection(const plVec3& vRayStartPos, const plVec3& vRayDir, const plVec3* pPolygonVertices,
32 plUInt32 uiNumVertices, float* out_pIntersectionTime = nullptr, plVec3* out_pIntersectionPoint = nullptr,
33 plUInt32 uiVertexStride = sizeof(plVec3)); // [tested]
34
35
38 PL_FOUNDATION_DLL plVec3 ClosestPoint_PointLineSegment(const plVec3& vStartPoint, const plVec3& vLineSegmentPos0, const plVec3& vLineSegmentPos1,
39 float* out_pFractionAlongSegment = nullptr); // [tested]
40
42 PL_FOUNDATION_DLL bool Ray2DLine2D(const plVec2& vRayStartPos, const plVec2& vRayDir, const plVec2& vLineSegmentPos0,
43 const plVec2& vLineSegmentPos1, float* out_pIntersectionTime = nullptr, plVec2* out_pIntersectionPoint = nullptr); // [tested]
44
46 PL_FOUNDATION_DLL bool IsPointOnLine(const plVec3& vLineStart, const plVec3& vLineEnd, const plVec3& vPoint, float fMaxDist = 0.01f);
47} // namespace plIntersectionUtils