Пример #1
0
kexQuat kexAngle::ToQuat(void)
{
    return
        (kexQuat(pitch, kexVec3::vecRight) *
         (kexQuat(yaw, kexVec3::vecUp) *
          kexQuat(roll, kexVec3::vecForward)));
}
Пример #2
0
kexQuat kexVec3::ToQuat(void) {
    float d = Unit();

    if(d == 0.0f)
        return kexQuat();

    kexVec3 scv = *this * (1.0f / d);
    float angle = kexMath::ACos(scv.y);

    return kexQuat(angle, vecForward.Cross(scv).Normalize());
}
Пример #3
0
void kexDisplayObject::Spawn(void) {
    if(rotation.x == 0 && rotation.y == 0 && rotation.z == 0 && rotation.w == 0) {
        rotation = kexQuat(angles.yaw, 0, 1, 0);
    }

    rotation.Normalize();
}
Пример #4
0
kexQuat kexPlane::ToQuat(void) {
    kexVec3 cross = kexVec3::vecUp.Cross(Normal()).Normalize();
    return kexQuat(kexMath::ACos(kexVec3::vecUp.Dot(Normal())), cross);
}