add some quaternion normalizations to keep errors under control
parent
c0cdeec4c0
commit
8fa91686db
|
@ -646,6 +646,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
if (value.Length() > 1.01f || qlen <0.99)
|
if (value.Length() > 1.01f || qlen <0.99)
|
||||||
m_log.WarnFormat("[PHYSICS]: Got nonnorm quaternion Orientation from Scene in Object {0} norm {1}", Name, qlen);
|
m_log.WarnFormat("[PHYSICS]: Got nonnorm quaternion Orientation from Scene in Object {0} norm {1}", Name, qlen);
|
||||||
//
|
//
|
||||||
|
value.Normalize();
|
||||||
|
|
||||||
AddChange(changes.Orientation, value);
|
AddChange(changes.Orientation, value);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2252,6 +2254,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
if (qlen > 1.01f || qlen < 0.99)
|
if (qlen > 1.01f || qlen < 0.99)
|
||||||
m_log.WarnFormat("[PHYSICS]: Got nonnorm quaternion from geom in Object {0} norm {1}", Name, qlen);
|
m_log.WarnFormat("[PHYSICS]: Got nonnorm quaternion from geom in Object {0} norm {1}", Name, qlen);
|
||||||
//
|
//
|
||||||
|
_orientation.Normalize();
|
||||||
|
|
||||||
d.Vector3 lpos = d.GeomGetPosition(prim_geom);
|
d.Vector3 lpos = d.GeomGetPosition(prim_geom);
|
||||||
_position.X = lpos.X;
|
_position.X = lpos.X;
|
||||||
|
|
Loading…
Reference in New Issue