コード例 #1
0
        /// <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;
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 /// <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);