29 #ifndef INCLUDED_Vec3C_h_GUID_BF4E98ED_74CF_4785_DB61_109A00BA74DE 30 #define INCLUDED_Vec3C_h_GUID_BF4E98ED_74CF_4785_DB61_109A00BA74DE 53 #define OSVR_VEC_MEMBER(COMPONENT, INDEX) \ 55 OSVR_INLINE double osvrVec3Get##COMPONENT(OSVR_Vec3 const *v) { \ 56 return v->data[INDEX]; \ 59 OSVR_INLINE void osvrVec3Set##COMPONENT(OSVR_Vec3 *v, double val) { \ 60 v->data[INDEX] = val; \ 67 #undef OSVR_VEC_MEMBER 81 template <
typename StreamType>
82 inline StreamType &operator<<(StreamType &os,
OSVR_Vec3 const &vec) {
83 os <<
"(" << vec.
data[0] <<
", " << vec.
data[1] <<
", " << vec.
data[2]
A structure defining a 3D vector, often a position/translation.
Definition: Vec3C.h:48
OSVR_INLINE void osvrVec3Zero(OSVR_Vec3 *v)
Set a Vec3 to the zero vector.
Definition: Vec3C.h:70
double data[3]
Internal array data.
Definition: Vec3C.h:50
struct OSVR_Vec3 OSVR_Vec3
A structure defining a 3D vector, often a position/translation.
Header providing basic C macros for defining API headers.