private static Vector3D GetViewUp(Viewpoint v) { Rotation3D oRot = v.Rotation; // calculate view direction Rotation3D oNegtiveZ = new Rotation3D(0, 1, 0, 0); Rotation3D otempRot = MultiplyRotation3D(oNegtiveZ, oRot.Invert()); Rotation3D oViewDirRot = MultiplyRotation3D(oRot, otempRot); // get view direction Vector3D oViewDir = new Vector3D(oViewDirRot.A, oViewDirRot.B, oViewDirRot.C); return(oViewDir.Normalize()); }
/// <summary> /// Get View Normal /// </summary> /// <param name="oVP"></param> /// <returns></returns> private Vector3D getViewUp(Viewpoint oVP) { double units = GetGunits(); Rotation3D oRot = oVP.Rotation; // calculate view direction Rotation3D oNegtiveZ = new Rotation3D(0, 1, 0, 0); Rotation3D otempRot = MultiplyRotation3D(oNegtiveZ, oRot.Invert()); Rotation3D oViewDirRot = MultiplyRotation3D(oRot, otempRot); // get view direction Vector3D oViewDir = new Vector3D(oViewDirRot.A, oViewDirRot.B, oViewDirRot.C); return(oViewDir.Normalize()); }