public override void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters)
        {
            AnimatedBodyPartGroup wheatBale     = new AnimatedBodyPartGroup(ResourceBlock.getPathForResourceType(ResourceBlock.ResourceType.Wheat), 1.0f / 7.0f);
            AnimatedBodyPartGroup log           = new AnimatedBodyPartGroup(ResourceBlock.getPathForResourceType(ResourceBlock.ResourceType.Wood), 1.0f / 7.0f);
            AnimatedBodyPartGroup standardBlock = new AnimatedBodyPartGroup(ResourceBlock.getPathForResourceType(ResourceBlock.ResourceType.standardBlock), 1.0f / 7.0f);

            wheatBale.setScale(1f / 7f);
            log.setScale(1f / 7f);
            standardBlock.setScale(1f / 7f);

            foreach (BlockLoc key in resourceBlocks.Keys)
            {
                switch (resourceBlocks[key].getResourceType())
                {
                case ResourceBlock.ResourceType.Wood:
                    log.setRootPartLocation(key.getMiddleInWorldSpace());
                    log.draw(device, effect);
                    break;

                case ResourceBlock.ResourceType.Wheat:
                    wheatBale.setRootPartLocation(key.getMiddleInWorldSpace());
                    wheatBale.draw(device, effect);
                    break;

                case ResourceBlock.ResourceType.standardBlock:
                    standardBlock.setRootPartLocation(key.getMiddleInWorldSpace());
                    standardBlock.draw(device, effect);
                    break;
                }
            }
            foreach (Stockpile stockpile in stockpiles)
            {
                stockpile.draw(device, effect, parameters);
            }
        }
 public override void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters)
 {
     foreach (BlockLoc test in blocksToBeRemoved)
     {
         WorldMarkupHandler.addCharacter(ContentDistributor.getEmptyString() + @"worldMarkup\redCubeOutline.chr",
                                         test.toWorldSpaceVector3() + new Vector3(.5f, .5f, .5f), 1.1f / 7f, .6f);
     }
 }
Exemple #3
0
 public override void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters)
 {
     foreach (BlockLoc test in plantBlocks.Keys)
     {
         string number = plantBlocks[test].getGrowthLevel() + "";
         WorldMarkupHandler.addFlagPathWithPosition(ContentDistributor.getEmptyString() + @"worldMarkup\wheatGrowthStage" + number + ".chr",
                                                    test.toWorldSpaceVector3() + new Vector3(.5f, -.5f, .5f));
     }
 }
Exemple #4
0
        public int TargetUnitsInMeter = 100 * 100; // 100 units per cm, 100 cm in 1 m

        void OnEnable()
        {
            DisplayParameters displayParameters = DisplayParameters.Collect();

            GetComponent <RectTransform>().localScale =
                new Vector3(
                    displayParameters.Dpm.x / TargetUnitsInMeter,
                    displayParameters.Dpm.y / TargetUnitsInMeter,
                    1f);
        }
Exemple #5
0
        void UpdateViewAndMaterialParameters(HmdParameters hmd, DisplayParameters display)
        {
            Distortion distortion = new Distortion(hmd.DistortionK1, hmd.DistortionK2);

            distortion.DistortionK1 = hmd.DistortionK1;
            distortion.DistortionK2 = hmd.DistortionK2;

            float zNear = _camWorldLeft.nearClipPlane;
            float zFar  = _camWorldLeft.farClipPlane;

            Fov displayDistancesLeft = Calculator.GetFovDistancesLeft(display, hmd);

            // То, как должен видеть левый глаз свой кусок экрана. Без линзы. C учётом только размеров дисплея
            Fov fovDisplayTanAngles = displayDistancesLeft / hmd.ScreenToLensDist;

            // FoV шлема
            Fov hmdMaxFovTanAngles = Fov.AnglesToTanAngles(hmd.MaxFovAngles);

            // То, как должен видеть левый глаз свой кусок экрана. Без линзы. C учётом размеров дисплея и FoV шлема
            Fov fovEyeTanAglesLeft = Fov.Min(fovDisplayTanAngles, hmdMaxFovTanAngles);

            // То, как должен видеть левый глаз. Мнимое изображение (после увеличения идеальной линзой без искажений). С широким углом. Именно так надо снять сцену
            Fov fovWorldTanAnglesLeft = Calculator.DistortTanAngles(fovEyeTanAglesLeft, distortion);

            Matrix4x4 projWorldLeft;
            Matrix4x4 projWorldRight;

            Calculator.ComposeProjectionMatricesFromFovTanAngles(fovWorldTanAnglesLeft, zNear, zFar, out projWorldLeft, out projWorldRight);

            Matrix4x4 projEyeLeft;
            Matrix4x4 projEyeRight;

            Calculator.ComposeProjectionMatricesFromFovTanAngles(fovDisplayTanAngles, zNear, zFar, out projEyeLeft, out projEyeRight);

            _camWorldLeft.transform.localPosition  = 0.5f * Vector3.left * hmd.InterlensDistance;
            _camWorldRight.transform.localPosition = 0.5f * Vector3.right * hmd.InterlensDistance;

            _camEyeLeft.transform.localPosition  = 0.5f * Vector3.left * hmd.InterlensDistance;
            _camEyeRight.transform.localPosition = 0.5f * Vector3.right * hmd.InterlensDistance;

            _camWorldLeft.projectionMatrix  = projWorldLeft;
            _camWorldRight.projectionMatrix = projWorldRight;

            _camWorldLeftScaler.SetFov(fovWorldTanAnglesLeft);
            _camWorldRightScaler.SetFov(fovWorldTanAnglesLeft.GetFlippedHorizontally());

            _camEyeLeft.projectionMatrix  = projEyeLeft;
            _camEyeRight.projectionMatrix = projEyeRight;

            EyeMaterialLeft.SetFloat("_DistortionK1", hmd.DistortionK1);
            EyeMaterialRight.SetFloat("_DistortionK1", hmd.DistortionK1);

            EyeMaterialLeft.SetFloat("_DistortionK2", hmd.DistortionK2);
            EyeMaterialRight.SetFloat("_DistortionK2", hmd.DistortionK2);
        }
Exemple #6
0
        void Update()
        {
            DisplayParameters newDisplay = DisplayParameters.Collect();

            if (_hmdParamsDirty || !newDisplay.Equals(_display))
            {
                UpdateViewAndMaterialParameters(HmdParameters.Instance, newDisplay);
                _hmdParamsDirty = false;
                _display        = newDisplay;
            }
        }
Exemple #7
0
 public override void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters)
 {
     lock (trees)
     {
         foreach (Tree toDraw in trees)
         {
             //toDraw.addToWorldMarkup();
             toDraw.draw(device, effect);
         }
     }
 }
Exemple #8
0
        protected override void EvaluateOutputs()
        {
            DisplayParameters displayParams = new DisplayParameters();

            displayParams.baseText    = (string)settings[Math.Max(0, Math.Min(4, InInt(3)))].currentValue;
            displayParams.limit       = (bool)settings[5].currentValue;
            displayParams.inputValueR = InValue(0);
            displayParams.inputValueG = InValue(1);
            displayParams.inputValueB = InValue(2);
            if (displayParams == lastDisplayParameters)
            {
                return;
            }

            StringBuilder message = new StringBuilder(displayParams.baseText);

            if (displayParams.limit && message.Length > limitLength)
            {
                message.Remove(limitLength, message.Length - limitLength);
            }

            message.Replace("{R}", "{0}");
            message.Replace("{G}", "{1}");
            message.Replace("{B}", "{2}");

            string result = message.ToString();

            try
            {
                result = string.Format(result, InValue(0), InValue(1), InValue(2));
            }
            catch (IndexOutOfRangeException)
            {
            }
            catch (FormatException)
            {
            }

            if (displayParams.limit)
            {
                result = result.Substring(0, Math.Min(result.Length, limitLength));
            }
            if (result == displayText && displayParams.limit == DisplayTextIsLimited)
            {
                return;
            }

            lastDisplayParameters = displayParams;
            displayText           = result;
            DisplayTextChanged(result, displayParams.limit);
        }
Exemple #9
0
        void OnEnable()
        {
            _display = null;

            _camWorldLeft.transform.localRotation  = Quaternion.identity;
            _camWorldRight.transform.localRotation = Quaternion.identity;

            _camWorldLeftScaler  = _camWorldLeft.GetComponentInChildren <FovScaler>();
            _camWorldRightScaler = _camWorldRight.GetComponentInChildren <FovScaler>();

            _camEyeLeft.transform.localRotation  = Quaternion.identity;
            _camEyeRight.transform.localRotation = Quaternion.identity;

            OnHmdParamsChanged(HmdParameters.Instance);

            HmdParameters.Instance.ParamsChanged.AddListener(OnHmdParamsChanged);
        }
Exemple #10
0
        public override void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters)
        {
            AnimatedBodyPartGroup block = new AnimatedBodyPartGroup(ContentDistributor.getEmptyString() + @"worldMarkup\" + markerName + ".chr", 1.0f / 7.0f);

            block.setScale(1f / 12f);
            foreach (BlockLoc test in blocksToBuild.Keys)
            {
                //WorldMarkupHandler.addCharacter(ContentDistributor.getEmptyString()+@"worldMarkup\"+markerName+".chr",
                //                           test.toWorldSpaceVector3() + new Vector3(.5f, .5f, .5f), 1.0f/12.0f,.6f);
                block.setRootPartLocation(test.toWorldSpaceVector3() + new Vector3(.5f, .5f, .5f));
                effect.Parameters["xOpacity"].SetValue(.7f);
                effect.Parameters["xTint"].SetValue(ColorPallete.getColorFromByte(blocksToBuild[test]).ToVector4() * 1.2f);
                block.draw(device, effect);
                effect.Parameters["xTint"].SetValue(Color.White.ToVector4());
                effect.Parameters["xOpacity"].SetValue(1f);
            }
        }
Exemple #11
0
 static void PrintDisplayParameters(DisplayParameters displayParams)
 {
     if (displayParams.IsDigital)
     {
         Console.WriteLine($"Digital display type:                                {displayParams.DigitalDisplayType}");
         Console.WriteLine($"VESA DFP 1.x TMDS CRGB compatible?                   {displayParams.IsDFPTMDSCompatible}");
     }
     else
     {
         Console.WriteLine($"Analog display type:                                 {displayParams.AnalogDisplayType}");
         Console.WriteLine($"Blank-to-black expected?                             {displayParams.IsBlankToBlackExpected}");
         Console.WriteLine($"Composite sync supported?                            {displayParams.IsCompositeSyncSupported}");
         Console.WriteLine($"Separate sync supported?                             {displayParams.IsSeparateSyncSupported}");
         Console.WriteLine($"Sync on green supported?                             {displayParams.IsSyncOnGreenSupported}");
         Console.WriteLine($"VSync serrated on composite?                         {displayParams.IsVSyncSerratedOnComposite}");
         Console.WriteLine($"Video white level:                                   {displayParams.VideoWhiteLevel}");
     }
     Console.WriteLine();
     PrintChromaticityCoordinates(displayParams.ChromaticityCoordinates);
     Console.WriteLine();
     try
     {
         Console.WriteLine($"Gamma:                                               {displayParams.DisplayGamma}");
     }
     catch (Exception)
     {
     }
     if (!displayParams.IsProjector)
     {
         Console.WriteLine($"Display size (in.):                                  {displayParams.DisplaySizeInInch}");
         Console.WriteLine($"Physical width (cm.):                                {displayParams.PhysicalWidth}");
         Console.WriteLine($"Physical height (cm.):                               {displayParams.PhysicalHeight}");
     }
     Console.WriteLine($"DPMS active-off supported?                           {displayParams.IsActiveOffSupported}");
     Console.WriteLine($"Default GTF supported?                               {displayParams.IsDefaultGTFSupported}");
     Console.WriteLine($"Digital display?                                     {displayParams.IsDigital}");
     Console.WriteLine($"Preferred timing mode available?                     {displayParams.IsPreferredTimingModeAvailable}");
     Console.WriteLine($"Preferred timing mode includes native info?          {displayParams.IsPreferredTimingModeAvailable}");
     Console.WriteLine($"Projector display?                                   {displayParams.IsProjector}");
     Console.WriteLine($"Standard sRBG color space?                           {displayParams.IsStandardSRGBColorSpace}");
     Console.WriteLine($"DPMS standby supported                               {displayParams.IsStandbySupported}");
     Console.WriteLine($"DPMS suspend supported?                              {displayParams.IsSuspendSupported}");
 }
Exemple #12
0
 public MainWindow()
 {
     InitializeComponent();
     ImageInfo                             = new ImageInformation();
     DisplayControl                        = new DisplayParameters();
     IsLeftMouseButtonDown                 = false;
     ButtonImageManipulation.IsChecked     = false;
     DetectionResults                      = new DetectionResult();
     MeasurementResults                    = new MeasurementResult();
     DataGridMeasurementResult.ItemsSource = MeasurementResults.Result;
     DataGridDetectionResult.ItemsSource   = DetectionResults.Result;
     backgroundWorker                      = new BackgroundWorker()
     {
         WorkerSupportsCancellation = true,
         WorkerReportsProgress      = true
     };
     backgroundWorker.DoWork             += new DoWorkEventHandler(backgroundWorker_DoWork);
     backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted);
     backgroundWorker.ProgressChanged    += new ProgressChangedEventHandler(backgroundWorker_ProgressChanged);
 }
Exemple #13
0
        public void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters)
        {
            string path = @"worldMarkup\farmMarker.chr";

            path = ResourceBlock.getPathForResourceType(typeToStore);
            AnimatedBodyPartGroup character = new AnimatedBodyPartGroup(ContentDistributor.getEmptyString() + path, 1.0f / 7.0f);
            float opacity = .2f;

            if (!parameters.hasParameter(DisplayParameter.drawStockpiles))
            {
                opacity = .1f;
            }

            //forward rendering is faster here
            effect.Parameters["xOpacity"].SetValue(opacity);
            character.setScale(1f / 7f);
            foreach (BlockLoc test in storageSpace)
            {
                character.setRootPartLocation(test.toWorldSpaceVector3() + new Vector3(.5f, .5f, .5f));
                character.draw(device, effect);
            }
            effect.Parameters["xOpacity"].SetValue(1);
        }
Exemple #14
0
 public void displayIslands(GraphicsDevice device, Effect effect, BoundingFrustum frustrum, DisplayParameters displayParameters)
 {
     islandManager.display(device, effect, frustrum, displayParameters);
 }
Exemple #15
0
 public void display(GraphicsDevice device, Effect effect, BoundingFrustum frustrum, DisplayParameters parameters)
 {
     lock (islands)
     {
         foreach (Island island in islands)
         {
             if (frustrum.Intersects(island.getBoundingBox()))
             {
                 island.display(device, effect, parameters);
             }
         }
     }
 }
Exemple #16
0
 public void display(GraphicsDevice device, Effect effect, IslandLocationProfile locationProfile, DisplayParameters parameters)
 {
     foreach (JobSite site in jobSites)
     {
         site.draw(device, effect, parameters);
     }
 }
Exemple #17
0
 public void display(GraphicsDevice device, Effect effect, DisplayParameters parameters)
 {
     chunkSpace.display(device, effect);
     setPieceManager.display(device, effect);
     jobSiteManager.display(device, effect, getLocationProfile(), parameters);
 }
Exemple #18
0
 public abstract void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters);
Exemple #19
0
    public void SetCurrentDiffParameters()
    {
        DisplayParameters dp = DiffMenu.GetComponent <DisplayParameters>();

        gobj.setCustomRules(dp.currentTv, dp.currentDv);
    }
Exemple #20
0
 public override void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters)
 {
     WorldMarkupHandler.addCharacter(ContentDistributor.getEmptyString() + @"boats\greenOnePersonBoat.chr",
                                     objectLoc.toWorldSpaceVector3() + new Vector3(.5f, 0, .5f),
                                     IslandGame.GameWorld.Boat.SCALE, .5f);
 }