SPYSpheres
|
Go to the source code of this file.
Classes | |
class | ZeroRoboticsGameImpl |
This class defines the hidden game implementation. More... | |
struct | ZeroRoboticsGameImpl::PlayerInfo |
(Required) Runs initialization fo the ZR game at the start of a test. More... | |
struct | ZeroRoboticsGameImpl::OtherInfo |
struct | ZeroRoboticsGameImpl::Light |
struct | ZeroRoboticsGameImpl::Picture |
struct | ZeroRoboticsGameImpl::Camera |
struct | ZeroRoboticsGameImpl::ChallengeInfo |
Functions | |
ZeroRoboticsGameImpl * | getGameImpl () |
void | overrideTarget2D (float target[13]) |
void | swingTwistDecomposition (float q[4], float q_sw[4], float q_tw[4], float sw_vec[3]) |
void | quatToPositive (float q[4]) |
Definition at line 60 of file ZRGameInternal.cpp.
{ return &ZeroRoboticsGameImpl::instance(); }
void overrideTarget2D | ( | float | target[13] | ) |
void quatToPositive | ( | float | q[4] | ) |
Definition at line 223 of file ZRGameInternal.cpp.
{ if (quat[3] < 0) { for (int i = 0; i < 4; i++) { quat[4] *= -1; } } }
void swingTwistDecomposition | ( | float | q[4], |
float | q_sw[4], | ||
float | q_tw[4], | ||
float | sw_vec[3] | ||
) |
Definition at line 201 of file ZRGameInternal.cpp.
{ // p = dot(q[0:2], tw_axis) * tw_axis // q_tw = [p[0], p[1], p[2], q[3]] float c = mathVecInner(q, tw_axis, 3); for (int i = 0; i < 3; i++) { q_tw[i]= tw_axis[i] * c; } q_tw[3] = q[3]; mathVecNormalize(q_tw, 4); // invert twist quaternion float q_tw_inv[4]; memcpy(q_tw_inv, q_tw, 4*sizeof(float)); for (int i = 0; i < 3; i++) { q_tw_inv[i] *= -1.0f; } quatMult(q_sw, q_tw_inv, q); }