From: martin-s Date: Fri, 2 Jan 2009 17:46:07 +0000 (+0000) Subject: Fix:Core:Fixed transformation with ENABLE_ROLL off X-Git-Tag: navit-0.5.0.5194svn~3278 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f328d391cdb6e8d0545099207f814b867aa5b4a6;p=profile%2Fivi%2Fnavit.git Fix:Core:Fixed transformation with ENABLE_ROLL off git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@1880 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- diff --git a/navit/navit/transform.c b/navit/navit/transform.c index 850886c..22acc1c 100644 --- a/navit/navit/transform.c +++ b/navit/navit/transform.c @@ -108,11 +108,11 @@ transform_setup_matrix(struct transformation *t) t->m22=pitchc*rollc*fac; #else t->m00=yawc*fac; - t->m01=-yaws*fac; - t->m10=-pitchc*yaws*fac; - t->m11=-pitchc*yawc*fac; + t->m01=yaws*fac; + t->m10=(-pitchc*yaws)*(-fac); + t->m11=pitchc*yawc*(-fac); t->m20=pitchs*yaws*fac; - t->m21=pitchs*yawc*fac; + t->m21=(-pitchs*yawc)*fac; #endif t->offz=0; t->xyscale=1; @@ -142,7 +142,7 @@ transform_setup_matrix(struct transformation *t) t->im21=(t->m01*t->m20-t->m00*t->m21)/det; t->im22=(t->m00*t->m11-t->m01*t->m10)/det; #else - det=((double)t->m00*(double)t->m11-(double)t->m01*(double)t->m10)*t->xyscale; + det=((double)t->m00*(double)t->m11-(double)t->m01*(double)t->m10); t->im00=t->m11/det; t->im01=-t->m01/det; t->im10=-t->m10/det; @@ -530,7 +530,7 @@ transform_set_roll(struct transformation *this_,int roll) transform_setup_matrix(this_); } -void +int transform_get_roll(struct transformation *this_) { return this_->roll; diff --git a/navit/navit/transform.h b/navit/navit/transform.h index b9528c7..250443a 100644 --- a/navit/navit/transform.h +++ b/navit/navit/transform.h @@ -54,10 +54,8 @@ void transform_set_yaw(struct transformation *t,int yaw); int transform_get_yaw(struct transformation *this_); void transform_set_pitch(struct transformation *this_,int pitch); int transform_get_pitch(struct transformation *this_); -#ifdef ENABLE_ROLL void transform_set_roll(struct transformation *this_,int roll); void transform_get_roll(struct transformation *this_); -#endif void transform_set_distance(struct transformation *this_,int distance); int transform_get_distance(struct transformation *this_); struct map_selection *transform_get_selection(struct transformation *this_, enum projection pro, int order);