static void r_vec_q16(NET_Packet& P,Fvector& vec,const Fvector& min,const Fvector& max) { P.r_float_q16(vec.x,min.x,max.x); P.r_float_q16(vec.y,min.y,max.y); P.r_float_q16(vec.z,min.z,max.z); //clamp(vec.x,min.x,max.x); //clamp(vec.y,min.y,max.y); //clamp(vec.z,min.z,max.z); }
static void r_qt_q16(NET_Packet& P,Fquaternion& q) { // x^2 + y^2 + z^2 + w^2 = 1 //P.r_float_q16(q.x,-1.f,1.f); //P.r_float_q16(q.y,-1.f,1.f); //P.r_float_q16(q.z,-1.f,1.f); //float w2=1.f-q.x*q.x-q.y*q.y-q.z*q.z; //w2=w2<0.f ? 0.f : w2; //q.w=_sqrt(w2); /////////////////////////////////////////////////// P.r_float_q16(q.x,-1.f,1.f); P.r_float_q16(q.y,-1.f,1.f); P.r_float_q16(q.z,-1.f,1.f); P.r_float_q16(q.w,-1.f,1.f); //clamp(q.x,-1.f,1.f); //clamp(q.y,-1.f,1.f); //clamp(q.z,-1.f,1.f); //clamp(q.w,-1.f,1.f); }