22 #ifndef __ND_SPATIAL_VECTOR_H__
23 #define __ND_SPATIAL_VECTOR_H__
25 #include "ndCoreStdafx.h"
33 D_OPERATOR_NEW_AND_DELETE
58 inline ndFloat64& operator[] (ndInt32 i)
61 ndAssert(i < ndInt32(
sizeof(m_f) /
sizeof(m_f[0])));
62 return ((ndFloat64*)&m_f)[i];
65 inline const ndFloat64& operator[] (ndInt32 i)
const
68 ndAssert(i < ndInt32 (
sizeof(m_f) /
sizeof(m_f[0])));
69 return ((ndFloat64*)&m_f)[i];
74 return ndSpatialVector(m_data.m_low + A.m_data.m_low, m_data.m_high + A.m_data.m_high);
79 return ndSpatialVector(m_data.m_low * A.m_data.m_low, m_data.m_high * A.m_data.m_high);
84 ndAssert(m_f[6] == ndFloat32(0.0f));
85 ndAssert(m_f[7] == ndFloat32(0.0f));
86 ndBigVector tmp(m_data.m_low * v.m_data.m_low + m_data.m_high * v.m_data.m_high);
87 return tmp.AddHorizontal().GetScalar();
98 inline ndData(
const ndFloat64 a)
127 } D_GCC_NEWTON_ALIGN_32;