29 #ifndef INCLUDED_Vec2C_h_GUID_F9715DE4_2649_4182_0F4C_D62121235D5F 30 #define INCLUDED_Vec2C_h_GUID_F9715DE4_2649_4182_0F4C_D62121235D5F 53 #define OSVR_VEC_MEMBER(COMPONENT, INDEX) \ 55 OSVR_INLINE double osvrVec2Get##COMPONENT(OSVR_Vec2 const *v) { \ 56 return v->data[INDEX]; \ 59 OSVR_INLINE void osvrVec2Set##COMPONENT(OSVR_Vec2 *v, double val) { \ 60 v->data[INDEX] = val; \ 66 #undef OSVR_VEC_MEMBER 79 template <
typename StreamType>
80 inline StreamType &operator<<(StreamType &os,
OSVR_Vec2 const &vec) {
81 os <<
"(" << vec.
data[0] <<
", " << vec.
data[1] <<
")";
86 #endif // INCLUDED_Vec2C_h_GUID_F9715DE4_2649_4182_0F4C_D62121235D5F struct OSVR_Vec2 OSVR_Vec2
A structure defining a 2D vector, which represents position.
A structure defining a 2D vector, which represents position.
Definition: Vec2C.h:48
double data[2]
Internal array data.
Definition: Vec2C.h:50
Header providing basic C macros for defining API headers.
OSVR_INLINE void osvrVec2Zero(OSVR_Vec2 *v)
Set a Vec2 to the zero vector.
Definition: Vec2C.h:69