/// <summary> /// Sets the view angle of the current project based on the Active Workplane. /// </summary> /// <param name="viewAngle">The view orientation to set in PowerMill.</param> public override void SetViewAngle(ViewAngles viewAngle) { switch (viewAngle) { case ViewAngles.ISO1: DoCommand("ROTATE TRANSFORM ISO1 VIEWMILL RESIZEVIEW"); break; case ViewAngles.ISO2: DoCommand("ROTATE TRANSFORM ISO2 VIEWMILL RESIZEVIEW"); break; case ViewAngles.ISO3: DoCommand("ROTATE TRANSFORM ISO3 VIEWMILL RESIZEVIEW"); break; case ViewAngles.ISO4: DoCommand("ROTATE TRANSFORM ISO4 VIEWMILL RESIZEVIEW"); break; case ViewAngles.ViewFromTop: DoCommand("ROTATE TRANSFORM TOP VIEWMILL RESIZEVIEW"); break; case ViewAngles.ViewFromBottom: DoCommand("ROTATE TRANSFORM BOTTOM VIEWMILL RESIZEVIEW"); break; case ViewAngles.ViewFromLeft: DoCommand("ROTATE TRANSFORM LEFT VIEWMILL RESIZEVIEW"); break; case ViewAngles.ViewFromRight: DoCommand("ROTATE TRANSFORM RIGHT VIEWMILL RESIZEVIEW"); break; case ViewAngles.ViewFromFront: DoCommand("ROTATE TRANSFORM FRONT VIEWMILL RESIZEVIEW"); break; case ViewAngles.ViewFromBack: DoCommand("ROTATE TRANSFORM BACK VIEWMILL RESIZEVIEW"); break; } }
public static bool WorldToScreen(Vector3D worldLocation, ref float screenX, ref float screenY) { ViewAngles View = Memory.Read <ViewAngles>(SignatureManager.GetViewAngle()); RefDef Refdef = Memory.Read <RefDef>(SignatureManager.GetWorldToViewMatrix()); Vector3D vTransform; Vector3D vLocal = worldLocation - View.Origin; vTransform.X = vLocal.Dot(Refdef.ViewAxis2); vTransform.Y = vLocal.Dot(Refdef.ViewAxis3); vTransform.Z = vLocal.Dot(Refdef.ViewAxis1); // Make sure the player is in front of us. if (vTransform.Z < 0.1) { return(false); } screenX = (Overlay.Width / 2) * (1 - (vTransform.X / Refdef.FovX / vTransform.Z)); screenY = (Overlay.Height / 2) * (1 - (vTransform.Y / Refdef.FovY / vTransform.Z)); return(true); }
/// <summary> /// Sets the view angle of the current project based on the Active Workplane. /// </summary> /// <param name="viewAngle">Angle of view.</param> public abstract void SetViewAngle(ViewAngles viewAngle);