15#if PL_SIMD_IMPLEMENTATION == PL_SIMD_IMPLEMENTATION_SSE
20 for (plUInt32 plane = 0; plane < PLANE_COUNT; ++plane)
23 equation.Load<4>(m_Planes[plane].m_vNormal.
GetData());
28#if PL_SIMD_IMPLEMENTATION == PL_SIMD_IMPLEMENTATION_SSE
30 maxExtent.m_v = _mm_xor_ps(extents.m_v, _mm_andnot_ps(equation.m_v, minusZero.m_v));
56 radius.Set(
object.m_CenterAndRadius.w());
63 xPlanes0.Load<4>(m_Planes[0].m_vNormal.
GetData());
64 yPlanes0.Load<4>(m_Planes[1].m_vNormal.
GetData());
65 zPlanes0.Load<4>(m_Planes[2].m_vNormal.
GetData());
66 dPlanes0.Load<4>(m_Planes[3].m_vNormal.
GetData());
70 tmp.SetRows(xPlanes0, yPlanes0, zPlanes0, dPlanes0);
71 xPlanes0 = -tmp.m_col0;
72 yPlanes0 = -tmp.m_col1;
73 zPlanes0 = -tmp.m_col2;
74 dPlanes0 = -tmp.m_col3;
78 minDist0 = dPlanes0 + xPlanes0 * xSphere;
79 minDist0 += yPlanes0 * ySphere;
80 minDist0 += zPlanes0 * zSphere;
87 xPlanes1.Load<4>(m_Planes[4].m_vNormal.
GetData());
88 yPlanes1.Load<4>(m_Planes[5].m_vNormal.
GetData());
89 zPlanes1.Load<4>(m_Planes[5].m_vNormal.
GetData());
90 dPlanes1.Load<4>(m_Planes[5].m_vNormal.
GetData());
94 tmp.SetRows(xPlanes1, yPlanes1, zPlanes1, dPlanes1);
95 xPlanes1 = -tmp.m_col0;
96 yPlanes1 = -tmp.m_col1;
97 zPlanes1 = -tmp.m_col2;
98 dPlanes1 = -tmp.m_col3;
102 plSimdVec4f minDist1 = dPlanes1 + xPlanes1 * xSphere;
103 minDist1 += yPlanes1 * ySphere;
104 minDist1 += zPlanes1 * zSphere;
bool Overlaps(const plSimdBBox &object) const
Returns true if the object is fully inside the frustum or partially overlaps it. Returns false when t...
Definition Frustum_inl.h:5
static plSimdFloat MakeZero()
Creates an plSimdFloat that is initialized to zero.
Definition FPUFloat_inl.h:36
static plSimdVec4f MakeZero()
Creates an plSimdVec4f that is initialized to zero.
Definition SimdVec4f_inl.h:8