SPYSpheres
|
#include <string.h>
#include <math.h>
#include "ZRGame.h"
#include "ZRGameInternal.h"
#include "ZR_API_internal.h"
#include "ZR_API.h"
#include "Constants.h"
#include "commands.h"
#include "system.h"
#include "math_matrix.h"
#include "gsp.h"
#include "control.h"
#include "find_state_error.h"
#include "housekeeping_internal.h"
Go to the source code of this file.
Functions | |
ZeroRoboticsGameImpl * | getGameImpl () |
void | swingTwistDecomposition (float q[4], float q_sw[4], float q_tw[4], float tw_axis[3]) |
void | quatToPositive (float quat[4]) |
Variables | |
state_vector | initStateZR = {0.4,-0.6,0, 0,0,0, 0.7071,-0.7071,0,0, 0,0,0} |
This file is used to define the C++ implementation of both the public and the private game API functions. |
Definition at line 60 of file ZRGameInternal.cpp.
{ return &ZeroRoboticsGameImpl::instance(); }
void quatToPositive | ( | float | quat[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 | tw_axis[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); }
state_vector initStateZR = {0.4,-0.6,0, 0,0,0, 0.7071,-0.7071,0,0, 0,0,0} |
This file is used to define the C++ implementation of both the public and the private game API functions.
Public functions will be prefixed with ZeroRoboticsGame:: while private implementation functions will be prefixed with ZeroRoboticsGameImpl:: Use these vectors to choose the satellites state when the user is given control.
Definition at line 32 of file ZRGameInternal.cpp.