diff options
author | rodri <rgl@antares-labs.eu> | 2024-06-16 09:57:11 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2024-06-16 09:57:11 +0000 |
commit | ecdeed125c0fe00b6a90f85db44ad37f0913e992 (patch) | |
tree | cd63d29ffd837887db0b3a1011ef8f64c412d9cd /vis.c | |
parent | 093323c36fa083a897dc371b36889296d1069715 (diff) | |
download | 3dee-ecdeed125c0fe00b6a90f85db44ad37f0913e992.tar.gz 3dee-ecdeed125c0fe00b6a90f85db44ad37f0913e992.tar.bz2 3dee-ecdeed125c0fe00b6a90f85db44ad37f0913e992.zip |
vis,med: make qball rotations position-independent.
the camera no longer needs to be on the first
quadrant for the qball to work.
Diffstat (limited to 'vis.c')
-rw-r--r-- | vis.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -569,9 +569,9 @@ lmb(void) Δorient = mulq(orient, invq(Δorient)); for(e = scene->ents.next; e != &scene->ents; e = e->next){ - e->bx = Vecquat(mulq(mulq(Δorient, Quatvec(0, e->bx)), invq(Δorient))); - e->by = Vecquat(mulq(mulq(Δorient, Quatvec(0, e->by)), invq(Δorient))); - e->bz = Vecquat(mulq(mulq(Δorient, Quatvec(0, e->bz)), invq(Δorient))); + e->bx = vcs2world(maincam, Vecquat(mulq(mulq(Δorient, Quatvec(0, world2vcs(maincam, e->bx))), invq(Δorient)))); + e->by = vcs2world(maincam, Vecquat(mulq(mulq(Δorient, Quatvec(0, world2vcs(maincam, e->by))), invq(Δorient)))); + e->bz = vcs2world(maincam, Vecquat(mulq(mulq(Δorient, Quatvec(0, world2vcs(maincam, e->bz))), invq(Δorient)))); } }else{ Framebuf *fb; |