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
void osvrVec2Zero(OSVR_Vec2 *v)
Set a Vec2 to the zero vector.
struct OSVR_Vec2 OSVR_Vec2
A structure defining a 2D vector, which represents position.
void osvrVec2SetY(OSVR_Vec2 *v, double val)
Setter for Vec2 component Y.
A structure defining a 2D vector, which represents position.
double data[2]
Internal array data.
void osvrVec2SetX(OSVR_Vec2 *v, double val)
Setter for Vec2 component X.
Header providing basic C macros for defining API headers.