Exemplo n.º 1
0
        /** Vector3
         * X - horizontal axis
         * Y - vertical axis
         * Z - height axis
         */
        private void SetCameraPosition(CameraPositionEnum position)
        {
            switch (position)
            {
            case CameraPositionEnum.FACE:
                this.currentCamPos = this.originalCamPos;
                //this.currentCamPos.X -= 1f;
                //this.currentCamPos.Y += 1.5f;
                //this.currentCamPos.Z += 0.5f;
                API.PointCamAtCoord(this.camera, this.originalCamPointCoord.X, this.originalCamPointCoord.Y, this.originalCamPointCoord.Z);
                break;

            case CameraPositionEnum.TORSO:
                break;

            case CameraPositionEnum.LEGS:
                break;

            case CameraPositionEnum.SHOES:
                break;

            case CameraPositionEnum.FULLBODY:
                this.currentCamPos    = this.originalCamPos;
                this.currentCamPos.X += 1f;
                this.currentCamPos.Y -= 1f;
                this.currentCamPos.Z -= 1f;
                API.PointCamAtCoord(this.camera, this.pedPos.X, this.pedPos.Y, this.pedPos.Z + 0.5f);                       // Point at dick
                break;

            default: break;
            }
            API.SetCamCoord(this.camera, this.currentCamPos.X, this.currentCamPos.Y, this.currentCamPos.Z);
        }
Exemplo n.º 2
0
        public void ResetCamera(CameraPositionEnum cameraPosition, bool lockZoom = false)
        {
            if (cameraPosition == CameraPositionEnum.Current)
            {
                cameraPosition = _CurrentCameraPosition;
            }

            Viewport.FixedRotationPoint = new Point3D(0f, 0f, _modelHeightPosition / 2f);

            double dirMult = cameraPosition == CameraPositionEnum.Back || cameraPosition == CameraPositionEnum.OtherSide ? -1 : 1;

            switch (cameraPosition)
            {
            default:
            case CameraPositionEnum.Default:
                Viewport.FixedRotationPoint = new Point3D(0f, 0f, _modelHeightPosition / 5f);
                Viewport.Camera.AnimateTo(_modelCameraPosition, new Vector3D(-1, 1, -1), new Vector3D(0, 0, 1), 500d);
                break;

            case CameraPositionEnum.Up:
                Viewport.Camera.AnimateTo(new Point3D(0, 0, _modelCameraPosition.Z * 2),
                                          new Vector3D(_CurrentCameraPosition == CameraPositionEnum.Front ? -0.01 * dirMult : 0, _CurrentCameraPosition != CameraPositionEnum.Front ? -0.01 * dirMult : 0, -1), new Vector3D(0, 0, 1f), 500d);
                break;

            case CameraPositionEnum.Front:
            case CameraPositionEnum.Back:
                Viewport.Camera.AnimateTo(new Point3D(0, _modelCameraPosition.Y * 2 * dirMult, _modelHeightPosition / 2d), new Vector3D(0, 1 * dirMult, 0), new Vector3D(0, 0, 1f), 500d);
                break;

            case CameraPositionEnum.Side:
            case CameraPositionEnum.OtherSide:
                Viewport.Camera.AnimateTo(new Point3D(_modelCameraPosition.X * 2 * dirMult, 0, _modelHeightPosition / 2d), new Vector3D(-1 * dirMult, 0, 0), new Vector3D(0, 0, 1f), 500d);
                break;
            }

            if (CurrentModelVisual == null)
            {
                minZoom = maxZoom = _modelCameraPosition.DistanceTo(new Point3D());
            }

            _CurrentCameraPosition = cameraPosition;
        }