11#include <glm/gtc/quaternion.hpp>
19void pushBody2D(
const SceneNode &
n,
void *
target) {
21 b->setPosition(
n.x,
n.y);
25void pullBody2D(SceneNode &
n,
void *
target) {
29 n.roll =
b->getAngle();
32bool aliveBody2D(
const void *
target) {
33 return static_cast<const Body *
>(
target)->raw() !=
nullptr;
36void pushBody3D(
const SceneNode &
n,
void *
target) {
37 auto *
b =
static_cast<Body3D *
>(
target);
38 b->setPosition(
n.x,
n.y,
n.z);
39 glm::quat
q = glm::angleAxis(
n.yaw, glm::vec3(0.f, 1.f, 0.f)) *
40 glm::angleAxis(
n.pitch, glm::vec3(1.f, 0.f, 0.f)) *
41 glm::angleAxis(
n.roll, glm::vec3(0.f, 0.f, 1.f));
42 b->setRotation(
q.x,
q.y,
q.z,
q.w);
45void pullBody3D(SceneNode &
n,
void *
target) {
46 auto *
b =
static_cast<Body3D *
>(
target);
50 glm::quat
q(
b->getRotW(),
b->getRotX(),
b->getRotY(),
b->getRotZ());
51 glm::vec3 e = glm::eulerAngles(
q);
57bool aliveBody3D(
const void *
target) {
58 return static_cast<const Body3D *
>(
target)->isValid();
std::array< double, 10 > q
Optional physics backend for vehicle mobility and body attach.
int registerLinkKind(const LinkOps &ops)
Registers link kind.
Retained scene node (arena). Conceptual GameObject; isomorphic to eve::ui::UINode.